CN106951268A - 一种申威平台支持NVMe硬盘启动的实现方法 - Google Patents

一种申威平台支持NVMe硬盘启动的实现方法 Download PDF

Info

Publication number
CN106951268A
CN106951268A CN201710206847.9A CN201710206847A CN106951268A CN 106951268 A CN106951268 A CN 106951268A CN 201710206847 A CN201710206847 A CN 201710206847A CN 106951268 A CN106951268 A CN 106951268A
Authority
CN
China
Prior art keywords
nvme
agreements
member functions
hard disk
shen prestige
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
CN201710206847.9A
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.)
Shandong Chaoyue Numerical Control Electronics Co Ltd
Original Assignee
Shandong Chaoyue Numerical Control Electronics 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 Shandong Chaoyue Numerical Control Electronics Co Ltd filed Critical Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority to CN201710206847.9A priority Critical patent/CN106951268A/zh
Publication of CN106951268A publication Critical patent/CN106951268A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automatic Disk Changers (AREA)

Abstract

本发明涉及一种申威平台支持NVMe硬盘启动的实现方法,包括:(1)先封装NVME驱动,类型为UEFI_DRIVER;(2)在NVMe驱动入口处安装Drvier Binding协议和Component Name协议,Drvier Binding协议包括Support、Start和Stop三个成员函数;(3)通过Support成员函数检测申威平台是否支持NVMe驱动,如果支持,Start函数实现PassThrough协议,实现对NVMe控制器的初始化。本发明实现了对NVMe硬盘的直接支持,进而实现从NVMe硬盘直接启动操作***,可充分利用其读写速度,减少***启动时间,提高***性能。

Description

一种申威平台支持NVMe硬盘启动的实现方法
技术领域
本发明涉及一种申威平台支持NVMe硬盘启动的实现方法,属于申威处理器计算机***设计技术领域。
背景技术
SSD(Solid State Drives)硬盘一般采用SATA接口、SAS或光线与计算机其他部件相连,但是,SATA接口是为机械硬盘设计的,随着SSD硬盘的迅猛发展,已成为提高SSD硬盘性能的阻碍。在NVMe(Non-Volatile Memory Express)标准推出之前,高端SSD硬盘已经开始采用PCIE总线作为其接口,但没有统一的规范。随着NVMe标准的推出,各厂商的SSD硬盘无需再开发单独的驱动,在***下只需要一个NMVe驱动就可驱动所有厂商的标准硬盘。
NVMe作为非失性存储器标准,利用基于闪存的存储设备的低延迟和内部并行性,满足了当代CPU、平台和应用程序的并行性需求。通过其设计,NVMe允许SSD硬盘中的并行性可以被主机硬件和软件充分利用;与先前的逻辑设备接口相比,其减少了I/O开销,并带来了各种性能改进,包括更低的延时、更高的传输性能和更低的功耗,极大地提高了数据的读取速率。NVMe设备接口包括PCIe、U.2、SATAe和M.2。
申威处理器或申威CPU,简称"SW处理器"。SW处理器源自于DEC的Alpha 21164,其研制得到了国家"核高基"专项资金支持,且具有完全自主知识产权的处理器系列。
现有技术中,申威处理器计算平台现有国产bios无法驱动NVME标准SSD硬盘,未对NVME驱动进行适配;导致申威处理器计算平台无法直接从NVME标准SSD硬盘启动,***启动时间长,硬盘读写速率较低,影响整机性能。
发明内容
针对现有技术的不足,本发明提供了一种申威平台支持NVMe硬盘启动的实现方法;
本发明基于UDK2015开源bios对NVME硬盘在申威平台进行驱动调试,实现了对NVME硬盘的直接支持,进而实现从NVMe硬盘直接启动操作***,可充分利用其读写速度,减少***启动时间,提高***性能。
发明概述:
本发明首先需要将NVMe驱动添加到UDK2015中进行编译,其次需要对NVMe驱动中涉及的具体函数进行修改和调试,最终将生成的二进制文件烧录到FLASH芯片中。NVMe驱动需要实现向NVMe硬盘发送命令包来操作NVMe硬盘的PassThrough协议,和向上层协议DiskIO提供硬盘扇区读写的Blcok IO协议。
术语解释:
Base Class,基类:,即被扩展继承的类;
Sub-Class,子类;
Interface,是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,以封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。
本发明的技术方案为:
一种申威平台支持NVMe硬盘启动的实现方法,步骤包括:
(1)先封装NVME驱动,类型为UEFI_DRIVER;
(2)在NVMe驱动入口处安装UEFI Driver Mode的Drvier Binding协议和Component Name协议,用于NVMe驱动的安装和卸载;所述Drvier Binding协议包括Support、Start和Stop三个成员函数,Component Name协议用于人机交互,向用户显示NVMe驱动的驱动信息;
(3)通过Support成员函数检测申威平台是否支持NVMe驱动,如果支持,Start函数实现PassThrough协议,实现对NVMe控制器的初始化;如果不支持,则不加载NVMe驱动,退出Support成员函数。
根据本发明优选的,Support成员函数检测申威平台是否支持NVMe驱动,包括:通过PCI IO协议读取申威平台的设备类型,如果Base Class为01、Sub-Class为08且Interface为02,则申威平台为NVMe控制器,支持NVMe驱动,否则,不支持NVMe驱动。
根据本发明优选的,所述PassThrough协议包括PassThru成员函数,BlockIO协议建立在PassThrough协议上,所述BlockIO协议包括Reset、ReadBlocks、WriteBlcoks和FlushBlocks成员函数;
所述PassThru成员函数用于向NVMe硬盘发送命令包来操作NVMe硬盘;操作繁琐;
所述BlockIO协议用于读写NVMe硬盘扇区,所述Reset成员函数用于重启NVMe硬盘,所述ReadBlocks成员函数用于读取NVMe硬盘扇区,所述WriteBlcoks成员函数用于写NVMe硬盘扇区,所述FlushBlocks成员函数用于将缓存中的数据写入NVMe硬盘扇区。
根据本发明优选的,实现对NVMe控制器的初始化,包括:将NVMe硬盘读写函数封装为一个BlockIO协议,并安装在该NVMe控制器上。
将NVMe硬盘读写函数封装为一个BlockIO协议,并安装在该NVMe控制器上,为构建文件***做好准备。硬盘操作的总结如下:PassThrough协议通过向硬盘设备发送命令包来操作阴干,这种读写硬盘的方式繁琐;BlockIO协议建立在PassThrough协议基础之上,用于读写硬盘扇区,其接口非常简洁;DiskIO协议建立在BlockIO协议基础之上,提供了读写硬盘任意地址处的数据能力;基于DiskIO协议,构建文件***,方便对硬盘数据已文件形式进行管理。
本发明的有益效果为:
1、本发明实现了对NVMe硬盘的直接支持,进而实现从NVMe硬盘直接启动操作***,可充分利用其读写速度,减少***启动时间,提高***性能。
2、将NVMe硬盘驱动封装为一个UEFI_DRIVER,实现了模块化设计,易于管理。
3、增强了申威平台的扩展性和通用性,丰富了其业务生态。
附图说明
图1为本发明申威平台支持NVMe硬盘启动的实现方法的文件***的协议栈示意图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例
一种申威平台支持NVMe硬盘启动的实现方法,申威平台为申威台式机,支持PCIe扩展卡,BIOS采用开源代码UDK2015,步骤包括:
(1)先封装NVME驱动,类型为UEFI_DRIVER;
(2)在NVMe驱动入口处安装UEFI Driver Mode的Drvier Binding协议和Component Name协议,用于NVMe驱动的安装和卸载;所述Drvier Binding协议包括Support、Start和Stop三个成员函数,Component Name协议用于人机交互,向用户显示NVMe驱动的驱动信息;
(3)通过Support成员函数检测申威平台是否支持NVMe驱动,如果支持,Start函数实现PassThrough协议,实现对NVMe控制器的初始化;如不支持,将不加载NVMe驱动,退出Support成员函数。所述PassThrough协议包括PassThru成员函数,BlockIO协议建立在PassThrough协议上,如图1所示,所述BlockIO协议包括Reset、ReadBlocks、WriteBlcoks和FlushBlocks成员函数;所述PassThru成员函数用于向NVMe硬盘发送命令包来操作NVMe硬盘;命令包格式复杂,需要严格按照ATA规范进行操作,操作繁琐;所述BlockIO协议用于读写NVMe硬盘扇区,所述Reset成员函数用于重启NVMe硬盘,所述ReadBlocks成员函数用于读取NVMe硬盘扇区,所述WriteBlcoks成员函数用于写NVMe硬盘扇区,所述FlushBlocks成员函数用于将缓存中的数据写入NVMe硬盘扇区。
Support成员函数检测申威平台是否支持NVMe驱动,包括:通过PCI IO协议读取申威平台的设备类型,如果Base Class为01、Sub-Class为08且Interface为02,则申威平台为NVMe控制器,支持NVMe驱动,否则,不支持NVMe驱动。
将NVMe硬盘读写函数封装为一个BlockIO协议,并安装在该NVMe控制器上,为构建文件***做好准备。硬盘操作的总结如下:PassThrough协议通过向硬盘设备发送命令包来操作阴干,这种读写硬盘的方式繁琐;BlockIO协议建立在PassThrough协议基础之上,用于读写硬盘扇区,其接口非常简洁;DiskIO协议建立在BlockIO协议基础之上,提供了读写硬盘任意地址处的数据能力;基于DiskIO协议,构建文件***,方便对硬盘数据已文件形式进行管理。

