CN109979508A - 固态硬盘装置与相关的固态硬盘控制电路 - Google Patents
固态硬盘装置与相关的固态硬盘控制电路 Download PDFInfo
- Publication number
- CN109979508A CN109979508A CN201910196083.9A CN201910196083A CN109979508A CN 109979508 A CN109979508 A CN 109979508A CN 201910196083 A CN201910196083 A CN 201910196083A CN 109979508 A CN109979508 A CN 109979508A
- Authority
- CN
- China
- Prior art keywords
- word
- line
- block
- data
- control circuit
- 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.)
- Pending
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0658—Controller construction arrangements
-
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/107—Programming all cells in an array, sector or block to the same state prior to flash erasing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5622—Concurrent multilevel programming of more than one cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Abstract
本发明提出一种固态硬盘装置,包含:固态硬盘,包含目标块,且该目标块中包含多条字元线与多条位元线;传输接口,设置成接收待写入固态硬盘的数据;以及固态硬盘控制电路,包含:存取电路;以及快闪存储器控制电路,设置成控制该存取电路以第一编程模式,将第一数据写入该目标块的第一字元线所耦接的一个或多个实体页,以及控制该存取电路以第二编程模式,将第二数据写入该目标块的第二字元线所耦接的一或多个实体页,使得该第一数据与该第二数据同时存在于该目标块中。以字元线为单位来设置单独快闪存储器块中的不同部分的数据编程模式,有利于充分运用快闪存储器块的储存能力。
Description
技术领域
本发明涉及固态硬盘(solid-state drive,SSD),尤指一种可弹性调整数据编程模式(program scheme)的固态硬盘装置与相关的固态硬盘控制电路。
背景技术
固态硬盘装置中包含许多快闪存储器块,这些块通常会被划分为预留空间块(over provision block,OP block)与数据块。预留空间块的数量会影响固态硬盘装置的操作性能,而数据块的数量则会影响固态硬盘装置的数据储存容量。当任一块中无法使用的实体页超过一定数量时,传统固态硬盘装置的控制电路便会将该块整个标识为坏块(badblock),而不再使用该块中的任何实体页来储存数据。
另一方面,传统固态硬盘装置的控制电路是以整个块为单位来设置每一块的数据编程模式。因此,倘若某一块有部分实体页出现瑕疵而不适用该种数据编程模式,便容易发生数据出错的情况,或是增加该块被传统控制电路判定为坏块(bad block)的可能性,进而降低固态硬盘装置的可用储存空间。
很明显地,传统固态硬盘装置的控制机制无法充分运用快闪存储器块的储存能力,而且在快闪存储器块的使用上也缺乏弹性,所以也难以有效改善固态硬盘装置的操作性能。
发明内容
有鉴于此,如何减轻或消除上述传统固态硬盘装置的缺失,实为有待解决的问题。
本说明书提供一种固态硬盘装置的实施例,其包含:固态硬盘,包含有多个快闪存储器块,其中,该多个快闪存储器块包含目标块,且该目标块中包含多条字元线与多条位元线;传输接口,设置成接收待写入固态硬盘的数据;以及固态硬盘控制电路,该固态硬盘控制电路包含:存取电路,耦接于该固态硬盘;以及快闪存储器控制电路,耦接于该存取电路与该传输接口,且设置成进行以下操作:在第一时间点控制该存取电路以第一编程模式,将第一数据写入该目标块的第一字元线所耦接的一个或多个实体页;以及在第二时间点控制该存取电路以第二编程模式,将第二数据写入该目标块的第二字元线所耦接的一个或多个实体页,使得该第一数据与该第二数据同时存在于该目标块中。
本说明书另提供一种用于控制固态硬盘的固态硬盘控制电路的实施例。该固态硬盘包含有多个快闪存储器块与传输接口,其中,该多个快闪存储器块包含目标块,该目标块中包含多条字元线与多条位元线,且该传输接口设置成接收待写入固态硬盘的数据,该固态硬盘控制电路包含:存取电路,用于耦接该固态硬盘;以及快闪存储器控制电路,耦接于该存取电路并用于耦接该传输接口,且设置成进行以下操作:在第一时间点控制该存取电路以第一编程模式,将该第一数据写入该目标块的第一字元线所耦接的一个或多个实体页;以及在第二时间点控制该存取电路以第二编程模式,将该第二数据写入该目标块的第二字元线所耦接的一个或多个实体页,使得该第一数据与该第二数据同时存在于该目标块中。
上述实施例的优点之一,是快闪存储器控制电路以字元线为单位来设置单独快闪存储器块中的不同部分的数据编程模式,可大幅提升写入数据至快闪存储器块时的数据编程模式选择弹性,有利于充分运用快闪存储器块的储存能力,进而可在不增加快闪存储器块数量的情况下等效增加固态硬盘装置的储存空间。
上述实施例的另一优点,是快闪存储器控制电路会对同一块中的不同类型的字元线采用不同的数据编程模式来写入数据,所以能够提升块中的数据可靠度。
本发明的其他优点将搭配以下的说明和图式进行更详细的说明。
附图说明
图1为本发明第一实施例的固态硬盘装置简化后的功能方框图。
图2为本发明一实施例的字元线分类记录简化后的示意图。
图3至图5为固态硬盘装置中的一个快闪存储器块在不同情境下的数据写入方式的一实施例简化后的示意图。
图6为本发明另一实施例的字元线分类记录简化后的示意图。
图7为本发明第二实施例的固态硬盘装置简化后的功能方框图。
【附图标记列表】
100 固态硬盘装置(SSD device)
110 固态硬盘(SSD)
112、114、116 快闪存储器块(flash memory block)
121~129 字元线(word line)
131~139 位元线(bit line)
140 传输接口(communication interface)
150 非挥发性储存电路(non-volatile storage circuit)
152 字元线分类记录(word-line category record)
160 固态硬盘控制电路(SSD controller circuit)
162 存取电路(access circuit)
164 快闪存储器控制电路(flash memory control circuit)
210~290、630、650 数据输入(data entry)
具体实施方式
以下将配合相关图式来说明本发明的实施例。在图式中,相同的标号表示相同或类似的元件或方法流程。
图1为本发明第一实施例的固态硬盘装置100简化后的功能方框图。固态硬盘装置100包含固态硬盘110、传输接口140、非挥发性储存电路150、以及固态硬盘控制电路160。
固态硬盘110中包含多个快闪存储器块(flash memory block),例如,图1中的示例性块112、114、与116。如图1所示,每个快闪存储器块中都包含多条字元线与多条位元线。例如,块112中包含示例性的字元线121、122、与123、以及示例性的位元线131、132、与133;块114中包含示例性的字元线124、125、与126、以及示例性的位元线134、135、与136;块116中包含示例性的字元线127、128、与129、以及示例性的位元线137、138、与139。
在各快闪存储器块中,每一字元线与每一位元线的相交处都设置有储存单元(storage cell),可用于储存数据。因此,每个快闪存储器块中都会包含许多储存单元。为了降低图面复杂度起见,这些储存单元并未绘示于图1中。
前述固态硬盘110中的块112、114、与116皆可用一阶储存单元(Single-levelcell,SLC)晶片、多阶储存单元(Multi-level cell,MLC)晶片、三阶储存单元(Triple-level cell,TLC)晶片、四阶储存单元(Quad-level cell,QLC)晶片、或是更高阶的储存单元晶片来实现。
传输接口140设置成与主控装置(host device,未绘示于图1中)进行数据通信。实际上,传输接口140可用相容于各种序列式先进附加技术(Serial Advanced TechnologyAttachment,SATA)系列传输标准、快速周边组件互连(peripheral componentinterconnect express,PCIe)系列传输标准、和/或通用串行总线(Universal SerialBus,USB)系列传输标准的接口电路来实现。
储存电路150用于储存固态硬盘110的单独块中的所有字元线的分类结果。
固态硬盘控制电路160包含存取电路162以及快闪存储器控制电路164。存取电路162耦接于固态硬盘110。快闪存储器控制电路164耦接于传输接口140与储存电路150,设置成通过存取电路162对固态硬盘110进行存取。当需要写入数据至固态硬盘110时,快闪存储器控制电路164可从固态硬盘110中挑选合适的块,并根据储存电路150所储存的字元线的分类结果,来决定选定块中的单独字元线所连接的储存单元的数据编程方式。
实际上,储存电路150可独立设置于固态硬盘控制电路160之外,也可以整合到固态硬盘控制电路160中。为了说明上的方便,在图1中并未绘示固态硬盘装置100中的其他元件及相关的连接与实施方式。
在固态硬盘110的制造或组装过程中,制造商可对固态硬盘110中的所有快闪存储器块进行各种电路特性检测,以判断单独块的主阵列(main array)的瑕疵程度和/或瑕疵分布状况。固态硬盘110的制造商可根据前述检测的结果判断各块中的不同部位的硬件品质、数据读取可靠度、数据长期保留能力、和/或耐用度等电路特性,并根据判断结果将该块中的不同部位以字元线为单位进行分类。
例如,在固态硬盘110中的块是以四阶储存单元晶片实现的实施例中,制造商可将各块中的不同字元线区分为Q类、T类、M类、与S类四个类型。S类(S-type)代表字元线所连接的多数储存单元只适合用每储存单元一位元(one-bit-per-cell,1bpc)的编程模式(以下简称一位元模式,1bpc scheme)来写入数据。M类(M-type)代表字元线所连接的多数储存单元可以用每储存单元两位元(two-bit-per-cell,2bpc)的模式(以下简称两位元模式,2bpcscheme)来写入数据,也可以用一位元模式来写入数据。T类(T-type)代表字元线所连接的多数储存单元可以用每储存单元三位元(three-bit-per-cell,3bpc)的模式(以下简称三位元模式,3bpc scheme)来写入数据,也可以用两位元模式或是一位元模式来写入数据。Q类(Q-type)代表字元线所连接的多数储存单元可以用每储存单元四位元(four-bit-per-cell,4bpc)的模式(以下简称四位元模式,4bpc scheme)来写入数据,也可以用三位元模式、两位元模式、或是一位元模式来写入数据。
前述的分类方式在某种程度上代表M类字元线所连接的储存单元的整体瑕疵少于S类字元线,T类字元线所连接的储存单元的整体瑕疵少于M类字元线,而Q类字元线所连接的储存单元的整体瑕疵又少于T类字元线。换言之,Q类字元线所连接的储存单元的整体电路品质比其他类型的字元线来得好。
又例如,在固态硬盘110中的块是以三阶储存单元晶片实现的实施例中,制造商可将各块中的字元线区分为前述的T类、M类、与S类三个类型。
又例如,在固态硬盘110中的块是以多阶储存单元晶片实现的实施例中,制造商可将各块中的字元线区分为前述的M类与S类两个类型。
由前述说明可知,一位元模式可适用于S类字元线、M类字元线、T类字元线、或Q类字元线所连接的储存单元。二位元模式只适用于M类字元线、T类字元线、或Q类字元线所连接的储存单元,而不适用于S类字元线所连接的储存单元。三位元模式只适用于T类字元线或Q类字元线所连接的储存单元,而不适用于M类字元线与S类字元线所连接的储存单元。四位元模式只适用于Q类字元线所连接的储存单元,而不适用于T类字元线、M类字元线、与S类字元线所连接的储存单元。
请注意,前述的Q类、T类、M类、与S类等用语,只是为了方便区别不同的类型,实际上可用任何合适的名称、代码、数字、或索引值来表达不同的字元线类型。
制造商可将固态硬盘110的各块中的字元线分类结果,预先储存在固态硬盘装置100中。例如,在本实施例中,可将固态硬盘110的各块中的字元线分类结果,以合适的形式预先记录在前述的储存电路150中,以作为一字元线分类记录。
例如,图2所绘示为本发明一实施例的字元线分类记录152简化后的示意图。字元线分类记录152包含固态硬盘110中的多个块的字元线分类结果。例如,字元线分类记录152中的数据输入210、220、与230,分别代表块112中的字元线121、122、与123的字元线类型(word-line type);数据输入240、250、与260分别代表块114中的字元线124、125、与126的字元线类型;而数据输入270、280、与290则分别代表块116中的字元线127、128、与129的字元线类型。
从图2实施例中的数据输入210~290的内容可以得知,块112中的字元线121属于S类字元线;块112中的字元线122与123、以及块114中的字元线126都属于M类字元线;块114中的字元线124属于T类字元线;块114中的字元线125以及块116中的字元线127、128、与129都属于Q类字元线。
由前述的字元线分类方式可知,Q类字元线所连接的储存单元在数据编程模式的选择上具有最大的弹性、T类字元线次之、M类字元线再次之。
因此,当需要写入数据至固态硬盘110时,快闪存储器控制电路164可从固态硬盘110中挑选出合适的块,并根据字元线分类记录152的内容选用相应的编程模式,以将数据写入选定块中的单独字元线所连接的一个或多个实体页(page)。
以下将进一步说明固态硬盘控制电路160对于固态硬盘110的存取方式。为了方便说明起见,在此假设快闪存储器控制电路164选择块114做为要写入数据的块。
当快闪存储器控制电路164要在某一时间点T1将数据D1写入块114中的字元线124所对应的实体位置时,快闪存储器控制电路164可从图2的字元线分类记录152中查询字元线124的分类,并得知字元线124属于T类字元线。
如前所述,T类代表字元线所连接的储存单元可以用三位元模式、两位元模式、或是一位元模式来写入数据。快闪存储器控制电路164可根据当时采用的块管理策略选择合适的编程模式,并控制存取电路162采用选定的编程模式将数据D1写入字元线124所连接的一个或多个实体页。
例如,假设当时的块管理策略为容量优先模式(capacity-take-priorityapproach),则存取电路162可采用三位元模式来写入数据D1。
又例如,假设当时的块管理策略为性能优先模式(performance-take-priorityapproach),则存取电路162可采用一位元模式来写入数据D1。
又例如,假设当时的块管理策略为平衡模式(balance approach),则存取电路162可采用三位元模式或两位元模式来写入数据D1。
当快闪存储器控制电路164要在另一时间点T2将另一数据D2写入块114中的字元线125所对应的实体位置时,快闪存储器控制电路164可从图2的字元线分类记录152中查询字元线125的分类,并得知字元线125属于Q类字元线。
如前所述,Q类代表字元线所连接的储存单元可以用四位元模式、三位元模式、两位元模式、或是一位元模式来写入数据。快闪存储器控制电路164可根据当时的块管理策略选择合适的编程模式,并控制存取电路162采用选定的编程模式将数据D2写入字元线125所连接的一个或多个实体页。
例如,假设当时的块管理策略为容量优先模式,则存取电路162可采用四位元模式来写入数据D2。
又例如,假设当时的块管理策略为性能优先模式,则存取电路162可采用一位元模式来写入数据D2。
又例如,假设当时的块管理策略为平衡模式,则存取电路162可采用三位元模式或两位元模式来写入数据D2。
当快闪存储器控制电路164要在另一时间点T3将另一数据D3写入块114中的字元线126所对应的实体位置时,快闪存储器控制电路164可从图2的字元线分类记录152中查询字元线126的分类,并得知字元线126属于M类字元线。
如前所述,M类代表字元线所连接的储存单元可以用两位元模式或是一位元模式来写入数据。快闪存储器控制电路164可根据当时的块管理策略选择合适的编程模式,并控制存取电路162采用选定的编程模式将数据D3写入字元线126所连接的一个或多个实体页。
例如,假设当时的块管理策略为容量优先模式,则存取电路162可采用两位元模式来写入数据D3。
又例如,假设当时的块管理策略为性能优先模式,则存取电路162可采用一位元模式来写入数据D3。
又例如,假设当时的块管理策略为平衡模式,则存取电路162可采用两位元模式来写入数据D3。
由前述说明可知,固态硬盘控制电路160可根据不同字元线的电路特性,对同一块114中的不同字元线采用不同的数据编程模式。因此,块114中的不同字元线所连接的储存单元的数据编程模式在同一时间点可能会有所不同。
例如,如图3所示,在快闪存储器控制电路164采用容量优先模式管理固态硬盘110的情况下,存取电路162可在时间点T1采用三位元模式将数据D1写入字元线124所连接的一个或多个实体页、在时间点T2采用四位元模式将数据D2写入字元线125所连接的一个或多个实体页、并在时间点T3采用两位元模式将数据D3写入字元线126所连接的一个或多个实体页。如此一来,块114中便会同时存在以三位元模式写入的数据D1、以四位元模式写入的数据D2、以及以两位元模式写入的数据D3。
对于固态硬盘110中的其他块,固态硬盘控制电路160都能根据字元线分类记录152的内容,来选择单独字元线所连接的储存单元的数据编程模式。
随着时间的经过,快闪存储器控制电路164可以在适当的时机将块114中所储存的数据抹除,以使块114能够用来储存其他的数据。
另外,在操作的过程中,快闪存储器控制电路164可以依照固态硬盘110的剩余储存空间、待写入数据的数据属性、主控装置的要求、用户的设置、或是当时固态硬盘装置100的操作环境,动态调整块管理模式。
例如,一般可将会被经常存取的数据称为热数据,并将较不会被经常存取的数据称为冷数据。在块114被抹除之后,倘若快闪存储器控制电路164需要将属于热数据的新数据D4、D5、与D6分别写入块114中的字元线124、125、与126所对应的实体位置,则快闪存储器控制电路164可采用性能优先模式来存取块114。在此情况下,如图4所示,快闪存储器控制电路164可在时间点T4控制存取电路162采用一位元模式将数据D4写入字元线124所连接的一个或多个实体页、在时间点T5采用一位元模式将数据D5写入字元线125所连接的一个或多个实体页、并在时间点T6采用一位元模式将数据D6写入字元线126所连接的一个或多个实体页。如此一来,块114中所储存的数据D4、D5、与D6便会具有相同的编程模式,亦即,一位元模式。
又例如,在块114被抹除之后,倘若主控装置或用户要求快闪存储器控制电路164将块管理策略改为平衡模式、且快闪存储器控制电路164需要将新数据D7、D8、与D9分别写入块114中的字元线124、125、与126所对应的实体位置,则快闪存储器控制电路164可采用平衡模式来对存取块114。在此情况下,如图5所示,快闪存储器控制电路164可在时间点T7控制存取电路162采用三位元模式将数据D7写入字元线124所连接的一个或多个实体页、在时间点T8采用三位元模式将数据D8写入字元线125所连接的一个或多个实体页、并在时间点T9采用两位元模式将数据D9写入字元线126所连接的一个或多个实体页。如此一来,块114中便会同时存在以三位元模式写入的数据D7与D8、以及以两位元模式写入的数据D9。
由前述说明可知,对于块114中的同一条字元线所连接的实体页而言,固态硬盘控制电路160在不同的时间点可以采用不同的数据编程模式来写入数据。例如,在前述的实施例中,块114中的字元线124所对应的数据编程模式有时候是三位元模式、有时候则是一位元模式;字元线125所对应的数据编程模式有时候是四位元模式、有时候是一位元模式、有时候则是三位元模式;字元线126所对应的数据编程模式有时候是两位元模式、有时候则是一位元模式。
由前述说明可知,快闪存储器控制电路164是以字元线为单位来设置相关实体页的数据编程模式,因此能大幅提升写入数据至快闪存储器块时的数据编程模式选择弹性。
前述的块使用方式有利于充分运用每个快闪存储器块的储存能力,进而能够在不增加固态硬盘110中的快闪存储器块数量的情况下等效增加固态硬盘装置100的储存空间。
另一方面,由于快闪存储器控制电路164会对同一块中的不同类型的字元线适应性采用不同的数据编程模式来写入数据,所以能够提升单独块中的数据可靠度。
随着数据写入或抹除次数的增加,单独字元线所连接的储存单元的电路瑕疵可能会加、或是数据可靠度可能会有所降低。因此,快闪存储器控制电路164可以在操作的过程中,根据各字元线所连接的实体页的数据写入次数或抹除次数,动态调整前述字元线分类记录152中的相应数据输入的内容。快闪存储器控制电路164也可以采用各种合适的测试方式对各字元线所连接的实体页进行可靠度测试,并根据测试的结果动态调整前述字元线分类记录152中的相应数据输入的内容。
例如,如图6所示,当快闪存储器控制电路164判定块112中的字元线123所连接的多数储存单元变成只适合用一位元模式来写入数据时,快闪存储器控制电路164可将字元线分类记录152中原先的数据输入230修改为新的数据输入630,使得字元线123的类型从M类变成S类。
又例如,当快闪存储器控制电路164判定块114中的字元线125所连接的多数储存单元变成只适合用三位元模式、两位元模式、或是一位元模式来写入数据,而不再适合用四位元模式来写入数据时,快闪存储器控制电路164可将字元线分类记录152中原先的数据输入250修改为新的数据输入650,使得字元线125的类型从Q类变成T类。
众所周知,传统的快闪存储器控制电路对于整个块中的所有实体页都是采用相同的数据编程模式,但这种做法没有考虑到块中的不同部位的电路特性可能有所差异。因此,当传统的快闪存储器控制电路采用较高阶的数据编程模式写入数据至某一块、但该块中的部分实体位置因具有电路瑕疵而无法支援较高阶的数据编程模式时,便容易发生数据出错的情况,或是增加该块被传统的快闪存储器控制电路判定为坏块(bad block)的可能性。一旦块被标识为坏块的可能性增加,便会降低整体固态硬盘的可用储存空间。
不同于传统的坏块管理机制,只要固态硬盘110中的任一块中还有足够数量的字元线所连接的实体页能够支援较低阶的数据编程模式,本实施例中的快闪存储器控制电路164便会根据前述的方式来使用该块,而不会将该块标识为坏块。只有在某一块内的全部字元线或超过预定数量的字元线所连接的实体页都不适合再被用来储存数据时,快闪存储器控制电路164才会将该块标识为坏块。如此一来,便可降低块被判定为坏块的可能性,进而增加固态硬盘110中的可用储存空间并延长固态硬盘110的使用期限。
在某些实施例中,前述的快闪存储器控制电路164还可弹性调整固态硬盘110中的单独块的用途。在实际应用中,可以将固态硬盘110的部份块划分为预留空间块(overprovision block,OP block)并将其他块划分为数据块(data block)。如前所述,预留空间块的数量会影响固态硬盘装置100的操作性能,而数据块的数量则会影响固态硬盘装置100的数据储存容量。
因此,在操作的过程中,快闪存储器控制电路164可按照预定的管理策略、固态硬盘110的剩余储存空间、主控装置的要求、用户的设置、或是当时固态硬盘装置100的操作环境,弹性调整固态硬盘110中的部份块的用途。
例如,快闪存储器控制电路164可在需要固态硬盘110提供较多数据储存空间的第一时段P1中,将块114设置成数据块使用,并在快闪存储器控制电路164需要提升固态硬盘110的存取性能的第二时段P2中,则可将块114设置成预留空间块使用。换言之,固态硬盘110中的部份块(例如,前述的块114)可以在不同的时段扮演不同的用途。
如此一来,便可大幅提升固态硬盘110中的块用途的调整弹性,进而有效增加固态硬盘装置100的操作弹性与使用弹性。
请注意,前述图1中的电路架构只是示范性的实施例,并非局限本发明的实际实施方式。
例如,图7为本发明第二实施例的固态硬盘装置简化后的功能方框图。在图7的实施例中,前述的字元线分类记录152是储存在固态硬盘110的某一块中,例如,块112。
在某些实施例中,亦可将前述的字元线分类记录152分成多个区段分别储存在固态硬盘110的不同块中。
在说明书及权利要求书中使用了某些词汇来指称特定的元件,而本领域内的技术人员可能会用不同的名词来称呼同样的元件。本说明书及权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的基准。在说明书及申请专利范围中所提及的“包含”为开放式的用语,应解释成“包含但不限定于”。另外,“耦接”一词在此包含任何直接及间接的连接手段。因此,若文中描述第一元件耦接于第二元件,则代表第一元件可通过电性连接或无线传输、光学传输等信号连接方式而直接地连接于第二元件,或通过其它元件或连接手段间接地电性或信号连接至第二元件。
在说明书中所使用的“和/或”的描述方式,包含所列举的其中一个项目或多个项目的任意组合。另外,除非说明书中特别指明,否则任何单数的用语都同时包含复数的含义。
以上仅为本发明的较佳实施例,但需要注意的是,这些描述并非用以限制本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,本申请的保护范围当以权利要求所界定者的范围为准。
Claims (14)
1.一种固态硬盘装置(100),包含:
固态硬盘(110),包含有多个快闪存储器块(112、114、116),其中,该多个快闪存储器块(112、114、116)包含目标块(114),且该目标块中包含多条字元线(124、125、126)与多条位元线(134、135、136);
传输接口(140),设置成接收待写入固态硬盘(110)的数据;以及
固态硬盘控制电路(160),该固态硬盘控制电路(160)包含:
存取电路(162),耦接于该固态硬盘(110);以及
快闪存储器控制电路(164),耦接于该存取电路(162)与该传输接口(140),且设置成进行以下操作:
控制该存取电路(162)以第一编程模式,将第一数据(D1)写入该目标块(114)的第一字元线(124)所耦接的一个或多个实体页;以及
控制该存取电路(162)以第二编程模式,将第二数据(D2)写入该目标块(114)的第二字元线(125)所耦接的一个或多个实体页,使得该第一数据(D1)与该第二数据(D2)同时存在于该目标块(114)中。
2.如权利要求1所述的固态硬盘装置(100),其中,该快闪存储器控制电路(164)还设置成根据该第一字元线(124)所对应的字元线类型来决定该第一编程模式,并根据该第二字元线(125)所对应的字元线类型来决定该第二编程模式。
3.如权利要求2所述的固态硬盘装置(100),其中,该第一字元线(124)属于第一字元线类型,且该第二字元线(125)属于不同的第二字元线类型;
其中,该第一编程模式是该第一字元线类型所对应的多个编程模式之一,也是该第二字元线类型所对应的多个编程模式之一,该第二编程模式是该第二字元线类型所对应的多个编程模式之一,但不是该第一字元线类型所对应的多个编程模式之一。
4.如权利要求2所述的固态硬盘装置(100),其还包含有:
非挥发性储存电路(150),耦接于该快闪存储器控制电路(164),设置成储存字元线分类记录(152),其中,该字元线分类记录(152)中记录有该多条字元线(124、125、126)单独的字元线类型。
5.如权利要求2所述的固态硬盘装置(100),其中,该多个快闪存储器块(112、114、116)的至少其中之一储存有字元线分类记录(152),其中,该字元线分类记录(152)中记录有该多条字元线(124、125、126)单独的字元线类型。
6.如权利要求2所述的固态硬盘装置(100),其中,该快闪存储器控制电路(164)还设置成进行以下操作:
在第三时间点(T5)控制该存取电路(162)以不同于该第二编程模式的编程模式,将第三数据(D5)写入该目标块(114)的该第二字元线(125)所耦接的一个或多个实体页。
7.如权利要求2所述的固态硬盘装置(100),其中,该快闪存储器控制电路(164)还设置成在第一时段(P1)中将该目标块(114)设置成数据块使用,并在不同的第二时段(P2)中将该目标块(114)设置成预留空间块使用。
8.一种用于控制固态硬盘(110)的固态硬盘控制电路(160),该固态硬盘(110)包含有多个快闪存储器块(112、114、116)与传输接口(140),其中,该多个快闪存储器块(112、114、116)包含目标块(114),该目标块中包含多条字元线(124、125、126)与多条位元线(134、135、136),且该传输接口(140)设置成接收待写入固态硬盘(110)的数据,该固态硬盘控制电路(160)包含:
存取电路(162),用于耦接该固态硬盘(110);以及
快闪存储器控制电路(164),耦接于该存取电路(162)并用于耦接该传输接口(140),且设置成进行以下操作:
控制该存取电路(162)以第一编程模式,将该第一数据(D1)写入该目标块(114)的第一字元线(124)所耦接的一个或多个实体页;以及
控制该存取电路(162)以第二编程模式,将该第二数据(D2)写入该目标块(114)的第二字元线(125)所耦接的一个或多个实体页,使得该第一数据(D1)与该第二数据(D2)同时存在于该目标块(114)中。
9.如权利要求8所述的固态硬盘控制电路(160),其中,该快闪存储器控制电路(164)还设置成根据该第一字元线(124)所对应的字元线类型来决定该第一编程模式,并根据该第二字元线(125)所对应的字元线类型来决定该第二编程模式。
10.如权利要求9所述的固态硬盘控制电路(160),其中,该第一字元线(124)属于第一字元线类型,且该第二字元线(125)属于不同的第二字元线类型;
其中,该第一编程模式是该第一字元线类型所对应的多个编程模式之一,也是该第二字元线类型所对应的多个编程模式之一,该第二编程模式是该第二字元线类型所对应的多个编程模式之一,但不是该第一字元线类型所对应的多个编程模式之一。
11.如权利要求9所述的固态硬盘控制电路(160),其中,该固态硬盘装置(100)还包含有:
非挥发性储存电路(150),耦接于该快闪存储器控制电路(164),设置成储存字元线分类记录(152),其中,该字元线分类记录(152)中记录有该多条字元线(124、125、126)单独的字元线类型。
12.如权利要求9所述的固态硬盘控制电路(160),其中,该多个快闪存储器块(112、114、116)的至少其中之一储存有字元线分类记录(152),其中,该字元线分类记录(152)中记录有该多条字元线(124、125、126)单独的字元线类型。
13.如权利要求9所述的固态硬盘控制电路(160),其中,该快闪存储器控制电路(164)还设置成进行以下操作:
在第三时间点(T5)控制该存取电路(162)以不同于该第二编程模式的编程模式,将该第三数据(D5)写入该目标块(114)的该第二字元线(125)所耦接的一个或多个实体页。
14.如权利要求9所述的固态硬盘控制电路(160),其中,该快闪存储器控制电路(164)还设置成在第一时段(P1)中将该目标块(114)设置成数据块使用,并在不同的第二时段(P2)中将该目标块(114)设置成预留空间块使用。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910196083.9A CN109979508A (zh) | 2019-03-15 | 2019-03-15 | 固态硬盘装置与相关的固态硬盘控制电路 |
US16/392,164 US11055023B2 (en) | 2019-03-15 | 2019-04-23 | Electronic device, related controller circuit and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910196083.9A CN109979508A (zh) | 2019-03-15 | 2019-03-15 | 固态硬盘装置与相关的固态硬盘控制电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109979508A true CN109979508A (zh) | 2019-07-05 |
Family
ID=67078847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910196083.9A Pending CN109979508A (zh) | 2019-03-15 | 2019-03-15 | 固态硬盘装置与相关的固态硬盘控制电路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11055023B2 (zh) |
CN (1) | CN109979508A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11546000B2 (en) * | 2020-05-04 | 2023-01-03 | Samsung Electronics Co., Ltd. | Mobile data storage |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487985A (zh) * | 2014-10-02 | 2016-04-13 | 桑迪士克科技股份有限公司 | 预编码直接写入到多级单元存储器的数据的系统和方法 |
CN106663043A (zh) * | 2014-05-30 | 2017-05-10 | 桑迪士克科技有限责任公司 | 用于基于动态的字线的三维存储器装置的配置的方法和系统 |
CN107025941A (zh) * | 2016-01-29 | 2017-08-08 | 瑞昱半导体股份有限公司 | 固态硬盘控制电路 |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
CN107527655A (zh) * | 2017-09-12 | 2017-12-29 | 山东大学 | 一种闪存存储器混合读写方法及混合读写闪存存储器 |
CN108062201A (zh) * | 2016-11-09 | 2018-05-22 | 西部数据技术公司 | 用于固态驱动器的自虚拟化闪速存储器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606091B2 (en) | 2006-09-12 | 2009-10-20 | Sandisk Corporation | Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage |
KR100878479B1 (ko) * | 2007-01-16 | 2009-01-14 | 삼성전자주식회사 | 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템 |
KR100875539B1 (ko) * | 2007-01-17 | 2008-12-26 | 삼성전자주식회사 | 프로그램 방식을 선택할 수 있는 메모리 시스템 |
US7848144B2 (en) | 2008-06-16 | 2010-12-07 | Sandisk Corporation | Reverse order page writing in flash memories |
KR101635446B1 (ko) * | 2010-05-25 | 2016-07-04 | 삼성전자주식회사 | 반도체 메모리 장치의 블록 병합 방법 |
JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
US9251055B2 (en) * | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
CN104217762B (zh) * | 2013-05-31 | 2017-11-24 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法以及数据读取方法 |
US9244631B2 (en) * | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
WO2016028717A1 (en) * | 2014-08-17 | 2016-02-25 | Aplus Flash Technology, Inc | Vsl-based vt-compensation and analog program scheme for nand array without csl |
CN105701021B (zh) * | 2014-12-10 | 2021-03-02 | 慧荣科技股份有限公司 | 数据储存装置及其数据写入方法 |
US9836366B2 (en) * | 2015-10-27 | 2017-12-05 | Netapp, Inc. | Third vote consensus in a cluster using shared storage devices |
US9946483B2 (en) * | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning |
US20180321855A1 (en) * | 2017-05-03 | 2018-11-08 | Samsung Electronics Co., Ltd. | Multistreaming in heterogeneous environments |
US10140027B1 (en) * | 2017-05-26 | 2018-11-27 | Seagate Technology Llc | Data transfers with adaptively adjusted polling times |
TWI644215B (zh) * | 2017-11-02 | 2018-12-11 | 慧榮科技股份有限公司 | 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器 |
-
2019
- 2019-03-15 CN CN201910196083.9A patent/CN109979508A/zh active Pending
- 2019-04-23 US US16/392,164 patent/US11055023B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663043A (zh) * | 2014-05-30 | 2017-05-10 | 桑迪士克科技有限责任公司 | 用于基于动态的字线的三维存储器装置的配置的方法和系统 |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
CN105487985A (zh) * | 2014-10-02 | 2016-04-13 | 桑迪士克科技股份有限公司 | 预编码直接写入到多级单元存储器的数据的系统和方法 |
CN107025941A (zh) * | 2016-01-29 | 2017-08-08 | 瑞昱半导体股份有限公司 | 固态硬盘控制电路 |
CN108062201A (zh) * | 2016-11-09 | 2018-05-22 | 西部数据技术公司 | 用于固态驱动器的自虚拟化闪速存储器 |
CN107527655A (zh) * | 2017-09-12 | 2017-12-29 | 山东大学 | 一种闪存存储器混合读写方法及混合读写闪存存储器 |
Also Published As
Publication number | Publication date |
---|---|
US11055023B2 (en) | 2021-07-06 |
US20200293224A1 (en) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296507B2 (en) | Memory management and writing method and rewritable non-volatile memory controller and storage system using the same | |
US9146851B2 (en) | Single-level cell and multi-level cell hybrid solid state drive | |
US8732552B2 (en) | Block management method, memory controller and memory storage device thereof | |
US10409525B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US9442834B2 (en) | Data management method, memory controller and memory storage device | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US20100180069A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US9213631B2 (en) | Data processing method, and memory controller and memory storage device using the same | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
CN109947662A (zh) | 存储器系统及其操作方法 | |
WO2013101739A1 (en) | System and method for pre-interleaving sequential data | |
US9235501B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
CN108733580A (zh) | 读取命令排程方法 | |
US20140013030A1 (en) | Memory storage device, memory controller thereof, and method for writing data thereof | |
US8255656B2 (en) | Storage device, memory controller, and data protection method | |
CN107092566A (zh) | 数据储存装置及其数据维护方法 | |
US20100241788A1 (en) | Flash memory writing mtheod and stroage system and controller using the same | |
CN104346288A (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
CN101499316A (zh) | 快闪存储器区块管理方法及使用此方法的控制器 | |
CN103309619A (zh) | 一种闪存数据存储方法 | |
CN109979508A (zh) | 固态硬盘装置与相关的固态硬盘控制电路 | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US20100325344A1 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
CN102890653A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN105573661B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190705 |
|
RJ01 | Rejection of invention patent application after publication |