CN106354514A - 一种快速引导申威处理器bios的方法 - Google Patents
一种快速引导申威处理器bios的方法 Download PDFInfo
- Publication number
- CN106354514A CN106354514A CN201610844501.7A CN201610844501A CN106354514A CN 106354514 A CN106354514 A CN 106354514A CN 201610844501 A CN201610844501 A CN 201610844501A CN 106354514 A CN106354514 A CN 106354514A
- Authority
- CN
- China
- Prior art keywords
- controller
- srom
- bios
- processor
- guiding
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012423 maintenance Methods 0.000 claims abstract description 33
- 238000003860 storage Methods 0.000 claims abstract description 22
- 230000005055 memory storage Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000007306 functionalization reaction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种快速引导申威处理器BIOS的方法,通过FPGA实现,在FPGA中设计如下控制器:维护接口控制器、加载SROM控制器、写内存控制器、开机引导控制器、PCIE控制器、存储控制器,所述方法包括以下步骤:复位;初始化操作;查询初始化状态;加载SROM控制器启动;加载完SROM后,运行SROM,并等待SROM初始化内存;查询初始化内存状态;写内存控制器启动;加载完HMCODE和BIOS后,启动BIOS。本发明通过被动式加快引导申威处理器计算机的BIOS,简化了引导流程,提高了引导速度,简化了硬件电路,节约了硬件成本。
Description
技术领域
本发明涉及一种引导申威处理器BIOS的方法,尤其涉及一种基于被动式引导的快速引导申威处理器BIOS的方法。
背景技术
申威处理器是由上海高性能集成电路设计中心制造的中国国产高性能处理器,具有完全自主知识产权。
申威处理器使用了百熬软件的中国国产平台BIOS,申威处理器引导BIOS需要经过三个步骤:运行SROM、导入HMCODE、运行BIOS。一般x86主板BIOS的快速启动,是通过不显示LOGO减少BIOS运行时间以达到快速启动的目的。
为了便于理解,下面首先对申威处理器所涉及的一些软硬件内容进行说明:
BIOS:英文全称Basic Input Output System,它是一组固化到计算机内主板上一个ROM芯片上的程序,包括基本输入输出的程序、开机后自检程序和系统自启动程序;
LPC总线:一种基于Intel标准的33MHz 4bit并行总线协议;
SROM:申威处理器特有的在BIOS启动之前的初始代码;
HMCODE:申威处理器特有的在BIOS启动之前的初始代码;
uC/OS II:uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核;
维护接口:一种与申威处理器交互的专用串行接口。
目前,引导申威处理器BIOS的常用方法也是优选方法,是上海高性能集成电路设计中心推出的申威处理器引导系统所涉及的引导方法(简称“上海高性能方案”),其方案如下:
硬件框图如图1,上海高性能方案中申威处理器通过PCIE转PCI转LPC接口主动从FPGA读取HMCODE和BIOS,在FPGA中嵌入的uC/OS II系统负责加载SROM并读取HMCODE和BIOS。
上海高性能方案主动引导流程如图2所示,处理器上电复位后,uC/OS II系统通过维护接口加载SROM,处理器运行SROM后由SROM引导通过南桥读HMCODE,uC/OS II系统把读取的HMCODE返回给南桥;读完HMCODE后再由SROM引导通过南桥读BIOS,uC/OS II系统把读取的BIOS返回给南桥。读取HMCODE和BIOS的流程如图3所示,首先向uC/OS II系统请求读取128字节,查询到uC/OS II系统从FLASH中把读取128字节放入缓存后读取128字节,再请向uC/OS II系统请求读取128字节以此下去直至读完;读完HMCODE和BIOS后SROM引导启动BIOS。
上海高性能方案的缺点是:通过uC/OS II系统加载SROM速度慢;由SROM主动引导通过南桥LPC接口读取HMCODE和BIOS流程复杂读取速度慢;硬件复杂,并且uC/OS II系统占用了大量的FPGA逻辑资源,成本高。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于被动式引导的快速引导申威处理器BIOS的方法。
本发明通过以下技术方案来实现上述目的:
一种快速引导申威处理器BIOS的方法,通过FPGA实现,在所述FPGA中设计如下控制器:
维护接口控制器:用于发送不同的维护包以实现对处理器的控制,包括复位、加载SROM、请求获取运行状态,同时通过解析接收到的维护包获取处理器的运行状态;
加载SROM控制器:用于读取SROM并把SROM发送到维护接口控制器,内设环形缓冲区,环形缓冲区由8个块组成,每个块有128字节存储空间,编号分别为0、1、2…7;
写内存控制器:用于读取HMCODE和BIOS并发送到PCIE控制器;由于PCIE传输速度快,读取HMCODE或BIOS后不经过缓存直接发送到PCIE控制器;PCIE即PCIExpress,是新一代的总线接口;
开机引导控制器:内设一个开机状态机,用于调配其它所有控制器完成开机引导,SROM程序中设计有一套与开机引导控制器交互的协议,SROM能够通知开机引导控制器内存已初始化,开机引导控制器能够通知SROM引导BIOS;
PCIE控制器:与写内存控制器连接,用于为写内存控制器写数据到处理器内存提供一个快速通道;
存储控制器:用于存取外部存储器中的数据;
所述方法包括以下步骤:
(1)开机引导控制器对处理器进行复位;
(2)开机引导控制器通过维护接口控制器对处理器进行初始化操作;
(3)开机引导控制器查询处理器初始化状态,并实时判断是否运行到等待加载SROM状态,如果是,则进入下一步骤,如果否,则继续查询处理器初始化状态;
(4)开机引导控制器触发启动加载SROM控制器开始加载SROM;加载SROM控制器启动后,通过存储控制器从外部存储器读取SROM,每次读取128字节依次快速写入到环形缓冲区的8个块中,写入顺序按照编号顺序从0号块依次写入,只要有空块就继续写入,写满7号块后再从0号块开始循环,同时,加载SROM控制器在写满0号块后把写入的128字节读取出来发送到维护接口控制器中,等待维护接口控制器指示发送成功后进行下一次读取,读取顺序也按照编号顺序循环进行;
(5)加载完SROM后,开机引导控制器再通过维护接口控制器引导处理器运行SROM,并等待SROM初始化内存;
(6)开机引导控制器查询初始化内存状态,并实时判断是否完成初始化内存,如果是,则进入下一步骤,如果否,则继续查询初始化内存状态;
(7)开机引导控制器触发启动写内存控制器;写内存控制器启动后首先通过存储控制器从外部存储器读取HMCODE,把HMCODE和相应的目的地址发送给PCIE控制器,完成HMCODE加载后再读取BIOS,把BIOS和相应的目的地址发送给PCIE控制器;
(8)在写内存控制器加载完HMCODE和BIOS后,开机引导控制器再通过维护接口控制器发送命令启动BIOS。
优选地,所述步骤(7)中,写内存控制器读取HMCODE和BIOS后,不经过缓存直接发送到PCIE控制器。
本发明的有益效果在于:
本发明通过被动式加快引导申威处理器计算机的BIOS,简化了引导流程,解决申威处理器计算机开机过多的等待时间,不仅提高了引导速度,也节约了硬件成本;采用本方法启动申威处理器,启动时间由传统30秒最少变为7秒,显著缩短了启动时间,如果申威处理器计算机用在国防等关键领域上,其重要程度非常大;另外,本发明去掉了uC/OS II系统,在申威处理器开发使用中减少一块软件维护系统和成本,同时大幅精简了FPGA逻辑资源,简化硬件电路,减少了硬件成本。
附图说明
图1是上海高性能方案采用的硬件框图;
图2是上海高性能方案采用的主动引导流程图;
图3是上海高性能方案采用的读HMCODE、BIOS的流程图;
图4是本发明所述快速引导申威处理器BIOS的方法采用的硬件框图;
图5是本发明所述维护接口控制器的功能化框图;
图6是本发明所述加载SROM控制器的结构框图;
图7是本发明所述快速引导申威处理器BIOS的方法的流程图。
具体实施方式
下面结合附图对本发明作进一步说明:
如图4、图5和图6所示,本发明所述快速引导申威处理器BIOS的方法,通过FPGA(现场可编程门阵列)实现,在所述FPGA中设计如下控制器:
维护接口控制器:用于发送不同的维护包以实现对处理器的控制,包括复位、加载SROM、请求获取运行状态,同时通过解析接收到的维护包获取处理器的运行状态;如图5所示,维护接口控制器将FPGA中其它控制器的数据先组包、再串并转换后发送给维护接口,将维护接口的数据先并串转换、再解析包后发送给FPGA中的其它控制器;维护接口是与申威处理器交互的一种串行接口,维护接口传输时钟使用25MHZ,这是处理器支持的最大传输速度。
加载SROM控制器:用于读取SROM并把SROM发送到维护接口控制器,由于发送到维护接口控制器的速度受限于维护接口的传输速度,读取SROM可以实现比维护接口传输更大的速度,为了匹配两者速度,如图6所示,加载SROM控制器中设计了环形缓冲区(也称“BUFFER环”),环形缓冲区由8个块组成,每个块有128字节存储空间,编号分别为0、1、2…7;加载SROM控制器中还设计了加载控制单元,用于调控加载的速度使加载SROM过程不间断达到维护接口传输的最快速度;
写内存控制器:用于读取HMCODE和BIOS并发送到PCIE控制器;由于PCIE传输速度快,读取HMCODE或BIOS后可以不经过缓存直接发送到PCIE控制器。
开机引导控制器:内设一个开机状态机,用于调配其它所有控制器完成开机引导,SROM程序中设计有一套与开机引导控制器交互的协议,SROM能够通知开机引导控制器内存已初始化,开机引导控制器能够通知SROM引导BIOS;
PCIE控制器:与写内存控制器连接,用于为写内存控制器写数据到处理器内存提供一个快速通道,本发明中使用XILINX公司IP核设计;
存储控制器:用于存取外部存储器中的数据,外部存储器可以是FLASH,也可以PROM或其它存储介质,不同的外部存储器对应的存储控制器也不同,在此存储控制器不作特别限定;
上述结构中,各控制器之间有数据传输需求的就有相应的数据线连接,具体的数据传输如图4中箭头所示;
结合图4-图7,本发明所述方法包括以下步骤:
(1)开机引导控制器对处理器进行复位;
(2)开机引导控制器通过维护接口控制器对处理器进行初始化操作;
(3)开机引导控制器查询处理器初始化状态,并实时判断是否运行到等待加载SROM状态,如果是,则进入下一步骤,如果否,则继续查询处理器初始化状态;
(4)开机引导控制器触发启动加载SROM控制器开始加载SROM;加载SROM控制器启动后,通过存储控制器从外部存储器读取SROM,每次读取128字节依次快速写入到环形缓冲区的8个块中,写入顺序按照编号顺序从0号块依次写入,只要有空块就继续写入,写满7号块后再从0号块开始循环,同时,加载SROM控制器在写满0号块后把写入的128字节读取出来发送到维护接口控制器中,等待维护接口控制器指示发送成功后进行下一次读取,读取顺序也按照编号顺序循环进行;
(5)加载完SROM后,开机引导控制器再通过维护接口控制器引导处理器运行SROM,并等待SROM初始化内存;
(6)开机引导控制器查询初始化内存状态,并实时判断是否完成初始化内存,如果是,则进入下一步骤,如果否,则继续查询初始化内存状态;
(7)开机引导控制器触发启动写内存控制器;写内存控制器启动后首先通过存储控制器从外部存储器读取HMCODE,把HMCODE和相应的目的地址不经过缓存直接发送给PCIE控制器,完成HMCODE加载后再读取BIOS,把BIOS和相应的目的地址不经过缓存直接发送给PCIE控制器;
(8)在写内存控制器加载完HMCODE和BIOS后,开机引导控制器再通过维护接口控制器发送命令启动BIOS。
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。
Claims (2)
1.一种快速引导申威处理器BIOS的方法,通过FPGA实现,其特征在于:
在所述FPGA中设计如下控制器:
维护接口控制器:用于发送不同的维护包以实现对处理器的控制,包括复位、加载SROM、请求获取运行状态,同时通过解析接收到的维护包获取处理器的运行状态;
加载SROM控制器:用于读取SROM并把SROM发送到维护接口控制器,内设环形缓冲区,环形缓冲区由8个块组成,每个块有128字节存储空间,编号分别为0、1、2…7;
写内存控制器:用于读取HMCODE和BIOS并发送到PCIE控制器;
开机引导控制器:内设一个开机状态机,用于调配其它所有控制器完成开机引导,SROM程序中设计有一套与开机引导控制器交互的协议,SROM能够通知开机引导控制器内存已初始化,开机引导控制器能够通知SROM引导BIOS;
PCIE控制器:与写内存控制器连接,用于为写内存控制器写数据到处理器内存提供一个快速通道;
存储控制器:用于存取外部存储器中的数据;
所述方法包括以下步骤:
(1)开机引导控制器对处理器进行复位;
(2)开机引导控制器通过维护接口控制器对处理器进行初始化操作;
(3)开机引导控制器查询处理器初始化状态,并实时判断是否运行到等待加载SROM状态,如果是,则进入下一步骤,如果否,则继续查询处理器初始化状态;
(4)开机引导控制器触发启动加载SROM控制器开始加载SROM;加载SROM控制器启动后,通过存储控制器从外部存储器读取SROM,每次读取128字节依次快速写入到环形缓冲区的8个块中,写入顺序按照编号顺序从0号块依次写入,只要有空块就继续写入,写满7号块后再从0号块开始循环,同时,加载SROM控制器在写满0号块后把写入的128字节读取出来发送到维护接口控制器中,等待维护接口控制器指示发送成功后进行下一次读取,读取顺序也按照编号顺序循环进行;
(5)加载完SROM后,开机引导控制器再通过维护接口控制器引导处理器运行SROM,并等待SROM初始化内存;
(6)开机引导控制器查询初始化内存状态,并实时判断是否完成初始化内存,如果是,则进入下一步骤,如果否,则继续查询初始化内存状态;
(7)开机引导控制器触发启动写内存控制器;写内存控制器启动后首先通过存储控制器从外部存储器读取HMCODE,把HMCODE和相应的目的地址发送给PCIE控制器,完成HMCODE加载后再读取BIOS,把BIOS和相应的目的地址发送给PCIE控制器;
(8)在写内存控制器加载完HMCODE和BIOS后,开机引导控制器再通过维护接口控制器发送命令启动BIOS。
2.根据权利要求1所述的快速引导申威处理器BIOS的方法,其特征在于:所述步骤(7)中,写内存控制器读取HMCODE和BIOS后,不经过缓存直接发送到PCIE控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610844501.7A CN106354514B (zh) | 2016-09-23 | 2016-09-23 | 一种快速引导申威处理器bios的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610844501.7A CN106354514B (zh) | 2016-09-23 | 2016-09-23 | 一种快速引导申威处理器bios的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106354514A true CN106354514A (zh) | 2017-01-25 |
CN106354514B CN106354514B (zh) | 2019-06-25 |
Family
ID=57858376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610844501.7A Active CN106354514B (zh) | 2016-09-23 | 2016-09-23 | 一种快速引导申威处理器bios的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354514B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111279311A (zh) * | 2017-11-17 | 2020-06-12 | 英特尔公司 | 用于计算平台初始化的技术 |
CN113986317A (zh) * | 2021-10-21 | 2022-01-28 | 江苏域固威芯科技有限公司 | 一种bmc基于固件升级安全更新主板bios版本的方法 |
CN117076365A (zh) * | 2023-10-13 | 2023-11-17 | 成都申威科技有限责任公司 | 一种计算机的数据可传输外设接口控制方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711675B1 (en) * | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
CN104657233A (zh) * | 2015-01-28 | 2015-05-27 | 加弘科技咨询(上海)有限公司 | 一种x86系统中bios引导块的恢复备份方法及备份系统 |
CN105138080A (zh) * | 2015-09-11 | 2015-12-09 | 山东超越数控电子有限公司 | 一种基于申威410处理器的便携式计算机 |
-
2016
- 2016-09-23 CN CN201610844501.7A patent/CN106354514B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711675B1 (en) * | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
CN104657233A (zh) * | 2015-01-28 | 2015-05-27 | 加弘科技咨询(上海)有限公司 | 一种x86系统中bios引导块的恢复备份方法及备份系统 |
CN105138080A (zh) * | 2015-09-11 | 2015-12-09 | 山东超越数控电子有限公司 | 一种基于申威410处理器的便携式计算机 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111279311A (zh) * | 2017-11-17 | 2020-06-12 | 英特尔公司 | 用于计算平台初始化的技术 |
CN111279311B (zh) * | 2017-11-17 | 2025-04-29 | 英特尔公司 | 用于计算平台初始化的技术 |
CN113986317A (zh) * | 2021-10-21 | 2022-01-28 | 江苏域固威芯科技有限公司 | 一种bmc基于固件升级安全更新主板bios版本的方法 |
CN117076365A (zh) * | 2023-10-13 | 2023-11-17 | 成都申威科技有限责任公司 | 一种计算机的数据可传输外设接口控制方法及系统 |
CN117076365B (zh) * | 2023-10-13 | 2024-01-30 | 成都申威科技有限责任公司 | 一种计算机的数据可传输外设接口控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106354514B (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jacobsen et al. | RIFFA 2.1: A reusable integration framework for FPGA accelerators | |
KR102593583B1 (ko) | Ssd들 상에서의 가속된 데이터 처리를 위한 시스템 및 방법 | |
CN106293843B (zh) | 一种数据加载系统 | |
KR20210011451A (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
KR101775569B1 (ko) | 가상 재시도 큐 | |
CN106201349A (zh) | 一种在物理主机中处理读/写请求的方法和装置 | |
CN108121672A (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
CN106020425A (zh) | 一种fpga异构加速计算系统 | |
CN104881388A (zh) | 基于fpga的usb 3.0接口模块 | |
CN101000597A (zh) | 一种基于AMBA总线的嵌入式Java处理器IP核 | |
CN111984559B (zh) | 用于数据传送的系统及存储器装置 | |
Tseng et al. | Gullfoss: Accelerating and simplifying data movement among heterogeneous computing and storage resources | |
CN106354514A (zh) | 一种快速引导申威处理器bios的方法 | |
CN102841870A (zh) | 基于高速串行总线的通用dma结构及预读方法 | |
CN109426623A (zh) | 一种读取数据的方法及装置 | |
CN105607874B (zh) | Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器 | |
CN109739785A (zh) | 多核系统的内连线结构 | |
US10203962B2 (en) | Tigersharc DSP boot management chip and method | |
CN102591817A (zh) | 一种多总线桥控制器及其实现方法 | |
CN102467472A (zh) | SoC芯片的BOOT启动装置和SoC芯片 | |
CN101751268B (zh) | 主板、储存装置及其控制器与开机方法 | |
CN114490023A (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN106951268A (zh) | 一种申威平台支持NVMe硬盘启动的实现方法 | |
CN115202808B (zh) | 一种用于虚拟化环境中片上系统的dma方法及系统 | |
Molgaard | A Simple Approach to Implementing Computational Storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |