CN113504877A - 一种基于ft6678控制器的nvme硬盘驱动方法 - Google Patents

一种基于ft6678控制器的nvme硬盘驱动方法 Download PDF

Info

Publication number
CN113504877A
CN113504877A CN202110803394.4A CN202110803394A CN113504877A CN 113504877 A CN113504877 A CN 113504877A CN 202110803394 A CN202110803394 A CN 202110803394A CN 113504877 A CN113504877 A CN 113504877A
Authority
CN
China
Prior art keywords
controller
hard disk
nvme hard
pcie
address
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.)
Pending
Application number
CN202110803394.4A
Other languages
English (en)
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.)
China South Industries Group Automation Research Institute
Original Assignee
China South Industries Group Automation Research Institute
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 China South Industries Group Automation Research Institute filed Critical China South Industries Group Automation Research Institute
Priority to CN202110803394.4A priority Critical patent/CN113504877A/zh
Publication of CN113504877A publication Critical patent/CN113504877A/zh
Pending legal-status Critical Current

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种基于FT6678控制器的NVME硬盘驱动方法,包括:将FT6678控制器通过PCIE与NVME硬盘连接;对FT6678控制器端PCIE进行初始化;通过FT6678控制器对NVME硬盘进行识别;通过FT6678控制器对NVME硬盘进行写控制和读控制。本发明提供的一种基于FT6678控制器的NVME硬盘驱动方法,不依赖操作系统,飞腾FT6678控制器可采用PCIE2.0X4直接和NVME硬盘连接进行数据存储,相比现有技术传输存储性能提高10倍以上。

Description

