CN111338989B - 一种存储器及其控制方法与存储系统 - Google Patents
一种存储器及其控制方法与存储系统 Download PDFInfo
- Publication number
- CN111338989B CN111338989B CN202010088748.7A CN202010088748A CN111338989B CN 111338989 B CN111338989 B CN 111338989B CN 202010088748 A CN202010088748 A CN 202010088748A CN 111338989 B CN111338989 B CN 111338989B
- Authority
- CN
- China
- Prior art keywords
- data
- entry
- page number
- subunit
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种存储器及其控制方法与存储系统,包括,控制单元,用于接收或发送数据;数据单元,接收所述控制单元发送的的数据,并将所述数据分给多个数据子单元中的某个数据子单元;多个搜索单元,接收所述控制单元发送的数据,所述多个搜索单元与所述多个数据子单元相对应;其中,所述多个搜索单元对所述多个数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据。本发明提出的存储器可以提高搜索速度。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种存储器及其控制方法与存储系统。
背景技术
由于磁盘的速度和内存、CPU速度之间存在较大差异,磁盘的性能问题逐步成为阻碍计算机系统发展的主要瓶颈之一。闪存,又称flash存储器(flash memory),具有电耗低、性能高、抗震等物理稳定性强和方便插拔移动等优点。近年来,以闪存为介质的固态硬盘容量逐步增大,价格逐步下降,已有取代磁盘,成为新的主流外存介质的趋势,并可能引起存储系统的一次变革。由于闪存不能就地更新,为了和传统文件系统兼容,需要将闪存封装成一个块设备,并提供给文件系统能够就地更新的功能。为了提供给文件系统就地更新的功能,需要对闪存的访问进行地址转换,即将传统文件系统使用的逻辑地址转换到物理闪存上的物理地址。目前,这个地址转换功能是通过闪存转换层完成的。
闪存转换层维持着逻辑地址和物理地址的转换信息。当闪存的容量增加时,维持转换所需要的内存也随之增加,因此,现有的闪存转换方法都存在转换速度慢、运算复杂的缺点。
发明内容
鉴于上述现有技术的缺陷,本发明提出一种存储器及其控制方法,以提高查找速率。
为实现上述目的及其他目的,本发明提出一种存储器,包括,
控制单元,用于接收或发送数据;
数据单元,接收所述控制单元发送的数据,并将所述数据分给多个数据子单元中的某个数据子单元;
多个搜索单元,接收所述控制单元发送的数据,所述多个搜索单元与所述多个数据子单元相对应;
其中,每一所述搜索单元对每一所述数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据。
进一步地,所述控制单元接收的数据包括逻辑页号或物理页号或者逻辑页号与物理页号形成的元组。
进一步地,当所述数据单元收到所述数据后,所述数据单元内的数据函数根据逻辑页号将所述数据分给所述某个数据子单元,所述数据存放在所述某个数据子单元的条目中的某个条目内。
进一步地,当所述数据存放在所述数据子单元内的条目时,判断所述条目下的物理页号是否被覆盖,如果被覆盖,则将所述数据子单元接收的数据内的物理页号替换所述物理页号,如果未被覆盖,则将所述数据子单元接收的数据内的物理页号存放在所述条目内。
进一步地,所述多个数据子单元及所述多个搜索单元的数量为复数。
进一步地,当所述多个搜索单元收到多个物理页号后,所述多个搜索单元对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的物理页号落入在所述多个搜索单元的多个物理页号内时,则定位出所述物理页号在所述数据子单元内的条目,并删除所述条目;所述多个搜索单元继续对所述多个数据子单元进行搜索,如果所述条目内的更新标志被设置,且所述条目内的物理页号落入在所述多个搜索单元的多个物理页号内时,则删除所述条目,所述多个搜索单元停止搜索工作,并将所述条目回传至所述控制单元。
进一步地,当所述多个搜索单元收到多个逻辑页号后,所述多个搜索单元对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的逻辑页号落入在所述多个搜索单元的多个逻辑页号内时,则定位出所述逻辑页号在所述数据子单元内的条目,且如果所述条目内的更新标志被设置,则复制所述条目,形成条目副本,并将所述条目副本回传至控制单元,且所述多个搜索单元停止搜索工作;如果所述条目内的使无效标志被设置,则清除所述使无效标志。
进一步地,当所述数据单元收到数据元组后,所述数据单元内的数据函数对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的逻辑页号与所述数据元组内的逻辑页号相匹配,则定位出所述逻辑页号在所述数据子单元内的条目,保留所述条目的使无效标志状态,设置所述条目的更新标志,并将所述数据元组内的物理页号替换所述条目内的物理页号;否则,将所述数据元组插入至某一条目内,并设置所述条目的更新标志。
进一步地,当所述数据单元收到数据元组后,所述数据单元内的数据函数对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的逻辑页号与所述数据元组内的逻辑页号相匹配,则定位出所述逻辑页号在所述数据子单元内的条目,清除所述条目内的使无效标志状态;否则,将所述数据元组插入至某一条目内,并设置所述条目的更新标志。
进一步地,所述多个搜索单元与所述多个数据子单元一一对应,当所述数据子单元内的物理页号落入在所述多个搜索单元内的物理页号内时,则定位出所述物理页号在所述数据子单元内的条目,并统计所述条目的数量,并汇总每一所述搜索单元统计的条目数量,并将统计数量回传至所述控制单元。
进一步地,当所述搜索单元收到多个物理页号及数字N后,当所述多个数据子单元中的某个数据子单元内的物理页号落入在所述多个搜索单元的多个物理页号内时,则定位出所述物理页号在所述数据子单元内的条目,所述条目内逻辑页号的最高的N比特将形成一数值,根据所述数值唯一对应到位图存储器内的一个比特,并设置所述比特。
进一步地,当所述多个搜索单元搜索所述多个数据子单元后,统计所述多个搜索单元在所述位图存储器中被设置的比特数量,所述位图存储器内每一比特表示逻辑-物理地址转换表。
进一步地,每一所述搜索单元内设置有记录器,所述记录器用于记录所述搜索单元停止搜索的位置,所述搜索单元从所述停止搜索的位置进行后续搜索。
进一步地,还包括条目计数器,所述条目计数器用于统计正在使用的条目的数量。
进一步地,所述数据单元包括哈希表或三态内容寻址存储器或内容寻址存储器。
进一步地,本发明提出一种存储器的控制方法,包括,
通过控制单元接收数据;
通过所述控制单元将所述数据发送至数据单元,所述数据单元将所述数据分给多个数据子单元中的某个数据子单元;
通过所述控制单元将所述数据发送至多个搜索单元,所述多个搜索单元与所述多个数据子单元相对应;
每一所述搜索单元对每一所述数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据。
进一步地,本发明提出一种存储系统,包括,
主机;
存储器,连接所述主机,其中,所述存储器包括,
控制单元,用于接收或发送数据;
数据单元,接收所述控制单元发送的数据,并将所述数据分给多个数据子单元中的某个数据子单元;
多个搜索单元,接收所述控制单元发送的数据,所述多个搜索单元与所述多个数据子单元相对应;
其中,每一所述搜索单元对每一所述数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据。
综上所述,本发明提出一种存储器及其控制方法与存储系统,通过将数据单元分成多个数据子单元,且通过多个搜索单元同时对多个数据子单元进行搜索,当任一搜索单元搜索到想要的数据后,所有的搜索单元停止搜索,由此提高了搜索效率。
附图说明
图1:本实施例提出的一种存储器系统。
图2:本实施例中存储器控制器的框图。
图3:本实施例中LPN转换器的框图。
图4:本实施例中存储控制器的操作框图。
图5:本实施例中存储器的框图。
图6:本实施例中数据单元的框图。
图7:本实施例中搜索单元与数据子单元的对应框图。
图8-13:本实施例中搜索单元的搜索步骤框图。
图14:本实施例中存储器的控制方法流程图。
图15:本实施例中存储系统的框图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
这里所描述的系统包括用于控制包括闪存芯片的大容量存储模块的新颖结构。在图1中以高度概述的形式示出了整个系统。与这里的其它框图一样,图1所示的元件本质上是概念性的,它们示出了这些功能块之间的互相关系的性质,而不意在表示实际的物理电路级实施。
如图1所示,本实施例提出一种存储器系统100,存储器系统100包括主机110和存储设备120。存储设备120包括存储器控制器121和闪速存储器122。主机110,存储器控制器121,和闪速存储器122可以被实现为单独的芯片,模块,或者设备,或者可以被包括在单一设备中。例如,存储器控制器121和闪速存储器122可以被集成到单一存储设备中并且然后可以被连接至主机110。然而,本公开不限于该示例。也就是说,在另一示例中,主机110,存储器控制器121,和闪速存储器122可以被集成到单一设备中。
如图1所示,主机110可以通过使用应用或者文件系统将读取或者写入操作的请求发送至存储器控制器121。存储器控制器121响应于由主机110发送的请求来控制闪速存储器122的例如读取或者写入操作。从闪速存储器122读取数据或者写入数据至闪速存储器122的单元与从闪速存储器122中擦除数据的单元不同。也就是说,可以以闪存块为单元来擦除闪速存储器122,并且可以以页为单元来读取或者写入闪速存储器122。不同于其他的半导体存储器设备,闪速存储器122不支持覆写功能。因此,闪速存储器122首先被擦除以被写入。
如图1所示,闪速存储器122包括具有字符串单元(cell)结构的多个存储器单元。多个存储器单元被称为存储器单元阵列。闪速存储器122的存储器单元阵列包括多个存储器块。存储器块中的每一个包括多个页。页的每一个包括一起共享单一字线的多个存储器单元。在数据实际存在的、闪速存储器122的地址被称为物理页号(Physical Page Number,PPN)。为了管理PPN,存储器控制器121使用逻辑页号(Logical Page Number,LPN),其与PPN一对一地对应。存储器控制器121利用闪存转换层(Flash Translation Layer,FTL)的使用来管理LPN和PPN。FTL可以以FTL映射表的形式被存储在存储器控制器121的存储器105(后述)中。
如图2所示,图2显示为本实施例的存储器控制器121的框图。存储器控制器121可以包括中央处理单元(CPU)103,逻辑页号(LPN)转换器104,存储器105,主机接口(InterFace,I/F)106,闪速存储器控制器107和总线108。CPU 103可以执行用于驱动存储器控制器121的计算。CPU 103可以通过使用被分配到存储器映射地址空间的逻辑地址来调用闪速存储器122的PPN。响应于从CPU 103接收被分配到CPU 103存储器映射地址空间的逻辑地址中的一个,LPN转换器104可以将对应于所接收的逻辑地址的PPN发送至CPU 103。更具体地,LPN转换器104可以提取对应于所接收的逻辑地址的LPN,可以从存储器105中读取FTL映射表、可以从FTL映射表中提取对应于所提取的LPN的PPN,以及可以将所提取的PPN发送至CPU 103。
如图2所示,存储器105可以存储FTL映射表,其包括闪速存储器122的PPN和分别与闪速存储器122的PPN对应的LPN。存储器105可以包括非易失性存储器或者易失性存储器。存储器105可以被用作CPU 103的操作存储器中的至少一个,在闪速存储器122和主机110之间的高速缓存存储器、以及缓冲存储器。主机I/F 106可以包括在主机110和存储器控制器121之间交换数据的协议。例如,主机I/F106可以被配置为经由诸如以下协议的各种I/F协议中的至少一个与主机110通信:通用串行总线(Universal Serial Bus,USB)协议、多媒体卡(MultiMedia Card,MMC)协议、外设组件互联(Peripheral ComponentInterconnection,PCI)协议、PCI高速(PCIExpress,PCI-E)协议、高技术配置(AdvancedTechnology Attachment,ATA)协议、串行ATA协议、并行ATA协议、小型计算机系统接口(Small Computer System Interface,SCSI)协议、增强小型磁盘接口(Enhanced SmallDisk Interface,ESDI)协议、以及电子集成驱动器(Integrated Drive Electronics,IDE)协议等等。这些协议仅是示例,并且不具体地限制所使用的协议。
如图2所示,闪速存储器控制器107可以在存储器控制器121和闪速存储器122之间交换指令和数据并且可以控制闪速存储器122。总线108可以被用于在CPU103、LPN转换器104、存储器105、主机I/F140、和闪速存储器控制器107之间交换数据。例如,总线108可以将对应于所调用的逻辑地址的PPN发送至存储器控制器121的元件。总线108可以包括发送逻辑地址的地址总线、和发送数据的数据总线,但是本公开不限于此。总线108是数据经由其被发送的路径。在一些示例性实施例中,总线108可以具有多层结构。总线108可以包括用于在CPU103,LPN转换器104,存储器105,主机I/F 106和闪速存储器控制器107之间交换数据的协议。多层高级高性能总线(Advanced High-performance Bus,AHB)或者多层高级可扩展接口(Advanced eXtensible Interface,AXI)可以被用作总线108,但是本公开不限于此。
如图3所示,图3显示为图2的LPN转换器104的框图。LPN转换器104可以包括LPN提取器1041、FTL映射地址生成器1042、解包器(unpacker)/打包器(packer)1043、高速缓存1044、和数据总线1045。可以例如由特别被创造以执行LPN转换器功能的专用集成电路(Application Specific Integrated Circuit,ASIC)或者由硬件块来以硬件的形式在存储器控制器121中实现LPN转换器104,但是本公开不限于此。也就是说,可替换地,在一些示例性实施例中,LPN转换器104可以以软件的形式作为模块在存储器控制器121中。可以由结合一个或者多个存储器而操作的微处理器中的至少一个来实现以软件的形式的LPN转换器104,例如由结合存储器105而操作的CPU 103来实现该LPN转换器104。LPN提取器1041可以使用逻辑地址来提取对应于逻辑地址的LPN。FTL映射地址生成器1042可以通过使用所提取的LPN来生成FTL映射地址,经由其可以访问在存储器105中所存储的FTL映射表。
如图3所示,解包器/打包器1043可以从存储器105中接收FTL映射表并且可以执行作为提取与所提取的LPN对应的PPN的处理的解包,或者执行作为将包括经修改的PPN的FTL映射表转变成可以被发送的形式的处理的打包。高速缓存1044可以暂时存储由FTL映射地址生成器1042生成的FTL映射地址和/或从存储器105接收的FTL映射表。数据总线1045可以被用在LPN提取器1041,FTL映射地址生成器1042,解包器/打包器1043、和高速缓存之间的数据通信中。数据总线1045可以是经由其数据被发送的路径,并且可以包括用于交换数据的协议。
如图4所示,图4显示为存储器控制器121的操作框图,存储器控制器121的CPU103将逻辑地址发送至LPN转换器104。由CPU103发送的逻辑地址可以是在CPU103的操作中所使用的存储器映射地址空间的逻辑地址。LPN转换器104从CPU103中接收逻辑地址、提取对应于所接收的逻辑地址的LPN,并且提取对应于所提取的LPN的FTL映射地址。此后,LPN转换器104将所提取的FTL映射地址发送至存储器105并且从存储器105中接收包括对应于所所取的FTL映射地址的FTL映射表的数据。
如图1所示,在一些实施例中,闪速存储器122还可以包括固件(FirmWare,F/W),其存储加载指令和存储指令。CPU103可以从闪速存储器122的F/W中调用加载指令或者存储指令并且可以在CPU103的RAM中存储所调用的指令。可以以汇编语言写入F/W的各种指令,并且可以由各种指令的组合来创建执行特定操作的F/W代码。CPU103可以通过使用加载指令或者存储指令、和逻辑地址来访问闪速存储器122。也就是说,CPU103可以通过使用加载指令或者存储指令、以及逻辑地址来调用闪速存储器122的PPN。
如图5所示,在本实施例中,本实施例提出一种存储器,该存储器包括控制单元201,数据单元202,用于存储数据,多个搜索单元203,用于在数据单元202内搜索数据。当控制单元201收到数据后,所述数据例如为逻辑页号(Logical Page Number,LPN),物理页号(Physical Page Number,PPN)或者逻辑页号及物理页号形成的数据元组(LPN,PPN)。当控制单元201接收到数据后,控制单元201将数据发送至数据单元202及多个搜索单元203内。
如图6所示,在本实施例中,数据单元202用于存储数据,数据单元202内包括复数个数据子单元202a,每一数据子单元202a内包括多个条目(entry),当数据单元202收到数据后,数据单元202内的数据函数对所述数据进行分析,并将数据存放在数据单元202内的某个数据子单元202a内,具体地,将数据存放在某个数据子单元202a内的某个条目内。例如当数据单元202收到数据元组(LPN,PPN)后,数据单元202内的数据函数根据LPN,将PPN分配给不同的数据子单元202a,例如,假设数据单元202收到的数据元组为(LPN1,PPN1),
数据单元202内的数据函数根据LPN1来选择相应的数据子单元202a来存储PPN1,假设数据函数选择第一数据子单元来存储PPN1,当第一数据子单元内未存储PPN时,则将PPN1插入第一数据子单元内,如果第一数据子单元内已存储PPN时,则用PPN1来覆盖旧的PPN,从而完成PPN的分配。在数据单元202内的数据函数完成数据分配后,数据单元202向控制单元201输出结果,数据单元202输出的结果为存储数据的数据子单元为第一次插入数据或数据子单元内的数据为覆盖后形成的。
如图5及图7所示,在本实施例中,当多个搜索单元203接收到控制单元201发送的数据后,多个搜索单元203对多个数据子单元202a进行搜索,在本实施例中,搜索单元203及数据子单元202a的数量均为复数,搜索单元203与数据子单元202a一一对应,多个搜索单元203对多个数据子单元202a同时进行搜索,加快了搜索效率。
如图8所示,在本实施例中,当搜索单元203收到的数据为多个PPN时,所有的搜索单元203开始对多个数据子单元202a进行搜索,当某个数据子单元202a内的某个条目内的PPN落入在多个PPN的范围内时,则删除该条目(entry),如果某个条目内的PPN落入在多个PPN的范围内时,且该条目内的更新标志被设置,则删除该条目,且所有的搜索单元停止搜索工作,并将该条目回传至控制单元201。
举例说明,多个搜索单元203收到一系列PPN后,多个搜索单元203同时对多个数据子单元202a进行搜索。假设多个搜索单元203收到一系列PPN,PPN例如从0-5,第k个数据子单元202a内设置了两个条目(entry),第一个条目内的PPN为0,第二个条目内的PPN为4。多个搜索单元203对多个数据子单元202a进行搜索后,假设第k个搜索单元203找到第k个数据子单元202a的PPN在第k个搜索单元203内的PPN的范围内,例如第k个数据子单元202a内的第一个条目的PPN落入在第k个搜索单元203内的PPN的范围内,则删除第一个条目,且第k个搜索单元203继续对第k个数据子单元内的所有条目进行搜索,当第k个数据子单元202a内的第二个条目的PPN落入在第k个搜索单元203内的PPN的范围内,且第二个条目内的更新标志被设置,则删除第二个条目,且所有的搜索单元停止搜索工作,并将第二条目回传至控制单元201。
如图8所示,需要说明的是,每个数据子单元202a内的每个条目内设置复数个标志,每个标志具有相应的状态,例如被设置或未被设置。控制单元201接收到的数据内可能设置有一个或多个标志,搜索单元203根据数据内的标志对每个数据子单元202a条目进行搜索,即搜索单元203根据标志的状态来搜索符合条件的条目。在本实施例中,更新标志为条目内的设置的标志。
如图9所示,在本实施例中,当搜索单元203收到的数据为多个LPN时,所有的搜索单元203开始对多个数据子单元202a进行搜索,当任一数据子单元202a内的某个条目内的LPN落入在多个LPN的范围内时,且该条目内的更新标志被设置,则复制该条目,形成该条目的副本,多个搜索单元203停止搜索工作,并将该条目的副本回传至控制单元201。
举例说明,多个搜索单元203收到一系列LPN后,多个搜索单元203同时对多个数据子单元202a进行搜索。假设多个搜索单元203收到一系列LPN,LPN例如从2-7,第m个数据子单元202a内设置了两个条目(entry),第一个条目内的LPN为3,第二个条目内的LPN为9。多个搜索单元203对多个数据子单元202a进行搜索后,假设第m个搜索单元203找到第m个数据子单元202a的LPN落入在第m个搜索单元203的LPN的范围内,例如第m个个数据子单元202a内的第一个条目的LPN落入在第m个搜索单元内的LPN的范围内,且第一个条目内的更新标志被设置,则复制第一条目,形成第一条目的副本,如果第一条目内的使无效标志被设置,则删除第一条目内的使无效标志的状态,并将第一条目的副本回传至控制单元201,且所有的搜索单元停止搜索工作。
如图9所示,需要说明的是,每个数据子单元202a内的每个条目内设置复数个标志,每个标志具有相应的状态,例如被设置或未被设置,又例如更新标志被设置或更新标志未被设置,又例如使无效标志被设置或使无效标志未被设置。控制单元201接收到的数据内可能设置有一个或多个标志,搜索单元203根据数据内的标志对每个数据子单元202a条目进行搜索,即搜索单元203根据标志的状态来搜索符合条件的条目。
如图10所示,在本实施例中,当控制单元201收到的数据为数据元组时,所述数据元组为逻辑页号及物理页号形成的组合,即(LPN,PPN)。当所述数据单元202将数据元组分给某个数据子单元202a后,数据单元202内的数据函数202b则根据重新接收到的数据元组对多个数据子单元202a进行搜索。举例说明,假设第n个数据子单元202a内设置了两个条目,第一个条目的(LPN,PPN)例如为(3,5),第二个条目的(LPN,PPN)例如为(8,9)。当控制单元201将数据元组发送给数据单元202时,数据单元202内的数据函数202b则可以根据数据元组找到符合条件的条目。假设数据函数202b收到的数据元组为(3,6),数据函数202b对所有的数据子单元进行搜索,假设第n个数据子单元202a内的第一条目的LPN与数据函数202b的数据元组内的LPN一致,数据函数202b还将保留第一条目的使无效标志,同时设置第一条目的更新标志,并将第一条目的PPN替换掉,例如第一条目内(LPN,PPN)从(3,5)变为(3,6)。如果数据函数202b在所有的数据子单元202a内未找到相匹配的LPN,数据函数202b则将接收到的数据元组插入某个条目内,并且设置该条目的更新标志,数据函数202b会将替换或插入的结果回传至控制单元201。
如图10所示,需要说明的是,每个数据子单元202a内的每个条目内设置复数个标志,每个标志具有相应的状态,例如被设置或未被设置,又例如更新标志被设置或更新标志未被设置,又例如使无效标志被设置或使无效标志未被设置。
如图11所示,在本实施例中,当控制单元201收到的数据为数据元组时,所述数据元组为逻辑页号及物理页号形成的组合,即(LPN,PPN)。当所述数据单元202将数据元组分给某个数据子单元202a后,数据单元202内的数据函数202b则根据重新接收到的数据元组对多个数据子单元202a进行搜索。
举例说明,假设第n个数据子单元202a内设置了两个条目,第一个条目的(LPN,PPN)例如为(4,5),第二个条目的(LPN,PPN)例如为(9,10)。当控制单元201将数据元组发送给数据单元202时,数据单元202内的数据函数202b则可以根据数据元组找到符合条件的条目。假设数据函数202b收到的数据元组为(4,6),数据函数202b对所有的数据子单元进行搜索,假设第n个数据子单元202a内的第一条目的LPN与数据函数202b的数据元组内的LPN一致,则清除第一条目内的使无效标志。如果数据函数202b在所有的数据子单元202a内未找到相匹配的LPN,数据函数202b则将接收到的数据元组插入某个条目内,并且设置该条目的更新标志。数据函数202b会将插入与否的结果回传至控制单元201。
如图11所示,需要说明的是,每个数据子单元202a内的每个条目内设置复数个标志,每个标志具有相应的状态,例如被设置或未被设置,又例如更新标志被设置或更新标志未被设置,又例如使无效标志被设置或使无效标志未被设置。
如图12所示,当搜索单元203收到的数据为多个PPN时,所有的搜索单元203对开始对多个数据子单元202a进行搜索,当任一数据子单元202a的PPN落入在多个PPN的范围内时,多个搜索单元203停止搜索工作,并统计所有条目的数量。举例说明,假设包括p个搜索单元203,p个搜索单元203对p个数据子单元202a进行搜索,且假设每个数据子单元202a内包括四个条目。假设第k个搜索单元接收到的一系列PPN,PPN从2至7,同时第k个数据子单元202a内设置了四个条目(entry),第一个条目内的PPN为2,第二个条目内的PPN为3,第四个条目内的PPN为5,第四个条目内的PPN为9,那么第一条目,第二条目及第三条目内的PPN落入在给定的PPN范围内,则第k个搜索单元203则统计出三个条目,同时其他搜索单元203各自统计出条目,然后将p个搜索单元203统计出的条目数量进行汇总,然后回传至控制单元201。
如图13所示,在本实施例中,所述存储器系统还包括一位图存储器204,当多个搜索单元203收到的数据包括一系列PPN及数字N后,多个搜索单元203开始对多个数据子单元202a进行搜索。举例说明,假设搜索单元203收到的PPN从3至7,假设数据子单元202a内设置有四个条目(entry),四个条目(entry)从0开始进行编号,即编号0表示第一条目,编号1表示第二条目,编号2表示第三条目,编号3表示第四条目,假设第k个数据子单元202a内的第一条目的PPN为11,第二条目的PPN为9,第三条目的PPN为5,第四条目的PPN为8。则第k个数据子单元202a内的第三条目的PPN落入在PPN的范围内,则通过找到第三条目内的LPN最高的N比特所构成的数值,该数值会唯一对应到位图存储器204中的一个比特,同时将所述比特设置。需要说明的是,位图存储器204中的每一比特表示一张逻辑-物理地址转换表(Logical-to-Physical address translation table),因此,每一搜索单元203都会在位图存储器204中找到一个比特,当所有的搜索单元203将所有的数据子单元202a搜索完毕后,再统计位图存储器204中被设置的比特数量,由此可得到与所述一系列PPN相关联的逻辑-物理地址转换表。
如图5所示,在本实施例中,该存储器系统还包括一条目计数器205,该条目计数器205连接数据单元202,条目计数器205用于记录正在使用的条目的数量,当数据单元202内增加一个条目时,条目计数器205进行累加操作,当数据单元202内减少一个条目时,条目计数器205进行递减操作,并将统计的数量输出至控制单元201。
如图5所示,在本实施例中,数据单元202可例如为哈希表或三态内容寻址存储器或内容寻址存储器。
如图5所示,在本实施例中,每一搜索单元203内还设置有记录器,该记录器用于记录每一搜索单元203停止搜索的位置,并根据该停止搜索的位置进行后续搜索。
如图14所示,本实施例提出一种存储器的控制方法,包括,
S1:通过控制单元接收数据;
S2:通过所述控制单元将所述数据发送至数据单元,所述数据单元将所述数据分给多个数据子单元中的某个数据子单元;
S3:通过所述控制单元将所述数据发送至多个搜索单元,所述多个搜索单元与所述多个数据子单元相对应;
S4:所述多个搜索单元对所述多个数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据。
如图5所示,在步骤S1中,控制单元201可例如接收多个PPN,多个LPN,或者LPN与PPN形成的数据元组(LPN,PPN)或者任一数字N。
如图6所示,在步骤S2中,当控制单元201接收到数据后,控制单元201将数据发送至数据单元202内,数据单元202内的数据函数将数据分给数据子单元202a,数据可以存放在数据子单元内的条目中。在本实施例中,数据单元202可例如为哈希表或三态内容寻址存储器或内容寻址存储器。
如图7-13所示,在步骤S3-S4中,当控制单元201接收到数据后,控制单元201将数据发送至搜索单元203内,多个搜索单元203对多个数据子单元202a进行搜索,当任一所述数据子单元202a内的数据在任一所述搜索单元203的数据的范围内时,所述多个搜索单元203停止搜索步骤,并输出搜索到的数据,具体步骤请参阅图8-图13对应的内容。
如图5所示,在本实施例中,多个搜索单元203及多个数据子单元202a的数量为复数。
如图5所示,在本实施例中,每一搜索单元203内还设置有记录器,该记录器用于记录每一搜索单元203停止搜索的位置,并根据该停止搜索的位置进行后续搜索。
如图15所示,本实施例提出一种存储系统400,存储系统400可以包括主机410和通过接口411与主机410传送命令和/或数据的数据存储设备420。存储系统400可以被实现为个人计算机(PC)、工作站、数据中心、互联网数据中心、存储区域网络、网络附属存储器(NAS)或移动计算设备,但是本发明构思不限于这些示例。移动计算设备可以被实现为膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静止相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持式游戏控制台、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、物联网(IoE)设备、无人机或电子书,但是本发明构思不限于这些示例。
如图15所示,接口411可以是串行高级技术附件(SATA)接口,SATA快速(SATAe)接口、SAS(串行附件小型计算机系统接口(SCSI))、外围组件互连高速(PCIe)接口、非易失性存储器快速(NVMe)接口、高级主机控制器接口(AHCI)或多媒体卡(MMC)接口,但不限于此。接口411可以传输电信号或光信号。主机410可以经由接口411控制数据存储设备420的数据处理操作(例如,写操作或读操作)。主机410可以指主机控制器。
如图15所示,数据存储设备420可以是基于闪存的存储器设备,但不限于此。数据存储设备420可以被实现为SSD、嵌入式SSD(eSSD)、通用闪速存储器(UFS)、MMC、嵌入式MMC(eMMC)或受管理的NAND,但是本发明构思不限于这些示例。基于闪存的存储器设备可以包括存储器单元阵列。存储器单元阵列可以包括多个存储器单元。存储器单元阵列可以包括二维存储器单元阵列或三维存储器单元阵列。三维存储器单元阵列可以单片地形成在具有设置在硅衬底上或上方的有源区的存储器单元阵列中的一个或多个物理层级处,并且可以包括存储器单元的操作所涉及的电路。所述电路可以形成在硅衬底中、硅衬底上或上方。术语“单片”意指阵列中的每一层级的层直接沉积在阵列中的下层级的层上。三维存储器单元阵列可以包括竖直取向的竖直NAND串,使得至少一个存储器单元置于另一存储器单元上或上方。所述至少一个存储器单元可以包括电荷俘获层。
如图15所示,数据存储设备420可以包括控制单元421、数据单元422和搜索单元423,控制单元421可以控制主机410,控制单元421,数据单元422和搜索单元423之间的命令和/或数据的传输或处理。控制单元421可以实现在集成电路(IC)或片上系统中。
如图15所示,在本实施例中,数据存储设备420可以为上述的存储器,数据存储设备420的控制方法请参阅图8-图14对应的内容,在此不在阐述。
综上所述,本发明提出一种存储器及其控制方法与存储系统,通过将数据单元设置成多个数据子单元,且通过多个搜索单元对同时多个数据子单元进行搜索,当任一搜索单元搜索到想要的数据后,所有的搜索单元停止搜索,由此提高了搜索效率。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明,本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案,例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
除说明书所述的技术特征外,其余技术特征为本领域技术人员的已知技术,为突出本发明的创新特点,其余技术特征在此不再赘述。
Claims (15)
1.一种存储器,其特征在于,包括,
控制单元,用于接收或发送数据;
数据单元,接收所述控制单元发送的数据,并将所述数据分给多个数据子单元中的某个数据子单元;
多个搜索单元,接收所述控制单元发送的数据,所述多个搜索单元与所述多个数据子单元相对应;
其中,每一所述搜索单元对每一所述数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据;
其中,当所述数据单元收到所述数据后,所述数据单元内的数据函数根据逻辑页号将所述数据分给所述某个数据子单元,所述数据存放在所述某个数据子单元的多个条目中的某个条目内;
其中,当所述数据存放在所述数据子单元内的条目时,判断所述条目下的物理页号是否被覆盖,如果被覆盖,则将所述数据子单元接收的数据内的物理页号替换所述物理页号,如果未被覆盖,则将所述数据子单元接收的数据内的物理页号存放在所述条目内。
2.根据权利要求1所述的存储器,其特征在于,所述控制单元接收的数据包括逻辑页号或物理页号或者逻辑页号与物理页号形成的数据元组。
3.根据权利要求1所述的存储器,其特征在于,所述多个数据子单元及所述多个搜索单元的数量为复数。
4.根据权利要求1所述的存储器,其特征在于,当所述多个搜索单元收到多个物理页号后,所述多个搜索单元对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的物理页号落入在所述多个搜索单元的多个物理页号内时,则定位出所述物理页号在所述数据子单元内的条目,并删除所述条目;所述多个搜索单元继续对所述多个数据子单元进行搜索,如果所述条目内的更新标志被设置,且所述条目内的物理页号落入在所述多个搜索单元的多个物理页号内时,则删除所述条目,所述多个搜索单元停止搜索工作,并将所述条目回传至所述控制单元。
5.根据权利要求1所述的存储器,其特征在于,当所述多个搜索单元收到多个逻辑页号后,所述多个搜索单元对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的逻辑页号落入在所述多个搜索单元的多个逻辑页号内时,则定位出所述逻辑页号在所述数据子单元内的条目,且如果所述条目内的更新标志被设置,则复制所述条目,形成条目副本,并将所述条目副本回传至控制单元,且所述多个搜索单元停止搜索工作;如果所述条目内的使无效标志被设置,则清除所述使无效标志。
6.根据权利要求1所述的存储器,其特征在于,当所述数据单元收到数据元组后,所述数据单元内的数据函数对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的逻辑页号与所述数据元组内的逻辑页号相匹配,则定位出所述逻辑页号在所述数据子单元内的条目,保留所述条目的使无效标志状态,设置所述条目的更新标志,并将所述数据元组内的物理页号替换所述条目内的物理页号;否则,将所述数据元组插入至某一条目内,并设置所述条目的更新标志。
7.根据权利要求1所述的存储器,其特征在于,当所述数据单元收到数据元组后,所述数据单元内的数据函数对所述多个数据子单元进行搜索,当所述多个数据子单元中的某个数据子单元内的逻辑页号与所述数据元组内的逻辑页号相匹配,则定位出所述逻辑页号在所述数据子单元内的条目,清除所述条目内的使无效标志状态;否则,将所述数据元组插入至某一条目内,并设置所述条目的更新标志。
8.根据权利要求1所述的存储器,其特征在于,所述多个搜索单元与所述多个数据子单元一一对应,当所述数据子单元内的物理页号落入在所述多个搜索单元内的物理页号内时,则定位出所述物理页号在所述数据子单元内的条目,并统计所述条目的数量,并汇总每一所述搜索单元统计的条目数量,并将统计数量回传至所述控制单元。
9.根据权利要求1所述的存储器,其特征在于,当所述搜索单元收到多个物理页号及数字N后,当所述多个数据子单元中的某个数据子单元内的物理页号落入在所述多个搜索单元的多个物理页号内时,则定位出所述物理页号在所述数据子单元内的条目,所述条目内逻辑页号的最高的N比特将形成一数值,根据所述数值唯一对应到位图存储器内的一个比特,并设置所述比特。
10.根据权利要求9所述的存储器,其特征在于,当所述多个搜索单元搜索所述多个数据子单元后,统计所述多个搜索单元在所述位图存储器中被设置的比特数量,所述位图存储器内每一比特表示逻辑-物理地址转换表。
11.根据权利要求1所述的存储器,其特征在于,每一所述搜索单元内设置有记录器,所述记录器用于记录所述搜索单元停止搜索的位置,所述搜索单元从所述停止搜索的位置进行后续搜索。
12.根据权利要求1所述的存储器,其特征在于,还包括条目计数器,所述条目计数器用于统计正在使用的条目的数量。
13.根据权利要求1所述的存储器,其特征在于,所述数据单元包括哈希表或三态内容寻址存储器或内容寻址存储器。
14.一种存储器的控制方法,其特征在于,包括,
通过控制单元接收数据;
通过所述控制单元将所述数据发送至数据单元,所述数据单元将所述数据分给多个数据子单元中的某个数据子单元;
通过所述控制单元将所述数据发送至多个搜索单元,所述多个搜索单元与所述多个数据子单元相对应;
每一所述搜索单元对每一所述数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据;
其中,当所述数据单元收到所述数据后,所述数据单元内的数据函数根据逻辑页号将所述数据分给所述某个数据子单元,所述数据存放在所述某个数据子单元的多个条目中的某个条目内;
其中,当所述数据存放在所述数据子单元内的条目时,判断所述条目下的物理页号是否被覆盖,如果被覆盖,则将所述数据子单元接收的数据内的物理页号替换所述物理页号,如果未被覆盖,则将所述数据子单元接收的数据内的物理页号存放在所述条目内。
15.一种存储系统,其特征在于,包括,
主机;
存储器,连接所述主机,其中,所述存储器包括,
控制单元,用于接收或发送数据;
数据单元,接收所述控制单元发送的数据,并将所述数据分给多个数据子单元中的某个数据子单元;
多个搜索单元,接收所述控制单元发送的数据,所述多个搜索单元与所述多个数据子单元相对应;
其中,每一所述搜索单元对每一所述数据子单元进行搜索,当任一所述数据子单元内的数据在任一所述搜索单元的数据的范围内时,所述多个搜索单元停止搜索步骤,并输出搜索到的数据;
其中,当所述数据单元收到所述数据后,所述数据单元内的数据函数根据逻辑页号将所述数据分给所述某个数据子单元,所述数据存放在所述某个数据子单元的多个条目中的某个条目内;
其中,当所述数据存放在所述数据子单元内的条目时,判断所述条目下的物理页号是否被覆盖,如果被覆盖,则将所述数据子单元接收的数据内的物理页号替换所述物理页号,如果未被覆盖,则将所述数据子单元接收的数据内的物理页号存放在所述条目内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088748.7A CN111338989B (zh) | 2020-02-12 | 2020-02-12 | 一种存储器及其控制方法与存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088748.7A CN111338989B (zh) | 2020-02-12 | 2020-02-12 | 一种存储器及其控制方法与存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338989A CN111338989A (zh) | 2020-06-26 |
CN111338989B true CN111338989B (zh) | 2021-01-12 |
Family
ID=71185282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010088748.7A Active CN111338989B (zh) | 2020-02-12 | 2020-02-12 | 一种存储器及其控制方法与存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338989B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110119361A (zh) * | 2018-02-06 | 2019-08-13 | 三星电子株式会社 | 存储器控制器及其操作方法 |
CN110275838A (zh) * | 2018-03-16 | 2019-09-24 | 北京忆芯科技有限公司 | Kv存储设备的地址转换及其加速器 |
CN110309081A (zh) * | 2019-06-03 | 2019-10-08 | 华侨大学 | 基于压缩存储和地址映射表项的ftl读写数据页的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216655A1 (en) * | 2004-03-25 | 2005-09-29 | Rosenbluth Mark B | Content addressable memory constructed from random access memory |
US7260674B2 (en) * | 2004-05-25 | 2007-08-21 | Intel Corporation | Programmable parallel lookup memory |
US9003159B2 (en) * | 2009-10-05 | 2015-04-07 | Marvell World Trade Ltd. | Data caching in non-volatile memory |
CN102789427B (zh) * | 2012-07-17 | 2015-11-25 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
US9384133B2 (en) * | 2014-05-30 | 2016-07-05 | International Business Machines Corporation | Synchronizing updates of page table status indicators and performing bulk operations |
US9824015B2 (en) * | 2015-05-29 | 2017-11-21 | Qualcomm Incorporated | Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media |
US10175896B2 (en) * | 2016-06-29 | 2019-01-08 | Western Digital Technologies, Inc. | Incremental snapshot based technique on paged translation systems |
KR102661020B1 (ko) * | 2016-11-07 | 2024-04-24 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US10528480B2 (en) * | 2017-08-24 | 2020-01-07 | Arm Limited | Apparatus and method for efficient utilisation of an address translation cache |
CN109582593B (zh) * | 2018-11-05 | 2022-09-30 | 华侨大学 | 一种基于计算的ftl地址映射读、写方法 |
-
2020
- 2020-02-12 CN CN202010088748.7A patent/CN111338989B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110119361A (zh) * | 2018-02-06 | 2019-08-13 | 三星电子株式会社 | 存储器控制器及其操作方法 |
CN110275838A (zh) * | 2018-03-16 | 2019-09-24 | 北京忆芯科技有限公司 | Kv存储设备的地址转换及其加速器 |
CN110309081A (zh) * | 2019-06-03 | 2019-10-08 | 华侨大学 | 基于压缩存储和地址映射表项的ftl读写数据页的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111338989A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640353B2 (en) | Memory system, data storage device, user device and data management method thereof | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US8321639B2 (en) | Command tracking for direct access block storage devices | |
US8166258B2 (en) | Skip operations for solid state disks | |
US9239780B2 (en) | Selection of memory blocks for garbage collection based on variable block life threshold | |
US11526296B2 (en) | Controller providing host with map information of physical address for memory region, and operation method thereof | |
CN112506814B (zh) | 一种存储器及其控制方法与存储系统 | |
CN111338564B (zh) | 包括数据存储设备的系统和控制丢弃操作的方法 | |
CN112445421A (zh) | 数据存储装置及其操作方法 | |
US11422930B2 (en) | Controller, memory system and data processing system | |
US10168926B2 (en) | Method of operating data storage device and method of operating data processing system including same | |
KR20200032404A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
CN112015671B (zh) | 闪存控制器、存储器装置以及存取闪存模块的方法 | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
CN111338989B (zh) | 一种存储器及其控制方法与存储系统 | |
CN113223584B (zh) | 一种存储器及其数据读取方法 | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
US20240241835A1 (en) | Storage device supporting multi-namespace and method of operating the same | |
US20240160381A1 (en) | Memory controllers and operating methods thereof, memory systems, and electronic devices | |
KR100903051B1 (ko) | 읽기 요청 처리 시스템 및 방법 | |
CN118585141A (zh) | 一种存储器及其数据处理方法 | |
CN114546885A (zh) | 控制器以及包括控制器的存储器系统和数据处理系统 | |
CN118093449A (zh) | 一种存储器系统及其垃圾回收方法、电子设备 | |
CN114691534A (zh) | 控制器以及包括控制器的存储器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |