CN110704330B - 数据存取控制装置及方法 - Google Patents

数据存取控制装置及方法 Download PDF

Info

Publication number
CN110704330B
CN110704330B CN201811194779.XA CN201811194779A CN110704330B CN 110704330 B CN110704330 B CN 110704330B CN 201811194779 A CN201811194779 A CN 201811194779A CN 110704330 B CN110704330 B CN 110704330B
Authority
CN
China
Prior art keywords
physical
logical
address
information
data
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
Application number
CN201811194779.XA
Other languages
English (en)
Other versions
CN110704330A (zh
Inventor
邱慎廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to US16/263,117 priority Critical patent/US11023374B2/en
Publication of CN110704330A publication Critical patent/CN110704330A/zh
Application granted granted Critical
Publication of CN110704330B publication Critical patent/CN110704330B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Abstract

本发明的实施例提出一种数据存取控制装置,至少包含处理单元,用于搜索相应于写入操作的逻辑‑物理(L2P)对照信息,取得每个物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;产生链结式L2P对照子表中多个条目的内容,其中,每个条目记录相应第一逻辑地址的物理地址及第二逻辑地址;以及存储链结式L2P对照子表。链结式L2P对照子表可用于产生正要使用的物理‑逻辑(P2L)对照表,克服传统于数据写入操作后就产生并存储P2L对照表,但是于数据更新后就会发生内容不正确的缺陷。

Description

数据存取控制装置及方法
技术领域
本发明涉及闪存存储装置,尤指一种数据存取控制装置及方法。
背景技术
闪存存储装置通常分为NOR(或非)闪存存储装置与NAND(与非)闪存存储装置。NOR闪存存储装置为随机存取装置,主机端(Host)可于地址引脚上提供任何存取NOR闪存存储装置的地址,并及时地从NOR闪存存储装置的数据引脚上获得存储于该地址上的数据。相反地,NAND闪存存储装置并非随机存取,而是序列存取。NAND闪存存储装置无法像NOR闪存存储装置一样,可以存取任何随机地址,主机端反而需要写入序列的字节(Bytes)的值到NAND闪存存储装置中,用以定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存存储装置中写入操作的最小数据块)或一个区块(闪存存储装置中抹除操作的最小数据块)。
为了提升写入的效率,主机端可提供至少一个长度的连续性数据,例如128K字节的数据,使得NAND闪存存储装置可以有效率的并行操作方式将数据写入其中的数个存储子单元。通常NAND闪存存储装置需要维护两种对照表:主机-闪存(Host-to-Flash,H2F);及闪存-主机(Flash-to-Host,F2H)对照表。H2F表记录每个主页面的用户数据实际存储于NAND闪存存储装置中的哪个物理位置。F2H表记录每个物理块的用户数据关联至主机端的哪个主页面。为存取数据,NAND闪存存储装置需要耗费大量时间查表。因此,本发明提出一种数据存取控制装置及方法,通过精简对照表及缩短查表时间以提升闪存存储装置的数据存取效能。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提供一种数据存取控制装置的实施例,其包含:存储器、存取接口及处理单元。处理单元通过存取接口接收相应于写入操作的逻辑-物理对照信息,及存储逻辑-物理对照信息至所述存储器;搜索逻辑-物理对照信息,用于取得每个物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;依据逻辑地址的顺序产生结式逻辑-物理对照子表中多个条目的内容,其中,每个条目记录相应第一逻辑地址的物理地址及第二逻辑地址;以及存储链结式逻辑-物理对照子表。
本发明还提供一种数据存取控制方法的实施例,由处理单元执行,其包含:通过存取接口接收相应于写入操作的逻辑-物理对照信息,及存储逻辑-物理对照信息至存储器;搜索逻辑-物理对照信息,用于取得每个物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;依据逻辑地址的顺序产生链结式逻辑-物理对照子表中多个条目的内容,其中,每个条目记录相应第一逻辑地址的物理地址及第二逻辑地址;以及存储链结式逻辑-物理对照子表。
本发明另提供一种数据存取控制装置的实施例,其包含:逻辑-物理对照信息产生模块及链结式逻辑-物理对照子表产生模块。逻辑-物理对照信息产生模块用于通过存取接口接收相应于写入操作的逻辑-物理对照信息,及存储所述逻辑-物理对照信息至存储器。链结式逻辑-物理对照子表产生模块用于搜索逻辑-物理对照信息,取得每一物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;依据逻辑地址的顺序产生链结式逻辑-物理对照子表中多个条目的内容,其中,每个条目记录相应第一逻辑地址的物理地址及第二逻辑地址;以及存储链结式逻辑-物理对照子表
逻辑-物理对照信息至所述存储器描述每个逻辑地址的用户数据存储于存储单元中哪个物理地址的信息。
上述实施例的优点之一,链结式逻辑-物理对照子表除包含传统的逻辑-物理对照表的内容外,更包含物理地址的链结信息,用于产生正要使用的物理-逻辑对照表,克服传统于数据写入操作后就产生并存储物理-逻辑对照表,但是于数据更新后就会发生内容不正确的缺陷。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的数据存取控制装置方框图。
图2为依据本发明实施例的存取子接口与多个存储子单元的连接示意图。
图3为依据本发明实施例的用户数据的存储示意图。
图4为依据本发明实施例的高阶对照表及链结式逻辑-物理(Logical-to-Physical,L2P)对照表的示意图。
图5为依据本发明实施例的链结式L2P对照子表存储于存储器的示意图。
图6为依据本发明实施例的产生链结式L2P对照子表的方法流程图。
图7为依据本发明实施例的通过搜索L2P对照表来产生链结式L2P对照子表的方法流程图。
图8为依据本发明实施例的藉由使用链表搜索引擎来产生链结式L2P对照子表的方法流程图。
图9为依据本发明实施例的L2P对照链表示意图。
图10为依据本发明实施例的链表搜索的方法流程图。
图11至13为依据本发明实施例的链表搜索引擎的方框图。
图14为依据本发明实施例的执行背景操作的方法流程图。
图15为依据本发明实施例的数据存取控制的功能模块示意图。
符号说明:
10 数据存取控制装置
110 处理单元
130 存储器
131-0~131-15、131-0a、131-0b、131-p 链结式L2P对照子表
133 L2P对照表
135 L2P对照链表
150 链表搜索引擎
170 配置寄存器
180 存取接口
137_1、137_2、138_1、138_2 寄存器
180-0 存取子接口
190 存储单元
190-0-0、190-0-1、…、190-0-i、311~317、331~337 存储子单元
210 数据线
230-0、230-1、…、230-i 控制信号
310、330 通道
371~378、391~398 物理页面
410 高阶对照表
S610~S650、S710~S793、S810~S893、S1010~S1070、S1410~S1490 方法步骤
900-0~900-14 节点
1100、1200、1300 链表搜索引擎
1120、1320 读取电路
1130、1350 FIFO缓冲区
1140、1340 比较器
1150、1160、1330、1360 写入电路
1190 结果寄存器
1210-1、1210-2 快捷寄存器
1230 复用器
1310 搜索纪录
1390 结果纪录
EN1~EN4 使能信号
SE 选择信号
1510~1590 功能模块
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示的间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
参考图1。数据存取控制装置10可包含处理单元110、存储器130及链表搜索引擎150。数据存取控制装置10可实施于NAND闪存存储装置的控制器,或其他电子装置,用以提供更有效率的数据存取。处理单元110可使用多种方式实施,例如使用通用硬件,如单处理器、具平行处理能力的多处理器、图形处理器、轻简型通用目的处理器(lightweightgeneral-purpose processor)或其他具运算能力的处理器,并且在执行指令(instructions)、宏码(macrocode)或微码(microcode)时,提供如下所述的功能。存储器130可为动态随机存取存储器(dynamic random access memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)或其他类型的易失性存储器(volatilememory)。需理解的是,以下所述处理单元110的动作或操作为执行特定固件时完成,为求简明不再赘述。
数据存取控制装置10另包含存取接口180,使得处理单元110可通过存取接口180与存储单元190通信,详细来说,可采用双倍数据率(Double Data Rate DDR)通信协议,例如,开放NAND闪存(Open NAND Flash Interface ONFI)、双倍数据率开关(DDR Toggle)或其他接口。处理单元110通过存取接口180写入用户数据及对照表到存储单元190中的指定地址(目的地址),以及从存储单元190中的指定地址(来源地址)读取用户数据及对照表。存取接口180使用数个电子信号来协调处理单元110与存储单元190间的数据与命令传递,包含数据线(data line)、时钟信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片使能(Chip EnableCE)、地址提取使能(Address Latch Enable ALE)、命令提取使能(Command Latch EnableCLE)、写入使能(Write Enable WE)等控制信号。
存储单元190可包含多个存储子单元,每个存储子单元,各自使用关联的存取子接口与处理单元110进行通信。一或多个存储子单元可封装在一个芯粒(Die)之中。存取接口180可包含j个存取子接口,每一个存取子接口连接i个存储子单元。存取子接口及其后连接的存储子单元又可统称为输出输入信道,并可以逻辑单元编号(Logic Unit Number LUN)标识。换句话说,i个存储子单元共享一个存取子接口。例如,数据存取控制装置10包含4个输出输入且每一个输出输入连接4个存储子单元时,数据存取控制装置10可存取16个存储子单元。处理单元110可驱动存取子接口中的一者,从指定的存储子单元读取,或写入数据至指定的存储子单元。每个存储子单元拥有独立的芯片使能(CE)控制信号。换句话说,当欲对指定的存储子单元进行数据读取或写入时,需要驱动关联的存取子接口来使能此存储子单元的CE控制信号。参考图2。处理单元110可通过存取子接口180-0使用独立的芯片使能控制信号230-0-0至230-0-i从连接的存储子单元190-0-0至190-0-i中选择出其中一者,接着,通过共享的数据线210从选择出的存储子单元的指定地址读取数据,或传送欲写入指定地址的用户数据至选择出的存储子单元。
参考图3。存储子单元311、313、315及317共享一个存取子接口而形成一个通道310,且存储子单元331、333、335及337共享一个存取子接口而形成一个通道310。存储子单元311存储两个物理页面371及372的数据,存储子单元313存储两个物理页面373及374的数据,依此类推。每个物理页面可存储一个主页面长度的数据,如2^n字节的数据,n可为3或以上的整数。每个物理页面中存储的数据可使用主页面编号(Host page number)表示。例如,物理页面371中存储第0个主页面的数据,物理页面372中存储第15个主页面的数据,物理页面373中存储第1个主页面的数据,依此类推。所属技术领域的普通技术人员也可将主页面编号以逻辑区块地址(Logical Block Address,LBA)或其它表示法代替,本发明并不因此局限。例如,物理页面371中存储LBA 0至LBA 3的数据,物理页面372中存储LBA 56至LBA 59的数据,物理页面373中存储LBA 4至LBA 7的数据,依此类推。物理页面377没有存储关联于任何主页面的数据,以斜线表示。物理页面371至378及391至398可形成一个跨存储子单元的超物理页面350。每个物理页面的物理地址可使用(m,n)的格式表示,指出此为第m个超物理页面中的第n个物理页面。所属技术领域的普通技术人员也可将格式(m,n)以其它表示法代替,本发明并不因此局限。主机端可于写入命令中携带主页面编号,用以通知数据存取控制装置10欲写入的数据关联于哪个主页面。数据存取控制装置10可将连续主页面的数据分散存储于存储子单元311至337,用于在图2的架构下优化数据存取效率。主机端可于读取命令中携带主页面编号,用以指示数据存取控制装置10读取哪个主页面的数据。
在一些实施方式中,数据存取控制装置10可维护两种对照表:逻辑-物理(Logical-to-Physical,L2P);及物理-逻辑(Physical-to-Logical,P2L)对照表,用以通过查表进行逻辑地址及物理地址的间的转换。数据存取控制装置10可于存储器130存储L2P及P2L对照表。L2P对照表以逻辑地址的顺序(如由小到大的主页面编号),依序存储每个逻辑地址的数据实际存储于哪个物理地址的信息(如哪个超物理页面中的哪个物理页面)。P2L对照表以物理地址的顺序(如在特定超物理页面编号下由小到大的物理页面编号),依序存储每个物理地址的空间中存储哪个逻辑地址的数据的信息(如哪个主页面)。
因应图3所示的数据存储案例,表1为范例的L2P对照表:
表1
逻辑地址(主页面编号) 物理地址
0 (A,0)
1 (A,2)
2 (A,4)
3 (A,8)
4 (A.10)
5 (A,12)
6 (A,14)
7 NULL
8 (A,15)
9 (A,13)
10 (A,11)
11 (A,9)
12 (A,7)
13 (A,5)
14 (A,3)
15 (A,1)
在物理地址字段中,字母“A”表示超物理页面350的标识码,字符串“(A,0)”指出超物理页面350中的第0个物理页面(也就是存储子单元311中的物理页面371),字符串“(A,1)”指出超物理页面350中的第1个物理页面(也就是存储子单元311中的物理页面372),字符串“(A,2)”指出超物理页面350中的第2个物理页面(也就是存储子单元313中的物理页面373),以此类推。字符串“NULL”指出特定主页面的数据还没有存储于存储单元190。
因应图3所示的数据存储案例,表2为范例的P2L对照表:
表2
Figure BDA0001828457290000081
Figure BDA0001828457290000091
在逻辑地址字段中,数字表示主页面编号。字符串“NULL”指出特定物理地址的空间中没有存储关联于任何主页面的数据。
然而,由于NAND存储单元需要抹除后才能开始再使用,因此,当数据存取控制装置10接收到主机端的写入命令指出更新特定逻辑地址的数据时,不能直接更新原先物理地址中的数据,而需要找可用物理页面存储。此时,原先的P2L对照表中相应的逻辑地址信息不正确,使得数据存取控制装置10需要花费额外时间更新原先的P2L对照表。或者,数据存取控制装置10在使用P2L对照表中的逻辑地址信息前,需要花费额外时间搜索其他P2L对照表,用于检查此信息是否还有效。需了解的是,存取P2L对照表不只会消耗处理单元110的运算资源,也会占用存储器130的空间及使用存取接口180的带宽。
本发明实施例提出一种链结式(link-based)L2P对照表,以逻辑地址的顺序(如由小到大的主页面编号),依序存储每个逻辑地址的数据实际存储于哪个物理地址的信息(如哪个超物理页面中的哪个物理页面),以及每个逻辑地址关联的物理地址的下一个物理地址存储在哪个逻辑地址的信息。详细来说,链结式L2P对照表包含多笔条目(entries),每笔条目存储特定逻辑地址的物理地址以及此物理地址的下一个物理地址的逻辑地址。参考图4,由于存储器130无法提供足够空间存储整个链结式L2P对照表以供处理单元110查找,链结式L2P对照表可切成多个链结式L2P对照子表130-0至130-15,并存储于存储单元190。每次进行L2P地址转换或P2L地址转换时,处理单元110通过存取接口180从存储单元190读取相应于逻辑地址或物理地址的链结式L2P对照子表,并存储于存储器130,如图1中的链结式L2P对照子表131-p,p介于0~15之间。虽然本发明实施例描述16个链结式L2P对照子表,但是所属技术领域的普通技术人员可因应存储单元190的容量,设置更多或更少数目的链结式L2P对照子表,本发明并不因此局限。为了让处理单元110可从存储单元190读取适当的链结式L2P对照子表131-p,本发明实施例可提供高阶对照表410,用于存储关联一段逻辑地址区段的链结式L2P对照子表的物理地址的信息。例如,关联第0个至第4095个主页面的链结式L2P对照子表131-0存储于特定超物理页面(字母“Z”代表其标识码)中的第0个物理页面,关联第4096个至第8191个主页面的链结式L2P对照子表131-1存储于特定超物理页面中的第1个物理页面,依此类推。
因应图3所示的数据存储案例,表3为范例的链结式L2P对照子表131-0:
表3
Figure BDA0001828457290000101
Figure BDA0001828457290000111
为让读者容易理解,表3加上主页面编号的字段,然而,于实际存储时,链结式L2P对照子表可不包含主页面编号的字段。物理地址字段的内容可参考如上表1的相关描述。物理地址可使用4个字节表示,2个字节存储超物理页面的信息,2个字节存储物理页面的信息。下个逻辑地址字段存储每个逻辑地址关联的物理地址的下一个物理地址存储在哪个条目的信息(以下简称下个逻辑地址信息)。例如,第一笔条目指出第0个主页面的数据存储于物理地址“(A,0)”,并且下一个物理地址“(A,1)”存储在关联于第15个主页面的条目。下个逻辑地址可使用4个字节表示。链结式L2P对照子表除包含传统的L2P对照表的内容外,还包含物理地址的链结信息,用于产生正要使用的P2L对照表,克服传统于数据写入操作后就产生并存储P2L对照表,但是于数据更新后就会发生内容不正确的缺陷。
以上所述的链结式L2P对照子表131-0的内容,可使用不同的方式存储于存储器130,方便处理单元110查找。参考图5,链结式L2P对照子表131-0a可依序存储关联于第0个至第15个主页面的物理地址信息于存储器地址“S+0”至“S+63”,及依序存储关联于第0个至第15个主页面的下个逻辑地址信息于存储器地址“S+64”至“S+127”,形成两群,其中字母“S”表示链结式L2P对照子表131-0存储于存储器130的开始地址。链结式L2P对照子表131-0b可依序存储关联于第0个至第15个主页面的成对物理地址信息及下个逻辑地址信息于存储器地址。例如,关联于第0个主页面的物理地址信息及下个逻辑地址信息分别存储于存储器地址“S+0”至“S+3”及“S+4”至“S+7”,依此类推。
本发明实施例所述的数据存取控制方法可至少包含产生链结式L2P对照子表的步骤、于背景操作中使用链结式L2P对照子表决定欲迁移的用户数据的步骤,以及于抹除处理中更新链结式L2P对照子表的步骤。
每次写入预定数量的主页面的用户数据后,本发明实施例产生相应于写入操作的链结式L2P对照子表131-p。写入操作完成时,存储单元190可通过存取接口180回复每个主页面的用户数据存储于哪个物理地址的L2P对照信息给处理单元110。参考图6,因应存储单元190的写入操作的执行结果,处理单元110于加载及执行相关固件或软件的指令时执行链结式L2P对照子表131-p的产生方法。首先,处理单元110可通过存取接口180接收存储单元190回复的相应于写入操作的L2P对照信息及存储L2P对照信息于存储器130,描述每个逻辑地址(如主页面编号)的用户数据存储于存储单元190中哪个物理地址的信息(步骤S610)。这些信息可以L2P对照表133或L2P对照链表135实现。按照物理地址的顺序搜索L2P对照信息,例如从物理地址“(A,0)”至“(A,15)”,为每一个物理地址取得相应空间所存储的用户数据关联于哪个逻辑地址(简称目前逻辑地址)的信息,以及下一个物理地址的空间所存储的用户数据关联于哪个逻辑地址(简称下个逻辑地址)的信息(步骤S630)。依据逻辑地址的顺序产生链结式逻辑-物理对照子表131-p中的多个条目的内容,其中,每个条目记录相应逻辑地址的物理地址及下个逻辑地址(步骤S650)。例如,第0个条目记录第0个主页面的相应物理地址,以及相应物理地址的下个物理地址所关联的主页面编号。详细来说,依据每个物理地址相应的目前逻辑地址决定链结式L2P对照子表131-p中欲写入的条目,于决定条目中的物理地址字段写入此物理地址,并且于决定条目中的下个逻辑地址字段写入相应于此物理地址的下一个逻辑地址,用以完成如表3所示的链结式L2P对照子表131-p。于适当时间点,链结式L2P对照子表131-p可刷写入存储单元190中的指定物理地址,以供后续查找使用。
图7描述更详细的链结式L2P对照子表的产生方法流程。处理单元110于加载及执行相关固件或软件的指令时,执行通过搜索L2P对照表133来产生链结式L2P对照子表131-p的方法。可了解的是,链结式L2P对照子表131-p初始时,处理单元110可将所有的字段内容都填入虚假值“NULL”。首先,因应存储单元190的写入操作的执行结果,处理单元110可产生并存储L2P对照表133于存储器130(步骤S710)。可了解的是,L2P对照表133可加速链结式L2P对照子表131-p的产生,并暂存于存储器130。当链结式L2P对照子表131-p产生后,可从存储器130移除L2P对照表133。以下以表1的内容作为使用案例说明如图7所示的方法流程。假设开始物理地址为“(A,0)”:为开始物理地址,搜索L2P对照表133以取得包含开始物理地址的条目(如表1的第0个条目)(步骤S731);从搜索出的条目取得此物理地址的空间所存储的用户数据关联于哪个逻辑地址的信息(如主页面编号“0”)(步骤S733);依据逻辑地址信息决定链结式L2P对照子表131-p中的一个条目(如表3中的第0个条目)(步骤S751);将开始物理地址“(A,0)”写入决定条目的物理地址字段(步骤S753);搜索L2P对照表133以取得包含下一个物理地址“(A,1)”的条目(如表1的第15个条目)(步骤S791);从搜索出的条目取得下一个物理地址“(A,1)”的空间所存储的用户数据关联于哪个逻辑地址的信息(如主页面编号“15”)(步骤S793);以及将主页面编号“15”写入决定条目(如表3中的第0个条目)的下个逻辑地址字段(步骤S757)。
接着,依序为之后的物理地址,如(A,1)、(A,2)、(A,3)、(A,4)、(A,5)、(A,7)、(A,8)、(A,9)、(A,10)、(A,11)、(A,12)、(A,13)、(A,14)及(A,15),产生链结式L2P对照子表131-p中其他条目的内容。例如,为物理地址“(A,1)”,处理单元110搜索L2P对照表133以取得包含此物理地址的条目(如表1的第15个条目)(步骤S791);从搜索出的条目取得此物理地址的空间所存储的用户数据关联于哪个逻辑地址的信息(如主页面编号“15”)(步骤S793);依据逻辑地址信息决定链结式L2P对照子表131-p中的一个条目(如表3中的第15个条目)(步骤S751);将此物理地址“(A,1)”写入决定条目的物理地址字段(步骤S753);搜索L2P对照表133以取得包含下一个物理地址“(A,2)”的条目(如表1的第1个条目)(步骤S791);从搜索出的条目取得下一个物理地址“(A,2)”的空间所存储的用户数据关联于哪个逻辑地址的信息(如主页面编号“1”)(步骤S793);以及将主页面编号“1”写入决定条目(如表3中的第15个条目)的下个逻辑地址字段(步骤S757)。链结式L2P对照子表131-p中相应于物理地址“(A,2)”至“(A,14)”的其他条目的内容的产生过程,可依此类推。
最后,为物理地址“(A,15)”,搜索L2P对照表133以取得包含此物理地址的条目(如表1的第8个条目)(步骤S791);从搜索出的条目取得此物理地址的空间所存储的用户数据关联于哪个逻辑地址的信息(如主页面编号“8”)(步骤S793);依据逻辑地址信息决定链结式L2P对照子表131-p中的一个条目(如表3中的第8个条目)(步骤S751);将此物理地址“(A,15)”写入决定条目的物理地址字段(步骤S753);以及将虚假值“NULL”写入决定条目(如表3中的第8个条目)的下个逻辑地址字段,用以表示物理地址之后没有存储任何用户数据(步骤S755)。
由于搜索L2P对照表会占用处理单元110的运算资源,本发明实施例提出另一种链结式L2P对照子表131-p的产生方法,由使用专用的链表搜索引擎150来搜索L2P对照链表135的内容来获得链结式L2P对照子表131-p中所需的信息。图8描述更详细的链结式L2P对照子表的产生方法流程。处理单元110于加载及执行相关固件或软件的指令时,执行通过协同链表搜索引擎150来产生链结式L2P对照子表131-p的方法。需注意的是,链结式L2P对照子表131-p初始时,处理单元110可将所有的字段内容都填入虚假值“NULL”。图8的步骤大致相似于图7,但为了使用链表搜索引擎150来加速处理,改变部分步骤中的操作。以下段落说明更改的步骤,其他相同的步骤不再赘述,以求简明。首先,因应存储单元190的写入操作的执行结果,处理单元110可产生并存储L2P对照链表135于存储器130(步骤S810)。
参考图9,L2P对照链表135可包含15个节点900-0至900-14,每个节点可存储长字组(long word)的数据,也就是16个字节的数据。于每个节点,第0至3字节存储指向前一个节点的存储器地址(又称为前一节点地址),第4至7字节存储指向下一个节点的存储器地址(又称为下一节点地址),第8至11字节存储逻辑地址信息(表示为“H:p”,p可代表任意主页面编号),第12至15字节存储相应的物理地址信息(表示为“P:(m,n)”,m可代表任意超物理页面编号,n可代表任意物理页面编号)。前一节点地址可存储虚假值(NULL值,例如0xFFFFFFFF)用以指出此节点为链表的第一个节点,下一节点地址可存储虚假值用以指出此节点为链表的最后一个节点。例如,节点900-0及900-14分别为L2P对照链表135的第一个及最后一个节点。节点900-0的开始地址为“T+0x00”,节点900-1的开始地址为“T+0x10”,依此类推,字母“T”表示L2P对照链表135存储于存储器130的开始地址。节点900-0的下一节点地址指向存储器地址“T+0x10”(也就是节点900-1的开始地址),节点900-1的下一节点地址指向存储器地址“T+0x20”(也就是节点900-2的开始地址),依此类推。节点900-0存储的主页面标号为“0”且相应的物理地址为“(A,0)”,节点900-1存储的主页面标号为”1”且相应的物理地址为“(A,2)”,依此类推。可了解的是,L2P对照链表135可加速链结式L2P对照子表131-p的产生,并暂存于存储器130。当链结式L2P对照子表131-p产生后,可从存储器130移除L2P对照链表135。
参考图1,链表搜索引擎150为专属硬件,耦接存储器130,可用以搜索L2P对照链表135的内容直到搜索成功或搜索失败为止,并产生搜索结果。搜索结果可存储于存储器130中的事先分配区域,或者是专属的寄存器(未显示于图1)。此外,为了让链表搜索引擎150可于多样的链表中搜索数据,数据存取控制装置10可提供配置寄存器(configurationregister)170,用以存储每个节点的数据结构、欲搜索的第一个节点的存储器地址、搜索方向及欲搜索的值等信息。配置寄存器170可整合到链表搜索引擎150中,本发明并不因此受限。处理单元110耦接配置寄存器170,可通过设定配置寄存器170指示链表搜索引擎150每个节点中符合L2P对照链表135的数据结构,以及如何搜索L2P对照链表135的内容。处理单元110写入L2P对照链表135的内容后,驱动链表搜索引擎150开始L2P对照链表135的搜索操作,并且从链表搜索引擎150取得搜索结果。
图10的方法由链表搜索引擎150执行。链表搜索引擎150从配置寄存器170取得欲搜索的第一个节点(又可称为开始节点)的存储器地址及欲搜索的值(步骤S1010)。接着,链表搜索引擎150反复执行一个循环(步骤S1030、S1050及S1070),用以从开始节点依序取得并处理L2P对照链表135中的节点,直到搜索成功(步骤S1030中“是”的路径)或搜索失败(步骤S1050中“是”的路径)为止。于每个回合从存储器130取得第一个或下一个节点后(步骤S1010或S1070),判断取得节点中是否包含处理单元110欲搜索的值(步骤S1030)。若搜索成功(步骤S1030中“是”的路径),则链表搜索引擎150存储搜索结果及搜索成功的信息,使得处理单元110可取得搜索结果及搜索成功的信息(步骤S1040),搜索结果可包含搜索到节点的存储器地址、对应结果及搜索次数等信息。若搜索失败(步骤S1030中“否”的路径),判断此节点是否为最后一个节点(步骤S1050)。若已经到达最后一个节点(步骤S1050中“是”的路径),则链表搜索引擎150存储搜索失败的信息,使得处理单元110可取得搜索失败的信息(步骤S1060)。若尚未到达最后一个节点(步骤S1050中“否”的路径),则链表搜索引擎150依据此节点的下一节点地址从存储器130读取下一个节点的内容(步骤S1070)。需注意的是,所属技术领域具有通常知识者可修改图10,用以让L2P对照链表135的搜索从最后一个节点(又可称为开始节点)开始向前搜索,直到搜索成功或搜索失败为止。
参考图11。链表搜索引擎500可包含配置寄存器170、读取电路(reading circuit)1120、FIFO缓冲区(FIFO buffer)1130、比较器1140、写入电路(writing circuits)1150及1160、以及结果寄存器(result register)1190。处理单元110可设定配置寄存器170,用以存储第一个节点的开始地址、每个节点的数据结构信息(例如,前一节点地址的偏移量(offset)、下一节点地址的偏移量、比较数据的偏移量及对应结果的偏移量等),搜索值及搜索方向。当处理单元110使能链表搜索引擎1100时,读取电路1120可依据配置寄存器170的内容从L2P对照链表135读取第一个节点的下或前一节点地址、比较数据及对应结果,并输出比较数据及对应结果至FIFO缓冲区1130。此外,读取电路1120可将第一个节点的开始地址输出至FIFO缓冲区1130。比较器1140比较配置寄存器170的搜索值及FIFO缓冲区1130的比较数据,当二者不同时,输出使能信号EN1给读取电路1120,用以驱动读取电路1120从L2P对照链表135读取下一节点的内容。读取电路1120可判断是否还有任何节点尚未处理,例如,下或前一节点地址是否不是虚假值。如果是,读取电路1120可依据配置寄存器170的内容及下或前一节点地址从L2P对照链表135读取下或前一个节点的如上所述内容,以及将如上所述的内容的一部分输出至FIFO缓冲区1130。如果不是,读取电路1120输出使能信号EN3给写入电路1160,驱动写入电路1160存储搜索失败的信息至结果寄存器1190。当比较器1140判断配置寄存器170的搜索值与FIFO缓冲区1130的比较数据相同时,输出使能信号EN2给写入电路1150,驱动写入电路550存储FIFO缓冲区1130的对应结果及目前搜索节点的开始地址,以及搜索成功的信息至结果寄存器1190。例如,结果寄存器1190的第0至3字节存储搜索到的对应结果,第4至7字节存储目前搜索节点的开始地址,及第8字节存储搜索成功或失败的信息。当搜索成功时,第8字节可设为1;反之,设为0。
为了让处理单元110优化L2P对照链表135中节点的摆放顺序,于一些实施例,链表搜索引擎1100可包含计数器1180,耦接比较器1140及写入电路1150,于每次搜索操作开始时初始为0。每次比较配置寄存器170的搜索值及FIFO缓冲区1130的比较数据时,比较器1140将计数器1180累加1。当比较器1140判断配置寄存器170的搜索值及FIFO缓冲区1130的比较数据相同时,驱动写入电路1150存储计数器580的值至结果寄存器1190。例如,结果寄存器1190的第9字节存储计数器的值。
每个节点的比较数据可包含复合数据(compound data),例如,包含二种以上不同类型的数据。于一些实施例,处理单元110可设定配置寄存器170,以使用4个字节存储掩码(mask)。比较器1140可将FIFO缓冲区1130的比较数据与配置寄存器170的掩码进行逻辑及运算(logic AND)以产生掩码后比较数据,接着判断配置寄存器170的搜索值及掩码后比较数据是否相同。如果是,比较器1140驱动写入电路1150存储FIFO缓冲区1130的对应结果及目前搜索节点的开始地址,以及搜索成功的信息至结果寄存器1190。例如,如图3所示的主页面编号的前二字节为T1表的编号,而后二字节为T7表的编号。当配置寄存器170的搜索值为T1表的编号时,处理单元110可存储掩码0xFFFF00000至配置寄存器170,使得比较器1140可忽略主页面编号的后二字节(也就是T7表的编号)。当配置寄存器170的搜索值为T7表的编号时,处理单元110可存储掩码0x0000FFFF至配置寄存器170,使得比较器1140可忽略主页面编号的前二字节(也就是T1表的编号)。
每个节点的比较数据可包含不需要比较的比特,例如,最高有效位(MostSignificant Bit)。于一些实施例,处理单元110可设定配置寄存器170,用以使用1个字节存储忽略比特的信息,例如,0x1F代表比较数据的第31比特可忽略。比较器1140可依据忽略比特的信息产生掩码,将FIFO缓冲区530的比较数据与此掩码进行逻辑及运算,接着判断配置寄存器170的搜索值及掩码后比较数据是否相同。如果是,比较器1140驱动写入电路1150存储FIFO缓冲区1130的对应结果及目前搜索节点的开始地址,以及搜索成功的信息至结果寄存器1190。例如,当忽略比特为第31比特时,掩码为0x7FFFFFFF。
参考图12,由于固件可能有二组以上常用的配置设定,链表搜索引擎1200可更包含快捷寄存器1210_1及1210_2,用以让处理单元110预先分别存储二组配置设定至快捷寄存器1210_1及1210_2,其中每组配置设定可包含L2P对照链表135的开始节点的存储器地址、搜索值以及每一该节点的数据结构信息。每组配置设定可更包含如上所述的掩码或忽略比特的信息。链表搜索引擎1200另包含复用器(multiplexer)1230,其输入端耦接至快捷寄存器1210_1及1210_2的输出,其输出端耦接至配置寄存器170的输入。处理单元110可输出选择信号SE给复用器1230,用以将快捷寄存器1210_1及1210_2中的一者耦接至配置寄存器170,使得配置寄存器170可存储耦接快捷寄存器中的配置设定。虽然图12的实施例只包含二个快捷寄存器,所属技术领域具有通常知识者可修改链表搜索引擎1200,用以包含更多的快捷寄存器,本发明并不因此受限。图12中其他组件的结构、功能及操作细节可参考图11的描述,为求简明不再赘述。
参考图13,为了让并行操作更有效率,链表搜索引擎1300可提供多笔搜索的能力,让处理单元110一次提供多个搜索值后便可转去处理其他的任务,有利处理单元110安排L2P对照链表135的搜索及其他任务,优化系统的整体效能。处理单元110可于存储器130分配一块固定区域,用以存储多笔搜索纪录1310,以及让链表搜索引擎1300写入结果纪录1390。每笔搜索纪录包含开始旗标及搜索值,开始旗标用以通知链表搜索引擎1300是否可以开始搜索L2P对照链表135。每笔结果纪录1390关联于一笔搜索纪录1310,包含结束旗标、结果旗标、搜索次数以及搜索到节点的存储器地址,结束旗标及结果旗标用以分别通知处理单元110此搜索值的搜索是否已结束以及是否已搜索到。搜索纪录1310及结果纪录1390可整合在一起,便于存取。
读取电路1320可检查是否存在一笔开始旗标为1(代表可以开始搜索)且结束旗标为0(代表尚未搜索结束)的纪录。一旦发现符合条件的纪录,读取电路1320将此纪录的搜索值存储至配置寄存器170。读取电路1120的操作可参考图11的相关说明,为求简明不再赘述。当读取电路1120发现没有任何节点可以搜索时,输出使能信号EN3给写入电路1330,驱动写入电路1330存储搜索值及搜索失败的信息至FIFO缓冲区1350。写入电路1330可更存储L2P对照链表135的节点数目至FIFO缓冲区1350,作为搜索次数。当比较器1340判断配置寄存器170的搜索值及FIFO缓冲区1330的比较数据相同时,将FIFO缓冲区1330的对应结果、目前节点的开始地址,及搜索成功的信息存储至FIFO缓冲区1350。比较器1340可更包含计数器,于搜索开始前初始为0。每次比较配置寄存器170的搜索值与FIFO缓冲区1130的比较数据时,计数器累加1。当比较器1340判断配置寄存器170的搜索值及FIFO缓冲区1130的比较数据相同时,更存储计数器的值至FIFO缓冲区1350,作为搜索次数。当数据进入FIFO缓冲区1350时,写入电路1360将FIFO缓冲区1350的内容写入结果纪录1390,并且输出使能信号EN4至读取电路1320,用以读取下一笔搜索纪录1310。
参考图8,于存储L2P对照链表135后(步骤S810),处理单元110使能链表搜索引擎150以搜索L2P对照链表135,并且依据链表搜索引擎150的搜索结果取得包含开始物理地址的节点(步骤S831),接着,从搜索出的节点取得开始物理地址的空间所存储的用户数据关联于哪个逻辑地址的信息(步骤S833)。于每个物理地址搜索完但还存在下一个尚未搜索的物理地址时(步骤S770中“是”的路径),处理单元110使能链表搜索引擎150以搜索L2P对照链表135,并且依据链表搜索引擎150的搜索结果取得包含下一个物理地址的节点(步骤S891),接着,从搜索出的节点取得下一个物理地址的空间所存储的用户数据关联于哪个逻辑地址的信息(步骤S893)。图8中的其余步骤类似于图7,详细内容可参考图7的相关描述,为求简明不再赘述。
于一些实施例,当链表搜索引擎150搜索L2P对照链表135期间,处理单元110可并行处理其他任务(tasks)并且于一段时间后存取存储器130或专属寄存器以尝试取得搜索结果。当存储器130还没有结果时,处理单元110可先转去处理其他任务,并于下一段时间后再做检查。于另一些实施例,链表搜索引擎150搜索完成后,可发出信号(如中断信号)给处理单元110,使得处理单元110可开始取得搜索结果。于更另一些实施例,链表搜索引擎150搜索完成后,可通过设定状态寄存器(status register,未显示于图1)通知处理单元110有关搜索结果的信息。处理单元110可周期性存取状态寄存器,并且于状态寄存器被设定时,取得搜索结果。通过处理单元110及链表搜索引擎150间的协同合作,L2P对照链表135的搜索操作可与其他任务并行处理,提升电子装置的整体效能。也就是说,链表搜索引擎150搜索L2P对照链表135内容的期间,处理单元110并行地执行任务。
处理单元110可于适当时间点执行背景操作,背景操作并不是受到主机端(未显示于图1)指示而发起,而是数据存取控制装置10为增进存储单元190的效能而主动发起的数据存取,可为垃圾回收程序(garbage collection GC process)、损耗平均程序(wearleveling process)、读取回收程序(read reclaim process)或读取更新程序(readreflash process)。换句话说,背景操作与主机端(未显示于图1)无关。于背景操作中,处理单元110可将多个物理页面,例如物理地址“(A,0)”至“(A,15)”,的用户数据迁移到新的物理页面。参考图14,处理单元110于加载及执行相关固件或软件的指令时实施背景操作执行方法。处理单元110从存储单元190读取相应于欲迁移物理页面的链结式L2P对照子表131-p并存储至存储器130(步骤S1410),依据链结式L2P对照子表131-p的内容产生P2L对照表,描述存储单元190中每个物理地址的空间存储哪个逻辑地址的用户数据的信息(步骤S1431至S1450),依据P2L对照表的内容执行背景操作的数据迁移处理(步骤S1470),以及依据数据迁移处理的结果更新链结式L2P对照子表131-p并写入存储单元190的指定物理地址(步骤S1490)。可了解的是,P2L对照表可加速背景操作的执行,并暂存于存储器130。当背景操作执行后,可从存储器130移除P2L对照表。
假设欲迁移物理地址“(A,0)”至“(A,15)”的用户数据,搭配如表3所示的范例,P2L对照表的产生细节说明如下:需注意的是,P2L对照表初始时,处理单元110可将所有的字段内容都填入虚假值“NULL”。针对开始物理地址“(A,0)”,处理单元110搜索链结式L2P对照子表中包含开始物理地址的来源条目(如表3中的第0个条目)(步骤S1431):依据开始物理地址决定P2L对照表的目的条目(如表2中的第0个条目)(步骤S1433);以及将相应于来源条目的逻辑地址(如主页面编号“0”)写入目的条目的逻辑地址字段(步骤S1435)。
接着,依序为的后的物理地址,如(A,1)、(A,2)、(A,3)、(A,4)、(A,5)、(A,7)、(A,8)、(A,9)、(A,10)、(A,11)、(A,12)、(A,13)、(A,14)及(A,15),产生P2L对照表中其他条目的内容。例如,为物理地址“(A,0)”的下一个物理地址,处理单元110取得来源条目(如表3中的第0个条目)中的下个逻辑地址(如主页面编号“15”)(步骤S1461);决定P2L对照表的目的条目为链结式L2P对照子表中相应于下个逻辑地址的条目(表3中的第15个条目)中的物理地址“(A,1)”的条目(如表2中的第1个条目)(步骤S1463);将取得的下个逻辑地址“15”写入目的条目的逻辑地址字段(步骤S1465);以及决定新的来源条目为链结式L2P对照子表中相应于目前来源条目的下个逻辑地址的条目(表3中的第2个条目)(步骤S1467)。P2L对照表中相应于物理地址“(A,2)”至“(A,15)”的其他条目的内容的产生过程,可依此类推。P2L对照表的最终结果可参考表2的内容。
于步骤S1470,处理单元110可依据P2L对照表的内容,通过存取接口180发出多个包含物理地址的读取命令给存储单元190,用于读取表2中的物理地址的用户数据。处理单元110可通过存取接口180发出多个包含逻辑地址(如主页面编号)的写入命令给存储单元190,用于将读取的用户数据写入到新的物理地址。可了解的是,写入命令成功执行后,存储单元190通过存取接口180回复每个逻辑地址的用户数据存储于哪个物理地址的信息给处理单元110。
于步骤S1490,处理单元110可执行如图6至8中任一个所示的方法,用以依据存储单元190的写入操作的执行结果,更新链结式L2P对照子表131-p。表4为范例的更新后链结式L2P对照子表131-0:
表4
Figure BDA0001828457290000211
Figure BDA0001828457290000221
主装置(未显示于图1)可发出抹除命令给处理单元110,指示数据存取控制装置10抹除特定主页面的用户数据。当存储单元190完成抹除操作时,链结式L2P对照子表131-p需要随着更新。于一些实施方式中,处理单元110可更新链结式L2P对照子表131-p中的下个逻辑地址字段的内容,用于跳过那些被抹除的主页面。然而,这会耗费大量的运算资源来寻访链结式L2P对照子表131-p中的条目。因应抹除操作,本发明实施例可更新上述的链结式L2P对照子表131-p,加上一个抹除旗标(erase flag)字段,指出相应逻辑地址(如主页面编号)的用户数据是否已经被抹除。表3的链结式L2P对照子表131-0可改良为表5:
表5
Figure BDA0001828457290000222
Figure BDA0001828457290000231
抹除旗标可使用一个比特表示。当一个页面的用户数据有效时,抹除旗标设为逻辑假值“F”。举例来说,当存储单元190完成主页面编号“1”至“5”的用户数据的抹除操作时,处理单元110可将链结式L2P对照子表131-0中相应于第1个至第5个主页面的抹除旗标更改为逻辑真值“T”,使得将来于查找时可直接跳过这些被抹除的主页面而不处理,结果如表6所示:
表6
Figure BDA0001828457290000232
Figure BDA0001828457290000241
当链结式L2P对照子表131-p加上抹除旗标后,图14中的步骤S1435可修改为当来源条目的抹除旗标为逻辑假值“F”时,将相应于来源条目的逻辑地址写入目的条目的逻辑地址字段。此外,图14中的步骤S1465可修改为当来源条目的抹除旗标为逻辑假值“F”时,将取得的下个逻辑地址写入目的条目的逻辑地址字段。接续表6的范例链结式L2P对照子表131-0,新产生的P2L对照表如表7所示:
表7
Figure BDA0001828457290000242
Figure BDA0001828457290000251
处理单元110所执行数据存取控制的方法步骤,可使用一个或多个功能模块组成的计算器程序产品来实现。这些功能模块存储于非易失性存储装置,并且可被处理单元110于特定时间点加载并执行。参考图15,处理单元110执行L2P对照信息产生模块1510以完成步骤S610、S710及S810的操作,执行链结式L2P对照子表产生模块1530以完成步骤S630、S731~S793、S831~S893及S1490的操作,执行链结式L2P对照子表读取模块1550以完成步骤S1410的操作,执行P2L对照信息产生模块1570以完成步骤S1431~S1467的操作,以及执行数据迁移处理模块1590以完成步骤S1490的操作。以上所述模块可包含存储器130及存取接口180的驱动程序程序,用以存取存储器130及存储单元190中的数据。
本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算器程序,为求简明不再加以描述。依据本发明实施例方法实施的计算器程序可存储于适当的计算机可读取数据载具,例如DVD、CD-ROM、USB碟、硬盘,亦可置于可通过网络(例如,互联网,或其他适当载具)存取的网络服务器。
虽然图1、2、11~13中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图6~8、10及14的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (17)

1.一种数据存取控制装置,其特征在于,包含:
存储器;
存取接口,耦接于存储单元;以及
处理单元,耦接于所述存储器及所述存取接口,用以通过所述存取接口接收相应于写入操作的逻辑-物理对照信息,及存储所述逻辑-物理对照信息至所述存储器,其中,所述逻辑-物理对照信息描述每个逻辑地址的用户数据存储于所述存储单元中哪个物理地址的信息;搜索所述逻辑-物理对照信息,用于取得每个所述物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;依据逻辑地址的顺序产生链结式逻辑-物理对照子表中多个条目的内容,其中,每个所述条目记录相应的所述第一逻辑地址的所述物理地址及所述第二逻辑地址;以及存储所述链结式逻辑-物理对照子表。
2.如权利要求1所述的数据存取控制装置,其特征在于,所述逻辑-物理对照信息组织为逻辑-物理对照表,包含依据逻辑地址顺序安排的多个条目,所述逻辑-物理对照表中每个所述条目存储相应逻辑地址的用户信息存储于哪个物理地址的信息。
3.如权利要求1所述的数据存取控制装置,其特征在于,所述逻辑-物理对照信息组织为逻辑-物理对照链表,包含依据逻辑地址顺序安排的多个节点,所述逻辑-物理对照链表中每个所述节点存储逻辑地址的用户信息存储于哪个物理地址的信息,以及指向下个节点的存储器地址。
4.如权利要求3所述的数据存取控制装置,其特征在于,所述数据存取控制装置包含链表搜索引擎,所述处理单元驱动所述链表搜索引擎搜索所述逻辑-物理对照链表,用于取得相应于每个所述物理地址的所述第一逻辑地址及所述第二逻辑地址。
5.如权利要求4所述的数据存取控制装置,其特征在于,所述链表搜索引擎搜索所述逻辑-物理对照链表的期间,所述处理单元并行地执行任务。
6.如权利要求1至5中任一项所述的数据存取控制装置,其特征在于,所述处理单元依据每个所述物理地址相应的所述第一逻辑地址决定所述链结式逻辑-物理对照子表中欲写入的条目;以及于决定的所述条目写入所述物理地址及相应于所述物理地址的所述第二逻辑地址。
7.如权利要求1所述的数据存取控制装置,其特征在于,所述处理单元读取所述链结式逻辑-物理对照子表;依据所述链结式逻辑-物理对照子表产生物理-逻辑对照表,其中所述物理-逻辑对照表描述所述存储单元中每个所述物理地址的空间存储哪个逻辑地址的用户数据的信息;依据所述物理-逻辑对照表的内容执行背景操作的数据迁移处理;以及依据所述数据迁移处理的结果更新所述链结式逻辑-物理对照子表。
8.如权利要求7所述的数据存取控制装置,其特征在于,所述背景操作的执行与主机端无关,以及所述数据迁移处理将多个物理页面的用户数据迁移到新的物理页面。
9.如权利要求7所述的数据存取控制装置,其特征在于,于所述数据迁移处理中,所述处理单元通过所述存取接口发出多个包含物理地址的读取命令给所述存储单元,用于读取所述物理-逻辑对照表中的所述物理地址的用户数据;以及通过所述存取接口发出多个包含逻辑地址的写入命令给所述存储单元,用于将读取的所述用户数据写入到新的物理地址。
10.如权利要求1所述的数据存取控制装置,其特征在于,所述链结式逻辑-物理对照子表中的每个所述条目包含抹除旗标,指出相应逻辑地址的用户数据是否已经被抹除,以及所述处理单元于完成多个逻辑地址的抹除操作后,更新相应所述抹除操作的逻辑地址的所述条目中的所述抹除旗标,用于指出相应用户数据已经被抹除。
11.一种数据存取控制方法,由处理单元执行,其特征在于,包含:
通过存取接口接收相应于写入操作的逻辑-物理对照信息,及存储所述逻辑-物理对照信息至存储器,其中,所述逻辑-物理对照信息描述每个逻辑地址的用户数据存储于存储单元中哪个物理地址的信息;
搜索所述逻辑-物理对照信息,用于取得每个所述物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;
依据逻辑地址的顺序产生链结式逻辑-物理对照子表中多个条目的内容,其中,每个所述条目记录相应的所述第一逻辑地址的所述物理地址及所述第二逻辑地址;以及
存储所述链结式逻辑-物理对照子表。
12.一种数据存取控制装置,其特征在于,包含:
逻辑-物理对照信息产生模块,用于通过存取接口接收相应于写入操作的逻辑-物理对照信息,及存储所述逻辑-物理对照信息至存储器,其中,所述逻辑-物理对照信息描述每个逻辑地址的用户数据存储于存储单元中哪个物理地址的信息;以及
链结式逻辑-物理对照子表产生模块,用于搜索所述逻辑-物理对照信息,取得每个所述物理地址的空间存储的用户数据所关联的第一逻辑地址,及下个物理地址的空间存储的用户数据所关联的第二逻辑地址;依据逻辑地址的顺序产生链结式逻辑-物理对照子表中多个条目的内容,其中,每个所述条目记录相应的所述第一逻辑地址的所述物理地址及所述第二逻辑地址;以及存储所述链结式逻辑-物理对照子表。
13.如权利要求12所述的数据存取控制装置,其特征在于,所述逻辑-物理对照信息组织为逻辑-物理对照表,包含依据逻辑地址顺序安排的多个条目,所述逻辑-物理对照表中每个所述条目存储相应逻辑地址的用户信息存储于哪个物理地址的信息。
14.如权利要求12所述的数据存取控制装置,其特征在于,所述逻辑-物理对照信息组织为逻辑-物理对照链表,包含依据逻辑地址顺序安排的多个节点,所述逻辑-物理对照链表中每个所述节点存储逻辑地址的用户信息存储于哪个物理地址的信息,以及指向下个节点的存储器地址。
15.如权利要求14所述的数据存取控制装置,其特征在于,所述链结式逻辑-物理对照子表产生模块驱动链表搜索引擎搜索所述逻辑-物理对照链表,用于取得相应于每个所述物理地址的所述第一逻辑地址及所述第二逻辑地址。
16.如权利要求12至15中任一项所述的数据存取控制装置,其特征在于,所述链结式逻辑-物理对照子表产生模块依据每个所述物理地址相应的所述第一逻辑地址决定所述链结式逻辑-物理对照子表中欲写入的条目;以及于决定的所述条目写入所述物理地址及相应于所述物理地址的所述第二逻辑地址。
17.如权利要求12所述的数据存取控制装置,其特征在于,包含:
链结式逻辑-物理对照子表读取模块,用于读取所述链结式逻辑-物理对照子表;
物理-逻辑对照信息产生模块,用于依据所述链结式逻辑-物理对照子表产生物理-逻辑对照表,其中所述物理-逻辑对照表描述所述存储单元中每个所述物理地址的空间存储哪个逻辑地址的用户数据的信息;以及
数据迁移处理模块,用于依据所述物理-逻辑对照表的内容执行背景操作的数据迁移处理;以及依据所述数据迁移处理的结果更新所述链结式逻辑-物理对照子表。
CN201811194779.XA 2018-07-09 2018-10-15 数据存取控制装置及方法 Active CN110704330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/263,117 US11023374B2 (en) 2018-07-09 2019-01-31 Apparatus and method and computer program product for controlling data access

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107123751 2018-07-09
TW107123751A TWI727185B (zh) 2018-07-09 2018-07-09 鏈結串列搜索裝置及方法

