设备表示装置和方法

文档序号:6417361阅读:285来源:国知局
专利名称:设备表示装置和方法
背景信息由于计算机在日常生活中扮演更重要的角色,相对于系统性能,可靠性、可用性和适用性(RAS)已变成要考虑的重要因素。为此,正在向所选(通常是高端)计算机系统添加了对热插拔操作的支持(即,其中有效操作计算机系统平台的某些部分可移除或替换而只有很少或没有整体操作性能的劣化)。
附图概述

图1是根据本发明实施例的表示外围装置的伪码方法;图2是根据本发明各种实施例的设备、系统和制品;以及图3是根据本发明实施例的表示外围装置的方法的流程图。
具体实施例方式
在本发明实施例的以下详细描述中,参考附图,其中附图构成实施本发明的具体实施例的一部分并以说明方式示出而非限制性的。在附图中,相同的标号始终表示基本相似的部件。所说明的实施例被描述得足够详细以使本领域的熟练技术人员能理解和实施。也可从其中派生出和使用其它实施例,从而可进行结构和逻辑替换及变化而不背离本揭示内容的范围。因此,以下的详细描述不是限制性的,且本发明的各种实施例的范围仅由所附权利要求书及其等效物的全部范围限定。
在首先供电给计算平台后(即,通电后),通常进行某些形式的初始化操作或序列。在此期间,多数的平台部件以及它们的相关联设备通过平台启动代码(诸如基本I/O系统(BIOS)软件)被寻址和初始化。
当热插拔“热添加”操作发生时,对于初始化,添加到操作平台上的任何部件通常需要某种注意。但是,由于热插拔过程中平台不控制平台BIOS,通常由OS执行BIOS提供的设备专用代码以实现热插拔初始化。例如,这种操作机制可使用ACPI规范中限定的高级配置和电源接口(ACPI)源语言(ASL)实现。关于ACPI和ASL的其它信息可参考2002年3月31日的ACPI Specification,Revision 2.0a。
热插拔性能的特殊实例涉及基于Intel82870的服务器,一个或多个可热插拔的可升级节点控制器(Scalable Node Controllers)(SNCs)以及一个或多个I/O集线器(Hubs)(SIOHs)。当部件涉及与服务器有关的热插拔操作时,与这些部分有关的所有单独设备也都涉及该操作。因此,当单个SIOH被热替换时(例如,热移除第一SIOH,随后热添加第二SIOH),通常意味着还热替换两个IntelP64H2设备(即,PCI桥接)和一个ICH2(即,I/O控制器集线器)。
每个P64H2设备都可包括两个Intel82093AA I/O高级可编程中断控制器(IOAPICs),它们通常通过BIOS暴露给OS作为传统设备。这样,每个IOAPIC都在ACPI名字空间中被识别为具有“PNP0003”的即插即用(Plug and Play)TM标识符的MicrosoftWindows兼容设备,而不是具有“中断控制器”标识符的PCI总线层次中的PCI设备。更多关于Plug and PlayTM标识符的使用参考ACPI规范,Table5-42。
在热插拔操作中,由BIOS初始化的传统设备通常需要ASL初始化。不幸地,基于ASL的热插拔初始化只可以在PCI配置空间内执行,且除非该设备被表示为PCI设备否则不会进行。当前可得的OS不能观看和支持IOAPIC设备作为PCI设备。事实上,当前可得的OS忽略具有“中断控制器”标识符的PCI设备。OS不能将IOAPIC作为传统设备和PCI设备对待阻止了诸如SIOH的包括一个或多个IOAPIC的部件的热插拔操作的使用。
这里描述了一种新机制,它用于识别和表示外围装置,诸如中断控制器,从而操作软件能在通电初始化期间将外围装置作为传统设备对待,并在热插拔操作后的初始化操作中作为PCI设备对待。在一个实施例中,这是通过将外围装置识别为传统设备和虚PCI设备而实现的。
图1是根据本发明实施例的识别外围装置的伪码方法。在该实例中,假定外围装置是中断控制器,类似于或相同于IOAPIC(例如,P64H2装置的两个IOAPIC形成部分之一),它包括具有IOH、两个P64H2装置和一个ICH2装置的可热插拔I/O节点的一部分。为参考,可热插拔I/O节点类似于或相同于I/O节点(即,图2所示的元件280),以下将描述。也可参考ACPI规范,版本2.0a,2002年3月31日,关于图1所描述的某些方法和对象的事实细节。
阐述实施本发明实施例的方法110的一实例的图1的伪码包括初始化部分118。在行120中,形成可热插拔I/O节点一部分的IOH与模块装置关联,即用作名字空间中的总线节点的容器对象。因此,创建名为“IOH1”的装置,且经由HID对象,所创建的装置与Plug and PlayTM标识符“ACPl0004”关联。随后,经由UID对象,行122中,节点标识与节点的唯一的持久标识“_NID_IOH1”关联。随后,在行124中,评估_STA方法以确保IOH被连接,方法110还具有传统标识部分130,其中IOAPIC装置被识别为传统装置,以及PCI标识部分132,其中IOAPIC装置被识别为PCI装置用于热插拔操作期间的访问。在行134和138中,在ACPI名字空间中创建装置“IA09”,并与“PNP0003”的Plug and PlayTM标识符(它通知OS该装置是中断控制器)关联。在行142中,检查装置的状态,随后在行146中,_CRS方法用于向OS识别装置IA09将使用哪些资源(I/O、存储器映射地址空间等等)。在行150中,_MAT方法用于向OS识别将使用哪个基地址来操作该装置,以及提供关于中断控制器(或其它装置)基矢量位于平台(系统)中的什么位置的信息。这在_MAT被评价为多APIC描述表(MADT)一系列APIC结构条目的格式的缓冲返回数据而完成。当系统中有多个IOAPIC时0S需要后者信息。因此,在伪码的传统标识部分130的结尾,装置IA09将IOAPIC以及编程和使用IOAPIC所需的所有信息曝光给传统OS(它不将IOAPIC寻址为PCI装置)。
在伪码的PCI标识部分132,行154中,启动代码(例如,BIOS)已在ACPI名字空间中创建了装置“IP09”。IP09装置是热添加过程中使用的虚PCI装置以编程用于传统操作的IOAPIC。在行158中,ADR方法借助PCI编程机制提供编程该装置所必需的信息。更具体地,提供了ACPI部件的装置数和功能数,从而OS可在热添加操作期间使用它们用于初始化/编程该装置。因此,随后,热添加操作期间执行的ASL方法(用于将该装置编程为传统IOAPIC)能借助PCI配置空间访问该装置用于初始化和编程。
由于ASL方法由启动代码提供并由OS解释/执行,应向OS识别应被编程的装置的元件以及用于将它们编程的机制。行162中指定的操作区域提供该信息。因此,在这种情况中,OS接收使IP09与指定区域关联的信息(例如,0x40的配置空间中的基地址以及0x41的长度),且IP09装置被识别为具有类型“PCI_CONFIG”。
热添加操作中执行的ASL方法现在能参考指定的操作区域。例如,如果在操作区域中定义命名为“RegA”的字段(这将在对装置IP09的操作区域定义已限定后进行),且如果热添加操作期间该字段需要被设定为值“1”以使IOAPIC被编程为按传统模式操作,则热添加时执行的ASL方法使用以下指令,它被表达为ASL方法store(One,_SB.IOH1.IP09.REGA)使用图1的伪码,OS可解释该语句以表示IP09具有类型PCI_CONFIG。使用_ADR方法中提供的装置信息(即,装置0x1e,功能0,以及REGA离开IP09配置空间中的基地址的偏移),可以对IOAPIC的PCI配置空间中的校正寄存器(correctregister)编程。
虽然伪码和实际码的特殊混合已用于说明图1所示的本发明实施例的操作,但应强调,图1所示方法的其它伪码和实际码实现也可使用,且它们也包含在本发明各种实施例的范围之内。
图2是根据本发明各种实施例的装置、系统和制品的框图。互连开关276耦合到一个或多个I/O节点280,以及可升级节点控制器(SNC)282,顺次耦合到含数据284的存储器283以及一个或多个处理器285。I/O节点280和SNC282可以是可热插拔部件。
I/O节点280可包括I/O集线器(IOH)287,诸如服务器I/O集线器(SIOH)287,它耦合到和/或包含一个或多个可热插拔装置288,包括PCI桥接装置288,类似于或相同于P64H2装置,它顺次可包含一个或多个中断控制器290(例如,类似于或相同于IOAPIC),其中每一个都与传统寄存器291和PCI虚寄存器292关联或包含之。SIOH287也可耦合到和/或包含PCI装置293(可能经由PCI总线294)以及ICH2装置295。
在一个实施例中,装置296可包含存储器映射的传统寄存器291,以及PCI虚寄存器292,诸如外围装置290中包含的那些。例如,位于IOAPIC的基地址处的传统寄存器291可通过启动代码(例如BIOS)访问,作为外围装置290的上电初始化操作或序列的一部分。利用OS可执行的代码,诸如从ASL派生出的代码,在PCI总线层次中的装置有关的热插拔操作期间访问PCI虚寄存器292。
在另一个实施例中,系统297可包括装置296,它具有外围装置290(例如,与存储器映射的传统寄存器291和PCI虚寄存器292有关或包含之的装置)以及IOH287,它能通信地耦合到外围装置288。可热插拔PCI装置293可通信地耦合到系统297,可能需利用PCI总线294。如上所述,外围装置290可类似于或相同于IOAPIC,或者甚至PCI桥接装置288,诸如P64H2装置。
系统还可包括一个或多个SNC282,它能通信地耦合到IOH287,可能需利用开关276。此外,SNC282能进行热插拔操作。
应注意,这里,开关276、存储器278、节点280、SNC282、IOH287、装置288、装置290、寄存器291和292、可热插拔装置293、ICH2装置295、装置296和系统297都可被特征化为“模块”。这种模块包括硬件电路,诸如微处理器和/或存储器电路,软件程序模块,和/或固件,及其组合,如装置296和系统297的架构所指示的并适合于本发明的各种实施例的特殊实现。
本发明的各种实施例的装置和系统可用于除包括互连服务器和可热插拔I/O节点的那些之外的应用中,因此,本发明不限于此。装置296和系统297的说明旨在提供本发明各种实施例的结构的一般理解,并非旨在用作可利用这里描述的结构的装置和系统的所有元件和特点的完全描述。
包含本发明各种实施例的新颖装置和系统的应用包括高速计算机中使用的电子电路,通信和信号处理电路,处理器模块,嵌入处理器和应用专用模块,包括多层、多芯片模块。可进一步包含这种装置和系统作为各种电子系统,诸如电视机、摄像机、移动电话、个人计算机、无线电、车辆、医学监控设备等等的子组件。
图3是根据本发明实施例的表示外围装置的方法的流程图。从图1所示的伪码实例中的推广,方法311可以供电给诸如I/O节点的计算平台和诸如中断控制器(例如,IOAPIC)的外围装置开始,块321处。该方法可继之以将外围识别为诸如ACPI名字空间的名字空间中的传统装置,在块S325。在块331,方法可包括将外围装置识别为外围部件互连(PCI)装置,能在热插拔操作中被访问,其可顺次包括创建操作区域用于在热插拔操作期间访问作为PCI装置的外围装置。
在步骤325处将外围装置识别为传统装置可以包括使传统装置与装置标识符关联,诸如Plug and PlayTM标识符,在块335(例如,利用ACPI规范的_HID对象关联标识符),在块341,识别传统装置所需要的资源(例如,使用ACPI规范的_CRS对象),并在块345,识别与传统装置有关的地址空间(例如,使用ACPI规范_MAT对象)。
根据使用中的OS,例如,考虑忽略PCI装置描述的OS,在块351,外围装置被初始化为传统装置。或者,如果OS通常与PCI装置兼容,在块355,可将外围装置初始化为PCI装置。如果在块361处装置被热添加到平台,装置可在块355处再次被初始化为PCI装置。步骤361和355可不确定地重复。
应注意,虽然这里ACPI和ASL兼容程序执行已用于表示外围装置的某些实例中,但根据本发明的各种实施例也可使用其它机制,因此,本发明不限于此。因此,应清楚的是,本发明的某些实施例可在由计算机执行的计算机可执行指令(诸如程序模块)的上下文中描述。通常,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。
因此,参考回图2,可看到根据本发明实施例的制品298。在阅读和理解本揭示内容时,本领域的普通技术人员将理解软件程序可从基于计算机的系统中的计算机可读介质中启动以执行的这种软件程序中限定的功能的方式。本领域的普通技术人员将进一步理解用于创建设计用于实现和执行本发明方法的软件程序的各种编程语言。这种程序可按面向对象的形式构建,利用面向对象的语言,诸如Java、Smalltalk或C++。或者,程序可按面向过程的形式构建,使用过程语言,诸如COBOL或C。软件部件可利用本领域普通技术人员公知的大量机制中的任一种进行通信,诸如应用程序接口(API)或进程间通信技术。但是,如阅读本揭示内容时本领域普通技术人员所理解的,本发明各种实施例的教导不限于任何特殊的编程语言或环境。
如以上描述中显见的,处理器285通常访问至少某些形式的计算机可读媒介,诸如存储器283。但是,计算机可读和/或可访问媒介可以是可由处理器285、装置296和/或系统297访问的任何可供使用的媒介。
作为实例而非限制,计算机可读媒介可包括计算机存储媒介和通信媒介。计算机存储媒介包括利用任何信息存储方法或技术实现的易失性和非易失性、可移动和不可移动媒介,诸如计算机可读指令、数据结构、程序模块或其它数据。通信媒介特别体现诸如载波、编码信息信号和/或其它传输机制的调制数据信号(其包括任何信息传递媒介)中存在的计算机可读指令、数据结构、程序模块或其它数据。术语“调制数据信号”表示具有一种或多种特性按一定方式设置或改变以对信号中的信息编码的信号。作为实例而非限制,通信媒介还包括有线媒介,诸如有线网络或直接有线连接,以及无线媒介,诸如声、光、无线电频率、红外线和其它无线媒介。以上的任意组合也包含在计算机可读和/或可访问媒介的范围之内。
因此,参考图2,现在易于理解,本发明的其它实施例包括制品298,它包含具有相关联的数据284的机器可访问的介质283,其中在被访问时数据284使得机器285执行活动,诸如在名字空间中将外围装置识别为传统装置,以及在热插拔操作中将外围装置识别为能被访问的PCI装置。
其它活动可包括在有关平台的初始化操作或顺序期间使用启动代码(例如BIOS)访问外围装置作为传统装置,或者在将I/O节点中包含的外围装置热添加到平台上后,例如利用由OS执行的代码(例如,ASL派生的代码)初始化外围装置作为PCI装置。
虽然这里已说明和描述了特定实施例,但本领域的普通技术人员将理解,实现相同用途的任何结构都可替换所示出的特定实施例。本揭示内容旨在覆盖本发明的任何以及所有更改或变化。应理解,以上描述仅仅是说明性的而非限制性的。以上实施例和这里没有专门描述的其它实施例的组合是本领域熟练技术人员在阅读以上描述后显而易见的。本发明实施例的范围包括其中使用以上结构和方法的任何其它应用。本发明的实施例的范围应参考所附权利要求书及其等效物的全部范围确定。
应强调,揭示内容的摘要提供用于符合37C.F.R.§1.72(b),其要求摘要以允许读者快速确认技术揭示内容的性质。可以理解,它不会用于解释或限制权利要求书的范围或意思。在以上本发明实施例的详细描述中,各种特点被组合在单个实施例中,以使揭示内容连贯。该揭示方法不被解释为旨在使所要求的本发明实施例需要比每个权利要求中所表达特点更多的特点。如以下权利要求书所反映的,发明主题位于小于单个揭示实施例的所有特点。因此,以下权利要求书结合在本发明实施例的详细描述中,且每个权利要求支持其自身作为分别的优选实施例。
权利要求
1.一种装置,其特征在于,包括与一装置关联的第一寄存器,该第一寄存器由启动代码访问,作为初始化操作的一部分,它将该装置作为传统装置处理;以及与该装置关联的第二寄存器,利用由操作系统执行的代码,在热插拔操作中该第二寄存器被访问,它将该装置作为外围部件互连(PCI)装置处理。
2.如权利要求1所述的装置,其特征在于,启动代码包括基本输入/输出系统。
3.如权利要求1所述的装置,其特征在于,所述装置包含在可热插拔的输入/输出节点中。
4.如权利要求1所述的装置,其特征在于,所述装置包含可热插拔的PCI桥接装置中。
5.如权利要求1所述的装置,其特征在于,所述装置是PCI总线层次中的装置。
6.如权利要求5所述的装置,其特征在于,所述装置包括中断控制器。
7.一种系统,其特征在于,包括一装置,包括第一寄存器,它作为初始化操作的一部分由启动代码访问,将装置作为传统装置处理,以及第二寄存器,它在热插拔操作中利用操作系统执行的代码被访问,将装置作为外围部件互连(PCI)装置处理;以及输入/输出集线器,它能通信地耦合到该装置。
8.如权利要求7所述的系统,其特征在于,进一步包括可热插拔装置,它能使用PCI总线通信地耦合到装置。
9.如权利要求7所述的系统,其特征在于,第一寄存器位于装置的基地址处。
10.如权利要求7所述的系统,其特征在于,进一步包括节点控制器,它能通信地耦合到输入/输出集线器。
11.如权利要求10所述的系统,其特征在于,节点控制器能进行热插拔操作。
12.一种方法,其特征在于,包括在名字空间中,将装置识别为传统装置;以及将装置识别为在热插拔操作中能被访问的外围部件互连(PCI)装置。
13.如权利要求12所述的方法,其特征在于,在名字空间中将装置识别为传统装置包括使传统装置与装置标识符关联;以及识别与传统装置相关联的地址空间。
14.如权利要求12所述的方法,其特征在于,在名字空间中将装置识别为传统装置包括使传统装置与装置标识符关联;以及识别传统装置所需的资源。
15.如权利要求12所述的方法,其特征在于,在供电给平台之前装置可操作地耦合到平台,进一步包括供电给平台和装置;以及将该装置初始化为传统装置。
16.如权利要求12所述的方法,其特征在于,进一步包括将所述装置热添加到平台上;以及将该装置初始化为PCI装置。
17.一种包括具有相关联数据的机器可访问介质的制品,其特征在于,在被访问时所述数据使得机器执行在名字空间中将装置识别为传统装置;以及将装置识别为热插拔操作中能被访问的外围部件互连(PCI)装置。
18.如权利要求17所述的制品,其特征在于,机器可访问介质进一步包括数据,该数据在被机器访问时使得机器执行在平台的初始化序列期间利用基本输入/输出系统把该装置作为传统装置访问。
19.如权利要求18所述的制品,其特征在于,机器可访问介质进一步包括数据,该数据在被机器访问时使得机器执行将包含于输入/输出节点中的装置热添加到平台;以及利用操作系统执行的代码将该装置初始化为PCI装置。
20.如权利要求17所述的制品,其特征在于,机器可访问介质进一步包括数据,该数据在被机器访问时使得机器执行利用从配置和电源接口语言中派生出的操作系统可执行代码初始化该装置。
21.如权利要求17所述的制品,其特征在于,将装置识别为热插拔操作中能被访问的PCI装置包括创建操作区域,用于在热插拔操作期间访问PCI装置。
全文摘要
一种装置和系统可包括外围装置,诸如中断控制器或外围部件互连(PCI)桥接装置,它具有存储器映射的传统寄存器和PCI虚寄存器。传统寄存器可由基本输入/输出系统(BIOS)访问,作为外围装置的通电初始化序列的一部分,虚寄存器可在热插拔操作中使用由操作系统(OS)执行的代码而被访问。包括机器可访问介质的制品可包含数据,这些数据能使得机器执行表示外围装置的方法,它包括在诸如高级配置和电源界面(ACPI)名字空间的名字空间中将外围装置识别为传统装置,以及将外围装置识别为热插拔操作期间能被访问的虚PCI装置。
文档编号G06F9/445GK1742259SQ03823211
公开日2006年3月1日 申请日期2003年9月19日 优先权日2002年9月30日
发明者S·考谢克, J·克罗斯兰, M·库马, L·兰金, D·奥谢 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1