CN109918319B - 一种固态硬盘控制器加速方法及其系统 - Google Patents
一种固态硬盘控制器加速方法及其系统 Download PDFInfo
- Publication number
- CN109918319B CN109918319B CN201910221863.4A CN201910221863A CN109918319B CN 109918319 B CN109918319 B CN 109918319B CN 201910221863 A CN201910221863 A CN 201910221863A CN 109918319 B CN109918319 B CN 109918319B
- Authority
- CN
- China
- Prior art keywords
- lpa
- acceleration module
- hardware
- command
- circuit
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种固态硬盘控制器加速方法及其系统;其中,加速方法,包括:S1,获取主机下发的命令信息;S2,判断命令信息为写命令或读命令;S3,硬件电路通知软件有新命令;S4,软件进行命令解析;S5,硬件加速模块申请本地存储空间;S6,硬件加速模块通知软件数据传输完毕;S7,软件下发命令给NFC电路;S8,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据;S9,硬件加速模块申请本地存储空间;S10,硬件电路通知软件有新命令;S11,软件解析命令;S12,NFC电路从flash颗粒读出数据;S13,自动解析主机命令;S14,通知硬件加速模块数据传输完毕。本发明减轻了软件的负担,提高了本地存储空间的使用效率,提升了软件和硬件各自的效率。
Description
技术领域
本发明涉及固态硬盘控制器技术领域,更具体地说是指一种固态硬盘控制器加速方法及其系统。
背景技术
现有的软硬件协同工作的固态硬盘,需要软硬件多次交互,各自效率都降低了,同时采用软件来分配和释放本地存储空间,增加了软件的负担,在处理过程中,容易出现延迟,阻塞等情况,影响性能,无法满足需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种固态硬盘控制器加速方法及其系统。
为实现上述目的,本发明采用于下技术方案:
一种固态硬盘控制器加速方法,包括以下步骤:
S1,获取主机下发的命令信息,并将命令信息发送至硬件加速模块;
S2,判断命令信息为写命令或读命令;若是写命令,进入S3;若是读命令,则进入S9;
S3,硬件电路通知软件有新命令;
S4,软件进行命令解析,获得必要的信息;
S5,硬件加速模块申请本地存储空间,关联LPA与本地存储地址,自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
S6,硬件加速模块通知软件数据传输完毕;
S7,软件下发命令给NFC电路,指定LPA和有效LBA标记;
S8,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
S9,硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
S10,硬件电路通知软件有新命令;
S11,软件解析命令,并生成NFC命令下发给NFC电路,指定LPA和有效LBA标记;
S12,NFC电路从flash颗粒读出数据,并标记上软件指定的LPA信息发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
S13,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间;
S14,硬件电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
其进一步技术方案为:所述S1中,由硬件电路获取主机下发的命令信息。
其进一步技术方案为:所述硬件电路为NVMe电路。
其进一步技术方案为:所述本地存储空间为若干4KB本地存储空间。
其进一步技术方案为:所述S5包括:
S51,硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
S52,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记;
S53,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块;
S54,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间。
其进一步技术方案为:所述S8包括:
S81,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据;
S82,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒;
S83,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
其进一步技术方案为:所述S12包括:
S121,NFC电路将主机需要的数据从flash颗粒读出,并标记上软件指定的LPA信息发送至硬件加速模块;
S122,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间。
其进一步技术方案为:所述S13包括:
S131,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记;
S132,硬件电路根据指定的LPA向硬件加速模块获取主机数据;
S133,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间。
一种固态硬盘控制器加速系统,包括:获取单元,判断单元,第一通知单元,第一解析单元,申请解析发送存储单元,第二通知单元,下发指定单元,获取烧入释放单元,申请关联单元,第三通知单元,第二解析单元,标记存储单元,解析指定搬入单元,及释放单元;
所述获取单元,用于获取主机下发的命令信息,并将命令信息发送至硬件加速模块;
所述判断单元,用于判断命令信息为写命令或读命令;
所述第一通知单元,用于硬件电路通知软件有新命令;
所述第一解析单元,用于软件进行命令解析,获得必要的信息;
所述申请解析发送存储单元,用于硬件加速模块申请本地存储空间,关联LPA与本地存储地址,自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
所述第二通知单元,用于硬件加速模块通知软件数据传输完毕;
所述下发指定单元,用于软件下发命令给NFC电路,指定LPA和有效LBA标记;
所述获取烧入释放单元,用于NFC电路根据软件指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
所述申请关联单元,用于硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
所述第三通知单元,用于硬件电路通知软件有新命令;
所述第二解析单元,用于软件解析命令,并生成NFC命令下发给NFC电路,指定LPA和有效LBA标记;
所述标记存储单元,用于NFC电路从flash颗粒读出数据,并标记上软件指定的LPA信息发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
所述解析指定搬入单元,用于硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间;
所述释放单元,用于硬件电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
其进一步技术方案为:所述硬件电路为NVMe电路;所述本地存储空间为若干4KB本地存储空间。
本发明与现有技术相比的有益效果是:1、将原本由软件来分配和释放本地存储空间,改为由硬件加速电路来实施,减轻了软件的负担;2、硬件自动释放本地存储空间比软件释放更加的实时,提高了本地存储空间的使用效率,有助于提升性能;3、原本软件需要按照主机命令记录本地存储地址,并下发给NFC电路和NVMe电路,现在本地存储地址对软件是透明的,减轻了软件负担;4、原本由软件解析主机命令后生成NVMe命令并控制NVMe电路搬运数据,现在由硬件加速电路自动生成NVMe命令并控制NVMe电路搬运数据,减轻了软件的工作量;5、减少了软硬件之间的交互,提升了软件和硬件各自的效率,有助于提升性能。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为现有技术中软硬件协调工作的应用示意图;
图2为本发明一种固态硬盘控制器加速方法的流程图;
图3为主机写命令时,软硬件协调工作的应用示意图;
图4为主机读命令时,软硬件协调工作的应用示意图;
图5为本发明一种固态硬盘控制器加速系统的方框图。
10 获取单元 20 判断单元
30 第一通知单元 40 第一解析单元
50 申请解析发送存储单元 60 第二通知单元
70 下发指定单元 80 获取烧入释放单元
90 申请关联单元 100 第三通知单元
110 第二解析单元 120 标记存储单元
130 解析指定搬入单元 140 释放单元
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1到图5所示的具体实施例,其中,如图1所示的现有技术,以主机写命令为例,步骤流程如下:1、NVMe电路获取主机命令;2、NVMe电路通知软件有新命令;3、软件解析命令;4、软件申请本地存储空间;5、软件下发命令给NVMe电路,指定本地存储地址;6、NVMe电路将主机数据存入软件指定的本地存储地址;7、NVMe电路通知软件数据传输完毕;8、软件下发命令给NFC电路,指定本地存储地址;9、NFC电路将数据从软件指定的本地存储地址取出,写入flsah颗粒;10、NFC电路通知软件数据传输完毕;11、软件释放本地存储空间。
其中,上述流程中,软件总共需要完成5个步骤,包括申请和释放本地存储资源,生成和下发NVMe命令,生成和下发NFC命令,负担比较大,必须采用高性能CPU才能处理;NFC硬件电路完成flsah烧写后通知软件,软件再来释放本地存储资源必然存在延迟;通常软件采用查询方式获取NFC电路烧写flash完毕的信息,而非中断;这意味着软件处理了一圈别的事务,再轮转到查询NFC电路烧写flash完毕与否,此时延迟非常大;其实这片本地存储空间在NFC电路烧写flash完毕后已经可以释放给新命令使用了,但是由于软件没有及时进行释放处理,导致这片本地存储空间继续被占用着,而新命令可能因为没有足够的本地存储空间而被阻塞,影响性能;由步骤(5)和(8)可知,软件给NVMe电路和NFC电路下发命令时需要根据主机命令派生出的LPA信息对应到本地存储地址后,将本地存储地址告知硬件电路,软件需要维护LPA和本地存储地址的映射表,增加了软件负担;而软硬件存在5次交互,需要相互等待对方,各自效率都降低了。
如图2至图4所示,本发明公开了一种固态硬盘控制器加速方法,包括以下步骤:
S1,获取主机下发的命令信息,并将命令信息发送至硬件加速模块;
S2,判断命令信息为写命令或读命令;若是写命令,进入S3;若是读命令,则进入S9;
S3,硬件电路通知软件有新命令;
S4,软件进行命令解析,获得必要的信息;
S5,硬件加速模块申请本地存储空间,关联LPA与本地存储地址,自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
S6,硬件加速模块通知软件数据传输完毕;
S7,软件下发命令给NFC电路,指定LPA和有效LBA标记;
S8,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
S9,硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
S10,硬件电路通知软件有新命令;
S11,软件解析命令,并生成NFC命令下发给NFC电路,指定LPA和有效LBA标记;
S12,NFC电路从flash颗粒读出数据,并标记上软件指定的LPA信息发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
S13,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间;
S14,硬件电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
其中,在所述S1中,由硬件电路获取主机下发的命令信息。
进一步地,所述硬件电路为NVMe电路。
其中,所述本地存储空间为若干4KB本地存储空间。
其中,所述S5包括:
S51,硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
S52,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记;
S53,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块;
S54,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间。
其中,所述S8包括:
S81,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据;
S82,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒;
S83,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
其中,所述S12包括:
S121,NFC电路将主机需要的数据从flash颗粒读出,并标记上软件指定的LPA信息发送至硬件加速模块;
S122,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间。
其中,所述S13包括:
S131,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记;
S132,硬件电路根据指定的LPA向硬件加速模块获取主机数据;
S133,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间。
其中,当主机写命令时,软件只需要处理2个步骤,软硬件交互只有3次,软件无需维护本地存储空间,软件无需生成NVMe硬件电路命令控制NVMe电路搬运数据,而是由硬件自发处理,NFC电路完成flash烧写后硬件加速模块立刻释放本地存储空间,本地存储空间使用效率非常高;当主机读命令时,软件只需要处理2个步骤,软硬件交互只有2次,软件无需维护本地存储空间,软件无需生成NVMe硬件电路命令控制NVMe电路搬运数据,而是由硬件自发处理;NVMe电路完成数据搬运后硬件加速模块立刻释放本地存储空间,本地存储空间使用效率非常高。
其中,本发明的原理为:硬件加速电路自动按照LPA大小管理本地存储空间,硬件加速电路收到主机命令后,自动分配若干4KB本地存储空间,存放来自主机并将要通过NFC电路烧写进flash的数据或者存放来自NFC电路并将要通过NVMe电路传输给主机的数据;由于硬件加速电路自动分配了本地存储空间,同时硬件加速电路收到的主机命令里面包含了主机数据在主机存储空间的地址,因此硬件加速电路可以代替软件自动向NVMe电路发起命令搬运数据;硬件加速电路记录LPA与本地存储空间的对应关系;软件无需知道本地存储地址,软件和硬件加速电路向NFC电路或者NVMe电路发起命令时,只给出LPA地址和LPA内部的有效LBA标记即可,NFC电路或者NVMe电路根据LPA地址和有效LBA标记向硬件加速电路获取主机需要读取或者写入的数据;当NFC电路完成flash烧写时或者NVMe电路完成读命令时,自动触发硬件加速电路释放之前分配的这若干4KB本地存储空间。
其中,在本实施例中,Flash为闪存介质,一种非易失性存储体;NFC:NAND FlashController,一种硬件电路,实现flash颗粒接口协议;NVMe:Non-Volatile Memoryexpress,这里指一种硬件电路,实现与主机的接口协议;LBA:Logic Block Address,逻辑块地址,大小通常是512Byte,主机操作系统通常按照LBA管理数据;LPA:Logic PageAddress,逻辑页地址,大小通常是4KB,固态硬盘控制器软件通常按照LPA管理数据,每8个LBA按照4KB对齐构成LPA。
本发明中,当硬件加速电路收到主机命令后,自动分配若干4KB本地存储空间;当硬件加速电路收到主机命令后,自动向NVMe电路下发数据搬运命令,在主机存储空间和本地存储空间之间搬运数据;硬件加速电路在NFC电路完成flash烧写时或者NVMe电路完成主机读命令时,自动回收之前分配的这若干4KB本地存储空间,用于新的主机命令;硬件加速电路记录LPA与本地存储空间的对应关系,无需软件来管理,即本地存储地址对软件是透明的。
如图5所示,本发明公开了一种固态硬盘控制器加速系统,包括:获取单元10,判断单元20,第一通知单元30,第一解析单元40,申请解析发送存储单元50,第二通知单元60,下发指定单元70,获取烧入释放单元80,申请关联单元90,第三通知单元100,第二解析单元110,标记存储单元120,解析指定搬入单元130,及释放单元140;
所述获取单元10,用于获取主机下发的命令信息,并将命令信息发送至硬件加速模块;
所述判断单元20,用于判断命令信息为写命令或读命令;
所述第一通知单元30,用于硬件电路通知软件有新命令;
所述第一解析单元40,用于软件进行命令解析,获得必要的信息;
所述申请解析发送存储单元50,用于硬件加速模块申请本地存储空间,关联LPA与本地存储地址,自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
所述第二通知单元60,用于硬件加速模块通知软件数据传输完毕;
所述下发指定单元70,用于软件下发命令给NFC电路,指定LPA和有效LBA标记;
所述获取烧入释放单元80,用于NFC电路根据软件指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
所述申请关联单元90,用于硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
所述第三通知单元100,用于硬件电路通知软件有新命令;
所述第二解析单元110,用于软件解析命令,并生成NFC命令下发给NFC电路,指定LPA和有效LBA标记;
所述标记存储单元120,用于NFC电路从flash颗粒读出数据,并标记上软件指定的LPA信息发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
所述解析指定搬入单元130,用于硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间;
所述释放单元140,用于硬件电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
其中,所述硬件电路为NVMe电路;所述本地存储空间为若干4KB本地存储空间。
本发明由硬件自动申请和释放本地存储空间,减轻了软件负担;由硬件自动及时的释放本地存储空间,提高了本地存储空间的周转效率;由硬件自动记录LPA与本地存储地址的对应关系,本地存储地址对软件透明,从而减轻了软件负担;由硬件自动生成和下发NVMe命令,指导NVMe电路在主机地址空间和本地存储空间之间搬运数据,减轻了软件负担。
于其他实施例中,硬件电路以LPA大小管理本地存储空间,LPA不局限于4KB,也可以是8KB或者其它任意大小。
于其他实施例中,硬件电路还可以是SATA(串行高级技术附件(Serial AdvancedTechnology Attachment),一种基于行业标准的串行硬件驱动器接口),EMMC(EmbeddedMulti Media Card,嵌入式多媒体卡接口),UFS(Universal Flash Storage,通用闪存存储接口)其中的一种,或其它主机接口电路。
综上所述,本发明具有以下优点:1、将原本由软件来分配和释放本地存储空间,改为由硬件加速电路来实施,减轻了软件的负担;2、硬件自动释放本地存储空间比软件释放更加的实时,提高了本地存储空间的使用效率,有助于提升性能;3、原本软件需要按照主机命令记录本地存储地址,并下发给NFC电路和NVMe电路,现在本地存储地址对软件是透明的,减轻了软件负担;4、原本由软件解析主机命令后生成NVMe命令并控制NVMe电路搬运数据,现在由硬件加速电路自动生成NVMe命令并控制NVMe电路搬运数据,减轻了软件的工作量;5、减少了软硬件之间的交互,提升了软件和硬件各自的效率,有助于提升性能。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (9)
1.一种固态硬盘控制器加速方法,其特征在于,包括以下步骤:
S1,获取主机下发的命令信息,并将命令信息发送至硬件加速模块;
S2,判断命令信息为写命令或读命令;若是写命令,进入S3;若是读命令,则进入S9;
S3,硬件电路通知软件有新命令;
S4,软件进行命令解析,获得必要的信息;
S5,硬件加速模块申请本地存储空间,关联LPA与本地存储地址,自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
S6,硬件加速模块通知软件数据传输完毕;
S7,软件下发命令给NFC电路,指定LPA和有效LBA标记;
S8,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
S9,硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
S10,硬件电路通知软件有新命令;
S11,软件解析命令,并生成NFC命令下发给NFC电路,指定LPA和有效LBA标记;
S12,NFC电路从flash颗粒读出数据,并标记上软件指定的LPA信息发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
S13,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间;
S14,硬件电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
所述S5包括:S51,硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
S52,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记;
S53,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块;
S54,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
其中,软件为运行于CPU上的固态硬盘控制器软件,具备运算能力,起到控制和协调硬件电路进行工作的作用;必要的信息为读写操作的起始LBA地址信息和LBA个数信息;
其中,NFC:NAND Flash Controller,一种硬件电路,实现flash颗粒接口协议;LBA:Logic Block Address,逻辑块地址,大小通常是512Byte,主机操作系统通常按照LBA管理数据;LPA:Logic Page Address,逻辑页地址,大小通常是4KB,固态硬盘控制器软件通常按照LPA管理数据,每8个LBA按照4KB对齐构成LPA。
2.根据权利要求1所述的一种固态硬盘控制器加速方法,其特征在于,所述S1中,由硬件电路获取主机下发的命令信息。
3.根据权利要求1所述的一种固态硬盘控制器加速方法,其特征在于,所述硬件电路为NVMe电路。
4.根据权利要求1所述的一种固态硬盘控制器加速方法,其特征在于,所述本地存储空间为若干4KB本地存储空间。
5.根据权利要求1所述的一种固态硬盘控制器加速方法,其特征在于,所述S8包括:
S81,NFC电路根据软件指定的LPA向硬件加速模块获取主机数据;
S82,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒;
S83,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
6.根据权利要求1所述的一种固态硬盘控制器加速方法,其特征在于,所述S12包括:
S121,NFC电路将主机需要的数据从flash颗粒读出,并标记上软件指定的LPA信息发送至硬件加速模块;
S122,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间。
7.根据权利要求1所述的一种固态硬盘控制器加速方法,其特征在于,所述S13包括:
S131,硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记;
S132,硬件电路根据指定的LPA向硬件加速模块获取主机数据;
S133,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间。
8.一种固态硬盘控制器加速系统,其特征在于,包括:获取单元,判断单元,第一通知单元,第一解析单元,申请解析发送存储单元,第二通知单元,下发指定单元,获取烧入释放单元,申请关联单元,第三通知单元,第二解析单元,标记存储单元,解析指定搬入单元,及释放单元;
所述获取单元,用于获取主机下发的命令信息,并将命令信息发送至硬件加速模块;
所述判断单元,用于判断命令信息为写命令或读命令;
所述第一通知单元,用于硬件电路通知软件有新命令;
所述第一解析单元,用于软件进行命令解析,获得必要的信息;
所述申请解析发送存储单元,用于硬件加速模块申请本地存储空间,关联LPA与本地存储地址,自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA,将主机数据发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
所述第二通知单元,用于硬件加速模块通知软件数据传输完毕;
所述下发指定单元,用于软件下发命令给NFC电路,指定LPA和有效LBA标记;
所述获取烧入释放单元,用于NFC电路根据软件指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给NFC电路,并由NFC电路烧写入flash颗粒,NFC电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间;
所述申请关联单元,用于硬件加速模块申请本地存储空间,关联LPA与本地存储地址;
所述第三通知单元,用于硬件电路通知软件有新命令;
所述第二解析单元,用于软件解析命令,并生成NFC命令下发给NFC电路,指定LPA和有效LBA标记;
所述标记存储单元,用于NFC电路从flash颗粒读出数据,并标记上软件指定的LPA信息发送至硬件加速模块,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据存入本地存储空间;
所述解析指定搬入单元,用于硬件加速模块自动解析主机命令,并将解析后的命令下发至硬件电路,指定LPA和有效LBA标记,硬件电路根据指定的LPA向硬件加速模块获取主机数据,硬件加速模块根据LPA与本地存储地址的对应关系,将主机数据从本地存储器读出,发送给硬件电路,并由硬件电路搬入主机存储空间;
所述释放单元,用于硬件电路通知硬件加速模块数据传输完毕,硬件加速模块释放本地存储空间。
9.根据权利要求8所述的一种固态硬盘控制器加速系统,其特征在于,所述硬件电路为NVMe电路;所述本地存储空间为若干4KB本地存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910221863.4A CN109918319B (zh) | 2019-03-22 | 2019-03-22 | 一种固态硬盘控制器加速方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910221863.4A CN109918319B (zh) | 2019-03-22 | 2019-03-22 | 一种固态硬盘控制器加速方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918319A CN109918319A (zh) | 2019-06-21 |
CN109918319B true CN109918319B (zh) | 2021-03-05 |
Family
ID=66966295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910221863.4A Active CN109918319B (zh) | 2019-03-22 | 2019-03-22 | 一种固态硬盘控制器加速方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918319B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765055B (zh) * | 2019-11-01 | 2021-12-21 | 北京忆芯科技有限公司 | 存储设备的控制部件 |
CN112764669B (zh) * | 2019-11-01 | 2021-12-21 | 北京忆芯科技有限公司 | 一种硬件加速器 |
CN113094296B (zh) * | 2021-04-29 | 2023-10-10 | 深圳忆联信息系统有限公司 | Ssd读加速的实现方法、装置、计算机设备及存储介质 |
CN114721600B (zh) * | 2022-05-16 | 2022-09-02 | 北京得瑞领新科技有限公司 | NVMe设备中软硬件协同的命令解析系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105393236A (zh) * | 2014-05-16 | 2016-03-09 | 华为技术有限公司 | 快速数据读写方法和装置 |
WO2016106070A1 (en) * | 2014-12-23 | 2016-06-30 | Intel Corporation | Adjustment of voltage regulator based on power state |
US20170269157A1 (en) * | 2014-12-22 | 2017-09-21 | Intel Corporation | Reconfigurable test access port with finite state machine control |
CN107250980A (zh) * | 2015-03-26 | 2017-10-13 | 英特尔公司 | 具有图形和系统存储器冲突检查的计算方法和设备 |
CN108345545A (zh) * | 2017-01-25 | 2018-07-31 | 三星电子株式会社 | 在逻辑地址与物理地址之间执行散列式转译的存储装置 |
-
2019
- 2019-03-22 CN CN201910221863.4A patent/CN109918319B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105393236A (zh) * | 2014-05-16 | 2016-03-09 | 华为技术有限公司 | 快速数据读写方法和装置 |
US20170269157A1 (en) * | 2014-12-22 | 2017-09-21 | Intel Corporation | Reconfigurable test access port with finite state machine control |
WO2016106070A1 (en) * | 2014-12-23 | 2016-06-30 | Intel Corporation | Adjustment of voltage regulator based on power state |
CN107250980A (zh) * | 2015-03-26 | 2017-10-13 | 英特尔公司 | 具有图形和系统存储器冲突检查的计算方法和设备 |
CN108345545A (zh) * | 2017-01-25 | 2018-07-31 | 三星电子株式会社 | 在逻辑地址与物理地址之间执行散列式转译的存储装置 |
Non-Patent Citations (1)
Title |
---|
详述虚拟存储技术;邓永红;《有线电视技术》;20041130;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109918319A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918319B (zh) | 一种固态硬盘控制器加速方法及其系统 | |
US9858008B2 (en) | Method to reduce flash memory IOs with host maintained address mapping table | |
EP3493067B1 (en) | Extended utilization area for a memory device | |
US8762627B2 (en) | Memory logical defragmentation during garbage collection | |
CN101419842B (zh) | 硬盘的损耗均衡方法、装置及系统 | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
KR102663661B1 (ko) | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 | |
US20210240667A1 (en) | User device including storage device and trim management method thereof | |
KR20170036075A (ko) | 데이터 압축을 채용하는 캐싱 기술들 | |
TW201523618A (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
KR101579941B1 (ko) | 가상머신 i/o 관리 방법 및 장치 | |
CN111108488B (zh) | 内存块回收方法和装置 | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
KR20190063054A (ko) | 메모리 시스템 및 이의 동작 방법 | |
US9524236B1 (en) | Systems and methods for performing memory management based on data access properties | |
CN105389268A (zh) | 资料储存系统及其运作方法 | |
US10528360B2 (en) | Storage device, information processing system, method of activating storage device and program | |
KR102634776B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20140281581A1 (en) | Storage Device | |
KR20150116627A (ko) | 컨트롤러 및 그것을 포함하는 데이터 저장 장치 | |
JP5996129B2 (ja) | 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム | |
US20210089219A1 (en) | Storage device and operating method thereof | |
CN103064803B (zh) | 一种NAND Flash存储设备的数据读写方法和装置 | |
CN109660576B (zh) | 用户数据实时迁移方法、存储介质、电子设备及系统 | |
EP3504627B1 (en) | Read operation redirect |
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 |