Publications (2)

Publication Number Publication Date
CN110704330A CN110704330A (zh) 2020-01-17
CN110704330B true CN110704330B (zh) 2022-11-01

Family

ID=69192604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811194779.XA Active CN110704330B (zh) 2018-07-09 2018-10-15 数据存取控制装置及方法

Country Status (2)

Country Link
CN (1) CN110704330B (zh)
TW (1) TWI727185B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448487A (zh) * 2020-03-25 2021-09-28 慧荣科技股份有限公司 写入闪存管理表的计算机可读取存储介质、方法及装置
CN113495850B (zh) * 2020-04-08 2024-02-09 慧荣科技股份有限公司 管理垃圾回收程序的方法、装置及计算机可读取存储介质
TWI756854B (zh) * 2020-04-27 2022-03-01 慧榮科技股份有限公司 管理資料儲存的方法及裝置以及電腦程式產品
CN113742255B (zh) * 2021-08-26 2023-08-08 合肥康芯威存储技术有限公司 一种无效标记命令的处理方法、系统及数据存储设备
CN114327277A (zh) * 2021-12-29 2022-04-12 深圳华电通讯有限公司 垃圾回收的异常处理方法、装置、计算机设备及存储介质
CN116361346B (zh) * 2023-06-02 2023-08-08 山东浪潮科学研究院有限公司 基于掩码计算的数据表解析方法、装置、设备及存储介质
CN116383098B (zh) * 2023-06-05 2023-09-12 成都佰维存储科技有限公司 地址索引方法、装置、可读存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
CN1145881C (zh) * 1997-06-30 2004-04-14 太阳微系统有限公司 管理链接表数据结构的方法和装置
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN103299283A (zh) * 2011-01-06 2013-09-11 美光科技公司 存储器地址转译
CN107291625A (zh) * 2017-06-19 2017-10-24 济南浪潮高新科技投资发展有限公司 一种用于Nand Flash的指针式逻辑地址映射表实现方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067547A (en) * 1997-08-12 2000-05-23 Microsoft Corporation Hash table expansion and contraction for use with internal searching
KR20140057454A (ko) * 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치
KR101979735B1 (ko) * 2012-11-02 2019-05-17 삼성전자 주식회사 비휘발성 메모리 시스템 및 이와 통신하는 호스트
US9405702B2 (en) * 2014-11-14 2016-08-02 Cavium, Inc. Caching TLB translations using a unified page table walker cache
US9942169B1 (en) * 2014-12-02 2018-04-10 Adtran, Inc. Systems and methods for efficiently searching for stored data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1145881C (zh) * 1997-06-30 2004-04-14 太阳微系统有限公司 管理链接表数据结构的方法和装置
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN103299283A (zh) * 2011-01-06 2013-09-11 美光科技公司 存储器地址转译
CN107291625A (zh) * 2017-06-19 2017-10-24 济南浪潮高新科技投资发展有限公司 一种用于Nand Flash的指针式逻辑地址映射表实现方法