Claims (4)

1.一种申威平台支持NVMe硬盘启动的实现方法,其特征在于,步骤包括:
(1)先封装NVME驱动,类型为UEFI_DRIVER;
(2)在NVMe驱动入口处安装UEFI Driver Mode的Drvier Binding协议和ComponentName协议,用于NVMe驱动的安装和卸载;所述Drvier Binding协议包括Support、Start和Stop三个成员函数,Component Name协议用于人机交互,向用户显示NVMe驱动的驱动信息;
(3)通过Support成员函数检测申威平台是否支持NVMe驱动,如果支持,Start函数实现PassThrough协议,实现对NVMe控制器的初始化;如果不支持,则不加载NVMe驱动,退出Support成员函数。
2.根据权利要求1所述的一种申威平台支持NVMe硬盘启动的实现方法,其特征在于,Support成员函数检测申威平台是否支持NVMe驱动,包括:通过PCI IO协议读取申威平台的设备类型,如果Base Class为01、Sub-Class为08且Interface为02,则申威平台为NVMe控制器,支持NVMe驱动,否则,不支持NVMe驱动。
3.根据权利要求1所述的一种申威平台支持NVMe硬盘启动的实现方法,其特征在于,所述PassThrough协议包括PassThru成员函数,BlockIO协议建立在PassThrough协议上,所述BlockIO协议包括Reset、ReadBlocks、WriteBlcoks和FlushBlocks成员函数;
所述PassThru成员函数用于向NVMe硬盘发送命令包来操作NVMe硬盘;
所述BlockIO协议用于读写NVMe硬盘扇区,所述Reset成员函数用于重启NVMe硬盘,所述ReadBlocks成员函数用于读取NVMe硬盘扇区,所述WriteBlcoks成员函数用于写NVMe硬盘扇区,所述FlushBlocks成员函数用于将缓存中的数据写入NVMe硬盘扇区。
4.根据权利要求3所述的一种申威平台支持NVMe硬盘启动的实现方法,其特征在于,实现对NVMe控制器的初始化,包括:将NVMe硬盘读写函数封装为一个BlockIO协议,并安装在该NVMe控制器上。
CN201710206847.9A 2017-03-31 2017-03-31 一种申威平台支持NVMe硬盘启动的实现方法 Pending CN106951268A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710206847.9A CN106951268A (zh) 2017-03-31 2017-03-31 一种申威平台支持NVMe硬盘启动的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710206847.9A CN106951268A (zh) 2017-03-31 2017-03-31 一种申威平台支持NVMe硬盘启动的实现方法

Publications (1)

Publication Number Publication Date
CN106951268A true CN106951268A (zh) 2017-07-14

Family

ID=59475779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710206847.9A Pending CN106951268A (zh) 2017-03-31 2017-03-31 一种申威平台支持NVMe硬盘启动的实现方法

