CN108932178B - 检测使用中逻辑页面的数据储存装置与数据储存方法 - Google Patents
检测使用中逻辑页面的数据储存装置与数据储存方法 Download PDFInfo
- Publication number
- CN108932178B CN108932178B CN201810007374.4A CN201810007374A CN108932178B CN 108932178 B CN108932178 B CN 108932178B CN 201810007374 A CN201810007374 A CN 201810007374A CN 108932178 B CN108932178 B CN 108932178B
- Authority
- CN
- China
- Prior art keywords
- logical page
- logical
- page
- pages
- data storage
- 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 64
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000003247 decreasing effect Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/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/1012—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 using codes or arrangements adapted for a specific type of error
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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
- 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
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及检测使用中逻辑页面的一种数据储存装置以及数据储存方法,用以储存多个数据。数据储存装置包括一存储器以及一控制器。存储器包括多个区块,上述区块的每一个包括多个实体页面。控制器耦接该存储器,将多个逻辑页面对应为该存储器的这些实体页面,并且对上述逻辑页面进行跳跃式线性检索。控制器依据一预设值N检索这些逻辑页面中的第N个逻辑页面,N为大于1的正整数。当第N个逻辑页面为使用中逻辑页面时,控制器依序递减预设值N以继续检索上述逻辑页面,直到检测出一非使用中逻辑页面为止。
Description
技术领域
本发明有关于一种数据储存装置与数据储存方法,特别有关于一种检测逻辑页面的方法,以找出最后一个使用中的逻辑页面。
背景技术
当使用者在使用数据储存装置(例如快闪存储器)时,可能会在写入数据的过程中,发生意外或不正常的断电情况。此时,除了正在写入的页面会受到影响之外,与此页面有关系的其他页面也可能会受到影响。当控制器对数据储存装置进行检测,找出最后一个使用者的页面时,可能会因为上述被影响的其他页面而发生误判。
举例而言,上述其他被影响的页面实际上是空白页,亦即未曾被写入数据。然而,该页面因为受到不正常断电的影响,被控制器误判为使用中的页面。如此一来,可能会造成后续数据写入的问题。因此,需要一种有效检测页面的数据储存装置与数据储存方法,正确找出最后一个使用中的页面。
发明内容
为了解决上述问题,本发明提出一种数据储存装置与数据储存方法,能够有效检测页面是否为真正的使用中页面,以找出最后一个使用中的页面。详细而言,本发明的数据储存方法系对多个逻辑页面进行跳跃式线性检索(linear search)。首先依据一预设值检索上述逻辑页面中的一特定逻辑页面。如果该特定逻辑页面为使用中逻辑页面时,依序递减该预设值以继续检索这些逻辑页面,直到检测出一非使用中逻辑页面为止,进而找出最后一个真正的使用中逻辑页面。因此,本发明所提供的数据储存装置与数据储存方法能够避免发生误判,正确地找出最后一个真正的使用中页面。
本发明的一实施例提供了一种数据储存装置,用以储存多个数据。数据储存装置包括一存储器以及一控制器。存储器包括多个区块,上述区块的每一者包括多个实体页面。控制器耦接存储器,将多个逻辑页面对应为存储器的这些实体页面,并且对这些逻辑页面进行跳跃式线性检索,其中该控制器依据一预设值N检索这些逻辑页面中的第N个逻辑页面,N为大于1的整数,并且当该第N个逻辑页面为使用中逻辑页面时,依序递减该预设值N以继续检索这些逻辑页面,直到检测出一非使用中逻辑页面为止。
当控制器检测出该非使用中逻辑页面时,检视该非使用中逻辑页面的上一个逻辑页面是否为使用中逻辑页面,当该上一个逻辑页面为使用中页面时,则该控制器判断该上一个逻辑页面为最后一个使用中逻辑页面。当该上一个逻辑页面不是使用中页面时,控制器继续检视该上一个逻辑页面的上一个逻辑页面,直到检测出该最后一个使用中逻辑页面为止。在另一实施例中,当控制器检测出该非使用中逻辑页面时,对该非使用中逻辑页面之上的多个逻辑页面进行二元检索(binary search),以检测出最后一个使用中逻辑页面。
本发明提供了一种数据储存方法,应用于储存多个数据的一数据储存装置。数据储存装置包括一存储器以及一控制器。控制器系将多个逻辑页面对应为存储器的多个实体页面,数据储存方法包括:对这些逻辑页面进行跳跃式线性检索,其中该控制器依据一预设值N检索这些逻辑页面中的第N个逻辑页面,N为大于1的正整数;以及当该第N个逻辑页面为使用中逻辑页面时,依序递减该预设值N以继续检索这些逻辑页面,直到检测出一非使用中逻辑页面为止。
附图简单说明
图1A是显示根据本发明一实施例所述的电子装置的示意图;
图1B是显示根据本发明一实施例所述的数据储存装置与主机的示意图;
图2是显示根据本发明一实施例所述的数据储存方法的流程图;
图3是显示根据本发明另一实施例所述的数据储存方法的流程图;
图4是显示根据本发明一实施例所述的逻辑页面的示意图;
图5是显示根据本发明另一实施例所述的逻辑页面的示意图。
符号说明
10~电子装置;
100~数据储存装置;
120~控制器;
140~存储器;
160-16N~区块;
160A、160Z…16NA、16NZ~实体页面;
180~随机存取存储器;
200~主机;
300~显示器;
400~通讯装置;
LB0~逻辑区块;
L00…L30~逻辑页面。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1A是显示根据本发明一实施例所述的电子装置10的示意图。电子装置10包括数据储存装置100、主机200、显示器300以及通讯装置400。电子装置10可以为手机、平板电脑、笔记型电脑、游戏装置、电子书或是PDA等移动电子装置,或是桌上型电脑、伺服器、售票亭、数位相框、销售点终端机、数位地图等电子装置,或是任何搭载有触控模组(例如触控集成电路)的电子装置。数据储存装置100可包括储存单元可包括随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、快闪存储器(Flash)、硬碟、软碟、磁性存储器、光学碟片(Compact Disc,CD)、数位多功能影音光碟(Digital VideoDisk,DVD)等。数据储存装置100的详细组成与功能将于图1B描述。
此外,电子装置10的主机200系耦接数据储存装置200,用以存取数据储存装置200的数据。主机200可包含数位讯号处理器(digital signal processing,DSP)、微处理器(microcontroller,MCU)、一单一中央处理单元(central-processing unit,CPU)或者是关连于平行运算环境(parallel processing environment)的多个平行处理单元,用以执行作业系统、模组以及应用程序。显示器300用以显示数据储存装置200的数据。显示器300可为触控显示面板,例如电阻式触控面板、电容式触控面板、光学式触控面板或电磁式触控面板。通讯装置400是支援无线通讯协定以进行与另一电子装置的数据传输。举例而言,无线通讯的协定可包括GSM、GPRS、EDGE、UMTS、W-CDMA、CDMA2000、TD-CDMA、Bluetooth、NFC、WiFi、Wi-Fi Direct、WiMAX、LTE、LTE-A或TD-LTE等。
图1B是显示根据本发明一实施例所述的数据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、快闪存储器140以及随机存取存储器(RAM)180。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。快闪存储器140可以为非挥发性存储器,例如与非门快闪存储器(NAND Flash)。数据储存装置100符合嵌入式快闪存储器模组(eMMC)规范以及通用快闪存储器(UFS)规范。
如图1B所示,控制器120耦接快闪存储器140以及随机存取存储器180。随机存取存储器180用以暂存以及预取控制器120所需的数据,或是用以暂存主机200要写入快闪存储器140的数据,以加快数据储存装置100的存取时间。控制器120藉由控制快闪存储器140以丛集(cluster)为单位执行读取运作的方式来对快闪存储器140执行读取运作。此外,控制器120耦接快闪存储器140以相互传送数据与指令或接收数据与指令。进一步而言,控制器120可包括具有固件码的一微控制器以及只读存储器(ROM),并且微控制器执行固件码以操作或是存取快闪存储器140。
快闪存储器140包括多个区块160~16N。详细而言,区块160~16N中的每一者更包括多个实体页面160A~16NZ。区块160包括实体页面160A~160Z,区块16N包括实体页面16NA~16NZ。控制器120在对快闪存储器140执行写入或储存动作时,是藉由控制快闪存储器140以实体页面为单位来执行写入或程序化的运作。
对于快闪存储器140而言,其实体页面160A~16NZ的每一者皆具有不同的实体地址。换言之,实体页面160A~16NZ的每一者都具有一个实体地址,而实体页面160A~16NZ的每一者的实体地址都是不同的。当数据储存装置100执行一写入运作时,控制器120决定快闪存储器140的一实体地址以写入或储存数据。此外,控制器120则分别对应上述多个实体地址至多个逻辑地址。因此,对于主机200而言,主机200系藉由逻辑地址,来读取或写入数据储存装置100所储存于某个逻辑地址的数据。
控制器120是依据逻辑页面的顺序,将逻辑页面对应为存储器140的实体页面,并且检测存储器140所对应的上述实体页面所储存的数据的状态。在一实施例中,控制器120依据跳跃式线性检索(linear search)或二元检索(binary search),依序检测多个逻辑页面中的每一者是否为使用中逻辑页面。当某一个逻辑页面之中的每一位元都为1时,则控制器120判断该逻辑页面为空白页,表示该逻辑页面没有被写入任何数据;当某一个逻辑页面之中的每一位元并非都为1时,则控制器120判断该逻辑页面为使用中逻辑页面。详细而言,上述逻辑页面之中的每一位元是否都为1,系由硬体所判断。
在另一实施例中,当逻辑页面发生ECC情况时,则控制器120判断该逻辑页面为使用中逻辑页面。举例而言,详细而言,控制器120是检测上述逻辑页面的ECC位元数,以判断逻辑页面所储存的数据是否发生错误。当ECC位元数较低时,则控制器120判断该数据是正确的,ECC修复成功。当ECC位元数较高时,则控制器120判断该数据发生错误,表示ECC修复失败。值得注意的是,无论上述ECC位元数是高还是低,无论ECC是否修复成功,控制器120都会判断该逻辑页面为使用中逻辑页面。
控制器120可藉由上述方法,判断一逻辑页面是否为使用中逻辑页面。然而,控制器120所判定的使用中逻辑页面可能并非真正有写入数据的使用中逻辑页面,而是因为不正常断电而误判为使用中逻辑页面。因此,需要一种有效检测页面的数据储存装置与数据储存方法,确保控制器120所判断的使用中的页面是真正有写入数据的使用中页面。
图2是显示根据本发明一实施例所述的数据储存方法的流程图。在步骤S200中,控制器120对多个逻辑页面进行跳跃式线性检索(linear search)。首先,控制器120依据一预设值N检索上述逻辑页面中的第N个逻辑页面。要注意的是,N为大于1的正整数。在步骤S202,控制器120判断第N个逻辑页面是否为使用中逻辑页面。如果第N个逻辑页面不是使用中逻辑页面,则执行步骤S208;如果第N个逻辑页面是使用中逻辑页面,则执行步骤S204,控制器120依序递减该预设值N以继续检索这些逻辑页面。
然后,在步骤S206,控制器120是否检测出一非使用中逻辑页面。如果没有检测出非使用中逻辑页面,则回到步骤S204。如果检测出非使用中逻辑页面,则执行步骤S208。在步骤S208,控制器120检测该非使用中逻辑页面的上一个逻辑页面是否为使用中逻辑页面。如果该非使用中逻辑页面的上一个逻辑页面为使用中逻辑页面,则执行步骤S210,控制器120判断该上一个逻辑页面为最后一个使用中逻辑页面。如果该非使用中逻辑页面的上一个逻辑页面不是使用中逻辑页面,则执行步骤S212,控制器120继续检视该上一个逻辑页面的上一个逻辑页面,直到检测出该最后一个使用中逻辑页面为止。
图3是显示根据本发明另一实施例所述的数据储存方法的流程图。在步骤S300中,控制器120对多个逻辑页面进行跳跃式线性检索,依据一预设值N检索上述逻辑页面中的第N个逻辑页面。在步骤S302,控制器120判断第N个逻辑页面是否为使用中逻辑页面。如果第N个逻辑页面不是使用中逻辑页面,则执行步骤S308;如果第N个逻辑页面是使用中逻辑页面,则执行步骤S304,控制器120依序递减该预设值N以继续检索这些逻辑页面。在步骤S306,控制器120是否检测出一非使用中逻辑页面。如果没有检测出非使用中逻辑页面,则回到步骤S304。如果检测出非使用中逻辑页面,则执行步骤S308。在步骤S308,控制器120对该非使用中逻辑页面之上的多个逻辑页面进行二元检索(binary search),以检测出最后一个使用中逻辑页面。
图4是显示根据本发明一实施例所述的逻辑页面的示意图,主要对应图2所示的数据储存方法。在图4的实施例中,逻辑区块LB0包括31个逻辑页面L00~L30。逻辑页面L00~L23为使用中逻辑页面,逻辑页面L24~L30不是使用中逻辑页面。举例而言,逻辑区块LB0对应至图1B的区块160~16N其中的一者或者多者,逻辑页面L00~L31的任一者对应至图1B的一个或是多个实体页面160A~16NZ。在一实施例中,一个逻辑区块包括M个逻辑页面,并且M为大于1的正整数,则N是符合下列的运算式的最小值:
(N×(N+1))/2≥M
在图4的实施例中,M为31,控制器120藉由上述运算式可计算出N为8,而决定出预设值N等于8。然后,控制器120依据预设值N,对逻辑页面L00~L30进行跳跃式线性检索,以找出最后一个使用中逻辑页面。首先,控制器120检测最前面的逻辑页面L00是否为使用中逻辑页面。由于逻辑页面L00为使用中逻辑页面,因此依据预设值N(N=8)而往下跳跃8个落籍页面至逻辑页面L08,以检测第8个逻辑页面L08是否为使用中逻辑页面。然后,控制器120判断逻辑页面L08为使用中页面时,将预设值N递减1(亦即N-1=7),并且再次往下跳跃7个逻辑页面至逻辑页面L15,以检测逻辑页面L15是否为使用中逻辑页面。如果判断逻辑页面L15为使用中页面时,将预设值N再次递减1(总计递减2次,亦即N-2=6),并且再次往下跳跃6个逻辑页面至逻辑页面L21,直至检测到非使用中逻辑页面为止。
在此实施例中,当控制器120判断逻辑页面L26为非使用中逻辑页面时,则不再递减预设值N,并且控制器120往前检索以找出最后1个使用中逻辑页面。详细而言,控制器120检测逻辑页面L26的上一个逻辑页面L25是否为使用中逻辑页面。如果是,则表示逻辑页面L25为最后一个使用中逻辑页面。如果不是,则继续检测逻辑页面L25的上一个逻辑页面L24是否为使用中逻辑页面,以此类推。如图4所示,当控制器找到非使用中逻辑页面L26时,逐一向上检测其他逻辑页面,而找出逻辑页面L23为最后1个使用中逻辑页面。
一般而言,逻辑页面的数据写入是连续的,如果没有发生损毁的话,使用中逻辑页面也是连续的(例如图4所示的逻辑页面L00~L23)。对于本发明所提供的数据储存方法而言,在透过跳跃式线性检索往下搜寻而找出非使用中逻辑页面之后,才会停止递减预设值而往上逐一检索,以找出最后1个使用中逻辑页面。因为每多往下检索一次,预设值就递减1,使得找出最后1个使用中逻辑页面所需要的检索次数能够维持不变。即使最后1个使用中逻辑页面是位在逻辑区块的底部,因为检索次数是固定的,因此不会消耗过多的检索时间而影响到数据储存装置100的效能。
要注意的是,图4的实施例所述的对31个逻辑页面L00~L30递减预设值以执行跳跃式线性检索作为说明之用,而非用以限制本发明。在其他实施例中,当逻辑区块具有数千或数万个逻辑页面时,控制器120可针对更多个逻辑页面递减预设值并且执行跳跃式线性检索,以有效节省检索时间。
此外,为了防止空页(亦即连续的使用中逻辑页面之中有一非使用中逻辑页面)所造成之误判,在找到图4所示的最后1个使用中逻辑页面L23时,控制器120会再向上多检索1个逻辑页面L22。如图4所示,由于逻辑页面L22也是使用中逻辑页面,因此控制器120可判断逻辑页面L23确实为最后1个使用中逻辑页面,避免造成误判并且提升检索的准确度。
图5是显示根据本发明另一实施例所述的逻辑页面的示意图,主要系对应图3所示的数据储存方法。图5的逻辑区块LB0的配置与图4相同,故此处不再赘述。首先,如图4所述,控制器120逐次递减预设值N以进行跳跃式线性检索,而找到非使用中逻辑页面L23。然后,使用二元检索来向上搜寻逻辑页面L23之前的逻辑页面,以找出最后1个使用中逻辑页面。由于使用中逻辑页面是连续的,并且之前跳跃式线性检索已经检测出逻辑页面L21为使用中页面,因此控制器120可判断出最后1个使用中逻辑页面应位在逻辑页面L22~L25之间。换言之,本发明所述的控制器120是对逻辑页面L22~L25进行二元检索,不需要对逻辑页面L00~L25进行二元检索,以提升检索效率。
以下描述执行二元检索的方法:在检索逻辑页面L26之后,控制器120向上跳跃4个页面以检索逻辑页面L22是否为使用中逻辑页面。由于逻辑页面L22是使用中逻辑页面,因此控制器120向下跳跃2个页面(亦即4个页面的半数)以检索逻辑页面L24。再者,逻辑页面L24不是使用中逻辑页面,因此控制器120向上跳跃1个页面(亦即2个页面的半数)以检索逻辑页面L23。当检测出逻辑页面L23为使用中逻辑页面时,由于上1个逻辑页面L22也是使用中逻辑页面,因此控制器120可判断逻辑页面L23为最后1个使用中逻辑页面。
要注意的是,图5的实施例所述的对4个逻辑页面L22~L25进行二元检索仅作为说明之用,而非用以限制本发明。在其他实施例中,当逻辑区块具有数千或数万个逻辑页面时,控制器120可针对更多个逻辑页面进行二元检索,以有效节省检索时间。
在本说明书以及申请专利范围中的序数,例如“第一”、“第二”、“第三”等等,彼此之间并没有顺序上的先后关系,其仅用于标示区分两个具有相同名字的不同元件。本发明说明书中“耦接”一词泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (12)
1.一种数据储存装置,用以储存多个数据,包括:
一存储器,包括多个区块,其中这些区块的每一者包括多个实体页面;
一控制器,耦接该存储器,将多个逻辑页面对应为该存储器的这些实体页面,并且对这些逻辑页面进行跳跃式线性检索(linear search),其中该控制器依据一预设值N检索这些逻辑页面中的第N个逻辑页面,N为大于1的正整数,并且当该第N个逻辑页面为使用中逻辑页面时,依序递减该预设值N以继续跳跃式线性检索这些逻辑页面,直到检测出一非使用中逻辑页面为止,
其中这些区块的每一个包括M个逻辑页面,M为大于1的正整数,则N符合下列的运算式的最小值:(N×(N+1))/2≥M。
2.如权利要求1所述的数据储存装置,其特征在于,当该控制器检测出该非使用中逻辑页面时,检视该非使用中逻辑页面的上一个逻辑页面是否为使用中逻辑页面,当该上一个逻辑页面为使用中页面时,则该控制器判断该上一个逻辑页面为最后一个使用中逻辑页面。
3.如权利要求2所述的数据储存装置,其特征在于,当该上一个逻辑页面不是使用中页面时,该控制器继续检视该上一个逻辑页面的上一个逻辑页面,直到检测出该最后一个使用中逻辑页面为止。
4.如权利要求1所述的数据储存装置,其特征在于,当该控制器检测出该非使用中逻辑页面时,对该非使用中逻辑页面之上的多个逻辑页面进行二元检索(binary search),以检测出最后一个使用中逻辑页面。
5.如权利要求1所述的数据储存装置,其特征在于,当这些逻辑页面的任一者的每一位元并非都为1时,则该控制器判断该逻辑页面为使用中逻辑页面。
6.如权利要求1所述的数据储存装置,其特征在于,当这些逻辑页面的任一者发生ECC情况时,则该控制器判断该逻辑页面为使用中逻辑页面。
7.一种数据储存方法,应用于储存多个数据的一数据储存装置,该数据储存装置包括一存储器以及一控制器,该控制器系将多个逻辑页面对应为该存储器的多个实体页面,该数据储存方法包括:
对这些逻辑页面进行跳跃式线性检索(linear search),其中该控制器依据一预设值N检索这些逻辑页面中的第N个逻辑页面,N为大于1的正整数;以及
当该第N个逻辑页面为使用中逻辑页面时,依序递减该预设值N以继续跳跃式线性检索这些逻辑页面,直到检测出一非使用中逻辑页面为止,
其中,这些区块的每一个包括M个逻辑页面,M为大于1的正整数,则N符合下列的运算式的最小值:(N×(N+1))/2≥M。
8.如权利要求7所述的数据储存方法,其特征在于,还包括:
当检测出该非使用中逻辑页面时,检视该非使用中逻辑页面的上一个逻辑页面是否为使用中逻辑页面;
当该上一个逻辑页面为使用中页面时,判断该上一个逻辑页面为最后一个使用中逻辑页面。
9.如权利要求8所述的数据储存方法,其特征在于,当该上一个逻辑页面不是使用中页面时,继续检视该上一个逻辑页面的上一个逻辑页面,直到检测出该最后一个使用中逻辑页面为止。
10.如权利要求7所述的数据储存方法,其特征在于,还包括:
当检测出该非使用中逻辑页面时,对该非使用中逻辑页面之上的多个逻辑页面进行二元检索(binary search),以检测出最后一个使用中逻辑页面。
11.如权利要求7所述的数据储存方法,其特征在于,当这些逻辑页面的任一者的每一位元并非都为1时,则该控制器判断该逻辑页面为使用中逻辑页面。
12.如权利要求7所述的数据储存方法,其特征在于,当这些逻辑页面的任一者发生ECC情况时,则该控制器判断该逻辑页面为使用中逻辑页面。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106117576 | 2017-05-26 | ||
TW106117576A TWI633437B (zh) | 2017-05-26 | 2017-05-26 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108932178A CN108932178A (zh) | 2018-12-04 |
CN108932178B true CN108932178B (zh) | 2021-11-30 |
Family
ID=63959793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810007374.4A Active CN108932178B (zh) | 2017-05-26 | 2018-01-04 | 检测使用中逻辑页面的数据储存装置与数据储存方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10783069B2 (zh) |
CN (1) | CN108932178B (zh) |
TW (1) | TWI633437B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11231883B1 (en) | 2020-07-02 | 2022-01-25 | Western Digital Technologies, Inc. | Detecting last page written in multi-plane non-volatile memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361991B1 (en) * | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
CN106598877A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065304B2 (en) * | 2008-06-11 | 2011-11-22 | International Business Machines Corporation | Using asymmetric memory |
US8417914B2 (en) * | 2011-01-06 | 2013-04-09 | Micron Technology, Inc. | Memory address translation |
TWI526828B (zh) * | 2011-02-15 | 2016-03-21 | 群聯電子股份有限公司 | 資料存取方法及使用此方法的記憶體控制器與儲存裝置 |
CN102789427B (zh) * | 2012-07-17 | 2015-11-25 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
US9454474B2 (en) * | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
US9542278B2 (en) * | 2013-12-26 | 2017-01-10 | Silicon Motion, Inc. | Data storage device and flash memory control method |
TWI604307B (zh) * | 2014-10-31 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
TWI601011B (zh) * | 2016-07-05 | 2017-10-01 | 慧榮科技股份有限公司 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
CN107102552B (zh) * | 2017-06-12 | 2018-03-09 | 合肥工业大学 | 基于混合集合蛙跳与变邻域算法的平行机调度方法及系统 |
-
2017
- 2017-05-26 TW TW106117576A patent/TWI633437B/zh active
- 2017-12-22 US US15/853,453 patent/US10783069B2/en active Active
-
2018
- 2018-01-04 CN CN201810007374.4A patent/CN108932178B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361991B1 (en) * | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
CN106598877A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108932178A (zh) | 2018-12-04 |
TW201901445A (zh) | 2019-01-01 |
TWI633437B (zh) | 2018-08-21 |
US10783069B2 (en) | 2020-09-22 |
US20180341578A1 (en) | 2018-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10191843B2 (en) | Unaligned data coalescing | |
CN106372004B (zh) | 用于ssd控制器的可编程协议独立bar存储器 | |
CN106257594B (zh) | 读取干扰收回策略 | |
EP2367110A1 (en) | Emerging bad block detection | |
US11886710B2 (en) | Memory operations on data | |
KR102189440B1 (ko) | 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법 | |
CN109426581B (zh) | 用以检测数据储存装置的数据储存方法及其数据储存装置 | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
CN111406370A (zh) | 基于解码成功趋势的可调整读取重试顺序 | |
CN113625973B (zh) | 数据写入方法、装置、电子设备及计算机可读存储介质 | |
US8301981B2 (en) | Data access method for flash memory and storage system and controller thereof | |
US10613932B2 (en) | Method for controlling operations of memory device, associated memory device and controller thereof, and associated electronic device | |
CN111562882A (zh) | 一种数据写入方法、智能终端及存储介质 | |
CN108932178B (zh) | 检测使用中逻辑页面的数据储存装置与数据储存方法 | |
US10528289B2 (en) | Data storage method for optimizing data storage device and its data storage device | |
KR100575657B1 (ko) | 낸드 플래시 읽기 방법 | |
CN107577554B (zh) | 检测使用中逻辑页面的数据储存装置与数据储存方法 | |
CN106991055B (zh) | 数据搜索方法、存储器存储装置及存储器控制电路单元 | |
CN112306382A (zh) | 快闪存储器控制器、储存装置及其读取方法 | |
CN112099731A (zh) | 数据储存装置与数据处理方法 | |
US20110247019A1 (en) | System and method for controlling optical disk driver of computer | |
US10489335B1 (en) | Apparatus and method and computer program product for accessing a memory card | |
CN114327265B (zh) | 读取干扰检查方法、存储器存储装置及控制电路单元 | |
CN111596859B (zh) | 数据储存装置与数据处理方法 | |
CN117519592A (zh) | 基于ssd的全盘重建优化方法、装置、设备及存储介质 |
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 |