CN113721858B - 一种存储器的快速读写方法、装置、电子设备及存储介质 - Google Patents
一种存储器的快速读写方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113721858B CN113721858B CN202111040307.0A CN202111040307A CN113721858B CN 113721858 B CN113721858 B CN 113721858B CN 202111040307 A CN202111040307 A CN 202111040307A CN 113721858 B CN113721858 B CN 113721858B
- Authority
- CN
- China
- Prior art keywords
- register
- data
- address
- command
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明公开了一种存储器的快速读写方法、装置、电子设备及存储介质,本发明可在等待数据值返回过程中,进行多个具有同一数据读取地址的数据读写命令对应数据值的一次性读取、多个具有不同数据读取地址的数据读写命令对应读取指令的串行发送以及多个具有同一地址的数据读写命令对应存储值的一次性写入,从而避免了现有技术需要每个命令都读写一次的弊端,由此,本发明即可缩短数据值的读取间隔时间,进而缩短存储值的写入间隔时间,最终提高了光子数累计的效率。
Description
技术领域
本发明属于时间测量系统中的存储器读写技术领域,具体涉及一种存储器的快速读写方法、装置、电子设备及存储介质。
背景技术
在时间测量系统中,通过计算光子到达时间,以柱状图累计的方式,可以得到一个关于光子信息的时间包络图,其横坐标为按照一定时间分辨率划分的时间值,纵坐标为光子数,当一个光子到达时,按照光子到达的时间位置,在相应的时间窗口内加一,多次累加之后,得到一个柱状图的信息,以实现光子到达时间的统计。
目前,柱状图的累计过程是通过把柱状图放在一个存储器中,每个分辨率(即一个时间段)对应存储器的一个地址,当某个光子到达时,读取此光子的时间信息对应地址中的数据值,待存储器中的数据被读出后,在此数据的基础上加一,然后再写入存储器,即实现一次柱状图的累计;同理,对于光子的多次测量,通过多次读出对应地址的数据值然后加一写回存储器,即可得到基于光子到达时间的柱状图信息。
但是,前述数据读写方法存在以下问题:由于每个光子做累计加一写回存储器的时候,需要先发送读命令,等待存储器中的数据返回,然后再加一写回,接着才能进行下一命令的发送,以此进行循环,从而实现光子数的累计,而对于同一地址来说,其也需要一次一次的读写,其读写次数与命令的个数相同,由此,则会增大两个光子被统计的时间间隔,即增大了系统的死时间,降低了光子数累计的效率,最终影响到实验的效果;因此,如何提高光子测量时存储器的读写速度成为一个亟待解决的问题。
发明内容
本发明的目的是提供一种存储器的快速读写方法、装置、电子设备及存储介质,以解决现有光子做累计加一时,需要先发送读命令,等待存储器中的数据返回,然后再加一写回,接着才能进行下一次读取,从而导致的同一地址需要多次读写,造成光子数累计效率较低的问题。
为了实现上述目的,本发明采用以下技术方案:
本发明提供了一种存储器的快速读写方法,使用N级寄存器组进行存储器中数据的读写,其中,所述N级寄存器组包括n个寄存器,且n个寄存器按照序号从高到低进行排序,所述方法包括:
S1.接收第一数据读写命令,其中,所述第一数据读写命令包括数据读取地址;
S2.将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中,并将所述第i个寄存器的存储有效指示位由0变为1,其中,所述第i个寄存器为所述N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器或存储有效指示位为0且排序最低的寄存器,i,N和n为整数;
S3.根据所述第一数据读写命令,生成第一数据读取指令,其中,所述第一数据读取指令包括所述数据读取地址;
S4.向存储器驱动模块发送所述第一数据读取指令,以使所述存储器驱动模块根据所述第一数据读取指令,从存储器中读取与所述数据读取地址相对应的第一数据值;
S5.若在接收到所述第一数据值前,接收到第二数据读写命令,则判断所述N级寄存器组中是否存在存储有第二地址的寄存器,其中,所述第二地址为所述第二数据读写命令中的数据读取地址;
S6.若是,则将存储有第二地址的寄存器的读命令统计值加1;
S7.重复步骤S5和步骤S6,直至接收到所述第一数据值时,停止接收第二数据读写命令;
S8.在接收到所述第一数据值后,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值;
S9.将所述存储值发送至所述存储器驱动模块,以使所述存储器驱动模块将所述存储值存储至所述存储器中;
S10.将所述第i个寄存器的存储有效指示位以及读命令统计值变为0,并重复步骤S1~S10,直至未接收到新的第一数据读写命令为止。
基于上述公开的内容,本发明通过在等待第一数据读写命令对应的数据值返回过程中,对接收到的第二数据读写命令中的地址进行判断,即判断N级寄存器组中是否存在存储有第二地址的寄存器,若存在,则将存储有第二地址的寄存器的读命令统计值加1,以此循环,直至接收到第一数据值为止;由此,本发明即可在数据值返回过程中,对具有相同地址的命令进行统计,也就是直接对存储有该相同地址的寄存器的读命令统计值加一,而当第一数据值返回后,即可使用第一数据值加上对应寄存器的读命令统计值,从而具得到有相同地址的多个命令的存储值,最后,将该存储值存入存储器,即可实现多个具有相同地址命令对应数据值的一次性读取,以及存储值的一次性写入。
通过上述设计,本发明通过使用多个寄存器,而每个寄存器可存储一个地址,从而在等待一个命令的数据值返回期间,对接收到的多个命令中的地址进行判别,从而将相同地址存入一个寄存器,并对对应寄存器的读命令统计值加1,最后,在接收到该命令的数据值时,即可使用数据值加上对应寄存器的读命令统计值,从而得到具有相同地址的多个命令的存储值;由此,即可实现多个具有相同地址命令对应数据的一次性读取,以及存储值的一次性写入,而无需每个命令读写一次,大大的提高了光子数累计的效率。
在一个可能的设计中,所述方法还包括:
若所述N级寄存器组中不存在存储有第二地址的寄存器,则将所述第二地址存储至第j个寄存器中,其中,所述第j个寄存器为所述第i个寄存器的下一个寄存器;
根据所述第二地址,生成第二数据读取指令,其中,所述第二数据读取指令包括所述第二地址;
向所述存储器驱动模块发送所述第二数据读取指令,以使所述存储器驱动模块根据所述第二数据读取指令,在存储器中读取与所述第二地址相对应的第二数据值。
基于上述公开的内容,若N级寄存器组中不存在存储有第二地址的寄存器,则说明在n个寄存器中没有存入过第二地址,因此,则需要将第二地址存储至第i个寄存器的下一个寄存器中;同时,本发明还会生成第二数据读取指令,并发送至存储器驱动模块;由此,本发明可实现多个具有不同地址的数据读写命令对应读取指令的串行发送,从而避免现有技术需等待前一个命令的数据值返回并写入后才能发送下一读取指令的弊端,由此,即可减少数据读取指令的发送间隔时间,从而减少不同地址对应存储值的写入间隔时间,进而进一步的提高了光子数的累计效率。
在一个可能的设计中,在将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中前,所述方法还包括:
判断所述N级寄存器组中是否存在存储有所述数据读取地址的寄存器;
若否,则将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中。
在一个可能的设计中,所述方法还包括:
若是,则将存储有所述数据读取地址的寄存器的读命令统计值加1。
基于上述公开的内容,本发明在将第一数据读写命令中的数据读取地址存储前,需要判断n个寄存器中是否存储有该命令对应的数据读取地址;若不存在,则可存储至第i个寄存器中,而若存在,则直接将存储有该地址的寄存器的读命令统计值加1;由此,即可实现具有同一地址的多个命令的一次性计数。
在一个可能的设计中,据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值,包括:
将所述第一数据值与所述第i个寄存器的读命令统计值相加,得到所述存储值。
在一个可能的设计中,所述N级寄存器组包括至少4个寄存器或至少8个寄存器。
第二方面,本发明提供了一种存储器的快速读写装置,包括:接收单元、存储单元、命令生成单元、发送单元、判断单元、统计单元、第一循环单元、计算单元以及第二循环单元;
所述接收单元,用于执行步骤S1,所述步骤S1为:接收第一数据读写命令,其中,所述第一数据读写命令包括数据读取地址;
所述存储单元,用于执行步骤S2,所述步骤S2为:将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中,并将所述第i个寄存器的存储有效指示位由0变为1,其中,所述第i个寄存器为N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器或存储有效指示位为0且排序最低的寄存器,i,N和n为整数;
所述命令生成单元,用于执行步骤S3,所述步骤S3为:根据所述第一数据读写命令,生成第一数据读取指令,其中,所述第一数据读取指令包括所述数据读取地址;
所述发送单元,用于执行步骤S4,所述步骤S4为:向存储器驱动模块发送所述第一数据读取指令,以使所述存储器驱动模块根据所述第一数据读取指令,从存储器中读取与所述数据读取地址相对应的第一数据值;
所述判断单元,用于执行步骤S5,所述步骤S5为:若在接收到所述第一数据值前,接收到第二数据读写命令,则判断所述N级寄存器组中是否存在存储有第二地址的寄存器,其中,所述第二地址为所述第二数据读写命令中的数据读取地址;
所述统计单元,用于执行步骤S6,所述步骤S6为:若是,则将存储有第二地址的寄存器的读命令统计值加1;
所述第一循环单元,用于执行步骤S7,所述步骤S7为:重复所述步骤S5和所述步骤S6,直至接收到所述第一数据值时,停止接收第二数据读写命令;
所述计算单元,用于执行步骤S8,所述步骤S8为:在接收到所述第一数据值后,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值;
所述发送单元,还用于执行步骤S9,所述步骤S9为:将所述存储值发送至所述存储器驱动模块,以使所述存储器驱动模块将所述存储值存储至所述存储器中;
所述循环单元,用于执行步骤S10,所述步骤S10为:将所述第i个寄存器的存储有效指示位以及读命令统计值变为0,并重复所述步骤S1~S10,直至未接收到新的第一数据读写命令为止。
在一个可能的设计中:
所述存储单元,还用于在所述判断单元判断出所述N级寄存器组中不存在存储有第二地址的寄存器时,将所述第二地址存储至第j个寄存器中,其中,所述第j个寄存器为所述第i个寄存器的下一个寄存器;
所述命令生成单元,还用于根据所述第二地址,生成第二数据读取指令,其中,所述第二数据读取指令包括所述第二地址;
所述发送单元,还用于向所述存储器驱动模块发送所述第二数据读取指令,以使所述存储器驱动模块根据所述第二数据读取指令,在存储器中读取与所述第二地址相对应的第二数据值。
第三方面,本发明提供了一种电子设备,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计的所述存储器的快速读写方法。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意一种可能设计的所述存储器的快速读写方法。
第五方面,本发明供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意一种可能设计的所述存储器的快速读写方法。
附图说明
图1为本发明提供的存储器的快速读写系统的结构示意图;
图2为本发明提供的存储器的快速读写方法的步骤流程示意图;
图3为本发明提供的存储器的快速读写装置的结构示意图;
图4为本发明提供的电子设备的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
实施例
如图1所示,为本申请提供一种系统架构,包括命令生成模块、存储器加速模块、存储器驱动模块以及存储器;其中,命令生成模块用于生成多个数据读写命令,并发送至存储器加速模块,而存储器加速模块包括一N级寄存器组(N级寄存器组中包括n个寄存器),其在接收到多个数据读写命令后,可使用本实施例所提供的快速读写方法,进行多个具有同一地址的数据读写命令对应数据值的一次性读取、对应存储值的一次性写入以及多个具有不同地址的数据读写命令对应读取指令的串行发送;由此,本发明无需每个命令都读写一次,大大的提高了光子数累计的效率。
而存储器驱动模块则提供读写存储器的驱动接口,以在接收到存储器加速模块发送的数据读取指令后,在存储器中读取出与对应数据读取指令相匹配的数据值,以及将各个数据读写命令对应存储值写入存储器中。
本实施例第一方面所提供的存储器的快速读写方法,是使用N级寄存器组进行存储器中数据的读写,其实质为:利用N级寄存器组中的n个寄存器作为地址存储载体,即每一个寄存器可存储一个地址,从而将相同地址存入一个寄存器,然后对对应寄存器的读命令统计值加1,由此,即可完成具有同一数据读取地址的数据读写命令对应数据值的一次性读取以及对应存储值的一次性写入。
在本实施例中,举例所述N级寄存器组包括n个寄存器,例如包括至少4个寄存器或至少8个寄存器,当然,寄存器的数量不做限定,可根据实际使用而具体设定;
在本实施例中,举例n个寄存器按照序号从高到低进行排序;例如,4个寄存器依次编号为1,2,3,4,即排序为:第一个寄存器、第二个寄存器、第三个寄存器以及第四个寄存器。
下述在前述N级寄存器组的基础上,阐述本实施例所提供的存储器的快速读写方法,其可以但不限于在存储器加速模块侧执行,实现步骤包括如下步骤S1~S10。
S1.接收第一数据读写命令,其中,所述第一数据读写命令包括数据读取地址。
步骤S1则是存储器加速模块接收命令生成模块发送的第一数据读取命令的过程,从而依据第一数据读取命令,进行存储器中数据的读取,以在测量光子到达时间时,实现光子数的累计;在本实施例中,每个数据读写命令均包含有对应的数据读取地址,以便用于根据该数据读取地址在存储器中进行数据的读取。
S2.将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中,并将所述第i个寄存器的存储有效指示位由0变为1,其中,所述第i个寄存器为所述N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器或存储有效指示位为0且排序最低的寄存器,i,N和n为整数。
步骤S2则是进行地址存储的过程,以便后续进行不同数据读写命令的计数;在本实施例中,每个寄存器均可以存储一个读写命令的地址、一个读命令统计值以及存储有效指示位,其中,在未存入地址时,读命令统计值为0;存入一个地址,读命令统计值则加1;而存储有效指示位则用于表示寄存器中是否存入有读写命令的地址,若存入则变为1,未存入则为0。
在本实施例中,由于每次发送第一数据读写指令给存储器加速模块时,不可能每个寄存器都没有存入地址,因此,在将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中前,所述方法还包括如下步骤S021、步骤S022以及步骤S023,如下所示:
S021.判断所述N级寄存器组中是否存在存储有所述数据读取地址的寄存器。
S022.若是,则将存储有所述数据读取地址的寄存器的读命令统计值加1。
S023.若否,则将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中。
前述步骤S021~S023则是判断N级寄存器中是否存储有第一数据读写命令对应的数据读取地址,即n个寄存器中是否存在有一个寄存器存储有前述数据读取地址,若存在(假设为第一存储器存储了该地址),则说明已经发送了一个读命令给存储器驱动模块,也就是在接收第一数据读写命令前,已经接收有另一数据读写命令,并已经向存储器驱动模块发送了数据读取指令,而现正处于等待数据(即数据值)返回的过程中;此时,则直接将第一数据读写命令中的数据读取地址存储至对应寄存器(即存储至第一寄存器),并将第一寄存器的读命令统计值加1即可实现两次命令对应数据值的统计(其原理参见下述步骤S2~S10);若不存在,则说明未有相同地址存入,则需进行步骤S2。
下述以一个实例来阐述步骤S2。
举例N级寄存器组包括4个寄存器,排序为:第一寄存器、第二寄存器、第三寄存器以及第四寄存器,其中,第一数据读写命令中的数据读取地址为A3。
假设4个寄存器中均未存入有地址,即4个寄存器的存储有效指示位均为0;同时,在本实施例中,第i个寄存器满足两个条件之一即可;条件一是:N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器;条件二是:N级寄存器组中存储有效指示位为0且排序最低的寄存器。
当接收到第一数据读写命令后,首先判断4个寄存器是否存储有地址A3,由于4个寄存器的有效指示位均为0,均未存储,由此,则需要进行步骤S2。
同时,由于4个寄存器的有效指示位均为0,因此不满足条件1,但是满足条件2(即存储有效指示位为0且排序最低的寄存器,也就是第一寄存器),那么即可将第一数据读写命令中的数据读取地址存储至第第一个寄存器中,此时,第一寄存器的存储有效指示位则由0变为1,且对应的读命令统计值则加1,即由0+1=1。
同理,若前述4个寄存器中的第一寄存器存入了地址A1,第二寄存器存储了地址A2,而第三和第四寄存器则未存储有地址,那么第一寄存器和第二寄存器的存储有效指示位为1,而第三和第四寄存器的存储有效指示位为0;那么4个寄存器中也没存储有地址A3,因此,需要将地址A3存储至第i寄存器中,此时,存储有效指示位为0的寄存器有第三和第四寄存器,其满足条件1,所得出的寄存器是第3寄存器,因此,则需要将地址A3存储至第3寄存器中,此时,第三寄存器的存储有效指示位则由0变为1,且对应的读命令统计值则加1,即由0+1=1。
同理,若前述4个寄存器中的第2寄存器存入了地址A1,第三寄存器存储了地址A2,那么第i个寄存器则为满足条件1的寄存器,也就是存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器,此时,则需要将地址A3存储至第四寄存器中。
由此,通过前述阐述可知,本实施例中,n个寄存器是依次存储,存储完毕后,再重新开始存储;还是以4个寄存器为例,存储规则为:从第一寄存器开始,接着存入第二寄存器第三寄存器,第四寄存器,存储完后,又从第一寄存器开始,以此循环。
在将第一数据读写命令对应的数据读取地址存入第i个寄存器后,即可进行步骤S3~S10,如下所示:
S3.根据所述第一数据读写命令,生成第一数据读取指令,其中,所述第一数据读取指令包括所述数据读取地址。
S4.向存储器驱动模块发送所述第一数据读取指令,以使所述存储器驱动模块根据所述第一数据读取指令,从存储器中读取与所述数据读取地址相对应的第一数据值。
步骤S3和步骤S4则是生成第一数据读取指令,并向发送至存储器驱动模块的过程,其实质为:将第一数据读写命令对应的数据读取地址发送至存储器驱动模块,从而使存储器驱动模块根据该地址在存储器中进行数据的读取,从而得到第一数据值,以返回给存储器加速模块。
而步骤S5~S7则是进行数据读取的过程,即进行累计的过程,步骤S5~S7可进行多个具有同一数据读取地址的数据读写命令对应数据值的一次性读取,从而避免了现有技术需要一个命令读取一次的弊端,提高了光子数累计的效率。
S5.若在接收到所述第一数据值前,接收到第二数据读写命令,则判断所述N级寄存器组中是否存在存储有第二地址的寄存器,其中,所述第二地址为所述第二数据读写命令中的数据读取地址;
S6.若是,则将存储有第二地址的寄存器的读命令统计值加1。
S7.重复步骤S5和步骤S6,直至接收到所述第一数据值时,停止接收第二数据读写命令。
在本实施例中,若所述N级寄存器组中不存在存储有第二地址的寄存器,则需要进行以下步骤S51、步骤S52以及步骤S53,如下所示:
S51.将所述第二地址存储至第j个寄存器中,其中,所述第j个寄存器为所述第i个寄存器的下一个寄存器。
S52.根据所述第二地址,生成第二数据读取指令,其中,所述第二数据读取指令包括所述第二地址。
S53.向所述存储器驱动模块发送所述第二数据读取指令,以使所述存储器驱动模块根据所述第二数据读取指令,在存储器中读取与所述第二地址相对应的第二数据值。
下述以一个实例来阐述前述步骤S5~S7,以及步骤S51~S53:
还是在前述举例的基础上,即第一数据读写命令中的数据读取地址为A3,其在步骤S2中存储至第1个寄存器中;同时,假设在接收到第一数据值前,按照先后顺序依次接收到第二数据读写命令B1(其对应的第二地址为A3)、第二数据读写命令B2(对应的第二地址为A2)以及第二数据读写命令B3(对应的第二地址为A3)。
那么,当接收到第二数据读写命令B1后,会判断前述4个寄存器中是否存储有第二地址A3,由于在步骤S2中,第一寄存器中存入的地址则为A3,因此,则会将第二数据读写命令B1对应的地址存入第一寄存器中,并将第一寄存器的读命令统计值加1(也就变为1+1=2)。
当接收到第二数据读写命令B2后,由于前述4个寄存器中,只有第一寄存器中存入了2个地址A3,此时,4个寄存器中不存在存储有地址A2的寄存器,因此,需要将第二数据读写命令B2对应的地址A2存储至第i个寄存器的下一个寄存器中,即第二寄存器中;同时,本实施例还会根据第二数据读写命令中的第二地址,生成第二数据读取指令,并发送至存储器驱动模块;由此,通过前述设计,可实现多个具有不同地址的命令对应数据读取指令的串行发送,从而避免现有技术需等待前一个命令的数据值返回并写入存储器后才能发送下一读取指令的弊端,由此,即可减少数据读取指令的发送间隔时间,从而减少不同地址对应存储值的写入间隔时间,进而提高光子数的累计效率。
此时,第一寄存器中存储有地址A3,对应的读命令统计值为2;第二寄存器中存储有地址A2,对应的读命令统计值为1。
最后,当接收到第二数据读写命令B3后,由于第一寄存器存储的地址为A3,因此,会将第二数据读写命令B3对应的地址A3存储至第一寄存器中,此时,则会将第一寄存器的读命令统计值加1,即在前面2的基础上加1,变为3。
由于在接收到第二数据读写命令后,存储器加速模块接收到了第一数据值,因此,则会停止接收前述命令生成模块发送的命令,即停止接收前述第二数据读写命令;而在前述过程中,本实施例实现了具有地址A3的三个命令的数据值的一次性读取;由此,本实施例可在第一数据值返回过程中,进行多个具有相同地址的数据读写命令对应数据值的一次性读取。
由此通过前述前述,本发明可在等待数据值返回过程中,进行多个具有同一数据读取地址的数据读写命令对应数据值的一次性读取以及多个具有不同数据读取地址命令的读取指令的串行发送,从而缩短了数据读取以及读取指令发送间隔时间,达到了缩短存储值的写入间隔时间的目的,进而提高了光子数的累计效率。
在接收到第一数据值后,即可进行如下步骤S8~S10。
S8.在接收到所述第一数据值后,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值;在本实施例中,将所述第一数据值与所述第i个寄存器的读命令统计值相加,即可得到所述存储值。
S9.将所述存储值发送至所述存储器驱动模块,以使所述存储器驱动模块将所述存储值存储至所述存储器中。
S10.将所述第i个寄存器的存储有效指示位以及读命令统计值变为0,并重复步骤S1~S10,直至未接收到新的第一数据读写命令为止。
同理,还是在前述举例基础上,阐述步骤S8~S10:
假设第一数据值为13,且由上可知,在前述在第一数据值返回过程中,第一数据读写指令对应的数据读取地址存入的寄存器为第一寄存器,而第一寄存器的读命令统计值为3;且同时,还向存储器驱动模块发送了第二数据读取指令;由此,通过前述步骤S8~S10,即可得出第一数据读写命令中数据读取地址对应的存储值为:13+3=16,因此,即可将16发送至存储器驱动模块,由存储器驱动模块将16存储至存储器中。
同时,再将16发送至存储器驱动模块后,还需第一寄存器的存储有效指示位则变为0(表示其未存储有地址),以及将第一寄存器的读命令统计值清空,即也变为0,以便进行新的第一数据读写命令,即重复前述步骤S1~S10,即可不断的实现光子数的累计,直至未接收到新的第一数据读写命令为止。
另外,由于本实施例在第一数据值返回过程中,还向存储器驱动模块发送了第二数据读取指令;因此,在第一数据值返回后,其也会接收到第二数据读取指令对应的第二数据值,假设第二数据值为9;那么在前述举例上可知:第二数据读写命令B2对应的存储值则为:9+1=10,由此,本实施例在将第一数据读写命令对应的存储值存储至存储器后,还会接着将第二数据读写命令B2对应的存储值存储至存储器中。
通过对前述步骤S8~S10的阐述,本实施例可实现具有同一地址的数据读写命令对应存储值的一次性写入,而无需每接收一条命令写入一次,从而缩短了存储值的写入时间,提高了光子数的累计效率。
由此通过前述步骤S1~S10及其各个子步骤对所述存储器的快速读写方法的详细阐述,本发明可在等待数据值返回过程中,进行多个具有同一数据读取地址的数据读写命令对应数据值的一次性读取、多个具有不同数据读取地址的数据读写命令对应读取指令的串行发送以及多个具有同一地址的数据读写命令对应存储值的一次性写入,从而避免了现有技术需要每个命令都读写一次的弊端,由此,本发明即可缩短数据值的读取间隔时间,进而缩短存储值的写入间隔时间,最终提高了光子数累计的效率。
如图3所示,本实施例第二方面提供了一种实现实施例第一方面中所述的存储器的快速读写方法的硬件装置,包括:接收单元、存储单元、命令生成单元、发送单元、判断单元、统计单元、第一循环单元、计算单元以及第二循环单元。
所述接收单元,用于执行步骤S1,所述步骤S1为:接收第一数据读写命令,其中,所述第一数据读写命令包括数据读取地址。
所述存储单元,用于执行步骤S2,所述步骤S2为:将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中,并将所述第i个寄存器的存储有效指示位由0变为1,其中,所述第i个寄存器为N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器或存储有效指示位为0且排序最低的寄存器,i,N和n为整数。
所述命令生成单元,用于执行步骤S3,所述步骤S3为:根据所述第一数据读写命令,生成第一数据读取指令,其中,所述第一数据读取指令包括所述数据读取地址。
所述发送单元,用于执行步骤S4,所述步骤S4为:向存储器驱动模块发送所述第一数据读取指令,以使所述存储器驱动模块根据所述第一数据读取指令,从存储器中读取与所述数据读取地址相对应的第一数据值。
所述判断单元,用于执行步骤S5,所述步骤S5为:若在接收到所述第一数据值前,接收到第二数据读写命令,则判断所述N级寄存器组中是否存在存储有第二地址的寄存器,其中,所述第二地址为所述第二数据读写命令中的数据读取地址。
所述统计单元,用于执行步骤S6,所述步骤S6为:若是,则将存储有第二地址的寄存器的读命令统计值加1。
所述第一循环单元,用于执行步骤S7,所述步骤S7为:重复所述步骤S5和所述步骤S6,直至接收到所述第一数据值时,停止接收第二数据读写命令。
所述计算单元,用于执行步骤S8,所述步骤S8为:在接收到所述第一数据值后,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值。
所述发送单元,还用于执行步骤S9,所述步骤S9为:将所述存储值发送至所述存储器驱动模块,以使所述存储器驱动模块将所述存储值存储至所述存储器中。
所述循环单元,用于执行步骤S10,所述步骤S10为:将所述第i个寄存器的存储有效指示位以及读命令统计值变为0,并重复所述步骤S1~S10,直至未接收到新的第一数据读写命令为止。
在一个可能的设计中:
所述存储单元,还用于在所述判断单元判断出所述N级寄存器组中不存在存储有第二地址的寄存器时,将所述第二地址存储至第j个寄存器中,其中,所述第j个寄存器为所述第i个寄存器的下一个寄存器。
所述命令生成单元,还用于根据所述第二地址,生成第二数据读取指令,其中,所述第二数据读取指令包括所述第二地址。
所述发送单元,还用于向所述存储器驱动模块发送所述第二数据读取指令,以使所述存储器驱动模块根据所述第二数据读取指令,在存储器中读取与所述第二地址相对应的第二数据值。
本实施例提供的硬件装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
如图4所示,本实施例第三方面提供了一种电子设备,包括:依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如实施例第一方面所述的存储器的快速读写方法。
具体举例的,所述存储器可以但不限于包括随机存取存储器(random accessmemory,RAM)、只读存储器(Read Only Memory image,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First In Last Out,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器、精简指令集计算机(reduced instruction set computer,RSIC)微处理器、X86等架构处理器或集成嵌入式神经网络处理器(neural-network processing units,NPU)的处理器;所述收发器可以但不限于为无线保真(WIFI)无线收发器、蓝牙无线收发器、通用分组无线服务技术(General Packet Radio Service,GPRS)无线收发器、紫蜂协议(基于IEEE802.15.4标准的低功耗局域网协议,ZigBee)无线收发器、3G收发器、4G收发器和/或5G收发器等。此外,所述装置还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例提供的计算机主设备的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
本实施例第四方面提供了一种存储包含有实施例第一方面所述的中药药材的检索方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的存储器的快速读写方法。
其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如实施例第一方面所述的存储器的快速读写方法,其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种存储器的快速读写方法,其特征在于,使用N级寄存器组进行存储器中数据的读写,其中,所述N级寄存器组包括n个寄存器,且n个寄存器按照序号从高到低进行排序,所述方法包括:
S1.接收第一数据读写命令,其中,所述第一数据读写命令包括数据读取地址;
S2.将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中,并将所述第i个寄存器的存储有效指示位由0变为1,其中,所述第i个寄存器为所述N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器或存储有效指示位为0且排序最低的寄存器,i,N和n为整数;
S3.根据所述第一数据读写命令,生成第一数据读取指令,其中,所述第一数据读取指令包括所述数据读取地址;
S4.向存储器驱动模块发送所述第一数据读取指令,以使所述存储器驱动模块根据所述第一数据读取指令,从存储器中读取与所述数据读取地址相对应的第一数据值;
S5.若在接收到所述第一数据值前,接收到第二数据读写命令,则判断所述N级寄存器组中是否存在存储有第二地址的寄存器,其中,所述第二地址为所述第二数据读写命令中的数据读取地址;
S6.若是,则将存储有第二地址的寄存器的读命令统计值加1;
S7.重复步骤S5和步骤S6,直至接收到所述第一数据值时,停止接收第二数据读写命令;
S8.在接收到所述第一数据值后,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值;
S9.将所述存储值发送至所述存储器驱动模块,以使所述存储器驱动模块将所述存储值存储至所述存储器中;
S10.将所述第i个寄存器的存储有效指示位以及读命令统计值变为0,并重复步骤S1~S10,直至未接收到新的第一数据读写命令为止。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述N级寄存器组中不存在存储有第二地址的寄存器,则将所述第二地址存储至第j个寄存器中,其中,所述第j个寄存器为所述第i个寄存器的下一个寄存器;
根据所述第二地址,生成第二数据读取指令,其中,所述第二数据读取指令包括所述第二地址;
向所述存储器驱动模块发送所述第二数据读取指令,以使所述存储器驱动模块根据所述第二数据读取指令,在存储器中读取与所述第二地址相对应的第二数据值。
3.如权利要求1所述的方法,其特征在于,在将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中前,所述方法还包括:
判断所述N级寄存器组中是否存在存储有所述数据读取地址的寄存器;
若否,则将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若是,则将存储有所述数据读取地址的寄存器的读命令统计值加1。
5.如权利要求1所述的方法,其特征在于,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值,包括:
将所述第一数据值与所述第i个寄存器的读命令统计值相加,得到所述存储值。
6.如权利要求1所述的方法,其特征在于,所述N级寄存器组包括至少4个寄存器或至少8个寄存器。
7.一种存储器的快速读写装置,其特征在于,包括:接收单元、存储单元、命令生成单元、发送单元、判断单元、统计单元、第一循环单元、计算单元以及第二循环单元;
所述接收单元,用于执行步骤S1,所述步骤S1为:接收第一数据读写命令,其中,所述第一数据读写命令包括数据读取地址;
所述存储单元,用于执行步骤S2,所述步骤S2为:将所述第一数据读写命令中的数据读取地址存储至第i个寄存器中,并将所述第i个寄存器的存储有效指示位由0变为1,其中,所述第i个寄存器为N级寄存器组中存储有效指示位为0且上一寄存器的存储有效指示位为1的寄存器或存储有效指示位为0且排序最低的寄存器,i,N和n为整数;
所述命令生成单元,用于执行步骤S3,所述步骤S3为:根据所述第一数据读写命令,生成第一数据读取指令,其中,所述第一数据读取指令包括所述数据读取地址;
所述发送单元,用于执行步骤S4,所述步骤S4为:向存储器驱动模块发送所述第一数据读取指令,以使所述存储器驱动模块根据所述第一数据读取指令,从存储器中读取与所述数据读取地址相对应的第一数据值;
所述判断单元,用于执行步骤S5,所述步骤S5为:若在接收到所述第一数据值前,接收到第二数据读写命令,则判断所述N级寄存器组中是否存在存储有第二地址的寄存器,其中,所述第二地址为所述第二数据读写命令中的数据读取地址;
所述统计单元,用于执行步骤S6,所述步骤S6为:若是,则将存储有第二地址的寄存器的读命令统计值加1;
所述第一循环单元,用于执行步骤S7,所述步骤S7为:重复所述步骤S5和所述步骤S6,直至接收到所述第一数据值时,停止接收第二数据读写命令;
所述计算单元,用于执行步骤S8,所述步骤S8为:在接收到所述第一数据值后,根据所述第一数据值以及所述第i个寄存器的读命令统计值,得到所述第一数据读写命令中数据读取地址对应的存储值;
所述发送单元,还用于执行步骤S9,所述步骤S9为:将所述存储值发送至所述存储器驱动模块,以使所述存储器驱动模块将所述存储值存储至所述存储器中;
所述循环单元,用于执行步骤S10,所述步骤S10为:将所述第i个寄存器的存储有效指示位以及读命令统计值变为0,并重复所述步骤S1~S10,直至未接收到新的第一数据读写命令为止。
8.如权利要求7所述的装置,其特征在于:
所述存储单元,还用于在所述判断单元判断出所述N级寄存器组中不存在存储有第二地址的寄存器时,将所述第二地址存储至第j个寄存器中,其中,所述第j个寄存器为所述第i个寄存器的下一个寄存器;
所述命令生成单元,还用于根据所述第二地址,生成第二数据读取指令,其中,所述第二数据读取指令包括所述第二地址;
所述发送单元,还用于向所述存储器驱动模块发送所述第二数据读取指令,以使所述存储器驱动模块根据所述第二数据读取指令,在存储器中读取与所述第二地址相对应的第二数据值。
9.一种电子设备,其特征在于,包括:依次相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~6任意一项所述的存储器的快速读写方法。
10.一种存储介质,其特征在于,所述存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~6任意一项所述的存储器的快速读写方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111040307.0A CN113721858B (zh) | 2021-09-06 | 2021-09-06 | 一种存储器的快速读写方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111040307.0A CN113721858B (zh) | 2021-09-06 | 2021-09-06 | 一种存储器的快速读写方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113721858A CN113721858A (zh) | 2021-11-30 |
CN113721858B true CN113721858B (zh) | 2023-08-29 |
Family
ID=78682005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111040307.0A Active CN113721858B (zh) | 2021-09-06 | 2021-09-06 | 一种存储器的快速读写方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113721858B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115148015A (zh) * | 2022-06-30 | 2022-10-04 | 广州为乐信息科技有限公司 | 一种智慧空开隔离终端控制系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004013962A (ja) * | 2002-06-04 | 2004-01-15 | Nec Corp | 映像記録再生装置及びファイルシステム |
CN104021086A (zh) * | 2014-05-26 | 2014-09-03 | 西安交通大学 | 一种8位单片机读写16位存储单元ram的实现方法 |
CN111488297A (zh) * | 2020-04-02 | 2020-08-04 | 杭州迪普科技股份有限公司 | 用于访问寄存器的方法、装置、电子设备及可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444573B2 (en) * | 2005-06-09 | 2008-10-28 | Texas Instruments Incorporated | VLCT programmation/read protocol |
-
2021
- 2021-09-06 CN CN202111040307.0A patent/CN113721858B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004013962A (ja) * | 2002-06-04 | 2004-01-15 | Nec Corp | 映像記録再生装置及びファイルシステム |
CN104021086A (zh) * | 2014-05-26 | 2014-09-03 | 西安交通大学 | 一种8位单片机读写16位存储单元ram的实现方法 |
CN111488297A (zh) * | 2020-04-02 | 2020-08-04 | 杭州迪普科技股份有限公司 | 用于访问寄存器的方法、装置、电子设备及可读介质 |
Non-Patent Citations (1)
Title |
---|
一种基于活跃周期的低端口数低能耗寄存器堆设计;赵雨来;李险峰;佟冬;孙含欣;陈杰;程旭;;计算机学报(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113721858A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100524252C (zh) | 一种嵌入式系统芯片及数据读写处理方法 | |
US7970963B2 (en) | Efficient buffer management in a multi-threaded network interface | |
CN110806986A (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
CN108111366B (zh) | 分析信号延迟时间的方法与装置 | |
CN112084136B (zh) | 队列缓存管理方法、系统、存储介质、计算机设备及应用 | |
CN113721858B (zh) | 一种存储器的快速读写方法、装置、电子设备及存储介质 | |
CN101809547B (zh) | 使用n路高速缓冲存储器的系统和方法 | |
CN105573711B (zh) | 一种数据缓存方法及装置 | |
CN114356223B (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
US20200259766A1 (en) | Packet processing | |
CN109933546A (zh) | 一种ssd主控中的raid主动加速装置和加速方法 | |
CN102957629A (zh) | 队列管理的方法和装置 | |
US8094552B1 (en) | Adaptive buffer for frame based storage communications protocols | |
CN113672030B (zh) | 数据传输速率发生器和相关装置及方法 | |
CN104199783A (zh) | Fpga内以太网数据帧的缓存与转发的方法及装置 | |
CN101854259B (zh) | 一种数据包的计数方法及系统 | |
CN105516023A (zh) | 一种报文转发方法和装置 | |
US20230394307A1 (en) | Data caching method and apparatus for multiple concurrent deep learning training tasks | |
CN116661703B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN106356088A (zh) | 一种数据处理方法及其装置 | |
CN115002052B (zh) | 一种分层的缓存控制器、控制方法及控制设备 | |
CN111369444A (zh) | 一种图像缩放处理方法及装置 | |
CN106776393B (zh) | 一种无中断的串口数据接收方法和装置 | |
CN113204515B (zh) | Pcie应用层数据接收过程中的流控系统及方法 | |
US8645597B2 (en) | Memory block reclaiming judging apparatus and memory block managing system |
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 |