通过i/o设备的芯片组特征检测与配置的制作方法

文档序号:6507161阅读:266来源:国知局
专利名称:通过i/o设备的芯片组特征检测与配置的制作方法
背景各种计算机系统体系结构已采用多种途径来配置计算机系统内的多个设备之间的交互,尤其是I/O设备与支持处理器的芯片组内核心逻辑之间的交互。多种途径已包括固件(储存在非易失性存储设备中的软件)的使用,所述固件被处理器执行来完成各种功能,以检测和配置芯片组的特征(feature)和/或芯片组与I/O设备之间的总线。多种途径还已包括设备驱动器的供应,所述设备驱动器被处理器作为执行构成操作系统的代码的部分执行,以同样检测和/或配置芯片组的特征和/或这些特征与给定I/O设备的交互。
无论是在当计算机系统首次被加电或重启时所执行的固件内,还是在伴随操作系统的设备驱动器软件内,由于对软件的依赖性而在这些各种途径中出现各种缺点。每当使用软件来检测和/或配置任意件硬件的特征时,软件的选择必须与硬件的选择成对并且匹配,这对于终端用户来说是麻烦并且混乱的,尤其在设备驱动器的情况下,因为计算机系统的典型终端用户很少理解哪些件硬件构成他们使用的计算机系统,更别说哪些软件应该伴随这些硬件。对于终端用户来说,通过在计算机系统固件内提供软件来检测和/或配置特征,这种困境稍微得到改善,因为所述固件通常被计算机系统构建者匹配到构成计算机系统的多个部分。但是,一旦这种匹配已经在硬件与软件之间建立,并且软件已被储存在固件中,对该固件作出改变以容纳更新硬件的添加将会麻烦(经常比设备驱动器的情况更麻烦)。经常要求特殊工具来将固件的新变体“闪写(flash)”或“烧写”到非易失性储存器内,并且由于采用这样的工具而不需要可以提供各种便利来使终端用户更加容易使用工具的操作系统的好处的共同要求,改变固件的这个任务对于终端用户来说可能甚至更加困难。通过提供储存在伴随新硬件被添加到计算机系统的附加非易失性存储设备中的“可选ROM”固件,处理固件的闪写/烧写或者操作系统设备驱动器的改变的困难已经在某种程度上得到解决。但是,这种途径要求非易失性存储设备对新硬件的伴随,并且取决于所添加硬件的属性,这可能不会总是可能的。
无论软件是怎样被提供的,依赖于软件的另一个的缺点在于,要求完全初始化的处理器和存储器来执行软件,并且可能会存在这样的电子设备(包括计算机系统或者部分计算机系统)配置,其中处理器和/或存储器完全不可用,或者至少在该电子设备加电或者重启后的一段时间内不可用。尽管处理器或者存储器之一不可用,人们可能仍然期望能够继续检测和/或配置硬件特征。
附图简要说明查看以下详细描述后,本领域技术人员将会清楚本发明的目的、特征以及优点,其中


