CN112363763B - 数据处理方法、装置及计算机可读存储介质 - Google Patents

数据处理方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN112363763B
CN112363763B CN202011271639.5A CN202011271639A CN112363763B CN 112363763 B CN112363763 B CN 112363763B CN 202011271639 A CN202011271639 A CN 202011271639A CN 112363763 B CN112363763 B CN 112363763B
Authority
CN
China
Prior art keywords
register
data
bus
target
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011271639.5A
Other languages
English (en)
Other versions
CN112363763A (zh
Inventor
王骞
庄戌堃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202011271639.5A priority Critical patent/CN112363763B/zh
Publication of CN112363763A publication Critical patent/CN112363763A/zh
Application granted granted Critical
Publication of CN112363763B publication Critical patent/CN112363763B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space

Abstract

本申请公开了一种数据处理方法、装置及计算机可读存储介质。其中,方法包括预先为总线上设备的可访问内部寄存器设置相应的镜像寄存器。当接收到有效的总线写请求,将待写入数据锁存至写请求的寄存器对应的镜像寄存器中,并发送在延迟时间段内该镜像寄存器值不变的指令,同时生成FIFO处理请求;延迟时间段从当前时刻开始、时长为数据延迟时间,数据延迟时间大于数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和。根据单深度的FIFO的状态将数据写入目标寄存器,并在延迟时间段之外调用数据同步程序将目标寄存器的变化数据写入至相应的镜像寄存器,可有效解决总线写后立即读这种应用场景下出现的读写不一致的问题,且不会降低整体系统性能。

Description

数据处理方法、装置及计算机可读存储介质
技术领域
本申请涉及通信技术领域,特别是涉及一种数据处理方法、装置及计算机可读存储介质。
背景技术
众所周知,理想的电路设计为整个电路是同步的,即整个电路只依赖于一个时钟。随着集成电路的快速发展,在当今SoC(System on Chip,片上系统)中,仅仅依赖一个时钟已经不足以支撑复杂的系统设计,一个复杂的SoC系统往往需要多个异步的时钟,由于每个触发器都有自己的建立时间和保持时间,如果出现违反就会导致亚稳态的出现,从而导致数据的错误传输,最终会影响系统的正常运行。并且在跨时钟的数据传输中亚稳态现象出现的可能性更大,因此需要使用同步电路对跨时钟域的数据进行处理,来减少亚稳态现象的发生。例如对于挂在总线上的设备,常常会出现总线时钟与设备工作时钟不一致的情况。
相关技术采用一个合适深度的异步FIFO(First Input First Output,先入先出存储器)对多位宽度的数据信号进行同步。FIFO结构如图1所示,其工作原理为:首先,输入侧产生数据和控制信号,FIFO将数据存入数据缓冲单元,并产生新的写指针,当读时钟域产生读信号时,数据从数据缓冲单元输出并产生新的读指针,同时,通过比较读写指针,可以判断数据缓冲单元是否空或者满,从而防止数据的写覆盖和错误读,以此来完成数据的跨时钟域同步。
但是,由于FIFO的深度任意,因此数据从输入至FIFO到可以从FIFO输出的时间未知,即某一次总线读写寄存器操作写入或读出实际设备内部寄存器中的时间未知,时间与此刻总线对此设备的读写操作频率有关。对于写后立刻读的情况,当写操作的数据尚未写入至设备内部寄存器时,读操作就将之前的数据输出到总线上,使得出现读写不一致的情况,极易引起系统的误操作。为了解决这种误操作,相关技术通过延迟设备向总线的反馈信号,例如延迟APB(Advanced Peripheral Bus,外围总线)的ready信号或者软件在读写寄存器逻辑中增加大于读写间隔最大值的延迟。但这两种方法都会降低整体系统的性能。
鉴于此,如何在不降低整体系统性能基础上,解决总线写后立即读这种应用场景下出现的读写不一致的问题,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种数据处理方法、装置及计算机可读存储介质,可有效解决总线写后立即读这种应用场景下出现的读写不一致的问题,且不会降低整体系统性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种数据处理方法,包括:
预先为总线上待响应设备的各可访问内部寄存器设置相应的镜像寄存器,并设置数据延迟时间;所述数据延迟时间大于待写入数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和;
当接收到有效的总线写请求,将待写入数据锁存至所述总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求,同时发送延迟时间段内所述目标寄存器对应的镜像寄存器值不变的指令;所述延迟时间段为从当前时刻开始、时长为所述数据延迟时间的时间段;
根据单深度的FIFO的状态将所述待写入数据写入所述目标寄存器,并在所述延迟时间段之外调用数据同步程序将所述目标寄存器的变化数据写入至相应的镜像寄存器。
可选的,所述在所述延迟时间段之外调用数据同步程序将所述目标寄存器的变化数据写入至相应的镜像寄存器之后,还包括:
当接收到有效的总线读请求,根据所述总线读请求携带的寄存器地址信息确定相应源寄存器;
从所述源寄存器对应的镜像寄存器中读取所需数据。
可选的,所述接收到有效的总线写请求,将待写入数据锁存至写请求的目标寄存器对应的镜像寄存器之前,还包括:
当接收到总线读写访问请求,基于总线协议判断读写访问请求是否为有效的总线信号;
若是,根据总线协议判断有效的总线信号执行读操作还是写操作;若为读操作,生成总线读请求,若为写操作,生成总线写请求。
可选的,所述将待写入数据锁存至所述总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求包括:
根据所述总线写请求中携带的寄存器地址信息确定相应的目标寄存器;
判断所述目标寄存器是否具有相关联寄存器;
若是,基于所述目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为所述目标寄存器分配相应的写操作顺序值;将所述待写入数据锁存至所述目标寄存器对应的镜像寄存器,生成携带所述目标寄存器的写操作顺序值的FIFO处理请求并发送至单深度的FIFO,以使所述目标寄存器的镜像寄存器将所述目标寄存器的写操作顺序值和所述待写入数据同时写入所述FIFO中;
若否,将所述待写入数据锁存至所述目标寄存器对应的镜像寄存器,并生成FIFO处理请求;
其中,所述排序循环总数根据总线时钟和工作时钟之间的差值倍数决定。
可选的,所述基于所述目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为所述目标寄存器分配相应的写操作顺序值包括:
预先设置所述目标寄存器和各相关联寄存器的写操作顺序值随着相应总线写请求的接收时间顺序从前到后、在初始值的基础上依次增大;
判断所述目标寄存器和各相关联寄存器是否具有写操作顺序值;
若所述目标寄存器和/或相关联寄存器具有写操作顺序值,从所述目标寄存器和各相关联寄存器的写操作顺序值中选择数值最大的目标写操作顺序值;若所述目标写操作顺序值与所述排序循环总数相同,所述目标寄存器的写操作顺序值为所述初始值,若所述目标写操作顺序值小于所述排序循环总数,所述目标寄存器的写操作顺序值为大于所述目标写操作顺序值但不大于所述排序循环总数;
若所述目标寄存器和相关联寄存器都没有写操作顺序值,所述目标寄存器的写操作顺序值为所述初始值。
本发明实施例另一方面提供了一种数据处理装置,包括:
镜像寄存器设置模块,用于为总线上待响应设备的各可访问内部寄存器设置相应的镜像寄存器;
延迟计数模块,用于执行延迟时间段内所述目标寄存器对应的镜像寄存器值不变的指令,所述延迟时间段为从当前时刻开始、时长为数据延迟时间的时间段;所述数据延迟时间大于待写入数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和;
数据锁存模块,用于当接收到有效的总线写请求,将待写入数据锁存至所述总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求,同时发送延迟时间段内所述目标寄存器对应的镜像寄存器值不变的指令;
单深度FIFO,用于当接收所述FIFO处理请求,执行所述待写入数据的信号同步工作;
数据写入模块,用于根据单深度的FIFO的状态将所述待写入数据写入所述目标寄存器,并在所述延迟时间段之外调用数据同步程序将所述目标寄存器的变化数据写入至相应的镜像寄存器。
可选的,还包括数据读取模块,用于当接收到有效的总线读请求,根据所述总线读请求携带的寄存器地址信息确定相应源寄存器;从所述源寄存器对应的镜像寄存器中读取所需数据。
可选的,还包括排序模块,所述排序模块包括:
相关联寄存器判断子模块,用于判断基于所述总线写请求中携带的寄存器地址信息确定的目标寄存器是否具有相关联寄存器;
数据写入排序子模块,用于若所述目标寄存器具有相关联寄存器,基于所述目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为所述目标寄存器分配相应的写操作顺序值;所述排序循环总数根据总线时钟和工作时钟之间的差值倍数决定;
指令生成子模块,用于生成携带所述目标寄存器的写操作顺序值的FIFO处理请求,以使所述目标寄存器的镜像寄存器将所述目标寄存器的写操作顺序值和所述待写入数据同时写入所述FIFO中。
本发明实施例还提供了一种数据处理装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述数据处理方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如前任一项所述数据处理方法的步骤。
本申请提供的技术方案的优点在于,当总线写寄存器时,待写入的数据首先被写入到镜像寄存器中,然后开始延迟处理使得在延迟时间段内,设备内部寄存器的值无法改变镜像寄存器的值,直到写数据真正的写入到设备的内部寄存器中,延迟时间段结束,此后已被更新的内部寄存器的值才会改变镜像寄存器的值,因此,在此写操作后的读操作,会读到写入的值,而不会读取到写之前的寄存器的值,保证了读写时序的正确性,能够降低总线写读操作延迟,并有效解决写后立即读的读写不一致问题,而无需额外总线延迟以及软件的参与,还有利于提高系统整体性能。
此外,本发明实施例还针对数据处理方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的FIFO的工作原理示意图;
图2为本发明实施例提供的一种数据处理方法的流程示意图;
图3为本发明实施例提供的总线接口整体架构示意图;
图4为本发明实施例提供的一种总线写操作方法的流程示意图;
图5为本发明实施例提供的数据处理装置的一种具体实施方式结构图;
图6为本发明实施例提供的数据处理装置的另一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图2,图2为本发明实施例提供的一种数据处理方法的流程示意图,本发明实施例可包括以下内容:
S201:预先为总线上待响应设备的各可访问内部寄存器设置相应的镜像寄存器。
本申请是指通过对总线的读写访问实现去控制总线上连接的设备或者是读取该设备中的某些信息,本步骤中的内部寄存器都是指想要控制或需求引起响应的设备也即待响应设备中真正存在的寄存器,针对总线上设备中的每一个可访问的寄存器,在总线时钟域侧都预先设计了一个镜像寄存器,也就是说,待响应设备的每一个可以进行访问的寄存器均有唯一的一个镜像寄存器,二者一一对应。
S202:预先设置数据延迟时间。
可以理解的是,为了保证在写后立即读这种应用场景中,读取的数据始终是当前写入的数据,而非之前的数据就需要保证刚写入的数据可以被读取而不被改写,所以在数据被从写入时到被读出时存储的位置保证不被改写,这就需要使用数据延迟功能限制存储位置值不发生改变,数据延迟功能需要设置数据延迟时间,数据延迟时间需要大于待写入数据从写入FIFO到写出FIFO所需时间、写入内部寄存器所需时间及数据同步所需时间这三部分之和。可选的,为了提高数据更新效率,数据延迟时间只要稍微大于待写入数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和即可,举例来说,待写入数据从写入FIFO到写出FIFO需要时间为10s、写入内部寄存器的时间为6s、数据同步所需时间为15s,那么数据延迟时间可以设置为大于31s的任何数值,为了兼顾效率和解决问题两个方面,数据延迟时间可以设置为32s。
S203:当接收到有效的总线写请求,将待写入数据锁存至总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求,同时发送延迟时间段内目标寄存器对应的镜像寄存器值不变的指令。
可以理解的是,总线读写请求需要满足总线协议的,总线信号是不是可被总线有效识别,其需要满足相应总线协议。当存在总线读写访问时,需要基于总线协议先对总线读写访问的总线信号进行判断,首先判断此次访问是否有效,然后将读写操作中的哪一种,并将相应的控制信号输入到后级镜像寄存器逻辑侧,如图2所示。也就是说,当接收到总线读写访问请求,基于总线协议判断读写访问请求是否为有效的总线信号;若是,根据总线协议判断有效的总线信号执行读操作还是写操作;若为读操作,生成总线读请求,若为写操作,生成总线写请求。
其中,由于总线不断进行读写访问,为了避免当前总线写请求在还没有写入内部寄存器之前被覆盖,需要将其先锁存在镜像寄存器中,然后镜像寄存器控制FIFO进行数据同步操作将待写入数据写入至设备内部寄存器,而且这这段时间内需要保证镜像寄存器中的数据不被改写,然后调用数据同步逻辑对内部寄存器和像元寄存器进行数据同步,这样无论是在何时读刚写入的数据,寄存器中存储的数据始终是刚刚被写入的新数据,不会读到之前的旧数据。延迟时间段为从当前时刻开始、时长为数据延迟时间的时间段,利用在下发指令时可设置定时功能,定时时长为S102步骤中设置的数据延迟时间,定时时长到达数据延迟时间则定时结束,在定时功能开始的这段时间内,目标寄存器对应的镜像寄存器值不变,也即目标寄存器中的数据变化不会同步更新至镜像寄存器中,镜像寄存器中的数据始终为本步骤中的待写入数据。
本申请中的FIFO处理请求为镜像寄存器生成并且发送给FIFO的命令,FIFO处理请求可包括写数据和写控制两部分,且FIFO为单深度的FIFO,且每个寄存器对应一个自己的FIFO,相应的数据同步程序和延迟计数这两个程序也是每个内部寄存器都单独具有的,如图2所示。
S204:根据单深度的FIFO的状态将待写入数据写入目标寄存器,并在延迟时间段之外调用数据同步程序将目标寄存器的变化数据写入至相应的镜像寄存器。
镜像寄存器在接收到总线信号后,当输入的信号为写数据相关信号时,将写寄存器的数据保存在相应的镜像寄存器中,此时保存在镜像寄存器中的数据可能也要受其他镜像寄存器的影响,产生写控制、写数据等信号并输入到单深度FIFO中进行写数据信号同步,往往总线时钟比设备工作时钟快。由于FIFO为单深度,所以后级设备内部逻辑可以很容易的通过此FIFO的空满状态信号来判断此时FIFO中是否有有效信号,是否后级内部逻辑需要产生读信号将FIFO中的数据读出,当FIFO中的数据被读出时,数据就到达了设备内部的真实寄存器中,引起设备产生相应的操作,设备产生相应的操作为用户想通过将待写入数据写入至寄存器内来控制设备执行的某些操作,举例来说,如果用户通过写设备寄存器的方式控制设备输出电机运转指令,那么在将待写入数据写入至设备的内部寄存器后,设备便会输出电机运转指令。延迟时间段之外是指在发送延迟时间段内目标寄存器对应的镜像寄存器值不变的指令开始到延迟时间段结束之外的任意时间,只要不是在延迟时间段内,数据同步程序便可执行将内部寄存器和相对应的镜像寄存器进行数据同步的操作。当内部寄存器中的数据发生变化时,变化的数据通过读数据同步逻辑或称为数据同步程序,通常情况下只需要使用总线时钟打两拍即可得到稳定的数据,消除亚稳态。作为一种可选的实施方式,如图4所示,可设置一个执行延迟功能的模块,将该模块作为数据传输通道上的开关,在延迟时间段内,关闭开关,可将变化数据输入到延迟功能的实现模块,变化数据不能进行有效传输,不在延迟时间段内,打开开关,变化数据经过该功能模块进行有效传输。由于使用的FIFO为单深度,因此数据从FIFO输入到输出的时间可以进行计算并且为一个定值。当镜像寄存器逻辑产生写FIFO控制信号时延迟开始工作,在延迟功能的实现模块计数到设定的延迟时间之前,数据同步逻辑中的数据不会写入到镜像寄存器中,到计数到特定值之后,延迟功能的实现模块停止工作,控制同步模块中的数据写入到镜像寄存器之中,在这之后只要内部寄存器的值发生变化,同步模块就会将新值写入到镜像寄存器中。
在本发明实施例提供的技术方案中,当总线写寄存器时,待写入的数据首先被写入到镜像寄存器中,然后开始延迟处理使得在延迟时间段内,设备内部寄存器的值无法改变镜像寄存器的值,直到写数据真正的写入到设备的内部寄存器中,延迟时间段结束,此后已被更新的内部寄存器的值才会改变镜像寄存器的值,因此,在此写操作后的读操作,会读到写入的值,而不会读取到写之前的寄存器的值,保证了读写时序的正确性,能够降低总线写读操作延迟,并有效解决写后立即读的读写不一致问题,而无需额外总线延迟以及软件的参与,还有利于提高系统整体性能。
由上述实施例可知,无论是最开始写入的数据,还是S204步骤与内部寄存器同步更新后数据,镜像寄存器中的数据总是最新被写入放入数据,基于此,在延迟时间段之外调用数据同步程序将目标寄存器的变化数据写入至相应的镜像寄存器之后,还可包括:
当接收到有效的总线读请求,根据总线读请求携带的寄存器地址信息确定相应源寄存器;源寄存器就是存储总线读请求要读取数据的寄存器。
从源寄存器对应的镜像寄存器中读取所需数据。
在本实施例中,当总线接口读数据相关信号时,直接将此地址对应的镜像寄存器中的值读出即可。由于设置延迟功能,延迟时间段之外的时间段中已被更新的内部寄存器的值才会改变镜像寄存器的值,因此,在此写操作后的读操作,会读到写入的值,而不会读取到写之前的寄存器的值,保证了读写时序的正确性,
可以理解的是,总线设备中的寄存器不可避免的具有相关联的寄存器,可知这些寄存器为相关联寄存器,例如,数据寄存器和使能控制寄存器,为了避免相关联的两个内部寄存器或多个内部寄存器的FIFO中数据同时输出时,相关联寄存器会发生误写入情况的现象发生,上述S203步骤中“将待写入数据锁存至总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求”的一种实施方式可包括下述内容:
根据总线写请求中携带的寄存器地址信息确定相应的目标寄存器。写请求会携带数据写入至哪个寄存器的地址信息,根据这个地址信息确定相应的内部寄存器,然后判断目标寄存器是否具有相关联寄存器。
若是,基于目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为目标寄存器分配相应的写操作顺序值。排序循环总数根据总线时钟和工作时钟之间的差值倍数决定,举例来说,若总线时钟的频率是工作时钟频率的10倍,排序循环总数的设定计数值可为10。将待写入数据锁存至目标寄存器对应的镜像寄存器,生成携带目标寄存器的写操作顺序值的FIFO处理请求并发送至单深度的FIFO,以使目标寄存器的镜像寄存器将目标寄存器的写操作顺序值和待写入数据同时写入FIFO中。
若否,将待写入数据锁存至目标寄存器对应的镜像寄存器,并生成FIFO处理请求。
此外,还需要说明的是,对于何时执行寄存器数据写入,保证写入时序的正确性,除了要满足上述写操作顺序值这个条件,还要基于相关联寄存器在应用场景中的相关联功能以及工作原理,例如相关联寄存器为数据寄存器和使能控制寄存器,只有对应位的使能控制有效时,数据寄存器的值才能被改写。
作为一种可选的实施方式,本实施例还提供了为目标寄存器分配写操作顺序值的一种实现方式,可包括:
预先设置目标寄存器和各相关联寄存器的写操作顺序值随着相应总线写请求的接收时间顺序从前到后、在初始值的基础上依次增大。当然,也可随着相应总线写请求的接收时间顺序从前到后、在初始值的基础上依次减小,增大或减小的幅度可有一定规律如按照等差数列,也可无规律随机增加或减小,这均不影响本申请的实现。
判断目标寄存器和各相关联寄存器是否具有写操作顺序值。
若目标寄存器和/或相关联寄存器具有写操作顺序值,从目标寄存器和各相关联寄存器的写操作顺序值中选择数值最大的目标写操作顺序值;若目标写操作顺序值与排序循环总数相同,目标寄存器的写操作顺序值为初始值,若目标写操作顺序值小于排序循环总数,目标寄存器的写操作顺序值为大于目标写操作顺序值但不大于排序循环总数。若目标寄存器和相关联寄存器都没有写操作顺序值,目标寄存器的写操作顺序值为初始值。
每一组相关联寄存器都有一组排序逻辑,作为一种可选的实施方式,实现写操作顺序值的分配操作可由计数单元构成并控制,计数值由总线时钟以及工作时钟间的差值倍数决定。举例说明工作原理,当总线时钟的频率是工作时钟的10倍时,则计数单元的设定计数值为10。当相关联寄存器中有一个总线写操作时,产生控制信号使得计数单元开始工作,为此次写操作分配一个顺序值,例如默认可以从0开始叠加,当镜像寄存器控制FIFO写入时,将此顺序值连同写数据一起写入FIFO中,供后续内部逻辑对相关联寄存器进行判断,而在计数单元尚未计数到10时,若相关联寄存器中又产生总线写操作,则为此次写操作分配顺序值,若前面分配0,则此次分配1,后续内部逻辑即可通过此顺序值判断实际的写入顺序;若计数单元计数到10时,则计数值清零,顺序值恢复默认值,计数单元停止工作并等待下一次总线写控制信号产生。
本实施例可有效避免相关联寄存器的FIFO中数据同时输出时,内部寄存器有关联时的寄存器误写入情况的发生。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图2-图4只是一种示意方式,并不代表只能是这样的执行顺序。
本发明实施例还针对数据处理方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的数据处理装置进行介绍,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。
基于功能模块的角度,参见图5,图5为本发明实施例提供的数据处理装置在一种具体实施方式下的结构图,该装置例如可设置在总线接口,可包括:
镜像寄存器设置模块501,用于为总线上待响应设备的各可访问内部寄存器设置相应的镜像寄存器。
延迟计数模块502,用于执行延迟时间段内目标寄存器对应的镜像寄存器值不变的指令,延迟时间段为从当前时刻开始、时长为数据延迟时间的时间段;数据延迟时间大于待写入数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和。
数据锁存模块503,用于当接收到有效的总线写请求,将待写入数据锁存至总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求,同时发送延迟时间段内目标寄存器对应的镜像寄存器值不变的指令。
单深度FIFO504,用于当接收FIFO处理请求,执行待写入数据的信号同步工作。
数据写入模块505,用于根据单深度的FIFO的状态将待写入数据写入目标寄存器,并在延迟时间段之外调用数据同步程序将目标寄存器的变化数据写入至相应的镜像寄存器。
作为本实施例的一种可选实施方式,上述装置还可以包括数据读取模块,用于当接收到有效的总线读请求,根据总线读请求携带的寄存器地址信息确定相应源寄存器;从源寄存器对应的镜像寄存器中读取所需数据。
作为本实施例的另一种可选实施方式,上述装置例如还可以包括接口信号判断模块,接口信号判断包括:
有效性判断子模块,用于当接收到总线读写访问请求,基于总线协议判断读写访问请求是否为有效的总线信号;
操作类型识别子模块,用于若为有效的总线信号,根据总线协议判断有效的总线信号执行读操作还是写操作;若为读操作,生成总线读请求,若为写操作,生成总线写请求。
可选的,在本实施例的一些实施方式中,上述装置例如还可以包括排序模块,排序模块包括:
相关联寄存器判断子模块,用于判断基于总线写请求中携带的寄存器地址信息确定的目标寄存器是否具有相关联寄存器;
数据写入排序子模块,用于若目标寄存器具有相关联寄存器,基于目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为目标寄存器分配相应的写操作顺序值;排序循环总数根据总线时钟和工作时钟之间的差值倍数决定;
指令生成子模块,用于生成携带目标寄存器的写操作顺序值的FIFO处理请求,以使目标寄存器的镜像寄存器将目标寄存器的写操作顺序值和待写入数据同时写入FIFO中。
作为本实施例的其他一些可选的实施方式,排序模块还可包括:
参数定义子模块,用于预先设置目标寄存器和各相关联寄存器的写操作顺序值随着相应总线写请求的接收时间顺序从前到后、在初始值的基础上依次增大;
写操作顺序值判断子模块,用于判断目标寄存器和各相关联寄存器是否具有写操作顺序值;
写操作顺序值分配子模块,用于若目标寄存器和/或相关联寄存器具有写操作顺序值,从目标寄存器和各相关联寄存器的写操作顺序值中选择数值最大的目标写操作顺序值;若目标写操作顺序值与排序循环总数相同,目标寄存器的写操作顺序值为初始值,若目标写操作顺序值小于排序循环总数,目标寄存器的写操作顺序值为大于目标写操作顺序值但不大于排序循环总数;若目标寄存器和相关联寄存器都没有写操作顺序值,目标寄存器的写操作顺序值为初始值。
基于上述各功能模块,本申请技术方案的工作过程为:
当总线操作为写寄存器操作时,首先由接口信号判断模块根据总线协议向镜像寄存器逻辑发出写控制和写数据,之后镜像寄存器逻辑接收写控制,将数据锁存在镜像寄存器中,并产生FIFO的写控制和写数据信号,同时使延迟计数模块开始计数,内部寄存器根据FIFO空满状态读取FIFO中的数据,将数据写入到内部寄存器中,当延迟计数模块没有计数到预设值即数据延迟时间时,内部寄存器的值无法同步到镜像寄存器中,当延迟计数模块计数到预设值时,内部寄存器的值可以通过读数据同步程序封装的功能模块将数据写入到镜像寄存器中,实现内部真实寄存器值得实时更新。当总线操作为读寄存器操作时,接口信号可以根据总线协议直接产生读控制,直接将镜像寄存器中的数据读出,无需其余的操作。
本发明实施例所述数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可有效解决总线写后立即读这种应用场景下出现的读写不一致的问题,且不会降低整体系统性能。
上文中提到的数据处理装置是从功能模块的角度描述,进一步的,本申请还提供一种数据处理装置,是从硬件角度描述。图6为本申请实施例提供的另一种数据处理装置的结构图。如图6所示,该装置包括存储器60,用于存储计算机程序;
处理器61,用于执行计算机程序时实现如上述任一实施例提到的数据处理方法的步骤。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器60可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器60还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器60至少用于存储以下计算机程序601,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的数据处理方法的相关步骤。另外,存储器60所存储的资源还可以包括操作系统602和数据603等,存储方式可以是短暂存储或者永久存储。其中,操作系统602可以包括Windows、Unix、Linux等。数据603可以包括但不限于数据处理结果对应的数据等。
在一些实施例中,数据处理装置还可包括有显示屏62、输入输出接口63、通信接口64、电源65以及通信总线66。
本领域技术人员可以理解,图6中示出的结构并不构成对数据处理装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器67。
本发明实施例所述数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可有效解决总线写后立即读这种应用场景下出现的读写不一致的问题,且不会降低整体系统性能。
可以理解的是,如果上述实施例中的数据处理方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有数据处理程序,所述数据处理程序被处理器执行时如上任意一实施例所述数据处理方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可有效解决总线写后立即读这种应用场景下出现的读写不一致的问题,且不会降低整体系统性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种数据处理方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (8)

1.一种数据处理方法,其特征在于,包括:
预先为总线上待响应设备的各可访问内部寄存器设置相应的镜像寄存器,并设置数据延迟时间;所述数据延迟时间大于待写入数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和;
当接收到有效的总线写请求,将待写入数据锁存至所述总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求,同时发送延迟时间段内所述目标寄存器对应的镜像寄存器值不变的指令;所述延迟时间段为从当前时刻开始、时长为所述数据延迟时间的时间段;
所述将待写入数据锁存至所述总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求包括:根据所述总线写请求中携带的寄存器地址信息确定相应的目标寄存器;判断所述目标寄存器是否具有相关联寄存器;若是,基于所述目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为所述目标寄存器分配相应的写操作顺序值;将所述待写入数据锁存至所述目标寄存器对应的镜像寄存器,生成携带所述目标寄存器的写操作顺序值的FIFO处理请求并发送至单深度的FIFO,以使所述目标寄存器的镜像寄存器将所述目标寄存器的写操作顺序值和所述待写入数据同时写入所述FIFO中;若否,将所述待写入数据锁存至所述目标寄存器对应的镜像寄存器,并生成FIFO处理请求;其中,所述排序循环总数根据总线时钟和工作时钟之间的差值倍数决定;
根据单深度的FIFO的状态将所述待写入数据写入所述目标寄存器,并在所述延迟时间段之外调用数据同步程序将所述目标寄存器的变化数据写入至相应的镜像寄存器。
2.根据权利要求1所述的数据处理方法,其特征在于,所述在所述延迟时间段之外调用数据同步程序将所述目标寄存器的变化数据写入至相应的镜像寄存器之后,还包括:
当接收到有效的总线读请求,根据所述总线读请求携带的寄存器地址信息确定相应源寄存器;
从所述源寄存器对应的镜像寄存器中读取所需数据。
3.根据权利要求2所述的数据处理方法,其特征在于,所述接收到有效的总线写请求,将待写入数据锁存至写请求的目标寄存器对应的镜像寄存器之前,还包括:
当接收到总线读写访问请求,基于总线协议判断读写访问请求是否为有效的总线信号;
若是,根据总线协议判断有效的总线信号执行读操作还是写操作;若为读操作,生成总线读请求,若为写操作,生成总线写请求。
4.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为所述目标寄存器分配相应的写操作顺序值包括:
预先设置所述目标寄存器和各相关联寄存器的写操作顺序值随着相应总线写请求的接收时间顺序从前到后、在初始值的基础上依次增大;
判断所述目标寄存器和各相关联寄存器是否具有写操作顺序值;
若所述目标寄存器和/或相关联寄存器具有写操作顺序值,从所述目标寄存器和各相关联寄存器的写操作顺序值中选择数值最大的目标写操作顺序值;若所述目标写操作顺序值与所述排序循环总数相同,所述目标寄存器的写操作顺序值为所述初始值,若所述目标写操作顺序值小于所述排序循环总数,所述目标寄存器的写操作顺序值为大于所述目标写操作顺序值但不大于所述排序循环总数;
若所述目标寄存器和相关联寄存器都没有写操作顺序值,所述目标寄存器的写操作顺序值为所述初始值。
5.一种数据处理装置,其特征在于,包括:
镜像寄存器设置模块,用于为总线上待响应设备的各可访问内部寄存器设置相应的镜像寄存器;
数据锁存模块,用于当接收到有效的总线写请求,将待写入数据锁存至所述总线写请求的目标寄存器对应的镜像寄存器,并生成FIFO处理请求,同时发送延迟时间段内目标寄存器对应的镜像寄存器值不变的指令;
延迟计数模块,用于执行延迟时间段内所述目标寄存器对应的镜像寄存器值不变的指令,所述延迟时间段为从当前时刻开始、时长为数据延迟时间的时间段;所述数据延迟时间大于待写入数据从写入FIFO到写出FIFO、写入内部寄存器及数据同步所需时间之和;
单深度FIFO,用于当接收所述FIFO处理请求,执行所述待写入数据的信号同步工作;
数据写入模块,用于根据单深度的FIFO的状态将所述待写入数据写入所述目标寄存器,并在所述延迟时间段之外调用数据同步程序将所述目标寄存器的变化数据写入至相应的镜像寄存器;
排序模块,所述排序模块包括:
相关联寄存器判断子模块,用于判断基于所述总线写请求中携带的寄存器地址信息确定的目标寄存器是否具有相关联寄存器;
数据写入排序子模块,用于若所述目标寄存器具有相关联寄存器,基于所述目标寄存器的相关联寄存器的写操作顺序值和排序循环总数为所述目标寄存器分配相应的写操作顺序值;所述排序循环总数根据总线时钟和工作时钟之间的差值倍数决定;
指令生成子模块,用于生成携带所述目标寄存器的写操作顺序值的FIFO处理请求,以使所述目标寄存器的镜像寄存器将所述目标寄存器的写操作顺序值和所述待写入数据同时写入所述FIFO中。
6.根据权利要求5所述的数据处理装置,其特征在于,还包括数据读取模块,用于当接收到有效的总线读请求,根据所述总线读请求携带的寄存器地址信息确定相应源寄存器;从所述源寄存器对应的镜像寄存器中读取所需数据。
7.一种数据处理装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4任一项所述数据处理方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如权利要求1至4任一项所述数据处理方法的步骤。
CN202011271639.5A 2020-11-13 2020-11-13 数据处理方法、装置及计算机可读存储介质 Active CN112363763B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011271639.5A CN112363763B (zh) 2020-11-13 2020-11-13 数据处理方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011271639.5A CN112363763B (zh) 2020-11-13 2020-11-13 数据处理方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112363763A CN112363763A (zh) 2021-02-12
CN112363763B true CN112363763B (zh) 2022-12-23

Family

ID=74515572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011271639.5A Active CN112363763B (zh) 2020-11-13 2020-11-13 数据处理方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112363763B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113079152B (zh) * 2021-03-26 2023-01-24 山东英信计算机技术有限公司 一种数据传输方法、装置及介质
CN113468097B (zh) * 2021-07-01 2024-02-20 合肥中科采象科技有限公司 基于片上系统的数据交换方法
CN113868166A (zh) * 2021-10-09 2021-12-31 海光信息技术股份有限公司 自适应请求应答系统、方法、设备和计算机介质
CN114968912B (zh) * 2022-07-29 2022-12-27 苏州联讯仪器有限公司 数据处理方法、系统、电子设备及计算机可读存储介质
CN116521095B (zh) * 2023-07-03 2023-09-08 摩尔线程智能科技(北京)有限责任公司 响应输出系统、方法、电子设备、存储介质及程序产品
CN116543804B (zh) * 2023-07-07 2023-11-24 长鑫存储技术有限公司 驱动控制电路和存储器
CN116578631B (zh) * 2023-07-13 2023-10-13 国仪量子(合肥)技术有限公司 数据交互方法、数据采集设备、数据处理设备及交互系统
CN116776781B (zh) * 2023-08-17 2023-11-07 浪潮电子信息产业股份有限公司 一种寄存器参数的管理方法、系统、设备及存储介质
CN116909624B (zh) * 2023-09-12 2024-01-26 苏州浪潮智能科技有限公司 位图数据处理方法、随机存储器、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1630958A2 (en) * 2004-08-27 2006-03-01 STMicroelectronics Pvt. Ltd A minimal area integrated circuit implementation of a polyphase interpolation filter using coefficients symmetry
US7796464B1 (en) * 2003-06-27 2010-09-14 Cypress Semiconductor Corporation Synchronous memory with a shadow-cycle counter
CN205015270U (zh) * 2015-08-17 2016-02-03 绍兴文理学院 一种快速检测生物液态样品的光学装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029105A (en) * 1987-08-18 1991-07-02 Hewlett-Packard Programmable pipeline for formatting RGB pixel data into fields of selected size
JP2869321B2 (ja) * 1993-12-08 1999-03-10 大日本スクリーン製造株式会社 ポリゴンミラーのジッタ補正装置
US6629179B1 (en) * 2000-07-31 2003-09-30 Adaptec, Inc. Message signaled interrupt generating device and method
US20020099932A1 (en) * 2001-01-25 2002-07-25 Muro Manuel R. Mirroring processor stack
US6944717B2 (en) * 2001-07-27 2005-09-13 Fujitsu Limited Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom
KR100543910B1 (ko) * 2003-05-30 2006-01-23 주식회사 하이닉스반도체 디지털 지연고정루프 및 그의 제어 방법
JP4491365B2 (ja) * 2005-03-24 2010-06-30 Okiセミコンダクタ株式会社 直列インタフェース回路
FR2889328B1 (fr) * 2005-07-26 2007-09-28 Atmel Nantes Sa Sa Dispositif d'interfacage unidirectionnel de type fifo entre un bloc maitre et un bloc esclave, bloc maitre et bloc esclave correspondants
CN102004709B (zh) * 2009-08-31 2013-09-25 国际商业机器公司 处理器局部总线到高级可扩展接口之间的总线桥及映射方法
US8942248B1 (en) * 2010-04-19 2015-01-27 Altera Corporation Shared control logic for multiple queues
CN103117730B (zh) * 2012-12-28 2015-09-30 上海贝岭股份有限公司 多通道梳状滤波器及其实现方法
JP2016111672A (ja) * 2014-11-27 2016-06-20 株式会社沖データ 通信方法、通信システム及び通信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7796464B1 (en) * 2003-06-27 2010-09-14 Cypress Semiconductor Corporation Synchronous memory with a shadow-cycle counter
EP1630958A2 (en) * 2004-08-27 2006-03-01 STMicroelectronics Pvt. Ltd A minimal area integrated circuit implementation of a polyphase interpolation filter using coefficients symmetry
CN205015270U (zh) * 2015-08-17 2016-02-03 绍兴文理学院 一种快速检测生物液态样品的光学装置

Also Published As

Publication number Publication date
CN112363763A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN112363763B (zh) 数据处理方法、装置及计算机可读存储介质
CN105183665A (zh) 一种数据缓存访问方法和数据缓存控制器
CN112100090A (zh) 数据访问请求处理方法、装置、介质及内存映射控制器
JP3636672B2 (ja) 表示処理装置
JPH08320808A (ja) エミュレーション方式
CN116521604B (zh) 一种同步数据的方法及相关装置
EP2098969A1 (en) Logic circuit designing device for asynchronous logic circuit, logic circuit designing method, and logic circuit designing program
CN109388370A (zh) 一种实现先入先出队列的方法及装置
CN109800074A (zh) 任务数据并发执行方法、装置以及电子设备
CN111159124A (zh) Linux内核文件系统异步写缓存方法、装置及介质
CN112463110B (zh) 异步fifo的空满工作状态识别方法、装置及可读存储介质
US20120240128A1 (en) Memory Access Performance Diagnosis
CN112187233A (zh) 复位装置、方法、时钟系统及电子设备
US7024577B2 (en) Program logic device for synchronous operation with multiple clock signals
CN115756996B (zh) 一种芯片测试方法、装置、设备及可读存储介质
JP2000155701A (ja) デバッグ回路
JP2978913B2 (ja) ランダムアクセスメモリへの共用アクセスを制御する方法およびシステム
JP5126010B2 (ja) メモリアクセス制御回路及び画像処理装置
CN116974480A (zh) 闪存芯片访问方法、装置、设备及介质
JP2870812B2 (ja) 並列処理プロセッサ
CN117492547A (zh) 一种芯片中模块复位状态确定方法、装置、系统和介质
CN116955244A (zh) 数据处理方法、系统、芯片及终端
JP6664158B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
JP2517943B2 (ja) タイマ装置
CN117116323A (zh) 对单端口sram进行读写的方法、fifo模块、芯片

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant