CN110083311B - 一种基于ssd描述符下发软硬件交互的方法及其系统 - Google Patents
一种基于ssd描述符下发软硬件交互的方法及其系统 Download PDFInfo
- Publication number
- CN110083311B CN110083311B CN201910343775.1A CN201910343775A CN110083311B CN 110083311 B CN110083311 B CN 110083311B CN 201910343775 A CN201910343775 A CN 201910343775A CN 110083311 B CN110083311 B CN 110083311B
- Authority
- CN
- China
- Prior art keywords
- descriptor
- buff
- hardware
- cpu
- software
- 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
- 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/0638—Organizing or formatting or addressing of data
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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
本发明涉及一种基于SSD描述符下发软硬件交互的方法及其系统;其中,基于SSD描述符下发软硬件交互的方法,包括以下步骤:S1,接收前端命令,CPU构建描述符组;S2,判断描述符数量是否达到描述符组数量要求;S3,将描述符组放入软硬件共享BUFF中,更新写指针;S4,判断读写指针是否有差值;S5,硬件自动获取BUFF中的描述符组,更新读指针。本发明通过添加软硬件共享BUFF和读写指针,CPU可以直接将描述符组放入BUFF,也可以去BUFF中获取描述符的完成状态,硬件也可以通过BUFF自动的获取描述符,同时将完成的描述符状态放入BUFF中,有效的减少了CPU访问NFC的次数,减少了CPU的开销,提升了SSD的性能,更好地满足需求。
Description
技术领域
本发明涉及固态硬盘软硬件交互技术领域,更具体地说是指一种基于SSD描述符下发软硬件交互的方法及其系统。
背景技术
现有CPU每次下发描述符时,都需要去访问NFC通道的固定寄存器,在查询描述符完成情况时,同样需要去轮训指定通道的status寄存器,来获取信息;这样做会造成CPU频繁的访问NFC,从而带来了CPU的大量开销,使得CPU浪费,降低了SSD的性能,无法满足需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于SSD描述符下发软硬件交互的方法及其系统。
为实现上述目的,本发明采用于下技术方案:
一种基于SSD描述符下发软硬件交互的方法,包括以下步骤:
S1,接收前端命令,CPU构建描述符组;
S2,判断描述符数量是否达到描述符组数量要求;若是,进入S3;若否,则返回S1;
S3,将描述符组放入软硬件共享BUFF中,更新写指针;
S4,判断读写指针是否有差值;若是,进入S5;若否,则返回S3;
S5,硬件自动获取BUFF中的描述符组,更新读指针。
其进一步技术方案为:所述S1包括:
S11,接收前端命令;
S12,CPU构建描述符组。
其进一步技术方案为:所述S3包括:
S31,将描述符组放入软硬件共享BUFF中;
S32,更新写指针。
其进一步技术方案为:所述S5包括:
S51,硬件自动获取BUFF中的描述符组;
S52,更新读指针。
一种基于SSD描述符下发软硬件交互的系统,包括:接收构建单元,第一判断单元,放入更新写单元,第二判断单元,及获取更新读单元;
所述接收构建单元,用于接收前端命令,CPU构建描述符组;
所述第一判断单元,用于判断描述符数量是否达到描述符组数量要求;
所述放入更新写单元,用于将描述符组放入软硬件共享BUFF中,更新写指针;
所述第二判断单元,用于判断读写指针是否有差值;
所述获取更新读单元,用于硬件自动获取BUFF中的描述符组,更新读指针。
其进一步技术方案为:所述接收构建单元包括接收模块和构建模块;
所述接收模块,用于接收前端命令;
所述构建模块,用于CPU构建描述符组。
其进一步技术方案为:所述放入更新写单元包括放入模块和更新写模块;
所述放入模块,用于将描述符组放入软硬件共享BUFF中;
所述更新写模块,用于更新写指针。
其进一步技术方案为:所述获取更新读单元包括获取模块和更新读模块;
所述获取模块,用于硬件自动获取BUFF中的描述符组;
所述更新读模块,用于更新读指针。
本发明与现有技术相比的有益效果是:通过添加软硬件共享BUFF和读写指针,CPU可以直接将描述符组放入BUFF,也可以去BUFF中获取描述符的完成状态,硬件也可以通过BUFF自动的获取描述符,同时将完成的描述符状态放入BUFF中,有效的减少了CPU访问NFC的次数,减少了CPU的开销,提升了SSD的性能,更好地满足需求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为现有技术的描述符下发框图;
图2为现有技术的描述符下发流程图;
图3为本发明一种基于SSD描述符下发软硬件交互的方法流程图;
图4为本发明的描述符下发优化框图;
图5为本发明一种基于SSD描述符下发软硬件交互的系统方框图。
10 接收构建单元 11 接收模块
12 构建模块 20 第一判断单元
30 放入更新写单元 31 放入模块
32 更新写模块 40 第二判断单元
50 获取更新读单元 51 获取模块
52 更新读模块
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1到图5所示的具体实施例,其中,如图1至图2所示的现有技术;CPU收到前端命令,构造相应的描述符下发给NFC,通道当下发给的描述符完成后,CPU再去读取NFC相应状态位寄存器,获取描述符完成情况做相应处理。
其中,如图2所示的,描述符下发流程如下:
1、接收前端命令;2、PU构造相应描述符;3、NFC处理描述符;4、判断CDMA通道是否空闲;5、下发给空闲CDMA通道;6、执行描述符。
CPU每次下发描述符时,都需要去访问NFC通道的固定寄存器,在查询描述符完成情况时,同样需要去轮训指定通道的status寄存器,来获取信息;这样做会造成CPU频繁的访问NFC,从而带来了CPU的大量开销,使得CPU浪费,降低了SSD的性能。
如图3至图4所示,本发明公开了一种基于SSD描述符下发软硬件交互的方法,包括以下步骤:
S1,接收前端命令,CPU构建描述符组;
S2,判断描述符数量是否达到描述符组数量要求;若是,进入S3;若否,则返回S1;
S3,将描述符组放入软硬件共享BUFF中,更新写指针;
S4,判断读写指针是否有差值;若是,进入S5;若否,则返回S3;
S5,硬件自动获取BUFF中的描述符组,更新读指针。
其中,所述S1包括:
S11,接收前端命令;
S12,CPU构建描述符组。
其中,所述S3包括:
S31,将描述符组放入软硬件共享BUFF中;
S32,更新写指针。
其中,所述S5包括:
S51,硬件自动获取BUFF中的描述符组;
S52,更新读指针。
如图4所示,本发明在CPU和NFC之间开辟一段软硬件共享BUFF,CPU可以将描述符放入BUFF并更新写指针,NFC硬件可以读取描述符,更新读指针。
本发明添加了软硬件共享BUFF和读写指针,有效的减少了CPU访问NFC的次数,减少了CPU的开销,提升了SSD的性能。
如图5所示,本发明还公开了一种基于SSD描述符下发软硬件交互的系统,包括:接收构建单元10,第一判断单元20,放入更新写单元30,第二判断单元40,及获取更新读单元50;
所述接收构建单元10,用于接收前端命令,CPU构建描述符组;
所述第一判断单元20,用于判断描述符数量是否达到描述符组数量要求;
所述放入更新写单元30,用于将描述符组放入软硬件共享BUFF中,更新写指针;
所述第二判断单元40,用于判断读写指针是否有差值;
所述获取更新读单元50,用于硬件自动获取BUFF中的描述符组,更新读指针。
其中,所述接收构建单元10包括接收模块11和构建模块12;
所述接收模块11,用于接收前端命令;
所述构建模块12,用于CPU构建描述符组。
进一步地,所述放入更新写单元30包括放入模块31和更新写模块32;
所述放入模块31,用于将描述符组放入软硬件共享BUFF中;
所述更新写模块32,用于更新写指针。
更进一步地,所述获取更新读单元50包括获取模块51和更新读模块52;
所述获取模块51,用于硬件自动获取BUFF中的描述符组;
所述更新读模块52,用于更新读指针。
其中,描述符是CPU构造,下发给NFC与NAND交互的重要工具,NFC有多个通道同时下发给NAND,所以要求CPU能够提供足够的描述符给NAND执行,来保证SSD的工作效率,而CPU频繁的访问NFC又十分的浪费CPU;本发明通过添加软硬件共享BUFF和读写指针,CPU可以直接将描述符组放入BUFF,也可以去BUFF中获取描述符的完成状态,硬件也可以通过BUFF自动的获取描述符,同时将完成的描述符状态放入BUFF中,有效的减少了CPU访问NFC的次数,减少了CPU的开销,提升了SSD的性能,更好地满足需求。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (2)
1.一种基于SSD描述符下发软硬件交互的方法,其特征在于,包括以下步骤:
S1,接收前端命令,CPU构建描述符组;
S2,判断描述符数量是否达到描述符组数量要求;若是,进入S3;若否,则返回S1;
S3,将描述符组放入软硬件共享BUFF中,更新写指针;
S4,判断读写指针是否有差值;若是,进入S5;若否,则返回S3;
S5,硬件自动获取BUFF中的描述符组,更新读指针;
软硬件共享BUFF设置于CPU和NFC之间;将描述符放入BUFF并更新写指针是由CPU执行,读取描述符并更新读指针是由NFC硬件执行。
2.一种基于SSD描述符下发软硬件交互的系统,其特征在于,包括:接收构建单元,第一判断单元,放入更新写单元,第二判断单元,及获取更新读单元;
所述接收构建单元,用于接收前端命令,CPU构建描述符组;
所述第一判断单元,用于判断描述符数量是否达到描述符组数量要求;
所述放入更新写单元,用于将描述符组放入软硬件共享BUFF中,更新写指针;
所述第二判断单元,用于判断读写指针是否有差值;
所述获取更新读单元,用于硬件自动获取BUFF中的描述符组,更新读指针;
软硬件共享BUFF设置于CPU和NFC之间;将描述符放入BUFF并更新写指针是由CPU执行,读取描述符并更新读指针是由NFC硬件执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910343775.1A CN110083311B (zh) | 2019-04-26 | 2019-04-26 | 一种基于ssd描述符下发软硬件交互的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910343775.1A CN110083311B (zh) | 2019-04-26 | 2019-04-26 | 一种基于ssd描述符下发软硬件交互的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083311A CN110083311A (zh) | 2019-08-02 |
CN110083311B true CN110083311B (zh) | 2022-03-29 |
Family
ID=67416945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910343775.1A Active CN110083311B (zh) | 2019-04-26 | 2019-04-26 | 一种基于ssd描述符下发软硬件交互的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083311B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471624A (zh) * | 2019-08-07 | 2019-11-19 | 深圳忆联信息系统有限公司 | Ssd读重试的加速方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818389B1 (en) * | 2006-12-01 | 2010-10-19 | Marvell International Ltd. | Packet buffer apparatus and method |
CN102065568A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 基于数据描述符的mac软硬件交互方法及其硬件实现装置 |
CN103391256A (zh) * | 2013-07-25 | 2013-11-13 | 武汉邮电科学研究院 | 一种基于Linux系统的基站用户面数据处理优化方法 |
CN109086168A (zh) * | 2018-07-13 | 2018-12-25 | 深圳忆联信息系统有限公司 | 一种利用硬件备份固态硬盘写速度的方法及其系统 |
CN109582516A (zh) * | 2018-12-03 | 2019-04-05 | 深圳忆联信息系统有限公司 | Ssd后端性能分析方法、装置、计算机设备和存储介质 |
CN109634664A (zh) * | 2018-12-17 | 2019-04-16 | 深圳忆联信息系统有限公司 | 一种cpu给硬件电路下发命令描述符的方法及装置 |
-
2019
- 2019-04-26 CN CN201910343775.1A patent/CN110083311B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818389B1 (en) * | 2006-12-01 | 2010-10-19 | Marvell International Ltd. | Packet buffer apparatus and method |
CN102065568A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 基于数据描述符的mac软硬件交互方法及其硬件实现装置 |
CN103391256A (zh) * | 2013-07-25 | 2013-11-13 | 武汉邮电科学研究院 | 一种基于Linux系统的基站用户面数据处理优化方法 |
CN109086168A (zh) * | 2018-07-13 | 2018-12-25 | 深圳忆联信息系统有限公司 | 一种利用硬件备份固态硬盘写速度的方法及其系统 |
CN109582516A (zh) * | 2018-12-03 | 2019-04-05 | 深圳忆联信息系统有限公司 | Ssd后端性能分析方法、装置、计算机设备和存储介质 |
CN109634664A (zh) * | 2018-12-17 | 2019-04-16 | 深圳忆联信息系统有限公司 | 一种cpu给硬件电路下发命令描述符的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"软硬件协同的组播优化设计";张敏;《中国优秀硕士学位论文全文数据库信息科技辑》;20190115;正文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110083311A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440206B (zh) | 一种固态硬盘及其混合映射方法 | |
CN101740102B (zh) | 一种多通道闪存芯片阵列结构及其写入和读出方法 | |
US20200150903A1 (en) | Method for executing hard disk operation command, hard disk, and storage medium | |
CN101719098B (zh) | Nandflash芯片组存储控制器 | |
CN102609741B (zh) | 一种移动设备及其内、外部存储卡间数据交换的方法 | |
CN111158633A (zh) | 一种基于fpga的ddr3多通道读写控制器及控制方法 | |
CN110910921A (zh) | 一种命令读写方法、装置及计算机存储介质 | |
CN108628543B (zh) | 垃圾回收方法以及使用该方法的装置 | |
CN110083311B (zh) | 一种基于ssd描述符下发软硬件交互的方法及其系统 | |
TW201610834A (zh) | 讀取命令排程方法以及使用該方法的裝置 | |
CN103488600A (zh) | 通用从机同步串行接口电路 | |
US10216634B2 (en) | Cache directory processing method for multi-core processor system, and directory controller | |
CN102279825B (zh) | 一种固态硬盘控制器的智能dma控制器 | |
CN102841894A (zh) | 一种文件分配表的数据存储方法 | |
CN107943413B (zh) | 一种固态硬盘提升读性能的方法 | |
CN102591823A (zh) | 一种具有指令队列功能的Nandflash控制器 | |
CN104750430B (zh) | 一种NAND Flash接口的访问方法及装置 | |
CN103092771A (zh) | 固态储存装置及其高速缓存的控制方法 | |
CN202003346U (zh) | 一种多通道的nand flash控制器 | |
CN101710237B (zh) | 以闪存为存储介质的设备生产流程 | |
CN107608927B (zh) | 一种支持全功能的lpc总线主机端口的设计方法 | |
CN104572513A (zh) | 一种无需驱动实现蓝牙功能的tf卡及其实现方法 | |
CN115480708A (zh) | 一种分时复用局部存储器访问的方法 | |
CN102646073B (zh) | 数据处理方法及装置 | |
CN109726149B (zh) | 一种axi总线访问nand flash的方法及装置 |
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 |