CN104932996B - 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统 - Google Patents
用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统 Download PDFInfo
- Publication number
- CN104932996B CN104932996B CN201510083749.1A CN201510083749A CN104932996B CN 104932996 B CN104932996 B CN 104932996B CN 201510083749 A CN201510083749 A CN 201510083749A CN 104932996 B CN104932996 B CN 104932996B
- Authority
- CN
- China
- Prior art keywords
- equipment
- tunnel
- hardware buffer
- maximum
- link
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 40
- 239000000872 buffer Substances 0.000 claims abstract description 133
- 238000003860 storage Methods 0.000 claims description 73
- 230000015654 memory Effects 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 10
- 230000014509 gene expression Effects 0.000 claims description 9
- 230000006399 behavior Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 238000013146 percutaneous coronary intervention Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 229910003460 diamond Inorganic materials 0.000 description 4
- 239000010432 diamond Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
在实施例中,多个硬件缓冲器的每一个可以存储与一个或多个虚拟通道相关联的信息。依次地,配置逻辑单元用于确定标识符,所述标识符对应到由经由链路耦合的第一设备和第二设备共同支持的虚拟通道的最大数量,并且用于基于所述标识符获得控制值。耦合到所述配置逻辑单元的门逻辑用于基于所述控制值将操作电压提供到所述硬件缓冲器中的相对应的硬件缓冲器。按照这一方式,当所述虚拟通道的最大数量小于所述多个硬件缓冲器时,所述操作电压能够从所述硬件缓冲器中的至少一个被抑制。描述并请求保护了其它实施例。
Description
技术领域
本公开涉及计算系统,并且尤其(但是不排他地)涉及在这样的系统中的链路接口的功率管理。
背景技术
随着计算系统的发展,其中的组件变得更加复杂。结果,用于在组件之间进行耦合和通信的互连架构也在复杂性方面增加,以便确保满足针对最佳组件操作的带宽需求。而且,不同的市场分割要求互连架构的不同方面以便适合市场的需要。例如,服务器要求较高的性能,而移动生态系统有时能够牺牲整体性能用于功率节省。然而,大多数结构的单一目的在于提供具有最大功率节省的最高可能性能。
发明内容
根据本发明的第一方面,提供一种用于提供操作电压的装置,包括:多个硬件缓冲器,所述多个硬件缓冲器的每一个用于存储与一个或多个虚拟通道相关联的信息;配置逻辑单元,用于确定标识符,所述标识符对应到由经由链路耦合的第一设备和第二设备共同支持的虚拟通道的最大数量,并且用于基于所述标识符获得控制值;以及门逻辑单元,用于基于所述控制值将操作电压提供到所述多个硬件缓冲器中的相对应的硬件缓冲器,其中,所述门逻辑单元用于当所述虚拟通道的最大数量小于所述多个硬件缓冲器的数量时防止将所述操作电压提供到所述多个硬件缓冲器中的至少一个。
根据本发明的第二方面,提供一种用于提供操作电压的方法,包括:确定由经由链路耦合的第一端点和第二端点能够支持的虚拟通道的公共数量;使用所述虚拟通道的公共数量存取存储装置,以便获得对应到所述虚拟通道的公共数量的控制设置;并且基于所述控制设置将操作电压提供到所述第一端点的选定的第一硬件缓冲器以及所述第二端点的选定的第二硬件缓冲器。
根据本发明的第三方面,提供一种包括机器可读指令的机器可读存储介质,所述指令当被执行时实现如上所述的方法。
根据本发明的第四方面,提供一种用于使能电路的装置,包括:第一链路接口,用于将所述装置接口到在所述装置和第二设备之间耦合的链路,所述第一链路接口包括多个独立电路,所述多个独立电路的每一个用于传送相对应的业务类别的数据;第一配置存储装置,用于存储对应到所述多个独立电路的数量的最大可支持值;配置逻辑单元,用于确定链路最大值,所述链路最大值对应到存储在所述第一配置存储装置中的所述最大可支持值和存储在所述第二设备的第二配置存储装置中的最大可支持值中的最小值,并且用于获得所述链路最大值的不同表示;以及控制电路,用于当所述链路最大值小于所述多个独立电路的数量时,响应于所述不同表示而使能所述多个独立电路的第一集合并且禁用所述多个独立电路的第二集合。
根据本发明的第五方面,提供一种用于动态地使能硬件缓冲器的系统,包括:包括第一链路接口的第一设备,所述第一链路接口具有第一多个硬件缓冲器,所述第一多个硬件缓冲器的每一个用于存储与一个或多个虚拟通道相关联的信息;经由链路耦合到所述第一设备的第二设备,所述第二设备包括:具有第二多个硬件缓冲器的第二链路接口,所述第二多个硬件缓冲器的每一个用于存储与所述一个或多个虚拟通道相关联的信息,其中,存在比所述第一多个硬件缓冲器更多的所述第二多个硬件缓冲器;控制单元,用于确定由所述第一设备和所述第二设备共同支持的虚拟通道的最大数量,所述最大数量对应到所述第一多个硬件缓冲器的数量,并且用于基于所述最大数量获得控制值;以及门单元,用于响应于所述控制值而使能比所述第二多个硬件缓冲器的全部要少的第二硬件缓冲器。
附图说明
图1是包括多核处理器的计算系统的方框图的实施例。
图2是由互连组件的集合的点对点链路构成的结构的实施例。
图3是分层协议栈的实施例。
图4是PCIe事务描述符的实施例。
图5是PCIe串行点对点结构的实施例。
图6是根据实施例的SoC设计的方框图。
图7是根据本发明实施例的系统的方框图。
图8是根据本发明实施例的配置方法的流程图。
图9A是根据实施例的配置存储装置的方框图。
图9B是根据实施例的电压控制电路的一部分的方框图。
图10是根据实施例的系统的一部分的方框图。
具体实施方式
在下面的描述中阐释了各种具体细节,例如处理器和系统配置的具体类型、具体硬件结构、具体架构和微架构细节、具体寄存器配置、具体指令类型、具体系统组件、具体测量/高度、具体处理器管线级和操作等等的示例,以便提供对本发明的全面理解。然而,对于本领域技术人员显而易见的是,不需要采用这些具体细节来实践本发明。在其它实例中,为了避免不必要地混淆本发明,没有详细描述公知的组件和方法,例如具体和可选处理器架构、用于所描述的算法的具体逻辑电路/代码、具体固件代码、具体互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、算法在代码中的具体表示、具体掉电和选通技术/逻辑以及计算机系统的其它具体操作细节。
尽管参照在具体集成电路中的能量节约和能量效率描述了下面的实施例,例如在计算平台或者微处理器中,但是其它实施例可应用于其它类型的集成电路和逻辑设备。本文描述的实施例的类似技术和教导可以应用于也可以得益于更好的能量效率和能量节约的其它类型的电路或者半导体设备。例如,所公开的实施例不局限于桌面计算机系统或者UltrabooksTM。并且也可以用在其它设备中,例如手持设备、平板电脑、其它薄型笔记本、片上系统(SoC)设备以及嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码相机、个人数字助理(PDA)和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或者能够执行下面教导的功能和操作的任意其它系统。而且,本文描述的装置、方法和系统不局限于物理计算设备,而是也可以涉及对于能够节约和效率的软件优化。在下面的描述中将变得显而易见的是,本文描述的方法、装置和系统的实施例(无论是参照硬件、固件、软件或者其组合)对于以性能考虑均衡的“绿色技术”未来是至关重要的。
下面讨论了多个互连,这些互连将潜在地得益于本文描述的本发明的方面。
参照图1,阐释了包括多核处理器的计算系统的方框图的实施例。处理器100包括用于执行代码的任意处理器或者处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或者其它设备。在一个实施例中,处理器100包括至少两个核心,核心101和102,这两个核心可以包括非对称核心或者对称核心(所说明的实施例)。然而,处理器100可以包括可以是对称或者非对称的任意数量的处理元件。
在一个实施例中,处理元件指代用于支持软件线程的硬件或者逻辑。硬件处理元件的示例包括:线程单元、线程插槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或能够保持处理器的状态的任何其它元件,该状态例如是执行状态或者架构状态。换句话说,在一个实施例中,处理元件指代能够与代码独立相关联的任意硬件,该代码例如是软件线程、操作系统、应用或者其它代码。物理处理器(或者处理器插口)典型地指代集成电路,该集成电路潜在地包括任意数量的其它处理元件,例如核心或者硬件线程。
核心经常指代能够维持独立架构状态的位于集成电路上的逻辑,其中,每一个独立维持的架构状态与至少一些专用执行资源相关联,与核心相比较,硬件线程典型地指代能够维持独立架构状态的位于集成电路上的任意逻辑,其中该独立维持的架构状态共享到执行资源的接入。可以看出,当某些资源被共享并且其它资源专用于架构状态时,硬件线程和核心的名称之间的界线重叠。然而经常,核心和硬件线程由操作系统看作是单独的逻辑处理器,其中操作系统能够在每一个逻辑处理器上单独地调度操作。
如在图1中说明的,物理处理器100包括两个核心,核心101和102。这里,核心101和102被认为是对称核心,即具有相同的配置、功能单元和/或逻辑的核心。在另一实施例中,核心101包括无序处理器核心,而核心102包括有序处理器核心。然而,核心101和102可以从任意类型的核心中进行单独选择,该任意类型的核心例如是本地核心、软件管理核心、适于执行本地指令集架构(ISA)的核心、适于执行转换的指令集架构(ISA)的核心、共同设计的核心或者其它已知核心。在异构核心环境(即,非对称核心)中,可以利用诸如二进制转换的一些形式的转换来调度或者执行位于一个或者两个核心上的代码。然而为了进一步讨论,下面进一步详细描述在核心101中说明的功能单元,因为在所阐释的实施例中,核心102中的单元按照类似的方式进行操作。
如所阐释的,核心101包括也可以被称为硬件线程插槽101a和101b的两个硬件线程101a和101b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器100看作是四个分离的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或者处理元件。如上面提及的,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可以与建构状态寄存器102a相关联,并且第四线程可以与架构状态寄存器102b相关联。这里,可以将架构状态寄存器(101a,101b,102a,102b)中的每一个称为如上所述的处理元件、线程插槽或者线程单元。如所说明的,架构状态寄存器101a被复制到架构状态寄存器101b,因此能够存储单独的架构状态/上下文用于逻辑处理器101a和逻辑处理器101b。在核心101中,诸如位于分配器和重命名器块130中的指令指针和重命名逻辑的其它较小资源也可以被复制用于线程101a和101b。诸如重排序/引退单元135中的重排序缓冲器、ILTB 120,装载/存储缓冲器和队列的一些资源可以经过分区而被共享。诸如通用内部寄存器、页表基本寄存器、低级数据高速缓存和数据TLB 115、执行单元140以及无序单元135的部分被潜在地充分共享。
处理器100经常包括可以被充分共享、经过分区共享、或者由处理元件专用/对于处理元件专用的其它资源。在图1中,说明了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意到,处理器可以包括或者省去这些功能单元中的任意一个,并且可以包括没有阐释的任意其它已知的功能单元、逻辑或者固件。如所说明的,核心101包括简化的代表性无序(OOO)处理器核心。但是在不同的实施例中可以利用有序处理器。OOO核心包括用于预测要被执行/采取的分支的分支目标缓冲器120以及用于存储针对指令的地址转换条目的指令转换缓冲器(I-TLB)120。
核心101进一步包括耦合到获取单元120以便对所获取的元素进行解码的解码模块125。在一个实施例中,获取逻辑包括分别与线程插槽101a、101b相关联的单独序列器。通常,核心101与第一ISA相关联,其定义/指定能够在处理器100上执行的指令。经常,作为第一ISA一部分的机器代码指令包括一部分指令(被称为操作码),其引用/指定要被执行的指令或者操作。解码逻辑125包括根据这些指令的操作码识别这些指令并且在管线中传送所解码的指令用于由第一ISA定义的处理的电路。例如,如下面更加详细讨论的,在一个实施例中,解码器125包括被设计为或者适于识别诸如事务指令的具体指令的逻辑。作为解码器125的识别的结果,架构或者核心101采取具体的、预定义的动作以执行与合适的指令相关联的任务。重要的是要注意到,本文描述的任意的任务、块、操作和方法可以响应于单个指令或者多个指令而被执行;其中的一些可以是新指令或者旧指令。注意到,在一个实施例中,解码器126识别相同的ISA(或者其子集)。可选地,在异构核心环境中,解码器126识别第二ISA(或者第一ISA的子集或者不同的ISA)。
在一个示例中,分配器和重命名器块130包括用于保留资源的分配器,例如用于存储指令处理结果的寄存器文件。然而,线程101a和101b潜在地能够无序执行,其中分配器和重命名器块130也保留其它资源,例如用于跟踪指令结果的重排序缓冲器。单元130也可以包括寄存器重命名器以便将程序/指令引用寄存器重命名到位于处理器100内部的其它寄存器。重排序/引退单元135包括诸如上面提及的重排序缓冲器的组件、装载缓冲器和存储缓冲器,以便支持无序执行以及被无序执行的指令的稍后的有序引退。
在一个实施例中,调度器和执行单元块140包括调度器单元以便在执行单元上调度指令/操作。例如,浮点指令在具有可用浮点执行单元的执行单元的端口上被调度。也包括与执行单元相关联的寄存器文件以便存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、装载执行单元、存储执行单元以及其它已知的执行单元。
较低级数据高速缓存和数据转换缓冲器(D-TLB)150耦合到执行单元140。数据高速缓存用于将最近使用/操作的存储在元素上,例如被潜在地保持在存储器一致性状态中的数据操作数。D-TLB用于将最近的虚拟/线性的存储到物理地址转换。作为具体示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。
这里,核心101和102共享到较高级或者进一步外部的高速缓存的存取,例如与片上接口110相关联的第二级高速缓存。注意到,较高级或者进一步外部指代增加的或者变得更加远离执行单元的高速缓存级。在一个实施例中,较高级高速缓存是最后级数据高速缓存,处理器100上的存储器分级中的最后高速缓存,例如第二或者第三级数据高速缓存。然而,较高级高速缓存并不局限于此,因为其可以与指令高速缓存相关联或者包括指令高速缓存。轨迹高速缓存,指令高速缓存的类型,可以替代地耦合在解码器125之后以便存储最近解码的轨迹。这里,指令潜在地指代宏指令(即,由解码器识别的通用指令),其可以解码为多个微指令(微操作)。
在所阐释的配置中,处理器100也包括片上接口模块110。在历史上,下面更详细描述的存储器控制器已经被包括在位于处理器100外部的计算系统中。在这一情景中,片上接口11用于与位于处理器100外部的设备进行通信,该设备例如是系统存储器175、芯片集(经常包括用于连接到存储器175的存储器控制器集线器和用于连接外围设备的I/O控制器集线器)、存储器控制器集线器、北桥或者其它集成电路。并且在这一情景中,总线105可以包括任意已知的互连,例如,多点总线、点对点互连、串行互连、并行总线、一致性(例如,高速缓存一致性)总线、分层协议架构、差分总线和GTL总线。
存储器175可以专用于处理器100或者与系统中的其它设备共享。存储器175的类型的通常示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。注意到,设备180可以包括图形加速器、处理器或者耦合到存储器控制器集线器的卡、耦合到I/O控制器集线器的数据存储装置、无线收发机、闪存设备、音频控制器、网络控制器或者其它已知设备。
然而,最近,随着更多的逻辑和设备被集成在诸如SOC的单个裸片上,这些设备中的每一个可以被合并在处理器100上。例如,在一个实施例中,存储器控制器集线器与处理器100位于相同的封装和/或裸片上。这里,核心的一部分(核心上部分)110包括用于与诸如存储器175或者图形设备180的其它设备接口的一个或多个控制器。包括用于与这样的设备接口的互连和控制器的配置经常被称为核心上(或者非核心配置)。作为示例,片上接口110包括用于片上通信的环形互连以及用于离片通信的高速串行点对点链路105。然而,在SOC环境中,诸如网络接口、协处理器、存储器175、图像处理器180以及任何其它已知的计算机设备/接口的甚至更多的设备可以被集成在单个裸片或者集成电路上,以便提供具有高功能性和低功率消耗的小形状因子。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码177以对应用代码176进行编译、转换和/或优化,以便支持本文描述的装置和方法或者与其接口。编译器经常包括程序或者程序的集合以便将源文本/代码转换为目标文本/代码。通常,使用编译器的程序/应用代码的编译在多个级中完成并且经过将高级编程语言代码变换为低级机器或者汇编语言代码。然而,可以仍然例程单程编译器用于简单的编译。编译器可以利用任意已知的编译技术并且执行任意已知的编译器操作,例如词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器经常包括多个级,但是最经常的是,这些级被包括在两个通用级内:(1)前端,即,通常在语义处理的情况下,可以发生语义处理以及一些变换/优化,以及(2)后端,即,通常在分析的情况下,发生变换、优化和代码生成。一些编译器指代中间,说明了位于编译器的前端和后端之间的界限模糊。结果,对编译器的插入、关联、生成或者其它操作的引用可以在前述级或者程中的任意一个中以及在编译器的任意其它已知级或者程中发生。作为说明性示例,编译器潜在地在编译的一个或多个级中插入操作、调用、函数等等,例如,在编译的前端级中插入调用/操作,并且接着在变换级期间将调用/操作变换到较低级代码。注意到,在动态编译期间,编译器代码或者动态优化代码可以插入这样的操作/调用,并且优化该代码用于在运行时间期间执行。作为具体的说明性示例,二进制代码(已经编译的代码)可以在运行时间期间被动态优化。这里,程序代码可以包括动态优化代码、二进制代码或者其组合。
与编译器类似、诸如二进制转换器的转换器静态或者动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码或者其它软件环境的执行的引用可以指代:(1)编译器程序、优化代码优化器、转换器动态或者静态的执行,以便编译程序代码、维持软件结构、执行其它操作、优化代码、或者转换代码;(2)包括操作/调用的主程序代码的执行,例如已经被优化/编译的应用代码;(3)其它程序代码的执行,例如与主程序代码相关联的库,以便维持软件结构、执行其它软件相关操作或者优化代码;或者(4)其组合。
一种互连结构架构包括PCIe架构。PCIe的主要目标是使来自不同供应商的组件和设备能够在开放架构中相互操作,横跨多个市场分割、客户端(桌面和移动)、服务器(标准和企业)以及嵌入式和通信设备。PCI Express是被定义用于各种未来计算和通信平台的高性能通用I/O互连。一些PCI属性,例如其使用模型、装载-存储架构和软件接口,已经经过其版本被维护,而先前的并行总线实现已经由高度可调整的充分串联的接口更换。PCIExpress的更近版本利用点对点互连、基于交换机的技术和分组化协议的发展,以便传送新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和误差处理是由PCI Express支持的先进特征中的一些。
参照图2,说明了由互连组件的集合的点对点链路组成的结构的实施例。系统200包括耦合到控制器集线器215的处理器205和存储器210。处理器205包括任意处理元件,例如微处理器、主机处理器、嵌入式处理器、协处理器或者其它处理器。处理器205经过前侧总线(FSB)206耦合到控制器集线器215。在一个实施例中,FSB 206是下面描述的串行点对点互连。在另一实施例中,链路206包括与不同的互连标准兼容的串行差分互连架构。
系统存储器210包括任意存储器设备,例如随机存取存储器(RAM)、非易失性(NV)存储器或者由系统200中的设备可存取的其它存储器。系统存储器210经过存储器接口216耦合到控制器集线器215。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口以及动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器215是位于外围组件互连Express(PCIe或者PCIE)互连分级中的根集线器、根复合器或者根控制器。控制器集线器215的示例包括芯片集、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。经常术语芯片集指代两个物理上分离的控制器集线器,即,耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。注意到,当前系统经常包括与处理器205集成的MCH,而控制器215按照下面描述的类似方式与I/O设备进行通信。在一些实施例中,经过根复合器215可选地支持对等路由。
这里,控制器集线器215经过串行链路219耦合到交换机/桥220。也可以被称为接口/端口217和221的输入/输出模块217和221包括/实现分层协议栈,以便在控制器集线器215和交换机220之间提供通信。在一个实施例中,多个设备能够耦合到交换机220。
交换机/桥220将分组/消息从朝向上游的设备225,即,朝向根复合器的分级向上,路由到朝向下游的控制器集线器215,即远离根控制器的分级向下,从处理器205或者系统存储器210路由到设备225。在一个实施例中,交换机220被称为多个虚拟PCI到PCI桥设备的逻辑部件。设备225包括要耦合到电子系统的任意内部或者外部设备或组件,例如I/O设备、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬驱、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其它输入/输出设备。经常在PCIe术语中,例如设备被称为端点。尽管没有明确示出,但是设备225可以包括PCIe到PCI/PCI-X桥以便支持传统或者其它版本PCI设备。PCIe中的端点设备经常被分类为传统、PCIe或者根复合器集成端点。
图形加速器230也经过串行链路232耦合到控制器集线器215。在一个实施例中,图形加速器230耦合到MCH,MCH耦合到ICH。交换机220,并且因此I/O设备225,接着耦合到ICH。I/O模块231和218也用于实现分层协议栈,以便在图形加速器230和控制器集线器215之间进行通信。与上面讨论的MCH类似,图形控制器或者图形加速器230本身可以被集成在处理器205中。
转到图3,说明了分层协议栈的实施例。分层协议栈300包括任意形式的分层通信站,例如快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或者其它分层栈。尽管下面紧接着参照图2-5的讨论涉及PCIe栈,但是相同的概念可以应用于其它互连栈。在一个实施例中,协议栈300是包括事务层305、链路层310和物理层320的PCIe协议栈。接口可以被表示为通信协议栈300。通信协议栈的表示也可以被称为实现/包括协议栈的模块或者接口。
PCI Express使用分组来在组件之间传送信息。分组被形成在事务层305和数据链路层310中以便将信息从发射组件承载到接收组件。随着所发射的分组流经其它层,使用在那些层处处理分组必需的附加信息进行扩展。在接收侧处,发生反向过程并且分组被从它们的物理层320表示变换到数据链路层310表示并且最终(对于事务层分组)被变换到能够由接收设备的事务层305处理的形式。
在一个实施例中,事务层305用于在诸如数据链路层310和物理层320的设备的处理核心和互连架构之间提供接口。为此,事务层305的主要任务是装配和拆装分组(即,事务层分组或者TLP)。事务层305典型地管理针对TLP的基于信用的流控制。PCIe实现分割事务,即具有由时间分离的请求和响应的事务,允许链路承载其它业务,同时目标设备聚集数据用于响应。
此外,PCIe利用基于信用的流控制。在这一方案中,针对事务层305中的接收缓冲器中的每一个,设备对信用的初始量进行广告。在链路的相对端处的外部设备,例如控制器集线器,对由每一个TLP消耗的信用的数量进行计数。如果事务不超出信用极限,则可以传输该事务。在接收到响应时,恢复信用的量。信用方案的优点在于,信用返回的时延不影响性能,假设没有遇到信用极限。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括读取请求和写入请求中的一个或多个以便在存储器映射的位置处来回地传输数据。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如以32比特地址为例的短地址格式,或者以64比特地址为例的长地址格式。配置空间事务用于访问PCIe设备的配置空间。到配置空间的事务包括读取请求和写入请求。消息空间事务(或者,简单地为消息)被定义为支持PCIe代理之间的带内通信。
因此,在一个实施例中,事务层305装配分组头部/有效载荷306。当前分组头部/有效载荷的格式可以在PCIe规范网站处的PCIe规范中找到。
快速参照图4,说明了PCIe事务描述符的实施例。在一个实施例中,事务描述符400是用于承载事务信息的机制。为此,事务描述符400支持系统中的事务的识别。其它潜在的用途包括跟踪缺省事务排序的修改以及事务与通道的关联。
事务描述符400包括全局标识符字段402、属性字段404和通道标识符字段406。在所说明的示例中,全局标识符字段402被阐释为包括本地事务标识符字段408和源标识符字段410。在一个实施例中,全局事务标识符402对于所有突出的请求是唯一的。
根据一种实现,本地事务标识符字段408是由请求代理生成的字段,并且其对于针对该请求代理要求完成的所有突出的请求是唯一的。而且,在这一示例中,源标识符410唯一地标识PCIe分级内的请求器代理。因此,与源ID 410一起,本地事务标识符字段408提供分级域内的事务的全局标识。
属性字段404指定事务的特性和关系。为此,属性字段404潜在地用于提供允许对事务的缺省处理的修改的附加信息。在一个实施例中,属性字段404包括优先级字段412、保留字段414、排序字段416以及非探听字段418。这里,优先级子字段412可以由初始化器修改以便向事务分配优先级。保留属性字段414被留下保留用于未来使用或者用于供应商定义的使用。使用优先级或者安全属性的可能使用模型可以使用保留的属性字段实现。
在这一示例中,排序属性字段416用于供应可选信息,该可选信息传递可以修改缺省排序规则的排序的类型。根据一个示例实现,“0”的排序属性指代要应用的缺省排序规则,其中“1”的排序属性指代松散的排序,其中写入能够按照相同的方向来传送写入,并且读取完成能够按照相同的方向来传送写入。探听属性字段418用于确定事务是否被探听。如图所示,通道ID字段406识别事务与其相关联的通道。
也被称为数据链路层310的链路层310用作事务层305和物理层320之间的中间级。在一个实施例中,数据链路层310的任务是提供用于在两个组件链路之间交换事务层分组(TLP)的可靠机制。数据链路层310的一侧接受由事务层305装配的TLP,应用分组序列标识符311,即,标识号码或者分组号码,计算并且应用误差检测码,即CRC 312,并且将修改的TLP呈交到物理层320用于经过物理设备传输到外部设备。
在一个实施例中,物理层320包括逻辑子块321和电学子块322,以将分组物理地传输到外部设备。这里,逻辑子块321负责物理层321的“数字”功能。为此,逻辑子块包括发射部分以准备出去的信息用于由物理子块322进行传输,以及接收部分以在将接收到的信息传送到链路层310之前识别和准备该接收到的信息。
物理块322包括发射机和接收机。发射机由逻辑子块321供应有符号,发射机对该符号进行串行化并且将其传输到外部设备。接收机供应有来自外部设备的串行化符号并且将接收到的信号变换为比特流。比特流被解串行行化并且被供应到逻辑子块321。在一个实施例中,采用8b/10b传输码,其中发射/接收十比特符号。这里,特殊符号用于使用帧323来为符号设计帧。此外,在一个示例中,接收机也提供从进来的串行流恢复的符号时钟。
如上所述,尽管参照PCIe协议栈的具体实施例讨论了事务层305、链路层310和物理层320,但是分层协议栈并不局限于此。实际上,可以包括/实现任意的分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)用于装配分组的第一层,即,事务层;用于对分组进行序列化的第二层,即,链路层;以及用于传输分组的第三层,即,物理层。作为具体示例,利用QPI分层协议。
接下来参照图5,说明了PCIe串行点对点结构的实施例。尽管说明了PCIe串行点对点链路的实施例,但是串行点对点链路并不局限于此,因为其包括用于传输串行数据的任意传输路径。在所示的实施例中,基本PCIe链路包括两个低电压差分驱动的信号对:发射对506/511和接收对512/507。因此,设备505包括用于将数据发射到设备510的发射逻辑506以及用于从设备510接收数据的接收逻辑507。换句话说,在PCIe链路中包括两个发射路径,即,路径516和517,和两个接收路径,即,路径518和515。
发射路径指代用于发射数据的任意路径,例如传输线、铜线、光学线、无线通信信道、红外通信链路或者其它通信路径。将诸如设备505和设备510的两个设备之间的连接称为诸如链路415的链路。链路可以支持一个通道,每一个通道代表差分信号对的集合(一个对用于发射,一个对用于接收)。为了调节带宽,链路可以聚合由xN指代的多个通道,其中N是任意支持的链路宽度,例如1、2、4、8、12、16、32、64或者更宽。
差分对指代用于发射差分信号的诸如线路516和517的两个传输路径。作为示例,当线路516从低电压电平切换到高电压电平时,即,上升沿,线路517从高逻辑电平驱动到低逻辑电平,即,下降沿。差分信号潜在地例示了更好的电学特性,例如更好的信号完整性,即,交叉耦合,电压过冲/下冲、响铃等等。这允许更好的时序窗,能够实现较快的发射频率。
接下来转到图6,阐释了根据实施例的SoC设计的实施例。作为具体的说明性示例,SoC 2000包括在用户设备(UE)中。在一个实施例中,UE指代要由终端用户使用来进行通信的任意设备,例如手持电话、智能电话、平板电脑、超薄笔记本、具有宽带适配器的笔记本或者任意其它类似的通信设备。经常,UE连接到基站或者节点,该基站或者节点潜在地本质上对应到GSM网络中的移动站(MS)。
这里,SoC 2000包括2个核心-2006和2007。与上面讨论的类似,核心2006和2007可以符合指令集架构,例如基于架构核心TM的处理器、高级微设备公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或者其客户,以及它们的被许可方或者采用者。核心2006和2007耦合到与总线接口单元2009和L2高速缓存2010相关联的高速缓存控制2008,以便与系统2000的其它部分进行通信。互连2010包括诸如IOSF、AMBA或者上面讨论的其它互连的片上互连,该片上互连实现本文描述的一个或多个方面。
互连2010提供到其它组件的通信信道,例如用于与用户身份模块(SIM)卡接口的SIM 2030、用于保持由核心2006和2007执行以便初始化和引导SOC 2000的引导代码的引导ROM 2035、用于与外部存储器(例如,DRAM 2060)接口的SDRAM控制器2040、用于与非易失性存储器(例如,闪存2065)接口的闪存控制器2045、用于与外围接口的外围控制器2050(例如,串行外围接口)、用于显示和接收输入(例如,触摸使能的输入)的视频编解码器2020和视频接口2025、用于执行图形相关计算的GPU2015,等等。这些接口中的任意一个可以结合本文描述的方面。
此外,该系统说明了用于通信的外围,例如蓝牙模块2070、3G调制解调器2075、GPS2080和WiFi 2085。系统中还包括功率控制器2055。注意到,如上面表述的,UE包括用于进行通信的无线电设备。结果,并不全部要求这些外围通信模块。然而,在UE中,要包括用于外部通信的一些形式的无线电设备。
在各种实施例中,当由设备的配置确定通过给定互连的方式耦合的一个或多个设备的电路的至少部分将不被使用时,可以对这样的电路进行功率控制(例如,功率选通)。作为本文描述的实施例的示例,当由系统的配置确定经由互连提供通信的一个或多个虚拟通道将不用于进行通信时,使与这样的虚拟通道相关联的电路处于掉电状态(通过不向这样的电路提供操作电压)。当然,实施例不局限于这一示例,并且本文描述的技术同样应用于其它电路的功率控制。
图7是根据本发明实施例的系统的方框图。如图7所示,系统700是具有耦合到交换机720的各种设备的PCIeTM系统的实现。这些设备中的每一个通过相对应的链路(分别是链路1-4)耦合到交换机720。注意到,在实施例中,这些链路中的每一个可以具有不同的特性和操作参数。
作为示例,设备730、740和750可以是外围设备的不同类型。作为一个这样的示例,设备730可以是图形加速器设备,设备740可以是存储设备,并且设备750可以是另一类型的便携式设备,例如,捕获设备。交换机720通过另一链路(链路4)进一步耦合到根复合器710。作为一个示例,根复合器710可以是该系统的主数据处理器,例如多核处理器。当然,复合器的其它示例是可能的。
尤其是参照交换机710和设备730之间的连接,注意到,在不同的设备中提供各种数量的虚拟通道。可以看出,在这一示例中,交换机720包括8个虚拟通道,每一个虚拟通道在链路接口725中具有相对应的硬件缓冲器。替代地,设备730仅包括4个虚拟通道并且因而具有仅包括4个硬件缓冲器的链路接口735。由于这些设备具有不同数量的虚拟通道和缓冲器,将不使用交换机720的链路接口725内的至少一些缓冲器。因此,使用本发明的实施例,这些缓冲器可以在硬件中被禁用,使得对于这些缓冲器避免功率消耗。尽管示出了在图7的实施例中的这一特定实现,但是可以理解,许多变化是可能的。
现在参照图8,示出了根据本发明实施例的配置方法的流程图。在特定实施例中,方法800可以在设备初始化期间由经由链路耦合到一起的设备的配置逻辑执行。而且,该方法也可以被动态地执行,只要存在对设备或者对经由链路耦合到设备的硬件的任意改变。例如,如果新的设备耦合到端点,则该链路将维持并且配置逻辑将因此重新分配某些确定的值。参照图8,方法800开始于读取配置存储装置的扩展VC计数字段,两个配置存储装置是本地设备或者端点以及位于耦合这两个设备的链路的远端处的远程设备或者端点(块810和820)。在一个实施例中,这一扩展VC计数字段可以被存储在相对应的设备的存储装置中,例如在PCIeTM配置空间内。假设为了讨论的目的,本地设备(端点1)对应到图7的交换机720,并且远程设备(端点2)对应到图7的设备730。
利用上述表示(具有存在于交换机720中的8个虚拟通道和缓冲器以及存在于设备730中的4个虚拟通道和缓冲器),从交换设备720返回的针对扩展VC计数字段的值将是8,并且从设备730返回的值将是4。更具体地说,在其中这一计数字段是3比特字段的实施例中,零值对应到所支持的单个虚拟通道(例如,VC0)并且这一3比特二进制值的值1-7对应到所支持的VC的附加数量。因而在这一实施例中,针对交换机720的扩展VC计数字段具有111b的值并且针对设备730的扩展VC计数字段具有011b的计数。当然,其它表示是可能的。
仍然参照图8,接下来的控制进行到菱形830,其中能够确定针对本地设备的VC计数是否大于针对远程设备的VC计数。如果为是,则控制进行到块835,其中可以将链路最大VC值设置到来自远程设备的扩展VC计数字段。注意到,这一链路最大VC值或者VC ID值对应到针对所连接的端点的扩展VC计数字段的最小值。并且因而在这一实例中,这一链路最大VC值被设置到011b的值。
然而,如果不是这种情况,则控制替代地从菱形830进行到菱形840,其中能够确定针对本地设备的VC计数是否等于针对远程设备的VC计数。如果为是,则控制进行到框845,其中可以将链路最大VC值设置到来自本地设备的扩展VC计数字段。否则,控制进行到菱形850,其中确定针对本地设备的VC计数是否小于针对远程设备的VC计数。在这一情况中,控制进行到框855,其中可以将链路最大VC值设置到来自本地设备的扩展VC计数字段。
与在块835、845和855中的一个中设置的链路最大VC值无关,控制接下来进行到块860,其中可以存取诸如具有这些链路最大VC值的表存储装置的配置存储装置。更具体地说,通过存取这一表,能够获得选定链路最大VC值的另一表示。如将关于图9A进一步示出的,该表可以包括多个条目,所述条目的每一个提供最大链路VC值的3比特表示以及相同值的相对应的8比特表示。并且因而,控制进行到框870,其中可以获得所存取的条目的单独比特,其中每一个比特对应到虚拟通道的可用数量中的一个并且代表相对应的硬件缓冲器的使能状态。即,在示例中,逻辑1值指示活动缓冲器并且因此相对应的使能状态,并且逻辑0值指示非活动缓冲器并且因此相对应的禁用状态。当然,其它表示是可能的。
现在参照图9A,示出了根据实施例的配置存储装置的方框图。如图9A所示,存储装置900可以存在于系统内的期望位置中,例如在分离的非易失性存储装置中。或者可以存在配置存储装置900中的信息的拷贝,例如在该系统的每一个设备的配置空间中。更进一步的实施例可以将这一信息存储在再一其它位置,例如外部寄存器或者只读存储器。可以看出,存储装置900包括多个条目9100-910n。所述条目的每一个包括第一字段920和第二字段930。第一字段920可以对应到最大链路VC值并且因而用作用于存取存储装置900的选定条目的可寻址单元。依次地,第二字段930提供最大链路VC值的相对应的8比特表示。在实施例中,从VC ID映射的8比特值可以是这样的,使得每一个比特对应到该端点的虚拟通道缓冲器或者该端点的其它通路映射;例如,比特0映射到VC0,比特1映射到VC1并且最后比特7映射到VC7。在这一实施例中,二进制1指示“上电”状态,而0指示“关电”。在实施例中,接着将这些状态驱动到每一个缓冲器的电压控制电路,以便控制操作电压到缓冲器的提供(或者可选地不提供该操作电压)。
接下来参照图9B,示出了从表获得选定条目910x以及其用于控制操作电压到设备的相对应硬件缓冲器的提供的使用。更具体地说,图9B示出了与门9500-950n的集合。这些逻辑门中的每一个被配置为从选定的条目接收相对应的比特以及相对应的操作电压,例如从离片电压调节器获得的操作电压。当然,操作电压可以代替地从其它位置接收,或者片上或者离片。当给定比特具有逻辑高值时,与门是活动的并且因而将操作电压提供到相对应的硬件缓冲器。否则,与门不将操作电压传送到缓冲器,并且该缓冲器在正常操作期间被禁用,因而较低功率消耗。尽管在图9B的实施例中示出了位于这一高电平,但是可以理解,变化是可能的。
现在参照图10,示出了根据实施例的系统的一部分的方框图。如图10所示,系统1000可以包括各种组件。出于这里讨论的目的,简单地示出了两个组件,即设备1010,其可以是经由链路1005耦合到另一电路(未示出)的任意类型的集成电路,并且经由链路1090耦合到非易失性存储装置1080。在所示的实施例中,链路1005可以是在发射方向和接收方向上具有双向串行链路的PCIeTM链路。
设备1010可以是任意类型的设备,包括根复合器、交换机、外围设备等等。出于容易说明的目的,仅示出了设备1010的部分。更具体地说,提供接收缓冲器10250-1025n的集合。这些硬件缓冲器可以分别对应到给定的虚拟通道VC0-VCn。此外,也提供发射缓冲器10200-1020n的集合,再次,每一个缓冲器与特定的虚拟通道相关联。注意到,可以分配各种业务类别(TC)以便经过给定的VC和相对应的硬件缓冲器进行路由。使用本发明的实施例,仅这些虚拟通道硬件缓冲器中被使能的那些经由门逻辑1060提供有操作电压,该门逻辑1060依次从配置逻辑1050接收控制信息,下面进一步讨论其细节。
仍然参照设备1010,缓冲器1020和1025可以与物理层的其它电路进行通信(出于容易说明的目的,在图10中未示出)。自此,通信可以使用链路逻辑1030进行以便执行各种链路层处理。之后,通信可以使用事务逻辑1035进行,事务逻辑1035可以执行事务层处理。之后,通信可以使用核心逻辑1040发生,核心逻辑1040可以是设备1010的主逻辑电路。例如,在多核处理器的上下文中,核心逻辑1040可以是一个或多个处理器核心或者其它处理单元。作为其中设备1010是图像加速器设备的另一示例,核心逻辑1040可以是图形处理单元。
如图10所示,配置逻辑1050可以是当系统1000被加电时,当设备1010被复位时,或者当在操作期间发生其它动态改变时用于执行配置操作的硬件、软件和/或固件(或者组合)。在实施例中,配置逻辑1050可以包括用于执行本文描述的功率管理控制的逻辑。因而,在图10所示的实施例中,配置逻辑1050包括可以被配置为执行诸如上面讨论的方法800的方法的功率管理逻辑1055。
为此,配置逻辑1050可以与配置存储装置1070进行通信。在各种实施例中,配置存储装置1070可以是设备1010的非易失性存储装置,包括PCIeTM配置存储空间。这里存储的各种配置信息有诸如本文描述的扩展VC计数字段1075。当然可以理解,额外的配置信息也可以被存储在存储装置1070内。
在特定实施例中,可以提供使3比特最大VC计数值与相对应的8比特值相关联的映射表。当然,取决于可能的虚拟通道的量,硬件缓冲器,或者要被控制的其它电路,编码比特的数量以及单独比特表示可以变化。在所示的实施例中,分离的非易失性存储装置1080可以包括映射表1085。映射表1085因而可以将最大VC计数值关联到通路映射。换句话说,可以将所支持的虚拟通道的最大数量的数量指示映射到使能指示器的相对应的集合,该使能指示器能够用于控制是否将操作电压提供到一个或多个硬件缓冲器,每一个硬件缓冲器与相对应的虚拟通道相关联。当然,尽管在这一实施例中讨论的是基于使能的虚拟通道来控制硬件缓冲器,但是可以理解的是,可以类似地控制设备内的额外硬件。作为示例,可以被逐通路或者逐虚拟通道控制的这样的额外硬件可以包括图形卡、诸如USB到PCIeTM或者SATA到PCIeTM卡的子卡或者其它这样的设备。
实施例因而在配置控制下使能诸如VC硬件缓冲器的未使用硬件掉电,例如通过配置逻辑。按照这一方式,随着仅被实际使用的硬件被加电,系统功率得到降低。
下面的示例涉及进一步的实施例。
在示例中,一种装置包括:多个硬件缓冲器,每一个硬件缓冲器用于存储与一个或多个虚拟通道相关联的信息;配置逻辑,用于确定对应到由经由链路耦合的第一设备和第二设备共同支持的虚拟通道的最大数量的标识符并且用于基于所述标识符获得控制值;以及门逻辑,用于基于所述控制值向所述多个硬件缓冲器中的相对应的硬件缓冲器提供操作电压。
在实施例中,所述门逻辑可以被配置为:当虚拟通道的最大数量小于所述多个硬件缓冲器时,防止向所述多个硬件缓冲器中的至少一个提供操作电压。
在示例中,所述配置逻辑用于基于与所述第一设备相关联的第一虚拟通道计数以及与所述第二设备相关联的第二虚拟通道计数来确定虚拟通道的最大数量。
在示例中,所述配置逻辑用于从所述第一设备的配置存储装置的虚拟通道计数字段获得所述第一虚拟通道计数并且从所述第二设备的配置存储装置的虚拟通道计数字段获得所述第二虚拟通道计数。
在示例中,所述门逻辑包括多个逻辑电路,每一个逻辑电路用于接收所述控制值的比特和所述操作电压,并且用于基于所述比特的值将所述操作电压提供到所述多个硬件缓冲器中的一个。
在示例中,一种非易失性存储装置包括:可以耦合所述装置的具有多个条目的映射表,所述条目的每一个将标识符与控制值相关联。在实施例中,所述配置逻辑用于从使用所述标识符访问的所述映射表的条目获得所述控制值。所述控制值可以包括多个比特,每一个比特与多个硬件缓冲器中的一个相关联,具有第一状态的每一个比特用于指示相关联的硬件缓冲器要被使能,并且具有第二状态的每一个比特用于指示相关联的硬件缓冲器要被禁用。
在示例中,所述第一设备包括配置存储装置,用于存储由所述第一设备支持的虚拟通道的最大数量的计数并且用于进一步存储所述映射表的一个或多个条目的拷贝。在实施例中,所述非易失性存储装置是与所述第一设备分离的组件并且经由第二链路耦合到所述第一设备。
注意到,上面的设备可以使用各种手段实现。
在示例中,一种处理器包括结合在能够使能用户设备触摸的设备中的片上系统(SoC)。
在另一示例中,一种系统包括显示器和存储器,并且包括上面示例中的一个或多个的设备。
在另一示例中,一种方法包括:确定能够由经由链路耦合的第一端点和第二端点支持的虚拟通道的公共数量;使用所述虚拟通道的公共数量存取存储装置以便获得对应到所述虚拟通道的公共数量的控制设置;并且基于所述控制设置向所述第一端点的选定的第一硬件缓冲器以及所述第二端点的选定的第二硬件缓冲器提供操作电压。
在实施中,提供所述操作电压包括:向选定的第一硬件缓冲器和第二硬件缓冲器提供所述操作电压,并且不向未选定的第一硬件缓冲器和未选定的第二硬件缓冲器提供所述操作电压。
在示例中,所述方法进一步包括使用所述选定的第一硬件缓冲器和所述选定的第二硬件缓冲器在所述第一端点和所述第二端点之间传送数据。
在示例中,所述方法进一步包括在所述链路的配置期间,使用所述虚拟通道的公共数量来存取所述存储装置,其中,所述存储装置与所述第一端点和所述第二端点分离并且包括多个条目,所述条目的每一个用于存储虚拟通道的公共数量和控制设置。
在示例中,所述方法进一步包括响应于所述链路的重新配置:确定能够由所述第一端点和所述第二端点支持的虚拟通道的第二公共数量;使用所述虚拟通道的第二公共数量存取所述存储装置以便获得第二控制设置;并且基于所述第二控制设置将所述操作电压提供到所述第一硬件缓冲器中与选定的第一硬件缓冲器不同的硬件缓冲器以及所述第二硬件缓冲器中与选定的第二硬件缓冲器不同的硬件缓冲器。
在另一示例中,一种包括指令的计算机可读介质用于执行上面示例中的任意一个的方法。
在另一示例中,一种装置包括用于执行上面示例中的任意一个的方法的单元。
在再一示例中,一种装置包括:第一链路接口,用于将所述装置接口到耦合在所述装置和第二设备之间的链路,所述第一链路接口包括多个独立电路,每一个独立电路用于传送相对应的业务类别的数据;第一配置存储装置,用于存储对应到所述多个独立电路的数量的最大可支持值;配置逻辑,用于确定链路最大值,所述链路最大值对应到存储在所述第一配置存储装置中的所述最大可支持值和存储在所述第二设备的第二配置存储装置中的最大可支持值中的最小值,并且用于获得所述链路最大值的不同表示;以及控制电路,用于当所述链路最大值小于所述多个独立电路的数量时,响应于所述不同表示而使能所述多个独立电路的第一集合并且禁用所述多个独立电路的第二集合。
在示例中,存储在所述第一配置存储装置中的所述最大可支持值进一步对应到针对所述装置的虚拟通道计数值。
在示例中,耦合到所述装置的非易失性存储装置包括具有多个条目的映射表,所述多个条目的每一个将链路最大值与所述链路最大值的不同表示相关联。可以使用由所述配置逻辑确定的所述链路最大值来存取所述映射表。
在示例中,所述不同表示包括多个比特,所述多个比特的每一个与所述多个独立电路中的一个相关联,具有第一状态的每一个比特指示相关联的独立电路要被使能并且具有第二状态的每一个比特指示相关联的独立电路要被禁用。
在示例中,所述控制电路包括多个逻辑电路,所述多个逻辑电路的每一个用于接收所述不同表示的多个比特中的比特并且从电压调节器接收操作电压,并且用于基于所述比特的值将所述操作电压提供到所述多个独立电路中的一个。
在示例中,所述多个独立电路分别包括与虚拟通道相关联的硬件缓冲器。
在再一步的示例中,一种系统包括:第一设备,所述第一设备包括具有第一多个硬件缓冲器的第一链路接口,所述第一多个硬件缓冲器的每一个用于存储与一个或多个虚拟通道相关联的信息,以及经由链路耦合到所述第一设备的第二设备。在实施例中,所述第二设备包括:具有第二多个硬件缓冲器的第二链路接口,所述第二多个硬件缓冲器的每一个用于存储与所述虚拟通道中的一个或多个相关联的信息,其中存在比所述第一多个硬件缓冲器更多的第二多个硬件缓冲器;控制器,用于确定由所述第一设备和所述第二设备共同支持的虚拟通道的最大数量,所述最大数量对应到所述多个第一硬件缓冲器的数量,并且用于基于所述最大数量获得控制值;以及门逻辑,用于响应于所述控制值而使能比所述多个第二硬件缓冲器的全部要少的硬件缓冲器。
在示例中,所述第一设备包括第一配置存储装置,所述第一配置存储装置包括第一最大虚拟通道计数,并且所述第二设备包括第二配置存储装置,所述第二配置存储装置包括第二最大虚拟通道计数。
在示例中,所述控制器用于使用所述第一最大虚拟通道计数和所述第二最大虚拟通道计数确定所述共同支持的虚拟通道的最大数量。
在示例中,一种非易失性存储装置包括具有多个条目的映射表,所述多个条目的每一个关联共同支持的虚拟通道的最大数量。
在示例中,所述控制器可以从使用所确定的共同支持的虚拟通道的最大数量存取的所述映射表的条目中获得所述控制值。在实施例中,所述控制值包括多个比特,所述多个比特的每一个与所述第二多个硬件缓冲器中的一个相关联,具有第一状态的每一个比特用于指示相关联的第二硬件缓冲器要被使能,并且具有第二状态的每一个比特用于指示相关联的第二硬件缓冲器要被禁用。
在示例中,所述门逻辑包括多个逻辑电路,所述多个逻辑电路的每一个用于接收所述控制值的比特和操作电压,并且用于基于所述比特的值将所述操作电压提供到所述多个第二硬件缓冲器中的一个。
将理解的是,上面示例的各种组合是可能的。
实施例可以用于许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围并不局限于通信设备,而是其它实施例可以涉及用于处理指令的其它类型的装置,或者包括指令的一个或多个机器可读介质,所述指令对在计算设备上被执行做出响应而使所述设备执行本文描述的方法和技术中的一个或多个。
实施例可以被实现在代码中并且可以被存储在具有存储在其上的指令的非暂态存储介质上,所述指令能够用于对系统进行编程以便执行所述指令。所述存储介质可以包括但不局限于任意类型的磁盘,包括软盘、光盘、固态驱动(SSD)、压缩盘只读存储器(CD-ROM)、压缩盘可写入(CD-RW)和磁光盘、半导体设备、磁卡或者光学卡或者适合于存储电子指令的任意其它类型的介质,该半导体设备是只读存储器(ROM)、诸如动态随机存储器存储器(DRAM)的随机存取存储器(RAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)。
尽管关于有限数量的实施例描述了本发明,但是本领域的技术人员将意识到根据其的各种修改和变化。所附权利要求意在覆盖落入本发明的精神和范围内的所有这样的修改和变化。
Claims (25)
1.一种用于提供操作电压的装置,包括:
多个硬件缓冲器,所述多个硬件缓冲器的每一个用于存储与一个或多个虚拟通道相关联的信息;
配置逻辑单元,用于确定标识符,所述标识符对应到由经由链路耦合的第一设备和第二设备共同支持的虚拟通道的最大数量,并且用于基于所述标识符获得控制值;以及
门逻辑单元,用于基于所述控制值将操作电压提供到所述多个硬件缓冲器中的相对应的硬件缓冲器,其中,所述门逻辑单元用于当所述虚拟通道的最大数量小于所述多个硬件缓冲器的数量时防止将所述操作电压提供到所述多个硬件缓冲器中的至少一个。
2.根据权利要求1所述的装置,其中,所述配置逻辑单元用于基于与所述第一设备相关联的第一虚拟通道计数和与所述第二设备相关联的第二虚拟通道计数确定所述虚拟通道的最大数量。
3.根据权利要求2所述的装置,其中,所述配置逻辑单元用于从所述第一设备的配置存储装置的虚拟通道计数字段获得所述第一虚拟通道计数,并且用于从所述第二设备的配置存储装置的虚拟通道计数字段获得所述第二虚拟通道计数。
4.根据权利要求1所述的装置,其中,所述门逻辑单元包括多个逻辑电路,所述多个逻辑电路的每一个用于接收所述控制值的比特和所述操作电压,并且用于基于所述比特的值将所述操作电压提供到所述多个硬件缓冲器中的一个。
5.根据权利要求1所述的装置,进一步包括非易失性存储装置,所述非易失性存储装置包括具有多个条目的映射表,所述多个条目的每一个用于将标识符与控制值相关联。
6.根据权利要求5所述的装置,其中,所述配置逻辑单元用于从使用所述标识符存取的所述映射表的条目中获得所述控制值。
7.根据权利要求6所述的装置,其中,所述控制值包括多个比特,所述多个比特的每一个与所述多个硬件缓冲器中的一个相关联,具有第一状态的每一个比特用于指示相关联的硬件缓冲器要被使能,并且具有第二状态的每一个比特用于指示相关联的硬件缓冲器要被禁用。
8.根据权利要求5所述的装置,其中,所述第一设备包括配置存储装置,所述配置存储装置用于存储由所述第一设备支持的所述虚拟通道的最大数量的计数,并且所述配置存储装置还用于存储所述映射表的一个或多个条目的拷贝。
9.根据权利要求8所述的装置,其中,所述非易失性存储装置是与所述第一设备分离的并且经由第二链路耦合到所述第一设备的部件。
10.一种用于提供操作电压的方法,包括:
确定由经由链路耦合的第一端点和第二端点能够支持的虚拟通道的公共数量;
使用所述虚拟通道的公共数量存取存储装置,以便获得对应到所述虚拟通道的公共数量的控制设置;并且
基于所述控制设置将操作电压提供到所述第一端点的选定的第一硬件缓冲器以及所述第二端点的选定的第二硬件缓冲器。
11.根据权利要求10所述的方法,其中,提供所述操作电压包括将所述操作电压提供到所述选定的第一硬件缓冲器和第二硬件缓冲器,并且不将所述操作电压提供到未选定的第一硬件缓冲器和未选定的第二硬件缓冲器。
12.根据权利要求10所述的方法,还包括使用所述选定的第一硬件缓冲器和所述选定的第二硬件缓冲器在所述第一端点和所述第二端点之间传送数据。
13.根据权利要求10所述的方法,还包括在所述链路的配置期间使用所述虚拟通道的公共数量存取所述存储装置,其中,所述存储装置与所述第一端点和所述第二端点分离并且包括多个条目,所述多个条目的每一个用于存储虚拟通道的公共数量和控制设置。
14.根据权利要求13所述的方法,还包括响应于所述链路的重新配置:
确定由所述第一端点和所述第二端点能够支持的虚拟通道的第二公共数量;
使用所述虚拟通道的第二公共数量存取所述存储装置,以便获得第二控制设置;并且
基于所述第二控制设置将所述操作电压提供到所述第一硬件缓冲器中与所述选定的第一硬件缓冲器不同的第一硬件缓冲器,并且将所述操作电压提供到所述第二硬件缓冲器中与所述选定的第二硬件缓冲器不同的第二硬件缓冲器。
15.一种包括机器可读指令的机器可读存储介质,所述指令当被执行时实现如权利要求10到14中的任意一项所述的方法。
16.一种用于使能电路的装置,包括:
第一链路接口,用于将所述装置接口到在所述装置和第二设备之间耦合的链路,所述第一链路接口包括多个独立电路,所述多个独立电路的每一个用于传送相对应的业务类别的数据;
第一配置存储装置,用于存储对应到所述多个独立电路的数量的最大可支持值;
配置逻辑单元,用于确定链路最大值,所述链路最大值对应到存储在所述第一配置存储装置中的所述最大可支持值和存储在所述第二设备的第二配置存储装置中的最大可支持值中的最小值,并且用于获得所述链路最大值的不同表示;以及
控制电路,用于当所述链路最大值小于所述多个独立电路的数量时,响应于所述不同表示而使能所述多个独立电路的第一集合并且禁用所述多个独立电路的第二集合。
17.根据权利要求16所述的装置,其中,存储在所述第一配置存储装置中的所述最大可支持值进一步对应到针对所述装置的虚拟通道计数值。
18.根据权利要求16所述的装置,进一步包括耦合到所述装置的非易失性存储装置,所述非易失性存储装置包括具有多个条目的映射表,所述多个条目的每一个使链路最大值与所述链路最大值的不同表示相关联,使用由所述配置逻辑单元确定的所述链路最大值来存取所述映射表。
19.根据权利要求18所述的装置,其中,所述不同表示包括多个比特,所述多个比特的每一个与所述多个独立电路中的一个相关联,具有第一状态的每一个比特用于指示相关联的独立电路要被使能,并且具有第二状态的每一个比特用于指示相关联的独立电路要被禁用。
20.根据权利要求19所述的装置,其中,所述控制电路包括多个逻辑电路,所述多个逻辑电路的每一个用于接收所述不同表示的所述多个比特的比特以及来自电压调节器的操作电压,并且用于基于所述比特的值将所述操作电压提供到所述多个独立电路中的一个。
21.根据权利要求16所述的装置,其中,所述多个独立电路分别包括与虚拟通道相关联的硬件缓冲器。
22.一种用于动态地使能硬件缓冲器的系统,包括:
包括第一链路接口的第一设备,所述第一链路接口具有第一多个硬件缓冲器,所述第一多个硬件缓冲器的每一个用于存储与一个或多个虚拟通道相关联的信息;
经由链路耦合到所述第一设备的第二设备,所述第二设备包括:具有第二多个硬件缓冲器的第二链路接口,所述第二多个硬件缓冲器的每一个用于存储与所述一个或多个虚拟通道相关联的信息,其中,存在比所述第一多个硬件缓冲器更多的所述第二多个硬件缓冲器;
控制单元,用于确定由所述第一设备和所述第二设备共同支持的虚拟通道的最大数量,所述最大数量对应到所述第一多个硬件缓冲器的数量,并且用于基于所述最大数量获得控制值;以及
门单元,用于响应于所述控制值而使能比所述第二多个硬件缓冲器的全部要少的第二硬件缓冲器。
23.根据权利要求22所述的系统,其中,所述第一设备包括第一配置存储装置,所述第一配置存储装置包括第一最大虚拟通道计数,并且所述第二设备包括第二配置存储装置,所述第二配置存储装置包括第二最大虚拟通道计数。
24.根据权利要求23所述的系统,其中,所述控制单元用于使用所述第一最大虚拟通道计数和所述第二最大虚拟通道计数来确定所述共同支持的虚拟通道的最大数量。
25.根据权利要求22所述的系统,进一步包括非易失性存储装置,所述非易失性存储装置包括具有多个条目的映射表,所述多个条目的每一个关联共同支持的虚拟通道的最大数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
USPCT/US2014/031304 | 2014-03-20 | ||
PCT/US2014/031304 WO2015142336A1 (en) | 2014-03-20 | 2014-03-20 | A method, apparatus, and system for controlling power consumption of unused hardware of a link interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104932996A CN104932996A (zh) | 2015-09-23 |
CN104932996B true CN104932996B (zh) | 2018-04-13 |
Family
ID=54120167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510083749.1A Active CN104932996B (zh) | 2014-03-20 | 2015-02-16 | 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9552045B2 (zh) |
EP (1) | EP3120216B1 (zh) |
JP (1) | JP6321194B2 (zh) |
KR (1) | KR101867435B1 (zh) |
CN (1) | CN104932996B (zh) |
DE (1) | DE112014006490T5 (zh) |
RU (1) | RU2653306C1 (zh) |
TW (1) | TWI556094B (zh) |
WO (1) | WO2015142336A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109844725B (zh) * | 2016-07-01 | 2023-07-25 | 英特尔公司 | 点对点互连中的非对称通道 |
CN110073342A (zh) * | 2016-12-23 | 2019-07-30 | 英特尔公司 | 用于硬件加速的虚拟信道 |
US10372657B2 (en) * | 2016-12-26 | 2019-08-06 | Intel Corporation | Bimodal PHY for low latency in high speed interconnects |
KR20180095765A (ko) | 2017-02-17 | 2018-08-28 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US20190095554A1 (en) * | 2017-09-28 | 2019-03-28 | Intel Corporation | Root complex integrated endpoint emulation of a discreet pcie endpoint |
US11630480B2 (en) * | 2017-10-05 | 2023-04-18 | Intel Corporation | System, method, and apparatus for SRIS mode selection for PCIe |
CN110139063B (zh) * | 2018-02-09 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种确定设备支持视频流路数的方法、装置及设备 |
CN108495362B (zh) * | 2018-03-09 | 2021-06-01 | 广东小天才科技有限公司 | 一种信号传输方法及通信电路 |
WO2020236296A1 (en) | 2019-05-23 | 2020-11-26 | Cray Inc. | System and method for facilitating efficient packet injection into an output buffer in a network interface controller (nic) |
KR20210012439A (ko) * | 2019-07-25 | 2021-02-03 | 삼성전자주식회사 | 마스터 지능 소자 및 이의 제어 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950438B1 (en) * | 1999-09-17 | 2005-09-27 | Advanced Micro Devices, Inc. | System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system |
CN101546300A (zh) * | 2008-03-27 | 2009-09-30 | 富士通株式会社 | 存储器控制装置、存储器控制方法和信息处理系统 |
CN102823214A (zh) * | 2010-03-29 | 2012-12-12 | 英特尔公司 | 知晓性能和话务的异类性互联网络 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
JPH04359335A (ja) | 1991-06-06 | 1992-12-11 | Fujitsu Ltd | メモリアクセス方式 |
US5781784A (en) | 1992-07-09 | 1998-07-14 | Zilog, Inc. | Dynamic power management of solid state memories |
US6222825B1 (en) | 1997-01-23 | 2001-04-24 | Advanced Micro Devices, Inc. | Arrangement for determining link latency for maintaining flow control in full-duplex networks |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
DE19822259C2 (de) | 1998-05-18 | 2000-07-06 | Siemens Ag | Sendeeinrichtung und Bussystem zur Datenübertragung |
US6938094B1 (en) | 1999-09-17 | 2005-08-30 | Advanced Micro Devices, Inc. | Virtual channels and corresponding buffer allocations for deadlock-free computer system operation |
US6597689B1 (en) * | 1998-12-30 | 2003-07-22 | Nortel Networks Limited | SVC signaling system and method |
US6526469B1 (en) | 1999-11-12 | 2003-02-25 | International Business Machines Corporation | Bus architecture employing varying width uni-directional command bus |
US20020087716A1 (en) | 2000-07-25 | 2002-07-04 | Shakeel Mustafa | System and method for transmitting customized multi priority services on a single or multiple links over data link layer frames |
JP4906226B2 (ja) | 2000-08-17 | 2012-03-28 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マルチプロセッサコンピュータシステムにおいて、ポストされたリクエストのための別個のバーチャルチャネルを実現するためのシステムおよび方法 |
US6665742B2 (en) | 2001-01-31 | 2003-12-16 | Advanced Micro Devices, Inc. | System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link |
JP2002259327A (ja) | 2001-02-28 | 2002-09-13 | Hitachi Ltd | バス制御回路 |
JP3523616B2 (ja) | 2001-07-24 | 2004-04-26 | 松下電器産業株式会社 | バス最適化方法及び通信ノード |
US6681274B2 (en) * | 2001-10-15 | 2004-01-20 | Advanced Micro Devices, Inc. | Virtual channel buffer bypass for an I/O node of a computer system |
US6715055B1 (en) * | 2001-10-15 | 2004-03-30 | Advanced Micro Devices, Inc. | Apparatus and method for allocating buffer space |
US20030088799A1 (en) | 2001-11-05 | 2003-05-08 | Bodas Devadatta V. | Method and apparatus for regulation of electrical component temperature and power consumption rate through bus width reconfiguration |
US8819253B2 (en) | 2001-11-13 | 2014-08-26 | Oracle America, Inc. | Network message generation for automated authentication |
US7200186B2 (en) | 2002-03-14 | 2007-04-03 | Intel Corporation | Methods and apparatus for reducing power usage of a transmitter and receiver coupled via a differential serial data link |
GB0211764D0 (en) | 2002-05-22 | 2002-07-03 | 3Com Corp | Automatic power saving facility for network devices |
US8103788B1 (en) * | 2002-11-19 | 2012-01-24 | Advanced Micro Devices, Inc. | Method and apparatus for dynamically reallocating buffers for use in a packet transmission |
US7137018B2 (en) | 2002-12-31 | 2006-11-14 | Intel Corporation | Active state link power management |
US7047475B2 (en) | 2003-02-04 | 2006-05-16 | Hewlett-Packard Development Company, L.P. | CRC encoding scheme for conveying status information |
US7136953B1 (en) | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US7188263B1 (en) | 2003-05-07 | 2007-03-06 | Nvidia Corporation | Method and apparatus for controlling power state of a multi-lane serial bus link having a plurality of state transition detectors wherein powering down all the state transition detectors except one |
US7706282B2 (en) | 2003-06-25 | 2010-04-27 | Leping Huang | Bluetooth personal area network routing protocol optimization using connectivity metric |
TWI273789B (en) | 2004-02-24 | 2007-02-11 | Via Tech Inc | Method for adjusting the power consumption of a network interface |
US7313712B2 (en) | 2004-05-21 | 2007-12-25 | Intel Corporation | Link power saving state |
US8046488B2 (en) | 2004-05-21 | 2011-10-25 | Intel Corporation | Dynamically modulating link width |
US7844767B2 (en) | 2004-05-21 | 2010-11-30 | Intel Corporation | Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link |
US7957428B2 (en) | 2004-05-21 | 2011-06-07 | Intel Corporation | Methods and apparatuses to effect a variable-width link |
US7197591B2 (en) | 2004-06-30 | 2007-03-27 | Intel Corporation | Dynamic lane, voltage and frequency adjustment for serial interconnect |
US7522520B2 (en) * | 2004-09-03 | 2009-04-21 | Intel Corporation | Flow control credit updates for virtual channels in the Advanced Switching (AS) architecture |
US7472299B2 (en) * | 2005-09-30 | 2008-12-30 | Intel Corporation | Low power arbiters in interconnection routers |
US7484110B2 (en) * | 2006-03-16 | 2009-01-27 | Microsoft Corporation | Adaptive power management |
US7660261B2 (en) | 2006-11-14 | 2010-02-09 | The Trustees Of Columbia University In The City Of New York | Systems and methods for computing data transmission characteristics of a network path based on single-ended measurements |
JP5085463B2 (ja) * | 2008-08-12 | 2012-11-28 | 株式会社リコー | 情報転送回路、情報処理装置、情報転送回路の制御方法、制御プログラム及び記録媒体 |
TW201008234A (en) * | 2008-08-12 | 2010-02-16 | Acer Inc | Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system |
JP5966265B2 (ja) * | 2011-07-15 | 2016-08-10 | 株式会社リコー | データ転送装置及び画像形成システム |
US8954635B2 (en) * | 2011-08-31 | 2015-02-10 | Advanced Micro Devices, Inc. | Buffer management using freelist buffers |
US9385962B2 (en) * | 2013-12-20 | 2016-07-05 | Intel Corporation | Method and system for flexible credit exchange within high performance fabrics |
-
2014
- 2014-03-20 WO PCT/US2014/031304 patent/WO2015142336A1/en active Application Filing
- 2014-03-20 RU RU2016133946A patent/RU2653306C1/ru active
- 2014-03-20 US US14/426,597 patent/US9552045B2/en active Active
- 2014-03-20 KR KR1020167022597A patent/KR101867435B1/ko active IP Right Grant
- 2014-03-20 EP EP14886540.5A patent/EP3120216B1/en active Active
- 2014-03-20 DE DE112014006490.4T patent/DE112014006490T5/de active Pending
- 2014-03-20 JP JP2016553359A patent/JP6321194B2/ja active Active
-
2015
- 2015-02-05 TW TW104103912A patent/TWI556094B/zh active
- 2015-02-16 CN CN201510083749.1A patent/CN104932996B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950438B1 (en) * | 1999-09-17 | 2005-09-27 | Advanced Micro Devices, Inc. | System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system |
CN101546300A (zh) * | 2008-03-27 | 2009-09-30 | 富士通株式会社 | 存储器控制装置、存储器控制方法和信息处理系统 |
CN102823214A (zh) * | 2010-03-29 | 2012-12-12 | 英特尔公司 | 知晓性能和话务的异类性互联网络 |
Also Published As
Publication number | Publication date |
---|---|
WO2015142336A1 (en) | 2015-09-24 |
CN104932996A (zh) | 2015-09-23 |
EP3120216A4 (en) | 2017-11-29 |
EP3120216A1 (en) | 2017-01-25 |
TW201602770A (zh) | 2016-01-16 |
TWI556094B (zh) | 2016-11-01 |
JP6321194B2 (ja) | 2018-05-09 |
RU2653306C1 (ru) | 2018-05-07 |
KR20160111464A (ko) | 2016-09-26 |
DE112014006490T5 (de) | 2016-12-08 |
US20160259394A1 (en) | 2016-09-08 |
KR101867435B1 (ko) | 2018-07-23 |
US9552045B2 (en) | 2017-01-24 |
EP3120216B1 (en) | 2020-11-04 |
JP2017511529A (ja) | 2017-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104932996B (zh) | 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统 | |
CN104756097B (zh) | 一致性协议表 | |
CN105593830B (zh) | 用于测量电路的物理单元中的等待时间的方法、装置和系统 | |
CN107077521B (zh) | 片上系统配置元数据 | |
CN105793829B (zh) | 用于集成组件互连的装置、方法和系统 | |
CN109154924B (zh) | 多个上行链路端口设备 | |
CN105718390B (zh) | 共享存储器链路中的低功率进入 | |
CN110036380A (zh) | 用于高速互连中低延迟的双模phy | |
CN104050138B (zh) | 用于执行链路训练与均衡的装置、系统、和方法 | |
CN105793830B (zh) | 一种在节点之间共享存储器和i/o服务的装置、方法、系统 | |
CN109213706A (zh) | 用于访问作为存储器的存储设备的系统和方法 | |
CN108701023A (zh) | 带内重定时器寄存器访问 | |
CN107430567A (zh) | 共享缓冲存储器路由 | |
CN108292267B (zh) | 用于配置装置的方法、系统和设备 | |
CN108337910A (zh) | 用于软件定义的互连交换机的架构 | |
CN116472523A (zh) | 器件互连中的源排序 | |
CN105793715A (zh) | 互连重定时器增强 | |
JP2017504089A5 (zh) | ||
CN109844725A (zh) | 点对点互连中的非对称通道 | |
CN107003838B (zh) | 解码信息库 | |
CN109643299A (zh) | 在具有现有tlp定义的pcie上的持久存储器写入语义 | |
CN107112042A (zh) | 数据信号的边沿感知同步 | |
CN109582998A (zh) | 小巧PCIe端点的根复合体集成端点仿真 | |
CN107005492A (zh) | 用于芯片上网络上的多播和缩减通信的系统 | |
CN107003944B (zh) | 跨分布式存储器的指针追踪 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |