CN100557585C - 系统控制器、数据处理器以及输入输出请求控制方法 - Google Patents
系统控制器、数据处理器以及输入输出请求控制方法 Download PDFInfo
- Publication number
- CN100557585C CN100557585C CNB2007101025449A CN200710102544A CN100557585C CN 100557585 C CN100557585 C CN 100557585C CN B2007101025449 A CNB2007101025449 A CN B2007101025449A CN 200710102544 A CN200710102544 A CN 200710102544A CN 100557585 C CN100557585 C CN 100557585C
- Authority
- CN
- China
- Prior art keywords
- system controller
- input
- storage unit
- output request
- data processor
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2284—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
Abstract
本发明提供一种系统控制器、数据处理器以及输入输出请求控制方法,所述系统控制器包括:地址映射存储单元,用于存储地址映射,所述地址映射包括用于对同一数据处理器内安装的FWH进行访问的映射区域;以及目标确定单元,用于在从CPU接收输入输出请求时,将所述输入输出请求中包含的地址与地址映射相比较,并且如果在与没有本地连接到所述系统控制器的FWH相对应的区域中包含所述地址,那么将所述输入输出请求传送到安装在所述数据处理器中的其它系统控制器。
Description
技术领域
本发明涉及系统控制器、数据处理器以及输入输出请求控制方法,更具体地,涉及这样的系统控制器、数据处理器以及输入输出请求控制方法,即使数据处理器上安装的多个固件中心的一部分出现故障,其仍然能够正常运行数据处理器。
背景技术
通常,在诸如服务器或个人计算机的数据处理器中,固件中心(FirmwareHub,下文称为“FWH”)中存储固件,例如,基本输入输出系统(BIOS)程序和上电自检(POST)程序,BIOS程序是启动操作系统(OS)和控制多种设备的软件,POST程序在电力启动期间检查在多种设备中出现的任何异常(例如,参见国际公开小册子No.03/083664)。
在数据处理器启动期间,中央处理器(CPU)读取存储在FWH中的BIOS程序和POST程序。例如,在一种数据处理器中,利用由系统控制器控制的物理地址映射中的预定区域来映射FWH内的存储区。CPU访问预定区域来读取BIOS程序和POST程序。
但是,由于近来对提高性能和实用性的需要,数据处理器得到广泛应用,其包括多个能够执行计算处理的已安装主板(下文称为“主板(SB)”)。使用总线或开关连接主板,以使数据处理器运行。
具有上述结构的数据处理器包括用于每个主板的FWH。但是,如果在每个主板的FWH的内容中出现不一致或者如果部分主板的FWH的内容损坏,那么整个数据处理器或者部分主板不能正常启动,因此导致在数据处理系统的运行中出现明显干扰。
发明内容
本发明的一个目的在于至少部分解决传统技术中的问题。
根据本发明的一个方案,提供一种系统控制器,用于控制从数据处理器的中央处理器(CPU)和其它系统控制器中的任一个接收的输入输出请求,其中所述数据处理器安装有所述系统控制器和所述其它系统控制器,并且所述中央处理器与所述系统控制器位于相同主板上,而所述其它系统控制器与所述系统控制器位于不同主板上,所述系统控制器包括:地址映射存储单元,用于存储地址映射,在所述地址映射中映射用于对存储有固件的存储单元进行访问的区域;以及目标确定单元,用于将从所述CPU接收的输入输出请求中包含的地址与所述地址映射存储单元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元,以及如果所述地址包含在与没有本地连接到所述系统控制器的存储单元相对应的区域中,那么将所述输入输出请求传送到位于所述不同主板上的其它系统控制器。
根据本发明的另一个方案,提供一种数据处理器,包括多个主板,每个主板包括中央处理器(CPU)、存储有固件的存储单元以及系统控制器,每个系统控制器包括:地址映射存储单元,用于存储地址映射,在所述地址映射中映射用于对所述数据处理器中的存储单元进行访问的区域;以及目标确定单元,用于将从自身的CPU接收的输入输出请求中包含的地址与自身的地址映射存储单元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元,以及如果所述地址包含在与没有本地连接到所述系统控制器的存储单元相对应的区域中,那么将所述输入输出请求传送到位于所述不同主板上的其它系统控制器。
根据本发明的另一个方案,提供一种通过系统控制器控制对存储单元的输入输出请求的方法,所述存储单元中存储有固件,所述方法包括:从数据处理器的中央处理器(CPU)和其它系统控制器中的任一个接收所述输入输出请求,其中所述数据处理器安装有所述系统控制器和所述其它系统控制器,并且所述中央处理器与所述系统控制器位于相同主板上,而所述其它系统控制器与所述系统控制器位于不同主板上;在从所述CPU接收所述输入输出请求时,将所述输入输出请求中包含的地址与地址映射相比较,在所述地址映射中映射用于对所述数据处理器中的存储单元进行访问的区域;当所述地址包含在所述比较中确定在与本地连接至所述系统控制器的存储单元相对应的区域中时,根据所述输入输出请求的内容访问本地连接的存储单元;以及当所述地址包含在所述比较中确定在与没有本地连接至所述系统控制器的存储单元相对应的区域中时,将所述输入输出请求传送到所述数据处理器中的位于所述不同主板上的其它系统控制器。
通过结合附图研究以下对本发明的目前优选实施例的详细描述,可以更好的理解本发明的上述和其它目的、特征、优点以及在技术上和工业上的重要性。
附图说明
图1是说明根据本发明实施例的地址映射方法的示意图;
图2是使用根据实施例的地址映射方法的数据处理实例的功能框图;
图3是说明通过本地FWH区访问FWH而使用的路线的示意图;
图4是说明通过分区FWH区访问FWH而使用的路线的示意图;
图5是根据实施例的系统控制器的功能框图;
图6是在系统控制器从CPU接收请求包时由系统控制器执行的处理过程的流程图;
图7是在系统控制器从另一个系统控制器接收请求包时由系统控制器执行的处理过程的流程图;
图8和图9是在数据处理器启动期间检测到FWH内容中的损坏时操作序列的流程图;
图10和图11是在数据处理器启动期间检测到BIOS程序的版本不一致时操作序列的流程图;以及
图12是用于说明传统地址映射方法的示意图。
具体实施方式
下面参照附图详细说明本发明的典型实施例。
首先说明中央处理器(CPU)用于访问固件中心(FWH)而采用的地址映射方法。FWH是存储设备,其中存储基本输入/输出系统(BIOS)程序和上电自检(POST)程序,BIOS程序是启动操作系统(OS)和控制多种设备的软件,POST程序在电力启动期间检查多种设备中存在的任何异常。
图12是用于说明传统地址映射方法的示意图。在图12所示的实例中,假设低/中存储器11是32位并且包含0h到FFFFFFFFh的地址空间。高扩展存储器12是比FFFFFFFFh更高级的区域并且需要具有比32位更多的空间用于寻址。本地FWH区21是CPU用于访问FWH而使用的地址空间,位于低/中存储器11的顶部。
在图12所示的实例中,FWH内的存储器区分成四个分区。假设每个分区具有4兆字节(MB)的存储容量。由此,本地FWH区21具有A_0到A_3四个分区,其对应于FWH内的存储区的四个分区。A_0到A_3四个分区包括4MB的地址空间,用于映射FWH内的相应存储区。因此,本地FWH区21包括共16MB的区。
通过访问任一分区A_0到A_3中的预定地址,CPU可以对与该分区和地址相对应的FWH内的存储区进行读取或者写入。因此,在传统地址映射方法中,在物理地址映射中映射FWH内的存储区,并且CPU访问存储区以读取存储在FWH内的计算机程序。
但是,在传统地址映射方法中映射仅对应于一个FWH的地址空间并且CPU不能访问多个FWH。因此,即使在包括多个已安装的主板(包括已安装的CPU或存储器)的服务器等中,CPU仅可以访问包括已安装CPU自身的主板上的FWH。
在包括多个已安装的主板并包括用于每个主板的FWH的服务器中,如果任一个主板的FWH的内容损坏或者与其它FWH的内容不一致,则整个服务器或者部分主板不能正常启动,由此导致出现明显干扰。
如果CPU能够访问其它主板上的FWH,则任一个CPU可以将正常FWH的内容复制到包含不正确内容的FWH,由此使服务器正常启动。但是,由于在传统地址映射方法中CPU不能访问其它主板上的FWH,因此无法实现这种对策。
图1是用于说明根据本发明实施例的地址映射方法的示意图。如图1所示,在根据实施例的地址映射方法中,除了本地FWH区21之外,物理地址映射中还包括分区FWH区22。分区FWH区22是使得CPU能够访问同一分区内的所有主板的FWH的地址空间。在高扩展存储器12的顶部包含分区FWH区22。
分区是结合安装在数据处理器上的多个主板并且使多个主板作为虚拟数据处理器运行的单元。在许多能够安装多个主板的数据处理器,内部空间分成多个分区,并且在每个分区中独立运行OS。
在图1所示的实例中,分区FWH区22包括SB0到SB31的32个区并且确保用于访问最多32个主板的FWH的地址空间。而且,区SB0到SB31中的每一个可以访问由四个分区A_0_M到A_3_M组成的第一FWH和由四个分区A_0_R到A_3_R组成的第二FWH。为了访问两个FWH,区SB0到SB31中的每一个包括32MB地址空间,这是本地FWH区21的地址空间的两倍。
在根据实施例的地址映射方法中,通过访问分区FWH区22,CPU可以对其它主板的FWH的内容进行读取或者写入。因此,如果部分主板的FWH内容损坏或者如果FWH的内容存在不一致,CPU可以将正常FWH的内容复制到有缺陷的FWH,由此能够消除缺陷。
图1所示的物理地址映射中多个区的位置和大小仅仅是举例,并且可以根据数据处理器的结构和规格来进行合适的修改。
接下来说明使用根据实施例的地址映射方法的数据处理器的结构。图2是使用根据实施例的地址映射方法的数据处理实例的功能框图。
如图2所示,数据处理器100包括由纵横开关600连接的主板2001到200n。每个主板2001到200n是可以独立执行多种计算处理并且包括CPU和存储器的电子基板。纵横开关600是主板2001到200n用于处理多种类型的数据而使用的开关。
在图2所示的实例中,分区1101包含主板2001和2002,分区1102包含主板2002到200n。分区1101和1102可以作为独立的数据处理器运行。例如,分区1101和1102可以独立执行启动和中止。
尽管在图2中没有示出,数据处理器100还包括用于连接网络的网络接口和用于连接磁盘设备的输入输出接口。
接下来说明图1所示的分区1101中每个主板上的CPU用于访问FWH而使用的线路。图3是说明CPU通过本地FWH区21访问FWH而使用的路线的功能框图。
以主板2001的结构作为实例以再次说明主板2001到200n的结构。如图3所示,主板2001包括通过系统控制器3001连接到FWH 5001和5002的CPU4001到4004。在图3所示的结构中,省略了与访问FWH无关的结构。
系统控制器3001控制CPU 4001到4004对存储器和多种设备的访问。具体地说,系统控制器3001接收从CPU 4001至4004到存储器或者设备的输入输出请求,并且将该输入输出请求传送到合适的设备。系统控制器3001在从设备接收到响应时通知该响应的请求源CPU并且分发响应结果。
CPU 4001到4004是执行多种计算处理的处理器。FWH 5001和5002是存储BIOS程序、POST程序等的存储设备。因此,尽管主板2001包括两个FWH,但通常仅使用一个FWH。每个主板2001到200n可以作为两个虚拟主板运行。在每个主板2001到200n通过将自身分为两个虚拟主板而运行时,使用其它FWH。
在图3所示的实例中,主板2002分为虚拟主板2101和2102。虚拟主板2101包括CPU4005和4006以及FWH 5003。虚拟主板2102包括CPU 4007和4008以及FWH 5004。虚拟主板2101和2102共享系统控制器3002。
如上所述,当通过本地FWH区21访问FWH时,CPU仅可以访问一个FWH。例如,在主板2001中,CPU 4001到4004仅可以访问FWH 5001。在主板2002中,附属于虚拟主板2101的CPU 4005和4006仅可以访问同样附属于虚拟主板2101的FWH 5003。附属于虚拟主板2102的CPU 4007和4008仅可以访问同样附属于虚拟主板2102的FWH 5004。
图4是说明通过分区FWH区22访问FWH而使用的路线的功能框图。如图4所示,当通过分区FWH区22访问FWH时,每个CPU可以访问同一分区内的所有FWH。例如,CPU 4001通过本地FWH区21仅可以访问FWH5001,但是通过分区FWH区22可以访问FWH 5001到5004中的任一个。
由于运行和确保安全的需要,实施例中说明的数据处理器以使得CPU不能访问附属于其它分区的FWH的方式而构成。但是,根据需要,数据处理器也能够以使得CPU能够访问附属于其它分区的FWH的方式而构成。
接下来说明图3所示的系统控制器3001和3002的详细结构。因为两个系统控制器3001和3002包括相似的结构,因此将系统控制器3001的结构作为实例来说明。
图5是系统控制器3001的功能框图。系统控制器3001包括地址映射存储单元310、分区ID(PID)存储单元320、输入输出目标确定单元330以及PID添加单元340。图5中省略了与访问FWH无关的结构。
地址映射存储单元310中存储物理地址映射中的区域与设备和存储器之间的对应关系。地址映射存储单元310中存储本地FWH区311、分区FWH区312以及分区FWH区313。
本地FWH区311保持与图1所示的本地FWH区21相等的地址空间范围。在与图1所示的分区FWH区22相等的地址空间中,分区FWH区312保持用于对安装在同一主板上的FWH进行访问的地址空间范围。在与图1所示的分区FWH区22向等的地址空间中,分区FWH区313保持用于对安装在其它主板上的FWH进行访问的地址空间范围。
PID存储单元320中存储分区ID,换言之,系统控制器3001所附属的分区的标志符。
输入输出目标确定单元330接收从安装在同一主板上的CPU发送的输入输出请求和从安装在其它主板上的系统控制器传送的输入输出请求,并且确定请求的输入输出目标。
具体地说,系统控制器3001接收从CPU发送的输入输出请求作为请求包41。请求包41包括地址部分和请求部分,地址部分表示请求输入输出的目标地址,请求部分表示请求的内容。输入输出目标确定单元330在接收到请求包41时提取在地址部分中设置的地址并且将提取的地址输入到确定电路3311至3313。
确定电路3311确定在本地FWH区311中是否包含输入地址。确定电路3312确定在分区FWH区312中是否包含输入地址。确定电路3313确定在分区FWH区313中是否包含输入地址。
如果在本地FWH区311或者分区FWH区312中包含输入地址,那么确定电路3311或者确定电路3312的输出接通。因此,OR电路332的输出接通,其输出确定电路3311和3312的输出的逻辑和。在检测到OR电路332的输出接通并且检测到已经接收请求包41时,AND电路333将请求包41传送到本地连接的FWH(在图5所示的实例中为FWH 5001)。
因此,如果在本地FWH区311或者分区FWH区312中包含在从CPU传送的请求包41的地址部分中设置的地址,那么请求包41被传送到本地连接的FWH并且对该FWH执行输入输出处理。
如果在分区FWH区313中包含输入地址,那么确定电路3313的输出接通。在检测到确定电路3313的输出接通并且检测到已经接收请求包41时,AND电路334将请求包41传送到其它系统控制器。
PID添加单元340将存储在PID存储器320中的PID添加到被传送到其它系统控制器的请求包41。PID被添加到请求包41以确保不会对其它分区中的请求包41意外执行输入输出处理。在添加PID之后,请求包41改变到请求包42的格式。
因此,如果在从CPU发送的请求包41的地址部分中设置的地址与分区FWH区313相匹配,则请求包41被传送到其它系统控制器。
系统控制器3001接收从其它系统控制器传送的输入输出请求作为请求包42。请求包42包括PID部分、地址部分以及请求部分,其中,PID部分表示传送源系统控制器所附属的分区的PID,地址部分表示请求输入输出的目标地址,请求部分表示请求的内容。输入输出目标确定单元330在接收到请求包42时提取在PID部分中设置的PID并且将提取的PID输入到确定电路335。
确定电路335确定输入的PID是否与存储在PID存储单元320中的PID相匹配。如果输入的PID与存储在PID存储单元320中的PID相匹配,那么确定电路335的输出接通。在检测到确定电路335的输出接通并且检测到已经接收请求包42时,AND电路336输出请求包42的地址部分和请求部分。
将从AND电路336输出的地址部分中设置的地址输入到确定电路337。确定电路337确定在分区FWH区312中是否包含输入的地址。如果在分区FWH区312中包含输入的地址,那么确定电路337的输出接通。
在检测到确定电路337的输出接通并且检测到请求包42的地址部分和请求部分从AND电路336输出时,AND电路338将地址部分和请求部分传送到本地连接的FWH。
因此,如果从其它系统控制器传送的请求包42的PIC部分中设置的PID与存储在PID存储单元320中的PID相匹配并且在分区FWH区312中包含地址部分中设置的地址,那么请求包42的地址部分和请求部分被传送到本地连接的FWH并且对该FWH执行输入输出处理。
接下来参照流程图说明图5所示的系统控制器3001执行的处理序列。图6是在系统控制器3001已经从CPU接收请求包41时处理序列的流程图。
如图6所示,在系统控制器3001接收从CPU发送的请求包41(步骤S101)时,输入输出目标确定单元330将请求包41的地址部分中设置的地址与存储在地址映射存储单元310中的物理地址映射相比较(步骤S102)。
如果在本地FWH区311(在步骤S103为是)中或者在分区FWH区312(在步骤S103为否,在步骤104为是)中包含地址部分中设置的地址,那么输入输出目标确定单元330根据请求包41的内容,访问本地连接的FWH(步骤S105)。
如果在分区FWH区313(在步骤S103为否,在步骤S104为否,在步骤S106为是)中包含地址部分中设置的地址,那么PID添加单元340将PID添加到请求包41(步骤S107)。在添加PID之后,将请求包41传送到其它系统控制器(步骤S108)。
如果在本地FWH区311中、分区FWH区312或者分区FWH区313中都不包含地址部分中设置的地址,那么在图6所示的流程图中没有描述随后的处理。但是,基于地址部分中设置的地址与存储在地址映射存储单元310中的物理地址映射的比较结果,系统控制器3001决定随后的处理。
图7是在系统控制器3001已经从其它系统控制器接收请求包42时处理序列的流程图。如图7所示,在接收到从其它系统控制器传送的请求包42(步骤S201)时,输入输出目标确定单元330将请求包42的PID部分中设置的PID与在PID存储单元320中存储的PID相比较(步骤S202)。
如果PID部分中设置的PID与在PID存储单元320中存储的PID相匹配(在步骤S203为是),那么输入输出目标确定单元330将请求包42的地址部分中设置的地址与地址映射存储单元310中存储的物理地址映射相比较(步骤S204)。
如果在分区FWH区312中包含地址部分中设置的地址(在步骤S205为是),那么输入输出目标确定单元330根据请求包42中的内容访问本地连接的FWH(步骤S206)。
如果PID部分中设置的PID与PID存储单元320中存储的PID不匹配(在步骤S203为否)或者如果在分区FWH区312中不包含地址部分中设置的地址(在步骤205为否),那么系统控制器3001丢弃请求包42。
接下来说明在数据处理器100通过使用根据实施例的地址映射方法纠正FWH的内容时的操作。在下面说明的操作中,三个主板2001到2003附属于同一分区,并且安装在主板2002上的CPU作为代表CPU控制整个分区。
图8是在数据处理器100启动期间检测到FWH的内容损坏时操作的流程图。如图8所示,在主板2002中,在电力启动之后CPU读取同一主板上的FWH的内容(步骤S1201),并且在使用读取的BIOS程序和POST程序开始初始化序列(步骤S1202)之后,正常完成初始化序列(步骤S1203)。
相似地,在主板2003中,CPU读取同一主板上的FWH的内容(步骤S1301),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S1302)之后,正常完成初始化序列(步骤S1303)。
在主板2001中,尽管CPU读取同一主板上的FWH的内容(步骤S1101),但是在基于校验和(check sum)检测到读取的内容损坏(步骤S1102)时,中止启动(步骤S1103)。
在正常完成初始化序列之后,主板2002和2003等待其它主板的初始化序列的完成(步骤S1204)。主板2002的CPU(代表CPU)继续监控同一分区内的其它主板,并且即使在预定时间周期过去之后检测到主板2001的初始化没有完成(步骤S1205)时,仍然读取主板2001的FWH的内容(步骤S1206)。
基于校验和,在检测到读取的内容损坏(步骤S1207)时,主板2002的CPU将本地连接的FWH的内容复制到主板2001的FWH并且纠正主板2001的FWH的内容(步骤S1208)。接下来,在向主板2001发出重置指令之后,主板2002的CPU进入待机状态(步骤S1209)。
在主板2001中,在执行重置(步骤S1104)之后,CPU读取同一主板上的FWH的内容(步骤S1105),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S1106)之后,初始化序列正常完成(步骤S1107)。在主板2001中初始化序列期间,主板2003处于待机状态(步骤S1304)。
在同一分区内的所有主板中的初始化序列正常完成并且所有主板已经进入待机状态(步骤S1210)之后,分区移动到下一个处理序列。
因此,在根据实施例的地址映射方法中,因为CPU能够访问其它主板上的FWH,所以即使部分主板的FWH的内容损坏,CPU仍然可以通过复制正常FWH的内容来纠正该FWH的内容。
在图8所示的实例中,仅重置包含纠正的FWH的主板。但是,如在图9所示的操作实例中所说明的,在纠正FWH的内容之后,还可以重置整个分区。
图10是在数据处理器100启动期间检测到BIOS程序的版本不一致时操作序列的流程图。如图10所示,在主板2001中电力启动之后,CPU读取同一主板上的FWH的内容(步骤S3101)在使用读取的BIOS程序和POST程序开始初始化序列(步骤S3102)之后,初始化序列正常完成(步骤S3103)。
相似地,在主板2002中,CPU读取同一主板上的FWH的内容(步骤S3201),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S3202)之后,初始化序列正常完成(步骤S3203)。
相似地,在主板2003中,CPU读取同一主板上的FWH的内容(步骤S3301),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S3302)之后,初始化序列正常完成(步骤S3303)。
在正常完成初始化序列之后,主板2001、2002和2003等待其它主板的初始化序列的完成。在所有主板已经进入待机状态(步骤S3204)之后,主板2002的CPU(代表CPU)确认其它主板中读取的BIOS程序的版本(步骤S3205)。
主板2002的CPU检测到主板2001中读取的BIOS程序的版本与其它主板中读取的BIOS程序的版本不同(步骤S3206)。
接下来,主板2002的CPU将本地连接的FWH的内容复制到主板2001的FWH,并且使存储在主板2001的FWH中的BIOS程序的版本与存储在其它主板的FWH中的BIOS程序的版本相匹配(步骤S3207)。接下来,在发出重置指令到主板2001之后,主板2002的CPU进入待机状态(步骤S3208)。
在主板2001中,在执行重置(步骤S3104)之后,CPU读取同一主板上的FWH的内容(步骤S3105),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S3106)之后,正常完成初始化序列(步骤S3107)。在主板2001中的初始化序列期间,主板2003处于待机状态(步骤S3304)。
在确认同一分区内的所有主板中的初始化序列正常完成,所有主板已经进入待机状态,并且所有主板中读取的BIOS程序的版本是相同的之后(步骤S3209),分区移动到下一个处理序列。
因此,在根据实施例的地址映射方法中,因为CPU可以访问其它主板上的FWH,所以即使在部分主板的FWH的内容与其它主板的FWH的内容之间出现不一致,CPU仍然可以通过复制正常FWH的内容来纠正该FWH的内容。
在图10所示的实例中,在纠正FWH的内容之后,仅重置包含纠正的FWH的主板。但是,如在图11所示的操作实例中所述的,在纠正FWH的内容之后,还可以重置整个分区。
在实施例中,地址映射上包括用于访问在同一数据处理器内安装的FWH的区域。在从CPU接收到输入输出请求时,系统控制器查阅地址映射。如果输入输出请求的目标是除了本地连接的FWH之外的其它FWH,那么系统控制器将输入输出请求传送到其它系统控制器。因此,CPU可以访问同一数据处理器内安装的所有FWH。
在实施例中说明了本发明应用于分成多个分区的数据处理器。但是,本发明还可以有效地应用于没有分为多个分区的数据处理器。而且,除了包含多个主板的数据处理器之外,本发明还可以有效地应用于包含多个系统控制器和安装在单个主板上的FWH的数据处理器。
假设将FWH用作存储例如BIOS程序等固件的存储设备来说明本实施例。但是,例如BIOS程序等固件还可以存储在除FWH之外的存储设备中。
根据本发明的一个方案,在地址映射中包含用于访问安装在同一数据处理器内的FWH的区域。在从CPU接收到输入输出请求时,系统控制器查阅地址映射。如果输入输出请求的目标是除了本地连接的FWH之外的FWH,那么系统控制器将输入输出请求传送到其它系统控制器。因此,CPU可以访问在同一数据处理器内安装的所有FWH。
根据本发明的另一个方案,在接收到从另一个系统控制器传送的输入输出请求时,系统控制器查阅地址映射。如果输入输出请求的目标是本地连接的FWH,那么系统控制器根据输入输出请求的内容来访问本地连接的FWH。因此,由于系统控制器的协同操作,CPU可以访问在同一数据处理器内安装的所有FWH。
根据本发明的另一个方案,在从附属于另一个分区的系统控制器接收到输入输出请求时,系统控制器丢弃输入输出请求。因此,可以避免另一个分区中发出的输入输出请求的意外处理。
根据本发明的另一个方案,如果部分FWH的内容损坏,那么通过复制正常FWH的内容来纠正该FWH的内容。因此,可以避免由于部分FWH的内容损坏而在数据处理器的操作中产生干扰。
根据本发明的另一个方案,如果在部分FWH的内容中出现不一致,那么可以通过复制正常FWH的内容来纠正该FWH的内容。因此,可以避免由于部分FWH的内容损坏而在数据处理器的操作中产生干扰。
尽管为了进行完整和清楚的公开,已经结合特定实施例描述了本发明,但是所附的权利要求并不因此而受到限制,而应解释为包括明确落在这里提出的基本启示内的本领域技术人员可以想到的所有修改和替换结构。
Claims (11)
1.一种系统控制器,用于控制从数据处理器的中央处理器和其它系统控制器中的任一个接收的输入输出请求,其中所述数据处理器安装有所述系统控制器和所述其它系统控制器,并且所述中央处理器与所述系统控制器位于相同主板上,而所述其它系统控制器与所述系统控制器位于不同主板上,所述系统控制器包括:
地址映射存储单元,用于存储地址映射,在所述地址映射中映射用于对存储有固件的存储单元进行访问的区域;以及
目标确定单元,用于将从所述中央处理器接收的输入输出请求中包含的地址与所述地址映射存储单元中的地址映射相比较,并且
如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元,以及
如果所述地址包含在与没有本地连接到所述系统控制器的存储单元相对应的区域中,那么将所述输入输出请求传送到位于所述不同主板上的其它系统控制器。
2.根据权利要求1所述的系统控制器,其中所述目标确定单元将来自位于所述不同主板上的其它系统控制器的输入输出请求中包含的地址与所述地址映射存储单元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元。
3.根据权利要求2所述的系统控制器,还包括分区标识符添加单元,用于在所述数据处理器分为多个分区时,将附属有所述系统控制器的分区的标识符添加到将由所述目标确定单元传送到位于所述不同主板上的其它系统控制器的输入输出请求,其中
所述目标确定单元在以下情况下丢弃输入输出请求,即如果所述输入输出请求是从位于所述不同主板上的其它系统控制器接收且包含一分区的标识符,而且所述标识符与附属有所述系统控制器的分区的标识符不同。
4.一种数据处理器,包括多个主板,每个主板包括中央处理器、存储有固件的存储单元以及系统控制器,每个系统控制器包括:
地址映射存储单元,用于存储地址映射,在所述地址映射中映射用于对所述数据处理器中的存储单元进行访问的区域;以及
目标确定单元,用于将从与所述目标确定单元处于同一主板上的中央处理器接收的输入输出请求中包含的地址和与所述目标确定单元处于同一系统控制器中的地址映射存储单元中的地址映射相比较,并且
如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元,以及
如果所述地址包含在与没有本地连接到所述系统控制器的存储单元相对应的区域中,那么将所述输入输出请求传送到位于所述不同主板上的其它系统控制器。
5.根据权利要求4所述的数据处理器,其中所述目标确定单元将来自位于所述不同主板上的其它系统控制器的输入输出请求中包含的地址与所述地址映射存储单元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元。
6.根据权利要求5所述的数据处理器,其中
每个系统控制器还包括分区标识符添加单元,用于在安装有所述系统控制器的数据处理器分为多个分区时,将附属有所述系统控制器的分区的标识符添加到将由所述目标确定单元传送到位于所述不同主板上的其它系统控制器的输入输出请求,以及
所述目标确定单元在以下情况下丢弃输入输出请求,即如果所述输入输出请求是从位于所述不同主板上的其它系统控制器接收且包含一分区的标识符,而且所述标识符与附属有所述系统控制器的分区的标识符不同。
7.根据权利要求4所述的数据处理器,其中在检测到所述数据处理器中的第一存储单元的内容损坏时,所述中央处理器向本地连接的系统控制器发送:
用于读取所述数据处理器中的第二存储单元的内容的输入输出请求,以及
用于将从所述第二存储单元读取的内容写入所述第一存储单元的输入输出请求。
8.根据权利要求4所述的数据处理器,其中在检测到所述数据处理器中的第一存储单元的内容与其它存储单元的内容之间出现不一致时,所述中央处理器向本地连接系统控制器发送:
用于读取所述数据处理器中的第二存储单元的内容的输入输出请求,以及
用于将从所述第二存储单元读取的内容写入所述第一存储单元的输入输出请求。
9.一种通过系统控制器控制对存储单元的输入输出请求的方法,所述存储单元中存储有固件,所述方法包括:
从数据处理器的中央处理器和其它系统控制器中的任一个接收所述输入输出请求,其中所述数据处理器安装有所述系统控制器和所述其它系统控制器,并且所述中央处理器与所述系统控制器位于相同主板上,而所述其它系统控制器与所述系统控制器位于不同主板上;
在从所述中央处理器接收所述输入输出请求时,将所述输入输出请求中包含的地址与地址映射相比较,在所述地址映射中映射用于对所述数据处理器中的存储单元进行访问的区域;
当所述地址包含在所述比较中确定在与本地连接至所述系统控制器的存储单元相对应的区域中时,根据所述输入输出请求的内容访问本地连接的存储单元;以及
当所述地址包含在所述比较中确定在与没有本地连接至所述系统控制器的存储单元相对应的区域中时,将所述输入输出请求传送到所述数据处理器中的位于所述不同主板上的其它系统控制器。
10.根据权利要求9所述的方法,其中所述比较包括:将来自位于所述不同主板上的其它系统控制器的输入输出请求中包含的地址与所述地址映射相比较,以及
所述访问包括:如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元。
11.根据权利要求10所述的方法,还包括:
在将所述数据处理器分为多个分区时,将附属有所述系统控制器的分区的标识符添加到将在所述传送中传送到位于所述不同主板上的其它系统控制器的输入输出请求;以及
在以下情况下丢弃输入输出请求,即如果所述输入输出请求是从位于所述不同主板上的其它系统控制器接收且包含一分区的标识符,而且所述标识符与附属有所述系统控制器的分区的标识符不同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006223491A JP5103823B2 (ja) | 2006-08-18 | 2006-08-18 | 情報処理装置および入出力要求制御方法 |
JP2006223491 | 2006-08-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101127017A CN101127017A (zh) | 2008-02-20 |
CN100557585C true CN100557585C (zh) | 2009-11-04 |
Family
ID=38283868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101025449A Expired - Fee Related CN100557585C (zh) | 2006-08-18 | 2007-05-14 | 系统控制器、数据处理器以及输入输出请求控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080046678A1 (zh) |
EP (1) | EP1890229B1 (zh) |
JP (1) | JP5103823B2 (zh) |
KR (1) | KR100832824B1 (zh) |
CN (1) | CN100557585C (zh) |
DE (1) | DE602007000533D1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055805B2 (en) * | 2009-03-31 | 2011-11-08 | Intel Corporation | Opportunistic improvement of MMIO request handling based on target reporting of space requirements |
KR101989860B1 (ko) * | 2012-12-21 | 2019-06-17 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
JP6442230B2 (ja) | 2014-10-31 | 2018-12-19 | キヤノン株式会社 | 情報処理装置、同期制御方法、及びプログラム |
US10922148B2 (en) * | 2015-04-26 | 2021-02-16 | Intel Corporation | Integrated android and windows device |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4131941A (en) | 1977-08-10 | 1978-12-26 | Itek Corporation | Linked microprogrammed plural processor system |
JPS619738A (ja) * | 1984-06-26 | 1986-01-17 | Fuji Electric Co Ltd | アドレスマツピング方式 |
US5829052A (en) * | 1994-12-28 | 1998-10-27 | Intel Corporation | Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system |
JPH08286972A (ja) * | 1995-04-19 | 1996-11-01 | Nec Corp | 情報処理装置 |
US5940870A (en) * | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
US6112281A (en) * | 1997-10-07 | 2000-08-29 | Oracle Corporation | I/O forwarding in a cache coherent shared disk computer system |
JP3983820B2 (ja) * | 1998-01-07 | 2007-09-26 | 富士通株式会社 | コンピュータシステム及びメモリ保護の方法 |
JP2000357084A (ja) * | 1999-06-17 | 2000-12-26 | Nec Eng Ltd | 通信システムにおけるプログラムダウンロード方式 |
US6738889B2 (en) * | 1999-07-12 | 2004-05-18 | International Business Machines Corporation | Apparatus and method for providing simultaneous local and global addressing with hardware address translation |
JP2001306307A (ja) * | 2000-04-25 | 2001-11-02 | Hitachi Ltd | ファームウェアの処理方法。 |
US6636984B1 (en) * | 2000-06-15 | 2003-10-21 | International Business Machines Corporation | System and method for recovering data from mirror drives following system crash |
US6675268B1 (en) * | 2000-12-11 | 2004-01-06 | Lsi Logic Corporation | Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes |
US6904457B2 (en) * | 2001-01-05 | 2005-06-07 | International Business Machines Corporation | Automatic firmware update of processor nodes |
US6968398B2 (en) | 2001-08-15 | 2005-11-22 | International Business Machines Corporation | Method of virtualizing I/O resources in a computer system |
US7028177B2 (en) * | 2002-01-31 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Array controller ROM cloning in redundant controllers |
US6934873B2 (en) * | 2002-02-28 | 2005-08-23 | Dell Products L.P. | Automatic BIOS recovery in a multi-node computer system |
US6957307B2 (en) * | 2002-03-22 | 2005-10-18 | Intel Corporation | Mapping data masks in hardware by controller programming |
US7269709B2 (en) * | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
US7281055B2 (en) * | 2002-05-28 | 2007-10-09 | Newisys, Inc. | Routing mechanisms in systems having multiple multi-processor clusters |
US6795850B2 (en) * | 2002-12-13 | 2004-09-21 | Sun Microsystems, Inc. | System and method for sharing memory among multiple storage device controllers |
US6986008B2 (en) * | 2003-01-14 | 2006-01-10 | International Business Machines Corporation | Backup firmware in a distributed system |
JP4029789B2 (ja) * | 2003-07-08 | 2008-01-09 | 日本電信電話株式会社 | プログラムをダウンロードする方法及び装置 |
US20050080982A1 (en) * | 2003-08-20 | 2005-04-14 | Vasilevsky Alexander D. | Virtual host bus adapter and method |
US7814293B2 (en) * | 2004-07-19 | 2010-10-12 | Infotrend Technology Inc. | Redundant controller host-side IO rerouting |
US20060041882A1 (en) | 2004-08-23 | 2006-02-23 | Mehul Shah | Replication of firmware |
-
2006
- 2006-08-18 JP JP2006223491A patent/JP5103823B2/ja not_active Expired - Fee Related
-
2007
- 2007-04-20 EP EP07106624A patent/EP1890229B1/en not_active Expired - Fee Related
- 2007-04-20 DE DE602007000533T patent/DE602007000533D1/de active Active
- 2007-04-25 US US11/790,456 patent/US20080046678A1/en not_active Abandoned
- 2007-05-10 KR KR1020070045529A patent/KR100832824B1/ko not_active IP Right Cessation
- 2007-05-14 CN CNB2007101025449A patent/CN100557585C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE602007000533D1 (de) | 2009-03-26 |
EP1890229A1 (en) | 2008-02-20 |
CN101127017A (zh) | 2008-02-20 |
JP2008046981A (ja) | 2008-02-28 |
KR100832824B1 (ko) | 2008-05-28 |
US20080046678A1 (en) | 2008-02-21 |
JP5103823B2 (ja) | 2012-12-19 |
KR20080016430A (ko) | 2008-02-21 |
EP1890229B1 (en) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6734751B2 (ja) | インタフェイス制御メカニズムを有する電子システム及びその動作方法 | |
US7516252B2 (en) | Port binding scheme to create virtual host bus adapter in a virtualized multi-operating system platform environment | |
CN101369247B (zh) | 创建存储器缺陷映射表并使用该映射表优化性能的方法 | |
US20050216696A1 (en) | Multi-processor system and memory accessing method | |
CN101369245B (zh) | 一种实现存储器缺陷映射表的系统和方法 | |
EP1901162A2 (en) | Storage system and data migration method for the same | |
KR101003102B1 (ko) | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 | |
CN106104502B (zh) | 用于存储系统事务的系统、方法和介质 | |
CN101364189A (zh) | 在操作系统协助下实现运行时间处理器迁移的方法和装置 | |
CN112955880B (zh) | 用于处理片上系统中的地址解码的装置和方法 | |
CN101120324A (zh) | 能够进行闪速存储器存储管理的集成电路 | |
CN101405700B (zh) | 错误管理拓扑结构 | |
CN100557585C (zh) | 系统控制器、数据处理器以及输入输出请求控制方法 | |
CN101183345A (zh) | 控制非易失性存储器中的操作处理的设备和方法 | |
CN110622130B (zh) | 可配置的本地异构计算环境中的高容量、低延迟数据处理 | |
JP2009508225A (ja) | 衛星ペイロードアプリケーション開発のシステムおよび方法 | |
US8527983B2 (en) | Host bus adaptor driver and operating system installation method | |
JP4016396B2 (ja) | マルチセルシステム | |
CN106462550B (zh) | 用于共享嵌入式硬件资源的方法、设备和装置 | |
JP2001333137A (ja) | 自主動作通信制御装置及び自主動作通信制御方法 | |
US7430687B2 (en) | Building-up of multi-processor of computer nodes | |
EP2434406A2 (en) | Distributed memory array supporting random access and file storage operations | |
CN114664336B (zh) | 堆叠存储器件、存储芯片及其控制方法 | |
CN104272295A (zh) | 地址转换板 | |
US20240134806A1 (en) | Storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091104 Termination date: 20150514 |
|
EXPY | Termination of patent right or utility model |