CN109213687B - 数据储存装置、存储器操作方法及操作指令执行方法 - Google Patents

数据储存装置、存储器操作方法及操作指令执行方法 Download PDF

Info

Publication number
CN109213687B
CN109213687B CN201710646528.XA CN201710646528A CN109213687B CN 109213687 B CN109213687 B CN 109213687B CN 201710646528 A CN201710646528 A CN 201710646528A CN 109213687 B CN109213687 B CN 109213687B
Authority
CN
China
Prior art keywords
instruction
queue
instruction queue
instructions
checked
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.)
Active
Application number
CN201710646528.XA
Other languages
English (en)
Other versions
CN109213687A (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN109213687A publication Critical patent/CN109213687A/zh
Application granted granted Critical
Publication of CN109213687B publication Critical patent/CN109213687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

本发明涉及数据储存装置、存储器操作方法及操作指令执行方法。本发明的数据储存装置包括多个非挥发式存储器以及多个指令伫列。这些指令伫列一对一对应这些非挥发式存储器。这些非挥发式存储器的操作共用一通道。数据储存装置采用任务切换机制以轮流地执行在同一通道上不同指令伫列中的操作指令。

Description

数据储存装置、存储器操作方法及操作指令执行方法
技术领域
本发明有关于非挥发式存储器的最佳化操作。
背景技术
数据储存装置所采用的非挥发式存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
非挥发式存储器可以多通道(multiple channels)方式操作。一通道可允许多个空间采交错式操作(interleaved way)。这些空间可以晶片致动信号(chip enablesignals)交错致动。如何最佳化一通道所对应的不同空间的交错式操作,为本技术领域一项重要课题。
发明内容
根据本发明一种实施方式所实现的一数据储存装置,包括多个非挥发式存储器以及多个指令伫列。这些指令伫列一对一对应这些非挥发式存储器。这些非挥发式存储器的操作共用一通道。
一种实施方式中,该数据储存装置还包括一控制器,于各回合状态轮询的末检查是否在这些指令伫列间切换。该控制器在进行一回合状态轮询之末,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换并执行所检查到的高优先权指令。
一种实施方式中,该数据储存装置还包括一控制器,将任务切换指令附加在各非挥发式存储器各段高优先权指令之后。该控制器在执行到上述任务切换指令时,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令。该控制器在执行到上述任务切换指令时,若确定上述指令伫列中非当下存取者不指向高优先权指令,则更检查上述指令伫列中非当下存取者是否指向状态轮询指令或数据传输指令,以进行指令伫列切换,执行所检查到的状态轮询指令或数据传输指令。
一种实施方式中,该数据储存装置还包括一控制器,切割数据传输指令插入任务切换指令。该控制器在执行到上述任务切换指令时,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令。
根据本发明一种实施方式实现的一非挥发式存储器操作方法,包括:以一通道操作多个非挥发式存储器;以及一对一对应这些非挥发式存储器提供多个指令伫列。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1为本发明数据储存装置;
图2为本发明操作指令执行的流程图;
图3为多个指令伫列的示意图;
图4A及4B为操作指令执行的时序图;
图5A及5B为操作指令执行的另一时序图;以及
图6为操作指令执行的示意图。
符号说明
100~控制晶片;
102~主机;
104~输入/输出介面;
106~输入/输出控制器;
108~中央处理单元;
110~快闪存储器控制器;
112~DRAM控制器;
CMD#1、CMD#2、CMD#3、CMD#4与CMD#5…CMD#8~操作指令;
CQ#1、CQ#2、CQ#3以及CQ#4~指令伫列;
DO'、DO#1、DO#2、DO#3、DO#4与DO#5…DO#8~数据传输指令;
Flash#1、Flash#2、Flash#3与Flash#4~快闪存储器;
SP#1、SP#2、SP#3、SP#4与SP#5…SP#8~状态轮询指令;
t1、t2~时间点;
TS、TS#1、TS#2、TS#3、TS#4与TS#5…TS#8~任务切换指令。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应由权利要求书权利要求界定。
非挥发式存储器可以是快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等具有长时间数据保存的存储器装置。以下特别以快闪存储器(Flash Memory)为例进行讨论,但不限定应用于快闪存储器领域。
现今数据储存装置常以快闪存储器为储存媒体,常用来实现记忆卡(MemoryCard)、通用串行总线闪存装置(USB Flash Device)、固态硬碟(SSD)…等产品。另外,有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子系统中。所述电子系统包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备、数据中心…等。电子系统的主要运算单元可视为操作所述数据储存装置的一主机。
快闪存储器形式的储存空间可以多通道(Multiple Channels)方式操作。单一通道对应多个LUN(逻辑单元),且这些空间是在晶片致动信号(Chip Enable Signals)控制下交错式共享该通道。传统技术是令共享一通道的多个LUN的快闪存储器操作指令(以下简称操作指令)混和堆迭在单一指令伫列并依序执行。本发明则是令一通道不同LUN的操作指令分开伫列至不同的指令伫列。分开伫列的操作指令可以交错地执行,彼此互不影响,因此,操作指令的执行可以有效地被加速,数据储存装置的系统效能可以有效地提升。另外,为了能够让分开伫列的操作指令可以交错地执行的目的,本发明导入任务切换(TaskSwitching)机制,让工作中指令伫列从目前指令伫列切换至另一指令伫列,以执行另一伫列中的操作指令。
图1为方块图,图解根据本发明一种实施方式所实现的数据储存装置,其中采用快闪存储器(Flash Memory)作为储存媒体。为了方便说明,图1仅图解单一通道藉晶片致动信号(Chip Enable Signals)交错操作的多个快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4。这些快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4可为不同的Dies(晶圆方块),也可为不同的LUN(逻辑单元)。指令伫列CQ#1、CQ#2、CQ#3以及CQ#4系一对一为快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4规划。一种实施方式中,指令伫列CQ#1、CQ#2、CQ#3以及CQ#4可以在储存媒体,例如内建的SRAM或外接的DRAM,中切割出快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4个别的专属空间。或者,指令伫列CQ#1、CQ#2、CQ#3以及CQ#4可由分开的储存装置实现。
图1还图解数据储存装置的控制晶片100,可依据主机102的外部指令而操作快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4。数据储存装置更使用DRAM(DynamicRandom Access Memory,动态随机存取存储器)作为数据缓冲器以加速数据的存取。控制晶片100包括输入/输出介面104、输入/输出控制器106、中央处理单元108、快闪存储器控制器110以及DRAM控制器112。快闪存储器控制器110较佳将指令伫列CQ#1、CQ#2、CQ#3以及CQ#4建立于控制晶片100所内建的SRAM中。另外,中央处理单元108与快闪存储器控制器110较佳整合于同一晶片中,亦可分别独立存在(不同的晶片)。
图2为本发明操作指令执行的流程图。步骤S202,将外部指令转译成多操作指令。主机102发出的外部指令通过该输入/输出介面104及该输入/输出控制器106而传送至该中央处理单元108。外部指令较佳是符合NVMe(NVM EXPRESS(Non-Volatile Memory Express,非挥发性存储器快捷)、ATA(advanced technology attachment,先进技术附件)、PATA(Parallel ATA,平行先进技术附件)、SATA(Serial ATA,序平行先进技术附件)、SCSI(Small Computer System Interface,小型电脑系统介面)、MMC(Multimedia Card,多媒体记忆卡)或UFS(Universal Flash Storage,通用快闪存储器卡)等通信协定的指令。
步骤S204,将多操作指令伫列至多指令伫列。中央处理单元108将外部指令伫列依据优先权或执行的顺序而进行排列,再传送至快闪存储器控制器110。快闪存储器控制器110将外部指令转译成多个操作指令后,例如,一笔外部指令可转译成三个操作指令,再将多个操作指令堆迭至指令伫列CQ#1、CQ#2、CQ#3以及CQ#4,再由该快闪存储器控制器110选取并执行,实现快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4的单一通道操作。快闪存储器控制器110更操作该DRAM控制器112以控制DRAM,以协助运作快闪存储器空间Flash#1、Flash#2、Flash#3与Flash#4。
如何在多个指令伫列中进行切换并执行伫列中的操作指令将决定数据储存装置的系统效能。本发明揭露一种任务切换(task switching)机制以进行指令伫列的切换。任务切换机制可以使指令伫列CQ#1、CQ#2、CQ#3以及CQ#4轮流作为工作中指令伫列,以执行伫列中的操作指令。任务切换机制一种实施方式使用任务切换指令。当执行任务切换指令时,快闪存储器控制器110依据选取条件而选取另一指令伫列并执行伫列中的操作指令。任务切换机制另一种实施方式则是由特定的操作指令来自动启动任务切换,例如,执行状态轮询(status polling)指令后,或接收状态轮询指令的回应(例如:回应为忙碌)后,由快闪存储器控制器110依据选取条件而自动选取另一指令伫列并执行伫列中的操作指令。在下述的说明中,将结合任务切换指令以及自动启动任务切换以进行说明,但不以此为限。
另外,任务切换机制较佳与轮转(Round Robin)机制或其他仲裁(arbitration)机制结合,较佳系依据指令伫列CQ的编号依序切换,或者,记录曾经当过工作中指令伫列,并在这些有记录的指令伫列中依序切换。另外,任务切换机制较佳结合优先权设定,例如,优先切换至伫列有高优先权的操作指令的指令伫列。
图3为本发明多个指令伫列的示意图。每一笔外部指令转译成多个操作指令,依序伫列至指令伫列CQ#1、CQ#2、CQ#3以及CQ#4中,其中,操作指令还包括任务切换指令TS。例如:一笔数据读取的外部指令转译成五笔操作指令,包括一笔操作指令CMD、一笔状态轮巡指令SP、一笔数据传输指令DO以及二笔任务切换指令TS。
步骤S206,选取其中之一指令伫列。图4A及4B为操作指令执行的时序图。为了简化说明,指令伫列CQ#1、CQ#2、CQ#3以及CQ#4中分别仅伫列五个操作指令,操作指令CMD#1、CMD#2、CMD#3与CMD#4分别是数据页读取指令(或字元线读取指令),并具有高优先权。其中,数据页读取指令包含多子读取指令以提供操作类别、地址资讯或操作结束等资讯,用以控制快闪存储器Flash#1、Flash#2、Flash#3与Flash#4的运作。任务切换指令TS#1、TS#2、TS#3与TS#4用于侦查指令伫列CQ#1、CQ#2、CQ#3以及CQ#4是否堆迭有操作指令,仅有一般优先权。由于快闪存储器在收到数据页读取指令后,会进入忙碌(busy)状态,并须一段时间才能将目标数据准备好。状态轮巡指令SP#1、SP#2、SP#3与SP#4仅有一般优先权,用以判断快闪存储器目前的状态。当目标数据准备完成后,快闪存储器从忙碌状态回到待命(ready)状态,故如图示,为了及早得知快闪存储器的状态,状态轮巡指令SP#1、SP#2、SP#3与SP#4需反复操作一段时间,直至快闪存储器从忙碌状态回到待命(ready)状态。另外,每回合轮巡(下达状态轮巡指令做状态检测、以及收到状态回应)后都会启动任务切换机制以侦查指令伫列CQ#1、CQ#2、CQ#3以及CQ#4是否堆迭有操作指令。数据传输指令DO#1、DO#2、DO#3与DO#4仅有一般优先权,安排在快闪存储器进入待命状态之后,用以读取快闪存储器所储存的目标数据。一开始时仅有指令伫列CQ#1伫列有操作指令,故指令伫列CQ#1作为工作中指令伫列。
步骤S208,执行伫列的操作指令。第4A、4B图为操作指令执行的示意图,图解指令伫列CQ#1、CQ#2、CQ#3以及CQ#4所伫列的操作指令的执行顺序。首先,指令伫列CQ#1伫列的操作指令CMD#1第一个被选取执行,快闪存储器Flash#1进入忙碌状态。
步骤S210,判断是否有高优先权的指令伫列中?如果是,则执行步骤S212:切换至伫列高优先权的指令之指令伫列;如果否,则执行步骤S214。操作指令CMD#1执行后,快闪存储器控制器110执行任务切换指令TS#1,检查指令伫列CQ#2、CQ#3以及CQ#4是否有伫列高优先权的操作指令。此时指令伫列CQ#2及CQ#3尚未伫列任何操作指令而指令伫列CQ#4上伫列有高优先权的操作指令CMD#4,因此,改由指令伫列CQ#4作为工作中指令伫列,并于步骤S208中执行操作指令CMD#4,使快闪存储器Flash#4进入忙碌状态。
接着,执行任务切换指令TS#4并检查到指令伫列CQ#1伫列有状态轮询指令SP#1,故改由指令伫列CQ#1作为工作中指令伫列,并执行状态轮询指令SP#1,检查快闪存储器Flash#1是否进入准备状态,即是否可进行数据页的数据传输(Data Out),此时,快闪存储器Flash#1尚未进入准备状态。
接着,快闪存储器控制器110自动启动任务切换,即执行步骤S210。由于没有高优先权的指令伫列中,所以执行步骤S214:判断是否有(一般优先权)指令伫列中?如果是则执行步骤S216:切换至另一个指令伫列。由于目前仅有指令伫列CQ#4有伫列指令,因此,改由指令伫列CQ#4作为工作中指令伫列,并执行伫列中的状态轮询指令SP#4,此时,快闪存储器Flash#4尚未进入准备状态。
接着,快闪存储器控制器110自动启动任务切换以切换至另一指令伫列。此时,伫列CQ#2上伫列有高优先权的操作指令CMD#2,因此,改由指令伫列CQ#2作为工作中指令伫列,并执行CMD#2,使快闪存储器Flash#2进入忙碌状态。
接着,执行任务切换指令TS#2。由于指令伫列CQ#3并未伫列有操作指令,因此改由指令伫列CQ#4作为工作中指令伫列,执行指令伫列CQ#4的状态轮询指令SP#4,此时快闪存储器Flash#4尚未进入准备状态。
接着,快闪存储器控制器110自动启动任务切换以切换至指令伫列CQ#1,改由指令伫列CQ#1作为工作中指令伫列,并执行状态轮询指令SP#1,此时快闪存储器Flash#1已进入准备状态。
接着,快闪存储器控制器110自动启动任务切换并检查到指令伫列CQ#3上伫列有高优先权的操作指令CMD#3,改由指令伫列CQ#3作为工作中指令伫列,并执行操作指令CMD#3,使快闪存储器Flash#3进入忙碌状态。
在执行状态轮询指令SP#1后仍执行启动任务切换具有一项优点。由于数据传输时将独占通道的频宽一段时间,如果能先执行其他操作指令,如上所述,先执行操作指令CMD#3,可间接节省快闪存储器Flash#3置于忙碌状态所需的时间,直接提升数据储存装置的系统效能。另外,在数据传输量较少,占用通道频宽时间较短的情况下,本发明亦保留弹性可在执行状态轮询指令后,不执行任务切换而直接进行数据传输,等数据传输过后再进行任务切换,以避免任务切换可能损耗的时间。
接着,执行任务切换指令TS#3并检查到指令伫列CQ#4伫列有状态轮询指令SP#4,改由指令伫列CQ#4作为工作中指令伫列,并执行状态轮询指令SP#4,此时快闪存储器Flash#4已进入准备状态。
接着,快闪存储器控制器110自动启动任务切换并检查到指令伫列CQ#1伫列数据传输指令DO#1,改由指令伫列CQ#1作为工作中指令伫列,并执行数据传输指令DO#1。
接着,执行指令伫列CQ#1所伫列的最后一个操作指令:任务切换指令TS#1,并检查到指令伫列CQ#2伫列有状态轮询指令SP#2,改由指令伫列CQ#2作为工作中指令伫列,并执行状态轮询指令SP#2。接着,检查到指令伫列CQ#3伫列有状态轮询指令SP#3,改由指令伫列CQ#3作为工作中指令伫列,并执行状态轮询指令SP#3。接着,检查到指令伫列CQ#4伫列有数据传输指令DO#4,改由指令伫列CQ#4作为工作中指令伫列,并执行数据传输指令DO#4。接着,执行指令伫列CQ#4所伫列的最后一个操作指令:任务切换指令TS#4。
执行任务切换指令TS#4并检查到指令伫列CQ#2伫列有状态轮询指令SP#2,改由指令伫列CQ#2作为工作中指令伫列,并执行状态轮询指令SP#2,此时快闪存储器Flash#2已进入准备状态。
接着,快闪存储器控制器110自动启动任务切换并检查到指令伫列CQ#3伫列状态轮询指令SP#3,改由指令伫列CQ#3作为工作中指令伫列,并执行状态轮询指令SP#3,此时快闪存储器Flash#3已进入准备状态。
接着,快闪存储器控制器110自动启动任务切换并检查到指令伫列CQ#2伫列数据传输指令DO#2,改由指令伫列CQ#2作为工作中指令伫列,并执行数据传输指令DO#2。
接着,执行指令伫列CQ#2所伫列的最后一个操作指令:任务切换指令TS#2,并检查到指令伫列CQ#3伫列数据传输指令DO#3,改由指令伫列CQ#3作为工作中指令伫列,并执行数据传输指令DO#3。接着,执行指令伫列CQ#3所伫列的最后一个操作指令:任务切换指令TS#3。由于指令伫列CQ#2、CQ#3以及CQ#4未伫列任何操作指令,因此,结束本发明操作指令执行的流程。
图5A及5B为操作指令执行的另一时序图,与图4A及4B为操作指令执行的时序图相似,主要的差别乃在于快闪存储器控制器110不会自动启动任务切换而执行步骤S210或步骤S214,而是依据任务切换指令TS#1、TS#2、TS#3与TS#4以执行任务切换,即执行步骤S210或步骤S214。
另外,任务切换指令TS#1、TS#2、TS#3与TS#4为相同功能的指令,数据传输指令DO#1、DO#2、DO#3与DO#4为相同功能的指令,编号只是用以区别任务切换指令TS和数据传输指令DO与外部指令或操作指令CMD的关连性。
整理之,藉由分立提供的指令伫列CQ#1、CQ#2、CQ#3以及CQ#4,共用同一通道之多个快闪存储器Flash#1、Flash#2、Flash#3与Flash#4的操作被适当的交替进行。操作指令CMD#1、CMD#2、CMD#3与CMD#4得以优先进行,无须等待其任何快闪存储器的状态轮询与数据传输完成才得以使用共用通道对快闪存储器下操作指令,如此,不同快闪存储器Flash#1、Flash#2、Flash#3与Flash#4能提早收到操作指令CMD#1、CMD#2、CMD#3与CMD#4开始其数据准备时间,并可以使得共用通道的数个快闪存储器逻辑单元的数据准备时间与数据传输时间得以有效率重迭以达到最佳效能。另外,本文中虽以快闪存储器读取指令为例,但本发明并不仅限于读取指令,而是提供高度弹性,让固件得以将任何命令(例如写入指令,擦除指令等)做为高优先权的操作指令。另外,固件也能以任务切换指令TS自由安排切换指令伫列CQ的时机。
为了有效率地执行指令伫列CQ#1、CQ#2、CQ#3以及CQ#4所伫列的操作指令,较佳采用指标p#1、p#2、p#3以及p#4指向指令伫列CQ#1、CQ#2、CQ#3以及CQ#4中执行或待执行的操作指令,使快闪存储器控制器110得以流畅的在不同指令伫列CQ#1、CQ#2、CQ#3以及CQ#4间切换取得操作指令。
更甚者,任务切换机制也可安排在数据传输中。图6图解了本发明一种实施方式。快闪存储器Flash#1、Flash#2、Flash#3与Flash#4预设的数据传输量为一个数据页的大小,例如:16KB。则将此数据传输量分成多等份,例如:4等份,则每一等份数据传输量为4KB。使用多数据传输指令DO',每一个数据传输指令DO'仅传输4KB的数据,并在每一数据传输指令DO'后执行任务切换指令TS。如此一来,即使某一快闪存储器的数据传输量过大,其他快闪存储器的数据页读取指令也有机会尽早执行,使快闪存储器端及早准备完全。
一种实施方式中,快闪存储器控制器110内包括状态机,用于将任务切换指令的插入数据页读取指令或数据传输指令。状态机更可设计在每回合状态轮询的末检查其他指令伫列(是否指向数据页读取指令以优先执行,或于没检查到数据页读取指令时也检查是否指向状态轮询指令或数据传输指令以优先执行)。所述状态机更可负责这些指令伫列CQ#1、CQ#2、CQ#3以及CQ#4的切换读取。
其他采用上述概念操作非挥发式存储器的技术都属于本发明所欲保护的范围。基于以上技术内容,本发明还可发展出非挥发式存储器操作方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书权利书界定为准。

Claims (12)

1.一种数据储存装置,包括:
多个非挥发式存储器;
多个指令伫列,一对一对应这些非挥发式存储器;以及
一控制器,切割数据传输指令插入任务切换指令,以在切割数据传输指令之间插入任务切换指令;
其中,这些非挥发式存储器的操作是共用一通道;
该控制器在执行到上述任务切换指令时,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令,若确定上述指令伫列中非当下存取者不指向高优先权指令,则还检查上述指令伫列中非当下存取者是否指向状态轮询指令,以进行指令伫列切换,执行所检查到的状态轮询指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则更检查上述指令伫列中非当下存取者是否指向数据传输指令,以进行指令伫列切换,执行所检查到的数据传输指令。
2.如权利要求1所述的数据储存装置,其特征在于,
该控制器于各回合状态轮询之末检查否在这些指令伫列间切换。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制器在进行一回合状态轮询之末,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令。
4.如权利要求1所述的数据储存装置,其特征在于,
控制器将任务切换指令附加在各非挥发式存储器各段高优先权指令之后。
5.一种非挥发式存储器操作方法,包括:
以一通道操作多个非挥发式存储器;
一对一对应这些非挥发式存储器提供多个指令伫列;以及
切割数据传输指令插入任务切换指令,以在切割数据传输指令之间插入任务切换指令;
在执行到上述任务切换指令时,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则还检查上述指令伫列中非当下存取者是否指向状态轮询指令,以进行指令伫列切换,执行所检查到的状态轮询指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则更检查上述指令伫列中非当下存取者是否指向数据传输指令,以进行指令伫列切换,执行所检查到的数据传输指令。
6.如权利要求5所述的非挥发式存储器操作方法,其特征在于,还包括:
于各回合状态轮询之末检查是否在这些指令伫列间切换。
7.如权利要求6的所述的非挥发式存储器操作方法,其特征在于,还包括:
在进行一回合状态轮询之末,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令。
8.如权利要求5所述的非挥发式存储器操作方法,其特征在于,还包括:
将任务切换指令附加在各非挥发式存储器各段高优先权指令之后。
9.一种操作指令执行的方法,可用于操作一数据储存媒体,该数据储存媒体为非挥发式存储器,多个非挥发式存储器的操作是共用一通道,包括:
将多个外部指令转译成多个操作指令;
将这些操作指令伫列到多个指令伫列;
该些指令伫列与该数据储存媒体的多储存空间为一对一对应;
使用多个指令伫列对操作指令进行排队;
选取其中之一这些指令伫列作为一工作中指令伫列;
执行该工作中指令伫列所伫列的其中之一这些操作指令;
切割数据传输,以在切割数据传输指令之间插入任务切换指令;
以及
当执行所述任务切换指令中的一个任务切换指令且满足选取条件时,选取另一指令伫列作为该工作中 指令伫列,该选取条件为指令伫列中的其中之一该些操作指令是否具有高优先权;在执行到上述任务切换指令时,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则还检查上述指令伫列中非当下存取者是否指向状态轮询指令,以进行指令伫列切换,执行所检查到的状态轮询指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则更检查上述指令伫列中非当下存取者是否指向数据传输指令,以进行指令伫列切换,执行所检查到的数据传输指令。
10.如权利要求9所述的操作指令执行的方法,其特征在于,还包括:
记录该工作中指令伫列的编号。
11.如权利要求9所述的操作指令执行的方法,其特征在于,该些外部指令乃来自使用该数据储存媒体的一数据储存装置的外部。
12.一种操作指令执行的方法,可用于操作一数据储存媒体,该数据储存媒体为一非挥发式存储器,多个非挥发式存储器的操作是共用一通道,包括:
将多个操作指令伫列至多个指令伫列;
该些指令伫列与该数据储存媒体的多储存空间为一对一对应;
使用多个指令伫列对操作指令进行排队;
选取其中之一这些指令伫列作为一工作中指令伫列;
执行该工作中指令伫列所伫列的其中之一这些操作指令;
切割数据传输,以在切割数据传输指令之间插入任务切换指令;
以及
当执行所述任务切换指令中的一个任务切换指令且满足选取条件时,选取另一指令伫列作为该工作中指令伫列,该选取条件为指令伫列中的其中之一该些操作指令是否具有高优先权;在执行到上述任务切换指令时,检查上述指令伫列中非当下存取者是否指向高优先权指令,以进行指令伫列切换,执行所检查到的高优先权指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则还检查上述指令伫列中非当下存取者是否指向状态轮询指令,以进行指令伫列切换,执行所检查到的状态轮询指令;若确定上述指令伫列中非当下存取者不指向高优先权指令,则更检查上述指令伫列中非当下存取者是否指向数据传输指令,以进行指令伫列切换,执行所检查到的数据传输指令。
CN201710646528.XA 2017-06-30 2017-08-01 数据储存装置、存储器操作方法及操作指令执行方法 Active CN109213687B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106121978A TWI640920B (zh) 2017-06-30 2017-06-30 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法
TW106121978 2017-06-30

Publications (2)

Publication Number Publication Date
CN109213687A CN109213687A (zh) 2019-01-15
CN109213687B true CN109213687B (zh) 2022-12-02

Family

ID=64738714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710646528.XA Active CN109213687B (zh) 2017-06-30 2017-08-01 数据储存装置、存储器操作方法及操作指令执行方法

Country Status (3)

Country Link
US (2) US10691342B2 (zh)
CN (1) CN109213687B (zh)
TW (1) TWI640920B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528269B2 (en) 2018-03-02 2020-01-07 Western Digital Technologies, Inc. Advanced flash scan algorithm
US11182302B2 (en) 2019-06-06 2021-11-23 Macronix International Co., Ltd. Memory device, electronic device, and associated read method
JP7337006B2 (ja) 2020-03-03 2023-09-01 キオクシア株式会社 メモリシステムおよび制御方法
US11726713B2 (en) 2021-06-25 2023-08-15 Western Digital Technologies, Inc. Systems and methods for priority command data fetching management
TWI840221B (zh) * 2023-05-12 2024-04-21 慧榮科技股份有限公司 快閃記憶體控制器及相關的控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US7701949B1 (en) * 2003-06-24 2010-04-20 Cisco Technology, Inc. System and method for switching high priority traffic with low latency
TW201502977A (zh) * 2013-07-05 2015-01-16 Phison Electronics Corp 指令執行方法、連接器與記憶體儲存裝置
TW201721653A (zh) * 2015-12-04 2017-06-16 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062592B2 (en) * 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
TWI385672B (zh) * 2008-11-05 2013-02-11 Lite On It Corp 儲存裝置之適應性多通道控制器及其方法
WO2012109677A2 (en) * 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
JP2012234363A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリシステム
US8543758B2 (en) * 2011-05-31 2013-09-24 Micron Technology, Inc. Apparatus including memory channel control circuit and related methods for relaying commands to logical units
US9436634B2 (en) * 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
JP6569374B2 (ja) * 2015-08-10 2019-09-04 富士通株式会社 スイッチ装置及びスイッチ装置の制御方法
US10540116B2 (en) * 2017-02-16 2020-01-21 Toshiba Memory Corporation Method of scheduling requests to banks in a flash controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US7701949B1 (en) * 2003-06-24 2010-04-20 Cisco Technology, Inc. System and method for switching high priority traffic with low latency
TW201502977A (zh) * 2013-07-05 2015-01-16 Phison Electronics Corp 指令執行方法、連接器與記憶體儲存裝置
TW201721653A (zh) * 2015-12-04 2017-06-16 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置

Also Published As

Publication number Publication date
US11157175B2 (en) 2021-10-26
CN109213687A (zh) 2019-01-15
TW201905679A (zh) 2019-02-01
US10691342B2 (en) 2020-06-23
US20200272330A1 (en) 2020-08-27
TWI640920B (zh) 2018-11-11
US20190004702A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
CN109213687B (zh) 数据储存装置、存储器操作方法及操作指令执行方法
KR101580378B1 (ko) 메모리를 제어하는 시스템, 디바이스, 메모리 제어기 및 방법
US10146477B2 (en) Command queuing
US10761772B2 (en) Memory system including a plurality of chips and a selectively-connecting bus
US9507533B2 (en) Command and data selection in storage controller systems
US8874828B2 (en) Systems and methods for providing early hinting to nonvolatile memory charge pumps
US9251068B2 (en) Systems, devices, memory controllers, and methods for memory initialization
CN109947362B (zh) 管理闪存存储器读取操作
US20090172264A1 (en) System and method of integrating data accessing commands
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
US11360706B2 (en) Memory system with program mode switching based on mixed and sequential workloads
US9520170B2 (en) Volume select for affecting a state of a non-selected memory volume
US20220350655A1 (en) Controller and memory system having the same
KR20160036693A (ko) 저장 장치 및 그것의 커맨드 스케줄링 방법
US20190354483A1 (en) Controller and memory system including the same
KR20210025836A (ko) 메모리 컨트롤러, 이를 포함하는 저장 장치 및 메모리 컨트롤러의 동작 방법
US20180018182A1 (en) Storage device, information processing system, method of activating storage device and program
CN110851073B (zh) 储存装置及巨集指令的执行方法
US20150055419A1 (en) Controller, memory system, and method
EP3992771B1 (en) Controller for performing command scheduling, storage device including the controller, and operating method of the controller
KR20130084902A (ko) 저장 장치, 저장 시스템 및 저장 장치에 대한 입출력 제어 방법
CN109144907B (zh) 实现快速读取的方法及介质接口控制器
CN112115066A (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