CN106951268A - 一种申威平台支持NVMe硬盘启动的实现方法 - Google Patents
一种申威平台支持NVMe硬盘启动的实现方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor 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硬盘启动的实现方法,属于申威处理器计算机***设计技术领域。
背景技术
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控制器上。
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)
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)
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硬盘背板功能测试方法 |
-
2017
- 2017-03-31 CN CN201710206847.9A patent/CN106951268A/zh active Pending
Patent Citations (4)
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)
Title |
---|
刘烈超: ""基于NAND闪存的固态存储***设计及优化"", 《中国优秀硕士学位论文全文数据库•信息科技辑》 * |
崔莹等: ""基于UEFI的嵌入式驱动程序的开发研究"", 《计算机工程与设计》 * |
陈思扬: ""基于FPGA的NVMe接口设计"", 《中国优秀硕士学位论文全文数据库•信息科技辑》 * |
Cited By (3)
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 |