CN108027785B - 用于对链路拆分进行去偏斜的方法、设备和*** - Google Patents
用于对链路拆分进行去偏斜的方法、设备和*** Download PDFInfo
- Publication number
- CN108027785B CN108027785B CN201680056036.9A CN201680056036A CN108027785B CN 108027785 B CN108027785 B CN 108027785B CN 201680056036 A CN201680056036 A CN 201680056036A CN 108027785 B CN108027785 B CN 108027785B
- Authority
- CN
- China
- Prior art keywords
- counter value
- data
- logic
- data portion
- counter
- 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
Images
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/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- 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/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Advance Control (AREA)
Abstract
描述了用于在被去偏斜的数据流的多个通道群组之间进行去偏斜的***、方法和设备。通过利用群组间同步的计数器集,能够对齐多个有区别和被去偏斜的通道群组。计数器提供了用来测量在多个流之间时钟中的时间delta(计数器差)的方式。通过使用此delta,能够停顿一个或多个流以将所述多个流对齐。在所述多个群组之间以某种方式传递计数器值,使得它们对齐以设置数据流标记。这些固定的标记和与标记的周期性有关的计数器的分解允许比较所述多个流和计算准确的时间delta的稳健方式。
Description
相关申请交叉引用
本申请要求对在2015年9月26日提交的,标题为“METHODS, APPARATUSES, ANDSYSTEMS FOR DESKEWING LINK SPLITS”的美国非临时(实用)专利申请No.14/866,866的优先权权益,该申请通过引用以其整体被并入本文中。
技术领域
本公开关于计算***,并且具体地(但不排他地)说,关于在不止一个芯片上对链路拆分进行去偏斜。
背景技术
数据流或通道群组能够经历时钟偏斜,由此使在通道之间在目标目的地的到达时间失去同步。能够使用各种技术对通道群组内的通道进行去偏斜。在其中不同芯片驻留在单个卡上(每个芯片具有异类的(disparate)通道群组)的情况下,不同通道群组也可经历时钟偏斜,使与单个卡上(或不止一个卡)上不同芯片关联的通道群组失去同步。
附图说明
图1图示了包含多核处理器的计算***的框图的一实施例。
图2是根据本公开的实施例,用于对异类通道进行去偏斜的***的示意框图。
图3是根据本公开的实施例的去偏斜逻辑的示意框图。
图4是根据本公开的实施例的存储逻辑的示意框图。
图5-A是根据本公开的实施例,用于对异类通道进行去偏斜的过程流程图。
图5-B是根据本公开的实施例,用于对异类通道进行去偏斜的过程流程图5-A的继续。
图6是图示了用于对异类通道群组进行去偏斜的逻辑的状态的状态图。
图7图示了包含互连架构的计算***的一实施例。
图8图示了包含分层栈的互连架构的一实施例。
图9图示了要在互连架构内生成或接收的请求或分组的一实施例。
图10图示了用于互连架构的传送器和接收器对的一实施例。
图11图示了用于计算***的框图的一实施例。
图12图示了用于处理器的框图的一实施例。
图13图示了用于包含处理器的计算***的框图的另一实施例。
图14图示了用于包含多个处理器插槽的计算***的块的一实施例。
图15图示了用于计算***的框图的另一实施例。
图16图示了用于计算***的框图的另一实施例。
具体实施方式
本文描述了用于在经去偏斜的数据流的多个(例如,至少两个)通道群组之间进行去偏斜的***、方法和设备。在单个卡上能够支持多个集成电路芯片。每个芯片能够接收预定跨诸如PCIe互连链路的互连链路进行传送的数据流(称为通道群组)。然而,在跨互连链路传送前,每个芯片的通道群组要被去偏斜,使得来自单个卡上所有芯片的数据的所有流能够跨互连被传送。通过利用群组间同步的计数器集,能够对齐多个不同的并被去偏斜的通道群组。计数器提供了用来测量在所述多个流之间时钟中的时间delta(计数器差)的方式。通过使用此delta,能够停顿流的至少之一以对齐所述多个流。在所述多个通道群组之间采用它们对齐以设置数据流标记的方式传递计数器值。这些固定的标记和与标记的周期性有关的计数器的中断允许来比较所述多个通道群组和计算准确的时间delta的稳健方式。
在后面的描述中,众多特定细节被阐述,诸如特定类型的处理器和***配置、特定硬件结构、特定架构的和微架构的细节、特定寄存器配置、特定指令类型、特定***组件、特定度量/高度、特定处理器管线级和操作等等的示例,以便提供对本发明的透彻理解。然而,对于本领域技术人员将显而易见的是,这些特定细节无需被采用来实践本发明。在其它实例中,公知的组件或方法,诸如特定和备选的处理器架构、用于描述的算法的特定逻辑(例如,电路或代码)、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、算法在代码中的特定表达、特定掉电(power down)和门控技术/逻辑以及计算机***的其它特定操作细节,已没有被详细地描述,以免不必要地使本发明难以理解。
虽然后面的实施例可参考特定集成电路中(诸如在计算平台或微处理器中)的能量节约和能量效率来描述,但其它实施例可应用于其它类型的集成电路和逻辑装置。本文中所描述的实施例的类似技术和教导可被应用于也可受益于更好的能量效率和能量节约的其它类型的电路或半导体装置。例如,公开的实施例不被限制于桌面型计算机***或UltrabooksTM。并且也可在诸如手持式装置、平板、其它薄的笔记本、芯片上***(SOC)装置以及嵌入式应用的其它装置中使用。手持式装置的一些示例包括蜂窝电话、因特网协议装置、数字摄像机、个人数字助理(PDA)及手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、芯片上***、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换器或能够执行下面教导的功能和操作的任何其它***。另外,本文中所描述的设备、方法和***不限于物理计算装置,而是也可涉及用于能量节约和效率的软件优化。正如将在下面的描述中变得容易显而易见的那样,本文中描述的方法、设备和***的实施例(无论是参考硬件、固件、软件还是它们的组合)对与性能考虑相权衡的“绿色技术”未来是至关重要的。
随着计算***在进步,其中的组件正变得更复杂。因此,在组件之间用来耦合和通信的互连架构在复杂性方面也在增大,以确保满足对于优化的组件操作的带宽要求。此外,不同细分市场需求互连架构的不同方面以符合市场的需要。例如,服务器要求更高的性能,而移动生态***有时能够为功率节省而牺牲整体性能。然而,在最大的功率节省的情况下提供最高可能的性能是大多数构造的单一目的。在下面,讨论了多个互连,其将潜在地受益于本文中描述的本发明的方面。
图1
参见图1,描绘了用于包含多核处理器的计算***的框图的一实施例。处理器100包含任何处理器或处理装置,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、芯片上***(SOC)或执行代码的其它装置。在一个实施例中,处理器100包含至少两个核 - 核101和102,其可包含不对称核或对称核(示出的实施例)。然而,处理器100可包含可以是对称或不对称的任何数量的处理元件。
在一个实施例中,处理元件指用来支持软件线程的硬件或逻辑。硬件处理元件的示例包含:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑的处理器、硬件线程、核、和/或有能力保持处理器的状态(诸如执行状态或架构状态)的任何其它元件。换言之,在一个实施例中,处理元件指的是有能力独立地与代码(诸如软件线程、操作***、应用、或其它代码)关联的任何硬件。物理处理器(或处理器插槽)一般指的是集成电路,其潜在地包含任何数量的其它处理元件,诸如核或硬件线程。
核通常指的是位于集成电路上的逻辑,其有能力维持独立架构状态,其中每个独立维持的架构状态与至少一些专用执行资源关联。与核形成对比的是,硬件线程一般指的是位于集成电路上的有能力维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如能够被看到的,在某些资源被共享,并且其它资源专用于架构状态时,硬件线程与核的命名之间的界线重叠。然而通常,核和硬件线程***作***视为各个的逻辑的处理器,其中操作***能够单独地调度每个逻辑的处理器上的操作。
如图1中所示,物理处理器100包含两个核 - 核101和102。这里,核101和102被视为对称核,即,带有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核101包含无序处理器核,而核102包含有序处理器核。然而,核101和102可从任何类型的核(诸如原生核(native core)、软件管理的核、适应于执行原生指令集架构(ISA)的核、适应于执行转换的指令集架构(ISA)的核、协同设计的核或其它已知核)中单独选择。在异构核环境(即,不对称核)中,诸如二进制转换的某种形式的转换可用于调度或执行在一个或两个核上的代码。然而为进一步进行讨论,下面进一步详细描述核101中所示的功能单元,因为核102中的单元采用在所描绘的实施例中类似的方式进行操作。
如所描绘的,核101包含两个硬件线程101a和101b,它们也可称为硬件线程槽101a和101b。因此,诸如操作***的软件实体在一个实施例中潜在地将处理器100视为四个分开的处理器,即,能够并发地执行四个软件线程的四个逻辑的处理器或处理元件。如在上面间接提到的,第一线程与架构状态寄存器101a关联,第二线程与架构状态寄存器101b关联,第三线程可与架构状态寄存器102a关联,且第四线程可与架构状态寄存器102b关联。这里,如上所述,每个架构状态寄存器(101a、101b、102a和102b)可称为处理元件、线程槽或线程单元。如图所示,架构状态寄存器101a被复制在架构状态寄存器101b中,因此各个架构状态/上下文能够被存储用于逻辑的处理器101a和逻辑的处理器101b。在核101中,也可为线程101a和101b复制其它更小的资源,诸如分配器和重命名块130中的指令指针和重命名逻辑。一些资源(诸如在重排序/引退单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器、和队列)可通过分区被共享。诸如通用内部寄存器、页表基址寄存器、低级别数据高速缓存和数据-TLB 115、执行单元140以及无序单元135的部分的其它资源被潜在地完全共享。
处理器100通常包括其它资源(其可被完全共享),这些资源通过分区被共享或由处理元件专用/专用于处理元件。在图1中,图示了纯示范性处理器(其带有说明性的处理器的逻辑的单元/资源)的一实施例。注意,处理器可包含或省略任何这些功能单元,以及包含任何其它已知的未描绘的功能单元、逻辑、或固件。如图所示,核101包含简化的代表性无序(OOO)处理器核。但在不同实施例中可利用有序处理器。OOO核包含用来预测要被执行/采用的分支的分支目标缓冲器120和用来存储对于指令的地址转换条目的指令转换缓冲器(I-TLB)120。
核101进一步包含耦合到取单元120用来解码所取的元素的解码模块125。在一个实施例中,取逻辑包含分别与线程槽101a、101b关联的各个序列器。通常,核101与第一ISA关联,第一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。数据高速缓存要存储最近使用的/操作的元素,诸如数据操作数,其潜在地被保持在存储器一致性状态(memory coherency state)中。D-TLB要存储到物理地址的最近虚拟/线性转换。作为特定示例,处理器可包含页表结构来将物理存储器分解为多个虚拟页面。
这里,核101和102共享对更高级别或更远外面的高速缓存(further-out cache)(诸如与芯片上接口110关联的第二级高速缓存)的访问。注意,更高级别或更远外面指的是增大的或者变得离执行单元更远的高速缓存级别。在一个实施例中,更高级别高速缓存是末级高速缓存——处理器100上存储器层级中最末的高速缓存——诸如二级或三级数据高速缓存。然而,更高级别高速缓存并不是如此地被限制,因为它可与指令高速缓存关联或者包括指令高速缓存。踪迹高速缓存——一种指令高速缓存类型——转而可被耦合在解码器125后,以存储最近解码的踪迹。这里,指令潜在地指可解码成多个微指令(微操作)的宏指令(即,解码器识别的一般指令)。
在所描绘的配置中,处理器100还包含芯片上接口模块110。在历史上,下面更详细描述的存储器控制器已被包含在处理器100外部的计算***中。在此情形中,芯片上接口11要与处理器100外部的装置通信,诸如***存储器175、芯片集(经常包含用来连接到存储器175的存储器控制器集线器和用来连接外设装置的I/O控制器集线器)、存储器控制器集线器、北桥或其它集成电路。而且在此情形中,总线105可包含任何已知互连,诸如多点总线(multi-drop bus)、点对点互连、串行互连、并行总线、一致的(例如高速缓存一致的)总线、分层协议架构、差分总线、和GTL总线。
存储器175可被专用于处理器100或者被与***中的其它装置所共享。存储器175的类型的普通示例包含DRAM、SRAM、非易失存储器(NV存储器)和其它已知的存储装置。注意,装置180可包含图形加速器、处理器或耦合到存储器控制器集线器的卡、耦合到I/O控制器集线器的数据存储装置、无线收发器、闪速装置、音频控制器、网络控制器或其它已知的装置。
然而最近,随着更多逻辑和装置正被集成在单个管芯(诸如SOC)上,这些装置的每个可被结合在处理器100上。例如在一个实施例中,存储器控制器集线器与处理器100在相同的封装和/或管芯上。这里,核110的一部分(核上部分)包含用于与诸如存储器175或图形装置180的其它装置进行接口的一个或多个控制器。包含互连和用于与此类装置进行接口的控制器的配置经常被称为核上(或非核配置)。作为示例,芯片上接口110包含用于芯片上通信的环形互连和用于芯片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多装置(诸如网络接口、协处理器、存储器175、图形处理器180和任何其它已知的计算机装置/接口)可被集成在单个管芯或集成电路上,用以给小形状因子(small form factor)提供高功能性和低功率消耗。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码177来进行编译、转换和/或优化应用代码176,以支持本文中所描述的设备和方法或者与其进行接口。编译器通常包含用来将源文本/代码转换成目标文本/代码的程序或程序集。通常,使用编译器进行程序/应用代码的编译采用多个阶段和多遍(pass)进行,以将高级别编程语言代码变换成低级别机器或汇编语言代码。然而,单遍编译器可仍被用于简单编译。编译器可利用任何已知的编译技术,并执行任何已知的编译器操作,诸如词汇分析、预处理、解析、语义分析、代码生成、代码变换、和代码优化。
更大型的编译器经常包含多个阶段,但最常见的是,这些阶段被包含在两个一般的阶段内:(1)前端,即通常在其中可进行语法处理、语义处理和某种变换/优化,和(2)后端,即通常在其中进行分析、变换、优化和代码生成。一些编译器指的是中间项(middle),其示出在编译器的前端和后端之间描述的模糊。因此,对***、关联、生成或编译器的其它操作的参考可发生在任何前面提到的阶段或遍中,以及编译器的任何其它已知的阶段或遍中。作为说明性示例,编译器在编译器的一个或多个阶段中潜在地***操作、调用、函数等,诸如在编译的前端阶段中***调用/操作并且然后在变换阶段期间将调用/操作变换成更低级别代码。注意,在动态编译期间,编译器代码或动态优化代码可***此类操作/调用以及优化代码以便在运行时间期间进行执行。作为特定说明性示例,可在运行时间期间动态优化二进制代码(已经编译的代码)。这里,程序代码可包含动态优化代码、二进制代码或其组合。
类似于编译器,诸如二进制转换器的转换器静态或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码的执行或其它软件环境的参考可指的是:(1)动态地或静态地执行编译器程序、优化代码优化器或转换器,以编译程序代码、维持软件结构、执行其它操作、优化代码、或转换代码;(2)执行主程序代码(包含操作/调用),诸如已被优化的/编译的应用代码;(3)执行与主程序代码关联的其它程序代码(诸如库),以维持软件结构、执行其它软件相关操作、或优化代码;或(4)其组合。
本公开描述对也称为通道群组的数据流的多个不同群组进行时间同步。通道群组应被时间同步,使得它们可以最小偏斜被重新传送。在一些实现中,两个PCIe通道群组以如下方式被分开,使得传统芯片内(intra-chip)逻辑方法将对于对通道群组(例如,在不同地被封装的芯片上的PCIe通道群组)进行时间同步不起作用。
实施例的方面针对通过利用群组间被同步的计数器集,来对多个不同的通道群组进行时间对齐。假设每个通道群组已经历去偏斜,使得通道群组内的各个通道被同步。
群组间被同步的计数器提供用来测量在所述多个通道群组之间时钟中的时间差的方式。在所述多个群组之间采用它们对齐以设置数据流标记的方式传递计数器值。通过使用此时间差(),能够停顿一个或多个通道群组以对所述多个通道群组一起进行时间对齐。
图2是用于对异类通道群组进行去偏斜的***200的示意框图。***200显示用于每个异类通道群组的两组电路:电路组在本文中称为“本地电路组”201和“远程电路组”221。术语“本地”和“远程”用于区分针对本地通道群组212(在此示例中的“本地”)和远程通道群组232(在此示例中的“远程”)发生的操作。但普通技术人员将认识到,每个电路组可包含相同或类似的特征。
参考本地电路组201:本地电路组201包含本地去偏斜逻辑210,其首先对本地通道群组212进行去偏斜,这以已知方式来进行,诸如利用COM符号或128/130个块开始作为标记点。在本地通道群组212与远程通道群组232之间进行去偏斜前,在形成通道群组212的通道上执行此本地去偏斜。一旦本地通道群组被去偏斜,本地去偏斜逻辑210便向远处去偏斜逻辑202发送本地去偏斜已被执行并且远处去偏斜逻辑202能够执行在通道群组201与221之间的去偏斜的指示。远处去偏斜逻辑202使用术语“远处”是因为远处去偏斜逻辑202将使用从远程电路组221接收的值以及从本地电路组201接收的值,并且在一些实例中,远处去偏斜逻辑202可向附近通道群组212提供进行停顿的信息。
本地逻辑组201还包含心跳生成器204,其能够是自由运行计数器、8位计数器或其它计数器逻辑。在一个实施例中,心跳生成器204持续向远处去偏斜逻辑202提供本地计数器值。本地计数器值能够是表示本地通道群组的位置的8个位。在一备选实施例中,心跳生成器204以预定义的时间间隔向远处去偏斜逻辑202提供本地计数器值。本地逻辑组201还包含用于存储计数器值的地址部分和数据部分的存储逻辑206。本地逻辑组201还包含用来在本地逻辑组201与远程逻辑组221之间进行接口的通信接口208。
类似地,远程逻辑组221包含远去偏斜逻辑222、心跳生成器224、存储逻辑226、通信接口228和本地去偏斜逻辑230。对于远程逻辑组221,心跳生成器224输出“远计数器值”,其能够被传送到本地逻辑组201。远计数器值是由远去偏斜逻辑222所使用的用来标识远程通道群组232的数据流的位置的计数器值。
在一些实施例中,本地逻辑组201包含存储结构206,其在标记点经过时记录本地计数值。通过在远计数被捕获时将远计数与其对应本地计数进行匹配,***200确保时钟循环停顿(诸如一个时钟循环停顿)不会造成坏的结果。PCIE 128/130内部数据路径一般引发循环停顿作为从数据流剥去所述两个块报头的副效应。
图3是根据本公开的实施例,用于在异类通道群组之间进行去偏斜的逻辑组300的示意框图。具体而言,逻辑组300能够与本地逻辑组201或远程逻辑组221相同或类似。例如,逻辑组300包含远去偏斜逻辑302、自由运行计数器304、存储逻辑306、通信接口308和本地去偏斜控制逻辑310。本地去偏斜控制逻辑310直接与通道群组进行接口,例如如本地去偏斜逻辑210与来自图2的通道群组212所进行的那样。
本地去偏斜逻辑310能够向远去偏斜逻辑302传送信号,诸如指示本地去偏斜被完成的信号。远去偏斜逻辑302能够使用本地去偏斜完成指示符的存在来开始去偏斜过程。远去偏斜逻辑302可包含有限状态机和/或其它逻辑。
另外,本地去偏斜逻辑310能够向远去偏斜逻辑302发送标记,该标记指示通道群组的所有通道已被本地去偏斜逻辑310看到。标记能够是指示训练序列的存在的信号,诸如训练序列的第一符号。训练序列能够是表示要跨PCIe链路被传送的数据的数据。标记能够被用于发信号通知远去偏斜逻辑302开始去偏斜过程。
例如,计数器304自由地运行,并且输出本地计数器值。在远去偏斜逻辑302检测到标记,并且计数器304的值在阈值内时,远去偏斜逻辑302能够在存储逻辑306中存储计数器值,并且能够采用本地计数器值来更新远程逻辑组221。在一些实例中,阈值是训练序列的长度。
作为示例,如果训练序列占用16个时钟,则远去偏斜逻辑302能够 1)在存储逻辑306中存储计数器值,并且 2)当训练序列的开始在计数器值位于0和16之间(包含0和16)时被看到(即,从本地去偏斜逻辑310接收到标记)时,经由通信接口308向远程逻辑组221发送计数器值。
图4是根据本公开的实施例的存储逻辑400的示意图。存储逻辑400类似于图3的存储逻辑306和图2的存储逻辑206。存储逻辑400包含位置查找随机存取存储器(RAM)406(也被引用为位置查找406)。位置查找406存储用于本地逻辑组201的计数器值,并且通过来自远去偏斜逻辑302的信号被写启动。例如,远去偏斜逻辑302能够发送本地存储信号,在接收到触发事件(诸如接收到标记和计数器值)时,该信号使位置查找406写启动。
存储逻辑400还包含本地计数器操作逻辑402。本地计数器操作逻辑402将从远去偏斜逻辑302接收到的本地计数器值拆分成地址部分和数据部分。例如,本地计数器操作逻辑402执行对本地计数器值的散列以形成本地计数器值的地址部分和本地计数器值的数据部分。本地计数器值的地址部分能够是用来在位置查找406中充当关键字或地址的足够数量的位。本地计数器值的地址部分和数据部分被存储到位置查找406中。例如,本地计数器值的较高四个位能够充当用于散列表的地址部分或关键字。数据部分能够表示通道群组的位置,并且能够被存储为散列表中的值。地址部分能够指向在位置查找406中存储的散列表中的数据部分。
存储逻辑400也包含远计数器操作逻辑404,其将从远程逻辑组221接收的远计数器值拆分成地址部分和数据部分。远计数器值的地址部分能够用于查找匹配的本地计数器值地址。如果远计数器地址和本地计数器地址匹配,则远去偏斜逻辑302能够读本地计数器数据,并且比较本地计数器数据和远计数器数据。
特别地,本地计数器操作逻辑402执行将自由运行的计数器分解为两个部分:地址部分和数据部分。例如,本地计数器操作逻辑402对本地计数器值执行散列函数以确立本地计数器的地址部分(其定义在位置查找RAM 406中的地址)。地址部分充当“时间窗口”,并且用作RAM的地址。来自计数器值的较低位的数据部分表现得像标记期间计数器,并且被存储为数据。因此,如果它占用16个周期来发送TS,并且自由运行计数器是8个位,则较高4个位被用作时间窗口,并且较低4个位被用作在标记期间内的时间。应注意的是,在一个实施例中,为避免位置混淆,在确定最大偏斜(在此示例中对于8个时钟)中仅认为一半的标记期间是有效的。在不偏离本公开的范围的情况下,备选实施例可使用更多或更少的标记期间。
比较器逻辑408能够是存储逻辑400的部分,或者能够是远去偏斜逻辑302的部分,或者能够是另一逻辑(未示出)的部分。
如图4中所示,比较器逻辑408使用本地计数器数据作为第一输入,并且使用远计数器值作为第二输入。比较器逻辑408比较本地计数器数据值和远计数器数据值。如果本地计数器数据值小于远计数器数据值(即,本地计数器数据值被认为在时间上早于远计数器数据值),则远去偏斜逻辑302能够向本地去偏斜逻辑310输出停顿命令(本地去偏斜逻辑领先于远去偏斜逻辑)。本地去偏斜逻辑310能够将本地通道(例如,本地通道群组212)停顿等于本地计数器数据值与远计数器数据值之间的差(计数差)的时间量。如果在本地计数器数据值与远计数器数据值之间不存在差,则通道群组212和232被认为是经过去偏斜和时间同步,并且因此停顿(或进一步停顿)通道可不被需要。
在一些实施例中,如果比较器逻辑408确定本地计数器数据值大于远计数器数据值(即,本地计数器数据值被认为在时间上迟于远计数器数据值),则比较器逻辑408可什么也不做。但如上所述的相同操作发生在远程逻辑组221处,这将确定远程通道群组232应被停顿。在一些实施例中,远去偏斜逻辑302能够向远程逻辑组221发送计数差(或delta),如果需要的话,远程逻辑组221能够使用它来停顿远程通道群组232。
图5-A是根据本公开的实施例,用于对异类通道进行去偏斜的过程流程图。方法500能够由处理逻辑执行,处理逻辑能够包括硬件(例如,电路***、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或其组合。在一个实施例中,方法500由远去偏斜逻辑执行,诸如图3的远去偏斜逻辑302。
在框502,处理逻辑接收完成对通道群组的每个通道进行去偏斜的指示,这确保在通道群组内的所有通道是同步的,并且它们准备好跨诸如PCIe链路等的链路进行传送。在框504,处理逻辑接收标记,该标记指示本地去偏斜逻辑已查看在通道群组内业务的所有通道。
在框506,处理逻辑接收本地计数器值。在接收到标记并且本地计数器值在阈值内(例如,在训练序列的长度内)时,处理逻辑存储本地计数器值,并且向远程逻辑组传送本地计数器值(框508)。
在框510,处理逻辑等待,直至它接收到远计数器值。在处理逻辑接收到远计数器值并且该计数器到期(512)时,处理逻辑能够执行计数器值的比较以确定在通道群组之间的时间差。远计数器值能够被散列成两个分量:远计数器地址部分和远计数器数据部分(514)。远计数器地址部分能够被用来从存储逻辑查找匹配的本地计数器地址部分。当在远计数器地址与本地计数器地址之间存在匹配(516)时,存储逻辑能够将本地计数器数据部分输出到比较器中。远计数器数据部分也被输入比较器中。比较器仅比较远计数器值和本地计数器值的数据部分(518)。如果在本地计数器地址部分与远计数器地址部分之间不存在匹配,则存储逻辑能够通过接收新计数器值并清空存储逻辑,采用在(506)的过程来重新开始。在本地计数器地址部分与远计数器地址部分之间缺乏匹配意指在本地通道群组和远程通道群组的位置中的差太大而无法执行停顿。处理逻辑能够等待,直至处理逻辑接收到彼此在大小上更接近的计数器值,因此是数据部分来表示通道群组之间的在时间上的差。使用表示时间差的计数器值的部分(即,数据部分)提高了在计数器值之间比较的速度,同时也降低了来自循环停顿的错误。
本地计数器值被使用散列函数进行散列,并且被存储为两部分:地址部分被存储和用于查找目的,并且数据部分被存储和用于与远计数器数据值的比较。在一些实现中,散列函数由计数器操作逻辑执行。本地计数器操作逻辑向存储逻辑发送本地计数器值的地址部分和数据部分(例如,在散列表中)。远程计数器操作逻辑对远程计数器值执行散列,并且向存储逻辑发送地址部分以便查找对应的本地地址部分值。如果存在匹配的本地地址部分,则对应的本地数据部分被发送到比较器逻辑。远程计数器操作逻辑直接向比较器逻辑发送远程数据部分。
现在转到图5-B,图5B是根据本公开的实施例,用于对异类通道进行去偏斜的过程 流程图5A的继续。用于本地逻辑组的比较器逻辑确定本地计数器数据部分是否小于远计数器数据部分(520)。如果本地计数器数据部分小于远计数器数据部分,则本地通道被停顿(522),因为本地通道将被理解成在时间上领先于远通道。比较器能够输出停顿指令和计数器差值两者,差值指示用于停顿的时间量。
比较器逻辑能够确定本地计数器数据部分是否大于远计数器数据部分(524)。如果本地计数器数据部分大于远计数器数据部分,则去偏斜逻辑可什么也不做,因为去偏斜将在远程逻辑组进行(526)。在一些实施例中,去偏斜逻辑能够发送信号,诸如计数器delta,或者如果本地计数器数据部分等于远计数器数据部分,则去偏斜被认为完成(528)。
图6是根据本公开的实施例,用于在异类通道群组之间进行去偏斜的状态图600。各种状态由上述逻辑执行,所述逻辑除其它逻辑还包含本地去偏斜逻辑、远去偏斜逻辑、存储逻辑、比较器逻辑和计数器操作逻辑。
1)在本地通道群组被去偏斜时,初始状态Not_Locally_Deskewed(未_本地_去偏斜)602转变到下一状态(Sync Far(同步_远))。
2)在Sync_Far 604中,在本地计数器位于以时钟循环为单位的0与TS的长度之间并且本地标记被看到的任何时间,向远程逻辑组发送本地计数器值的副本。例如,如果训练序列(TS)占用16个时钟,则在TS的开始被看到并且本地计数器值位于0与16之间(包含0和16)时,本地计数器值被发送到远程逻辑组。在来自远程逻辑组的更新已被接收到,并且本地计数器达到其最大值时,Sync_Far状态604转变到下一状态。
3)Delay(延迟)状态606被用于清空来自以前循环的在RAM中存储的位置历史,并且冲刷跨通信接口到达的所有飞行中(in flight)更新。此状态确保比较来自本地和远程逻辑组中的每个的当前数据。
4)Far_Deskew_Idle(远_去偏斜_闲置)608是远去偏斜逻辑在它得到匹配存储的本地计数器值地址部分的远计数器值地址部分之前所停在的状态。一旦看到匹配的更新,便比较来自本地计数器值和远(远程)计数器值的数据部分。如果本地计数器值被认为在时间上早于远计数值,则进入Far_Deskew_Adjust(远_去偏斜_调整)610状态。(作为示例,如果比较器确定本地计数器值的数据部分小于远计数器值的数据部分,则进入Far_Deskew_Adjust 610状态。在Far_Deskew_Idle状态中,确定计数器差或delta。)如果本地计数器值被认为迟于远计数器值,则此状态被保持。如果两个计数值相等,则去偏斜完成,并且进入Deskewed(已去偏斜)状态。
5)Far_Deskew_Adjust 610用于将本地通道停顿计算的delta。一旦此停顿完成,控制便返回到Far_Deskew_Idle状态608。
6)在本地和远(远程)计数相等,并且通道群组被认为已去偏斜时,Deskewed状态612是有效的。
以下示例关于其它实施例。
一个或多个实施例可提供用来对异类通道群组进行去偏斜的设备、***、机器可读存储装置、机器可读介质、方法、以及基于硬件和/或软件的逻辑(例如,结合共享存储器控制器被实现)。
在示例1中,用于对数据的异类通道群组进行去偏斜的方法可包含:接收第一计数器值,第一计数器值表示被去偏斜的数据的第一流的位置;接收第二计数器值,第二计数器值表示被去偏斜的数据的第二流的一部分;基于使用第二计数器值的地址部分对第一计数器值的地址部分的查找,获得第一计数器值的数据部分;比较第一计数器值的数据部分和第二计数器值的数据部分;以及在第一计数器值的数据部分小于第二计数器值的数据部分时,停顿被去偏斜的数据的第一流。
在示例2中,示例1的主题也可包含在第二计数器值的数据部分小于第一计数器值的数据部分时向被去偏斜的数据的第二流发送计数器值差,计数器值差表示在第一计数器值的数据部分与第二计数器值的数据部分之间的差,并且指示被去偏斜的数据的第二流应被停顿。
在示例3中,示例1的主题能够也包含在第一计数器值的数据部分等于第二计数器值的数据部分时,发信号通知被去偏斜的数据的第一流和被去偏斜的数据的第二流被时间对齐。
在示例4中,示例1的主题能够也包含标识在第一计数器值的数据部分与第二计数器值的数据部分之间的delta,并且基于该delta,停顿被去偏斜的数据的第一流。
在示例5中,示例1、2、3或4中的任何示例的主题能够也包含响应于停顿被去偏斜的数据的第一流,清空第一计数器值的地址部分和第一计数器值的数据部分的存储逻辑,或者向被偏斜的数据的第二流发送计数器值差。
在示例6中,去偏斜设备可包含至少部分地在硬件上实现的第一计数器操作逻辑,其用来接收表示被去偏斜的数据的第一流的位置的第一计数器值,并且传送第一计数器值的地址部分和第一计数器值的数据部分。去偏斜设备也可包含至少在硬件上实现的第二计数器操作逻辑,其用来接收表示被去偏斜的数据的第二流的位置的第二计数器值,并且将第二计数器值分开成第二计数器值的地址部分和第二计数器值的数据部分。去偏斜设备也可包含至少在硬件上实现的存储器逻辑,其用来基于第二计数器值的地址部分,查找第一计数器值的地址部分。去偏斜设备也可包含至少在硬件中实现的比较器逻辑,其用来比较第一计数器值的数据部分和第二计数器值的数据部分,并且输出在第一计数器值的数据部分与第二计数器值的数据部分之间的计数差,该计数差表示在被去偏斜的数据的第一流与被去偏斜的数据的第二流之间的偏斜。
在示例7中,示例6的比较器逻辑也可a)在第二计数器值的数据部分小于第一计数器值的数据部分时向被去偏斜的数据的第二流发送计数器值差,计数器值差指示被去偏斜的数据的第二流应被停顿;和/或b)在第一计数器值的数据部分等于第二计数器值的数据部分时,发信号通知被去偏斜的数据的第一流和被去偏斜的数据的第二流被时间对齐;和/或c)标识在第一计数器值的数据部分与第二计数器值的数据部分之间的delta,并且基于该delta,停顿被去偏斜的数据的第一流。
在示例8中,示例6或7中的任何示例的比较器逻辑也可包含至少在硬件上实现的逻辑,其用来将第一计数器值的地址部分与第一计数器值的数据部分分开,并且其中第一计数器操作逻辑包括至少在硬件上实现的进一步逻辑,其用来将第二计数器值分开成第二计数器值的地址部分和第二计数器值的数据部分。第一计数器值的数据部分能够与第一计数器值的地址部分被存储在一起,并且第二计数器值能够用于查找第一计数器值的地址部分以标识第一计数器值的数据部分。
在示例9中,设备可包含至少在硬件中实现的数据存储逻辑,其用来存储第一计数器值的地址部分和第一计数器值的数据部分,第一计数器值表示数据的第一流的偏斜。设备也可包含至少在硬件中实现的去偏斜控制逻辑,其用来比较第一计数器值的数据部分和第二计数器值的数据部分,第二计数器值表示数据的第二流的偏斜,并且基于第一计数器值的数据部分和第二计数器值的数据部分的比较,停顿数据的第一流或数据的第二流之一。
在示例10中,示例9的主题也可包含至少部分地在硬件中实现的本地计数器算子逻辑,其用来接收第一计数器值,并且向数据存储逻辑输出第一计数器值的地址部分和第一计数器值的数据部分。
在示例11中,示例9或10中的任何示例的主题也可包含至少部分在硬件中实现的远计数器算子逻辑,其用来接收第二计数器值,并且向数据存储逻辑输出第二计数器值的地址部分,以及向比较器逻辑输出第二计数器值的数据部分。
在示例12中,示例9、10或11中的任何示例的主题可进一步包含至少部分在硬件中实现的比较器逻辑,其用来比较第一计数器值的数据部分和第二计数器值的数据部分,并且基于第一计数器值的数据部分和第二计数器值的数据部分的比较,向去偏斜控制逻辑输出停顿信号。
在示例13中,示例9、10、11或12中的任何示例的主题也可包含比较器逻辑,其用来接收来自数据存储逻辑的第一计数器值的数据部分,并且接收来自远计数器算子逻辑的第二计数器值的数据部分。
在示例14中,用于对异类通道群组进行去偏斜的***可包含至少部分在硬件中实现的数据存储逻辑,其用来基于第二计数器值的地址部分,查找第一计数器值的地址部分,第一计数器值表示数据的第一流在时间中的位置,并且第二计数器值表示数据的第二流在时间中的位置,以及基于查找,输出第一计数器值的数据部分。***也可包含至少部分在硬件中实现的去偏斜控制逻辑,其用来比较第一计数器值的数据部分和第二计数器值的数据部分,并且基于比较,停顿数据的第一流。
在示例15中,示例14的主题也可包含去偏斜控制逻辑,其在第一计数器值的数据部分小于第二计数器值的数据部分时,停顿数据的第一流。
在示例16中,示例14或15中的任何示例的主题可包含去偏斜控制逻辑,其根据在第一计数器值的数据部分与第二计数器值的数据部分之间的计数差,停顿数据的第一流。
在示例17中,示例14、15或16中的任何示例的主题也可包含至少部分在硬件中实现的计数器,其用来向去偏斜控制逻辑输出运行计数器值,运行计数器值用于标识数据的第一流的位置。
在示例18中,示例14、15、16或17中的任何示例的主题也可包含去偏斜控制逻辑,其包括进一步的逻辑用来基于从计数器的所接收的运行计数器值,标识第一计数器值,并且在接收到表示被去偏斜的数据的第一流的标记时和在运行计数器值到期时,向数据存储逻辑传送第一计数器值。
在示例19中,示例14、15、16、17或18中的任何示例的主题也可包含至少部分在硬件中实现的第一计数器算子逻辑,其用来接收来自去偏斜控制逻辑的第一计数器值、将第一计数器值的地址部分与第一计数器值的数据部分分开、并且向数据存储逻辑传送第一计数器值的地址部分和第一计数器值的数据部分。第一计数器值的地址部分可用于在数据存储逻辑中查找第一计数器值的数据部分。
在示例20中,示例14、15、16、17、18或19中的任何示例的主题也可包含至少部分在硬件中实现的第二计数器算子逻辑,其用来接收来自去偏斜控制逻辑的第二计数器值、将第二计数器值的地址部分与第二计数器值的数据部分分开(其中第二计数器值的地址部分被用于在数据存储逻辑中查找第一计数器值的地址部分)、向数据存储逻辑传送第二计数器值的地址部分、以及向比较器逻辑传送第二计数器值的数据部分。
在示例21中,示例14、15、16、17、18、19或20中的任何示例的主题也可包含比较器逻辑,其用来比较第一计数器值的数据部分和第二计数器值的数据部分。
在示例22中,示例14、15、16、17、18、19、20或21中的任何示例的主题也可包含比较器逻辑,其用来在第一计数器值的数据部分和第二计数器值的数据部分相等时,向去偏斜控制逻辑输出第一流和第二流被去偏斜的指示。
在示例23中,示例14、15、16、17、18、19、20、21或22中的任何示例的主题也可包含比较器逻辑,其用来在第一计数器值的数据部分小于第二计数器值的数据部分时,向去偏斜控制逻辑输出数据的第一流应被停顿的指示,并且输出在第一计数器值的数据部分与第二计数器值的数据部分之间的计数差。
在示例24中,有形地实施在非暂态计算机可读介质上的计算机程序产品包含指令,所述指令在被执行时可操作以:接收第一计数器值,第一计数器值表示被去偏斜的数据的第一流的位置;接收第二计数器值,第二计数器值表示被去偏斜的数据的第二流的位置;基于使用第二计数器值的地址部分对第一计数器值的地址部分的查找,获得第一计数器值的数据部分;比较第一计数器值的数据部分和第二计数器值的数据部分;以及在第一计数器值的数据部分小于第二计数器值的数据部分时,停顿被去偏斜的数据的第一流。
在示例25中,示例24的主题也可包含在第二计数器值的数据部分小于第一计数器值的数据部分时向被去偏斜的数据的第二流发送计数器值差,计数器值差表示在第一计数器值的数据部分与第二计数器值的数据部分之间的差,并且指示被去偏斜的数据的第二流应被停顿。
在示例26中,示例24的主题能够也包含在第一计数器值的数据部分等于第二计数器值的数据部分时,发信号通知被去偏斜的数据的第一流和被去偏斜的数据的第二流被时间对齐。
在示例27中,示例24的主题能够也包含标识在第一计数器值的数据部分与第二计数器值的数据部分之间的delta,并且基于该delta,停顿被去偏斜的数据的第一流。
在示例28中,示例24、25、26或27中的任何示例的主题能够也包含响应停顿被去偏斜的数据的第一流,清空第一计数器值的地址部分和第一计数器值的数据部分的存储逻辑,或者向被偏斜的数据的第二流发送计数器值差。
在示例29中,用于对数据的异类通道进行去偏斜的设备包含:用于存储第一计数器值的地址部分和第一计数器值的数据部分的部件,第一计数器值表示数据的第一流的偏斜;用于比较第一计数器值的数据部分和第二计数器值的数据部分的部件,第二计数器值表示数据的第二流的偏斜;以及用于基于第一计数器值的数据部分和第二计数器值的数据部分的比较,停顿数据的第一流或数据的第二流之一的部件。
在示例30中,示例29的主题也可包含用于接收第一计数器值,并且用来向数据存储逻辑输出第一计数器值的地址部分和第一计数器值的数据部分的部件。
在示例31中,示例29或30的主题也可包含用于接收第二计数器值,并且用来向数据存储逻辑输出第二计数器值的地址部分以及用来向比较器逻辑输出第二计数器值的数据部分的部件。
在示例32中,示例29、30或31中的任何示例的主题也可包含用于比较第一计数器值的数据部分和第二计数器值的数据部分的部件和用于基于第一计数器值的数据部分和第二计数器值的数据部分的比较,向去偏斜控制逻辑输出停顿信号的部件。
在示例33中,示例29、30、31或32中的任何示例的主题也可包含用于接收来自数据存储逻辑的第一计数器值的数据部分的部件和用于接收来自远计数器算子逻辑的第二计数器值的数据部分的部件。
在示例34中,包含程序指令的非暂态计算机可读介质可促使计算机:接收第一计数器值,第一计数器值表示被去偏斜的数据的第一流的位置;接收第二计数器值,第二计数器值表示被去偏斜的数据的第二流的位置;基于使用第二计数器值的地址部分对第一计数器值的地址部分的查找,获得第一计数器值的数据部分;比较第一计数器值的数据部分和第二计数器值的数据部分;以及在第一计数器值的数据部分小于第二计数器值的数据部分时,停顿被去偏斜的数据的第一流。
在示例35中,示例34的主题还可包含指令,所述指令在被执行时可操作以:在第二计数器值的数据部分小于第一计数器值的数据部分时向被去偏斜的数据的第二流发送计数器值差,计数器值差表示在第一计数器值的数据部分与第二计数器值的数据部分之间的差,并且指示被去偏斜的数据的第二流应被停顿。
在示例36中,示例34的主题还可包含指令,所述指令在被执行时可操作以:在第一计数器值的数据部分等于第二计数器值的数据部分时,发信号通知被去偏斜的数据的第一流和被去偏斜的数据的第二流被时间对齐。
在示例37中,示例34的主题也可包含指令,所述指令在被执行时可操作以:标识在第一计数器值的数据部分与第二计数器值的数据部分之间的delta,并且基于该delta,停顿被去偏斜的数据的第一流。
在示例38中,示例34、35、36或37中的任何示例的主题也可包含响应于停顿被去偏斜的数据的第一流,清空第一计数器值的地址部分和第一计数器值的数据部分的存储逻辑,或者向被偏斜的数据的第二流发送计数器值差。
在示例39中,设备可包括用来执行如任何前面示例中所要求保护的方法的部件。
在示例40中,机器可读存储装置包含机器可读指令,所述指令在被执行时,能够实现方法,或者实现如在任何前面示例中所要求保护的设备。
示例的前面记载可单独地被实现,或者与其它示例一起被实现。
一个互连构造架构包含外设组件互连(PCI)高速(PCIe)架构。PCIe的主要目的是使来自不同供应商的组件和装置能够在开放架构中互操作,从而跨越多个细分市场;客户端(桌面型和移动型)、服务器(标准型和企业型)以及嵌入式和通信装置。PCI高速是为广泛各种的未来计算和通信平台定义的高性能通用I/O互连。一些PCI属性(诸如其的使用模型、加载存储架构和软件接口)已通过其修订版被维持,而之前的并行总线实现已被替换成高度可扩展的完全串行接口。PCI高速的更近版本利用在点对点互连、基于交换的技术和分组化协议中的进步,来输送新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性、以及错误处置是被PCI高速所支持的一些高级特征中的特征。
参见图7,图示了由将一组组件互连的点对点链路构成的构造的一实施例。***700包含耦合到控制器集线器715的处理器705和***存储器710。处理器705包含任何处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器或其它处理器。处理器705通过前端总线(FSB)706耦合到控制器集线器715。在一个实施例中,FSB 706是如下所述的串行点对点互连。在另一实施例中,链路706包含符合不同互连标准的串行差分互连架构。
***存储器710包含任何存储器装置,诸如随机存取存储器(RAM)、非易失性(NV)存储器或可由***700中装置访问的其它存储器。***存储器710通过存储器接口716耦合到控制器集线器715。存储器接口的示例包含双数据率(DDR)存储器接口、双信道DDR存储器接口、以及动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器715是外设组件互连高速(PCIe或PCIE)互连层级中的根集线器、根复合体或根控制器。控制器集线器715的示例包括芯片集、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥、以及根控制器/集线器。术语芯片集通常指两个物理上分开的控制器集线器,即,耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。注意,当前***通常包含与处理器705集成的MCH,而控制器715要以如下所述类似的方式与I/O装置通信。在一些实施例中,通过根复合体715可选地支持对等路由。
这里,控制器集线器715通过串行链路719耦合到交换器/桥720。输入/输出模块717和721(也可称为接口/端口717和721)包含/实现分层协议栈以在控制器集线器715与交换器720之间提供通信。在一个实施例中,多个装置能够被耦合到交换器720。
交换器/桥720将分组/消息从装置725往上游(即,沿层级上行朝向根复合体)路由到控制器集线器715,并且从处理器705或***存储器710往下游(即,沿层级下行远离根控制器)路由到装置725。在一个实施例中,交换器720被称为多个虚拟PCI到PCI桥装置的逻辑的组合件。装置725包含要耦合到电子***的任何内部或外部装置或组件,诸如I/O装置、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVDROM、监视器、打印机、鼠标、键盘、路由器、便携式存储装置、火线(Firewire)装置、通用串行总线(USB)装置、扫描仪及其它输入/输出装置。在PCIe行话中,诸如装置经常被称为端点。虽然未具体示出,但装置725可包含PCIe到PCI/PCI-X桥以支持遗留或其它版本PCI装置。PCIe中的端点装置通常被归类为遗留PCIe或根复合体集成端点。
图形加速器730也通过串行链路732被耦合到控制器集线器715。在一个实施例中,图形加速器730被耦合到MCH,MCH被耦合到ICH。交换器720和相应地I/O装置725然后被耦合到ICH。I/O模块731和718也要实现分层协议栈以在图形加速器730与控制器集线器715之间通信。类似于上面的MCH讨论,图形控制器或图形加速器730本身可被集成在处理器705中。
转到图8,图示了分层协议栈的一实施例。分层协议栈800包含任何形式的分层通信栈,诸如快速路径互连(QPI)栈、PCie栈、下一代高性能计算互连栈或其它分层栈。虽然下面紧跟的参考图7-10的讨论与PCIe栈有关,但相同概念可应用于其它互连栈。在一个实施例中,协议栈800是PCIe协议栈,其包含事务层805、链路层810和物理层820。诸如图1中的接口717、718、721、722、726和731的接口可被表示为通信协议栈800。作为通信协议栈的表示也可指实现/包含协议栈的模块或接口。
PCI高速使用分组在组件之间传递信息。分组在事务层805和数据链路层810中被形成以将信息从传送组件携带到接收组件。在传送的分组流过其余层时,它们被扩展带有在那些层处置分组所必需的额外信息。在接收侧发生反向过程,并且分组从它们的物理层820表示被变换成数据链路层810表示,并且最终(对于事务层分组)被变换成能够被接收装置的事务层805处理的形式。
事务层
在一个实施例中,事务层805要提供在装置的处理核与互连架构之间的接口,诸如数据链路层810和物理层820。在这点上,事务层805的主要职责是分组(即,事务层分组或TLP)的组装和分解。事务层805一般管理对于TLP的基于信用的流控制。PCIe实现被拆分的事务,即,带有按时间分开的请求和响应的事务,从而在目标装置聚集用于响应的数据时,允许链路携带其它业务。
另外,PCIe利用基于信用的流控制。在此方案中,装置广告用于事务层805中每个接收缓冲器的信用的初始量。在链路的相对端的外部装置(诸如图1中的控制器集线器115)对每个TLP消耗的信用的数量进行计数。如果事务没有超过信用限制,则事务可被传送。在接收到响应时,恢复信用的量。信用方案的优点在于倘若没有遇到信用限制,则信用返回的等待时间不影响性能。
在一个实施例中,四个事务地址空间包含配置地址空间、存储器地址空间、输入/输出地址空间、以及消息地址空间。存储器空间事务包含读请求和写请求中的一个或多个,以向/从存储器映射的位置传递数据。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如,诸如32位地址的短地址格式或诸如64位地址的长地址格式。配置空间事务用于访问PCIe装置的配置空间。到配置空间的事务包含读请求和写请求。消息空间事务(或简称为消息)被定义成支持在PCIe代理器之间的带内通信。
因此,在一个实施例中,事务层805组装分组报头/有效负载806。用于当前分组报头/有效负载的格式可在PCIe规范网站处的PCIe规范中被找到。
快速参考图9,图示了PCIe事务描述符的一实施例。在一个实施例中,事务描述符900是用于携带事务信息的机制。在这点上,事务描述符900支持***中事务的标识。其它潜在使用包含跟踪默认事务排序的修改以及事务与信道的关联。
事务描述符900包含全局标识符字段902、属性字段904和信道标识符字段906。在图示的示例中,全局标识符字段902被描绘为包括本地事务标识符字段908和源标识符字段910。在一个实施例中,全局事务标识符902对于所有未解决的请求是独特的。
根据一个实现,本地事务标识符字段908是由请求代理器生成的字段,并且它对于要求该请求代理器完成的所有未解决请求是独特的。此外,在此示例中,源标识符910独特地标识PCIe层级内的请求者代理器。相应地,与源ID 910一起,本地事务标识符908字段提供对层级域内事务的全局标识。
属性字段904规定事务的特性和关系。在这点上,属性字段904潜在地被用于提供允许事务的默认处置的修改的额外信息。在一个实施例中,属性字段904包含优先级字段912、预留字段914、排序字段916、以及无窥探字段918。这里,优先级子字段912可被发起者修改以给事务指派优先级。预留属性字段914被保持预留以用于将来的或供应商定义的使用。可使用预留属性字段来实现使用优先级或安全性属性的可能的使用模型。
在此示例中,排序属性字段916用于供应可选信息,该可选信息传达可修改默认排序规则的排序类型。根据一个示例实现,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示宽松的排序,其中写能够在相同方向上传递写,并且读完成能够在相同方向上传递写。窥探属性字段918被用于确定事务是否被窥探。如图所示,信道ID字段906标识与事务关联的信道。
链路层
链路层810(也称为数据链路层810)充当在事务层805与物理层820之间的中间级。在一个实施例中,数据链路层810的职责是提供用于在链路的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层810的一侧接受由事务层805组装的TLP,并且应用分组序列标识符811(即,标识号或分组号),计算和应用错误检测码(即,CRC 812),以及将修改的TLP提交到物理层820以用于跨物理到外部装置的传送。
物理层
在一个实施例中,物理层820包含逻辑的子块821和电的子块822以将分组物理地传送到外部装置。这里,逻辑的子块821负责物理层821的“数字”功能。在这点上,逻辑的子块包含用来准备以供物理子块822传送的外出信息的传送部和用来在将接收的信息传递到链路层810前对其进行标识和准备的接收器部。
物理块822包含传送器和接收器。传送器由逻辑的子块821供应符号,传送器将符号串行化并且传送到外部装置上。接收器被供应有来自外部装置的串行化符号,并且其将接收的信号变换成位流。位流被去串行化并且供应到逻辑的子块821。在一个实施例中,8b/10b传送代码被采用,其中传送/接收10位符号。这里,特殊符号被用于将分组与帧823进行成帧。另外,在一个示例中,接收器还提供从进入的串行流恢复的符号时钟。
如上面所陈述的,虽然参照PCIe协议栈的一特定实施例讨论了事务层805、链路层810和物理层820,但分层协议栈不被如此限制。实际上,可包含/实现任何分层协议。作为示例,被表示为分层协议的端口/接口包含:(1)用来组装分组的第一层,即,事务层;用来将分组进行序列化的第二层,即,链路层;以及用来传送分组的第三层,即,物理层。作为特定示例,利用了公用标准接口(CSI)分层协议。
接下来参照图10,图示了PCIe串行点对点构造的一实施例。虽然图示了PCIe串行点对点链路的一实施例,但由于串行点对点链路包含用于传送串行数据的任何传送路径,故其并不被如此限制。在示出的实施例中,基本PCIe链路包含两个低电压差分驱动信号对:传送对1006/1011和接收对1012/1007。相应地,装置1005包含用来将数据传送到装置1010的传送逻辑1006和用来接收来自装置1010的数据的接收逻辑1007。换言之,在PCIe链路中包含两个传送路径(即,路径1016和1017)和两个接收路径(即,路径1018和1019)。
传送路径指用于传送数据的任何路径,诸如传送线路、铜线路、光学线路、无线通信信道、红外通信链路或其它通信路径。在诸如装置1005和装置1010的两个装置之间的连接被称为链路,诸如链路415。链路可支持一个通道——每个通道表示一组差分信号对(一对用于传送,一对用于接收)。为了对带宽进行缩放,链路可聚合多个通道(表示为xN),其中N是任何支持的链路宽度,诸如1、2、4、8、12、16、32、64或更宽。
差分对指传送差分信号的两个传送路径,诸如线路416和417。作为示例,在线路416从低电压电平切换到高电压电平,即上升沿时,线路417从高逻辑电平驱动到低逻辑电平,即,下降沿。差分信号潜在地展示更好的电特性,诸如更佳的信号完整性(即,交叉耦合)、电压过冲/下冲、振铃等。这允许更好的定时窗口,其能够实现更快的传送频率。
注意,上述设备、方法和***可在如前面提及的任何电子装置或***中实现。作为特定图示,下面的图提供用于利用如本文中所述的发明的示例***。在下面的***被更详细地描述时,多个不同互连被公开、描述、并从上面的讨论中被再访问。而且,正如容易显而易见的,上述进步可被应用到那些互连、构造或架构中的任何互连、构造或架构。
现在参照图11,示出了多核处理器的一实施例的框图。如图11的实施例中所示,处理器1100包括多个域。具体而言,核域1130包含多个核1130A-1130N,图形域1160包含具有媒体引擎1165的一个或多个图形引擎、以及***代理器域1110。
在各种实施例中,***代理器域1110处置功率控制事件和功率管理,使得域1130和1160的各个单元(例如,核和/或图形引擎)可独立地被控制,以根据在给定单元中发生的活动(或不活动)来动态地按照适当的功率模式/级别(例如,活动、加速(turbo)、睡眠、休眠、深度睡眠、或其它高级的配置功率接口类状态)进行操作。域1130和1160中的每个可按照不同的电压和/或功率进行操作,并且此外,域内的各个单元各自潜在地按照独立的频率和电压进行操作。注意,尽管仅示出了三个域,但被理解的是,本发明的范围在这点上不被限制,并且另外的域可在其它实施例中存在。
如图所示,除各种执行单元和另外的处理元件以外,每个核1330进一步包含低级别高速缓存。这里,各个核相互耦合,并且被耦合到由末级高速缓存(LLC)1140A-1140N的多个单元或片段形成的共享高速缓存存储器;这些LLC通常包含存储和高速缓存控制器功能性,并且在核之间以及潜在地也在图形引擎之间被共享。
如图所见,环形互连1150将核耦合在一起,并且经由多个环形站点1152A-1152N在核域1130、图形域1160和***代理器电路1110之间提供互连,其中每个环形站点处于核和LLC片段之间的耦合。如图11中所见,互连1150用于携带各种信息,这包含地址信息、数据信息、确认信息、以及窥探/无效信息。虽然图示的是环形互连,但可利用任何已知的管芯上互连或构造。作为说明性的示例,一些上面讨论的构造(例如,另一管芯上互连、Intel芯片上***构造(IOSF)、高级微控制器总线架构(AMBA)互连、多维网状构造或其它已知互连架构)可以按类似方式被利用。
如进一步所描绘的,***代理器域1110包含显示器引擎1112,其用于提供对关联显示器的控制以及到关联显示器的接口。***代理器域1110可包含其它单元,诸如:集成存储器控制器1120,其为到***存储器(例如,利用多个DIMM实现的DRAM)的接口提供保证;一致性逻辑1122,其用来执行存储器一致性操作。可存在多个接口以使在处理器与其他电路***之间的互连能够实现。例如,在一个实施例中,提供至少一个直接媒体接口(DMI)1116接口,以及一个或多个PCIeTM接口1114。显示器引擎和这些接口一般经由PCIeTM桥1118耦合到存储器。更进一步地,为了给在其它代理器(诸如另外的处理器或其它电路***)之间的通信提供保证,一个或多个其它接口(例如,Intel®快速路径互连(QPI)构造)可被提供。
现在参见图12,示出了代表性核的框图;具体地,核(诸如来自图11的核1130)的后端的逻辑的块。一般而言,图12中示出的结构包括无序处理器,其具有前端单元1270,用于取进入的指令、执行各种处理(例如缓存、解码、分支预测等)并向前将指令/操作传递到无序(OOO)引擎1280。OOO引擎1280在被解码的指令上执行进一步处理。
具体而言,在图12的实施例中,无序引擎1280包含分配单元1282,其用来从前端单元1270接收可以采用一个或多个微指令或微操作(uop)形式的解码指令,并将它们分配到适当的资源,诸如寄存器等。接着,指令被提供到预留站1284,预留站1284预留资源并将它们调度用于在多个执行单元1286A-1286N之一上执行。可存在各种类型的执行单元,这除了别的之外包含例如算术逻辑单元(ALU)、加载和存储单元、向量处理单元(VPU)、浮点执行单元。来自这些不同的执行单元的结果被提供到重排序缓冲器(ROB)1288,其得到未排序的结果并将它们返回到正确的程序顺序。
仍参考图12,注意,前端单元1270和无序引擎1280均耦合到不同级的存储器层级。具体示出的是指令级高速缓存1272,其进而被耦合到中级高速缓存1276,该中级高速缓存1276进而耦合到末级高速缓存1295。在一个实施例中,末级高速缓存1295被实现在芯片上(有时称为非核)单元1290中。作为示例,单元1290类似于图11的***代理器1110。如上面所讨论的,非核1290与***存储器1299(其在图示的实施例中经由ED RAM来实现)通信。还要注意,无序引擎1280内的各种执行单元1286与第一级高速缓存1274通信,第一级高速缓存1274也与中级高速缓存1276通信。还要注意,另外的核1230N-2 — 1230N能够耦合到LLC1295。虽然在图12的实施例中按照此高级别示出,但被理解的是,可存在各种变更和另外的组件。
转到图13,图示了带有包含执行指令的执行单元的处理器所形成的示范计算机***的框图,其中一个或多个互连实现根据本发明的一个实施例的一个或多个特征。根据本发明,诸如在本文中描述的实施例中,***1300包含组件,诸如处理器1302,以采用包含逻辑的执行单元来执行针对过程数据的算法。***1300表示基于从加利福尼亚州圣克拉拉的英特尔公司可获得的PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理***,尽管其它***(包含具有其它微处理器、工程工作站、机顶盒等的PC)也可被使用。在一个实施例中,样本***1300执行从华盛顿雷德蒙德的微软公司可获得的某个版本的WindowsTM操作***,尽管其它操作***(例如,UNIX和Linux)、嵌入式软件、和/或图形用户接口也可被使用。因此,本发明的实施例不限于硬件电路***和软件的任何特定组合。
实施例不限于计算机***。本发明的备选实施例能够在诸如手持式装置和嵌入式应用的其它装置中使用。手持式装置的一些示例包含蜂窝电话、因特网协议装置、数字摄像机、个人数字助理(PDA)及手持式PC。嵌入式应用能够包含微控制器、数字信号处理器(DSP)、芯片上***、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换器或能够根据至少一个实施例执行一个或多个指令的任何其它***。
在此图示的实施例中,处理器1302包含一个或多个执行单元1308用以实现用来执行至少一个指令的算法。一个实施例可在单处理器桌面计算机或服务器***的上下文中被描述,但备选实施例可被包含在多处理器***中。***1300是‘集线器’***架构的示例。计算机***1300包含用来处理数据信号的处理器1302。作为一个说明性示例,处理器1302包含复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集的组合的处理器、或诸如例如数字信号处理器的任何其它处理器装置。处理器1302被耦合到处理器总线1310,处理器总线1310在处理器1302与***1300中的其它组件之间传送数据信号。***1300的元件(例如,图形加速器1312、存储器控制器集线器1316、存储器1320、I/O控制器集线器1324、无线收发器1326、闪速BIOS 1328、网络控制器1334、音频控制器1336、串行扩展端口1338、I/O控制器1340等)执行熟悉本领域的技术人员所熟知的其常规功能。
在一个实施例中,处理器1302包含1级(L1)内部高速缓存存储器1304。取决于架构,处理器1302可具有单个内部高速缓存或多级的内部高速缓存。取决于具体实现和需要,其它实施例包含内部和外部高速缓存二者的组合。寄存器堆1306用来在各种寄存器中存储不同类型的数据,各种寄存器包含整数寄存器、浮点寄存器、向量寄存器、分组寄存器(banked register)、影子寄存器、检查点寄存器、状态寄存器和指令指针寄存器。
包含用来执行整数和浮点运算的逻辑的执行单元1308也驻留在处理器1302中。在一个实施例中,处理器1302包含微代码(ucode)ROM以存储微代码,其在被执行时,将执行用于某些宏指令的算法或者处置复杂情形。这里,微代码是潜在可更新的,来为处理器1302处置逻辑错误/修复。对于一个实施例,执行单元1308包含用来处置打包的指令集1309的逻辑。通过在通用处理器1302的指令集中包含打包的指令集1309,连同执行指令的关联电路,由许多多媒体应用使用的操作可在通用处理器1302中使用打包的数据来被执行。因此,通过使用处理器的数据总线的完全宽度来用于在打包的数据上执行操作,许多多媒体应用被加速和更高效地执行。这潜在地消除了跨处理器的数据总线传送数据的更小单元以一次一个数据元素地执行一个或多个操作的需要。
执行单元1308的备选实施例也可在微控制器、嵌入式处理器、图形装置、DSP和其它类型的逻辑电路中被使用。***1300包含存储器1320。存储器1320包含动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、闪速存储器装置或其它存储器装置。存储器1320存储要被处理器1302执行的数据信号所表示的指令和/或数据。
注意,可在图13中图示的一个或多个互连上利用本发明的任何前面提及的特征或方面。例如,用于耦合处理器1302的内部单元的管芯上互连(ODI)(未被示出)实现上述的本发明的一个或多个方面。或者,本发明关联于处理器总线1310(例如,Intel快速路径互连(QPI)或其它已知高性能计算互连)、到存储器1320的高带宽存储器路径1318、到图形加速器1312的点对点链路(例如,外设组件互连高速(PCIe)兼容构造)、控制器集线器互连1322、I/O或用于耦合其余图示的组件的其它互连(例如,USB、PCI、PCIe)。此类组件的一些示例包含音频控制器1336、固件集线器(闪速BIOS)1328、无线收发器1326、数据存储装置1324、含有用户输入和键盘接口1342的遗留I/O控制器1310、诸如通用串行总线(USB)的串行扩展端口1338、以及网络控制器1334。数据存储装置1324能够包括硬盘驱动器、软盘驱动器、CD-ROM装置、闪速存储器装置或其它大容量存储装置。
现在参见图14,示出了根据本发明的一实施例的第二***1400的框图。如图14中所示,多处理器***1400是点对点互连***,并且包含经由点对点互连1450耦合的第一处理器1470和第二处理器1480。处理器1470和1480中的每个可以是某一版本的处理器。在一个实施例中,1452和1454是串行、点对点一致互连构造的部分,诸如Intel的快速路径互连(QPI)架构。因此,本发明可在QPI架构内被实现。
尽管采用只两个处理器1470、1480来被示出,但要被理解的是,本发明的范围不被如此限制。在其它实施例中,在给定处理器中可存在一个或多个另外的处理器。
处理器1470和1480被示出为分别包含集成存储器控制器单元1472和1482。处理器1470还包含作为其总线控制器单元的部分的点对点(P-P)接口1476和1478;类似地,第二处理器1480包含P-P接口1486和1488。处理器1470、1480可使用P-P接口电路1478、1488,经由点对点(P-P)接口1450交换信息。如图14中所示,IMC 1472和1482将处理器耦合到相应存储器,即,存储器1432和存储器1434,这些存储器可以是本地附连到相应处理器的主存储器的部分。
处理器1470、1480各自使用点对点接口电路1476、1494、1486、1498,经由各个P-P接口1452、1454与芯片集1490交换信息。芯片集1490也沿高性能图形互连1439,经由图形接口1492与高性能图形电路1438交换信息。
共享高速缓存(未示出)可被包含在任一处理器中或者在两个处理器外;但经由P-P互连与处理器连接,使得如果处理器被置于低功率模式中,则任一或两个处理器的本地高速缓存信息可被存储在共享高速缓存中。
芯片集1490可经由接口1496被耦合到第一总线1416。在一个实施例中,第一总线1416可以是外设组件互连(PCI)总线,或诸如PCI高速总线或另一第三代I/O互连总线的总线,尽管本发明的范围不被如此限制。
如图14中所示,各种I/O装置1414与将第一总线1416耦合到第二总线1420的总线桥1418一起被耦合到第一总线1416。在一个实施例中,第二总线1420包含低引脚计数(LPC)总线。在一个实施例中,各种装置被耦合到第二总线1420,包含例如键盘和/或鼠标1422、通信装置1427和诸如磁盘驱动器或通常包含指令/代码和数据1430的其它大容量存储装置的存储单元1428。此外,音频I/O 1424被示为耦合到第二总线1420。注意,其它架构是可能的,其中所包含的组件和互连架构不同。例如,***可实现多点分支总线或其它此类架构,而不是图14的点对点架构。
图15
现在参见图15,图示了根据本发明的一实施例的计算机***中存在的组件的框图。如图15中所示,***1500包含组件的任何组合。这些组件可被实现为在计算机***中适配的IC、其部分、离散电子装置、或其它模块、逻辑、硬件、软件、固件、或其组合,或者实现为以其它方式在计算机***的机壳内并入的组件。还要注意,图15的框图旨在示出计算机***的许多组件的高级别视图。然而,要理解的是,示出的一些组件可被忽略,另外的组件可存在,并且示出的组件的不同布置可出现在其它实现中。因此,上述的本发明可在图示或下面描述的互连中的一个或多个互连的任何部分中被实现。
如图15中所见,在一个实施例中,处理器1510包含微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其它已知处理元件。在图示的实现中,处理器1510充当用于与***1500的各种组件中的许多组件通信的主处理单元和中央集线器。作为一个示例,处理器1500被实现为芯片上***(SoC)。作为特定的说明性示例,处理器1510包含基于Intel®Architecture CoreTM的处理器,如i3、i5、i7或从加利福尼亚州圣克拉拉英特尔公司可获得的另一此类处理器。然而,理解的是,诸如从加利福尼亚州圣尼威尔的Advanced Micro Devices,Inc.(AMD)可获得的其它低功率处理器、来自加利福尼亚州圣尼威尔的MIPS Technologies,Inc.的基于MIPS的设计、从ARM Holdings, Ltd.或其的客户或他们的受许可方或采用者的被许可的基于ARM的设计可改为存在于其它实施例中,诸如Apple A5/A6处理器、Qualcomm Snapdragon处理器或TI OMAP处理器。注意,此类处理器的许多客户版本被修改和变化;然而,它们可支持或识别执行由处理器许可方所阐明的定义算法的具体指令集。这里,微架构实现可以不同,但是处理器的架构功能通常是一致的。关于在一个实现中的处理器1510的架构和操作的某些细节将在下面被进一步讨论以提供说明性示例。
在一个实施例中,处理器1510与***存储器1515通信,作为说明性示例,其在一实施例中能够经由多个存储器装置被实现,以为给定量的***存储器提供保证。作为示例,存储器能够是根据联合电子装置工程委员会(JEDEC)基于低功率双数据速率(LPDDR)的设计,诸如是根据JEDEC JESD 209-2E(2009年4月公布)的当前LPDDR2标准,或是将对LPDDR2提供扩展以增大带宽的被称为LPDDR3或LPDDR4的下一代LPDDR标准。在各种实现中,各个存储器装置可具有不同的封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四侧管芯封装(13P)。在一些实施例中,这些装置可被直接焊接到母板上,以提供更低概况解决方案,而在其它实施例中,装置被配置为一个或多个存储器模块,这些模块进而通过给定连接器被耦合到母板。而且当然,其它存储器实现是可能的,诸如其它类型的存储器模块,例如不同种类的双列直插式存储器模块(DIMM),其包含但不限于microDIMM、MiniDIMM。在一具体说明性实施例中,存储器的大小在2GB与16GB之间,并且可被配置为DDR3LM封装或LPDDR2或LPDDR3存储器(其经由球栅阵列(BGA)被焊接到母板上)。
为对诸如数据、应用、一个或多个操作***等的信息的持久存储提供保证,大容量存储装置1520也可耦合到处理器1510。在各种实施例中,为了能够实现更薄和更轻的***设计以及改进***响应性,此大容量存储装置可经由SSD被实现。然而,在其它实施例中,大容量存储装置可主要使用硬盘驱动器(HDD)来实现,其中较小量的SSD存储装置充当SSD高速缓存以能够实现在电源关闭事件期间对上下文状态和其它此类信息的非易失性存储,使得在重新发起***活动时能够进行快速上电。图15中还示出了闪速装置1522可例如经由串行外设接口(SPI)耦合到处理器1510。此闪速装置可为***软件(包含基本输入/输出软件(BIOS)及***的其它固件)的非易失性存储提供保证。
在各种实施例中,***的大容量存储装置单由SSD实现,或者被实现为带有SSD高速缓存的盘、光学或其它驱动器。在一些实施例中,大容量存储装置被实现为SSD,或者被实现为连同恢复(RST)高速缓存模块的HDD。在各种实现中,HDD为在320GB-4太字节(TB)之间的存储以及在RST高速缓存采用具有24GB-256GB的容量的SSD来实现时的更高存储提供保证。注意,此类SSD高速缓存可被配置为单级高速缓存(SLC)或多级高速缓存(MLC)选项,以提供适当的响应级别。在仅SSD选项中,模块可被容纳在各种位置中(诸如在mSATA或NGFF槽中)。作为示例,SSD具有范围从120GB-1TB的容量。
在***1500内可存在各种输入/输出(I/O)装置。在图15的实施例中具体示出的是显示器1524,其可以是在机壳的盖部分内配置的高清晰度LCD或LED面板。此显示面板也可为触摸屏1525提供保证,触摸屏1525例如在显示面板上在外部地进行适配,使得经由用户与此触摸屏的交互,能够向***提供用户输入以能够实现期望的操作,例如关于信息的显示,信息的访问等。在一个实施例中,显示器1524可经由显示互连耦合到处理器1510,显示互连能够被实现为高性能图形互连。触摸屏1525可经由另一互连耦合到处理器1510,在一实施例中,该另一互连能够是I2C互连。如图15中进一步所示,除触摸屏1525外,通过触摸的用户输入也能够经由触摸板1530来进行,触摸板1530可在机壳内被配置并且也可与触摸屏1525被耦合到相同I2C互连。
显示面板可在多个模式中操作。在第一模式中,显示面板能够被布置在透明状态中,在该状态中显示面板对可见光是透明的。在各种实施例中,除了围绕周边的边框之外,显示面板的大部分可以是显示器。当******作在笔记本模式中并且显示面板***作在透明状态中时,用户可查看呈现在显示面板上的信息,同时还能够查看显示器后面的对象。另外,位置在显示器后面的用户可查看显示面板上显示的信息。或者,显示面板的操作状态能够是不透明状态,在该状态中可见光不透过显示面板。
在平板模式中,***被折叠关闭,使得显示面板的背显示表面在基面板的底部表面被搁置在某个表面上或由用户持拿时,其停止在使得其向外面向用户的位置中。在平板操作模式中,背显示表面执行显示和用户接口的作用,因为此表面可具有触摸屏功能性,并且可执行常规触摸屏装置(诸如平板装置)的其它已知功能。为此,显示面板可包含部署在触摸屏层和前显示表面之间的透明度调节层。在一些实施例中,透明度调节层可以是电致变色层(EC)、LCD层、或EC和LCD层的组合。
在各种实施例中,显示器能够具有不同的尺寸,例如11.6”或13.3''屏幕,并且可具有16:9的纵横比和至少300尼特的亮度。而且,显示器可具有全高清晰度(HD)分辨率(至少1920×1080p),与嵌入式显示端口(eDP)兼容,以及是带有面板自刷新的低功率面板。
关于触摸屏能力,***可为显示多触摸面板提供保证,显示多触摸面板是多触摸电容性和具有至少5指能力的面板。而且在一些实施例中,显示器可具有10指能力。在一个实施例中,触摸屏被容纳在抗损伤和划痕的玻璃和涂层(例如,Gorilla GlassTM或GorillaGlass 2TM)内,以便实现低摩擦来减少“手指烧灼”和避免“手指跳过”。为给增强的触摸体验和响应性提供保证,在一些实现中,触摸面板具有多触摸功能性(诸如在捏缩放期间每静态视图少于2帧(30Hz)),以及200ms(手指到指针上的滞后)的小于每帧(30Hz)1cm的单触摸功能性。在一些实现中,显示器支持边缘到边缘玻璃,其带有还与面板表面齐平的最小屏幕边框,并且在使用多触摸时有限的IO干扰。
对于感知计算和其它目的,各种传感器可在***内存在并且可以不同方式被耦合到处理器1510。某些惯性和环境传感器可例如经由I2C互连,通过传感器集线器1540耦合到处理器1510。在图15中示出的实施例中,这些传感器可包含加速计1541、周围光传感器(ALS)1542、罗盘1543及陀螺仪1544。其它环境传感器可包含一个或多个热传感器1546,其在一些实施例中经由***管理总线(SMBus)总线耦合到处理器1510。
使用平台中存在的各种惯性和环境传感器,可实现许多不同用例。这些用例能够实现高级计算操作,这包括感知计算,并且也允许关于功率管理/电池寿命、安全性和***响应性的增强。
例如,关于功率管理/电池寿命问题,至少部分地基于来自周围光传感器的信息,确定平台的位置中的周围光条件,并且相应地控制显示器的亮度。因此,在某些光条件中在操作显示器中消耗的功率被降低。
关于安全性操作,基于从传感器获得的诸如位置信息的上下文信息,可确定是否允许用户访问某些安全文档。例如,可准许用户在工作地点或家庭位置访问此类文档。然而,当平台存在于公共位置时,用户被阻止访问此类文档。在一个实施例中,此确定是基于位置信息,例如经由地标的GPS传感器或摄像机识别来被确定。其它安全性操作可包含为在彼此相近范围内的装置(例如,如本文中所述的便携式平台和用户的桌面型计算机、移动电话等)的配对提供保证。在一些实现中,当这些装置被如此地进行配对时,经由近场通信来实现某些共享。然而,在装置超过一定范围时,此类共享可能被禁用。此外,在将如本文中所述的平台和智能电话配对时,警报可配置成在公共位置中时,当装置从彼此移动超过预确定的距离时被触发。相比之下,在这些配对装置处于安全位置(例如,工作地点或家庭位置)中时,装置可以超过该预定限制而不触发此类警报。
也可使用传感器信息来增强响应性。例如,即使在平台处于低功率状态中时,传感器仍可以被使得以相对低的频率运行。因此,平台位置中的任何改变(例如,由惯性传感器、GPS传感器等所确定的)被确定。如果此类改变尚未被登记,则发生到诸如Wi-FiTM接入点或类似的无线使能器的之前的无线集线器的更快连接,因为在此情况下无需针对可用的无线网络资源进行扫描。因此,实现了在从低功率状态唤醒时更高级别的响应性。
要理解的是,可使用经由如本文所述的平台内的集成传感器所获得的传感器信息来使得实现许多其它用例,并且上述示例只是为了说明的目的。使用如本文所述的***,感知计算***可以允许添加备选输入模态(包括手势识别),并使***能够感测用户操作和意图。
在一些实施例中,可存在用于感测用户的存在或移动的一个或多个红外或其它热感测元件或任何其它元件。此类感测元件可包含一起工作、按顺序工作或两者兼有的多个不同元件。例如,感测元件包含提供初始感测(诸如光或声音投射),随后通过例如超声飞行时间摄像机或图案化光摄像机来感测姿势检测的元件。
此外,在一些实施例中,***包含用来产生照明线的光生成器。在一些实施例中,此线提供关于虚拟边界的视觉提示,即,空间中的假想或虚拟位置,其中用户穿过或突破虚拟边界或平面的动作被解释为与计算***接洽的意图。在一些实施例中,在计算***相对于用户转变到不同状态时,照明线可改变颜色。照明线可用于为用户提供空间中的虚拟边界的视觉提示,并且可由***用于确定相对于用户的计算机的状态中的转变,这包含确定用户何时希望与计算机接洽。
在一些实施例中,计算机感测用户位置并且操作以将通过虚拟边界的用户的手的移动解释为指示用户与计算机接洽的意图的姿势。在一些实施例中,在用户穿过虚拟线或平面时,光生成器生成的光可改变,从而向用户提供用户已经进入用于提供姿势以向计算机提供输入的区域的视觉反馈。
显示屏幕可提供相对于用户的计算***的状态的转变的视觉指示。在一些实施例中,在第一状态中提供第一屏幕,在该状态中,用户的存在被***诸如通过使用一个或多个感测元件而感测到。
在一些实现中,***用于感测用户身份,诸如通过面部识别。这里,可在第二状态中提供到第二屏幕的转变,在该状态中计算***已识别用户身份,其中此第二屏幕向用户提供用户已转变到新状态的视觉反馈。在其中用户已确认用户的识别的第三状态中可能发生到第三屏幕的转变。
在一些实施例中,计算***可使用转变机制为用户确定虚拟边界的位置,其中虚拟边界的位置可随用户和上下文而变化。计算***可生成诸如照明线的光,用来指示用于与***接洽的虚拟边界。在一些实施例中,计算***可处于等待状态中,并且光可以以第一颜色被产生。计算***可检测用户是否已达到超过虚拟边界(诸如通过在使用感测元件的情况下来感测用户的存在和移动)。
在一些实施例中,如果用户已被检测为已跨过虚拟边界(诸如用户的手比虚拟边界线更靠近计算***),则计算***可转变到用于接收来自用户的姿势输入的状态,其中指示转变的机制可包含指示虚拟边界的光改变到第二颜色。
在一些实施例中,计算***可然后确定是否检测到姿势运动。如果检测到姿势运动,则计算***可继续进行姿势识别过程,其可包含使用来自姿势数据库的数据,姿势数据库可驻留在计算装置中的存储器中,或者可以其它方式被计算装置访问。
如果识别出用户的姿势,则计算***可响应输入而执行功能,并且如果用户在虚拟边界内,则返回以接收另外的姿势。在一些实施例中,如果姿势未被识别,则计算***可转变到错误状态,其中指示错误状态的机制可包含指示虚拟边界的光改变到第三颜色,其中如果用户在用于与计算***接洽的虚拟边界内,则***返回以接收另外的姿势。
如上所提及的,在其它实施例中,***能够被配置为能够在至少两种不同模式(平板模式和笔记本模式)中使用的可转换平板***。可转换***可具有两个面板,即显示面板和基板,使得在平板模式中,所述两个面板在彼此之上的堆叠中进行部署。在平板模式中,显示面板面朝外,并且其可提供如在常规平板中看到的触摸屏功能性。在笔记本模式中,所述两个面板可采用开放蛤壳式配置来被布置。
在各种实施例中,加速计可以是具有至少50Hz的数据速率的3轴加速计。也可包含陀螺仪,其能够是3轴陀螺仪。另外,可存在电子罗盘/磁力计。此外,可提供一个或多个邻近度传感器(例如,当人在(或不在)***附近中时盖打开以进行感测,并且调整功率/性能以延长电池寿命)。对于一些OS的传感器融合能力(包含加速计、陀螺仪和罗盘)可提供增强的特征。另外,经由具有实时时钟(RTC)的传感器集线器,可实现从传感器机构的唤醒以在***的其余部分处于低功率状态中时接收传感器输入。
在一些实施例中,内部盖/显示器打开开关或传感器以指示盖何时关闭/打开,并且能够用于将***置于连通待机中或从连通待机状态自动唤醒。其它***传感器能够包含用于内部处理器、存储器和皮肤温度监控的ACPI传感器,以能够实现基于感测到的参数对处理器和***操作状态的改变。
在一实施例中,OS可以是实现连通待机的Microsoft®Windows®8 OS(本文中也称为Win8 CS)。Windows 8连通待机或具有类似状态的另一OS能够经由如本文所述的平台提供极低超闲置功率,以使应用能够以极低功率消耗保持连接到例如基于云的位置。平台能够支持3个功率状态,即屏幕开启(正常);连通待机(作为默认“关闭”状态);和关机(功率消耗为零瓦特)。因此,在连通待机状态中,即使屏幕关闭,平台在逻辑上是开启的(处于最小功率电平)。在此类平台中,功率管理能够变得对应用是透明的,并维持恒定的连接性,这部分是由于卸载技术使被供以最低功率的组件能够执行操作。
在图15中还看到,各种外设装置可经由低引脚计数(LPC)互连耦合到处理器1510。在示出的实施例中,各种组件能够通过嵌入式控制器1535被耦合。此类组件能够包含键盘1536(例如,经由PS2接口被耦合)、风扇1537和热传感器1539。在一些实施例中,触摸板1530也可经由PS2接口耦合到EC 1535。另外,诸如根据2003年10月2日的受信计算组(TCG)TPM规范版本1.2的受信平台模块(TPM)1538的安全性处理器也可经由此LPC互连耦合到处理器1510。然而,理解的是,本发明的范围在这点上不受限制,并且安全信息的安全处理和存储可在另一受保护位置(诸如安全性协处理器中的静态随机存取存储器(SRAM))中,或者作为加密数据blob,其仅在受安全飞地(Secure Enclave,SE)处理器模式保护时被解密。
在具体实现中,外设端口可包含高清晰度媒体接口(HDMI)连接器(其能够具有不同的形状因子,例如全尺寸、迷你型或微型);一个或多个USB端口,诸如根据通用串行总线修订版3.0规范(2008年11月)的全尺寸外部端口,其中至少一个USB端口被供电以在***处于连通待机状态中并***AC壁式电源时,对USB装置(诸如智能电话)进行充电。另外,能够提供一个或多个ThunderboltTM端口。其它端口可包含外部可访问的读卡器,诸如用于WWAN的全尺寸SD-XC读卡器和/或SIM读卡器(例如,8引脚读卡器)。对于音频,能够存在带有立体声和麦克风能力(例如,组合功能性)的3.5mm插孔,其带有对插孔检测的支持(例如,仅支持在盖中使用麦克风的耳机,或麦克风在线缆中的耳机)。在一些实施例中,此插孔能够在立体声耳机和立体声麦克风输入之间是可重新任务分配的。此外,电源插孔能够被提供用于耦合到AC砖(AC brick)。
***1500能够以多种方式与外部装置通信,包含无线方式。在图15中示出的实施例中,存在各种无线模块,每个无线模块能够对应于配置用于具体无线通信协议的无线电。用于诸如近场的短程无线通信的一种方式可经由近场通信(NFC)单元1545(其在一个实施例中可经由SMBus与处理器1510通信)来进行。注意,经由此NFC单元1545,在彼此近邻中的装置能够通信。例如,用户能够使***1500与另一(例如)便携式装置(诸如用户的智能电话)通信,这经由将所述两个装置紧密联系地适配在一起,并且使得实现信息(诸如标识信息、支付信息)、数据(诸如图像数据等)的传递来进行。无线功率传递也可使用NFC***来执行。
通过使用本文中描述的NFC单元,用户能够通过利用在一个或多个此类装置的线圈之间的耦合,边对边地碰撞装置并且边靠边地放置装置来实现近场耦合功能(诸如近场通信和无线功率传递(WPT))。更具体地说,实施例为装置提供按策略成形、和放置的铁氧体材料,以为线圈的更佳耦合提供保证。每个线圈具有与其关联的电感,电感能够结合***的电阻、电容及其它特征来被选择,以能够实现对于***的公共谐振频率。
如在图15中进一步看到的,另外的无线单元能够包含其它短程无线引擎,这包含WLAN单元1550和蓝牙单元1552。使用WLAN单元1550,能够实现根据给定电气和电子工程师协会(IEEE) 802.11标准的Wi-FiTM通信,而经由蓝牙单元1552,能够进行经由蓝牙协议的短程通信。这些单元可经由例如USB链路或通用异步接收器传送器(UART)链路与处理器1510通信。或者,这些单元可经由根据外设组件互连高速TM(PCIeTM)协议(例如根据PCI高速TM规范基础规范版本3.0(2007年1月17日发布))或另一此类协议(诸如串行数据输入/输出(SDIO)标准)的互连耦合到处理器1510。当然,可配置在一个或多个附加卡上的这些外设装置之间的实际物理连接能够借助于适配到母板的NGFF连接器。
另外,例如根据蜂窝或其它无线广域协议的无线广域通信能够经由WWAN单元1556进行,该WWAN单元1556进而可耦合到订户身份模块(SIM)1557。另外,为能够实现对位置信息的接收和使用,也可存在GPS模块1555。注意,在图15中显示的实施例中,WWAN单元1556和诸如摄像机模块1554的集成捕捉装置可经由诸如USB 2.0或3.0链路的给定USB协议或UART或I2C协议来进行通信。同样地,这些单元的实际物理连接能够经由NGFF插件卡到在母板上配置的NGFF连接器的适配。
在一具体实施例中,能够模块化地提供无线功能性,例如,采用具有对Windows8CS的支持的WiFiTM802.11ac解决方案(例如,与IEEE 802.11abgn向后兼容的插件卡)来进行。此卡能够被配置在内部槽中(例如,经由NGFF适配器)。另外的模块可为蓝牙能力(例如,带有向后兼容性的蓝牙4.0)及Intel®无线显示功能性提供保证。此外,NFC支持可经由单独的装置或多功能装置被提供,并且作为示例,其能够被定位在机壳的右前部分中以便于访问。仍有的另外一个模块可以是能够为3G/4G/LTE和GPS提供支持的WWAN装置。此模块能够在内部(例如,NGFF)槽中被实现。集成天线支持能够被提供用于WiFiTM、蓝牙、WWAN、NFC和GPS,从而能够实现从WiFiTM到WWAN无线电、根据无线千兆位规范(2010年7月)的无线千兆位(WiGig)的无缝转变,且反之亦然。
如上所述,集成摄像机能够被集成在盖中。作为一个示例,此摄像机能够是高分辨率摄像机,例如,具有至少2.0百万像素(MP)和扩展到6.0 MP及更高的分辨率。
为给音频输入和输出提供保证,音频处理器能够经由数字信号处理器(DSP)1560实现,该DSP可经由高清晰度音频(HDA)链路耦合到处理器1510。类似地,DSP 1560可与集成的编码器/解码器(CODEC)和放大器1562(其进而可耦合到可在机壳内实现的输出扬声器1563)通信。类似地,放大器和CODEC 1562能够被耦合以接收来自麦克风1565的音频输入,该麦克风在一实施例中能够经由双阵列麦克风(诸如数字麦克风阵列)被实现以为高质量音频输入提供保证,来使得实现对***内各种操作的语音激活控制。还要注意,音频输出能够从放大器/CODEC 1562被提供到耳机插孔1564。虽然在图15的实施例中示出有这些特定组件,但理解的是,本发明的范围在这点上不受限制。
在一具体实施例中,数字音频编解码器和放大器能够驱动立体声耳机插孔、立体声麦克风插孔、内部麦克风阵列和立体声扬声器。在不同的实现中,编解码器可被集成到音频DSP中,或者经由HD音频路径被耦合到外设控制器集线器(PCH)。在一些实现中,除集成立体声扬声器外,还能够提供一个或多个低音扬声器,并且扬声器解决方案能够支持DTS音频。
在一些实施例中,处理器1510可由外部电压调节器(VR)和集成在处理器管芯内部的被称为完全集成电压调节器(FIVR)的多个内部电压调节器供电。在处理器中使用多个FIVR能够实现将组件分组成单独的功率平面,使得功率被FIVR调节并且仅供应到群组中的那些组件。在功率管理期间,当处理器被置于某个低功率状态中时,一个FIVR的给定功率平面可被断电或关闭,而另一FIVR的另一功率平面保持活跃或完全供电。
在一个实施例中,能够在一些深度睡眠状态期间使用支撑功率平面来为用于若干I/O信号的I/O引脚上电,诸如在处理器与PCH之间的接口,与外部VR的接口和与EC 1535的接口。此支撑功率平面也为管芯上电压调节器供电,该电压调节器支持在睡眠状态期间处理器上下文在其中被存储的板载SRAM或其它高速缓存存储器。支撑功率平面也用于为监视和处理各种唤醒源信号的处理器的唤醒逻辑上电。
在功率管理期间,尽管在处理器进入某些深度睡眠状态时其它功率平面被断电或关闭,但支撑功率平面保持上电以支持以上提到的组件。然而,在不需要那些组件时,这能够导致不必要的功率消耗或耗散。为此,实施例可提供连通待机睡眠状态以使用专用的功率平面来维持处理器上下文。在一个实施例中,该连通待机睡眠状态使用PCH的资源来促进处理器唤醒,PCH自身可存在于带有处理器的封装中。在一个实施例中,连通待机睡眠状态在PCH中促进支撑处理器架构功能直到处理器唤醒,这能够实现关闭以前在深度睡眠状态期间被保持上电的所有不必要的处理器组件,这包含关闭所有时钟。在一个实施例中,PCH含有时戳计数器(TSC)和连通待机逻辑(其用于在连通待机状态期间对***进行控制)。用于该支撑功率平面的集成电压调节器也可驻留在PCH上。
在一实施例中,在连通待机状态期间,集成电压调节器可用作专用功率平面,其保持上电以支持在处理器进入深度睡眠状态和连通待机状态时诸如临界状态变量的处理器上下文在其中被存储的专用高速缓存存储器。此临界状态可包含与架构、微架构、调试状态关联的状态变量和/或与处理器关联的类似状态变量。
来自EC 1535的唤醒源信号可在连通待机状态期间被发送到PCH而不是处理器,使得PCH而不是处理器能够管理唤醒处理。此外,TSC被维持在PCH中以促进支撑处理器架构功能。虽然在图15的实施例中示出有这些特定组件,但理解的是,本发明的范围在这点上不受限制。
处理器中的功率控制能够导致增强的功率节省。例如,功率能够在核之间动态地被分配,各个核能够改变频率/电压,并且多个深度低功率状态能够被提供以能够实现极低功率消耗。另外,通过在组件不在被使用时将它们断电,对核或独立的核部分的动态控制能够为降低的功率消耗提供保证。
一些实现可提供特定功率管理IC(PMIC)来控制平台功率。使用此解决方案,在处于给定待机状态中时,诸如在处于Win8连通待机状态中时,***可在延长的持续时间(例如,16小时)内看到极低(例如,少于5%)的电池退化。在Win8闲置状态中,可实现超过例如9小时的电池寿命(例如,以150尼特)。关于视频回放,能够实现长的电池寿命,例如,全HD视频回放能够进行持续至少6个小时。在一个实现中的平台可对于使用SSD的Win8 CS具有例如35瓦小时(Whr)的能量容量以及(例如)对于使用具有RST高速缓存配置的HDD的Win8 CS的40-44Whr的能量容量。
特定的实现可提供对15W标称CPU热设计功率(TDP)的支持,其中可配置CPU TDP高达大约25W TDP设计点。由于上述的热特征,平台可包含最小的通风口。另外,平台是枕垫友好型的(因为没有热空气吹向用户)。取决于机壳材料,能够实现不同的最大温度点。在塑料机壳的一个实现中(至少具有塑料的盖或基部),最大工作温度能够是52摄氏度(°C)。而且对于金属机壳的实现,最大工作温度能够是46°C。
在不同实现中,诸如TPM的安全性模块能够被集成到处理器中或者能够是诸如TPM2.0装置的离散装置。采用也被称作为平台信任技术(PTT)的集成安全性模块,BIOS/固件能够被实现暴露用于某些安全性特征的某些硬件特征,这包含安全指令、安全引导、Intel®防盗技术、Intel®身份保护技术、Intel®受信执行技术(TXT)和Intel®可管理性引擎技术,连同还有诸如安全键盘和显示器的安全用户接口。
接下来转到图16,描绘了根据本发明的芯片上***(SOC)设计的一实施例。作为特定的说明性示例,SOC 1600被包含在用户设备(UE)中。在一个实施例中,UE指被最终用户用于通信的任何装置,诸如手持式电话、智能电话、平板、超薄笔记本、带有宽带适配器的笔记本或任何其它类似的通信装置。UE通常连接到基站或节点,其潜在地在性质上对应于GSM网络中的移动站(MS)。
这里,SOC 1600包含2个核 - 1606和1607。类似于上面的讨论,核1606和1607可符合指令集架构,诸如基于Intel®Architecture CoreTM的处理器、Advanced MicroDevices, Inc.(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计、或其客户以及他们的受许可方或采用者。核1606和1607被耦合到与总线接口单元1609和L2高速缓存1610关联的高速缓存控制1608,以与***1600的其它部分通信。互连1610包含芯片上互连,诸如IOSF、AMBA或上面讨论的其它互连,其潜在地实现所描述的发明的一个或多个方面。
接口1610提供到其余组件的通信信道,所述其余组件诸如用来与SIM卡接口的订户身份模块(SIM)1630、用来保持引导代码以便由核1606和1607执行以初始化和引导SOC1600的引导只读存储器1635、用来与外部存储器(例如,DRAM 1660)接口的SDRAM控制器1640、用来与非易失性存储器(例如,闪存1665)接口的闪存控制器1645、用来与外设接口的外设控制1250(例如,串行外设接口)、用来显示和接收输入(例如,触摸使能的输入)的视频编解码器1620和视频接口1625、用来执行图形有关计算的GPU 1615等。任何这些接口可结合本文中描述的本发明的方面。
另外,***图示了用于通信的外设,诸如蓝牙模块1670、3G调制解调器1675、GPS1685和WiFi 1685。注意如在上面所陈述的,UE包含用于通信的无线电。因此,这些外设通信模块并非全部被要求。然而,在UE中,将包含用于外部通信的某种形式的无线电。
尽管相对于有限数量的实施例描述了本发明,但本领域技术人员将领会由此产生的许多修改和变化。随附的权利要求旨在涵盖如落在本发明的真正精神和范围内的所有此类修改和变化。
设计可经历从创建到模拟到制造的各种阶段。表示设计的数据可以多种方式来表示设计。首先,如在模拟中有用的,硬件可使用硬件描述语言或另一功能描述语言来被表示。另外,可在设计过程的某些阶段产生具有逻辑和/或晶体管门的电路级别模型。此外,在某个阶段,大多数设计达到表示在硬件模型中各种装置的物理放置的数据级别。在其中使用常规半导体制造技术的情况中,表示硬件模型的数据可以是指定在用于生产集成电路的掩膜的不同掩膜层上存在或不存在各种特征的数据。在设计的任何表示中,数据可被存储在任何形式的机器可读介质中。存储器或者磁或光存储装置(诸如盘)可以是用来存储经由光波或电波传送的信息的机器可读介质,其中光波或电波经过调制或以其它方式被生成来传送此类信息。当指示或携带代码或设计的电载波被传送时,就执行电信号的复制,缓冲或重新传送而言,形成了新的副本。因此,通信提供商或网络提供商可在有形机器可读介质上至少暂时地存储实施本发明的实施例的技术的项(诸如被编码到载波中的信息)。
如在本文中使用的模块指硬件、软件和/或固件的任何组合。作为示例,模块包含与用来存储被适配由微控制器执行的代码的非暂态介质关联的硬件(诸如微控制器)。因此,在一个实施例中,对模块的提及指特别地配置成识别和/或执行要被保持在非暂态介质上的代码的硬件。此外,在另一实施例中,模块的使用指包括代码的非暂态介质,所述代码特别地被适配由微控制器执行以执行预确定的操作。而且如能够推断的,在还有的另一实施例中,术语模块(在此示例中)可指微控制器和非暂态介质的组合。通常,图示为分开的模块边界通常发生变化,并且潜在地重叠。例如,第一和第二模块可共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器或其它硬件,诸如可编程逻辑装置。
在一个实施例中,措辞“以”或“配置成”的使用指布置、装配、制造、提议销售(offering to sell),引入和/或设计设备、硬件、逻辑或元件以执行指定或确定的任务。在此示例中,如果其被设计、耦合和/或互连以执行指定的任务,则不在进行操作的设备或其元件仍“配置成”执行所述指定的任务。作为纯说明性示例,逻辑门可在操作期间提供0或1。但“配置成”向时钟提供使能信号的逻辑门不包含可提供1或0的每一个潜在逻辑门。转而,逻辑门是以某一方式耦合的逻辑门,使得在操作期间1或0输出用来启用时钟。再次注意,术语“配置成”的使用不要求操作,而是专注于设备、硬件和/或元件的潜在状态上,其中在潜在状态中,设备、硬件和/或元件设计成在设备、硬件和/或元件在进行操作时执行具体任务。
此外,在一个实施例中,措辞“能够”和或“可操作以”的使用指以某种方式设计某一设备、逻辑、硬件和/或元件,以能够实现以指定的方式来使用该设备、逻辑、硬件和/或元件。注意,如上所述,在一个实施例中,“以”,“能够”或“可操作以”的使用指设备、逻辑、硬件和/或元件的潜在状态,其中设备、逻辑、硬件和/或元件未在进行操作,但以某种方式被设计成能够实现以指定方式使用设备。
在本文中使用时,值包含数字、状态、逻辑的状态或二进制逻辑的状态的任何已知表示。通常,逻辑级别、逻辑值或逻辑的值的使用也指代1和0,这简单地表示二进制逻辑状态。例如,1指高逻辑级别,并且0指低逻辑级别。在一个实施例中,诸如晶体管或闪存单元的存储单元可以能够保持单个逻辑的值或多个逻辑的值。然而,计算机***中值的其它表示已被使用。例如,十进制数字十也可被表示为二进制值1010和十六进制字母A。因此,值包含能够被保持在计算机***中的信息的任何表示。
另外,状态可由值或值的部分表示。作为示例,诸如逻辑的一的第一值可表示默认或初始状态,而诸如逻辑的零的第二值可表示非默认状态。另外,在一个实施例中,术语重置和设置分别指默认和更新的值或状态。例如,默认值潜在地包含高逻辑的值,即重置,而更新的值潜在地包含低逻辑的值,即设置。注意,值的任何组合可用于表示任何数量的状态。
上面所阐述的方法、硬件、软件、固件或代码集的实施例可经由在机器可访问、机器可读、计算机可访问或计算机可读介质上存储的由处理元件可执行的指令或代码来实现。非暂态机器可访问/可读介质包含采用由诸如计算机或电子***的机器可读的形式提供(即,存储和/或传送)信息的任何机构。例如,非暂态机器可访问介质包含随机存取存储器(RAM),诸如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪速存储器装置;电存储装置;光存储装置;声存储装置;用于保持从暂态(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储装置;等等,它们要与从其中可接收信息的非暂态介质区分开。
用于对逻辑进行编程以执行本发明的实施例的指令可被存储在***中的存储器内,诸如DRAM、高速缓存、闪速存储器或其它存储装置。此外,指令能够经由网络或借助于其它计算机可读介质来被分发。因此,机器可读介质可包含用于以机器(例如,计算机)可读的形式存储或传送信息的任何机构,但其不限于软盘、光盘、紧致盘、只读存储器(CD-ROM)、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器、或在经由电、光、声或其它形式传播信号(例如,载波、红外信号、数字信号等)在因特网上进行的信息传送中被使用的有形机器可读存储装置。相应地,计算机可读介质包含适合于存储或传送采用机器(例如计算机)可读的形式的电子指令或信息的任何类型的有形机器可读介质。
此说明书通篇对“一个实施例”或“一实施例”的引用意指联系该实施例描述的具体特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿此说明书在各个位置中出现的措辞“在一个实施例”或“在一实施例中”不一定全部指相同实施例。此外,具体特征、结构或特性可在一个或多个实施例中以任何适合的方式被组合。
在前面所述说明书中,参照特定示范实施例给出了详细描述。然而,将是明显的是,在不脱离如所附权利要求中所阐述的本发明的更广泛的精神和范围的情况下,可对其进行各种修改和改变。相应地,要以说明性的意义而非限制性的意义来看待说明书和图。此外,实施例和其它示范语言的前述使用不一定指相同实施例或相同示例,而是可指不同的以及有区别的实施例及潜在地相同的实施例。
Claims (15)
1.一种用于对数据的异类通道进行去偏斜的设备,所述设备包括:
用于存储第一计数器值的地址部分和第一计数器值的数据部分的部件,所述第一计数器值表示数据的第一流的偏斜;以及
用于比较第一计数器值的所述数据部分和第二计数器值的数据部分的部件,所述第二计数器值表示数据的第二流的偏斜,以及
用于基于所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分的比较,停顿数据的所述第一流或数据的所述第二流之一的部件,
其中所述偏斜是指时钟偏斜。
2.如权利要求1所述的设备,进一步包括用于接收所述第一计数器值并且向数据存储逻辑输出所述第一计数器值的所述地址部分和所述第一计数器值的所述数据部分的部件。
3.如权利要求1所述的设备,进一步包括用于接收所述第二计数器值并且向数据存储逻辑输出所述第二计数器值的地址部分和向比较器逻辑输出所述第二计数器值的所述数据部分的部件。
4.如权利要求3所述的设备,进一步包括用于比较所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分的部件以及用于基于所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分的所述比较,向去偏斜控制逻辑输出停顿信号的部件。
5.如权利要求4所述的设备,进一步包括用于接收来自所述数据存储逻辑的所述第一计数器值的所述数据部分的部件和用于接收来自远计数器算子逻辑的所述第二计数器值的所述数据部分的部件。
6.一种用于对数据的异类通道进行去偏斜的***,包括:
至少部分在硬件中实现的数据存储逻辑,其用来:
基于第二计数器值的地址部分来查找第一计数器值的地址部分,所述第一计数器值表示数据的第一流在时间中的位置且所述第二计数器值表示数据的第二流在时间中的位置,以及
基于所述查找,输出所述第一计数器值的数据部分;以及
至少部分在硬件中实现的去偏斜控制逻辑,其用来:
比较所述第一计数器值的所述数据部分与第二计数器值的数据部分,以及
基于所述比较,停顿数据的所述第一流,
其中所述偏斜是指时钟偏斜。
7.如权利要求6所述的***,进一步包括至少部分在硬件中实现的计数器,用来向所述去偏斜控制逻辑输出运行计数器值,所述运行计数器值被用来标识数据的所述第一流的位置;
其中,所述去偏斜控制逻辑包括进一步的逻辑,其用来:
基于从所述计数器所接收的运行计数器值标识所述第一计数器值,以及
在接收到表示被去偏斜的数据的所述第一流的标记时并且在所述运行计数器值到期时,向所述数据存储逻辑传送所述第一计数器值。
8.如权利要求6所述的***,其中所述***包括至少部分在硬件中实现的第一计数器算子逻辑,其用来:
接收来自所述去偏斜控制逻辑的所述第一计数器值,
将所述第一计数器值的所述地址部分与所述第一计数器值的所述数据部分分开,以及
向所述数据存储逻辑传送所述第一计数器值的所述地址部分和所述第一计数器值的所述数据部分,
其中所述第一计数器值的所述地址部分用于在所述数据存储逻辑中查找所述第一计数器值的所述数据部分,以及
其中所述***包括至少部分在硬件中实现的第二计数器算子逻辑,其用来:
接收来自所述去偏斜控制逻辑的所述第二计数器值,
将所述第二计数器值的所述地址部分与所述第二计数器值的所述数据部分分开,其中所述第二计数器值的所述地址部分被用于在所述数据存储逻辑中查找所述第一计数器值的所述地址部分,
向所述数据存储逻辑传送所述第二计数器值的所述地址部分,以及
向比较器逻辑传送所述第二计数器值的所述数据部分。
9.如权利要求6所述的***,其中所述去偏斜控制逻辑包括比较器逻辑,其用来:
比较所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分;
在所述第一计数器值的所述数据部分等于所述第二计数器值的所述数据部分时,向所述去偏斜控制逻辑输出所述第一流和所述第二流被去偏斜的指示;以及
在所述第一计数器值的所述数据部分小于所述第二计数器值的所述数据部分时向所述去偏斜控制逻辑输出数据的所述第一流应当被停顿的指示,以及输出在所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分之间的计数差。
10.一种用于对数据的异类通道进行去偏斜的方法,所述方法包括:
存储第一计数器值的地址部分和第一计数器值的数据部分,所述第一计数器值表示数据的第一流的偏斜;以及
比较第一计数器值的所述数据部分和第二计数器值的数据部分,所述第二计数器值表示数据的第二流的偏斜,以及
基于所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分的比较,停顿数据的所述第一流或数据的所述第二流之一,
其中所述偏斜是指时钟偏斜。
11.如权利要求10所述的方法,进一步包括接收所述第一计数器值并且向数据存储逻辑输出所述第一计数器值的所述地址部分和所述第一计数器值的所述数据部分。
12.如权利要求10所述的方法,进一步包括接收所述第二计数器值并且向数据存储逻辑输出所述第二计数器值的地址部分和向比较器逻辑输出所述第二计数器值的所述数据部分。
13.如权利要求12所述的方法,进一步包括比较所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分,以及基于所述第一计数器值的所述数据部分和所述第二计数器值的所述数据部分的所述比较,向去偏斜控制逻辑输出停顿信号。
14.如权利要求13所述的方法,进一步包括接收来自所述数据存储逻辑的所述第一计数器值的所述数据部分,和接收来自远计数器算子逻辑的所述第二计数器值的所述数据部分。
15.一种包含机器可读指令的机器可读存储装置,所述指令在被执行时,用来实现如权利要求10-14的任一项中所要求保护的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/866,866 | 2015-09-26 | ||
US14/866,866 US9720439B2 (en) | 2015-09-26 | 2015-09-26 | Methods, apparatuses, and systems for deskewing link splits |
PCT/US2016/048255 WO2017052908A1 (en) | 2015-09-26 | 2016-08-24 | Methods, apparatuses, and systems for deskewing link splits |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108027785A CN108027785A (zh) | 2018-05-11 |
CN108027785B true CN108027785B (zh) | 2021-10-15 |
Family
ID=58387238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680056036.9A Active CN108027785B (zh) | 2015-09-26 | 2016-08-24 | 用于对链路拆分进行去偏斜的方法、设备和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US9720439B2 (zh) |
CN (1) | CN108027785B (zh) |
DE (1) | DE112016004332T5 (zh) |
WO (1) | WO2017052908A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017046916A1 (ja) * | 2015-09-17 | 2017-03-23 | 株式会社安川電機 | 産業機器の通信システム、通信方法、及び産業機器 |
US9720439B2 (en) | 2015-09-26 | 2017-08-01 | Intel Corporation | Methods, apparatuses, and systems for deskewing link splits |
CN105608050B (zh) * | 2015-12-31 | 2019-02-01 | 华为技术有限公司 | 数据存储方法及*** |
US20170364473A1 (en) * | 2016-03-31 | 2017-12-21 | Wave Computing, Inc. | Program counter alignment across a reconfigurable hum fabric |
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
US10445265B2 (en) * | 2017-10-20 | 2019-10-15 | Cisco Technology, Inc. | Method and apparatus for deskewing decentralized data streams |
CN108459942A (zh) * | 2018-03-15 | 2018-08-28 | 联想(北京)有限公司 | 一种数据处理方法、装置及存储介质 |
US10719607B2 (en) * | 2018-03-19 | 2020-07-21 | Nxp B.V. | Data integrity verification in a non-volatile memory |
JP2020047340A (ja) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 不揮発性メモリ及びメモリシステム |
US11398926B2 (en) | 2020-02-10 | 2022-07-26 | Apple Inc. | Signaling of time for communication between integrated circuits using multi-drop bus |
US11309013B2 (en) | 2020-04-29 | 2022-04-19 | Samsung Electronics Co., Ltd. | Memory device for reducing resources used for training |
DE102020002636A1 (de) * | 2020-05-02 | 2021-11-04 | Diehl Metering Systems Gmbh | Verfahren zur Synchronisierung von Frame-Counter und Anordnung |
KR20220020029A (ko) * | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 스토리지 장치 |
US20230214346A1 (en) * | 2021-12-30 | 2023-07-06 | Ati Technologies Ulc | Allocating peripheral component interface express (pcie) streams in a configurable multiport pcie controller |
US11936393B1 (en) * | 2022-06-06 | 2024-03-19 | Amazon Technologies, Inc. | Cooperative timing alignment using synchronization pulses |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192912A (zh) * | 2006-11-30 | 2008-06-04 | 中芯国际集成电路制造(上海)有限公司 | 具有缓冲器控制的数据传输的***和方法 |
CN102394715A (zh) * | 2011-06-30 | 2012-03-28 | 中兴通讯股份有限公司 | 时钟同步方法和装置 |
CN103676622A (zh) * | 2013-10-28 | 2014-03-26 | 中国电子科技集团公司第四十一研究所 | 一种高精度的正负时间间隔测量方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4731676A (en) * | 1985-12-13 | 1988-03-15 | Cyclotomics, Inc. | Transparent synchronization of multiple channel data |
US7054331B1 (en) * | 2000-09-13 | 2006-05-30 | Intel Corporation | Multi-lane receiver de-skewing |
TWI249681B (en) * | 2003-07-02 | 2006-02-21 | Via Tech Inc | Circuit and method for aligning data transmitting timing of a plurality of lanes |
US7631118B2 (en) | 2003-12-31 | 2009-12-08 | Intel Corporation | Lane to lane deskewing via non-data symbol processing for a serial point to point link |
US7466723B2 (en) | 2004-06-29 | 2008-12-16 | Intel Corporation | Various methods and apparatuses for lane to lane deskewing |
US20060282719A1 (en) | 2005-05-13 | 2006-12-14 | Raguram Damodaran | Unique Addressable Memory Data Path |
KR101876418B1 (ko) | 2012-04-05 | 2018-07-10 | 한국전자통신연구원 | Pci 익스프레스 디스큐 장치 및 그 방법 |
DE112013007751B3 (de) | 2012-10-22 | 2023-01-12 | Intel Corporation | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
CN105122172B (zh) | 2012-12-13 | 2017-10-27 | 相干逻辑公司 | 同步数字***及避免其中的时钟信号错误的方法 |
US9720439B2 (en) | 2015-09-26 | 2017-08-01 | Intel Corporation | Methods, apparatuses, and systems for deskewing link splits |
-
2015
- 2015-09-26 US US14/866,866 patent/US9720439B2/en active Active
-
2016
- 2016-08-24 DE DE112016004332.5T patent/DE112016004332T5/de active Pending
- 2016-08-24 CN CN201680056036.9A patent/CN108027785B/zh active Active
- 2016-08-24 WO PCT/US2016/048255 patent/WO2017052908A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192912A (zh) * | 2006-11-30 | 2008-06-04 | 中芯国际集成电路制造(上海)有限公司 | 具有缓冲器控制的数据传输的***和方法 |
CN102394715A (zh) * | 2011-06-30 | 2012-03-28 | 中兴通讯股份有限公司 | 时钟同步方法和装置 |
CN103676622A (zh) * | 2013-10-28 | 2014-03-26 | 中国电子科技集团公司第四十一研究所 | 一种高精度的正负时间间隔测量方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9720439B2 (en) | 2017-08-01 |
WO2017052908A1 (en) | 2017-03-30 |
CN108027785A (zh) | 2018-05-11 |
US20170090510A1 (en) | 2017-03-30 |
DE112016004332T5 (de) | 2018-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027785B (zh) | 用于对链路拆分进行去偏斜的方法、设备和*** | |
US9953001B2 (en) | Method, apparatus, and system for plugin mechanism of computer extension bus | |
US11106474B2 (en) | System, method, and apparatus for DVSEC for efficient peripheral management | |
US20230022948A1 (en) | System, method, and apparatus for sris mode selection for pcie | |
US10601425B2 (en) | Width and frequency conversion with PHY layer devices in PCI-express | |
US11163717B2 (en) | Reduced pin count interface | |
US20160274923A1 (en) | An apparatus, method, and system for a fast configuration mechanism | |
US10969992B2 (en) | Address translation for scalable linked devices | |
US11216396B2 (en) | Persistent memory write semantics on PCIe with existing TLP definition | |
CN110121703B (zh) | 用于向量通信的***和方法 | |
US11016550B2 (en) | Controller to transmit data for components of a physical layer device | |
US10262751B2 (en) | Multi-dimensional optimization of electrical parameters for memory training | |
US11126554B2 (en) | Prefetching write permissions into address translation cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |