CN111596859B - 数据储存装置与数据处理方法 - Google Patents
数据储存装置与数据处理方法 Download PDFInfo
- Publication number
- CN111596859B CN111596859B CN201911016641.5A CN201911016641A CN111596859B CN 111596859 B CN111596859 B CN 111596859B CN 201911016641 A CN201911016641 A CN 201911016641A CN 111596859 B CN111596859 B CN 111596859B
- Authority
- CN
- China
- Prior art keywords
- mapping table
- memory
- data
- memory controller
- logical address
- 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
- 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
- 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
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/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
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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/0656—Data buffering 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
Abstract
本发明涉及数据储存装置与数据处理方法。数据储存装置包括存储器装置以及存储器控制器。存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页。存储器控制器包括缓冲存储器,第一映射表储存于缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据指向哪个逻辑数据页。于存储器控制器根据写入指令将对应于第一逻辑地址的逻辑数据页的数据写入既定存储器区块时,存储器控制器于第一映射表格中记录逻辑地址,根据既定函数转换第一逻辑地址以产生位元表格的第一栏位索引值,并且将位元表格中第一栏位索引值所对应的位元值设定为第一数值。
Description
技术领域
本发明有关于适用于一数据储存装置的一种数据处理方法,可有效加速存储器装置的读取操作。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedMulti Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,本发明提出一种新的数据处理方法,可有效地处提升存储器装置的存取效能。
发明内容
本发明揭示一种数据储存装置,包括一存储器装置以及一存储器控制器。存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页。存储器控制器耦接存储器装置,用以存取存储器装置。存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址。存储器控制器包括一缓冲存储器,第一映射表储存于缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据指向哪个逻辑数据页。缓冲存储器还储存一位元表格,位元表格包含多个栏位,各栏位用以记录一位元值。于存储器控制器根据一写入指令将对应于一第一逻辑地址的一逻辑数据页的数据写入既定存储器区块时,存储器控制器于第一映射表格中记录一逻辑地址,根据一既定函数转换第一逻辑地址以产生位元表格的一第一栏位索引值,并且将位元表格中第一栏位索引值所对应的位元值设定为一第一数值。
本发明揭示一种数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置以及一存储器控制器,存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页,存储器控制器耦接存储器装置,用以存取存储器装置,该方法包括:由存储器控制器选择一既定存储器区块用以接收数据;由存储器控制器接收一写入指令,用以将对应于一第一逻辑地址的一逻辑数据页的数据写入既定存储器区块;由存储器控制器于一第一映射表格中记录第一逻辑地址,其中第一映射表系储存于存储器控制器的一缓冲存储器,用以记录写入既定存储器区块的各物理数据页的数据是指向哪个逻辑数据页;由存储器控制器根据一既定函数转换第一逻辑地址以产生一位元表格的一第一栏位索引值,其中位元表格储存于缓冲存储器,位元表格包含多个栏位,各栏位用以记录一位元值;以及由存储器控制器将位元表格中第一栏位索引值所对应的位元值设定为一第一数值。
附图说明
图1是显示根据本发明的一实施例所述的数据储存装置的示意图。
图2A与图2B是显示根据本发明的一实施例所述的逻辑地址与栏位索引值的转换示意图。
图3是显示根据本发明的一实施例所述的数据处理方法流程图。
图4是显示根据本发明的另一实施例所述的数据处理方法流程图。
符号说明
100-数据储存装置;
110-存储器控制器;
112-微处理器;
112M-只读存储器;
112C-程序码;
114-控制逻辑;
116-缓冲存储器;
118-介面逻辑;
120-存储器装置;
130-主机装置;
132-编码器;
134-解码器;
Bit_Table-位元表格;
Table_1-映射表格。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图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会对应地于第一映射表格中记录多个逻辑地址。根据本发明的一实施例,第一映射表格为一快闪存储器对主机映射(Flashto Host mapping,缩写为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的各栏位中。但必须注意的是,本发明并不限于依物理数据页编号少至多的顺序将数据写入既定存储器区块。
根据本发明的一实施例,于既定存储器区块被写满时,第一映射表格Table_1的各栏位的编辑也对应地完成。理论上,第一映射表格Table_1所记录的资讯为最新的快闪存储器对主机映射资讯。于存储器控制器110完成第一映射表格Table_1的编辑时,存储器控制器110会进一步根据第一映射表格Table_1所储存的内容编辑一第二映射表格Table_2,用以将此最新的映射资讯更新至第二映射表格Table_2。
根据本发明的一实施例,第二映射表格Table_2被储存于存储器装置120的系统区域。第二映射表格Table_2为一主机对快闪存储器映射(Host to Flash mapping table,缩写为H2F)表格,第二映射表格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所记录的内容。例如,将既定存储器区块的一存储器区块编号以及第一映射表格Table_1的阵列索引值0写入第二映射表格Table_2的第1个栏位Table_2[0],用以作为逻辑地址为0的逻辑数据页的映射资讯。值得注意的是,载入缓冲存储器116中用以进行内容的编辑或更新的第二映射表格Table_2的部分,因实际上为存储器装置120所储存的第二映射表格Table_2的复本,因此于本发明的实施例中,同样被称为第二映射表格Table_2。
一般而言,当存储器控制器110需要读取一特定逻辑数据页的数据时,需透过搜寻上述映射表格以取得特定逻辑数据页(或其所对应的逻辑地址)的映射资讯,即,存储器控制器110需藉由搜寻上述映射表格得知此特定逻辑数据页的数据实际上系被储存于存储器装置120的哪个存储器区块的哪个物理数据页。
举例而言,由于第一映射表格Table_1所记录的资讯为最新的快闪存储器对主机映射资讯,因此存储器控制器110可选择先搜寻第一映射表格Table_1(有时为了加速,亦可同时于背景将第二映射表格Table_2中包含此逻辑地址的一或多笔记录载入缓冲存储器116中)。于搜寻第一映射表格Table_1时,存储器控制器110需要自第一映射表格Table_1所储存的第1笔记录开始逐一比对第一映射表格Table_1所记录的逻辑地址是否与此特定逻辑数据页所对应的逻辑地址相同,若发现第一映射表格Table_1的某一栏位所记录的逻辑地址与此特定逻辑数据页所对应的逻辑地址相同,则可根据第一映射表格Table_1中记录此逻辑地址的阵列索引值取得对应于此逻辑地址的一逻辑数据页的数据被储存于既定存储器区块的哪个物理数据页的映射资讯。若存储器控制器110于搜寻完第一映射表格Table_1的所有记录后都无法找到任一个栏位所记录的逻辑地址与此特定逻辑数据页所对应的逻辑地址相同,则可判定此特定逻辑数据页的数据并未被储存于目前作为快取存储器(或称缓存器buffer)的既定存储器区块。于此情况下,存储器控制器110必须进一步读取第二映射表格Table_2,以找出此特定逻辑数据页的数据实际上被储存于存储器装置120的哪个存储器区块的哪个物理数据页的映射资讯。
然而,搜寻映射表格通常需要花费较多的时间,特别是搜寻第一映射表格Table_1的操作,需要逐一比对每一笔记录。为了加速取得特定逻辑数据页(或其所对应的逻辑地址)的映射资讯,本发明提出了一种新颖的数据处理方法,使存储器控制器110可于判断所需资讯有足够高的机率存在于第一映射表格Table_1时,才执行搜寻第一映射表格Table_1的操作。或者,当存储器控制器110藉由所述的数据处理方法判断所需资讯并未存在于第一映射表格Table_1时,可直接省略搜寻第一映射表格Table_1的操作。如此一来,可解决上述问题,更可有效加速存储器装置的读取操作。
根据本发明的一实施例,存储器控制器110可于缓冲存储器116内建立一位元表格Bit_Table。位元表格Bit_Table包含多个栏位,各栏位用以记录一位元值。存储器控制器110可伴随第一映射表格Table_1的编辑操作相应地更新位元表格Bit_Table。此外,当存储器控制器110可选择另一存储器区块作为快取存储器时,例如,当作为缓存器的既定存储器区块被写满且存储器控制器110已将第一映射表格Table_1所储存的内容更新至第二映射表格Table_2时,存储器控制器110可重置第一映射表格Table_1,并且对应地重置位元表格Bit_Table。举例而言,存储器控制器110可将第一映射表格Table_1与位元表格Bit_Table的各栏位设定为对应的预设值。
根据本发明的一实施例,位元表格Bit_Table所包含的栏位数量小于主机系统所包含的所有逻辑数据页的一数量。换言之,根据本发明的一实施例,逻辑数据页与位元表格Bit_Table的栏位有着多对一的对应关系,即,位元表格Bit_Table的一个栏位内容可用以指示或代表一或多个逻辑数据页的资讯。
值得注意的是,虽于以上实施例中位元表格Bit_Table的各栏位用以记录一位元值,本发明并不限于此。于本发明的其他实施例中,位元表格Bit_Table的各栏位亦可记录多个位元的位元值。
于一般操作中,存储器控制器110可自主机装置130接收一写入指令W_CMD,用以指示将一逻辑数据页的数据写入存储器装置120。写入指令W_CMD包含所欲写入的逻辑数据页所对应的逻辑地址,而存储器控制器110因应写入指令W_CMD将数据写入目前作为快取存储器(或称缓存器buffer)的既定存储器区块。
根据本发明的一实施例,于存储器控制器110根据写入指令W_CMD将对应于一第一逻辑地址的一逻辑数据页的数据写入既定存储器区块时,存储器控制器110于第一映射表格中记录第一逻辑地址。除此之外,存储器控制器110进一步根据一既定函数转换第一逻辑地址以产生位元表格Bit_Table的一第一栏位索引值,并且将位元表格Bit_Table中该第一栏位索引值所对应的位元值设定为一第一数值,举例而言,第一数值可为位元值"1"。
根据本发明的一实施例,既定函数可以是任一用以将输入数据的分布打散的函数,并且其特征在于可用以将任意数据量的输入数据映射至固定数据量的输出数据。此外,输入数据的数据量可大于输出数据的数据量。即,假设既定函数的运算被表示为Θ(n)=m,其中输入数据n的大小为N,输出数据m的大小为M,其中n与m为非负的整数,N与M为正整数,则N>M。根据本发明的一实施例,既定函数可以是一随机函数或一杂凑函数(hashfunction),其特征在于输入数据n在经过既定函数的运算后,其所对应的输出数据m在值域能趋近平均分布(uniform distributed)。
此外,根据本发明的一实施例,对于根据同一既定函数而产生的两个不同数值的输出数据m,其所对应的输入数据n也会是不同的,即,既定函数可有确定性的结果。然而,对于两个数值不同的输入数据n,其根据同一既定函数而产生输出数据m可能是相同的,也可能是不同。
图2A与2B是显示根据本发明的一实施例所述的逻辑地址与栏位索引值的转换示意图。如图2A所示,位元表格Bit_Table的各栏位的位元值可被预先设定为第二数值,例如,位元值"0"。假设第一映射表格Table_1的第一笔记录所记录的逻辑地址为10,存储器控制器110根据既定函数转换逻辑地址10所产生的数值为7,则此数值即为逻辑地址10所对应的栏位索引值。因此,存储器控制器110可将位元表格Bit_Table的第8个栏位,即,Bit_Table[7],的位元值改为所述的第一数值,例如,位元值"1"。于图2A中,以灰色网底表示出位元值被设定为"1"的栏位。接着,假设第一映射表格Table_1的第二笔记录所记录的逻辑地址为5,存储器控制器110根据相同的既定函数转换逻辑地址5所产生的数值为2,存储器控制器110可如图2B所示将位元表格Bit_Table的第3个栏位,即,Bit_Table[2],的位元值改为所述的第一数值,例如,位元值"1",并依此类推。
图3是显示根据本发明的一实施例所述的数据处理方法流程图。图3是显示写入操作中编辑第一映射表格与位元表格的流程。首先,存储器控制器110选择一既定存储器区块用以接收数据(步骤S302)。接着,存储器控制器110接收用以指示写入对应于一逻辑地址的数据的一写入指令,并因应此写入指令执行写入操作,用以将对应于此逻辑地址的逻辑数据页的数据写入存储器装置120(步骤S304)。接着,存储器控制器110于第一映射表格Table_1中记录此逻辑地址(步骤S306)。接着,存储器控制器110根据一既定函数转换此逻辑地址以产生位元表格Bit_Table的一栏位索引值(步骤S308)。最后,存储器控制器110将位元表格Bit_Table中该栏位索引值所对应的位元值设定为第一数值(步骤S310)。
根据本发明的一实施例,位元表格Bit_Table所记载的内容可帮助存储器控制器110用于判断所需资讯是否有足够高的机率存在于第一映射表格Table_1。更具体的说,根据本发明的一实施例,当存储器控制器110需根据一读取指令R_CMD读取一第二逻辑地址所对应的数据时,存储器控制器110可先根据既定函数转换第二逻辑地址以产生一数值作为所述的位元表格Bit_Table的一第二栏位索引值,并且根据第二栏位索引值所对应的位元值决定是否搜寻第一映射表格Table_1。换言之,存储器控制器110可根据第二栏位索引值所对应的位元值决定要先搜寻第一映射表格Table_1,或者不搜寻第一映射表格Table_1而改为直接读取第二映射表格Table_2,以找出第二逻辑地址的映射资讯(即,第二逻辑地址所对应的逻辑数据页的映射资讯)。
图4是显示根据本发明的另一实施例所述的数据处理方法流程图。图4是显示读取操作中藉由搜寻映射表格取得特定逻辑地址的映射资讯的流程。首先,存储器控制器110接收用以指示读取对应于一逻辑地址的数据的一读取指令(步骤S402)。接着,存储器控制器110根据既定函数转换此逻辑地址以产生位元表格Bit_Table的一栏位索引值,并且根据此栏位索引值查找位元表格Bit_Table(步骤S404)。接着,存储器控制器110判断位元表格Bit_Table中此栏位索引值所对应的位元值是否被设定为第一数值,以决定是否搜寻第一映射表格Table_1。
根据本发明的一实施例,当此索引值所对应的位元值被设定为不同于第一数值的第二数值时,存储器控制器110便可直接判断出第一映射表格Table_1并未包含此逻辑地址的映射资讯,因此,存储器控制器110决定不搜寻第一映射表格Table_1。于本发明的实施例中,存储器控制器110略过第一映射表格Table_1的搜寻,改为直接根据此逻辑地址读取第二映射表格Table_2,以取得此逻辑地址的映射资讯(步骤S408)。
由于第二映射表格Table_2必须储存大量逻辑地址的映射资讯,因此,第二映射表格Table_2所包含的数据实际上可被储存于多个物理数据页,存储器控制器110可根据此逻辑地址选择第二映射表格Table_2的一部分,例如,包含此逻辑地址的映射资讯的一物理数据页,并将第二映射表格Table_2的该部分载入缓冲存储器116,再根据此逻辑地址读取第二映射表格Table_2的该部分,以取得此逻辑地址所对应的逻辑数据页的映射资讯,即,对应于此逻辑地址的一逻辑数据页的数据被储存于哪个存储器区块的哪个物理数据页的资讯。
得到此逻辑地址的映射资讯后,存储器控制器110可根据此映射资讯读取存储器装置120,以取得此逻辑地址所对应的数据内容(步骤S410)
另一方面,当此栏位索引值所对应的位元值被设定为第一数值时,存储器控制器110可判断出第一映射表格Table_1有足够高的机率包含此逻辑地址的映射资讯。因此,存储器控制器110可决定根据此逻辑地址搜寻第一映射表格Table_1(步骤S412),以确认此逻辑地址是否被记录于第一映射表格Table_1,并且根据此逻辑地址是否被记录于第一映射表格Table_1而判断此逻辑地址所对应的数据是否被储存于既定存储器区块中(步骤S414)。
若此逻辑地址所对应的数据被储存于既定存储器区块,则存储器控制器110可根据第一映射表格Table_1中记录此逻辑地址的栏位的阵列索引值取得此逻辑地址的映射资讯(步骤S416),即,对应于此逻辑地址的一逻辑数据页的数据被储存于既定存储器区块的哪个物理数据页的资讯。
得到此逻辑地址的映射资讯后,存储器控制器110可根据此映射资讯读取存储器装置120,以取得此逻辑地址所对应的数据内容(步骤S410)
若经搜寻第一映射表格Table_1后发现此逻辑地址所对应的数据未被储存于既定存储器区块,则存储器控制器110进一步根据此逻辑地址读取第二映射表格Table_2,以取得此逻辑地址的映射资讯(步骤S408)。
如上述,于本发明的实施例中,既定函数可以是一随机函数或一杂凑函数(hashfunction),用以将输入数据n在经过运算后,其所对应的输出数据m在值域能趋近平均分布(uniform distributed)。因此,于本发明的应用中,将逻辑地址输入既定函数进行运算后,所产生的栏位索引值趋近平均分布,且为将逻辑地址的分布打散后的结果。所述分布打散为,例如,对于连续的逻辑地址,对应的栏位索引值可为不连续的。
根据本发明的一实施例,既定函数可包含两个数值,例如,第一数值与第二数值,第一数值可选择为2的幂次方,第二数值可选择为远离相邻的任一个2的幂次方的质数。举例而言,于本发明的一实施例中,第一数值为32,第二数值为23。由于32的前一个2的幂次方数值为16,数值16与32之间的质数包含17、19、23、29与31,为使输出数据在值域能有较佳的平均分布的结果,选择于上述五个质数中相对于数值16与32都是距离够远的质数23为较佳。或者,选择上述五个质数中的中间数或最接近中间数的一数值为较佳。以下根据此两个数值作为范例说明于本发明的一实施例中逻辑地址与栏位索引值的转换。
假设位元表格Bit_Table的大小为16K位元组,各栏位记录一位元,则位元表格Bit_Table的总栏位数(即,位元表格Bit_Table的大小)为16384*8=131072。假设位元表格Bit_Table所使用的起始栏位索引值为0,则位元表格Bit_Table的最大栏位索引值为131071。
于此实施例中,既定函数的运算包含两阶段的运算,第一阶段为将逻辑地址乘上第二数值后,将所得第一计算结果对第一数值进行模除,以得到第二计算结果。即,第二计算结果为将第一计算结果除以第一数值所得的余数。接着再将位元表格Bit_Table的总栏位数乘上第二计算结果与第一数值的一比值,所得的第三计算结果即为此逻辑地址所对应的栏位索引值。
举例而言,当存储器控制器110需将逻辑地址1001的资讯记录于第一映射表格Table_1时,此逻辑地址1001所对应的栏位索引值可根据以下式(1)与式(2)计算而得:
1001*23 mod 32=15 式(1)
131072*15/32=61440 式(2)
所得的数值61440即为此逻辑地址1001所对应的栏位索引值。
举另一例而言,逻辑地址1002所对应的栏位索引值可根据以下式(3)与式(4)计算而得:
1002*23 mod 32=6 式(3)
131072*6/32=24576 式(4)
所得的数值24576即为此逻辑地址1002所对应的栏位索引值。
举又另一例而言,逻辑地址1003所对应的栏位索引值可根据以下式(5)与式(6)计算而得:
1003*23 mod 32=29 式(5)
131072*29/32=118784 式(6)
所得的数值118784即为此逻辑地址1003所对应的栏位索引值。
由以上范例可知,藉由既定函数的运算,输入的连续的逻辑地址所得的数值分布会被打散。使得输出数据(即,逻辑地址所对应的栏位索引值)在值域能趋近平均分布(uniform distributed)。
如上述,藉由本发明的数据处理方法,使存储器控制器110可根据位元表格Bit_Table的内容简单地判断出所需资讯是否存在于第一映射表格Table_1中,其中位元表格Bit_Table的内容可明确指示出所需资讯有可能存在于第一映射表格Table_1中,或者所需资讯并不存在于第一映射表格Table_1中。若仅根据位元表格Bit_Table的内容即可判断出所需资讯并不存在于第一映射表格Table_1时,便可直接省略搜寻第一映射表格Table_1的操作。如此一来,可有效避免无效搜寻第一映射表格Table_1的操作所耗费的时间,解决上述问题,并更可进一步加速存储器装置的读取操作。
申请专利范围中用以修饰元件的"第一"、"第二"、"第三"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (16)
1.一种数据储存装置,包括:
一存储器装置,包括多个存储器区块,各存储器区块包括多个物理数据页;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中该存储器控制器选择一既定存储器区块用以接收数据,并且对应地于一第一映射表格中记录多个逻辑地址,
其中该存储器控制器包括一缓冲存储器,该第一映射表系储存于该缓冲存储器,用以记录写入该既定存储器区块的各物理数据页的数据指向哪个逻辑数据页,
其中该缓冲存储器还储存一位元表格,该位元表格包含多个栏位,各栏位用以记录一位元值,
于该存储器控制器根据一写入指令将对应于一第一逻辑地址的一逻辑数据页的数据写入该既定存储器区块时,该存储器控制器于该第一映射表格中记录该第一逻辑地址,根据一既定函数转换该第一逻辑地址以产生该位元表格的一第一栏位索引值,并且将该位元表格中该第一栏位索引值所对应的该位元值设定为一第一数值。
2.如权利要求1所述的数据储存装置,其特征在于,于该存储器控制器需根据一读取指令读取一第二逻辑地址所对应的数据时,该存储器控制器根据该既定函数转换该第二逻辑地址以产生该位元表格的一第二栏位索引值,并且根据该位元表格中该第二栏位索引值所对应的该位元值决定是否搜寻该第一映射表格。
3.如权利要求2所述的数据储存装置,其特征在于,当该第二栏位索引值所对应的该位元值被设定为不同于该第一数值的一第二数值时,该存储器控制器决定不搜寻该第一映射表格。
4.如权利要求2所述的数据储存装置,其特征在于,该存储器装置储存一第二映射表格,该第二映射表格对应于多个逻辑数据页,用以记录这些逻辑数据页的映射资讯,并且其中当该第二栏位索引值所对应的该位元值被设定为不同于该第一数值的一第二数值时,该存储器控制器决定直接读取该第二映射表格而不搜寻该第一映射表格。
5.如权利要求4所述的数据储存装置,其特征在于,该存储器控制器还根据该第二逻辑地址选择该第二映射表格的一部分并将该第二映射表格的该部分载入该缓冲存储器,以及根据该第二逻辑地址读取该第二映射表格的该部分,以取得对应于该第二逻辑地址的一逻辑数据页的该映射资讯。
6.如权利要求2所述的数据储存装置,其特征在于,当该第二栏位索引值所对应的该位元值被设定为该第一数值时,该存储器控制器决定根据该第二逻辑地址搜寻该第一映射表格,并且根据该第二逻辑地址是否被记录于该第一映射表格以判断该第二逻辑地址所对应的数据是否被储存于该既定存储器区块。
7.如权利要求6所述的数据储存装置,其特征在于,当该存储器控制器判断该第二逻辑地址所对应的数据被储存于该既定存储器区块时,该存储器控制器根据该第一映射表格中记录该第二逻辑地址的一阵列索引值取得对应于该第二逻辑地址的一逻辑数据页的映射资讯。
8.如权利要求6所述的数据储存装置,其特征在于,该存储器装置储存一第二映射表格,该第二映射表格对应于多个逻辑数据页,用以记录这些逻辑数据页的映射资讯,其中当该存储器控制器判断该第二逻辑地址所对应的数据未被储存于该既定存储器区块时,该存储器控制器更根据该第二逻辑地址选择该第二映射表格的一部分并将该第二映射表格的该部分载入该缓冲存储器,以及根据该第二逻辑地址读取该第二映射表格的该部分,以取得对应于该第二逻辑地址的一逻辑数据页的该映射资讯。
9.一种数据处理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置以及一存储器控制器,该存储器装置包括多个存储器区块,各存储器区块包括多个物理数据页,该存储器控制器耦接该存储器装置,用以存取该存储器装置,该方法包括:
由该存储器控制器选择一既定存储器区块用以接收数据;
由该存储器控制器接收一写入指令,用以将对应于一第一逻辑地址的一逻辑数据页的数据写入该既定存储器区块;
由该存储器控制器于一第一映射表格中记录该第一逻辑地址,其中该第一映射表储存于该存储器控制器的一缓冲存储器,用以记录写入该既定存储器区块的各物理数据页的数据指向哪个逻辑数据页;
由该存储器控制器根据一既定函数转换该第一逻辑地址以产生一位元表格的一第一栏位索引值,其中该位元表格储存于该缓冲存储器,该位元表格包含多个栏位,各栏位用以记录一位元值;以及
由该存储器控制器将该位元表格中该第一栏位索引值所对应的该位元值设定为一第一数值。
10.如权利要求9所述的方法,其特征在于,还包括:
由该存储器控制器接收一读取指令,用以读取一第二逻辑地址所对应的数据;
由该存储器控制器根据该既定函数转换该第二逻辑地址以产生该位元表格的一第二栏位索引值;以及
由该存储器控制器根据该位元表格中该第二栏位索引值所对应的该位元值决定是否搜寻该第一映射表格。
11.如权利要求10所述的方法,其特征在于,由该存储器控制器根据该位元表格中该第二栏位索引值所对应的该位元值决定是否搜寻该第一映射表格的步骤还包括:
当该第二栏位索引值所对应的该位元值被设定为不同于该第一数值的一第二数值时,决定不搜寻该第一映射表格。
12.如权利要求10所述的方法,其特征在于,由该存储器控制器根据该位元表格中该第二栏位索引值所对应的该位元值决定是否搜寻该第一映射表格的步骤还包括:
当该第二栏位索引值所对应的该位元值被设定为不同于该第一数值的一第二数值时,由该存储器控制器决定直接读取一第二映射表格而不搜寻该第一映射表格,其中该第二映射表格储存于该存储器装置,该第二映射表格对应于多个逻辑数据页,用以记录这些逻辑数据页的映射资讯。
13.如权利要求12所述的方法,其特征在于,还包括:
由该存储器控制器根据该第二逻辑地址选择该第二映射表格的一部分;
由该存储器控制器将该第二映射表格的该部分载入该缓冲存储器;以及
由该存储器控制器根据该第二逻辑地址读取该第二映射表格的该部分,以取得对应于该第二逻辑地址的一逻辑数据页的该映射资讯。
14.如权利要求10所述的方法,其特征在于,由该存储器控制器根据该位元表格中该第二栏位索引值所对应的该位元值决定是否搜寻该第一映射表格的步骤还包括:
当该第二栏位索引值所对应的该位元值被设定为该第一数值时,由该存储器控制器决定根据该第二逻辑地址搜寻该第一映射表格;以及
由该存储器控制器根据该第二逻辑地址是否被记录于该第一映射表格判断该第二逻辑地址所对应的数据是否被储存于该既定存储器区块。
15.如权利要求14所述的方法,其特征在于,还包括:
当该第二逻辑地址所对应的数据被储存于该既定存储器区块时,由该存储器控制器根据该第一映射表格中记录该第二逻辑地址的一阵列索引值取得对应于该第二逻辑地址的一逻辑数据页的映射资讯。
16.如权利要求14所述的方法,其特征在于,还包括:
当该第二逻辑地址所对应的数据未被储存于该既定存储器区块时,由该存储器控制器决定读取一第二映射表格,其中该第二映射表格系储存于该存储器装置,该第二映射表格对应于多个逻辑数据页,用以记录这些逻辑数据页的映射资讯;
由该存储器控制器根据该第二逻辑地址选择该第二映射表格的一部分;
由该存储器控制器将该第二映射表格的该部分载入该缓冲存储器;以及
由该存储器控制器根据该第二逻辑地址读取该第二映射表格的该部分,以取得对应于该第二逻辑地址的一逻辑数据页的该映射资讯。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108105660 | 2019-02-20 | ||
TW108105660A TWI697779B (zh) | 2019-02-20 | 2019-02-20 | 資料儲存裝置與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596859A CN111596859A (zh) | 2020-08-28 |
CN111596859B true CN111596859B (zh) | 2023-03-14 |
Family
ID=72042106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911016641.5A Active CN111596859B (zh) | 2019-02-20 | 2019-10-24 | 数据储存装置与数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10942858B2 (zh) |
CN (1) | CN111596859B (zh) |
TW (1) | TWI697779B (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697076B1 (en) * | 2001-12-31 | 2004-02-24 | Apple Computer, Inc. | Method and apparatus for address re-mapping |
CN101241472B (zh) * | 2008-03-07 | 2010-12-22 | 威盛电子股份有限公司 | 映射管理方法及系统 |
WO2013028859A1 (en) * | 2011-08-24 | 2013-02-28 | Rambus Inc. | Methods and systems for mapping a peripheral function onto a legacy memory interface |
TWI544334B (zh) * | 2012-05-30 | 2016-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置操作方法 |
KR20150015764A (ko) * | 2013-08-01 | 2015-02-11 | 삼성전자주식회사 | 스토리지 디바이스 및 이를 포함하는 스토리지 시스템 |
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
US9552289B1 (en) * | 2014-11-25 | 2017-01-24 | Seagate Technology Llc | Bitwise addressing of entries in a forward lookup table |
WO2016097809A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type |
US9971686B2 (en) * | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
TWI537728B (zh) * | 2015-09-23 | 2016-06-11 | 群聯電子股份有限公司 | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
KR102682253B1 (ko) * | 2016-11-29 | 2024-07-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10459636B2 (en) * | 2017-03-24 | 2019-10-29 | Sandisk Technologies Llc | System and method for managing data in non-volatile memory systems having multiple mapping layers |
US10296457B2 (en) * | 2017-03-30 | 2019-05-21 | Intel Corporation | Reducing conflicts in direct mapped caches |
US10884947B2 (en) * | 2017-11-17 | 2021-01-05 | SK Hynix Inc. | Methods and memory systems for address mapping |
KR20190087217A (ko) * | 2018-01-16 | 2019-07-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10496334B2 (en) * | 2018-05-04 | 2019-12-03 | Western Digital Technologies, Inc. | Solid state drive using two-level indirection architecture |
US11301369B2 (en) * | 2019-01-24 | 2022-04-12 | Western Digital Technologies, Inc. | Logical to physical mapping management using low-latency non-volatile memory |
-
2019
- 2019-02-20 TW TW108105660A patent/TWI697779B/zh active
- 2019-10-24 CN CN201911016641.5A patent/CN111596859B/zh active Active
- 2019-12-05 US US16/704,646 patent/US10942858B2/en active Active
Non-Patent Citations (1)
Title |
---|
黄昆 ; 张大方 ; .一种面向深度数据包检测的索引拆分Bloom过滤器.2010,(08),全文. * |
Also Published As
Publication number | Publication date |
---|---|
TWI697779B (zh) | 2020-07-01 |
US20200264981A1 (en) | 2020-08-20 |
CN111596859A (zh) | 2020-08-28 |
TW202032376A (zh) | 2020-09-01 |
US10942858B2 (en) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN111338562B (zh) | 数据存储装置与数据处理方法 | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
US8812772B2 (en) | Data merging method for non-volatile memory and controller and storage apparatus using the same | |
CN108733577B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
US8762685B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
CN111596859B (zh) | 数据储存装置与数据处理方法 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
US11055231B2 (en) | Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table | |
TWI852599B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
CN111399758B (zh) | 数据储存装置、存取装置及数据处理方法 | |
US20240231624A1 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table regions | |
CN116841457A (zh) | 存储器控制器与数据处理方法 | |
CN118860265A (zh) | 数据储存装置与数据处理方法 | |
CN112181859A (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 |