CN101923522A - 存储控制器及数据操作命令的处理方法 - Google Patents
存储控制器及数据操作命令的处理方法 Download PDFInfo
- Publication number
- CN101923522A CN101923522A CN 200910147326 CN200910147326A CN101923522A CN 101923522 A CN101923522 A CN 101923522A CN 200910147326 CN200910147326 CN 200910147326 CN 200910147326 A CN200910147326 A CN 200910147326A CN 101923522 A CN101923522 A CN 101923522A
- Authority
- CN
- China
- Prior art keywords
- command
- read
- write
- unit
- data
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 26
- 239000000872 buffer Substances 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 51
- 239000012536 storage buffer Substances 0.000 claims description 16
- 230000003139 buffering effect Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 8
- 239000002699 waste material Substances 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种存储控制器,该存储控制器包括:命令接收单元,用于接收输入的多个数据操作命令;命令重排序单元,用于将所述多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同块(BANK)命令或同BANK同行命令;命令执行单元,用于按照所述命令重排序单元排序后多个数据操作命令的顺序,执行所述多个数据操作命令。本发明实施例还公开了一种基于所述存储控制器的数据操作命令处理方法。采用本发明,能够有效提高存储控制器的带宽利用率。
Description
技术领域
本发明涉及网络数据存储领域,尤其涉及一种存储控制器及数据操作命令的处理方法。
背景技术
随着通信领域的网络传输速度急剧增加和业务多样化的发展,各种通信设备,尤其是核心网、城域网的网络数据交换机,对存储器提出了更多要求,需要更大的容量、更快的存取速度,当然还要有更低的成本。静态随机存储器(SRAM)虽然在带宽利用率方面具有优势,但是其容量小、成本高的缺点限制了其在网络通信设备中的应用。而同步动态随机存储器(SDRAM)弥补了SRAM的不足,并且在一定的条件下,其带宽利用率也可以提高到90%以上。
双倍速率(DDR)SDRAM在同块(Bank)同行操作时,即两个相邻的操作命令属于相同的Bank和相同的页时,不需要进行预充电(Precharge)和激活(Active)操作,直接连续访问即可。
DDR SDRAM在同一Bank内换行操作时,即两个相邻的操作命令属于相同的Bank和不同的页时,需要先关闭即Precharge当前Bank,然后再打开即Active该Bank内需要访问的行之后,才可以对该行进行读或写操作,Precharge和Active操作消耗了不必要的时间,降低了DDR控制器的带宽利用率。
DDR SDRAM在不同Bank操作时,即两个相邻的操作命令属于不同的Bank时,可以通过一定的方法来避免数据线上的时间间隔,使得带宽不会产生浪费。
根据DDR的协议规定,DDR SDRAM在进行读到写转换时,命令线上大概需要6~7个周期,数据线上经过优化之后至少需要2个周期的间隔时间;在进行写到读转换时,必须要等最后一次写的数据写入完毕4个周期后才可以发起读命令,加上读延迟,那么在数据线上写数据和读数据之间的时间间隔至少在10个周期以上,这样造成了极大的带宽浪费。
为了避免上述不同情况下带来的带宽浪费问题,目前存在多种控制器设计结构来避免上述情况的出现。常见的控制器设计,对到来的命令分Bank存储,然后按照轮询的方式调度,从而避免同Bank换行的情况。读写和写读的频繁转换也通过设定轮询长度方式来避免。还有其他的控制器设计结构,例如借助CAM实现等。然而,这些控制器存在实现复杂、难于集成等缺陷。
发明内容
本发明实施例提供一种存储控制器及数据操作命令的处理方法,用于提高存储控制器的带宽利用率。
本发明实施例提供一种存储控制器,该存储控制器包括:
命令接收单元,用于接收输入的多个数据操作命令;
命令重排序单元,用于将所述多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同块(BANK)命令或同BANK同行命令;所述不同BANK命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于不同BANK,所述同BANK同行命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于相同BANK和相同页;
命令执行单元,用于按照所述命令重排序单元排序后多个数据操作命令的顺序,执行所述多个数据操作命令。
本发明实施例提供一种基于所述存储控制器的数据操作命令处理方法,该方法包括:
所述存储控制器接收输入的多个数据操作命令;
所述存储控制器将所述多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同BANK命令或同BANK同行命令;所述不同BANK命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于不同BANK,所述同BANK同行命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于相同BANK和相同页;
所述存储控制器按照排序后多个数据操作命令的顺序,执行所述多个数据操作命令。
本发明中,存储控制器接收到输入的多个数据操作命令时,通过将该多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同BANK命令或同BANK同行命令,然后按照排序后多个数据操作命令的顺序,执行多个数据操作命令,使得同Bank换行操作转换为同Bank同行或不同Bank间操作,解决了因同Bank换行造成带宽浪费的问题,有效提高了带宽利用率。
附图说明
图1为本发明实施例一中存储控制器结构示意图;
图2为本发明实施例二中存储控制器结构示意图;
图3为本发明实施例三中存储控制器结构示意图;
图4为本发明实施例提供的流程示意图;
图5为本发明实例中各命令缓存单元的命令保存示意图;
图6为本发明实例中目的选择和源选择缓存单元的标识位保存示意图;
图7为本发明实例中数据保存单元的写数据保存示意图;
图8为本发明实例中数据保存单元的读数据保存示意图。
具体实施方式
本发明实施例提供一种存储控制器,该存储控制器通过将接收到的数据操作命令重排序,将同BANK换行操作转换为同BANK同行操作或不同BANK间操作,从而避免同BANK换行操作时Precharge和Active操作带来的时间浪费。
存储设备由很多页构成一个块(BANK),本发明中的同BANK同行命令,是指若相邻命令的目的地址指向的存储单元属于相同BANK和相同页,则将该相邻命令称为同BANK同行命令;不同BANK命令,是指若相邻命令的目的地址指向的存储单元属于不同BANK,则将该相邻命令称为不同BANK命令;同BANK换行命令,是指若相邻命令的目的地址指向的存储单元属于相同BANK,但属于不同页,则将该相邻命令称为同BANK换行命令。
本发明实施例提供的存储控制器,具体包括:
命令接收单元,用于接收输入的多个数据操作命令;
命令重排序单元,用于将命令接收单元接收到的多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同BANK命令,或同BANK同行命令;
命令执行单元,用于按照命令重排序单元排序后多个数据操作命令的顺序,执行所述多个数据操作命令。
下面列举具体三个存储控制器的实施例:
实施例一:
本实施例中,存储控制器用于对写命令进行重排序,具体内部结构如图1所示:
所述命令接收单元包括:写命令接收单元10,用于接收输入的写命令,并按照接收顺序缓存写命令;本写命令接收单元可以采用先进先出的队列结构。
所述命令重排序单元包括写命令重排序控制单元11、写命令暂存缓存单元12和写命令执行缓存单元13,其中:
写命令重排序控制单元11,包括第一接收处理模块和暂存处理模块,其中:
第一接收处理模块,用于读取写命令接收单元中缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则将读取的写命令放入写命令暂存缓存单元中,继续触发第一接收处理模块;否则,将读取的写命令放入写命令执行缓存单元中,若写命令暂存缓存单元中缓存有写命令,则触发暂存处理模块,若写命令暂存缓存单元中未缓存写命令,则触发第一接收处理模块。
暂存处理模块,用于读取写命令暂存单元中缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则触发所述第一接收处理模块,否则,将读取的写命令放入写命令执行缓存单元中,并触发所述第一接收处理模块。
写命令暂存缓存单元12,用于按照写命令被放入的顺序,缓存写命令重排序控制单元放入的写命令;本写命令暂存缓存单元可以采用先进先出的队列结构。
写命令执行缓存单元13,用于按照写命令被放入的顺序,缓存写命令重排序控制单元放入的写命令;本写命令执行缓存单元可以采用先进先出的队列结构。
所述命令执行单元包括写命令读取单元和写命令执行单元,其中:
写命令读取单元14,用于按照写命令被放入写命令执行缓存单元从先到后的顺序,读取写命令执行缓存单元中缓存的写命令。
写命令执行单元,用于执行写命令读取单元读取的写命令;本写命令执行单元具体包括命令控制单元151和物理层单元152,此部分具体实现为现有技术,这里不再赘述。
写命令执行缓存单元中缓存的写命令为重排序后的写命令,为了使得写数据与写命令同步,即将写数据也按照与写命令同样的方式被重排序,该存储控制器进一步包括写数据输入控制单元16、第一写数据缓存单元17、第二写数据缓存单元18、写数据排序控制单元19、第三写数据缓存单元20,其中:
写数据输入控制单元16,用于在第一接收处理模块将写命令放入写命令执行缓存单元后,将来自数据线上的该写命令对应的写数据放入第一写数据缓存单元;在第一接收处理模块将写命令放入写命令暂存缓存单元后,将来自数据线上的该写命令对应的写数据放入第二写数据缓存单元。
第一写数据缓存单元17,用于按照写数据被放入的顺序,缓存所述写数据输入控制单元放入的写数据;本第一写数据缓存单元可以采用先进先出的队列结构。
第二写数据缓存单元18,用于按照写数据被放入的顺序,缓存所述写数据输入控制单元放入的写数据;本第二写数据缓存单元可以采用先进先出的队列结构。
写数据排序控制单元19,用于在写命令执行缓存单元接收到来自第一接收处理模块的写命令后,从第一写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中;在写命令执行缓存单元接收到来自暂存处理模块的写命令后,从第二写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中。
第三写数据缓存单元20,用于按照写数据被放入的顺序,缓存写数据排序控制单元放入的写数据;本第三写数据缓存单元可以采用先进先出的队列结构。
所述写命令执行单元15用于,接收到写命令读取单元读取的写命令时,按照该写命令将第三写数据缓存单元中对应的写数据执行写操作,具体的,命令控制单元将接收到的写命令输出到物理层单元的同时,第三写数据缓存单元将对应的写数据输出到物理层单元。
为了实现写数据输入控制单元的上述功能,所述写命令重排序控制单元11还包括:目的标识位写入模块,用于在第一接收处理模块将写命令放入写命令执行缓存单元后,将第一目的标志位放入写目的选择缓存单元中;在第一接收处理模块将写命令放入写命令暂存缓存单元后,将第二目的标志位放入写目的选择缓存单元中;其中:
写目的选择缓存单元21,用于按照目的标志位被放入的顺序,缓存目的标识位写入模块放入的第一目的标志位和第二目的标志位;本写目的选择缓存单元可以采用先进先出的队列结构。
所述写数据输入控制单元16用于,在接收到来自数据线上的写数据时,读取写目的选择缓存单元中缓存的第一个目的标志位,若该目的标志位为第一目的标志位,则将接收到的写数据放入第一写数据缓存单元,若该目的标志位为第二目的标志位,则将接收到的写数据放入第二写数据缓存单元。
需要说明的是,输入写命令接收单元的写命令的顺序需要与数据线上传送写数据的顺序一致,例如,向写命令接收单元输入的三个写命令的顺序为:W1、W2和W3,W1、W2和W3对应的写数据分别为WD1、WD2和WD3,那么,数据线上传送写数据的顺序也为WD1、WD2和WD3。
为了实现写数据排序控制单元的上述功能,所述写命令重排序控制单元11还包括:源标识位写入模块,用于在写命令执行缓存单元接收到来自第一接收处理模块的写命令后,将第一源标志位放入写源选择缓存单元;在写命令执行缓存单元接收到来自暂存处理模块的写命令后,将第二源标志位放入写源选择缓存单元;其中,
写源选择缓存单元22,用于按照源标志位被放入的顺序,缓存源标识位写入模块放入的第一源标志位和第二源标志位;本写源选择缓存单元可以采用先进先出的队列结构。
所述写数据排序控制单元19用于,按照源标志位被放入写源选择缓存单元从先到后的顺序,读取写源选择缓存单元中缓存的源标志位,若该源标志位为第一源标志位,则从第一写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中;若该源标志位为第二源标志位,则从第二写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中。
实施例二:
本实施例中,存储控制器用于对读命令进行重排序,其具体内部结构如图2所示:
所述命令接收单元包括:读命令接收单元23,用于接收输入的读命令,并按照接收顺序缓存读命令;本读命令接收单元可以采用先进先出的队列结构。
所述命令重排序单元包括读命令重排序控制单元24、读命令暂存缓存单元25和读命令执行缓存单元26,其中:
读命令重排序控制单元24,包括第二接收处理模块和暂存处理模块,其中:
第二接收处理模块,用于读取读命令接收单元中缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则将读取的读命令放入读命令暂存缓存单元中,继续触发第二接收处理模块;否则,将读取的读命令放入读命令执行缓存单元中,若读命令暂存缓存单元中缓存有读命令,则触发暂存处理模块,若读命令暂存缓存单元中未缓存读命令,则触发第二接收处理模块;
暂存处理模块,用于读取读命令暂存单元中缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则触发所述第二接收处理模块,否则,将读取的读命令放入读命令执行缓存单元中,并触发所述第二接收处理模块;
读命令暂存缓存单元25,用于按照读命令被放入的顺序,缓存读命令重排序控制单元放入的读命令;本读命令暂存缓存单元可以采用先进先出的队列结构。
读命令执行缓存单元26,用于按照写命令被放入的顺序,缓存读命令重排序控制单元放入的读命令;本读命令执行缓存单元可以采用先进先出的队列结构。
所述命令执行单元包括读命令读取单元27和读命令执行单元28,其中:
读命令读取单元27,用于按照读命令被放入读命令执行缓存单元从先到后的顺序,读取读命令执行缓存单元中缓存的读命令;
读命令执行单元,用于执行读命令读取单元读取的读命令;本读命令执行单元具体包括命令控制单元281和物理层单元282,此部分具体实现为现有技术,这里不再赘述。
读命令执行缓存单元中缓存的读命令为重排序后的读命令,按照重排序后的读命令读出的读数据的顺序被打乱,为了将被打乱的顺序恢复原序,原序指按照重排序前的读命令读出的读数据的顺序,该存储控制器进一步包括读数据接收控制单元29、第一读数据缓存单元30、第二读数据缓存单元31、读数据排序控制单元32和第三读数据缓存单元33,其中:
读数据接收控制单元29,用于在接收到读命令执行单元执行读命令后输出的读数据时,若该读命令来自读命令接收单元,则将该读数据放入第一读数据缓存单元中;若该读命令来自读命令暂存缓存单元,则将该读数据放入第二数据缓存单元中。即,若该读命令是从所述读命令接收单元放入所述读命令执行缓存单元后被读命令执行单元所执行的,则将该读数据放入第一读数据缓存单元中,若该读命令是从所述读命令暂存缓存单元放入所述读命令执行缓存单元后被读命令执行单元所执行的,则将该读数据放入第二数据缓存单元中。
第一读数据缓存单元30,用于按照读数据被放入的顺序,缓存所述读数据接收控制单元放入的读数据;本第一读数据缓存单元可以采用先进先出的队列结构。
第二读数据缓存单元31,用于按照读数据被放入的顺序,缓存所述读数据接收控制单元放入的读数据;本第二读数据缓存单元可以采用先进先出的队列结构。
读数据排序控制单元32,用于按照一定顺序从第一读数据缓存单元和第二读数据缓存单元中读取读数据,并将读取到的读数据按照从先到后的读取顺序放入第三读数据缓存单元,第三读数据缓存单元中缓存的读数据的顺序与读命令接收单元接收读命令的顺序一致。
第三读数据缓存单元33,用于按照读数据被放入的顺序,缓存所述读数据排序控制单元放入的读数据并输出该读数据;本第三读数据缓存单元可以采用先进先出的队列结构。
为了实现上述读数据接收控制单元的功能,所述读命令重排序控制单元24还包括:源标识位写入模块,用于在读命令执行单元接收到来自读命令接收单元的读命令后,将第一源标志位放入读源选择缓存单元;在读命令执行单元接收到来自读命令暂存缓存单元的读命令后,将第二源标志位放入读源选择缓存单元;其中:
读源选择缓存单元34,用于缓存源标识位写入模块放入的第一源标志位和第二源标志位;本读源选择缓存单元可以采用先进先出的队列结构。
所述读数据接收控制单元29用于,接收到读命令执行单元输出的读数据时,读取读源选择缓存单元中缓存的第一个读标志位,若该标志位为第一源标志位,则将该读数据放入第一读数据缓存单元;若该标志位为第二源标志位,则将该读数据放入第二读数据缓存单元。
为了实现上述读数据排序控制单元的功能,所述读命令重排序控制单元24还包括:目的标识位写入模块,用于在第二接收处理模块将读命令放入读命令执行缓存单元后,将第一目的标志位放入读目的选择缓存单元中;在第二接收处理模块将读命令放入读命令暂存缓存单元后,将第二目的标志位放入读目的选择缓存单元中;其中:
读目的选择缓存单元35,用于缓存目的标识位写入模块放入的第一目的标志位和第二目的标志位;本读目的选择缓存单元可以采用先进先出的队列结构。
所述读数据排序控制单元32用于,按照目的标志位被放入读目的选择缓存单元从先到后的顺序,读取读目的选择缓存单元中缓存的目的标志位,若该目的标志位为第一目的标志位,则读取第一读数据缓存单元中缓存的对应读数据并放入第三读数据缓存单元,若该目的标志位为第二目的标志位,则读取第二读数据缓存单元中缓存的对应读数据并放入第三读数据缓存单元。
实施例三:
本实施例中,存储控制器用于对写命令和读命令进行重排序,具体内部结构如图3所示,本存储器包括图1和图2所示存储控制器中的全部单元,并且各单元的功能相同,不同之处在于,写命令读取单元和读命令读取单元均设置在读写均衡控制单元中,并且,该读写均衡控制单元还包括:
均衡单元,用于控制所述写命令读取单元和所述读命令读取单元按照设定的命令轮询个数轮流执行命令读取操作。例如,命令轮询个数为10,则均衡单元可以控制首先由写命令读取单元连续读取写命令执行缓存单元中的10个写命令并交给命令控制单元执行,再由读命令读取单元连续读取读命令执行缓存单元中的10个读命令并交给命令控制单元执行,如此反复。当然,在读命令执行缓存单元或写命令执行缓存单元为空时,可以一直读取并执行写命令执行缓存单元或读命令执行缓存单元中的命令。通过连续执行一定数量的读或写操作,之后再连续执行一定数量的写或读操作,从而可以避免读和写之间频繁转换造成的时间浪费。
参见图4,本发明实施例还提供一种基于上述存储控制器的数据操作命令处理方法,该方法具体包括以下步骤:
步骤40:存储控制器接收输入的多个数据操作命令;
步骤41:存储控制器将接收到的多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令的目的地址指向的存储单元为不同BANK命令或同BANK同行命令;
步骤42:存储控制器按照排序后多个数据操作命令的顺序,执行该多个数据操作命令。
本方法也存在以下三个实施例:
实施例一:
本实施例中的数据操作命令为写命令,存储控制器将接收到的多个写命令进行排序的实现方法如下:
A1、写命令重排序控制单元读取写命令接收单元缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则将读取的写命令放入写命令暂存缓存单元中,返回步骤A1;否则,到步骤B1;
B1、写命令重排序控制单元将读取的写命令放入写命令执行缓存单元中,若写命令暂存缓存单元中缓存有写命令,则到步骤C1,否则,返回步骤A1;
C1、写命令重排序控制单元读取写命令暂存单元中缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则返回步骤A1,否则,将读取的写命令放入写命令执行缓存单元中,并返回步骤A1。
存储控制器的写命令读取单元按照写命令被放入写命令执行缓存单元从先到后的顺序,读取写命令执行缓存单元中缓存的写命令并交由写命令执行单元来执行该写命令。
为了使得写数据与写命令同步,步骤A1中将写命令放入写命令暂存缓存单元后,写数据输入控制单元将该写命令对应的写数据放入第二写数据缓存单元,步骤B1中将写命令放入写命令执行缓存单元后,写数据输入控制单元将该写命令对应的写数据放入第一写数据缓存单元。具体的,在将写命令放入写命令执行缓存单元后,写命令重排序控制单元将第一目的标志位放入写目的选择缓存单元中,在将写命令放入写命令暂存缓存单元后,写命令重排序控制单元将第二目的标志位放入写目的选择缓存单元中;写数据输入控制单元在接收到来自数据线上的写数据时,读取写目的选择缓存单元中缓存的第一个目的标志位,若该目的标志位为第一目的标志位,则将接收到的写数据放入第一写数据缓存单元,若该目的标志位为第二目的标志位,则将接收到的写数据放入第二写数据缓存单元。
步骤B1中写命令执行缓存单元接收到写命令后,写数据排序控制单元从第一写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中;步骤C1中写命令执行缓存单元接收到写命令后,写数据排序控制单元从第二写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中。具体的,在写命令执行缓存单元接收到来自第一接收处理模块的写命令后,写命令重排序控制单元将第一源标志位放入写源选择缓存单元,在写命令执行缓存单元接收到来自暂存处理模块的写命令后,写命令重排序控制单元将第二源标志位放入写源选择缓存单元;写数据排序控制单元按照源标志位被放入写源选择缓存单元从先到后的顺序,读取写源选择缓存单元中缓存的源标志位,若该源标志位为第一源标志位,则从第一写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中;若该源标志位为第二源标志位,则从第二写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中。
那么,写命令执行单元执行写命令读取单元送来的写命令具体为:读取第三写数据缓存单元中的对应写数据,并按照接收到的写命令将该写数据执行写操作。
实施例二:
本实施例中的数据操作命令为读命令,存储控制器将接收到的多个读命令进行排序的实现方法如下:
A2、读命令重排序控制单元读取读命令接收单元缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则将读取的读命令放入读命令暂存缓存单元中,返回步骤A2;否则,则到步骤B2;
B2、读命令重排序控制单元将读取的读命令放入读命令执行缓存单元中,若读命令暂存缓存单元中缓存有读命令,则到步骤C2,否则,返回步骤A2;
C2、读命令重排序控制单元读取读命令暂存单元中缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则返回步骤A2,否则,将读取的读命令放入读命令执行缓存单元中,并返回步骤A2。
读命令读取单元按照读命令被放入读命令执行缓存单元从先到后的顺序,读取读命令执行缓存单元中缓存的读命令并交由读命令执行单元来执行该读命令。
为了恢复按照重排序后的读命令读出的读数据的顺序,首先,读数据接收控制单元接收到读命令执行单元执行读命令后输出的读数据时,若该读命令来自读命令接收单元,则将该读数据放入第一读数据缓存单元中;若该读命令来自读命令暂存缓存单元,则将该读数据放入第二数据缓存单元中。具体的,在读命令执行单元接收到来自读命令接收单元的读命令后,读命令重排序控制单元将第一源标志位放入读源选择缓存单元;在读命令执行单元接收到来自读命令暂存缓存单元的读命令后,读命令重排序控制单元将第二源标志位放入读源选择缓存单元。
然后,读数据排序控制单元从第一读数据缓存单元和第二读数据缓存单元中读取读数据,并将读取到的读数据按照从先到后的读取顺序放入第三读数据缓存单元中,第三读数据缓存单元中缓存的读数据的顺序与读命令接收单元接收读命令的顺序一致。具体的,步骤A2中将读命令放入读命令暂存缓存单元后,读命令重排序控制单元将第二目的标志位放入读目的选择缓存单元中,步骤B2中将读命令放入读命令执行缓存单元后,读命令重排序控制单元将第一目的标志位放入读目的选择缓存单元中;读数据排序控制单元按照目的标志位被放入读目的选择缓存单元从先到后的顺序,读取读目的选择缓存单元中缓存的目的标志位,若该目的标志位为第一目的标志位,则读取第一读数据缓存单元中缓存的对应读数据并放入第三读数据缓存单元,若该目的标志位为第二目的标志位,则读取第二读数据缓存单元中缓存的对应读数据并放入第三读数据缓存单元。
那么,在进行读数据输出时,第三读数据缓存单元按照读数据被放入从先到后的顺序,输出读数据。
命令乱序后,数据需要和命令保持对应。对于读数据的输出排序时,势必会对原本先输出的数据因乱序而延后输出产生时间等待。为此,要设定乱序长度,保证乱序范围,不会对重新排序产生过大压力。所谓乱序长度的规定,指可以提前执行本命令后面跟随的N个命令中的任意一个,但不允许执行第N+1个命令,这时N即为乱序长度的值。
实施例三:
本实施例中的数据操作命令为读命令和写命令,存储控制器将接收到的多个写命令进行排序的实现方法可以参见实施例一,将接收到的多个读命令进行排序的实现方法可以参见实施例二,这里不再赘述。不同之处在于,本实施例中的读写均衡控制单元按照设定的命令轮询个数轮流读取读命令执行缓存单元中缓存的读命令和写命令执行缓存单元中缓存的写命令,并将读取的写命令或读命令交由命令控制来执行。如图4所示,为读写均衡控制单元输出的命令序列,其中,W为写命令,R为读命令。
下面结合实例对本发明方法进行说明:
A1~A5是同Bank换行命令,B1~B5是不同于A的同Bank换行命令。命令输入存储控制器的顺序即命令接收单元接收到的命令顺序为:A1、A2、A3、A4、A5、B1、B2、B3、B4、B5,如图5所示。
A1命令是第一个命令,放入命令执行缓存单元中,其后的A2命令和前面执行的命令A1进行比较,是同Bank换行,则将A2放入命令暂存缓存单元中,同样,其后接收到的命令A2~A5都和前面执行的命令A1比较,均为同Bank换行命令,则将A2~A5也依次放入命令暂存缓存单元中,如图5所示。直到接收到命令B1,和前面执行的命令A1比较,不是同Bank换行命令,将命令B1放入命令执行缓存单元。
接下来,读取命令暂存缓存单元中的命令A2和前面执行的命令B1进行比较,不是同Bank换行命令,将命令A2放入命令执行缓存单元中,然后读取接收到的命令B2,和前面执行的命令A2比较,不是同Bank换行命令,将命令B2放入命令执行缓存单元中。
接下来,读取命令暂存缓存单元中的命令A3和前面执行的命令B2进行比较,不是同Bank换行命令,将命令A3放入命令执行缓存单元中,然后读取接收到的命令B3,和前面执行的命令A3比较,不是同Bank换行命令,将命令B3放入命令执行缓存单元中。
接下来,读取命令暂存缓存单元中的命令A4和前面执行的命令B3进行比较,不是同Bank换行命令,将命令A4放入命令执行缓存单元中,然后读取接收到的命令B4,和前面执行的命令A4比较,不是同Bank换行命令,将命令B4放入命令执行缓存单元中。
接下来,读取命令暂存缓存单元中的命令A5和前面执行的命令B4进行比较,不是同Bank换行命令,将命令A5放入命令执行缓存单元中,然后读取接收到的命令B5,和前面执行的命令A5比较,不是同Bank换行命令,将命令B5放入命令执行缓存单元中。
最终命令执行缓存单元接收命令的顺序变为了A1、B1、A2、B2、A3、B3、A4、B4、A5、B5,如图5所示,按照该顺序,相邻命令均为不同Bank的命令。并且,通信领域中,每个命令通常对应一个信元,该信元又包含多个Burst操作。此时再通过一定的方法可以很容易实现不同Bank的命令切换时可以省去Precharge和Active时间,使得数据线上保持数据的连续性,带宽不会产生浪费,与按照命令接收顺序直接执行比较,改善是显著的。
同时,为了保持写命令和写数据同序,或读命令和读数据同序,设置目的选择缓存单元,用于缓存从命令接收单元读取出的命令的目的地信息。若命令接收单元中出来的命令和前面放入命令执行缓存单元的命令,是同Bank换行命令,则将此命令放入命令暂存缓存单元,相应的将目的标识位CS=1存入目的选择缓存单元;若命令接收单元中出来的命令和前面放入命令执行缓存单元的命令,不是同Bank换行命令,则将此命令放入命令执行缓存单元,相应的将目的标识位CS=0存入目的选择缓存单元。设置源选择缓存单元,缓存即将放入命令执行缓存单元的命令的来源信息。若此命令来自命令暂存缓存单元,相应的将源标识位CS=1存入源选择缓存单元;若此命令来自命令接收单元,相应的将源标识位CS=0存入源选择缓存单元;根据此2个FIFO中信息可以将经过和没有经过命令暂存缓存单元缓存的对应数据分开存储。如图6所示,为本例中目的选择缓存单元中存储的目的标识位顺序示意图以及源选择缓存单元中存储的目的标识位顺序示意图。
若上述命令为写命令,则在接收到来自数据线上的写数据时,读取写目的选择缓存单元中缓存的第一个目的标志位,若该目的标志位为1,则将接收到的写数据放入数据缓存单元1,若该目的标志位为0,则将接收到的写数据放入数据缓存单元0。数据线上的写数据的顺序为AW1、AW2、AW3、AW4、AW5、BW1、BW2、BW3、BW4、BW5,对应的写命令分别为A1、A2、A3、A4、A5、B1、B2、B3、B4、B5。按照该方式,数据缓存单元0和数据缓存单元1中缓存的写数据如图7所示。
然后,按顺序读取写源选择缓存单元中的源标识位,若该源标志位为0,则从数据缓存单元0中读取对应的写数据并放入数据缓存单元2;若该源标志位为1,则从数据缓存单元1中读取对应的写数据并放入数据缓存单元2。按照该方式,数据缓存单元2中保存的写数据如图7所示,数据缓存单元2中保存的写数据与附图5中命令执行缓存单元中的写命令顺序一致。
若上述命令为读命令,则在接收到命令执行单元执行读命令后输出的读数据时,读取读源选择缓存单元中缓存的第一个源标志位,若该源标志位为0,则将读数据放入数据缓存单元0,若该源标志位为1,则将该读数据放入数据缓存单元1。输出的读数据的顺序为AR1、BR1、AR2、BR2、AR3、BR3、AR4、BR4、AR5、BR5,对应的读命令分别为A1、B1、A2、B2、A3、B3、A4、B4、A5、B5。按照该方式,数据缓存单元0和数据缓存单元1中缓存的写数据也如图8所示。
然后,按顺序读取读目的选择缓存单元中的目的标识位,若该目的标志位为0,则从数据缓存单元0中读取对应的读数据并放入数据缓存单元2;若该目的标志位为1,则从数据缓存单元1中读取对应的读数据并放入数据缓存单元2。按照该方式,数据缓存单元2中保存的读数据如图8所示,数据缓存单元2中保存的读数据与输入的读命令的顺序一致。
需要说明的是,本发明中缓存单元的第一个命令或对应的数据是指当前缓存单元中保存的最早进入该缓存单元的命令或数据。并且,在将缓存单元中的命令或数据读取后,该命令或数据在缓存单元中不存在。
本发明中的数据操作命令也不限于写命令和读命令,还可以是其它对存储器的存储单元进行数据操作的任何命令。
综上,本发明的有益效果包括:
本发明实施例提供的方案中,存储控制器接收到输入的多个数据操作命令时,通过将该多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同BANK命令,或同BANK同行命令,然后按照排序后多个数据操作命令的顺序,执行多个数据操作命令,使得同Bank换行操作转换为同Bank同行或不同Bank间操作,解决了因同Bank换行造成带宽浪费的问题,有效提高了带宽利用率。
同时,本发明实施例提供了读写均衡的方案来避免频繁的读写转换造成转换时间浪费。两种方法相结合,其数据总线上除了必要的刷新时间和读写转换之外都可以用来传输数据,理论带宽利用率可以达到90%以上。同时本发明提供了该方法的实现装置,可以广泛的应用于FPGA和ASIC逻辑电路设计中。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种存储控制器,其特征在于,该存储控制器包括:
命令接收单元,用于接收输入的多个数据操作命令;
命令重排序单元,用于将所述多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令为不同块BANK命令或同BANK同行命令;所述不同BANK命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于不同BANK,所述同BANK同行命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于相同BANK和相同页;
命令执行单元,用于按照所述命令重排序单元排序后多个数据操作命令的顺序,执行所述多个数据操作命令。
2.如权利要求1所述的存储控制器,其特征在于,所述命令接收单元包括:
写命令接收单元,用于接收输入的写命令并缓存该写命令;
所述命令重排序单元包括:
写命令重排序控制单元,包括第一接收处理模块和暂存处理模块;
所述第一接收处理模块,用于读取所述写命令接收单元中缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则将读取的写命令放入写命令暂存缓存单元中,继续触发第一接收处理模块;否则,将读取的写命令放入写命令执行缓存单元中,若写命令暂存缓存单元中缓存有写命令,则触发暂存处理模块,若写命令暂存缓存单元中未缓存写命令,则触发第一接收处理模块;
所述暂存处理模块,用于读取写命令暂存单元中缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则触发所述第一接收处理模块,否则,将读取的写命令放入写命令执行缓存单元中,并触发所述第一接收处理模块;
写命令暂存缓存单元,用于按照写命令被放入的顺序,缓存写命令重排序控制单元放入的写命令;
写命令执行缓存单元,用于缓存写命令重排序控制单元放入的写命令;
所述命令执行单元包括:
写命令读取单元,用于按照写命令被放入所述写命令执行缓存单元的顺序,读取所述写命令执行缓存单元中缓存的写命令;
写命令执行单元,用于执行所述写命令读取单元读取的写命令。
3.如权利要求2所述的存储控制器,其特征在于,该存储控制器进一步包括:
写数据输入控制单元,用于在所述第一接收处理模块将写命令放入写命令执行缓存单元后,将该写命令对应的写数据放入第一写数据缓存单元;在所述第一接收处理模块将写命令放入写命令暂存缓存单元后,将该写命令对应的写数据放入第二写数据缓存单元;
第一写数据缓存单元,用于按照写数据被放入的顺序,缓存所述写数据输入控制单元放入的写数据;
第二写数据缓存单元,用于按照写数据被放入的顺序,缓存所述写数据输入控制单元放入的写数据;
写数据排序控制单元,用于在所述写命令执行缓存单元接收到来自所述第一接收处理模块的写命令后,从所述第一写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元;在所述写命令执行缓存单元接收到来自所述暂存处理模块的写命令后,从所述第二写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元;
第三写数据缓存单元,用于按照写数据被放入的顺序,缓存所述写数据排序控制单元放入的写数据;
所述写命令执行单元用于,按照所述写命令读取单元读取的写命令将所述第三写数据缓存单元中的对应写数据执行写操作。
4.如权利要求3所述的存储控制器,其特征在于,所述写命令重排序控制单元还包括:
目的标识位写入模块,用于在所述第一接收处理模块将写命令放入写命令执行缓存单元后,将第一目的标志位放入写目的选择缓存单元中;在所述第一接收处理模块将写命令放入写命令暂存缓存单元后,将第二目的标志位放入写目的选择缓存单元中;
该存储控制器进一步包括:
写目的选择缓存单元,用于按照目的标志位被放入的顺序,缓存所述目的标识位写入模块放入的第一目的标志位和第二目的标志位;
所述写数据输入控制单元用于,接收到输入的写数据时,读取所述写目的选择缓存单元中缓存的第一个目的标志位,若该目的标志位为第一目的标志位,则将接收到的相应写数据放入第一写数据缓存单元,若该目的标志位为第二目的标志位,则将接收到的相应写数据放入第二写数据缓存单元。
5.如权利要求3所述的存储控制器,其特征在于,所述写命令重排序控制单元还包括:
源标识位写入模块,用于在所述写命令执行缓存单元接收到来自所述第一接收处理模块的写命令后,将第一源标志位放入写源选择缓存单元;在所述写命令执行缓存单元接收到来自所述暂存处理模块的写命令后,将第二源标志位放入写源选择缓存单元;
该存储控制器进一步包括:
写源选择缓存单元,用于缓存所述源标识位写入模块放入的第一源标志位和第二源标志位;
所述写数据排序控制单元用于,按照源标志位被放入的顺序,读取所述写源选择缓存单元中缓存的源标志位,若该源标志位为第一源标志位,则从所述第一写数据缓存单元中读取相应写数据并放入第三写数据缓存单元;若该源标志位为第二源标志位,则从所述第二写数据缓存单元中读取相应写数据并放入第三写数据缓存单元。
6.如权利要求1-5中任一所述的存储控制器,其特征在于,所述命令接收单元包括:
读命令接收单元,用于接收输入的读命令并缓存该写命令;
所述命令重排序单元包括:
读命令重排序控制单元,包括第二接收处理模块和暂存处理模块;
所述第二接收处理模块,用于读取所述读命令接收单元中缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则将读取的读命令放入读命令暂存缓存单元中,继续触发第二接收处理模块;否则,将读取的读命令放入读命令执行缓存单元中;若读命令暂存缓存单元中缓存有读命令,则触发暂存处理模块,若读命令暂存缓存单元中未缓存读命令,则触发第二接收处理模块;
所述暂存处理模块,用于读取读命令暂存单元中缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则触发所述第二接收处理模块,否则,将读取的读命令放入读命令执行缓存单元中,并触发所述第二接收处理模块;
读命令暂存缓存单元,用于按照读命令被放入的顺序,缓存读命令重排序控制单元放入的读命令;
读命令执行缓存单元,用于缓存读命令重排序控制单元放入的读命令;
所述命令执行单元包括:
读命令读取单元,用于按照读命令被放入所述读命令执行缓存单元的顺序,读取所述读命令执行缓存单元中缓存的读命令;
读命令执行单元,用于执行所述读命令读取单元读取的读命令。
7.如权利要求6所述的存储控制器,其特征在于,该存储控制器进一步包括:
读数据接收控制单元,用于在接收到所述读命令执行单元执行读命令后输出的读数据时,若该读命令来自所述读命令接收单元,则将该读数据放入第一读数据缓存单元;若该读命令来自所述读命令暂存缓存单元,则将该读数据放入第二数据缓存单元;
第一读数据缓存单元,用于按照读数据被放入的顺序,缓存所述读数据接收控制单元放入的读数据;
第二读数据缓存单元,用于按照读数据被放入的顺序,缓存所述读数据接收控制单元放入的读数据;
读数据排序控制单元,用于从第一读数据缓存单元和第二读数据缓存单元中读取读数据并将该读数据放入第三读数据缓存单元,第三读数据缓存单元中缓存的读数据的顺序与读命令接收单元接收读命令的顺序一致;
第三读数据缓存单元,用于缓存所述读数据排序控制单元放入的读数据并按照读数据被放入的顺序输出读数据。
8.如权利要求7所述的存储控制器,其特征在于,所述读命令重排序控制单元还包括:
源标识位读入模块,用于在所述读命令执行单元接收到来自所述读命令接收单元的读命令后,将第一源标志位放入读源选择缓存单元;在所述读命令执行单元接收到来自所述读命令暂存缓存单元的读命令后,将第二源标志位放入读源选择缓存单元;
该存储控制器进一步包括:
读源选择缓存单元,用于按照源标识位被放入的顺序,缓存所述源标识位写入模块放入的第一源标志位和第二源标志位;
所述读数据接收控制单元用于,接收到所述读命令执行单元执行读命令后输出的读数据时,读取所述读源选择缓存单元中缓存的第一个读标志位,若该标志位为第一源标志位,则将所述读数据放入所述第一读数据缓存单元;若该标志位为第二源标志位,则将所述读数据放入所述第二读数据缓存单元。
9.如权利要求7所述的存储控制器,其特征在于,所述读命令重排序控制单元还包括:
目的标识位写入模块,用于在所述第二接收处理模块将读命令放入读命令执行缓存单元后,将第一目的标志位放入读目的选择缓存单元中;在所述第二接收处理模块将读命令放入读命令暂存缓存单元后,将第二目的标志位放入读目的选择缓存单元中;
该存储控制器进一步包括:
读目的选择缓存单元,用于缓存所述目的标识位写入模块放入的第一目的标志位和第二目的标志位;
所述读数据排序控制单元用于,按照目的标志位被放入的顺序,读取所述读目的选择缓存单元中缓存的目的标志位,若该目的标志位为第一目的标志位,则读取所述第一读数据缓存单元中缓存的对应读数据并放入所述第三读数据缓存单元,若该目的标志位为第二目的标志位,则读取所述第二读数据缓存单元中缓存的对应读数据并放入所述第三读数据缓存单元。
10.如权利要求6所述的存储控制器,其特征在于,所述命令执行单元还包括:
均衡单元,用于控制所述写命令读取单元和所述读命令读取单元按照设定的命令轮询个数轮流执行命令读取操作。
11.一种基于权利要求1-10所述的存储控制器的数据操作命令处理方法,其特征在于,该方法包括:
所述存储控制器接收输入的多个数据操作命令;
所述存储控制器将所述多个数据操作命令进行排序,排序后多个数据操作命令中两个相邻数据操作命令的目的地址指向的存储单元为不同块(BANK)命令或同BANK同行命令;所述不同BANK命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于不同BANK,所述同BANK同行命令是指所述两个相邻数据操作命令的目的地址指向的存储单元属于相同BANK和相同页;
所述存储控制器按照排序后多个数据操作命令的顺序,执行所述多个数据操作命令。
12.如权利要求11所述的方法,其特征在于,若所述数据操作命令为写命令,所述存储控制器将所述多个数据操作命令进行排序包括:
A1、读取写命令接收单元缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则将读取的写命令放入写命令暂存缓存单元,返回步骤A1;否则,则到步骤B1;
B1、将读取的写命令放入写命令执行缓存单元,若写命令暂存缓存单元中缓存有写命令,则到步骤C1,否则,返回步骤A1;
C1、读取写命令暂存单元中缓存的第一个写命令,判断该写命令与最新放入写命令执行缓存单元的写命令是否为同Bank换行命令,若是,则返回步骤A1,否则,将读取的写命令放入写命令执行缓存单元,并返回步骤A1;
所述存储控制器按照排序后多个数据操作命令的顺序,执行所述多个数据操作命令包括:
按照写命令被放入所述写命令执行缓存单元的顺序,读取所述写命令执行缓存单元中缓存的写命令并执行该写命令。
13.如权利要求12所述的方法,其特征在于,
步骤A1中将写命令放入写命令暂存缓存单元后,该方法进一步包括:将该写命令对应的写数据放入第二写数据缓存单元;
步骤B1中将写命令放入写命令执行缓存单元后,该方法进一步包括:将该写命令对应的写数据放入第一写数据缓存单元;
步骤B1中写命令执行缓存单元接收到写命令后,该方法进一步包括:从所述第一写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中;
步骤C1中写命令执行缓存单元接收到写命令后,该方法进一步包括:从所述第二写数据缓存单元中读取对应的写数据并放入第三写数据缓存单元中;
所述执行该写命令包括:
读取所述第三写数据缓存单元中的对应写数据,按照该写命令对该写数据执行写操作。
14.如权利要求11-13中任一所述的方法,其特征在于,若所述数据操作命令为读命令,所述存储控制器将所述多个数据操作命令进行排序包括:
A2、读取读命令接收单元缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则将读取的读命令放入读命令暂存缓存单元中,返回步骤A2;否则,则到步骤B2;
B2、将读取的读命令放入读命令执行缓存单元,若读命令暂存缓存单元中缓存有读命令,则到步骤C2,否则,返回步骤A2;
C2、读取读命令暂存单元中缓存的第一个读命令,判断该读命令与最新放入读命令执行缓存单元的读命令是否为同Bank换行命令,若是,则返回步骤A2,否则,将读取的读命令放入读命令执行缓存单元,并返回步骤A2;
所述存储控制器按照排序后多个数据操作命令的顺序,执行所述多个数据操作命令包括:
按照读命令被放入所述读命令执行缓存单元的顺序,读取所述读命令执行缓存单元中缓存的读命令并执行该读命令。
15.如权利要求14所述的方法,其特征在于,在执行该读命令之后,该方法进一步包括:
接收到执行所述读命令后输出的读数据,若该读命令来自读命令接收单元,则将该读数据放入第一读数据缓存单元;若该读命令来自读命令暂存缓存单元,则将该读数据放入第二数据缓存单元;
从第一读数据缓存单元和第二读数据缓存单元中读取读数据,并将该读数据放入第三读数据缓存单元,第三读数据缓存单元中缓存的读数据的顺序与读命令接收单元接收读命令的顺序一致。
16.如权利要求14所述的方法,其特征在于,按照设定的命令轮询个数轮流读取读命令执行缓存单元中缓存的读命令和写命令执行缓存单元中缓存的写命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910147326 CN101923522B (zh) | 2009-06-11 | 2009-06-11 | 存储控制器及数据操作命令的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910147326 CN101923522B (zh) | 2009-06-11 | 2009-06-11 | 存储控制器及数据操作命令的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101923522A true CN101923522A (zh) | 2010-12-22 |
CN101923522B CN101923522B (zh) | 2013-05-08 |
Family
ID=43338469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910147326 Expired - Fee Related CN101923522B (zh) | 2009-06-11 | 2009-06-11 | 存储控制器及数据操作命令的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101923522B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126437A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 存储系统 |
CN106126124A (zh) * | 2016-06-29 | 2016-11-16 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN108572932A (zh) * | 2017-12-29 | 2018-09-25 | 贵阳忆芯科技有限公司 | 多平面nvm命令融合方法与装置 |
CN109901785A (zh) * | 2017-12-08 | 2019-06-18 | 西安华为技术有限公司 | 命令排序方法、降低读时延方法及固态硬盘ssd控制器 |
CN111198715A (zh) * | 2019-12-26 | 2020-05-26 | 核芯互联科技(青岛)有限公司 | 一种面向乱序高性能核的内存控制器命令调度方法及装置 |
CN113271268A (zh) * | 2021-05-31 | 2021-08-17 | 深圳华云信息系统有限公司 | 一层交换机的数据传输方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069399B2 (en) * | 2003-01-15 | 2006-06-27 | Via Technologies Inc. | Method and related apparatus for reordering access requests used to access main memory of a data processing system |
CN1581104A (zh) * | 2003-08-12 | 2005-02-16 | 华为技术有限公司 | 一种动态存储器的访问方法 |
CN100444142C (zh) * | 2007-03-14 | 2008-12-17 | 北京中星微电子有限公司 | 同步动态存储器的访问控制方法及同步动态存储器控制器 |
-
2009
- 2009-06-11 CN CN 200910147326 patent/CN101923522B/zh not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126437B (zh) * | 2015-05-07 | 2020-10-20 | 爱思开海力士有限公司 | 存储系统 |
KR20160131379A (ko) * | 2015-05-07 | 2016-11-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN106126437A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 存储系统 |
KR102398611B1 (ko) * | 2015-05-07 | 2022-05-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN106126124A (zh) * | 2016-06-29 | 2016-11-16 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN106126124B (zh) * | 2016-06-29 | 2019-05-21 | 北京联想核芯科技有限公司 | 一种数据处理方法及电子设备 |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN109901785A (zh) * | 2017-12-08 | 2019-06-18 | 西安华为技术有限公司 | 命令排序方法、降低读时延方法及固态硬盘ssd控制器 |
CN109901785B (zh) * | 2017-12-08 | 2022-04-05 | 华为云计算技术有限公司 | 命令排序方法、降低读时延方法及固态硬盘ssd控制器 |
CN108572932B (zh) * | 2017-12-29 | 2020-05-19 | 贵阳忆芯科技有限公司 | 多平面nvm命令融合方法与装置 |
CN108572932A (zh) * | 2017-12-29 | 2018-09-25 | 贵阳忆芯科技有限公司 | 多平面nvm命令融合方法与装置 |
CN111198715A (zh) * | 2019-12-26 | 2020-05-26 | 核芯互联科技(青岛)有限公司 | 一种面向乱序高性能核的内存控制器命令调度方法及装置 |
CN113271268A (zh) * | 2021-05-31 | 2021-08-17 | 深圳华云信息系统有限公司 | 一层交换机的数据传输方法、装置和系统 |
CN113271268B (zh) * | 2021-05-31 | 2022-01-11 | 深圳华云信息系统有限公司 | 一层交换机的数据传输方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101923522B (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101923522B (zh) | 存储控制器及数据操作命令的处理方法 | |
US8225026B2 (en) | Data packet access control apparatus and method thereof | |
JP2803262B2 (ja) | パケット・スイッチ | |
US20030016689A1 (en) | Switch fabric with dual port memory emulation scheme | |
US9025608B2 (en) | Route switching device and data cashing method thereof | |
CN101246460A (zh) | 缓存数据写入系统及方法和缓存数据读取系统及方法 | |
EP1629644B1 (en) | Method and system for maintenance of packet order using caching | |
WO2009097788A1 (zh) | 缓存数据处理方法、装置及系统 | |
US7822915B2 (en) | Memory controller for packet applications | |
AU8236798A (en) | Multi-port internally cached drams | |
CN1195272C (zh) | 用于网络处理器的动态随机存取存储器数据存储和移动 | |
JP2009157680A (ja) | メモリ制御装置 | |
US7506081B2 (en) | System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories | |
CN102378971A (zh) | 数据读取的方法和存储器控制器 | |
CN116724287A (zh) | 一种内存控制方法及内存控制装置 | |
CN103220230B (zh) | 支持报文交叉存储的动态共享缓冲方法 | |
CN105335323A (zh) | 一种数据突发的缓存装置和方法 | |
CN101309194A (zh) | Spi4.2总线桥接实现方法及spi4.2总线桥接器件 | |
CN101291275B (zh) | Spi4.2总线桥接实现方法及spi4.2总线桥接器件 | |
US10061513B2 (en) | Packet processing system, method and device utilizing memory sharing | |
US10031884B2 (en) | Storage apparatus and method for processing plurality of pieces of client data | |
CN209514612U (zh) | 一种通信系统 | |
CN113821457B (zh) | 一种高性能读写链表缓存的装置及方法 | |
US6314489B1 (en) | Methods and systems for storing cell data using a bank of cell buffers | |
US20020089882A1 (en) | Simple method of allowing random access to rambus direct dram for short burst of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20101222 Assignee: SANECHIPS TECHNOLOGY Co.,Ltd. Assignor: ZTE Corp. Contract record no.: 2015440020319 Denomination of invention: Storage controller and processing method of data operation commands Granted publication date: 20130508 License type: Common License Record date: 20151123 |
|
LICC | Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 |