CN109390026B - 资料储存装置以及读取方法 - Google Patents
资料储存装置以及读取方法 Download PDFInfo
- Publication number
- CN109390026B CN109390026B CN201810048616.4A CN201810048616A CN109390026B CN 109390026 B CN109390026 B CN 109390026B CN 201810048616 A CN201810048616 A CN 201810048616A CN 109390026 B CN109390026 B CN 109390026B
- Authority
- CN
- China
- Prior art keywords
- command
- instruction
- flash memory
- data
- execution result
- 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
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 title claims description 22
- 238000011084 recovery Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种资料储存装置接收主机所发送的外部指令,包括:多个快闪存储器空间以及控制芯片。控制芯片接收外部指令并命令队列于第一指令命令队列,并将上述外部指令转译为多个操作指令且依序执行操作指令以分别操作快闪存储器空间。控制芯片更将识别码给予操作指令的至少一特定操作指令,用以追踪至少一特定操作指令的执行结果。
Description
技术领域
本发明是有关于一种快闪式资料储存装置及其读取方法,特别是有关于能够并列执行错误更正处理的快闪式资料储存装置及其读取方法。
背景技术
由于快闪式存储器进行读取操作的时候皆需要进行错误更正解码(ECC decode)的动作,而错误更正解码所需花费的时间取决于错误更正解码器的频宽与效率。往往在执行到读取直接存储器存取(read DMA)的指令时,都需要等待错误更正解码器的结果来判断错误更正是否成功。
由于错误更正解码器是由多个通道所共用,当多个通道同时共用错误解码器的时候,会产生一段很长的延迟时间。因此,我们有必要针对快闪式存储器的读取流程进行最佳化。
发明内容
有鉴于此,本发明提出一种资料储存装置,接收一主机所发送的一外部指令,包括:多个快闪存储器空间以及一控制芯片。上述控制芯片接收上述外部指令并命令队列于一第一指令命令队列,其中上述控制芯片将上述外部指令转译为多个操作指令,其中上述控制芯片依序执行上述操作指令以分别操作上述快闪存储器空间,其中上述控制芯片更将一识别码给予上述操作指令的至少一特定操作指令,用以追踪上述至少一特定操作指令的一执行结果。
根据本发明的一实施例,上述控制芯片包括:一输入/输出控制器以及一中央处理单元。上述输入/输出控制器通过一输入/输出介面接收上述外部指令。上述中央处理单元将接收的上述外部指令于一内部指令命令队列中排队,并依顺序以及优先权将上述内部指令命令队列的上述外部指令传送至上述第一指令命令队列。
根据本发明的一实施例,上述控制芯片更包括:一快闪存储器控制器。上述快闪存储器控制器包括上述第一指令命令队列以及一第二指令命令队列,其中上述快闪存储器控制器将上述第一指令命令队列的上述外部指令转译为上述操作指令,并将上述操作指令于上述第二指令命令队列中排队。
根据本发明的一实施例,上述快闪存储器控制器将上述识别码给予上述至少一特定操作指令,其中当上述快闪存储器控制器执行上述至少一特定操作指令时,上述快闪存储器控制器同时输出上述识别码以及上述至少一特定操作指令至一ECC编/解码器,其中上述ECC编/解码器根据上述至少一特定操作指令产生上述处理结果以及处理资料。
根据本发明的一实施例,上述ECC编/解码器更将上述处理结果以及上述处理资料与上述识别码建立关联性,其中上述快闪存储器控制器周期性地根据上述识别码存取上述执行结果,并判断上述执行结果是否成功,其中当上述快闪存储器控制器判断上述执行结果为不成功时,上述快闪存储器控制器执行一资料回复程序。
本发明更提出一种存储器读取方法,适用于多个快闪存储器空间,包括:接收一主机发送的一外部指令;将上述外部指令转译为多个操作指令;将一识别码给予上述操作指令的至少一特定操作指令;依序执行上述操作指令以分别操作上述快闪存储器空间;以及根据上述识别码,追踪上述至少一特定操作指令的一执行结果。
根据本发明的一实施例,存储器读取方法更包括:将接收的上述外部指令于一第一指令命令队列中排队;将上述第一指令命令队列的上述外部指令转译为上述操作指令;将上述操作指令于一第二命令队列中排队;以及当执行上述至少一特定操作指令时,同时输出上述识别码以及上述至少一特定操作指令。
根据本发明的一实施例,存储器读取方法更包括:周期性地根据上述识别码存取上述至少一特定操作指令的一执行结果;以及判断上述执行结果是否成功。
根据本发明的一实施例,存储器读取方法更包括:当判断上述执行结果为成功时,将上述外部指令对应的上述操作指令自上述第二指令命令队列移除;以及当判断上述执行结果为不成功时,执行一资料回复程序。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是显示根据本发明的一实施例所述的资料储存装置的方块图;
图2是显示根据本发明的一实施例所述的操作指令执行时程的示意图;
图3是显示根据本发明的一实施例所述的操作指令执行方法的流程图;以及
图4是显示根据本发明的另一实施例所述的操作指令执行时程的示意图。
符号说明:
100 资料储存装置;
110 控制芯片;
10 主机;
111 输入/输出介面;
112 输入/输出控制器;
113 中央处理单元;
114 快闪存储器控制器;
115 DRAM控制器;
CQ#1 第一指令命令队列;
CQ#2 第二指令命令队列;
DRAM 动态随机存取存储器;
Flash#1 第一快闪存储器空间;
Flash#2 第二快闪存储器空间;
Flash#3 第三快闪存储器空间;
Flash#4 第四快闪存储器空间;
NVMe#0 外部指令;
CMD#0~CMD#4 读取指令;
SP#0~SP#4 状态轮询指令;
DO#0~DO#4 资料输出指令;
ID#0、ID#1 识别码;
S302~S316 步骤流程。
具体实施方式
以下说明为本发明的实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以权利要求书所界定者为准。
值得注意的是,以下所揭露的内容可提供多个用以实践本发明的不同特点的实施例或范例。以下所述的特殊的元件范例与安排仅用以简单扼要地阐述本发明的精神,并非用以限定本发明的范围。此外,以下说明书可能在多个范例中重复使用相同的元件符号或文字。然而,重复使用的目的仅为了提供简化并清楚的说明,并非用以限定多个以下所讨论的实施例以及/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至以及/或形成于另一特征的上等的描述,实际可包含多个不同的实施例,包括这些特征直接接触,或者包含其它额外的特征形成于这些特征之间等等,使得这些特征并非直接接触。
图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)。当通道大于一时,可复制图1的架构以及适当的调整,即可满足使用者的需求。
图1更图解资料储存装置100的控制芯片110,可依据主机10的外部指令(例如:NVMe指令)而操作第一快闪存储器空间Flash#1、第二快闪存储器空间Flash#2、第三快闪存储器空间Flash#3与第四快闪存储器空间Flash#4。资料储存装置可使用动态随机存取存储器(Dynamic Random Access Memory,)DRAM作为资料缓冲器以加速资料的存取,但DRAM为非必要元件。控制芯片110包括输入/输出介面111、输入/输出控制器112、中央处理单元113、快闪存储器控制器114以及DRAM控制器115。输入/输出控制器112通过输入/输出介面111,接收主机10所发出的外部指令。中央处理单元113可将输入/输出控制器112所接收外部指令排队至内部指令命令队列CQ#0(图中并未显示),再依序或依优先权设定而将外部指令传送至快闪存储器控制器114。内部指令命令队列CQ#0较佳可由建立于控制芯片110内建的静态存储器(Static Random Access Memory)SRAM中,亦可通过DRAM控制器115建立于DRAM。
快闪存储器控制器114较佳建立第一指令命令队列CQ#1以及第二指令命令队列CQ#2于控制芯片110所内建的SRAM中,第一指令命令队列CQ#1可用以让外部指令排队,第二指令命令队列CQ#2可用以让由外部指令转译后的快闪存储器操作指令(以下简称操作指令)排队,再依据操作指令对第一快闪存储器空间Flash#1、第二快闪存储器空间Flash#2、第三快闪存储器空间Flash#3与第四快闪存储器空间Flash#4进行操作。另外,中央处理单元113与快闪存储器控制器114较佳整合于同一芯片中,亦可分别独立存在(即,不同的芯片)。
控制芯片110更包括ECC编/解码器,其中,ECC编码器可依据资料而产生同位码(Parity Code,PC),之后,ECC解码器可依据此同位码而对资料进行错误更正。如果资料不含任何错误比特或错误比特的总数不超过一门槛值,则ECC解码器可依据同位码而更正资料中的错误比特,并回传更正成功的讯息,反之,则回传更正失败的讯息。快闪存储器控制器114可将资料以及同位码储存至第一快闪存储器空间Flash#1、第二快闪存储器空间Flash#2、第三快闪存储器空间Flash#3或第四快闪存储器空间Flash#4的任一者,其中,资料以及同位码较佳储存于快闪存储器空间的同一资料储存空间,例如,同一资料页;资料以及同位码可相邻地储存,亦可分开地储存。
以资料读取为例,由于ECC编/解码器所占用的电路面积庞大,因此,在资料读取过程中,通常是将来自数个快闪存储器空间,例如:第一快闪存储器空间Flash#1和第一快闪存储器空间Flash#2,的资料以及同位码传输至一个ECC编/解码器,或是将来自所有快闪存储器空间,例如:第一快闪存储器空间Flash#1、第一快闪存储器空间Flash#2、第三快闪存储器空间Flash#3与第四快闪存储器空间Flash#4,的资料以及同位码传输至一个ECC编/解码器,由上述可知,ECC编/解码器的编/解码能力将决定资料储存装置的存取效能。另外,由于ECC编/解码器执行编/解码所需的时间较长,所以成为资料储存装置系统效能的瓶颈。因此,如何有效率地执行操作指令或减少资料编/解码所需的时间成为一个重要的技术课题。
图2是显示根据本发明的一实施例所述的操作指令执行的示意图。以资料读取为例,如图2所示,外部指令NVMe#0转译成三个操作指令,分别为读取指令CMD#0,状态轮询指令(Status Polling)SP#0以及资料输出指令(Data Output)DO#0。另外,外部指令与操作指令可为一对一对应,应可一对多对应,例如,读取指令CMD#0~1,状态轮询指令ST#0~1以及资料输出指令DO#0~1皆对应至外部指令NVMe#0。
资料输出指令DO#0可将快闪存储器空间的资料及同位码传送至ECC编/解码器。另外,快闪存储器空间与ECC编/解码器之间的资料传输较佳通过DMA方式,以加速快闪存储器空间与ECC编/解码器之间的资料传输速度,亦可降低资料传输对中央处理单元113或快闪存储器控制器114的负载。
资料输出指令DO的执行时间更包括ECC编/解码器的执行时间。由于ECC编/解码器进行资料更正需要一段时间,且有可能发生更正失败的事件,因此,执行资料输出指令DO#0后,除了需等待资料和同位码从快闪存储器空间传送至ECC编/解码器所需的时间之外,快闪存储器控制器114更需等待ECC编/解码器回传资料更正的执行结果。如果执行结果为更正成功,则快闪存储器控制器114可执行下一个操作指令,例如:读取指令CMD#1;如果执行结果为更正失败,则快闪存储器控制器114启动资料回复(recovery)程序,借由重新设定快闪存储器空间的操作条件,并重新执行读取指令CMD#0、状态轮询指令ST#0以及资料输出指令DO#0,直到执行结果为更正成功为止。
图3是显示根据本发明的一实施例所述的操作指令执行方法的流程图,适用于以非挥发性存储器作为储存媒体的资料储存装置。步骤S302:接收并命令队列外部指令。中央处理单元113接收来自主机10的外部指令,并将外部指令排队至内部指令命令队列CQ#0。快闪存储器控制器114接收来自中央处理单元113的外部指令,并将外部指令排队至第一指令命令队列CQ#1。
步骤S304:产生对应外部指令的多个操作指令。快闪存储器控制器114依序将排队于第一指令命令队列CQ#1的外部指令转译成多个操作指令,例如:将外部指令转译成读取指令CMD#0、状态轮询指令ST#0以及资料输出指令DO#0,并将这些操作指令排队至第二指令命令队列CQ#2,再伺机依序执行这些操作指令。
步骤S306:给予其中一操作指令一个识别码,此识别码可用以追踪特定操作指令的执行结果,例如,快闪存储器控制器114将识别码ID#0给予资料输出指令DO#0,将识别码ID#1给予资料输出指令DO#1。另外,快闪存储器控制器114也可以给予多个操作指令一个识别码,而非特定操作指令一个识别码,例如,给予读取指令CMD#0、状态轮询指令ST#0以及资料输出指令DO#0识别码ID#0;给予读取指令CMD#1,状态轮询指令ST#1以及资料输出指令DO#1识别码ID#1。
图4是显示根据本发明的另一实施例所述的操作指令执行时程的示意图。如图4所示,识别码ID#0是给予资料输出指令DO#0,识别码ID#1是给予资料输出指令DO#1。
步骤S308:依序执行多个操作指令。如图4所示,快闪存储器控制器114依序执行读取指令CMD#0、状态轮询指令ST#0、资料输出指令DO#0、读取指令CMD#1、状态轮询指令ST#1、资料输出指令DO#1等等。
步骤S310:输出识别码。快闪存储器控制器114于执行特定操作指令时,同时或跟着输出识别码。例如,执行资料输出指令DO#0时,同时或跟着输出识别码ID#0至ECC编/解码器,执行资料输出指令DO#1时,同时或跟着输出识别码ID#1至ECC编/解码器。换句话说,ECC编/解码器除了收到来自于快闪存储器空间Flash的资料及同位码外,更收到并记录来自于快闪存储器控制器114的识别码,并将资料与识别码建立关连。在执行完步骤S310之后,快闪存储器控制器114可重新执行步骤S308,无需等待ECC编/解码器回传执行结束。由于无需等待ECC编/解码器的执行结束,下一个操作指令就能直接执行,加速操作指令的执行速度,达到本发明的目的。如图4所示,执行资料输出指令DO#0及执行资料输出指令DO#1所占用的时间明显地缩短。
步骤S312:依据识别码存取执行结果。ECC编/解码器完成资料解密之后,便将资料、执行结果与识别码建立关连,并储存至SRAM中。快闪存储器控制器114可周期性地或依据其他设定来检查SRAM所储存的资料,并依据识别码来找寻资料输出指令DO的执行结果。
步骤S314:判断执行结果是否成功。假设SRAM中有一笔资料DT#0、执行结果表示更正成功且识别码为ID#0,则快闪存储器控制器114判定资料输出指令DO#0的执行结果为更正成功,可结束本发明的流程;或者,重新执行步骤S302;更甚者,可将读取指令CMD#0、状态轮询指令ST#0以及资料输出指令DO#0自第二指令命令队列CQ#2中移除,使第二指令命令队列CQ#2可以容纳其他操作指令。
假设SRAM中有一笔资料DT#1、执行结果表示更正失败且识别码为ID#1,则快闪存储器控制器114判定资料输出指令DO#1的执行结果为更正失败,则执行步骤S316:执行资料回复程序,试着再更正资料DT#1。由于资料回复程序为已知技艺,故不多作说明。
以上所述为实施例的概述特征。所属技术领域中具有通常知识者应可以轻而易举地利用本发明为基础设计或调整以实行相同的目的和/或达成此处介绍的实施例的相同优点。所属技术领域中具有通常知识者也应了解相同的配置不应背离本发明的精神与范围,在不背离本发明的精神与范围下他们可做出各种改变、取代和交替。说明性的方法仅表示示范性的步骤,但这些步骤并不一定要以所表示的顺序执行。可另外加入、取代、改变顺序和/或消除步骤以视情况而作调整,并与所揭露的实施例精神和范围一致。
Claims (6)
1.一种资料储存装置,接收一主机所发送的一外部指令,包括:
多个快闪存储器空间;
一ECC编/解码器,根据至少一特定操作指令产生一执行结果以及处理资料,其中上述ECC编/解码器更将上述执行结果以及上述处理资料与一识别码建立关联性;
一控制芯片,接收上述外部指令并于一第一指令命令队列中排队,其中上述控制芯片将上述外部指令转译为多个操作指令,其中上述控制芯片依序执行上述操作指令以分别操作上述快闪存储器空间,其中当控制芯片执行上述操作指令的上述至少一特定操作指令而将DMA数据自上述快闪存储器空间传输至上述ECC编/解码器时,上述控制芯片将上述识别码给予上述DMA数据且将上述DMA数据连带上述识别码发送至上述ECC编/解码器,其中上述控制芯片依据上述识别码来找寻上述至少一特定操作指令的执行结果,其中上述至少一特定操作指令包括一状态轮询指令以及一资料输出指令;以及
一快闪存储器控制器,包括上述第一指令命令队列以及一第二指令命令队列,其中上述快闪存储器控制器将上述第一指令命令队列的上述外部指令转译为上述操作指令,并将上述操作指令于上述第二指令命令队列中排队,其中上述快闪存储器控制器周期性地根据上述识别码存取上述执行结果,并判断上述执行结果是否成功。
2.如权利要求1所述的资料储存装置,其特征在于,上述控制芯片包括:
一输入/输出控制器,通过一输入/输出介面接收上述外部指令;以及
一中央处理单元,将接收的上述外部指令于一内部指令命令队列中排队,并依顺序以及优先权将上述内部指令命令队列的上述外部指令传送至上述第一指令命令队列。
3.如权利要求1所述的资料储存装置,其特征在于,其中当上述快闪存储器控制器判断上述执行结果为不成功时,上述快闪存储器控制器执行一资料回复程序。
4.一种存储器读取方法,适用于多个快闪存储器空间,包括:
接收一主机发送的一外部指令;
将上述外部指令转译为多个操作指令;
当执行上述操作指令的至少一特定操作指令而将DMA数据自上述快闪存储器空间传输至一ECC编/解码器时,将一识别码给予上述DMA数据,其中上述至少一特定操作指令包括一状态轮询指令以及一资料输出指令;
将上述DMA数据连带上述识别码发送至上述ECC编/解码器;
利用上述ECC编/解码器,根据上述至少一特定操作指令产生一执行结果以及处理资料;
利用上述ECC编/解码器,将上述执行结果以及上述处理资料与上述识别码建立关联性;
依据上述识别码来找寻上述至少一特定操作指令的执行结果;以及
利用一快闪存储器控制器,周期性地根据上述识别码存取上述至少一特定操作指令的上述执行结果;以及
判断上述执行结果是否成功;
依序执行上述操作指令以分别操作上述快闪存储器空间。
5.如权利要求4所述的存储器读取方法,更包括:
将接收的上述外部指令命令队列于一第一指令命令队列;
将上述第一指令命令队列的上述外部指令转译为上述操作指令;以及
将上述操作指令命令队列于一第二命令队列。
6.如权利要求5所述的存储器读取方法,更包括:
当判断上述执行结果为成功时,将上述外部指令对应的上述操作指令自上述第二命令队列移除;以及
当判断上述执行结果为不成功时,执行一资料回复程序指令队列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106127272A TWI646546B (zh) | 2017-08-11 | 2017-08-11 | 資料儲存裝置以及記憶體讀取方法 |
TW106127272 | 2017-08-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109390026A CN109390026A (zh) | 2019-02-26 |
CN109390026B true CN109390026B (zh) | 2021-10-19 |
Family
ID=65274962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810048616.4A Active CN109390026B (zh) | 2017-08-11 | 2018-01-18 | 资料储存装置以及读取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190050167A1 (zh) |
CN (1) | CN109390026B (zh) |
TW (1) | TWI646546B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI742565B (zh) * | 2019-06-06 | 2021-10-11 | 旺宏電子股份有限公司 | 記憶體裝置、電子裝置以及與其相關的讀取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101031016A (zh) * | 2006-03-03 | 2007-09-05 | 富士施乐株式会社 | 图像读取装置 |
CN106874210A (zh) * | 2015-12-11 | 2017-06-20 | 爱思开海力士有限公司 | 用于半导体存储装置的控制器及其操作方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904639B2 (en) * | 2006-08-22 | 2011-03-08 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
KR100852193B1 (ko) * | 2007-05-02 | 2008-08-13 | 삼성전자주식회사 | 오류 제어 코드 장치 및 그 방법 |
US8310880B2 (en) * | 2010-03-05 | 2012-11-13 | 248 Solid State, Inc. | Virtual channel support in a nonvolatile memory controller |
US8321627B1 (en) * | 2011-10-06 | 2012-11-27 | Google Inc. | Memory operation command latency management |
TWI497515B (zh) * | 2012-07-10 | 2015-08-21 | Silicon Motion Inc | 快閃記憶體控制器、快閃記憶體偵錯方法 |
TWI514389B (zh) * | 2012-09-03 | 2015-12-21 | Silicon Motion Inc | 快閃記憶體控制器和快閃記憶體控制方法 |
US9600360B2 (en) * | 2014-11-21 | 2017-03-21 | International Business Machines Corporation | Dynamic partial blocking of a cache ECC bypass |
-
2017
- 2017-08-11 TW TW106127272A patent/TWI646546B/zh active
-
2018
- 2018-01-18 CN CN201810048616.4A patent/CN109390026B/zh active Active
- 2018-03-15 US US15/922,669 patent/US20190050167A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101031016A (zh) * | 2006-03-03 | 2007-09-05 | 富士施乐株式会社 | 图像读取装置 |
CN106874210A (zh) * | 2015-12-11 | 2017-06-20 | 爱思开海力士有限公司 | 用于半导体存储装置的控制器及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109390026A (zh) | 2019-02-26 |
US20190050167A1 (en) | 2019-02-14 |
TW201911327A (zh) | 2019-03-16 |
TWI646546B (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180067685A1 (en) | Method for Implementing NVME over Fabrics, Terminal, Server, and System | |
US8195894B2 (en) | Data processing apparatus of basic input/output system | |
KR101308047B1 (ko) | 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법 | |
KR102532173B1 (ko) | 메모리 액세스 기술 및 컴퓨터 시스템 | |
CN110059032B (zh) | 存储器接口及具有存储器接口的存储器控制器 | |
US8635386B2 (en) | Communication control device, data communication method and program | |
US8543752B2 (en) | Peripheral component interconnect express interface card with a switch | |
TW202044778A (zh) | 數據完整性檢查的方法與積體電路 | |
US20170160952A1 (en) | Memory controller, memory system, and information processing system | |
CN106874081B (zh) | 在nand闪速控制器中根据优先级对解码任务进行排队 | |
CN113138801B (zh) | 命令分发装置、方法、芯片、计算机设备及存储介质 | |
TWI640920B (zh) | 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法 | |
CN109390026B (zh) | 资料储存装置以及读取方法 | |
KR101662729B1 (ko) | 시리얼 인터페이스 프로토콜을 사용하여 호스트와 인터페이스하는 비휘발성 메모리 기반 저장 장치의 커맨드 처리 방법 및 상기 방법을 수행하기 위한 메모리 컨트롤러 | |
TWI704453B (zh) | 具有通訊機制的計算系統及其操作方法 | |
CN117118828B (zh) | 一种协议转换器、电子设备及一种配置方法 | |
TWI564809B (zh) | 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置 | |
CN107632793B (zh) | 一种用于ssd后端的数据流管控方法 | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
CN106685584B (zh) | 基于fpga的hdlc收发控制器 | |
US7453760B2 (en) | Method for accessing dual-port memory | |
TWI636363B (zh) | 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 | |
CN110764710A (zh) | 低延迟高iops的数据访问方法与存储系统 | |
KR20140006205A (ko) | 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템 | |
JP5917325B2 (ja) | ブリッジ回路 |
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 |