用于初始化数据处理系统的方法和数据处理系统的制作方法

文档序号:6458275阅读:211来源:国知局
专利名称:用于初始化数据处理系统的方法和数据处理系统的制作方法
技术领域
本发明涉及特别是计算机系统的数据处理系统中的加电初始化步骤。
技术背景计算需求的指数增长已导致大型复杂计算机系统的创建。对于这些计 算机系统进行加电和初始化直至正常操作系统完全可用通常依赖于嵌入式 控制器,其使得加电时对于计算机系统的所述初始化更便利。计算机系统的所述复杂控制结构的示例在2002年IBM J. Res. & Dev.第46巻第4/5号 中F. Baitinger等人的"System control structure of the IBM eServer z900" 的第523-535页中描述。在所述计算机系统中,硬件被打包为多个硬件"笼罩(cage enclosure)" (所谓的笼(cage))。所述嵌入式控制器被划分为两类支持单元和笼 控制器。所述支持单元可选冗余地具有主要支持单元和辅助支持单元。在 所述计算机系统中存在仅一个主要支持单元。所述笼控制器总是冗余地具 有主控笼控制器和从属笼控制器。笼控制器关联于所迷计算机系统的整个 硬件笼。其经由私有服务控制网络与所述主要支持单元交互。可选地,同 样,所述服务控制网络是冗余的。所述主要支持单元控制所述计算机系统的初始化(系统控制范围), 而所述笼控制器对于其所关联的笼实施实际的系统控制和监视任务(笼内 控制范围)。在某种意义上,笼控制器充当服务单元与实际硬件之间的代 理。特别地,仅J5良务单元维护和访问所谓的工程数据,其中,所述工程数 据描述所有硬件寄存器的初始值。所述加电初始化步骤主要包括所谓的 IML (初始机器加载)。所述IML步骤的一些详细信息以及其与服务单元和笼控制器的关系可以在2004年IBM J. Res. & Dev.第48巻第3/4号中 K. —D. Schubert等人的 "Accelerating system integration by enhancing hardware, firmware, and co-simulation"的第569-581页中找到(其中所 谓的灵活支持处理器作为笼控制器)。该系统控制结构暗示所述笼控制器的运转的固有并行性。其以主控-从属运转模型的形式被实现,其中所述(主要)支持单元运转作为主控以 及所述(主控)笼控制器运转作为从属。然而,所述笼控制器的运转之间 存在依赖(dependency),其中,所述笼控制器的运转必须在实施于所述 支持单元上的系统控制任务的运转中反映出来。这些依赖由这一事实导致 各个笼中的硬件并不相互独立地工作。这些依赖经由硬件对象模型(HOM)来管理,其中,所述硬件对象模 型在2002年IBM J. Res. & Dev.第46巻第4/5号中A. Bieswanger等人的 "Hardware configuration framework for the IBM eServer z900" 的第 537-550页中描述。所述HOM ^皮用作为在所述支持单元上执行的系统控 制固件的一部分。继续对由硬件部件提供的功能的打包随每个新计算机系 统平台而改变的体验,计算机系统硬件部件及其功能在所述HOM的设计 中是独立的。其可以在其启动时刻经由存储在规则数据库中的配置规则来 控制,其中,所述配置规则对于计算机系统是专用的。所述HOM允许集 中控制所述计算机系统中的各个IC(集成电路)芯片。由于所述计算机系 统支持硬件的热插拔,以及由于硬件子系统可以被拆分并且需要在系统配 置中被隔离,所以,所述HOM需要被动态地改变以便反映所述计算机系 统的当前状态。一种与eServer z卯O HOM类似的HOM在ACM OOPSLA 2002 Practitioners report (ISBN 1-58113-471-1 )中A. Kreissig/J. Armstrong的 "A Common Multi-Platform Hardware Object Model"中描述。该HOM 继承了 eServer z900 HOM的一些设计模式。计算机系统特定的HOM配 置的实际实现的 一 些详细信息在专利申请US 2005/0086637 Al中提供。 随着特别是高端服务器计算机系统的复杂计算机系统(例如具有多芯片模块的系统)中的芯片数量的持续增长,对这些芯片的控制可以变得非 常时间密集。甚至在所述芯片内部,多个子系统可以一定程度上独立地被运转(例如,支持SMT (同时多线程)的处理器)。所述问题对于不支持 一次对多个芯片广播操作的硬件设计而言变得甚至更糟。例如,IBMeServerz卯O具有连接到功能系统结构(区别于系统控制 结构)的所有芯片的中央时钟芯片。所述内容例如在2002年IBM J. Res. & Dev.第46巻第4/5号中L. C. Alves等人的"RAS Design for the IBM eServerz卯O"的第503-521页(特别是图2)中示出。除了为所连接的芯 片馈入时钟信号外,所述时钟芯片还控制其状态。经由该时钟芯片控制机 制,笼控制器可以一次寻址多个芯片以便实施芯片控制操作或监视芯片状 态。所述方法的详细实现在专利申请US 2006/0106556 Al中描述。其它服 务器计算机系统可能不具有所述中央时钟芯片,例如IBM System i/System p机器。作为代替,每个芯片被提供了其自己的时钟硬件逻辑,从而节省 因此的附加时钟芯片硬件的成本。在类似于IBMeServerz900的系统控制结构中,所述笼控制器单独仅 提供有限的并行化选项。这是由这一事实导致许多计算机系统相关数据 仅可用于所述服务单元,例如工程数据。因此,所述服务单元需要在许多 并行操作中被涉及。因此,作为计算机系统控制操作的 一部分的用于控制芯片的并行操作 是高度被需要的。典型地,所述并行化经由改变HOM的设计以及因此改 变其实际实现、或经由调整所述HOM配置规则来手动实施。例如,可以 在初始化与中央处理单元(CPU)关联的存储器芯片之前初始化中央处理 单元(CPU)。但这并未完全利用并行化操作的能力,因为所述两种初始 化可以某种程度上重叠(在某时刻,CPU将访问其关联的存储器芯片,但 需要被相应地进行配置来这样做,例如经由特定的寄存器设置)。由于手动并行化耗时且易错并且可能并未完全利用并行化能力,所以 明显存在对一种自动化并行化方法的需求。发明内容因此本发明的目的是提供一种基于现有技术进行改进的、用于初始化 数据处理系统的方法,以及对应的计算机程序和计算机程序产品和对应的 数据处理系统。该目的由在独立权利要求中定义的发明来实现。本发明的进一步有利 实施例在从属权利要求中定义。本发明的优点经由对于数据处理系统的所选功能硬件单元(例如芯片、 笼、接口 )的初始化步骤序列的定义以及经由确定这些初始化步骤之间的 依赖来实现。这些定义步骤优选在所述数据处理系统的设计和开发期间被 实施。通过对所述初始化步骤之间的依赖的认识,因而可以自动地并行化 所述功能硬件单元的初始化。所述初始化步骤的序列及其依赖在单一控制流表中表示,其中,所述 控制流表被自动地分析和用于所述并行化。优选地,所述控制流表以人可 读的格式来实现,因此允许手动创建、修改和分析所述控制流表。该控制 流表然后在所述数据处理系统的初始化阶段期间被系统管理控制器分析。 作为所述分析的结果,所述序列将关联于所选功能硬件单元。对于每个关 联的初始化步骤序列,所述系统管理控制器将创建并执行并行执行线程。在本发明的优选实施例中,初始化步骤之间的依赖由被插入所述初始 化步骤序列中的触发和等待步骤来表示。当第一并行执行线程实施触发步骤时,其将用信号通知其它并行执行线程与在该触发步骤之前的初始化 步骤的依赖被解决。当所述其它并行执行线程实施等待步骤时,其将延迟 其执行直到其接收到来自该第一并行执行线程的这样的信号通知该等待 步骤之后的初始化步骤的依赖被解决。所述触发和等待步骤其自身是一般 化的。与具体数据处理系统的依赖由所述步骤的连接所引入。本发明的自动并行化方法允许增大对所述系统管理控制器的利用。由 功能硬件单元的初始化步骤之间的依赖导致的所述数据处理系统的初始化 阶段中的延迟可以被最小化。本发明还具有这一优点关于初始化步骤之间的依赖的认识被存储和维护在单一地方一一所述控制流表中。这允许容易和快速地修改所述功能 硬件单元的初始化步骤序列。这对于非常迟的硬件设计改变和在设计周期 中非常迟地检测到的硬件和固件问题是非常有用的。实际上,在开发期间 经常发生硬件设计者非常迟地引入需要在所述初始化序列中被反映或甚至 导致功能硬件单元之间的附加依赖的改变。例如,可以非常迟地认识到, 当一次进行太多同类型初始化步骤(例如芯片自测试)时过多功率将被消 耗。随着所述数据处理系统中的初始化步骤和功能硬件单元的数量越来越 多,根据本发明的自动并行化方法导致对于数据处理系统的开发者变得越 来越不可预测的初始化动作序列。该问题可以被看作是根据本发明的自动 并行化方法的不利之处。然而,其可以经由跟踪当前^^皮系统管理控制器实 施的初始化步骤加上时间戳(例如在中央跟踪数据文件中)来避开。在出 现错误的情况下(由硬件或固件引起),所述跟踪数据可以被分析,以及 具体初始化动作序列可以被导出。


本发明及其优点现在结合附图被描述。图1是示出了用于计算机系统的子系统的系统控制结构的框图; 图2是示出了根据本发明的芯片初始化任务的数据流图; 图3是示出了根据本发明的芯片初始化任务的数据流图; 图4是根据本发明的方法的数据流图; 图5是在其中特定实施例可以被实现的系统的框图。
具体实施方式
图1示出了针对本发明的实施例的用于计算机系统的子系统的系统控 制结构。服务单元10控制计算机系统的节点20。例如,节点20可以是用 于产业标准(EIA 310-D、 IEC 60297和DIN 41494 SC48D ) 19英寸机架 的可安装机架的笼。节点20收容了支持处理器30,其中,该支持处理器30负责节点20的系统管理。支持处理器30例如经由基于以太网技术的私 有系统控制服务网络连接到服务单元10。服务单元10的简单示例是标准 个人计算机,例如IBMThinkPad。服务处理器30可以被实现为ASIC(专 用集成电路),例如IBM eServer z卯O笼控制器ASIC (例如上面引用的 Batinger等人的文章中的图7 )。所述ASIC的详细实现描述在Proc. of the IEEE SOCC 2006中J. Saalmueller/J. Wuertz的"Embedded Controllers for solving complex Industry Applications" 中给出。在服务单元10和支持处理器30上执行的计算机程序的集合是所述计 算机系统的固件的一部分。服务单元10和支持处理器30每个都执行例如 现有操作系统的操作系统,其中可能带有一些由于特别硬件需求的特定修 改。除所述操作系统之外,附加固件部件负责所述计算机系统的系统控制 任务,特别是负责计算机系统初始化任务。节点20进一步包括两个独立的时钟电路CLK—0 40和CLK一l 50。 CLK—0 40控制芯片60,而CKL一150控制另一芯片70。所述芯片的示例 如用作所述计算机系统的CPU (中夬处理单元)的微处理器。其它的芯片 示例如存储器芯片。芯片60和70可以是多芯片模块(MCM)的一部分, 以及同样,时钟电路CKL—0 40和CLK_1 50可以被部分或完全地包括在 同一 MCM中。支持处理器30连接到CLK—0 40和CLK_1 50以及芯片 60和70。所述连接的示例如IBM eServer z卯0的串4亍系统支持接口 ( SSI) (例如上面引用的Baitinger等人的文章中的图4到6 ) 、 I2C (IIC:内置 集成电路)总线、GPIO (通用输入/输出)接口、 UART (通用异步接收 器/发射器; 一般称为串行端口 )接口以及JTAG (联合测试关联组;IEEE 1149.1边界扫描标准)接口 。支持处理器30分别使用CFAM 100和CFAM 110控制芯片60和70。 CFAM (公共FRU访问宏;FRU:现场可替代单元)是一种专门设计的 芯片子系统,该芯片子系统是所述计算机系统的系统控制结构的 一部分。 在上面引用的Saalmueller/Wuertz的文章中给出的支持处理器30的示例 实现中,该支持处理器使用其PDI (外围设备接口 )和HIS (高速接口 )接口来访问CFAM 100和110。芯片60和70经由弹性接口 (elastic interface) 80连接,其中,该弹 性接口 80是源同步管道化(总线泵(bus-pumping))芯片到芯片接口。 所述弹性接口连接的示例在US 6,954,870 B2中描述。弹性接口连接在实际 数据净荷可以被发送之前需要校准步骤。在所述^f交准步骤中,各个传输线 之间的定时差被确定,以及基于这些差,所述芯片被相应地配置(例如经 由寄存器设置)从而防止在该弹性接口连接上的数据传输期间的数据丟失。 所述校准步骤由支持处理器30控制,但由服务单元10触发和监视。弹性接口 80的校准需要用两个步骤实施,每个步骤对应所述连接的一 个方向。首先,服务单元10经由支持处理器30在CRAM100中的专用寄 存器中写入特定值。这迫使芯片60中的硬件负责以特定驱动模式与弹性接 口 80的连接。在所述驱动模式中,芯片60在弹性接口 80上向芯片70发 送数据分组。为使芯片70能够接收这些数据分组,服务单元10在CFAM 110中的专用寄存器中写入特定值。这迫^f吏芯片70中的石更件负责以特定接 收模式与弹性接口 80的连接。 一旦该校准步骤被成功完成,则所述情形被 芯片70经由CFAM110中的特定寄存器值用信号通知。当支持处理器30 检测到这些值时,其将相应地通知服务单元10。然后,类似的校准步骤在 所述弹性接口 80连接的另一个方向上被实施。对于IBM eServer z卯O,对于弹性接口的所述校准步骤在IML序列的 步骤3中被实施(例如上面引用的Schubert等人的文章中的图4)。在同 一IML步骤3中,同样,IBMeServerz900的芯片时钟当需要针对时钟电 路CLK—0 40和CLK—1 50完成时开始弹性接口校准在各自的芯片时钟 开始之前无法开始。在多个芯片以级联方式被连接的情形中(例如,在高 端服务器系统中,存储器芯片可以被级联3或4次),各自的弹性接口需 要遵循所述级联的层次被一个接一个地校准。当芯片初始化步骤被定义时, 在所述计算机系统的开发期间,所述计算机系统中的芯片初始化步骤的这 些和类似依赖需要被确定。根据本发明,针对所述计算机系统中的每个芯片的专用芯片初始化任所述任务可以使用单一操作系统任务中的多个执行线程和/或经由使用专用操作系统线程来实现。图2示出了分别针对芯片60和70的两个示例芯片初 始化任务200和210。任务200和210包括分别针对芯片60和70 ^皮随后 执行的几个芯片初始化步骤。在这些步骤中,服务单元IO指示支持处理器 30在节点20中实施特定硬件动作。任务200开始于步骤CFAM初始化,其中,芯片60的CFAM100被 初始化。在步骤开始EI必需(start EI vital) 202中,弹性接口 80的校准 开始。在该步骤中,使能对弹性接口 80的访问的寄存器设置被完成。在步 骤触发203中,与芯片70的初始化的依赖被解决芯片70的初始化必须 在特定点停止,以及仅可以在芯片60的初始化已到达特定点时才继续。根 据本发明,任务210因此在步骤等待205中等待,直到任务200已执行所 述触发203步骤。然后,任务210经由执行CFAM初始化206步骤和LBIST 207步骤继续芯片70的初始化。在LBIST 207步骤中,芯片70被触发以 便实施LBIST (逻辑内置自测试)操作。在触发203步骤中,任务200通知任务210关于其状态的信息。可以域的技术人员是熟知的。 一旦所述触发步骤被完成(其可以在所述等待206 步骤被完成之前发生),则任务200继续进行步骤ABIST206。在ABIST 206步骤中,芯片60被触发以便实施ABIST (自治内置自观'〗试)操作。 LBIST和ABIST操作是在其中硬件针对正确操作测试其自己的测试方法。 图3是多个芯片之间的根据本发明的依赖解决的示例。任务300、 310、 320和330在服务单元10上并行地被执行,并且各自关联于所述计算机系 统中的芯片。任务300具有对任务310的依赖。因此,任务300在等待340 步骤中等待来自任务310的通知。在触发350步骤中,该通知被从任务310 发送到任务300。任务320具有对任务310和任务330的联合依赖。因此, 任务320在等待360步骤中等待来自任务310和330的通知。在触发350 步骤中,任务310通知任务320所述依赖被满足。在触发370步骤中,任务330通知任务320所述依赖被满足。 一旦任务320已接收到所述两个通 知,则其通过随后的芯片初始化步骤继续其执行。图4是才艮据本发明的方法的数据流图。在步骤400中,用于所述芯片初 始化步骤的控制流表410作为所述计算机系统的开发过程的一部分被手动 创建。该控制流表410由的固件开发组创建,所述固件开发组与负责所述 计算机系统的硬件开发的组紧密合作,负责运行在服务单元10和支持处理 器30上的固件。典型地,在控制流表410的第一个版本可以被创建之前, 将召开几次会议、讨论会以及获得设计文档的几个版本。在控制流表410 中,所述计算机系统的芯片被按不同类型分类。控制流表410例如作为XML (可扩展标记语言)文件存储在计算枳* 可读媒体上。图2中所示的依赖的简化示例编码如下被给出<formula>formula see original document page 12</formula>控制流表410优选存储在服务单元10的永久存储设备中,例如硬盘驱动器或闪存设备上。在所述计算机系统的初始化期间(例如加电或复位之后),在服务单元10上被执行的固件部件分析控制流表410的内容。例如, 控制流表410的内容可以以有注释图形结构的形式存储在服务单元10的主存寸诸器中。所述固件部件在步骤420中从系统配置数据库430创建所述计 算才几系统中的所有活动芯片的列表。系统配置数据库430的示例实现如上 面描述的IBMHOM。系统配置数据库430可以经由标识出节点20中的可 用石更件部件来建立。例如,每个可标识硬件部件可以包括包含唯一标识数 据的SEEPROM (串行电可擦除可编程只读存储器),其中,所述唯一标 识数据在所述计算机系统的制造期间被创建。服务单元10经由支持处理器 30读取所述SEEPROM数据。尽管系统配置数据库430对于所述计算机系统是唯一的,但控制流表 410典型是非常通用的,并且可以覆盖用于所述计算机系统的基础硬件体 系结构(例如计算机系统平台或计算机系统体系结构生成)。其并不必须 是才莫型特定的,即,仅使用该基础硬件体系结构覆盖特定模型。然而,还 可以直接将控制流表410的内容添加到系统配置数据库430。在步骤440中,所述固件部件将对于所述活动芯片列表中的每个芯片 确定其类型,以及依赖于所述类型,控制流表410中关联于该芯片类型的 数据将被使用。在本发明的优选实施例中,所述固件部件使用面向对象编 程技术来实现。特定芯片类被分别用于每个芯片类型。这些芯片类是一般 类YinitTask的子类。因此,对于所述活动芯片列表中的芯片,对象shipstep (对象任务)将被固件部件创建。该对象c/^to^是其各自的芯片类的实 例化,以及将使用一般类FZYinitTask的setTarget方法关联于特定芯片。在 上面示出的示例XML文件中,类名称被直接存储在所述控制流表中对于每个芯片类型,控制流表410包括初始化步骤的列表。对于所述 初始化步骤,所述固件部件创建对象chipstep(芯片步骤),该对象是一 般类F/m'Wte/7的子类的实例化。类KmYrflsA;包括Km'"fe/7对象的已排序 列表,其中,所述顺序表示对于该芯片类型所述初始化步骤需要被实施所 按照的顺序。所述固件部件将使用来自系统配置数据库430的信息填充对 象ch;ptosA:的该列表。在上面示出的示例XML文件中,类名称被直接存 储在所述控制流表中(例如YinitStepCFMIniYinitStepStartEIVital)。因此,如果系统配置数据库430包括N个芯片,以及这N个芯片的每 个需要M个初始化步骤,则所述固件部件将创建N个d^ptosA:对象以及 IN^M个c/^:pWep对象。特别地,所述触发和等待步骤也将由c/wjwte/;对象 表示。17 /Wfe/7的对应子类是类Km7S^p 和类F/m'C印『似7。系统配置数据库430还包括哪些芯片例如经由弹性接口与其它芯片连 接的所有信息。专利申请US 2005/0086637 Al提供了所述信息如何被添加 到系统配置数据库430的示例。同样,对于每个弹性接口,对象将被所述 固件部件创建,以及该对象中的对应的已排序列表将被表示对该弹性接口 的初始化步骤的对象所填充。在步骤450中,服务单元10将所有触发步骤与对应的等待步骤相连接。 所述步骤将由所述固件部件经由对于表示等待步骤的所有对象调用类 !7m'W^7『肌7的方法a^/7>/ggc来实现。因此,对于需要等待由对象r表 示的触发步骤的、由对象『表示的等待步骤,所述固件部件将使用实现伪 代码『a^/7Wggw(X)的参数执行所述方法。这样,等待步骤可以变得连接 到一个或多个触发步骤,以及反之亦然,因此允许触发与等待步骤之间的 m:n关系。触发步骤与等待步骤之间的关系使用如由以下XML程序框架所示的 步骤名称-陂编码在所述XML文件中<:STSP narae-〃S工VITAL sr朋!T I CWr c』ass-fini仁Steprjriggrer /><ST£P name=〃£I VITAL START DOWE〃 ciass-YiiiitStepWa丄t /〉 </rARG£2,〉这样,可以编码所述计算机系统的硬件单元(CS7尸0、 Cfl7尸/)之间 的依赖这些依赖经由步骤名称来编码。所述固件部件将所述触发和等待 步骤与同一名称("E7 K/7^丄S7Mi r Z)6W五")相连接。由于所述计算 机系统可以包括多个同 一类型的硬件单元,所以所述固件部件在系统配置 数据库430中查询所述硬件单元之间的附加依赖。例如,类型为C/T/尸O并且由对象C尸表示的硬件单元可以连接到由对 象A7和7V2表示的类型为C^T/尸J的两个硬件单元。该依赖然后将经由在 系统数据库430中查询哪些硬件单元连接到C户而被呈现给所述固件部件。 如由以下伪代码程序框架中所示,来自上面的XML程序框架的所述触发 与等待步骤的连接然后被所述固件部件认识到 犯,getStejpr宜'V工旭STARr DCMS"-> 'addrrigger fCP.getStepf〃EI START DCMB〃"/船,gretStepr'SI ram Sy朋T DC" -〉经由仅修改控制流表410的所述XML表示,触发和等待步骤可以按 特定硬件单元类型的初始化步骤的顺序^皮随意添加、删除和移动。代替于使用存储在所述系统配置数据库中的信息,还可以直接在控制 流表410中编码所述依赖。在控制流表410的XML文件表示的情形中, XML i吾法可以^皮相应地扩展。在步骤460中,服务单元IO将开始系统配置数据库430中的每芯片和 每弹性接口的线程。这将经由所述固件部件执行表示这些芯片和弹性接口 的所有已创建对象的专用方法来实现。因此,对于M个所述对象,M个 线程将被创建以及并行地执行。所述线程可以优选是操作系统线程或由服 务单元10执行的操作系统的操作系统进程。在所述线程中,所关联的芯片 的所有初始化步骤将随后被实施。这些对象的已排序列表中表示这些初始 化步骤的对象将随后基于其在这些列表中的位置被处理。在所述处理中, 所述固件部件执4亍表示所述初始化步骤的对象的专用方法。最后,在步骤470中,所述固件部件将等待所有已开始线程的完成。在所有线程的完成之后,所有芯片和弹性接口被初始化。 附加实施例细节所描述的技术可以被实现为方法、装置或涉及软件、固件、微代码、 硬件和/或其任意组合的制品。术语"制品"当用在这里时是指在媒体中实 现的代码或逻辑,其中,所述媒体可以包括硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或计算机可读媒 体,其中,所述计算机可读媒体例如是磁性存储媒体(例如硬盘驱动器、 软盘、磁带等)、光学存储(CD-ROM、光盘等)、易失性和非易失性存 储器设备(例如电可擦除可编程只读存储器(EEPROM)、只读存储器 (ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、 动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、 固件、可编程逻辑等)。所述计算机可读媒体中的代码被处理器访问和执 行。所述代码或逻辑被编码到其中的媒体还可以包括通过空间或传输媒体 传播的传输信号,其中,所述传输媒体例如是光纤、铜线等。所述代码或 逻辑被编码到其中的传输信号可以进一步包括无线信号、卫星传输、无线 电波、红外信号、蓝牙等。所述代码或逻辑被编码到其中的传输信号能够 被发送台发送以及被接收台接收,其中在所述发送台和接收台或设备处, 所述传输信号中编码的所述代码或逻辑可以4皮解码以及存储在硬件或计算 机可读媒体中。另外,所述"制品,,可以包括所述代码在其中被包含、处 理和执行的硬件和软件部件的组合。当然,本领域的技术人员将认识到, 在不脱离实施例的范围的情况下,可以作出许多修改,以及所述制品可以 包括任意信息承载媒体。例如,所述制品包括已在其中存储了指令的存储 媒体,所述指令当被机器执行时导致操作被实施。特定实施例可以采用完全硬件实施例、完全软件实施例或包含硬件和 软件单元的实施例的形式。在优选实施例中,本发明用软件实现,所述软 件包括但不限于固件、常驻软件、微代码等。另外,特定实施例可以采用计算机程序产品的形式,其中,所述计算 机程序产品可从提供程序代码的计算机可用或计算机可读媒体访问,所述程序代码被计算机或任意指令执行系统使用或与其结合使用。出于本说明 书的目的,计算机可用或计算机可读媒体可以是可以包含、存储、传送、 传播或传输程序的任意装置,所述程序被所述指令执行系统、装置或设备 使用或与其结合使用。所述媒体可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或传播媒体。计算机可读:fr某体的示例包括半 导体或固体存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、 只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括只读存储器致 密盘(CD-ROM)、读/写致密盘(CD-R/W)和DVD。术语"特定实施例"、"一个实施例"、"实施例(embodiment)"、 "实施例(embodiments),,、"所述实施例(the embodiment),,、"所 述实施例(the embodiments )"、"一个或更多实施例"、"一些实施例" 和"一个实施例"除非特别指出否则是指一个和更多(但不是所有)实施 例。术语"包括(including),,、"包括(comprising)"、"具有,,及 其变型除非特别指出否则是指"包括但不限于"。所枚举的项目列表除非 特别指出否则并不暗示所述项目的任一个或所有项目是相互排斥的。术语 "一个(a),,、"一个(an)"和"所述(the)"除非特别指出否则是 指"一个或更多"。相互通信的设备除非特别指出否则不需要是相互连续通信的。另外, 相互通信的设备可以直接或通过一个或更多中介间接通信。另外,具有几 个相互通信的部件的实施例的描述并不暗示所有所述部件是必需的。相反, 各种可选部件被描述以便示出各种各样的可能实施例。进一步地,尽管过程步骤、方法步骤、算法等可以按次序顺序来描述, 但所述过程、方法和算法可以被配置为按可替换顺序工作。换句话说,可 以被描述的步骤的任意次序或顺序并不必要指示所述步骤必须按该顺序被 实施。这里描述的过程的步骤可以按任意实际的顺序被实施。进一步地, 一些步骤可以同时、并行或并发地蜂皮实施。当单一设备或物品在这里被描述时,将显而易见,代替单一设备/物品, 多于一个设备/物品(不论其是否进行合作)可以被使用。类似地,在多于一个设备或物品在这里被描述的情况下(不论其是否进行合作),将显而 易见,代替所述多于一个设备或物品,单一设备/物品可以被使用。设备的 功能和/或特征可选地可以被未被明确描述为具有所述功能/特征的一个或 更多其它设备包含。由此,其它实施例不需要该设备其自己。图5示出了在其中特定实施例可以被实现的计算机系统卯0的框图。 系统卯0可以包括电路卯2,该电路902在特定实施例中可以包括《敖处理 器904。计算机系统900还可以包括存储器卯6 (例如易失性存储器设备) 和存储卯8。存储卯8可以包括非易失性存储器设备(例如EEPROM、 ROM、 PROM、 RAM、 DRAM、 SRAM、闪存、固件、可编程逻辑等)、 磁盘驱动器、光盘驱动器、磁带驱动器等。存储卯8可以包括内部存储设 备、附接存储设备和/或网络可访问存储设备。系统卯0可以包括程序逻辑 910,该程序逻辑910包括可以被加载到存储器卯6中并且被;跌处理器904 或电路卯2执行的代码912。在特定实施例中,包括代码912的程序逻辑 910可以存储在存储卯8中。在特定其它实施例中,程序逻辑910可以在 电路902中实现。因此,尽管图5示出与其它单元分离的程序逻辑910, 但程序逻辑910可以在存储器906和/或电路902中实现。特定实施例可以涉及一种用于由人或集成了计算机可读代码的自动化 处理将计算指令部署到计算系统中的方法,其中,与所述计算系统结合的所述代码被使能实施所述实施例的操作。附图中示出的至少某些特定操作可以并行以及顺序地被实施。在可选 实施例中,某些特定操作可以按不同顺序被实施、修改或移除。另外,为了说明的目的,所述软件和硬件部件的许多已在单独模块中 被描述。所述部件可以被集成为更少部件,或者被分割为更多部件。另外, 被描述为由特定部件实施的特定操作可以由其它部件实施。附图和本发明书中示出或提到的数据结构和部件被描述为具有特定类 型的信息。在可选实施例中,所述数据结构和部件可以不同地被构造,以 及具有比附图中所示或所提到的更少、更多或不同的字段或不同的功能。因此,所述实施例的前述描述已由于说明和描述目的被呈现。其不旨在是穷举的或将所述实施例限于所公开的精确形式。根据以上讲述,许多 修改和变型是可能的。
权利要求
1.一种用于初始化数据处理系统的方法,所述数据处理系统包括功能硬件单元(40、50、60、70、80、100、110)和用于控制所述功能硬件单元的系统管理控制器(10),所述方法包括以下步骤-定义所述功能硬件单元的所选硬件单元(60、70、80)的初始化步骤(201、202、203、204、205、206、207)的顺序;-确定所述初始化步骤之间的依赖(204、205);-创建(400)表示所述初始化步骤的序列及其依赖的控制流表(410);-在所述数据处理的初始化阶段期间,在所述系统管理控制器上执行以下步骤-分析(420、440、450)所述控制流表,以及将所述初始化步骤序列分配(440)给所述已选择的硬件单元;-创建(406)并执行每个已分配初始化步骤序列的并行执行线程(200、210)。
2. 根据权利要求l所述的方法,其中,在所述分析步骤中,初始化步 骤之间的依赖由被插入所述初始化步骤序列中的触发(203 )和等待(205 ) 步骤表示,以及,第一并行执行线程(200)当实施触发步骤时用信号通知 第二并行执行线程(210)依赖被解决,以及其中,所述第二并行执行线程 当实施等待步骤时在直到接收到来自所述第一并行执行线程的信号通知之 前停止其执行。
3. —种用于初始化数据处理系统的方法,包括-分析(420、 440、 450)表示数据处理系统的所选硬件单元(60、 70、 80)的初始化步骤(201、 202、 203、 204、 205、 206、 207)的序列及其依 赖(204、 205 )的控制流表(410 ),以及将所述初始化步骤序列分配(440 )给所述已选择硬件单元;-创建(460 )并执行每个所述初始化步骤序列的并行执行线程(200、210)。
4. 根据权利要求3所述的方法,其中,在所述分析步骤中,初始化步步骤表示,以及第一并行执行线程(200)当实施触发步骤时用信号通知第 二并行执行线程(210 )依赖被解决,以及其中,所述第二并行执行线程当 实施等待步骤时在直到接收到来自所述笫一并行执行线程的信号通知之前 停止其执行。
5. 根据权利要求3或4所述的方法,其中,所述数据处理系统的系统 配置数据库(430)被用于所述分析步骤中。
6. 根据权利要求3到5中任一个所述的方法,其中,所述计算机系统 执行操作系统,以及其中,对于所述并行执行线程的创建,所迷操作系统 的至少一个以下工具被使用操作系统线程、操作系统进程。
7. 根据权利要求3到6中任一个所述的方法,其中,在所述分析步骤 中,编程对象被用于表示以下的至少一个所述已选择硬件单元、所述初 始化步骤。
8. —种数据处理系统,所述数据处理系统包括功能硬件单元(40、 50、 60、 70、 80、 100、 110)和用于控制所述功能硬件单元的系统管理控制器(10),其中,所述系统管理控制器包括用于在所述数据处理系统的初始 化阶段期间实现根据权利要求3到7所述的任一方法的装置。
9. 根据权利要求8所述的数据处理系统,进一步包括具有节点控制器 (30)和所述功能硬件单元的子集中的每个的硬件节点(20),其中,所述节点控制器被所述系统管理控制器用于所述初始化步骤的执行。
10. 根据权利要求8或9所述的数据处理系统,其中,所述系统管理 控制器的永久存储被用于存储以下的至少一个所述控制流表、所述系统 配置数据库。
全文摘要
一种用于初始化数据处理系统的方法。数据处理系统的所选功能硬件单元的初始化步骤的序列被定义,以及所述初始化步骤之间的依赖被确定。这些定义步骤优选在所述数据处理系统的设计和开发期间被实施。所述初始化步骤的序列及其依赖在单一控制流表(410)中被表示(400)。该控制流表然后在所述数据处理系统的初始化阶段期间被系统管理控制器分析(420、440、450)。所述序列将关联于(440)所选功能硬件单元,以及,对于每个关联的初始化步骤序列,所述系统管理控制器将创建(460)和执行并行执行线程。
文档编号G06F9/445GK101236505SQ20081000922
公开日2008年8月6日 申请日期2008年1月29日 优先权日2007年1月30日
发明者J·舒尔茨, R·绍夫勒, W·尼克劳斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1