图1为采用计算机系统的实施方案的框图。
图2为采用计算机系统的其他实施方案的另一框图。
图3a、3b、3c、3d与3e共同描绘了采用消息的尝试发送来查找硬件特征的实施方案的消息的细节。
图4为采用计算机系统的其他实施方案的再一框图。
图5为采用计算机系统的其他实施方案的又一框图。
图6为实施方案的流程图。
图7为另一实施方案的流程图。
图8a、8b和8c共同描绘了采用消息的尝试发送来查找硬件特征的另一实施方案的消息的细节。
图9为又一实施方案的流程图。
具体实施例方式
在以下描述中,为了解释的目的,阐述了很多细节以提供对本发明的完整理解。然而,本领域中技术人员将会清楚,如在下文中所要求的,为了实践本发明这些具体的细节不是必需的。
如在下文中所要求的本发明涉及引入对电子系统组件(component)的支持,以作出或回答关于一个或更多个被提供以增强功能性的特征的可用性的询问,以及如果存在可用的特征,提供对这样的硬件特征的某种程度的仲裁与/或配置的支持。虽然以下的讨论反复提及DMA控制器作为硬件特征,但是这种对硬件特征的选择仅仅想要是一个可能的硬件特征的实施例,针对所述硬件特征发生询问、仲裁和/或配置,附加于DMA控制器或者代替DMA控制器的其他硬件特征是可能的。此外,虽然以下讨论集中在计算机系统上,但是本领域熟练技术人员将会理解在所附权利要求书中所要求保护的本发明可以被实现以支持其他形式的电子系统。
图1为采用计算机系统的实施方案的框图。计算机系统100至少部分由处理器110、总线119、逻辑120、总线149和系统存储器140构成。处理器110、总线119、逻辑120、总线149和系统存储器140构成能够执行机器可读指令的一种形式的计算机系统100核心(core),所述机器可读指令可以被储存在系统存储器140内和/或被储存在计算机系统100的其他设备内。但是,如本领域的技术人员将容易意识到的,这仅仅是许多可能的计算机系统100核心形式的一个实施例,并且计算机系统100还可以进一步还由未示出的其他总线和设备构成。
在各个实施方案中,处理器110可以是多种处理器的任意一种,包括能够执行至少部分由英特尔公司(加利福尼亚州圣塔克莱拉市的公司)所发明的被广泛了解与使用的“x86”指令集的处理器。再者,在各个可能的实施方案中,也可能存在多于一个处理器连同额外的总线和/或设备来为多于一个处理器(未示出)提供支持。
逻辑120通过总线119被耦合到处理器110,并且完成各种功能来支持处理器110对指令的执行,所述功能包括控制并为处理器110提供对系统存储器140的访问,逻辑120还通过总线149被耦合到所述系统存储器140。逻辑120还提供对构成计算机系统100的其他设备的访问,逻辑120通过总线169被耦合到所述其他设备。在被耦合到总线119、149和169并且给处理器110提供对系统存储器140以及通过总线169对其他设备的访问时,逻辑120作为这些总线之间的通常被称为“桥”的角色。在作为桥时,逻辑120还给计算机系统100提供存储器控制器122以帮助完成总线149上的事务,以及配置逻辑127以帮助配置逻辑120内的各个硬件特征来供在计算机系统100的正常操作期间使用,所述配置逻辑127的帮助包括帮助经过(across)总线119和/或169的事务的完成。在一些实施方案中,为了减轻处理器110完成一些数据块传送的负担,逻辑120的示例性硬件特征可以是DMA控制器130。
在各个实施方案中,系统存储器140可以是多种类型随机访问存储器(RAM)中的任意一种,包括快速页面模式(FPM)、扩展数据输出(EDO)、单数据率(SDR)或双数据率(DDR)形式的同步动态RAM(SDRAM),或者采用RAMBUSTM接口或其他接口的RAM。存储器控制器122和总线149被配置为支持一种或更多种类型的存储器和/或存储器接口的定时(timing)和/或协议要求。
如还在图1中所描述的,总线169将逻辑120耦合到设备170和180。设备170和180可以是各种类型的设备中的任意一种,包括盘控制器、使用多个协议中的任意一个来与计算机系统100外部的设备通信的并行或串行接口端口、图形控制器、用于可移除固态介质的连接的接口、桥设备、测试设备等。与逻辑120相同,设备170和180分别具有配置逻辑177和187,以帮助配置设备170和180内的各个硬件特征。
可能作为计算机系统100被加电的结果,或者可能作为因为由计算机系统用户按下重启动按钮或者通过各种可能形式的软件导致计算机系统100的重新引导而导致的计算机系统100被“重启动”的结果,当计算机系统100被初始化的时候,处理器110可以执行储存在系统存储器140内的一连串指令(软件),所述指令导致处理器110访问配置逻辑127、177和/或187中的一个或更多个,以配置所述逻辑120、设备170和/或设备180中的一个或更多个供使用。在对配置逻辑127、177和/或187中的一个或更多个的这种访问期间,可以用这样的值编程各个配置寄存器,所述值使能(enable)各个硬件特征,为端口和缓冲区指派地址范围,指派总线ID和设备ID编号等。在一些实施方案中,用地址范围等来编程寄存器的这种操作可以给配置逻辑127、177和187中的每一个提供为逻辑120、设备170和设备180的每一个形成独特ID值所需要的信息。在其他实施方案中,这种寄存器的编程还可以是逻辑120、设备170和设备180的每一个被准许与总线169和/或无法交互的其他总线交互以允许由处理器110对配置逻辑127,177和/或187的访问的先决条件。
在处理器110对配置逻辑127、177和187的这种访问之后,设备170的配置逻辑177尝试访问配置逻辑127,以检测和配置可能是DMA控制器130的逻辑120的硬件特征,供设备170使用。在做出这种尝试访问时,配置逻辑177正测试以确认设备170确实被连接到逻辑120,这可能是因为逻辑120和设备170是由同一供应商为计算机系统100的构造所提供的,并且因此设备170尝试这种对逻辑120的访问以确定逻辑120是否存在并且附接到设备170,所述确定操作作为确定对于逻辑120来说可能为独特的具体硬件特征对于设备170的使用是否可用的部分。在这种实施方案中,如果确定设备170没有通过总线169被耦合到逻辑120(即如果用一些其他设备替换图1中的设备120),那么在一些变化中,配置逻辑177可以配置至少部分设备170,以无需逻辑120的所期望硬件特征的帮助而运行,或者在其他不可能无需逻辑120的所期望硬件特征操作设备170的一些部分的变化中,配置逻辑177可以禁用至少部分设备170。通过实施例的方式,如果设备170的功能性将通过设备170和逻辑120内的DMA控制器130之间的交互以协助数据块的传送被改进,那么配置逻辑177尝试到配置逻辑127的访问,以确定逻辑120被耦合到设备170和/或DMA控制器130存在并且可供设备170使用。
在尝试访问配置逻辑127中,配置逻辑177可以发送标识设备170的供应商的值和/或设备170的标识符它本身。配置逻辑177还可以发送被编程到配置逻辑177内的一个或更多个配置寄存器中的一个或更多个数据段,通过被给到设备170和/或总线169的标识编号,设备170可能被访问。配置逻辑127可以检查由配置逻辑177在尝试访问中所发出的一个或更多个值,以标识做出尝试访问的设备和/或做出尝试访问的设备的供应商ID,以确定由配置逻辑177所尝试的访问是否为配置逻辑127应该响应的事务和/或确定配置逻辑127应该怎样响应。可能如果由配置逻辑177所发出的标识例如设备170的供应商的值并不标识配置逻辑127应该响应的供应商,那么配置逻辑177可以简单地忽略所尝试的访问,仿佛配置逻辑177不存在一样。可替换地,配置逻辑127可以通过发信号通知错误来响应这种在标识值中的错配,可能使用由总线169提供的用于指示错误已发生的协议。但是,如果配置逻辑177已经传输了提供配置逻辑127确定应该接受的某些形式的标识的值,那么配置逻辑127可以用地址进行响应,所述地址提供到可以给逻辑177提供更多关于所查找的硬件特征的信息的位置的指针,和/或提供在其可以找到通过其设备170可以开始与逻辑120内部所查找的硬件特征交互的寄存器和/或缓冲区的位置。在其中多于一个设备(例如,设备170和180)可以查找以使用逻辑120内相同的硬件特征的实施方案中,多个设备中的哪个应该被准予所查找的硬件特征的使用之间的一种形式的仲裁可以基于这些多个设备中的哪个为第一个在访问配置逻辑127上做出尝试的信息。在这种实施方案中,可能只有作出这种尝试来访问的第一个设备被配置逻辑127以指示成功获得所查找的硬件特征的使用的方式响应,同时所有其他设备完全没有被响应。可替换地,在这种实施方案中,可能由所有查找以使用所查找的硬件特征的设备所尝试的这种访问都被响应,但是只有这些响应中的一个包括成功被准予使用硬件特征的指示。任意一种方式,配置逻辑127内的寄存器和/或系统存储器140内被耦合到总线169的设备可读的存储器位置可以提供初始指示硬件特征对于第一个读所述寄存器或存储器位置的任意一个设备为可用的位,例如位,但是然后这个位被设置为不同的值,从而该寄存器或存储器位置(可推断地由除了对其硬件特征曾作为可用的所述一个设备的设备)的所有后继读操作将指示硬件特征不可用,即在寄存器或存储器位置中作为简单形式的仲裁的被称为“读设置”位的位。
可以给从另一设备查找给定硬件特征的设备的可能形式的响应的更多细节将连同在多个设备之间针对到给定硬件特征的访问的可能形式的仲裁的更多细节一起随后被讨论。关于作出的对配置逻辑127的尝试访问,诸如尝试读或写事务,或者尝试消息发送的不同类型的尝试访问是可能的。
在一些实施方案中,配置逻辑177通过尝试经过总线169的读事务作出尝试来访问配置逻辑127,可能访问配置逻辑127内的预定的地址位置。配置逻辑177可以核对读事务成功的指示(如果总线169支持指示所尝试事务的成功或失败的反馈供应)即配置逻辑127被成功访问和/或所尝试的读事务被接受(或者至少没有被拒绝)。在访问配置逻辑127中成功的缺乏可以指示逻辑120不是设备127尝试寻找的设备(即配置逻辑127可能甚至不存在),或者逻辑120不具有设备170尝试寻找的硬件特征,或者可能设备170在逻辑120内尝试寻找的硬件特征存在于逻辑120内,但是针对设备170的使用不可用(可能,所述硬件特征已经被预留,以供诸如设备180的另一设备的使用)。在一些实施方案中,访问配置逻辑127从而配置逻辑127通过提供数据来响应所尝试的读事务的操作中的成功可以被当作对配置逻辑177的这样的指示,设备170确实被连接到逻辑120,并且配置逻辑127所查找的硬件特征存在于逻辑120内并且可供设备170使用。可替换地,配置逻辑127的数据成功供应可以提供与配置逻辑127存在的确认一样的信息,并且配置逻辑177可以分析所返回的数据以确定关于逻辑120的特性,所述特性可能包括逻辑120的供应商、逻辑120是否提供配置逻辑177所查找的硬件特征,和/或允许设备170与硬件特征交互的所要求的查找的硬件特征的方面。
在其他实施方案中,配置逻辑177通过尝试经过总线169的写事务再次尝试访问配置逻辑127,可能访问配置逻辑127内的预定地址位置。配置逻辑177可以再次核对写事务成功的指示,即配置逻辑127被成功访问和/或所尝试的写事务被接受(或者至少没有被拒绝)。在访问配置逻辑127中成功的缺乏可以指示逻辑120不是设备127尝试寻找的设备(即配置逻辑127可能甚至不存在),或者逻辑120不具有设备170尝试寻找的硬件特征,或者可能设备170在逻辑120内尝试寻找的硬件特征存在于逻辑120内,但是不可供设备170使用(可能,所述硬件特征已经被预留,以供诸如设备180的另一设备使用)。在一些实施方案中,访问配置逻辑127从而配置逻辑127接受所尝试的读事务的操作中的成功可以被当作对配置逻辑177这样的指示,设备170确实被连接到逻辑120,并且由配置逻辑127查找的硬件特征存在于逻辑120内并且可供设备170使用。也可以是所尝试的写操作将数据值传达(communicate)到配置逻辑127,所述数据值指示配置逻辑127(有些类似关键字或者特征值)存在被耦合到逻辑120的设备(即设备170)正尝试调整逻辑120内的硬件特征的使用。仅仅所尝试的写操作的成功接受可能不够充分来指示配置逻辑177所期望的硬件特征已经被找到和/或可供设备170使用,并且在这种实施方案中,逻辑177可以等待配置逻辑127的数据供应,所述数据供应通过配置逻辑177响应返回配置逻辑127的写操作或者通过在跟随所尝试的写事务配置逻辑177完成的读事务中由配置逻辑127返回的数据值提供这些事件的确认。
在其他实施方案中,配置逻辑177通过尝试经过总线169发送消息作出尝试来访问配置逻辑127,其中总线169支持多个设备之间的消息发送。配置逻辑177可以核对消息发送成功的指示(如果总线169支持所尝试的消息发送成功的指示的供应)即配置逻辑127至少没有拒绝消息。在将消息发送到配置逻辑127的操作中成功的缺乏可以指示逻辑120不是设备170尝试寻找的设备(即配置逻辑127可能甚至不存在),或者逻辑120不具有设备170尝试寻找的硬件特征、或者设备170在逻辑120内尝试寻找的硬件特征存在于逻辑120内,但是不可供设备170使用(可能,所述硬件特征已经被预留,以供诸如设备180的另一设备使用)。在其中可能确定发送消息成功的实施方案中,在一些实施方案中,成功发送消息可以被当作对配置逻辑177的指示,所述指示表明设备170确实被连接到逻辑120,并且由配置逻辑127查找的硬件特征存在于逻辑120内部并且可供设备170使用。也可能是到配置逻辑127的消息尝试发送或者为对配置逻辑127的指示,或者传输对配置逻辑127的指示,所述指示表明存在被耦合到逻辑120的设备(即设备170)正尝试调整在逻辑120内部的硬件特征的使用。仅仅所发送的消息的成功接受可能不够充分来指示配置逻辑177所期望的硬件特征已经被找到和/或可供设备170使用,并且在这种实施方案中,逻辑177可以等待提供这些事件的确认的配置逻辑127的数据供应,所述数据供应可能通过回到配置逻辑177的配置逻辑127的消息发送。
图2为采用计算机系统的实施方案的另一框图。图2中所编号的项目打算一般地相应于图1中所编号的项目,并且在某种意义上与图1的计算机系统100相同,计算机系统200至少部分由处理器210、总线219、逻辑220、总线249和系统存储器240构成。如同计算机系统100的情况,本领域技术人员将容易地意识到,这仅仅是许多可能的计算机系统200核心形式的一个实施例,并且计算机系统200还可以进一步由未示出的其他总线和设备构成。
与图1的逻辑120相同,逻辑220通过总线219、249和269分别被耦合到处理器210、系统存储器240和其他可能设备,并且完成各种功能来支持处理器210对指令的执行,所述功能包括控制并为处理器210提供对系统存储器240的访问,并作为桥。此外,为了减轻处理器210完成一些数据块的传送的负担,在一些实施方案中,逻辑220的示例性硬件特征可以是DMA控制器230。
与参照图1的计算机系统100所讨论的实施方案有些相同,在计算机系统200中,总线269耦合逻辑220到设备270和280。但是,与计算机系统100不同,代替直接通过总线269,设备270和280分别通过总线279和289然后通过中间设备(intervening device)260和总线269被耦合到逻辑220。在计算机系统100中使用总线169来将逻辑120、设备170和设备180的全部三个耦合在一起示出了“多分支(multi-drop)”总线配置的实施例,在所述总线配置中,如在许多被广泛使用的总线形式的情况中所普遍实施的,总线169的信号被耦合到多于两个设备。可以在总线269、279和289意图为点对点总线的情况下实现中间设备260的使用,从而三条不同总线有效地代替单条总线,但是可以存在对这种改变的修改,包括在总线269、279和289中的两条或更多条之间转换总线类型和/或总线协议的需要。在其中总线269、279和289中的一条或更多条的确为点对点总线的实施方案中,可能发生各种形式的对地址和/或数据的差分信令和/或串行发送,取决于这些特定总线的每一条的特性。同样,在其中总线269,279和289中的一条或更多条的实施方案中,可能要求中间设备260的供应,以作为“开关(switch)”来将多条点对点总线集中为与逻辑220接口的单条点对点总线。设备269,279和289也可以是各种类型的设备中的任意一种。
同样与计算机系统100的逻辑120、设备170和设备180有些相同,计算机系统200的逻辑220、中间设备260、设备270和设备280分别提供配置逻辑227、267、277和287,以通过处理器210在计算机系统200被加电和/或重启动的时候执行软件来准许功能性和/或配置的使能。再次,在各个实施方案中,对配置逻辑227、267、277和/或287的访问可以是允许逻辑220、中间设备260、设备270和设备280中的一个或更多个以比完成配置可能需要的更完全的程度与总线269,279和/或289交互的先决条件。
再次,与计算机系统100有些相同,在计算机系统200中,在处理器210对配置逻辑227、267、277和/或287的每一个以完成配置功能后,设备270的配置逻辑277尝试访问配置逻辑227,以检测和配置可能为DMA控制器230的逻辑220的硬件特征,供设备270使用。但是在各个可能的实施方案中,在设备270与总线269以及逻辑220两者之间存在着中间设备260和总线279,可能致使设备270内的配置逻辑277如何尝试访问逻辑220内的配置逻辑227的一些差异。对于尝试访问配置逻辑227的配置逻辑277,尝试的访问必须包括某种形式的对配置逻辑267或者中间设备260某些其他部分的指示,所述指示表明尝试的访问并不打算被配置逻辑267回答或者响应,并且尝试的访问应该以某种方式被传递到逻辑220内的配置逻辑227。图1描绘了其中这种指示可能不曾必要的情形。在一些实施方案中,这种指示可以是被嵌入到访问协议内、可以被确定不存在于中间设备260内的地址,由此导致尝试的访问被前向中继(relay onward)到逻辑220。在其他实施方案中,这种指示可以为值的形式,所述值标识所述访问为打算由具体设备(即逻辑220)接收。如本领域技术人员将会容易认识到的,用于指引尝试的访问通过另一设备到一个设备的其他机制仍然可以被采用而不会背离本发明的精神和范围。
图3a、3b、3c、3d和3e描绘了采用尝试的消息事务的实施方案和可能的响应。如先前所讨论的,在一些实施方案中,查找以检测和/或配置在另一设备中的给定硬件特征的设备可以通过以下方式来查找所述给定硬件特征,即通过经过支持消息发送的总线向所述另一设备尝试发送消息来尝试访问所述另一个设备的部分逻辑。图3a-d一起描绘了在分组化消息的至少头部(header)部分中所传输的信息位(bit)的可能构造的特征,查找以检测和/或配置给定硬件特征的设备将尝试发出所述分组化消息,并且图3a-c和3e一起描绘了响应于所述尝试的消息,所述另一个设备可能发送的分组化消息的相似特征。在两种情况中,所描绘的位的构造想要与这样的总线体系结构一起可操作,即所述总线体系结构采用以分枝树形(branching tree-like)配置构造的多条点对点总线,经过所述总线,地址、命令、数据和其他信息以分组化形式经过数字串行连接被传送。虽然信息位的具体分配不需要遵循任意一种标准或常规而落入所要求保护的发明的精神和范围内,但是,描绘了想要遵从目前出现的PCI-Express总线规范(目前,对该总线规范的说明可以从俄勒冈州波特兰市的外设部件互连特殊兴趣小组购买)要求的信息位排列。
双字(doubleword)310、320、330和340a构成分组化消息的至少头四个双字(四字节(byte)块),为了测试其中可能存在给定硬件特征的另一设备(即“目的设备”),查找给定硬件特征的设备(即“请求设备”)可以尝试发送所述包化消息。相似地,双字310、320、330和340b构成另一个设备响应于此可以发送的分组化消息的至少头四个双字。在以下的讨论中为了清楚的目的,应该注意术语“请求设备”打算表示发送消息的设备,而“目的设备”打算表示消息正被指引到的设备。因此,如果由一个设备尝试的消息响应于此成功地引出来自另一个设备的另一消息,则“请求设备”和“目的设备”的命名实际上将在尝试的发送和可能的响应发送之间改变。
双字310为要被发送的四个双字中的第一个,其后依次跟随着双字320、330以及340a或340b。在字节0内是这样的指示,即消息的格式是否为额外的双字被添加到四个双字的头部,来为传输更多的数据制造空间(如果不是,那么四个双字的头部可以成为整个消息)。但是,如不久将看到的,双字340a或340b能够提供传输这种信息所需的全部空间,而无需添加任何附加双字。在字节0内还有对消息被路由到目的设备的机制的指示。一种选项是指定在计算机系统内的这些总线的分枝树形配置底部的设备(即在“根联合体(rootcomplex)”的设备)为目的设备。另一选项为用双字330内所提供的16位标识值指定目的设备。再一选项是指定被直接连接到请求设备、比请求设备离总线的树形配置的底部更近的设备为目的设备(即朝向根联合体的“本地接收器”)。这种情况是可能的,即查找另一设备中的给定硬件特征的I/O设备可以(基于所查找的硬件特征可能在处于根联合体的设备内的推断)在用于查找硬件特征的尝试消息中指定根联合体为目的设备,同时根联合体内的设备可以用使用I/O设备的16位标识值以指定所述I/O设备成为目的设备的消息(所述消息必须与来自I/O设备的原始尝试消息一起被接收)响应。在字节1内有这个消息相对于其他消息的优先权等级(“业务类别”)的指示。在字节2内有其中包括错误检测和修正的各种选项可以被选择的位。如果这个消息的格式在字节0中被指示为具有添加到这个头部的双字的格式,那么指示被添加到这个头部的数据双字的数量的二进制值充满字节3的全部和字节2的部分。如果没有被添加的双字,那么四双字头部可以构成整个消息。
跟随双字310的双字320为要被发送的四个双字中的第二个。在字节4内有标识导向根联合体以及请求设备被耦合到的总线的值(多个总线的分枝树形配置中的每个总线被用唯一编号标识)。在字节5内有指示请求设备标识的值,以及指示发送这个消息的请求设备部分(例如,请求设备内的“特征”)的值。字节4和5一起构成了打算唯一地标识请求设备(即发送消息的设备)的请求者ID。在字节6内有由请求设备生成以从由请求设备发起的其他事务中区别该消息的值。字节4,5和6一起构成事务ID来唯一地标识该消息,以从发生在请求和目的设备作为其部分的计算机系统内的所有其他事务中区别它。在字节7内有将消息标识为供应商定义的消息的两个可能值中的一个(即服务于由请求设备的供应商选择的目的的消息),如果该消息不被目的设备支持,则用所述两个值提供目的设备是否应该报告错误的选择。在一些实施方案中,如果目的设备不支持将由I/O设备发送的供应商专用的消息作为确定尝试检测给定硬件特征是否成功的方式,则正在查找给定硬件特征的请求设备可以使用该机制来指定目的设备要报告错误。可替换地,在其他实施方案中,如果目的设备不支持该供应商专用的消息则指定目的设备不报告错误可以被认为是所期望的,并且查找给定硬件特征的请求设备可以将对该供应商专用的消息的响应的缺乏解释为这样的指示,在目的设备内定位给定硬件特征的尝试不成功。
跟随双字320的双字330为要被发送的四个双字中的第三个。字节8和9一起构成可以被用来唯一地标识目的设备的目的ID,所述标识操作使用具有相似于在双字320的字节4和5中被用来标识请求设备的那些的构造和解释的位值。如果先前在双字310的字节0中所讨论的位被用来将目的设备或者指定为“根联合体”,或者指定为多个总线的分枝树形设置中在走向根联合体的总线的另一端的“本地接收器”的设备,字节8和9可以用全零填充。假设在另一设备中作出检测给定硬件特征尝试的设备必须在双字320的字节4和5中标识它本身,则接收被发送来作出询问的消息的另一个设备可以使用这个标识信息,在被发送回的响应消息中将作出询问的所述一个设备标识为目的设备。被PCI-SIG指派给设备供应商的单个16位占据字节10和11两者的全部,并且所述16位可以被用来标识请求设备的供应商。
双字340a为四个双字中的最后一个,所述四个双字构成由在另一设备内查找以检测给定硬件特征的设备所发送的消息的头部,并且双字340a是要被发送为该消息的部分的该四个双字中的最后一个。相似地,双字340b为构成可能由另一个设备响应于接收到查找以检测给定硬件特征的消息所发送的消息的头部的四个双字中的最后一个。因为查找以检测给定硬件特征的原始消息和可以以响应方式被发出的消息都是供应商专用的消息,所以在第四个双字(即双字340a和340b)内所放置的任意内容的使用、特性和构造保持不明确,以允许供应商以任何被供应商认为是所期望的方式使用第四个双字。给定该供应商专用类型的消息的极其非结构化的性质,则请求和目的设备都必须被设计(或者否则以无论哪种方式被配置)来支持所发送的任意供应商专用的消息的有效位的创建和正确解释。实际上,如果请求和目的设备由于某种原因没有被配置或者预备来处理完全相同形式的供应商专用的消息,则或者目的设备可能误解由请求设备所发送的消息,或者目的设备可能完全地将消息忽略和/或拒绝为目的设备不支持的消息。因此,出于使请求设备使用供应商专用的消息来在目的设备内查找给定硬件特征的目的,请求设备必须被预备为创建和发送消息,目的设备必须被预备为将所述消息接收和解释为在目的设备内尝试定位该给定硬件特征,并且所述目的设备必须被预备为提供到所述请求设备的响应,所述请求设备被预备为将所述响应解释为这样的指示,给定硬件特征在目的设备内被成功定位,并且可能解释为这样的指示,针对请求设备的使用给定硬件特征是否可用。
在图3d中,由一个设备传播工作来在另一设备内查找给定硬件特征的工作的值排列的可能实施方案被描绘为在双字340a内传输,虽然可替换的实施方案可以采用一个或更多个添加到由双字310,320,330和340a构成的头部的双字,以将这种值中的一些或全部传输到另一个设备。如在图3d中所描绘,字节12内是为由供应商制定的代码所分配的位置以从请求设备到目的设备传播这个消息为由请求设备发起以在目的设备内查找给定硬件特征的尝试的部分的信息。字节13内是为由供应商制定的代码所分配的位置,以指示哪个硬件特征为所查找的给定硬件特征。
如,在图3e中,传播由另一个设备所做出的对由所述一个设备所做出以在另一个设备内查找给定硬件特征的工作的响应的值排列的可能实施方案被描绘为在双字340b内传输,虽然可替换的实施方案可以采用一个或更多个添加到由双字310,320,330和340a构成的头部的双字,以将这种值的一些或者全部传输到另一个设备。如在图3e中所描绘,占据字节12,13,14和15全部是至少指向一个或更多个寄存器(或者可能,在存储器设备内被预留的可以作为“虚拟”寄存器的一个或者更多个存储器位置)的起始地址的地址的部分,所述寄存器可以被所述一个设备访问以控制被所述一个设备在另一个设备内查找的给定硬件特征。在这种实施方案中,该地址的接收可以被所述一个设备当作这样的指示,成功地在另一个设备内检测到给定硬件特征。
图4为采用计算机系统的实施方案的再一框图。图4中所编号的项目意图与图1和2中所编号的项目总地对应,并且在某种意义上与计算机系统100和200相同,计算机系统400至少部分地由处理器410、总线419、逻辑420、总线449,以及系统存储器440构成。如具有计算机系统100和200的情况,那些本领域中的熟练技术人员将容易地发现,这仅仅是许多可能形式的计算机系统400的核心中的一个实施例,并且所述计算机系统400还可以进一步由未示出的其他总线和设备构成。
与逻辑120和220相同,逻辑420通过总线419、449和469以及总线489分别被耦合到处理器410、系统存储器440以及其他可能设备,并且执行支持由处理器410执行指令的各种功能,所述功能包括为处理器410控制和提供到系统存储器440的访问并起桥的作用。此外,为了减轻处理器410完成一些数据块的传送的负担,在一些实施方案中,逻辑420的示例性硬件特征可以是DMA控制器430。
与关于计算机系统100和200所讨论的实施方案在某种程度上相同,在计算机系统400中,总线469和489将逻辑420耦合到设备470和480。但是,与设备480的耦合为通过总线489直接与逻辑420耦合,并且与设备470的耦合为通过中间逻辑460和总线479,以及总线469的间接耦合。同样,设备269、279和289可以为任意宽泛类型的设备。
同样与计算机系统100和200在某种程度上相同,计算机系统400的逻辑420、中间设备460,设备470以及设备480分别提供配置逻辑427、467、477以及487,以每当计算机系统400被加电和/或重启时,通过处理器410执行软件来准许功能性和/或配置的使能。此外,在各个实施方案中,配置逻辑427、467、477和/或487的访问可以为允许逻辑420,中间设备460、设备470和设备480比完成配置所可以需要的更完全地与总线469,479和/或489相互作用的先决条件。
在一些实施方案中,在由处理器410作出对配置逻辑427、467、477和/或487的访问以完成配置功能后,设备480的配置逻辑487的消息生成器486尝试将具有相似于在图3a-d中所描绘的那些的头部的消息经过总线489发送到逻辑420的配置逻辑427,查找以使能DMA控制器430供设备480使用。消息可以提供供应商ID、设备ID、由设备480执行的功能的指示符,和/或其它数据,消息检测器425接收以上所述所有数据并且可以用它们来确定消息是否被逻辑420支持。在一些变化中,消息提供被消息检测器425用作关键字形式的供应商ID,所述关键字被消息检测器425用来确定是否消息响应,和通知消息监测器425诸如DMA控制器430的硬件特征正被查找的代码。在一些变化中,如果消息检测器确定该消息不被支持,那么消息检测器425可以完全忽略消息,而在其他变化中,消息检测器425可以发信号通知错误,并且这种响应的选择可以由消息内的标志位设置确定。
如果消息检测器425确定消息为被支持的消息,那么在一些变化中,同样在配置逻辑427内的消息发生器426将指示DMA控制器430的可用性的消息发送回配置逻辑487。可替换地,在其他变化中,由消息检测器425作出的被支持的消息的确定可以导致消息发生器426将消息发送到配置逻辑487,所述消息提供到DMA控制器430内的DMA寄存器431和/或系统存储器440内的虚拟DMA寄存器432的一个或更多个地址,在所述寄存器中关于DMA控制器430的状态和/或可用性的数据可以被读取。在一些变化中,所发送的地址可以是到链表类型数据结构的指针,在所述链表类型数据结构中多个数据段可以提供关于哪些可能是DMA控制器430的多个可指派部分的各个信息段,所述多个可分配部分中的一个可以响应于由配置逻辑487所发送的原始消息,被指派给设备480的使用。在其他变化中,代替地址,可以将数据结构直接发送(可能为链表配置)到配置逻辑487,以直接给配置逻辑487提供对于设备480的使用DMA控制器430的可用性的指示。
在其他实施方案中,在由处理器410作出的对配置逻辑427、467、477和/或487的访问以完成配置功能后,设备470的配置逻辑477的消息生成器476尝试将具有相似于在图3a-d中所描绘的那些的头部发送经过总线479,查找以使能DMA控制器430关于设备480的使用。在这些实施方案的一些中,其中以某种方式给配置逻辑477提供关于计算机系统400内的总线和设备的配置与标识的信息以便消息生成器476能够生成用唯一标识符指定逻辑420的消息,接着消息生成器476可以利用这种信息准确地完成该操作。但是,在其他这些实施方案中,可能不存在被提供给配置逻辑477的这样的指示,中间设备460存在于设备470和逻辑420之间,从而被用来查找DMA控制器430的任何消息将必须通过中间设备460被传送。
在一些变化中,为了确保由消息生成器476所发送的消息将通过中间设备460被发送,如果知道正被查找的诸如DMA控制器430的硬件特征很可能存在于根联合体设备内(并且假定逻辑420被认为至少是计算机系统400的根联合体的部分),则消息可以携带这样的指示,消息应该被中继到的目的设备为在计算机系统400内被指明为根联合体设备(即处于总线的分枝树形配置的底部的设备,所述总线处于总线469和479作为部分的计算机系统400内)。使用被指定为目的设备根联合体,中间设备460的配置逻辑467内的消息检测器465和消息生成器466可以协作来向前经过总线469向逻辑420重发经过总线479从设备470所接收到的消息。
在其他变化中,消息可以携带这样的指示,在总线469的另一端出现的任何设备都是目的设备,导致消息被消息检测器465接收,并且消息检测器465可以与消息生成器466协作来在总线的分枝树形配置的底部的方向上向前传递消息,这将导致消息通过总线469被传递到逻辑420。依赖设备460的配置逻辑467内的逻辑,以这种方式传递消息要求中间设备460由与设备470相同的供应商提供,从而被发送到中间设备460(可能是携带供应商专用ID的消息)并且不被中间设备460支持的消息将被可靠地运送到另一设备。
但是,由配置逻辑477向逻辑420的配置逻辑427发送的消息最终由消息检测器425接收,消息生成器476可以利用由来自消息发生器476的消息所携带的将设备470唯一地标识为该消息的原始源的信息,以提供在任何消息中将设备470唯一地指定为目的设备的标识符,消息生成器426可以将所述标识符作为应答发出到设备470的配置逻辑477。
在其他实施方案中,配置逻辑477和487的消息生成器476和486都可以分别尝试向逻辑420的配置逻辑427发出消息,以分别使能DMA控制器430关于设备470和480的使用。在一些变化中,其中不可能使DMA控制器430既对设备470又对480可用,配置逻辑427可以完成仲裁的形式,其中这两个消息中只有一个被用至少部分DMA控制器430已为关于这个设备的使用被指派的指示响应。可替换地,设备470和480都可以被用提供作为到DMA寄存器431或虚拟DMA寄存器432内的位置的指针的地址的消息响应,在所述寄存器中两个设备可以得到涉及DMA控制器430的状态和/或可用性的信息,以及其中可能提供一个或更多个状态位允许设备470和480为到DMA控制器430的访问直接与对方仲裁。
但是,其中消息生成器476和486都尝试消息的发送以获得DMA控制器430分别关于设备470和480的使用,并且存在给设备470和480都提供与DMA控制器430工作(可能与DMA控制器430的不同部分)的能力的可能性,接着消息生成器426可以将消息发出到配置逻辑477和487的每一个,所述消息提供作为到DMA寄存器431或虚拟DMA寄存器432的不同部分的指针的不同地址。可替换地,被发出到配置逻辑477和487的消息可以携带指向DMA寄存器431或虚拟DMA寄存器432内的设备470和480都可以访问的单个数据结构(可能是链表形式的数据结构)的相同地址,但是所述单个数据结构包括用于调整DMA控制器430关于该单个数据结构单独部分中的每个设备的使用的单独数据段。
此外,在其中要求设备470和480都针对至少部分DMA控制器430(或者由逻辑420提供的任何其他硬件特征)的使用被要求彼此直接仲裁的实施方案或者实施方案的变化中,设备470和480可能选择性地放弃和/或重新启动彼此的仲裁以在计算机系统400的正常操作期间共享逻辑420的该硬件特征。设备470和480的一个或者另一个可能仅在有限时间段内要求给定硬件特征作为计算机系统400的初始化的部分,并且从那时起,可以允许该硬件特征被指派给另一设备,供随后使用。
图5为采用计算机系统的实施方案的框图。计算机系统500至少部分地由处理器510、系统逻辑520,以及存储器设备540构成。系统逻辑520被耦合到处理器510并且执行支持处理器510的各种功能,所述功能包括使用系统逻辑520内的存储器控制器522给处理器510提供到存储器设备540的访问,系统逻辑520也被耦合到所述存储器设备540。处理器510、系统逻辑520以及存储器设备540构成能够支持由处理器510执行机器可读指令和存储设备540内数据与指令的储存的用于计算机系统500的核心形式。可替换地,在其他实施方案中,有处理器510被直接耦合到存储器设备540并且具有到存储器设备540的直接访问的可能结果,存储器控制器522可以或者部分地或者完全地被集成在处理器510内。
在一些实施方案中,系统逻辑520被耦合到储存器设备590并且给处理器510提供到储存器设备590的访问,通过所述访问由储存介质591所携带的数据和/或指令可以被访问。如那些本领域中的熟练技术人员将理解的,储存介质591可以是任意宽泛的类型和技术,包括CD或DVD ROM,磁或光盘,磁光盘,磁带,半导体存储器,纸或其他材料上的字符或穿孔等等。在一些实施方案中,非易失性存储器设备545被耦合到系统逻辑520(或者计算机系统500的另一部分),并且当计算机系统500或者被“重启”或者被初始化(例如,当计算机系统500“被开启”或者“被通电”)时提供对每次执行的初始指令序列的储存,以执行预备计算机系统500的正常使用所需的任务。在这种实施方案的一些变化中,一旦初始化或重启计算机系统500,处理器510访问非易失性存储器设备545,以重新得到要被执行来为在为CPU510提供到存储器设备540的访问中的正常使用预备存储器控制器522,和/或通过配置逻辑527和577配置系统逻辑520和设备570的指令。可能这些相同的被重新得到的指令被执行来预备系统逻辑520,供提供到存储器介质591的访问和可以被存储器设备590使用的储存介质591的任何形式使用。
储存介质591或者非易失性存储器设备545内储存的并且由处理器510执行的指令还可以导致处理器510安装部分软件、数据结构、门阵列设置和/或在配置逻辑527和577的一个或者全部两个内所携带的微码,所述微码导致配置逻辑527尝试经过总线579的事务,以获得系统逻辑520内的硬件特征关于设备570的使用和/或导致配置逻辑577通过给设备570提供所查找的硬件特征的使用响应于这种事务的尝试。
图6为实施方案的流程图。在610处,查找特定硬件特征的设备尝试关于可以具有所述硬件特征的设备的事务,并且在620处由可以具有硬件特征的设备从查找给定硬件特征的设备接收所尝试的事务。如果在622处,可以具有硬件特征的设备内的逻辑确定所尝试的事务不被支持,即可以具有硬件特征的设备不具有硬件特征,那么在624处将发信号通知错误。但是,如果在622处,确定可以具有硬件特征的设备确实具有硬件特征,并且因此所尝试的事务被支持,接着在630处,作出核对以确定对于查找硬件特征的设备的使用硬件特征是否为可用。如果在630处,硬件特征对于查找硬件特征的设备的使用为不可用,那么在632处,该硬件特征的不可用性的指示被发出到查找硬件特征的设备。但是,如果在630处,对于查找硬件特征的设备的使用硬件特征被确定为可用,那么在634处硬件特征的可用性的指示被发出到查找硬件特征的设备。
在可替换的实施方案中,在622处所尝试的事务不被支持的确定可能导致所尝试的事务简单地被忽略,而不是在624处发信号通知错误。同样,在其他实施方案中,在634处被发出的硬件特征的可用性的指示可以伴随着数据和/或指向寄存器或存储器位置的地址,以帮助使设备能够用配置查找硬件特征和/或使用硬件特征。
图7为实施方案的流程图。在710处,查找特定硬件特征的请求设备尝试将消息发送到可以具有所述硬件特征的目的设备,并且所述消息在720处被目的设备接收。如果在722处,目的设备内的逻辑确定所尝试的事务不被支持,即目的设备不具有所述硬件特征,那么在730处消息被核对以确定它是否携带用于供应商的ID,目的设备为所述供应商提供更多支持。如果在730处供应商ID被支持,那么在732处,消息被传递到可以具有被请求设备查找的硬件特征的另一设备(除非目的设备处于总线体系结构中的位置,从而不存在消息可以被传递到的另一设备)。但是,如果在722处,确定目的设备确实具有硬件特征,并且因此所尝试的事务被支持,那么在740处,将作出核对以确定硬件特征对于请求设备的使用是否可用。如果在740处,硬件特征对于请求设备的使用为不可用,那么在742处指示硬件特征的不可用性的消息被发出到请求设备。但是,如果在740处,确定硬件特征对于请求设备的使用为可用,那么在744处指示硬件特征的可用性并且提供作为指针的地址以访问关于硬件特征的数据的消息被发出到请求设备。
图8a,8b和8c描绘了采用经过支持消息发送的总线的所尝试的消息事务和可能响应的另一实施方案。图8a-b一起描绘了在分组化消息的至少头部部分中所传输的信息的位的可能构造的特征,所述分组化消息由查找以检测和/或配置给定硬件特征的设备尝试发出,并且图8a和8c一起描绘了由另一个设备响应于所尝试的消息而发出的分组化消息的相似特征。在两种情况中,所描绘的位构造想要可以用采用分枝树形配置构造中的多个点对点总线的总线体系结构操作,经过所述总线地址、命令、数据以及其他信息以分组化形式被传送经过数字串行连接。如具有图3a-e的情况,虽然信息位的具体分配不需要遵循任意一种标准或规范,以落入要求保护的发明的精神和范围内,但是描绘了想要遵从目前出现的PCI-Express总线规范要求的信息位排列。
双字810、820、830和840构成两种分组化消息的至少第一四个双字(四字节块),所述两种分组化消息包括查找给定硬件特征的设备努力尝试发送以测试其中可以存在给定硬件特征的另一设备的分组化消息,和另一个设备可能响应发送的分组化消息。为了清楚的目的,应该注意到图8a的双字810、820和830分别和图3a-c的双字310、320和330很大程度上相同,在从双字840开始的较后的双字中,显著差异趋向于更大,并且因此以下的讨论将趋向更集中于在哪些方面不同于双字310、329、330、340a以及340b。对于那些非常一样的方面,请读者回顾以上对应于图3a-e的描述。
双字810为要被发送的第一个双字,其后依次跟随着双字820,830等等。虽然双字810与双字310差不多完全相同,但是双字810作为其部分的消息具有被添加到所述消息的额外双字以为数据提供额外的空间,所以双字810的字节0的位6和5将各自携带二进制值1,以指示存在额外双字。如果该消息的格式在字节0中被指示为具有被添加到该头部的双字,那么填充字节3的全部和字节2的部分的是指示被添加到给定消息的头部的数据的双字的数量的10位二进制值。如将被更详细地讨论的,与双字310不同,所述双字310为没有双字被添加到其的头部的部分,具有该10位值被0填充的结果,对于双字810,在由设备发出来查找以在另一设备中检测硬件特征的消息中存在1个添加的双字,并且在由另一个设备可以响应发出的消息中存在4个添加的双字。所以,在查找以检测硬件特征的消息的情况中,10位值将是二进制0000000001,同时在可能返回消息的情况中,10位值将是二进制0000000100。
跟随双字310的双字820为要被发送的第二个双字,并且与双字320很大程度上相同。同样,跟随双字320的双字330为要被发送的第三个双字,并且与双字830很大程度上相同。
双字840为构成由在另一设备内查找以检测给定硬件特征的设备所发送的消息的头部的四个双字的最后一个,并且为要被发送为该消息的部分的这些四个双字的最后一个,并且因此与双字340a和340b都极其不同。双字840的字节12、13和14未被使用,同时双字840的字节15可以携带8位供应商定义的消息代码。在一个实施方案中,该8位代码可以为二进制值00000010,以提供这样的指示,消息由一个设备发出来总地在目的设备中查找以检测硬件特征,或者在另一实施方案中,该相同的8位代码可以提供这样的指示,消息由一个设备发出来在目的设备中查找以检测具体硬件特征(或者多个具体硬件特征)。在另一实施方案中,该8位代码可以是二进制值00000011,以提供这样的指示,消息由另一个设备响应于由在另一个设备内查找一个或者更多个硬件特征的所述一个设备所发送的消息而发出回到所述一个设备,和/或可能,被响应发出的消息传输在其所述一个设备处可以访问一个或更多个硬件特征的地址。
双字850a为所述一个已添加的双字,属于由在另一设备中查找以检测硬件特征的设备所发送的消息。双字850a的字节16携带指示主和次版本编号的一对4位值。在一个实施方案中,主和次版本编号按照指示另一个设备什么版本的硬件特征与所述一个设备可互操作(或者如在计算机工业中所使用的普遍术语“兼容的”)的方法指示所述一个设备正在查找的硬件特征的版本(可能更准确地是哪种实现)。在另一实施方案中,主和次版本编号指示所述一个设备它本身的版本(可能是实现)。另一个设备可以将主和次版本编号用于确定是否作出响应发送消息,因为在所述一个设备和硬件特征之间缺乏互操作性的的状况中,它可以被认为期望提供响应的缺乏,因此可能模仿硬件特征仅在另一个设备中不存在的情形,或者模仿另一个设备仅不支持由所述一个设备发出来查找以检测硬件特征的消息的情形。
双字850b和860为四个已添加的双字的第一两个,所述四个所添加的双字属于由另一设备响应于接收由一个设备发送来查找以检测所述一个设备查找以与其交互的硬件特征的消息所发送的消息。双字850b和860一起携带宽度达64位宽的指定地址位置的至少一个地址,在所述地址位置处为了与硬件特征的交互查找以检测硬件特征的所述一个设备可以访问寄存器和/或存储器位置(可能是作为虚拟寄存器的存储器位置)。在一些实施方案中,在由双字850b和860两者共同提供的64位内传输的值(多个值)可以传输代替地址或者除地址外的其他信息。例如,至少这些64位的子集中的全0、全1,或者一些其他具体的二进制值(多个值)可以传输硬件特征的状态的指示,所述硬件特征的状态例如可用性的缺乏(可能仅仅暂时具有这样的含义,所述一个设备应该在稍晚时间作出另一次尝试来获得到硬件特征的访问),或者在赢得与另一设备的仲裁以被提供到硬件特征的访问中的成功的缺乏等等。
跟随850b和860的双字870为四个已添加的双字的的第三个,所述四个所添加的双字属于由另一设备响应于接收由一个设备发送以查找检测所述一个设备查找以与其交互的硬件特征的消息所发送的消息。双字870的字节24、25和27可能出于其他目被预留,或者完全不被使用。双字870的字节26携带指示主和次版本编号的一对4位值。在一个实施方案中,主和次版本编号按照指示查找硬件特征的所述一个设备什么版本的硬件特征可供使用的方法指示另一个设备提供的硬件特征的版本(可能更准确地是哪种实现)。在另一实施方案中,主和次版本编号指示另一个设备它本身的版本。在又一实施方案中,主和次版本编号可以指定另一个设备能够以某种方式模仿的硬件特征的版本。查找硬件特征的所述一个设备可以将由另一个设备提供的主和次版本编号用于确定是否可能正确地与这个硬件特征交互。在再一实施方案中,使用每个设备针对所要求(或者所期望)参加这种交互的互操作性(或者其中的缺乏)的指示核对它接收的主和次版本编号,所述一个设备与另一个设备内的硬件特征之间的交互是否可能的确定可以既由所述一个设备又由另一个设备作出。无论仅由一个还是由全部两个设备完成,这种主和/或次版本编号的核对可以被认为是期望的,其中终端用户可能在不理解互操作性或其中的不足的情况下,选择将不同对的设备耦合在一起,从而允许设备、它们本身自动地作出该确定。
因为查找以检测给定硬件特征的原始消息以及可能被响应发出的消息都是供应商专用的消息,所以在被添加到头部的双字(即双字850a,或者双字850b、860、870和880)内所放置的任何内容的使用、特性和构造保持不明确以允许供应商以任何被供应商认为是所期望的方式使用第四个双字。与图3a-e的消息相同,给定该供应商专用类型的消息的极其非结构化的性质,则请求和目的设备都必须被设计(或者否则以无论哪种方式被配置)来支持所发送的任意供应商专用的消息的有效位的创建和正确解释。实际上,如果请求和目的设备由于某种原因没有被配置或者预备来处理完全相同形式的供应商专用的消息,则或者目的设备可能误解由请求设备所发送的消息,或者目的设备可能完全地将消息忽略和/或拒绝为目的设备不支持的消息。因此,出于使请求设备使用供应商专用的消息来在目的设备内查找给定硬件特征的目的,请求设备必须被预备为创建和发送消息,目的设备必须被预备为将所述消息接收和解释为在目的设备内尝试定位该给定硬件特征,并且所述目的设备必须被预备为提供到所述请求设备的响应,所述请求设备被预备为将所述响应解释为这样的指示,给定硬件特征在目的设备内被成功定位,并且可能解释为这样的指示,针对请求设备的使用给定硬件特征是否可用。
跟随850b、860和870的双字880为四个已添加的双字的第四个,所述四个已添加的双字属于由另一设备响应于接收由一个设备发送以查找检测所述一个设备查找以与其交互的硬件特征的消息所发送的消息。字节28到31的全部可能为其他可能将来的使用(多个使用)被预留。
图9为又一实施方案的流程图。在910处,查找具体硬件特征的请求设备尝试将消息发送到可以具有所述硬件特征的目的设备,并且在920处消息被目的设备接收。如果在930处,做出核对以确定硬件特征对于请求设备的使用是否为可用。如果在930处,硬件特征对于请求设备的使用为不可用,那么在940处指示硬件特征的不可用性的消息被发出到请求设备。但是,如果在930处,确定硬件特征对于请求设备的使用为可用,那么在950处使用由请求设备尝试发出的消息接收的版本编号被核对,以确定请求设备询问的硬件特征的版本是否为和目的设备内具有的相同或者至少和目的设备内具有的版本可互操作,以便请求设备可以正确地与目的设备内的硬件特征的版本交互。如果在950处发现硬件特征的版本既不与在原始所尝试的消息中指示的版本相同又不与请求设备可互操作,那么在940处发出指示硬件特征的不可用性的消息。否则,在960处指示硬件特征的可用性,并提供作为指针以访问涉及硬件特征的数据的地址的消息被发出。
结合各个可能的实施方案描述了本发明。显然,根据前面的描述,本领域中的熟练技术人员将会清楚很多替换,修改,变化以及使用。那些本领域中的熟练技术人员也将理解,本发明可以被实施以支持除了计算机系统外的电子设备,例如音频/视频娱乐设备、机动车中的控制器设备、由电子线路控制的装置等等。
权利要求
1.一种集成电路,包括到总线的接口;以及配置逻辑,所述配置逻辑发送通过所述总线并且被指引到另一个集成电路的查询消息,以查询所述另一个集成电路内的硬件特征的可用性,并且如果从所述另一个设备接收到应答消息,所述应答消息提供对所述另一个集成电路内所述硬件特征的可用性的指示,则访问所述另一个集成电路内的所述硬件特征。
2.如权利要求1所述的集成电路,其中所述接口能够被耦合到具有至少一个串行数据链路的点对点总线,所述查询消息经过所述总线以分组化的形式被传送。
3.如权利要求2所述的集成电路,其中由所述配置逻辑发送的所述查询消息为供应商专用消息,所述消息与所述总线为供应商专用消息的发送所提供的支持一致。
4.如权利要求1所述的集成电路,其中所述集成电路针对其查询可用性的所述硬件特征为DMA控制器。
5.如权利要求1所述的集成电路,其中所述配置逻辑使用由所述另一个集成电路在所述应答消息内提供的地址访问所述另一个集成电路内的所述硬件特征。
6.如权利要求5所述的集成电路,其中所述配置逻辑访问所述硬件特征以为与所述硬件特征交互的机会进行仲裁。
7.如权利要求1所述的集成电路,其中所述配置逻辑在所述查询消息内发送标识所述集成电路的版本的版本编号。
8.如权利要求1所述的集成电路,其中所述配置逻辑在所述查询消息内发送标识所述集成电路查找的所述硬件特征的版本的版本编号。
9.一种集成电路,包括到总线的接口;经过所述总线与另一集成电路交互的硬件特征;以及配置逻辑,所述配置逻辑接收通过所述总线并且被指引到所述集成电路的查询消息,以查询所述硬件特征的可用性,并且通过发送应答消息来选择性地应答所述查询消息,所述应答消息提供对所述硬件特征的可用性的指示。
10.如权利要求9所述的集成电路,其中所述接口能够被耦合到具有至少一个串行数据链路的点对点总线,所述查询消息经过所述总线以分组化的形式被传送。
11.如权利要求10所述的集成电路,其中由所述配置逻辑发送的所述应答消息为供应商专用消息,所述消息与所述总线为供应商专用消息的发送所提供的支持一致。
12.如权利要求9所述的集成电路,其中所述另一个集成电路针对其查询可用性的所述硬件特征为DMA控制器。
13.如权利要求9所述的集成电路,其中所述配置逻辑在所述应答消息内提供所述另一个集成电路可以用来访问所述硬件特征的地址。
14.如权利要求13所述的集成电路,其中所述硬件特征支持被所述另一个集成电路访问,以为与所述硬件特征交互的机会进行仲裁。
15.如权利要求9所述的集成电路,其中所述配置逻辑在所述应答消息内发送标识所述硬件特征的版本的版本编号。
16.如权利要求9所述的集成电路,其中所述配置逻辑在所述应答消息内发送标识所述集成电路内的所述硬件特征所模仿的所述硬件特征的版本的版本编号。
17.一种电子设备,包括总线;被耦合到所述总线的设备,所述设备具有第一配置逻辑,所述配置逻辑进行所述总线上的查询事务,以查询硬件特征的可用性;系统逻辑,所述系统逻辑包括所述硬件特征,并且具有第二配置逻辑,所述第二配置逻辑接收所述查询事务并且选择性地用对所述硬件特征的可用性的指示作出响应;以及被耦合到所述系统逻辑的处理器。
18.如权利要求17所述的电子系统,其中所述总线支持供应商定义的消息的传送,并且所述查询事务为经过所述总线被发送的供应商定义的查询消息。
19.如权利要求18所述的电子系统,其中所述总线为具有至少一个串行数据链路的点对点总线,所述查询消息经过所述总线以分组化的形式被传送。
20.如权利要求18所述的电子系统,其中所述第一配置逻辑在所述查询消息内发送指示所述设备能够与其交互的所述硬件特征的版本的版本编号。
21.如权利要求18所述的电子系统,其中所述第二配置逻辑接收在来自所述第一配置逻辑的所述查询消息内的版本编号,所述第二配置逻辑分析所述版本编号以确定是否响应所述查询消息。
22.如权利要求18所述的电子系统,其中所述第一配置逻辑在来自所述第一配置逻辑的所述查询消息内发送标识供应商的代码,所述第二配置逻辑分析所述代码以确定是否响应所述查询消息。
23.如权利要求17所述的电子系统,其中所述总线支持供应商定义的消息的传送,并且所述第二配置逻辑用经过所述总线被发送的供应商定义的应答消息响应所述查询事务。
24.如权利要求23所述的电子系统,其中所述总线为具有至少一个串行数据链路的点对点总线,所述应答消息经过所述总线以分组化的形式被发送。
25.如权利要求23所述的电子系统,其中所述第二配置逻辑在所述应答消息内发送指示所述系统逻辑拥有的所述硬件特征的版本的版本编号。
26.如权利要求23所述的电子系统,其中所述第一配置逻辑接收在来自所述第二配置逻辑的所述应答消息内的版本编号,所述第一配置逻辑分析所述版本编号以确定是否与所述硬件特征交互。
27.如权利要求17所述的电子系统,其中所述总线为被构造成为分枝树形结构的多条总线中的一条,其中所述系统逻辑处于基干树并且被指明为根联合体。
28.如权利要求27所述的电子系统,其中所述系统逻辑被耦合到所述总线,所述总线支持消息作为所述查询事务传送以查询所述硬件特征,并且所述消息通过在所述消息中提供的指示被指引到所述系统逻辑,所述指示表明所述消息被指引到在被耦合到所述设备并且通向所述根联合体的任意总线的另一端的设备。
29.如权利要求27所述的电子系统,其中所述总线支持消息作为查询事务传送以查询所述硬件特征,并且所述消息通过在所述消息中提供的指示被指引到所述系统逻辑,所述指示表明所述消息被指引到在所述根联合体的设备。
30.一种方法,包括由第一设备内的逻辑经过总线发送查询消息到第二设备,以查询所述第二设备内的硬件特征的可用性;由所述第二设备内的逻辑接收所述查询消息;以及由所述第二设备内的所述逻辑通过发送应答消息来选择性地响应所述查询消息,所述应答消息提供对所述第二设备内所述硬件特征的可用性的指示。
31.如权利要求30所述的方法,还包括在所述查询消息内发送指示所述第一设备寻求与其交互的所述硬件特征的版本的版本编号;以及由第二设备内的所述逻辑分析在所述查询消息内发送的所述版本编号,以确定是否响应地发送所述应答消息。
32.如权利要求30所述的方法,还包括在所述查询消息内发送标识供应商的代码,所述代码指示所述第一设备寻求与其交互的所述硬件特征的版本;以及由所述第二设备的所述逻辑分析在所述查询消息内发送的标识所述供应商的代码,以确定是否响应地发送所述应答消息。
33.如权利要求30所述的方法,还包括在所述应答消息中发送指示所述第二设备拥有的所述硬件特征的版本的版本编号;以及由所述第一设备内的所述逻辑分析在所述应答消息内发送的所述版本编号,以确定是否与所述硬件特征交互。
34.如权利要求30所述的方法,还包括由所述第二设备内的所述逻辑在所述应答消息内发送地址到所述第一设备内的所述逻辑,所述地址指定所述硬件特征在其处可以被访问的地址位置。
35.如权利要求33所述的方法,还包括,如果确定与所述硬件特征交互,由所述第一设备内的所述逻辑进行仲裁,以获得与所述第二设备内的所述硬件特征交互的机会。
全文摘要
装置和方法,所述装置和方法用于第一设备针对第二设备内硬件特征的可用性查询第二设备,以及用于第二设备接收并分析所述查询以确定是否响应,其中是否响应取决于所查找的硬件特征的版本、标识供应商的代码等,并且如果作出确定要应答,则以提供所述硬件特征的可用性的指示和/或所述硬件特征可以被访问的地址的应答来响应。
文档编号G06F9/445GK1922595SQ200480042210
公开日2007年2月28日 申请日期2004年12月23日 优先权日2003年12月30日
发明者威廉·T·富特罗, 肯尼思·C·克里塔, 休卓伊·森, 格雷戈里·D·卡明斯, 希瓦库马·拉达克里希南 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1