CN105593830A - 用于测量电路的物理单元中的等待时间的方法、装置和系统 - Google Patents

用于测量电路的物理单元中的等待时间的方法、装置和系统 Download PDF

Info

Publication number
CN105593830A
CN105593830A CN201380079871.0A CN201380079871A CN105593830A CN 105593830 A CN105593830 A CN 105593830A CN 201380079871 A CN201380079871 A CN 201380079871A CN 105593830 A CN105593830 A CN 105593830A
Authority
CN
China
Prior art keywords
value
logic
stand
period
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.)
Granted
Application number
CN201380079871.0A
Other languages
English (en)
Other versions
CN105593830B (zh
Inventor
D·J·哈里曼
M·沃什
A·R·伊斯梅尔
D·S·弗洛里奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201810358308.1A priority Critical patent/CN108595355B/zh
Publication of CN105593830A publication Critical patent/CN105593830A/zh
Application granted granted Critical
Publication of CN105593830B publication Critical patent/CN105593830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)
  • Measuring Frequencies, Analyzing Spectra (AREA)
  • Advance Control (AREA)

Abstract

在实施例中,一种装置包括计数器、第一寄存器、镜像弹性缓冲器和解析逻辑,所述计数器用于根据本地时钟信号而在开始值与结束值之间计数,所述第一寄存器用于存储计数器的输出,所述镜像弹性缓冲器存储从第一寄存器接收到的计数器输出的样本,其中所述镜像弹性缓冲器用于对接收机电路弹性缓冲器进行镜像操作,所述解析逻辑用于接收来自镜像弹性缓冲器的计数器输出样本以及来自计数器的当前的计数器值输出,并且至少部分地基于所述计数器输出样本和所述当前的计数器值来确定数据元素遍历接收机电路的渡越等待时间。描述了其他实施例并要求它们的权利。

Description

