存储器管理方法以及存储控制器技术

技术编号:23557659 阅读:28 留言:0更新日期:2020-03-25 03:25
本发明专利技术提供一种存储器管理方法。所述方法包括:存储获取的第一指令至指令阵列,其中反应于判定所述第一指令为刷新指令,根据当前刷新阶段设定所述刷新指令与对应的第二指令的刷新阶段值,计算对应当前刷新阶段的刷新阶段计数值,并且调整所述当前刷新阶段;从所述指令阵列中选择新的目标指令,根据所述目标指令的目标刷新阶段值以及对应的目标刷新阶段计数值来执行所述目标指令,其中非预设值的所述目标刷新阶段计数值会被调整;根据调整后的所述目标刷新阶段计数值判断是否回应主机系统对应所述目标刷新阶段值的目标刷新指令已经执行完毕。

Storage management method and storage controller

【技术实现步骤摘要】
存储器管理方法以及存储控制器
本专利技术涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
技术介绍
传统的SATA(SerialAdvancedTechnologyAttachment)接口的固态硬盘(配置有可复写式非易失性存储器模块的存储装置)会使用进阶主机控制器接口(AdvancedHostControllerInterface,以下称AHCI)标准,其允许软件与SATA存储装置沟通。一般来说,AHCI具有32个指令深度,即,允许主机系统同一时间内下达32个指令。但是,随着硬件本身的进展,SATA接口的固态硬盘也演化为PCIe(PeripheralComponentInterconnectexpress)接口的固态硬盘,并且PCIe接口的固态硬盘会使用非易失性存储器主机控制器接口(Non-VolatileMemoryexpress,以下称NVMe)标准。一般来说,NVMe具有65536个指令深度,即,允许主机系统同一时间内下达65536个指令。也就是说,因为NVMe标准可提供近两千倍的指令深度,存储控制器所需要管理的来自主机系统的指令的数量也会随之大量增加。因此,要如何在NVMe标准下管理所接收到的大量指令,进而提升PCIe接口的固态硬盘的处理指令的效率,是本领域人员研究的课题之一。
技术实现思路
本专利技术提供一种存储器管理方法(也称,主机指令管理方法)与存储控制器,可有效率地消化指令阵列中的多个指令,并且降低刷新指令所造成的资源抢夺。本专利技术的一实施例提供适用于配置有可复写式非易失性存储器模块的存储装置的一种存储器管理方法。所述方法包括下列步骤:(1)从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令(FlushCommand),其中反应于判定所述第一指令为所述刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为所述刷新指令,执行步骤(2b);(2a)将所述刷新指令存储至指令阵列(CommandQueue)中,根据所述刷新指令来识别所述指令阵列中对应所述刷新指令的一或多个第二指令,并且计数所述刷新指令与所述一或多个第二指令的总数以成为对应当前刷新阶段的刷新阶段计数值;根据所述当前刷新阶段来设定所述指令阵列中的所述刷新指令与所述一或多个第二指令各自的刷新阶段值,并且将所述当前刷新阶段从多个刷新阶段中的第一刷新阶段调整至第二刷新阶段;以及根据所述指令阵列中的一或多个刷新指令的总数以及所述指令阵列的剩余空间来执行步骤(1)或步骤(3);(2b)将所述第一指令存储至指令阵列,并且根据所述指令阵列的所述剩余空间来执行步骤(1)或步骤(3);(3)不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);(4)从所述指令阵列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标刷新阶段值以及对应所述目标刷新阶段值的目标刷新阶段计数值,其中反应于所述目标指令不具有所述目标刷新阶段值,执行步骤(5a),其中反应于所述目标指令具有所述目标刷新阶段值,执行步骤(5b);(5a)执行所述目标指令,并且反应于完成所述目标指令的执行,从所述指令阵列中删除所述目标指令,并且执行步骤(1);(5b)改变所述目标刷新阶段计数值,并且根据改变后的所述目标刷新阶段计数值执行步骤(5a)或步骤(5c);(5c)执行所述目标指令,回应主机系统对应所述目标刷新阶段值的目标刷新指令已经执行完毕,将所述目标刷新阶段计数值设定为预设值,并且执行步骤(1)。本专利技术的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、主机指令管理电路单元以及处理器。连接接口电路用以耦接至主机系统。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。处理器耦接至所述连接接口电路、所述存储器接口控制电路及所述主机指令管理电路单元。所述处理器,其中所述处理器用以指示所述主机指令管理电路单元执行主机指令管理操作。所述主机指令管理操作包括下列步骤:(1)所述主机指令管理电路单元用以从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令(FlushCommand),其中反应于判定所述第一指令为所述刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为所述刷新指令,执行步骤(2b);(2a)所述主机指令管理电路单元用以将所述刷新指令存储至指令阵列(CommandQueue)中,根据所述刷新指令来识别所述指令阵列中对应所述刷新指令的一或多个第二指令,并且计数所述刷新指令与所述一或多个第二指令的总数以成为对应当前刷新阶段的刷新阶段计数值;所述主机指令管理电路单元还用以根据所述当前刷新阶段来设定所述指令阵列中的所述刷新指令与所述一或多个第二指令各自的刷新阶段值,并且将所述当前刷新阶段从多个刷新阶段中的第一刷新阶段调整至第二刷新阶段;以及所述主机指令管理电路单元还用以根据所述指令阵列中的一或多个刷新指令的总数以及所述指令阵列的剩余空间来执行步骤(1)或步骤(3);(2b)所述主机指令管理电路单元用以将所述第一指令存储至指令阵列,并且根据所述指令阵列的所述剩余空间来执行步骤(1)或步骤(3);(3)所述主机指令管理电路单元用以不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);(4)所述主机指令管理电路单元用以从所述指令阵列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标刷新阶段值以及对应所述目标刷新阶段值的目标刷新阶段计数值,其中反应于所述目标指令不具有所述目标刷新阶段值,执行步骤(5a),其中反应于所述目标指令具有所述目标刷新阶段值,执行步骤(5b);(5a)所述主机指令管理电路单元用以指示所述处理器执行所述目标指令,并且反应于完成所述目标指令的执行,所述主机指令管理电路单元用以从所述指令阵列中删除所述目标指令,并且执行步骤(1);(5b)所述主机指令管理电路单元用以改变所述目标刷新阶段计数值,并且根据改变后的所述目标刷新阶段计数值执行步骤(5a)或步骤(5c);(5c)所述主机指令管理电路单元用以指示所述处理器执行所述目标指令,并且回应所述主机系统对应所述目标刷新阶段值的目标刷新指令已经执行完毕,所述主机指令管理电路单元还用以将所述目标刷新阶段计数值设定为预设值,并且执行步骤(1)。基于上述,本实施例所提供的存储器管理方法以及存储控制器,可在指令阵列接收到刷新指令的时候,根据当前刷新阶段来记录对应的刷新阶段值至指令阵列中的所述刷新指令与对应所述刷新指令的多个指令,记录对应的刷新阶段计数值,并且更新当前刷新阶段,但不会直接根据所接收的刷新指令来执行与清空指令阵列中对应所述刷新指令的非刷新指令。此外,还根据不同的条件来调整所记录的刷新阶段计数值,以管理指令阵列中对应不同刷新阶段的指令,进而完成所接收的刷新指令。也就是说,本实施例所提供的存储器管理方法以及存储控制器,可使指令阵列中对应所述刷新指令的非刷新指令不会具有特别的优先权(避免了所述非刷新指令的资源抢夺),以避免延本文档来自技高网...

