CN110955383B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents

数据储存装置以及非挥发式存储器控制方法 Download PDF

Info

Publication number
CN110955383B
CN110955383B CN201910375953.9A CN201910375953A CN110955383B CN 110955383 B CN110955383 B CN 110955383B CN 201910375953 A CN201910375953 A CN 201910375953A CN 110955383 B CN110955383 B CN 110955383B
Authority
CN
China
Prior art keywords
data
bad
length
volatile memory
bad line
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
CN201910375953.9A
Other languages
English (en)
Other versions
CN110955383A (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
Priority claimed from TW108112761A external-priority patent/TWI710893B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110955383A publication Critical patent/CN110955383A/zh
Application granted granted Critical
Publication of CN110955383B publication Critical patent/CN110955383B/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Abstract

本发明涉及非挥发式存储器的最佳化使用。具体而言,涉及数据储存装置以及非挥发式存储器控制方法。透过一控制器,一非挥发式存储器与一主机的通信采一第一长度。该控制器载有一坏行表格,以一第二长度为单位管理该非挥发式存储器的坏行。该第二长度短于该第一长度。以位元组通信为例,坏行标示是以半位元组为单位。半位元组的一段储存单元中若有任何储存单元损坏,该段储存单元即标示为坏行。

Description

数据储存装置以及非挥发式存储器控制方法
技术领域
本发明有关于非挥发式存储器的坏行管理。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机 存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、 电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin TransferTorque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体 实现一数据储存装置。
非挥发式存储器的储存单元可能在因为制程不稳定而有部分损坏,或是因为频繁使用而被标示为损坏。如何管理损坏的储存单元为本技术领域重要议题。
发明内容
相较于一非挥发式存储器与一主机通信所采用的一第一长度的数据传输,本发明以一第二长度为单位管理该非挥发式存储器损坏的储存单元。该第二长度短于该 第一长度。该第二长度的一段储存单元中,若有任何储存单元损坏,该段储存单元 即标示为坏行(bad column)。本发明特意令坏行标示单位(第二长度)小于通信 单位(第一长度),以最佳化利用一非挥发式存储器,降低将良好的储存单元标示为坏行的机率。
根据本发明一种实施方式实现的一数据储存装置包括一非挥发式存储器以及 一控制器。该控制器根据一主机的要求操作该非挥发式存储器。该非挥发式存储器 与该主机的通信采一第一长度。该控制器还载有一坏行表格,以一第二长度为单位 管理该非挥发式存储器的坏行。该第二长度短于该第一长度。一种实施方式中,该 非挥发式存储器上,该第二长度的一段储存单元中若有任何储存单元损坏,该段储存单元即标示为坏行。
相应该坏行表格,该控制器可对一数据总线传输的数据穿插虚假数据,再交予 该非挥发式存储器储存,以避开坏行的使用,并维持以该第一长度与该非挥发式存 储器通信。
该控制器可提供一暂存器,保存该数据总线传输的数据,待虚假数据插入后输出。该控制器还可提供一坏行处理模块、一第一多工器以及一第二多工器。该第一 多工器具有一第一输入端耦接该数据总线、以及一第二输入端耦接该暂存器。该第 二多工器具有一第一输入端接收该第二长度的虚假数据、以及一第二输入端耦接该第一多工器的输出。根据该坏行表格,该坏行处理模块控制该第一多工器以及该第 二多工器,使该数据总线传输的数据穿插虚假数据。
该该控制器还可包括一主机数据储存器、一校验码引擎以及一元数据暂存器。 该数据总线传输的数据由该主机数据储存器、该校验码引擎以及该元数据暂存器轮 番提供。
相应该坏行表格,该控制器可对取自该非挥发式存储器的数据进行辨识,将非 对应坏行的数据,与对应坏行的虚假数据分类缓存,再组合同类缓存内容,维持以 该第一长度实现该非挥发式存储器的通信。
该控制器可提供一坏行处理模块、一第一先进先出缓存器、以及一第二先进先 出缓存器。该坏行处理模块根据该坏行表格运作。
对取自该非挥发式存储器的数据,该坏行处理模块将非对应坏行的数据推入该第一先进先出缓存器,并将对应坏行的虚假数据推入该第二先进先出缓存器,再组 合同一个先进先出缓存器的内容交予一数据总线,维持以该第一长度实现该数据总 线的传输。根据该坏行表格,该坏行处理模块可更产生一虚假数据标帜,指示该数据总线传输的是否为虚假数据。
该控制器还可包括一主机数据储存器、一校验码引擎以及一元数据暂存器。除 却虚假数据,该数据总线传输的数据轮番载入该主机数据储存器、该校验码引擎以 及该元数据暂存器,以回应该主机。
本发明概念可用于实施非挥发式存储器控制方法。
根据本发明一种实施方式所实现的非挥发式存储器控制帮法包括:根据一主机的要求操作一非挥发式存储器,其中,该非挥发式存储器与该主机的通信采一第一 长度;且记载一坏行表格,以一第二长度为单位管理该非挥发式存储器的坏行。该 第二长度短于该第一长度。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解第一长度坏行管理与第二长度坏行管理的差别;
图2A根据本发明一种实施方式图解一数据储存装置200,其中存储器控制器 202为快闪存储器204的程式化(programming)提供相应设计;
图2B根据本发明一种实施方式图解存储器控制器202为快闪存储器204的读 取操作所提供的相应设计;
图3A示意根据图2A架构所实现的一写入操作;且
图3B示意根据图2B架构所实现的一读取操作。
符号说明
200~数据储存装置;
202~控制器;
204~快闪存储器;
206~主机;
208~坏行表格;
210~坏行处理模块;
212、214~多工器;
216~数据总线;
218~暂存器;
220~主机数据储存器;
224~校验码引擎;
226~元数据暂存器;
228~输出总线;
230~数据辨识与分类缓存模块;
302、304~坏行;
306、308~先进先出缓存器;以及
310~虚假数据标帜。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非 意图限制本发明内容。实际发明范围应依照权利要求书界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存 储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,实现记忆卡(Memory Card)、 通用序列总线闪存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一 种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存 储器模块(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算 模块可视为一主机(Host),操作所使用的数据储存装置,以存取其中快闪存储器。
以快闪存储器为储存媒体的数据储存装置也可用于建构数据中心。例如,伺服 器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为一主机,操作所连 结的固态硬碟,以存取其中快闪存储器。
数据储存装置的存储器控制器可多通道存取(multi-channel accessing)快闪存储器。各通道的快闪存储器可被一个或一个以上的晶片致能信号(chip enable signal,简称CE signal)所控制,其中,控制的最小单位为逻辑单元编号(Logical Unit Number,LUN)。
各逻辑单元编号可对应多个平面(planes)。各平面包括多个区块(blocks)。 各区块具有多个页面(pages)。一页面可提供一预设长度(如4KB、8KB、16KB、 或其他)的数据储存。主机数据(Host Data)的单位可为512B或4KB,则一页面 可储存多份主机数据。由于快闪存储器在制作时可能产生坏行(Bad Column),因 此,一页面的数据储存量会多于预设量,而多余的正常的数据行可用以替补坏行。
一般而言,存储器控制器会以坏行表格标注快闪存储器中的坏行,以避免使用 坏行来储存数据,或是将坏行所储存的数据予以屏蔽(Mask)。8个数据行可储存一个位元组的数据。当以第一长度,例如位元组(Byte),作为坏行标注的最小单 位时,如果连续8个数据行中有任一个数据行为坏行,则存储器控制器会将此8 个数据行记录至坏行表格。
在本发明中,存储器控制器不再以第一长度作为坏行标注的单位时,改以第二 长度,例如4个位元(又称半位元组,Nibble),作为坏行标注的单位,其中,第 二长度短于第一长度。当以第二长度作为坏行标注的单位时,若有1个数据行损坏, 则包含此数据行的第二长度的数据行将被记录至坏行表格。换句话说,一个位元组 长度的数据行,如果有1个数据行为坏行,则仅有4个数据行被视为坏行,并记录 至坏行表格,另4个数据行仍可正常运作,如此一来,可最佳化利用快闪存储器的 数据储存空间,降低坏行所造成的数据储存空间的减损。
图1图解第一长度坏行管理与第二长度坏行管理的差别。一般而言,快闪存储 器与存储器控制器的通信是以位元组为数据传输单位。在图示中坏行以符号'B'标示, 在8个数据行中有两个坏行。如果以位元组模式(Byte Mode),或第一长度,为坏行标注的单位,此8个数据行都会被视为坏行,有高达六个良好数据行被强制跳过 不使用。本发明提出以半位元组模式(Nibble Mode),或第二长度,为坏行标注的 单位,在上述例子中,将仅有前4个数据行被视为坏行,后4个数据行仍为正常的 数据行,因此,快闪存储器的储存空间的使用可达最佳化。
一种实施方式是在开卡阶段时存储器控制器对快闪存储器进行扫描,并以本发明所述第二长度为单位,将坏行记录至坏行表格。其中,坏行表格较佳以第二长度 为单位,记录具有坏行的位址或编号;或是,记录每一单位的状态,并分别以"1" 以及"0"来作标示坏行或非坏行。
一种实施例中,存储器控制器可即时更新坏行表格的内容,将新增的坏行记录 至坏行表格中。
响应本发明所述特殊长度的坏行管理,存储器控制器控制快闪存储器以进行数据存取时,必需分拆及合并从快闪存储器所读取的数据,才能从快闪存储器读取正 确的数据;另外,也必需分拆及合并写入至快闪存储器的数据,才能写入正确的数 据至快闪存储器。
图2A根据本发明一种实施方式图解一数据储存装置200,存储器控制器202 可根据主机206的指令而操作快闪存储器204。
存储器控制器202储存本发明根据特殊长度所建立的一坏行表格208,坏行表 格208可暂存在静态随机存取存储器(SRAM)或是其它数据暂存元件上,或储存 在快闪存储器204中。坏行处理模块210根据坏行表格208的内容来控制多工器 212以及214的运作,将半位元组的虚假数据(Dummy Data),例如:0xF,穿插 进(Insert)数据总线216上传输的写入数据,使写入数据可以写入至快闪存储器 204中未损坏的数据行中,而将虚假数据写入至快闪存储器204的坏行中。
数据总线216传递的写入数据可来自主机数据储存器220、校验码引擎(ECCEngine)224、以及元数据(Meta data)暂存器226。主机数据储存器220较佳为 静态随机存取存储器(SRAM)或是其它储存装置,用以暂存来自主机206的主机 数据。校验码引擎224可根据主机数据进行编码以产生校验码,例如,每1KB主 机数据产生一组校验码,此校验码可用以检查主机数据的正确性或用以回复 (Recover)主机数据。校验码引擎224亦可直接接收主机数据并进行编码。元数 据暂存器226用以暂存一个主机数据的元数据,或是一个页面大小的数据的元数据。
存储器控制器202可包括一状态机(state machine),安排主机数据、校验码、 与元数据轮流输出至数据总线216,经过多工器212以及214后,输出至输出总线 228,之后,存储器控制器202再将上述数据写入(编程)至快闪存储器204。存 储器控制器202可利用多工器214输出虚假数据至输出总线228,并将来自数据总 线216的上述数据暂时保存至暂存器218,之后,再将暂存器218中的上述数据经 过多工器212以及214而输出至输出总线228,如此一来,虚假数据可顺利地插进上述数据中。
图2B根据本发明一种实施方式图解存储器控制器202为快闪存储器204的读 取操作所提供的相应设计。
存储器控制器202还包括以逻辑运算建构的数据辨识与分类缓存模块230。根 据坏行表格208,坏行处理模块210控制数据辨识与分类缓存模块230,对取自快 闪存储器204的数据进行辨识。取自坏行的数据以及取自非坏行的数据分类缓存 (例如,以两个先进先出(FIFO)缓存器分开缓存),或是,仅缓存取自非坏行的 数据。当同类缓存的数据可组合为位元组大小的数据时,则将位元组大小的数据传 输至数据总线216,如此一来,存储器控制器202的其他元件的不需任何修改即可保持运作。
一种实施方式中,坏行处理模块210还提供虚假数据标帜(Flag),反映该数 据总线216传输的数据取自坏行或是取自非坏行。根据虚假数据标帜除却虚假数据 后,存储器控制器202的状态机可根据非坏行数据的位元组计数而切换,辨识出主 机数据、校验码、元数据,分别输入主机数据储存器220、校验码引擎224、以及 元数据暂存器226,回应主机206的读取要求。
以上存储器控制器202设计可有多种变形。关于写入操作,所实现的工作内容 包括:相应坏行表格208,对数据总线216传输的数据穿插虚假数据,再将数据写入至快闪存储器204,使正确的数据写入非坏行而让虚假数据写入至坏行中,并使 存储器控制器202以及快闪存储器204采用原本的通信方式(第一长度)进行通信。 关于读取操作,所实现的工作内容包括:相应坏行表格208,存储器控制器202对 取自快闪存储器204的数据进行辨识,将来自非坏行的数据与来自坏行的数据分类 缓存,之后,再组合同类缓存内容,以取得正确的数据,并使存储器控制器202 以及快闪存储器204采用原本的通信方式(第一长度)进行通信。
图3A示意根据图2A架构所实现的一写入操作。假设一个页面的长度4个位 元组,而坏行表格208中标示坏行302与304。数据总线216依序传输三个位元组 的数据,每个位元组包括2个半位元组。半位元组1_L以及半位元组1_H组合成 第一个位元组。半位元组2_L以及半位元组2_H组合成第二个位元组。半位元组 3_L以及半位元组3_H组合成第三个位元组。数据总线216传输半位元组1_L以 及半位元组1_H,坏行处理模块210直接让半位元组1_L以及半位元组1_H传输 至输出总线228。数据总线216接着传输半位元组2_L以及半位元组2_H。响应查 表得知的坏行302记号,坏行处理模块210将四位元的虚假数据0xF插至半位元组2_L之前,传送虚假数据0xF以及半位元组2_L至输出总线228,此时,半位元组2_H则暂存至暂存器218。之后,响应查表得知的坏行304记号,坏行处理模块 210将四位元的虚假数据0xF插至半位元组2_H之前,传送虚假数据0xF以及半 位元组2_H至输出总线228。至于数据总线216最末传输的半位元组3_L以及半 位元组3_H,坏行处理模块210直接让半位元组3_L以及半位元组3_H传输至输 出总线228,不做虚假数据0xF插入。最后,输出总线228上包括四个位元组, 半位元组1_L以及半位元组1_H组合成第一个位元组;半位元组的虚假数据0xF 以及半位元组2_L组合成第二个位元组;半位元组0xF以及半位元组的虚假数据 2_H组合成第三个位元组;半位元组3_L以及半位元组3_H组合成第四个位元组。 输出总线228上的四个位元组则写入至快闪存储器204的页面中。根据本发明技术, 快闪存储器204与外通信仍是维持一般设计(如,位元组长度)。特殊长度(如, 半位元组)的各坏行以相应长度的虚假数据0xF略过。虚假数据也可填入其他数 值。实现如此虚假数据插入的逻辑架构也可能有微调。
图3B示意根据图2B架构所实现的一读取操作。根据主机206的读取要求, 存储器控制器202读取快闪存储器204的页面以取得四个位元组,此四个位元组则 传送至输出总线228。基于坏行表格208的内容,数据辨识与分类缓存模块230对 输出总线228上的数据进行辨识。取自坏行302以及304的虚假数据0xF以及取 自非坏行的数据分类缓存。同类缓存内容再组合出位元组大小的数据由数据总线 216传输。
数据辨识与分类缓存模块230的先进先出(FIFO)缓存器306以及FIFO缓存 器308的填写顺序如下:半位元组1_L以及半位元组1_H写入FIFO缓存器306(顺序标号为①以及②);半位元组的虚假数据0xF写入FIFO缓存器308(顺序标号为 ③);半位元组2_L写入FIFO缓存器306(顺序标号为④);半位元组的虚假数据 0xF写入FIFO缓存器308(顺序标号为⑤);半位元组2_H、半位元组3_L以及半 位元组3_H写入FIFO缓存器306(顺序标号为⑥、⑦以及⑧)。依照顺序标号①以 及②,半位元组1_L以及半位元组1_H自FIFO缓存器306取出,组合为第一个位 元组数据,再传送至数据总线216。依照顺序标号③以及④,此时FIFO缓存器308 以及FIFO缓存器306都只存在半位元组的数据,无法组合成一位元组的纯粹有 效数据、或纯粹虚假数据。依照顺序标号⑤,此时FIFO缓存器308内容可先组合 出一位元组的虚假数据,因此,成为第二个位元组数据,传送至数据总线216。依 照顺序标号⑥,此时FIFO缓存器306内容可组合出一位元组的有效数据2_L以及 2_H,成为第三个位元组数据,传送至数据总线216。依照顺序标号⑦以及⑧,半 位元组3_L以及半位元组3_H自FIFO缓存器306取出,组合为第四个位元组数据, 传送至数据总线216。数据总线216符合通信接口使用的数据长度(位元组长度)。
坏行处理模块210还可根据坏行表格208提供虚假数据标帜310,符合数据总 线216传输的数据内容。如图所示,高位标示有效数据,低位标示虚假数据。
本发明前述概念更可用于实现非挥发式存储器的控制方法。
根据本发明一种实施方式提出的非挥发式存储器控制方法,包括以下步骤:步 骤S12:接收来自主机的指令,其中,命令可为读取指令或写入指令。步骤S14:依据坏行表格以及指令来存取非挥发式存储器,其中,非挥发式存储器的通信采第 一长度,指令的数据的管理单位为第二长度,第二长度小于第一长度。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本 技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发 明的保护范围由权利要求书界定为准。

Claims (16)

1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,根据一主机的要求操作该非挥发式存储器,其中该非挥发式存储器与该主机的通信采用一第一长度,
其中:
该控制器还载有一坏行表格,以一第二长度为单位管理该非挥发式存储器的坏行;
该第二长度短于该第一长度;
该非挥发式存储器上,该第二长度的一段储存单元中若有任何储存单元损坏,该段储存单元即标示为坏行;
相应该坏行表格,该控制器对取自该非挥发式存储器的数据进行辨识,将非对应坏行的数据,与对应坏行的虚假数据分类缓存,再组合同类缓存内容,维持以该第一长度实现该非挥发式存储器的通信。
2.如权利要求1所述的数据储存装置,其特征在于:
相应该坏行表格,该控制器对一数据总线传输的数据穿插虚假数据,再交予该非挥发式存储器储存,以避开坏行的使用,并维持以该第一长度与该非挥发式存储器通信。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制器还提供一暂存器,保存该数据总线传输的数据,待虚假数据插入后输出。
4.如权利要求3所述的数据储存装置,其特征在于:
该控制器还提供一坏行处理模块、一第一多工器以及一第二多工器;
该第一多工器具有一第一输入端耦接该数据总线、以及一第二输入端耦接该暂存器;
该第二多工器具有一第一输入端接收该第二长度的虚假数据、以及一第二输入端耦接该第一多工器的输出;且
根据该坏行表格,该坏行处理模块控制该第一多工器以及该第二多工器,使该数据总线传输的数据穿插虚假数据。
5.如权利要求4所述的数据储存装置,其特征在于:
该控制器还包括一主机数据储存器、一校验码引擎以及一元数据暂存器;且
该数据总线传输的数据是由该主机数据储存器、该校验码引擎以及该元数据暂存器轮番提供。
6.如权利要求1所述的数据储存装置,其特征在于:
该控制器还提供一坏行处理模块、一第一先进先出缓存器、以及一第二先进先出缓存器;
该坏行处理模块根据该坏行表格运作;且
对取自该非挥发式存储器的数据,该坏行处理模块将非对应坏行的数据推入该第一先进先出缓存器,并将对应坏行的虚假数据推入该第二先进先出缓存器,再组合同一个先进先出缓存器的内容交予一数据总线,维持以该第一长度实现该数据总线的传输。
7.如权利要求6所述的数据储存装置,其特征在于:
根据该坏行表格,该坏行处理模块还产生一虚假数据标帜,指示该数据总线传输的是否为虚假数据。
8.如权利要求7所述的数据储存装置,其特征在于:
该控制器还包括一主机数据储存器、一校验码引擎以及一元数据暂存器;且
除却虚假数据,该数据总线传输的数据轮番载入该主机数据储存器、该校验码引擎以及该元数据暂存器,以回应该主机。
9.一种非挥发式存储器控制方法,包括:
根据一主机的要求操作一非挥发式存储器,其中该非挥发式存储器与该主机的通信采用一第一长度;且
记载一坏行表格,以一第二长度为单位管理该非挥发式存储器的坏行,
其中,该第二长度短于该第一长度;且
该非挥发式存储器上,该第二长度的一段储存单元中若有任何储存单元损坏,该段储存单元即标示为坏行;
所述的非挥发式存储器控制方法,还包括:
相应该坏行表格,对取自该非挥发式存储器的数据进行辨识,将非对应坏行的数据,与对应坏行的虚假数据分类缓存,再组合同类缓存内容,维持以该第一长度实现该非挥发式存储器的通信。
10.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
相应该坏行表格,对一数据总线传输的数据穿插虚假数据,再交予该非挥发式存储器储存,以避开坏行的使用,并维持以该第一长度与该非挥发式存储器通信。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一暂存器,保存该数据总线传输的数据,待虚假数据插入后输出。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一坏行处理模块、一第一多工器以及一第二多工器,
其中:
该第一多工器具有一第一输入端耦接该数据总线、以及一第二输入端耦接该暂存器;
该第二多工器具有一第一输入端接收该第二长度的虚假数据、以及一第二输入端耦接该第一多工器的输出;且
根据该坏行表格,该坏行处理模块控制该第一多工器以及该第二多工器,使该数据总线传输的数据穿插虚假数据。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一主机数据储存器、一校验码引擎以及一元数据暂存器,
其中:
该数据总线传输的数据是由该主机数据储存器、该校验码引擎以及该元数据暂存器轮番提供。
14.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一坏行处理模块、一第一先进先出缓存器、以及一第二先进先出缓存器,
其中:
该坏行处理模块根据该坏行表格运作;且
对取自该非挥发式存储器的数据,该坏行处理模块将非对应坏行的数据推入该第一先进先出缓存器,并将对应坏行的虚假数据推入该第二先进先出缓存器,再组合同一个先进先出缓存器的内容交予一数据总线,维持以该第一长度实现该数据总线的传输。
15.如权利要求14所述的非挥发式存储器控制方法,其特征在于:
根据该坏行表格,该坏行处理模块还产生一虚假数据标帜,指示该数据总线传输的是否为虚假数据。
16.如权利要求15所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一主机数据储存器、一校验码引擎以及一元数据暂存器,
其中:
除却虚假数据,该数据总线传输的数据轮番载入该主机数据储存器、该校验码引擎以及该元数据暂存器,以回应该主机。
CN201910375953.9A 2018-09-26 2019-05-07 数据储存装置以及非挥发式存储器控制方法 Active CN110955383B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862736517P 2018-09-26 2018-09-26
US62/736,517 2018-09-26
TW108112761A TWI710893B (zh) 2018-09-26 2019-04-11 資料儲存裝置以及非揮發式記憶體控制方法
TW108112761 2019-04-11

Publications (2)

Publication Number Publication Date
CN110955383A CN110955383A (zh) 2020-04-03
CN110955383B true CN110955383B (zh) 2023-05-02

Family

ID=69883319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910375953.9A Active CN110955383B (zh) 2018-09-26 2019-05-07 数据储存装置以及非挥发式存储器控制方法

Country Status (2)

Country Link
US (1) US10892031B2 (zh)
CN (1) CN110955383B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083887B (zh) * 2020-09-10 2023-09-15 深圳芯邦科技股份有限公司 一种数据处理方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200915335A (en) * 2007-08-08 2009-04-01 Atmel Corp Redundancy scheme in memory
CN105468479A (zh) * 2015-11-18 2016-04-06 浙江大华技术股份有限公司 一种磁盘阵列raid坏块处理方法及装置
TW201724110A (zh) * 2015-12-28 2017-07-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464834B (zh) 2007-12-19 2011-01-26 群联电子股份有限公司 闪存数据写入方法及使用此方法的控制器
CN101483067B (zh) 2008-01-11 2012-04-18 群联电子股份有限公司 快闪存储器数据写入方法及其快闪存储器控制器
TWI385527B (zh) 2009-02-10 2013-02-11 Phison Electronics Corp Mlc nand型快閃記憶體儲存系統及其控制器與存取方法
US8923045B2 (en) 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
US9323608B2 (en) * 2012-06-07 2016-04-26 Micron Technology, Inc. Integrity of a data bus
US9870836B2 (en) 2015-03-10 2018-01-16 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
TWI534618B (zh) 2015-07-13 2016-05-21 群聯電子股份有限公司 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
US10275165B2 (en) * 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
US10048887B2 (en) 2016-10-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for single level cell caching
TWI615711B (zh) 2017-03-28 2018-02-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200915335A (en) * 2007-08-08 2009-04-01 Atmel Corp Redundancy scheme in memory
CN105468479A (zh) * 2015-11-18 2016-04-06 浙江大华技术股份有限公司 一种磁盘阵列raid坏块处理方法及装置
TW201724110A (zh) * 2015-12-28 2017-07-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Also Published As

Publication number Publication date
US20200098442A1 (en) 2020-03-26
CN110955383A (zh) 2020-04-03
US10892031B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
CN102354299B (zh) 存储卡和半导体器件
US8437190B2 (en) Interleaved flash storage system and method
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
CN101655775B (zh) 卡和主机设备
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US20050055493A1 (en) [method for accessing large block flash memory]
EP2003569A2 (en) Flash memory controller
US8892815B2 (en) Optimized fragmented block compaction with a bitmap
US10229052B2 (en) Reverse map logging in physical media
CN103558993A (zh) 具有易失性和非易失性存储器的混合固态存储器系统
CN110083546B (zh) 记忆装置中进行写入管理的方法、记忆装置和其控制器
CN102414666A (zh) 用于受管理的非易失性存储器的低等待时间读取操作
CN102591784A (zh) 高闪存兼容性的电子装置以及相关的闪存兼容性提升方法
US20090037646A1 (en) Method of using a flash memory for a circular buffer
US10140215B1 (en) Low overhead mapping for highly sequential data
US20010012222A1 (en) Memory controller for flash memory system and method for accessing flash memory device
CN110764691A (zh) 数据储存装置以及非挥发式存储器控制方法
US5483491A (en) Memory card device
US20220138096A1 (en) Memory system
CN110955383B (zh) 数据储存装置以及非挥发式存储器控制方法
CN103309619A (zh) 一种闪存数据存储方法
EP3057100B1 (en) Memory device and operating method of same
TWI710893B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN112148626A (zh) 压缩数据的存储方法及其存储设备
CN116048380A (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