Country Status (1)

Country Link
CN (1) CN106951268A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920194A (zh) * 2018-06-08 2018-11-30 山东超越数控电子股份有限公司 一种国产平台bios启动ext文件***的方法
CN109814845A (zh) * 2019-01-30 2019-05-28 郑州云海信息技术有限公司 一种基于OOP编程的NVMe模型
CN116149759A (zh) * 2023-04-20 2023-05-23 深圳市吉方工控有限公司 Uefi驱动卸载方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083101A (zh) * 2006-06-01 2007-12-05 美国博通公司 具有多个分布式处理器的硬盘控制器
CN104572165A (zh) * 2014-03-21 2015-04-29 中电科技(北京)有限公司 一种基于飞腾服务器的uefi固件实现方法
CN105354122A (zh) * 2015-12-07 2016-02-24 浪潮电子信息产业股份有限公司 一种服务器双用途硬盘背板的功能测试优化方法
CN105511993A (zh) * 2015-12-09 2016-04-20 浪潮电子信息产业股份有限公司 一种基于uefi的服务器nvme硬盘背板功能测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083101A (zh) * 2006-06-01 2007-12-05 美国博通公司 具有多个分布式处理器的硬盘控制器
CN104572165A (zh) * 2014-03-21 2015-04-29 中电科技(北京)有限公司 一种基于飞腾服务器的uefi固件实现方法
CN105354122A (zh) * 2015-12-07 2016-02-24 浪潮电子信息产业股份有限公司 一种服务器双用途硬盘背板的功能测试优化方法
CN105511993A (zh) * 2015-12-09 2016-04-20 浪潮电子信息产业股份有限公司 一种基于uefi的服务器nvme硬盘背板功能测试方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘烈超: ""基于NAND闪存的固态存储***设计及优化"", 《中国优秀硕士学位论文全文数据库•信息科技辑》 *
崔莹等: ""基于UEFI的嵌入式驱动程序的开发研究"", 《计算机工程与设计》 *
陈思扬: ""基于FPGA的NVMe接口设计"", 《中国优秀硕士学位论文全文数据库•信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920194A (zh) * 2018-06-08 2018-11-30 山东超越数控电子股份有限公司 一种国产平台bios启动ext文件***的方法
CN109814845A (zh) * 2019-01-30 2019-05-28 郑州云海信息技术有限公司 一种基于OOP编程的NVMe模型
CN116149759A (zh) * 2023-04-20 2023-05-23 深圳市吉方工控有限公司 Uefi驱动卸载方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN106990958B (zh) 一种扩展组件、电子设备及启动方法
JP6253614B2 (ja) 格納デバイスの仮想化
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
RU2568280C2 (ru) Быстрый запуск компьютера
US9858235B2 (en) Emulated legacy bus operation over a bit-serial bus
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
US8468334B1 (en) Efficient initial RAM disk creation
US20050268081A1 (en) Booting system and/or method for initializing peripherals
TW200917123A (en) USB flash disk for computer boot up and method of loading programs in the USB flash disk
KR102285275B1 (ko) 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법
CN106951268A (zh) 一种申威平台支持NVMe硬盘启动的实现方法
TWI515553B (zh) 包括可組配最大處理器電流之用於能源效率及節能之方法、裝置及系統
US20190042232A1 (en) Technologies for automatic compilation of storage offloads
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
CN114490023B (zh) 一种基于arm和fpga的高能物理可计算存储设备
US20130024602A1 (en) Universal Storage for Information Handling Systems
CN113656076A (zh) 一种基于硬件复用通道的bios启动方法及装置
US8499142B1 (en) UEFI boot loader for loading non-UEFI compliant operating systems
US20130179672A1 (en) Computer and quick booting method thereof
US20060248327A1 (en) Computer rapid boot system and method
KR20150072963A (ko) 다중시스템 및 이의 부팅 방법
Zhai et al. Decelerating suspend and resume in operating systems
US10838737B1 (en) Restoration of memory content to restore machine state
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
CN110297595B (zh) 主机存储器缓冲区配置方法、储存装置与控制电路单元

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170714