Also Published As

Publication number Publication date
TWI727185B (zh) 2021-05-11
TW202006565A (zh) 2020-02-01
CN110704330A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN110704330B (zh) 数据存取控制装置及方法
TWI685743B (zh) 資料存取控制裝置及方法以及電腦程式產品
CN109426619B (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
US9530499B2 (en) Semiconductor memory device and information processing device
US8504792B2 (en) Methods and apparatuses to allocate file storage via tree representations of a bitmap
US8549271B1 (en) Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device
CN111459844B (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
US8825946B2 (en) Memory system and data writing method
JP2000305839A (ja) 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US20170160940A1 (en) Data processing method and apparatus of solid state disk
US7822940B2 (en) Apparatus and method for managing mapping information of nonvolatile memory
TW202009936A (zh) 快閃記憶體控制器及相關的存取方法及電子裝置
US9870826B2 (en) Memory apparatus and data access method thereof by using multiple memories for lifetime extension
CN107943727B (zh) 一种高效dma控制器
EP3306823B1 (en) Encoding program, encoding apparatus and encoding method
TW202011411A (zh) 快閃記憶體控制器及相關的存取方法及電子裝置
CN113641597A (zh) 管理数据存储的方法及装置以及计算机可读取存储介质
TWI749279B (zh) 資料儲存裝置與資料處理方法
US11023374B2 (en) Apparatus and method and computer program product for controlling data access
CN109992535B (zh) 一种存储控制方法、装置和系统
US10559359B2 (en) Method for rewriting data in nonvolatile memory and semiconductor device
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
EP3819771B1 (en) Data processing method and device, apparatus, and system
US11880593B2 (en) Host, operating method of host and storage system
KR20230025322A (ko) 호스트, 호스트의 동작 방법 및 스토리지 시스템

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