【技术保护点】
1.一种存储器管理方法,适用于配置有可复写式非易失性存储器模块的存储装置,所述方法包括下列步骤:/n(1)从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令,其中反应于判定所述第一指令为所述刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为所述刷新指令,执行步骤(2b);/n(2a)将所述刷新指令存储至指令阵列中,根据所述刷新指令来识别所述指令阵列中对应所述刷新指令的一或多个第二指令,并且计数所述刷新指令与所述一或多个第二指令的总数以成为对应当前刷新阶段的刷新阶段计数值;/n根据所述当前刷新阶段来设定所述指令阵列中的所述刷新指令与所述一或多个第二指令各自的刷新阶段值,并且将所述当前刷新阶段从多个刷新阶段中的第一刷新阶段调整至第二刷新阶段;以及/n根据所述指令阵列中的一或多个刷新指令的总数以及所述指令阵列的剩余空间来执行步骤(1)或步骤(3);/n(2b)将所述第一指令存储至指令阵列,并且根据所述指令阵列的所述剩余空间来执行步骤(1)或步骤(3);/n(3)不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);/n(4)从所述指令阵列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标刷新阶段值以及对应所述目标刷新阶段值的目标刷新阶段计数值,其中反应于所述目标指令不具有所述目标刷新阶段值,执行步骤(5a),其中反应于所述目标指令具有所述目标刷新阶段值,执行步骤(5b);/n(5a)执行所述目标指令,并且反应于完成所述目标指令的执行,从所述指令阵列中删除所述目标指令,并且执行步骤(1);/n(5b)改变所述目标刷新阶段计数值,并且根据改变后的所述目标刷新阶段计数值执行步骤(5a)或步骤(5c);/n(5c)执行所述目标指令,回应主机系统对应所述目标刷新阶段值的目标刷新指令已经执行完毕,将所述目标刷新阶段计数值设定为预设值,并且执行步骤(1)。/n...

