多端口装置配置的制作方法

文档序号:6492829阅读:156来源:国知局
专利名称:多端口装置配置的制作方法
技术领域
本发明的实施例涉及计算机系统,更具体地说,涉及计算机系统中多端口装置的配置。
背景技术
计算机系统通常包括处理器和芯片组。芯片组可包括一个或多个开关,它们通过若干总线将外围部件链接到处理器。外围部件互连(PCI)是为系统中的外围部件之间提供数据通路而开发的标准。随着处理器的速度加快,开发了提供计算机系统中高速数据通路的标准,例如PCI-X和PCI ExpressTM。
具有多端口的PCI ExpressTM兼容开关对于PCI兼容枚举和配置软件来说是一个两级分级结构的PCI-to-PCI桥。每个开关端口对于配置软件是一个独特的PCI-to-PCI桥。每个端口可以支持多达8个子功能,每个子功能可能引入所支持能力的链接列表。在这些端口中有一个上行端口。上行端口对软件来说是一个PCI-to-PCI桥,它是PCI兼容开关能读和/或写开关的内部配置寄存器的唯一端口。开关的所有其它端口称为下行端口,对配置软件来说是独特的PCI-to-PCI桥。结果,就形成了两级分级结构的PCI-to-PCI桥。
为了配置开关,配置软件读取存储在一组配置寄存器中的配置记录,并写到一些配置寄存器中。在一组配置寄存器中存储的配置记录实例示于图1。配置寄存器的大小受配置寄存器的地址限制,即8位宽。所以,该组配置寄存器限于存储28字节即256字节的信息,例如供应商ID、PCI状态、类别代码等。
由于开关的每个端口(包括上行端口)都是一个独特的PCI-to-PCI桥,因此每个端口都用其自己单独且独特的配置寄存器空间来表示。为了支持开关中的附加端口,就必须创建具有其相关配置寄存器空间的附加的PCI-to-PCI桥。对开关部件而言,为每个端口创建配置寄存器空间增加了额外的硅成本和复杂性。


