CN113076070A - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN113076070A CN113076070A CN202110623389.5A CN202110623389A CN113076070A CN 113076070 A CN113076070 A CN 113076070A CN 202110623389 A CN202110623389 A CN 202110623389A CN 113076070 A CN113076070 A CN 113076070A
- Authority
- CN
- China
- Prior art keywords
- command
- state
- executed
- commands
- read
- 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.)
- Pending
Links
Images
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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法和装置。该方法包括:获取双倍速率同步动态随机存储器中读写状态机的状态;获取双倍速率同步动态随机存储器在待选择命令中选取的状态对应的指定命令,指定命令指示了在双倍速率同步动态随机存储器中指定命令针对的目标区块;在处理指定命令之外的待选择命令中选取针对目标区块的待执行命令;执行待执行命令,以对目标区块中的数据进行处理,减少了执行双倍速率同步动态随机存储器中的执行命令时,切换区块的次数,节约了切换区块花费的等待时间,从而提高了数据处理效率。
Description
技术领域
本申请涉及电子技术领域,特别涉及一种数据处理方法和装置。
背景技术
双倍速率同步动态随机(Double Data Rate,DDR)存储器内部通常会有一个命令队列,用来缓存和控制访问DDR的读写命令。命令队列通常是一个顺序进、乱序出的队列,命令执行杂乱,影响DDR的读写效率。
发明内容
本申请旨在提供一种数据处理方法和装置,能够在一定程度上提高数据处理效率。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:获取双倍速率同步动态随机数据存储器中读写状态机的状态;获取所述双倍速率同步动态随机存储器在待选择命令中选取的所述状态对应的指定命令,所述指定命令指示了在所述双倍速率同步动态随机存储器中所述指定命令针对的目标区块;在除了所述指定命令之外的待选择命令中选取针对所述目标区块的待执行命令;执行所述待执行命令,以对所述目标区块中的数据进行处理。
根据本申请实施例的一个方面,提供了一种数据处理装置,包括:状态获取模块,配置为获取双倍速率同步动态随机数据存储器中读写状态机的状态;命令获取模块,配置为获取所述双倍速率同步动态随机存储器在待选择命令中选取的所述状态对应的指定命令,所述指定命令指示了在所述双倍速率同步动态随机存储器中所述指定命令针对的目标区块;选取模块,配置为在除了所述指定命令之外的待选择命令中选取针对所述目标区块的待执行命令;执行模块,配置为执行所述待执行命令,以对所述目标区块中的数据进行处理。
在本申请的一个实施例中,基于前述方案,所述选取模块还配置为:统计连续选取的针对所述目标区块的待执行命令的数量,作为第一数量;若所述第一数量达到第一数量阈值,则变更所述读写状态机的状态,重新获取所述读写状态机的状态,以重新根据所述状态选取所述待执行命令,其中,重新选取的所述状态对应的指定命令针对所述双倍速率同步动态随机数据存储器中除了所述目标区块之外的其他区块。
在本申请的一个实施例中,基于前述方案,所述指定命令中包含所述指定命令的命令类型,在执行所述待执行命令之前,所述选取模块还配置为:在除了所述指定命令之外的待选择命令中选取与所述指定命令的命令类型相同类型的待执行命令。
在本申请的一个实施例中,基于前述方案,所述选取模块还配置为:统计连续选取的与所述指定命令的命令类型相同类型的待执行命令的数量,作为第二数量;若所述第二数量达到第二设定阈值,则变更所述读写状态机的状态,重新获取所述读写状态机的状态,以重新根据所述状态选取所述待执行命令,其中,重新选取的所述读写状态机的状态对应的指定命令的命令类型与连续选取所述第二数量的待执行命令的命令类型不同。
在本申请的一个实施例中,基于前述方案,所述命令类型包括读类型或写类型,所述获取模块还配置为:响应于所述状态机的上电指令,设置所述状态机的状态为对应读类型的状态。
在本申请的一个实施例中,基于前述方案,在获取所述双倍速率同步动态随机存储器在待选择命令中选取的所述状态对应的指定命令之前,所述选取模块还配置为:采用轮询调度的方法从与所述状态机的状态对应的命令组存储的待选择命令中,选取与所述状态机的状态对应的指定命令。
在本申请的一个实施例中,基于前述方案,在选取与所述状态机的状态对应的指定命令之后,所述选取模块还配置为:将所述与状态机的状态对应的指定命令,从与所述状态机的状态对应的命令组中删除。
在本申请的一个实施例中,基于前述方案,在选取与所述状态机的状态对应的指定命令之前,所述选取模块还配置为:获取控制命令;对所述控制命令进行解析,得到所述待选择命令;将对应于同一状态的待选择命令存储在同一命令组中。
在本申请的一个实施例中,基于前述方案,所述控制命令中包含控制命令类型和所述控制命令针对的地址,所述执行模块配置为:基于所述地址,确定所述控制命令针对的区块,作为所述待执行命令针对的区块;将所述控制命令类型作为所述待选择命令的命令类型;将所述待选择命令针对的区块和所述待选择命令的命令类型进行组合,得到所述待选择命令。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请的一些实施例所提供的技术方案中,通过获取双倍速率同步动态随机存储器中读写状态机的状态;获取双倍速率同步动态随机存储器在待选择命令中选取的状态对应的指定命令,指定命令指示了在双倍速率同步动态随机存储器中指定命令针对的目标区块;在除了指定命令之外的待选择命令中选取针对目标区块的待执行命令;执行待执行命令,以对目标区块中的数据进行处理,减少了执行双倍速率同步动态随机存储器中的执行命令时,切换区块的次数,节约了切换区块花费的等待时间,从而提高了数据处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1示出了可以应用本申请实施例的技术方案的示例性***架构的示意图。
图2示意性示出了根据本申请的一个实施例的数据处理方法的流程图。
图3示意性示出了根据本申请的一个实施例的命令队列的示意图。
图4示意性示出了根据本申请的一个实施例的状态机控制命令组的示意图。
图5示意性示出了根据本申请的一个实施例的读写控制状态机示意图。
图6示意性示出了根据本申请的一个实施例的数据处理装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本申请实施例的技术方案的示例性***架构100的示意图。
如图1所示,***架构100可以包括双倍速率同步动态随机(Double Data Rate,DDR)存储器101、网络102和控制器103。网络102用以在双倍速率同步动态随机存储器101和控制器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等,本申请在此不做限制。
应该理解,图1中的双倍速率同步动态随机存储器101、网络102和控制器103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的双倍速率同步动态随机存储器101、网络102和控制器103。比如控制器103可以是操作台、服务器或客户端等,但并不局限于此。
在本申请的一个实施例中,控制器103通过获取双倍速率同步动态随机存储器101中读写状态机的状态;获取双倍速率同步动态随机存储器101在待选择命令中选取的状态对应的指定命令,指定命令指示了在双倍速率同步动态随机存储器101中指定命令针对的目标区块;在除了指定命令之外的待选择命令中选取针对目标区块的待执行命令;执行待执行命令,以对目标区块中的数据进行处理,减少了执行双倍速率同步动态随机存储器101中的执行命令时,切换区块的次数,节约了切换区块花费的等待时间,从而提高了数据处理效率。
需要说明的是,本申请实施例所提供的数据处理方法一般由控制器103执行,相应地,数据处理装置一般设置于控制器103中。但是,在本申请的其它实施例中,双倍速率同步动态随机存储器101、也可以与控制器103具有相似的功能,从而执行本申请实施例所提供的数据处理方法。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示意性示出了根据本申请的一个实施例的数据处理方法的流程图,该数据处理方法的执行主体可以是上位机,比如可以是图1中所示的控制器103。
参照图2所示,该数据处理方法至少包括步骤S210至步骤S240,详细介绍如下:
在步骤S210中,获取双倍速率同步动态随机存储器中读写状态机的状态。
在本申请的一个实施例中,双倍速率同步动态随机存储器中存储有状态机、命令组和区块,双倍速率同步动态随机存储器中存储的区块又叫双倍速率同步动态随机存储器区块(Double Data Rate Rank,DDR Rank),同一时间只能访问一个Rank里的数据,其中,区块用于存储数据,命令组用于存储待选择命令。可以读取获得双倍速率同步动态随机存储器中读写状态机的状态,双倍速率同步动态随机存储器根据状态机的状态从命令组中选择待选择命令,对区块执行被选择的待选择命令,以对区块中的数据进行处理,其中,区块可以有多个,状态机的状态可以有多个,命令组可以有多个,每个命令组中可以有至少一个待选择命令。
在本申请的一个实施例中,双倍速率同步动态随机存储器中的待选择命令可以包括读命令或写命令等,其中,待选择命令的命令类型可以是读类型或写类型等。
在本申请的一个实施例中,可以获取控制命令;对控制命令进行解析,得到待选择命令,其中,控制命令可以是双倍速率同步动态随机存储器接收到的来自控制器103的控制命令,控制命令中包含控制命令类型和控制命令针对的地址,可以是通过控制器103接收到的用于读取某个地址中数据的控制命令。
在本申请的一个实施例中,控制命令类型可以包括读类型及写类型等。
在该实施例中,对控制命令进行解析,得到待选择命令的过程可以包括:基于控制命令针对的地址,确定控制命令针对的区块,作为待选择命令针对的区块;将控制命令类型作为待选择命令的命令类型;将待选择命令针对的区块和待选择命令的命令类型进行组合,得到待选择命令,组合的方式可以是拼接。
继续参照图2,在步骤S220中,获取双倍速率同步动态随机存储器在待选择命令中选取的状态对应的指定命令,指定命令中指示了在所述双倍速率同步动态随机存储器中指定命令针对的目标区块。
在本申请的一个实施例中,命令组中的每一个待选择命令都对应于状态机中的一个状态,而状态机中的一个状态可以对应一个或多个待选择命令。可以是每个命令组对应一个状态,可以是对应于同一个状态的待选择命令都在一个命令组中,也可以是对应于同一个状态的待选择命令在多个命令组中,且这多个命令组中的待选择命令都对应于同一个状态,以方便指定命令的选取。
在本申请的一个实施例中,可以在待选择命令中选取状态对应的指定命令之前,将对应于同一状态的待选择命令存储在同一命令组中,以方便指定命令的选取。
在本申请的一个实施例中,可以从状态对应的命令组中随机选择一个待选择命令,作为指定命令,将指定命令针对的区块,作为目标区块,比如,双倍速率同步动态随机存储器中读写状态机的状态是读区块0状态,则双倍速率同步动态随机存储器,会在待选择命令之中的读区块0状态对应的命令组中,随机选取一个读区块0命令作为指定命令,将区块0作为目标区块。
在本申请的一个实施例中,可以采用轮询调度的方法从与状态机的状态对应的命令组存储的待选择命令中,选取与状态机的状态对应的指定命令。
继续参照图2,在步骤S230中,在除了指定命令之外的待选择命令中选取针对目标区块的待执行命令。
在本申请的一个实施例中,状态机可以有多个状态,多个状态可以分别对应于不同的区块,也可以是多个状态中的部分状态对应于相同的区块。可以从对应于目标区块的一个或多个命令组中随机选取一个待选择命令作为待执行命令。
在本申请的一个实施例中,在获取与状态机的状态对应的指定命令之后,可以将与状态机的状态对应的指定命令,从与状态机的状态对应的命令组中删除,以方便后续获取待执行命令,以避免重复执行同一命令。
在本申请的一个实施例中,可以将已经被选取的待选择命令作失效处理,状态对应的命令组中没有经过失效处理的待选择命令作为有效命令,可以从状态对应的命令组的有效命令中,随机选取一个有效命令作为待执行命令,以避免重复执行同一命令。
在步骤S240中,执行待执行命令,以对目标区块中的数据进行处理。
在本申请的一个实施例中,若待执行命令是针对目标区块的读命令,则对目标区块进行读操作;若待执行命令是针对目标区块的写命令,则对目标区块进行写操作。
在图2的实施例中,通过获取双倍速率同步动态随机存储器中读写状态机的状态;获取双倍速率同步动态随机存储器在待选择命令中选取的状态对应的指定命令,指定命令指示了在双倍速率同步动态随机存储器中指定命令针对的目标区块;在除了指定命令之外的待选择命令中选取针对目标区块的待执行命令;执行待执行命令,以对目标区块中的数据进行处理,减少了执行双倍速率同步动态随机存储器中的执行命令时,切换区块的次数,节约了切换区块花费的等待时间,从而提高了数据处理效率。
在本申请的一个实施例中,数据处理方法还可以包括:统计连续选取的针对目标区块的待执行命令的数量,作为第一数量;若第一数量达到第一数量阈值,则变更读写状态机的状态,重新获取读写状态机的状态,以重新根据状态选取待执行命令,其中,重新选取的状态对应的指定命令针对双倍速率同步动态随机存储器中除了目标区块之外的其他区块。
在该实施例中,不仅考虑到了节约切换区块花费的等待时间,还能防止过多的读取目标区块,避免除了目标区块之外的其他区块一直不能被读取到而导致的数据阻塞。
在本申请的一个实施例中,可以统计连续选取的针对目标区块的待执行命令的时间,作为第一时间;若第一时间达到第一时间阈值,则变更读写状态机的状态,重新获取读写状态机的状态,以重新根据状态选取待执行命令,其中,重新选取的状态对应的指定命令针对双倍速率同步动态随机存储器中除了目标区块之外的其他区块,以防止过久的读取目标区块,而除了目标区块之外的其他区块一直不能被读取到导致的数据阻塞。
在本申请的一个实施例中,指定命令中包含指定命令的命令类型,还可以在除了所述指定命令之外的待选择命令中选取与指定命令的命令类型相同类型的待执行命令,以尽量减少切换命令类型花费的等待时间,能够进一步节约时间,减少了带宽的浪费。
在本申请的一个实施例中,可以统计连续选取的与指定命令的命令类型相同类型的待执行命令的数量,作为第二数量;若第二数量达到第二设定阈值,则变更读写状态机的状态,重新获取读写状态机的状态,以重新根据状态选取待执行命令,其中,重新选取的读写状态机的状态对应的指定命令的命令类型与连续选取第二数量的待执行命令的命令类型不同。
在该实施例中,不仅考虑到了节约切换命令类型花费的等待时间,还能防止过多的执行与指定命令的命令类型相同类型的待执行命令,避免除了与指定命令的命令类型相同类型之外的其他命令类型一直不能被执行而导致的数据阻塞。
在本申请的一个实施例中,可以统计连续选取的与指定命令的命令类型相同类型的待执行命令的时间,作为第二时间;若第二时间达到第二设定阈值,则变更读写状态机的状态,重新获取读写状态机的状态,以重新根据状态选取待执行命令,其中,重新选取的读写状态机的状态对应的指定命令的命令类型与连续选取第二时间的待执行命令的命令类型不同。
在该实施例中,不仅考虑到了节约切换命令类型花费的等待时间,还能防止过久的执行与指定命令的命令类型相同类型的待执行命令,而除了与指定命令的命令类型相同类型之外的其他命令类型一直不能被执行导致的数据阻塞。
在本申请的一个实施例中,可以响应于状态机的上电指令,设置状态机的状态为对应读类型的状态或写状态,以确定上电后的状态机的第一个状态。
在该实施例中,将上电后的状态机的第一个状态确定为读状态,能够避免在双倍速率同步动态随机存储器中的数据存储已满时,向已满的存储器中写数据而导致的数据丢失。
在本申请的一个实施例中,可以为每种状态设定状态数量阈值,以控制状态的切换。
以下介绍应用本申请的数据处理方法选取待执行命令的一个实施例,以两个区块(Data RANK):区块0和区块1,待选择命令类型包括读类型和写类型的场景为例,从用于存储待选择命令的命令单元中解析出针对区块0或区块1的读命令或写命令,解析的方法可以是译码。译码得到:读区块0(rd_cs0),读区块1(rd_cs1),写区块0(wr_cs0)以及写区块1(wr_cs1)四种输出信号。同时在命令队列外部还有一个由四个状态组成的读写控制状态机,来调度哪个待选择命令被优先执行。
图3示意性示出了根据本申请的一个实施例的命令队列的示意图,图3中命令队列包含n+1个命令单元,即命令队列的深度为n+1。命令队列的深度越大,给读写控制状态机能够调度的空间就越大,更有利于提升DDR的访问效率。命令队列中的每个命令单元,都输出四种待选择命令rd_cs0,rd_cs1,wr_cs0以及wr_cs1,分别将四种待选择命令存储至四组命令组中,如图4,每组中有同种n+1个待选择命令,四组命令组分别对应rd_cs0,rd_cs1,wr_cs0以及wr_cs1,四组命令组由读写控制状态机统一控制,图4示意性示出了根据本申请的一个实施例的状态机控制命令组的示意图。
图5示意性示出了根据本申请的一个实施例的读写控制状态机示意图。状态机包含四个状态分别是READ_CS0,READ_CS1,WRITE_CS0以及WRITE_CS1,在控制器的控制下四个状态之间可以进行切换。READ_CS0状态对应的命令为rd_cs0,READ_CS1状态对应的命令为rd_cs1,WRITE_CS0状态对应的命令为wr_cs0,WRITE_CS1状态对应的命令为wr_cs1。为了防止连续读或者写的命令数量过大,导致另一种命令被阻塞时间太长,引入一个控制参数第二设定阈值max_rd_wr_cnt,该参数表示读写控制状态机允许的最大的连续执行同类型待执行命令的数量。为了防止连续读写同一区块的命令数量过大,导致另一个区块的访问命令被阻塞时间太长,引入一个控制参数第一数量阈值max_rank_access_cnt,该参数表示读写控制状态机允许的最大的连续读写同一个区块的数量。
在该实施例中,若读取到读写状态机的当前状态为READ_CS0,则获取到的指定命令为rd_cs0,跳转其他各个状态的条件如下:
A1)、如果待选择命令中有rd_cs0的命令,并且连续读数量小于max_rd_wr_cnt,并且连续执行rd_cs0数量小于max_rank_access_cnt,则仍然保持在READ_CS0状态,选取rd_cs0作为待执行命令。
A2)、如果A1)的条件不满足,连续读数量小于max_rd_wr_cnt,并且连续执行rd_cs0数量大于max_rank_access_cnt,并且待选择命令中有rd_cs1的命令,则跳转到READ_CS1状态,选取rd_cs1作为待执行命令。
A3)、如果A1)和A2)的条件都不满足,连续读数量大于max_rd_wr_cnt,并且连续执行rd_cs0数量大于max_rank_access_cnt,并且待选择命令中有wr_cs1的命令,则跳转到WRITE_CS1状态,选取wr_cs1作为待执行命令。
A4)、如果A1),A2)和A3)的条件都不满足,连续读数量大于max_rd_wr_cnt,并且连续执行rd_cs0数量大于max_rank_access_cnt,并且待选择命令中没有wr_cs1的命令,并且待选择命令中有wr_cs0的命令,则跳转到WRITE_CS0状态,选取wr_cs0作为待执行命令。
在该实施例中,若当前状态为READ_CS1,则获取到的指定命令为rd_cs1,则跳转其他各个状态的条件如下:
B1)、如果待选择命令中有rd_cs1的命令,并且连续读数量小于max_rd_wr_cnt,并且连续rd_cs1数量小于max_rank_access_cnt,则仍然保持在READ_CS1状态,选取rd_cs1作为待执行命令。
B2)、如果B1)的条件不满足,连续读数量小于max_rd_wr_cnt,并且连续执行rd_cs1数量大于max_rank_access_cnt,并且待选择命令中有rd_cs0的命令,则跳转到READ_CS0状态,选取rd_cs0作为待执行命令。
B3)、如果B1)和B2)的条件都不满足,连续读数量大于max_rd_wr_cnt,并且连续执行rd_cs1数量大于max_rank_access_cnt,并且待选择命令中有wr_cs0的命令,则跳转到WRITE_CS0状态,选取wr_cs0作为待执行命令。
B4)、如果B1),B2)和B3)的条件都不满足,连续读数量大于max_rd_wr_cnt,并且连续rd_cs1数量大于max_rank_access_cnt,并且待选择命令中没有wr_cs0的命令,并且待选择命令中有wr_cs1的命令,则跳转到WRITE_CS1状态,选取wr_cs1作为待执行命令。
在该实施例中,若当前状态为WRITE_CS0,则获取到的指定命令为wr_cs0,则跳转其他各个状态的条件如下:
C1)、如果待选择命令中有wr_cs0的命令,并且连续写数量小于max_rd_wr_cnt,并且连续执行wr_cs0的数量小于max_rank_access_cnt,则仍然保持在WRITE_CS0状态,选取wr_cs0作为待执行命令。
C2)、如果C1)的条件不满足,连续写数量小于max_rd_wr_cnt,并且连续执行wr_cs0的数量大于max_rank_access_cnt,并且待选择命令中有wr_cs1的命令,则跳转到WRITE_CS1状态,选取wr_cs1作为待执行命令。
C3)、如果C1)和C2)的条件都不满足,连续写数量大于max_rd_wr_cnt,并且连续执行wr_cs0的数量大于max_rank_access_cnt,并且待选择命令中有rd_cs1的命令,则跳转到READ_CS1状态,选取rd_cs1作为待执行命令。
C4)、如果C1),C2)和C3)的条件都不满足,连续写数量大于max_rd_wr_cnt,并且连续执行wr_cs0的数量大于max_rank_access_cnt,并且待选择命令中没有rd_cs1的命令,并且待选择命令中有rd_cs0的命令,则跳转到READ_CS0状态,选取rd_cs0作为待执行命令。
在该实施例中,若当前状态为WRITE_CS1,则获取到的指定命令为wr_cs1,则跳转其他各个状态的条件如下:
D1)、如果待选择命令中有wr_cs1的命令,并且连续写数量小于max_rd_wr_cnt,并且连续执行wr_cs1数量小于max_rank_access_cnt,则仍然保持在WRITE_CS1状态,选取wr_cs1作为待执行命令。
D2)、如果D1)的条件不满足,连续写数量小于max_rd_wr_cnt,并且连续执行wr_cs1数量大于max_rank_access_cnt,并且待选择命令中有wr_cs0的命令,则跳转到WRITE_CS0状态,选取wr_cs0作为待执行命令。
D3)、如果D1)和D2)的条件都不满足,连续写数量大于max_rd_wr_cnt,并且连续执行wr_cs1数量大于max_rank_access_cnt,并且待选择命令中有rd_cs0的命令,则跳转到READ_CS0状态,选取rd_cs0作为待执行命令。
D4)、如果D1),D2)和D3)的条件都不满足,连续写数量大于max_rd_wr_cnt,并且连续执行wr_cs1数量大于max_rank_access_cnt,并且待选择命令中没有rd_cs0的命令,并且待选择命令中有rd_cs1的命令,则跳转到READ_CS1状态,选取rd_cs1作为待执行命令。
再次参照图4,展示了读写控制状态机和命令队列之间的对应关系示意图。命令队列内所有命令单元输出的rd_cs0_0…rd_cs0_n,rd_cs1_0…rd_cs1_n,wr_cs0_0…wr_cs0_n以及wr_cs1_0…wr_cs1_n被分为四组命令组,命令组中可以存储待选取命令。当读写控制状态机当前状态为READ_CS0的时候,则选择rd_cs0所在的命令组中有效的命令rd_cs0_x进行发送;当读写控制状态机当前状态为READ_CS1的时候,则选择rd_cs1所在的命令组中有效的命令rd_cs1_x进行发送;当读写控制状态机当前状态为WRITE_CS0的时候,则选择wr_cs0所在的命令组中有效的命令wr_cs0_x进行发送;当读写控制状态机当前状态为WRITE_CS1的时候,则选择wr_cs1所在的命令组中有效的命令wr_cs1_x进行发送。
本实施例实现了尽可能少的读写切换以及不同区块访问切换,以提高DDR访问效率,提高带宽利用率。本发明以两个区块的读写访问为例子,如果有四个区块则需要2的4次方共16个状态的读写控制状态机来控制读写命令输出。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的数据处理方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的数据处理方法的实施例。
图6示意性示出了根据本申请的一个实施例的数据处理装置的框图。
参照图6所示,根据本申请的一个实施例的数据处理装置600,包括状态获取模块601、命令获取模块602、选取模块603和执行模块604。
根据本申请实施例的一个方面,基于前述方案,状态获取模块601配置为获取双倍速率同步动态随机存储器中读写状态机的状态;命令获取模块602配置为获取双倍速率同步动态随机存储器在待选择命令中选取的状态对应的指定命令,指定命令指示了在双倍速率同步动态随机存储器中指定命令针对的目标区块;选取模块603配置为在除了指定命令之外的待选择命令中选取针对目标区块的待执行命令;执行模块604配置为执行待执行命令,以对目标区块中的数据进行处理。
在本申请的一个实施例中,基于前述方案,选取模块603还配置为:统计连续选取的针对目标区块的待执行命令的数量,作为第一数量;若第一数量达到第一数量阈值,则变更读写状态机的状态,重新获取读写状态机的状态,以重新根据状态选取待执行命令,其中,重新选取的状态对应的指定命令针对双倍速率同步动态随机存储器中除了目标区块之外的其他区块。
在本申请的一个实施例中,基于前述方案,指定命令中包含指定命令的命令类型,在执行待执行命令之前,选取模块603还配置为:在除了指定命令之外的待选择命令中选取与指定命令的命令类型相同类型的待执行命令。
在本申请的一个实施例中,基于前述方案,选取模块603还配置为:统计连续选取的与指定命令的命令类型相同类型的待执行命令的数量,作为第二数量;若第二数量达到第二设定阈值,则变更读写状态机的状态,重新获取读写状态机的状态,以重新根据状态选取待执行命令,其中,重新选取的读写状态机的状态对应的指定命令的命令类型与连续选取第二数量的待执行命令的命令类型不同。
在本申请的一个实施例中,基于前述方案,命令类型包括读类型或写类型,状态获取模块601还配置为:响应于状态机的上电指令,设置状态机的状态为对应读类型的状态。
在本申请的一个实施例中,基于前述方案,在获取双倍速率同步动态随机存储器在待选择命令中选取的状态对应的指定命令之前,选取模块603还配置为:采用轮询调度的方法从与状态机的状态对应的命令组存储的待选择命令中,选取与状态机的状态对应的指定命令。
在本申请的一个实施例中,基于前述方案,在选取与状态机的状态对应的指定命令之后,选取模块603还配置为:将与状态机的状态对应的指定命令,从与状态机的状态对应的命令组中删除。
在本申请的一个实施例中,基于前述方案,在选取与状态机的状态对应的指定命令之前,选取模块603还配置为:获取控制命令;对控制命令进行解析,得到待选择命令;将对应于同一状态的待选择命令存储在同一命令组中。
在本申请的一个实施例中,基于前述方案,控制命令中包含控制命令类型和控制命令针对的地址,执行模块604配置为:基于地址,确定控制命令针对的区块,作为待选择命令针对的区块;将控制命令类型作为待选择命令的命令类型;将待选择命令针对的区块和待选择命令的命令类型进行组合,得到待执行命令。
虽然已参照几个典型实施方式描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离申请的精神或实质,所以应当理解,上述实施方式不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取双倍速率同步动态随机存储器中读写状态机的状态;
获取所述双倍速率同步动态随机存储器在待选择命令中选取的所述状态对应的指定命令,所述指定命令指示了在所述双倍速率同步动态随机存储器中所述指定命令针对的目标区块;
在除了所述指定命令之外的待选择命令中选取针对所述目标区块的待执行命令;
执行所述待执行命令,以对所述目标区块中的数据进行处理。
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
统计连续选取的针对所述目标区块的待执行命令的数量,作为第一数量;
若所述第一数量达到第一数量阈值,则变更所述读写状态机的状态,重新获取所述读写状态机的状态,以重新根据所述状态选取所述待执行命令,其中,重新选取的所述状态对应的指定命令针对所述双倍速率同步动态随机存储器中除了所述目标区块之外的其他区块。
3.根据权利要求1所述的数据处理方法,其特征在于,所述指定命令中包含所述指定命令的命令类型,在执行所述待执行命令之前,所述方法还包括:
在除了所述指定命令之外的待选择命令中选取与所述指定命令的命令类型相同类型的待执行命令。
4.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
统计连续选取的与所述指定命令的命令类型相同类型的待执行命令的数量,作为第二数量;
若所述第二数量达到第二设定阈值,则变更所述读写状态机的状态,重新获取所述读写状态机的状态,以重新根据所述状态选取所述待执行命令,其中,重新选取的所述读写状态机的状态对应的指定命令的命令类型与连续选取所述第二数量的待执行命令的命令类型不同。
5.根据权利要求3所述的数据处理方法,其特征在于,所述命令类型包括读类型或写类型,所述方法还包括:
响应于所述状态机的上电指令,设置所述状态机的状态为对应读类型的状态。
6.根据权利要求1所述的数据处理方法,其特征在于,在获取所述双倍速率同步动态随机存储器在待选择命令中选取的所述状态对应的指定命令之前,所述方法包括:
采用轮询调度的方法从与所述状态机的状态对应的命令组存储的待选择命令中,选取与所述状态机的状态对应的指定命令。
7.根据权利要求6所述的数据处理方法,其特征在于,在选取与所述状态机的状态对应的指定命令之后,所述方法包括:
将所述与状态机的状态对应的指定命令,从与所述状态机的状态对应的命令组中删除。
8.根据权利要求6所述的数据处理方法,其特征在于,在选取与所述状态机的状态对应的指定命令之前,所述方法包括:
获取控制命令;
对所述控制命令进行解析,得到所述待选择命令;
将对应于同一状态的待选择命令存储在同一命令组中。
9.根据权利要求8所述的数据处理方法,其特征在于,所述控制命令中包含控制命令类型和所述控制命令针对的地址,所述对所述控制命令进行解析,得到所述待选择命令,包括:
基于所述地址,确定所述控制命令针对的区块,作为所述待选择命令针对的区块;
将所述控制命令类型作为所述待选择命令的命令类型;
将所述待选择命令针对的区块和所述待选择命令的命令类型进行组合,得到所述待选择命令。
10.一种数据处理装置,其特征在于,包括:
状态获取模块,配置为获取双倍速率同步动态随机存储器中读写状态机的状态;
命令获取模块,配置为获取所述双倍速率同步动态随机存储器在待选择命令中选取的所述状态对应的指定命令,所述指定命令指示了在所述双倍速率同步动态随机存储器中所述指定命令针对的目标区块;
选取模块,配置为在除了所述指定命令之外的待选择命令中选取针对所述目标区块的待执行命令;
执行模块,配置为执行所述待执行命令,以对所述目标区块中的数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110623389.5A CN113076070A (zh) | 2021-06-04 | 2021-06-04 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110623389.5A CN113076070A (zh) | 2021-06-04 | 2021-06-04 | 数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113076070A true CN113076070A (zh) | 2021-07-06 |
Family
ID=76616988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110623389.5A Pending CN113076070A (zh) | 2021-06-04 | 2021-06-04 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076070A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225477A (zh) * | 2022-07-19 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 机框式设备的配置维护方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123056A1 (en) * | 2002-12-23 | 2004-06-24 | Intel Corporation | Interleaving memory access |
CN1961302A (zh) * | 2004-04-28 | 2007-05-09 | 英特尔公司 | 具有命令前瞻的存储器控制器 |
CN101694610A (zh) * | 2009-10-16 | 2010-04-14 | 成都市华为赛门铁克科技有限公司 | 命令处理方法、装置和存储设备 |
CN111949578A (zh) * | 2020-08-04 | 2020-11-17 | 西安电子科技大学 | 基于dfi标准的ddr3控制器 |
-
2021
- 2021-06-04 CN CN202110623389.5A patent/CN113076070A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123056A1 (en) * | 2002-12-23 | 2004-06-24 | Intel Corporation | Interleaving memory access |
CN1961302A (zh) * | 2004-04-28 | 2007-05-09 | 英特尔公司 | 具有命令前瞻的存储器控制器 |
CN101694610A (zh) * | 2009-10-16 | 2010-04-14 | 成都市华为赛门铁克科技有限公司 | 命令处理方法、装置和存储设备 |
CN111949578A (zh) * | 2020-08-04 | 2020-11-17 | 西安电子科技大学 | 基于dfi标准的ddr3控制器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225477A (zh) * | 2022-07-19 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 机框式设备的配置维护方法、装置、电子设备和存储介质 |
CN115225477B (zh) * | 2022-07-19 | 2023-12-01 | 北京天融信网络安全技术有限公司 | 机框式设备的配置维护方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11199996B2 (en) | Method of scheduling requests to banks in a flash controller | |
US8996824B2 (en) | Memory reorder queue biasing preceding high latency operations | |
US20170364280A1 (en) | Object storage device and an operating method thereof | |
CN111143257A (zh) | Ddr仲裁控制器、视频缓存装置及视频处理*** | |
CN1882928A (zh) | 存储器控制器 | |
CN103345368B (zh) | 一种在缓冲存储器中缓存数据的方法 | |
US10908839B2 (en) | Storage device throttling amount of communicated data depending on suspension frequency of operation | |
CN110941395B (zh) | 动态随机存取存储器、内存管理方法、***及存储介质 | |
CN111198715A (zh) | 一种面向乱序高性能核的内存控制器命令调度方法及装置 | |
CN107274926A (zh) | 具有自适应预充电策略的dram控制器 | |
CN115357377A (zh) | 内存控制调度方法、装置、计算机设备及存储介质 | |
US11256621B2 (en) | Dual controller cache optimization in a deterministic data storage system | |
CN113076070A (zh) | 数据处理方法和装置 | |
CN112039999A (zh) | 一种内核态访问分布式块存储***的方法及*** | |
US20080225858A1 (en) | Data transferring apparatus and information processing system | |
CN105264608B (zh) | 存储数据的方法、内存控制器和中央处理器 | |
CN112445412B (zh) | 一种数据存储方法及装置 | |
CN111966607A (zh) | 双倍速率存储器的访问方法及*** | |
CN116841458A (zh) | 存储器读写控制方法、***、终端及存储介质 | |
CN105612505A (zh) | Cpu调度的方法和装置 | |
US8452920B1 (en) | System and method for controlling a dynamic random access memory | |
CN115964084A (zh) | 数据交互方法、电子设备、存储介质 | |
US9336163B2 (en) | Precharge control for memory bank commands | |
CN105573920A (zh) | 存储空间管理方法和装置 | |
CN102073604A (zh) | 一种同步动态存储器读写控制方法、装置和*** |
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 |