CN110083311B - 一种基于ssd描述符下发软硬件交互的方法及其系统 - Google Patents

一种基于ssd描述符下发软硬件交互的方法及其系统 Download PDF

Info

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
Application number
CN201910343775.1A
Other languages
English (en)
Other versions
CN110083311A (zh
Inventor
马越
冯元元
周晨杰
周强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201910343775.1A priority Critical patent/CN110083311B/zh
Publication of CN110083311A publication Critical patent/CN110083311A/zh
Application granted granted Critical
Publication of CN110083311B publication Critical patent/CN110083311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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描述符下发软硬件交互的方法及其系统
技术领域
本发明涉及固态硬盘软硬件交互技术领域,更具体地说是指一种基于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硬件执行。
CN201910343775.1A 2019-04-26 2019-04-26 一种基于ssd描述符下发软硬件交互的方法及其系统 Active CN110083311B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471624A (zh) * 2019-08-07 2019-11-19 深圳忆联信息系统有限公司 Ssd读重试的加速方法、装置、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
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给硬件电路下发命令描述符的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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