CN116755605A - 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 - Google Patents
在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 Download PDFInfo
- Publication number
- CN116755605A CN116755605A CN202310172793.4A CN202310172793A CN116755605A CN 116755605 A CN116755605 A CN 116755605A CN 202310172793 A CN202310172793 A CN 202310172793A CN 116755605 A CN116755605 A CN 116755605A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- mapping relation
- address
- mapping
- dram
- 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 180
- 238000013507 mapping Methods 0.000 title claims abstract description 166
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 12
- 230000003068 static effect Effects 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 56
- 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
- 238000013459 approach Methods 0.000 description 1
- 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
- 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
- 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/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
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0886—Variable-length word access
-
- 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/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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
-
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/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/221—Static RAM
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- 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/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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
本发明涉及一种于一快闪存储器装置中快取映射表的方法与装置。该快闪存储器装置包含一快闪存储器控制器与一快闪存储器。该方法包含:因应一主机读取命令,判断该主机读取命令所需的一逻辑至实体(logical‑to‑physical,L2P)映射关系组是否已经载入至该快闪存储器控制器的一动态随机存取存储器中;若该L2P映射关系组尚未载入至该动态随机存取存储器中,将该L2P映射关系组从该快闪存储器载入至该快闪存储器控制器的一静态随机存取存储器中;直接存取该静态随机存取存储器,以从该L2P映射关系组中获取一L2P地址;以及根据该L2P地址对该快闪存储器进行一读取操作,以回应该主机读取命令。
Description
技术领域
本发明有关于快闪存储器,尤指一种用在以快闪存储器为基础的储存装置中,对地址映射资讯进行快取的方法和相关的快闪存储器控制器。
背景技术
一般来说,快闪存储器控制器依赖逻辑至实体(logical-to-physical,L2P)映射表,将主机读/写命令(host read/write command)的逻辑地址转译为快闪存储器上的实体地址。L2P映射表通常持续地储存在快闪存储器中,并在处理主机读/写命令时,载入至快闪存储器控制器所包含的动态随机存取存储器(dynamic random access memory,DRAM)中。受限于DRAM的容量,以及L2P映射表的可观尺寸,每当处理主机读/写命令时,只有一部分的L2P映射表(例如,一组或几组映射关系)会被载入至DRAM中。进一步来说,快闪存储器控制器中的直接存储器存取(direct memory access,DMA)控制器会将处理主机读/写命令所需的L2P映射关系组载入至DRAM,并通知快闪存储器控制器的处理单元,L2P映射表中新的映射关系组已被载入,与其相对应的DRAM地址。之后,处理单元需要对与前述DRAM地址相关的快取线(cache lines,例如、L2快取)进行无效处理(cache invalidation),并撷取最新资讯。在处理主机随机读/写命令时,快取无效可能会频繁发生,这是因为L2P映射表的不同部分需要频繁地载入至DRAM中,以处理随机读/写命令。由于快取无效需要相当长的时间来处理(例如,2~3ms),一旦快取无效频繁发生,快闪存储器的读写性能将显著下降。有鉴于此,需要提供一种创新方法,可以更有效率地载入L2P映射资讯。
发明内容
有鉴于此,本发明的目的在于提供一种在以快闪存储器为基础的储存装置中,载入和快取L2P映射表的方法。在本发明实施例中,主机读取命令所需的L2P映射资讯将不会被载入至快闪存储器控制器的动态随机存取存储器内。取而代之的是,主机读取命令所需的L2P映射资讯将被载入至快闪存储器控制器的静态随机存取存储器内。并且,快闪存储器控制器透过直接存取静态随机存取存储器来获取L2P映射资讯。这种方法可显著地减少快取无效频繁发生时所耗费的时间。
本发明的实施例提供一种用于一快闪存储器装置中快取映射表的方法。其中,该快闪存储器装置包含一快闪存储器控制器与一快闪存储器。该方法包含:因应一主机读取命令,判断处理该主机读取命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已经载入至该快闪存储器控制器的一动态随机存取存储器(dynamic randomaccess memory,DRAM)中,其中该L2P映射关系组为一L2P映射表的一部份;若所需的该L2P映射关系组尚未载入至该DRAM中,将所需的该L2P映射关系组从该快闪存储器载入至该快闪存储器控制器的一静态随机存取存储器(static random access memory,SRAM)中;直接存取该SRAM,以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取命令相关联的一实体地址;以及根据所获取的该L2P地址对该快闪存储器进行一读取操作,以回应该主机读取命令。
本发明的实施例提供一种用于存取一快闪存储器的一快闪存储器控制器。该快闪存储器控制器包含:一储存单元、一动态随机存取存储器(dynamic random accessmemory,DRAM)、一静态随机存取存储器(static random access memory,SRAM)以及一处理单元。该储存单元用以储存资讯与程序码。该处理单元可执行该程序码以用以执行:因应一主机读取命令,判断处理该主机读取命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已经载入至该DRAM中,其中该L2P映射关系组为一L2P映射表的一部份。该若所需的该L2P映射关系组尚未载入至该DRAM中,将所需的该L2P映射关系组从该快闪存储器载入至该SRAM中;以及直接存取该SRAM,以从所需的该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 传输接口电路
1131DRAM
1131_1~1131_2DRAM的区域
1132共享SRAM
1132_1~1131_3共享SRAM的区域
1133L1快取
1134L2快取
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)中,而主机写入快取实质上又位于共享SRAM1132的第二区域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:因应一主机读取命令,判断处理该主机读取命令所需的一L2P映射关系组是否已经载入至一快闪存储器控制器的一DRAM中;
S520:若所需的该L2P映射关系组尚未载入至该DRAM中,将所需的该L2P映射关系组从该快闪存储器载入至该快闪存储器控制器的一SRAM中;
S530:直接存取该SRAM,以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取命令相关联的一实体地址;以及
S540:根据所获取的该L2P地址对该快闪存储器进行一读取操作,以回应该主机读取命令。
由于上述各步骤的原理和具体细节已经透过先前的实施例进行了详细说明,在此不再赘述。需要说明的是,上述流程可以透过增加其他额外的步骤,或者进行适当的修饰和调整,更好地实现快闪存储器的存取控制,从而提高快闪存储器的读取与写入性能。此外,说明书的实施例中阐述的所有操作,都可以透过图1所示的存储器控制器110来实现。
本发明的实施例可使用硬件、软件、固件以及其相关结合来完成。藉由适当之一指令执行***,可使用储存于一存储器中的软件或固件来实作本发明的实施例。就硬件而言,则是可应用下列任一技术或其相关结合来完成:具有可根据数据信号执行逻辑功能的逻辑闸的一个别运算逻辑、具有合适的组合逻辑闸的一特定应用集成电路(applicationspecific integrated circuit,ASIC)、可程序闸阵列(programmable gate array,PGA)或一现场可程序闸阵列(field programmable gate array,FPGA)等。
说明书内的流程图中的流程和方块示出了基于本发明的各种实施例的***、方法和电脑软件产品所能实现的架构,功能和操作。在这方面,流程图或功能方块图中的每个方块可以代表程序码的模块,区段或者是部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。另外,功能方块图以及/或流程图中的每个方块,以及方块的组合,基本上可以由执行指定功能或动作的专用硬体***来实现,或专用硬体和电脑程序指令的组合来实现。这些电脑程序指令还可以存储在电脑可读媒体中,该媒体可以使电脑或其他可编程数据处理装置以特定方式工作,使得存储在电脑可读媒体中的指令,实现流程图以及/或功能方块图中的方块所指定的功能/动作。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种用于一快闪存储器装置中快取(caching)地址映射资讯的方法,该快闪存储器装置包含一快闪存储器控制器与一快闪存储器,该方法包含:
因应一主机读取命令,判断处理该主机读取命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已经载入至该快闪存储器控制器的一动态随机存取存储器(dynamic random access memory,DRAM)中,其中该L2P映射关系组为一L2P映射表的一部份;
若所需的该L2P映射关系组尚未载入至该DRAM中,将所需的该L2P映射关系组从该快闪存储器载入至该快闪存储器控制器的一静态随机存取存储器(static random accessmemory,SRAM)中;
直接存取该SRAM,以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取命令相关联的一实体地址;以及
根据所获取的该L2P地址对该快闪存储器进行一读取操作,以回应该主机读取命令。
2.如权利要求1所述的方法,其特征在于,直接存取该SRAM以获取该L2P地址的步骤包含:
从该SRAM储存的所需的该L2P映射关系组载入一L2P映射资讯至该快闪存储器控制器中的一第二级(L2)快取,而不将所需的该L2P映射关系组载入至该DRAM。
3.如权利要求1所述的方法,其特征在于,另包含:
因应该主机读取命令,判断处理该主机读取命令是否只需要一个L2P映射关系组;以及
若处理该主机读取命令需要多个L2P映射关系组,将所需的该多个L2P映射关系组从该快闪存储器载入至该DRAM。
4.如权利要求1所述的方法,其特征在于,另包含:
判断所需的该L2P映射关系组是否已载入至该DRAM;
若所需的该L2P映射关系组已经载入至该DRAM,则透过查阅一组至快闪存储器(group-to-flash)映射表,获取一节点索引,其中该节点索引指出所需的该L2P映射关系组储存在该DRAM中的哪一个存储器节点(memory node)上;以及
从该节点索引所指出的该DRAM中的一存储器节点上所储存的所需的该L2P映射关系组,获取一L2P地址,其中该L2P地址指出与该主机读取命令相关联的一实体地址。
5.如权利要求1所述的方法,其特征在于,将所需的该L2P映射关系组从该快闪存储器载入至该快闪存储器控制器的该SRAM中的步骤包含:
将所需的该L2P映射关系组从该快闪存储器载入至该SRAM的一第一区域中;以及直接存取该SRAM以获取该L2P地址的步骤包含:
从该SRAM的该第一区域所储存的所需的该L2P映射关系组中,读取该L2P地址,然后将该L2P地址储存在从该SRAM的一第二区域上配置出的一先进先出(First-In,First-Out)缓冲区中;以及
从该先进先出缓冲区中获取该L2P地址。
6.如权利要求1所述的方法,其特征在于,另包含:
查阅一组至快闪存储器(group-to-flash)映射表,以判断所需的该L2P映射关系组是否为哑数据(dummy);以及
若所需的该L2P映射关系组为哑数据,则回报一空值(null value)来回应该主机读取命令。
7.一种用于存取一快闪存储器的一快闪存储器控制器,包含:
一储存单元,用以储存资讯与程序码;
一动态随机存取存储器(dynamic random access memory,DRAM);
一静态随机存取存储器(static random access memory,SRAM);以及
一处理单元,可执行该程序码以用以执行:
因应一主机读取命令,判断处理该主机读取命令所需的一逻辑至实体(logical-to-physical,L2P)映射关系组是否已经载入至该DRAM中,其中该L2P映射关系组为一L2P映射表的一部份;
若所需的该L2P映射关系组尚未载入至该DRAM中,将所需的该L2P映射关系组从该快闪存储器载入至该SRAM中;以及
直接存取该SRAM,以从所需的该L2P映射关系组中获取一L2P地址,其中该L2P地址指出与该主机读取命令相关联的一实体地址;以及
根据所获取的该L2P地址对该快闪存储器进行一读取操作,以回应该主机读取命令。
8.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以从该SRAM储存的所需的该L2P映射关系组载入一L2P映射资讯至该快闪存储器控制器中的一第二级(L2)快取,而不将所需的该L2P映射关系组载入至该DRAM。
9.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以:
因应该主机读取命令,判断处理该主机读取命令是否只需要一个L2P映射关系组;以及
若处理该主机读取命令需要多个L2P映射关系组,将所需的该多个L2P映射关系组从该快闪存储器载入至该DRAM。
10.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以:
判断所需的该L2P映射关系组是否已载入至该DRAM;
若所需的该L2P映射关系组已经载入至该DRAM,透过查阅一组至快闪存储器(group-to-flash)映射表,获取一节点索引,其中该节点索引指出所需的该L2P映射关系组储存在该DRAM中的哪一个存储器节点(memory node)上;以及
从该节点索引所指出的该DRAM中的一存储器节点上所储存的所需的该L2P映射关系组,获取一L2P地址,其中该L2P地址指出与该主机读取命令相关联的一实体地址。
11.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以:
将所需的该L2P映射关系组从该快闪存储器载入至该SRAM的一第一区域中;
从该SRAM的该第一区域所储存的所需的该L2P映射关系组中,读取该L2P地址,然后将该L2P地址储存在从该SRAM的一第二区域上配置出的一先进先出(First-In,First-Out)缓冲区中;以及
从该先进先出缓冲区中获取该L2P地址。
12.如权利要求7所述的快闪存储器控制器,其特征在于,该处理单元用以:
查阅一组至快闪存储器(group-to-flash)映射表,以判断所需的该L2P映射关系组是否为哑数据(dummy);以及
若所需的该L2P映射关系组为哑数据,回报一空值(null value)来回应该主机读取命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/693,431 | 2022-03-14 | ||
US17/693,431 US11977767B2 (en) | 2022-03-14 | 2022-03-14 | Method and apparatus for caching address mapping information in flash memory based storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755605A true CN116755605A (zh) | 2023-09-15 |
Family
ID=87931715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310172793.4A Pending CN116755605A (zh) | 2022-03-14 | 2023-02-27 | 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11977767B2 (zh) |
CN (1) | CN116755605A (zh) |
TW (1) | TWI831444B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953122A (en) * | 1986-10-31 | 1990-08-28 | Laserdrive Ltd. | Pseudo-erasable and rewritable write-once optical disk memory system |
KR100881052B1 (ko) | 2007-02-13 | 2009-01-30 | 삼성전자주식회사 | 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법 |
US20140304453A1 (en) * | 2013-04-08 | 2014-10-09 | The Hong Kong Polytechnic University | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
KR102456173B1 (ko) | 2017-10-27 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20190089365A (ko) * | 2018-01-22 | 2019-07-31 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
TWI678620B (zh) | 2018-03-07 | 2019-12-01 | 宏碁股份有限公司 | 儲存系統及儲存方法 |
TWI688859B (zh) | 2018-12-19 | 2020-03-21 | 財團法人工業技術研究院 | 記憶體控制器與記憶體頁面管理方法 |
TWI710905B (zh) | 2019-05-06 | 2020-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及邏輯至物理位址映射表之載入方法 |
US11526441B2 (en) | 2019-08-19 | 2022-12-13 | Truememory Technology, LLC | Hybrid memory systems with cache management |
US11650932B2 (en) * | 2020-10-25 | 2023-05-16 | Western Digital Technologies, Inc. | Integrated non-volatile memory assembly with address translation |
US11449423B1 (en) * | 2021-03-12 | 2022-09-20 | Kioxia Corporation | Enhancing cache dirty information |
WO2023028848A1 (zh) | 2021-08-31 | 2023-03-09 | 长江存储科技有限责任公司 | 加载逻辑到物理映射表到存储器控制器的缓存 |
-
2022
- 2022-03-14 US US17/693,431 patent/US11977767B2/en active Active
- 2022-10-27 TW TW111140885A patent/TWI831444B/zh active
-
2023
- 2023-02-27 CN CN202310172793.4A patent/CN116755605A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230289091A1 (en) | 2023-09-14 |
US11977767B2 (en) | 2024-05-07 |
TWI831444B (zh) | 2024-02-01 |
TW202336587A (zh) | 2023-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US9053007B2 (en) | Memory system, controller, and method for controlling memory system | |
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 | |
USRE46404E1 (en) | Flash memory management method | |
CN109426619B (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
CN111459844B (zh) | 数据储存装置及用于存取逻辑至物理地址映射表的方法 | |
US20100287217A1 (en) | Host control of background garbage collection in a data storage device | |
US10802734B2 (en) | Method for fast boot read | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
US20200320012A1 (en) | Memory system and method for operating the same | |
US20150046634A1 (en) | Memory system and information processing device | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN114527931A (zh) | 存储器*** | |
US20170249245A1 (en) | Control device, storage device, and storage control method | |
CN116755605A (zh) | 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 | |
CN116795279A (zh) | 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置 | |
US20240256465A1 (en) | Method of handling trim command in flash memory and related memory controller and storage system thereof | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
US20240232074A1 (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 | |
US20240231624A1 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table regions | |
US20240202113A1 (en) | Memory system | |
CN118051167A (zh) | 存储器控制器及其操作方法、存储器***和电子设备 | |
KR101791855B1 (ko) | 스토리지 장치 및 이의 공간 재수거 방법 | |
CN118051175A (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 |