在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置与流程
未命名
09-29
阅读:108
评论:0
1.本发明关于快闪存储器,尤指一种用在以快闪存储器为基础的储存设备中,对地址映射资讯进行快取的方法和相关的快闪存储器控制器。
背景技术:
2.一般来说,快闪存储器控制器依赖逻辑至实体(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映射资讯。
技术实现要素:
3.有鉴于此,本发明的目的在于提供一种在以快闪存储器为基础的储存装置中,载入和快取地址映射资讯的方法。在本发明实施例中,从g2f映射表中所获得的节点索引(其用以指出l2p映射表中的映射关系组的实体地址),将被快取在快闪存储器控制器的sram中。这样可以避免在处理主机随机读取/写入命令时反复查阅g2f映射表。另外,在本发明实施例中,主机写入命令的数据所对应的l2p地址将被快取在快闪存储器控制器的sram中所储存的一l2p地址阵列中,这很大程度节省了在快闪存储器控制器和快闪存储器之间移动主机写入数据的过程中,更新主机写入数据的l2p地址的时间。
4.本发明的实施例提供一种用于一快闪存储器装置中快取(caching)地址映射资讯的方法。该快闪存储器装置包含一快闪存储器控制器与一快闪存储器。该方法包含:因应一主机读取/写入命令,查阅一组至快闪存储器(group-to-flash,g2f)映射表,以判断处理该主机读取/写入命令所需的一逻辑至实体(logical-to-physical,l2p)映射关系组是否已被载入至该快闪存储器控制器的一动态随机存取存储器(dynamic random access memory,dram)中,并据此获取一节点索引,其中,该l2p映射关系组为一l2p映射表的一部份,且该节点索引指出该dram的哪一个存储器节点(memory mode)储存所需的该l2p映射关
系组;将该节点索引记录到该快闪存储器控制器的一静态随机存取存储器(static random access memory,sram)的一第一区域中;在不查阅该g2f映射表的情况下,透过查阅储存在该sram的该第一区域中的该节点索引,存取该dram以从所需的该l2p映射关系组中获取一l2p地址,其中该l2p地址指出与该主机读取/写入命令相关联的一实体地址;以及根据已获取的该l2p地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
5.本发明的实施例提供一种用于存取一快闪存储器的一快闪存储器控制器。该快闪存储器控制器包含:一储存单元、一动态随机存取存储器(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地址对该快闪存储器进行一读取/写入操作,以回应该主机读取/写入命令。
附图说明
6.图1为本发明实施例的快闪存储器装置与快闪存储器控制器的架构示意图。
7.图2为本发明实施例的快闪存储器控制器的内部存储器的架构示意图。
8.图3绘示本发明的一实施例如何对l2p映射表中的一l2p映射关系组进行快取。
9.图4绘示本发明的另一实施例如何对l2p映射表中的一l2p映射关系组进行快取。
10.图5为本发明实施例中用于处理主机读取/写入命令的一预载入阶段的流程图。
11.图6为本发明实施例中用于处理主机读取/写入命令的一载入状态检查阶段的流程图。
12.图7为本发明实施例中用于处理主机读取命令的一命令服务阶段的流程图。
13.图8为本发明实施例中用于处理主机写入命令的一命令服务阶段的流程图。
14.图9为本发明实施例中用于处理主机读取命令的载入与快取地址映射资讯的方法的流程图。
15.【符号说明】
16.10 电子装置
17.50 主机装置
18.52 处理器
19.100 存储器装置
20.110 存储器控制器
21.120 nv存储器
22.122_1~122_n nv存储器元件
23.112 处理单元
24.112c 程序码
25.112m 只读存储器
26.113 内部存储器
27.114 控制逻辑电路
28.118 传输接口电路
29.1131 dram
30.1131_1~1131_2 dram的区域
31.1132 共享sram
32.1132_1~1131_3 共享sram的区域
33.1133 l1快取
34.1134 l2快取
35.s101~s107、s201~s214、s301~s308、s401~s407、s510~s540 步骤
具体实施方式
36.在以下内文中,描述了许多具体细节以提供阅读者对本发明实施例的透彻理解。然而,本领域的技术人士将能理解,如何在缺少一个或多个具体细节的情况下,或者利用其他方法或元件或材料等来实现本发明。在其他情况下,众所皆知的结构、材料或操作不会被示出或详细描述,从而避免模糊本发明的核心概念。
37.说明书中提到的“一实施例”意味着该实施例所描述的特定特征、结构或特性可能被包含于本发明的至少一个实施例中。因此,本说明书中各处出现的“在一实施例中”不一定意味着同一个实施例。此外,前述的特定特征、结构或特性可以以任何合适的形式在一个或多个实施例中结合。
38.图1为本发明实施例的电子装置10的架构示意图。如图所示,电子装置10包含主机装置(host device)50与存储器装置100。主机装置50可包含:一随机存取存储器(random access memory,ram)54与用来控制主机装置50的运作的至少一处理器52。在不同实施例中,主机装置50可以是(但不限于):智慧型手机、平板电脑、可穿戴装置、个人电脑、笔记型电脑、数位相机、数位录影机、游戏主机、车用导航系统、印表机、扫描器或者伺服器系统。另外,在不同实施例中,存储器装置100可以是(但不限于):可携式存储器装置(如符合sd/mmc、cf、ms、xd或ufs标准的记忆卡)、固态硬碟(solid state drive,ssd)以及各种嵌入式(embedded)储存装置(如符合ufs或emmc标准的嵌入式储存装置)。
39.在本发明的各种实施例中,存储器装置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),或者可以包含具有三维结构的存储器单元。
40.如图1所示,存储器控制器110可以包含如处理单元112(其可能进一步包含多个处理器核心,用于同时执行不同任务)之类的处理电路、只读存储器(read-only memory,rom)
112m之类的储存元件、控制逻辑电路114、内部存储器113、传输接口电路118。其中,这些元件的至少一部分(例如,一部分或全部)可以透过总线彼此互连。内部存储器113可以由随机存取存储器(ram)来实现,例如,内部存储器113可以包括静态随机存取存储器(static ram,sram)和动态随机存取存储器(dynamic ram,dram)。内部存储器113可以被配置为向存储器控制器110提供内部储存空间,例如,暂时性地储存变数(variables)和数据。此外,本实施例中的只读存储器112m用以储存程序码112c,而处理单元112用以执行程序码112c,从而控制nv存储器120的存取。或者,程序码112c亦可储存于nv存储器120中。
41.存储器控制器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 component interconnect express,pcie)规范、嵌入式多媒体卡(embedded multimedia card,emmc)规范、或通用快闪存储器储存(universal flash storage,ufs)规范,并可以根据特定的通信规范与主机装置50进行通讯。
42.一般来说,主控装置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的每个区块可以包含多个页,并且可以在一个或多个页上执行读取或写入等存取操作。
43.图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)映射表。
44.此外,共享sram 1132的第一区域1132_1被配置为用于储存变数。例如,可以将第一区域1132_1配置为请求先进先出缓冲区(request first-in and firs-out(fifo)buffer)1132f。请求fifo缓冲区1132f可以被处理单元112的多个处理核心共享,以进行数据和命令交换。此外,还可以配置第一区域1132_1来对l2p地址阵列进行快取。共享sram 1132的第二区域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值进行快取。
45.一般而言,主机装置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)。
46.此外,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中临时储存数据的实体地址的相关资讯”。
47.在本发明的部分实施例中,当收到主机读取命令的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值。
48.在本发明的部分实施例中,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映射表。
49.本发明实施例透过三个阶段来处理,来自主机装置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的哪个存储器元件(例如,存储器节点)上。
50.如果步骤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”。
51.另一方面,如果步骤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”。
52.图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映射关系组相同。
53.若步骤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。
54.在步骤s208中,检查请求fifo缓冲区1132f中的载入状态是否为“prefetch_
1131的第二区域1131_2中,获得与主机读取命令相关联的l2p地址。在完成步骤s304、s305、s306或s307之后,流程进入步骤s308,将透过向nv存储器120发出快闪存储器读取命令(flash read command)来执行对nv存储器120的读取操作,或将执行哑读取(dummy read,亦即,向主机装置50回报空值(null value))。
59.图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地址。
60.完成步骤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的实体地址进行更新。
61.之后,流程进入步骤s406,检查是否需要冲出(flush)主机写入快取(即,共享sram 1132的第二区域1132_2)。也就是说,如果主机写入快取已满,或者是主机装置50发出快取冲出命令(cache flushing command),主机写入数据将被写入至nv存储器120。若是,则流程进入步骤s407,对nv存储器120进行写入操作。其中,藉由向nv存储器120发出快闪存储器写入命令,将快取在共享sram 1132的第二区域1132_2中的主机写入数据,写入到nv存储器120中。再者,快取在l2p地址阵列中的主机写入数据所对应的l2p地址,需要根据主机写入数据实际被写入的nv存储器120的新实体地址来更新。
62.图9绘示本发明实施例中载入和快取地址映射资讯的方法。如图所示,本发明的方法包含以下的简化流程:
63.s510:因应一主机读取/写入命令,查阅一g2f映射表,以判断处理该主机读取/写入命令所需的一l2p映射关系组是否已被载入至一快闪存储器控制器的一dram中,并据此获取一节点索引,其中,该l2p映射关系组为一l2p映射表的一部份,且该节点索引指出该dram的哪一个存储器节点储存所需的该l2p映射关系组;
64.s520:将该节点索引记录到该快闪存储器控制器的一sram的一第一区域中;
65.s530:在不查阅该g2f映射表的情况下,透过查阅储存在该sram的该第一区域中的该节点索引,存取该dram以从所需的该l2p映射关系组中获取一l2p地址,其中该l2p地址指出与该主机读取/写入命令相关联的一实体地址;以及
66.s540:根据已获取的该l2p地址对该快闪存储器进行一读取/写入操作,以回应该
主机读取/写入命令。
67.由于上述各步骤的原理和具体细节已经透过先前的实施例进行了详细说明,在此不再赘述。需要说明的是,上述流程可以透过增加其他额外的步骤,或者进行适当的修饰和调整,更好地实现快闪存储器的存取控制,从而提高快闪存储器的读取与写入性能。此外,说明书的实施例中阐述的所有操作,都可以透过图1所示的存储器控制器110来实现。
68.本发明的实施例可使用硬件、软件、固件以及其相关结合来完成。藉由适当的一指令执行系统,可使用储存于一存储器中的软件或固件来实作本发明的实施例。就硬件而言,则是可应用下列任一技术或其相关结合来完成:具有可根据数据信号执行逻辑功能的逻辑闸的一个别运算逻辑、具有合适的组合逻辑闸的一特定应用集成电路(application specific integrated circuit,asic)、可程序闸阵列(programmable gate array,pga)或一现场可程序闸阵列(field programmable gate array,fpga)等。
69.说明书内的流程图中的流程和方块示出了基于本发明的各种实施例的系统、方法和电脑软件产品所能实现的架构,功能和操作。在这方面,流程图或功能方块图中的每个方块可以代表程序码的模组,区段或者是部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。另外,功能方块图以及/或流程图中的每个方块,以及方块的组合,基本上可以由执行指定功能或动作的专用硬件系统来实现,或专用硬件和电脑程序指令的组合来实现。这些电脑程序指令还可以存储在电脑可读媒体中,该媒体可以使电脑或其他可编程数据处理装置以特定方式工作,使得存储在电脑可读媒体中的指令,实现流程图以及/或功能方块图中的方块所指定的功能/动作。
70.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
技术特征:
1.一种用于一快闪存储器装置中快取(caching)地址映射资讯的方法,该快闪存储器装置包含一快闪存储器控制器与一快闪存储器,该方法包含:因应一主机读取/写入命令,查阅一组至快闪存储器(group-to-flash,g2f)映射表,以判断处理该主机读取/写入命令所需的一逻辑至实体(logical-to-physical,l2p)映射关系组是否已被载入至该快闪存储器控制器的一动态随机存取存储器(dynamic random access memory,dram)中,并据此获取一节点索引,其中,该l2p映射关系组为一l2p映射表的一部份,且该节点索引指出该dram的哪一个存储器节点(memory mode)储存所需的该l2p映射关系组;将该节点索引记录到该快闪存储器控制器的一静态随机存取存储器(static random access 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)来回应该主机读取/写入命令。
技术总结
本发明涉及一种于一快闪存储器装置中快取地址映射资讯的方法与装置。该方法包含:因应一主机读取/写入命令,查阅一组至快闪存储器映射表,以判断处理该主机读取/写入命令所需的一映射关系组是否已被载入至一快闪存储器控制器的一DRAM中,并据此获取一节点索引;将该节点索引记录到该快闪存储器控制器的一SRAM的一第一区域中;透过查阅储存在该SRAM的该第一区域中的该节点索引,存取该DRAM以从所需的该映射关系组中获取指出与该主机读取/写入命令相关联的一实体地址的一映射地址;以及根据已获取的该映射地址对一快闪存储器进行一读取/写入操作。一读取/写入操作。一读取/写入操作。
技术研发人员:白逸凯
受保护的技术使用者:慧荣科技股份有限公司
技术研发日:2022.11.01
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种磁吸式针头存放锐器盒 下一篇:一种选矿废水环保净化设备的制作方法