CN110489052B - 数据储存装置 - Google Patents

数据储存装置 Download PDF

Info

Publication number
CN110489052B
CN110489052B CN201810713691.8A CN201810713691A CN110489052B CN 110489052 B CN110489052 B CN 110489052B CN 201810713691 A CN201810713691 A CN 201810713691A CN 110489052 B CN110489052 B CN 110489052B
Authority
CN
China
Prior art keywords
block
pages
system information
page
programming
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
CN201810713691.8A
Other languages
English (en)
Other versions
CN110489052A (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 TW107116350A external-priority patent/TWI687811B/zh
Priority claimed from TW107120420A external-priority patent/TWI667571B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110489052A publication Critical patent/CN110489052A/zh
Application granted granted Critical
Publication of CN110489052B publication Critical patent/CN110489052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0614Improving the reliability of storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明揭露一种数据储存装置,包括一记忆体以及一记忆体控制器。记忆体包括一系统区块,系统区块包括多个大页面。记忆体控制器用以执行一系统信息编程程序,包括:判断一系统信息是否为一区块连结表;回应于系统信息为区块连结表的判断,编程部份的系统信息至系统区块的一头部大页面,并编程剩余的系统信息至该系统区块的该些大页面的至少其中之一,并编程一记录表至系统区块的一尾部大页面;以及回应于系统信息非该区块连结表的判断,编程系统信息至系统区块的该些大页面的至少其中之一,并编程记录表至系统区块的尾部大页面。

Description

数据储存装置
技术领域
本发明是有关于一种数据储存装置、系统信息编程方法及系统信息重建方法。
背景技术
随着记忆体制造工艺的进步,记忆体的单位储存容量越来越大。在近年来记忆体内部结构的发展趋势中,每个区块的储存容量不断提高,而区块的总数则是不断减少。换言之,现今的记忆体是朝向“少区块数量,大区块容量”的方向在演变。
一般而言,一个出厂的数据储存装置的记忆体中会储存许多装置信息,例如映射信息、链结信息及逻辑对实体映射表等。在现今的记忆体的区块规划下,这些装置信息势必要采用不同的管理、更新与重建方式,才能更妥善的维护这些装置信息,以确保其可靠性。
发明内容
本发明的目的为提供一种数据储存装置、系统信息编程方法及系统信息重建方法。
本发明的一方面是揭露一种数据储存装置,包括一记忆体以及一记忆体控制器。记忆体包括一系统区块,系统区块包括多个大页面。记忆体控制器耦接至记忆体。记忆体控制器用以执行一系统信息编程程序。系统信息编程程序包括:判断一系统信息是否为一区块连结表;回应于系统信息为区块连结表的判断,编程部份的系统信息至系统区块的一头部大页面,并编程剩余的系统信息至该系统区块的该些大页面的至少其中之一,并编程一记录表至系统区块的一尾部大页面;以及回应于系统信息非该区块连结表的判断,编程系统信息至系统区块的该些大页面的至少其中之一,并编程记录表至系统区块的尾部大页面。
本发明的另一方面是揭露一种系统信息编程方法,适用于一数据储存装置。数据储存装置包括一记忆体及一记忆体控制器。当系统信息编程方法由记忆体控制器执行时,致使记忆体控制器执行下列操作:判断一系统信息是否为一区块连结表;回应于系统信息为区块连结表的判断,编程部份的系统信息至记忆体的一系统区块的多个大页面中的一头部大页面,并编程剩余的系统信息至该系统区块的该些大页面的至少其中之一,并编程一记录表至系统区块的一尾部大页面;以及回应于系统信息非区块连结表的判断,编程系统信息至系统区块的该些大页面的至少其中之一,并编程记录表至系统区块的尾部大页面。
本发明的又一方面是揭露一种系统信息重建方法,适用于一数据储存装置。数据储存装置包括一记忆体及一记忆体控制器。当系统信息编程方法由记忆体控制器执行时,致使记忆体控制器执行下列操作:反向取得该记忆体的一系统区块的一有效大页面,并记录对该系统区块的多个大页面进行扫描的一扫描页数;判断有效大页面是否为一头部大页面且扫描页数不大于储存一区块连结表所需的大页面总数;回应于有效大页面为头部大页面且该扫描页数不大于储存区块连结表所需的大页面总数为是的判断,将一连结旗标的值由一第一值变更为一第二值;回应于有效大页面为头部大页面且扫描页数不大于储存区块连结表所需的大页面总数为否的判断,判断扫描页数是否大于储存区块连结表所需的大页面总数且连结旗标为该第一值;以及回应于扫描页数大于储存区块连结表所需的大页面总数且连结旗标为第一值为是的判断,重建区块连结表。
依据本发明提供的数据储存装置、系统信息编程方法及系统信息重建方法,能够更加精确地判断出是否要重建区块连结表及映射信息表。由于映射信息表重建需要耗费大量的时间与系统资源,基于本发明可减少错误判定重建映射信息表的情况,而能够提升数据储存装置的整体效能。
为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附图式详细说明如下:
附图说明
图1绘示依据本发明一实施例的数据储存装置的示意图。
图2A绘示依据本发明另一实施例的数据储存装置的方块图。
图2B绘示依据本发明一实施例的大页面的示意图。
图3A绘示依据本发明一实施例的系统信息编程方法的流程图。
图3B绘示依据本发明一实施例执行系统信息编程的示意图。
图3C绘示依据本发明一实施例的系统信息重建方法的流程图。
图3D绘示依据本发明一实施例执行系统信息重建的一例。
图3E绘示依据本发明一实施例执行系统信息重建的另一例。
其中,附图标记:
100:数据储存装置
102:记忆体
104:记忆体控制器
PL1~PL4:平面
B11~B4n:区块
P1~Pm:页面
SB:系统区块
BP1~BPm:大页面
S201~S328:步骤
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
请参照图1,图1绘示依据本发明一实施例的数据储存装置的方块图。数据储存装置100主要包括非挥发性记忆体102以及记忆体控制器104,数据储存装置100更可包括挥发性记忆体以暂存使用者数据或记忆体控制器104运作所需的固件或逻辑对实体(Logicalto physical,L2P)映射表(Mapping Table)。记忆体控制器104耦接至非挥发性记忆体102,并可用于执行本揭露实施例所描述的系统信息的编程方法。
数据储存装置100更可耦接至一主机(未绘示)。主机可输出数据存取指令(读出或写入)至数据储存装置100以存取数据储存装置100的使用者数据(读出或写入使用者数据)。举例来说,数据储存装置100中的记忆体控制器104可回应来自主机的数据读取指令,对非挥发性记忆体102中的一或多个特定实体地址进行读取操作。主机可以为个人电脑、手机、平板电脑、车载系统、导航装置等。
非挥发性记忆体102可例如是反及闸快闪记忆体(NAND flash)。记忆体控制器104可实现成一或多个控制器晶片,其可与非挥发性记忆体102相互传送/接收数据与指令,以实现对非挥发性记忆体102的操作,例如读取(read)、编程(program)、抹除(erase)等操作。
非挥发性记忆体102较佳具有一或多个逻辑单元编号(Logical Unit Number,LUN),可由一晶片致能(Chip Enable,CE)信号而选取/致能。每一逻辑单元编号包括例如4个平面(Plane),即平面PL1~PL4,每一平面PL1~PL4包括例如2048个区块(Block),即区块Bk1~Bkn,其中k=1,2,3,4,n=2048。每一区块Bk1~Bkn包括例如1024个页面(Page),即页面P1~Pm,其中m=1024。每一页面可由一个字线(Word line)所控制,而一个字线可控制一个以上页面。一页面例如具有16768B大小的数据储存空间,并可划分成16KB大小的数据区以及384B大小的备用区,数据区可储存数据(使用者数据或系统信息),备用区可储存数据的元数据(Metadata)。另外,字线上的记忆胞可以是四阶式记忆胞(Quad Level Cell,QLC)、三阶式记忆胞(TripleLevel Cell,TLC)、双阶式记忆胞(Multiple Level Cell,MLC)或是单阶式记忆胞(Single Level Cell,SLC)。需要注意的是,本实施例系为示例性的,晶片、平面、区块、页面、字线及记忆胞的数量皆可依实际需要进行设计与配置。
假设逻辑单元编号包括有四个平面,为了使数据储存装置100的效能最大化,在进行数据写入时,记忆体控制器104通常会以交错式编程(Interleaved programming)的方式将数据写入非挥发性记忆体102中。当执行交错式编程时,理论上可节省数据编程至所有平面的区块(的页面)的时间,例如,将4笔数据交错式编程至平面PL1的区块B11、平面PL2的区块B21、平面PL3的区块B31及平面PL4的区块B41时,可节省3笔数据的编程时间,如此一来,交错式编程可提供较高的数据写入速度。
数据储存装置100的系统信息例如是系统规格、操作参数、映射信息表、区块连结表(Linking Table)、坏块信息、块属性表(例如用以记录抺除次数或有效页面数)、除错信息表(例如SMART信息表)等,其中,映射信息表又称为高阶映射表,其记录逻辑对实体(Logical to Physical,L2P)映射表的每一子逻辑对实体映射表的地址信息。不同于使用者数据,系统信息的预设(或最大值)大小可能不相同,例如:区块连结表的大小为380KB,映射信息表的大小为90KB,坏块信息的大小为4KB。在上述系统信息中,区块连结表(或称连结表)记录区块使用的先后顺序,且区块连结表通常会在任一个区块写入区块关闭信息(Endof Block,EOB)时进行更新。为了提高数据保存能力,记忆体控制器104较佳以非预设模式或SLC模式进行系统信息的编程。假如以SLC模式进行系统信息的编程时,一个字线只控制一个页面。另外,为了方便管理不同类型的系统信息,记忆体控制器104通常使用一个区块来记录一种类型的系统信息,假如有十种类型的系统信息,即记忆体控制器104通常使用十个区块来分别记录系统信息。
请参照图2A,图2A绘示依据本发明另一实施例的数据储存装置的方块图。数据储存装置200的非挥发性记忆体可包括四个逻辑单元编号102A~102D以及记忆体控制器104,每一逻辑单元编号102A~102D具有与非挥发性记忆体102相同或类似的结构,每一逻辑单元编号102A~102D通过独立的通道(Channel)而连结至记忆体控制器104,记忆体控制器104可以相同的晶片致能信号或不同的晶片致能信号致能每一逻辑单元编号102A~102D,并进行数据的存取。
在四通道的架构下,记忆体控制器104可以平行地存取逻辑单元编号102A~102D,数据储存装置200的内部数据传输量(Data Throughput)为数据储存装置100的四倍。在四通道的架构下,记忆体控制器104可以从每一逻辑单元编号的每一平面中分别选取一个区块以组成一个超级区块,被选取的区块又可称为成员区块(member block)。例如,记忆体控制器104选取每一逻辑单元编号102A~102D的每一平面PL1~PL4的区块B11~B41组成一个超级区块SB1,以此类推。此时,记忆体控制器104使用一个超级区块来记录一种类型的系统信息,假如有十种类型的系统信息,即记忆体控制器104通常使用十个超级区块来分别记录系统信息。相较于单一区块,由于超级区块的存取具有较高的效能。因此,在下述的段落中将以超级区块为例进行说明,但不以此为限。
随着非挥发性记忆体102的技术演进,非挥发性记忆体102的区块的数量可能不会增加,但每个区块中的页面数量却不断地往上增长,以增加非挥发性记忆体102的数据储存量。如果记忆体控制器104仍使用十个超级区块来记录系统信息时,系统信息将占用许多非挥发性记忆体102的数据储存空间。
为了降低系统信息所占用的数据储存量,本发明将不同类型的系统信息储存至同一超级区块,例如超级区块SB1。为了进一步降低系统信息所占用的数据储存量,可依据平面数量参数将超级区块SB1区分成多个小区块,假设平面数量参数为2,则超级区块SB1中位于逻辑单元编号102A的平面PL1~PL2的区块B11~B21设为第一个小区块,位于逻辑单元编号102A的平面PL3~PL4的区块B31~B41设为第二个小区块,位于逻辑单元编号102D的平面PL3~PL4的区块B31~B41设为第八个小区块。接着,依序将所有小区块中位于不同平面的页面组成大页面。如此一来,超级区块SB1会包括8192个大页面,即大页面BP1~BP8192,如图2B所示。假设一个平面的页面的数据区的大小为16KB,则一个大页面的数据区的大小为32KB。以大页面作为系统信息的储存单元,不但可加速数据储存的效率,亦可降低数据储存空间的占用。
由于不同类型的系统信息皆储存至超级区块SB1中,当系统信息编程至超级区块SB1的过程中,如果遇到意外中断(例如电力中断事件),将可能使部份大页面所储存的数据遗失,进而造成系统信息的不完整,导致系统信息有重建的需要。然而,重建系统信息中的映射信息表需花费大量的时间,重建区块连结表也是。因此,本发明揭露一种系统信息重建方法,配合本发明系统信息编程方法,可于发生意外中断后,针对系统信息的完整性进行判断,以决定是否需要重建映射信息表或区块连结表。如此一来,可以更有效率地重建系统信息,避免在不需重建系统信息的情况下,却进行系统信息重建,减少不必要的时间消耗。
请参照图3A,图3A绘示依据本发明一实施例的系统信息编程方法的流程图。步骤S302中,记忆体控制器104选取一个区块作为系统区块以储存系统信息。例如:记忆体控制器104选取超级区块SB1作为系统区块以储存系统信息。
步骤S304中,记忆体控制器104判断系统信息是否为连结表,其中,记忆体控制器104可依据系统信息的系统信息代码、长度或其他旗标而判断系统信息是否为区块连结表,如果是则执行步骤S306,否则执行步骤S310。
步骤S306中,记忆体控制器104编程部份系统信息至系统区块的头部大页面。假设区块连结表的大小为380KB,一个大页面的大小为32KB,则区块连结表需编程至十二个大页面(连结页面值等于12)。记忆体控制器104将这十二个大页面中的第一个大页面作为头部大页面,第十二个大页面作为尾部大页面。记忆体控制器104仅将部份区块连结表编程至头部大页面,如图3B所示,记忆体控制器104仅编程区块连结表#A的区块连结表#A0至超级区块SB1的大页面BP1(头部大页面)。另外,记忆体控制器104于执行数据编程之后,较佳更读取大页面BP1的内容以确认区块连结表#A0的确已编程至大页面BP1。
步骤S308中,记忆体控制器104编程剩余系统信息至系统区块的至少一大页面并编程记录表至系统区块的尾部大页面。在四通道的架构下,记忆体控制器104可平行地编程区块连结表#A的剩余区块连结表至系统区块的多个大页面,例如,先平行地编程区块连结表#A1~A7至大页面BP2~BP8,接着,再平行地编程区块连结表#A8~A11至大页面BP9~BP12以完成区块连结表#A的储存。另外,记忆体控制器104同时编程区块连结表#A11以及记录表至大页面BP12(尾部大页面),其中,区块连结表#A11较佳编程至大页面BP12的数据区,记录表较佳编程至大页面BP12的备用区。
记录表较佳记录系统信息的系统信息代码以及储存地址。例如,系统信息有五种类型,系统信息代码分别为A~E,当区块连结表储存至超级区块的大页面BP1~BP12时,区块连结表的储存地址由预设值“FF”更新为大页面BP1,如下表所示:
系统信息的类型 系统信息代码 储存地址 大页面总数
系统规格 A FF 1
操作参数 B FF 1
映射信息表 C FF 3
区块连结表 D BP1 12
坏块信息 E FF 1
储存至记录表更可记录不同类型的系统信息所占用的大页面总数。
步骤S310中,记忆体控制器104编程系统信息至系统区块的至少一大页面以及编程记录表至系统区块的尾部大页面。假设系统信息为映射信息表#A,映射信息表#A的大小为90KB,一个大页面的大小为32KB,则记忆体控制器104将映射信息表#A0~A2编程至系统区块的三个大页面,即大页面BP13~BP15,并将更新后的记录表编程至大页面BP15,更新后的记录表如下所示:
系统信息的类型 系统信息代码 储存地址 大页面总数
系统规格 A FF 1
操作参数 B FF 1
映射信息表 C BP13 3
区块连结表 D BP1 12
坏块信息 E FF 1
假如区块连结表有更新时,则记忆体控制器104再度执行步骤S304,将区块连结表#B0编程至头部大页面,即大页面BP16,接着执行步骤S306,编程区块连结表#B1~B11至大页面BP17~BP27并编程记录表至大页面BP27。
假设记忆体控制器104于编程区块连结表#B1~B11至大页面BP17~BP27的过程中发生了电力中断事件,导致区块连结表#B1~B2并未成功地编程大页面BP17~BP18,区块连结表#B3~B11尚未开始编程程序。电力中断事件之后,记忆体控制器104执行本发明系统信息重建方法,如图3C所示,以重建系统信息。
在步骤S312中,记忆体控制器104反向取得系统区块的有效大页面并记录大页面的扫描页数。记忆体控制器104从系统区块的最后一个大页面,朝着大页面BP1,读取每个大页面的内容。如果大页面未储存数据,例如大页面BP19,则大页面的内容与预设值(例如:FFFF,FFFF)相同;如果数据未成功地编程至大页面,例如:大页面BP17~BP18,则大页面的内容通常无法以错误更正码(Error Correction Code,ECC)进行修正,则此大页面为无效大页面(标注为”X”);如果数据成功地编程至大页面,例如:大页面BP16,则大页面的内容可以ECC方式进行修正并读取,则此大页面为有效大页面(标注为”O”)。以图3C为例,有效大页面为大页面BP16。本文所谓“反向”指的是相反于编程大页面时的顺序的方向。例如,编程大页面时是从BP1开始向BP8192的顺序进行编程,则扫描时即从BP8192开始向BP1的顺序进行扫描(即反向)。也就是说,在本实施例中,记忆体控制器104以一第一顺序对该些大页面进行编程,并以一第二顺序对该些大页面进行扫描,其中第二顺序相反于第一顺序。
在步骤S314中,记忆体控制器104判断有效大页面是否为头部大页面且扫描页数不大于储存连结表所需的大页面总数。此时大页面BP16恰好为储存区块连结表#B的头部大页面,扫描页数(等于3)不大于区块连结表的大页面总数(等于12),因此,判断结果为真,接着执行步骤S316;如果判断结果为否,接着执行步骤S318。
在步骤S316中,记忆体控制器104设定连结旗标,即记忆体控制器104将连结旗标的值由一第一值(例如「0」)变更为一第二值(例如「1」),接着,重新执行步骤S312。在步骤S312中,记忆体控制器104取得下一个有效大页面,即大页面BP15,此为储存映射信息表#A的尾部大页面,且扫描页数的值增加为4。由于大页面BP15并非头部大页面,因此步骤S314的判断结果为否,故执行步骤S318。
在步骤S318中,记忆体控制器104判断扫描页数是否大于储存区块连结表所需的大页面总数且连结旗标尚未设定(即仍维持第一值),此时,扫描页数(等于4)不大于区块连结表的大页面总数(等于12),因此,判断结果为否,故执行步骤S320。
在步骤S320中,记忆体控制器104判断有效大页面是否储存记录表,此时大页面BP15为储存映射信息表#A的尾部大页面,因此,储存有记录表,因此,判断结果为真,故执行步骤S322。
在步骤S322中,记忆体控制器104判断扫描页数是否大于储存映射信息表所需的大页面总数且连结旗标尚未设定,如果判断结果为真,则执行步骤S328,如果判断结果为否,则执行步骤S324。此时,扫描页数(等于4)大于映射信息表的大页面总数(等于3),这表示无效大页面有可能储存映射信息表,然而,连结旗标已被设定,因此无效大页面不可能储存映射信息表,反而是储存区块连结表#B的其他内容。由于电力中断事件而导致区块连结表的更新(区块连结表#B)尚未完成,因此,区块连结表#A仍有最新的区块连结表,因此,无需重建映射信息表或区块连结表。
在步骤S324中,记忆体控制器104依据步骤S320所取得的记录表取得系统信息。记忆体控制器104读取记录表即可取得区块连结表#A的储存地址,进而取得最新的区块连结表(区块连结表#A),当然,记忆体控制器104读取记录表亦可取得其他类型的系统信息的储存地址,进而取得其他类型的系统信息,达到本发明的目的。
在另一种情况下,假设步骤S312中取得的有效大页面为大页面BP12,大页面BP13~BP15皆为无效大页面,扫描页数为4,如图3D所示。此时步骤S314的判断结果为否,所以不设定连结旗标。接着,步骤S318的判断结果为否,步骤S320的判断结果为是,所以记忆体控制器104从大页面BP12取得记录表。由于扫描页数(等于4)大于映射信息表的大页面总数(等于3)且连结旗标并未设定,所以步骤S322的判断结果为真,表示大页面BP13~BP18可能储存映射信息表,因此执行步骤S328,记忆体控制器104重建映射信息表(映射信息表#A)。
在另一种情况下,大页面BP21~BP27皆为无效大页面,大页面BP20为有效大页面,如图3E所示。由于大页面BP20并未储存记录表,因此,记忆体控制器104反向取得下一个有效大页面,即大页面BP19,以此类推。当记忆体控制器104取得有效大页面BP15时,扫描页数已增加至13且已大于区块连结表的大页面总数(等于12)且连结旗标并未设定,因此执行步骤S326,记忆体控制器104重建区块连结表#B。接着,记忆体控制器104判断有效大页面BP13为头部大页面,并在有效大页面BP12取得记录表,此时扫描页数已增加至16且已大于映射信息表的大页面总数(等于3)且连结旗标并未设定,因此执行步骤S328,记忆体控制器104重建映射信息表#A。最后,记忆体控制器104再依据记录表取得其他类型的系统信息的储存地址,进而取得其他类型的系统信息。
值得一提的是,重建映射信息表或重建区块连结表可采用本领域中具有通常知识者所熟知的任何手段,本发明并加以限定。
综上所述,虽然本发明已以实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视后附的申请专利范围所界定者为准。

Claims (3)

1.一种数据储存装置,其特征在于,包括:
一记忆体,包括多个逻辑单元编号,各该逻辑单元编号包括多个平面,各该平面包括多个区块,各该区块包括多个页面;以及
一记忆体控制器,耦接至该记忆体,从每一逻辑单元编号的每一平面的该些区块分别选取一个区块以组成一个超级区块,被选取的区块被称为成员区块,用以表示超级区块中所包含的区块,并依据一平面数量参数将该超级区块区分成多个小区块,并依据页面或平面将各该小区块中位于不同平面的该些页面组成多个大页面,以及将一系统信息写入至该些大页面的其中之一,该记忆体控制器用以执行一系统信息编程程序,该系统信息编程程序包括:
记忆体控制器选取超级区块作为系统区块以储存系统信息;
判断该系统信息是否为一区块连结表;
回应于该系统信息为该区块连结表的判断,编程部份的该系统信息至该系统区块的一头部大页面,并编程剩余的该系统信息至该系统区块的该些大页面的至少其中之一,并编程一记录表至该系统区块的一尾部大页面;以及
回应于该系统信息非该区块连结表的判断,编程该系统信息至该系统区块的该些大页面的至少其中之一,并编程该记录表至该系统区块的该尾部大页面;
其中,该记忆体控制器更用以执行一系统信息重建程序,该系统信息重建程序包括:
反向取得该系统区块的一有效大页面,并记录对该些大页面进行扫描的一扫描页数,所述反向指的是相反于编程大页面时的顺序的方向;
判断该有效大页面是否为该头部大页面且该扫描页数不大于储存该区块连结表所需的大页面总数;
回应于该有效大页面为该头部大页面且该扫描页数不大于储存该区块连结表所需的大页面总数为是的判断,将一连结旗标的值由一第一值变更为一第二值;
回应于该有效大页面为该头部大页面且该扫描页数不大于储存该区块连结表所需的大页面总数为否的判断,判断该扫描页数是否大于储存该区块连结表所需的大页面总数且该连结旗标为该第一值;
回应于该扫描页数大于储存该区块连结表所需的大页面总数且该连结旗标为该第一值为是的判断,重建该区块连结表;
回应于该扫描页数不大于储存该区块连结表所需的大页面总数且该连结旗标为该第一值为否的判断,判断该有效大页面是否储存有该记录表;
回应于该有效大页面储存有该记录表为是的判断,判断该扫描页数是否大于储存该映射信息表所需的大页面总数且该连结旗标为该第一值;
回应于该扫描页数大于储存一映射信息表所需的大页面总数且该连结旗标为该第一值为是的判断,重建该映射信息表;以及
回应于该扫描页数大于储存该映射信息表所需的大页面总数且该连结旗标为该第一值为否的判断,依据该记录表取得该系统信息,所述映射信息表为又称为高阶映射表,其记录逻辑对实体映射表的每一子逻辑对实体映射表的地址信息。
2.如权利要求1所述的数据储存装置,其特征在于,该记忆体控制器于编程该系统信息之后,更读取对应的该一或多个大页面的内容以确认是否成功完成编程。
3.如权利要求1所述的数据储存装置,其特征在于,该记忆体控制器依据该系统信息的一系统信息代码、一长度或一旗标判断该系统信息是否为该区块连结表。
CN201810713691.8A 2018-05-14 2018-07-03 数据储存装置 Active CN110489052B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
TW107116350 2018-05-14
TW107116350A TWI687811B (zh) 2018-05-14 2018-05-14 資料儲存裝置及系統資訊的編程方法
TW107120420 2018-06-13
TW107120420A TWI667571B (zh) 2018-06-13 2018-06-13 資料儲存裝置、系統資訊編程方法及系統資訊重建方法

Publications (2)

Publication Number Publication Date
CN110489052A CN110489052A (zh) 2019-11-22
CN110489052B true CN110489052B (zh) 2022-11-25

Family

ID=68464771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810713691.8A Active CN110489052B (zh) 2018-05-14 2018-07-03 数据储存装置

Country Status (2)

Country Link
US (1) US20190347006A1 (zh)
CN (1) CN110489052B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489051A (zh) * 2018-05-14 2019-11-22 慧荣科技股份有限公司 数据储存装置及系统信息的编程方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130749B (zh) * 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI811633B (zh) * 2021-02-09 2023-08-11 新唐科技股份有限公司 電子裝置與其操作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
TWI475385B (zh) * 2012-03-14 2015-03-01 Phison Electronics Corp 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
TWI514140B (zh) * 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
US10102146B2 (en) * 2015-03-26 2018-10-16 SK Hynix Inc. Memory system and operating method for improving rebuild efficiency
US10241931B2 (en) * 2016-07-29 2019-03-26 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device

Also Published As

Publication number Publication date
CN110489052A (zh) 2019-11-22
US20190347006A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
CN110489052B (zh) 数据储存装置
JP5002201B2 (ja) メモリシステム
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
US8250286B2 (en) Block management method, and storage system and controller using the same
US9043536B2 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
US8214578B2 (en) Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same
US8645613B2 (en) Data writing method for flash memory and control circuit and storage system using the same
US8892814B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US20100042774A1 (en) Block management method for flash memory, and storage system and controller using the same
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
US9141530B2 (en) Data writing method, memory controller and memory storage device
US9170893B2 (en) Method and system for selecting region of a nonvolatile memory
US8037236B2 (en) Flash memory writing method and storage system and controller using the same
US8819387B2 (en) Memory storage device, memory controller, and method for identifying valid data
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US11658685B2 (en) Memory with multi-mode ECC engine
US20130304964A1 (en) Data processing method, and memory controller and memory storage device using the same
CN111158579A (zh) 固态硬盘及其数据存取的方法
US20130132640A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
CN114281265B (zh) 一种存储介质失效的处理方法、装置和固态硬盘
US20190347037A1 (en) Data storage apparatus and system information programming method therefor
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN110489050A (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