【技术特征摘要】
1.一种存储器管理方法,适用于配置有可复写式非易失性存储器模块的存储装置,所述方法包括下列步骤:
(1)从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令,其中反应于判定所述第一指令为所述刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为所述刷新指令,执行步骤(2b);
(2a)将所述刷新指令存储至指令阵列中,根据所述刷新指令来识别所述指令阵列中对应所述刷新指令的一或多个第二指令,并且计数所述刷新指令与所述一或多个第二指令的总数以成为对应当前刷新阶段的刷新阶段计数值;
根据所述当前刷新阶段来设定所述指令阵列中的所述刷新指令与所述一或多个第二指令各自的刷新阶段值,并且将所述当前刷新阶段从多个刷新阶段中的第一刷新阶段调整至第二刷新阶段;以及
根据所述指令阵列中的一或多个刷新指令的总数以及所述指令阵列的剩余空间来执行步骤(1)或步骤(3);
(2b)将所述第一指令存储至指令阵列,并且根据所述指令阵列的所述剩余空间来执行步骤(1)或步骤(3);
(3)不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);
(4)从所述指令阵列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标刷新阶段值以及对应所述目标刷新阶段值的目标刷新阶段计数值,其中反应于所述目标指令不具有所述目标刷新阶段值,执行步骤(5a),其中反应于所述目标指令具有所述目标刷新阶段值,执行步骤(5b);
(5a)执行所述目标指令,并且反应于完成所述目标指令的执行,从所述指令阵列中删除所述目标指令,并且执行步骤(1);
(5b)改变所述目标刷新阶段计数值,并且根据改变后的所述目标刷新阶段计数值执行步骤(5a)或步骤(5c);
(5c)执行所述目标指令,回应主机系统对应所述目标刷新阶段值的目标刷新指令已经执行完毕,将所述目标刷新阶段计数值设定为预设值,并且执行步骤(1)。


2.根据权利要求1所述的存储器管理方法,其中所述指令缓冲器用以从所述主机系统接收指令,其中上述方法还包括下列步骤:
反应于所述指令缓冲器与所述指令阵列皆不具有任何指令,结束上述存储器管理方法的所有步骤;以及
反应于经由空的所述指令缓冲器从所述主机系统接收到一个指令,开始执行上述步骤(1),
其中上述步骤(1)的从指令缓冲器获取所述新的第一指令的步骤包括反应于所述指令缓冲器不具有可被获取的所述新的第一指令,执行步骤(4)。


3.根据权利要求1所述的存储器管理方法,其中所述指令阵列被维护于主机指令管理电路单元中,所述指令阵列的所有指令皆各自被标记对应的刷新阶段值,其中刷新阶段计数表被维护于所述主机指令管理电路单元中,并且所述刷新阶段计数表记录有多个刷新阶段与分别对应所述多个刷新阶段的多个刷新阶段计数值,其中上述步骤(4)包括:
依据先进先出方式来从所述指令阵列的所述一或多个非刷新指令中选择所述目标指令;以及
从指令阵列中识别所述目标指令的被标记的所述目标刷新阶段值,并且根据所述目标刷新阶段值从所述刷新阶段计数表中查找对应目标刷新阶段计数值。


4.根据权利要求1所述的存储器管理方法,其中上述步骤(5b)包括:
反应于所述目标指令具有所述目标刷新阶段值,将所述目标刷新阶段计数值减一,以改变所述目标刷新阶段计数值;
判断改变后的所述目标刷新阶段计数值是否等于1,其中反应于所述目标刷新阶段计数值不等于1,执行步骤(5a),
其中反应于所述目标刷新阶段计数值等于1,执行步骤(5c),
其中所述步骤(5c)包括:
反应于完成所述目标指令的执行,删除所述指令阵列中的所述目标指令以及所述目标刷新指令。


5.根据权利要求1所述的存储器管理方法,其中所述刷新指令用以指示将所述指令阵列的所述一或多个第二指令删除,并且所述刷新指令与所述一或多个第二指令皆对应相同的识别单元,其中上述步骤(2a)包括:
不根据所述刷新指令执行所述一或多个第二指令,并且不删除所述一或多个第二指令;
记录所述刷新阶段计数值,以对应所述多个刷新阶段中的所述第一刷新阶段,
其中所述多个刷新阶段以循环方式排列,并且所述第二刷新阶段排列在所述第一刷新阶段之后。


6.根据权利要求5所述的存储器管理方法,其中上述步骤(2a)的根据所述指令阵列中的所述一或多个刷新指令的所述总数以及所述指令阵列的剩余空间的步骤包括:
判断所述指令阵列中的所述一或多个刷新指令的总数是否大于阶段上限值,
其中反应于判定所述一或多个刷新指令的所述总数大于所述阶段上限值,执行步骤(3),
其中反应于判定所述一或多个刷新指令的所述总数不大于所述阶段上限值,判断所述指令阵列是否具有所述剩余空间,其中反应于判定所述指令阵列不具有所述剩余空间,执行步骤(3),其中反应于判定所述指令阵列具有所述剩余空间,执行步骤(1)。


7.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,所述存储控制器包括:
连接接口电路,用以耦接至主机系统,其中所述连接接口电路包括指令缓冲器,用以暂存来自所述主机系统的指令;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;
主机指令管理电路单元;以及
处理器,耦接至所述连接接口电路、所述存储器接口控制电路及所述主机指令管理电路单元,其中所述处理器用以指示所述主机指令管理电路单元执行主机指令管理操作,所述主机指令管理操作包括下列步骤...

【专利技术属性】
技术研发人员:萧又华谢宏志
申请(专利权)人:深圳大心电子科技有限公司
类型:发明
国别省市:广东;44

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

1