CN110879794A - 存储器管理方法以及存储控制器 - Google Patents

存储器管理方法以及存储控制器 Download PDF

Info

Publication number
CN110879794A
CN110879794A CN201811032715.XA CN201811032715A CN110879794A CN 110879794 A CN110879794 A CN 110879794A CN 201811032715 A CN201811032715 A CN 201811032715A CN 110879794 A CN110879794 A CN 110879794A
Authority
CN
China
Prior art keywords
instruction
phase
command
target
host
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
Application number
CN201811032715.XA
Other languages
English (en)
Other versions
CN110879794B (zh
Inventor
黄上滨
谢宏志
萧又华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Da Xin Electronic Technology Co Ltd
Original Assignee
Shenzhen Da Xin Electronic Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Da Xin Electronic Technology Co Ltd filed Critical Shenzhen Da Xin Electronic Technology Co Ltd
Priority to CN201811032715.XA priority Critical patent/CN110879794B/zh
Publication of CN110879794A publication Critical patent/CN110879794A/zh
Application granted granted Critical
Publication of CN110879794B publication Critical patent/CN110879794B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种存储器管理方法。所述方法包括:存储获取的第一指令至指令伫列,并且根据当前指令阶段设定所述第一指令的指令阶段值,其中反应于判定所述第一指令为刷新指令,计算对应当前指令阶段的指令阶段计数值,并且调整所述当前指令阶段;从所述指令伫列中选择新的目标指令,根据所述目标指令的目标指令阶段值以及对应的目标指令阶段计数值来执行所述目标指令,其中非预设值的所述目标指令阶段计数值会被调整;根据调整后的所述目标指令阶段计数值判断是否回应主机系统对应所述目标指令阶段值的目标刷新指令已经执行完毕。

Description

存储器管理方法以及存储控制器
技术领域
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
背景技术
传统的SATA(Serial Advanced Technology Attachment)接口的固态硬盘(配置有可复写式非易失性存储器模块的存储装置)会使用进阶主机控制器接口(Advanced HostController Interface,以下称AHCI)标准,其允许软件与SATA存储装置沟通。一般来说,AHCI具有 32个指令深度,即,允许主机系统同一时间内下达32个指令。
但是,随着硬件本身的进展,SATA接口的固态硬盘也演化为PCIe(PeripheralComponent Interconnect express)接口的固态硬盘,并且PCIe接口的固态硬盘会使用非易失性存储器主机控制器接口(Non-Volatile Memory express,以下称NVMe)标准。一般来说,NVMe具有65536 个指令深度,即,允许主机系统同一时间内下达65536个指令。也就是说,因为NVMe标准可提供近两千倍的指令深度,存储控制器所需要管理的来自主机系统的指令的数量也会随之大量增加。
因此,要如何在NVMe标准下管理所接收到的大量指令,进而提升PCIe接口的固态硬盘的处理指令的效率,是本领域人员研究的课题之一。
发明内容
本发明提供一种存储器管理方法(也称,主机指令管理方法)与存储控制器,可有效率地消化指令伫列中的多个指令,并且降低刷新指令所造成的资源抢夺。
本发明的一实施例提供适用于配置有可复写式非易失性存储器模块的存储装置的一种存储器管理方法。所述方法包括下列步骤:(1)从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令(Flush Command),其中反应于判定所述第一指令为该刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为该刷新指令,执行步骤(2b);(2a)根据一当前指令阶段来设定所述刷新指令的指令阶段值,将所述刷新指令存储至指令伫列(Command Queue)中,识别所述指令伫列中对应所述当前指令阶段的多个第二指令,并且计数所述多个第二指令的总数以成为对应所述当前指令阶段的指令阶段计数值;将所述当前指令阶段从多个指令阶段中的第一指令阶段调整至第二指令阶段;以及根据所述指令伫列的剩余空间以及所述指令伫列中的一或多个刷新指令的总数来执行步骤(1)或步骤(3);(2b)根据所述当前指令阶段来设定所述第一指令的指令阶段值,将所述第一指令存储至所述指令伫列,并且根据所述指令伫列的所述剩余空间来执行步骤(1)或步骤(3);(3)不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);(4)从所述指令伫列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标指令阶段值以及对应所述目标指令阶段值的目标指令阶段计数值,其中反应于所识别的所述目标指令阶段计数值等于预设值,执行步骤(5a),其中反应于所识别的所述目标指令阶段计数值不等于预设值,执行步骤(5b);(5a)执行所述目标指令,并且反应于完成所述目标指令的执行,从所述指令伫列中删除所述目标指令,并且执行步骤(1);(5b)改变所述目标指令阶段计数值,并且根据改变后的所述目标指令阶段计数值执行步骤(5a)或步骤 (5c);(5c)执行所述目标指令,回应一主机系统对应所述目标指令阶段值的目标刷新指令已经执行完毕,将所述目标指令阶段计数值设定为所述预设值,并且执行步骤(1)。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、主机指令管理电路单元以及处理器。连接接口电路用以耦接至主机系统。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。处理器耦接至所述连接接口电路、所述存储器接口控制电路及所述主机指令管理电路单元。所述处理器,其中所述处理器用以指示所述主机指令管理电路单元执行一主机指令管理操作。所述主机指令管理操作包括下列步骤:(1)该主机指令管理电路单元从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令(Flush Command),其中反应于判定所述第一指令为该刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为该刷新指令,执行步骤(2b);(2a)该主机指令管理电路单元根据一当前指令阶段来设定所述刷新指令的指令阶段值,将所述刷新指令存储至指令伫列(Command Queue) 中,识别所述指令伫列中对应所述当前指令阶段的多个第二指令,并且计数所述多个第二指令的总数以成为对应所述当前指令阶段的指令阶段计数值;该主机指令管理电路单元将所述当前指令阶段从多个指令阶段中的第一指令阶段调整至第二指令阶段;以及该主机指令管理电路单元根据所述指令伫列的剩余空间以及所述指令伫列中的一或多个刷新指令的总数来执行步骤(1)或步骤(3);(2b)该主机指令管理电路单元根据所述当前指令阶段来设定所述第一指令的指令阶段值,将所述第一指令存储至所述指令伫列,并且根据所述指令伫列的所述剩余空间来执行步骤(1)或步骤(3);(3)该主机指令管理电路单元不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);(4)该主机指令管理电路单元从所述指令伫列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标指令阶段值以及对应所述目标指令阶段值的目标指令阶段计数值,其中反应于所识别的所述目标指令阶段计数值等于预设值,执行步骤(5a),其中反应于所识别的所述目标指令阶段计数值不等于预设值,执行步骤(5b);(5a)该主机指令管理电路单元指示该处理器执行所述目标指令,并且反应于完成所述目标指令的执行,从所述指令伫列中删除所述目标指令,并且执行步骤(1);(5b)该主机指令管理电路单元改变所述目标指令阶段计数值,并且根据改变后的所述目标指令阶段计数值执行步骤(5a)或步骤(5c);(5c)该主机指令管理电路单元指示该处理器执行所述目标指令,回应一主机系统对应所述目标指令阶段值的目标刷新指令已经执行完毕,将所述目标指令阶段计数值设定为所述预设值,并且执行步骤(1)。
基于上述,本实施例所提供的存储器管理方法以及存储控制器,可在指令伫列接收到刷新指令的时候,记录对应的指令阶段计数值且更新当前指令阶段,不会直接根据所接收的刷新指令来执行与清空指令伫列中对应所述刷新指令的非刷新指令。此外,还根据不同的条件来调整所记录的指令阶段计数值,以管理指令伫列中对应不同指令阶段的指令,进而完成所接收的刷新指令。也就是说,本实施例所提供的存储器管理方法以及存储控制器,可使指令伫列中对应所述刷新指令的非刷新指令不会具有特别的优先权,以避免延迟了其他指令的执行。如此一来,存储装置可在平滑地消化(执行)指令伫列中的所有指令的过程中,顺便完成所接收的刷新指令,进而增进了存储装置的数据存取效率与工作效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图;
图2A与图2B是根据本发明的一实施例所示出的存储器管理方法的流程图;
图3A与图3B为根据本发明的一实施例所示出的指令缓冲器从主机系统接收指令的示意图;
图4A至图4D为根据本发明的一实施例所示出的管理指令伫列的示意图;
图5A至图5D为根据本发明的另一实施例所示出的管理指令伫列的示意图。
附图标记说明
10:主机系统
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据管理电路
213:存储器接口控制电路
214:错误检查与校正电路
215:主机指令管理电路单元
2151:指令伫列管理电路
2152:指令阶段计数电路
216:缓冲存储器
217:电源管理电路
220:可复写式非易失性存储器模块
230:连接接口电路
2301:指令缓冲器
S201、S203、S205、S207、S208、S209、S210、S211、S212、S213、S214:存储器管理方法的流程步骤
A、B、C:节点
N11、N21、N22、N31、N12、F1、F2、F3:指令
A31~A33、A41~A46、A51~A59、D31~D34、D41~D44、D51~D54、R51、E51~ E52:箭头
400~408:指令伫列
410、411:指令阶段计数表
410(1)~410(3):指令阶段计数值
P1~P3:指令阶段
T1.1~T1.7、T2.1~T2.8、T3.1~T3.8:时间点
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130耦接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用系统总线(System Bus)彼此耦接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块 (Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataManagement Circuit)212与存储器接口控制电路(Memory Interface Control Circuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统 10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是U盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线耦接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、串行高级技术附件(Serial Advanced Technology Attachment,SATA)标准、通用串行总线(Universal Serial Bus, USB)标准、SD接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(UniversalFlash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230 是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory, DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元 (Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211 会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的物理存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器210各部件所执行的操作也可视为存储控制器210所执行的操作。
其中,数据管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路 230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个物理单元中读取数据(数据可读取自一或多个物理单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120) 中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。
存储器接口控制电路213用以接受处理器211(或空白单元管理电路模块215)的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化, Programming)操作、读取操作或抹除操作。例如,根据空白单元管理电路模块215的指示使用特定的读取电压来进行对于可复写式非易失性存储器模块220的一存储单元的读取操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个物理单元中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213 转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要执行写入或读取指令以存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,耗损平衡操作或垃圾回收操作等等) 的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213) 并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple LevelCell,TLC)NAND 型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元 (Quadruple Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flashmemory module)或垂直 NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线包括多个存储单元。同一条字线上的多个存储单元会组成一或多个物理程序化单元(物理页面)。此外,多个物理程序化单元可组成一个物理单元(物理区块或物理抹除单元)。在本实施例中,一个物理程序化单元可具有不同类型的物理页面。举例来说,在一实施例中,对于三阶存储单元NAND型快闪存储器模块来说,三阶存储单元NAND型快闪存储器模块的一个物理程序化单元可具有第一类型物理页面与第二类型物理页面。所述第一类型物理页面例如为存储一个字节的下物理页面(Lower Physical Page);所述第二类型物理页面例如为各自存储一个字节的中物理页面(Middle Physical Page)与上物理页面(Upper Physical Page)。又例如,在一实施例中,对于三阶存储单元NAND型快闪存储器模块来说,三阶存储单元NAND型快闪存储器模块的一个物理程序化单元可具有第一类型物理页面、第二类型物理页面与第三类型物理页面。所述第一类型物理页面例如为存储一个字节的下物理页面;所述第二类型物理页面例如为存储一个字节的中物理页面;所述第三类型物理页面例如为存储一个字节的上物理页面。一般来说,当欲写入数据至三阶存储单元NAND型快闪存储器模块的一个物理程序化单元的上、中、下物理页面时,会依序从下物理页面开始写入数据,再写入至中物理页面,最后写入至上物理页面。
在本实施例中,物理抹除单元为抹除的最小单位,即,每一物理抹除单元含有最小数目之一并被抹除的存储单元。每一物理抹除单元会具有多个物理程序化单元。一个物理抹除单元可以是指任意数目的物理程序化单元组成,视实务上的需求而定。
在以下实施例中,是以一个物理区块作为一个物理抹除单元(也可称为,物理单元)的范例,并且每一个物理程序化单元被视为一个物理子单元。此外,必须了解的是,当处理器 211对可复写式非易失性存储器模块220中的物理程序化单元(或物理单元)进行分组以执行对应的管理操作时,此些物理程序化单元(或物理单元)是被逻辑地分组,而其实际位置并未更动。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10 是通过所配置的逻辑单元来存取存储在多个物理单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。一个逻辑单元可以是映射至一个物理单元,并且一个逻辑子单元可以是映射至一个物理子单元。
此外,存储控制器210会建立逻辑转物理地址映射表(Logical To Physicaladdress mapping table)与物理转逻辑地址映射表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑地址(如,逻辑区块、逻辑页面或逻辑扇区)与物理地址(如,物理抹除单元、物理程序化单元、物理扇区)之间的映射关系。换言之,存储控制器210可藉由逻辑转物理地址映射表来查找一逻辑单元所映射的物理地址,并且存储控制器210可藉由物理转逻辑地址映射表来查找一物理地址所映射的逻辑地址。然而,上述有关逻辑地址与物理地址映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在本实施例中,错误检查与校正电路214是耦接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传错误字节(也称,错误比特数目)给处理器211。
在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是耦接至处理器211 并且用以控制存储装置20的电源。
应注意的是,在本实施例中,连接接口电路230具有指令缓冲器(Command Buffer)2301,以暂存来自主机系统10的指令(也称,主机指令)。所暂存的主机指令会再被传送至主机指令管理电路单元215所管理的指令伫列中,以做进一步的管理。所述指令缓冲器(Command Buffer)2301例如是静态随机存取存储器或其他类似的存储器/存储电路。
在本实施例中,主机指令管理电路单元215包括指令伫列管理电路2151与指令阶段计数电路2152。所述处理器211会指示主机指令管理电路单元215来执行主机指令管理操作。主机指令管理电路单元215各部件所执行的操作也可视为主机指令管理电路单元215所执行的操作。主机指令管理电路单元215(或指令伫列管理电路2151)用以管理指令伫列,所述指令伫列用以根据指令接收顺序来存储从指令缓冲器2301所接收的主机指令。此外,主机指令管理电路单元215(或指令阶段计数电路2152)也可用以记录与管理关于指令伫列中的主机指令的信息,如,对应所接收的主机指令的指令阶段与指令阶段计数值,或是指令阶段计数表。
以下会配合多个附图来详细说明主机指令管理电路单元215如何进行主机指令管理操作的细节以及指令伫列管理电路2151与指令阶段计数电路2152的功能。
图2A与图2B是根据本发明的一实施例所示出的存储器管理方法的流程图。应注意的是,图2A与图2B所示出的存储器管理方法也可称为主机指令管理方法。此外,节点A、B、C仅用以接续流程,以使说明清楚,并不限制本发明。请同时参照图1、图2A与图2B,在步骤S201中,指令伫列管理电路2151从指令缓冲器2301获取新的第一指令。所获取的第一指令将会被存储在指令伫列管理电路2151的指令伫列(Command Queue)中。
具体来说,主机系统10的处理器110可经由数据传输接口电路下达指令(也称,主机指令)给存储装置。所述主机指令会被暂存在指令缓冲器2301。所述主机指令可区分为刷新指令(Flush Command)与非属于刷新指令的指令(也称,非刷新指令)。对应一个识别单元(或对应执行绪(Thread),或对应命名空间(Namespace))的所述刷新指令用以指示将对应所述识别单元的多个非刷新指令从指令伫列中删除。本发明并不限于所述刷新指令所对应的识别单元。例如,在另一实施例中,识别单元包括且不限于:(1)客户端(Client);(2)终端(Terminal); (3)物理(Entity)。
所述非刷新指令包括且不限于:(1)读取指令(Read Command)、写入指令(WriteCommand) 等用以存取数据的指令;以及(2)修剪指令(Trim Command)、开电指令、关电指令、休眠指令等用以控制存储装置的控制指令。
以下先利用图3A与图3B说明指令缓冲器从主机系统接收指令的流程。
图3A与图3B为根据本发明的一实施例所示出的指令缓冲器从主机系统接收指令的示意图。请参照图3A,为了方便说明,假设指令缓冲器2301仅具有存储3个指令的空间。在时间点T1.1,主机系统10的处理器110经由数据传输接口电路130下达指令N11至指令缓冲器 2301(如,箭头D31所示)。所述指令N11中的“N”用以表示此指令为非刷新指令;“11”中的第一个“1”用以表示此指令是对应识别单元“1”,并且“11”中的第二个“1”用以表示此指令是对应识别单元“1”的第“1”个指令。
接着,在时间点T1.2,指令缓冲器2301会以先进先出(First In First Out,FIFO)方式来存储所接收到的指令N11(如,箭头A31所示)。也就是说,存储在指令缓冲器2301中的多个指令会依照时间先后来排列,并且较先被存储的指令会较先被读取(获取)。
接着,在时间点T1.3,主机系统10的处理器110经由数据传输接口电路130下达指令 N21至指令缓冲器2301(如,箭头D32所示)。在时间点T1.4,指令缓冲器2301会以先进先出方式来存储所接收到的指令N21(如,箭头A32所示)。所述指令N21排列在指令N11 后方。
请参照图3B,接着,在时间点T1.5,主机系统10的处理器110经由数据传输接口电路 130下达指令F1至指令缓冲器2301(如,箭头D33所示)。所述指令F1中的“F”用以表示此指令为刷新指令;“1”用以表示此指令是对应识别单元“1”。
在时间点T1.6,指令缓冲器2301会以先进先出方式来存储所接收到的指令F1(如,箭头 A33所示)。所述指令F1排列在指令N21后方。由于所述指令N11、F1皆对应相同的识别单元“1’,所述刷新指令F1对应先于指令F1的被存储在指令缓冲器2301中的非刷新指令N11。应注意的是,晚于刷新指令F1的被存储在指令缓冲器2301中的其他的对应识别单元“1”的非刷新指令并不会对应刷新指令F1。所述刷新指令F1用以指示将先于刷新指令F1的对应相同识别单元“1”的所有非刷新指令删除(例如,刷新指令F1用以指示删除指令N11)。
接着,在时间点T1.7,主机系统10的处理器110经由数据传输接口电路130下达指令 N22至指令缓冲器2301(如,箭头D34所示)。由于指令缓冲器2301已经没有任何空间(已满),指令N22便不能够被存储在指令缓冲区2301。此时,处理器211可指示主机指令管理电路单元215执行主机指令管理操作,以消化指令缓冲器2301所存储的从主机系统所接收到的指令,进而使指令缓冲器2301可清出空间来接收指令N22。
图4A至图4D为根据本发明的一实施例所示出的管理指令伫列的示意图。请参照图4A,在时间点2.1,如箭头D41所示,接续上述的例子,主机指令管理电路单元215从指令缓冲区 2301获取新的指令(也称,第一指令)N11。即,指令N11被传送(读取)至主机指令管理电路单元215的指令伫列管理电路2151,并且指令伫列管理电路2151存储指令N11至指令伫列400。此外,指令阶段计数电路2152记录分别对应多个指令阶段P1~P3的多个指令阶段计数值410(1)~410(3)。在本实施例中,所述多个指令阶段计数值410(1)~410(3)已被初始化为预设值(如,“0”)。
在本实施例中,指令阶段计数电路2152可利用指令阶段计数表410来记录所述分别对应多个指令阶段P1~P3的多个指令阶段计数值410(1)~410(3)。所述指令阶段P1~P3是依据循环 (Round Robin)方式来排列的。即,指令阶段P2排列在指令阶段P1后;指令阶段P3排列在指令阶段P2后;指令阶段P1排列在指令阶段P3后。此外,指令阶段计数电路2152更记录当前指令阶段,其用以表示目前的指令阶段为所述多个指令阶段P1~P3的其中之一。在本实施例中,反应于特定事件(如,从所述指令缓冲器2301所接收的第一指令为刷新指令),指令阶段计数电路2152会依据循环方式排列的指令阶段P1~P3来将当前指令阶段从一个指令阶段 (也称,第一指令阶段)切换(调整)至排列在所述第一指令阶段后的指令阶段(也称,第二指令阶段)。例如,当前指令阶段可从指令阶段P1被调整至指令阶段P2;当前指令阶段可从指令阶段P2被调整至指令阶段P3;当前指令阶段可从指令阶段P3被调整至指令阶段P1。所述当前指令阶段例如被初始化为指令阶段P1。所记录的当前指令阶段可整合至指令阶段计数表中(例如,利用特定栏位来标记当前指令阶段为所述多个指令阶段P1~P3的其中之一)。
请再回到图2A,接着,在步骤S202,指令伫列管理电路2151判断所述第一指令是否为刷新指令。根据所获取的第一指令来决定执行步骤S203(S202→否)或S208(S202→是)。在步骤S203中,指令伫列管理电路2151根据当前指令阶段来设定所述第一指令的指令阶段值,将所述第一指令存储至指令伫列。
举例来说,请参照图4A,指令伫列管理电路2151判定指令N11不为刷新指令,并且根据当前指令阶段P1来设定指令N11的指令阶段值(如,箭头A41所示),并且将所述指令N11与标记至指令N11的指令阶段值“P1”存储至指令伫列401中(时间点2.2)。也就是说,在本实施例中,指令伫列的所有指令皆各自被标记对应的指令阶段值。应注意的是,在一实施例中,指令伫列中的读取指令不会被标记指令阶段值。
接着,在步骤S204,指令伫列管理电路2151判断所述指令伫列是否具有剩余空间。其中,反应于判定所述指令伫列具有剩余空间,执行步骤S201;反应于判定所述指令伫列不具有剩余空间,执行步骤S205。
举例来说,如图4A所示,指令伫列400具有5个剩余空间;指令伫列401具有4个剩余空间(一个剩余空间已被用来存储指令N11与对应的指令阶段值)。在将所述指令N11与标记至指令N11的指令阶段值“P1”存储至指令伫列401后,指令伫列管理电路2151判定所述指令伫列401具有剩余空间,并且执行步骤S201,以继续从指令缓冲区2301获取另个指令(新的第一指令)。举例来说,请参照图4B,在时间点T2.3,如箭头D42所示,指令N21从指令缓冲区2301被获取。如箭头A42所示,指令伫列管理电路2151判定指令N21不是刷新指令,并且识别当前指令阶段为“P1”。接着,在时间点T2.4,指令N1与对应的指令阶段值“P1”会被存储到指令伫列402,并且排列在指令N11后。
由于指令伫列管理电路2151判定所述指令伫列402具有剩余空间,指令伫列管理电路 2151执行步骤S201,以继续从指令缓冲区2301获取另个指令(新的第一指令)。如图4C所示出,在时间点T2.5,新的指令F1被获取,指令伫列管理电路2151判定指令F1为刷新指令,并且接续至步骤S208。
在步骤S208中,指令伫列管理电路2151根据当前指令阶段来设定所述刷新指令的指令阶段值,将所述刷新指令存储至所述指令伫列中,并且识别所述指令伫列中对应所述当前指令阶段的多个第二指令,并且计数所述多个第二指令的总数以成为对应所述当前指令阶段的指令阶段计数值。具体来说,在时间点T2.6,如箭头A43所示,上述“根据当前指令阶段来设定所述刷新指令的指令阶段值,将所述刷新指令存储至所述指令伫列中”的步骤相似于步骤 S203,不赘述于此,即,指令F1与对应的指令阶段值“P1”被存储至指令伫列403。不同之处在于,反应于所识别的第一指令为刷新指令,指令阶段计数电路2152更会计数在目前的指令伫列中指令阶段值为当前指令阶段的多个指令(也称,第二指令)的总数(即,计算指令伫列中的当前指令阶段的总数)。
例如,请参照图4C,在存储指令F1后,当前指令阶段为“P1”,指令伫列403中指令阶段值为当前指令阶段“P1的第二指令为指令N11、N21与F1,并且所述指令N11、N21与F1的总数为3。基此,指令阶段计数电路2152会将3作为当前指令阶段“P1”的指令阶段计数值。也就是说,对应当前指令阶段,即,第一阶段P1的指令阶段计数值会从原本的预设值“0”被记录为“3”(如箭头A44所示)。此外,在步骤S209中,指令阶段计数电路2152将所述当前指令阶段从多个指令阶段中的第一指令阶段调整至第二指令阶段。应注意的是,所述预设值也可被设定为非0的其他数值。
例如,请参照图4C,如箭头A44所示,除了改变原本当前指令阶段P1的指令阶段计数值之外,指令阶段计数电路2152更将当前指令阶段从“P1”调整为“P2”。换言之,指令阶段计数表会从指令阶段计数表410更新为指令阶段计数表411。
请再回到图2A,接着,在步骤210中,指令伫列管理电路2151判断所述指令伫列中的一或多个刷新指令的总数是否大于阶段上限值。其中,反应于判定指令伫列中的所述一或多个刷新指令的总数大于阶段上限值,指令伫列管理电路2151执行步骤S205;反应于判定指令伫列中的所述一或多个刷新指令的总数不大于阶段上限值,指令伫列管理电路2151执行步骤 S204。
具体来说,在本实施例中,所述阶段上限值的数值为所述多个指令P1~P3的总数(即, 3)减一。也就是说,所述阶段上限值用来限制让目前非预设值的指令阶段计数值(即,被使用以记录非预设值的数值的指令阶段计数值)的总数最多为所有指令阶段的总数。即,若所有指令阶段的指令阶段计数值皆已被使用来记录非预设值的数值。
例如,如图4C中下方的例子,指令伫列管理电路2151会判定指令伫列403中的刷新指令仅有指令F1,即,指令伫列403中的所有的刷新指令的总数(即,1)不大于阶段上限值(即, 3-1=2)。接着,整个流程会接续至步骤S204。
此时,在步骤S204中,指令伫列管理电路2151会判定指令伫列403具有2个剩余空间,并且接续至步骤S201。请参照图4D,假设指令缓冲区2301从主机系统10接收到3个指令N22、F2、N31。从时间点T2.7开始,如上述的流程所说明的,指令N22与指令F2会陆续地被获取(如箭头D44所示),并且指令N22、F2与对应的指令阶段值“P2”(当前指令阶段值为“P2”)被存储至指令伫列404中(如箭头A45所示)。
此外,由于指令F2为刷新指令,对应当前指令阶段“P2”的指令阶段计数值410(2)被记录为“2”(不再是预设值),并且当前指令阶段更从“P2”被调整至“P3”(如箭头46所示,指令阶段计数表被更新了)。接着,流程接续至步骤S210。此时,在步骤S210中,指令伫列管理电路2151判定所述指令伫列中的一或多个刷新指令的总数不大于阶段上限值。接着,整个流程会接续至步骤S204。
然而,此时指令伫列管理电路2151会判定指令伫列404不具有剩余空间,并且执行步骤 S205。在步骤S205中,指令伫列管理电路2151不从所述指令缓冲器2301获取新的第一指令。接着,在步骤206中,指令伫列管理电路2151从所述指令伫列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标指令阶段值以及对应所述目标指令阶段值的目标指令阶段计数值。其中,反应于所识别的目标指令阶段计数值不等于预设值,执行步骤S211;反应于所识别的目标指令阶段计数值等于预设值,执行步骤S207。以下利用图5A至图5D来说明。
图5A至图5D为根据本发明的另一实施例所示出的管理指令伫列的示意图。
请参照图5A,举例来说,在时间点3.1中,指令伫列管理电路2151会识别指令伫列404 中的一或多个非刷新指令,即,指令N11、N21、N22。指令伫列管理电路2151会依据预设的规则来从指令N11、N21、N22中选择其中一个来作为目标指令。为了方便说明,所述预设的规则是先进先出。即,指令N11、N21、N22中最先被存储至指令伫列的非刷新指令会被先选择以作为新的目标指令。在图5A的例子中,如箭头E51所示,指令N11被选择为目标指令,并且指令伫列管理电路2151识别指令N11的指令阶段值(也称,目标指令阶段值)为“P1”。根据目标指令阶段值“P1”,指令伫列管理电路2151根据指令阶段计数电路2152所记录的对应指令阶段“P1”的指令阶段计数值410(1)识别到“3”(如,根据目标指令阶段与指令阶段计数表查找到目标指令阶段计数值为“3”)。
请参照图2B,此时,在时间点T3.2,反应于所识别的目标指令阶段计数值不等于预设值,指令阶段计数电路2152将所述目标指令阶段计数值减1,即,对应指令阶段P1的指令阶段计数值410(1)从“3”被调整为“2”(如箭头A51所示)。
在减去1后,指令伫列管理电路2151会判断所述目标指令阶段计数值是否等于1。反应于所述目标指令阶段计数值等于1,接续至步骤S212;反应于所述目标指令阶段计数值不等于1,接续至步骤S207。
举例来说,在上述例子中,由于目标指令阶段计数值为“2”,并不等于1。因此,流程接续至步骤S207,指令伫列管理电路2151指示处理器211执行所述目标指令,并且反应于完成所述目标指令的执行,指令伫列管理电路2151从所述指令伫列中删除所述目标指令。如图5A 的箭头D51所示,指令N11被传送至处理器211,以使处理器211根据指令N11来执行相应的操作。应注意的是,本发明并不限于处理器211执行指令的细节。接着,如箭头A52所示,指令伫列管理电路2151从所述指令伫列404中删除所述目标指令N11与对应的目标指令阶段值“P1”。此时,指令伫列405具有一个剩余空间(因删除了所述目标指令N11与对应的目标指令阶段值“P1”)。
接着,整体流程再回到步骤S201。请参照图5B,举例来说,假设指令缓冲区2301具有 3个主机指令N31、F3、N13。在时间点T3.3,如箭头D52所示,指令N31被获取。在时间点T3.4,如箭头A53所示,指令N31与对应的指令阶段值“P3”会被存储至指令伫列406。此时,由于指令伫列406已经没有剩余空间,流程再度执行步骤S205。
举例来说,请参照图5C,在时间点T3.5,如箭头52所示,指令伫列管理电路2151选择指令N21作为目标指令,并且将对应的指令阶段计数值从“2”减至“1”(如箭头A54所示)。此时,如箭头A55所示,反应于所述目标指令阶段计数值等于1,接续至步骤S212。在步骤212中,指令伫列管理电路2151指示处理器211执行所述目标指令,反应于完成所述目标指令的执行,删除所述指令伫列中的所述目标指令。步骤S212相似于步骤S207,细节不再赘述(如,箭头D53所示)。举例来说,如箭头A56所示,在时间点T3.6,指令N21与对应的指令阶段值“P1”会被删除。然而,不同于步骤S207的后续步骤S201,指令伫列管理电路2151 执行完步骤S212后,接续至步骤S213。即,指令伫列管理电路2151删除所述指令伫列中的所述目标刷新指令,并且回应主机系统对应所述目标指令阶段值的所述目标刷新指令已经执行完毕。因为刷新指令F1所指示的欲删除的指令N11皆已被删除。因此,如箭头R51所示,指令伫列管理电路2151会指示处理器211(或指令伫列管理电路2151本身)回应主机系统 10所述刷新指令已执行完毕。应注意的是,从上述例子可知道,本实施例在接收刷新指令F1 后且在回应刷新指令F1被执行完毕之前的期间,刷新指令F1本身并不会被执行且其他不是对应所述刷新指令F1的非刷新指令(如,指令N21)也会顺便被执行。此外,当刷新指令F1 所对应的非刷新指令皆被执行后,直接回应刷新指令F1已经执行完毕。换言之,本实施例的主机指令管理操作并不会因为接收刷新指令而使先于刷新指令的其他的非对应刷新指令的非刷新指令的执行顺序被抢夺,进而避免了刷新指令所导致的资源抢夺的现象。
接着,接续至步骤S214,指令阶段计数电路2152将所述目标指令阶段计数值设定为所述预设值。举例来说,如箭头A57所示,在回应对应目标指令阶段值的刷新指令已经执行完毕后,目标指令阶段计数值410(1)被设定为预设值(如,“0”)。
接着,整体流程回到步骤201。请参照图5D,在时间点T3.7,指令F3被获取,并且对应当前指令阶段“P3”的指令阶段计数值410(3)会被记录为“2”(因为指令伫列408具有2个为“P3”的指令阶段值)。当前指令阶段更会从“P3”被调整为“P1”(如箭头A59所示)。接着,相似于上述的实施例的说明,流程会再进入至步骤201。
值得一提的是,反应于指令缓冲器2301与指令伫列皆不具有任何指令,主机指令管理电路单元215会结束上述存储器管理方法的所有步骤。此外,反应于经由空的指令缓冲器2301 从该主机系统10接收到一个指令,处理器211可指示主机指令管理电路单元215开始执行上述步骤S201。其中,若在执行步骤S201过程中,指令缓冲器2301不具有可被获取的所述新的第一指令(例如,指令缓冲器2301为空的),执行步骤S206。
综上所述,本实施例所提供的存储器管理方法以及存储控制器,可在指令伫列接收到刷新指令的时候,记录对应的指令阶段计数值且更新当前指令阶段,不会直接根据所接收的刷新指令来执行与清空指令伫列中对应所述刷新指令的非刷新指令。此外,还根据不同的条件来调整所记录的指令阶段计数值,以管理指令伫列中对应不同指令阶段的指令,进而完成所接收的刷新指令。也就是说,本实施例所提供的存储器管理方法以及存储控制器,可使指令伫列中对应所述刷新指令的非刷新指令不会具有特别的优先权(避免了所述非刷新指令的资源抢夺),以避免延迟了其他指令的执行。如此一来,存储装置可在平滑地消化(执行)指令伫列中的所有指令的过程中,可顺便完成所接收的刷新指令,进而增进了存储装置的数据存取效率与工作效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。

