一种l2p表的读写、更新方法及l2p表

文档序号:1737214 发布日期:2019-12-20 浏览:24次 >En<

阅读说明:本技术 一种l2p表的读写、更新方法及l2p表 (Reading-writing and updating method of L2P table and L2P table ) 是由 苗森 于 2019-08-23 设计创作,主要内容包括:本发明实施例公开了一种L2P表的读写、更新方法及L2P表,所述L2P表的PBA用Nbit标示,所述N的取值根据盘容量S计算,为非32bit对齐的方式。降低了L2P对内存的使用容量,从而降低SSD的成本。进行数据读写和L2P表更新时,只需要根据LBA的值,计算对应PBA是否跨32bit,在PBA跨32bit的情况下,直接获取2个32bit,采用异或方式进行相应读写和更新操作即可,便于L2P的保存和恢复。(The embodiment of the invention discloses a reading-writing and updating method of an L2P table and an L2P table, wherein a PBA of the L2P table is marked by Nbit, and a value of N is calculated according to the disk capacity S and is in a non-32-bit alignment mode. The use capacity of the L2P to the memory is reduced, and therefore the cost of the SSD is reduced. When data reading and writing and L2P table updating are carried out, whether the corresponding PBA spans 32 bits or not is calculated according to the value of the LBA, 2 32 bits are directly obtained under the condition that the PBA spans 32 bits, corresponding reading and writing and updating operations are carried out in an exclusive OR mode, and the L2P can be conveniently stored and restored.)

一种L2P表的读写、更新方法及L2P表

技术领域

本发明涉及计算机存储技术领域,具体地说是一种L2P表的读写、更新方法及L2P表。

背景技术

SSD(Solid State Drives,固态硬盘)的映射表(L2P)是LBA(Logical BlockAddress。逻辑地址)和PBA(Physics Block Address,物理地址)的映射,在读写过程中,host(主机)下发LBA到SSD,SSD查询L2P表找到PBA,从而找到对应的flash位置进行读写操作。

L2P相当于一个以LBA为下标的一维数组,数组的每一个元素都是一个PBA,所有的PBA能够寻址到SSD的任何falsh空间。

现有的L2P中的PBA一般是用32bit去标示,这样在SSD运行过程中针对32对齐的L2P表进行读写访问比较方便,但L2P表大小一般为盘实际容量的1/1000。因每个32bit中空闲了若干比特,这浪费了DDR(Double Data Rate,双倍速率同步动态随机存储器)。而现在的企业级SSD一般为TB级,对DDR的容量需求较大,以至于DDR的成本极大的影响了SSD的成本。

发明内容

本发明实施例中提供了一种L2P表的读写、更新方法及L2P表,以解决现有技术中L2P表占用较大DDR空间,增大SSD成本的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

本发明第一方面提供了一种L2P表,包括具有映射关系的LBA和PBA,所述PBA用Nbit标示,所述N的取值根据盘容量S计算,具体为:S/4=2N

本发明第二方面提供了一种基于所述L2P表的读取方法,所述方法包括:

根据LBA和Nbit的取值,计算PBA是否跨32bit,并获取当前LBA对应的PBA,读取数据。

进一步地,所述计算PBA是否跨32bit,并获取当前LBA对应的PBA的具体过程为:

判断运算结果的整数部分是否相等,M为L2P表中LBA的取值;

若是,则PBA未跨32bit,获取1个32bit,得到对应的PBA;

若否,则PBA跨32bit,获取2个32bit,得到对应的PBA。

本发明第三方面提供了一种基于所述L2P表的写入方法,所述方法包括:

根据LBA和Nbit的取值,计算PBA是否跨32bit,并获取当前LBA对应的PBA,采用异或方式写入数据。

进一步地,计算PBA是否跨32bit,并获取当前LBA对应的PBA,采用异或方式写入数据的具体过程为:

判断运算结果的整数部分是否相等,M为L2P表中LBA的取值;

若是,则PBA未跨32bit,获取1个32bit,得到对应的PBA,采用内存操作的异或方式写入数据;

若否,则PBA跨32bit,获取2个32bit,得到对应的PBA,采用内存操作的异或方式写入数据。

本发明第四方面提供了一种L2P表的更新方法,基于所述的L2P表,所述方法包括以下步骤:

根据更新后的LBA计算PBA,进行数据读写操作;

以LBA+(N bit PBA)的形式,将变量信息发送给上下电模块;

上电时,上下电模块读取所述变量信息,计算PBA所在DDR的位置,以内存操作的异或方式写入DDR。

进一步地,所述计算PBA所在DDR的位置,以内存操作的异或方式写入DDR的具体过程为:

根据LBA计算PBA所在DDR的位置,判断当前PBA是否跨32bit;

若是,读取DDR位置对应的2个32bit,将PBA填入新的L2P表项;

若否,读取DDR位置对应的1个32bit,将PBA填入新的L2P表项;

将读取的32bit中未填入PBA的bit清零,以内存操作异或的方式写入DDR。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

1、本发明提出一种非32bit对齐的L2P设计方案,根据实际盘容量,确定标示PBA的bit数,因bit数小于32,且依次标示,降低了L2P对内存的使用容量,从而降低SSD的成本。

2、基于非对齐的L2P表进行数据读写和L2P表更新时,只需要根据LBA的值,计算对应PBA是否跨32bit,在PBA跨32bit的情况下,直接获取2个32bit,采用异或方式进行相应读写和更新操作即可,便于L2P的保存和恢复。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明所述L2P表的PBA标示方式示意图;

图2是基于本发明所述L2P表进行数据读取的流程示意图;

图3是基于本发明所述L2P表进行数据写入的流程示意图;

图4是本发明所述L2P表的更新流程示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

如图1所示,本发明L2P表的PBA采用非32bit对齐的方式进行标识,根据盘容量计算出PBA所需的标示位数,并对PBA进行一次标示,即有的PBA采用跨32bit的方式进行标识。

计算PBA标识位数具体为:

S/4=2N

式中,S为盘容量,N为PBA所需的标示位数,4表示数据块的大小,每个数据块为4K,式中为标明容量单位。以盘容量2T为例计算,得到N的取值为29,即盘容量为2T时,PBA需要29bit来标示。

如图2所示,利用L2P表进行数据读取的过程为:根据LBA和N的取值,计算PBA是否跨32bit,其计算方法为:

分别计算并取计算结果的整数部分,判断两整数部分是否相等,若相等,则认为当前LBA对应的PBA为跨32bit,否则,当前LBA对应的PBA跨32bit。其中M为L2P表中LBA的取值。

若当前PBA未跨32bit,则获取1个32bit,找到对应的PBA,读取数据;若当前PBA跨32bit,则获取2个32bit,找到对应的PBA,读取数据。

如图3所示,利用L2P表进行数据写入的过程为:根据LBA和N的取值,计算PBA是否跨32bit,其计算方法为:

分别计算并取计算结果的整数部分,判断两整数部分是否相等,若相等,则认为当前LBA对应的PBA为跨32bit,否则,当前LBA对应的PBA跨32bit。其中M为L2P表中LBA的取值。

若当前PBA未跨32bit,则获取1个32bit,找到对应的PBA,采用内存操作的异或方式写入数据;若当前PBA跨32bit,则获取2个32bit,找到对应的PBA,采用内存操作的异或方式写入数据。如对于2个32bit,首先找到第一个32bit中的N1bit,然后找到第二个32bit中的(N-N1)bit,在两个32bit中均采用异或操作,即不改变除N1bit和(N-N1)bit外的其他bit。

如图4所示,存储运行过程中L2P表发生更新时,其更新方法为:

根据更新后的LBA计算PBA,进行数据读写操作;该读写操作与图2、图3所示的操作相同,只是LBA的值发生了变化,在此不做赘述。

以LBA+(N bit PBA)的形式,将变量信息发送给上下电模块;变量信息即LBA更新后的值,以“LBA+(N bit PBA)”的形式发送,是为了上下电模块识别到L2P发生了更新,并保存更新后的LBA。

上电时,上下电模块读取变量信息,计算PBA所在DDR的位置,以内存操作的异或方式写入DDR。根据LBA计算PBA所在DDR的位置,判断当前PBA是否跨32bit;若是,读取DDR位置对应的2个32bit,将PBA填入新的L2P表项;若否,读取DDR位置对应的1个32bit,将PBA填入新的L2P表项;将读取的32bit中未填入PBA的bit清零,以内存操作异或的方式写入DDR。如L2P表的表项(PBA)为29bit,那第一个PBA在32bit之内;第二个PBA就跨32bit了,第二个PBA占了第一个32bit的3bit,第二个32bit的26bit;第三个PBA同样跨32bit,占了第二个32bit的6bit,第三个32bit的23bit,以此类推,得到所有PBA在DDR中的位置,在填完所有PBA后,将DDR中未填入PBA的bit清零,节省DDR空间。在写PBA的过程中,依然采用内存操作异或的方式写入DDR。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于具有持久系统存储器的计算机系统的改进存储模型

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类