数据处理方法和装置与流程

文档序号:18869299发布日期:2019-10-14 19:08阅读:157来源:国知局
数据处理方法和装置与流程

本公开涉及数据处理领域,具体地,涉及一种数据处理方法和装置。



背景技术:

目前,联合测试工作组(jointtestactiongroup,jtag)测试协议规定,在利用jtag测试协议对芯片内部进行测试时,每次连续读写的地址长度为1k个字节。而且,在利用jtag测试协议进行测试时,所有的读写操作都是通过单个比特串行地输入输出来进行的。

例如,连续写操作的基本流程是:切换到写模式→配置为递增(increment)模式→切换操作寄存器(register)为地址寄存器→串行写入地址值→切换操作寄存器为数据寄存器→串行输入第一个数据→串行输入第二个数据→串行输入第3个数据→…→串行输入第1k个数据。

再例如,连续读操作的基本流程是:切换到读模式→切换操作寄存器为地址寄存器→串行写入地址值→切换操作寄存器为数据寄存器→串行输入伪数据→串行输入伪数据并同时获得读数据→串行输入伪数据并同时获得下一个读数据→…→串行输入伪数据并同时获得第1k个读数据。

可见,由于在执行读写操作时是串行输入输出地进行单比特操作,因此一次简单的写操作需要至少几十个时钟才能完成,而读操作在输入地址后更是需要更多的时钟才能够读取到期望的数据,这会导致在每次连续读写的地址长度达到1k个字节之后出现如下的问题:如果重新配置下一次连续读写的地址,则由于需要重新执行一次如下的流程,也即“切换到写模式→配置为递增模式→切换操寄存器为地址寄存器→串行写入地址值→切换操作寄存器为数据寄存器”,因此会浪费不少的操作时间;而如果不重新配置下一次连续读写的地址,则会出现寻址错误的问题。



技术实现要素:

本公开的目的是提供一种数据处理方法和装置,其能够节省利用jtag测试协议进行测试时的操作时间,而且能够避免寻址错误的问题。

为了实现上述目的,本公开提供一种数据处理方法,该方法包括:

获取第一数据协议的寄存器空间;

基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度;

至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作。

可选地,所述能够进行数据连续操作的地址长度等于芯片内单个模块的地址长度。

可选地,所述配置信息还包括所述芯片内各个模块的跳转地址;

所述至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作还包括:基于所述能够进行数据连续操作的地址长度和所述跳转地址来执行所述数据操作。

可选地,所述能够进行数据连续操作的地址长度被存储到所述第一数据协议的预留寄存器空间中。

可选地,所述跳转地址被存储到所述第一数据协议的预留寄存器空间中。

本公开实施例还提供一种数据处理装置,该装置包括:

获取模块,用于获取第一数据协议的寄存器空间;

设置模块,用于基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度;

执行模块,用于至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作。

可选地,所述能够进行数据连续操作的地址长度等于芯片内单个模块的地址长度。

可选地,所述配置信息还包括所述芯片内各个模块的跳转地址;

所述执行模块,还用于基于所述能够进行数据连续操作的地址长度和所述跳转地址来执行所述数据操作。

可选地,所述能够进行数据连续操作的地址长度被存储到所述第一数据协议的预留寄存器空间中。

可选地,所述跳转地址被存储到所述第一数据协议的预留寄存器空间中。

通过上述技术方案,由于能够首先获取第一数据协议的寄存器空间,然后基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度,然后至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作,这样就能够按需对数据连续操作的地址长度进行自定义配置,例如如果芯片内单个模块的地址长度是2k,则可以将数据连续操作的地址长度配置为2k,这样在芯片内单个模块的地址长度大于第一数据协议规定的例如1k地址长度的情况下,不需要像现有技术那样在连续操作了1k个地址长度之后重新配置下一次连续操作的地址,因此能够大大减小利用第一数据协议进行操作的时间,而且还能够解决不重新配置下一次连续操作的地址导致的寻址错误问题。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据本公开一种实施例的数据处理方法的流程图;