从以下的详细说明以及从附图中就可对本发明的实施例有更充分的理解,但不应认为是将所附权利要求限制在所示的具体实施例上,它们仅用于说明和理解。
图1示出一组配置寄存器实例(PCI实例)。
图2A示出多端口装置的一个实施例。
图2B示出多端口装置的配置结构的一个实施例。
图2C示出多端口装置的配置结构的另一实施例。
图3示出能力结构列表的示范实施例。
图4示出用于配置多端口装置的过程的实施例流程图。
图5示出计算机系统的一个示范实施例。
具体实施例方式
描述了配置多端口装置的方法和设备。为了提供对本说明书的彻底理解,在以下说明中阐述了许多细节,例如具体配置、数据大小、缓冲能力等。但对业界技术人员来说,显然可能并不需要这些具体细节来实践本发明的每个实施例。
以下详细说明的一些部分是以符号表示和对计算机存储器中数据位的操作说明来介绍的。这些算法说明和表示都是数据处理专业技术人员向本专业其它人员最有效地传达他们工作本质所用的工具。在本文中,一般来说,算法是想出的导致所需结果的自相一致的操作序列。操作是需要实际操控物理量的那些操作。通常,虽然不是必须,这些量采取电或磁信号的形式,它们能够被存储、转移、组合、比较以及作其它操控。有时,主要是为了通用的原因,称这些信号为位、值、单元、符号、字符、术语、数字等更为方便。
但应记住,所有这些和类似的术语都应与适当的物理量相关联,而且仅仅是这些量的方便标记而已。除非在以下讨论中另有具体声明,否则应理解,在整个说明中,利用术语诸如“处理“或“计算”或“确定”或“显示”等的讨论是指计算机系统或类似的电子计算装置将计算机系统的寄存器和存储器中以物理(电子)量表示的数据操控和转换成计算机系统存储器或寄存器或其它此类信息存储、传输和显示装置中类似以物理量表示的其它数据的动作和过程。
本发明的实施例还涉及用于执行本文所述操作的设备。该设备可以为所需目的而专门构建,或者它可包括通用计算机,用计算机中存储的计算机程序选择性地激活或重新配置。这种计算机程序可存储在计算机可读存储介质中,例如但不限于包括软盘、光盘、CD-ROM以及磁光盘等任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、或适合于存储电子指令的任何类型介质,并且它们每个都连接到计算机系统总线。
本文提出的操作和显示并不固有地与任何特定的计算机或其它设备相关。各种通用系统可以和按照本发明内容的程序一起使用,或构建更专用的设备来实现所需方法步骤也许更方便。以下说明中会有用于各种这些系统的所需结构。此外,也不是就任何特定的编程语言对本发明的实施例进行说明。应理解,可以使用各种编程语言来实现本公开的内容。
机器可读介质包括以机器(例如计算机)可读形式存储或传输信息的任何机构。例如,ROM、RAM、磁盘存储介质、光存储介质、闪存装置、电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)等。
图2A示出了多端口装置201的实施例。在一个实施例中,多端口装置是先进转换部件,本文中称为AS开关。AS是一种转换构造结构,支持包括热添加/去除、冗余路径以及构造管理故障恢复等能力。而且,AS支持任何数量的端点装置或节点之间的直接通信、计算机系统中任两个节点之间的直接单播通信以及源节点和多个指定的目标节点之间的多播通信。多端口装置201包括多个端口204和配置空间存储器件203。配置空间存储器件203存储端口204的配置结构。在一个实施例中,配置空间存储器件203包括含有触发器的寄存器。在AS开关的另一实施例中,配置空间存储器件是动态RAM器件(DRAM)。或者,可以使用软件实现。例如,在一个实施例中,将配置空间存储在由软件定义的数据结构中。
图2B示出AS开关的配置能力结构实施例。配置能力结构200包括能力结构210。在一个实施例中,能力结构210存储关于所有开关端口对于给定能力所描述的功能都共用的属性的信息。存储在能力结构210中的信息的地址用相对于能力结构210开始的偏移240来表示。在一个实施例中,能力结构210在偏移00h存储AS能力ID标题,在偏移04h存储装置能力寄存器,在偏移08h存储装置控制和状态,在偏移0Ch存储路由标题修订和端口计数,在偏移10h存储装置序号,并在偏移18h存储流控制不足超时。在一个实施例中,预留一部分配置空间供将来使用。例如,在图2B中,偏移04h的装置能力寄存器部分含有预留的位字段。
此外,能力结构210存储一组指针220。每个指针220指定到所支持的一个独特AS开关端口。在一个实施例中,定义了8个指针,用于有8个端口的开关。在另一实施例中,定义了32个指针,用于有32个端口的开关。
在一个实施例中,提供了许多每端口能力结构230。在一个实施例中,每端口能力结构是一个数据结构,用于存储表示端口所支持能力的可编程单元。存储在每端口能力结构230中的可编程单元按照能力来组织。例如,端口0支持链路能力,这是多端口装置的数据链路所特有的能力,并且端口0的指针222指向对应于端口0的每端口能力结构232。每端口能力结构232存储链路能力的可编程单元,链路能力即链路状态和链路控制。在其它实施例中,能力结构230存储其它所支持能力例如错误报告和虚拟多路传输的可编程单元。
而且,可以不必为支持同一能力的开关的每个端口定义单独的能力结构。在一个实施例中,开关的两个端口基本上支持同一能力,所以这些端口的指针指向同一能力结构。不需要为每个端口定义单独的能力结构节省了配置数据的存储器。而且,指针简化了装置的配置,因为不需要为每个端口定义和维护一个单独的能力结构。
图2C示出具有n个端口的AS开关的配置能力结构202的另一实施例。配置能力结构202存储类似于图2B中配置能力结构200的AS开关属性的信息。存储在能力结构210中的信息的地址用相对于能力结构210开始的偏移240来表示。除了属性信息外,能力结构210存储n个指针,为开关的每个端口存储一个指针。指针221指定给端口0。端口0支持直接单播通信。所以,指针221指向存储直接单播通信的可编程单元的能力结构231。
在一个实施例中,在部件配置空间中有多个能力结构,例如2、5、8个等。图3示出具有4个能力结构310-313的开关的配置空间的实施例。能力结构310-313排列在能力结构列表300中。能力结构存储开关的属性305和许多指针,为开关的每个端口存储一个指针。例如,指针320用于端口0。
为建造图3所示的能力结构列表300,在一个实施例中,相对指针存储在一个能力结构中来指向第二个能力结构。例如,相对指针320存储在能力结构310中来指向能力结构311的先进转换能力ID331。相对指针320存储能力结构310的地址与能力结构311的地址之间的偏移。在一个实施例中,相对偏移存储为8位值。在另一实施例中,使用绝对偏移代替相对偏移。绝对偏移表示配置空间开始地址和能力结构311开始地址之间的差。所以,如果绝对偏移是8位,则能力结构的最高地址限于配置空间的开始地址加上28,即加上256。换句话说,在使用8位的绝对偏移时,配置存储空间限于256字节。该限制不适用于使用相对偏移的实施例,相对偏移表示两个连续能力结构之间的地址偏移。
如上所述,每个能力结构具有一组指针,指定到开关的许多端口。每个指针指向存储该端口所支持能力的可编程单元的每端口能力结构。为了避免模糊图3的实施例,仅示出一个指针322和一个能力结构332来说明此概念。应理解,每个能力结构存储一个或多个指针,并且每个指针指向一个相关的每端口能力结构。而且,配置空间具有一个或多个能力结构。例如,在图3中,存储在能力结构312中的指针322指定给开关的端口i。指针322指向每端口能力结构332,它存储端口i的能力信息。
将附加能力结构与指针相链接还提供了一种方便的途径来支持开关的附加端口。代替为每个所支持的附加端口创建配置空间,只要将指定给附加端口的指针添加到能力结构列表的能力结构中的指针列表即可。当部件所支持的端口数超过当前能力结构实现时,定义新版本的给定能力结构来容纳更高的端口计数是不值得的。
图4示出用于配置多端口装置的过程实施例的流程图。该过程是通过处理逻辑进行的,处理逻辑可包括硬件(例如电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行的)或二者的组合。
在一个实施例中,多端口装置具有n个端口。处理逻辑为多端口装置创建配置空间(处理块410)。处理逻辑还在配置空间中定义能力结构。处理逻辑将多端口装置的属性存储在能力结构中(处理块420)。处理逻辑在能力结构中为多端口装置的每个端口定义一个指针(处理块430)。然后处理逻辑检查存储端口所支持能力的可编程单元的每端口能力结构的配置空间(处理块440)。如果这种能力结构已存在于配置空间中,则处理逻辑设置指针指向这个每端口能力结构(处理块450)。否则,处理逻辑创建新的能力结构来存储该端口所支持能力的可编程单元(处理块445),然后设置指针指向新的每端口能力结构(处理块450)。处理逻辑为另一端口重复指针的定义,必要时为该端口定义每端口能力结构,直到每个所支持的端口都定义有指针和每端口能力结构。
在一个实施例中,处理逻辑在配置空间中创建附加的能力结构,以存储多端口装置所支持的附加特征或功能。处理逻辑通过存储在前面能力结构上的相对指针将附加的能力结构链接到前面的能力结构。所链接的能力结构形成如图3所示的能力结构列表。能力结构数在不同的实施例中各不相同,视多端口装置和在给定多端口装置上实现的端口数所支持的特征或功能数而定。
图5示出计算机系统500的示范实施例。在一个实施例中,系统500采用先进转换结构。图5中的系统500包括处理器510、存储控制器集线器520、主存储器530、先进转换部件540(以下称为“AS开关”)以及多个外围部件550-553。处理器510、主存储器530和AS开关540都连接到存储控制器集线器520。外围部件550-553连接到AS开关540。通过AS开关540,外围部件550-553互相通信,以及与处理器510和主存储器53通信。
图5中的主存储器530是机器可读介质的一个实例。业界一般技术人员应该知道,存在机器可读介质的其它实施例。机器可读介质包括提供(即存储和/传输)以机器(例如计算机、网络装置、个人数字助理、制造工具、具有一个或多个处理器的任何装置等)可存取形式的信息的任何机构。例如,机器可读介质包括可记录/不可记录介质(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存装置等)以及电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)等。
在一个实施例中,主存储器530存储配置AS开关540的指令。AS开关540包括多个端口541-544。端口数在不同的实施例中各不相同。在一个实施例中,AS开关540有3个端口。在另一实施例中,AS开关540有8个端口。外围部件连接到AS开关上的端口。例如,外围部件0550连接到端口P0541。为了配置AS开关540,定义一个配置空间。在配置空间中创建能力结构。将一组指针存储在能力结构中。每个指针指定到AS开关的一个端口。配置空间还包括许多能力结构,以存储表示各种所支持能力的许多可编程单元。能力结构中的可编程单元按照能力进行组织。能力结构中用于AS开关端口的指针指向存储表示该端口所支持能力的可编程单元的每端口能力结构。
为了支持AS开关中的附加端口,只需要在能力结构中定义附加指针即可。如果附加端口所支持能力的可编程单元已存储在任一现有能力结构中,则将附加指针设为指向现有能力结构。否则,将附加能力结构定义为存储附加端口所支持能力的可编程单元,并将附加指针设为指向这些附加能力结构。利用指针和能力结构来配置开关的端口使配置具有灵活性,因为能很容易将指针添加到能力结构中来支持附加端口,并且当一些端口基本上支持相同的能力时,能力结构可以在指针之间共享。
上述讨论仅说明了本发明的一些示范实施例。业界技术人员从上述讨论、附图和权利要求书中很容易认识到,在不背离权利要求书的精神和范围的前提下可进行各种更改。所以本说明书应认为是说明性的,而不是限制性的。
权利要求
1.一种配置多端口装置的方法,包括定义第一多个指针,为所述多端口装置的多个端口中的每个端口定义一个指针;以及将第一多个指针存储在所述多端口装置的一个或多个能力结构中。
2.如权利要求1所述的方法,还包括将所述一个或多个能力结构与第二多个指针耦合。
3.如权利要求2所述的方法,其中第二多个指针包括相对指针。
4.如权利要求1所述的方法,还包括将表示多个能力的多个可编程单元存储在多个能力结构中,其中所述可编程单元是按照能力来组织的;以及将第一多个指针中的每个指针指向所述多个能力结构之一。
5.如权利要求4所述的方法,还包括如果所述多个端口中的两个端口支持相同的能力,则将对应于所述两个端口的第一多个指针中的两个指针指向所述多个能力结构之一。
6.如权利要求1所述的方法,其中所述多端口装置是先进转换部件。
7.一种提供指令的机器可读介质,如果所述指令由处理器执行,则将使所述处理器执行配置多端口装置的操作,所述操作包括定义第一多个指针,为所述多端口装置的多个端口中的每个端口定义一个指针;以及将第一多个指针存储在所述多端口装置的一个或多个能力结构中。
8.如权利要求7所述的机器可读介质,其中所述方法还包括将所述一个或多个能力结构与第二多个指针耦合。
9.如权利要求8所述的机器可读介质,其中第二多个指针包括相对指针。
10.如权利要求7所述的机器可读介质,其中所述方法还包括将表示多个能力的多个可编程单元存储在多个能力结构中,其中所述可编程单元是按照能力来组织的;以及将第一多个指针中的每个指针指向所述多个能力结构之一。
11.如权利要求7所述的机器可读介质,其中所述多端口装置是先进转换部件。
12.一种设备,包括多个端口;以及存储器件,存储一个或多个能力结构,其中所述一个或多个能力结构存储第一多个指针,为所述多个端口中的每一个存储一个指针。
13.如权利要求12所述的设备,其中所述一个或多个能力结构通过第二多个指针彼此耦合。
14.如权利要求13所述的设备,其中第二多个指针包括相对指针。
15.如权利要求12所述的设备,其中所述存储器件还存储第二多个能力结构,以存储表示多个能力的多个可编程单元,所述多个可编程单元是按照能力来组织的,并且第一多个指针中的每个指针指向第二多个能力结构之一。
16.如权利要求15所述的设备,其中如果所述多个端口中的两个端口支持相同的能力,则将对应于所述两个端口的第一多个指针中的两个指针指向第二多个能力结构之一。
17.如权利要求12所述的设备,其中所述多个端口包括一个或多个先进转换端口。
18.一种计算机系统,包括图形芯片;以及多端口装置,连接到所述图形芯片,所述多端口装置包括多个端口;以及存储器件,存储一个或多个能力结构,其中所述多个能力结构存储第一多个指针,为所述多个端口中的每一个存储一个指针。
19.如权利要求18所述的计算机系统,其中所述一个或多个能力结构通过第二多个指针彼此耦合。
20.如权利要求19所述的计算机系统,其中第二多个指针包括相对指针。
21.如权利要求18所述的计算机系统,其中所述存储器件还存储第二多个能力结构,以存储表示多个能力的多个可编程单元,所述多个可编程单元是按照能力来组织的,并且第一多个指针中的每个指针指向第二多个能力结构之一。
22.如权利要求21所述的计算机系统,其中如果所述多个端口中的两个端口支持相同的能力,则将对应于所述两个端口的第一多个指针中的两个指针指向第二多个能力结构之一。
23.如权利要求18所述的计算机系统,其中所述多个端口包括一个或多个先进转换端口。
24.如权利要求18所述的计算机系统,还包括处理器。
全文摘要
公开了配置多端口装置的方法和设备。该方法包括定义第一组指针,为多端口装置的每个端口定义一个指针,并将第一组指针存储在多端口装置的一个或多个能力结构中。
文档编号G06F9/445GK1860438SQ200480025748
公开日2006年11月8日 申请日期2004年9月3日 优先权日2003年9月10日
发明者P·伊斯基延, J·谢菲尔, G·索洛蒙 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1