确定系统配置的方法、系统、及程序 本发明涉及确定系统配置而特别是从随各设备提供的自定义的配置信息确定系统中可获得的设备的方法、系统、及程序。
诸如服务器类机器等一些计算机系统的计算机体系结构包含在诸如通电自检(POST)等初始化期间执行一系列诊断测试来查询系统部件以确定系统配置的配置处理器。在个人计算机中,这一进程是由确定系统中的设备的基本输入/输出系统(BIOS)代码执行的。可能包含在计算机系统中的设备有在系统初始化期间执行配置与初始化操作的配置处理器、一或多个中央处理单元(CPU)、一或多个具有诸如双列直插式存储器模块(DIMM)等附加存储器卡的立式卡(riser card)、及其它部件。系统中的各卡或现场可替换地单元(FRU)通常具有包含该设备的必要产品数据(VPD)的本身EEPROM芯片。系统中的所有FRU都通过平板总线接口通信,诸如提供在总线上传递信息的串行协议的I2C总线接口。
在一些先有技术系统中,配置处理器是用平板或底板I2C总线上的设备与可在不同的层上连接在这些设备上的任何进一步的设备的配置编码的。可将配置处理器的编码维护在诸如PROM或EEPROM等可编程存储器中。例如,平板I2C总线上的立式卡可包含一或多条自身的I2C总线。拥有它们自己的带有配置信息的EEPROM的DIMM卡可连接在立式卡内的一或多个I2C总线接口上。配置处理器代码包含平板I2C总线上所有当前系统部件及卡内不同层上的任何总线,即卡内的I2C总线上的所有部件的地址信息。然后在配置期间,配置处理器便能发送读配置数据请求给各部件来确认这些设备是工作的。伴随将特定的系统配置编码进配置代码中的一个问题是可能对系统作出改变,诸如插入具有不同的DIMM配置的新立式卡等。在这一情况中,在系统能用新配置工作之前,必须更新配置处理器代码来反映这一新配置。这使得改变系统配置复杂化,因为任何改变都必须伴随着修改诸如PROM、EEPROM等配置存储器的对配置处理器代码的改变。
有些先有技术系统将可以连接在系统上的所有可能的部件的地址编码在配置处理器代码中。然后,不管这些设备是否在系统中,配置处理器都发送读配置数据请求给所有可能连接的系统,并等待应答。应答的设备为包含在初始化及系统配置中的,而不应答的则假定为不在系统中的。这一方法优于以前的方法之处在于诸如增加或去除DIMM卡等对系统中的FRU的改变不需要伴随对配置代码的更新,因为当配置处理器查询所有可能获得的部件时,将检测到这些改变。
然而,使配置处理器检验所有可能的设备地址的缺点之一在于这一操作能显著地延迟配置与初始化过程,因为配置处理器必须等待来自系统中所有可能设备的应答。此外,如果系统是以并非在配置代码中指示可能的配置的方式配置的,则除非用新体系结构的能力更新配置代码,配置处理器将检测不到新配置。例如,如果配置代码指示立式卡内四条I2C总线上至多可有32个DIMM卡而增加了在8个不同的I2C总线接口上允许64个DIMM卡的一张卡,则配置代码必须加以更新以反映可以增加卡的全部64个可能的DIMM地址。
从而,在本技术中存在着对用于配置系统来确定可利用的部件的改进的技术的需求。
为了克服上述先有技术中的限制,较佳实施例公开了用于确定具有平板、平板总线及连接的平板设备的计算机系统的配置的方法、系统、及程序。在指示能连接在平板上的各平板设备的地址的平板配置存储器上执行读操作。然后向平板配置存储器中所指示的各平板设备的地址发送读命令来确定是否可获得各平板设备。读取各可获得的平板设备的配置存储器来确定配置信息及是否存在可通过一个平板设备访问的附加设备的地址。然后向平板设备的配置存储器中指示的各附加设备的地址发送读命令来确定各附加设备的配置信息及是否存在可通过附加设备访问的进一步的附加设备。向任何配置存储器中所指示的任何附加设备的地址发送读命令来确定配置信息及是否存在任何进一步的附加设备与伴随的配置存储器要考虑。
在其它实施例中,至少一个设备包含具有可通过内部总线访问的附加设备的内部总线。该设备的配置存储器指示内部总线上的附加设备的地址。在这一情况中,用包含该内部总线的设备的配置存储器中的内部总线地址信息将读命令发送到附加设备。
在另外的其它实施例中,配置信息包含产品信息。将从系统中的设备的配置存储器中读取的地址与产品信息存储在存储器中供在计算机操作期间使用。
较佳实施例提供优化系统初始化进程及系统配置的确定的计算机体系结构。较佳实施例在平板总线接口上提供指示平板上各可能设备的平板配置处理器。附加在平板设备或附加在任何本身附加在平板设备或附加设备上的任何设备具有包含关于该设备的产品信息及附加在该设备上的任何设备的地址信息的配置存储器。初始化期间,配置处理器能通过确定特定层上附加的任何设备然后查询这些附加设备的配置存储器来找出任何进一步附加的设备的地址来确定配置。以这一方式,从包含关于特定层上的设备的信息的配置存储器中确定各层系统配置。
较佳实施例的优点在于如果用具有不同配置的设备替换一个设备及其附加设备,能在系统初始化期间从新设备的配置存储器中检测到这一新配置。此外,按照较佳实施例,由于系统中的设备的地址是从各设备上包含关于该设备及实际附加的设备的自定义信息的配置存储器中确定的,配置处理器只发送读命令给存在的设备。以这一方式,较佳配置存储器体系结构减少了动态确定系统配置操作所需的读操作的次数。
参见附图,其中相同的参照号在所有附图中表示对应的部件:
图1为展示在其中实现本发明的较佳实施例的计算机体系结构的框图;
图2示出可包含在按照本发明的较佳实施例的平板设备的配置存储器内的信息的字段;
图3示出附加在平板总线上的配置存储器的实例;
图4示出平板设备的配置存储器的实例;
图5示出附加在平板设备上的设备的配置存储器的实例;
图6示出连接在平板接口总线上的立式卡的配置存储器的实例;以及
图7a、b示出在按照本发明的较佳实施例的配置存储器中实现的确定系统配置的逻辑。
在下面的说明中,对构成其一部分并示出本发明的若干实施例的附图进行参照。应理解也可利用其它实施例并可进行结构性及操作性改变而不脱离本发明的范围。
图1示出在其中实现较佳实施例的平板计算机板2,即底板的计算机体系结构。平板2包含两个中央处理单元(CPU)4、6、提供时钟信号的振荡器8、执行初始化例程的配置处理器10、及立式卡12与14。所有这些卡通过卡连接器插入平板中。这些设备以本技术中已知的方式在平板I2C总线接口16上通信。I2C总线接口的细节在Philips半导体(1998年12月)出版的名为“I2C总线说明书,版本2”的出版物中描述,这里通过引用将该出版物全文结合在此。
各设备4、6、8、10、12与14分别包含EEPROM20、22、24、26、28与30,后者包含该设备的必要产品数据(VPD),其中有序号、产品号、产品特征、尺寸、速度等。在较佳实施例中,还将配置EEPROM32连接在平板I2C总线接口16上并包含能附加在平板I2C总线接口16上的平板设备的地址信息。然而,EEPROM32不包含插入另一卡中的附加在I2C总线接口16上的平板设备的地址。例如,即使振荡器8连接在I2C总线接口16上,振荡器8的地址也不包含在EEPROM32中。反之,振荡器8的地址维护在振荡器8卡所插入的CPU4的EEPROM20中。
设备4、6、8、10、12、14本身可包含内部I2C总线接口。立式器12与14包含内部I2C总线接口36与38。8个DIMM卡40a-40h及42a-42h分别连接在各内部I2C总线接口36及38上。各DIMM卡40a-40h及42a-42h分别具有自己的包含必要的产品数据的EEPROM44a-44h及46a-46h。如上所述,内部I2C总线接口36与38是分别通过集线器48与50多路复用器访问的。在较佳实现中,各集线器48与50能提供对4个I2C总线接口的访问,各I2C总线接口具有多达8个附加的DIMM卡。图1中只示出内部I2C总线接口36与38之一连接在集线器48与50上。
平板I2C总线接口16上的EEPROM20、22、24、26、28与30可用一字节地址寻址,其中前7位包括目标设备地址和最低位,即第8位表示按照I2C协议的读或写操作。在较佳实施例中,在POST初始化进程中,配置处理器10能用一字节地址格式发送读请求给平板设备4、6、8、12与14上的各EEPROM20、22、24、26、28与30。如果从目标设备接收到确认(ACK)脉冲,则配置处理器10知道该设备存在在系统中。用3字节地址来寻址DIMM卡40a-40h及42a-42h之一。第一字节是可通过它访问目标DIMM的集线器48或50的地址,第二字节是内部I2C总线接口36或38,或总线选择器的地址,而第三字节为选择的内部I2C总线上的目标DIMM的地址。
在较佳实施例中,配置EEPROM32包含平板2的标题与必要产品数据,然后是可连接在在平板I2C总线接口16上的各部件,即平板设备的位置数据。图2示出包含在连接在平板I2C总线接口16上的各平板设备的位置数据中的信息字段。卡类型字段100指示连接在平板I2C总线接口16上的设备类型,如CPU、配置处理器、立式器、等。I2C地址字段102指示平板I2C总线接口16上的设备的地址。如上所述,该地址为一字节地址。如果使用别的总线协议,可采用不同的地址格式。如果存在集线器芯片,集线器地址字段104指示平板设备上的集线器芯片地址。如果不存在集线器地址,则不应用这一字段104。如上所述集线器芯片48与50提供对卡上可连接附加设备的进一步的内部I2C总线接口的访问。标签字段106指示卡与槽上的标签来协助标识该槽与卡在平板2上的物理位置。位置数据可进一步包含指示地址位置的地址偏移信息供配置处理器10用来放置从EEPROM确定的配置数据。
分别嵌入设备4、6、8、10、12、14及2中的EEPROM20、22、24、26、28、30与32至少包含标题及关于该设备的特征的必要产品数据。然而,如果该设备包含连接在平板I2C总线或内部I2C总线接口上的具有它们自己的EEPROM的任何进一步的插接设备,则这些设备的EEPROM将包含关于附加在平板I2C总线或内部I2C总线接口上的设备的位置数据。否则,如果设备并不包含任何进一步的内部I2C设备,则没有位置数据。从而,分别用于CPU6、配置处理器10、DIMM40a、40b、40c、40d、40e、40f、40g、40h及DIMM42a、42b、42c、42d、42f、 42g、42h的EEPROM22、26、44a、44b、44c、44d、44e、44f、44g、44h及46a、46b、46c、46d、46e、46f、46g、46h只包含标题与设备的必要产品数据,由于不存在连接在其上的进一步设备。
图3示出在包含关于连接在平板2上的设备的位置数据110的配置EEPROM32中维护的数据的实例。如能见到的,立式器12与14项包含关于集线器48与50地址的信息。配置处理器10能利用配置EEPROM32中的位置数据10信息从各项的I2C地址字段确定可通过平板I2C总线接口16,连接在平板2上的设备。
图4示出包含在CPU4的EEPROM20中的信息。位置信息120指示有振荡器8连接在CPU4上的平板I2C总线接口16上的I2C地址上。图5示出振荡器8的EEPROM24中的信息,其中只提供必要的产品数据。因为在振荡器8内设有进一步的设备,在振荡器8EEPROM24中没有位置信息。
图6示出包含在立式器12的EEPROM28中的信息,其中包含连接在内部I2C总线接口36上的DIMM卡40a、40b、40c、40d、40e、40f、40g、40h的位置信息130。位置信息130指示各DIMM40a、b、c、d、e、f、g离开内部I2C总线接口36的I2C地址。位置信息130还包含标识DIMM连接在其上的内部I2C总线接口36的选择器地址132。选择器地址132对于所有的项都相同,因为所有的DIMM40a、40b、40c、40d、40e、40f、40g、40h都连接在同一内部I2C总线接口36上。如果有多个内部I2C总线接口连接在集线器48上便利用选择器地址来区别设备(DIMM)连接在其上面的特定内部总线。
DIMM40a、40b、40c、40d、40e、40f、 40g、40h的EEPROM44a、44b、44c、44d、44e、44f、44g、44h只包含标题与虚拟产品数据而无位置信息,因为没有设备连接在这些DIMM上。
按照较佳实施例,配置EEPROM32包含关于连接在平板上的各可能设备的信息,而各设备EEPROM包含关于连接在其上的任何设备的自定义信息。平板总线或内部总线上的进一步的设备也可包含关于进一步的内部设备的位置信息。维护系统配置信息的较佳实施例技术允许各设备包含能用来动态确定任何进一步嵌套的内部设备的配置的自定义数据。
图7a、b示出在配置处理器10中在诸如POST例程等初始化中确定系统配置而实现的逻辑。控制从框200上配置处理器10起动初始化例程来确定系统配置开始。配置处理器10(在框202上)读取在固定地址上找到的配置EEPROM32,后者包含诸如图3中所示的信息,并(在框204上)将关于平板及通过平板I2C总线接口16连接在平板2上的平板设备2、4、6、10、12、与14的信息放在存储器中,其中包含各平板设备的I2C地址。
然后配置处理器10发送读命令给各平板设备4、6、10、12与14的I2C地址以读取各设备EEPROM20、22、26、28与30。配置处理器10将维护关于(在框208上)并不返回ACK(确认)信号的这些平板设备4、6、10、12与14及(在框210上)返回信号的设备的信息。不返回信号的设备是不能获得的。如果未为至少一个CPU4或6及至少一个立式器12或14返回ACK,则返回POST错误(在框214上)因为除排可获得至少一个CPU及用作系统存储器的存储器卡系统否则便不能操作。
否则,如果至少一个CPU与存储器是可获得的,则配置处理器10在框216上开始循环来确定各可获得的平板设备4、6、10、12与14的配置信息。对于各可获得的平板设备,配置处理器10(在框218上)从EEPROM20、22、26、28与30读取必要的产品数据(VPD)并将这些数据作为设备的配置信息存储在存储器中。如果(在框220上)EEPROM包含位置数据,则配置处理器10(在框222上)读取与存储附加在平板设备上的称作“附加设备”的设备的位置在存储器中。附加有附加设备及在位置数据中记载的设备为基设备。可存在许多级基与附加设备,使得一个设备既可以是附加设备又是进一步的附加设备的基设备。然后配置处理器10在框224上开始内循环来考虑关于在位置数据中记载的各附加设备的信息。如果(在框226上)各附加设备存在选择器地址,则配置处理器10(在框228上)利用随基设备的位置数据或随附加设备的位置数据提供的集线器地址、内部I2C总线接口距集线器的选择器地址、及附加设备的I2C地址寻址该附加设备,从该附加设备的EEPROM中读取必要的产品数据与位置数据(如果有的话)。
如果不存在选择器地址,则配置处理器10(在框230上)单独用I2C地址读取附加设备的EEPROM来获取该附加设备的必要产品数据及任何位置数据。如果在框228或230上读取附加设备的配置数据之后找到了位置数据,则在框224上开始嵌套的循环来配置附加在刚才考虑的附加设备上的任何设备。从而,可以存在多层嵌套的附加设备,使得一层上的附加设备可以是配置的较低层上的基设备。如果(在框232上)EEPROM并不包含任何位置数据,则控制(在框234上)返回到框224去考虑下一个附加设备。
例如,配置处理器10在框216上起动循环来处理列出在图3中的位置数据110中的各平板设备。在读取提升器12的EEPROM28时,配置处理器10在框224上起动循环来处理图6中的位置数据130以获取关于附加在立式卡12上的各DIMM40a、40b、40c、40d、40e、40f、40g、40h的配置信息。
利用框224到232上的循环处理过所有附加设备及任何进一步的附加设备之后,控制(在框236上)返回去处理配置EEPROM32中的下一下平板设备4、6、10与14。
利用图7a、b的逻辑及较佳的配置数据实现,配置处理器10能用最少的读操作次数确定配置,并同时具有动态检测对系统的任何改变的能力。较佳实施例通过在设备自定义配置数据内包含关于所有直接附加的设备来定义可通过这一设备直接访问的设备,来做到这一点。在较佳实施例中,各设备包含能卸下与更换的所有直接附加的设备的配置信息。从而,如果修改基设备来包含新的附加设备的配置,这一新配置的细节会包含在该新基设备的配置存储器内。这一自定义信息允许配置处理器通过读取该设备的EEPROM中的配置信息来确定附加在特定基设备上的所有设备的确切位置。这一方法适用于附加设备的任何层上。例如,附加设备可作为基设备工作并包含指出可拆卸地附加在该附加设备上的所有设备的配置EEPROM。
利用较佳实现,配置处理器能用最少的读操作次数确定包含对配置的任何改变在内的确切配置,因为配置信息引导配置处理器将读请求发送到实际连接在正在考虑的当前设备上的设备。如果通过增加或消除附加设备改变了设备的配置,则对其作出改变的基设备中的配置信息会反映这一改变。实际上,在较佳实施例中,配置处理器查询可能不在系统中的部件的唯一时机是在配置处理器查询连接在平板总线上的设备时。起初,配置处理器读取配置EEPROM来确定所有可能的平板设备及查询各平板设备来确定该设备是否可获得及包含任何进一步的附加设备。平板设备之后,配置处理器将只查询存在的设备,因为配置处理器使用各设备上定义在下一配置层上所有直接附加的设备的自定义配置数据。
在这一方法中,将系统的配置视为分层的树,其中的根是配置在EEPROM32且下一层包括所有平板设备。各平板设备的子节点包括直接连接在该平板设备上的任何设备。从而,配置树中的子节点包括直接连接在前面的父节点上的设备上的设备。在较佳实施例中,树中各层上的设备包含关于下一配置层上的任何子设备的配置信息。如果在一个配置层上增加或消除设备,该修改的层的父节点会指出这些改变。从而,计算机系统中的配置数据构成配置树,其中设备上的各层配置信息定义所有直接附加的设备的配置。这使配置处理器能在配置树中逐层的基础上动态地确定确切的配置。I2C总线的数目及I2CEEPROM或集线器的地址结构确定唯一地寻址I2C EEPROM所需的寻址次数。一些I2C芯片只支持一个字节的地址,而其它较大的芯片支持两个字节的地址。
结论
这终结了本发明的较佳实施例的描述。下面描述完成本发明的一些替代实施例。
这些较佳实施例可实现为利用标准与/或工程技术来生产软件、固件、硬件、或它们的任何组合的方法、装置或制品。这里所使用的名词“制品”(或又称“计算机程序产品”)旨在包括可从一或多个计算机可读的设备、载体、或介质访问的一或多个计算机程序与数据文件,诸如磁存储介质、“软盘”、CD-ROM、通过网络传输线提供对程序访问的文件服务器、全息单元等。当然熟悉本技术的人员会理解可对这一配置作出许多修改而不脱离本发明的范围。
较佳实施例是描述为使用I2C总线接口的。然而,在替代实施例中,可采用本技术中已知的任何其它总线协议来提供设备之间的通信。
在较佳实施例中,设备的配置信息是维护在EEPROM中的。然而,在替代实施例中,可将配置信息维护在任何类型的可编程或不可编程的非易失性存储器中。
较佳实施例将计算机体系结构描述为具有特定的平板设备与附加设备布置,即DIMM附加在提升卡上而振荡器附加在CPU上。然而,确定系统配置的较佳实施例技术可应用在包含任何数目与类型的平板设备及附加设备的任何计算机体系结构上。
较佳实施例将位置数据描述为包含特定类型的地址信息来寻址系统中某一层上的设备的,诸如IC地址、集线器地址、与选择器地址。然而,在替代实施例中,可提供不同类型的地址信息使配置处理器能寻址特定的设备。
较佳实施例将配置EEPROM描述为直接连接在平板I2C总线接口上的。然而,在替代实施例中,配置EEPROM可位于系统中不同位置上,诸如连接在配置处理器上。此外,在较佳实施例中,设备的配置存储器是嵌入该设备中的。然而,在替代实施例中,设备的配置存储器可以不直接连接在该设备上而可以在其它位置或其它非易失性存储器的存储区中。
总之,较佳实施例公开了确定具有平板、平板总线及附加的平板设备的计算机系统的配置的系统、方法与程序。在指示能附加在平板上的各平板设备的地址的平板配置存储器上执行读操作。然后发送读命令到平板配置存储器中所指示的各平板设备的地址上来确定各平板设备是否可以获得。读取各可以获得的平板设备的配置存储器来确定配置信息及是否存在可通过该平板设备访问的附加设备的地址。然后发送读命令到该平板设备的配置存储器中所指示的各附加设备的地址上来确定各附加设备的配置信息及是否存在可通过该附加设备访问的进一步的附加设备。发送读命令到任何配置存储器中所指示的任何附加设备的地址来确定配置信息及是否存在要考虑的任何进一步的附加设备及伴随的配置存储器。
本发明的较佳实施例的上文中的描述是为了示例与说明的目的提出的。并不旨在将本发明穷尽或限制在所公开的精确形式上。借助上面的教导,许多修改与变型都是可能的。本发明的范围预期不受这一详细描述的限制,而是由所附权利要求限定。上面的说明书、实例与数据提供了本发明的组成的制造与使用的完整的描述。由于可在不脱离本发明的精神与范围下作出本发明的许多实施例,本发明在于下面所附的权利要求中。