一种基于FT6678控制器的NVME硬盘驱动方法
技术领域
本发明涉及NVME硬盘技术领域,具体涉及一种基于FT6678控制器的NVME硬盘驱动方法。
背景技术
飞腾FT6678控制器DSP没有提供官方操作硬盘的存储解决方法,现有非国产的技术方案,采用TI DSP的PCIE接口连接PCIE转SATA桥接芯片,再连接SATA硬盘的存储解决方法,架构如图1。现有技术采用的PCIE转SATA桥接芯片对DSP数据进行中转,性能存在损失,同时采用SATA硬盘存储,且支持的SATA2.0协议,导致输出、传输性能不高。另外,现有技术在PCIE转SATA桥接芯片的选型上无法满足国产化要求。
发明内容
本发明的目的在于提供一种基于FT6678控制器的NVME硬盘驱动方法,以至少解决现有技术采用的PCIE转SATA桥接芯片对DSP数据进行中转,性能存在损失,采用SATA硬盘存储,且支持的SATA2.0协议,导致输出、传输性能不高的技术问题。
本发明通过下述技术方案实现:
本发明提供一种基于FT6678控制器的NVME硬盘驱动方法,包括:
将FT6678控制器通过PCIE与NVME硬盘连接;
对FT6678控制器端PCIE进行初始化;
通过FT6678控制器对NVME硬盘进行识别;
通过FT6678控制器对NVME硬盘进行写控制和读控制。
进一步,所述对FT6678控制器端PCIE进行初始化,具体包括:
对FT6678控制器端PCIE接口进行初始化;
配置PCIE工作在RC模式,配置PCIE采用PCIE2.0接口协议和4lane接口。
进一步,所述通过FT6678控制器对NVME硬盘进行识别,具体包括:
(1)打开PCIE链接使能,检查PCIE与NVME固态硬盘的link状态,如果link成功,则执行步骤3;如果link不成功,则重新训练链路,重新link,如果一直link不成功,直到link超时,则执行步骤2;
(2)进行Link超时异常处理;
(3)配置PCIE BAR空间寄存器,实现与NVME硬盘地址映射,通过PCIE BAR获取NVME硬盘版本信息;
(4)初始化admin queue空间,在FT6678控制器的共享存储空间分配地址空间;
(5)配置NVME硬盘寄存器;
(6)发送identify命令,获取NVME硬盘基本信息;
(7)初始化io queue空间,在FT6678控制器的共享存储空间分配地址空间;
(8)创建,即初始化CQ和SQ。
进一步,所述通过FT6678控制器对NVME硬盘进行写控制,具体包括:
(1)获取写操作数据地址、数据长度和写数据LBA地址;
(2)在FT6678控制器的共享存储空间动态分配地址空间;
(3)若FT6678控制器一级数据缓存无效,则执行步骤4;
(4)将写操作数据拷贝到共享存储空间;
(5)计算本次写操作LBA地址、数据长度、共享存储空间数据地址;
(6)设置SQ队列参数;
(7)通知NVME硬盘从SQ队列取命令;
(8)等待NVME硬盘执行指令,并返回执行结果;
(9)在CQ中查看指令执行结果;
(10)统计数据传输完成。
进一步,所述通过FT6678控制器对NVME硬盘进行读控制,具体包括:
(1)获取读操作数据地址、数据长度和读数据LBA地址;
(2)在FT6678控制器的共享存储空间动态分配地址空间;
(3)计算本次读操作LBA地址、数据长度、共享存储空间数据地址;
(4)设置SQ队列参数;
(5)通知NVME硬盘从SQ队列取命令;
(6)等待NVME硬盘执行指令,并返回执行结果;
(7)在CQ中查看指令执行结果;
(8)若FT6678控制器一级数据缓存无效,则执行步骤9;
(9)将共享存储空间数据拷贝到读操作数据地址;
(10)统计数据传输完成。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明提供的一种基于FT6678控制器的NVME硬盘驱动方法,不依赖操作系统,飞腾FT6678控制器可采用PCIE2.0X4直接和NVME硬盘连接进行数据存储,相比现有技术传输存储性能提高10倍以上,至少解决了现有技术采用的PCIE转SATA桥接芯片对DSP数据进行中转,性能存在损失,采用SATA硬盘存储,且支持的SATA2.0协议,导致输出、传输性能不高的技术问题。该方法在无系统下采用飞腾FT6678控制器实现对NVME硬盘的读写控制,DSP主控芯片采用FT6678控制器,NVME硬盘控制器芯片采用忆芯STAR1000,可实现全国产化。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为现有硬盘驱动方法的架构图;
图2为本发明一种基于FT6678控制器的NVME硬盘驱动方法的架构图;
图3为本发明一种基于FT6678控制器的NVME硬盘驱动方法的流程图;
图4为本发明一种基于FT6678控制器的NVME硬盘驱动方法中NVME硬盘识别流程图;
图5为本发明一种基于FT6678控制器的NVME硬盘驱动方法中NVME硬盘写控制流程图;
图6为本发明一种基于FT6678控制器的NVME硬盘驱动方法中NVME硬盘读控制流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例一
请参考图2至图6,本发明提供一种基于FT6678控制器的NVME硬盘驱动方法,包括:
S1、将FT6678控制器通过PCIE(高速串行计算机扩展总线标准)与NVME(非易失性内存主机控制器接口规范)硬盘连接;
S2、对FT6678控制器端PCIE进行初始化;
S3、通过FT6678控制器对NVME硬盘进行识别;
S4、通过FT6678控制器对NVME硬盘进行写控制和读控制。
本发明提供的一种基于FT6678控制器的NVME硬盘驱动方法,不依赖操作系统,飞腾FT6678控制器可采用PCIE2.0X4直接和NVME硬盘连接进行数据存储,相比现有技术传输存储性能提高10倍以上,至少解决了现有技术采用的PCIE转SATA桥接芯片对DSP(数字信号处理)数据进行中转,性能存在损失,采用SATA硬盘存储,且支持的SATA2.0协议,导致输出、传输性能不高的技术问题。该方法在无系统下采用飞腾FT6678控制器实现对NVME硬盘的读写控制,DSP主控芯片采用FT6678控制器,NVME硬盘控制器芯片采用忆芯STARi000,可实现全国产化。
作为具体实施方式,所述对FT6678控制器端PCIE进行初始化,具体包括:
对FT6678控制器端PCIE接口进行初始化;
配置PCIE工作在RC(root complex)模式,配置PCIE采用PCIE2.0接口协议和4lane接口。
作为具体实施方式,所述通过FT6678控制器对NVME硬盘进行识别,具体包括:
(1)打开PCIE链接使能,检查PCIE与NVME固态硬盘的link状态(链路状态),如果1ink成功,则执行步骤3;如果1ink不成功,则重新训练链路,重新link,如果一直link不成功,直到link超时,则执行步骤2;
(2)进行Link超时异常处理;
(3)配置PCIE BAR空间寄存器,实现与NVME硬盘地址映射,通过PCIE BAR获取NVME硬盘版本信息;
(4)初始化admin queue(管理队列)空间,在FT6678控制器的共享存储空间(MSMC)分配地址空间;
(5)配置NVME硬盘寄存器,包括AQA(admin queue attributes)、ASQ(adminsubmission queue base address)、ACQ(admin complete queue base address)、CC(controller configuration);
(6)发送identify命令,获取NVME硬盘基本信息;
(7)初始化io queue(io队列)空间,在FT6678控制器的共享存储空间分配地址空间;
(8)创建,即初始化CQ(completion queue)和SQ(submission queue)。
作为具体实施方式,所述通过FT6678控制器对NVME硬盘进行写控制,具体包括:
(1)获取写操作数据地址(DDR3数据地址空间)、数据长度和写数据LBA地址;
(2)在FT6678控制器的共享存储空间(MSMC)动态分配地址空间;
(3)若FT6678控制器一级数据缓存无效,则执行步骤4;
(4)将写操作数据拷贝到共享存储空间(MSMC);
(5)计算本次写操作LBA地址、数据长度、共享存储空间数据地址;
(6)设置SQ队列参数;
(7)通知NVME硬盘从SQ队列取命令;
(8)等待NVME硬盘执行指令,并返回执行结果;
(9)在CQ中查看指令执行结果;
(10)统计数据传输完成。
作为具体实施方式,所述通过FT6678控制器对NVME硬盘进行读控制,具体包括:
(1)获取读操作数据地址(DDR3数据地址空间)、数据长度和读数据LBA地址;
(2)在FT6678控制器的共享存储空间(MSMC)动态分配地址空间;
(3)计算本次读操作LBA地址、数据长度、共享存储空间数据地址;
(4)设置SQ队列参数;
(5)通知NVME硬盘从SQ队列取命令;
(6)等待NVME硬盘执行指令,并返回执行结果;
(7)在CQ中查看指令执行结果;
(8)若FT6678控制器一级数据缓存无效,则执行步骤9;
(9)将共享存储空间数据拷贝到读操作数据地址;
(10)统计数据传输完成。
本领域普通技术人员可以理解实现上述事实和方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,涉及的程序或者所述的程序可以存储于一计算机所可读取存储介质中,该程序在执行时,包括如下步骤:此时引出相应的方法步骤,所述的存储介质可以是ROM/RAM、磁碟、光盘等等
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于FT6678控制器的NVME硬盘驱动方法,其特征在于,包括:
将FT6678控制器通过PCIE与NVME硬盘连接;
对FT6678控制器端PCIE进行初始化;
通过FT6678控制器对NVME硬盘进行识别;
通过FT6678控制器对NVME硬盘进行写控制和读控制。
2.如权利要求1所述的基于FT6678控制器的NVME硬盘驱动方法,其特征在于,所述对FT6678控制器端PCIE进行初始化,具体包括:
对FT6678控制器端PCIE接口进行初始化;
配置PCIE工作在RC模式,配置PCIE采用PCIE2.0接口协议和41ane接口。
3.如权利要求1所述的基于FT6678控制器的NVME硬盘驱动方法,其特征在于,所述通过FT6678控制器对NVME硬盘进行识别,具体包括:
(1)打开PCIE链接使能,检查PCIE与NVME固态硬盘的link状态,如果link成功,则执行步骤3;如果link不成功,则重新训练链路,重新link,如果一直1ink不成功,直到1ink超时,则执行步骤2;
(2)进行Link超时异常处理;
(3)配置PCIE BAR空间寄存器,实现与NVME硬盘地址映射,通过PCIE BAR获取NVME硬盘版本信息;
(4)初始化admin queue空间,在FT6678控制器的共享存储空间分配地址空间;
(5)配置NVME硬盘寄存器;
(6)发送identify命令,获取NVME硬盘基本信息;
(7)初始化io queue空间,在FT6678控制器的共享存储空间分配地址空间;
(8)创建,即初始化CQ和SQ。
4.如权利要求1所述的基于FT6678控制器的NVME硬盘驱动方法,其特征在于,所述通过FT6678控制器对NVME硬盘进行写控制,具体包括:
(1)获取写操作数据地址、数据长度和写数据LBA地址;
(2)在FT6678控制器的共享存储空间动态分配地址空间;
(3)若FT6678控制器一级数据缓存无效,则执行步骤4;
(4)将写操作数据拷贝到共享存储空间;
(5)计算本次写操作LBA地址、数据长度、共享存储空间数据地址;
(6)设置SQ队列参数;
(7)通知NVME硬盘从SQ队列取命令;
(8)等待NVME硬盘执行指令,并返回执行结果;
(9)在CQ中查看指令执行结果;
(10)统计数据传输完成。
5.如权利要求1所述的基于FT6678控制器的NVME硬盘驱动方法,其特征在于,所述通过FT6678控制器对NVME硬盘进行读控制,具体包括:
(1)获取读操作数据地址、数据长度和读数据LBA地址;
(2)在FT6678控制器的共享存储空间动态分配地址空间;
(3)计算本次读操作LBA地址、数据长度、共享存储空间数据地址;
(4)设置SQ队列参数;
(5)通知NVME硬盘从SQ队列取命令;
(6)等待NVME硬盘执行指令,并返回执行结果;
(7)在CQ中查看指令执行结果;
(8)若FT6678控制器一级数据缓存无效,则执行步骤9;
(9)将共享存储空间数据拷贝到读操作数据地址;
(10)统计数据传输完成。
CN202110803394.4A 2021-07-15 2021-07-15 一种基于ft6678控制器的nvme硬盘驱动方法 Pending CN113504877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110803394.4A CN113504877A (zh) 2021-07-15 2021-07-15 一种基于ft6678控制器的nvme硬盘驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110803394.4A CN113504877A (zh) 2021-07-15 2021-07-15 一种基于ft6678控制器的nvme硬盘驱动方法