Claims (12)

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.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,所述存储控制器包括:
连接接口电路,用以耦接至主机系统,其中所述连接接口电路包括指令缓冲器,用以暂存来自所述主机系统的指令;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;
主机指令管理电路单元;以及
处理器,耦接至所述连接接口电路、所述存储器接口控制电路及所述主机指令管理电路单元,其中所述处理器用以指示所述主机指令管理电路单元执行主机指令管理操作,所述主机指令管理操作包括下列步骤:
(1)所述主机指令管理电路单元从指令缓冲器获取新的第一指令,并且判断所述第一指令是否为刷新指令,其中反应于判定所述第一指令为所述刷新指令,执行步骤(2a),其中反应于判定所述第一指令不为所述刷新指令,执行步骤(2b);
(2a)所述主机指令管理电路单元根据当前指令阶段来设定所述刷新指令的指令阶段值,将所述刷新指令存储至指令伫列中,识别所述指令伫列中对应所述当前指令阶段的多个第二指令,并且计数所述多个第二指令的总数以成为对应所述当前指令阶段的指令阶段计数值;
所述主机指令管理电路单元将所述当前指令阶段从多个指令阶段中的第一指令阶段调整至第二指令阶段;以及
所述主机指令管理电路单元根据所述指令伫列的剩余空间以及所述指令伫列中的一或多个刷新指令的总数来执行步骤(1)或步骤(3);
(2b)所述主机指令管理电路单元根据所述当前指令阶段来设定所述第一指令的指令阶段值,将所述第一指令存储至所述指令伫列,并且根据所述指令伫列的所述剩余空间来执行步骤(1)或步骤(3);
(3)所述主机指令管理电路单元不从所述指令缓冲器获取新的第一指令,并且执行步骤(4);
(4)所述主机指令管理电路单元从所述指令伫列的一或多个非刷新指令中选择新的目标指令,识别所述目标指令的目标指令阶段值以及对应所述目标指令阶段值的目标指令阶段计数值,其中反应于所识别的所述目标指令阶段计数值等于预设值,执行步骤(5a),其中反应于所识别的所述目标指令阶段计数值不等于预设值,执行步骤(5b);
(5a)所述主机指令管理电路单元指示所述处理器执行所述目标指令,并且反应于完成所述目标指令的执行,从所述指令伫列中删除所述目标指令,并且执行步骤(1);
(5b)所述主机指令管理电路单元改变所述目标指令阶段计数值,并且根据改变后的所述目标指令阶段计数值执行步骤(5a)或步骤(5c);
(5c)所述主机指令管理电路单元指示所述处理器执行所述目标指令,回应主机系统对应所述目标指令阶段值的目标刷新指令已经执行完毕,将所述目标指令阶段计数值设定为所述预设值,并且执行步骤(1)。
8.根据权利要求7所述的存储控制器,其中所述指令缓冲器用以从所述主机系统接收指令,其中上述主机指令管理操作还包括下列步骤:
反应于所述指令缓冲器与所述指令伫列皆不具有任何指令,所述主机指令管理电路单元完成上述主机指令管理操作;以及
反应于经由空的所述指令缓冲器从所述主机系统接收到一个指令,所述处理器指示所述主机指令管理电路单元开始执行所述主机指令管理操作中的所述步骤(1),
其中在上述步骤(1)的从指令缓冲器获取所述新的第一指令的运作中,反应于所述指令缓冲器不具有可被获取的所述新的第一指令,所述主机指令管理电路单元执行步骤(4)。
9.根据权利要求7所述的存储控制器,其中所述指令伫列被维护于所述主机指令管理电路单元中,所述指令伫列的所有指令皆各自被标记对应的指令阶段值,其中指令阶段计数表被维护于所述主机指令管理电路单元中,并且所述指令阶段计数表记录有多个指令阶段与分别对应所述多个指令阶段的多个指令阶段计数值,其中上述步骤(4)包括:
所述主机指令管理电路单元依据先进先出方式来从所述指令伫列的所述一或多个非刷新指令中选择所述目标指令;以及
所述主机指令管理电路单元从指令伫列中识别所述目标指令的被标记的所述目标指令阶段值,并且根据所述目标指令阶段值从所述指令阶段计数表中查找对应目标指令阶段计数值。
10.根据权利要求7所述的存储控制器,其中上述步骤(5b)包括:
反应于所识别的所述目标指令阶段计数值不等于预设值,所述主机指令管理电路单元将所述目标指令阶段计数值减一,以改变所述目标指令阶段计数值;
所述主机指令管理电路单元判断改变后的所述目标指令阶段计数值是否等于1,其中反应于所述目标指令阶段计数值不等于1,所述主机指令管理电路单元执行步骤(5a),其中反应于所述目标指令阶段计数值等于1,执行步骤(5c),
其中所述步骤(5c)包括:
反应于完成所述目标指令的执行,所述主机指令管理电路单元删除所述指令伫列中的所述目标指令以及所述目标刷新指令。
11.根据权利要求7所述的存储控制器,其中所述刷新指令用以指示将所述指令伫列的所述多个非刷新指令中的一或多个第一非刷新指令删除,其中上述步骤(2a)包括:
所述主机指令管理电路单元不根据所述刷新指令指示所述处理器执行所述一或多个非刷新指令,并且所述主机指令管理电路单元不删除所述一或多个非刷新指令;
所述主机指令管理电路单元记录所述指令阶段计数值,以对应所述多个指令阶段中的所述第一指令阶段,
其中所述多个指令阶段以循环方式排列,并且所述第二指令阶段排列在所述第一指令阶段之后。
12.根据权利要求11所述的存储控制器,其中上述步骤(2a)还包括:
所述主机指令管理电路单元判断所述指令伫列中的一或多个刷新指令的总数是否大于阶段上限值,
其中反应于判定所述一或多个刷新指令的所述总数大于所述阶段上限值,执行步骤(3),
其中反应于判定所述一或多个刷新指令的所述总数不大于所述阶段上限值,所述主机指令管理电路单元判断所述指令伫列是否具有所述剩余空间,其中反应于判定所述指令伫列不具有所述剩余空间,执行步骤(3),其中反应于判定所述指令伫列具有所述剩余空间,执行步骤(1)。
CN201811032715.XA 2018-09-05 2018-09-05 存储器管理方法以及存储控制器 Active CN110879794B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811032715.XA CN110879794B (zh) 2018-09-05 2018-09-05 存储器管理方法以及存储控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811032715.XA CN110879794B (zh) 2018-09-05 2018-09-05 存储器管理方法以及存储控制器