图2是根据本公开又一实施例的数据处理方法的流程图;

图3是根据本公开一种实施例的数据处理装置的示意框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

根据本公开的一种实施例,提供一种数据处理方法,该数据处理方法能够适用于利用对连续操作地址长度做出了限定的任何协议进行操作的场景,而并非仅仅适用于利用jtag测试协议对芯片内部进行测试的场景。如图1所示,根据该实施例的方法可以包括以下步骤s101至s103。

在步骤s101中,获取第一数据协议的寄存器空间。

其中,第一数据协议可以是诸如jtag测试协议之类的、对连续操作地址的长度做出了限定的任何类型的数据协议。

另外,这些数据协议的寄存器空间通常会包括以下几类寄存器空间:(1)已经被预定义用于某些用途的寄存器空间;以及(2)预留的寄存器空间。用户可以对预留的寄存器空间进行自行配置,以满足用户的操作需求。例如,jtag测试协议规定的预留寄存器空间为0x08,0x20~0xf0。

在步骤s102中,基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度;

在步骤s103中,至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作。

通过上述技术方案,由于能够首先获取第一数据协议的寄存器空间,然后基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度,然后至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作,这样就能够按需对数据连续操作的地址长度进行自定义配置,例如如果芯片内单个模块的地址长度是2k,则可以将数据连续操作的地址长度配置为2k,这样在芯片内单个模块的地址长度大于第一数据协议规定的例如1k地址长度的情况下,不需要像现有技术那样在连续操作了1k个地址长度之后重新配置下一次连续操作的地址,因此能够大大减小利用第一数据协议进行操作的时间,而且还能够解决不重新配置下一次连续操作的地址导致的寻址错误问题。

在一种可能的实施方式中,所述能够进行数据连续操作的地址长度可以等于芯片内单个模块的地址长度。例如,假设芯片内有三个模块,每个模块的地址长度分别为2k、4k和8k,则可以在对每个模块进行操作时,将数据连续操作的地址长度分别配置为2k、4k和8k,这样就不需要像现有技术那样在连续操作了第一数据协议规定的例如1k个地址长度之后重新配置下一次连续操作的地址,因此能够大大减小利用第一数据协议进行操作的时间,而且还能够解决不重新配置下一次连续操作的地址导致的寻址错误问题。

另外,本公开实施例对能够进行数据连续操作的地址长度的表示方式不做限制,例如,可以用0x0表示数据连续操作的地址长度为1k、用0x1表示数据连续操作的地址长度为2k以及用0x2表示数据连续操作的地址长度为4k等等,当然还可以用0x200表示数据连续操作的地址长度为1k、用0x400表示数据连续操作的地址长度为2k等等。

以下以芯片内某个模块的地址长度为4k、所配置的数据连续操作的地址长度为4k为例,则采用根据本公开实施例的数据处理方法进行写操作的流程如下:

切换到写模式→配置为递增模式→切换操作寄存器为地址寄存器→串行写入地址值→切换操作寄存器为数据寄存器→串行输入第一个数据→串行输入第二个数据→串行输入第3个数据→…→串行输入第4k个数据。这样,如果是正在利用jtag测试协议对该芯片内的该模块进行测试,则能够连续进行4k个地址长度的测试。

在一种可能的实施方式中,所述配置信息还可以包括所述芯片内各个模块的跳转地址。在这种情况下,如图2所示,步骤s103中的所述至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作还可以包括步骤s103a:基于所述能够进行数据连续操作的地址长度和所述跳转地址来执行所述数据操作。