Publications (1)

Publication Number Publication Date
CN113504877A true CN113504877A (zh) 2021-10-15

Family

ID=78013411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110803394.4A Pending CN113504877A (zh) 2021-07-15 2021-07-15 一种基于ft6678控制器的nvme硬盘驱动方法

Country Status (1)

Country Link
CN (1) CN113504877A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN206147469U (zh) * 2016-08-30 2017-05-03 中国电子科技集团公司第十五研究所 一种提高外部存储设备访问性能的飞腾计算机
CN107992436A (zh) * 2016-10-26 2018-05-04 杭州华为数字技术有限公司 一种NVMe数据读写方法及NVMe设备
CN211427190U (zh) * 2019-10-14 2020-09-04 苏州浪潮智能科技有限公司 一种基于飞腾处理器2000+的服务器电路和主板
CN112256601A (zh) * 2020-10-19 2021-01-22 凌云光技术股份有限公司 数据存取控制方法、嵌入式存储系统及嵌入式设备
CN113031862A (zh) * 2021-03-18 2021-06-25 中国电子科技集团公司第五十二研究所 一种基于nvme协议控制sata盘的存储系统
CN113050896A (zh) * 2021-04-30 2021-06-29 北京航星中云科技有限公司 一种支持nvdimm的国产飞腾服务器及数据保护方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN206147469U (zh) * 2016-08-30 2017-05-03 中国电子科技集团公司第十五研究所 一种提高外部存储设备访问性能的飞腾计算机
CN107992436A (zh) * 2016-10-26 2018-05-04 杭州华为数字技术有限公司 一种NVMe数据读写方法及NVMe设备
CN211427190U (zh) * 2019-10-14 2020-09-04 苏州浪潮智能科技有限公司 一种基于飞腾处理器2000+的服务器电路和主板
CN112256601A (zh) * 2020-10-19 2021-01-22 凌云光技术股份有限公司 数据存取控制方法、嵌入式存储系统及嵌入式设备
CN113031862A (zh) * 2021-03-18 2021-06-25 中国电子科技集团公司第五十二研究所 一种基于nvme协议控制sata盘的存储系统
CN113050896A (zh) * 2021-04-30 2021-06-29 北京航星中云科技有限公司 一种支持nvdimm的国产飞腾服务器及数据保护方法

