传感器开发平台
直播中

周梦斌

7年用户 156经验值
私信 关注

适用于x86架构的快速启动步骤是什么?

x86架构通常会唤起人们对家用电脑或企业服务器的思索。这并不出人意料,因为x86处理器的功耗通常较大。最近,英特尔公司开始以嵌入式、低功耗和低成本市场为目标,并推出了基于x86架构的英特尔Atom处理器。该处理器允许开发人员利用现有的x86技术和工具为工业自动化、医疗器械领域和其他市场提供嵌入式解决方案。

回帖(1)

李昕一

2020-3-20 11:35:47
简介

x86架构通常会唤起人们对家用电脑或企业服务器的思索。这并不出人意料,因为x86处理器的功耗通常较大。最近,英特尔公司开始以嵌入式、低功耗和低成本市场为目标,并推出了基于x86架构的英特尔Atom处理器。该处理器允许开发人员利用现有的x86技术和工具为工业自动化、医疗器械领域和其他市场提供嵌入式解决方案。
除功耗较大以外,x86架构作为嵌入式平台竞争产品的最大缺点是启动时间过长。通常,x86系统需依赖被称为BIOS的启动固件,由其确保广泛的设备兼容性,并在系统启动时检测系统配置情况。但这些兼容性对嵌入式应用程序的要求都不高。嵌入式解决方案通常要求适用且用途明确、大量生产的每一台设备都具有完全相同的配置。
本文会为您阐释令BIOS系统如此缓慢而快速启动技术如此迅捷的原因。还将带您回顾允许开发人员依靠少量BIOS启动系统的快速启动技术。
BIOS启动时间
BIOS系统可被看作一种负责与硬件进行接口连接的微型操作系统。BIOS系统对启动时间影响最显著的部分是启动代码。该代码通常在系统通电时执行,同时检测系统的附属设备并对其进行初始化。
需要BIOS初始化的设备包括键盘、鼠标、中断控制器、显卡、CPU、高速缓存、随机存储器、PCI设备、USB设备、传感器和磁盘驱动器。除了检测并初始化每台设备外,BIOS系统还必须处理内存数量(如随机存储器)或功能(如针对64位寻址的CPU支持)的变化情况。BIOS系统必须针对具有BIOS扩展只读存储器的每台设备执行启动代码扩充。所有这些过程都需要耗费不少时间,而嵌入式设备启动通常不需要这么久,因为其往往具有固定的配置。
从BIOS启动,使得系统设计可以支持范围广泛的硬件配置和设备,但这种灵活性是以缓慢的启动时间为代价的。由于嵌入式系统通常包含固定的硬件配置,因此它不必付出这种代价。
快速启动时间
BIOS启动时间较长,因为BIOS需要支持大量硬件配置。一种明显的解决方案是,删除特定嵌入式应用程序不需要的BIOS启动部分。这在很大程度上足以将几秒的启动时间压缩在一秒以内。
为进一步加快启动,开发人员可对中断指定进行硬编码,从线性寻址储存设备(EEPROM或闪存)启动,并使资源分配延迟。
快速启动之所以快捷,主要是因为它不必完成多项任务;这种启动方式非常适合嵌入式应用程序,因为它通常能顺利地完成一项或几项任务。
定制启动
通过自定义启动顺序,开发人员能避免BIOS启动时执行的不必要的步骤。开发人员还能延迟启动时不需要的步骤,直到真正需要时为止。
在基于BIOS的系统中,BIOS会指定并配置中断;在快速启动的配置情况下,开发人员负责路由中断。要加快启动时间,最具成本效益的方法是对中断指定进行硬编码,以便其在编译时处于已知状态。这种方法提供了一种简单有效的途径,以加快系统启动时间并减少了启动代码的复杂性。它还允许开发人员以改善系统性能的方式指定中断。例如,开发人员能为高流量中断提供专用通道,并在低流量中断中共享中断线路。在多个设备中共享中断请求(IRQs)会导致针对所有设备(与触发中断有关)执行中断服务例程时的运行成本增加,无论实际是何种设备触发中断的。
PCI资源分配不会在系统启动时进行,可以延迟到驱动程序需要访问PCI总线上的设备时进行。内存与输入/输出资源都能在系统启动后分配;资源要求是通过探测PCI设备获取的。PCI中断与ISA中断非常相似,它们都是由开发人员进行配置的,这样在编译时,中断指定就会处于已知状态。
从线性映射设备(如闪存或EEPROM)启动有助于加快启动时间并能通过避免读取磁盘图像所需的缓慢的BIOS调用,以减少启动代码的复杂性。快速启动载入程序的最后一步包括将操作系统图形载入到随机存储器内并开始运行操作系统。

图1 研华公司的SOM-6761 COM-Express板卡是几种基于Intel Atom处理器,并且可以支持QNX的快速启动技术的嵌入式平台之一

如图2所示,启动过程包括两个阶段:
1. 初始程序载入程序(IPL)阶段——处理基本的初始化、定位操作系统图像、复制操作系统图像的的启动部分并跳转。
2. 启动阶段——完成硬件初始化、将其余操作系统图像复制到随机存储器中并写入操作系统数据结构。
现在开发人员必须执行BIOS系统之前处理的步骤;这有利于开发人员挑选需完成的任务,不利情况是会占用开发人员的时间。

图2 启动过程

快速启动与BIOS通用性
完全自定义启动载入程序,意味着开发人员必须按与BIOS运行完全一致的方式完成某些任务。例如,开发人员需要初始化内存控制器、CPU和高速缓存,确保访问高端内存并进入保护模式。快速启动载入程序完成这些步骤的速度不会比BIOS系统更快。
快速启动BIOS
本文着重介绍了完全基于BIOS的系统启动和完全定制的系统启动(基于快速启动程序)。快速启动方式会显著占用开发人员的时间,除非板卡供应商或操作系统供应商已执行该操作。英特尔公司的研究人员已探索了许多方法,以减少基于BIOS的系统启动时间。他们公布了题为《快速启动BIOS》的白皮书,列举了几种优化系统启动时间的方法。其中一些建议包括定制满足具体嵌入式系统要求的BIOS系统,这与“定制启动”部分的建议非常相似,其他建议则着重系统优化,如利用英特尔的SpeedStep技术,帮助在BIOS和快速启动配置情况下,减少系统的启动时间。
英特尔公司《快速启动BIOS》白皮书中建议的系统优化方法无需占用开发人员的时间,足以满足某些嵌入式应用程序的要求,并合理地实现减少系统启动时间和减轻开发员工作负担之间的最佳平衡。
结论
基于快速启动程序的系统启动速度明显快于基于BIOS的系统启动速度,因为设计人员能根据已知的与嵌入式应用程序有关的硬件配置,选择或去除不必要的启动步骤。
基于英特尔Atom处理器的平台所定位的嵌入式应用程序,不需要基于BIOS系统的多功能性,因此毫无意义的增加启动时间成本显然很浪费。但停用BIOS系统并不像关闭电源那样简单。相反,开发人员需要尽力完成通常由BIOS系统负责处理的启动步骤。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分