法律状态公告日
法律状态信息
法律状态
2019-06-25
授权
授权
2017-03-01
实质审查的生效 IPC(主分类):G06F9/44 申请日:20160923
实质审查的生效
2017-01-25
公开
公开
技术领域
本发明涉及一种引导申威处理器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。
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。
机译: 在多功能融合网络适配器上使用单选项ROMBIOS代码使用一种以上协议配置和引导的方法和装置
机译: 一种通过在风轮机方向上引导感应风来在快速行驶的火车内送风来发电的方法
机译: 一种调试几乎所有微处理器的嵌入式软件的快速新方法