Similar Documents

Publication Publication Date Title
US7802061B2 (en) Command-based control of NAND flash memory
US9588697B2 (en) Host controller
US7620747B1 (en) Software based native command queuing
US9081662B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US8037228B2 (en) Bridge device with page-access based processor interface
US20060224821A1 (en) System for parallel updating flash memory and method for the same
US8266371B2 (en) Non-volatile storage device, host device, non-volatile storage system, data recording method, and program
US8041849B2 (en) Method for handling small computer system interface (SCSI) commands via a redundant array of inexpensive disks (RAID) device driver
CN102955751B (zh) 存储器储存装置、存储器控制器与数据写入方法
CN112256601A (zh) 数据存取控制方法、嵌入式存储系统及嵌入式设备
US20070079015A1 (en) Methods and arrangements to interface a data storage device
TW201931127A (zh) 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及連接至安全數位卡的電子裝置
CN108932209B (zh) 存储器装置及其操作方法
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
US20040059848A1 (en) Device for automatically switching endian order
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
US7917659B2 (en) Variable length command pull with contiguous sequential layout
CN113504877A (zh) 一种基于ft6678控制器的nvme硬盘驱动方法
CN115952116A (zh) 一种基于FPGA的嵌入式NVMe固态硬盘存储系统
US20070005813A1 (en) Peripheral device and method for interpreting redefined frame information structure
CN111966303B (zh) 一种数据处理方法、系统、设备及可读存储介质
US20040186949A1 (en) XIP system and method for serial memory
US7899986B2 (en) Method and system for controlling a hard disk drive using a multimediacard physical interface
US7788420B2 (en) Address buffer mode switching for varying request sizes
US11704258B2 (en) Latency reduction in SPI flash memory devices

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