CN114489506A - 存储访问控制装置、方法及存储设备 - Google Patents
存储访问控制装置、方法及存储设备 Download PDFInfo
- Publication number
- CN114489506A CN114489506A CN202210074179.XA CN202210074179A CN114489506A CN 114489506 A CN114489506 A CN 114489506A CN 202210074179 A CN202210074179 A CN 202210074179A CN 114489506 A CN114489506 A CN 114489506A
- Authority
- CN
- China
- Prior art keywords
- linked list
- vector
- target
- characteristic
- virtual block
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 239000013598 vector Substances 0.000 claims abstract description 170
- 230000001133 acceleration Effects 0.000 claims description 31
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000012512 characterization method Methods 0.000 claims description 4
- 238000004064 recycling Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了存储访问控制装置、方法及存储设备。本申请实施例中,通过在存储设备内部署一个存储访问控制装置来代替存储设备中的CPU处理存储访问,能够减轻CPU的负担,并解放CPU处理其他任务,提高存储设备的执行效率;进一步地,在本申请实施例中,将单个链表看成矢量,并按照相应的链表运算来完成存储访问,这相比逐一轮询链表中各虚拟块的变量参数以实现存储访问,显然提高执行效率。
Description
技术领域
本申请涉及数据存储技术,特别涉及存储访问控制装置、方法及存储设备。
背景技术
对于存储设备比如固态存储磁盘(SSD:Solid-State Disk)等,其主要由控制单元和存储单元组成。图1以SSD为例示出了存储设备的结构。在图1中,CPU、双倍速率同步动态随机存储器(DDR:Double Data Rate)控制器可作为控制单元,而DDR、静态随机存取存储器(SRAM:Static Random-Access Memory)可作为存储单元。图1中的总线是指SSD中的信息传输线。
在存储设备中,目前针对固件发起的存储访问请求比如读、写、垃圾回收等,都是由存储设备中的CPU执行的。作为一个例子,这里的固件可为存储设备中运行在CPU上的嵌入式软件等。而这会加重CPU的负担,并且,也会影响存储访问效率。
发明内容
本申请实施例提供了存储访问控制装置、方法及存储设备,以提高存储访问效率。
本申请实施例提供了一种存储访问控制装置,所述存储访问控制装置被部署在存储设备并连接至所述存储设备的总线;
所述存储访问控制装置包括:至少一个硬件加速单元;
所述硬件加速单元,用于在检测到针对至少一个目标链表的链表运算事件的情况下,从所述目标链表中选择不同虚拟块上对应目标特征类型的目标特征参数,将选择出的目标特征参数组成目标特征矢量,依据所述链表运算事件对所述目标特征矢量进行链表运算,得到链表运算结果;所述链表运算结果用于作为对所述存储设备进行存储访问控制的依据;
其中,所述目标链表用于描述所述存储设备中不同虚拟块的变量参数,所述不同变量参数至少包括不同特征类型对应的特征参数;所述虚拟块是由所述存储设备中一个条带上的物理块Block组成。
本申请实施例提供了一种存储访问控制方法,该方法应用于存储访问控制装置,所述存储访问控制装置被部署在存储设备并连接至所述存储设备的总线;该方法包括:
检测链表运算事件,在检测到针对至少一个目标链表的链表运算事件的情况下,从所述目标链表中选择不同虚拟块上对应目标特征类型的目标特征参数,将选择出的目标特征参数组成目标特征矢量,依据所述链表运算事件对所述目标特征矢量进行链表运算,得到链表运算结果;所述链表运算结果用于作为对所述存储设备进行存储访问控制的依据。
一种存储设备,该存储设备至少包括:CPU、系统总线、以及部署在所述系统总线上的硬件加速装置,所述硬件加速装置至少包括如上公开的装置中的结构
由以上技术方案可以看出,本申请本实施例中,通过在存储设备内部署一个存储访问控制装置来代替存储设备中的CPU处理存储访问,能够减轻CPU的负担,并解放CPU处理其他任务,提高存储设备的执行效率;
进一步地,在本申请实施例中,将单个链表看成矢量,并按照相应的链表运算来完成存储访问,这相比逐一轮询链表中各虚拟块的变量参数以实现存储访问,显然提高执行效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的存储设备的示例结构图;
图2为本申请实施例提供的存储设备中存储单元的示例结构图;
图3为本申请实施例提供的链表示意图;
图4为本申请实施例提供的存储设备中部署存储访问控制装置的结构图;
图5为本申请实施例提供的存储访问控制装置的结构图;
图6a至图6b为本申请实施例提供的目标链表示意图;
图7为本申请实施例提供的硬件加速单元的结构示意图;
图8为本申请实施例提供的方法流程图;
图9为本申请实施例提供的存储设备硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
在描述本申请实施例之前,先对本申请实施例涉及到的链表进行描述:
对于存储设备比如SSD,其引入了虚拟块(Virtual Block)的概念。在一个例子中,一个虚拟块(Virtual Block)是由存储设备中一个条带上的物理块(Block)组成。图2以SSD为例示出了其中存储单元的结构。在图2中,每一Block包括多个页(Page)。
在应用中,可通过链表记录其中各虚拟块的变量参数。在具体实现时,可先针对每一虚拟块,将该虚拟块的变量参数对应记录至指定结构体中,得到虚拟块的结构体。之后通过将各个虚拟块的结构体串起来即形成一个链表。在链表中,每一虚拟块的结构体都包含结构头(Header)、结构元素。结构元素表征虚拟块的变量参数。图3举例示出了链表的结构。
作为一个实施例,虚拟块的变量参数至少包括不同特征类型对应的特征参数。以特征类型分别为擦写状态、读状态、有效数据帧(VDF:Valid Data Frame)状态,擦写状态对应的特征参数为擦写次数、读状态对应的特征参数为读次数、有效数据帧状态对应的特征参数为有效数据帧量为例,则虚拟块的变量参数至少包括:擦写状态对应的擦写次数、读状态对应的读次数、有效数据帧状态对应的有效数据帧量。
可选地,在本实施例中,对于一个虚拟块,该虚拟块中擦写状态对应的擦写次数可为该虚拟块中各Block的擦写次数中取值最大的擦写次数、该虚拟块中读状态对应的读次数可为该虚拟块中各Block的读次数中取值最大的读次数、该虚拟块中有效数据帧状态对应的有效数据帧量可为该虚拟块中各Block的有效数据帧量之和。可以看出,在本实施例,虚拟块中每一特征类型对应的特征参数依赖于该虚拟块中各Block上与该特征类型对应的特征参数确定。
可选地,在本实施例中,虚拟块中不同特征类型对应的特征参数按照顺序记录至指定结构体中。需要说明的是,在本实施例中,不同虚拟块中各特征类型对应的特征参数按照相同顺序记录至指定结构体中。比如图3所示的op(0)、op(1)……op(p-1),均表示各虚拟块上对应同一特征类型比如读状态下的特征参数。
下面对本申请实施例进行描述:
如背景技术描述,目前存储设备中针对固件发起的存储访问请求比如读、写、垃圾回收等,都是由存储设备中的CPU执行的。本申请为了减轻CPU的负担,提出在存储设备内部署一个存储访问控制装置。可选地,在本实施例中,存储访问控制装置可为一个硬件结构,其也可称为硬件加速器。
在本实施例中,存储访问控制装置独立于存储设备的CPU,可连接在存储设备的总线。在图4以SSD为例举例示出了存储设备中部署存储访问控制装置的结构。
至于存储访问控制装置的结构,具体如图5所示。
如图5所示,存储访问控制装置包括:至少一个硬件加速单元。
在本实施例中,当存储访问控制装置包括多个硬件加速单元时,每个硬件加速单元之间相互独立,可以针对不同链表同步处理,提高执行效率。
在本实施例中,每一硬件加速单元,用于在检测到针对至少一个目标链表的链表运算事件的情况下,从目标链表中选择不同虚拟块上对应目标特征类型的目标特征参数,将选择出的目标特征参数组成目标特征矢量,依据链表运算事件对目标特征矢量进行链表运算,得到链表运算结果。在本实施例中,链表运算结果可用于作为对存储设备进行存储访问控制的依据,下文会具体描述,这里暂不赘述。最终,硬件加速单元通过将单个链表看成矢量来实现对存储设备进行存储访问控制,以提高存储访问效率,具体如下述。
可选地,本实施例中,固件在存在存储访问需求时,其会向CPU发送存放访问请求。而当CPU接收到来自固件的存储访问请求,则会下发存储访问请求对应的运算启动命令给存储访问控制装置中的其中一个处于空闲状态的硬件加速单元。基于此,当硬件加速单元接收到运算启动命令,其就意味着检测到链表运算事件。即实现了硬件加速单元检测到针对至少一个目标链表的链表运算事件。
可选地,本实施例中,上述链表运算事件至少携带与该链表运算事件相关联的配置信息。配置信息至少包括:第一操作数、第二操作数、操作码。
表1举例示出了配置信息:
表1
在上述表1中,上述第一特征标识、第二特征标识也可称为偏移量,比如偏移结构头的偏移量。基于上面对链表的描述,这里通过偏移量即可确定出对应的特征参数。
在上述表1中,操作码表征的链表运算,可以为对目标链表进行解析和处理,也可以将目标链表看成矢量进行相应的标量或矢量运算比如基本运算(加/减等)、统计值(最大值、最小值、均值等)等。下面以标量运算、矢量运算为例进行描述:
标量运算:
在本实施例中,上述第一操作数的操作类型为链表(也可以称为矢量)、第二操作数的操作类型为标量、操作码用于指示标量与矢量之间的链表标量运算。
可选地,如表1所示的第一操作数,则在本实施例中,上述目标链表即为第一链表标识对应的第一链表。对应地,上述目标特征参数也可为上述第一链表中各虚拟块上与第一特征标识对应的第一特征参数。比如,这里的第一特征参数是指图6a所示的每一虚拟块的结构体中距离结构头偏移offset0的特征参数,比如a0,a1,…ap-1;再比如,这里的第一特征参数是指图6b所示的每一虚拟块的结构体中距离结构头偏移offset1的特征参数,比如b0,b1,…bp-1,等等,不再一一举例。
基于第一特征参数的描述,则可选地,在本实施例中,上述目标特征矢量是由第一链表中各虚拟块上的第一特征参数组成的矢量。以图6a为例,则目标特征矢量可为再以图6b为例,则目标特征矢量可为这里,表征上述目标特征矢量。
在本实施例中,对于标量和单个链表对应的上述目标特征矢量执行链表标量运算有很多,其中最基本的运算如下公式1所示:
下面举例描述标量运算所应用的实施例:
实施例1:
本实施例1以数据搬移为例,在数据搬移时,常需要动态巡检扫描出状态较差的虚拟块,并将该虚拟块上的数据搬移到其它虚拟块上,避免数据出错。基于此,在本实施例1中,上述第一特征参数可为用于表示虚拟块状态的虚拟块状态参数比如读次数、错误比特数等。对应地,上述目标特征矢量则是由各虚拟块的虚拟块状态参数比如读次数、错误比特数等组成的矢量。在本实施例1中,可将各虚拟块的虚拟块状态参数组成的矢量记为
在本实施例1中,虚拟块的状态参数比如读次数、错误比特数等超过设定的预设阈值,则认为该虚拟块需要进行数据搬移。基于此,结合上述标量运算,则可通过如下公式2确定虚拟块是否需要进行数据搬移:
以上以数据搬移为例描述了链表标量运算的实施例。
实施例2:
本实施例2以等效系数为例描述。上述第一特征参数可为用于表示虚拟块状态的虚拟块状态参数比如读次数、错误比特数等。对应地,上述目标特征矢量则是由各虚拟块的虚拟块状态参数比如读次数、错误比特数等组成的矢量。在本实施例1中,可将各虚拟块的虚拟块状态参数组成的矢量记为结合上述标量运算,则可通过如下公式4描述虚拟块的等效系数:
可选地,在本实施例中,不同虚拟块的质量可以通过在相同状态下(如擦除次数、读次数等相同时)虚拟块的错误比特数来衡量,该值越大,虚拟块的质量越差。若虚拟块质量不一,有的质量好,有的质量差,虽然擦除次数一样,但是对于质量差的虚拟块,等效擦除次数大于质量好的虚拟块,因此结合上述公式4,则上述公式4可转换为如下公式5:
以上对标量运算进行了举例描述。需要说明的是,在应用中,标量运算并不限定上述实施例,其还有其他示例:比如,独立的逻辑空间(namespace)的逻辑块地址(LBA:Logical Block Address)至L2P表的LBA的地址转换通过下式表示:LBA(L2P表)=LBA(namespace)+BaseAddress。其中,BaseAddress为namespace的基准地址。再比如,以访问L2P表为例,L2P表中LBA与物理块地址(PBA:Physical Block Address)采用下式转换:PBA=Memory Access(LBA)。其中,Memory Access为转换公式。
下面对矢量运算进行描述:
矢量运算:
对应矢量运算,则在本实施例中,上述配置信息至少包括:操作类型为矢量的第三操作数、第四操作数,操作码。需要说明的是,这里的第三操作数、第四操作数只是为便于描述而进行的命名,并非用于限定。
在本实施例中,第三操作数至少包括:第三链表标识、第三特征标识。
第四操作数至少包括:第四链表标识、第四特征标识。
其中,第三链表标识、第四链表标识可参考上述的第一链表标识,第三特征标识,第四特征标识可参考上述的第一特征标识,这里不再一一赘述。
在本实施例中,操作码用于指示矢量与矢量之间的链表矢量运算。
可选地,类似上述的第一操作数,则在本实施例中,上述目标链表至少包括:第三链表标识对应的第三链表、第四链表标识对应的第四链表。作为一个实施例,这里第三链表、第四链表可为同一个链表,也可为不同链表,本实施例并不具体限定。
对应地,上述目标特征参数可至少包括:第三链表中各虚拟块上与第三特征标识对应的第三特征参数、第四链表中各虚拟块上与第四特征标识对应的第四特征参数。比如,以第三链表、第四链表为同一个链表为例,第三特征参数可指图6a所示的每一虚拟块的结构体中距离结构头偏移offset0的特征参数,比如a0,a1,…ap-1;第四特征参数是指图6b所示的每一虚拟块的结构体中距离结构头偏移offset1的特征参数,比如b0,b1,…bp-1,等等,不再一一举例。
基于第三特征参数、第四特征参数的描述,则可选地,在本实施例中,上述目标特征矢量至少包括:由第三链表中各虚拟块上的第三特征参数组成的第三矢量、由第四链表中各虚拟块上的第四特征参数组成的第四矢量。以第三特征参数为图6a所示的a0,a1,…ap-1为例,则第三矢量可为[a0,a1,…ap-1],以第四特征参数为图6b所示的b0,b1,…bp-1为例,则第四矢量可为[b0,b1,…bp-1]。
在本实施例中,对于链表对应的矢量执行链表矢量运算有很多,其中最基本的运算如下公式6所示:
下面举例描述矢量运算所应用的实施例:
实施例3:
本实施例3以垃圾回收中选择待回收的虚拟块为例,在垃圾回收中,一般回收优先级高的虚拟块。而虚拟块的优先级主要取决于虚拟块的有效数据帧VDF信息(比如VDF总量)、擦除次数、虚拟块的最近一次使用时间信息(比如最近一次被使用的时间戳)。基于此,在本实施例3中,上述的目标特征参数至少包括:同一目标链表中各虚拟块的有效数据帧VDF信息、各虚拟块的擦除次数、各虚拟块的最近一次使用时间信息。其中,第三特征参数至少包括:目标链表中各虚拟块的有效数据帧VDF信息;第四特征参数至少包括:目标链表中各虚拟块的擦除次数。另外,应用于垃圾回收,上述目标特征参数还包括第五特征参数。其中,第五特征参数至少包括:目标链表中各虚拟块的最近一次使用时间信息。在本实施例中,这里的目标链表可指同一个链表,比如上述的第三链表、或者第四链表。
对应地,在本实施例中,第三矢量至少包括:目标链表中基于各虚拟块的有效数据帧VDF信息生成的VDF矢量;第四矢量至少包括:目标链表中基于各虚拟块的擦除次数生成的擦除次数矢量。
在本实施例中,应用于垃圾回收,上述目标特征矢量还包括:第五矢量;第五矢量至少包括:目标链表中基于各虚拟块的最近一次使用时间信息生成的使用时间矢量。
基于此,结合上述矢量运算,则可通过如下公式7确定虚拟块的回收优先级:
在公式7中,表示所述第三矢量,表示第四矢量,表示第五矢量,f1,f2和f3是单调函数,表示加号或点乘,为虚拟块的回收优先级。在本实施例中,被用于垃圾回收中选择需要被回收的目标虚拟块的依据。实质为一个矢量,矢量中不同位置上的元素对应不同虚拟块的回收优先级。其中,回收优先级最高的虚拟块,则可被回收。
实施例4:
本实施例4以计算虚拟块的某一虚拟块特征参数的等效参数为例。在本实施例中,第三特征参数至少包括:目标链表中各虚拟块的等效表征参数;虚拟块的等效表征参数用于计算虚拟块的等效系数,比如等效表征参数为上述的错误比特率。
第四特征参数至少包括:目标链表中各虚拟块的目标虚拟块特征参数,比如擦除次数。
对应地,在本实施例中,第三矢量至少包括:目标链表中基于各虚拟块的等效表征参数生成的等效表征参数矢量;第四矢量至少包括:目标链表中基于各虚拟块的目标虚拟块特征参数生成的目标虚拟块特征参数矢量。
基于此,上述对目标特征矢量进行链表运算包括:按照下述公式8对目标特征矢量进行链表矢量运算:
以目标虚拟块特征参数为擦除次数为例,为不同虚拟块对应的擦除次数组成的矢量。在应用中,不同虚拟块需要根据其质量对其擦除次数进行等效。不同虚拟块的质量可以通过在相同状态下(如擦除次数、读次数等相同时)虚拟块的虚拟块状态参数比如错误比特数的均值或最大值来衡量,该值越大,虚拟块的质量越差。若虚拟块质量不一,有的质量好,有的质量差,虽然擦除次数一样,但是对于质量差的虚拟块,等效擦除次数大于质量好的虚拟块,因此需要根据质量将擦除次数乘以等效系数,表示不同虚拟块对应的等效系数,见上述公式(4)。得到虚拟块对应的等效系数后,与虚拟块的擦除次数做相应运算,得到等效擦除次数,此时,上述公式(8)可等效为
以上描述了如何对目标特征矢量进行链表运算。需要说明的是,在应用中,矢量运算并不限定上述实施例,其还有其他示例,这里不再一一举例。
可选地,作为一个实施例,在本实施例中,硬件加速单元,还用于将上述链表运算结果记录至第一指定存储位置,以触发CPU从第一指定存储位置获得链表运算结果。这里,当硬件加速单元得到上述链表运算结果后,其会触发一个标志给CPU,当CPU侦测到该标志时,即可在上述第一指定存储位置读取链表运算结果。
可选地,作为另一个实施例,在本实施例中,硬件加速单元,还用于将链表运算的执行状态记录至第二指定存储位置。这里,执行状态包括:链表运算成功或链表运算失败。可选地,在本实施例中,CPU在获得链表运算结果时,需要先从第二指定存储位置读取执行状态,并在执行状态为链表运算成功时继续从第一指定存储位置获得链表运算结果。
作为一个实施例,上述第一指定存储位置、第二指定存储位置可通过上述配置信息指示(也即,上述配置信息还进一步包括上述第一指定存储位置、第二指定存储位置)。
可选地,在本实施例中,基于上述对硬件加速单元的描述,每一硬件加速单元在具体实现时至少包括:接口寄存器和操作模块。具体可参见图7所示。
在本实施例中,接口寄存器用于存储链表运算事件相关联的配置信息,具体见上述有关配置信息的描述。
在本实施例中,操作模块用于基于所述配置信息确定目标链表、选择所述目标特征参数以及将选择出的目标特征参数组成目标特征矢量,并依据所述链表运算事件对所述目标特征矢量进行链表运算,具体可参见上面描述,这里不再一一赘述。
以上对存储访问控制装置进行了描述,下面对本申请实施例提供的存储访问控制方法进行描述。
参见图8,图8为本申请实施例提供的方法流程图。该方法应用于上述存储访问控制装置,存储访问控制装置被部署在存储设备并连接至存储设备的总线。
如图8所示,该方法包括:
步骤801,检测链表运算事件,在检测到针对至少一个目标链表的链表运算事件的情况下,执行步骤802。
步骤802,从目标链表中选择不同虚拟块上对应目标特征类型的目标特征参数,将选择出的目标特征参数组成目标特征矢量,依据链表运算事件对所述目标特征矢量进行链表运算,得到链表运算结果。
在本实施例中,链表运算事件至少携带链表运算事件相关联的配置信息,配置信息至少包括:操作类型为矢量的第一操作数、操作类型为标量的第二操作数、操作码;所述操作码用于指示标量与矢量之间的链表标量运算;
第一操作数至少包括:第一链表标识、第一特征标识;
目标链表为所述第一链表标识对应的第一链表;目标特征参数包括:第一链表中各虚拟块上与第一特征标识对应的第一特征参数;目标特征矢量是由第一链表中各虚拟块上的第一特征参数组成的第一矢量;
基于此,上述依据链表运算事件对所述目标特征矢量进行链表运算包括:按照所述操作码对所述目标特征矢量和所述第二操作数进行所述链表标量运算。
作为另一个实施例,上述链表运算事件至少携带链表运算事件相关联的配置信息,配置信息至少包括:操作类型为矢量的第三操作数、第四操作数,操作码;第三操作数至少包括:第三链表标识、第三特征标识;第四操作数至少包括:第四链表标识、第四特征标识;操作码用于指示矢量与矢量之间的链表矢量运算;
目标链表至少包括:第三链表标识对应的第三链表、第四链表标识对应的第四链表。
目标特征参数至少包括:第三链表中各虚拟块上与第三特征标识对应的第三特征参数、第四链表中各虚拟块上与第四特征标识对应的第四特征参数。目标特征矢量包括:由第三链表中各虚拟块上的第三特征参数组成的第三矢量、由第四链表中各虚拟块上的第四特征参数组成的第四矢量;
基于此,上述依据链表运算事件对所述目标特征矢量进行链表运算包括:按照所述操作码对第三矢量和第四矢量进行所述链表矢量运算。
至此,完成图8所示的方法描述。
通过本实施例可以看出,在本实施例中,通过在存储设备内部署一个存储访问控制装置来代替存储设备中的CPU处理存储访问,能够减轻CPU的负担,并解放CPU处理其他任务,提高存储设备的执行效率;
进一步地,在本实施例中,将单个链表看成矢量,并按照相应的链表运算来完成存储访问,这相比逐一轮询链表中各虚拟块的变量参数以实现存储访问,显然提高执行效率。
本申请实施例还提供了一种存储设备硬件结构图,具体如图9所示,该存储设备至少包括:CPU、系统总线、以及部署在系统总线上的存储访问控制装置。硬件加速装置如上描述。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种存储访问控制装置,其特征在于,所述存储访问控制装置被部署在存储设备并连接至所述存储设备的总线;
所述存储访问控制装置包括:至少一个硬件加速单元;
所述硬件加速单元,用于在检测到针对至少一个目标链表的链表运算事件的情况下,从所述目标链表中选择不同虚拟块上对应目标特征类型的目标特征参数,将选择出的目标特征参数组成目标特征矢量,依据所述链表运算事件对所述目标特征矢量进行链表运算,得到链表运算结果;所述链表运算结果用于作为对所述存储设备进行存储访问控制的依据;
其中,所述目标链表用于描述所述存储设备中不同虚拟块的变量参数,所述不同变量参数至少包括不同特征类型对应的特征参数;所述虚拟块是由所述存储设备中一个条带上的物理块Block组成。
2.根据权利要求1所述的装置,其特征在于,所述存储设备还包括:CPU;
所述硬件加速单元接收所述CPU下发的针对所述目标链表的运算启动命令,则确定检测到所述链表运算事件;
其中,所述CPU是在接收到固件的存储访问请求的情况下,下发所述存储访问请求对应的所述运算启动命令。
3.根据权利要求1所述的装置,其特征在于,所述链表运算事件至少携带与所述链表运算事件相关联的配置信息,所述配置信息至少包括:操作类型为矢量的第一操作数、操作类型为标量的第二操作数、以及操作码;所述操作码用于指示标量与矢量之间的链表标量运算;
所述第一操作数至少包括:第一链表标识、第一特征标识;
所述目标链表至少包括:为所述第一链表标识对应的第一链表;
所述目标特征参数至少包括:所述第一链表中各虚拟块上与所述第一特征标识对应的第一特征参数;
所述目标特征矢量至少包括:由所述第一链表中各虚拟块上的第一特征参数组成的第一矢量;
所述硬件加速单元依据链表运算事件对所述目标特征矢量进行链表运算包括:按照所述操作码对所述第一矢量和所述第二操作数进行所述链表标量运算。
4.根据权利要求3所述的装置,其特征在于,
所述第一特征参数至少包括:用于表示虚拟块状态的虚拟块状态参数;
所述第一矢量至少包括:所述第一链表中各虚拟块的虚拟块状态参数组成的矢量;
所述第二操作数至少包括:预设的虚拟块状态参数阈值;
所述链表标量运算为差值计算;
所述按照所述操作码对所述第一矢量和所述第二操作数进行所述链表标量运算包括:计算所述第一矢量和标量矩阵之差;所述标量矩阵是依据所述虚拟块状态参数阈值与单位矩阵形成的。
6.根据权利要求1所述的装置,其特征在于,所述链表运算事件至少携带所述链表运算事件相关联的配置信息,所述配置信息至少包括:操作类型为矢量的第三操作数、第四操作数,以及操作码;
第三操作数至少包括:第三链表标识、第三特征标识;
第四操作数至少包括:第四链表标识、第四特征标识;
所述操作码用于指示矢量与矢量之间的链表矢量运算;
所述目标链表至少包括:第三链表标识对应的第三链表、第四链表标识对应的第四链表;
所述目标特征参数至少包括:第三链表中各虚拟块上与第三特征标识对应的第三特征参数、第四链表中各虚拟块上与第四特征标识对应的第四特征参数;
所述目标特征矢量至少包括:由第三链表中各虚拟块的第三特征参数组成的第三矢量、由第四链表中各虚拟块的第四特征参数组成的第四矢量;
所述硬件加速单元依据链表运算事件对所述目标特征矢量进行链表运算包括:按照所述操作码对第三矢量和第四矢量进行所述链表矢量运算。
7.根据权利要求6所述的装置,其特征在于,所述第三链表与所述第四链表为同一目标链表;
所述第三特征参数至少包括:目标链表中各虚拟块的等效表征参数;虚拟块的等效表征参数用于计算虚拟块的等效系数;
所述第四特征参数至少包括:目标链表中各虚拟块的目标虚拟块特征参数;
所述第三矢量至少包括:目标链表中基于各虚拟块的等效表征参数生成的等效表征参数矢量;
所述第四矢量至少包括:目标链表中基于各虚拟块的目标虚拟块特征参数生成的目标虚拟块特征参数矢量;
所述按照所述操作码对第三矢量和第四矢量进行所述链表矢量运算包括:按照下述公式对第三矢量和第四矢量进行所述链表矢量运算:
8.根据权利要求6所述的装置,其特征在于,所述第三链表与所述第四链表为同一目标链表;
所述第三特征参数至少包括:所述目标链表中各虚拟块的有效数据帧VDF信息;
所述第四特征参数至少包括:所述目标链表中各虚拟块的擦除次数;
所述目标特征参数还包括第五特征参数;所述第五特征参数至少包括:所述目标链表中各虚拟块的最近一次使用时间信息;
所述第三矢量至少包括:所述目标链表中基于各虚拟块的有效数据帧VDF信息生成的VDF矢量;
所述第四矢量至少包括:所述目标链表中基于各虚拟块的擦除次数生成的擦除次数矢量;
所述目标特征矢量还包括:第五矢量;所述第五矢量至少包括:所述目标链表中基于各虚拟块的最近一次使用时间信息生成的使用时间矢量;
所述按照所述操作码对第三矢量和第四矢量进行所述链表矢量运算包括:按照下式对第三矢量、第四矢量和第五矢量进行链表矢量运算:
9.根据权利要求3至8任一所述的装置,其特征在于,所述硬件加速单元至少包括:接口寄存器和操作模块;
其中,所述接口寄存器用于存储所述链表运算事件相关联的配置信息;
所述操作模块用于基于所述配置信息确定所述目标链表、选择所述目标特征参数以及将选择出的目标特征参数组成目标特征矢量,并依据所述链表运算事件对所述目标特征矢量进行链表运算。
10.根据权利要求9所述的装置,其特征在于,所述存储设备还包括:CPU;
所述硬件加速单元,还用于将所述链表运算结果记录至第一指定存储位置,以触发所述CPU从所述第一指定存储位置获得所述链表运算结果并依据所述链表运算结果对所述存储设备进行存储访问控制;或者,
所述硬件加速单元,还用于将所述链表运算的执行状态记录至第二指定存储位置,所述执行状态包括:链表运算成功或链表运算失败,以及将所述链表运算结果记录至第一指定存储位置,以触发所述CPU先从所述第二指定存储位置读取所述执行状态并在所述执行状态为链表运算成功时继续从所述第一指定存储位置获得所述链表运算结果,以依据所述链表运算结果对所述存储设备进行存储访问控制。
11.一种存储访问控制方法,其特征在于,该方法应用于存储访问控制装置,所述存储访问控制装置被部署在存储设备并连接至所述存储设备的总线;
该方法包括:
检测链表运算事件,在检测到针对至少一个目标链表的链表运算事件的情况下,从所述目标链表中选择不同虚拟块上对应目标特征类型的目标特征参数,将选择出的目标特征参数组成目标特征矢量,依据所述链表运算事件对所述目标特征矢量进行链表运算,得到链表运算结果,所述链表运算结果用于作为对所述存储设备进行存储访问控制的依据。
12.根据权利要求11所述的方法,其特征在于,
所述链表运算事件至少携带与所述链表运算事件相关联的配置信息,所述配置信息至少包括:操作类型为矢量的第一操作数、操作类型为标量的第二操作数、以及操作码;所述操作码用于指示标量与矢量之间的链表标量运算;
所述第一操作数至少包括:第一链表标识、第一特征标识;
所述目标链表至少包括:为所述第一链表标识对应的第一链表;
所述目标特征参数至少包括:所述第一链表中各虚拟块上与所述第一特征标识对应的第一特征参数;
所述目标特征矢量至少包括:由所述第一链表中各虚拟块上的第一特征参数组成的第一矢量;
所述依据链表运算事件对所述目标特征矢量进行链表运算包括:按照所述操作码对所述第一矢量和所述第二操作数进行所述链表标量运算。
13.根据权利要求11所述的方法,其特征在于,
所述链表运算事件至少携带所述链表运算事件相关联的配置信息,所述配置信息至少包括:操作类型为矢量的第三操作数、第四操作数,以及操作码;
第三操作数至少包括:第三链表标识、第三特征标识;
第四操作数至少包括:第四链表标识、第四特征标识;
所述操作码用于指示矢量与矢量之间的链表矢量运算;
所述目标链表至少包括:第三链表标识对应的第三链表、第四链表标识对应的第四链表;
所述目标特征参数至少包括:第三链表中各虚拟块上与第三特征标识对应的第三特征参数、第四链表中各虚拟块上与第四特征标识对应的第四特征参数;
所述目标特征矢量至少包括:由第三链表中各虚拟块的第三特征参数组成的第三矢量、由第四链表中各虚拟块的第四特征参数组成的第四矢量;
所述依据链表运算事件对所述目标特征矢量进行链表运算包括:按照所述操作码对第三矢量和第四矢量进行所述链表矢量运算。
14.一种存储设备,其特征在于,该存储设备至少包括:CPU、系统总线、以及部署在所述系统总线上的硬件加速装置,所述硬件加速装置至少包括如权利要求1至10任一装置中的结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074179.XA CN114489506B (zh) | 2022-01-21 | 2022-01-21 | 存储访问控制装置、方法及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074179.XA CN114489506B (zh) | 2022-01-21 | 2022-01-21 | 存储访问控制装置、方法及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114489506A true CN114489506A (zh) | 2022-05-13 |
CN114489506B CN114489506B (zh) | 2024-02-27 |
Family
ID=81473509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210074179.XA Active CN114489506B (zh) | 2022-01-21 | 2022-01-21 | 存储访问控制装置、方法及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489506B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1030487A (zh) * | 1987-07-01 | 1989-01-18 | 数字设备公司 | 在向量数据处理运算中从缺页故障中恢复的设备和方法 |
JPS6426969A (en) * | 1987-06-25 | 1989-01-30 | American Telephone & Telegraph | Programmable accelerator and method thereof |
CN101594299A (zh) * | 2009-05-20 | 2009-12-02 | 清华大学 | 基于链表的交换网络中队列缓冲管理方法 |
EP2388965A1 (en) * | 2010-05-19 | 2011-11-23 | Telefonaktiebolaget L M Ericsson (Publ) | High performance hardware linked list processors cascaded to form a pipeline |
CN103282889A (zh) * | 2010-11-16 | 2013-09-04 | 英特尔公司 | 用于数据储存系统的端点高速缓存 |
CN106095342A (zh) * | 2016-06-15 | 2016-11-09 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 |
CN107562672A (zh) * | 2017-08-25 | 2018-01-09 | 中国电子科技集团公司第四十研究所 | 一种提高矢量网络分析仪数据传输速率的系统及方法 |
CN107688442A (zh) * | 2017-09-04 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种用于固态硬盘的虚拟块管理方法 |
JP2020140284A (ja) * | 2019-02-27 | 2020-09-03 | 日本電気株式会社 | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム |
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
US20210026630A1 (en) * | 2019-07-25 | 2021-01-28 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method executed by computing device, apparatus, device and computer-readable storage medium |
US10956346B1 (en) * | 2017-01-13 | 2021-03-23 | Lightbits Labs Ltd. | Storage system having an in-line hardware accelerator |
US20210117333A1 (en) * | 2019-10-17 | 2021-04-22 | International Business Machines Corporation | Providing direct data access between accelerators and storage in a computing environment, wherein the direct data access is independent of host cpu and the host cpu transfers object map identifying object of the data |
US20210255956A1 (en) * | 2020-02-13 | 2021-08-19 | SK Hynix Inc. | Microprocessor-based system memory manager hardware accelerator |
US20210311633A1 (en) * | 2020-04-07 | 2021-10-07 | Eidetic Communications Inc. | System and method for performing computational storage utilizing a hardware accelerator |
-
2022
- 2022-01-21 CN CN202210074179.XA patent/CN114489506B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6426969A (en) * | 1987-06-25 | 1989-01-30 | American Telephone & Telegraph | Programmable accelerator and method thereof |
CN1030487A (zh) * | 1987-07-01 | 1989-01-18 | 数字设备公司 | 在向量数据处理运算中从缺页故障中恢复的设备和方法 |
CN101594299A (zh) * | 2009-05-20 | 2009-12-02 | 清华大学 | 基于链表的交换网络中队列缓冲管理方法 |
EP2388965A1 (en) * | 2010-05-19 | 2011-11-23 | Telefonaktiebolaget L M Ericsson (Publ) | High performance hardware linked list processors cascaded to form a pipeline |
CN103282889A (zh) * | 2010-11-16 | 2013-09-04 | 英特尔公司 | 用于数据储存系统的端点高速缓存 |
CN106095342A (zh) * | 2016-06-15 | 2016-11-09 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 |
US10956346B1 (en) * | 2017-01-13 | 2021-03-23 | Lightbits Labs Ltd. | Storage system having an in-line hardware accelerator |
CN107562672A (zh) * | 2017-08-25 | 2018-01-09 | 中国电子科技集团公司第四十研究所 | 一种提高矢量网络分析仪数据传输速率的系统及方法 |
CN107688442A (zh) * | 2017-09-04 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种用于固态硬盘的虚拟块管理方法 |
JP2020140284A (ja) * | 2019-02-27 | 2020-09-03 | 日本電気株式会社 | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム |
US20210026630A1 (en) * | 2019-07-25 | 2021-01-28 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method executed by computing device, apparatus, device and computer-readable storage medium |
US20210117333A1 (en) * | 2019-10-17 | 2021-04-22 | International Business Machines Corporation | Providing direct data access between accelerators and storage in a computing environment, wherein the direct data access is independent of host cpu and the host cpu transfers object map identifying object of the data |
US20210255956A1 (en) * | 2020-02-13 | 2021-08-19 | SK Hynix Inc. | Microprocessor-based system memory manager hardware accelerator |
US20210311633A1 (en) * | 2020-04-07 | 2021-10-07 | Eidetic Communications Inc. | System and method for performing computational storage utilizing a hardware accelerator |
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN114489506B (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8103820B2 (en) | Wear leveling method and controller using the same | |
US7774390B2 (en) | Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same | |
US8423710B1 (en) | Sequential writes to flash memory | |
KR101903834B1 (ko) | 트림 명령의 실행을 평가하기 위한 방법 및 호스트 장치 | |
US9122585B2 (en) | Method for managing data in storage device and memory system employing such a method | |
TWI423022B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US20080120488A1 (en) | Apparatus and method of managing nonvolatile memory | |
CN106775474B (zh) | 一种Nand Flash磨损均衡方法、装置及存储器 | |
US20170160953A1 (en) | Data storage device that stabilizes write latency | |
CN111554340B (zh) | 存取管理的方法、记忆装置、控制器、主装置和电子装置 | |
CN103425589A (zh) | 控制装置、存储装置以及存储控制方法 | |
US20110145490A1 (en) | Device and method of controlling flash memory | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
US20200327066A1 (en) | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive | |
CN104881366B (zh) | 修复均化的方法与系统 | |
TWI739075B (zh) | 閃存的資料寫入方法及電腦程式產品 | |
CN114356248B (zh) | 一种数据处理方法和装置 | |
CN109582216A (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN111930301A (zh) | 垃圾回收优化方法、装置、存储介质及电子设备 | |
US20200249870A1 (en) | Systems and methods to optimally select metablocks | |
KR101996641B1 (ko) | 메모리 오버레이 장치 및 방법 | |
US10025706B2 (en) | Control device, storage device, and storage control method | |
CN109690465B (zh) | 一种存储设备管理方法及用户终端 | |
CN111966281A (zh) | 数据储存装置与数据处理方法 | |
US20200218652A1 (en) | Method and computer program product for performing data writes into a flash memory |
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 |