CN1522415A - 虚拟pci设备装置和方法 - Google Patents
虚拟pci设备装置和方法 Download PDFInfo
- Publication number
- CN1522415A CN1522415A CNA028131037A CN02813103A CN1522415A CN 1522415 A CN1522415 A CN 1522415A CN A028131037 A CNA028131037 A CN A028131037A CN 02813103 A CN02813103 A CN 02813103A CN 1522415 A CN1522415 A CN 1522415A
- Authority
- CN
- China
- Prior art keywords
- host bus
- virtual
- bus
- equipment
- pci
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
从计算机程序的角度来看,虚拟PCI总线是驻留在一个主机到PCI桥接器后面的物理分层的PCI总线结构的一部分。物理上位于主机到PCI桥接器的主机总线端的设备可以是驻留在虚拟PCI总线上的虚拟装置,这使得物理设备可以参与通常仅仅可由PCI兼容设备得到的与设备无关的初始化和系统资源分配。面向虚拟PCI设备的由处理器启动的主机总线周期可以被截取和重定向到该物理设备。
Description
技术领域
本发明总体上涉及计算机。具体地涉及数据传送总线。
背景技术
由PCI Special Interest Group出版的PCI局部总线规范修订本2.2(PCI Local Bus Specification Rev.2.2)和PCI到PCI桥接架构规范修订本1.1(PCI to PCI Bridge Architecture SpecificationRev.1.1)禁止用于将网络控制器、大容量存储器控制器、显示控制器、多媒体设备、通信设备及其它设备集成到一个系统中的PCI(Peripheral Component Interconnect,外围部件互连)总线协议。包含用于电特性的规范以及软件与PCI设备相互作用的方式的PCI总线协议以这样一种方式提供了外围设备的集成,所述方式通常与诸如主机总线、处理器或者存储器的其它系统部件所使用的特定协议无关。
PCI协议提供了“勾连”以允许计算机程序直接访问和配置PCI设备。这些勾连包含用于访问与每个PCI设备有关的256个8位配置寄存器的配置地址空间,以允许计算机程序可选地检测安装在系统中的每个PCI设备、标识厂家和设备类型、确定每个PCI设备的系统资源需求、在系统地址空间内重定位每个设备、在无需用户干预的情况下进行中断约束、安装、配置、引导,这些勾连还包含用于系统地址映射结构的配置地址空间。配置寄存器包含预定义的报头区域和与设备相关的区域;然而,仅仅需要实现在每个区域中的必要的和相关的寄存器。PCI到PCI桥接器是具有配置寄存器的PCI设备,它们可以被计算机程序访问从而向在PCI到PCI桥接器后面的PCI总线分配范围总线编号(range bus number)。
配置空间在由在主处理器上执行的计算机程序启动的配置周期内被访问。PCI协议预期:通过两种不同机制中的任何一种来实现对配置周期的路由,其中主机到PCI桥接器把软件命令(以处理器启动的、对I/O空间的主机总线访问的序列的形式)转换到在目标PCI总线上的单个配置周期中,其中这一转换过程涉及由目标PCI设备接收的特定PCI总线信号的断定以向那个设备指示它就是当前配置周期的目标。
对系统中的PCI设备的检测和初始化能够由与设备无关的程序通过使用配置空间来实现。程序可以轮询分配给在PCI总线0上的每个插槽的配置空间,以检测驻留在总线0上的PCI设备和PCI到PCI桥接器的存在。程序可以通过写特定的配置寄存器来向每个检测到的PCI到PCI桥接器分配一个唯一的总线编号,然后轮询在每条分配了的总线上的每个插槽,以检测PCI设备和PCI到PCI桥接器的存在。这个处理过程可以持续,直到在每条检测到的PCI总线上的每个插槽被轮询并且所有PCI设备被检测到为止。对所发现的安装在系统中的每个PCI设备来说,该设备的配置寄存器可以被读取以确定该设备的资源需求。可以构造系统地址映射从而消除在系统和各种PCI设备当中的冲突,并且系统资源可以通过写在每个PCI设备中的适当的配置寄存器而被分配给每个PCI设备。另外,自检测可以在支持自检测的那些设备上被调用,并且可以在有或者没有用户干预的情况下为每个PCI设备实现任何其它的初始化、安装和配置。
由对PCI协议的严格遵循所带来的缺点包含对数据传送速度、数据通路宽度、延迟和带宽的限制,其为PCI设备的性能设置了上限。性能还可能受到为主机到PCI桥接器所固有的延迟以及为驻留在一条共享的PCI总线上的多个PCI设备所固有的带宽限制的限制。当前趋势是:对于性能不断提高的处理器、存储器和主机总线来说,与连接到实际PCI总线而实现的性能相比,有效连接的设备能够实现诸如较低延迟、较高吞吐量和提高了的总体系统性能的性能优势。
按照PCI桥接器规范的规定,即插即用的(plug-and-playTM)资源分配程序通常期望分配给一个特定PCI总线的地址空间包含分配给在该特定PCI总线后面的任何PCI总线的地址空间。因此,完全遵守PCI协议增加了在主机到PCI桥接器的主处理器端定位PCI设备的困难,其中PCI设备-可能由于兼容性的原因,要求可以是分配给物理PCI总线的地址空间的一个子集的一个地址空间。
附图说明
图1a、1b显示了依据本发明的系统配置。
图2显示了更详细的系统配置。
图3显示了具有主虚拟桥接器的系统。
图4显示了具有次虚拟桥接器和主虚拟桥接器的系统。
图5、6a、6b显示了方法实施例的流程图。
具体实施方式
本发明的各个实施例提供了把诸如网络控制器、大容量存储器控制器、显示控制器、多媒体设备、通信设备及其它设备的设备集成到一个主机总线处理器中,还提供了设备到处理器主机总线的有效连接。通过使得通常仅用于PCI兼容设备的软件可以支持这些设备,PCI协议的选择方面可以得到遵守。在某些系统中,本发明可以提供优于现有技术方法的许多优点中的至少一个,这许多优点包含提高了的系统性能、提高了的设备性能、更简化的系统中所有设备的初始化和配置、提高了的系统资源分配过程中的稳定性、较低的总体成本和降低了的物理底板/芯片空间,以及允许将分配给一条物理PCI总线的地址空间的子集分配给驻留在主机总线上的一个设备。另外,本发明可以允许把对计算机程序来说是具有PCI兼容设备的许多特性的设备集成到一个主处理器中,从而产生了诸如降低了的总体系统成本、较少的空间、降低了的处理器芯片引脚数和提高了的PCI总线上的带宽、提高了的系统性能或者提高了的设备性能的许多好处。
图1a、1b、2、3和4显示了用于说明本发明各个实施例的系统100、200、300和400的方框图。处理器130可以表示任何一个连接到主机总线120的处理器。可替换地,处理器130可以表示两个或更多连接到主机总线120的处理器。
系统100、200、300、400可以包含诸如网络控制器、大容量存储器控制器、显示控制器、多媒体设备、通信设备或者其它设备的主机总线设备110、210、410。主机总线设备110、210、410可以以这样一种方式通过接口112连接到主机总线120,所述方式为允许主机总线120被监控并且允许面向不存在的虚拟PCI设备160的由处理器启动的主机总线周期被主机总线设备110所截取。
主机总线设备110、210、410可以包含一个连接到主机总线120、用于跟踪主机总线周期的监控电路114。监控电路114可以在每个主机总线周期期间获取选择信息,并且标识将被探听或者截取的选择主机总线周期。读周期可以通过驱动选择主机总线数据信号从而将数据传送到主机总线120然后完成该周期而被截取。由处理器130启动的周期通过通知处于运行状态的处理器130何时依据由主机总线120使用的特定协议终止该周期来被完成。写周期可以通过在主机总线120的写周期锁存选择主机总线120数据信号值然后完成该周期而被截取。主机总线120周期可以通过读取并在存储器115中存储选择主机总线周期信息而被探听,而该周期通常由连接到主机总线120的另一个设备完成。
主机总线设备110、210、410可以包含存储器111,该存储器111连接到主机总线120以允许存储器111的内容可以通过主机总线120被访问。存储器111的各个具体实施例可以包含驻留在系统配置空间中的寄存器216、218、417,或者驻留在系统I/O或存储器地址空间中的随机存取存储器(RAM)、寄存器或数据端口。
PCI协议在每条PCI总线上都提供了其中可以驻留PCI设备的一定数目的可寻址的插槽。PCI到PCI桥接器是在两条PCI总线之间提供传送通路的PCI设备。计算机程序通常向在检测到的PCI到PCI桥接器后面的每条PCI总线分配一个唯一的总线编号。PCI总线编号和插槽编号的组合提供了一个可以由计算机程序用来选择通过配置空间安装在系统中的任何特定PCI设备的唯一标识符。PCI寻址和路由协议通常预期一个物理分级总线结构,在其中面向一特定PCI设备的主机总线周期在物理上被路由通过主机到PCI桥接器并且可能通过一个或多个PCI到PCI桥接器,以生成在其中驻留有所面向的PCI设备的特定PCI总线上的一个周期。每条PCI总线被定义为位于任意一条PCI总线和主机总线之间的物理/虚拟数据传送通路中的该任意一条PCI总线之后。
对本说明书来说,主PCI总线150可以是总线编号0,并且是直接在主机到PCI桥接器后面的总线,但是它也可以是在总线编号0后面的、其中虚拟PCI设备150是在后面的任一PCI总线,并且它与本发明的方法是相符的,这是因为在一个特定系统中可以有多于一个的主PCI总线。另外,主PCI总线160可以是实际的PCI总线,或者它可以是虚拟的。对本说明书来说,术语虚拟和逻辑是就从在任意一个或多个处理器130上运行的计算机程序的角度来看而言的,其中该程序所看到的物理设备或结构可能并不是实际的物理设备或结构的反映。虚拟PCI设备160逻辑上驻留在PCI总线151上,其是主PCI总线150的扩展,或是主PCI总线150的辅助总线(即驻留在主PCI总线150后面的总线)中的一条。
主机到PCI桥接器140、240、340可以使选择主机总线120周期到主PCI总线150和该主PCI总线150的辅助总线的转换和路由更加方便。主机到PCI桥接器140、240、340可以包含主机总线接口141、PCI总线接口142、存储器145、存储器149和控制电路148,以跟踪主机总线120周期,从而为每个主机总线周期确定是否将该主机总线周期路由到一条实际的主PCI总线150。为了进行这个确定,控制电路148参考存储器145和存储器149,其中存储器145标识分配给主PCI总线150和它的辅助总线的地址空间,存储器149标识分配给虚拟PCI设备160或者可能分配给其它虚拟设备的地址空间。存储器145和149可以以总线编号、存储器地址范围、I/O地址范围或者其它类似信息的形式保持信息。在存储器149中的信息通常可以是在存储器145中的、分配给主PCI总线150和它的辅助总线的地址空间的子集,其中在存储器149中的信息表示分配给虚拟PCI设备160(或者在更复杂的配置中分配给所有或者一组虚拟设备或者总线)的地址范围。允许面向虚拟PCI设备160的主机总线周期被主机总线设备110、210、310截取。
在其中主机总线120利用PentiumTM3或者4处理器协议的系统中,主机到PCI桥接器140、240、340可以是用于所有主机总线周期的、确保依据主机总线协议完成所有主机总线周期的应答器,并且主机总线设备110可以声明它截取的选择主机总线周期。
为标识面向虚拟PCI设备160的主机总线周期所要求的信息和获得这个信息的方式可以取决于特定系统的总线结构。虚拟PCI设备160的唯一的总线-设备编号组合可以被硬布线或者预编程到在系统100中的主机总线设备110和主机到PCI桥接器中,其中在系统100中虚拟PCI设备160在逻辑上驻留在主PCI总线150上。
对于系统100、200、300、400来说,当在这些系统中出现下列情况时,这些系统仍是与本发明的实施例相符的:系统100、200、300、400具有两个、三个或更多主机总线设备110、210、410或者具有两个、三个或更多处理器130,其中处理器130每个都具有集成到它当中的一个或多个主机总线设备110、210、410。本发明的方法可以应用于包含多个不同的主机总线设备110的系统100,其中这多个不同的主机总线设备110每个都与多个不同的虚拟PCI设备160中的一个相关。面向多个虚拟PCI设备160中的任何一个的主机总线120周期都不被主机到PCI桥接器140转发到主PCI总线150;相反地,允许主机总线设备110中的一个截取该周期。一个以上的主机总线设备110可以与一个特定虚拟PCI设备160相关,以便使两个或更多主机总线设备110利用分配给该特定虚拟PCI设备的系统资源。相反地,单个主机总线设备110可以与一个以上的虚拟PCI设备160相关。此外,主机总线设备110可以支持多种根据PCI协议的功能。用于防止多个主机总线设备110截取到同一个虚拟PCI设备160的周期的方案,可以通过使用用于标识主机总线设备110的相关虚拟PCI设备160的唯一的总线编号-设备编号组合对每个主机总线设备110进行硬布线或者预编程来实现。
图1a显示了通过接口112连接到主机总线的主机总线设备110,其中接口112不同于到处理器130的主机总线接口。图1b显示了符合本发明的方法的可替换的配置,其中处理器130和主机总线设备110通过内部总线113和共享的主机总线接口112连接到主机总线120。图1b中的系统能够通过将主机总线设备110和处理器130集成到单个电路封装(package)中而产生。
图2依据对如图1所示的系统100的教授显示了用于说明本发明一个实施例的系统200。系统200包含虚拟PCI设备160,其从在一个或多个处理器130上运行的计算机程序的角度来看包含了256个可通过配置空间访问的8位配置寄存器268。只有必要的和相关的配置寄存器268才被实现了。依据PCI协议,计算机程序可以启动对虚拟配置寄存器268的访问,以实现包含下列功能的一个或多个功能:检测虚拟PCI设备160的存在、标识厂家和设备类型、确定虚拟设备160的系统资源需求、提供完全的设备重定位、在无需用户干涉的情况下进行中断约束、安装、配置、引导,以及在系统映射结构中包含虚拟PCI设备。
主机总线设备210可以包含主机总线存储器111,在这个实施例中主机总线存储器111包含PCI兼容配置寄存器218。只有必要的和相关的配置寄存器218才被实现。监控电路114跟踪主机总线周期,并且标识面向虚拟配置寄存器268的、被截取和重定向以访问主机总线设备配置寄存器218的主机总线周期。因此,在处理器130上执行的计算机程序能够通过启动面向虚拟PCI设备160的配置寄存器268的主机总线周期,来访问主机总线设备配置寄存器218。这样,主机总线设备210参与用于分配通常仅可由PCI设备得到的系统资源的初始化和配置过程。
在系统200中通过由PCI协议提供的两种映射机制中的任何一种生成配置周期。机制一是一种索引方案,其中在处理器I/O空间中的两个固定位置被保留用于配置地址寄存器243和配置数据寄存器244,所述的这两个寄存器243和244通常被包含在一个主机到PCI桥接器240中。配置地址寄存器243允许或者禁止配置空间,并且由计算机程序写入,从而通过指定后续的配置周期所要用于的总线编号、设备编号、功能编号和寄存器编号,来标识特定的PCI设备和具体的配置寄存器。面向配置数据寄存器244的后续的DWORD(双字)读和写主机总线周期通常被主机到PCI桥接器240转换和路由到PCI兼容配置周期中;然而,面向虚拟PCI设备160的配置寄存器268的主机总线周期被主机总线设备210截取,而不是如PCI协议预期的那样由主机到PCI桥接器240对其进行路由。
支持机制一的系统200可以提供一个镜像寄存器216,其被包含在存储器115中并且保持通过探听而获得的选择信息。面向配置地址寄存器243的主机总线120的写周期可以被主机总线设备210探听,并且在探听周期中传送的数据可以被存储到镜像寄存器216中,然后由镜像寄存器216反映配置地址寄存器243的内容。监控电路114可以参考镜像寄存器216,以标识面向配置数据寄存器244的、用来访问虚拟配置寄存器268的后续的DWORD主机总线120周期。这些标识了的周期可以被主机总线设备210截取,并且被重定向以访问在主机总线设备210中的相应的配置寄存器218。
可替换地,系统200可以支持机制二,其中通常驻留在主机到PCI桥接器240中的配置空间使能寄存器(未显示)和转发寄存器(未显示)由计算机程序写入,以指定将被映射到在处理器I/O地址空间中的固定位置的4k字节的配置空间。被设计为支持机制二的系统200可以提供镜像寄存器216,以存储探听到的面向配置空间使能寄存器(未显示)和转发寄存器(未显示)的主机总线写周期。监控电路114可以参考镜像寄存器216,以标识面向虚拟设备的配置寄存器268的主机总线周期。标识了的周期可以被主机总线设备210截取,并且被重定向以访问在主机总线设备210中的相应的配置寄存器218。
依据PCI协议,配置寄存器可以被计算机程序用来分配系统资源,其中所述系统资源包含中断、处理器存储器地址空间、处理器I/O地址空间以及ROM(只读存储器)地址空间,这些ROM地址空间是被保留用于ROMs的一系列处理器存储器地址空间。计算机程序可以启动对不存在的虚拟配置寄存器268的访问,以确定虚拟PCI设备160的系统需求,并且通过写选择配置寄存器268而向虚拟PCI设备160分配资源。计算机程序还可以访问虚拟设备的配置寄存器268,用于处理灾难性错误,以及执行内置自检(BIST)和获得内置自检的状态。
可选地,主机总线设备配置寄存器218可以被实现从而表示对诸如将被分配给虚拟PCI设备260的一个或多个系列的存储空间或者I/O空间的具体系统资源的请求。内部存储器111的一部分可以被计算机程序映射到这个地址空间中用于通过主机总线120进行访问。在计算机程序向虚拟PCI设备160分配地址空间之后,在这个可选的实施例中,监控电路114可以参考适当的配置寄存器218,以标识主机总线周期是否面向分配给虚拟PCI设备160的存储器或者I/O空间。这些标识了的周期可以被主机总线设备210截取,并且被重定向以访问主机总线存储器111。
主机总线设备210和主机到PCI桥接器240都可能知道虚拟PCI设备160的总线编号和设备编号。该信息可以被硬布线、预编程或者在系统初始化期间由程序提供,并且被用来标识面向虚拟PCI设备160配置空间的主机总线周期。主机到PCI桥接器240可以通过探听面向特定虚拟配置寄存器268的选择主机总线写周期来获悉分配给虚拟PCI设备160的地址空间,其中该特定虚拟配置寄存器268指定了分配给虚拟PCI设备160的地址空间。
图3显示了依据对系统100和系统200的教授,用于说明本发明一个实施例的系统300。系统300实现了用于访问配置空间的机制一。系统300可以包含主虚拟PCI到PCI(P-P)桥接器370,其中该主虚拟PCI到PCI桥接器370对于在处理器130上运行的计算机程序来说可以是驻留在主要PCI总线150上,并且可以是到主虚拟PCI总线357的桥接器。虚拟PCI设备360对于在处理器130上运行的计算机程序来说可以是驻留在主虚拟总线357上。
在这个实施例中,主机总线设备210和主机到PCI桥接器340都知道其中驻留有主虚拟P-P桥接器370的总线编号和设备编号,而且主机总线设备210知道虚拟PCI设备360的设备编号。该信息可以由初始化程序提供,或者是被硬布线或预编程。
主机到PCI桥接器340可以包含存储器149,在这个实施例中该存储器149被诸如即插即用(plug-and-playTM)资源分配程序的计算机程序写入,以向主PCI总线150分配地址空间,并且该地址空间包括分配给虚拟设备160的所有地址空间。存储在存储器149中的信息可以包含可驻留在主PCI总线357后面的虚拟总线(未显示)的总线编号:总线编号通常是足以确定分配给主PCI总线357和它的辅助总线的配置空间。可选地,存储器149可以包含分配给主PCI总线357和任何辅助总线的存储器空间或者I/O空间。在这个实施例中,依据即插即用(plug-and-playTM)协议,分配给主PCI总线357的地址空间通常包括分配给任何可选的辅助总线(未显示)和虚拟PCI设备160的地址空间,从而导致主机到PCI桥接器340可以容易地和有效地进行解码,从而用于标识面向虚拟PCI总线357和任何可选的从属虚拟总线的主机总线周期。
主机到PCI桥接器340可以包含桥接器配置寄存器347,其被控制电路148参考,以标识面向主虚拟PCI-PCI(P-P)桥接器370的虚拟配置寄存器378的主机总线周期,以及把这些标识了的周期路由到主机到PCI桥接器配置寄存器347。在这个实施例中,控制电路148可以参考桥接器配置寄存器347和存储器145以及存储器149,以确定是否将主机总线周期路由到主PCI总线150。
主机总线设备210可以探听面向主虚拟P-P桥接器370的配置寄存器378的主机总线周期,以获悉由计算机程序分配给主虚拟PCI总线357的总线编号,并且把这个信息存储在存储器115中,所述存储器115保持通过探听获得的选择信息。仅仅具有一个主机总线设备210的系统可以任意地分配一个设备编号给虚拟PCI设备160。具有多个主机总线设备210的系统可以要求这样一个机制,所述机制用于使每个主机总线设备210与一个不同的虚拟PCI设备360相关联,诸如向每个主机总线设备210提供一个唯一的设备编号(即插槽编号),并且所述设备编号可以被硬布线、预编程或者由初始化程序存储。
图4依据对如图3所示的系统的教授,显示了用于说明本发明的一个实施例的系统400。主机总线设备410可以符合对主机总线设备210和310的描述。系统400实现用于访问配置空间的机制一。系统400进一步包含直接与次虚拟PCI总线451接口的次虚拟P-P桥接器490。次虚拟P-P桥接器490从在处理器130上运行的计算机程序的角度来看是驻留在主虚拟PCI总线357上,并且虚拟PCI设备160可以在逻辑上驻留在次虚拟PCI总线451上。
次虚拟总线451从属于主虚拟PCI总线357,并且在这个实施例中,分配给次虚拟总线451和虚拟PCI设备160的地址空间位于分配给主虚拟PCI总线357的地址空间的范围之内。主机到PCI桥接器340可以参考存储器145,以标识和路由面向主PCI总线150和它的辅助总线的主机总线周期,主机到PCI桥接器340还可以参考存储器149,以标识面向主虚拟总线357和它的辅助总线的主机总线周期。面向主虚拟总线357和它的辅助总线的主机总线周期不被转发到主PCI总线450,但是允许其被主机总线设备410截取。依据主机总线协议,主机到PCI桥接器340可以完成(即终止)截取的主机总线430的周期。
主机总线设备410可以包含存储器111,其连接到主机总线并且可由处理器130访问。存储器111可以包含设备配置寄存器218,其中所述设备配置寄存器218由面向虚拟PCI设备160的配置寄存器268的主机总线周期访问。此外,存储器111可以进一步包含桥接器配置寄存器417,其由面向虚拟次P-P桥接器490的虚拟配置寄存器497的主机总线周期访问。
与系统300类似,在这个实施例中,主机总线设备410和主机到PCI桥接器340都知道其中驻留有主虚拟P-P桥接器370的总线编号和设备编号。该信息可以通过初始化程序、硬布线或预编程从而被提供。另外,主机总线设备410包含监控电路114,其在这个实施例中可以通过探听面向主虚拟P-P桥接器370的配置寄存器378的主机总线周期,来获悉分配给主虚拟PCI总线357和它的辅助总线的总线编号。通过探听获得的该信息可以被存储在存储器115中。在包含单个主机总线设备410的系统400中,次虚拟P-P桥接器490的设备编号可以被任意地分配。
在具有多个主机总线设备410的系统中,需要有这样一种机制,其通过诸如向每个主机总线设备410分配用于相关的次虚拟P-P桥接器490的唯一的设备编号,来使每个主机总线设备与一个不同的次虚拟P-P桥接器490相关联,其中该编号可以被硬布线、预编程或者由初始化程序分配。每个主机总线设备410可以在它的内部配置寄存器417被计算机程序写入之后参考该寄存器417,以确定分配给直接位于它的相关次虚拟P-P桥接器后面的次虚拟总线451的总线编号,然后任意地分配一个设备编号给一个或多个虚拟PCI设备460中的每一个。监控电路114可以按照与所述用于系统100的方式相似的方式参考该信息,以标识面向虚拟PCI设备160的主机总线周期。每个主机总线设备410可以包含多个物理设备,这多个设备中的每一个都与逻辑上驻留在它的相关次虚拟PCI总线451上的一个不同的虚拟设备160相关。Plug and PlayTM程序通常把分配给驻留在每个次虚拟P-P桥接器490后面的所有虚拟设备160的资源分组,从而导致每个主机总线设备410可以容易地对主机总线周期进行解码,从而用于标识将被截取的周期。例如,单个存储器地址范围可以被分配给包括分配给每个设备的多个范围的次虚拟P-P桥接器490。
图5显示了用于说明本发明的方法500的流程图,该方法可以被系统100、200、300、400利用并且被监控电路114执行。开始510可以是主机总线重置,其将导致存储器和寄存器被设置为缺省值。可以为每个主机总线周期执行下列步骤。获取步骤520包括等待主机总线周期,然后接收并且锁存指示了用于当前主机总线周期的对象的选择主机总线地址和控制信号。下一个评定步骤(步骤540)包含评定每个获取的周期,以确定是进入截取步骤550还是进入探听步骤(步骤560)。探听(步骤560)包括接收和在存储器115中存储选择主机总线数据信号120。评定步骤(步骤550)包含评定每个获取的周期,以确定是在当前周期什么都不做并进入步骤520以获取下一个主机总线周期,还是进入截取周期(步骤580),其导致当前主机总线周期被路由以访问(即读或者写)在主机总线存储器111内的适当位置。步骤540和550可以被并行执行,或者步骤540可以先于步骤550或步骤550可以先于步骤540
图6a和6b显示了用于说明由如图4所示的系统400的监控电路114执行的方法600的流程图。开始(步骤610)和获取(步骤620)可以分别与所述的步骤510和520相同。通过步骤641、642、662和664实现评定(步骤540)和探听(步骤560)。同样地,通过步骤643、644、645、682、684、和686实现评定步骤550和截取步骤580。评定步骤641-645实质上可以在主机总线周期的地址阶段期间并行进行,并且如果执行了探听步骤662、664或者截取步骤682、684、686,则可以在主机总线周期的数据阶段期间进行探听或者截取步骤。被探听的周期可以由除了主机总线设备410之外的设备完成(例如终止),并且被截取的周期可以由主机总线设备410完成。
评定步骤641包含评定当前所获取的主机总线周期是否面向配置地址寄存器243。如果评定的结果是肯定的,那么进入步骤662,并且探听由当前所获取的周期传送的数据,而且该数据的一部分或者全部被保存在镜像寄存器216中。如果评定的结果是否定的,那么进入步骤642。
评定步骤642包含评定所获取的主机总线周期是否面向用于向主虚拟P-P桥接器370分配总线编号的特定的虚拟配置寄存器378。结果为肯定的评定要求配置地址寄存器243(如镜像寄存器216的内容反映的那样)具有表示配置空间被使能的值、和目前正指向主虚拟P-P桥接器370的特定的配置寄存器378的值,其中主虚拟P-P桥接器370的配置寄存器378指定了分配给主虚拟总线357的总线编号。结果为肯定的评定还要求所获取的读或者写主机总线周期是面向配置数据寄存器244的。如果在步骤642中所进行的评定的结果是肯定的,那么进入探听步骤664,并且在探听步骤664中在当前周期中传送的主机总线120的数据的一部分或者全部被锁存和存储在存储器115中。
评定步骤643包含评定当前周期是否面向次P-P桥接器490的配置空间。结果为肯定的评定要求配置地址寄存器243(如镜像寄存器216的内容反映的那样)具有表示配置空间被使能的值、并且具有目前正指向次P-P桥接器490的配置寄存器497的值。结果为肯定的评定还要求所获取的周期是面向配置数据寄存器244的读或者写主机总线周期。如果在步骤643中所进行的评定的结果是肯定的,那么进入截取步骤682,以将当前主机总线周期路由到用于次虚拟P-P桥接器490的配置寄存器417,其中所访问的特定配置寄存器417由镜像寄存器216的当前内容确定。
评定步骤644包含评定所获取的主机总线周期是否面向虚拟PCI设备160的配置空间。结果为肯定的评定要求配置地址寄存器243(如镜像寄存器216的内容反映的那样)具有表示配置空间被的值、和目前正指向虚拟PCI设备160的配置寄存器268的值。结果为肯定的评定还要求所获取的周期是面向配置数据寄存器244的读或者写主机总线周期。如果在步骤644中所进行的评定的结果是肯定的,那么进入截取步骤684,以路由当前主机总线周期从而访问由镜像寄存器216的内容所指示的特定主机总线配置寄存器218。
评定步骤645包含评定所获取的主机总线周期是否面向由计算机程序分配给虚拟PCI设备160的存储器或者I/O地址空间。如果指定分配给虚拟PCI设备460的存储器或者I/O空间的特定配置寄存器218没有被预先设置,则该评定的结果总是否定的。把由PCI配置寄存器218的当前内容确定的分配给虚拟PCI设备160的地址空间与获取的主机总线周期信息进行比较。如果用于当前主机总线周期的对象位于分配给虚拟PCI设备160的地址空间的范围之内,则进入步骤686,以将当前主机总线420的周期路由到由获取的主机总线周期的地址和控制信号指示的适当的内部存储器111。
本领域技术人员可以理解,可以在保持本发明的精神的同时,在除所描述的物理设备之外的其它物理设备上实现在此描述的功能。
尽管本发明被描述为应用于PCI系统,但是本领域技术人员可以理解,在此所描述的方法可以被具有主机总线和外围总线(与PCI兼容总线相似)的任何系统使用,并且其中通过使连接到主机总线的设备对于在该系统中的处理器上运行的计算机程序来说是驻留在外围总线上,而获得有益之处。
Claims (30)
1.一种装置,包含:
存储多个数据的一个第一存储器,所述第一存储器通过第一通路连接到一条主机总线,并且响应于多个控制信号中的一个或多个,以传送所述数据的被选择的部分到所述主机总线;以及
一个监控电路,连接到所述主机总线,以跟踪处理器启动的主机总线周期,并且标识面向逻辑上驻留在主PCI总线后面的虚拟PCI设备的由处理器启动的主机总线读周期,其中所述主PCI总线通过不同于所述第一通路的第二通路连接到所述主机总线;
其中所述监控电路将生成所述多个控制信号,以在面向所述虚拟PCI设备的一个或多个所述被标识的主机总线读周期期间传送选择的一个或多个所述数据到所述主机总线。
2.如权利要求1所述的装置,其中所述虚拟PCI设备是一个虚拟PCI-PCI桥接器。
3.如权利要求1所述的装置,进一步包含一个第二存储器,其连接到所述主机总线,并且响应于所述多个控制信号中的一个或多个,以有选择地从所述主机总线中接收所述数据从而存储在所述第二存储器中;
其中所述虚拟PCI设备逻辑上驻留在一个虚拟PCI到PCI桥接器后面,所述虚拟PCI到PCI桥接器逻辑上驻留在所述主PCI总线后面;以及
其中所述监控电路将进一步标识面向在保留给所述虚拟PCI到PCI桥接器的配置空间内的、指定总线编号的一个位置的主机总线写周期,并且生成所述控制信号以从所述主机总线接收所述总线编号从而存储在所述第二存储器中。
4.如权利要求1所述的装置,进一步包含:一个连接到所述主机总线的处理器,其中所述处理器、所述第一存储器和所述监控电路被集成到单个芯片封装中。
5.如权利要求3所述的装置,其中所述第一存储器和所述监视电路通过一条内部处理器总线连接到所述主机总线。
6.如权利要求1所述的装置,其中所述第一存储器响应于所述多个控制信号中的一个或多个,以有选择地从所述主机总线中接收数据以存储在所述第一存储器中;
其中所述监控电路将进一步标识面向逻辑上驻留在所述主PCI总线后面的所述虚拟PCI设备的由处理器启动的主机总线写周期;
其中所述监控电路将生成所述多个控制信号,以在面向所述虚拟PCI设备的一个或多个所述标识的主机总线写周期期间从所述主机总线接收数据以存储在所述存储器中。
7.如权利要求1所述的装置,其中所述存储器包含随机存取存储器;以及
面向所述虚拟PCI设备的所述标识的主机总线读周期包含面向分配给所述虚拟PCI设备的存储器地址空间的主机总线周期。
8.如权利要求1所述的装置,进一步包含一个镜像寄存器,其连接到所述主机总线,并且响应于一个或多个所述控制信号以从所述主机总线接收数据;
其中所述监控电路将进一步标识面向一个配置地址寄存器的主机总线写周期;以及
其中所述监控电路将生成所述控制信号,以在被标识为面向所述配置地址寄存器的所述主机总线周期期间从所述主机总线接收数据以存储在所述镜像寄存器中。
9.如权利要求1所述的装置,其中面向所述虚拟PCI设备的所述标识的主机总线读周期包含面向分配给所述虚拟PCI设备的I/O地址空间的主机总线周期。
10.如权利要求1所述的装置,其中所述第一存储器包含第一多个配置寄存器;以及
其中所述标识的主机总线周期包含面向保留给所述虚拟PCI设备的配置空间的主机总线周期。
11.如权利要求10所述的装置,其中所述虚拟PCI设备驻留在一个虚拟PCI到PCI桥接器后面,以及
其中所述第一存储器包含第二多个配置寄存器,
并且其中所述监控电路将进一步标识面向分配给所述虚拟PCI到PCI桥接器的配置空间的主机总线周期,并且
其中所述监控电路将生成所述多个控制信号,以在面向分配给所述虚拟PCI到PCI桥接器的所述配置空间的一个或多个所述标识的主机总线读周期期间,传送选择的一个或多个所述数据到所述主机总线。
12.一种装置,包含:
一个第一存储器,其中所述第一存储器的内容指定分配给主PCI总线的第一地址空间;
一个第二存储器,其中所述第二存储器的内容指定分配给逻辑上驻留在所述主PCI总线后面的一个虚拟PCI设备的第二地址空间;以及
一个控制电路,连接到所述第一和所述第二存储器,其中所述控制电路将连接到主机总线以跟踪由处理器启动的主机总线周期,并且选择主机总线周期以将其路由到所述主PCI总线,其中将基于所述第一存储器和所述第二存储器的所述内容选择所述路由的周期,以排除面向所述第二地址空间的主机总线周期。
13.如权利要求12所述的装置,其中所述第一和所述第二地址空间包含存储器主机总线地址空间。
14.如权利要求12所述的装置,其中所述第一和所述第二地址空间包含主机总线I/O空间。
15.如权利要求12所述的装置,其中所述第一和所述第二地址空间包含PCI兼容配置地址空间。
16.如权利要求12所述的装置,其中所述虚拟PCI设备是一个虚拟PCI到PCI桥接器。
17.如权利要求16所述的装置,进一步包含:
多个配置寄存器;
连接到所述控制电路的一个第三存储器,其中所述第三存储器的内容指示其中逻辑上驻留有所述虚拟PCI到PCI桥接器的总线和设备编号,并且其中所述控制电路将进一步基于所述总线和所述设备编号选择面向所述虚拟PCI到PCI桥接器的配置地址空间的主机总线周期,以将其路由到所述多个配置寄存器。
18.一种系统,包含:
一个或多个连接到一个主机总线的处理器;
一个主机到PCI桥接器,以将由处理器启动的主机总线周期路由到主PCI总线;以及
一个主机总线设备,连接到所述主机总线,以监控所述主机总线,标识面向逻辑上驻留在所述主PCI总线后面的第一虚拟PCI设备的由处理器启动的主机总线周期,以及截取面向所述第一虚拟PCI设备的选择的所述标识的周期;
其中所述主机到PCI桥接器将不转发面向所述第一虚拟PCI设备的所述标识的周期。
19.如权利要求18所述的系统,其中所述第一主机总线设备包含多个配置寄存器,其中所述被截取的周期包含面向保留给所述第一虚拟PCI设备的配置空间的主机总线周期并且将被路由以访问所述多个配置寄存器。
20.如权利要求18所述的系统,其中所述第一主机总线设备包含一个存储器设备阵列,其中所述被截取的周期包含面向分配给所述虚拟PCI设备的存储器空间的主机总线周期并且将被路由以访问所述存储器设备阵列。
21.如权利要求18所述的系统,进一步包含连接到所述主机总线的一个第二主机总线设备,其中每个所述主机总线设备截取面向不同的虚拟PCI设备的主机总线周期,其中该不同的虚拟PCI设备在逻辑上驻留在所述主PCI总线后面,其中所述不同的虚拟PCI设备每个都具有一个不同的总线编号和设备编号组合。
22.如权利要求18所述的系统,其中所述虚拟PCI设备在逻辑上驻留在主虚拟PCI到PCI桥接器后面,其中所述主虚拟PCI到PCI桥接器在逻辑上驻留在所述主PCI总线后面,并且其中所述主机总线设备将探听所述主机总线以确定分配给所述主虚拟PCI到PCI总线的总线编号。
23.如权利要求22所述的系统,其中所述虚拟PCI设备在逻辑上驻留在一个次虚拟PCI到PCI桥接器后面,所述次虚拟PCI到PCI桥接器在逻辑上驻留在所述主虚拟PCI到PCI桥接器后面;以及
其中所述第一主机总线设备包含多个桥接器配置寄存器,其中所述被截取的周期包含面向保留给所述次虚拟PCI到PCI桥接器的配置空间的主机总线周期并且将被路由以访问所述多个桥接器配置寄存器。
24.一种方法,包含:
获取由处理器启动的一个当前主机总线周期;
确定所述被获取的周期是否面向一个在逻辑上驻留在主PCI总线后面的虚拟PCI设备;以及
如果所述当前周期被确定为面向所述虚拟PCI设备,则截取所述当前主机总线周期,并且不将所述周期路由到所述主PCI总线。
25.如权利要求24所述的方法,其中所述截取包含路由以访问连接到所述主机总线的存储器。
26.如权利要求24所述的方法,其中所述截取包含路由以访问在多个配置寄存器内的一个位置。
27.如权利要求24所述的方法,其特征在于:所述确定包含:确定所述当前周期是否为面向一个配置地址寄存器的写周期,并且如果所述当前周期为面向所述配置地址寄存器的写周期,则探听所述当前主机总线周期以从所述主机总线中接收数据,以及将所述数据的一部分或者全部写入到一个镜像寄存器中。
28.如权利要求24所述的方法,其中所述确定包含:确定所述当前周期是否为面向在虚拟主PCI到PCI桥接器的配置寄存器内的一个位置的写周期,在虚拟主PCI到PCI桥接器的配置寄存器中指定了总线编号;以及
如果当前周期是面向在虚拟主PCI到PCI桥接器的配置寄存器内的一个位置的写周期,则探听所述当前主机总线周期以从所述主机总线中接收数据,并且将所述数据写入一个存储器中,其中在虚拟主PCI到PCI桥接器的配置寄存器中指定了总线编号。
29.如权利要求24所述的方法,其中所述确定包含:确定所述周期是否面向在虚拟PCI到PCI桥接器的配置寄存器内的一个位置;以及
如果所述周期面向在虚拟PCI到PCI桥接器的配置寄存器内的一个位置,则截取所述当前主机总线,以路由从而访问在多个桥接器配置寄存器内的一个位置。
30.如权利要求24所述的方法,其中所述虚拟PCI设备是一个虚拟PCI到PCI桥接器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/896,395 US6823418B2 (en) | 2001-06-29 | 2001-06-29 | Virtual PCI device apparatus and method |
US09/896,395 | 2001-06-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1522415A true CN1522415A (zh) | 2004-08-18 |
CN1302400C CN1302400C (zh) | 2007-02-28 |
Family
ID=25406131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028131037A Expired - Fee Related CN1302400C (zh) | 2001-06-29 | 2002-06-20 | 虚拟pci设备装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6823418B2 (zh) |
EP (1) | EP1399826B1 (zh) |
JP (1) | JP4657602B2 (zh) |
KR (1) | KR100837449B1 (zh) |
CN (1) | CN1302400C (zh) |
TW (1) | TWI244000B (zh) |
WO (1) | WO2003003225A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100507889C (zh) * | 2006-08-22 | 2009-07-01 | 国际商业机器公司 | 能够实现外围总线芯片组内的虚拟通道的方法和装置 |
CN101387993B (zh) * | 2007-09-14 | 2010-09-08 | 凹凸科技(中国)有限公司 | 对计算机系统中的设备进行动态资源配置的方法及系统 |
CN101996152A (zh) * | 2006-07-03 | 2011-03-30 | 索尼株式会社 | 卡式外围装置和通信系统 |
CN101676894B (zh) * | 2008-08-15 | 2011-08-17 | 北京北大众志微系统科技有限责任公司 | 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法 |
CN102169440A (zh) * | 2009-12-23 | 2011-08-31 | 英特尔公司 | 虚拟化掉电的输入/输出装置 |
CN101043510B (zh) * | 2007-04-29 | 2012-03-07 | 中兴通讯股份有限公司 | Pci-e总线分布式系统单板内及单板间数据通讯方法 |
CN104995613A (zh) * | 2013-03-14 | 2015-10-21 | 英特尔公司 | 用于建立虚拟pci设备和虚拟mmio设备的泛型方法 |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954929B2 (en) * | 2001-07-30 | 2005-10-11 | Hewlett-Packard Development Company, L.P. | Method for just-in-time updating of programming parts |
US20040225783A1 (en) * | 2001-07-30 | 2004-11-11 | Erickson Michael John | Bus to multiple jtag bus bridge |
US6918027B2 (en) | 2001-07-30 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | System and method for in-system programming through an on-system JTAG bridge of programmable logic devices on multiple circuit boards of a system |
US6883109B2 (en) * | 2001-07-30 | 2005-04-19 | Hewlett-Packard Development Company, L.P. | Method for accessing scan chains and updating EEPROM-resident FPGA code through a system management processor and JTAG bus |
US7389332B1 (en) | 2001-09-07 | 2008-06-17 | Cisco Technology, Inc. | Method and apparatus for supporting communications between nodes operating in a master-slave configuration |
US6826628B2 (en) * | 2001-10-26 | 2004-11-30 | O2Micro International Limited | PCI-PCMCIA smart card reader |
US7421478B1 (en) | 2002-03-07 | 2008-09-02 | Cisco Technology, Inc. | Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration |
US6973525B2 (en) * | 2002-03-19 | 2005-12-06 | Dell Products L.P. | System and method for managing bus numbering |
US7415535B1 (en) | 2002-04-22 | 2008-08-19 | Cisco Technology, Inc. | Virtual MAC address system and method |
US7433952B1 (en) | 2002-04-22 | 2008-10-07 | Cisco Technology, Inc. | System and method for interconnecting a storage area network |
US7188194B1 (en) | 2002-04-22 | 2007-03-06 | Cisco Technology, Inc. | Session-based target/LUN mapping for a storage area network and associated method |
US7587465B1 (en) | 2002-04-22 | 2009-09-08 | Cisco Technology, Inc. | Method and apparatus for configuring nodes as masters or slaves |
US7165258B1 (en) | 2002-04-22 | 2007-01-16 | Cisco Technology, Inc. | SCSI-based storage area network having a SCSI router that routes traffic between SCSI and IP networks |
US7200610B1 (en) | 2002-04-22 | 2007-04-03 | Cisco Technology, Inc. | System and method for configuring fibre-channel devices |
US7120837B1 (en) | 2002-05-09 | 2006-10-10 | Cisco Technology, Inc. | System and method for delayed error handling |
US7240098B1 (en) * | 2002-05-09 | 2007-07-03 | Cisco Technology, Inc. | System, method, and software for a virtual host bus adapter in a storage-area network |
US7117289B2 (en) * | 2002-09-30 | 2006-10-03 | Intel Corporation | Claiming cycles on a processor bus in a system having a PCI to PCI bridge north of a memory controller |
US7831736B1 (en) | 2003-02-27 | 2010-11-09 | Cisco Technology, Inc. | System and method for supporting VLANs in an iSCSI |
US7295572B1 (en) | 2003-03-26 | 2007-11-13 | Cisco Technology, Inc. | Storage router and method for routing IP datagrams between data path processors using a fibre channel switch |
US7904599B1 (en) | 2003-03-28 | 2011-03-08 | Cisco Technology, Inc. | Synchronization and auditing of zone configuration data in storage-area networks |
US7433300B1 (en) | 2003-03-28 | 2008-10-07 | Cisco Technology, Inc. | Synchronization of configuration data in storage-area networks |
US7526527B1 (en) | 2003-03-31 | 2009-04-28 | Cisco Technology, Inc. | Storage area network interconnect server |
US7451208B1 (en) | 2003-06-28 | 2008-11-11 | Cisco Technology, Inc. | Systems and methods for network address failover |
US7243167B2 (en) | 2003-09-19 | 2007-07-10 | Intel Corporation | Managing peripheral device address space resources using a tunable bin-packing/knapsack algorithm |
US7200687B2 (en) * | 2003-09-25 | 2007-04-03 | International Business Machines Coporation | Location-based non-uniform allocation of memory resources in memory mapped input/output fabric |
US7437738B2 (en) * | 2003-11-12 | 2008-10-14 | Intel Corporation | Method, system, and program for interfacing with a network adaptor supporting a plurality of devices |
US7376775B2 (en) * | 2003-12-29 | 2008-05-20 | Intel Corporation | Apparatus, system, and method to enable transparent memory hot plug/remove |
US7484210B2 (en) * | 2004-02-17 | 2009-01-27 | Intel Corporation | Apparatus and method for a generic, extensible and efficient data manager for virtual peripheral component interconnect devices (VPCIDs) |
WO2005088463A1 (en) * | 2004-03-18 | 2005-09-22 | Intel Corporation | Method and apparatus to support booting despite deficient resources |
US8868891B2 (en) | 2004-03-18 | 2014-10-21 | Intel Corporation | Method and apparatus to support booting despite deficient resources |
TWI255405B (en) * | 2005-01-05 | 2006-05-21 | Via Tech Inc | Bus controller and controlling method for use in computer system |
US7386637B2 (en) * | 2005-02-25 | 2008-06-10 | International Business Machines Corporation | System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources |
US20060195623A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification |
US7870301B2 (en) * | 2005-02-25 | 2011-01-11 | International Business Machines Corporation | System and method for modification of virtual adapter resources in a logically partitioned data processing system |
US20060195618A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization |
US7398328B2 (en) * | 2005-02-25 | 2008-07-08 | International Business Machines Corporation | Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification |
US7480742B2 (en) * | 2005-02-25 | 2009-01-20 | International Business Machines Corporation | Method for virtual adapter destruction on a physical adapter that supports virtual adapters |
US20060212870A1 (en) * | 2005-02-25 | 2006-09-21 | International Business Machines Corporation | Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization |
US7546386B2 (en) * | 2005-02-25 | 2009-06-09 | International Business Machines Corporation | Method for virtual resource initialization on a physical adapter that supports virtual resources |
US7493425B2 (en) * | 2005-02-25 | 2009-02-17 | International Business Machines Corporation | Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization |
US7308551B2 (en) * | 2005-02-25 | 2007-12-11 | International Business Machines Corporation | System and method for managing metrics table per virtual port in a logically partitioned data processing system |
US7496790B2 (en) * | 2005-02-25 | 2009-02-24 | International Business Machines Corporation | Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization |
US20060195848A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | System and method of virtual resource modification on a physical adapter that supports virtual resources |
US7685335B2 (en) * | 2005-02-25 | 2010-03-23 | International Business Machines Corporation | Virtualized fibre channel adapter for a multi-processor data processing system |
US7543084B2 (en) * | 2005-02-25 | 2009-06-02 | International Business Machines Corporation | Method for destroying virtual resources in a logically partitioned data processing system |
US7376770B2 (en) * | 2005-02-25 | 2008-05-20 | International Business Machines Corporation | System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter |
US20060193327A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | System and method for providing quality of service in a virtual adapter |
US20060195617A1 (en) * | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification |
US7398337B2 (en) * | 2005-02-25 | 2008-07-08 | International Business Machines Corporation | Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization |
US7464191B2 (en) * | 2005-02-25 | 2008-12-09 | International Business Machines Corporation | System and method for host initialization for an adapter that supports virtualization |
US7475166B2 (en) * | 2005-02-28 | 2009-01-06 | International Business Machines Corporation | Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request |
US20060236016A1 (en) * | 2005-04-19 | 2006-10-19 | Tetrick R S | Method, system, and apparatus to support device configuration |
US7356628B2 (en) * | 2005-05-13 | 2008-04-08 | Freescale Semiconductor, Inc. | Packet switch with multiple addressable components |
US7334071B2 (en) * | 2005-05-25 | 2008-02-19 | Integrated Device Technology, Inc. | Expansion of cross-domain addressing for PCI-express packets passing through non-transparent bridge |
US7644219B2 (en) * | 2005-06-30 | 2010-01-05 | Dell Products L.P. | System and method for managing the sharing of PCI devices across multiple host operating systems |
US20070088874A1 (en) * | 2005-10-14 | 2007-04-19 | Hewlett-Packard Development Company, L.P. | Offload engine as processor peripheral |
US20070136554A1 (en) * | 2005-12-12 | 2007-06-14 | Giora Biran | Memory operations in a virtualized system |
US7428609B2 (en) * | 2005-12-29 | 2008-09-23 | Intel Corporation | Method and system to partition hardware resources between operating systems |
US8423682B2 (en) * | 2005-12-30 | 2013-04-16 | Intel Corporation | Address space emulation |
US20070260910A1 (en) * | 2006-04-04 | 2007-11-08 | Vinit Jain | Method and apparatus for propagating physical device link status to virtual devices |
US7945721B1 (en) * | 2006-08-11 | 2011-05-17 | Oracle America, Inc. | Flexible control and/or status register configuration |
US7752376B1 (en) * | 2006-08-11 | 2010-07-06 | Oracle America, Inc. | Flexible configuration space |
JP4810349B2 (ja) * | 2006-08-11 | 2011-11-09 | 日本電気株式会社 | I/o装置及び方法 |
US7984454B2 (en) * | 2006-12-19 | 2011-07-19 | International Business Machines Corporation | Migration of single root stateless virtual functions |
US20080192648A1 (en) * | 2007-02-08 | 2008-08-14 | Nuova Systems | Method and system to create a virtual topology |
JP5119686B2 (ja) * | 2007-03-06 | 2013-01-16 | 日本電気株式会社 | 情報処理装置および設定方法 |
US20080228971A1 (en) * | 2007-03-13 | 2008-09-18 | Rothman Michael A | Device modeling in a multi-core environment |
US20090043921A1 (en) * | 2007-08-09 | 2009-02-12 | Protip Roy | Method and System for Virtualization and Re-Direction of I/O Connections to Peripheral Devices |
US20090077297A1 (en) * | 2007-09-14 | 2009-03-19 | Hongxiao Zhao | Method and system for dynamically reconfiguring PCIe-cardbus controllers |
US8250573B2 (en) * | 2007-12-27 | 2012-08-21 | Intel Corporation | Audio subsystem sharing in a virtualized environment |
JP2011516964A (ja) * | 2008-04-01 | 2011-05-26 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Pciデバイス用pciメモリ空間の確保 |
US7743189B2 (en) * | 2008-05-05 | 2010-06-22 | International Business Machines Corporation | PCI function south-side data management |
JP5180729B2 (ja) * | 2008-08-05 | 2013-04-10 | 株式会社日立製作所 | 計算機システム及びバス割当方法 |
JP5401679B2 (ja) * | 2009-02-19 | 2014-01-29 | 株式会社日立製作所 | 計算機システム、管理方法及び管理サーバ |
JP5074457B2 (ja) * | 2009-06-04 | 2012-11-14 | 株式会社日立製作所 | 計算機システム、スイッチ切り替え方法及びpciスイッチ |
US8762698B2 (en) * | 2009-12-14 | 2014-06-24 | Intel Corporation | Virtual bus device using management engine |
US9852087B2 (en) | 2010-04-20 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Inline PCI-IOV adapter |
WO2012073304A1 (ja) * | 2010-11-29 | 2012-06-07 | 株式会社日立製作所 | 計算機システム、それに使用されるスイッチ及びパケット転送制御方法 |
CN103514125B (zh) * | 2012-06-25 | 2016-06-08 | 宏碁股份有限公司 | 主控端电子装置以及主控端操作方法 |
US9323706B2 (en) * | 2013-02-26 | 2016-04-26 | Red Hat Israel, Ltd. | Configuration snooping bridge |
US9286258B2 (en) | 2013-06-14 | 2016-03-15 | National Instruments Corporation | Opaque bridge for peripheral component interconnect express bus systems |
US10521365B2 (en) | 2014-10-05 | 2019-12-31 | Amazon Technologies, Inc. | Emulated endpoint configuration |
US20170270062A1 (en) | 2016-03-21 | 2017-09-21 | Intel Corporation | In-band retimer register access |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526503A (en) * | 1993-10-06 | 1996-06-11 | Ast Research, Inc. | Virtual addressing buffer circuit |
US5680592A (en) * | 1995-04-14 | 1997-10-21 | Nvidia Corporation | System using a plurality of state machines for translating commands intended for legacy bus devices to commands for local bus devices |
US5659551A (en) * | 1995-05-31 | 1997-08-19 | International Business Machines Corporation | Programmable computer system element with built-in self test method and apparatus for repair during power-on |
US5751975A (en) * | 1995-12-28 | 1998-05-12 | Intel Corporation | Method and apparatus for interfacing a device compliant to a first bus protocol to an external bus having a second bus protocol and for providing virtual functions through a multi-function intelligent bridge |
GB2347535B (en) * | 1995-12-28 | 2000-11-08 | Intel Corp | A method and apparatus for interfacing a device compliant to first bus protocol to an external bus |
US5796984A (en) * | 1996-01-26 | 1998-08-18 | Dell Usa, L.P. | Operating system independent apparatus and method for eliminating peripheral device functions |
US5968139A (en) * | 1996-11-25 | 1999-10-19 | Micron Electronics, Inc. | Method of redirecting I/O operations to memory |
US5930827A (en) * | 1996-12-02 | 1999-07-27 | Intel Corporation | Method and apparatus for dynamic memory management by association of free memory blocks using a binary tree organized in an address and size dependent manner |
US5832246A (en) * | 1996-12-03 | 1998-11-03 | Toshiba America Information Systems, Inc. | Virtualization of the ISA bus on PCI with the existence of a PCI to ISA bridge |
US6393548B1 (en) * | 1997-02-14 | 2002-05-21 | Advanced Micro Devices, Inc. | Variable 16 or 32 bit PCI interface which supports steering and swapping of data |
TW386215B (en) * | 1997-03-24 | 2000-04-01 | Seiko Epson Corp | Emulation system and information processor |
US6516375B1 (en) * | 1999-11-03 | 2003-02-04 | Intel Corporation | Peripheral component interconnect (PCI) configuration emulation for hub interface |
US6636904B2 (en) * | 1999-11-18 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Dynamic PCI device identification redirection on a configuration space access conflict |
US6629157B1 (en) * | 2000-01-04 | 2003-09-30 | National Semiconductor Corporation | System and method for virtualizing the configuration space of PCI devices in a processing system |
US20020073264A1 (en) * | 2000-12-08 | 2002-06-13 | Varghese George | Integrated co-processor configured as a PCI device |
US6748512B2 (en) * | 2000-12-08 | 2004-06-08 | Intel Corporation | Method and apparatus for mapping address space of integrated programmable devices within host system memory |
-
2001
- 2001-06-29 US US09/896,395 patent/US6823418B2/en not_active Expired - Lifetime
-
2002
- 2002-06-17 TW TW091113154A patent/TWI244000B/zh not_active IP Right Cessation
- 2002-06-20 WO PCT/US2002/019720 patent/WO2003003225A1/en active Application Filing
- 2002-06-20 JP JP2003509332A patent/JP4657602B2/ja not_active Expired - Fee Related
- 2002-06-20 EP EP02744509.7A patent/EP1399826B1/en not_active Expired - Lifetime
- 2002-06-20 KR KR1020037017040A patent/KR100837449B1/ko not_active IP Right Cessation
- 2002-06-20 CN CNB028131037A patent/CN1302400C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996152A (zh) * | 2006-07-03 | 2011-03-30 | 索尼株式会社 | 卡式外围装置和通信系统 |
CN100507889C (zh) * | 2006-08-22 | 2009-07-01 | 国际商业机器公司 | 能够实现外围总线芯片组内的虚拟通道的方法和装置 |
CN101043510B (zh) * | 2007-04-29 | 2012-03-07 | 中兴通讯股份有限公司 | Pci-e总线分布式系统单板内及单板间数据通讯方法 |
CN101387993B (zh) * | 2007-09-14 | 2010-09-08 | 凹凸科技(中国)有限公司 | 对计算机系统中的设备进行动态资源配置的方法及系统 |
CN101676894B (zh) * | 2008-08-15 | 2011-08-17 | 北京北大众志微系统科技有限责任公司 | 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法 |
CN102169440A (zh) * | 2009-12-23 | 2011-08-31 | 英特尔公司 | 虚拟化掉电的输入/输出装置 |
US8959253B2 (en) | 2009-12-23 | 2015-02-17 | Intel Corporation | Virtualizing a powered down input/output device |
CN104995613A (zh) * | 2013-03-14 | 2015-10-21 | 英特尔公司 | 用于建立虚拟pci设备和虚拟mmio设备的泛型方法 |
CN104995613B (zh) * | 2013-03-14 | 2018-02-16 | 英特尔公司 | 用于建立虚拟pci设备和虚拟mmio设备的泛型方法 |
Also Published As
Publication number | Publication date |
---|---|
US20030005207A1 (en) | 2003-01-02 |
US6823418B2 (en) | 2004-11-23 |
TWI244000B (en) | 2005-11-21 |
JP4657602B2 (ja) | 2011-03-23 |
JP2004531838A (ja) | 2004-10-14 |
KR100837449B1 (ko) | 2008-06-12 |
WO2003003225A1 (en) | 2003-01-09 |
EP1399826A1 (en) | 2004-03-24 |
EP1399826B1 (en) | 2017-10-25 |
CN1302400C (zh) | 2007-02-28 |
KR20040017818A (ko) | 2004-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1302400C (zh) | 虚拟pci设备装置和方法 | |
EP0889623B1 (en) | System and method for efficient remote disk I/O | |
US7103064B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US7457906B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US20040179529A1 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US20060123203A1 (en) | Network device, fiber channel switch, method for shared memory access control, and computer product | |
JP4086472B2 (ja) | システム・コンフィギュレーションを決定するための方法、システム、及びプログラム | |
US7082524B2 (en) | I/O bus abstraction for a cluster interconnection fabric | |
US8615586B2 (en) | Discovery of logical images at storage area network endpoints | |
JP2008500668A (ja) | 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法 | |
US8275947B2 (en) | Mechanism to prevent illegal access to task address space by unauthorized tasks | |
KR20100034591A (ko) | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 | |
KR20170094482A (ko) | 다중 포트 메모리 장치 및 그것을 이용한 방법 | |
CN105630727A (zh) | 多SoC节点之间的访问方法、装置和系统 | |
US10956061B2 (en) | Computing system and operating method thereof | |
CN1666185A (zh) | 支持包处理的可配置的多端口多协议网络接口 | |
US20240012684A1 (en) | Memory disaggregation method, computing system implementing the method | |
US20230161726A1 (en) | Multiprocessor System and Method for Configuring Multiprocessor System | |
US7114031B2 (en) | Structure and method of cache memory data update | |
US7447827B2 (en) | Multi-port bridge device | |
KR20030074837A (ko) | 대용량 병렬 시스템에서 물리적 위치에 의해 어드레스를지정하는 이더넷 | |
CN116932451A (zh) | 一种数据处理方法、主机及相关设备 | |
EP2538336A2 (en) | System and method for allocating memory resources | |
US6469705B1 (en) | Cache addressing | |
US20080065836A1 (en) | System for sharing storage device among controllers and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070228 Termination date: 20170620 |
|
CF01 | Termination of patent right due to non-payment of annual fee |