一种基本输入输出系统间的切换方法及装置的制作方法

文档序号:6382145阅读:190来源:国知局
专利名称:一种基本输入输出系统间的切换方法及装置的制作方法
技术领域
本发明涉及电子设备技术领域,特别是涉及一种基本输入输出系统间的切换方法
及装置。
背景技术
在一个处理器系统(例如X86处理器系统)的启动过程中,需要提供一个BIOS(Basic Input/Output System,基本输入输出系统)供处理器读取配置使用。为了提高系统BIOS的可靠性,一般采用双BIOS的冗余设计,即系统中同时存在两个完全一致的BIOS,以便于当其中一个BIOS数据被破坏后,处理器可以切换到另外一个BIOS启动。现有技术中,若当前BIOS数据被破坏,处理器在由当前BIOS切换至冗余BIOS进行启动时,需要处理器先下电后上电(即下电复位)才能重新从冗余BIOS读取数据,从而正常启动。

发明内容
本发明实施例中提供了一种基本输入输出系统间的切换方法及装置,能够实现BIOS切换时无需处理器下电复位启动,使BIOS之间平滑切换。为了解决上述技术问题,本发明实施例公开了如下技术方案第一方面,提供一种基本输入输出系统间的切换方法,包括检测处理器从激活基本输入输出系统BIOS中读取的数据;当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。结合上述第一方面,在第一种可能的实现方式中,在所述将预先存储的特定地址的正确指令传输至所述处理器之前,还包括根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏;若所述激活BIOS的数据被破坏,再执行所述当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。结合上述第一方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏,包括判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ;若是全O或全1,则确定所述激活BIOS的数据被破坏。结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,若所述处理器为X86处理器,则所述预先存储的特定地址为 0x3ffff0。第二方面,提供一种基本输入输出系统间的切换装置,包括检测单元,用于检测处理器从激活基本输入输出系统BIOS中读取的数据;处理单元,用于当所述检测单元检测到所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。结合上述第二方面,在第一种可能的实现方式中,判断单元,用于在所述处理单元将预先存储的特定地址的正确指令传输至所述处理器之前,根据所述检测单元读取的数据判断所述激活BIOS的数据是否被破坏;所述处理单元,用于当所述判断单元判定所述激活BIOS的数据被破坏,且当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。结合上述第二方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述判断单元包括判断子单元,用于判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ;确定子单元,用于当所述判断子单元判定是全O或全I时,确定所述激活BIOS的数据被破坏。第三方面,提供一种处理器系统,包括处理器、逻辑器件、激活BIOS和备份BI0S,所述处理器,用于从所述激活BIOS中读取数据;所述逻辑器件,用于当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。结合上述第三方面,在第一种可能的实现方式中,所述逻辑器件,具体用于在将预先存储的特定地址的正确指令传输至所述处理器之前,根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏;若所述激活BIOS的数据被破坏,则当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。结合上述第三方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述逻辑器件,具体用于判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ;若是全O或全1,则确定所述激活BIOS的数据被破坏。结合上述第三方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,所述处理器通过外设接口与所述逻辑器件连接,所述逻辑器件通过局部总线分别与所述激活BIOS及所述备份BIOS连接。本发明实施例通过逻辑器件检测处理器从当前激活BIOS中读取的数据,在处理器读取至特定地址的指令时,由逻辑器件直接将特定地址的正确指令传输至处理器,避免了处理器进入挂起状态,从而实现了处理器无需经过上下电过程,而仅需热复位即可平滑切换到冗余备份BIOS并正常启动。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一种BIOS间切换的方法流程图;图2为本发明实施例另一种BIOS间切换方法的流程图;图3为本发明实施例中逻辑器件判断激活BIOS的数据是否被破坏的方法流程图;图4为本发明实施例中X86处理器系统的结构示意图;图5为本发明实施例一种BIOS间切换装置的结构示意图;图6为本发明实施例另一种BIOS间切换装置的结构示意图;图7为本发明实施例一种处理器系统的结构示意图。
具体实施例方式发明人发现,现有技术中若当前BIOS数据被破坏,则其中该BIOS中特定地址的指令数据会出现错误,该特定地址是跳转指令之前的地址,处理器在读取该特定地址的指令时会由于数据错误而挂起,不再继续读取BIOS数据,系统看门狗因超时触发BIOS切换,同时通过使处理器通过先下电后上电(即下电复位)的方式,使处理器从挂起状态恢复到正常状态,进而处理器重新从正常的冗余BIOS读取数据,系统正常启动。因此,在BIOS切换时,必须进行系统上下电复位才能使系统从备份BIOS正常启动。基于此,本发明实施例通过保证处理器读取的特定地址的指令正确,使处理器不再进入挂起状态,从而实现了处理器的热复位,使得处理器无需经过上下电过程即可平滑切换到冗余BI0S,正常启动。为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。参见图1,为本发明实施例一种BI OS间切换的方法流程图。该方法可以包括步骤101,检测处理器从激活BIOS中读取的数据。本实施例的执行主体可以是逻辑器件等。以逻辑器件为例,该逻辑器件可以通过数据总线等检测处理器从激活BIOS中读取的数据。步骤102,当处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至处理器,以使处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动。本实施例中,无论激活BIOS数据是否被破坏,当逻辑器件检测到处理器读取该激活BIOS中的特定地址的指令时,逻辑器件直接将预先存储或设置的特定地址的正确指令传输至处理器,这样处理器即可获得正确的数据,而不会进入挂起状态。该特定地址为跳转指令之前的地址。接下来处理器继续读取该激活BIOS数据,若该激活BIOS数据被破坏,则处理器会因为数据错误而无法正常启动,进而导致系统看门狗超时,看门狗超时触发处理器热复位,复位触发BIOS切换,这时处理器即可从切换后的正常的备份BIOS重新读取数据并正常启动。本发明实施例通过逻辑器件检测处理器从当前激活BIOS中读取的数据,在处理器读取至特定地址的指令时,由逻辑器件直接将特定地址的正确指令传输至处理器,避免了处理器进入挂起状态,从而实现了处理器无需经过上下电过程,而仅需热复位即可平滑切换到冗余备份BIOS并正常启动。参见图2,为本发明实施例另一种BIOS间切换方法的流程图。该方法可以包括步骤201,检测处理器从激活BIOS中读取的数据。该步骤与前述实施例中的步骤101类似。步骤202,根据处理器从激活BIOS中读取的数据判断激活BIOS的数据是否被破坏。本实施例与前述实施例的区别在于前述实施例中,无论激活BIOS数据是否被破坏,当逻辑器件检测到处理器读取特定地址的指令时,均向处理器传输特定地址的正确指令,而在本步骤中,逻辑器件首先判断激活BIOS数据是否被破坏,若被破坏再执行下一步骤203,若没有被破坏,则逻辑器件不执行任何操作,处理器继续读取激活BIOS数据。其中,特定地址是指跳转指令之前的地址。在另一实施例中,如图3所示,该逻辑器件判断激活BIOS的数据是否被破坏的方法可以包括步骤301,判断处理器从激活BIOS中读取的特定地址的指令之前的数据是否为全O或全I。步骤302,若是全O或全1,则确定激活BIOS的数据被破坏。如果不是全O或全1,说明激活BIOS数据没有被破坏,则逻辑器件不做任何处理,处理器正常读取激活BIOS的数据启动。步骤203,若激活BIOS的数据被破坏,则当处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至处理器。该步骤中逻辑器件在检测到处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至处理器的操作与前述实施例中的步骤102类似。本发明实施例通过逻辑器件检测处理器从当前BIOS中读取的数据,并判断该当前BIOS的数据是否被破坏,当数据被破坏时,在处理器读取至该BIOS的特定地址的指令时,由逻辑器件直接将特定地址的正确指令传输至处理器,避免了处理器进入挂起状态,从而实现了处理器无需经过上下电过程,而仅需热复位即可平滑切换到冗余备份BIOS并正常启动。以下以X86处理器为例对本发明技术方案进行说明。如图4所不,X86处理器通过SPI (Serial Peripheral Interface,串行外设接口)总线与逻辑器件连接,逻辑器件通过数据总线分别于激活BIOS和备份BIOS连接。两个BIOS即可以存储于同一片Flash (闪存),也可以分别存储于两片Flash。X86处理器在平台复位信号pltrst#解复位时,开始从SPI总线读取激活BIOS的数据,逻辑器件中的逻辑通过检测Flash总线读取的数据来判断当前激活BIOS数据是否被破坏。逻辑器件检测处理器在特定地址的指令之前读取的总线数据是否全O或全1,用以判断激活BIOS数据是否被破坏,如果不是全O或全1,说明激活BIOS数据没有被破坏,则不做任何处理,处理器正常读取激活BIOS指令启动;如果是全O或全1,则表明激活BIOS数据被破坏。其中,特定地址为跳转指令之前的地址。逻辑器件判断当处理器读到特定地址的指令时,逻辑替换该地址的总线数据为逻辑器件内部事先设计好的、正确的特定地址指令,并将其传给处理器,目前x86处理器的特定地址为0x3ffff0,这样处理器读到的是逻辑提供的正确指令,而不是从激活BIOS中读取的被破坏的指令,从而使得处理器不进入挂起的hold状态。接下来处理器继续读取被破坏的激活BIOS数据,并因数据错误无法正常启动导致看门狗超时,看门狗超时触发系统热复位,复位触发BIOS切换,这时处理器即可从切换后的正常备份BIOS重新读取数据正常启动,从而解决了处理器需要上下电复位的问题。其他架构的处理器系统(比如MIPS、PowerPC、ARM等)如果也存在类似情况,即启动过程中读取的特定地址的指令正确才能不进入挂起状态,则也可以采用本发明方案解决这种挂起问题。该特定地址可以为跳转指令之前的地址。本发明通过逻辑判断BIOS数据是否被破坏,巧妙地逻辑控制处理器读取的特定地址的指令为逻辑提供的正确指令,以替换从BIOS中读取的被破坏的指令,使处理器不进入挂起状态,解决了因BIOS数据被破坏引起的双BIOS切换时处理器必须下电上电复位才能正常从新BIOS启动的问题。参见图5,为本发明实施例一种BIOS间切换装置的结构示意图。该装置可以包括检测单元501,用于检测处理器从激活基本输入输出系统BIOS中读取的数据;处理单元502,用于当所述检测单元501检测到所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。本发明实施例中该装置通过上述单元检测处理器从当前BIOS中读取的数据,在处理器读取至特定地址的指令时,由逻辑器件直接将特定地址的正确指令传输至处理器,避免了处理器进入挂起状态,实现了处理器无需经过上下电过程即可平滑切换到冗余BIOS并正常启动。参见图6,为本发明实施例另一种BIOS间切换装置的结构示意图。该装置除了可以包括检测单元601、处理单元602之外,还可以包括判断单元603。其中,检测单元601与前述实施例中的检测单元501类似。判断单元603,用于在所述处理单元602将预先存储的特定地址的正确指令传输至所述处理器之前,根据所述检测单元601读取的数据判断所述激活BIOS的数据是否被破坏。处理单元602,用于当所述判断单元603判定所述激活BIOS的数据被破坏,且当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。该特定地址为跳转指令之前的地址。
其中,判断单元603还可以进一步包括判断子单元,用于判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I。确定子单元,用于当所述判断子单元判定是全O或全I时,确定所述激活BIOS的数据被破坏。本发明实施例中该装置通过上述单元检测处理器从当前BIOS中读取的数据,并判断该当前BIOS的数据是否被破坏,当数据被破坏时,在处理器读取至特定地址的指令时,由逻辑器件直接将特定地址的正确指令传输至处理器,避免了处理器进入挂起状态,实现了处理器无需经过上下电过程即可平滑切换到冗余BIOS并正常启动。参见图7,为本发明实施例一种处理器系统的结构示意图。该系统可以包括处理器701、逻辑器件702、激活BI0S703和备份BI0S704。处理器701,用于从激活BI0S703中读取数据;逻辑器件702,用于当所述处理器701读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至处理器701,以使所述处理器701不进入挂起状态,并在热复位后切换至备份BI0S704系统进行启动。该特定地址为跳转指令之前的地址。逻辑器件702,具体还可以用于在将预先存储的特定地址的正确指令传输至所述处理器之前,根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏;若所述激活BIOS的数据被破坏,则当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。逻辑器件702具体用于判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ;若是全O或全I,则确定所述激活BIOS的数据被破坏。处理器701可以通过外设接口与逻辑器件702连接,逻辑器件702通过局部总线分别与激活BI0S703及所述备份BI0S704连接。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(R0M,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种基本输入输出系统间的切换方法,其特征在于,包括 检测处理器从激活基本输入输出系统BIOS中读取的数据; 当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。
2.根据权利要求1所述的方法,其特征在于,在所述将预先存储的特定地址的正确指令传输至所述处理器之前,还包括 根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏; 若所述激活BIOS的数据被破坏,再执行所述当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。
3.根据权利要求2所述的方法,其特征在于,所述根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏,包括 判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ; 若是全O或全1,则确定所述激活BIOS的数据被破坏。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,若所述处理器为X86处理器,则所述预先存储的特定地址为0x3ffff0。
5.一种基本输入输出系统间的切换装置,其特征在于,包括 检测单元,用于检测处理器从激活基本输入输出系统BIOS中读取的数据; 处理单元,用于当所述检测单元检测到所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。
6.根据权利要求5所述的装置,其特征在于,还包括 判断单元,用于在所述处理单元将预先存储的特定地址的正确指令传输至所述处理器之前,根据所述检测单元读取的数据判断所述激活BIOS的数据是否被破坏; 所述处理单元,用于当所述判断单元判定所述激活BIOS的数据被破坏,且当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。
7.根据权利要求6所述的装置,其特征在于,所述判断单元包括 判断子单元,用于判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ; 确定子单元,用于当所述判断子单元判定是全O或全I时,确定所述激活BIOS的数据被破坏。
8.一种处理器系统,其特征在于,包括处理器、逻辑器件、激活BIOS和备份BIOS, 所述处理器,用于从所述激活BIOS中读取数据; 所述逻辑器件,用于当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。
9.根据权利要求8所述的处理器系统,其特征在于,所述逻辑器件,具体用于在将预先存储的特定地址的正确指令传输至所述处理器之前,根据所述处理器从所述激活BIOS中读取的数据判断所述激活BIOS的数据是否被破坏;若所述激活BIOS的数据被破坏,则当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器。
10.根据权利要求9所述的处理器系统,其特征在于, 所述逻辑器件,具体用于判断所述处理器从所述激活BIOS中读取的所述特定地址的指令之前的数据是否为全O或全I ;若是全O或全1,则确定所述激活BIOS的数据被破坏。
11.根据权利要求8至10中任意一项所述的处理器系统,其特征在于,所述处理器通过外设接口与所述逻辑器件连接,所述逻辑器件通过局部总线分别与所述激活BIOS及所述备份BIOS连接。
全文摘要
本发明实施例公开了一种基本输入输出系统间的切换方法及装置。该方法包括检测处理器从激活基本输入输出系统BIOS中读取的数据;当所述处理器读取到特定地址的指令时,将预先存储的特定地址的正确指令传输至所述处理器,以使所述处理器不进入挂起状态,并在热复位后切换至备份BIOS进行启动,其中,所述特定地址为跳转指令之前的地址。本发明实施例通过逻辑器件检测处理器从当前激活BIOS中读取的数据,在处理器读取至特定地址的指令时,由逻辑器件直接将特定地址的正确指令传输至处理器,避免了处理器进入挂起状态,从而实现了处理器无需经过上下电过程,而仅需热复位即可平滑切换到冗余备份BIOS并正常启动。
文档编号G06F9/445GK103034511SQ20121048288
公开日2013年4月10日 申请日期2012年11月23日 优先权日2012年11月23日
发明者杨安林 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1