CN111966281A - 数据储存装置与数据处理方法 - Google Patents

数据储存装置与数据处理方法 Download PDF

Info

Publication number
CN111966281A
CN111966281A CN202010234717.8A CN202010234717A CN111966281A CN 111966281 A CN111966281 A CN 111966281A CN 202010234717 A CN202010234717 A CN 202010234717A CN 111966281 A CN111966281 A CN 111966281A
Authority
CN
China
Prior art keywords
mapping table
mapping
memory controller
group
mapping information
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.)
Granted
Application number
CN202010234717.8A
Other languages
English (en)
Other versions
CN111966281B (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
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN111966281A publication Critical patent/CN111966281A/zh
Application granted granted Critical
Publication of CN111966281B publication Critical patent/CN111966281B/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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • 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/0656Data buffering 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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据储存装置及数据处理方法,包括存储器装置以及存储器控制器。第一映射表格储存于记录写入既定存储器区块的各物理数据页的数据是指向哪个逻辑数据页。于既定存储器区块被写满时,存储器控制器根据第一映射表格编辑第二映射表格或第三映射表格,第二映射表格记录逻辑数据页的映射资讯。存储器控制器还判断当第一映射表格并未记录了既定数量个连续的逻辑数据页的逻辑地址时,根据第一映射表格内容编辑第二映射表格,否则略过第二映射表格的一编辑操作,改为根据第一映射表格内容编辑第三映射表格,用以于第三映射表格的一对应栏位记录既定数量个连续的逻辑数据页之中的一既定逻辑数据页的映射资讯作为一代表性的映射资讯。

Description

数据储存装置与数据处理方法
技术领域
本发明有关于适用于一数据储存装置的一种数据处理方法,可有效加速存储器装置的写入操作。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedMulti Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,本发明提出一种新的数据处理方法,可有效率地处理存储器装置所储存的数据,以提升存储器装置的效能。
发明内容
本发明揭示一种数据储存装置,包括一存储器装置以及一存储器控制器。存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页。存储器控制器耦接存储器装置,用以存取存储器装置,其中存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址。存储器控制器包括一缓冲存储器,第一映射表格储存于缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据是指向哪个逻辑数据页。于既定存储器区块被写满时,存储器控制器根据第一映射表格编辑一第二映射表格或一第三映射表格,其中第二映射表格对应于多个逻辑数据页,用以记录逻辑数据页的映射资讯。存储器控制器还判断第一映射表格是否记录了一既定数量个连续的逻辑数据页的逻辑地址,当第一映射表格并未记录了既定数量个连续的逻辑数据页的逻辑地址时,存储器控制器根据第一映射表格内容编辑第二映射表格,当第一映射表格记录了既定数量个连续的逻辑数据页的逻辑地址时,存储器控制器略过第二映射表格的一编辑操作,改为根据第一映射表格内容编辑第三映射表格,用以于第三映射表格的一对应栏位记录既定数量个连续的逻辑数据页之中的一既定逻辑数据页的映射资讯作为一代表性的映射资讯。第二映射表格包含多个栏位,一栏位用以记录一逻辑数据页的映射资讯,栏位被分为多个群组,第三映射表格用以记录第二映射表格的群组的管理资讯。当存储器控制器根据第一映射表格编辑第三映射表格时,存储器控制器以代表性的映射资讯取代既定数量个连续的逻辑数据页所对应的群组的管理资讯,并且其中既定数量为大于1的正整数。
本发明另揭露一种数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置以及一存储器控制器,存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页,存储器控制器耦接存储器装置,用以存取存储器装置,该方法包括:由存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,其中第一映射表格储存于存储器控制器的一缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据指向哪个逻辑数据页;于既定存储器区块被写满时,由存储器控制器根据第一映射表格编辑一第二映射表格或一第三映射表格,其中第二映射表格对应于多个逻辑数据页,用以记录逻辑数据页的映射资讯。由存储器控制器根据第一映射表格编辑第二映射表格或第三映射表格的步骤还包括:由存储器控制器判断第一映射表格是否记录了一既定数量个连续的逻辑数据页的逻辑地址;当第一映射表格并未记录了既定数量个连续的逻辑数据页的逻辑地址时,由存储器控制器根据第一映射表格内容编辑第二映射表格;以及当第一映射表格记录了既定数量个连续的逻辑数据页的逻辑地址时,由存储器控制器略过第二映射表格的一编辑操作,改为根据第一映射表格内容编辑第三映射表格,用以于第三映射表格的一对应栏位记录既定数量个连续的逻辑数据页之中的一既定逻辑数据页的映射资讯作为一代表性的映射资讯。其中第二映射表格包含多个栏位,一栏位用以记录一逻辑数据页的映射资讯,栏位被分为多个群组,第三映射表格用以记录第二映射表格的群组的管理资讯。当存储器控制器根据第一映射表格编辑第三映射表格时,存储器控制器以代表性的映射资讯取代既定数量个连续的逻辑数据页所对应的群组的管理资讯,并且其中既定数量为大于1的正整数。
附图说明
图1是显示根据本发明的一实施例所述的数据储存装置的示意图。
图2是显示根据本发明的一实施例所述的映射表格范例。
图3是显示根据本发明的一实施例所述的映射表格范例。
图4是显示根据本发明的一实施例所述的数据处理方法的一范例流程图。
图5是显示根据本发明的一实施例所述的映射表格范例。
图6是显示根据本发明的一实施例所述的映射表格范例。
图7是显示根据本发明的一实施例所述的映射表格范例。
图8是显示根据本发明的一实施例所述的映射表格范例。
符号说明
100-数据储存装置;
110-存储器控制器;
112-微处理器;
112M-唯读存储器;
112C-程序码;
114-控制逻辑;
116-缓冲存储器;
118-接口逻辑;
120-存储器装置;
130-主机装置;
132-编码器;
134-解码器;
Table_1、Table_2、Table_3-映射表格。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。应理解下列实施例的目的在于说明本发明的精神而非用以限定本发明的保护范围。此外,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(Flash Memory)模块,以及一存储器控制器110,且存储器控制器110用来存取(Access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一唯读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。唯读存储器112M是用来储存一程序码112C,而微处理器112则用来执行程序码112C以控制对存储器装置120的存取。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从存储器装置120所读出的数据进行解码。
于典型状况下,存储器装置120包含了多个快闪存储器晶片,而每一个快闪存储器晶片包含多个存储器区块(Block),而该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),即,物理数据页,其中该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。
实作上,透过微处理器112执行程序码112C的存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主机装置(Host Device)130沟通。在一实施例中,存储器控制器110透过接口逻辑118并使用一标准通讯协定与主机装置130沟通。举例而言,上述的标准通讯协定包含(但不限于):通用串行总线(Universal Serial Bus,缩写为USB)标准、安全数位(Secure Digital,缩写为SD)接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra High Speed-II,缩写为UHS-II)接口标准、复合式快闪存储器(Compact flash,缩写为CF)接口标准、多媒体卡(Multimedia Card,缩写为MMC)接口标准、嵌入式多媒体卡(Embedded Multimedia Card,缩写为eMMC)接口标准、通用快闪存储器(Universal Flash Storage,缩写为UFS)接口标准、高技术组态(AdvancedTechnology Attachment,缩写为ATA)标准、序列高技术组态(Serial ATA,缩写为SATA)标准、快捷外设互联标准(Peripheral Component Interconnect Express,缩写为PCI-E)标准、并列先进附件(Parallel Advanced Technology Attachment,缩写为PATA)标准。
在一实施例中,缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合通用快闪存储器储存(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。
主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。
根据本发明的一实施例,存储器装置120所包含的多个存储器区块中可单层式储存(Single-Level Cell,SLC)存储器区块、多层式储存(Multiple-Level Cell,MLC)存储器区块以及/或是三层式储存(Triple-Level Cell,TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据。
一般而言,存储器装置120可大体被区分为三个区域,包含系统区域、数据区域以及备用区域。存储器控制器110可自备用区域选择一既定存储器区块作为快取存储器,或称缓存器(buffer),用以接收并暂存数据。待缓存器被写满时,存储器控制器110再将作为缓存器的既定存储器区块更新成数据区域的数据区块。举例而言,若用以接收并暂存数据的缓存器为MLC或TLC存储器区块,待缓存器被写满时,可直接被更新为数据区域的数据区块。若用以接收并暂存数据的缓存器为SLC存储器区块,待一定数量的缓存器被写满时,可透过垃圾回收程序,将多个缓存器存储器区块所储存的数据搬移至MLC或TLC存储器区块(目标存储器区块),并藉此操作将目标存储器区块更新为数据区域的数据区块。
根据本发明的一实施例,存储器控制器110会于缓冲存储器116维护一第一映射表格。于利用既定存储器区块接收数据时,存储器控制器110会对应地于第一映射表格中记录多个物理数据页所对应的逻辑地址。根据本发明的一实施例,第一映射表格为一快闪存储器对主机(Flash to Host,缩写为F2H)映射表格,或称为实体至逻辑(Physical toLogical to,缩写为P2L)映射表格。第一映射表格可包含多个栏位,各栏位用以记录既定存储器区块的各物理数据页的映射资讯,即,写入既定存储器区块的各物理数据页的数据是指向(对应于)哪个逻辑数据页,例如,第一映射表格中可记录对应的逻辑页面的逻辑区块地址(Logical Block Address,缩写为LBA),或是以其他形式记录逻辑数据页的逻辑地址。
根据本发明的一实施例,第一映射表格可以一阵列形式记录逻辑地址,其中第一映射表格的各栏位对应于既定存储器区块的一物理数据页。即,第一映射表格的阵列索引值与既定存储器区块的物理数据页有着一对一的对应关系。举例而言,假设第一映射表格Table_1所使用的起始阵列索引值为0,则第一映射表格的第一个栏位Table_1[0](即,第一映射表格Table_1所储存的第1笔记录)所记录的逻辑地址为既定存储器区块的第1个物理数据页的数据所指向的逻辑数据页,第二个栏位Table_1[1](即,第一映射表格Table_1所储存的第2笔记录)所记录的逻辑地址为既定存储器区块的第2个物理数据页的数据所指向的逻辑数据页,并依此类推。
根据本发明的一实施例,存储器控制器110会依物理数据页编号少至多的顺序将数据写入既定存储器区块,因此也会依阵列索引值少至多的顺序将各物理数据页所对应的逻辑数据页的逻辑地址记录于第一映射表格Table_1的各栏位中。但必须注意的是,本发明并不限于依物理数据页编号少至多的顺序将数据写入既定存储器区块。
根据本发明的一实施例,于既定存储器区块被写满时,第一映射表格Table_1的各栏位的编辑也对应地完成。理论上,第一映射表格Table_1所记录的资讯为最新的快闪存储器对主机映射资讯。于存储器控制器110完成第一映射表格Table_1的编辑时,存储器控制器110会进一步根据第一映射表格Table_1所储存的内容编辑一第二映射表格Table_2,用以将此最新的映射资讯更新至第二映射表格Table_2。
根据本发明的一实施例,第二映射表格Table_2被储存于存储器装置120的系统区域。第二映射表格Table_2为一主机对快闪存储器(Host to Flash,缩写为H2F)映射表格,或称为逻辑至实体(Logical to Physical,缩写为L2P)映射表格,第二映射表格Table_2所记录的多个笔数据是对应于多个逻辑数据页。一般而言,第二映射表格Table_2所包含的栏位数量与主机系统中所包含的逻辑数据页数量相关,其中第二映射表格Table_2的一个栏位对应于主机系统的一个逻辑数据页,用以记录此逻辑数据页的映射资讯。即,此逻辑数据页的数据是指向(实际上被储存于)存储器装置120的哪个存储器区块以及哪个物理数据页。根据本发明的一实施例,所述的主机系统可以是包含主机装置130与数据储存装置100的一系统,亦可为进一步包含耦接至主机装置130的一个或多个周边装置的一系统。
根据本发明的一实施例,第二映射表格Table_2可以一阵列形式记录各逻辑数据页所对应的一存储器区块编号以及一数据页编号,用以记录各逻辑数据页的数据是指向(被储存于)哪个存储器区块的哪个物理数据页。如上述,第二映射表格Table_2的各栏位是对应于多个逻辑数据页之一者。因此,第二映射表格的阵列索引值与逻辑数据页有着一对一的对应关系。举例而言,假设第二映射表格Table_2所使用的起始阵列索引值为0,则第二映射表格的第一个栏位Table_2[0](即,第二映射表格Table_2所储存的第1笔记录)所记录的存储器区块编号以及数据页编号指示出主机系统中第1个逻辑数据页的数据被存放的实体存储器区块及数据页位置,第二映射表格的第二个栏位Table_2[1](即,第二映射表格Table_2所储存的第2笔记录)所记录的存储器区块编号以及数据页编号指示出主机系统中第2个逻辑数据页的数据被存放的实体存储器区块及数据页位置,并依此类推。
根据本发明的一实施例,于需要编辑第二映射表格Table_2时,存储器控制器110可自第一映射表格Table_1的起始阵列索引值开始依序根据第一映射表格Table_1所记录的逻辑地址查找第二映射表格Table_2,并且根据既定存储器区块的一存储器区块编号以及第一映射表格Table_1所对应的阵列索引值更新第二映射表格Table_2所记录的内容。
举例而言,第一映射表格Table_1的第1个栏位Table_1[0]所记录的内容为0,用以表示既定存储器区块的第1个物理数据页的数据是指向的逻辑地址为0的逻辑数据页。存储器控制器110根据此逻辑地址查找第二映射表格Table_2,将包含此逻辑地址的一或多笔记录载入缓冲存储器116中,用以进行内容的编辑或更新。举例而言,存储器控制器110可存取第二映射表格Table_2的第1~1024笔记录并将的载入缓冲存储器116中。接着,存储器控制器110可根据既定存储器区块的一存储器区块编号以及第一映射表格Table_1所对应的阵列索引值更新第二映射表格Table_2所记录的内容。值得注意的是,载入缓冲存储器116中用以进行内容的编辑或更新的第二映射表格Table_2的部分,因实际上为存储器装置120所储存的第二映射表格Table_2的复本,因此于本发明的实施例中,同样被称为第二映射表格Table_2。
此外,值得注意的是,于存储器控制器110需要读取第二映射表格Table_2的其他笔记录(例如,第1025~2048笔记录)前,或者待存储器控制器110判断第二映射表格Table_2已被更新后,可将暂存于缓冲存储器116内的第二映射表格Table_2的内容更新/写回至存储器装置120的系统区域,以及/或再将第二映射表格Table_2的其他笔记录载入缓冲存储器116中。
根据本发明的一实施例,由于第二映射表格Table_2所包含的栏位数量与主机系统中所包含的逻辑数据页数量相关,因此存储器装置120内所储存的第二映射表格Table_2实际上可跨越多个物理数据页。举例而言,假设一个主机数据页(Host Page,简称为HP)或一个逻辑数据页的大小可被设定为4K位元组(Byte),第二映射表格Table_2的每个栏位占据的大小为4位元组,即,第二映射表格Table_2的每个栏位利用4位元组来记录一笔数据,而一个物理数据页大小为16K位元组,则一个物理数据页可用以记录4K个栏位的资讯,即,一个物理数据页可用以记录4K个逻辑数据页(逻辑地址)的映射资讯,相当于4K*4KB=16MB的数据量。因此,以容量为256G位元组的存储器装置120为例,其所需要维护的第二映射表格Table_2大小可为256M位元组,相当于16384(16K)个物理数据页。
由于第二映射表格Table_2实际上可跨越多个物理数据页,根据本发明的一实施例,存储器控制器110可于存储器装置120内建立起一第三映射表格Table_3,用以记录第二映射表格Table_2的管理资讯,以辅助存储器控制器110更有效率地管理第二映射表格Table_2,其中第三映射表格Table_3可被储存于存储器装置120的系统区域。
根据本发明的一实施例,第二映射表格的栏位可被分为多个群组。举例而言,第二映射表格的第1~1024个栏位可被分为第一群组,第1025~2048个栏位可被分为第二群组,并依此类推。举另一例而言,第二映射表格的第1~4096个栏位可被分为第一群组,第4097~8192个栏位可被分为第二群组,并依此类推。根据本发明的一实施例,一群组所包含的栏位数量可依一个物理数据页实际可储存第二映射表格的栏位数量而决定。举例而言,假设如上所述一个物理数据页可用以记录4K个栏位的资讯,则可将每4K个栏位分类为一个群组,例如以上将第1~4096个栏位分为第一群组,将第4097~8192个栏位分为第二群组等等的范例。如此一来,隶属于第二映射表格的不同群组的栏位所记录的映射资讯会被储存于不同物理数据页。
根据本发明的一实施例,第三映射表格Table_3包含多个栏位,第三映射表格Table_3的一栏位对应于第二映射表格Table_2的一群组。根据本发明的一实施例,第三映射表格Table_3可以一阵列形式记录各栏位所对应的管理资讯。举例而言,假设第三映射表格Table_3所使用的起始阵列索引值为0,则第三映射表格的第一个栏位Table_3[0](即,第三映射表格Table_3所储存的第1笔记录)所记录的内容可以为第二映射表格Table_2的第1个群组所对应的管理资讯。同样地,第三映射表格的第二个栏位Table_3[1](即,第三映射表格Table_3所储存的第2笔记录)所记录的内容可以为第二映射表格Table_2的第2个群组所对应的管理资讯,并依此类推。根据本发明的一实施例,第三映射表格Table_3所记录的管理资讯为对应的群组的映射资讯实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页的资讯。例如,各栏位可记录用以储存对应的一群组的映射资讯的一存储器区块编号以及一数据页编号。
根据本发明的一实施例,第三映射表格Table_3实际上亦可跨越多个物理数据页。举例而言,假设如上所述一个物理数据页可用以记录4K个栏位的资讯,且当存储器装置120的容量为256G位元组时,所需要维护的第二映射表格Table_2大小可为256M位元组,相当于16384(16K)个物理数据页,则第三映射表格Table_3的大小为4个物理数据页(16K除以4K)。
根据本发明的一实施例,当存储器控制器110需要查询第二映射表格Table_2所储存的映射资讯时,可先查找第三映射表格Table_3,取得对应的群组的管理资讯,藉此可得知所欲查询的第二映射表格Table_2的特定栏位所隶属的群组的映射资讯实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页。接着,再根据此管理资讯读取存有对应的群组的映射资讯的存储器区块及物理数据页,以取得所需的映射资讯。
图2与图3是分别显示根据本发明的一实施例所述的映射表格范例。于本发明的实施例中,第一映射表格Table_1可用以记录写入既定存储器区块的各物理数据页的数据是指向哪个逻辑数据页,即,各物理数据页的实体至逻辑(P2L)映射资讯。第二映射表格Table_2可用以记录各逻辑数据页是指向哪个物理数据页,即,各逻辑数据页的逻辑至实体(L2P)映射资讯,其中于图中所示的第二映射表格Table_2的各栏位列于左侧的数字可为存储器区块编号,列于右侧的数字可为数据页编号。第三映射表格Table_3可用以记录第二映射表格Table_2的各群组的管理资讯。如图2与图3所示,第三映射表格Table_3的第一个栏位Table_3[0]所记录的存储器区块编号以及数据页编号指示出第二映射表格Table_2的第1个群组的数据被存放的实体存储器区块及数据页位置,第三映射表格Table_3的第二个栏位Table_3[1]所记录的存储器区块编号以及数据页编号指示出第二映射表格Table_2的第2个群组被存放的实体存储器区块及数据页位置,并依此类推。同样地,图中所示的第三映射表格Table_3的各栏位列于左侧的数字可为存储器区块编号,列于右侧的数字可为数据页编号。
如上述,于作为缓存器的既定存储器区块被写满时,存储器控制器110会进一步根据第一映射表格Table_1编辑第二映射表格Table_2,用以将此最新的映射资讯更新至第二映射表格Table_2。此外,当第二映射表格Table_2的任一群组的管理资讯须更新时,存储器控制器110亦会更新第三映射表格Table_3的对应的栏位。
根据本发明的一实施例,为了加速第二映射表格Table_2的编辑操作,存储器控制器110可选择性地暂时略过第二映射表格Table_2的部分栏位的编辑操作,使得第二映射表格Table_2的部分栏位于上述第二映射表格Table_2的编辑操作中不会被存储器控制器110编辑。举例而言,存储器控制器110可于上述根据第一映射表格Table_1所储存的内容编辑/更新第二映射表格Table_2以及一第三映射表格Table_3的操作中,将原应储存于第二映射表格Table_2的内容进行压缩,并且将此压缩过的内容改为储存于第三映射表格Table_3,而不将的储存于第二映射表格Table_2。如此一来,可略过第二映射表格Table_2的编辑操作。根据本发明的一实施例,存储器控制器110可于闲置时或需要时,再将压缩过的内容展开(还原),并将还原的内容更新至(写回)第二映射表格Table_2。如此一来,可有效加速存储器控制器110的写入操作的执行(包含映射表格内容的编辑与更新)。
图4是显示根据本发明的一实施例所述的数据处理方法的一范例流程图。根据本发明的一实施例,当存储器控制器110根据第一映射表格Table_1编辑第二映射表格Table_2或第三映射表格Table_3时,存储器控制器110可先判断第一映射表格Table_1是否记录了一既定数量(M)个连续的逻辑数据页的逻辑地址(步骤S402),并且其中既定数量M为大于1的正整数。
其中,根据本发明的一实施例,存储器控制器110可判断第一映射表格Table_1是否于连续的M个栏位记录了M个连续的逻辑数据页的逻辑地址,用以判断作为缓存器的既定存储器区块是否存有连续写入的数据,并且根据本发明的一实施例,连续的M个栏位的起始或结束的栏位索引值以M的整数倍为较佳。
举例而言,存储器控制器110可检视第一映射表格Table_1所储存的内容,以判断第一映射表格Table_1的连续的M个栏位是否记录了M笔连续的逻辑地址。当第一映射表格Table_1的连续M个栏位所记录的逻辑地址为连续的逻辑地址,则可判断第一映射表格Table_1记录了M笔连续的逻辑地址。举另一例而言,数据储存装置100内部可过配置一硬件装置(图未示),用以检查映射表格内是否记录了一或多个连续的逻辑地址,并可将映射表格内记录的连续的逻辑地址(若有)的起始栏位索引值(例如,阵列索引值)及结束栏位索引值、连续的逻辑地址的的起始地址及结束地址、逻辑地址的连续范围等的资讯传送给存储器控制器110,使得存储器控制器110可根据此资讯判断第一映射表格Table_1是否记录了M笔连续的逻辑地址。
若存储器控制器110判断第一映射表格Table_1并未记录了既定数量(M)个连续的逻辑数据页的逻辑地址,存储器控制器110依序根据第一映射表格Table_1所记录的多个逻辑地址编辑第二映射表格Table_2所对应的栏位(步骤S404),以及响应于第二映射表格Table_2的内容更新编辑第三映射表格Table_3所对应的栏位(S406)。所述的编辑第二映射表格Table_2的操作包含了将既定存储器区块的一存储器区块编号以及第一映射表格Table_1所对应的阵列索引值记录于第二映射表格Table_2所对应的栏位,用以根据第一映射表格Table_1将最新的(最近被更新的)L2P映射资讯更新至第二映射表格Table_2。所述的编辑第三映射表格Table_3的操作包含了将第二映射表格Table_2中被更新的群组的管理资讯(即,该群组的映射资讯实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页的资讯)记录于第三映射表格Table_3所对应的栏位,使得该栏位可指向最新的第二映射表格Table_2所记录的内容。
若存储器控制器110判断第一映射表格Table_1记录了既定数量(M)个连续的逻辑数据页的逻辑地址,则存储器控制器110略过第二映射表格Table_2的编辑操作,改为根据该第一映射表格Table_1内容编辑第三映射表格Table_3(步骤S408),用以于第三映射表格Table_3的一对应栏位记录既定数量(M)个连续的逻辑数据页之中的一既定逻辑数据页的映射资讯作为一代表性的映射资讯。换言之,若存储器控制器110判断第一映射表格Table_1记录了既定数量(M)个连续的逻辑数据页的逻辑地址,则存储器控制器110不于第二映射表格Table_2记录此既定数量(M)个连续的逻辑数据页的映射资讯。
根据本发明的一实施例,代表性的映射资讯即为上述将原应储存于第二映射表格Table_2的内容进行压缩所得的压缩过的内容。更具体的说,根据本发明的一实施例,存储器控制器110可以此代表性的映射资讯代表被略过而未更新至第二映射表格Table_2的M个连续的逻辑数据页的映射资讯。藉由此代表性的映射资讯,存储器控制器110可推导(还原)出此既定数量(M)个连续的逻辑数据页的映射资讯。
根据本发明的一实施例,当存储器控制器110根据第一映射表格Table_1内容编辑第三映射表格Table_3时,存储器控制器110以此代表性的映射资讯取代此既定数量(M)个连续的逻辑数据页所对应的一群组的管理资讯。换言之,对于该群组而言,第三映射表格Table_3的对应的栏位不再储存该群组的管理资讯(即,该群组的映射资讯实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页的资讯),而是改为储存此既定逻辑数据页的映射资讯(即,此既定逻辑数据页实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页)。
根据本发明的一实施例,既定数量M可被设定为第二映射表格Table_2的一个群组所包含的栏位数量,或者可被设定为一个物理数据页可记录的第二映射表格Table_2的栏位数量。由于数据压缩率(1/M)与第二映射表格Table_2的一个群组所包含的栏位数量有着对应的关系,使得储存于第三映射表格Table_3的压缩过的内容足以代表第二映射表格Table_2的一整个群组原应被储存于第二映射表格Table_2的内容。举例而言,既定数量M可被设定为4K或4096。
根据本发明的一实施例,存储器控制器110于将原应储存于第二映射表格Table_2的内容进行压缩时所采用的压缩机制可以是选择此既定数量(M)个连续的逻辑数据页的第一页作为上述既定逻辑数据页。因此,此既定数量(M)个连续的逻辑数据页中的第一个逻辑数据页的映射资讯即为代表此既定数量(M)个连续的逻辑数据页的代表性的映射资讯。值得注意的是,存储器控制器110可采用的压缩机制并不限于此。举例而言,存储器控制器110可选择此既定数量(M)个连续的逻辑数据页中的任一个逻辑数据页作为上述既定逻辑数据页,并以此逻辑数据页的映射资讯作为代表此既定数量(M)个连续的逻辑数据页的代表性的映射资讯。
图5是显示根据本发明的一实施例所述的映射表格范例,用以显示于第三映射表格Table_3的一栏位记录对应的一群组的代表性的映射资讯而非管理资讯的范例。于此范例中,假设存储器控制器110判断第一映射表格Table_1记录了既定数量(M)个连续的逻辑数据页的逻辑地址,则不于第二映射表格Table_2记录此既定数量(M)个连续的逻辑数据页的映射资讯,改为将应储存于第二映射表格Table_2的内容进行压缩,并且将此压缩过的内容储存于第三映射表格Table_3。如图所示,存储器控制器110选择此既定数量(M)个连续的逻辑数据页的第一页作为上述既定逻辑数据页,因此,第一个逻辑数据页的映射资讯(10,0)即为代表此既定数量(M)个连续的逻辑数据页的代表性的映射资讯,并且此映射资讯(10,0)会被储存于第三映射表格Table_3的对应的栏位。举例而言,若目前处理的既定数量(M)个连续的逻辑数据页隶属于第二映射表格Table_2的第一个群组,则此映射资讯(10,0)(即,第二映射表格Table_2的第一个群组的代表性的映射资讯)会被储存于第三映射表格Table_3的第一个栏位Table_3[0]。
图6是显示根据本发明的一实施例所述的另一映射表格范例,用以显示于第三映射表格Table_3的一栏位记录对应的一群组的代表性的映射资讯而非管理资讯的另一范例。于此范例中,由于存储器控制器110判断第一映射表格Table_1记录了既定数量(M)个连续的逻辑数据页的逻辑地址,而此既定数量(M)个连续的逻辑数据页隶属于第二映射表格Table_2的第二个群组,因此第三映射表格Table_3的第二个栏位Table_3[1]所记录的是内容(15,0)为第二映射表格Table_2的第二个群组的代表性的映射资讯,而非第二映射表格Table_2的第二个群组的管理资讯。
根据本发明的一实施例,第三映射表格Table_3的各栏位可包含多个位元。举例而言,假设每个栏位占据的大小为4位元组(Byte),则每个栏位可包含32个位元,用以储存所需的资讯。根据本发明的一实施例,第三映射表格Table_3的至少一位元(例如,一压缩指示位元Comp_Ind)用于指示第二映射表格Table_2所对应的群组的映射资讯是否为被压缩过的。如上所述,于本发明的实施例中,当第二映射表格Table_2的一群组所包含的M个连续的逻辑数据页的L2P映射资讯亦为连续的实体地址(即,第一映射表格Table_1的连续M个栏位记录了M个连续的逻辑数据页的逻辑地址),则第三映射表格Table_3的对应栏位可用以储存该群组压缩过的映射资讯,而非储存该群组的管理资讯。
更具体的说,于本发明的实施例中,若一压缩指示位元Comp_Ind指示出对应的群组(包含此压缩指示位元Comp_Ind的第三映射表格Table_3的一栏位所对应的第二映射表格Table_2的一群组)所对应的映射资讯为被压缩过的时,包含此压缩指示位元Comp_Ind的栏位的其他位元用于记录对应的群组的代表性的映射资讯。另一方面,当压缩指示位元Comp_Ind指示出对应的群组所对应的映射资讯为未被压缩过的时,包含此压缩指示位元Comp_Ind的栏位的其他位元用于记录对应的群组的管理资讯。比较图2、3与图5、6,第三映射表格Table_3中储存对应的群组的管理资讯的栏位与储存对应的群组的代表性的映射资讯的栏位是以不同网底表示,用来区别管理资讯与代表性的映射资讯。
值得注意的是,本发明并不限于仅能使用第三映射表格Table_3的各栏位所包含的位元(例如,上述的压缩指示位元Comp_Ind)指示第二映射表格Table_2所对应的群组的映射资讯是否为被压缩过的。于本发明的另一实施例中,存储器控制器110亦可于第三映射表格Table_3的各物理数据页的备用区域(spare region)记录各栏位的压缩资讯,用以指示第二映射表格Table_2所对应的群组的映射资讯是否为被压缩过的。此外,于本发明的又另一实施例中,存储器控制器110亦可建立一位元表格,此位元表格的栏位数量与第三映射表格Table_3的栏位数量相关,并且位元表格的栏位与第三映射表格Table_3的栏位有着一对一的对应关系。因此,位元表格的各栏位与第二映射表格Table_2的各群组亦有着一对一的对应关系。位元表格的各栏位可包含至少一位元,用以指示第二映射表格Table_2所对应的群组的映射资讯是否为被压缩过的。为简洁说明,以下说明是以压缩指示位元Comp_Ind作为范例。然而,必须注意的是,如上所述,本发明的实作方式并不限于此。
根据本发明的一实施例,当存储器控制器110需响应于一读取指令存取第二映射表格Table_2的一特定栏位时,存储器控制器110可决定此特定栏位是隶属于第二映射表格Table_2的哪个群组。举例而言,存储器控制器110可将此特定栏位的索引值或此特定栏位所对应的逻辑地址除以一个群组可包含的栏位数量,计算出此特定栏位隶属于第二映射表格Table_2的哪个群组。例如,将逻辑地址除以一个群组可包含的栏位数量所得的商即为群组的编号。
于确认特定栏位隶属于第二映射表格Table_2的哪个群组后,存储器控制器110可查找该群组于第三映射表格Table_3中所对应的栏位的压缩指示位元Comp_Ind,以判断欲存取的此特定栏位所隶属的群组所对应的映射资讯是否为被压缩过的。
当存储器控制器110判断欲存取的此特定栏位所隶属的群组所对应的映射资讯为未被压缩过的时,存储器控制器110先存取第三映射表格Table_3中所对应的栏位的其他位元,以得知此特定栏位所隶属的群组的管理资讯(即,该群组的映射资讯实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页)。接着,再根据管理资讯存取储存该群组的映射资讯的存储器区块与物理数据页,并且根据此特定栏位的栏位编号(索引值,或逻辑地址)找到所需的逻辑数据页的映射资讯。
另一方面,当存储器控制器110判断欲存取的此特定栏位所隶属的群组所对应的映射资讯为被压缩过的时,存储器控制器110存取第三映射表格Table_3中所对应的栏位的其他位元,以得知此特定栏位所隶属的群组的代表性的映射资讯。接着,存储器控制器110根据代表性的映射资讯推导出此特定栏位所对应的映射资讯。
更具体的说,假设存储器控制器110需响应于一读取指令读取特定逻辑地址65的数据时,存储器控制器110需存取第二映射表格Table_2的一特定栏位,例如,第66栏(栏位索引值=65,假设所使用的起始阵列索引值为0,起始逻辑地址亦为0),以得知所需的映射资讯。存储器控制器110可先将65除以4096(假设一个群组可包含的栏位数量为4096个),所得的商可用以指示出此特定逻辑地址隶属于第二映射表格Table_2的哪个群组(例如,所得的商0可代表群组的编号,即,第一个群组,其中于此范例中,逻辑地址0~4095隶属于第一个群组,逻辑地址4096~8191隶属于第二个群组,并依此类推),并且所得的余数用以指示出此特定逻辑地址于对应的群组内的偏移量。
接着,存储器控制器110可查找第三映射表格Table_3中对应的栏位(例如,第二映射表格Table_2的第一个群组是对应于第三映射表格Table_3的第一个栏位Table_3[0]),读取此栏位的其他位元所储存的内容,以取得第二映射表格Table_2的第一个群组的代表性的映射资讯。接着,存储器控制器110可再根据第一个群组的代表性的映射资讯与此特定逻辑地址于对应的第一个群组的内的偏移量推导出此特定逻辑地址所对应的映射资讯。例如,当存储器控制器110所采用的压缩机制为储存此群组所包含的第一个逻辑地址的映射资讯做为代表此群组的映射资讯,而存储器控制器110经由第三映射表格Table_3的第一个栏位的其他位元得到第一个群组的代表性的映射资讯为(10,0)时,存储器控制器110可得知此特定逻辑地址65的数据被储存于编号为10的存储器区块。接着,存储器控制器110再将得到映射资讯的物理数据页编号0加上偏移量65,得知此特定逻辑地址65的数据被储存于编号为65的物理数据页(即,于编号为10的存储器区块的第66页)。
换言之,根据本发明的一实施例,当所属的群组的映射资讯被压缩时,存储器控制器110无须存取第二映射表格Table_2,仅需存取第三映射表格Table_3即可取得压缩过的映射资讯,再根据压缩过的映射资讯推导出所需的映射资讯。
值得注意的是,上述推导方式可依存储器控制器110所采用的压缩机制作对应的调整。举例而言,当存储器控制器110所采用的压缩机制为储存此群组所包含的最后一个逻辑地址的映射资讯做为此群组的代表性的映射资讯时,则存储器控制器110可将得到映射资讯的物理数据页编号减去偏移量,以推导出特定逻辑地址的映射资讯。
根据本发明的一实施例,当存储器控制器110需响应于一写入操作更新至少一特定逻辑数据页的映射资讯时,存储器控制器110可决定此特定逻辑数据页隶属于第二映射表格Table_2的哪个群组。举例而言,存储器控制器110可将特定逻辑数据页所对应的特定逻辑地址除以一个群组可包含的栏位数量所得的商即为群组的编号。于确认特定逻辑数据页隶属于第二映射表格Table_2的哪个群组后,存储器控制器110可查找该群组于第三映射表格Table_3中所对应的栏位的压缩指示位元Comp_Ind,以判断此特定逻辑数据页所隶属的群组所对应的映射资讯是否为被压缩过的。
当存储器控制器110判断此特定逻辑数据页所隶属的群组所对应的映射资讯为未被压缩过的时,存储器控制器110先存取第三映射表格Table_3中所对应的栏位的其他位元,以得知此特定逻辑数据页所隶属的群组的管理资讯(即,该群组的映射资讯实际被储存于存储器装置120的哪个存储器区块的哪个物理数据页)。接着,再根据管理资讯存取储存该群组的映射资讯的存储器区块与物理数据页,并且根据此特定逻辑地址找到所需的特定逻辑数据页的映射资讯。
另一方面,当存储器控制器110判断此特定逻辑数据页所隶属的群组所对应的映射资讯为为被压缩过的时,存储器控制器110存取第三映射表格Table_3中所对应的栏位的其他位元,以得知此特定逻辑数据页所隶属的群组的代表性的映射资讯。接着,存储器控制器110根据第三映射表格Table_3中对应的栏位所储存的代表性的映射资讯推导出对应于此特定逻辑数据页所隶属的群组因先前被略过而未被编辑的映射资讯,并且根据推导出的映射资讯以及需被更新的特定逻辑数据页的该映射资讯编辑该第二映射表格。
值得注意的是,一旦一逻辑地址所对应的映射资讯须被修改或更新,则压缩过的映射资讯无法再做为其所隶属的群组的代表资讯。因此,于需更新至少一逻辑数据页的映射资讯时,存储器控制器110必须将压缩过的映射资讯展开(还原)。
更具体的说,假设存储器控制器110需响应于一写入操作更新至少逻辑地址4096~4224的逻辑数据页的映射资讯时,存储器控制器110可先将逻辑地址4096除以4096(假设一个群组可包含的栏位数量为4096个),所得的商可用以指示出此特定逻辑地址隶属于第二映射表格Table_2的哪个群组(例如,所得的商1可代表群组的编号,即,第二个群组,其中于此范例中,逻辑地址0~4095隶属于第一个群组,逻辑地址4096~8191隶属于第二个群组,并依此类推),并且所得的余数用以指示出逻辑地址于对应的群组内的偏移量。
接着,存储器控制器110可查找第三映射表格Table_3中对应的栏位(例如,第二映射表格Table_2的第二个群组对应于第三映射表格Table_3的第二个栏位Table_3[1]),读取此栏位的其他位元所储存的内容,以取得第二映射表格Table_2的第二个群组的代表性的映射资讯。接着,存储器控制器110可再根据第二个群组的代表性的映射资讯与逻辑地址于对应的第二个群组内的偏移量推导出逻辑地址所对应的映射资讯。于此范例中,由于逻辑地址4096~4224的逻辑数据页的映射资讯需被更新,因此,存储器控制器110可推导出第二个群组的其余逻辑地址(例如,逻辑地址4225~8191的映射资讯),再根据推导出的映射资讯以及需被更新的逻辑地址4096~4224的逻辑数据页的映射资讯编辑第二映射表格Table_2,使得第二映射表格Table_2的内容可被更新为最新的L2P映射资讯。
换言之,根据本发明的一实施例,当所属的群组的映射资讯被压缩时,存储器控制器110无须存取第二映射表格Table_2,仅需存取第三映射表格Table_3即可取得压缩过的映射资讯,再根据压缩过的映射资讯推导出所需的映射资讯。
其中,于此范例中,推导逻辑地址4225~8191的映射资讯的方法可参考以上介绍的实施例,于此不再赘述。此外,值得注意的是,上述推导方式可依存储器控制器110所采用的压缩机制作对应的调整,因此并不限于以上实施例所介绍的方法。
于本发明的实施例中,由于压缩的操作起源于数个连续的逻辑数据页(逻辑地址)的数据被储存于某一既定存储器区块的数个连续的物理数据页,因此,存储器控制器110藉由将代表各群组的映射资讯做递增或递减的运算,便可推得先前因压缩而未被编辑的其余多个栏位的映射资讯,故于此不再详述存储器控制器110的相关推导操作。
除了上述情境,根据本发明的一实施例,存储器控制器110亦可判断数据储存装置100是否闲置,并且于数据储存装置100闲置时,于背景对映射资讯执行解压缩操作,用以还原第二映射表格Table_2中因先前被略过而未被编辑的部分栏位的资讯。此外,存储器控制器110亦可于数据储存装置100闲置时,利用背景操作,将缓冲存储器116所储存解压缩过(已还原)的第二映射表格Table_2的内容更新至存储器装置120的系统区域。如此一来,使得存储器装置120的第二映射表格Table_2可储存最新的映射资讯。
更具体的说,根据本发明的一实施例,于数据储存装置100闲置时,存储器控制器110可于背景根据第三映射表格Table_3所储存的代表性的映射资讯推导出第二映射表格Table_2中因先前被略过而未被编辑的一个或多个栏位的映射资讯,并且根据推导出的映射资讯更新第二映射表格Table_2的内容,以及根据第二映射表格Table_2的更新操作于第三映射表格Table_3记录对应的一个或多个群组的管理资讯及对应地设定压缩指示位元Comp_Ind,使其能正确地反映出第二映射表格Table_2所对应的群组的映射资讯是否已被压缩。由于映射资讯还原后,第三映射表格Table_3不再储存压缩过的映射资讯,因此,第三映射表格Table_3的对应的栏位的压缩指示位元Comp_Ind亦须被重置,用以指示第二映射表格Table_2所对应的群组的映射资讯并非被压缩过的,即,第三映射表格Table_3的对应的栏位所储存的内容为对应的群组的管理资讯,而非对应的群组的代表性的映射资讯。
图7与图8是显示根据本发明的一实施例所述的映射表格范例,用以显示根据第三映射表格Table_3所记录的代表性的映射资讯还原第二映射表格Table_2中因先前被略过而未被编辑的映射资讯的范例。如图7与图8所示,存储器控制器110依序根据第三映射表格Table_3的第一个栏位及第二个栏位所记录的对应的群组的代表性的映射资讯还原第二映射表格Table_2的内容,并且于还原操作完成后,将第三映射表格Table_3的第一个栏位及第二个栏位的内容还原为对应的群组的管理资讯,以及重置对应的压缩指示位元Comp_Ind,用以指示对应的群组的映射资讯并非被压缩过的。比较图7与图8,第三映射表格Table_3中储存对应的群组的管理资讯的栏位与储存对应的群组的代表性的映射资讯的栏位以不同网底表示,用以显示出对应的压缩指示位元Comp_Ind具有不同的设定值的状态,以区别管理资讯与代表性的映射资讯。
如上述,藉由以上实施例的应用,存储器控制器110可依系统需求设定要执行压缩处理的连续逻辑地址数量M,并且于响应于写入操作而更新第二映射表格Table_2所储存的数据时,藉由上述的压缩操作,跳过大部分栏位的编辑操作,仅于第三映射表格Table_3写入代表性的映射资讯取代对应的管理资讯。如此一来,可有效加速存储器控制器110的写入操作的执行,其中写入操作即包含了上述映射表格内容的编辑与更新。由于第二映射表格Table_2的大部分栏位的编辑操作于存储器控制器110执行写入操作的当下被省略,因此可达成显著的加速效果,特别是于主机装置130对存储器装置120写入大量连续的数据时。此外,存储器控制器110可闲置时或需要时将第二映射表格Table_2的内容展开(还原)并且更新至存储器装置120,以便于尔后存取第二映射表格Table_2的操作。
申请文件中用以修饰元件的"第一"、"第二"、"第三"等序数词的使用本身未暗示任何优先权、优先次序、各元件之中的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。

Claims (16)

1.一种数据储存装置,包括:
一存储器装置,包括多个存储器区块,各存储器区块包括多个物理数据页;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中该存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,
其中该存储器控制器包括一缓冲存储器,该第一映射表格储存于该缓冲存储器,用以记录写入该既定存储器区块的各物理数据页的数据是指向哪个逻辑数据页,
于该既定存储器区块被写满时,该存储器控制器根据该第一映射表格编辑一第二映射表格或一第三映射表格,其中该第二映射表格对应于多个逻辑数据页,用以记录这些逻辑数据页的映射资讯,
其中该存储器控制器还判断该第一映射表格是否记录了一既定数量个连续的逻辑数据页的逻辑地址,当该第一映射表格并未记录了该既定数量个连续的逻辑数据页的逻辑地址时,该存储器控制器根据该第一映射表格内容编辑该第二映射表格,当该第一映射表格记录了该既定数量个连续的逻辑数据页的逻辑地址时,该存储器控制器略过该第二映射表格的一编辑操作,改为根据该第一映射表格内容编辑该第三映射表格,用以于该第三映射表格的一对应栏位记录该既定数量个连续的逻辑数据页之中的一既定逻辑数据页的该映射资讯作为一代表性的映射资讯,
其中该第二映射表格包含多个栏位,一栏位用以记录一逻辑数据页的该映射资讯,这些栏位被分为多个群组,该第三映射表格用以记录该第二映射表格的这些群组的管理资讯,
其中当该存储器控制器根据该第一映射表格编辑该第三映射表格时,该存储器控制器以该代表性的映射资讯取代该既定数量个连续的逻辑数据页所对应的该群组的该管理资讯,并且其中该既定数量为大于1的正整数。
2.如权利要求1所述的数据储存装置,其特征在于,当该存储器控制器略过该第二映射表格的该编辑操作时,该存储器控制器不于该第二映射表格记录该既定数量个连续的逻辑数据页的该映射资讯。
3.如权利要求1所述的数据储存装置,其特征在于,隶属于该第二映射表格的不同群组的这些栏位所记录的该映射资讯被储存于不同物理数据页,该第三映射表格所记录的该管理资讯为对应的该群组所记录的该映射资讯被储存于哪个存储器区块的哪个物理数据页的资讯。
4.如权利要求1所述的数据储存装置,其特征在于,该第三映射表格包含多个栏位,该第三映射表格的一栏位对应于该第二映射表格的一群组,并且该第三映射表格的各栏位包含多个位元,其中该第三映射表格的各栏位的至少一位元用于指示对应的该群组所对应的该映射资讯是否为被压缩过的。
5.如权利要求4所述的数据储存装置,其特征在于,当该位元指示出对应的该群组所对应的该映射资讯为被压缩过的时,包含该位元的该栏位的其他位元用于记录对应的该群组的该代表性的映射资讯,当该位元指示出对应的该群组所对应的映射资讯为未被压缩过的时,包含该位元的该栏位的其他位元用于记录对应的该群组的该管理资讯。
6.如权利要求4所述的数据储存装置,其特征在于,当该存储器控制器需响应于一读取指令存取该第二映射表格的一特定栏位时,该存储器控制器决定该特定栏位隶属于该第二映射表格的哪个群组,并且查找该群组于该第三映射表格中所对应的该栏位的该位元,以判断该特定栏位所隶属的该群组所对应的该映射资讯是否为被压缩过的,并且当存储器控制器判断该特定栏位所隶属的该群组所对应的该映射资讯为被压缩过的时,该存储器控制器根据该第三映射表格中对应的该栏位所储存的该代表性的映射资讯推导出该特定栏位所对应的该映射资讯。
7.如权利要求4所述的数据储存装置,其特征在于,当该存储器控制器需响应于一写入操作更新至少一特定逻辑数据页的该映射资讯时,该存储器控制器决定该特定逻辑数据页隶属于该第二映射表格的哪个群组,并且查找该群组于该第三映射表格中对应的该栏位的该位元,以判断该特定逻辑数据页所隶属的该群组所对应的该映射资讯是否为被压缩过的,并且当存储器控制器判断该特定逻辑数据页所隶属的该群组所对应的该映射资讯为被压缩过的时,该存储器控制器根据该第三映射表格中对应的该栏位所储存的该代表性的映射资讯推导出对应于该特定逻辑数据页所隶属的该群组因先前被略过而未被编辑的该映射资讯,并且根据推导出的该映射资讯以及需被更新的该特定逻辑数据页的该映射资讯编辑该第二映射表格。
8.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器还判断该数据储存装置是否闲置,并且于该数据储存装置闲置时,于背景根据该第三映射表格所储存的该代表性的映射资讯推导出该第二映射表格中因先前被略过而未被编辑的多个栏位的该映射资讯,根据推导出的该映射资讯更新该第二映射表格,并且根据该第二映射表格的更新操作于该第三映射表格记录对应的一个或多个群组的该管理资讯。
9.一种数据处理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置以及一存储器控制器,该存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页,该存储器控制器耦接该存储器装置,用以存取该存储器装置,该方法包括:
由该存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,其中该第一映射表格是储存于该存储器控制器的一缓冲存储器,用以记录写入该既定存储器区块的各物理数据页的数据是指向哪个逻辑数据页;以及
于该既定存储器区块被写满时,由该存储器控制器根据该第一映射表格编辑一第二映射表格或一第三映射表格,其中该第二映射表格对应于多个逻辑数据页,用以记录这些逻辑数据页的映射资讯,
其中由该存储器控制器根据该第一映射表格编辑该第二映射表格或该第三映射表格的步骤还包括:
由该存储器控制器判断该第一映射表格是否记录了一既定数量个连续的逻辑数据页的逻辑地址;
当该第一映射表格并未记录了该既定数量个连续的逻辑数据页的逻辑地址时,由该存储器控制器根据该第一映射表格内容编辑该第二映射表格;以及
当该第一映射表格记录了该既定数量个连续的逻辑数据页的逻辑地址时,由该存储器控制器略过该第二映射表格的一编辑操作,改为根据该第一映射表格内容编辑该第三映射表格,用以于该第三映射表格的一对应栏位记录该既定数量个连续的逻辑数据页之中的一既定逻辑数据页的该映射资讯作为一代表性的映射资讯,
其中该第二映射表格包含多个栏位,一栏位用以记录一逻辑数据页的该映射资讯,这些栏位被分为多个群组,该第三映射表格用以记录该第二映射表格的这些群组的管理资讯,
其中当该存储器控制器根据该第一映射表格编辑该第三映射表格时,该存储器控制器以该代表性的映射资讯取代该既定数量个连续的逻辑数据页所对应的该群组的该管理资讯,并且其中该既定数量为大于1的正整数。
10.如权利要求9所述的方法,其特征在于,当该存储器控制器略过该第二映射表格的该编辑操作时,该存储器控制器不于该第二映射表格记录该既定数量个连续的逻辑数据页的该映射资讯。
11.如权利要求9所述的方法,其特征在于,隶属于该第二映射表格的不同群组的这些栏位所记录的该映射资讯被储存于不同物理数据页,该第三映射表格所记录的该管理资讯为对应的该群组所记录的该映射资讯被储存于哪个存储器区块的哪个物理数据页的资讯。
12.如权利要求9所述的方法,其特征在于,该第三映射表格包含多个栏位,该第三映射表格的一栏位对应于该第二映射表格的一群组,并且该第三映射表格的各栏位包含多个位元,其中该第三映射表格的各栏位的至少一位元用于指示对应的该群组所对应的该映射资讯是否为被压缩过的。
13.如权利要求12所述的方法,其特征在于,当该位元指示出对应的该群组所对应的该映射资讯为被压缩过的时,包含该位元的该栏位的其他位元用于记录对应的该群组的该代表性的映射资讯,当该位元指示出对应的该群组所对应的映射资讯为未被压缩过的时,包含该位元的该栏位的其他位元用于记录对应的该群组的该管理资讯。
14.如权利要求12所述的方法,其特征在于,当该存储器控制器需响应于一读取指令存取该第二映射表格的一特定栏位时,该方法还包括:
由该存储器控制器决定该特定栏位隶属于该第二映射表格的哪个群组,并且查找该群组于该第三映射表格中所对应的该栏位的该位元,以判断该特定栏位所隶属的该群组所对应的该映射资讯是否为被压缩过的;以及
当该特定栏位所隶属的该群组所对应的该映射资讯为被压缩过的时,由该存储器控制器根据该第三映射表格中对应的该栏位所储存的该代表性的映射资讯推导出该特定栏位所对应的该映射资讯。
15.如权利要求12所述的方法,其特征在于,当该存储器控制器需响应于一写入操作更新至少一特定逻辑数据页的该映射资讯时,该方法还包括:
由该存储器控制器决定该特定逻辑数据页隶属于该第二映射表格的哪个群组,并且查找该群组于该第三映射表格中对应的该栏位的该位元,以判断该特定逻辑数据页所隶属的该群组所对应的该映射资讯是否为被压缩过的;以及
当该特定逻辑数据页所隶属的该群组所对应的该映射资讯为被压缩过的时,由该存储器控制器根据该第三映射表格中对应的该栏位所储存的该代表性的映射资讯推导出该特定逻辑数据页所隶属的该群组因先前被略过而未被编辑的该映射资讯,并且根据推导出的该映射资讯以及需被更新的该特定逻辑数据页的该映射资讯编辑该第二映射表格。
16.如权利要求9所述的方法,其特征在于,还包括:
于该数据储存装置闲置时,由该存储器控制器于背景根据该第三映射表格所储存的该代表性的映射资讯推导出该第二映射表格中因先前被略过而未被编辑的部分栏位的该映射资讯,并且根据推导出的该映射资讯更新该第二映射表格;以及
由该存储器控制器根据该第二映射表格的更新操作于该第三映射表格记录对应的一个或多个群组的该管理资讯。
CN202010234717.8A 2019-05-20 2020-03-30 数据储存装置与数据处理方法 Active CN111966281B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108117322A TWI707234B (zh) 2019-05-20 2019-05-20 資料儲存裝置與資料處理方法
TW108117322 2019-05-20

Publications (2)

Publication Number Publication Date
CN111966281A true CN111966281A (zh) 2020-11-20
CN111966281B CN111966281B (zh) 2023-11-28

Family

ID=73358330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010234717.8A Active CN111966281B (zh) 2019-05-20 2020-03-30 数据储存装置与数据处理方法

Country Status (3)

Country Link
US (1) US11176033B2 (zh)
CN (1) CN111966281B (zh)
TW (1) TWI707234B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116193138A (zh) * 2023-04-21 2023-05-30 北京象帝先计算技术有限公司 数据处理系统、电子组件及电子设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI749279B (zh) * 2018-12-18 2021-12-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20220032826A (ko) * 2020-09-08 2022-03-15 에스케이하이닉스 주식회사 메모리 시스템 내 맵 정보를 제어 및 저장하는 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474414A (zh) * 2002-08-05 2004-02-11 希旺科技股份有限公司 不需使用冗余栏位的非挥发记忆储存系统及其写入方法
TW201040717A (en) * 2009-05-06 2010-11-16 Via Telecom Inc Flash memory managing methods and computing systems utilizing the same
US20140289451A1 (en) * 2013-03-20 2014-09-25 Phison Electronics Corp. Method of recording mapping information, and memory controller and memory storage apparatus using the same
TWI579693B (zh) * 2016-04-29 2017-04-21 群聯電子股份有限公司 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置
US20190146908A1 (en) * 2017-11-13 2019-05-16 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and electronic device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4047908B2 (ja) * 2004-01-19 2008-02-13 トレック・2000・インターナショナル・リミテッド メモリアドレスマッピングテーブルを使用するポータブルデータ記憶デバイス
CN103106143B (zh) * 2011-11-11 2016-01-13 光宝科技股份有限公司 固态储存装置及其逻辑至实体对应表建立方法
KR102580820B1 (ko) * 2016-03-10 2023-09-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102655347B1 (ko) * 2016-07-04 2024-04-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI662410B (zh) * 2017-12-18 2019-06-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
KR20190087217A (ko) * 2018-01-16 2019-07-24 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI647566B (zh) * 2018-01-19 2019-01-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20200020464A (ko) * 2018-08-17 2020-02-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
KR20200022118A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1474414A (zh) * 2002-08-05 2004-02-11 希旺科技股份有限公司 不需使用冗余栏位的非挥发记忆储存系统及其写入方法
TW201040717A (en) * 2009-05-06 2010-11-16 Via Telecom Inc Flash memory managing methods and computing systems utilizing the same
US20140289451A1 (en) * 2013-03-20 2014-09-25 Phison Electronics Corp. Method of recording mapping information, and memory controller and memory storage apparatus using the same
TWI579693B (zh) * 2016-04-29 2017-04-21 群聯電子股份有限公司 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置
US20190146908A1 (en) * 2017-11-13 2019-05-16 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and electronic device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116193138A (zh) * 2023-04-21 2023-05-30 北京象帝先计算技术有限公司 数据处理系统、电子组件及电子设备
CN116193138B (zh) * 2023-04-21 2023-07-21 北京象帝先计算技术有限公司 数据处理系统、电子组件及电子设备

Also Published As

Publication number Publication date
US11176033B2 (en) 2021-11-16
CN111966281B (zh) 2023-11-28
TWI707234B (zh) 2020-10-11
TW202044046A (zh) 2020-12-01
US20200371910A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
US11520697B2 (en) Method for managing a memory apparatus
CN109871333B (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
CN109426619B (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
CN110059031B (zh) 数据储存装置与数据处理方法
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
CN111966281B (zh) 数据储存装置与数据处理方法
US10606744B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
US11157399B2 (en) Data storage devices and data processing methods with dynamic programming scheme
US8429339B2 (en) Storage device utilizing free pages in compressed blocks
CN114063893A (zh) 数据储存装置与数据处理方法
CN113961140A (zh) 数据处理方法及对应的数据储存装置
CN113885779B (zh) 数据处理方法及对应的数据储存装置
CN111338562B (zh) 数据存储装置与数据处理方法
CN112099731B (zh) 数据储存装置与数据处理方法
CN111966606B (zh) 数据储存装置与数据处理方法
CN109002265B (zh) 一种数据处理的方法以及相关装置
CN113835617A (zh) 数据处理方法及对应的数据储存装置
CN111596859B (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