通过采用步骤s103a,能够在芯片内的各个模块之间实现地址跳转,避免在各个模块之间进行跳转时出现的寻址错误问题,进而能够实现针对芯片内的多个模块的连续数据操作,而且还能够有效地减小对多个模块进行操作的时间。例如,假设芯片内有三个模块,每个模块的地址长度分别为2k、4k和8k,每个模块的首地址分别为0x50021bf0、0x60021bf0和0x70021bf0,则通过在配置信息中设置针对这三个模块的数据连续操作的地址长度分别为2k、4k和8k,针对这三个模块的跳转地址分别为0x50021bf0、0x60021bf0和0x70021bf0,则能够在针对第一个模块连续操作2k个地址长度之后跳转到第二个模块的首地址,并然后对第二个模块连续操作4k个地址长度,然后跳转到第三个模块的首地址,并对第三个模块连续操作8k个地址长度。这样就能够在不重新配置下一次操作的地址的情况下,连续完成每个模块的操作并有效地跳转到下一个模块。而在现有技术中,由于第一数据协议限定了连续操作的地址长度为例如1k,因此若在连续操作了1k个地址长度之后重新配置下一次操作的地址则会增加操作的时间,而如果不重新配置下一次操作的地址,则会在连续操作了1k个地址长度之后返回该次配置的地址的初始地址,导致寻址错误的问题。

在一种可能的实施方式中,所述能够进行数据连续操作的地址长度可以被存储到所述第一数据协议的预留寄存器空间中。所述跳转地址可以被存储到所述第一数据协议的预留寄存器空间中。这样就能够有效地利用第一数据协议的预留寄存器空间进行地址长度和跳转地址的配置,有效地解决重新配置下一次操作的地址导致的操作时间长的问题或者不重新配置下一次操作的地址导致的寻址错误问题。

根据本公开的又一实施例,提供一种数据处理装置,如图3所示,该装置可以包括:

获取模块301,用于获取第一数据协议的寄存器空间;

设置模块302,用于基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度;

执行模块303,用于至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作。

通过上述技术方案,由于获取模块301能够首先获取第一数据协议的寄存器空间,然后设置模块302基于所述寄存器空间设置数据操作的配置信息,所述配置信息包括能够进行数据连续操作的地址长度,然后执行模块303至少基于所述能够进行数据连续操作的地址长度来执行所述数据操作,这样就能够按需对数据连续操作的地址长度进行自定义配置,例如如果芯片内单个模块的地址长度是2k,则可以将数据连续操作的地址长度配置为2k,这样在芯片内单个模块的地址长度大于第一数据协议规定的例如1k地址长度的情况下,不需要像现有技术那样在连续操作了1k个地址长度之后重新配置下一次连续操作的地址,因此能够大大减小利用第一数据协议进行操作的时间,而且还能够解决不重新配置下一次连续操作的地址导致的寻址错误问题。

在一种可能的实施方式中,所述能够进行数据连续操作的地址长度可以等于芯片内单个模块的地址长度。

另外,本公开实施例对能够进行数据连续操作的地址长度的表示方式不做限制,例如,可以用0x0表示数据连续操作的地址长度为1k、用0x1表示数据连续操作的地址长度为2k以及用0x2表示数据连续操作的地址长度为4k等等,当然还可以用0x200表示数据连续操作的地址长度为1k、用0x400表示数据连续操作的地址长度为2k等等。

在一种可能的实施方式中,所述配置信息还可以包括所述芯片内各个模块的跳转地址。在这种情况下,所述执行模块303,还可以用于基于所述能够进行数据连续操作的地址长度和所述跳转地址来执行所述数据操作。

在一种可能的实施方式中,所述能够进行数据连续操作的地址长度可以被存储到所述第一数据协议的预留寄存器空间中。所述跳转地址可以被存储到所述第一数据协议的预留寄存器空间中。这样就能够有效地利用第一数据协议的预留寄存器空间进行地址长度和跳转地址的配置,有效地解决重新配置下一次操作的地址导致的操作时间长的问题或者不重新配置下一次操作的地址导致的寻址错误问题。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1