CN111338562B - 数据存储装置与数据处理方法 - Google Patents
数据存储装置与数据处理方法 Download PDFInfo
- Publication number
- CN111338562B CN111338562B CN201910609861.2A CN201910609861A CN111338562B CN 111338562 B CN111338562 B CN 111338562B CN 201910609861 A CN201910609861 A CN 201910609861A CN 111338562 B CN111338562 B CN 111338562B
- Authority
- CN
- China
- Prior art keywords
- mapping table
- memory block
- memory
- data
- data page
- 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
Images
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/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/0656—Data buffering arrangements
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0653—Monitoring storage devices or 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/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/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
-
- 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
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Memory System (AREA)
Abstract
一种数据存储装置,包括存储器装置及存储器控制器。存储器装置包括存储器区块,存储器区块包括物理数据页。存储器控制器耦接存储器装置。存储器控制器选择既定存储器区块用以接收数据,并于第一映射表格中记录逻辑地址。存储器控制器包括缓冲存储器,第一映射表存储于缓冲存储器。于既定存储器区块被写满时,存储器控制器根据第一映射表格编辑第二映射表格与第三映射表格,并且将第二映射表格与第三映射表格存储于存储器装置。第二映射表格对应于逻辑数据页,用以记录各逻辑数据页的数据被存储于哪个存储器区块的哪个物理数据页,第三映射表格对应于既定存储器区块的该等物理数据页,用以指示各物理数据页为有效数据页或无效数据页。
Description
技术领域
本发明有关于适用于一数据存储装置的一种数据处理方法,可快速并且准确地搜寻出存储器区块的有效数据页。
背景技术
随着数据存储装置的科技在近几年快速地成长,许多数据存储装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的存储卡、固态硬盘、嵌入式多媒体存储卡(embeddedMulti Media Card,缩写为eMMC)以及通用闪存存储(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据存储装置上,有效率的访问控制也变成一个重要的议题。
为了提高数据存储装置的存取效能,本发明提出一种新的数据处理方法,可有效率地处理存储器装置所存储的数据,以提升存储器装置的效能。
发明内容
本发明公开一种数据存储装置,包括一存储器装置以及一存储器控制器。存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页。存储器控制器耦接存储器装置,用以存取存储器装置。存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址。存储器控制器包括一缓冲存储器,第一映射表存储于缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据指向哪个逻辑数据页。于既定存储器区块被写满时,存储器控制器根据第一映射表格编辑一第二映射表格与一第三映射表格,并且将第二映射表格与第三映射表格存储于存储器装置。第二映射表格对应于多个逻辑数据页,用以记录各逻辑数据页的数据被存储于哪个存储器区块的哪个物理数据页,并且第三映射表格对应于既定存储器区块的该等物理数据页,用以指示各物理数据页为有效数据页或无效数据页。
本发明公开一种数据处理方法,适用于一数据存储装置,数据存储装置包括一存储器装置以及一存储器控制器,存储器装置包括多个存储器区块,存储器区块包括多个物理数据页,存储器控制器耦接存储器装置,用以存取存储器装置,该方法包括:由存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,其中第一映射表存储于存储器控制器的一缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据指向哪个逻辑数据页;于既定存储器区块被写满时,由存储器控制器根据第一映射表格编辑一第二映射表格与一第三映射表格,其中第二映射表格对应于多个逻辑数据页,用以记录各逻辑数据页的数据被存储于哪个存储器区块的哪个物理数据页,并且第三映射表格对应于既定存储器区块的物理数据页,用以指示各物理数据页为有效数据页或无效数据页;以及由存储器控制器将第二映射表格与第三映射表格存储于存储器装置。
附图说明
图1显示根据本发明的一实施例所述的数据存储装置的示意图。
图2A~2F显示根据本发明的一实施例所述的映射表格范例。
图3显示根据本发明的一实施例所述的数据处理方法的范例流程图。
附图标记:
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沟通。缓冲存储器116以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,数据存储装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的存储卡),且主机装置130为一可与数据存储装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,数据存储装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体存储卡(EmbeddedMulti 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 toHost mapping table,缩写为F2H)表格。第一映射表格记录写入既定存储器区块的各物理数据页的数据指向哪个逻辑数据页,例如,第一映射表格中可记录对应的逻辑页面的逻辑区块地址(Logical Block Address,缩写为LBA),或是以其他形式记录逻辑数据页的逻辑地址。
根据本发明的一实施例,第一映射表格可以一阵列形式记录逻辑地址,其中第一映射表格的各阵列索引值对应于既定存储器区块的一物理数据页。即,第一映射表格的阵列索引值与既定存储器区块的物理数据页有着一对一的对应关系。举例而言,假设第一映射表格Table_1所使用的起始阵列索引值为0,则Table_1[0](第一映射表格Table_1的第1笔记录)所记录的逻辑地址为既定存储器区块的第1个物理数据页的数据所指向的逻辑数据页,Table_1[1](第一映射表格Table_1的第2笔记录)所记录的逻辑地址为既定存储器区块的第2个物理数据页的数据所指向的逻辑数据页,并依此类推。
根据本发明的一实施例,存储器控制器110会依物理数据页编号少至多的顺序将数据写入既定存储器区块,因此也会依阵列索引值少至多的顺序将各物理数据页所对应的逻辑数据页的逻辑地址记录于第一映射表格Table_1中。
根据本发明的一实施例,于既定存储器区块被写满时,存储器控制器110会根据第一映射表格Table_1编辑一第二映射表格Table_2与一第三映射表格Table_3。根据本发明的一实施例,第二映射表格Table_2与第三映射表格Table_3被存储于存储器装置120的系统区域。第二映射表格Table_2为一主机对闪存映射(Host to Flash mapping table,缩写为H2F)表格,第二映射表格Table_2所记录的多笔数据对应于多个逻辑数据页。第二映射表格Table_2可以一阵列形式记录各逻辑数据页所对应的一存储器区块编号以及一数据页编号,用以记录各逻辑数据页的数据指向(被存储于)哪个存储器区块的哪个物理数据页,其中第二映射表格Table_2的各阵列索引值对应于多个逻辑数据页的一者。即,第二映射表格的阵列索引值与逻辑数据页有着一对一的对应关系。举例而言,假设第二映射表格Table_2所使用的起始阵列索引值为0,则Table_2[0](第二映射表格Table_2的第1笔记录)所记录的存储器区块编号以及数据页编号指示出主机系统中第1个逻辑数据页的数据被存放的物理内存区块及数据页位置,Table_2[1](第二映射表格Table_2的第2笔记录)所记录的存储器区块编号以及数据页编号指示出主机系统中第2个逻辑数据页的数据被存放的物理内存区块及数据页位置,并依此类推。
根据本发明的一实施例,于既定存储器区块被写满时,存储器控制器110会根据第一映射表格Table_1及第二映射表格Table_2的内容编辑一第三映射表格Table_3。第三映射表格Table_3所记录的多笔数据对应于既定存储器区块的多个物理数据页。第三映射表格Table_3以一阵列形式记录既定存储器区块的各物理数据页为有效数据页或无效数据页,其中第三映射表格的各阵列索引值对应于既定存储器区块的一物理数据页。即,第三映射表格的阵列索引值与既定存储器区块的物理数据页有着一对一的对应关系。举例而言,假设第三映射表格Table_3所使用的起始阵列索引值为0,则Table_3[0](第三映射表格Table_3的第1笔记录)所记录的内容指示出既定存储器区块的第1个物理数据页为有效数据页或无效数据页,Table_3[1](第三映射表格Table_3的第2笔记录)所记录的内容指示出既定存储器区块的第2个物理数据页为有效数据页或无效数据页,并依此类推。
根据本发明的一实施例,于编辑第二映射表格Table_2时,存储器控制器110自第一映射表格Table_1的起始阵列索引值开始依序根据第一映射表格Table_1所记录的逻辑地址查找第二映射表格Table_2,并且根据既定存储器区块的一存储器区块编号以及第一映射表格Table_1所对应的阵列索引值更新第二映射表格Table_2所记录的内容。
图2A~2B显示根据本发明的一实施例所述的映射表格范例,用以说明存储器控制器110根据第一映射表格Table_1编辑第二映射表格Table_2的操作。于此范例中,如图2A所示,第一映射表格Table_1的第1笔记录Table_1[0]的内容为10,用以表示既定存储器区块的第1个物理数据页的数据指向的逻辑地址为10的逻辑数据页。存储器控制器110根据此逻辑地址查找第二映射表格Table_2,将包含此逻辑地址的一或多笔记录加载缓冲存储器116中,用以进行内容的编辑或更新。举例而言,存储器控制器110可存取第二映射表格Table_2的第1~100笔记录并将的加载缓冲存储器116中。接着,存储器控制器110可将此既定存储器区块的存储器区块编号以及目前正在处理的第一映射表格Table_1所对应的物理数据页的数据页编号(或,第一映射表格Table_1所对应的阵列索引值)写入第二映射表格Table_2中对应的位置。举例而言,假设既定存储器区块的存储器区块编号为101,既定存储器区块的物理数据页从编号0开始配置,则存储器控制器110可如图2B所示将(101,0)的内容写入第二映射表格Table_2的第11笔记录中,其中的数字0即为第1个物理数据页的数据页编号。
图2C~2D显示根据本发明的一实施例所述的映射表格范例,用以说明存储器控制器110根据第一映射表格Table_1编辑第三映射表格Table_3的操作。根据本发明的一实施例,于编辑第三映射表格时,存储器控制器110将第三映射表格Table_3对应于第一映射表格Table_1相同位置的内容设定为有效。举例而言,于根据既定存储器区块的存储器区块编号(例如,上述的101)以及第一映射表格所对应的阵列索引值(例如,上述的0)更新第二映射表格所记录的内容后,将第三映射表格中相同阵列索引值(例如,上述的0)所对应的内容设定为有效,如图2C所示,第三映射表格Table_3的第1笔数据Table_3[0]填入灰色底纹,用以表示其所对应的内容被设定为有效。
待第一映射表格Table_1的第1笔记录被更新至第二映射表格Table_2与第三映射表格Table_3后,存储器控制器110接着根据第一映射表格Table_1的第2笔记录编辑/更新第二映射表格Table_2与第三映射表格Table_3,并依此类推。举例而言,如图2D所示,由于第一映射表格Table_1的第2笔记录Table_1[1]为5,存储器控制器110将(101,1)的内容写入第二映射表格Table_2的第6笔记录中,并且将该第三映射表格中Table_3相同阵列索引值(例如,上述的1)所对应的内容设定为有效。
然而,存储器区块所存储的数据亦有可能已经无效。举例而言,当存储器区块中的一特定数据页所存储的数据与其他数据页指到相同的逻辑地址,且特定数据页的数据为较早被存储的数据,则该特定数据页被判断为无效数据页。因此,根据本发明的一实施例,于编辑第三映射表格的过程中,实际上不仅参考第一映射表格Table_1所记录的内容,存储器控制器110亦会根据第二映射表格Table_2所记录的内容做调整,用以于发现无效数据页时,可将第三映射表格中Table_3中先前已被设定为有效的内容更改为无效,以准确地记录既定存储器区块中的有效数据页与无效数据页。
根据本发明的一实施例,当存储器控制器110于查找第二映射表格Table_2时,若发现第二映射表格Table_2的某一特定位置已记录了此既定存储器区块的存储器区块编号以及一第一阵列索引值,且于第一映射表格Table_1的一第二阵列索引值所对应的内容中被记录的逻辑地址亦指到第二映射表格Table_2的该相同特定位置时,存储器控制器110将不只是根据既定存储器区块的存储器区块编号以及第二阵列索引值更新第二映射表格Table_2的特定位置所对应的内容,以及将第三映射表格Table_3的第二阵列索引值所对应的内容设定为有效,更会进一步将第三映射表格Table_3的第一阵列索引值所对应的内容设定为无效。
图2E~2F显示根据本发明的一实施例所述的映射表格范例,用以说明存储器控制器110根据第一映射表格Table_1与第二映射表格Table_2编辑第三映射表格Table_3的操作。如图2E所示,当存储器控制器110进行到根据第一映射表格Table_1的第9笔记录编辑/更新第二映射表格Table_2及第三映射表格Table_3时,由于第一映射表格Table_1的第9笔记录Table_1[8]为5,存储器控制器110必须将(101,8)的内容写入第二映射表格Table_2的第6笔记录中,并且将该第三映射表格中Table_3相同阵列索引值(例如,上述的8)所对应的内容设定为有效。然而,由于存储器控制器110于查找第二映射表格Table_2时,会发现第二映射表格Table_2的第6笔记录Table_2[5]已记录了相同的存储区块编号,因此,存储器控制器110可直接判断这笔先前被写入的记录中所对应的物理数据页已为无效数据页。由于此物理数据页已为无效数据页,因此,如图2F所示,存储器控制器110可进一步将第三映射表格Table_3的阵列索引值1所对应的内容设定为无效。换言之,于本发明的实施例中,存储器控制器110可根据第二映射表格Table_2所记录的内容(例如,上述的Table_2[5]所记录的数据页编号或阵列索引值1),将第三映射表格Table_3的相同阵列索引值所对应的内容设定为无效。
根据本发明的一实施例,第三映射表格Table_3的内容可包含位0与位1两种信息,以表示对应的数据页为有效或无效。举例而言,存储器控制器110可于将第三映射表格Table_3的各阵列索引值所对应的内容设定为有效时,写入位1,并且于将第三映射表格Table_3的各阵列索引值所对应的内容设定为无效时,写入位0。值得注意的是,本发明并不限于使用位0与1来表示数据页是否有效。举例而言,存储器控制器110亦可藉由写入两个不同的其他数值,来表示资料页是否有效。
于存储器控制器110需要读取第二映射表格Table_2及/或第三映射表格Table_3的其他笔记录(例如,第101~200笔记录)前,或者待存储器控制器110根据第一映射表格Table_1的最后一笔记录编辑/更新第二映射表格Table_2及第三映射表格Table_3后,可将第二映射表格Table_2及第三映射表格Table_3的内容更新/写回至存储器装置120的系统区域。上述的操作可被应用于任一个被选择作为接收数据的存储器区块,用以于该存储器区块被写满后,根据该存储器区块被写入的数据更新第二映射表格Table_2的内容及编辑该存储器区块所对应的第三映射表格Table_3的内容。
根据本发明的一实施例,于将第二映射表格Table_2及第三映射表格Table_3的内容更新/写回至存储器装置120后,第一映射表格Table_1所存储的数据便可被舍弃。即,于本发明的一实施例中,数据存储装置100可不再为存储器区块保留其所对应的闪存对主机映射(F2H)表格。
存储于系统区域的第二映射表格Table_2及第三映射表格Table_3可供存储器控制器110于尔后须执行一些特定的程序时使用。举例而言,根据本发明的一实施例,当存储器控制器110须执行一垃圾回收程序,用以将一或多个存储器区块中的有效数据页所存储的数据搬移至一目标存储器区块时,可直接根据各存储器区块所对应的第三映射表格Table_3的内容快速地判断出哪些物理数据页仍为有效数据页,如此一来,便可以直接挑选出有效资料页,并将其所存储的数据搬移至目标存储器区块。
图3显示根据本发明的一实施例所述的数据处理方法的范例流程图。首先,于存储器控制器利用一既定存储器区块用以接收数据时,对应地于一第一映射表格中记录多个逻辑地址,用以记录写入该既定存储器区块的各物理数据页的数据指向哪个逻辑数据页(步骤S302)。接着,于既定存储器区块被写满时,存储器控制器根据第一映射表格编辑一第二映射表格与一第三映射表格(步骤S304),其中第二映射表格对应于多个逻辑数据页,用以记录各逻辑数据页的数据被存储于哪个存储器区块的哪个物理数据页,并且第三映射表格对应于既定存储器区块的多个物理数据页,用以指示各物理数据页为有效数据页或无效数据页。最后,存储器控制器将编辑过的第二映射表格与第三映射表格存储于存储器装置(步骤S306)。
如上述,由于存储于存储器装置120内的(一或多个)第三映射表格Table_3直接记录了对应的存储器区块内的物理数据页为有效或无效,因此存储器控制器110可根据第三映射表格Table_3的内容快速地判断出哪些物理数据页仍为有效数据页,如此一来,便可以直接挑选出有效数据页,大幅提升存取存储器装置的效能。
权利要求书中用以修饰组件的“第一”、“第二”、“第三”等序数词的使用本身未暗示任何优先权、优先次序、各组件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同组件。
虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视后附的权利要求书所界定者为准。
Claims (6)
1.一种数据存储装置,包括:
一存储器装置,包括多个存储器区块,各存储器区块包括多个物理数据页;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中该存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,该第一映射表格以一阵列形式记录该多个逻辑地址,该第一映射表格的各阵列索引值对应于该既定存储器区块的一个物理数据页,其中该存储器控制器包括一缓冲存储器,该第一映射表存储于该缓冲存储器,用以记录写入该既定存储器区块的各物理数据页的数据指向哪个逻辑数据页,
于该既定存储器区块被写满时,该存储器控制器根据该第一映射表格编辑一第二映射表格与一第三映射表格,并且将该第二映射表格与该第三映射表格存储于该存储器装置,其中该第二映射表格对应于多个逻辑数据页,该第二映射表格以一阵列形式记录各逻辑数据页所对应的一存储器区块编号以及一数据页编号,用以记录各逻辑数据页的数据被存储于哪个存储器区块的哪个物理数据页,该第二映射表格的各阵列索引值对应于该多个逻辑数据页的一者,并且该第三映射表格对应于该既定存储器区块的该多个物理数据页,该第三映射表格以一阵列形式记录该既定存储器区块的各物理数据页为有效数据页或无效数据页,该第三映射表格的一个阵列索引值对应于该既定存储器区块的一个物理数据页,用以指示各物理数据页为有效数据页或无效数据页,
于编辑该第二映射表格时,该存储器控制器自该第一映射表格的一起始阵列索引值开始依序根据该第一映射表格所记录的该多个逻辑地址查找该第二映射表格,并且根据该既定存储器区块的一存储器区块编号以及该第一映射表格所对应的该阵列索引值更新该第二映射表格所记录的内容,以及
于编辑该第三映射表格时,该存储器控制器于根据该既定存储器区块的该存储器区块编号以及该第一映射表格所对应的该阵列索引值更新该第二映射表格所记录的内容后,将该第三映射表格中相同阵列索引值所对应的内容设定为有效。
2.如权利要求1所述的数据存储装置,其特征在于,于编辑该第二映射表格与该第三映射表格时,当该存储器控制器于查找该第二映射表格时发现该第二映射表格的一特定位置已记录了该既定存储器区块的该存储器区块编号以及一第一阵列索引值,且于该第一映射表格的一第二阵列索引值所对应的内容中被记录的该逻辑地址亦指到该第二映射表格的该特定位置时,该存储器控制器根据该既定存储器区块的该存储器区块编号以及该第二阵列索引值更新该第二映射表格的该特定位置所对应的内容,将该第三映射表格的该第二阵列索引值所对应的内容设定为有效,并且将该第三映射表格的该第一阵列索引值所对应的内容设定为无效。
3.如权利要求1所述的数据存储装置,其特征在于,该存储器控制器更根据该第三映射表格执行一垃圾回收程序,用以将该既定存储器区块中的一或多个有效数据页所存储的数据搬移至一目标存储器区块。
4.一种数据处理方法,适用于一数据存储装置,该数据存储装置包括一存储器装置以及一存储器控制器,该存储器装置包括多个存储器区块,存储器区块包括多个物理数据页,该存储器控制器耦接该存储器装置,用以存取该存储器装置,该方法包括:
由该存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,其中该第一映射表格以一阵列形式记录该多个逻辑地址,该第一映射表格的各阵列索引值对应于该既定存储器区块的一个物理数据页,该第一映射表存储于该存储器控制器的一缓冲存储器,用以记录写入该既定存储器区块的各物理数据页的数据指向哪个逻辑数据页;
于该既定存储器区块被写满时,由该存储器控制器根据该第一映射表格编辑一第二映射表格与一第三映射表格,其中该第二映射表格对应于多个逻辑数据页,该第二映射表格以一阵列形式记录各逻辑数据页所对应的一存储器区块编号以及一数据页编号,用以记录各逻辑数据页的数据被存储于哪个存储器区块的哪个物理数据页,该第二映射表格的各阵列索引值对应于该多个逻辑数据页的一者,并且该第三映射表格对应于该既定存储器区块的该多个物理数据页,该第三映射表格以一阵列形式记录该既定存储器区块的各物理数据页为有效数据页或无效数据页,该第三映射表格的一个阵列索引值对应于该既定存储器区块的一个物理数据页,用以指示各物理数据页为有效数据页或无效数据页;以及
由该存储器控制器将该第二映射表格与该第三映射表格存储于该存储器装置,其中于该既定存储器区块被写满时,由该存储器控制器根据该第一映射表格编辑该第二映射表格与该第三映射表格的步骤更包括:
于编辑该第二映射表格时,自该第一映射表格的一起始阵列索引值开始依序根据该第一映射表格所记录的该多个逻辑地址查找该第二映射表格;以及
根据该既定存储器区块的一存储器区块编号以及该第一映射表格所对应的该阵列索引值更新该第二映射表格所记录的内容,以及其中于该既定存储器区块被写满时,由该存储器控制器根据该第一映射表格编辑该第二映射表格与该第三映射表格的步骤更包括:
其中于编辑该第三映射表格时,于根据该既定存储器区块的该存储器区块编号以及该第一映射表格所对应的该阵列索引值更新该第二映射表格所记录的内容后,将该第三映射表格中相同阵列索引值所对应的内容设定为有效。
5.如权利要求4所述的数据处理方法,其特征在于,于该既定存储器区块被写满时,由该存储器控制器根据该第一映射表格编辑该第二映射表格与该第三映射表格的步骤更包括:
当该第二映射表格的一特定位置已记录了该既定存储器区块的该存储器区块编号以及一第一阵列索引值,且于该第一映射表格的一第二阵列索引值所对应的内容中被记录的该逻辑地址亦指到该第二映射表格的该特定位置时,由该存储器控制器根据该既定存储器区块的该存储器区块编号以及该第二阵列索引值更新该第二映射表格的该特定位置所对应的内容,将该第三映射表格的该第二阵列索引值所对应的内容设定为有效,并且将该第三映射表格的该第一阵列索引值所对应的内容设定为无效。
6.如权利要求4所述的数据处理方法,其特征在于,更包括:
由该存储器控制器根据该第三映射表格执行一垃圾回收程序,用以将该既定存储器区块中的一或多个有效数据页所存储的数据搬移至一目标存储器区块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107145763 | 2018-12-18 | ||
TW107145763A TWI749279B (zh) | 2018-12-18 | 2018-12-18 | 資料儲存裝置與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338562A CN111338562A (zh) | 2020-06-26 |
CN111338562B true CN111338562B (zh) | 2023-06-09 |
Family
ID=71072592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910609861.2A Active CN111338562B (zh) | 2018-12-18 | 2019-07-08 | 数据存储装置与数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11216381B2 (zh) |
CN (1) | CN111338562B (zh) |
TW (1) | TWI749279B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI738451B (zh) * | 2020-08-05 | 2021-09-01 | 宇瞻科技股份有限公司 | 資料備份方法及儲存裝置 |
CN114442906B (zh) * | 2020-11-02 | 2024-09-17 | 深圳Tcl新技术有限公司 | 一种数据存储方法、终端及计算机可读存储介质 |
US11726671B2 (en) * | 2021-06-24 | 2023-08-15 | Micron Technology, Inc. | Memory access mode selection |
TWI828391B (zh) * | 2022-10-27 | 2024-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103455437A (zh) * | 2012-05-30 | 2013-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据储存装置操作方法 |
CN104750626A (zh) * | 2013-12-26 | 2015-07-01 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
TW201835922A (zh) * | 2017-03-27 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101510120B1 (ko) * | 2008-11-21 | 2015-04-10 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
-
2018
- 2018-12-18 TW TW107145763A patent/TWI749279B/zh active
-
2019
- 2019-07-08 CN CN201910609861.2A patent/CN111338562B/zh active Active
- 2019-12-05 US US16/704,629 patent/US11216381B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455437A (zh) * | 2012-05-30 | 2013-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据储存装置操作方法 |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN104750626A (zh) * | 2013-12-26 | 2015-07-01 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
TW201835922A (zh) * | 2017-03-27 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11216381B2 (en) | 2022-01-04 |
US20200192810A1 (en) | 2020-06-18 |
CN111338562A (zh) | 2020-06-26 |
TWI749279B (zh) | 2021-12-11 |
TW202024924A (zh) | 2020-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426619B (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN111338562B (zh) | 数据存储装置与数据处理方法 | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US11157399B2 (en) | Data storage devices and data processing methods with dynamic programming scheme | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
CN113377282B (zh) | 数据存储装置与数据处理方法 | |
TWI852599B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
CN111966606B (zh) | 数据储存装置与数据处理方法 | |
CN111596859B (zh) | 数据储存装置与数据处理方法 | |
US12130743B2 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search | |
US12117932B2 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update | |
US20240232093A1 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search |
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 |