用于测量电路的物理单元中的等待时间的方法、装置和系统
技术领域
本公开涉及计算系统,并且尤其(但不是排他地)涉及提供关于通信的渡越等待时间的信息。
附图说明
图1是包括多核处理器的计算系统的框图。
图2是片上系统的部分及其到片外组件的连接的示例的框图。
图3是根据本发明的实施例的接收机设备的部分的框图。
图4是根据本发明的实施例的方法的流程图。
图5是根据本发明的实施例的发射机设备的部分的框图。
图6是根据本发明的实施例的设备的PHY/MAC接口的框图。
图7是根据实施例的结构(fabric)互连的框图。
图8是根据实施例的分层式协议栈的框图。
图9是根据实施例的点对点互连的框图。
图10是根据实施例的片上系统的框图。
具体实施方式
在下列描述中,陈述了众多特定细节(诸如,特定类型的处理器和系统配置、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测度/高度、特定的处理器流水线级和操作等的示例)以提供对本发明的透彻理解。然而,对本领域技术人员将显而易见的是,不必采用这些特定的细节来实践本发明。在其他实例中,未详细地描述众所周知的组件或方法(诸如,特定的和替代的处理器架构、用于所描述的算法的特定的逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、代码中算法的特定表达、特定的断电和门控技术/逻辑以及计算机系统的其他特定的操作细节)以避免不必要地使本发明含糊。
尽管可以参考专用集成电路中(诸如,计算平台或微处理器中)节能和能效来描述下列实施例,但是其他实施例适用于其他类型的集成电路和逻辑器件。本文中描述的实施例的类似技术和教导可以应用于也可以受益于更好的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或超极本TM。并且也可以用于其他设备,诸如,手持式设备、平板、其他薄型笔记本、片上系统(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)中的每一个都可以被称为处理元件、线程槽或线程单元。正如所阐释的,在架构状态寄存器101b中复制架构状态寄存器101a,因此能够为逻辑处理器101a和逻辑处理器101b存储各自的架构状态/上下文。在核101中,也可以为线程101a和101b复制其他较小的资源(诸如,分配器和重命名器块130中的指令指针和重命名逻辑)。可以通过分区操作(partitioning)来共享一些资源(诸如,重排序/引退单元135中的重排序缓冲器、ILTB120、加载/存储缓冲器和队列。可能完全共享其他资源(主图,通用内部寄存器、(多个)页表基址寄存器、低层级数据高速缓存和数据TLB115、(多个)执行单元140和无序单元135的多个部分。
处理器100常常包括其他资源,它们可以被完全共享、可通过分区操作被共享或由处理元件专用或专用于处理元件。在图1中,阐释具有处理器的说明性逻辑单元/资源的纯粹示例性的处理器的实施例。注意,处理器可以包括或省略这些功能的单元中的任何一个,壁柜且可以包括未描绘的任何其他已知功能单元、逻辑或固件。正如所阐释的,核101包括简化的表示性无序(OOO)处理器核。但是在不同的实施例中可使用有序核。OOO核包括分支目标缓冲器120和指令转换缓冲器(I-TLB)120,所述分支目标缓冲器120用于预测将执行/采取的分支,所述指令转换缓冲器(I-TLB)120用于存储指令的地址转换条目。
核101还包括解码模块125,此解码模块125耦合到取出单元120以对被取出元素解码。在一个实施例中,取出逻辑包括分别与线程槽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。数据高速缓存用于存储潜在地以存储器一致性状态保持的、最近使用/操作的元素(诸如,数据操作数)。D-TLB用于存储最近的虚拟/线性至物理地址的转换。作为特定示例,处理器可以包括页表结构以将物理内存分成多个虚拟页面。
在此,核101和102共享对较高层级的或进一步远离的高速缓存例(诸如,与片上接口110相关联的第二级高速缓存)的访问。注意,较高层级的或进一步远离的是指高速缓存层级增加或进一步远离(多个)执行单元。在实施例中,较高层级的高速缓存是末级数据高速缓存——处理器100上的存储器层次结构中的最后的高速缓存——诸如,第二级或第三级数据高速缓存。然而,较高层级的高速缓存不限于此,因为它可以与指令高速缓存相关联或可包括指令高速缓存。踪迹高速缓存——一种类型的指令高速缓存——可以替代地耦合在解码器125之后以便存储近来解码的踪迹。在此,指令潜在地是指宏指令(即,由解码器识别的通用指令),此宏指令可以被解码成多个微指令(微操作)。
在所描绘的配置中,处理器100也包括片上接口模块110。在历史上,存储器控制器(下文中更详细地描述)已被包括在处理器100外部的计算系统中。在这种场景中,片上接口11用于与处理器100外部的设备通信,这些设备诸如,系统存储器175、芯片组(常常包括用于连接到存储器175的存储器控制器中枢以及用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路,并且在这种场景中,总线105可以包括任何已知的互连,诸如,多点式总线、点对点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层式协议架构、差分总线和GTL总线。
存储器175可以专用于处理器100或可由系统中的其他设备共享。存储器175的类型的常见示例包括DRAM、RAM、非易失性存储器(NV存储器)和其他已知存储设备。注意,设备180可以包括图形加速器、耦合到存储器控制器中枢的处理器或卡、耦合到I/O控制器中枢的数据存储设备、无线收发机、闪存设备、音频控制器、网络控制器或其他已知的设备。
然而,最近随着更多逻辑和器件被集成在单个管芯上(诸如,SOC),这些设备中的每一个都可以被合并在处理器100上。例如,在一个实施例中,存储器控制器中枢在与处理器100相同的封装和/或管芯上。在此,核的部分(核上部分)110包括一个或多个控制器,用于与其他设备(诸如,存储器175或图形设备180)对接。包括用于与此类设备对接的互连和控制器的配置常常被称为核上(或非核(un-core)配置)。作为示例,片上接口110包括用于片上通信的环形互连以及用于片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多的设备(诸如,网络接口、协处理器、存储器175、图形处理器180和任何其他已知的计算机设备/接口)可以被集成在单个管芯或集成电路上),以便提供具有高功能性和低功耗的小形状因子。
在实施例中,处理器100能够执行编译器、优化和/或转换器代码177以编译、转换和/或优化应用代码176,从而支持本文中描述的装置和方法或与它们对接。编译器常常包括用于将源文本/代码转换为目标文本/代码的程序或一组程序。通常,在多个阶段和多遍中完成用编译器对程序/应用代码的编译,以便将高级编程语言代码变换为低级的机器或汇编语言代码。然而,仍可将单遍的编译器仍用于简单的编译。编译器可以利用任何已知的编译技术,并且执行任何已知的编译器操作,诸如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器常常包括多个阶段,但最常见的是这些阶段被包括在两个总体阶段内:(1)前端,即,通常可以句法处理、语义处理和一些变换/优化可能发生之处,以及(2)后端,即,通常分析、变换、优化和代码生成发生之处。一些编译器是指中间的情况,这阐释编译器的前端与后端之间的模糊划分。结果,对编译器的插入、关联、生成或其他操作的引用可发生在前述多个阶段或多遍中的任何一个中,并发生在编译器的任何其他已知的阶段或轮次中。作为说明性示例,编译器潜在地在一个或多个编译阶段中插入操作、调用、函数等诸如,在编译的前端阶段中插入调用/操作,随后在变换阶段期间将这些调用/操作变换成较低层级的代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入此类操作/调用,并且在运行时期间优化此代码以供执行。作为特定的说明性示例,可在运行时期间动态地优化二进制代码(已编译代码)。在此,程序代码可以包括动态优化代码、二进制代码或它们的组合。
与编译器类似,转换器(诸如,二进制转换器)静态地或动态地转换代码以优化和/或转换代码。因此,对于代码、应用代码、程序代码或其他软件环境的执行的引用可以是指:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或转换器以编译程序代码,维护软件结构,执行其他操作,优化代码或转换代码;(2)执行主程序代码,所述主程序代码包括操作/调用,诸如,经优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如,库)以维护软件结构,执行其他软件相关的操作或优化代码;或(4)上述各项的组合。
对于某些应用,在系统的不同的组件之间的准确的时间同步技术可能是有用的。以这种方式,这些组件可以共享对具有高(例如,纳秒(ns))准确度的挂钟时间的公共视图。示例用途包括工业控制、音频-视频、包括语音处理和触觉反馈的人类接口、使用时间计费,等等。实施例可用于结合经由高速串行通信协议(诸如,外围组件互连快速(PCIe)或超高速通用串行总线(USB)(USB3.0))进行通信的设备提供精确时间测量(PTM)。
为此目的,实施例可以提供使设备的物理单元(PHY)能够准确地报告用于用于通过PHY进行的信息传输的发射和接收时序的机制。更具体而言,实施例可用于准确地确定并报告从设备的输入引脚通过PHY且随后去往设备的另一部分(例如,介质访问控制(MAC)部分)的信息传递的等待时间(latency),且反之亦然。在特定实施例中,PIPE兼容的设备包括用于提供这种精确时间测量的逻辑。PIPE是定义PCIe、USB和其他技术的MAC/PHY接口的行业规范,其当前版本是用于PCI快速、SATA和USB3.1架构4.2版的PHY接口(由英特尔公司发布,2013年)(在下文中称为PIPE规范)。
现在参见图2,示出的是片上系统的部分以及其到片外组件的连接的示例的框图。如图2中可见,系统200可以包括SoC210,此SoC210包括上游逻辑220,此上游逻辑220可以是各种类型的电路中的任何一种,诸如,处理电路、其他功能电路、控制器电路等,并且此上游逻辑220还可以包括链路-PHY接口的链路部分。这种上游和下游的概念可以基于PCI快速TM规范基本规范2.0版(2007年1月17发布)中那些术语的使用。然而,应理解,实施例不限于PCIeTM实现,并且上游和下游可以简单地是指相对于SoC的核元件(例如,SoC中可以耦合在上游逻辑220的上游的一个或多个核)的通信方向。
经由片上互连222,上游逻辑220与PHY225通信。如上所述,在一些实施例中,这种PHY可以符合PIPE规范。通常,PHY操作以取得传入信号(此传入信号能以高速并行地接收),并且调节并变换这些信号,以便经由物理互连230(即,片外互连)来输出。在所示出的实现中,片外互连可以是一对单向差分线,此单向差分线用于将数据发射到对应的PHY240(在一些实施例中,此PHY可以是独立式IC),并且用于从PHY240接收传入的差分信号对。在其他实施例中,可以存在多对Rx/Tx(接收/发射)信号,并且Rx和Tx不必是对称的。注意,如图2中所示,Rx和Tx是相对于SoC210的,并且它们对PHY240是相反的。PHY240又可以与下游逻辑250通信,此下游逻辑250再次可以是包括给定类型的功能的分开的IC,诸如,外围控制器(例如,盘控制器、网络接口卡,等等)。尽管在在图2的实施例中以此特定的实现示出,但应理解,在其他实现中,可以在单个半导体管芯上配置PHY240和下游逻辑250。此外,应理解,在不同的实施例中,SoC内可以存在多得多的电路。
在一个PTM实施例中,可以在设备的引脚处测量分组(packet)发射和接收时间。由于PHY内的等待时间是可变的,因此PHY可以配置成将实际的等待时间报告给MAC,使得MAC可以相应地调整时间值。各实施例可以提供一组附加的MAC/PHY接口信号来提供此PTM信息。
在实施例中,PIPE接口自身提供PHY渡越等待时间(transitlatency),可以逐码元地提供此PHY渡越等待时间。在实施例中,接口信号包括:发射和接收等待时间值(TxTime(Tx时间)和RxTime(Rx时间)),它们对应于PHY渡越等待时间(并且可以按照ns或其他合适的单位来传递);以及等待时间有效信号(TxTimeValid(Tx时间有效)和RxTimeValid(Rx时间有效)),它们对于每一个对应的被发射/接收码元提供在一个时钟周期内活动的有效指示。应理解,用于PTM信息的目的的其他等待时间测量信号可存在于其他实施例中。
在实施例中,从由PTM时钟驱动的自由运行的计数器中导出时间值(TxTime和RxTime)。此PTM时钟是准确的本地时钟。注意,此PTM时钟不需要支持ns粒度,并且在实施例中可以在大约10兆赫兹(MHz)与1千兆赫兹(GHz)之间操作。在实施例中,此自由运行的计数器以格雷码(Graycode)编码,使得可以安全地对它异步地采样。PHY的接收路径(Rx)等待时间将由于经恢复的位时钟与本地时钟之间的差异而改变,在本文中将此本地时钟称为PCLK,由PHY按此PCLK输出并行的样本。
在实施例中,用于PHY的Rx路径的PTM电路配置成在经恢复的码元时钟的每一个边沿处为接收到的每一个码元采样自由运行的计数器。通过1:1锁定到对于应码元的流水线中的Rx路径来传播此样本,特别是包括通过弹性缓冲器,在此弹性缓冲器中,缓冲器深度将取决于接收时钟与PCLK的比率而改变。注意,PIPE支持各种数据路径宽度,并且每当PHY执行数据路径宽度转换时,逐码元地维持对计数器的采样。在PTM电路的结束处,将此计数器值从格雷码转换成常规的时间值,并且从当前的计数器值中减去(借助于适当的环绕式处理(wraparound))此常规的时间至以提供等待时间值。在替代实现中,可以维护仅与可变元素(例如,弹性缓冲器)相关联的计数器,随后为每一个码元执行适当的运算以确定此PHY渡越时间。
对于PHY的发射路径(Tx)的发射等待时间不固定的情况,Tx路径包括也具有自由运行的计数器的PTM电路。在实施例中,可有TxPTM电路和RxPTM电路两者使用相同的计数器。还在每一个PCLK边沿对于为传输而提供的每一个数据单元来采样此计数器。注意,对于另一变体,PCLK可用作准确的本地时钟。通过1:1锁定到Tx时钟速率的流水线中的Tx路径来传播此样本。注意,PIPE支持各种数据路径宽度,并且每当PHY执行数据路径宽度转换时,逐码元地维持对计数器的采样。最后,将此计数器值从格雷码转换成常规的时间值,并且从当前的计数器值中减去(借助于适当的环绕式处理)此常规的时间值以提供等待时间。对于PHY的Tx等待时间固定的情况,不需要使用此PTM逻辑,并且简单地报告此固定值。在一些情况中,TxValid信号可能不存在,并且可以通过其他手段(例如,经由数据片)来提供Tx等待时间。注意,对于Rx路径,可能存在类似的情况(例如,通过在PHY中引入补偿等待时间)以确保Rx等待时间是一致的。
现在参见图3,所示出的是根据本发明的实施例的接收机设备的部分的框图。如图3中所示,接收机设备300配置成用于接收差分串行信号(D+/D-)的形式的传入信息,并且将此传入信息处理成用于供应至此接收机设备的附加的下游逻辑的形式。在各种实现中,此处理通常可以包括:将此传入差分串行数据转换成所期望的数据宽度的并行形式,并且根据给定的编码方案来执行时钟恢复操作和解码。
在图3中所示出的实施例中,接收机300包括主数据处理路径305和分开的精确时间测量路径350。将依次讨论它们。一般而言,实施例提供PTM路径350,以使对数据从接收机设备300的输入(一般在设备的引脚处)遍历到将并行数据传递至此接收机设备的其他部分(例如,MAC层)的等待时间确定能够以高准确度发生。
参见数据信号处理路径305,传入信息流被提供给差分接收机310,此差分接收机310生成被提供给数据恢复电路320和时钟恢复电路315两者的串行位流。从提供至时钟恢复电路320的位流中生成经恢复的位时钟信号,并且提供此经恢复的位时钟信号,以便对恢复电路320和串行-并行转换器325两者进行时钟计时。在实施例中,转换器325配置为x10转换器,使得收集传入串行位,直到10个位存在为止,10位的并行宽度被提供给检测电路330和弹性缓冲器335两者。应理解,接收机路径中的变化是可能的。例如,在一些情况下,能以串行域形式将数据置入弹性缓冲器中,并且在弹性缓冲器的输出处完成SIPO转换。
弹性缓冲器335包括多个条目,这些条目各自都存储传入并行数据字(例如,每个字10位码元)或其他可能的信息(诸如,状态、控制或其他信息)。在实施例中,缓冲器335可以具有大约在8-50个之间的条目。
在实施例中,检测电路330配置成用于检测预先确定的码元,在PCIe实现中,此预先确定的码元可以对应于K28.5控制码元。当检测到此类码元时,这构成分组码元的开始,并且由此经恢复的码元时钟信号被生成并用于对弹性缓冲器335的写入端口进行时钟计时。在实施例中,基于通过检测到K28.5码元而确定的对准来把码元时钟锁定到位时钟,使得此码元时钟继续以适当的间隔(例如,每10b)触发。弹性缓冲器335的读取端口又被配置成用于接收读取时钟信号(例如,从本地时钟获得),此读取时钟信号通常能以不同的频率(例如,125或250MHz)来操作。
仍然参见主信号处理路径305,当根据此读取时钟信号来读取弹性缓冲器335时,数据字(例如,10位码元)被输出到解码器340,在实施例中,此解码器340是8b10b解码器,从而从码元的10位中生成8位字。注意,将8b/10b转换定位为在弹性缓冲器之前也是可能的。接下来,位宽度逻辑345可以任选地存在,并且可用于生成输出到接收机设备的进一步电路(为了易于阐释,在图3中未示出)的期望宽度(例如,x8、x16或x32)的并行数据分组。在实施例中,可以把将此并行数据提供给设备的MAC电路,以进行进一步处理。当然,应理解,附加的组件和信号可以存在于给定的接收机中;然而,在此不提出它们,以免使所公开的主题含糊。存在可替代8b/10b来应用的其他编码方案(例如,128b/130b(用于PCIe“Gen3”8GT/s模式)),这不改变PTM处理的一般方面。
仍然参见图3,进一步阐释的是PTM路径350。一般而言,PTM路径350配置成以高准确度来确定在主信号处理路径305内的数据遍历的等待时间。为此目的,计数器360存在,在实施例中,此计数器360可以是自由运行的计数器,诸如,格雷码计数器。在实施例中,此计数器可以具有大约在4位宽与7位宽之间的宽度。如图可见,由PTM时钟对计数器360进行时钟计时,在实施例中,PTM时钟是从准确的本地时钟生成的时钟信号。在一个实施例中,PTM时钟能以100MHz的频率操作,并且可以对应于本地子时钟。借助于此本地子时钟,可以实现高准确度,因为能以高准确度(例如,在50ppm内)配置此时钟,并且此时钟可配置成在无需扩谱时钟计时(clocking)的情况下来操作。
计数器360的输出被提供给存储设备365,在实施例中,此存储设备365被实现为根据经恢复的码元时钟信号而被采样的寄存器。如下文中进一步所述,应注意,计数器360的输出耦合到PTM路径350的附加逻辑。
当根据经恢复的码元时钟来采样时,所存储的计数器值被提供给镜像弹性缓冲器370,此镜像弹性缓冲器370配置成用于维持与对应的弹性缓冲器335的对准。因而,在实施例中,镜像弹性缓冲器370的条目的数量可以与弹性缓冲器335中存在的条目的数量相同。
在特定实现中,与提供分开的镜像弹性缓冲器不同,可以提供更宽的弹性缓冲器335来呈现用于容纳从转换器325接收的并行数据和由寄存器365输出的计数值输出两者的宽度。在此类实现中,某些设计约束可以是宽松的。
在任一种情况下,来自镜像弹性缓冲器370的输出值被提供给另一存储设备375,此另一存储设备375被实现为转而由本地时钟(即,充当弹性缓冲器335的读取端口时钟和解码器340的时钟的同一个本地时钟)采样的另一寄存器。另一存储380级联地耦合到此寄存器375,并且可以被实现为根据并行时钟(PCLK)(为来自位宽度逻辑345的适当的位宽度的并行数据的输出而提供的并行时钟)采样的又一寄存器。
当被采样时,所得到的计数值被提供给解析逻辑390,此解析逻辑390进一步直接从计数器360接收当前计数器输出。一般而言,解析逻辑390可以至少部分地基于这两个计数器值(即,通过PTM路径350提供的计数器值以及直接从计数器360获得的当前的计数器值)来确定数据流水线遍历的等待时间。在图3中所示的实施例中,此等待时间值可作为信号RxTime以及等待时间有效信号RxTimeValid来传递,此等待时间有效信号RxTimeValid可以对每一个码元活动一次。尽管在图3的实施例用以此高层级示出,但应理解,本发明的范围不限于这方面。
例如,在代替提供用于执行PTM操作的完全分开的路径的另一实现中,少量的电路可添加到主数据处理路径以生成本文中描述的PTM信息。在此优化中,可以避免PTM路径中的至少部分。
更具体而言,在另一实施例中,为了确定由弹性缓冲器引起的可变的等待时间,可以提供与弹性缓冲器相关联的逻辑以进一步将关于弹性缓冲器的当前深度(即,在写入新条目的时刻,缓冲器中待定条目的数量)的附加信息写入到传入条目中。在弹性缓冲器335是30条目缓冲器的实施例中,每一个条目可以扩展5位,以便因而容纳对应于在写入条目的时刻的当前的缓冲器深度的计数值。为此目的,弹性缓冲器335可以在内部包括PTM逻辑,以便维护关于当前的缓冲器深度的信息并结合传入条目的存储而将对应于当前深度的值存储到弹性缓冲器中。随后,此信息在遍历弹性缓冲器335以及数据处理路径的其余部分时可以随此条目一起行进,使得此信息变得对于MAC层可用,以进行进一步处理。在一些实施例中,此深度值可作为除主信号处理路径之外的一个或多个边带信号来传递。取决于如何表达输出,在这两种情况下,对于Rx,一种情况可具有用于PT输出的有效信号,或者一种情况可以将PTM输出与所接收的码元输出组合,在后一种情况下,相同的“有效”指示适用于PTM输出和所接收的码元输出两者。对于Tx,如果存在动态的PTM输出,则也产生有效指示。
注意,连同从弹性缓冲器335输出的数据一起提供的此PTM值是对可变的等待时间的准确的测量。然而,应理解,数据通过PHY单元的附加的部分的遍历的固定等待时间仍然发生。考虑到此等待时间是固定的,在此实施例中,MAC层(或更高的协议层)可以简单地将对应于此固定等待时间的预先确定的值添加到此PTM值,以便因而获得遍历PHY单元的真实的PTM等待时间。
现在参见图4,所示出的是根据本发明的实施例的方法的流程图。如图4中所示,方法400可用于执行精确时间测量操作,以便以高准确度来确定数据通过数据处理路径(例如,PHY单元的数据处理路径)遍历的等待时间。在实施例中,在PHY自身内的控制逻辑(例如,分开的PTM处理路径)可以执行PTM确定。因而,图4的实施例用于结合(诸如,图3中所示的)用于PTM处理的分开的并行路径来使用。
如图可见,方法400开始于:将自由运行的计数器的输出存储在第一寄存器中。在实施例中,自由运行的计数器可以是格雷码计数器,此格雷码计数器具有6为,并且在开始值与结束值之间计数。此计数器可以根据本地PTM时钟来操作,并且因而可以输出计数值以供根据时钟信号来存储到此第一寄存器中。然而,应注意,此寄存器不一定在每一次计数器值输出时被采样。也就是说,可以根据从传入数据流中恢复的码元时钟信号来采样此第一寄存器。因而,在框420处,可以根据此码元时钟信号来采样存储在第一寄存器中的当前值。接下来在框430处,可使采样值传播通过被锁定到码元处理流水线的PTM流水线。在实施例中,此PTM流水线可以包括镜像弹性缓冲器,此镜像弹性缓冲器具有与主信号处理路径的弹性缓冲器相同数量的条目。可以提供附加的存储元件或寄存器,以便将主信号处理路径的附加的处理组件的等待时间考虑在内。
最终,在框440处,可以确定码元处理流水线的等待时间。更具体而言,此等待时间可以基于传播通过PTM流水线的采样值以及可以直接从自由运行的计数器提供的当前的计数器输出值。当然,在确定等待时间时,可将附加的考量考虑在内。例如,并非信号处理路径的所有组件都被PTM流水线考虑在内。因而,一个或多个预先确定的值可进一步被包括在等待时间确定中,以便将主数据处理路径内的附加的处理组件考虑在内。实际计算的一个示例如下所示:
RxTimeValid:=
(模数-计数器-宽度(CurrentPTMCount–SampledPTMCount)+ConstantPartofDelayThroughRx
(Rx时间有效:=
(模数-计数器-宽度(当前PTM计数-取样PTM计数)+
通过Rx的延迟的常数部分)
所确定的等待时间可作为时间值被提供给接收机设备的进一步的部分(例如,MAC电路),这些进一步的部分可以进一步处理任选地提供给更高的层(诸如,链路层和事务层)的信息或可能仍然正在进一步处理。除了提供此等待时间信息之外,还可以生成有效信号以指示对应的码元中的一个PCLK的活动的和有效的渡越等待时间值。应理解,尽管假设方法400用于接收机流水线的目的,但是对于发射流水线可以执行类似的操作以确定那个发射电路的等待时间。
现在参见图5,所示出的是根据本发明的实施例的发射机设备的部分的框图。如图5中所示出,发射机设备500配置成例如从设备的MAC单元接收传入并行信息,并且将此传入信息处理成用于传递至另一设备的形式,所述另一设备经由互连耦合到此发射机设备。在各种实现中,此处理通常可以包括:将给定宽度的传入并行数据转换成差分串行数据;以及根据给定的编码方案来执行编码。
在图5中所述示的实施例中,发射机500(其可以是设备的发射部分,此设备进一步包括接收机部分(诸如,图3的接收机))包括主数据处理路径505和分开的精确时间测量路径550。一般而言,实施例提供PTM路径550以便使等待时间确定能够发生,使得能以高准确度来确定数据从输入遍历到发射机设备500(例如,经由MAC/PHY接口)以便经由设备的引脚来传递差分串行数据的等待时间。
参见数据信号处理路径505,将任选的位宽度逻辑510提供给传入并行数据,以便将传入并行数据(例如,从x16或x32宽度)转换成适当的位宽度(例如,8位字),此适当的位宽度的数据转而被提供给编码器520。在实施例中,编码器520是用于从8位中生成10位码元的8b10b解码器。当然,可取代8b/10b来应用其他编码方案(例如,128b/130b),这不改变PTM处理的一般方面。接下来,在实施例中,并行-串行转换器530配置成将并行数据转换成串行格式以便传送至差分驱动器540,此差分驱动器540生成差分串行位流,以供经由设备的引脚输出。当然应理解,附加的组件和信号可以存在于给定的接收机中;然而,在这里不提出它们以免使所公开的主题含糊。
仍然参见图5,进一步阐释的是PTM路径550。一般而言,PTM路径550配置成以高准确度来确定数据在主信号处理路径505内遍历的等待时间。为此目的,存在计数器560,在实施例中,此计数器560可以是自由运行的计数器,诸如,格雷码计数器。在一些实施例中,此计数器可由接收路径的PTM逻辑共享。如图可见,由PTM时钟对计数器560进行时钟计时。
计数器560的输出被提供给存储设备565,在实施例中,此存储设备565被实现为根据PCLK而被采样的寄存器。如下文中进一步所述,注意,计数器560的输出耦合到PTM路径550的附加逻辑。
当根据此时钟信号被采样时,所存储的计数器值被提供给另一存储570(例如,又基于位率时钟(例如,此时钟速率的10%)而被采样另一寄存器)。从这里,采样值被提供给又一存储设备480,在所述实施例中,此存储设备480是又由位率时钟自身来进行时钟计时的另一寄存器。注意,存储设备565、570和580都可以是背靠背(back-to-back)寄存器的多个级,例如,因此元件570上的3时钟延时通过编码器来维持与3时钟流水线的对准。
当此存储设备被采样时,所得到的计数值被提供给解析逻辑590,此解析逻辑590进一步直接从计数器560接收当前的计数器输出。一般而言,解析逻辑590可以至少部分地基于这两个计数器值(即,通过PTM路径550提供的计数器值以及直接从计数器560获得的当前的计数器值)来确定数据流水线遍历的等待时间。在图5中所示的实施例中,此等待时间值可以作为信号TxTime连同等待时间有效信号TxTimeValid一起例如往回被传递至MAC单元,所述同等待时间有效信号TxTimeValid可以对每一个码元活动一次。尽管在图5的实施例中以此高层级示出,但应理解,本发明的范围不限于这方面。例如,与提供用于确定等待时间的分开的PTM路径(尤其是在发射方向上)不同,预先确定的等待时间值可以是可用的,并且可避免了对此分开的路径的需求。在此类实施例中,此预先确定的值可传递至接收机,使得接收机可以执行任何适当的计算来利用这种渡越等待时间信息。同样,提供如上文中参照接收机300所描述的类似的减少的时间测量路径是可能的。
现在参见图6,所示出的是根据本发明的实施例的设备的PHY/MAC接口的框图。如图6中所示,设备200'(其可以是单个IC,诸如,图2的SoC200)包括在MAC层223与PHY层224之间的接口。如图可见,MAC层223耦合到包括链路层的更高的层,而PHY层224可转而例如通过发射和接收方向上的差分信号对二耦合到物理互连。
在MAC层223与PHY层224之间发生各种信令。一般而言,将从设备200发射的数据(TxData(Tx数据))和数据/控制信号(TxDataK(Tx数据K))连同可变数量的命令信号一起从MAC层223发送到PHY层224。此外,对于由PHY224传递的每一个码元,可以将等待时间时间值(TxTime(Tx时间))和等待时间时间有效信号(TxTimeValid(Tx时间有效))往回发送至MAC层223,以便反映针对TxData等所预期的、传输将呈现的渡越时间。也在此方向上传递PCLK。
反过来,对于在设备200'内接收到的传入数据,PHY层224将作为RX数据(RxData(Rx数据))的并行数据与对应的数据/控制信息(RxDataK(Rx数据K))一起传递。此外外,可以连同对应的PCLK一起传递可变长度的状态信息。同样,对于所传递的每一个码元,也可以发送等待时间时间值(RxTime(Rx时间))和等待时间时间有效信号(RxTimeValid(Rx时间有效))。尽管在图6的实施例中以此高层级示出,但应理解,本发明的范围不限于这方面。
例如,可在具有多通道(multi-lane)PIPE实现的情形中使用实施例。在这些情况下,MAC层可以提供与物理层的多个PHY进行的每通道的(perlane)通信。为了在这些组件之间传递信息,可以在发射和接收方向上提供多个每通道的信号。另外,这些通道中的一个或多个可供精确时间测量信号的传递。在一种特定实现中,仅单个通道(例如,通道零)可供发射和接收等待时间值以及对应的有效信号的传递。由于跨多个通道等待时间大致相同,因此此类优化可以减少不动产成本,同时仍然提供准确的等待时间信息。当然应理解,在其他实施例中,每一个通道可供发射和接收等待时间信息的传递。
PTM可以用于范围从音频视频到工业控制的各种应用。通过根据PIPE规范或其他MAC/PHY实现来为设备提供PTM机制,网络接口控制器(NIC)或其他联网设备可与此类设备同步它们的时间值。并且,使用本发明的实施例,PTM可以提供单位数的ns(在实施例中,好到1ns)的PTM目标准确度。实施例可以用于位PCIe和USB设备两者而使用的PIPE接口。然而,应理解,本发明的范围不限于此类实现,并且可以跨广泛范围的实现(既在半导体器件内部,也在设备生态系统内)来使用本文中描述的PTM机制。
一种互连结构架构包括PCIe架构。PCIe的主要目标在于,使来自不同供应商的组件和设备能够在跨越多个细分市场(客户机(台式机和移动的)、服务器(标准型和企业型)以及嵌入式设备和通信设备)的开放架构中互操作。PCI快速是为各种的未来计算和通信平台定义的高性能通用I/O互连。通过其修订版已维护了一些PCI属性(诸如,其使用模型、加载-存储架构和软件接口),而先前的并行总线实现已由高度可扩展的、完全串行的接口替代。PCI快速的最新版本利用点对点互连、基于交换的技术和分组化协议的进展来实现新的的性能和特征水平。功率管理、服务质量(QoS)、热拔插/热切换支持、数据完整性和错误处置是由PCI快速支持的高级特征中的一些。
参见图7,阐释了由点对点链路组成的结构的实施例,所述点对点链路互连一组组件。系统700包括耦合到控制器中枢715的处理器705和系统存储器710。处理器705包括任何处理元件,诸如,微处理器、主处理器、嵌入式处理器、协处理器或其他处理器。处理器705通过前侧总线(FSB)706耦合到控制器中枢715。在一个实施例中,FSB706是如下文所述的串行点对点互连。在另一实施例中,链路706包括与不同的互连标准兼容的串行差分互连架构。
系统存储器710包括任何存储器设备,诸如,随机存取存储器(RAM)、非易失性(NV)存储器或可由系统700中的设备访问的其他存储器。系统存储器710通过存储器接口716而耦合到控制器中枢715。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中枢715是外围组件互连快速(PCIe或PCIE)互连层次结构中的根中枢、根复合体(complex)或根控制器。控制器中枢715的示例包括芯片组、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥和根控制器/中枢。术语“芯片组”通常是指两个物理上分开的控制器中枢,即,耦合到互连控制器中枢(ICH)的存储器控制器中枢(MCH)。注意,当前的系统常常包括与处理器705集成的MCH,而控制器715用于以与下文所述类似的方式来与I/O设备通信。在一些实施例中,通过根复合体任选地支持对等(peer-to-peer)路由。
在此,控制器中枢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、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。通常在PCIe习语中,此类设备被称为端点。尽管没有专门示出,但是设备725可以包括用于支持旧式或其他版本的PCI设备的PCI至PCI/PCI-X桥接器。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-图9的讨论涉及PCIe栈,但是相同的概念可以应用于其他互连栈。在实施例中,协议栈800是包括事务层805、链路层810和物理层820的PCIe协议栈。接口可以被表示为通信协议栈800。表示为通信协议栈也可以被称为实现/包括协议栈的模块或接口。
PCI快速使用分组以在组件之间传递信息。在事务层805和数据链路层810中形成分组,以便将信息从发射组件携带到接收组件。随着被发射的分组流经其他层,用在那些层处来处置分组所必需的附加信息来扩展这些分组。在接收侧,相反的过程发生,并且分组从它们的物理层820表示变换成数据链路层810表示且最终(对于事务层分组而言)变换成可以由接收设备的事务层805处理的形式。
在一个实施例中,事务层805用于提供设备的处理核与互连架构之间的接口,诸如,数据链路层810和物理层820。在这方面,事务层805的主要职责是对分组(即,事务层分组或TLP)的组装和拆分。转换层805通常管理用于TLP的基于信用的流控制。PCIe实现经拆分的事务(即,由时间分开的具有请求和响应的事务),从而当目标设备收集用于响应的数据时,允许链路携带其他通信量。
另外,PCIe利用基于信用的流控制。以此方案,设备通告事务层805中的接收缓冲器中的每一个的初始信用量。在链路的相对端处的外部设备(诸如,控制器中枢)对由每一TLP消耗的信用的数量计数。如果事务不超过信用限制,则可以发射事务。在接收到响应后,就恢复信用量。信用方案的优点在于,如果不遇到信用限制,则信用返回的等待时间不影响性能。
在一个实施例中,四事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括往/返于存储器映射的位置来传输数据的读取请求和写入请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,短地址格式(诸如,32位地址)或长地址格式(诸如,64位地址)。配置空间事务用于访问PCIe设备的配置空间。去往配置空间的事务包括读取请求和写入请求。消息空间事务(或者简单地称为消息)被定义成支持在PCIe代理之间的带内通信。
因此,在一个实施例中,事务层805组装分组头部/有效载荷806。可在PCIe规范网站处的PCIe规范中找到当前的分组头部/有效载荷的格式。
链路层810(也称为数据链路层810)充当在事务层805与物理层820之间的中介级。在一个实施例中,数据链路层810的职责在于,提供用于在链路的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层810的一侧接受由事务层805组装的TLP,应用分组序列标识符811(即,标识号或分组号),计算并应用错误检测代码(即,CRC812),并且将经修改的TLP提交至物理层820,以供跨越物理层而传输到外部设备。
在一个实施例中,物理层820包括逻辑子块821和电气字块822,此电气子块822用于物理地将分组发射到外部设备。在此,逻辑子块821负责物理层821的“数字”功能。在这方面,逻辑子块包括发射区段和接收机区段,所述发射区段用于准备传出信息以供由物理子块822传输,所述接收机区段用于在将接收到的信息传送至链路层810之前标识并准备接收到的信息。
物理块822包括发射机和接收机。由逻辑子块821将码元供应给发射机,所述发射机串行化此码元,并且将此码元发射到外部设备。以来自外部设备的串行化的码元来供应接收机,并且此接收机将接收到的信号变换成位流。此位流经去串行化,并且将被供应至逻辑子块821。在一个实施例中,在发射/接收十位的码元的情况下,采用8b/10b传输码。在此,使用特殊码元来以帧823对分组分帧。此外,在一个示例中,接收机也提供从传入串行流中恢复的码元时钟。
如上所述,尽管参考PCIe协议栈的特定实施例讨论了事务层805、链路层810和物理层820,但是分层式协议栈不限于此。事实上,可以包括/实现任何分层式协议。作为示例,被表示成分层式协议的端口/接口包括:(1)用于组装分组的第一层,即,事务层;用于对分组定序的第二层,即,链路层;以及用于发射分组的第三层,即,物理层。作为特定的示例,利用QPI分层式协议。
接下来参见图9,阐释PCIe串行点对点结构的实施例。尽管阐释了PCIe串行点对点链路的实施例,但是串行点对点链路不限于此,因为它包括用于发射串行数据的任何传输路径。在所示实施例中,基本的PCIe链路包括两个低电压差分驱动的信号对:发射对906/911和接收对912/907。相应地,设备905包括用于将数据发射至设备910的发射逻辑906以及用于从设备910接收数据的接收逻辑907。换句话说,PCIe链路中包括两条发射路径(即,路径916和917)以及两条接收路径(即,路径918和919)。
发射路径是指用于发射数据的任何路径,诸如,传输线、铜线、光学线、无线通信信道、红外通信链路或其他通信路径。两个设备(诸如,设备905和设备910)之间的连接被称为链路,诸如,链路415。链路可以支持一个通道——每一个通道都表示一组差分信号对(一对用于发射,一对用于接收)。为了按比例缩放带宽,链路可以聚合由xN表示的多个通道,其中,N是任何受支持的链路宽度,诸如,1、2、4、8、12、16、32、64或更宽。
差分对是指用于发射差分信号的两个发射路径(诸如,线路916和917)。作为示例,当线路916从低电压电平切换到高电压电平时(即,上升沿),线路917从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号潜在地展现出更好的电气特性,诸如,更好的信号完整性(即,交叉耦合)、电压过冲/下冲、振铃(ringing),等等。这提供了更好的定时窗口,从而允许更快的传输频率。
接下来转到图10,描绘根据实施例的SoC设计的实施例。作为特定的说明性示例,SoC2000包括在用户装备(UE)中。在一个实施例中,UE是指可由终端用户用来通信的任何设备,诸如,手持式电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本或任何其他类似的通信设备。UE常常连接到基站或节点,此基站或节点在性质上潜在地对应于GSM网络中的移动站(MS)。
在此,SoC2000包括2个核——2006和2007。与上述讨论类似,核2006和2007可以符合指令集架构,诸如,基于架构CoreTM的处理器、超微半导体公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计、或上述各者的消费者,以及上述各者的授权方或采用者。核2006和2007耦合到高速缓存控制设备2008以便与系统2000的其他部分通信,此高速缓存控制设备与总线接口单元2009和L2高速缓存2010相关联。互连2010包括潜在地实现本文中描述的一个或多个方面片上互连,诸如,IOSF、AMBA或上文中讨论的其他互连,它们。
互连2010提供至其他组件的通信信道,诸如,用于与订户身份模块(SIM)卡对接的SIM2030、用于保存供由核2006和2007执行以初始化并引导SOC2000的引导代码的引导ROM2035、用于与外部存储器(例如,DRAM2060)对接的SDRAM控制器2040、用于与非易失性存储器(例如,闪存2065)对接的闪存控制器2045、用于与外围设备对接的外围控制器2050(例如,串行外围接口)、用于显示并接收输入(例如,允许触摸的输入)的视频编解码器2020和视频接口2025、用于执行图形相关计算的GPU2015,等等。这些接口中的任何都可以合并本文中描述的多个方面。
此外,此系统阐释用于通信的外围设备,诸如,蓝牙模块2070、3G调制解调器2075、GPS2080和WiFi2085。系统中还包括功率控制器2055。注意,如上所述,UE包括用于通信的无线电设备。结果,这些外围通信模块并不都是必需的。然而,在UE中,将包括用于外部通信的某种形式的无线电设备。
下列示例涉及进一步的实施例。
在一个示例中,一种装置包括:定时逻辑,用于在数据单元进入耦合到串行互连的物理层的路径时将第一值与所述数据单元相关联;以及等待时间逻辑,用于在从所述物理层的所述路径退出时关联第二值,并且基于所述第一值和所述第二值来确定与所述物理层的所述路径相关联的等待时间。
在示例中,所述装置进一步包括:计数器,用于根据本地时钟信号而在开始值与结束值之间计数,所述定时逻辑包括所述计数器;第一寄存器,用于存储所述计数器的输出,其中根据经恢复的时钟信号来采样所述第一寄存器;镜像弹性缓冲器,用于存储从所述第一寄存器接收到的所述计数器输出的样本,其中,所述镜像弹性缓冲器用于对所述物理层的弹性缓冲器进行镜像操作;以及解析逻辑,用于:接收来自所述镜像弹性缓冲器的计数器输出样本以及来自所述计数器的当前的计数器值输出;以及至少部分地基于所述计数器输出样本以及所述当前的计数器值来确定所述数据单元遍历所述物理层的等待时间,所述等待时间逻辑包括所述解析逻辑。
在示例中,所述解析逻辑用于将对应于所述等待时间的时间值以及指示所述时间值有效的有效信号输出到MAC单元。所述装置可以包括精确时间测量电路,并且所述精确时间测量电路的等待时间被锁定到码元从所述物理层的互连接口遍历到MAC接口的等待时间。
在示例中,所述计数器包括格雷码计数器,并且其中,所述解析逻辑用于将所述当前的计数器值与所述计数器输出样本之间的差异从格雷码转换成二进制值。所述物理层可以响应于在所述物理层的检测器中检测到第一码元而获取所述经恢复的时钟信号。所述镜像弹性缓冲器可以包括所述弹性缓冲器的部分,所述部分包括各自均为所述弹性缓冲器的对应条目的预先确定数量的位的多个条目。
在另一示例中,一种装置包括:PHY,其耦合到串行链路,其中,所述PHY包括:接收机路径,用于处理经由所述串行链路而接收的数据,所述接收机路径包括与固定等待时间相关联的至少一个固定等待时间级以及至少一个可变等待时间阶段;以及可变等待时间逻辑,用于确定与所述至少一个可变等待时间级相关联的度量;以及PHY等待时间逻辑,用于基于所述固定等待时间和所述度量来确定所述接收机路径的PHY等待时间。
在示例中,所述PHY包括:恢复电路,用于从所述数据中恢复位流和第一时钟信号;转换器,用于将所述位流转换成并行数据;弹性缓冲器,具有根据第一时钟信号被写入以及根据第二时钟信号被读取的多个条目,所述弹性缓冲器对应于所述可变等待时间级的至少部分;并且所述可变等待时间逻辑耦合到所述弹性缓冲器,以便当所述并行数据被写入到所述弹性缓冲器的条目中时来确定所述弹性缓冲器的深度,并且将所述深度的值与所述对应的条目相关联,从而允许确定所述度量。
在示例中,所述可变等待时间逻辑用于:利用所述弹性缓冲器中的所述对应的条目来存储所述值。所述可变等待时间逻辑可以包括具有n位的计数器,其中所述弹性缓冲器的所述多个条目不大于2n。所述PHY可以进一步包括解码器,所述解码器用于将所述并行数据解码成经解码的码元,所述解码器耦合到所述弹性缓冲器的输出。所述PHY可以传递具有所述经解码的马原的所述值。MAC单元可以耦合到所述PHY,以便接收所述经解码的码元和对应的值,并且确定所述PHY的渡越等待时间。所述MAC单元可以进一步包括控制器,所述控制器用于基于所述度量和所述固定等待时间来确定所述渡越等待时间。
在示例中,所述装置可以是处理器,可以使用各种手段来实现所述处理器。在示例中,所述处理器包括合并在用户装备或允许触摸的设备中的SoC。在另一示例中,一种系统包括显示器和存储器,并且包括以上示例中的一个或多个的处理器。
在另一示例中,一种方法包括以下步骤:将第一计数器的输出存储在第一存储设备中;根据码元时钟信号来采样所述第一存储设备的值;传播所述采样值通过被锁定到码元处理流水线的并行流水线,所述码元处理流水线用于:接收串行数据且将所述串行数据转换成并行数据;以及将所述并行数据输出到MAC电路;以及在所述并行流水线的逻辑中,基于所述采样值和所述第一计数器的当前输出来确定所述码元处理流水线的等待时间。
所述方法可以进一步包括:在示例中,利用独立的时钟信号来对所述第一计数器进行时钟计时。所述方法还可以包括:在示例中,将来自所述第一存储的所述采样值存储在镜像缓冲器中,所述镜像缓冲器包括等于所述码元处理流水线的弹性缓冲器的条目的数量的条目量。所述方法可以进一步包括:在示例中,从所述镜像缓冲器输出所述采样值,并且将所述采样值存储在耦合到所述镜像缓冲器的第二存储设备中。
在示例中,所述方法可以进一步包括以下步骤:将所述采样值从所述第二存储设备提供至解析逻辑,所述解析逻辑进一步接收所述第一计数器的所述当前输出。所述方法可以进一步包括:在示例中,在所述解析逻辑中,使用所述当前输出、所述已采样值以及预先确定的值来确定所述等待时间,所述预先确定的值对应于所述码元处理流水线的固定等待时间的至少部分。
在示例中,所述方法可以进一步包括以下步骤:经由边带信道将等待时间值和等待时间有效信号传递至所述MAC电路,所述等待时间值与经由主信道从所述码元处理流水线传递至所述MAC电路的经解码的码元相关联。
所述方法可以进一步包括在示例中,将串行数据从PHY传递至经由互连而耦合到所述PHY的设备,以及为所传递的串行数据确定所述PHY的发射部分的渡越等待时间的等待时间值,其中,所述等待时间值对于每一码元有效达一个时钟周期且被传递至所述MAC电路。
在另一示例中,一种计算机可读介质包括指令,所述指令用于执行以上示例中的任何示例的方法。
在另一示例中,一种装置包括用于执行以上示例中的任何示例的方法的设备。
在另一示例中,一种系统包括:接收机,用于经由互来连接收串行数据,其中,所述接收机包括:PHY,用于接收所述串行数据且将所述串行数据转换成并行数据,并且将所述并行数据提供给所述接收机的MAC单元,其中,所述PHY具有在所述PHY中对所述串行数据的接收与所述并行数据向所述MAC单元发射之间的可变等待时间,所述PHY进一步包括逻辑,所述逻辑用于确定所述可变等待时间的值,并且将所述至与所述并行数据一起传递至所述MAC单元;以及所述MAC单元,用于接收并处理所述并行数据,所述MAC单元进一步用于接收所述值;以及发射机,经由所述互连耦合到所述接收机,以生成所述串行数据,并且将所述串行数据传递至所述接收机。
在示例中,所述PHY包括接收路径和发射路径,所述发射路径用于接收来自所述MAC单元的并行信息,并且将所述并行信息转换成串行位流,以供经由所述互连传递至所述发射机。
在示例中,所述发射路径包括第二逻辑,用于将第二值传递至所述MAC单元,所述第二值对应于在所述PHY中的对所述并行信息的接收与所述串行位流向所述发射机的发射之间的等待时间。
在示例中,所述PHY包括弹性缓冲器,用于存储所述并行数据的条目,所述弹性缓冲器具有可变深度,并且其中,所述逻辑用于:利用所述弹性缓冲器中的对应的条目来存储所述值。所述逻辑可以包括具有n位的计数器,其中,所述弹性缓冲器的所述多个条目不大于2n。所述PHY可以包括码元处理路径和时间测量路径,所述码元处理路径包含所述弹性缓冲器,所述时间测量路径包含所述计数器,所述逻辑和镜像弹性缓冲器用于维护与所述弹性缓冲器的深度相等的深度。所述MAC单元可以包括控制器,所述控制器用于基于所述值和预先确定的固定等待时间值来确定所述PHY的渡越等待时间。
应理解,上面的示例的各种组合都是可能的。
各实施例可以用于多种不同类型的系统。例如,在实施例中,一种通信设备可以被安排为执行本文中描述的各种方法和技术。当然,本发明的范围不限于通信设备,并且相反,其他实施例可以针对用于处理指令的其他类型的装置或包括指令的一种或多种机器可读介质,响应于在计算设备上执行,这些指令引起设备执行本文中描述的方法和技术中的一种或多种。
可以以代码实现各实施例,且各可以被存储在其上存储有指令的非暂态存储介质上,非暂态存储介质可以用来编程系统以执行指令。存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、固态驱动器(SSD)、紧致盘只读存储器(CD-ROM)、可重写紧致盘(CD-RW)和磁-光盘;半导体器件如只读存储器(ROM)、随机存取存储器(RAM)如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM),可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM)、磁或光卡;或适用于存储电子指令的任何其他类型的介质。
尽管已经参考有限数量的实施例描述了本发明,但本领域中的技术人员将明白源于其的众多修改和变化。预期所附权利要求覆盖落在本发明的真正精神和范围内的所有这样的修改和变化。

Claims (30)

1.一种装置,所述装置包括:
定时逻辑,所述定时逻辑用于在数据单元进入耦合到串行互连的物理层的路径时将第一值与所述数据单元相关联;以及
等待时间逻辑,所述等待时间逻辑用于在从所述物理层的所述路径退出时关联第二值,并且用于基于所述第一值和所述第二值来确定与所述物理层的所述路径相关联的等待时间。
2.如权利要求1所述的装置,所述装置进一步包括:
计数器,所述计数器用于根据本地时钟信号而在开始值与结束值之间计数,所述定时逻辑包括所述计数器;
第一寄存器,所述第一寄存器用于存储所述计数器的输出,其中,根据经恢复的时钟信号来采样所述第一寄存器;
镜像弹性缓冲器,所述镜像弹性缓冲器用于存储从所述第一寄存器接收到的所述计数器输出的样本,其中,所述镜像弹性缓冲器用于对所述物理层的弹性缓冲器进行镜像操作;以及
解析逻辑,所述解析逻辑用于:接收来自所述镜像弹性缓冲器的计数器输出样本以及来自所述计数器的当前的计数器值输出;以及至少部分地基于所述计数器输出样本以及所述当前的计数器值来确定所述数据单元遍历所述物理层的等待时间,所述等待时间逻辑包括所述解析逻辑。
3.如权利要求2所述的装置,其特征在于,所述解析逻辑用于:将对应于所述等待时间的时间值以及指示所述时间值有效的有效信号输出到介质访问控制(MAC)单元。
4.如权利要求2所述的装置,其特征在于,所述装置包括精确时间测量电路,并且所述精确时间测量电路的等待时间被锁定到码元从所述物理层的互连接口遍历到MAC接口的等待时间。
5.如权利要求2所述的装置,其特征在于,所述计数器包括格雷码计数器,并且其中,所述解析逻辑用于将所述当前的计数器值与所述计数器输出样本之间的差异从格雷码转换成二进制值。
6.如权利要求1所述的装置,其特征在于,所述物理层用于:响应于在所述物理层的检测器中检测到第一码元而获得所述经恢复的时钟信号。
7.如权利要求1所述的装置,其特征在于,所述镜像弹性缓冲器包括所述弹性缓冲器的部分,所述部分包括多个条目,所述多个条目中的每一个条目都是所述弹性缓冲器的对应条目的预定数量的位。
8.一种装置,所述装置包括:
物理层单元(PHY),所述PHY耦合到串行链路,所述PHY包括:
接收机路径,所述接收机路径用于处理将经由所述串行链路而接收的数据,其中,所述接收机路径包括至少一个固定的等待时间级以及至少一个可变等待时间级,所述至少一个固定的等待时间级与固定的等待时间相关联;
可变等待时间逻辑,所述可变等待时间逻辑用于确定与所述至少一个可变等待时间级相关联的度量;以及
PHY等待时间逻辑,所述PHY等待时间逻辑用于基于所述固定的等待时间和所述度量来确定所述接收机路径的PHY等待时间。
9.如权利要求8所述的装置,其特征在于,所述PHY包括:
恢复电路,所述恢复电路用于从所述数据中恢复位流和第一时钟信号;
转换器,所述转换器用于将所述位流转换成并行数据;
弹性缓冲器,所述弹性缓冲器具有根据第一时钟信号被写入以及根据第二时钟信号被读取的多个条目,所述弹性缓冲器对应于所述可变等待时间级的至少部分;并且
所述可变等待时间逻辑耦合到所述弹性缓冲器,以便当所述并行数据被写入到所述弹性缓冲器的条目中时来确定所述弹性缓冲器的深度,并且将所述深度的值与所述对应的条目相关联,从而允许确定所述度量。
10.如权利要求9所述的装置,其特征在于,所述可变等待时间逻辑用于:利用所述弹性缓冲器中的所述对应的条目来存储所述值。
11.如权利要求9所述的装置,其特征在于,所述可变等待时间逻辑包括具有n位的计数器,其中,所述弹性缓冲器的所述多个条目不大于2n
12.如权利要求9所述的装置,其特征在于,所述PHY进一步包括解码器,所述解码器用于将所述并行数据解码成经解码的码元,所述解码器耦合到所述弹性缓冲器的输出。
13.如权利要求12所述的装置,其特征在于,所述PHY用于传递具有所述经解码的码元的所述值。
14.如权利要求13所述的装置,进一步包括介质访问控制(MAC)单元,所述MAC单元耦合到所述PHY以接收经解码的码元以及对应的值并确定所述PHY的渡越等待时间。
15.如权利要求14所述的装置,其特征在于,所述MAC单元进一步包括控制器,所述控制器用于基于所述度量和所述固定的等待时间来确定所述渡越等待时间。
16.一种方法,包括以下步骤:
将第一计数器的输出存储在第一存储设备中;
根据码元时钟信号来采样所述第一存储设备的值;
传播所述采样值通过被锁定到码元处理流水线的并行流水线,所述码元处理流水线用于:接收串行数据并将所述串行数据转换成并行数据;以及将所述并行数据输出到介质访问控制(MAC)电路;以及
在所述并行流水线的逻辑中,基于所述采样值以及所述第一计数器的当前输出来确定所述码元处理流水线的等待时间。
17.如权利要求16所述的方法,进一步包括以下步骤:利用独立的时钟信号来对所述第一计数器进行时钟计时。
18.如权利要求16所述的方法,进一步包括以下步骤:将来自所述第一存储设备的所述采样值存储在镜像缓冲器中,所述镜像缓冲器包括等于所述码元处理流水线的弹性缓冲器的条目数量的条目量。
19.如权利要求18所述的方法,进一步包括以下步骤:从所述镜像缓冲器输出所述采样值;以及将所述采样值存储在耦合到所述镜像缓冲器的第二存储设备中。
20.如权利要求19所述的方法,进一步包括以下步骤:将所述采样值从所述第二存储设备提供至解析逻辑,所述解析逻辑进一步接收所述第一计数器的所述当前输出。
21.如权利要求20所述的方法,进一步包括以下步骤:在所述解析逻辑中,使用所述当前输出、所述采样值以及预先确定的值来确定所述等待时间,所述预先确定的值对应于所述码元处理流水线的固定等待时间的至少部分。
22.如权利要求16所述的方法,进一步包括以下步骤:经由边带信道来将等待时间值和等待时间有效信号传递至所述MAC电路,所述等待时间值与经由主信道从所述码元处理流水线传递至所述MAC电路的经解码的码元相关联。
23.如权利要求16所述的方法,进一步包括以下步骤:
将串行数据从物理单元(PHY)传递至经由互连而耦合至所述PHY的设备;以及
为所传递的串行数据确定对应于所述PHY的发射部分的渡越等待时间的等待时间值,其中,所述等待时间值对于每一个码元有效达一个时钟周期且被传递至所述MAC电路。
24.一种系统,所述系统包括:
接收机,所述接收机用于经由互连来接收串行数据,所述接收机包括:
物理单元(PHY),所述PHY用于:接收所述串行数据并将所述串行数据转换成并行数据;以及将所述并行数据提供给所述接收机的介质访问控制(MAC)单元,其中,所述PHY具有在所述PHY中对所述串行数据的接收与所述并行数据向所述MAC单元的发射之间的可变等待时间,所述PHY进一步包括逻辑,所述逻辑用于确定所述可变等待时间的值,并且用于将所述值与所述并行数据一起传递至所述MAC单元;以及
所述MAC单元,所述MAC单元用于接收并处理所述并行数据,所述MAC单元进一步用于接收所述值;以及
发射机,所述发射机经由所述互连而耦合到所述接收机以生成所述串行数据,并将所述串行数据传递至所述接收机。
25.如权利要求24所述的系统,其特征在于,所述PHY包括接收路径和发射路径,所述发射路径用于接收来自所述MAC单元的并行信息,并且用于将所述并行信息转换成串行位流,以供经由所述互连而传递至所述发射机。
26.如权利要求25所述的系统,其特征在于,所述发射路径包括第二逻辑,所述第二逻辑用于将第二值传递至所述MAC单元,所述第二值对应于在所述PHY中对所述并行信息的接收与所述串行位向所述发射机的发射之间的等待时间。
27.如权利要求24所述的系统,其特征在于,所述PHY包括弹性缓冲器,所述弹性缓冲器用于存储所述并行数据的条目,所述弹性缓冲器具有可变深度,并且其中,所述逻辑利用所述弹性缓冲器中的对应的条目来存储所述值。
28.如权利要求27所述的系统,其特征在于,所述逻辑包括具有n位的计数器,其中,所述弹性缓冲器的所述多个条目不大于2n
29.如权利要求28所述的系统,其特征在于,所述PHY包括码元处理路径和时间测量路径,所述码元处理路径包含所述弹性缓冲器,所述时间测量路径包含所述计数器,所述逻辑和镜像弹性缓冲器用于维护与所述弹性缓冲器的深度相等的深度。
30.如权利要求24所述的系统,其特征在于,所述MAC单元包括控制器,所述控制器用于基于所述值和预先确定的固定等待时间值来确定所述PHY的渡越等待时间。
CN201380079871.0A 2013-10-30 2013-10-30 用于测量电路的物理单元中的等待时间的方法、装置和系统 Active CN105593830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810358308.1A CN108595355B (zh) 2013-10-30 2013-10-30 用于测量电路的物理单元中的等待时间的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/067396 WO2015065349A1 (en) 2013-10-30 2013-10-30 A method, apparatus and system for measuring latency in a physical unit of a circuit

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810358308.1A Division CN108595355B (zh) 2013-10-30 2013-10-30 用于测量电路的物理单元中的等待时间的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN105593830A true CN105593830A (zh) 2016-05-18
CN105593830B CN105593830B (zh) 2019-04-09

Family

ID=52995426

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810358308.1A Active CN108595355B (zh) 2013-10-30 2013-10-30 用于测量电路的物理单元中的等待时间的方法、装置和系统
CN201380079871.0A Active CN105593830B (zh) 2013-10-30 2013-10-30 用于测量电路的物理单元中的等待时间的方法、装置和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810358308.1A Active CN108595355B (zh) 2013-10-30 2013-10-30 用于测量电路的物理单元中的等待时间的方法、装置和系统

Country Status (6)

Country Link
US (2) US9262347B2 (zh)
EP (3) EP4254209A3 (zh)
KR (2) KR101855603B1 (zh)
CN (2) CN108595355B (zh)
PL (1) PL3719659T3 (zh)
WO (1) WO2015065349A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686627A (zh) * 2016-12-07 2017-05-17 广东欧珀移动通信有限公司 WiFi/热点的开启方法及装置
CN108694148A (zh) * 2017-04-07 2018-10-23 恩智浦有限公司 用于通用串行总线(usb)通信的方法和设备
CN109074341A (zh) * 2016-05-24 2018-12-21 英特尔公司 减少引脚计数接口
CN111831594A (zh) * 2016-12-26 2020-10-27 英特尔公司 用于高速互连中低延迟的双模phy
CN112988653A (zh) * 2019-12-16 2021-06-18 北京希姆计算科技有限公司 数据处理电路、装置以及方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699219B (zh) * 2013-12-10 2020-06-23 联想(北京)有限公司 一种电子设备及信息处理方法
US9552269B2 (en) * 2014-12-23 2017-01-24 Intel Corporation Test logic for a serial interconnect
CN105791193A (zh) * 2016-02-19 2016-07-20 苏州沿芯微电子科技有限公司 基于多模读写器的码元恢复系统和方法
US10649486B1 (en) * 2016-12-28 2020-05-12 Intel Corporation Apparatus and methods for accurate latency measurements in integrated circuits
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US11809353B2 (en) * 2017-03-31 2023-11-07 Intel Corporation Component firmware interaction using hardware registers
US10887196B2 (en) * 2018-11-28 2021-01-05 Microsoft Technology Licensing, Llc Efficient metric calculation with recursive data processing
US11343748B2 (en) * 2019-02-08 2022-05-24 Samsung Electronics Co., Ltd. Coordinated beam selection in cellular mesh network
US10581587B1 (en) * 2019-04-29 2020-03-03 Advanced Micro Devices, Inc. Deskewing method for a physical layer interface on a multi-chip module
US11151011B2 (en) * 2019-10-01 2021-10-19 International Business Machines Corporation Uncore input/output latency analysis
US11271712B2 (en) * 2020-01-07 2022-03-08 Microchip Technology Inc. Daisy-chained synchronous ethernet clock recovery
US11832198B2 (en) * 2020-07-02 2023-11-28 Qualcomm Incorporated Cell synchronization in physical (PHY) layer and medium access control (MAC) layer mobility
CN113220231B (zh) * 2021-05-11 2022-07-22 无锡众星微系统技术有限公司 一种支持stp应用的自适应流控方法与装置
US11843376B2 (en) 2021-05-12 2023-12-12 Gowin Semiconductor Corporation Methods and apparatus for providing a high-speed universal serial bus (USB) interface for a field-programmable gate array (FPGA)
US11474969B1 (en) * 2021-05-12 2022-10-18 Gowin Semiconductor Corporation Methods and apparatus for providing a serializer and deserializer (SERDES) block facilitating high-speed data transmissions for a field-programmable gate array (FPGA)
CN113608574B (zh) * 2021-08-09 2024-06-11 贵州省计量测试院 一种计算机微秒级时间输出方法、系统及校准系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001088746A1 (en) * 2000-05-18 2001-11-22 Brix Networks, Inc. Method and system for transmit time stamp insertion in a hardware time stamp system for packetized data networks
US6470031B1 (en) * 2000-09-05 2002-10-22 Coactive Networks, Inc. Method and apparatus for accurate packet time stamping
WO2003021600A2 (en) * 2001-08-29 2003-03-13 Analog Devices, Inc. Methods and apparatus utilizing flash burst mode to improve processor performance
US8867683B2 (en) * 2006-01-27 2014-10-21 Ati Technologies Ulc Receiver and method for synchronizing and aligning serial streams
US7925741B2 (en) 2007-06-27 2011-04-12 Intel Corporation Black-box host stack latency measurement
JP5171245B2 (ja) * 2007-12-28 2013-03-27 パナソニック株式会社 プロトコル遅延測定装置及びプロトコル遅延測定方法
US7860125B2 (en) * 2008-01-28 2010-12-28 Cisco Techology, Inc. Flexible time stamping
US8184760B2 (en) * 2008-09-02 2012-05-22 Taiwan Semiconductor Manufacturing Company, Ltd. Adaptive elastic buffer for communications
CN101394181A (zh) * 2008-09-24 2009-03-25 硅谷数模半导体(北京)有限公司 时钟与数据恢复电路以及具有该电路的集成芯片
US8023530B1 (en) 2009-01-07 2011-09-20 L-3 Communications Corp. Physical layer quality of service for wireless communications
US9118728B2 (en) * 2009-03-04 2015-08-25 Broadcom Corporation Method and system for determining physical layer traversal time
US8462674B2 (en) * 2009-06-04 2013-06-11 Broadcom Corporation Method and system for symmetric transmit and receive latencies in an energy efficient PHY
US9305606B2 (en) * 2009-08-17 2016-04-05 Micron Technology, Inc. High-speed wireless serial communication link for a stacked device configuration using near field coupling
CN102783079B (zh) 2010-03-02 2015-09-02 维特赛半导体公司 基于包的分布式时间戳引擎
CN101977104B (zh) * 2010-11-13 2013-01-09 上海交通大学 基于ieee1588精确时钟同步协议系统及其同步方法
US9043509B2 (en) 2011-01-14 2015-05-26 Broadcom Corporation Method and system for low-latency networking
US20120188885A1 (en) * 2011-01-20 2012-07-26 Mehmet Tazebay Method and system for self-adapting dynamic power reduction mechanism for physical layer devices in packet data networks
US9395780B2 (en) * 2011-04-21 2016-07-19 Texas Instruments Incorporated USB bridge circuit gating RID—A and RID—GND for IDGND
US8855108B2 (en) 2012-01-10 2014-10-07 Garrettcom, Inc. Apparatus and method for synchronous hardware time stamping
US8619559B2 (en) * 2012-02-01 2013-12-31 Broadcom Corporation System and method for enabling energy efficient ethernet networks with time-sensitive protocols
CN202904568U (zh) * 2012-05-10 2013-04-24 无锡华大国奇科技有限公司 一种应用于usb3.0的弹性缓冲结构
US9229897B2 (en) * 2012-06-29 2016-01-05 Intel Corporation Embedded control channel for high speed serial interconnect

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074341A (zh) * 2016-05-24 2018-12-21 英特尔公司 减少引脚计数接口
CN112579496A (zh) * 2016-05-24 2021-03-30 英特尔公司 减少引脚计数接口
CN106686627A (zh) * 2016-12-07 2017-05-17 广东欧珀移动通信有限公司 WiFi/热点的开启方法及装置
CN111831594A (zh) * 2016-12-26 2020-10-27 英特尔公司 用于高速互连中低延迟的双模phy
CN108694148A (zh) * 2017-04-07 2018-10-23 恩智浦有限公司 用于通用串行总线(usb)通信的方法和设备
CN108694148B (zh) * 2017-04-07 2024-03-19 恩智浦有限公司 用于通用串行总线(usb)通信的方法和设备
CN112988653A (zh) * 2019-12-16 2021-06-18 北京希姆计算科技有限公司 数据处理电路、装置以及方法
CN112988653B (zh) * 2019-12-16 2024-04-12 广州希姆半导体科技有限公司 数据处理电路、装置以及方法

Also Published As

Publication number Publication date
KR101855603B1 (ko) 2018-06-08
PL3719659T3 (pl) 2024-04-08
US9262347B2 (en) 2016-02-16
CN105593830B (zh) 2019-04-09
US20160124894A1 (en) 2016-05-05
EP3719659C0 (en) 2023-10-04
US9558145B2 (en) 2017-01-31
KR101974323B1 (ko) 2019-04-30
WO2015065349A1 (en) 2015-05-07
KR20160048191A (ko) 2016-05-03
CN108595355B (zh) 2021-05-25
EP4254209A3 (en) 2023-11-22
US20150117504A1 (en) 2015-04-30
CN108595355A (zh) 2018-09-28
EP3719659A1 (en) 2020-10-07
EP3719659B1 (en) 2023-10-04
EP3063640A1 (en) 2016-09-07
KR20180041257A (ko) 2018-04-23
EP3063640A4 (en) 2017-06-07
EP3063640B1 (en) 2020-10-07
EP4254209A2 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
CN105593830A (zh) 用于测量电路的物理单元中的等待时间的方法、装置和系统
CN109661658B (zh) 链路物理层接口适配器
RU2645288C2 (ru) Усовершенствование интерфейса pci express
RU2656732C2 (ru) Звено связи многокристальной интегральной схемы
CN105793830B (zh) 一种在节点之间共享存储器和i/o服务的装置、方法、系统
CN107408032B (zh) 互连中的伪随机比特序列
CN104391816B (zh) 高性能互连物理层
CN110036380A (zh) 用于高速互连中低延迟的双模phy
CN110366842A (zh) 可调节的重定时器缓冲器
CN105793715A (zh) 互连重定时器增强
CN109643297B (zh) 电压调制的控制通路
CN104932996B (zh) 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统
CN114253889A (zh) 用于延时敏感应用的近似数据总线倒置技术
JP6552581B2 (ja) 装置、方法、およびシステム

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