Publications (2)

Publication Number Publication Date
CN110879794A true CN110879794A (zh) 2020-03-13
CN110879794B CN110879794B (zh) 2023-01-17

Family

ID=69726912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811032715.XA Active CN110879794B (zh) 2018-09-05 2018-09-05 存储器管理方法以及存储控制器

Country Status (1)

Country Link
CN (1) CN110879794B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742791A (en) * 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
EP0862118A1 (en) * 1997-01-09 1998-09-02 Hewlett-Packard Company Computer system
TW201432709A (zh) * 2013-02-06 2014-08-16 Phison Electronics Corp 控制方法、連接器與記憶體儲存裝置
US20160132237A1 (en) * 2014-11-12 2016-05-12 Ha Neul Jeong Data storage device, data processing system and method of operation
CN106959818A (zh) * 2016-01-11 2017-07-18 群联电子股份有限公司 数据写入方法、内存控制电路单元与内存储存装置
US20170277436A1 (en) * 2016-03-22 2017-09-28 Phison Electronics Corp. Memory management method, memory storage device and memory control circuit unit
CN107665091A (zh) * 2016-07-28 2018-02-06 大心电子股份有限公司 数据读取方法、数据写入方法及其存储控制器
US20180052634A1 (en) * 2016-08-19 2018-02-22 EpoStar Electronics Corp. Data transmission method, and storage controller and list management circuit using the same
US20180074751A1 (en) * 2016-09-09 2018-03-15 EpoStar Electronics Corp. Data transmission method, memory storage device and memory control circuit unit

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742791A (en) * 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
EP0862118A1 (en) * 1997-01-09 1998-09-02 Hewlett-Packard Company Computer system
TW201432709A (zh) * 2013-02-06 2014-08-16 Phison Electronics Corp 控制方法、連接器與記憶體儲存裝置
US20160132237A1 (en) * 2014-11-12 2016-05-12 Ha Neul Jeong Data storage device, data processing system and method of operation
CN106959818A (zh) * 2016-01-11 2017-07-18 群联电子股份有限公司 数据写入方法、内存控制电路单元与内存储存装置
US20170277436A1 (en) * 2016-03-22 2017-09-28 Phison Electronics Corp. Memory management method, memory storage device and memory control circuit unit
CN107665091A (zh) * 2016-07-28 2018-02-06 大心电子股份有限公司 数据读取方法、数据写入方法及其存储控制器
US20180052634A1 (en) * 2016-08-19 2018-02-22 EpoStar Electronics Corp. Data transmission method, and storage controller and list management circuit using the same
US20180074751A1 (en) * 2016-09-09 2018-03-15 EpoStar Electronics Corp. Data transmission method, memory storage device and memory control circuit unit

