存储器装置及命令重排序方法制造方法及图纸

技术编号:19488950 阅读:23 留言:0更新日期:2018-11-17 11:59
一种存储器装置及命令重排序方法,该存储器装置包括控制器与至少一存储器。控制器用以提供多个存取命令,并对多个存取命令进行命令重排序方法。命令重排序方法包括:阶层级步骤,从存取命令中选择具有与前次调度命令相同阶层地址的至少一命令作为至少一第一候选命令;库级步骤,从至少一第一候选命令中选择具有与前次调度命令不同库地址的至少一命令作为至少一第二候选命令;以及从至少一第二候选命令中选择命令作为本次调度命令。本发明专利技术能够降低库内的页表冲突机率、有效提升存储器的频宽利用率等。

【技术实现步骤摘要】
存储器装置及命令重排序方法
本专利技术是有关于一种电子装置,且特别是有关于一种存储器装置及其命令重排序方法。
技术介绍
现有的第四代双倍数据速率同步动态随机存取存储器(DoubleDataRateFourthGenerationSynchronousDynamicRandomAccessMemory,DDR4SDRAM)技术中,其命令调度机制包括不重新排序机制。不重新排序的做法直接从命令队列(queue)的第一个位置调度出命令,然后将此命令转换为对应的DDR4命令格式并传送到存储器中。然而,现有的命令调度机制在存储器的库(bank)之间没有充分利用DDR4的平行运算处理能力,在库内部也没有最佳化命令顺序以降低页表冲突,因此使得DDR4的频宽利用率较低。
技术实现思路
本专利技术提供一种存储器装置与命令重排序方法,以提高存储器的频宽利用率。本专利技术的实施例提供一种存储器装置。存储器装置包括控制器与至少一个存储器。控制器耦接至存储器。控制器提供多个存取命令,以及对这些存取命令进行命令重排序方法。其中,命令重排序方法包括:阶层级步骤,从存取命令中选择具有与前次调度命令相同阶层地址的至少一个命令作为第一候选命令;库级步骤,从至少一个第一候选命令中选择具有与前次调度命令不同库地址的至少一个命令作为第二候选命令;以及从至少一个第二候选命令中选择一个命令作为本次调度命令。本专利技术的实施例提供一种命令重排序方法,适用于存储器装置。存储器装置包括控制器与至少一个存储器。命令重排序方法包括:阶层级步骤,从控制器所提供的多个存取命令中选择具有与前次调度命令相同阶层地址的至少一个命令作为第一候选命令;库级步骤,从至少一个第一候选命令中选择具有与前次调度命令不同库地址的至少一个命令作为第二候选命令;以及从至少一个第二候选命令中选择一个命令作为本次调度命令。基于上述,在本专利技术一些实施例中,所述存储器装置及命令重排序方法可以将存储器频宽性能优化。基于阶层级、库级的层次对命令进行重排序,以降低库内的页表冲突机率,有效提升存储器的频宽利用率。为让本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。附图说明图1是依照本专利技术的一实施例绘示的一种存储器装置的电路方块(circuitblock)示意图。图2是依据本专利技术一实施例说明所绘示的一种命令重排序方法的流程图。图3是依据本专利技术一实施例说明图1所示控制器120的电路方块示意图。图4是依据本专利技术一实施例说明在图3所示写入调度队列(写入命令队列组)中的多个库队列的丛集结构示意图。图5是依据本专利技术一实施例所绘示的将存取命令推进对应的库队列的流程图。图6是依据本专利技术另一实施例所绘示的命令重排序方法的流程图。图7是依据本专利技术一实施例所绘示的读取队列的阶层级、库群级与库级重排序的流程图。图8是依据本专利技术一实施例所绘示的写入队列的阶层级、库群级与库级重排序的流程图。其中,附图中符号的简单说明如下:100:存储器装置;110:存储器;120:控制器;210:处理器;215:仲裁器;220:写入调度队列;230:读取调度队列;240:排序模块;310~340:第一~第四阶层级队列组;315~345:第一~第四库群级队列组;311~314:第一~第四库队列;S410~S490、S510~S590、S610~S675、S710~S775、S810~S830:步骤。具体实施方式在本专利技术说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。图1是依据本专利技术一实施例所绘示的存储器装置的电路方块(circuitblock)示意图。请参照图1,存储器装置100可以包括存储器110以及控制器120,存储器110耦接至控制器120。在此实施例中,处理器210(或主机)可以对控制器120下达存取请求,以便存取存储器110。处理器210可以是中央处理单元(CentralProcessingUnit,CPU),或是其他可程序化的微处理器(Microprocessor)、数字信号处理器(DigitalSignalProcessor,DSP)、可程序化控制器、特殊应用专用电路(ApplicationSpecificIntegratedCircuit,ASIC)或其他类似元件或上述元件的组合。依据接收到的存取请求,控制器120可以提供/产生对应的多个存取命令给存储器110,所述存取命令可以是读取命令或写入命令。亦即,控制器120可以依据处理器210的存取请求来对存储器110进行存取操作。在输出存取命令之前,控制器120可以对多个存取命令进行命令重排序方法,以便将重排序后的存取命令提交给存储器110。依照不同的设计需求,存储器110可以是任何型态的固定存储器或可移动存储器。例如,存储器110可以包括随机存取存储器(RandomAccessMemory,RAM)、只读存储器(Read-OnlyMemory,ROM)、快闪存储器(FlashMemory)或类似元件或上述元件的组合。控制器120可以是中央处理单元(CPU),或是其他可程序化的微处理器、数字信号处理器(DSP)、可程序化控制器、特殊应用专用电路(ASIC)或其他类似元件或上述元件的组合。图2是依据本专利技术一实施例所绘示的一种命令重排序方法的流程图。于步骤S810(阶层级步骤)中,控制器120从控制器120所提供的多个存取命令中选择具有与前次调度命令相同阶层(rank)地址的至少一命令作为至少一第一候选命令。所述“前次调度命令”是指先前被执行的存取命令。在控制器120进行多个存取命令的过程中,若阶层地址频繁地改变,则存储器110的存取效率会降低。当连续的多个存取命令都具有相同的阶层地址时,存储器110的存取会更有效率。步骤S810(阶层级步骤)可以从队列(queue)所存放的多个存取命令中选择具有与前次调度命令相同阶层地址的命令。因此,步骤S810(阶层级步骤)可以让具有相同阶层地址的多个存取命令群聚在一起而连续被执行,使得存储器110的存取可以更有效率。当这些存取命令中不存在具有与“前次调度命令”相同阶层地址的命令时,控制器120可以从这些存取命令中选择具有下一个阶层地址的命令作为所述第一候选命令。其中,所述下一个阶层地址不同于“前次调度命令”的阶层地址。接着,于步骤S820(库级步骤)中,控制器120可以从所述第一候选命令中选择具有与所述前次调度命令不同库(bank)地址的至少一命令作为至少一第二候选命令。于步骤S830中,控制器120可以从至少一第二候选命令中选择一个命令作为本次调度命令(目前执行命令)。当连续的两个存取命令都具有相同的库地址时,这两个存取命令往往是互相冲突的两个命令。当出现互相冲突的连续两个存取命令时,控制器120会发出辅助命令(例如预充电(pre-charge)命本文档来自技高网...

【技术保护点】
1.一种存储器装置,其特征在于,包括:至少一存储器;以及控制器,耦接至该存储器,用以提供多个存取命令,并对该多个存取命令进行命令重排序方法,其中该命令重排序方法包括:阶层级步骤,从该多个存取命令中选择具有与前次调度命令相同阶层地址的至少一命令作为至少一第一候选命令;库级步骤,从该至少一第一候选命令中选择具有与该前次调度命令不同库地址的至少一命令作为至少一第二候选命令;以及从该至少一第二候选命令中选择一命令作为本次调度命令。

【技术特征摘要】
1.一种存储器装置,其特征在于,包括:至少一存储器;以及控制器,耦接至该存储器,用以提供多个存取命令,并对该多个存取命令进行命令重排序方法,其中该命令重排序方法包括:阶层级步骤,从该多个存取命令中选择具有与前次调度命令相同阶层地址的至少一命令作为至少一第一候选命令;库级步骤,从该至少一第一候选命令中选择具有与该前次调度命令不同库地址的至少一命令作为至少一第二候选命令;以及从该至少一第二候选命令中选择一命令作为本次调度命令。2.根据权利要求1所述的存储器装置,其特征在于,所述阶层级步骤包括:当该多个存取命令中不存在具有与该前次调度命令相同阶层地址的命令时,从该多个存取命令中选择具有下一个阶层地址的至少一命令作为该至少一第一候选命令,其中该下一个阶层地址不同于该前次调度命令的阶层地址。3.根据权利要求1所述的存储器装置,其特征在于,所述阶层级步骤包括:从多个阶层级队列组中选择该前次调度命令所属的一阶层级队列组作为经择阶层级队列组;当该经择阶层级队列组为空时,从该多个阶层级队列组中选择下一个阶层级队列组作为该经择阶层级队列组;以及当该经择阶层级队列组不为空时,以该经择阶层级队列组所属的该多个存取命令作为该至少一第一候选命令。4.根据权利要求1所述的存储器装置,其特征在于,所述库级步骤包括:从多个库群级队列组中选择第一库群级队列组作为经择库群级队列组,其中该第一库群级队列组的库群地址不同于该前次调度命令的库群地址;当该经择库群级队列组为空时,从该多个库群级队列组中选择第二库群级队列组作为该经择库群级队列组;当该经择库群级队列组不为空时,从多个库队列中选择第一库队列作为经择库队列,其中该第一库队列的库地址不同于该前次调度命令的库地址;当该经择库队列为空时,从该多个库队列中选择第二库队列作为该经择库队列;以及当该经择库队列不为空时,以该经择库队列所属的该多个存取命令作为该至少一第二候选命令。5.根据权利要求4所述的存储器装置,其特征在于,该第二库群级队列组的库群地址不同于该前次调度命令的库群地址,且该第二库队列的库地址不同于该前次调度命令的库地址。6.根据权利要求1所述的存储器装置,其特征在于,该命令重排序方法还包括:判断目前时间处于读取调度窗口或是写入调度窗口;当目前时间处于该读取调度窗口时,检查读取命令队列组是否为空而获得第一检查结果,并依照该第一检查结果决定是否结束该读取调度窗口以进入该写入调度窗口;以及当目前时间处于该写入调度窗口时,检查写入命令队列组是否为空而获得第二检查结果,并依照该第二检查结果决定是否结束该写入调度窗口以进入该读取调度窗口。7.根据权利要求6所述的存储器装置,其特征在于,该多个存取命令包含多个读取命令,该命令重排序方法还包括:当目前时间处于该读取调度窗口时,检查超龄队列是否为空;当目前时间处于该读取调度窗口、且该超龄队列不为空时,从该超龄队列调度读取命令作为该本次调度命令;以及当目前时间处于该读取调度窗口、且该超龄队列为空时,进行所述阶层级步骤以及所述库级步骤,以从该多个读取命令中选择所述至少一第二候选命令。8.根据权利要求6所述的存储器装置,其特征在于,该多个存取命令包含多个写入命令,该命令重排序方法还包括:当目前时间处于该写入调度窗口时,进行所述阶层级步骤以及所述库级步骤,以从该多个写入命令中选择所述至少一第二候选命令。9.根据权利要求1所述的存储器装置,其特征在于,所述从该至少一第二候选命令中选择一命令作为本次调度命令的步骤包括:当该至少一第二候选命令中具有至少一页命中命令时,选择该至少一页命中命令的其中一者作为该本次调度命令;当该至少一第二候选命令中不具有页命中命令时,选择该至少一第二候选命令的其中一者作为该本次调度命令。10.一种...

【专利技术属性】
技术研发人员:金杰
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1