系统控制器、数据处理器以及输入输出请求控制方法

文档序号:6609008阅读:126来源:国知局
专利名称:系统控制器、数据处理器以及输入输出请求控制方法
技术领域
本发明涉及系统控制器、数据处理器以及输入输出请求控制方法,更具 体地,涉及这样的系统控制器、数据处理器以及输入输出请求控制方法,即 使数据处理器上安装的多个固件中心的一部分出现故障,其仍然能够正常运 行数据处理器。
背景技术
通常,在诸如服务器或个人计算机的数据处理器中,固件中心(Firmware Hub,下文称为"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。
在图l所示的实例中,分区FWH区22包括SB0到SB31的32个区并 且确保用于访问最多32个主板的FWH的地址空间。而且,区SB0到SB31 中的每一个可以访问由四个分区A—0—M到A—3—M组成的第一 FWH和由四 个分区A—O一R到A一3—R组成的第二FWH。为了访问两个FWH,区SB0到 SB31中的每一个包括32MB地址空间,这是本地FWH区21的地址空间的 两倍。在根据实施例的地址映射方法中,通过访问分区FWH区22, CPU可以 对其它主板的FWH的内容进行读取或者写入。因此,如果部分主板的FWH 内容损坏或者如果FWH的内容存在不一致,CPU可以将正常FWH的内容 复制到有缺陷的FWH,由此能够消除缺陷。图l所示的物理地址映射中多个区的位置和大小仅仅是举例,并且可以 根据数据处理器的结构和规格来进行合适的修改。接下来说明使用根据实施例的地址映射方法的数据处理器的结构。图2 是使用根据实施例的地址映射方法的数据处理实例的功能框图。如图2所示,数据处理器100包括由纵横开关600连接的主板20(^到 200n。每个主板200,到200n是可以独立执行多种计算处理并且包括CPU和 存储器的电子基板。纵横开关600是主板200i到200n用于处理多种类型的 数据而使用的开关。在图2所示的实例中,分区11(h包含主板200i和2002,分区1102包含 主板2002到200n。分区ll(h和1102可以作为独立的数据处理器运行。例如, 分区110i和1102可以独立执行启动和中止。尽管在图2中没有示出,数据处理器100还包括用于连接网络的网络接 口和用于连接磁盘设备的输入输出接口。接下来说明图1所示的分区1101中每个主板上的CPU用于访问FWH 而使用的线路。图3是说明CPU通过本地FWH区21访问FWH而使用的路 线的功能框图。以主板200i的结构作为实例以再次说明主板200i到200 的结构。如图 3所示,主板200i包括通过系统控制器300!连接到FWH 500,和5002的CPU 400t到4004。在图3所示的结构中,省略了与访问FWH无关的结构。系统控制器30(^控制CPU 400i到4004对存储器和多种设备的访问。具
体地说,系统控制器300,接收从CPU 40(h至4004到存储器或者设备的输入 输出请求,并且将该输入输出请求传送到合适的设备。系统控制器300,在从 设备接收到响应时通知该响应的请求源CPU并且分发响应结果。CPU400i到4004是执行多种计算处理的处理器。FWH500,和5002是存 储BIOS程序、POST程序等的存储设备。因此,尽管主板200,包括两个FWH, 但通常仅使用一个FWH。每个主板200,到200n可以作为两个虚拟主板运行。 在每个主板200i到200 通过将自身分为两个虚拟主板而运行时,使用其它 FWH。在图3所示的实例中,主板2002分为虚拟主板21(h和2102。虚拟主板 210!包括CPU400s和4006以及FWH 5003。虚拟主板2102包括CPU 4007和 4008以及FWH 5004。虚拟主板210!和2102共享系统控制器3002。如上所述,当通过本地FWH区21访问FWH时,CPU仅可以访问 一个 FWH。例如,在主板200!中,CPU40(^到4004仅可以访问FWH500,。在主 板2002中,附属于虚拟主板210!的CPU400s和4006仅可以访问同样附属于 虚拟主板210!的FWH 5003。附属于虚拟主板2102的CPU 4007和4008仅可 以访问同样附属于虚拟主板2102的FWH 5004。图4是说明通过分区FWH区22访问FWH而使用的路线的功能框图。 如图4所示,当通过分区FWH区22访问FWH时,每个CPU可以访问同一 分区内的所有FWH。例如,CPU400i通过本地FWH区21仅可以访问FWH 500p但是通过分区FWH区22可以访问FWH 50(^到5004中的任一个。由于运行和确保安全的需要,实施例中说明的数据处理器以使得CPU 不能访问附属于其它分区的FWH的方式而构成。但是,根据需要,数据处 理器也能够以使得CPU能够访问附属于其它分区的FWH的方式而构成。接下来说明图3所示的系统控制器300,和3002的详细结构。因为两个 系统控制器300i和3002包括相似的结构,因此将系统控制器300,的结构作 为实例来说明。图5是系统控制器30(^的功能框图。系统控制器30(^包括地址映射存 储单元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,换言之,系统控制器300,所附属的分 区的标志符。输入输出目标确定单元330接收从安装在同一主板上的CPU发送的输 入输出请求和从安装在其它主板上的系统控制器传送的输入输出请求,并且 确定请求的输入输出目标。具体地说,系统控制器300i接收从CPU发送的输入输出请求作为请求 包41。请求包41包括地址部分和请求部分,地址部分表示请求输入输出的 目标地址,请求部分表示请求的内容。输入输出目标确定单元330在接收到 请求包41时提取在地址部分中设置的地址并且将提取的地址输入到确定电 路33h至3313。确定电路33h确定在本地FWH区311中是否包含输入地址。确定电路 3312确定在分区FWH区312中是否包含输入地址。确定电路3313确定在分 区FWH区313中是否包含输入地址。如果在本地FWH区311或者分区FWH区312中包含输入地址,那么确 定电路33h或者确定电路3312的输出接通。因此,OR电路332的输出接 通,其输出确定电路33h和3312的输出的逻辑和。在检测到OR电路332 的输出接通并且检测到已经接收请求包41时,AND电路333将请求包41 传送到本地连接的FWH (在图5所示的实例中为FWH500。。因此,如果在本地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被传送到其它系统控制器。系统控制器300,接收从其它系统控制器传送的输入输出请求作为请求 包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所示的系统控制器300d丸行的处理序列。图 6是在系统控制器30(^已经从CPU接收请求包41时处理序列的流程图。如图6所示,在系统控制器300j妾收从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 中的物理地址映射的比较结果,系统控制器300,决定随后的处理。图7是在系统控制器300i已经从其它系统控制器接收请求包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为否),那么系统控制器30(h丢弃请求包42。接下来说明在数据处理器100通过使用根据实施例的地址映射方法纠正 FWH的内容时的操作。在下面说明的操作中,三个主板200i到2003附属于
同一分区,并且安装在主板2002上的CPU作为代表CPU控制整个分区。图8是在数据处理器100启动期间检测到FWH的内容损坏时操作的流 程图。如图8所示,在主板2002中,在电力启动之后CPU读取同一主板上 的FWH的内容(步骤S1201),并且在使用读取的BIOS程序和POST程序 开始初始化序列(步骤S1202)之后,正常完成初始化序列(步骤S1203)。相似地,在主板2003中,CPU读取同一主板上的FWH的内容(步骤 S1301),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S1302) 之后,正常完成初始化序列(步骤S1303)。在主板200,中,尽管CPU读取同一主板上的FWH的内容(步骤SI 101 ), 但是在基于校验和(checksum)检测到读取的内容损坏(步骤S1102)时, 中止启动(步骤S1103)。在正常完成初始化序列之后,主板2002和2003等待其它主板的初始化 序列的完成(步骤S1204)。主板2002的CPU (代表CPU)继续监控同一 分区内的其它主板,并且即使在预定时间周期过去之后检测到主板200,的初 始化没有完成(步骤S1205)时,仍然读取主板200J勺FWH的内容(步骤 S1206)。基于校验和,在检测到读取的内容损坏(步骤S1207)时,主板2002的 CPU将本地连接的FWH的内容复制到主板200!的FWH并且纠正主板20(h 的FWH的内容(步骤S1208)。接下来,在向主板20(^发出重置指令之后, 主板2002的CPU进入待机状态(步骤S1209)。在主板200i中,在执行重置(步骤S1104)之后,CPU读取同一主板上 的FWH的内容(步骤S1105),在使用读取的BIOS程序和POST程序开始 初始化序列(步骤S1106)之后,初始化序列正常完成(步骤S1107)。在 主板200i中初始化序列期间,主板2003处于待机状态(步骤S1304)。在同一分区内的所有主板中的初始化序列正常完成并且所有主板已经 进入待机状态(步骤S1210)之后,分区移动到下一个处理序列。因此,在根据实施例的地址映射方法中,因为CPU能够访问其它主板 上的FWH,所以即使部分主板的FWH的内容损坏,CPU仍然可以通过复制 正常FWH的内容来纠正该FWH的内容。在图8所示的实例中,仅重置包含纠正的FWH的主板。但是,如在图9所示的操作实例中所说明的,在纠正FWH的内容之后,还可以重置整个 分区。图IO是在数据处理器100启动期间检测到BIOS程序的版本不一致时操 作序列的流程图。如图10所示,在主板200i中电力启动之后,CPU读取同 一主板上的FWH的内容(步骤S3101)在使用读取的BIOS程序和POST程 序开始初始化序列(步骤S3102)之后,初始化序列正常完成(步骤S3103)。相似地,在主板2002中,CPU读取同一主板上的FWH的内容(步骤 S3201 ),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S3202) 之后,初始化序列正常完成(步骤S3203)。相似地,在主板2003中,CPU读取同一主板上的FWH的内容(步骤 S3301 ),在使用读取的BIOS程序和POST程序开始初始化序列(步骤S3302) 之后,初始化序列正常完成(步骤S3303)。在正常完成初始化序列之后,主板200p 2002和2003等待其它主板的初 始化序列的完成。在所有主板已经进入待机状态(步骤S3204)之后,主板 2002的CPU (代表CPU)确认其它主板中读取的BIOS程序的版本(步骤 S3205)。主板2002的CPU检测到主板200,中读取的BIOS程序的版本与其它主 板中读取的BIOS程序的版本不同(步骤S3206)。接下来,主板2002的CPU将本地连接的FWH的内容复制到主板200, 的FWH,并且使存储在主板20(^的FWH中的BIOS程序的版本与存储在其 它主板的FWH中的BIOS程序的版本相匹配(步骤S3207)。接下来,在发 出重置指令到主板20(h之后,主板2002的CPU进入待机状态(步骤S3208)。在主板200i中,在执行重置(步骤S3104)之后,CPU读取同一主板上 的FWH的内容(步骤S3105),在使用读取的BIOS程序和POST程序开 始初始化序列(步骤S3106)之后,正常完成初始化序列(步骤S3107)。 在主板200i中的初始化序列期间,主板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的内容损坏而在数据处理器的操作中产生干扰。尽管为了进行完整和清楚的公开,己经结合特定实施例描述了本发明, 但是所附的权利要求并不因此而受到限制,而应解释为包括明确落在这里提 出的基本启示内的本领域技术人员可以想到的所有修改和替换结构。
权利要求
1.一种系统控制器,用于控制从安装有所述系统控制器的数据处理器的中央处理器和其它系统控制器中的任一个接收的输入输出请求,所述系统控制器包括地址映射存储单元,用于存储地址映射,在所述地址映射中映射用于对存储有固件的存储单元进行访问的区域;以及目标确定单元,用于将从所述中央处理器接收的输入输出请求中包含的地址与所述地址映射存储单元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存储单元,以及如果所述地址包含在与没有本地连接到所述系统控制器的存储单元相对应的区域中,那么将所述输入输出请求传送到所述其它系统控制器。
2. 根据权利要求1所述的系统控制器,其中所述目标确定单元将从所述其它系统控制器接收的输入输出请求中包含的地址与所述地址映射存储单 元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控 制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容 访问本地连接的存储单元。
3. 根据权利要求2所述的系统控制器,还包括分区标识符添加单元,用 于在所述数据处理器分为多个分区时,将附属有所述系统控制器的分区的标 识符添加到将由所述目标确定单元传送到所述其它系统控制器的输入输出 请求,其中所述目标确定单元在以下情况下丢弃输入输出请求,即如果所述输入输 出请求是从所述其它系统控制器接收且包含一分区的标识符,而且所述标识 符与附属有所述系统控制器的分区的标识符不同。
4. 一种数据处理器,包括多个主板,每个主板包括中央处理器、存储有固件的存储单元以及系统控制器,每个系统控制器包括地址映射存储单元,用于存储地址映射,在所述地址映射中映射用于对所述数据处理器中的存储单元进行访问的区域;以及目标确定单元,用于将从与所述目标确定单元处于同一主板上的中央处 理器接收的输入输出请求中包含的地址和与所述目标确定单元处于同一系 统控制器中的地址映射存储单元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控制器的存储单元相 对应的区域中,那么根据所述输入输出请求中包含的内容访问本地连接的存 储单元,以及如果所述地址包含在与没有本地连接到所述系统控制器的存储单 元相对应的区域中,那么将所述输入输出请求传送到所述其它系统控制器。
5. 根据权利要求4所述的数据处理器,其中所述目标确定单元将从所述 其它系统控制器接收的输入输出请求中包含的地址与所述地址映射存储单 元中的地址映射相比较,并且如果所述地址包含在与本地连接到所述系统控 制器的存储单元相对应的区域中,那么根据所述输入输出请求中包含的内容 访问本地连接的存储单元。
6. 根据权利要求5所述的数据处理器,其中每个系统控制器还包括分区标识符添加单元,用于在安装有所述系统控 制器的数据处理器分为多个分区时,将附属有所述系统控制器的分区的标识 符添加到将由所述目标确定单元传送到所述其它系统控制器的输入输出请 求,以及所述目标确定单元在以下情况下丢弃输入输出请求,即如果所述输入输 出请求是从所述其它系统控制器接收且包含一分区的标识符,而且所述标识 符与附属有所述系统控制器的分区的标识符不同。
7. 根据权利要求4所述的数据处理器,其中在检测到所述数据处理器中 的第一存储单元的内容损坏时,所述中央处理器向本地连接的系统控制器发送用于读取所述数据处理器中的第二存储单元的内容的输入输出请求,以及用于将从所述第二存储单元读取的内容写入所述第一存储单元的输入 输出请求。
8. 根据权利要求4所述的数据处理器,其中在检测到所述数据处理器中的第一存储单元的内容与其它存储单元的内容之间出现不一致时,所述中央 处理器向本地连接系统控制器发送用于读取所述数据处理器中的第二存储单元的内容的输入输出请求,以及用于将从所述第二存储单元读取的内容写入所述第一存储单元的输入 输出请求。
9. 一种通过系统控制器控制对存储单元的输入输出请求的方法,所述存储单元中存储有固件,所述方法包括从安装有所述系统控制器的数据处理器的中央处理器和其它系统控制 器中的任一个接收所述输入输出请求;在从所述中央处理器接收所述输入输出请求时,将所述输入输出请求中 包含的地址与地址映射相比较,在所述地址映射中映射用于对所述数据处理 器中的存储单元进行访问的区域;当所述地址包含在所述比较中确定在与本地连接至所述系统控制器的 存储单元相对应的区域中时,根据所述输入输出请求的内容访问本地连接的 存储单元;以及当所述地址包含在所述比较中确定在与没有本地连接至所述系统控制 器的存储单元相对应的区域中时,将所述输入输出请求传送到所述数据处理 器中的其它系统控制器。
10. 根据权利要求9所述的方法,其中所述比较包括将从所述其它系统 控制器接收的输入输出请求中包含的地址与所述地址映射相比较,以及所述访问包括如果所述地址包含在与本地连接到所述系统控制器的存 储单元相对应的区域中,那么根据所述输入输出请求中包含的内容访问本地 连接的存储单元。
11. 根据权利要求IO所述的方法,还包括在将所述数据处理器分为多个分区时,将附属有所述系统控制器的分区 的标识符添加到将在所述传送中传送到所述其它系统控制器的输入输出请 求;以及在以下情况下丢弃输入输出请求,即如果所述输入输出请求是从所述其 它系统控制器接收且包含一分区的标识符,而且所述标识符与附属有所述系 统控制器的分区的标识符不同。
全文摘要
本发明提供一种系统控制器、数据处理器以及输入输出请求控制方法,所述系统控制器包括地址映射存储单元,用于存储地址映射,所述地址映射包括用于对同一数据处理器内安装的FWH进行访问的映射区域;以及目标确定单元,用于在从CPU接收输入输出请求时,将所述输入输出请求中包含的地址与地址映射相比较,并且如果在与没有本地连接到所述系统控制器的FWH相对应的区域中包含所述地址,那么将所述输入输出请求传送到安装在所述数据处理器中的其它系统控制器。
文档编号G06F13/16GK101127017SQ20071010254
公开日2008年2月20日 申请日期2007年5月14日 优先权日2006年8月18日
发明者高桥仁 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1