Also Published As

Publication number Publication date
CN110879794B (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
US10120615B2 (en) Memory management method and storage controller using the same
US10635358B2 (en) Memory management method and storage controller
US9176865B2 (en) Data writing method, memory controller, and memory storage device
CN111459844B (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
US10324651B2 (en) Data transmission method, and storage controller and list management circuit using the same
CN107665091B (zh) 数据读取方法、数据写入方法及其存储控制器
CN106951186B (zh) 数据程序化方法、存储器存储装置及存储器控制电路单元
CN107943710B (zh) 存储器管理方法及使用所述方法的存储控制器
US11693567B2 (en) Memory performance optimization method, memory control circuit unit and memory storage device
CN111078146B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
TWI670599B (zh) 記憶體管理方法以及儲存控制器
CN110879794B (zh) 存储器管理方法以及存储控制器
CN112445417B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN112463018B (zh) 指令传送方法、存储器控制电路单元及存储器存储装置
CN110908592B (zh) 存储器管理方法以及存储控制器
CN112540932B (zh) 存储控制器以及写入辅助方法
CN117632038B (zh) 损耗平衡方法、存储器存储装置及存储器控制电路单元
US9268554B2 (en) Controlling method, memory controller, and data transmission system
TWI840734B (zh) 指令管理方法、記憶體儲存裝置及記憶體控制電路單元
US20230161503A1 (en) Memory management method, memory storage device and memory control circuit unit
CN114327265B (zh) 读取干扰检查方法、存储器存储装置及控制电路单元
CN114371877A (zh) 指令管理方法、存储器存储装置及存储器控制电路单元
CN114385244A (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
GR01 Patent grant
GR01 Patent grant