CN116795279A - 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 - Google Patents
在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 Download PDFInfo
- Publication number
- CN116795279A CN116795279A CN202211357247.XA CN202211357247A CN116795279A CN 116795279 A CN116795279 A CN 116795279A CN 202211357247 A CN202211357247 A CN 202211357247A CN 116795279 A CN116795279 A CN 116795279A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- host
- mapping
- address
- sram
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 177
- 238000013507 mapping Methods 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000004044 response Effects 0.000 claims description 15
- 230000003068 static effect Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012005 ligant binding assay Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000036316 preload Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
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/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
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种于一快闪存储器装置中快取地址映射资讯的方法与装置。该方法包含:因应一主机读取/写入命令,查阅一组至快闪存储器映射表,以判断处理该主机读取/写入命令所需的一映射关系组是否已被载入至一快闪存储器控制器的一DRAM中,并据此获取一节点索引;将该节点索引记录到该快闪存储器控制器的一SRAM的一第一区域中;透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该映射关系组中获取指出与该主机读取/写入命令相关联的一实体地址的一映射地址;以及根据已获取的该映射地址对一快闪存储器进行一读取/写入操作。
Description
技术领域
本发明关于快闪存储器,尤指一种用在以快闪存储器为基础的储存设备中,对地址映射资讯进行快取的方法和相关的快闪存储器控制器。
背景技术
一般来说,快闪存储器控制器依赖逻辑至实体(logical-to-physical,L2P)映射表,将主机读取/写入命令(host read/write command)的逻辑地址转译为快闪存储器上的实体地址。L2P映射表通常持续地储存在快闪存储器中,并在处理主机读取/写入命令时,载入至快闪存储器控制器的动态随机存取存储器(dynamic random access memory,DRAM)中。受限于DRAM的容量,以及L2P映射表的可观尺寸,每当处理主机读取/写入命令时,只有一部分的L2P映射表(例如,一组(group)或几组映射关系)会被载入至DRAM中。因此,需要倚赖组至快闪存储器(group-to-flash,G2F)映射表,记录储存有L2P映射关系组的最新数据的实体地址。对于主机随机读取/写入命令来说,需要经常查阅G2F映射表。例如,需要先查阅G2F映射表以判断所需的L2P映射关系是否已载入至DRAM,然后再次查阅G2F映射表以确定所需的L2P映射关系组储存在DRAM的哪个位置中。对于主机写入命令来说,需要查阅G2F映射表,以便在将主机写入数据移动到不同的实体位置(例如,快闪存储器或数据快取)时,修改主机写入数据的L2P地址。频繁地查阅G2F映射表可能会对处理主机读取/写入命令的响应时间产生负面影响,导致快闪存储器的读写性能下降。有鉴于此,需要提供一种创新方法,可以更有效率地载入并快取(caching)L2P映射资讯。
发明内容
有鉴于此,本发明的目的在于提供一种在以快闪存储器为基础的储存装置中,载入和快取地址映射资讯的方法。在本发明实施例中,从G2F映射表中所获得的节点索引(其用以指出L2P映射表中的映射关系组的实体地址),将被快取在快闪存储器控制器的SRAM中。这样可以避免在处理主机随机读取/写入命令时反复查阅G2F映射表。另外,在本发明实施例中,主机写入命令的数据所对应的L2P地址将被快取在快闪存储器控制器的SRAM中所储存的一L2P地址阵列中,这很大程度节省了在快闪存储器控制器和快闪存储器之间移动主机写入数据的过程中,更新主机写入数据的L2P地址的时间。
本发明的实施例提供一种用于一快闪存储器装置中快取(caching)地址映射资讯的方法。该快闪存储器装置包含一快闪存储器控制器与一快闪存储器。该方法包含:因应一主机读取/写入命令,查阅一组至快闪存储器(group-to-flash,G2F)映射表,以判断处理该主机读取/写入命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已被载入至该快闪存储器控制器的一动态随机存取存储器(dynamic random accessmemory,DRAM)中,并据此获取一节点索引,其中,该L2P映射关系组为一L2P映射表的一部份,且该节点索引指出该DRAM的哪一个存储器节点(memory mode)储存所需的该L2P映射关系组;将该节点索引记录到该快闪存储器控制器的一静态随机存取存储器(static randomaccess memory,SRAM)的一第一区域中;在不查阅该G2F映射表的情况下,透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取/写入命令相关联的一实体地址;以及根据已获取的该L2P地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
本发明的实施例提供一种用于存取一快闪存储器的一快闪存储器控制器。该快闪存储器控制器包含:一储存单元、一动态随机存取存储器(dynamic random accessmemory,DRAM)、一静态随机存取存储器(static random access memory,SRAM)以及一处理单元。该储存单元用以储存资讯与程序码。该处理单元可执行该程序码以用以执行:因应一主机读取/写入命令,查阅一组至快闪存储器(group-to-flash,G2F)映射表,以判断处理该主机读取/写入命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已被载入至该DRAM中,并据此获取一节点索引,其中,该L2P映射关系组为一L2P映射表的一部份,且该节点索引指出该DRAM的哪一个存储器节点(memory mode)储存所需的该L2P映射关系组;将该节点索引记录到该SRAM的一第一区域中;在不查阅该G2F映射表的情况下,透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取/写入命令相关联的一实体地址;以及根据已获取的该L2P地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
附图说明
图1为本发明实施例的快闪存储器装置与快闪存储器控制器的架构示意图。
图2为本发明实施例的快闪存储器控制器的内部存储器的架构示意图。
图3绘示本发明的一实施例如何对L2P映射表中的一L2P映射关系组进行快取。
图4绘示本发明的另一实施例如何对L2P映射表中的一L2P映射关系组进行快取。
图5为本发明实施例中用于处理主机读取/写入命令的一预载入阶段的流程图。
图6为本发明实施例中用于处理主机读取/写入命令的一载入状态检查阶段的流程图。
图7为本发明实施例中用于处理主机读取命令的一命令服务阶段的流程图。
图8为本发明实施例中用于处理主机写入命令的一命令服务阶段的流程图。
图9为本发明实施例中用于处理主机读取命令的载入与快取地址映射资讯的方法的流程图。
【符号说明】
10 电子装置
50 主机装置
52 处理器
100 存储器装置
110 存储器控制器
120 NV存储器
122_1~122_N NV存储器元件
112 处理单元
112C 程序码
112M 只读存储器
113 内部存储器
114 控制逻辑电路
118 传输接口电路
1131 DRAM
1131_1~1131_2 DRAM的区域
1132 共享SRAM
1132_1~1131_3 共享SRAM的区域
1133 L1快取
1134 L2快取
S101~S107、S201~S214、S301~S308、S401~S407、S510~S540 步骤
具体实施方式
在以下内文中,描述了许多具体细节以提供阅读者对本发明实施例的透彻理解。然而,本领域的技术人士将能理解,如何在缺少一个或多个具体细节的情况下,或者利用其他方法或元件或材料等来实现本发明。在其他情况下,众所皆知的结构、材料或操作不会被示出或详细描述,从而避免模糊本发明的核心概念。
说明书中提到的“一实施例”意味着该实施例所描述的特定特征、结构或特性可能被包含于本发明的至少一个实施例中。因此,本说明书中各处出现的“在一实施例中”不一定意味着同一个实施例。此外,前述的特定特征、结构或特性可以以任何合适的形式在一个或多个实施例中结合。
图1为本发明实施例的电子装置10的架构示意图。如图所示,电子装置10包含主机装置(host device)50与存储器装置100。主机装置50可包含:一随机存取存储器(randomaccess memory,RAM)54与用来控制主机装置50的运作的至少一处理器52。在不同实施例中,主机装置50可以是(但不限于):智慧型手机、平板电脑、可穿戴装置、个人电脑、笔记型电脑、数位相机、数位录影机、游戏主机、车用导航系统、印表机、扫描器或者伺服器系统。另外,在不同实施例中,存储器装置100可以是(但不限于):可携式存储器装置(如符合SD/MMC、CF、MS、XD或UFS标准的记忆卡)、固态硬碟(solid state drive,SSD)以及各种嵌入式(embedded)储存装置(如符合UFS或EMMC标准的嵌入式储存装置)。
在本发明的各种实施例中,存储器装置100可以包含如存储器控制器110之类的控制器,并且还可以包含非挥发性(non-volatile,NV)存储器120。NV存储器120用于储存资讯。NV存储器120可以包括一个或多个NV存储器元件,例如,多个NV存储器元件122_1~122_N。再者,NV存储器120可以是快闪存储器,并且NV存储器元件122_1~122_N可以分别是多个快闪存储器晶片或多个快闪存储器裸晶,但本发明不限于此。另外,NV存储器120可以包含具有二维结构的存储器单元(memory cells),或者可以包含具有三维结构的存储器单元。
如图1所示,存储器控制器110可以包含如处理单元112(其可能进一步包含多个处理器核心,用于同时执行不同任务)之类的处理电路、只读存储器(read-only memory,ROM)112M之类的储存元件、控制逻辑电路114、内部存储器113、传输接口电路118。其中,这些元件的至少一部分(例如,一部分或全部)可以透过总线彼此互连。内部存储器113可以由随机存取存储器(RAM)来实现,例如,内部存储器113可以包括静态随机存取存储器(staticRAM,SRAM)和动态随机存取存储器(dynamic RAM,DRAM)。内部存储器113可以被配置为向存储器控制器110提供内部储存空间,例如,暂时性地储存变数(variables)和数据。此外,本实施例中的只读存储器112M用以储存程序码112C,而处理单元112用以执行程序码112C,从而控制NV存储器120的存取。或者,程序码112C亦可储存于NV存储器120中。
存储器控制器110透过控制逻辑电路114控制NV存储器120的读取、写入和抹除。此外,存储器控制器110可以同时基于来自主机装置50的主机命令,执行使用者数据的写入,并且藉由垃圾回收操作或耗损平衡(wear-leveling)操作从NV存储器120中搜集有效数据,将有效数据写入至NV存储器120的不同储存空间。控制逻辑电路114可以进一步用于控制NV存储器120,其包含错误校正(error correction code,ECC)电路(未示出),以执行数据保护和/或校正,但是本发明不限于此。传输接口电路118符合特定的数据传输规范(例如,序列进阶技术附加装置(Serial Advanced Technology Attachment,SATA)规范、通用序列总线(Universal Serial Bus,USB)规范、快捷外设互联标准(Peripheral ComponentInterconnect Express,PCIE)规范、嵌入式多媒体卡(Embedded Multimedia Card,eMMC)规范、或通用快闪存储器储存(Universal Flash Storage,UFS)规范,并可以根据特定的通信规范与主机装置50进行通讯。
一般来说,主控装置50可以透过向存储器控制器110发送主机命令和相应的逻辑地址,间接地存取存储器装置100。存储器控制器110接收主机命令和逻辑地址,并将主机命令(host command)转译为存储器操作命令(memory operation command),并且进一步用存储器操作命令控制NV存储器120,从而对NV存储器120内具有特定实体地址的存储器单元(memory cells)或页(pages),执行读取、写入或抹除操作,其中实体地址对应于逻辑地址。当存储器控制器110对NV存储器元件122_1~122_N内的任何NV存储器元件122_k执行抹除操作时,NV存储器元件122_k中的至少一个区块(block)可能被抹除。另外,NV存储器元件122_k的每个区块可以包含多个页,并且可以在一个或多个页上执行读取或写入等存取操作。
图2绘示本发明实施例的内部存储器113的架构。如图2所示,内部存储器113包括DRAM 1131、共享SRAM 1132、L1快取(cache)1133和L2快取1134。具体而言,DRAM 1131的第一区域1131_1被配置为用于储存DRAM变数。在一个实施例中,储存在第一区域1131_1中的变数可以是一个或多个组至快闪存储器(group-to-flash,G2F)映射表,以及/或DRAM节点资讯(即,指出每个DRAM节点的载入状态)。DRAM 1131的第二区域1131_2用于储存一个或多个逻辑至实体(logical-to-physical,L2P)映射表。
此外,共享SRAM 1132的第一区域1132_1被配置为用于储存变数。例如,可以将第一区域1132_1配置为请求先进先出缓冲区(request first-in and firs-out(FIFO)buffer)1132F。请求FIFO缓冲区1132F可以被处理单元112的多个处理核心共享,以进行数据和命令交换。此外,还可以配置第一区域1132_1来对L2P地址阵列进行快取。共享SRAM1132的第二区域1132_2可以被配置为用于对主机写入数据进行快取的缓冲区(即,主机写入数据快取(host write data cache))。共享SRAM 1132的第三区域1132_3可被配置为,用以缓存将被写入至NV存储器120的数据,或缓存从NV存储器120载入的L2P映射关系组(即,L2P映射表的一部分)的数据的缓冲区。此外,内部存储器113可以包含多个L1快取1133和多个L2快取。每个L1快取1133可以专属于一个处理核心,并可用于对共享SRAM 1132的第一区域1132_1中的变数进行快取,以及/或对DRAM 1131的第一区域1131_1中的变数进行快取。例如,对请求FIFO缓冲区1132F中的资讯进行快取,以及对缓存于L2P地址阵列中的L2P地址进行快取。每个L2快取1134可以专属于一个处理核心,并可用于对共享SRAM 1132的第一区域1132_1中的变数进行快取,例如,对与主机读取/写入命令相关联的L2P值进行快取。
一般而言,主机装置50可透过传输接口电路118向存储器控制器110提供具有逻辑区块地址(logical block address,LBA)的主机读取/写入命令,以指出从NV存储器120中读取数据的地址,或者是数据写入至NV存储器120的地址。然而,为了优化数据存取效率,具有连续逻辑区块地址的数据会分布在NV存储器120的不同实体区域。因此,需要藉由L2P映射表指出每笔数据被储存在NV存储器120中的哪个实体位置。L2P映射表储存每个逻辑地址的数据,实际上在NV存储器120中所储存的实体位置的资讯,并且这些资讯系依照逻辑储存地址的顺序排列。其中,逻辑储存地址可以用LBA来表示,每个LBA与固定长度的实体储存空间相关联,例如256K、512K或1024K位元组(bytes)。
此外,L2P映射表系持续性地储存在NV存储器120中。当存储器控制器110打算处理主机读取/写入命令时,L2P映射表将被载入至内部存储器113内,从而提高地址转译(address translation)的效率。然而,由于L2P映射表可能需要高达1G位元组的储存容量(取决于NV存储器120的实际容量),这个大小对于内部存储器113来说非常可观。因此,L2P映射表将被分割成多个映射关系组。每次存储器控制器110执行主机读取/写入命令时,只会载入L2P映射表中一个或数个映射关系组(即,L2P映射表的一部份)。在一个实施例中,每个映射关系组可能包含1024个L2P项目(entry),其中,每个L2P项目包含一个逻辑地址及其对应的实体地址。在下文中,用语“L2P值”和“L2P地址”用于描述:“指出NV存储器120中,与主机读取/写入命令相对应的实体地址,或指出内部存储器113中临时储存数据的实体地址的相关资讯”。
在本发明的部分实施例中,当收到主机读取命令的LBA时,存储器控制器110会检查对应于此LBA的一个L2P映射关系组是否已经被载入至内部存储器113。若是,存储器控制器110会透过参考已载入的L2P映射关系组来执行L2P地址转译,并相应地对NV存储器120执行读取/写入操作(透过控制逻辑电路114)。若否,存储器控制器110将主机读取命令的LBA所对应的L2P映射关系组,载入至共享SRAM 1132,并且直接存取SRAM 1132来获取处理主机读取命令所需的L2P地址。请参考图3来进一步理解上述概念。如图3所示,L2P映射表中的多个L2P映射关系组可以储存在NV存储器120的储存单元中。如果处理主机读取/写入命令的LBA所需的L2P映射关系组尚未被载入至内部存储器113中,该L2P映射关系组将首先载入到共享SRAM 1132的第三区域1132_3内。处理单元112会直接存取L2P项目,以获取处理主机读取命令所需的L2P值。
在本发明的部分实施例中,L2P映射表的多个L2P映射关系组可能已经被载入到DRAM 1131。因应主机读取/写入命令,本发明将透过查阅一个组至快闪存储器(group-to-flash,G2F)映射表,来获得节点索引(node index)。节点索引将指出DRAM 1131中哪个存储器元件(例如,存储器节点)储存有L2P映射关系组。如图所示。如图4,所获得的节点索引,将被记录在请求FIFO缓冲区(request FIFO buffer)1132F的储存单元FIFO_0~FIFO_x中。为了处理主机读取/写入命令,处理单元112将透过直接查阅请求FIFO缓冲区1132F中的节点索引,来存取与主机读取命令的LBA相关联的L2P值,而无需反复查阅G2F映射表。此外,当处理主机写入命令时,处理单元112使用共享SRAM 1132的第一区域1132_1来储存一个L2P地址阵列。如图所示,主机写入命令的数据Unit_0~Unit_y将被快取(cached)在一个主机写入快取(host write cache)中,而主机写入快取实质上又位于共享SRAM 1132的第二区域1132_2内。储存在共享SRAM 1132的第一区域1132_1中的L2P地址阵列,将用于对主机写入命令的数据(以下称为主机写入数据)所分别对应的L2P地址Addr_0~Addr_y进行快取。由于主机写入数据可能会在内部存储器113的不同存储器之间移动,因此主机写入数据Unit_0~Unit_y的L2P地址Addr_0~Addr_y需要经常更新,从而以反映出最新的实体地址。在L2P地址阵列中快取并更新主机写入数据Unit_0~Unit_y的L2P地址Addr_0~Addr_y会比直接对L2P映射表进行更新和修改节省更多时间,因为对L2P映射表进行更新和修改需要查阅G2F映射表。
本发明实施例透过三个阶段来处理,来自主机装置50的主机读取/写入命令,这三个阶段包括预载入(pre-loading)阶段、载入状态检查(loading state checking)阶段和命令服务(command serving)阶段。图5绘示本发明实施例中预载入阶段的流程图。在预载入阶段中,处理主机读取/写入命令所需的一个或多个L2P映射关系组将被载入并快取在内部存储器113中。如图所示,流程开始于步骤S101,其判断是否来自主机装置50的主机读取/写入命令只需要一组L2P映射关系组来进行地址转译。若否,则流程进入步骤S102然后结束。在步骤S102中,将请求FIFO缓冲区1132F中的载入状态设置为“No_Prefectch”,这代表需要载入多于一个的L2P映射关系组来处理主机读取/写入命令。在这种情况下,多个L2P映射关系组将被载入到DRAM 1131的第二区域1131_2内,而非如图3所示的实施例,直接载入到共享SRAM 1132的第三区域1132_3。如果主机读取/写入命令只需要载入一个L2P映射关系组,则流程进入步骤S103。在步骤S103中,判断主机读取/写入命令是否属于对齐的4K(aligned 4K)读取命令,并且是否所需的唯一组L2P映射关系组尚未载入到DRAM 1131的第二区域1131_2。这项判断将透过查阅G2F映射表来完成,G2F映射表可指出每个L2P映射关系组的数据储存在内部存储器113或NV存储器120上,并且亦指出L2P映射关系组的数据在DRAM 1131的第二区域1131_2的哪个存储器元件(例如,存储器节点)上。
如果步骤S103的检查结果为否,则流程进入步骤S104。在步骤S104中,由于所需的L2P映射关系组可能被储存在DRAM 1131的第二区域1131_2中,因此,用于指出所需的L2P映射关系组储存在DRAM 1131的哪个节点上的一节点索引,将会透过查阅G2F映射表来获取。所获取的节点索引将被记录到请求FIFO缓冲区1132F的储存单元中(例如,FIFO_0~FIFO_x),并且请求FIFO缓冲区1132F中的载入状态被设置为“Prefectch_Node”。此外,如果主机命令不是对齐的4K读取命令,但所需的L2P映射关系组尚未载入到DRAM 1131的第二区域1131_2,则流程可进入步骤S104。在这种情况下,将发出命令以从NV存储器120中,载入所需的L2P映射关系组至DRAM 1131的第二区域1131_2,以及将节点索引记录到请求FIFO缓冲区1132F中,并将请求FIFO缓冲区1132F中的载入状态设置为“Prefectch_Node”。
另一方面,如果步骤S103的判断结果为是,则流程进入步骤S105。在步骤S105中,再次查阅G2F映射表,以判定所需的唯一一组L2P映射关系组是否是哑数据(dummy)。这可透过查阅所需的唯一一组L2P映射关系组储存在NV存储器120的哪个位置来实现。如果所需的唯一一组L2P映射关系组不在NV存储器120上,则判断所需的唯一一组L2P映射关系组是哑数据,且流程继续到步骤S106。在步骤S106中,将请求FIFO缓冲区1132F中的载入状态设置为“Prefetch_Dummy”,并且在请求FIFO中缓冲区1132中对应的L2P值(即,对应至主机读取命令的逻辑地址的NV存储器120的实体地址)将被填入成哑数据。如果步骤S105的判断结果为否,则表示所需的唯一一组L2P映射关系组储存在NV存储器120上,故流程进入步骤S107。在步骤S107中,将请求FIFO缓冲区1132F中的载入状态设置为“Prefetch_From_SRAM_Issued”,并且发出一命令,该命令指示从NV存储器120,将所需的唯一一组L2P映射关系组载入到共享SRAM 1132的第三区域1132_3。在部分实施例中,将所需的唯一一组L2P映射关系组从NV存储器120载入到第三区域1132_3的任务可以由处理单元112的另一个处理核心接管。一旦从NV存储器120载入所需的唯一一组L2P映射关系组到SRAM 1132的第三区域1132_3的任务完成后,请求FIFO缓冲区1132F中的载入状态将被设置为“Prefetch_From_SRAM_Finished”。
图6绘示本发明实施例中的载入状态检查阶段的流程图。在载入状态检查阶段中,将检查L2P映射表中所需的L2P映射关系组是否已正确地载入并快取在快闪存储器控制器110的内部存储器113中。如图所示,此流程始于步骤S201,其检查请求FIFO缓冲区1132F中的载入状态是否为“No_Prefetch”。如果是,则流程进入步骤S204;否则,则流程进入步骤S202。在步骤S202中,检查请求FIFO缓冲区1132F中的载入状态是否为“Prefetch_Node”。如果是,则流程进入步骤S203;否则,流程进入步骤S208。在步骤S203中,由于请求FIFO缓冲区1132F中的载入状态为“Prefetch_Node”,处理单元112的一个处理核心可以从请求FIFO缓冲区1132F中获取节点索引,判断DRAM 1131第二区域1131_2中的哪个节点储存了所需的L2P映射关系组。之后,流程进入步骤S206。在步骤S206中,检查请求FIFO缓冲区1132F中的节点索引所指出的L2P映射关系组,与DRAM节点中实际保存的L2P映射关系组是否一致。这是因为存储器控制器110的内部操作,例如垃圾回收(garbage collection)操作,可能导致请求FIFO缓冲区1132F中的索引资讯,与实际储存在DRAM节点中的L2P映射关系组不一致。因此,有必要确认节点索引所指出的L2P映射关系组与DRAM节点中实际保存的L2P映射关系组相同。
若步骤S206的检查结果为是,则流程进入步骤S205;否则,流程进入步骤S207。在步骤S204中,由于请求FIFO缓冲区1132F中的载入状态为“No_Prefetch”,因此,若所需的L2P映射关系组已经被载入至DRAM 1131时,则透过查阅G2F映射表来获得节点索引。否则,载入所需的L2P映射关系组的命令将被发出,从而令所需的L2P映射关系组,从NV存储器120载入至DRAM 1131的第二区域1131_2。在步骤S204完成后,流程进入步骤S205。在步骤S205中,由于DRAM节点中的L2P映射关系组确实与请求FIFO缓冲区1132F中的节点索引所指出的L2P映射关系组吻合,因此进一步检查将L2P映射关系组载入到DRAM 1131的第二区域1131_2的操作是否完成。如果步骤S205的检查结果为是,则流程进入步骤S210;否则,流程进入步骤S214。在步骤S207中,由于DRAM节点中的L2P映射关系组未能与请求FIFO缓冲区1132F中的节点索引所指出的L2P映射关系组吻合,请求FIFO缓冲区1132F中的载入状态将被设置为“No_Prefetch”。之后,流程返回步骤S201。
在步骤S208中,检查请求FIFO缓冲区1132F中的载入状态是否为“Prefetch_Dummy”。如果步骤S208的检查结果为是,则流程进入S213;否则,流程进入步骤S209。在步骤S209中,检查请求FIFO缓冲区1132F中的载入状态是否为“Prefetch_from_SRAM_Finished”。如前所述,一旦所需的L2P映射关系组被载入到SRAM 1132的第三区域1132_3后,请求FIFO缓冲区1132F中的载入状态将被设置为“Prefetch_from_SRAM_Finished”。如果是,则流程进入步骤S213;否则,流程进入步骤S210。在步骤S210中,进一步检查请求FIFO缓冲区1132F中的载入状态是否为“Prefetch_from_SRAM_Error”。进一步来说,从NV存储器120载入L2P映射关系组的过程中,负责载入L2P映射关系组的另一处理核心可能会遇到载入错误。如果发生载入错误,此另一处理核心可以将请求FIFO缓冲区1132F中的载入状态设置为“Prefetch_from_SRAM_Error”。如果步骤S210的检查结果为否,则代表没有载入错误发生,流程将在此处暂停,直到L2P映射表中的所需L2P映射关系组已完全加载。同时,当前处理核心可以开始处理其他任务。
在步骤S210中,检查节点载入后,是否发生载入错误。如果步骤S210的检查结果为是,则流程进入步骤S212;否则,流程进入步骤S213。在步骤211中,由于请求FIFO缓冲区1132F中的载入状态不是“Prefetch_from_SRAM_Finished”,故进一步检查请求FIFO缓冲区1132F中的载入状态是否为“Prefetch_from_SRAM_Error”。如果是,则流程进入步骤212;否则,流程进入步骤214。在步骤212中,由于节点载入后存在载入错误,或者请求FIFO缓冲区1132F中的载入状态为“Prefetch_From_SRAM_Error”,将采用错误处理(error handling)程序来纠正错误。据此,若错误处理程序已经完成,则流程将进入步骤213。在步骤213中,处理阶段结束,且流程进入命令服务阶段。在步骤214中,由于L2P映射表中的所需L2P映射关系组尚未完全载入,流程将持续等待至载入完成。
图7绘示本发明实施例中命令服务阶段(用于处理主机读取命令的部分)的流程图。在此阶段,NV存储器120的读取操作将根据从L2P映射关系组中所获取的L2P地址来进行。如图所示,流程始于步骤S301,其检查请求FIFO缓冲区1132F中的载入状态是否为“No_Prefetch”。如果是,则流程进入步骤S304;否则,流程进入步骤302。在步骤S302中,检查请求FIFO缓冲区1132F的载入状态是否为“Prefetch_Node”。如果步骤S302的检查结果为是,则流程进入步骤S307;否则,流程进入步骤303。在步骤S303中,检查请求FIFO缓冲区1132F的载入状态是否为“Prefetch_Dummy”。如果步骤S303的检查结果为是,则流程进入步骤S306;否则,流程进入步骤S305。
在步骤S304中,由于请求FIFO缓冲区1132F的载入状态为“No_Prefetch”,因此将透过查阅G2F映射表来获取节点索引。透过参考所获取的节点索引,进而从DRAM 1131中获取与主机读取命令相关联的L2P地址。在步骤S305中,由于请求FIFO缓冲区1132F的载入状态不是“Prefetch_Dummy”,这代表所需的L2P映射关系组应该已经被某个处理核心载入到共享SRAM 1132的第三区域1132_3中,并且,与主机读取命令相关联的L2P值,已由另一个处理核心从所需的L2P映射关系组中获得,并储存到请求FIFO缓冲区1132F中。因此,在步骤S305之后,可以从请求FIFO缓冲区1132F中获得与主机读取命令相关联的L2P值。在步骤S306中,由于请求FIFO缓冲区1132F的载入状态为“Prefetch_Dummy”,处理核心将以哑数据来获取L2P值。
在步骤S307中,由于请求FIFO缓冲区的载入状态为“Prefetch_Node”,将从请求FIFO缓冲区1132F中获取节点索引。根据所获取的节点索引,可以从节点索引所指出的DRAM1131的第二区域1131_2中,获得与主机读取命令相关联的L2P地址。在完成步骤S304、S305、S306或S307之后,流程进入步骤S308,将透过向NV存储器120发出快闪存储器读取命令(flash read command)来执行对NV存储器120的读取操作,或将执行哑读取(dummy read,亦即,向主机装置50回报空值(null value))。
图8绘示本发明实施例中命令服务阶段(用于处理主机写入命令的部分)的流程图。如图所示,流程始于步骤S401,其检查请求FIFO缓冲区1132F的载入状态是否为“No_Prefetch”。若步骤401的检查结果为是,则流程进入步骤S403;否则,流程进入步骤402。在步骤S402中,检查请求FIFO缓冲区1132F的载入状态是否为“Prefetch_Node”。若步骤S402的检查结果为是,则流程进入步骤S404。在步骤S403中,由于请求FIFO缓冲区1132F的载入状态为“No_Prefetch”,所以透过查阅G2F映射表,得到节点索引。因此,可以透过查阅节点索引,从DRAM 1131的第二区域1131_2获取与主机写入命令相关联的L2P地址。在步骤S404中,由于请求FIFO缓冲器1132F的载入状态为“Prefetch_Node”,因此可以从请求FIFO缓冲区1132F中获得节点索引,并且透过查阅节点索引,从DRAM 1131中获得与主机写入命令相关联的L2P地址。
完成步骤S403或S404后,可以获取主机写入命令的L2P地址,并进入步骤S405。在步骤S405中,处理单元112的一个处理核心,将根据主机写入数据在共享SRAM 1132的第二区域1132_2中的储存地址,更新该主机写入数据的L2P地址。如图4所示,一旦主机写入数据的一个单元(例如,Unit_0~Unit_y)被快取在共享SRAM 1132的第二区域1132_2中,其对应的L2P地址(例如,Addr_0~Addr_y)将被快取在共享SRAM 1132的第一区域1132_1中所保存的一个L2P地址阵列中。据此,主机写入数据的L2P地址,将根据该主机写入数据保存在共享SRAM 1132的第二区域1132_2的实体地址进行更新。
之后,流程进入步骤S406,检查是否需要冲出(flush)主机写入快取(即,共享SRAM1132的第二区域1132_2)。也就是说,如果主机写入快取已满,或者是主机装置50发出快取冲出命令(cache flushing command),主机写入数据将被写入至NV存储器120。若是,则流程进入步骤S407,对NV存储器120进行写入操作。其中,藉由向NV存储器120发出快闪存储器写入命令,将快取在共享SRAM 1132的第二区域1132_2中的主机写入数据,写入到NV存储器120中。再者,快取在L2P地址阵列中的主机写入数据所对应的L2P地址,需要根据主机写入数据实际被写入的NV存储器120的新实体地址来更新。
图9绘示本发明实施例中载入和快取地址映射资讯的方法。如图所示,本发明的方法包含以下的简化流程:
S510:因应一主机读取/写入命令,查阅一G2F映射表,以判断处理该主机读取/写入命令所需的一L2P映射关系组是否已被载入至一快闪存储器控制器的一DRAM中,并据此获取一节点索引,其中,该L2P映射关系组为一L2P映射表的一部份,且该节点索引指出该DRAM的哪一个存储器节点储存所需的该L2P映射关系组;
S520:将该节点索引记录到该快闪存储器控制器的一SRAM的一第一区域中;
S530:在不查阅该G2F映射表的情况下,透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取/写入命令相关联的一实体地址;以及
S540:根据已获取的该L2P地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
由于上述各步骤的原理和具体细节已经透过先前的实施例进行了详细说明,在此不再赘述。需要说明的是,上述流程可以透过增加其他额外的步骤,或者进行适当的修饰和调整,更好地实现快闪存储器的存取控制,从而提高快闪存储器的读取与写入性能。此外,说明书的实施例中阐述的所有操作,都可以透过图1所示的存储器控制器110来实现。
本发明的实施例可使用硬件、软件、固件以及其相关结合来完成。藉由适当的一指令执行系统,可使用储存于一存储器中的软件或固件来实作本发明的实施例。就硬件而言,则是可应用下列任一技术或其相关结合来完成:具有可根据数据信号执行逻辑功能的逻辑闸的一个别运算逻辑、具有合适的组合逻辑闸的一特定应用集成电路(applicationspecific integrated circuit,ASIC)、可程序闸阵列(programmable gate array,PGA)或一现场可程序闸阵列(field programmable gate array,FPGA)等。
说明书内的流程图中的流程和方块示出了基于本发明的各种实施例的系统、方法和电脑软件产品所能实现的架构,功能和操作。在这方面,流程图或功能方块图中的每个方块可以代表程序码的模组,区段或者是部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。另外,功能方块图以及/或流程图中的每个方块,以及方块的组合,基本上可以由执行指定功能或动作的专用硬件系统来实现,或专用硬件和电脑程序指令的组合来实现。这些电脑程序指令还可以存储在电脑可读媒体中,该媒体可以使电脑或其他可编程数据处理装置以特定方式工作,使得存储在电脑可读媒体中的指令,实现流程图以及/或功能方块图中的方块所指定的功能/动作。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种用于一快闪存储器装置中快取(caching)地址映射资讯的方法,该快闪存储器装置包含一快闪存储器控制器与一快闪存储器,该方法包含:
因应一主机读取/写入命令,查阅一组至快闪存储器(group-to-flash,G2F)映射表,以判断处理该主机读取/写入命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已被载入至该快闪存储器控制器的一动态随机存取存储器(dynamic randomaccess memory,DRAM)中,并据此获取一节点索引,其中,该L2P映射关系组为一L2P映射表的一部份,且该节点索引指出该DRAM的哪一个存储器节点(memory mode)储存所需的该L2P映射关系组;
将该节点索引记录到该快闪存储器控制器的一静态随机存取存储器(static randomaccess memory,SRAM)的一第一区域中;
在不查阅该G2F映射表的情况下,透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取/写入命令相关联的一实体地址;以及
根据已获取的该L2P地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
2.如权利要求1所述的方法,其特征在于,另包含:
因应该主机写入命令,将一主机写入数据储存在该SRAM的一第二区域上的一主机写入快取中;
根据该SRAM中储存该主机写入数据的一个或多个实体地址,更新与该主机写入数据相关联的一个或多个L2P地址;以及
将已更新的一个或多个L2P地址快取在一L2P地址阵列中,其中该L2P地址阵列储存在该SRAM的该第一区域中。
3.如权利要求2所述的方法,其特征在于,另包含:
因应对该主机写入快取的一冲出(flush)命令,将该主机写入快取中的该主机写入数据写入至该快闪存储器;以及
根据该快闪存储器中写入该主机写入数据的一个或多个实体地址,更新被快取在该L2P地址阵列中,与该主机写入数据相关联的一个或多个L2P地址。
4.如权利要求1所述的方法,其特征在于,另包含:
若所需的该L2P映射关系组尚未载入至该DRAM中,则将所需的该L2P映射关系组从该快闪存储器载入至该DRAM。
5.如权利要求1所述的方法,其特征在于,将该节点索引记录到该快闪存储器控制器的该SRAM的该一第一区域中的步骤包含:
在对该快闪存储器进行该读取/写入操作之前,将多个节点索引纪录到从该SRAM的该第一区域上配置出的一先进先出(First-In,First-Out)缓冲区中的储存单元。
6.如权利要求1所述的方法,其特征在于,另包含:
查阅该G2F映射表,以判断所需的该L2P映射关系组是否为哑数据(dummy);以及
若所需的该L2P映射关系组为哑数据,则回报一空值(null value)来回应该主机读取命令。
7.一种用于存取一快闪存储器的一快闪存储器控制器,包含:
一储存单元,用以储存资讯与程序码;
一动态随机存取存储器(dynamic random access memory,DRAM);
一静态随机存取存储器(static random access memory,SRAM);以及
一处理单元,可执行该程序码以用以执行:
因应一主机读取/写入命令,查阅一组至快闪存储器(group-to-flash,G2F)映射表,以判断处理该主机读取/写入命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已被载入至该DRAM中,并据此获取一节点索引,其中,该L2P映射关系组为一L2P映射表的一部份,且该节点索引指出该DRAM的哪一个存储器节点(memory mode)储存所需的该L2P映射关系组;
将该节点索引记录到该SRAM的一第一区域中;
在不查阅该G2F映射表的情况下,透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取/写入命令相关联的一实体地址;以及
根据已获取的该L2P地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
8.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以:
因应该主机写入命令,将一主机写入数据储存在该SRAM的一第二区域上的一主机写入快取中;
根据该SRAM中储存该主机写入数据的一个或多个实体地址,更新与该主机写入数据相关联的一个或多个L2P地址;以及
将已更新的一个或多个L2P地址快取在一L2P地址阵列中,其中该L2P地址阵列储存在该SRAM的该第一区域中。
9.如权利要求8所述的快闪存储器控制器,其特征在于,该处理单元用以:
因应对该主机写入快取的一冲出(flush)命令,将该主机写入快取中的该主机写入数据写入至该快闪存储器;以及
根据该快闪存储器中写入该主机写入数据的一个或多个实体地址,更新被快取在该L2P地址阵列中,与该主机写入数据相关联的一个或多个L2P地址。
10.如权利要求7所述的快闪存储器控制器,其特征在于,其中若所需的该L2P映射关系组尚未载入至该DRAM中时,该处理单元用以将所需的该L2P映射关系组从该快闪存储器载入至该DRAM。
11.如权利要求7所述的快闪存储器控制器,其特征在于,在对该快闪存储器进行该读取/写入操作之前,该处理单元用以将多个节点索引纪录到从该SRAM的该第一区域上配置出的一先进先出(First-In,First-Out)缓冲区中的储存单元。
12.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以:
查阅该G2F映射表,以判断所需的该L2P映射关系组是否为哑数据(dummy);以及
若所需的该L2P映射关系组为哑数据,回报一空值(null value)来回应该主机读取/写入命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/693,420 US11704238B1 (en) | 2022-03-14 | 2022-03-14 | Method and apparatus for accessing L2P address without searching group-to-flash mapping table |
US17/693,420 | 2022-03-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795279A true CN116795279A (zh) | 2023-09-22 |
Family
ID=87163225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211357247.XA Pending CN116795279A (zh) | 2022-03-14 | 2022-11-01 | 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11704238B1 (zh) |
CN (1) | CN116795279A (zh) |
TW (1) | TWI824761B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058268B1 (en) * | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
US20170024326A1 (en) * | 2015-07-22 | 2017-01-26 | CNEX-Labs, Inc. | Method and Apparatus for Caching Flash Translation Layer (FTL) Table |
US10402340B2 (en) * | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US20190205264A1 (en) * | 2017-12-28 | 2019-07-04 | Qualcomm Incorporated | Memory management unit performance through cache optimizations for partially linear page tables of fragmented memory |
CN110765156A (zh) * | 2018-07-09 | 2020-02-07 | 慧荣科技股份有限公司 | 链表搜索装置及方法 |
-
2022
- 2022-03-14 US US17/693,420 patent/US11704238B1/en active Active
- 2022-10-07 TW TW111138151A patent/TWI824761B/zh active
- 2022-11-01 CN CN202211357247.XA patent/CN116795279A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI824761B (zh) | 2023-12-01 |
TW202336595A (zh) | 2023-09-16 |
US11704238B1 (en) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11636032B2 (en) | Memory system, data storage device, user device and data management method thereof | |
US9053007B2 (en) | Memory system, controller, and method for controlling memory system | |
CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US8612666B2 (en) | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory | |
USRE44052E1 (en) | Flash memory management method | |
EP2519880B1 (en) | Micro-update architecture for address tables | |
KR20200033985A (ko) | 논리적/물리적 매핑 | |
CN111459844B (zh) | 数据储存装置及用于存取逻辑至物理地址映射表的方法 | |
US10802734B2 (en) | Method for fast boot read | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
US20200320012A1 (en) | Memory system and method for operating the same | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
KR20200020464A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
CN114527931A (zh) | 存储器系统 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US9575883B2 (en) | Control device, storage device, and storage control method | |
US10990323B2 (en) | Flash memory controller, memory device and method for accessing flash memory module | |
CN116795279A (zh) | 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 | |
CN116755605A (zh) | 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 | |
KR20090046568A (ko) | 플래시 메모리 시스템 및 그것의 쓰기 방법 | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
CN111198651B (zh) | 进行存储空间管理的方法以及数据存储装置及其控制器 | |
CN102023925A (zh) | 固态硬盘及其使用方法 | |
CN118051167A (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 |