CN107430569B - 多芯片封装链路 - Google Patents

多芯片封装链路 Download PDF

Info

Publication number
CN107430569B
CN107430569B CN201680012402.0A CN201680012402A CN107430569B CN 107430569 B CN107430569 B CN 107430569B CN 201680012402 A CN201680012402 A CN 201680012402A CN 107430569 B CN107430569 B CN 107430569B
Authority
CN
China
Prior art keywords
data
lanes
hard
logic
processor
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
Application number
CN201680012402.0A
Other languages
English (en)
Other versions
CN107430569A (zh
Inventor
M·韦格
Z·吴
V·伊耶
G·S·帕斯达斯特
M·S·比利泰拉
I·阿加瓦尔
L·K·郑
S·W·利姆
A·K·尤帕德亚亚
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 CN202011252637.1A priority Critical patent/CN112231255A/zh
Priority to CN202011344684.9A priority patent/CN112486875A/zh
Publication of CN107430569A publication Critical patent/CN107430569A/zh
Application granted granted Critical
Publication of CN107430569B publication Critical patent/CN107430569B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)

Abstract

诸如逻辑PHY的片上系统可以被划分成具有固定路由的硬IP块,以及具有灵活路由的软IP块。每个硬IP块可以提供固定数量的通路。使用p个硬IP块,其中每个块提供n个数据通路,全部h=n*p个硬IP数据通路被提供。其中,系统设计需要全部k个数据通路,可能k≠h,使得[k/n]硬IP块提供h=n*p个可用的硬IP数据通路。在这种情况下,h‑k个通路可以被禁用。在通路反转发生的情况下,例如,在硬IP和软IP之间,领结路由可以通过在软IP内多路复用器状可编程开关的使用而被避免。

Description

多芯片封装链路
相关申请的交叉引用
本申请要求于2015年3月26日提交的、标题为“MULTICHIP PACKAGE LINK”的美国非临时专利申请No.14/669,975的权益和优先权,其全部内容通过引用并入本文。
技术领域
本公开涉及计算系统,并且具体而言(但非排他性地)涉及点到点的互连。
背景技术
半导体处理和逻辑设计的进步允许可能存在于集成电路器件上的逻辑量的增加。作为必然的结果,计算机系统配置已经从系统中的单个或多个集成电路演变为独立的集成电路上存在的多个核、多个硬件线程以及多个逻辑处理器,以及集成在这种处理器内的其它接口。处理器或集成电路通常包括单个物理处理器管芯,其中处理器管芯可以包括任何数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中心等。
由于将更多的处理功率供给在较小的封装中的更大的能力,所以较小的计算设备日益普及。智能电话、平板电脑、超薄笔记本电脑以及其它用户设备已成指数增长。然而,这些较小的设备依赖于既用于数据存储又用于超过外形尺寸的复杂处理的服务器。因此,高性能计算市场(即,服务器空间)的需求还在增加。例如,在现代服务器中,通常不仅存在具有多个核的单个处理器,还存在用于增加计算功率的多个物理处理器(也称为多个插座)。但是当处理功率随着计算系统中的设备数量的增加而增加时,插座和其它设备之间的通信变得更加关键。
事实上,互连已经从主要处理电气通信的更传统的多点总线发展到便于快速通信的充分扩展的互连架构。不幸的是,在对未来处理器以甚至更高速率消耗的需求增加时,相对应的需求则处于现有互连架构的能力范围内。
附图说明
图1示出了包括互连架构的计算系统的实施例。
图2示出了包括分层栈的互连架构的实施例。
图3示出了在互连架构内要生成的或要接收的请求或分组的实施例。
图4示出了用于互连架构的发射机和接收机对的实施例。
图5示出了多芯片封装的实施例。
图6是多芯片封装链路(MCPL)的简化框图。
图7是示例性MCPL上的示例性信号发送的表示。
图8是示出示例性MCPL中的数据通路的简化框图。
图9是示出MCPL的实施例中的示例性串扰消除技术的简化框图。
图10是示出MCPL的实施例中的示例性串扰消除组件的简化电路图。
图11是MCPL的简化框图。
图12是使用逻辑PHY接口(LPIF)与多个协议的上层逻辑进行接合的MCPL的简化框图。
图13是与链路的恢复相关的示例性MCPL上的示例性信号发送的表示。
图14A-14C是示例性MCPL的通路上数据的示例性比特映射。
图15是示例性链路状态机的一部分的表示。
图16是与链路的示例性定心相关联的流程的表示。
图17是示例性链路状态机的表示。
图18是用于进入低功率状态的信号发送的表示。
图19示出了针对包括多核处理器的计算系统的框图的实施例。
图20示出了针对包括多核处理器的计算系统的框图的另一个实施例。
图21示出了针对处理器的框图的实施例。
图22示出了针对包括处理器的计算系统的框图的另一个实施例。
图23示出了针对包括多个处理器的计算系统的块的实施例。
图24示出了被实现为片上系统(SoC)的示例性系统。
图25示出了在实施例中的信号发送的示例。
图26是用于对不存在明确的STREAM通路的数据进行编码的方法的示例性流程图。
图27是用于编码不存在明确的STREAM通路的数据的方法的示例流程图。
图28是用于执行对参考电压的定心的方法的示例性流程图。
图29A和29B是串扰模式的示例。
图30是眼睛定心的示例性图示。
图31是用于眼睛定心的方法的示例性流程图。
图32是包括硬IP和软IP的系统的示例性框图。
图33是硬IP块和软IP块之间的接口的示例性框图。
图34是用于处理通路反转的、具有类多路复用器的可编程开关的系统的示例。
各图中相同的附图标记与标号指示相同的元件。
具体实施方式
在下面的描述中,阐述了许多特定细节,例如,特定类型的处理器和系统配置、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测量/高度、特定的处理器流水线阶段和操作等的示例,以便提供对本发明的透彻理解。然而,对于本领域技术人员将显而易见的是,这些特定的细节不需要用于实践本发明。在其它实例中,公知的组件或方法,例如,特定的和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实施方式、特定的用代码的算法的表达、特定的计算机系统的断电和门控制技术/逻辑以及计算机系统的其它特定的操作细节,并没有被详细描述以避免不必要地使本发明难以理解。
尽管可以参考特定集成电路中(诸如,计算平台或微处理器中)的能量节约和能量效率来描述以下实施例,但是其它实施例可应用于其它类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以应用于其它类型的电路或半导体器件,该电路或半导体器件还可以从更好的能量效率和能量节约中受益。例如,所公开的实施例不限于台式计算机系统或UltrabooksTM。它们还可以用于其它设备,例如,手持设备、平板电脑、其它薄型笔记本电脑、片上系统(SOC)设备以及嵌入式应用。手持设备的一些示例包括蜂窝电话、因特网协议设备、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中心、广域网(WAN)开关或可以执行以下所教导的功能和操作的任何其它系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可以涉及用于能量节约和效率的软件优化。随着在下面的描述中将变得显而易见,本文描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件或其组合)对于与性能考虑相平衡的“绿色技术”未来是至关重要的。
随着计算系统的进步,其中的组件变得更加复杂。因此,在组件之间进行耦合和通信的互连架构也在增加复杂性,以确保满足最优组件操作的带宽要求。此外,不同的市场领域需要互连架构的不同方面,以适应市场的需求。例如,服务器需要更高的性能,而移动生态系统有时能够牺牲整体性能以节省功率。然而,大多数结构的单一的目的是,提供具有最大限度地节省功率的最高可能的性能。下面讨论了许多互连,其将可能受益于本文描述的本发明的各方面。
一种互连结构架构包括快速外围组件互连(PCI)(PCIe)架构。PCIe的主要目标是使来自不同供应商的组件和设备能够在开放式架构中进行相互操作,并且跨越多个市场领域;客户端(台式机和移动机)、服务器(标准的和企业的)、以及嵌入式和通信设备。PCIExpress(快速外围组件互连)是为各种未来计算和通信平台定义的高性能、通用I/O互连。一些PCI属性(例如,其使用模型、加载-存储架构以及软件接口)已经通过其修正进行了维持,而先前的并行总线实施方式已经被高度可扩展的完全串行接口所取代。PCI Express的更新的版本利用了点到点互连、基于开关的技术和封装的协议,以传送新级别的性能和功能。电源管理、服务质量(QoS)、热插入/热插拔支持、数据完整性和错误处理是在由PCIExpress支持的高级功能中的一些高级功能中。
参考图1,示出了包括互连一组组件的点到点链路的结构的实施例。系统100包括耦合到控制器中心115的处理器105和系统存储器110。处理器105包括诸如微处理器、主机处理器、嵌入式处理器、协处理器或其它处理器之类的任何处理元件。处理器105通过前侧总线(FSB)106耦合到控制器中心115。在一个实施例中,FSB 106是如下所述的串行点到点互连。在另一个实施例中,链路106包括符合不同互连标准的串行、差分互连架构。
系统存储器110包括任何存储器设备(例如,随机存取存储器(RAM)、非易失性(NV)存储器或可由系统100中的设备访问的其它存储器)。系统存储器110通过存储器接口116耦合到控制器中心115。存储器接口的示例包括双数据速率(DDR)存储器接口、双信道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中心115是快速外围组件互连(PCIe或PCIE)互连层级中的根中心、根复合体或根控制器。控制器中心115的示例包括芯片组、存储器控制器中心(MCH)、北桥、互连控制器中心(ICH)、南桥和根控制器/中心。通常,术语芯片组指代两个物理上分离的控制器中心,即,耦合到互连控制器中心(ICH)的存储器控制器中心(MCH)。应当注意的是,当前系统通常包括与处理器105集成的MCH,而控制器115用于以下面描述的类似的方式与I/O设备进行通信。在一些实施例中,通过根复合体115来可选地支持对等路由。
此处,控制器中心115通过串行链路119耦合到开关/桥120。输入/输出模块117和121(还可以称为接口/端口117和121)包括/实现分层协议栈以提供控制器中心115和开关120之间的通信。在一个实施例中,多个设备能够被耦合到开关120。
开关/桥120将来自设备125的分组/消息上游(即,朝向根复合体的层级)路由到控制器中心115并且将来自处理器105或系统存储器110下游(即,离开根控制器向下的层级)路由到设备125。在一个实施例中,开关120被称为多个虚拟PCI至PCI桥接设备的逻辑组件。设备125包括要被耦合到电子系统的任何内部或外部设备或组件,例如I/O设备、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬驱动、存储设备、CD/DVD ROM、监测器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其它输入/输出设备。通常,在PCIe术语中,例如,设备被称为端点。尽管没有具体示出,但是设备125可以包括到PCI/PCI-X桥以支持传统的或其它版本的PCI设备的PCIe。PCIe中的端点设备通常被分类为传统的、PCIe或集成端点的根复合体。
图形加速器130还通过串行链路132耦合到控制器中心115。在一个实施例中,图形加速器130耦合到MCH,该MCH耦合到ICH。开关120以及相应的I/O设备125然后耦合到ICH。I/O模块131和118还用于实现分层协议栈以在图形加速器130和控制器中心115之间进行通信。与上述MCH论述类似,图形控制器或图形加速器130本身可以被集成在处理器105中。
转到图2,其示出了分层协议栈的实施例。分层协议栈200包括任何形式的分层通信栈,例如,快速路径互连(QPI)栈、PCie栈、下一代高性能计算互连栈或其它分层栈。尽管下面参考图1-4进行的讨论与PCIe栈相关,但是相同的概念可以应用于其它互连栈。在一个实施例中,协议栈200是包括事务处理层205、链路层210和物理层220的PCIe协议栈。诸如图1中的接口117、118、121、122、126和131之类的接口可以被表示作为通信协议栈200。作为通信协议栈的表示还可以被称为实现/包括协议栈的模块或接口。
PCI Express使用分组在组件之间传送信息。分组形成在事务处理层205和数据链路层210中,以将信息从传送组件输送到接收组件。当所传送的分组流过其它层时,它们会利用在那些层中处理的分组所需的附加信息来进行扩展。在接收侧,反向处理出现,并且分组从其物理层220表示变换为数据链路层210表示,并且最后(事务处理层分组)变换为可以由接收设备的事务处理层205处理的形式。
事务处理层
在一个实施例中,事务处理层205用于提供设备的处理核和互连架构(诸如,数据链路层210和物理层220)之间的接口。在这方面,事务处理层205的主要责任是对分组的组装和拆卸(即,事务处理层分组或TLP)。事务处理层层205通常管理TLP的基于信用的流控制。PCIe实现拆分事务处理,即具有以时间分隔的请求和响应的事务处理,允许链路输送其它业务,而目标设备收集响应的数据。
此外,PCIe利用基于信用的流控制。在该方案中,设备向事务处理层205中的接收缓冲器中的每个通知初始的信用量。在链路对置端处的外部设备(例如,图1中的控制器中心115)对每个TLP消耗的信用数量进行计数。如果事务处理不超过信用限制,则该事务处理可以被传送。当接收到响应时,信用的总数会被恢复。信用方案的优点是倘若未遇到信用限制,信用返回的延迟不影响性能。
在一个实施例中,四个事务处理地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间、和消息地址空间。存储器空间事务处理包括用于将数据传送到存储器映射的位置/从存储器映射的位置传送数据的读取请求和写入请求中的一个或多个。在一个实施例中,存储器空间事务处理能够使用两种不同的地址格式,例如,诸如32位地址的短地址格式、或诸如64位地址的长地址格式。配置空间事务用于访问PCIe设备的配置空间。到配置空间的事务处理包括读请求和写请求。消息空间事务处理(或简单的消息)被定义为支持PCIe代理之间的带内通信。
因此,在一个实施例中,事务处理层205组装分组报头/负载206。用于当前分组报头/负载的格式可以在PCIe规范网站的PCIe规范中找到。
快速参考图3,其示出了PCIe事务处理描述符的实施例。在一个实施例中,事务处理描述符300是用于输送事务处理信息的机制。在这方面,事务处理描述符300支持系统中的事务处理的标识。其它潜在用途包括跟踪默认事务处理排序的修改和事务处理与信道的关联。
事务处理描述符300包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,所描绘的全局标识符字段302包括本地事务处理标识符字段308和源标识符字段310。在一个实施例中,全局事务处理标识符302对于所有未决请求是独特的。
根据一个实施方式,本地事务处理标识符字段308是通过请求代理生成的字段,并且对于需要该请求代理的完成的所有未决请求而言是独特的。此外,在该示例中,源标识符310独特地标识PCIe层级内的请求者代理。因此,与源ID 310一起,本地事务处理标识符308字段提供层级域内的事务处理的全局标识。
属性字段304指定事务处理的特性和关系。在这方面,属性字段304可能用于提供允许对事务处理的默认处理进行修改的附加信息。在一个实施例中,属性字段304包括优先级字段312、预留的字段314、排序字段316和无需探听字段318。此处,优先级子字段312可以被发起者修改以将优先级分配给事务处理。将预留属性字段314预留以便将来或供应商定义的使用。使用优先级或安全属性的可能的使用模型可以使用预留的属性字段来实现。
在该示例中,排序属性字段316用于提供传达可以修改默认排序规则的排序类型的可选的信息。根据一个示例性实施方式,“0”的排序属性指示用于应用的默认排序规则,其中,“1”的排序属性指示宽松排序,其中写入可以以相同方向传递写入,并且读取完成可以以相同的方向传递写入。探听属性字段318用于确定事务处理是否被探听。如图所示,信道ID字段306标识事务处理与之相关联的信道。
链路层
链路层210(还称为数据链路层210)充当事务处理层205和物理层220之间的中间阶段。在一个实施例中,数据链路层210的责任是提供用于在链路中的两个组件之间交换事务处理层分组(TLP)的可靠机制。数据链路层210的一侧接受由事务处理层205组装的TLP,应用分组序列标识符211(即,标识号或分组号),计算并应用错误检测码(即,CRC 212),并且将修改的TLP提交给物理层220,以便跨物理层传输至外部设备。
物理层
在一个实施例中,物理层220包括逻辑子块221和电气子块222,以将分组物理地传送至外部设备。此处,逻辑子块221负责物理层221的“数字”功能。在这个方面,逻辑子块包括预备由物理子块222发送的传出信息的传送部,以及在将所接收信息传至链路层210前识别和预备所接收信息的接收机部。
物理块222包括发射机和接收机。发射机由具有码元的逻辑子块221提供,发射机串行化该码元并将其传送至外部设备上。向接收机供应来自外部设备的串行化码元,并且接收机将所接收的信号变换成比特流。比特流被解串行化并供应给逻辑子块221。在一个实施例中,采用8b/10b传输码,其中传送/接收十比特码元。此处,使用特殊码元来用帧223对分组进行组帧。另外,在一个示例中,接收机还提供从传入的串行流恢复的码元时钟。
如上所述,尽管事务处理层205、链路层210和物理层220是参照PCIe协议栈的特定实施例描述的,然而分层协议栈不受此限制。实际上,任何分层协议可以被包括/被实现。作为示例,表示为分层协议的端口/接口包括:(1)用于组装分组的第一层,即,事务处理层;使分组序列化的第二层,即,链路层;以及用于传送分组的第三层,即,物理层。作为特定示例,公共标准接口(CSI)分层的协议被利用。
接下来参考图4,其示出了PCIe串行点到点结构的实施例。尽管示出了PCIe串行点到点链路的实施例,但是串行点到点链路并不局限于此,因为它包括用于传送串行数据的任何传输路径。在所示实施例中,基本的PCIe链路包括两个低电压差分驱动信号对:传送对406/411和接收对412/407。因此,设备405包括用于将数据传送到设备410的传输逻辑406和用于从设备410接收数据的接收逻辑407。换句话说,两个传送路径(即,路径416和417),以及两个接收路径(即,路径418和419)包括在PCIe链路中。
传输路径指代用于传送数据的任何路径,例如,传输线路、铜线路、光线路、无线通信信道、红外通信链路或其它通信路径。两个设备(例如,设备405和设备410)之间的连接,被称为链路(例如,链路415)。链路可以支持一个通路——每个通路表示一组差分信号对(一对用于传输、一对用于接收)。为了缩放带宽,链路可以聚集由xN指示的多个通路,其中N是任何支持的链路宽度,例如,1、2、4、8、12、16、32、64、或更宽。
差分对指代用于传送差分信号的两个传输路径(例如,线路416和417)。作为示例,当线路416从低电压电平切换到高电压电平(即,上升沿),线路417从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号可能示出更好的电气特性,例如,更好的信号完整性(即,交叉耦合、电压过冲/下冲,振铃(ringing)等)。这允许更好的定时窗口,这能够实现更快的传输频率。
图5是示出了示例性多芯片封装505的简化框图500,该多芯片封装505包括两个或更多个芯片、或管芯(例如,510、515)使用示例性多芯片封装链路(MCPL)520而通信地连接。尽管图5示出了两个(或更多个)管芯的示例,其中两个(或更多个)管芯使用示例性MCPL520进行互连接,但是应当理解的是,本文所描述的关于MCPL的实施方式的原理和特征可以应用于连接管芯(例如,510)和其它组件的任何互连或链路,除了潜在的其它示例以外,其包括连接两个或更多个管芯(例如,510、515)、将管芯(或芯片)连接到管芯外的另一个组件、将管芯连接到另一个设备或封装外的管芯(例如,505)、将管芯连接到BGA封装,内插件上的贴片(POINT)的实施方式。
通常,多芯片封装(例如,505)可以是电子封装,其中多个集成电路(IC)、半导体管芯或其它分立组件(例如,510、515)被封装到统一的衬底(例如,硅或其它半导体衬底)上,以便于作为单个组件(例如,如同较大的IC)的组合的组件的使用。在一些实例中,较大的组件(例如,管芯510、515)本身可以是IC系统,例如在设备上(例如,在单个管芯(例如,510、515)上)包括多个组件(例如,525-530和540-545)的片上系统(SoC)、多处理器芯片、或者其它组件。多芯片封装505可以提供用于从可能的多个分立组件和系统构建复杂的和变化的系统的灵活性。例如,除了许多其它示例以外,管芯510、515中的每个可以利用由第三实体提供的封装505的硅衬底而被制造或以其它方式由两个不同的实体提供。此外,管芯和多芯片封装505内的其它组件本身可以包括为设备(例如,分别为510、515)内的组件(例如,525-530和540-545)之间的通信提供基础架构的互连或其它通信结构(例如,535、550)。各种组件和互连(例如,535、550)可以潜在地支持或使用多种不同的协议。此外,管芯(例如,510、515)之间的通信可以潜在地包括通过多种不同协议而在管芯上的各种组件之间的事务处理。设计机制以提供多芯片封装上的芯片(或管芯)之间的通信可能是具有挑战性的,其中传统的解决方案基于试图要进行互连的组件(和所需的事务处理)的特定组合而采用高度专业化的、昂贵的、且专用于封装的解决方案。
在本说明书内所描述的示例、系统、算法、装置、逻辑、和特征可以解决上述标识的问题中的至少一些,包括潜在的许多其它本文中未明确提及的其它问题。例如,在一些实施方式中,高带宽、低功率、低延迟接口可以被提供以将主机设备(例如,CPU)或其它设备连接到处于与主机相同的封装内的伴随芯片。这种多芯片封装链路(MCPL)可以支持多个封装选项、多个I/O协议、以及可靠性、可用性和可服务性(RAS)特征。此外,物理层(PHY)可以包括电气层和逻辑层,并且可以支持更长的信道长度,其包括可达到约45mm的信道长度并且在一些情况下超过约45mm的信道长度。在一些实施方式中,示例性MCPL可以以高数据速率(包括超过8-10Gb/秒的数据速率)进行操作。
在MCPL的一个示例性实施方式中,PHY电气层可以改进传统的多信道互连解决方案(例如,多信道DRAM I/O),扩展数据速率和信道配置,例如,通过多个特征(除潜在的其它示例以外,包括例如经调节的中间轨终止、低功率有效串扰消除、电路冗余,每比特占空比校正和倾斜校正(deskew)、线路编码、和发射机均衡)。
在MCPL的一个示例性实施方式中,PHY逻辑层可以被实现,所实现的PHY逻辑层还可以有助于(例如,电气层特征)扩展数据速率和信道配置,同时还使互连能够跨电气层路由多个协议。这种实施方式可以提供并且定义模块化公共物理层,该模块化公共物理层是协议无关的并且被设计用于潜在的任何现有或未来的互连协议。
转到图6,简化框图600被示出表示系统的至少一部分,其包括多芯片封装链路(MCPL)的示例性实施方式。MCPL可以使用物理的电连接来实现(例如,作为通路实现的导线)将第一设备605(例如,包括一个或多个子组件的第一管芯)与第二设备610(例如,包括一个或多个其它子组件的第二管芯)连接。在图600的高级表示中所示的特定示例中,(在信道615、620中的)所有信号可以是单向的,并且通路可以被提供用于数据信号,以具有上游数据传送和下游数据传送两者。尽管图6的框图600将第一组件605指代为上游组件并且将第二组件610指代为下游组件,并且将用于发送数据的MCPL的物理通路指代为下游信道615并且将用于(从组件610)接收数据的通路指代为上游信道620,但是应当理解的是,设备605、610之间的MCPL可以由每个设备使用以在设备之间既发送又接收数据。
在一个示例性实施方式中,MCPL可以提供物理层(PHY),其包括电气MCPL PHY625a、625b(或,统称为625)以及实现MCPL逻辑PHY 630a、630b(或统称为630)的可执行逻辑。电气的或物理的PHY 625可以提供物理连接,数据通过该物理连接在设备605、610传送。信号调节组件和逻辑可以与物理PHY 625相关而被实现,以便确立链路的高数据速率和信道配置能力,这在一些应用中可以涉及以约45mm或更长的长度紧密地群集的物理连接。逻辑PHY 630可以包括用于促进计时的逻辑、(例如,用于链路层635a、635b的)链路状态管理、以及潜在地多个、用于在MCPL上通信的不同协议之间的协议多路复用。
在一个示例性实施方式中,物理PHY 625可以包括,用于每个信道(例如,615、620)的数据通路组,在其上可以发送带内数据。在这个特定的示例中,在上游信道620和下游信道615内提供50个数据通路,但是如由布局和功率约束、期望的应用、设备约束等允许的,可以使用任何数量的通路。每个信道还可以包括用于选通的一个或多个专用通路,或用于信道的时钟、信号,用于针对信道的有效信号的一个或多个专用通路,用于流信号的一个或多个专用通路,以及用于链路状态机管理或边带信号的一个或多个专用通路。物理PHY还可以包括边带链路640,其中,在一些示例中,除了其它示例以外,边带链路640可以是用于协调状态转换和连接设备605、610的MCPL的其它属性的双向较低频率控制信号链路。
如上所述,多个协议可以使用MCPL的实施方式而被支持。实际上,多个独立事务处理层650a、650b可以被提供在每个设备605、610。例如,每个设备605、610可以支持和利用两个或多个协议,例如,PCI、PCIe、QPI、英特尔管芯内互连(IDI)等等。IDI是在管芯上用于在核、末级高速缓存(LLC)、存储器、图形、和IO控制器之间进行通信的一致性协议。其它协议(包括以太网协议、无限带宽协议、以及基于协议的其它PCIe结构)还可以被支持。在其它示例中,逻辑PHY和物理PHY的组合还可以用作管芯到管芯互连,该管芯到管芯互连用于将一个管芯上的SerDes PHY(PCIe、以太网、无限带宽或其它高速SerDes)连接到另一管芯上实现的其上层。
逻辑PHY 630可以支持MCPL上的这些多个协议之间的多路复用。例如,专用流通路可以用来断言编码的流信号,该编码的流信号标识哪个协议应用于在信道的数据通路上基本同时发送的数据。此外,逻辑PHY 630可以用于协商各种协议可以支持或请求的各种类型的链路状态转换。在一些实例中,通过信道的专用LSM_SB通路发送的LSM_SB信号可以与边带链路640一起用于传送和协商设备605、610之间的链路状态转换。此外,链路训练、错误检测、扭斜检测、去扭斜以及传统互连的其它功能可以部分地使用逻辑PHY 630而被替换或管理。例如,在每个信道中通过一个或多个专用的有效信号通路发送的有效信号可以用于信号链路活动、检测扭斜、链路错误以及实现除其它实例外的其它特征。在图6的特定示例中,每个信道中提供多个有效通路。例如,信道内的数据通路可以(物理地和/或逻辑地)被捆绑或被群集,并且可以为每个群集提供有效的通路。此外,除了其它示例以外,还可以提供多个选通通路,在一些情况下,还为信道中的多个数据通路群集中的每个群集提供专用选通信号。
如上所述,逻辑PHY 630可以用于协商和管理在由MCPL连接的设备之间发送的链路控制信号。在一些实施方式中,逻辑PHY 630可以包括可以用于通过MCPL(即,带内)发送链路层控制消息的链路层分组(LLP)生成逻辑660。除了其它示例以外,这种消息可以利用流通路通过信道的数据通路而被发送,该流通路标识数据(例如,链路控制数据)是链路层到链路层消息传递的。除了设备605、610的链路层635a、635b之间的其它链路层特征以外,使用LLP模块660实现的链路层消息分别可以有助于链路层状态转换的协商和执行、功率管理、回环、禁用、重定心、加扰。
转到图7,图700被示出表示使用示例性MCPL的特定信道中的一组通路(例如,615、620)的示例性信号发送。在图7的示例中,为信道中的五十(50)个总数据通路提供了具有二十五(25)个数据通路的两个群集。通路的一部分被示出,而为了便于说明特定示例,(例如,作为冗余信号的)其它通路(例如,DATA[4-46]和第二选通信号通路(STRB))被省略。当物理层处于活动状态(例如,没有断电或处于低功率模式(例如,L1状态)),可以为选通通路(STRB)提供同步时钟信号。在一些实施方式中,数据可以在选通的上升沿和下降沿两者上发送。每个沿(或半个时钟周期)可以划分单位时隔(UI)。因此,在该示例中,一个比特(例如,705)可以在每个通路上发送,从而允许每8UI发送一个字节。字节时间周期710可以被定义为8UI,或被定义为用于在数据通路(例如,DATA[0-49])中的单个数据通路上发送一个字节的时间。
在一些实施方式中,在一个或多个专用有效信号信道上发送的有效信号(例如,VALID 0、VALID 1)可以在对于接收设备或接收器被断言(高)时用作为用于接收设备的主导指示符,以识别数据在以下时间周期(例如,字节时间周期710)期间正在在数据通路(例如,DATA[0-49])上从发送设备或源发送。替代地,当有效信号为低时,该源指示接收器不会在接下来的时间周期期间在数据通路上发送数据。因此,当接收器逻辑PHY检测到(例如,在通路VALID 0和VALID 1上)有效信号未被断言,则接收器可以忽略在接下来的时间周期期间在数据通路(例如,DATA[0-49])上检测到的任何数据。例如,事实上,当源不发送任何数据时,串扰噪声或其它比特可以出现在数据通路中的一个或多个数据通路上。由于在先前的时间周期(例如,先前的字节时间周期)期间的低的或非断言的有效信号,所以接收器可以确定在接下来的时间周期期间数据通路会被忽略。
在MCPL的通路中的每个通路上发送的数据可以被严格对齐到选通信号。时间周期(例如,字节时间周期)可以基于选通而被定义,并且这些周期中的每个可以对应于所定义的窗口,在该窗口中信号将要在数据通路(例如,DATA[0-49])、有效通路(例如,VALID1、VALID2)、以及流通路(例如,STREAM)上发送。因此,这些信号的对齐可以实现在先前时间周期窗口中的有效信号应用到在接下来的时间周期窗口中的数据的标识,而且实现流信号应用到在同一时间周期窗口中的数据的标识。流信号可以是编码的信号(例如,用于字节时间周期窗口的1个字节的数据),被编码以标识应用到在同一时间周期窗口期间发送的数据的协议。
为了说明,在图7的特定示例中,定义了字节时间周期窗口。在任何数据被注入在数据通路DATA[0-49]上之前,在时间周期窗n(715)断言有效。在接下来的时间周期窗口n+1(720)处,在数据通路中的至少一些数据通路上发送数据。在这种情况下,数据在n+1(720)期间被发送在所有五十个数据通路上。因为在先前的时间周期窗口n(715)的持续时间断言有效,所以接收器设备可以验证在时间周期窗口n+1(720)期间在数据通路DATA[0-49]上接收到的数据。另外,在时间周期窗口n(715)期间的有效信号的主导性质允许接收设备准备传入数据。继续图7的示例,在时间周期窗口n+1(720)期间(在VALID1和VALID2上)有效信号保持被断言,使得接收器设备期望在时间周期窗口n+2(725)期间通过数据通路DATA[0-49]而发送数据。如果有效信号将要在时间周期窗口n+2(725)期间保持被断言,则接收器设备还可以期望接收(和处理)在紧接下来的时间周期窗口n+3(730)期间发送的附加数据。然而,在图7的示例中,在时间周期窗口n+2(725)的持续的期间该有效信号被解除断言,从而指示接收器设备在时间周期窗口n+3(730)期间没有数据将会被发送,并且在时间周期窗口n+3(730)期间在数据通路DATA[0-49]上检测到的任何比特应该被忽略。
如上所述,多个有效通路和选通通路可以在每个信道被维持。除了其它优点之外,这可以帮助维持电路的简单性和在连接两个设备的相对较长的物理通路的群集其中的同步。在一些实施方式中,数据通路组可以被划分为数据通路的群集。例如,在图7的示例中,数据通路DATA[0-49]可以被划分为两个二十五通路的群集并且每个群集可以具有专用的有效和选通通路。例如,有效通路VALID 1可以与数据通路DATA[0-24]相关联,并且有效通路VALID 2可以与数据通路DATA[25-49]相关联。在用于每个群集的有效和选通通路的每个“复制”通路上的信号可以是相同的。VALID通路和STREAM通路在群集之间也可以是不同的,从而允许它们被操作为结构中的独立端口或操作为减小宽度的端口以便节省功率。
如上所述,在流通路STREAM上的数据可以用于指示应用到在数据通路DATA[0-49]上被发送的、相应的数据的协议的接收逻辑PHY。在图7的示例中,在与数据通路DATA[0-49]上的数据相同的时间周期窗口期间,在STREAM上流信号被发送,以指示在数据通路上的数据的协议。在替代的实施方式中,流信号(例如,除了其它潜在修改,与相应的有效信号一起)可以在先前时间周期窗口期间被发送。然而,继续到图7的示例,在时间周期窗口n+2(725)期间流信号735被发送,该流信号735被编码以指示协议(例如,PCIe、PCI、IDI QPI等),该协议用于应用到在时间周期窗口n+2(725)期间通过数据通路DATA[0-49]发送的比特。类似地,另一个流信号740可以在后续时间周期窗口n+2(725)期间发送,以指示应用到在时间周期窗口n+2(725)期间通过数据通路DATA[0-49]发送的比特的协议,等等。在一些情况下,例如,图7的示例(其中流信号735、740都具有相同的编码,二进制的FF),在顺序的时间周期窗口(例如,n+1(720)和n+2(725))中的数据可以属于同一协议。然而,在其它情况下,在顺序的时间周期窗口(例如,n+1(720)和n+2(725))中的数据可以来自不同的协议所应用的不同的事务处理,并且除了其它示例以外,流信号(例如,735、740)可以被编码从而标识应用到数据通路(例如,DATA[0-49])上的数据的顺序的比特的不同协议。
在一些实施方式中,低功率状态或空闲状态可以被定义为用于MCPL。例如,当在MCPL上没有设备发送数据时,MCPL的物理层(电气和逻辑)可以进入空闲状态或低功率状态。例如,在图7的示例中,在时间周期窗n-2(745)时,MCPL是在安静的状态或空闲状态并且选通被禁用以节省功率。MCPL可以从低功率模式或空闲模式中转换出来,在时间周期窗口n-1(例如,705)时唤醒选通。该选通可以完成发送前导码(例如,以有助于唤醒和同步信道的通路中的每个通路以及接收器设备),在其它非选通通路上的任何其它信号发送之前开始选通信号。在该时间周期窗口n-1(705)之后,有效信号可以在时间周期窗n(715)被断言,以通知接收器数据在以上所讨论的接下来的时间周期窗口n+1(720)中出现。
该MCPL可以根据关于有效通路、数据通路、和/或MCPL信道的其它通路空闲条件的检测而再进入低功率状态或空闲状态(例如,L1状态)。例如,在时间周期窗口n+3(730)处开始以及向前可能未检测到信号发送。除了其它示例和原理(包括本文后面所讨论的那些示例和原理)以外,源或接收器设备上的逻辑可以启动转换回到低功率状态,从而再次产生(例如,时间周期窗口n+5(755))在省电模式下进入空闲的选通。
物理PHY的电气特性可以包括以下中的一个或多个:单端信号发送、半速率转发计时、互连信道以及发射机(源)和接收机(接收器)的片上传输延迟之间的匹配、优化的静电放电(ESD)保护、焊盘电容以及其它特征。此外,MCPL可以被实现以达到比传统封装I/O解决方案更高的数据速率(例如,接近16Gb/秒)和能量效率特性。
图8示出了表示示例性MCPL的一部分的简化框图800的一部分。附图8的图800包括示例性通路805(例如,数据通路、有效通路、或流通路)和时钟生成逻辑810的表示。如图8的示例中所示,在一些实施方式中,时钟生成逻辑810可以被实现为时钟树,该时钟树用于将所生成的时钟信号分布到实现示例性MCPL的每个通路(例如,数据通路805)的每个块。此外,可以提供时钟恢复电路815。在一些实施方式中,作为至少一些传统互连I/O架构中的习惯做法,可以将单独时钟恢复电路提供给多个通路的群集,而非提供用于每个通路的单独的时钟恢复电路,其中在每个通路中分布时钟信号。实际上,当应用到图6和7中的示例性配置时,单独的选通通路和随附的时钟恢复电路可以被提供给二十五个数据通路的每个群集。
继续到图8的示例,在一些实施方式中,至少数据通路、流通路、以及有效通路可以在中间轨处终止为大于零(大地)的经调节的电压。在一些实施方式中,中间轨电压可以被调节为VCC/2。在一些实施方式中,单独的电压调节器825可以在每个通路的群集被提供。例如,除了其它潜在示例,当应用到图6和7的示例时,第一电压调节器可以二十五个数据通路的第一群集提供给并且第二电压调节器可以提供给二十五个数据通路的剩余群集。在一些情况下,除了其它示例,示例性电压调节器825可以被实现为线性调节器、开关电容电路。在一些实施方式中,除了其它示例,可以为线性调节器提供模拟反馈回路或数字反馈回路。
在一些实施方式中,串扰消除电路还可以提供给示例性MCPL。在一些情况下,长MCPL导线的紧密特性可以引入通路之间的串扰干扰。串扰消除逻辑可以实现以解决这些和其它问题。例如,在图9-10示出的一个示例中,串扰可以利用如在图900和1000所示低功率有源电路而被显著降低。例如,在图9的示例中,加权的高通滤波的“侵害方”信号可以被增加到“受害方”信号(即,该信号遭受来自侵害方的串扰干扰)。每个信号可以被认为是在链路中的彼此信号的串扰的受害方,并且本身可以是对于另一个信号的侵害方,只要它是串扰干扰的源。由于链路上的串扰的衍生特性,所以这种信号可以被生成并降低50%以上的受害方通路上的串扰。在图9的示例中,低通滤波的侵害方信号,可以通过(例如,通过C和R1实现的)高通RC滤波器而生成,该高通RC滤波器使用求和电路905(例如,RX感测-放大器)产生要被增加的滤波的信号。
当电路的实施方式可以以相对低的开销来实现时,如例示了在图9的示例中所示出和描述的电路的示例性晶体管级电路图的图10的图中所例示的,类似于在图9的示例中所描述的实施方式可以是对于应用(例如,MCLP)的特别方便的解决方案。应当理解的是,图9和10中的表示是简化表示,并且实际的实施方式将包括在图9和10中示出的电路的多个副本,以适应链路的通路当中及之间的串扰干扰的网络。作为示例,在三通路链路(例如,通路0-2)中,类似于图9和10的示例中描述的电路的电路,在其它示例中,可以基于通路的几何布局而从通路0提供给通路1,从通路0提供给通路2,从通路1提供给通路0,从通路1提供给通路2,从通路2提供给通路0,从通路2提供给通路1等等。
附加的特征可以在示例性MCPL的物理PHY级别来实现。例如,在一些情况下,接收机偏移可以引入显著的错误,并且限制I/O电压容限。电路冗余可以用于提高接收机的灵敏度。在一些实施方式中,电路冗余可以被优化以解决在MCPL使用的数据采样器的标准偏差偏移。例如,可以提供的示例性数据采样器被设计成三(3)标准偏差偏移规范。在图6和7的示例中,例如,两(2)个数据采样器将用于每个接收机(例如,用于每个通路)、一百(100)个采样器将用于五十(50)个通路MCPL。在该示例中,接收机(RX)通路中的一个通路不符合三标准偏差偏移规范的概率是24%。如果其它数据采样器中的另一个数据采样器被发现超过了界限,则芯片参考电压生成器可以被提供以设置偏移上界,并且移动到接收机上的下一个数据采样器。然而,每个接收机使用四(4)个数据采样器(即,代替该示例中的两个),如果四分之三的采样器失败,则接收机才会失败。对于五十个通路MCPL,如在图6和7的示例中,增加该附加电路冗余可以显著地将失败率从24%降低到小于0.01%。
在其它示例中,以非常高的数据率,每比特占空比校正(DCC)和倾斜校正可以用于增加每个群集DCC和倾斜校正的基线,以改善链路容限。代替针对所有情况的校正(如在传统的解决方案),在一些实施方式中,低功耗数字实施方式可以被使用而感测并校正I/O线路在其中失败的异常值。例如,通路的全局调整可以被执行以标识群集内的问题通路。这些问题通路然后可以被作为每个通路调整实现由MCPL支持的高数据速率的目标。
附加的特征还可以可选地在MCPL的一些实例中实现,以提高物理链路的性能特性。例如,可以提供线路编码。尽管如以上描述的中间轨终端可以允许DC数据总线反转(DBI)被省略,但是AC DBI仍然可以用于降低动态功率。除了其它示例益处,更复杂的编码还可以用于消除1和0的最坏情况下的差异以减少例如中间轨调节器的驱动器要求,以及限制I/O开关噪声。此外,发射机均衡还可以可选地实施。例如,以非常高的数据速率,插入损耗可以对于封装内信道是显著的。在一些情况下,(例如,在初始上电序列期间执行的)两抽头权重发射机均衡可以足以缓解这些问题中的一些,等等。
转到图11,简化框图1001示出了示出示例性MCPL的示例性逻辑PHY。物理PHY 1105可以连接到包括逻辑PHY1110和支持MCPL的链路层的附加逻辑的管芯。在该示例中,管芯还可以包括用于支持在MCPL上的多个不同协议的逻辑。例如,在图11的示例中,PCIe逻辑1115以及IDI逻辑1120可以被提供,使得管芯可以使用PCIe或IDI在同一MCPL连接两个管芯进行通信,在潜在的许多其它示例中,包括在其中通过MCPL支持多于两个协议或者通过MCPL支持除了的PCIe和IDI之外的协议。在管芯之间支持的各种协议可以提供变动级别的服务和特征。
逻辑PHY1110可以包括用于协商(例如,通过PCIe或IDI接收的)与管芯的上层逻辑的请求有关的链路状态转换。在一些实施方式中,逻辑PHY 1110还可以包括链路测试和调试逻辑(例如,1130)。如上所述,示例性MCPL可以支持控制信号,该控制信号通过MCPL在管芯之间被发送,以有助于MCPL的协议不可知的、高性能、以及(在其它示例特征中的)功率效率特征。例如,如在上述示例中描述的,逻辑PHY 1110可以支持与通过专用数据通路发送和接收数据相关的对有效信号、流信号和LSM边带信号的生成、发送以及接收。
在一些实施方式中,多路复用逻辑(例如,1135)和去多路复用逻辑(例如,1140)可以被包括在逻辑PHY 1110中,或是以其它方式可访问逻辑PHY 1110。例如,多路复用逻辑(例如,1135)可以用于标识会被送出到MCPL的数据(例如,具体为分组、消息等)。多路复用逻辑1135可以标识管理数据的协议,并生成被编码以标识协议的流信号。例如,在一个示例性实施方式中,流信号可以被编码为两个十六进制码元的字节(例如,IDI:FFh;PCIe:F0h;LLP:AAh;边带:55h等等),并且可以在由标识的协议管理的数据的同一窗口(例如,字节时间周期窗口)期间被发送。类似地,去多路复用逻辑1140可以被用来解释传入流信号以解码流信号,并标识用于应用于与数据通路上的流信号同时接收的数据的协议。然后去多路复用逻辑1140可以应用(或确保)特定协议的链路层处理并且使数据由相应的协议逻辑(例如,PCIe逻辑1115或IDI逻辑1120)来被处理。
逻辑PHY 1110还可以包括可以用于处理各种链路控制功能的链路层分组逻辑1150,该各种链路控制功能包括电源管理任务、回环、禁用、重定心、加扰等。在其它功能中,LLP逻辑1150可以通过MCLP促进链路层到链路层的消息。与LLP信号发送相对应的数据还可以由专用流信号通路上发送的流信号标识,该流信号被编码以标识数据通路LLP数据。多路复用逻辑和去多路复用逻辑(例如,1135、1140)还可以用于生成和解释相应于LLP业务的流信号,以及使得这种业务由适合的管芯逻辑(例如,LLP逻辑1150)而被处理。同样地,在其它示例中,作为MCLP的一些实施方式可以包括专用边带(例如,边带1155和支持逻辑),诸如异步和/或较低频率的边带信道。
逻辑PHY逻辑1110还可以包括状态机管理逻辑,该状态机管理逻辑可以通过专用LSM边带通路而生成和接收(以及使用)链路状态管理消息。例如,在其它潜在示例中,LSM边带通路可以用于执行反馈检验(handshaking)以推进链路训练状态,从电源管理状态(例如,L1状态)退出。在其它示例中,LSM边带信号可以是异步信号,因为它不与链路的数据、有效的流信号对齐,而是对应于信号发送状态转换和对齐由链路连接的两个管芯或芯片之间的链路状态机。在一些示例中,在其它示例益处中,提供专用LSM边带通路可以允许传统静噪和模拟前端(AFE)的接收的检测电路被消除。
转到图12,简化框图1200示出了示出用于实现MCPL的逻辑的另一种表示。例如,通过多个不同协议(例如,PCIe、IDI、QPI等)1210、1215、1220、1225中的任一个为逻辑PHY1110提供经定义的逻辑PHY接口(LPIF)1205,并且信号发送模式(例如,边带)可以与示例性MCPL的物理层进行接口。在一些实施方式中,多路复用和仲裁逻辑1230还可以提供作为与逻辑PHY 1110分开的层。在一个示例中,可以将LPIF 1205提供作为在该MuxArb层1230的任一侧上的接口。逻辑PHY 1110可以通过另一个接口与物理PHY(例如,MCPL PHY的模拟前端(AFE)1105)进行接口。
该LPIF可以从上层(例如,1210、1215、1220、1225)提取PHY(逻辑和电气/模拟),使得完全不同的PHY可以在LPIF下对上层透明的被实现。在其它示例中,这可以有助于提升模块化和在设计中的再利用,如当底层信号发送技术PHY被更新时,上层可以保持完整。此外,LPIF可以定义实现多路复用/去多路复用、LSM管理、错误检测和处理、以及逻辑PHY的其它功能的多个信号。例如,表1总结了可以为示例性LPIF定义的信号的至少一部分:
表1:
Figure BDA0001389498650000211
Figure BDA0001389498650000221
表1
如表1所示,在一些实施方式中,可以通过AlignReq/AlignAck反馈检验提供对齐机制。例如,当物理层进入恢复时,一些协议可能丢失分组成帧。例如,为了保证通过链路层的正确成帧标识,分组的对齐可以被校正。此外,如图13所示,当物理层进入恢复时,物理层可以断言StallReq信号,使得当新的对齐的分组已准备好被传输时,链路层断言暂缓信号。物理层逻辑可以采样暂缓(stall)和有效(Valid)两者,以确定该分组是否被对齐。例如,该物理层可以继续驱动trdy排出链路层分组,直到所采样的暂缓(stall)和有效被断言,其它潜在的实施方式中,包括使用用于协助分组对齐的有效的其它替代实施方式。
各种故障容差可以定义用于在MCPL上信号。例如,故障容差可以定义用于有效、流、LSM边带、低频边带、链路层分组、以及其它类型的信号。针对通过MCPL的专用数据通路发送的分组、消息、以及其它数据的故障容差可以基于管理数据的特定协议。在一些实施方式中,除了其它潜在示例,错误检测和处理机制可被设置,诸如,循环冗余检查(CRC)、重试缓冲器。作为示例,对于通过MCPL发送的PCIe分组,32位CRC可以用于(具有保证递送(例如,通过一个重放机制))的PCIe事务处理层分组(TLP)并且16比特CRC可以用于PCIe链路层分组(其可被构建为是有损的(例如,其中重放被应用))。此外,除了其它示例,对于PCIe成帧令牌,特定汉明(hamming)距离(例如,四(4)的汉明距离)可以定义用于令牌标识符;奇偶校验和4比特CRC还可以被利用。在另一方面,对于IDI分组,16比特CRC可以被利用。
在一些实施方式中,故障容差可以定义用于链路层分组(LLP),该链路层分组包括要求有效信号从低到高的转换(即,0到1)(例如,以协助确保比特和码元锁)。此外,在一个示例中,在可以用作确定MCPL上LLP数据中的故障的基础的其它经定义的特性中,利用在响应超时之后的请求器重试,特定数量的连续的、相同的LLP可以被定义以被发送,并且响应可以预期为每个请求。在进一步的示例中,故障容差可以被提供给有效的信号,例如,通过在整个时间周期窗口扩展有效信号、或码元(例如,通过将用于八个UI的有效信号保持为高)。此外,除了其它示例,可以通过维持用于流信号的编码值的汉明距离防止流信号中的错误或故障。
逻辑PHY的实施方式可以包括错误检测、错误报告和错误处理逻辑。在一些实施方式中,除了其它示例,示例性MCPL的逻辑PHY可以包括用于检测(例如,在有效和流通路上的)PHY层去成帧错误、(例如,关于LSM状态转换的)边带错误、(例如,对于LSM状态转换至关重要的)LLP中的错误的逻辑。除了其它示例,一些错误检测/分辨率可以被送至上层逻辑,诸如,适于检测特定的PCIe错误的PCIe逻辑。
在去成帧错误的情况下,在一些实施方式中,一个或多个机制可以通过错误处理逻辑而被提供。去成帧错误可以基于所涉及的协议而被处理。例如,在一些实施方式中,可以向链路层通知错误从而触发重试。去成帧还可以引起逻辑PHY去成帧的重对齐。此外,除了其它技术,逻辑PHY的重定心可以被执行,并且码元/窗口锁可以被重新获取。在一些示例中,定心可以包括PHY,该PHY将接收机时钟相位移动到最佳点,以检测传入的数据。在本上下文中,“最佳”可以指代在哪里其具有用于噪声和时钟抖动的最大容限。除了其它示例,重定心可以包括简化的定心功能,例如,当PHY从低功率状态唤醒时该简化的定心功能被执行。
其它类型的错误可能涉及其它错误处理技术。例如,在边带检测到的错误可以通过相应的状态的(例如,LSM的)超时机制而被捕捉。错误可以被记录,并且然后链路状态机可以被转换为复位。LSM可以保持复位状态直到从软件接收到重启命令。在另一个示例中,LLP错误(例如,链路控制分组错误),可以利用超时机制而被处理,如果未接收到对LLP序列的确认,该超时机制可以重新启动LLP序列。
图14A-14C示出了在用于各种类型的数据的示例性MCPL的数据通路上示例性比特映射的表示。例如,示例性MCPL可以包括五十个数据通路。图14A示出了在第一协议中示例性16字节槽的第一比特映射(诸如,IDI),其可以通过8UI码元或窗口内的数据通路而被发送。例如,在所定义的8UI窗口内,三个16字节槽(包括报头槽)可以被发送。在该示例中,两个字节的数据保持,并且这些剩余的两个字节可以利用为CRC位(例如,在通路上的DATA[48]和DATA[49])。
在另一个示例中,图14B示出了用于通过示例性MCPL的五十个数据通路发送的PCIe分组数据的第二示例性比特映射。在图14B的示例中,16字节的分组(例如,事务处理层(TLP)或数据链路层(DLLP)PCIe分组)可以通过MCPL而被发送。在8UI窗口中,三个分组可以利用窗口内的留下没有使用带宽的剩余两个字节而被发送。成帧令牌可以包含在这些码元内并且用于定位每个分组的起始和结束。在PCIe的一个示例中,在图14B的示例中使用的成帧可以与以8GT/秒的PCIe实现的那些令牌一样。
在又一个示例中,如图14C所示,示出了通过示例性MCPL发送的链路到链路分组(例如,分组LLP)的示例性比特映射。LLP可以是每4个字节,并且每个LLP(例如,LLP0、LLP1、LLP2等)可以根据示例性实施方式内的故障容错和错误检测连续四次被发送。例如,未能接收到四个连续的相同的LLP可以指示错误。另外,当具有其它的数据类型时,在行进时间窗口或码元未能接收到VALID还可以指示错误。在一些情况下,LLP可以具有固定槽。此外,在该示例中,除了其它示例,在字节时间周期中未使用的、或“备用”的比特,可以导致通过五十通路中的两个(例如,DATA[48-49])被传送的逻辑0。
转到图15,简化的链路状态机转换图1400与状态转变之间利用的边带反馈检验交换一起被示出。例如,Reset.Idle状态(例如,在其中执行锁相环(PLL)锁定校准)可以通过边带反馈检验而转换为Reset.Cal状态(例如,其中该链接进一步被校准)。Reset.Cal可以通过边带反馈检验转换为Reset.ClockDCC状态(例如,其中可以执行占空比校正(DCC)和延迟锁定回路(DLL)锁定)。附加的反馈检验可以被执行以从Reset.ClockDCC转换为Reset.Quiet状态(例如,以解除断言有效信号)。为了协助MCPL的通路上的信号发送的对齐,该通路可以通过Center.Pattern状态而被定心。
在一些实施方式中,如在图16的示例中所示,在Center.Pattern状态期间,发射机可以生成训练模式或其它数据。该接收机可以调节它的接收机电路以接收这种训练模式,例如,通过设置相位插值器位置和vref位置并且设置比较器。接收机可以不断地将所接收的模式与预期模式进行比较,并把结果保存在寄存器中。在一组模式完成之后,接收机可以增加相位插值器设置保持vref相同。测试模式生成和比较过程可以继续并且新的比较结果可以利用通过所有相位插值器值和通过vref的所有值重复步进的进程而被存储在寄存器。当模式生成和比较过程全部完成时,可以进入Center.Quiet状态。以下通过Center.Pattern和Center Quiet链路状态将通路定心,边带反馈检验(可以例如,使用通过链路的专用LSM边带通路的LSM带信号)便于转换到Link.Init状态以初始化MCPL并且实现在数据MCPL上发送数据。
暂时返回到图15的讨论,如上所述,边带反馈检验可以用于促进在多芯片封装中的管芯或芯片之间的链路状态机转换。例如,在MCPL的LSM边带通路上的信号可以用于在整个管芯中同步状态机转换。例如,当用于退出状态(例如,Reset.Idle)的条件满足时,满足这些条件的边可以断言,在其出站LSM_SB通路上的LSM边带信号,并等待其它远程管芯到达相同的条件,并且断言在其LSM_SB通路上的LSM边带信号。当两个LSM_SB信号均被被断言时,每个相应的管芯的链路状态机可以转换到下一个状态(例如,Reset.Cal状态)。最小重叠时间可以被定义,在此期间在转换状态之前两个LSM_SB信号都应该保持被断言。此外,在LSM_SB被解除断言之后,最小静止时间可以被定义以允许准确转向检测。在一些实施方式中,每个链路状态机转换可以在这种LSM_SB反馈检验上被调节,并由这种LSM_SB反馈检验来促进。
图17是更详细的链路状态机图1700,示出了可以被包括在示例性MCPL的附加链路状态和链路状态转变中的至少一些。在一些实施方式中,在如图17示出的其它状态和状态转换中,示例性链路状态机可以包括“导向的回环”转换可以被提供为将MCPL的通路放置在数字回环中。例如,在时钟恢复电路之后,MCPL的接收机通路可以被回环到发射机通路。“LBRecenter”状态还可以提供在一些情况中,其可以用于对齐数字码元。此外,如图15所示,除了潜在其它示例,MCPL可以支持多个链路状态,包括活动L0状态和低功率状态(例如,L1空闲状态,以及L2睡眠状态)。
图18是简化框图1800,其示出了在活动状态(例如,L0)和低功率、或空闲状态(例如,L1)之间转换的示例性流程。在该特定示例中,第一设备1805和第二设备1810使用MCPL而通信地被耦合。当处于活动状态时,数据通过MCPL的通路(例如,DATA、VALID、STREAM等)而被传送。链路层分组(LLP)可以通过通路(例如,具有指示数据是LLP数据的流信号的数据通路),以协助促进链路状态转换。例如,LLP可以在第一设备1805和第二设备1810之间被发送以协商从L0进入L1。例如,由MCPL支持的上层协议可以传达需要进入L1(或另一个状态)并且上层协议可以使得LLP通过MCPL被发送以促进链路层反馈检验,以使得物理层进入L1。例如,图18示出发送LLP中的至少一部分包括从第二(上游)设备1810发送到第一(下游)设备1805的“进入L1”请求LLP。在一些实施方式中,以及上层协议中,下游端口不发起进入L1。除了其它示例,接收第一设备1805可以发送作为响应的“改变到L1”请求LLP,其中,第二设备1810可以通过“改变到L1”来对确认(ACK)LLP进行确认。在检测到反馈检验完成时,逻辑PHY可以使得边带链路在专用边带链路上被断言,以确认该ACK被接收并且设备(例如,1805)准备好并期望进入L1。例如,第一设备1805可以断言发送至第二设备1810的边带信号1815,以确认在链路层反馈检验接收到最后的ACK。另外,第二设备1810还可以响应于边带信号1815而断言边带信号,以通知第一设备的边带ACK 1805的第一设备1805。利用已完成的链路层控制和边带反馈检验,MCPL PHY可以被转换成L1状态,使得MCPL的所有通路被置于空闲功率节省模式,包括相应的设备1805、1810的MCPL选通1820、1825。在第一设备1805和第二设备1810中的一个的上层逻辑请求重新进入L0之后(例如,响应于检测数据通过MCPL要被发送到其它设备),可以退出L1。
如上所述,在一些实施方式中,MCPL可以促进在支持潜在多种不同协议的两个设备之间的通信,并且MCPL可以根据在MCPL的通路上的多个协议潜在的任何一个而促进通信。然而,促进多种协议可以复制进入和再进入到至少一些链接状态。例如,尽管一些传统的互连具有假定在状态转变中的主机作用的单独上层协议,但是具有多种不同协议的MCPL的实施方式有效地涉及多个主机。作为示例,如图18所示,PCIe和IDI中的每个可以通过MCPL的实施方式而在两个设备1805、1810之间被支持。例如,将物理层放置进入空闲或低功率状态可以根据首先被从受支持的协议(例如,PCIe和IDI)中的每个获得了许可而被调节。
在一些情况下,进入L1(或另一个状态)可以通过支持用于MCPL的实施方式的多个支持协议中的仅一个而被请求。尽管可以存在(例如,基于标识MCPL上的类似条件(例如,很少或没有业务))其它协议将同样请求进入相同状态的可能性,但是在实际促进状态转换之前,逻辑PHY可以等待直到许可或指令从每个上层协议被接收。逻辑PHY可以跟踪哪些上层协议已经请求状态改变(例如,执行相应的反馈检验),并且在标识协议中的每个已经请求特定状态改变时,触发状态转换(例如,从L0到L1的转换或者将影响或干扰其它协议通信的另一个转换)。在一些实施方式中,协议对于它们的至少部分依赖于系统中的其它协议可能是视而不见(blind)的。此外,在一些情况下,协议可以期望对(例如,来自PHY的)进入特定状态的请求的响应,例如,所请求的状态转换的确认或拒绝。因此,在这种情况下,当等待来自其它支持的协议进入空闲链路状态的许可时,逻辑PHY可以生成对进入空闲状态的请求的合成响应,以“欺骗”请求的上层协议相信已经进入的特定状态(实际上,当通路仍然活动时,至少直到其它协议也请求进入空闲状态)。除其它潜在优点,在其它示例中,这可以简化协调进入多个协议之间的低功率状态。
应当注意的是,上述装置、方法和系统可以在如上所述的任何电子设备或系统中被实现。作为具体说明,下面的附图提供了用于利用本文所述的本发明的示例性系统。由于下面的系统被更详细地描述,所以公开了、描述了和重新讨论了与上面的讨论不同的多个互连。并且显而易见的是,上述的进展可以应用于这些互连、结构或架构中一个或多个。
参考图19,描绘了用于包括多核处理器的计算系统的框图的实施例。处理器1900包括用于执行代码的任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或其它设备。在一个实施例中,处理器1900包括至少两个核——核1901和核1902,其可以包括不对称核或对称核(如实施例所示)。然而,处理器1900可以包括可以是对称的或不对称的任何数量的处理元件。
在一个实施例中,处理元件指代用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其它元件,其能够保持用于处理器的状态(例如,执行状态或架构状态)。换句话说,在一个实施例中,处理元件指代能够独立地与代码(例如,软件线程、操作系统、应用或其它代码)相关联的任何硬件。物理处理器(或处理器插座)通常指代集成电路,其可能包括任何数量的其它处理元件(例如,核或硬件线程)。
核通常指代位于集成电路上能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相反,硬件线程通常指代位于集成电路上能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。可以看出,当一些资源被共享并且其它资源被专用于架构状态时,硬件线程的命名和核之间的线路重叠。然而通常,核和硬件线程由操作系统视为独立的逻辑处理器,其中操作系统能够在每个逻辑处理器上独立地调度操作。
如图19所示,物理处理器1900包括两个核——核1901和核1902。这里,核1901和核1902被认为是对称核,即,具有相同的配置、功能单元和/或逻辑的核。在另一个实施例中,核1901包括无序处理器核,而核1902包括按顺序处理器核。然而,核1901和核1902可以从任何类型的核(例如,本机核、软件管理的核、适于执行本机指令集架构(ISA)的核、适于执行翻译的指令集架构(ISA)的核、共同设计的核或其它已知的核)中单独地被选择。在异构核环境(即,非对称核)中,某种形式的转换(例如,二进制转换)可以被利用以在一个或两个核上调度或执行代码。为了进一步讨论,当核1902中的单元在所描述的实施例中以类似的方式操作时,在下文中更详细地描述了核1901中所示的功能单元。
如图所示,核1901包括两个硬件线程1901a和1901b,其还可以被称为硬件线程槽1901a和1901b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器1900视为四个单独的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器1901a相关联,第二线程与架构状态寄存器1901b相关联,第三线程可以与架构状态寄存器1902a相关联,并且第四线程可以与架构状态寄存器1902b相关联。这里,如上所述,架构状态寄存器(1901a、1901b、1902a和1902b)中的每个可以被称为处理元件、线程槽或线程单元。如图所示,架构状态寄存器1901a被复制在架构状态寄存器1901b中,因此独立的架构状态/上下文能够被存储以用于逻辑处理器1901a和逻辑处理器1901b。在核1901中,其它较小的资源(例如,在分配器和重命名器块1930中的指令指针和重命名逻辑)还可以被复制以用于线程1901a和1901b。一些资源(例如,在重排序/撤出(retirement)单元1935中的重排序缓冲器、ILTB1920、加载/存储缓冲器和队列)可以通过分区被共享。其它资源(例如,通用内部寄存器、(一个或多个)页表基址寄存器、低级数据高速缓存和数据-TLB 1915、(一个或多个)执行单元1940以及无序(out-of-order)单元1935的多个部分)可能完全被共享。
处理器1900通常包括可以被完全共享、通过分区共享或由处理元件专用的/专用于处理元件的其它资源。在图19中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。应当注意的是,处理器可以包括或省略这些功能单元中的一个或多个,并且包括未描绘的任何其它已知的功能单元、逻辑或固件。如图所示,核1901包括简化的、代表性的无序(OOO)处理器核。但是,顺序处理器可以在不同的实施例中被利用。OOO核包括用于预测要被执行/采用的分支的分支目标缓冲器1920,以及用于存储用于指令的地址转换条目的指令转换缓冲器(I-TLB)1920。
核1901还包括耦合到提取单元1920的解码模块1925以对提取的元素进行解码。在一个实施例中,提取逻辑包括分别与线程槽1901a、1901b相关联的独立的定序器。通常,核1901与第一ISA相关联,其定义/指定在处理器1900上可执行的指令。通常,作为第一ISA的部分的机器代码指令通常包括指令的一部分(称为操作码),其引用/指定要执行的指令或操作。解码逻辑1925包括从指令的操作码识别这些指令并将经解码的指令在流水线中传递以如由第一ISA定义进行处理的电路。例如,如下面更详细地讨论,在一个实施例中,解码器1925包括被设计或适于识别诸如事务性指令之类的具体指令的逻辑。由于解码器1925识别,架构或核1901采取具体的、预定义动作来执行与适当指令相关联的任务。重要的是要注意,本文描述的任务、块、操作和方法中的一个或多个可以响应于单独的或多个指令而被执行;这些指令中的一些可能是新的或旧的指令。在一个实施例中,应当注意的是,解码器1926识别相同的ISA(或其子集)。或者,在异构核环境中,解码器1926识别第二ISA(第一ISA或不同的ISA的子集)。
在一个示例中,分配器和重命名器块1930包括用于预留资源(例如,用于存储指令处理结果的寄存器文件)的分配器。然而,线程1901a和1901b可能能够无序执行,其中分配器和重命名器块1930还预留其它资源,例如,用于跟踪指令结果的重排序缓冲器。单元1930还可以包括寄存器重命名器,该寄存器重命名器用来将程序/指令引用寄存器重命名为位于处理器1900内部的其它寄存器。重排序/撤出单元1935包括用于支持无序执行以及稍后对无序执行的指令的有序撤出的组件,诸如上文提到的重排序缓冲器、加载缓冲器和存储缓冲器。
在一个实施例中,(一个或多个)调度器和执行单元块1940包括用于在执行单元上调度指令/操作的调度器单元。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其它已知执行单元。
较低级的数据高速缓存和数据转换缓冲器(D-TLB)1950耦合到(一个或多个)执行单元1940。数据高速缓存用于存储最近使用/操作的元素,例如,数据操作数,其可能保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为具体示例,处理器可以包括用于将物理存储器分解成多个虚拟页面的页表结构。
这里,核1901和核1902共享对更高级别或更远离(further-out)高速缓存,例如,与片上接口1910相关联的第二级别高速缓存。应当注意的是,更高级别或更远离指代高速缓存级别增加或更远离(一个或多个)执行单元。在一个实施例中,更高级别的高速缓存是末级数据高速缓存——在处理器1900上的存储器层级中的最后的高速缓存。然而,更高级别的高速缓存并非限制于此,其可以与指令高速缓存相关联或包括指令高速缓存。跟踪高速缓存——一种指令高速缓存——相反可以在解码器1925之后耦合来存储最近解码的跟踪。这里,指令可能指代宏指令(即,由解码器识别的通用指令),其可以解码成多个微指令(微操作)。
在绘制的配置中,处理器1900还包括片上接口模块1910。历史上,下面更详细描述的存储器控制器已被包括在处理器1900外部的计算系统中。在这种情况下,片上接口1910用于与处理器1900外部的设备进行通信,诸如,系统存储器1975、芯片组(通常包括用于连接到存储器1975的存储器控制器中心和用于连接外围设备的I/O控制器中心)、存储器控制器中心、北桥或其它集成电路。并且在这种情况下,总线1905可以包括任何已知的互连,诸如多点总线、点到点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层的协议架构、差分总线以及GTL总线。
存储器1975可以专用于处理器1900或与系统中的其它设备共享。常见类型的存储器1975的示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。应当注意的是,设备1980可以包括耦合到存储器控制器中心的图形加速器、处理器或卡,耦合到I/O控制器中心的数据存储,无线收发器,闪存设备,音频控制器,网络控制器或其它已知的设备。
然而,近来,随着更多的逻辑和设备被集成在诸如SOC的单独管芯上,这些设备中的每个可以纳入处理器1900。例如,在一个实施例中,存储器控制器中心在同一封装上和/或在具有处理器1900的管芯上。这里,核(核上(on-core)部分)的一部分1910包括用于与其它设备(例如,存储器1975或图形设备1980)进行接口的一个或多个控制器。包括互连和用于与这种设备进行接口的控制器的配置通常被称为核上(或非核(un-core)配置)。作为示例,片上接口1910包括用于片上通信的环形互连和用于片外通信的高速串行点到点链路1905。然而,在SOC环境中,诸如网络接口、协处理器、存储器1975、图形处理器1980和任何其它已知的计算机设备/接口的甚至更多设备可以被集成在单独的管芯或集成电路上以提供具有高功能和低功耗的小的形式因子。
在一个实施例中,处理器1900能够执行编译器、优化和/或转换器代码1977以编译、转换和/或优化应用代码1976来支持本文描述的装置和方法或与其进行接口。编译器通常包括将源文本/源代码转换为目标文本/目标代码的程序或程序集。通常,利用编译器编译程序/应用代码在多个阶段和多程(pass)中完成,以将高级编程语言代码转换为低级机器或汇编语言代码。然而,单程编译器仍然可以用于简单编译。编译器可以利用任何已知的编译技术并执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码转换和代码优化。
较大的编译器通常包括多个阶段,但最通常这些阶段被包括在两个通用阶段中:(1)前端,即,通常在其中可能发生句法处理、语义处理和一些变换/优化,以及(2)后端,即,通常在其中发生分析、转换、优化和代码生成。一些编译器指代中段,其说明了编译器的前端和后端之间的描绘模糊。因此,编译器的插入、关联、生成或其它操作的引用可以在上述任何一个阶段或者任一程(pass)以及编译器的任何其它已知的阶段或程中发生。作为说明性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,例如,在编译的前端阶段插入调用/操作,并且然后在转换阶段期间,将调用/操作转换为较低级别代码。应当注意的是,在动态编译期间,编译器代码或动态优化代码可以插入这种操作/调用,以及在运行期间优化用于执行的代码。作为具体的说明性示例,二进制代码(已编译的代码)可以在运行时期间动态地被优化。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
类似于编译器,诸如二进制转换器的转换器静态地或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码或其它软件环境的执行的引用可以指代:(1)执行编译器(一个或多个)程序,优化代码优化器,或者用于动态地或静态地编译程序代码、维持软件结构、执行其它操作、优化代码或转换代码的转换器;(2)执行包括操作/调用的主程序代码,例如,已经优化/编译的应用代码;(3)执行与主程序代码相关联的其它程序代码(例如,库),以维持软件结构、来执行与其它软件相关的操作、或优化代码;或(4)上述的组合。
现在参考图20,示出了多核处理器的实施例的框图。如图20的实施例所示,处理器2000包括多个域。具体地,核域2030包括多个核2030A-2030N,图形域2060包括具有媒体引擎2065的一个或多个图形引擎,以及系统代理域2010。
在各种实施例中,系统代理域2010处理功率控制事件和功率管理,使得域2030和2060的独立的单元(例如,核和/或图形引擎)根据出现在给定单元中活动(或非活动),独立地可控制以适当的功率模式/级别(例如,活动的、涡轮增压、睡眠、休眠、深度睡眠或其它高级配置电源接口等状态)动态地操作。域2030和域2060中的每个可以在不同的电压和/或功率下工作,并且此外,域内的独立的单元都可能以独立的频率和电压而操作。应当注意的是,尽管仅示出了三个域,但是应当理解的是,本发明的范围并与限于此,并且在其它实施例中可能存在附加的域。
如图所示,除了各种执行单元和附加处理元件之外,每个核2030还包括低级别高速缓存。这里,各种核彼此耦合并且耦合到共享高速缓冲存储器;该共享高速缓冲存储器由末级高速缓存(LLC)2040A-2040N的多个单元或片段形成;这些LLC通常包括存储和高速缓存控制器功能,并且这些LLC在核之间共享,也可能在图形引擎之间共享。
如图所示,环形互连2050将核耦合在一起,并且经由多个环形止动器(ring stop)2052A-2052N而提供核域2030、图形域2060和系统代理电路2010之间的互连,每个环形止动器处于核和LLC片段之间的耦合。如图20所示,互连2050用于承载各种信息,包括地址信息、数据信息、确认信息和探听/无效信息。尽管示出了环形互连,但是可以利用任何已知的管芯上的互连或结构。作为说明性示例,上面讨论的结构中的一些结构(例如,另一个管芯上互连、片上系统结构(OSF)、高级微控制器总线架构(AMBA)互连、多维网格结构或其它已知的互连架构)可以以类似的方式被利用。
如进一步描绘的,系统代理域2010包括显示引擎2012,其用于提供对相关显示器的控制和接口。系统代理域2010可以包括其它单元,例如:用于提供到系统存储器(例如,通过多个DIMM实现的DRAM)的接口的集成存储器控制器2020;用于执行存储器一致性操作的一致性逻辑2022。可以存在多个接口以实现处理器与其它电路之间的互连。例如,在一个实施例中,提供了至少一个直接媒体接口(DMI)2016接口以及一个或多个PCIeTM接口2014。显示引擎和这些接口通常经由PCIeTM桥2018耦合到存储器。另外,为了提供其它代理(诸如,附加处理器或其它电路)之间的通信,可以提供一个或多个其它接口。
现在参考图21,示出了代表性核的框图;具体地,核的后端的逻辑块,例如,来自图20的核2030。通常,图21所示的结构包括无序处理器,其具有用于提取传入指令的前端单元2170,执行各种处理(例如,高速缓存、解码、分支预测等)并且将指令/操作沿着无序(OOO)引擎2180进行传递。OOO引擎2180对经解码的指令执行进一步处理。
具体地,在图21的实施例中,无序引擎2180包括:用于从前端单元2170接收经解码的指令的分配单元2182,其可以以一个或多个微型指令或者微指令的形式,并且将它们分配给适当的资源,例如,寄存器等。接下来,将指令提供给预留站2184,预留站2184预留资源并调度它们以在多个执行单元2186A-2186N中的一个执行单元上执行。可以存在各种类型的执行单元,包括例如,算术逻辑单元(ALU)、加载和存储单元、向量处理单元(VPU)、浮点执行单元等。来自这些不同执行单元的结果被提供给重排序缓冲器(ROB)2188,该重排序缓冲器获取无序结果并返回它们以校正程序顺序。
仍然参考图21,应当注意的是,前端单元2170和无序引擎2180两者都被耦合到存储器层级的不同级别。具体示出的是指令级高速缓存2172,其又耦合到中级高速缓存2176,该中级高速缓存2176又耦合到末级高速缓存2195。在一个实施例中,末级高速缓存2195在片上(有时被称为非核)单元2190中实现。作为示例,单元2190类似于图20的系统代理2010。如上所述,非核2190与系统存储器2199进行通信,在示出的实施例中,系统存储器2199经由ED RAM实现。还应当注意的是,无序引擎2180内的各个执行单元2186与第一级高速缓存2174进行通信,该第一级高速缓存2174还与中级高速缓存2176进行通信。还应当注意的是,附加核2130N-2-2130N可以耦合到LLC 2195。尽管以高级示出了图21的实施例,应当理解的是,可能存在各种变更和附加组件。
转到图22,利用包括用于执行指令的执行单元的处理器形成的示例性计算机系统的框图,在其中根据本发明的一个实施例示出了实现一个或多个特征的互连中的一个或多个。根据本发明,例如在本文中描述的实施例中,系统2200包括诸如处理器2202的组件,该处理器2202用于使用包括用于执行用于处理数据的算法的逻辑的执行单元。系统2200表示了基于PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理系统,但是其它系统(包括具有其它微处理器的PC、工程工作站、机顶盒等)也可以使用。在一个实施例中,样本系统2200执行可从华盛顿州,雷德蒙德的微软公司获得的WINDOWSTM操作系统的版本,但是其它操作系统(例如,UNIX和Linux)、嵌入式软件和/或图形用户界面也可以使用。因此,本发明的实施例不限于硬件电路和软件的任何具体组合。
实施例不限于计算机系统。本发明的替代实施例可以用于诸如手持式设备和嵌入式应用的其它设备中。手持式设备的一些示例包括蜂窝电话、因特网协议设备、数字照相机、个人数字助理(PDA)和手持PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中心、广域网(WAN)交换机或可以根据至少一个实施例执行一个或多个指令的任何其它系统。
在所示实施例中,处理器2202包括一个或多个执行单元2208以实现用于执行至少一个指令的算法。一个实施例可以在单独处理器桌面或服务器系统的上下文中进行描述,但是替代实施例可以被包括在多处理器系统中。系统2200是“中心”系统架构的示例。计算机系统2200包括用于处理数据信号的处理器2202。作为一个说明性示例,处理器2202包括复杂指令集计算机(CISC)微处理器、简化指令集计算(RISC)微处理器、非常长指令字(VLIW)微处理器、实现指令集的组合的处理器、或任何其它处理器设备(例如,数字信号处理器)。处理器2202耦合到处理器总线2210,处理器总线2210在处理器2202和系统2200中的其它组件之间传送数据信号。系统2200的元件(例如,图形加速器2212、存储器控制器中心2216、存储器2220、I/O控制器中心2224、无线收发器2226、闪存BIOS 2228、网络控制器2234、音频控制器2236、串行扩展端口2238、I/O控制器2240等)执行本领域技术人员熟知的常规功能。
在一个实施例中,处理器2202包括级别1(L1)内部高速缓存存储器2204。根据架构,处理器2202可以具有单独内部高速缓存或多级内部高速缓存。其它实施例取决于特定实施方式和需要而包括内部高速缓存和外部高速缓存两者的组合。寄存器文件2206用于将不同类型的数据存储在各种寄存器(包括整数寄存器、浮点寄存器、向量寄存器、分组寄存器(banked register)、影子寄存器、检查点寄存器、状态寄存器和指令指针寄存器)中。
包括用于执行整数和浮点运算的逻辑的执行单元2208还驻留在处理器2202中。在一个实施例中,处理器2202包括用于存储微代码的微代码(ucode)ROM,当被执行时,该微代码用于执行针对一些宏指令的算法或处理复杂情景。这里,微代码可能是可更新以处理针对处理器2202的逻辑错误/修复。对于一个实施例,执行单元2208包括用于处理压缩指令集2209的逻辑。通过将压缩指令集2209包括在通用处理器2202的指令集中以及用于执行指令的相关联的电路中,可以使用通用处理器2202中的压缩数据来执行由多个多媒体应用使用的操作。因此,通过使用处理器数据总线的全宽度来更有效地加速和执行多个多媒体应用,以便执行压缩数据上的操作。这可能消除了跨越处理器的数据总线传送数据的较小单元以执行一个或多个操作(一次一个数据元素)的需要。
执行单元2208的替代实施例还可以用于微控制器、嵌入式处理器、图形设备、DSP以及其它类型的逻辑电路。系统2200包括存储器2220。存储器2220包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速存储器设备、或其它存储设备。存储器2220存储由数据信号表示的指令和/或数据,该数据信号要由处理器2202执行。
应当注意的是,本发明的上述特征或各方面中的一个或多个可以被利用在图22所示的一个或多个互连上。例如,未示出的、用于耦合处理器2202的内部单元的管芯上互连(ODI),实现了本发明上述描述的一个或多个方面。或者,本发明与处理器总线2210(例如,其它已知的高性能计算互连)、到存储器2220的高带宽存储器路径2218、到图形加速器2212的点到点链路(例如,符合结构的快速外围组件互连(PCIe))、控制器中心互连2222、I/O或其它互连(例如,USB、PCI、PCIe)相关联,以便耦合其它所示的组件。这些组件的一些示例包括音频控制器2236、固件中心(闪存BIOS)2228、无线收发器2226、数据存储2224、包含用户输入和键盘接口2242的传统I/O控制器2210、串行扩展端口2238(诸如,通用串行总线(USB))以及网络控制器2234。数据存储设备2224可以包括硬盘驱动、软盘驱动、CD-ROM设备、闪存设备或其它大容量存储设备。
现在参考图23,示出了根据本发明的实施例的第二系统2300的框图。如图23所示,多处理器系统2300是点到点互连系统,并且包括经由点到点互连2350耦合的第一处理器2370和第二处理器2380。处理器2370和处理器2380中的每个可以是处理器的某个版本。在一个实施例中,2352和2354是串行、点到点一致性互连结构的部分,例如,高性能架构。因此,本发明可以在QPI架构内实现。
尽管仅示出了两个处理器2370、2380,但是应当理解的是,本发明的范围并不限于此。在其它实施例中,一个或多个附加的处理器可以存在于给定的处理器中。
处理器2370和处理器2380被示出分别包括集成存储器控制器单元2372和集成存储器控制器单元2382。处理器2370还包括作为其总线控制器单元的部分的点到点(P-P)接口2376和点到点(P-P)接口2378;类似地,第二处理器2380包括P-P接口2386和P-P接口2388。处理器2370、处理器2380可以使用P-P接口电路2378、P-P接口电路2388,经由点到点(P-P)接口2350而交换信息。如图23所示,IMC 2372和IMC 2382将处理器耦合到相应的存储器,即,存储器2332和存储器2334,其可以是本地附连到相应处理器的主存储器的部分。
处理器2370、处理器2380分别使用点到点接口电路电路2376、点到点接口电路电路2394、点到点接口电路电路2386、点到点接口电路电路2398,经由单独的P-P接口2352、P-P接口2354而与芯片组2390交换信息。芯片组2390还经由接口电路2392、沿着高性能图形互连2339与高性能图形电路2338交换信息。
共享高速缓存(未示出)可以被包括在任一处理器中或两个处理器的外部;但仍经由P-P互连与处理器连接,使得如果处理器被置于低功率模式,则任一个或两个处理器的本地高速缓存信息可以被存储在共享缓存。
芯片组2390可以经由接口2396耦合到第一总线2316。在一个实施例中,第一总线2316可以是外围组件互连(PCI)总线,或诸如PCI Express总线或其它第三代I/O互连总线的总线,但是本发明的范围并不受此限制。
如图23所示,各种I/O设备2314被耦合到第一总线2316以及总线桥2318,该总线桥2318将第一总线2316耦合到第二总线2320。在一个实施例中,第二总线2320包括低引脚计数(LPC)总线。在一个实施例中,各种设备被耦合到第二总线2320,各种设备包括例如,键盘和/或鼠标2322、通信设备2327和存储单元2328(例如,磁盘驱动或通常包括指令/代码和数据2330的其它大容量存储设备)。此外,音频I/O 2324被示出为耦合到第二总线2320。应当注意的是,其它架构也是可能的,其中包括的组件和互连架构会变化。例如,代替图23的点到点架构,系统可以实现多点总线或其它这种架构。
接下来转到图24,描绘了根据发明的片上系统(SOC)设计的实施例。作为特定的说明性示例,SOC 2400被包括在用户设备(UE)中。在一个实施例中,UE指代由最终用户用于通信的任何设备,例如,手持式电话、智能电话、平板计算机、超薄笔记本、具有宽带适配器的笔记本、或任何其它类似的通信设备。通常,UE连接到基站或节点,其可能在本质上与GSM网络中的移动站(MS)相应。
这里,SOC 2400包括两个核——2406和2407。与上面的讨论类似,核2406和核2407可以符合指令集架构(例如,基于
Figure BDA0001389498650000381
Architecture CoreTM的处理器、先进微器件公司的(AMD)处理器、基于MLP的处理器、基于ARM的处理器设计、或它们的消费者),以及它们的许可者或使用者。核2406和核2407被耦合到与总线接口单元2409和用于与系统2400的其它部分进行通信的L2高速缓存2411相关联的高速缓存控制2408。互连2410包括片上互连(诸如,IOSF、AMBA、或上面所讨论的其它互连),这可能实现本文描述的一个或多个方面。
接口2410将通信信道提供给其它组件,例如,用于与SIM卡接口的用户身份识别模块(SIM)2430,用于保持引导代码的引导ROM 2435以便由核2406和2407执行以初始化和引导SOC 2400,用于与外部存储器(例如,DRAM 2460)接口的SDRAM控制器2440,用于与非易失性存储器(例如,闪存2465)接口的闪存控制器2445,用于与外围设备接口的外围控制2450(例如,串行外围接口),用于显示和接收输入(例如,触摸使能的输入)的视频编解码器2420和视频接口2425,用于执行图形相关的计算的GPU 2415等。这些接口中的一个或多个可以结合本文所描述的发明的各方面。
此外,该系统示出了用于通信的外围设备,例如,蓝牙模块2470、3G调制解调器2475、GPS 2485、和WiFi 2485。如上所述,UE包括用于通信的无线电。因此,这些外围通信模块并非所有都需要。然而,在UE一些形式中,用于外部通信的无线电将被包括在内。
图25-27公开了不存在专用STREAM通路的数据编码的示例。在本文所描述的接口的实施例中,可以提供“STREAM”通路以区分
Figure BDA0001389498650000391
芯片内互连(IDI)业务与
Figure BDA0001389498650000392
片上系统架构(IOSF)业务,两者都被提供在链路层。PHY层上的链路控制分组(LCP)还可能需要被标记。在一个实施例中,在20个数据通路的每个群集中提供一条流通路。
然而,在一些实施例中,在没有专用STREAM通路的情况下可以提供接口。例如,为了提供等效的功能,在空闲周期期间可以在数据通路内提供STREAM通路数据。因为在每20个数据通路中可以提供一条流通路,所以流通路的消除节省了大约5%的面积。
在一个实施例中,在预数据时间期间,可以将来自中间轨的20个数据通路置于高以表示一个数据种类,并将该20个数据通路置于低以表示第二数据种类(例如,
Figure BDA0001389498650000393
片上系统架构(IOSF))。为了表示例如链路控制分组(LCP)的附加的数据种类,可以将通路划分为两个或更多个组,并且可以将单独比特编码到每个组中。LCP还可以被编码成后数据时间,例如,通过停止微片业务并控制来自中间轨的“VALID”通路为0或1。
存在多种方法可以完成。在图25中,箭头2510标记了示例预数据码元时间,而箭头2520标记了示例后数据码元时间。在图25的示例中,除了数据通路(其可以被提供在每组n个通路的组中(其中在一个示例中,n=20))之外,可以提供“STROBE”通路,并且每个组可以包括“VALID”通路。“STREAM”通路还通过示例而公开,以说明在不存在本说明书的教导的情况下可能需要信号发送。利用图26和27的方法,可以消除STREAM通路,在一个实施例中提供大约5%的空间节省。
在预数据周期期间,例如,处于三数据(tridata)方案中的中间轨的数据通路保持空闲。然而,在不损失电气完整性的情况下,它们可以被驱动到0或1。因此,空闲数据通路对于在没有单独的流通路的情况下编码流数据是有用的。
在一个实施例中,仅需要在预数据周期中区分IOSF和IDI。因此,所有通路可以被驱动为高或低,以表示两种可能性中的一种。然而,本说明书并不限于此。还可能通过将数据流划分为k个组,并将值驱动到每个组上,来提供k个比特的流数据,以表示2k种分组。这些组的大小可以是统一的,但是这不是必需的。如果不需要任何通路,则它们可能在中间轨状态下处于空闲。
还可能使用仅k个通路而不是分成组。然而,分组的使用提供对实施例有益的冗余,在该实施例中可靠性优于各种其他实施例。
还可以提供后数据用于编码LCP分组。这是有用的,因为在链路层提供仅两种分组(例如,IOSF和IDI)的情况下,数据通路可以接收统一的值,而LCP被单独编码。对LCP后数据进行编码是可能的,因为在一些实施例中,LCP总是优先于微片。当一个代理需要在PHY上发送LCP时,它可以通过在链路层上提供背压而终止微片业务。
类似于如上所述的可以提供多个链路层种类的方式,在后数据周期的码元时间期间,不同类型的LCP可被编码到通路上。例如,通路0和1上的“00”可以被请求以进入硬件重定心。当以高于预期的速率遇到循环冗余检查(CRC)错误时,这种情况可能会出现,使得代理中的一个确定链路需要被重新训练,以便时钟可以适当地“被定心”。在示例中,“01”可以是该请求的ACK。仅通过非限制性示例提供这些,并且应当注意的是,许多不同的LCP请求和响应可以有用地编码在该方案中。此外,如上所述,在多个通路上编码相同的值可以帮助减少错误。在实施例中,将通路保持在中间轨处指示没有LCP被发送。
此外,在一些实施例中,可能需要在后数据周期之后的安静时间中发送LCP。为此,例如,仅在LCP被发送之前,VALID通路可以拉至0。在安静周期期间,VALID通路可以保持在其它各处的中间轨处。
在一些实施例中,所有群集的STROBE、VALID和STREAMID可以彼此相同地被驱动。在其它实施例中,它们可以单独地被驱动以提供增强的能力,例如,重定心仅单独的群集,而其它群集继续接收正常业务。
图26是示出提供嵌入式流通路数据的方法2600的流程图。在图26的示例中,使用预数据编码。
在框2610中,流通路编码器编码流通路标识符或种类标识符,以标识要跟踪的数据种类。
在框2620中,仍然在图25所示的预数据时间期间,通路驱动器将编码的种类标识符驱动到数据通路上。在一些实施例中,在需要多个比特的流通路标识符的情况下,这可以包括将数据通路划分成适当数量的组。例如,如果存在20个通路,并且需要四个比特来表示多达16个数据种类,则数据通路可以被分成每组五个通路的四组。在每个组中,所有五个通路将被驱动到相同的状态。在存在不能接收值的额外的通路的情况下,则该额外的通路可能将留在中间轨处。
在框2630中,预数据周期到期。数据通路现在必须被释放以供实质性数据使用。
在框2640中,通路驱动器将实质性数据驱动到数据通路上。
在框2690中,完成该方法。
图27是示出了提供附加的后数据流信息(例如,LCP信号)的方法2700的流程图。
在框2710中,流通路编码器对流通路标识符或种类标识符进行编码,以标识要跟踪的数据种类。
在框2720中,仍然在图25所示的预数据时间期间,通路驱动器将编码的种类标识符驱动到数据通路上。在一些实施例中,在需要多个比特的流通路标识符的情况下,这可以包括将数据通路划分成适当数量的组。例如,如果存在20个通路,并且需要四个比特来表示多达16个数据种类,则数据通路可以被分成每组五个通路的四组。在每个组中,所有五个通路将被驱动到相同的状态。在存在不能接收值的额外的通路的情况下,则该额外的通路可能将留在中间轨处。
在框2730中,预数据周期到期。数据通路现在必须被释放以供实质性数据使用。
在框2740中,通路驱动器将实质性数据驱动到数据通路上。
在框2750中,数据周期结束。数据通路现在可以再次用作流标识符。
在框2760中,例如,代理A确定需要其提供LCP。因此,代理A停止发送微片。
在框2770中,流编码器对LCP进行编码。例如,可以提供应用“RECENTER”的代码,并且可以提供用于代理B(图3)的另一个代码以提供该请求的“ACK”。附加的LCP代码还是可用的。
在框2780中,通路驱动器将LCP代码驱动到数据通路上。然后,两个代理执行请求的动作。
在框2790中,完成该方法。
图28-30示出了如图17所示的定心状态的一个实施例。在该实施例中,当从断电状态引起接口时,链路必须“被训练”才能全速度运行。训练是必要的,因为值可能随着时间的推移并且不同条件(如温度)之间“漂移”。特别是利用像PCIe的高速链路,对使信号在时域(水平)和电压域(垂直)两者都适当地定心以避免可以由参数漂移引起的比特错误而言,是必要的。
训练可以包括“定心”或“重定心”时钟信号,以确保信号在时域和电压域中都适当地被定心。在任何给定的速度处,时钟具有窗口,在该窗口中数据通路的样本将产生正确的值。窗口外的采样可能产生比特错误。时钟越快,窗口越小。增加复杂性时,存在用于垂直Vref定心和水平相位定心的单独的窗口。因此,在一个示例中,并且特别是在与窄窗口的高速互连中,训练的重要方面正在调整Vref和时钟的相位两者,使得在窗口的中心处或在窗口的中心附近采样数据以最小化比特错误。
在一个示例中,训练包括向接口供应诸如PRBS的已知值,然后采样返回比特模式。在采样之后,时钟可以在电压域(Vref)中垂直地被移动,或者在时域(相位)中水平地被移动。该接口检测比特错误何时开始出现,从而构建二维“眼睛”,其可以是基本上菱形的形状的。简单来说,眼睛内的值引起无(或可接受的很少的)比特错误,而眼睛外部的值引起不可接受数量的比特错误。
定心可以包括硬件和软件两者的组合。在一些实施例中,软件定心可以从基本输入输出系统(BIOS)芯片中运行。在一个示例中,提供用于基本或初始定心操作的硬件,其可以提供粗略的定心解决方案。然后可以使用软件来补充和改进初始定心。软件定心提供了附加的灵活性,并且在一些情况下,与硬件定心相比,提供了更高的逻辑的可编程性。这可以解决诸如,例如,硬件定心的问题,发现它认为内容是用于眼睛的“近中心”,何时实际上经由附加的步骤/程可以获得更近的中心。
在一个示例中,硬件包括用于相位调整的32个量化延迟设置,但是可以提供任何数量的量化延迟设置。Vre f设置可以类似地被量化。
在第一(仅硬件)阶段中,定心可以包括在标称电压V(例如,原始值或上一个计算的值)处进行的、跨越每个通路的量化相位设置的扫描。每次扫描之后,错误检测器列出在每个步骤/程中遇到的错误数量(如果有的话)。
在该实施例中的错误检测是发射机(Tx)适配的示例,即,Tx值是基于在反向信道上对Tx可用的远程接收机(Rx)度量而进行调整。通常在上游管芯上的核上运行的软件可以使用边带(参见图6)访问本地管芯和远程管芯,其用作反向信道。在HPI中,由于反向信道不在与链路层相同的导线上,所以这种适配同时发生在两个方向上。
在实施例中,每次扫描被聚合。因此,扫描不是对任何一个通路上的错误的数量进行评分,而是对跨越所有通路的错误的数量进行评分。这意味着在一些情况下,对于独立通路是最好的设置可能对于作为整体的互连不是最好的。这种相位扫描可以在初始启动时在硬件中执行,并且可以用于执行粗略定心,其中选择近似的中心相位
Figure BDA0001389498650000441
在实施例中,相位扫描按照全速度被执行,使得
Figure BDA0001389498650000442
的值适合于全速操作。在其它实施例中,初始硬件扫描可以首先按照部分速度(例如,按照半速度)被执行,之后按照全速度进行改进。
在相位扫描完成之后,该接口置于全速度(如果需要),并且可以从BIOS加载软件指令以继续在软件中改进定心。在该第二阶段(在一个示例中,在软件中被执行)中,电压(Vref)值类似地被扫过量化设置。每次扫描可以以
Figure BDA0001389498650000444
的电压执行。换句话说,每个通路利用在
Figure BDA0001389498650000446
处的相位设置执行Vref扫描,以确定在该相位处的最佳Vref值。然后偏移σ被递增(例如,按1)并且在
Figure BDA0001389498650000443
的任一侧(例如,
Figure BDA0001389498650000445
)上Vref被扫描。如果眼睛尚未被完全定义,则可以再次增加σ,并且可以重复该过程,直到眼睛被完全定义(参见图30),这出现在当Vmax≈Vmin(其中,Vmax为在所选择的
Figure BDA0001389498650000447
处具有可接受的错误率的最大相位,并且Vmin是在所选择的
Figure BDA0001389498650000448
处具有可接受的错误率的最小相位)的一个实施例中。
如同相位扫描一样,每次电压扫描导致零个或多个错误,并且在每个Vref值处的结果跨越所有通路而被聚合。在实施例中,按照可操作的速度(在一个示例中,为8Ghz)执行Vref扫描,以确保结果对于可操作的速度是有效的。
在第三阶段中,软件可以基于在前两个阶段中标识的值来构建包括中心点的二维“眼睛”。该眼睛可以是菱形或其它适合的形状。确定眼睛的最佳中心可能是有意义的,因为眼睛开口可能在主要拐点周围是不对称的、非单调的,并且是有点时变的。因此,眼睛定心可以在软件中执行。在一个示例中,定心包括找到
Figure BDA0001389498650000449
Figure BDA00013894986500004410
的值和这两者之间的中点的值,以及Vmax和Vmin的值和这两者之间的中点的值。根据中点,软件可以计算出建议的中心
Figure BDA00013894986500004411
然后,软件可以沿着菱形边缘选择四个拐点,并且在拐点处、沿着菱形的四个顶点(位于Vmax、Vmin
Figure BDA00013894986500004412
Figure BDA00013894986500004413
处)运行测试模式。如果眼睛已经被构建并适当地被定心,则这八个点应该全部正好落在眼睛内,并且因此应该具有可接受的错误率。如果八个点中的一个点或多个点导致不可接受的错误率,则该眼睛可能需要被调整以提高执行。例如,如果拐点失效,则眼睛的边界可能需要在一个轴或两个轴上向内被调整一个量子。然后需要对新值进行类似的测试,以确保它通过。当因此调整点时,中心
Figure BDA0001389498650000451
还可以相应地被调整。
可以通过提供如图29A和29B所示的串扰模式来增强上述阶段中的一个或多个阶段中描述的错误检测。在该示例中,可以看到,一个通路的测试包括:选择被测试通路作为“受害方”通路。可以在该通路上驱动测试模式(包括,例如,PRBS)。相邻通路以及在远处的最多为l个通路(在该示例中,l=4)是“侵害方”通路。这些通路接收串扰模式,这在这种情况下串扰模式是测试模式的逻辑反相,从而近似“最坏情况”的情景。剩余的通路是中立方。这种测试模式特别有助于定心眼睛,因为在该阶段重要的是,探测边缘情况并确保它们是合理地在眼睛内。
图28提供了如本说明书中描述的定心流程图。
在框2810中,互连唤醒,例如,在机器已经关闭之后进行启动。
在框2820中,互连执行如上所述的初始电压定心。这可以包括在硬件中执行电压扫描,并选择导致最少的总比特错误的设置。
在框2840中,一旦在硬件中完成了粗略的电压定心(如果按照降低的速度(例如,以半速度)进行电压定心),则该接口可以置于其全速度。
在框2850中,(例如,在软件中)执行相位定心。在一些示例中,软件还可以改进如本文所述的电压定心。如上所述,在一个实施例中的相位定心包括扫描每个电压V0±σ的相位
Figure BDA0001389498650000452
换句话说,选择电压,并且以该电压扫描相位。
在框2870中,眼睛在软件中被构建。
在框2880中,执行眼睛定心。如上所述,在一个实施例中,这包括选择四个顶点和四个拐点,并且对每个点进行压力测试以确定其是否通过。如果点失败,则可以向内调整该顶点或拐点并对其进行再次测试。眼睛中心
Figure BDA0001389498650000453
还可以被相应地调整。
图29A和29B示出了如上所述的示例受害方/侵害方测试模式。在该示例中,受害方(被测试)通路上方或下方最多四个通路用侵害方模式被填充。剩余的通路是中立方。在实施例中,侵害方模式是受害方通路上的PRBS测试模式的精确按位反相。
图30是眼睛3000的示例的说明。在该说明中,为了便于说明一些重要特征,眼睛3000是适当的菱形。然而,眼睛3000的特征不需要并且通常不会是正常的或单调的。由眼睛3000定义的菱形可能是左、右、上或下倾斜,并且边缘不需要由完美的共线直线组成。一旦眼睛3000进行定心,这种情形尤为成立。
在该示例中,眼睛3000最初通过扫描跨越多个相位量子的每个Vref选择3010来定义,以标识用于该Vref选择的两个相位端点3020。扫描可以从V0 3034开始,并且在上面和下面的量化步骤中进行,直到Vmax 3030和Vmin 3032被标识。在该示例中,
Figure BDA0001389498650000461
3042和
Figure BDA0001389498650000462
3040都出现在V0线路上,但是实际上一个或两个可能出现在某个其它线路上,并且不需要在同一条线路上出现。
拐点3050还被选择。在该示例中,V0至Vmax包括奇数个量子,使得拐点3050-1和3050-2可以在两者之间的“真实”中心点处被选择。然而,V0至Vmin包括偶数个量子,使得拐点3050-3和3050-4必须偏离中心被选择。这些可以由下取整函数(floor function)、上取整函数(ceiling function)来选择,或者可以取决于设计选择在间隔的任一侧来选择。
也可以选择初始中心
Figure BDA0001389498650000463
再次,由于这些值被量化,这可能不是几何中心,而是可以在任何方向上由一个或多个量子偏离中心。在定心期间,Vmax 3030、Vmin 3032、
Figure BDA0001389498650000464
3042、
Figure BDA0001389498650000465
3040,以及拐点3050用作测试点。作为测试的结果,这些点中的一个或多个可以通过一个或多个量子进行上或下、左或右调整,从而使眼睛3000的形状更加不规则。当测试点被调整时,中心
Figure BDA0001389498650000466
还可以根据需要进行相应调整。一旦定心完成,所有通路都被设置为
Figure BDA0001389498650000467
的相位和电压值,以确保最佳操作。
图31是根据本说明书的一个或多个示例的眼睛定心方法3100的流程图。方法3100的一些实施例可以在软件中执行,但是该方法还可以在硬件中、或在硬件和软件的组合中来执行。
在框3110中,软件选择测试点,例如,图30的Vmax 3030、Vmin 3032、
Figure BDA0001389498650000468
3042、
Figure BDA0001389498650000469
3040和拐点3050。
在框3120中,软件使用图29A和29B所述的受害方/侵害方通路在每个通路上每个测试点处进行压力测试。
在判定框3130中,如果所有点都通过,则在框3150中,可以利用眼睛中心的相位和电压
Figure BDA0001389498650000471
来设置所有通路。
在框3140中,如果并非所有点通过,则可以向内调整失败的点。然后控制传递到框3120以测试(一个或多个)新的点。这种继续迭代,直到所有点已经通过,并且数据通路已经在框3150中被适当地配置。
在框3190中,完成该方法。
在一些示例中,还可以根据需要出现已知为“重定心”的操作。例如,当在操作期间出现不可接受的数量的错误时,可能需要重定心。在一个示例中,不可接受的错误率多于大约1012比特中的一个循环冗余检查(CRC)错误。当这种情况出现时,微片停止,并且phits接管互连以在硬件(由于机器在运行中,软件可能不可用,因此无法加载BIOS)中执行相位扫描。
定心可能需要若干微秒,这对于高速互连中的周期性定心是不可接受地缓慢。因此,在一个实施例中,仅当接口链路层中的错误跟踪器检测到在时间跨度中接收到的CRC错误的数量大于阈值时,才出现重定心。例如,每1012比特一次CRC错误可能是可接受的。但是更多的可能是真正的错误的指示。因此,接收代理可以发送边带消息通知传送代理需要重定心。当出现这种情况时,发送代理确认消息,并且两个代理进入重定心。
边带上的消息可以是链路控制分组(LCP),其是在接口边带上发送的特殊类别的分组。边带可以按照比链路层慢的数量级的速度来操作。例如,接口边带可以按照100至400MHz来操作。
一些接口设计可以选择使用在数据通路上信号发送进行低频或连续的CDR跟踪,其由利用PRBS23加扰的微片/分组组成。在安静周期期间,当数据通路上没有足够数据包时,PHY插入虚拟LCP,以便该跟踪可以被维持。
现在转到图32-34,在一些实施例中,通过首先设计低阶块,并且然后将低阶块聚集成功能元件,来分阶段地设计系统可能是有益的。知识产权(IP)块(或“计算块”)可以指代逻辑、电路或芯片布局的可重用单元。例如,SoC可以包括多个IP块,包括相同IP块的多个实例。在一些实例中,IP块可以支持多个功能,在一些情况下,由IP块中包括的一个或多个设备来实现。可以通过定义IP块集合来设计系统,以实现该系统。例如,一个团队可以设计低级别功能块,并使该块可用于其它团队,该块用作用于后续设计的插入式组件(drop-incomponent)。在这种类型的多层设计过程中,提供一些功能作为“硬IP块”或“硬IP”(意味着IP块具有在较高级别设计期间可能不会改变的固定路由)是有益的。硬IP块可以包括,例如,对路由变化敏感的模拟组件。对于一些模拟组件,重新路由可能导致阻抗或容抗的变化,这可能影响一些敏感模拟组件的功能。因此,负责设计硬IP块的开发团队可以优化这些参数,并确保组件中的每个在可接受的参数内运行。一旦路由被固定,则不应该由下游设计者来改变它。
其它IP块可以被提供为“软IP”。软IP可以包括,例如,对路由变化较不敏感的数字组件。因此,软IP块可以具有固定的逻辑功能,但是可以根据特定设计的设计要求来布置。例如,PHY层可以具有在硬IP中实现的物理PHY,以及在软IP中实现的逻辑PHY。
尽管在硬IP中提供一些类型的功能块是有利的,但是硬IP的限制是通过设计和定义的该块是不灵活的。因此,在一个示例中,SOC设计者可能需要50个数据通路。该设计者可能正在使用硬IP块工作,该硬IP块在每个单元提供20个数据通路。因为硬IP块的路由在设计时间时是固定的,所以SOC设计者必须使用整数数量的硬IP块。具体地,使用p个硬IP块,其中每个块提供n个数据通路,全部h=n*p个总硬IP数据通路被提供。在系统设计需要全部k个数据通路的情况下,可能会遇到k≠h。例如,在k=50和n=20时,p=[k/n]=3个硬IP块需要h=n*p=60个可用的硬IP数据通路。只要h≥k,或换句话说,只要p个硬IP块提供至少足够的数据通路,则该结果可以接受。在最终SOC的布局期间,优化软件将不会将额外的10个数据通路连接到任何电源或逻辑门,使得与具有额外的数据通路相关联的唯一成本是硅晶片上的一定量的额外空间。因为与整个晶片相比,硬IP块往往是小的,所以浪费的空间不是过大的。为了便于硬IP块的使用,每个数据通路可以具有单独的使能,使得未使用的数据通路可以被忽略。还要注意的是,来自群集的通路的其它组合可以取决于情况而被使用(例如,未使用的通路可以分布在群集的中间以减少串扰)。
图32公开了示例管芯的框图,示出了逻辑PHY可以在软IP(SIP)中实现,而物理PHY可以在硬IP(HIP)中实现。在该示例中定义了内部标准接口(OPIS,封装上接口(OPI)PHY接口规范),以便于划分。还提供了链路PHY接口(LP I)。
该分区允许诸如通路反转的配置方面移动到软IP。在虚线框中详细描述的)该HIP被构建为在不牺牲性能(例如,速度)的情况下允许灵活性(例如,端口宽度)的群集。
图33是根据本说明书的一个或多个示例的硬IP和软IP的放置的说明性示例。在图33中,上层3310提供更高级别的逻辑,并且可以以任何适合的形式实现。软IP 3320提供逻辑PHY。还提供了若干个硬IP块3330。具体地,硬IP块3330-1、3330-2和3330-3分别具有20个数据通路(n=20),并具有必要的支持通路。在该实施方式中,PHY具有全部50个通路(k=50)。因此,因为硬IP(h=60)中的全部60个可用的通路,三个硬IP块3330被使用。因为硬IP块是固定的,所以包括10个额外的通路。在该示例中,每个硬IP块3330可以为每个数据通路提供单独的使能。因此,硬IP块3330-3上的通路10-19被禁用。在布局期间,它们将接收无路由、无电源无时钟,也没有其它信号。通路10-19被示为仅通过示例被禁用。在其它实施例中,根据设计要求,任何10个通路可以被禁用以达到相同的效果。
图34示出了使用硬IP块和软IP块可能出现的问题(即,通路反转)。这可以利用提供发射机和接收机两者的示例PHY封装来说明。在该示例中,发射机和接收机可以各自被提供在单独的SOC管芯上,然后集成到单个封装上。每个管芯可以包括,例如,在硬IP中提供的物理PHY,以及在软IP提供的逻辑PHY。因为硬IP、软IP、和/或管芯可以由同一供应商内的不同组或由不同供应商提供,在一些情况下,一组的数据通路可以从另一组的数据通路被反转。在SOC设计者的情况下,设计者可能无法预先知道OEM打算如何实现该设计,以及通路是否被反转。
因此,可以在各种接口处遇到通路反转。在一种情况下,可能会在硬IP和软IP之间可能出现通路反转。在其它情况下,在同一封装上的两个管芯之间可能会出现通路反转。
为了处理这种通路反转,可以使用“领结(bowtie)”以将数据通路相互路由。然而,由于这些数据通路必须相互交叉,所以至少2个附加的层需要路由(要么在管芯上的,要么在封装上的)领结。这引入了附加的设计复杂性
图34包括三个封装3410。仅作为示例,每个封装3410包括硬IP 3330、软IP 3320、和上层逻辑3310。如前所述,硬IP 3330提供物理PHY,软IP3320提供逻辑PHY功能,并且上层3310提供附加的上层逻辑。
例如,在封装3410-1中,管芯1(Tx)是PHY发射机,并且管芯2(Rx)是PHY接收机。如该示例所示,管芯1的数据通路是从管芯2的数据通路反转的通路。因此,如果使用领结,则可能需要附加的层,使得连接可以相互交叉。这增加了设计的复杂性。
在封装3410-2中,在管芯1的硬IP 3330和软IP 3320之间存在通路反转。在这种情况下,必须在管芯1上形成领结连接。再次,领结将在管芯1上需要附加的层,使得通路可以被适当地匹配。如前所述,这导致附加的设计复杂性。
然而,在封装3410-3的示例中,通路反转可以被修复,并且通路适当地被对准,而不需要领结连接以及与之相关联的附加的复杂性。具体地,在封装3410-3中,软IP 3320包括多路复用器状可编程开关3480。开关3480可以不是具有用于在输入之间进行选择的选择信号的传统多路复用器,但是开关3480可以在内部结构上类似于多路复用器,在本示例具有不同的情况下,输入的数量与输出的数量相同。
开关3480的可编程方面包括开关,该开关包括至少两种模式,即,用于直接穿过通路进行路由的一个模式,以及用于按照相反顺序路由通路的另一个模式。还可以根据需要提供其它编程的选项。为此,数据通路可以具有虚拟熔断器特性。在启动时,熔断器拔钳(fuse pull)设备可以确定在封装3410-3上是否要反转通路。如果通路要被反转,则可编程开关3480将被熔断,以执行通路反转。如果通路不要被反转,则熔断器拔钳熔断多路复用器3420,以便不反转通路。在设计时间已知方向的情况下,封装3410-3的设计者可以编程熔断器拔钳以提供正确的方向。
有利地,该架构考虑到软IP 3320的设计者可能不能预先知道通路的方向的事实。例如,封装3410-3可以提供给原始设备制造商(OEM),该原始设备制造商(OEM)可以根据其自己的设计要求确定封装3410-3的方向。在这种情况下,OEM可能会知道方向,并且可以手动设置熔断器拔出器以正确地确定开关3480的方向。在另一个示例中,在启动时,封装3410-3可以执行训练序列以确定数据通路是直接穿过路由还是交叉路由。基于训练序列的结果,然后软件可以编程熔断器拔钳以为开关3480提供适当的方向。
尽管本发明已经参考有限数量的实施例而被描述,但是本领域的技术人员将从中理解许多修改和变化。旨在所附权利要求覆盖所有这种修改和变化从而落入本说明书的真实精神和范围内。
设计可以经历各种阶段,从创建到模拟到制造。表示设计的数据可以用多种方式来表示设计。首先,正如在模拟中所使用的,可以使用硬件描述语言或其它功能描述语言来表示硬件。此外,在设计过程的一些阶段,可以产生具有逻辑和/或晶体管门的电路级模型。此外,在某个阶段,大多数设计达到在硬件模型中表示各种设备的物理布局的数据级别。在使用了常规半导体制造技术的情况下,表示硬件模型的数据可以是指定在用于产生集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。存储器或磁或光存储(例如,盘片)可以是用于存储经由光波或电波调制或以其它方式生成以传送这种信息而存储传送的信息的机器可读介质。当指示或携带代码或设计的电载波被传送时,就执行电信号的复制、缓冲或重传来说,产生了新的版本。因此,通信提供商或网络提供商可以存储在有形的机器可读介质上,至少暂时地,诸如编码成载波的信息的复制品,体现了本说明书的实施例的技术。
如本文中所使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括诸如微控制器的硬件,其与非暂时性介质相关联来存储适于由微控制器执行的代码。因此,在一个实施例中,参考模块,指代硬件,这是特别配置为识别和/或执行用于保持在非暂时性介质上的代码。此外,在另一个实施例中,模块的使用指代包括代码的非暂时性介质,这是特别适合于由微控制器实施以执行预定操作。并且由此可以推断,在又一个实施例中,术语模块(在该示例中)可以指代微控制器和非暂时性介质的组合。通常,被示为单独的模块边界通常会变化并且可能重叠。例如,第一模块和第二模块可以共享硬件、软件、固件、或其组合,同时可能保留一些独立的硬件、软件、或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器、或其它硬件(例如,可编程逻辑器件)。
在一个实施例中“被配置为”短语的使用,指代布置、放置在一起、制造、提供销售、进口和/或设计装置、硬件、逻辑或元件以执行指定的或确定的任务。在该示例中,装置或元件不工作时仍“被配置为”执行指定的任务,如果它被设计、耦合、和/或互连以执行所述指定的任务。作为纯粹说明性示例中,逻辑门可以在操作期间提供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)、磁卡或光卡、闪存、或在经由电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)通过因特网的信息传送中使用的有形的、机器可读存储。因此,计算机可读介质包括适合于以由机器(例如,计算机)可读形式存储或传送电子指令或信息的任何类型的有形的、机器可读介质。
下面的实施例涉及根据本说明书的实施例。一个或多个实施例可以提供一种用于提供硬知识产权(IP)子组件和具有至少一个软IP块的软IP组件的装置、系统、机器可读存储、机器可读介质、基于硬件和/或基于软件的逻辑以及方法,其中,硬知识产权(IP)子组件包括p个硬IP块,其中,每个硬IP块用于提供n个数据通路并具有固定路由,并且其中,所述p个硬IP块用于提供h=n*p个可用的硬IP通路;具有至少一个软IP块的软IP组件包括能够路由的逻辑并提k个数据通路,其中,k≠h。
在一个或多个实施例中,所述数据通路具有单独的使能,并且k-h个通路要被禁用。
在一个或多个实施例中,所述软IP块还包括能够编程的开关,所述能够编程的开关用于根据开关模式选择性地映射数据通路。
在一个或多个实施例中,所述开关模式至少包括:直接通路映射模式,其中通路将按照数字顺序进行映射;以及交叉映射模式,其中通路将按照反向数字顺序进行映射。
在一个或多个实施例中,所述开关模式能够经由熔断器拔钳进行编程。
在一个或多个实施例中,所述开关模式能够经由训练序列进行编程。
在一个或多个实施例中,所述熔断器能够经由只读存储器进行编程。
在一个或多个实施例中,每个通路用于接收用于定心的非相关的伪随机比特序列。
在一个或多个实施例中,所述硬IP块中的至少一些硬IP块用于接收单独的VALID信号。
在一个或多个实施例中,所述硬IP块中的至少一些硬IP块用于接收单独的STREAM_ID。
在一个或多个实施例中,一种互联的系统,包括:第一代理;第二代理;以及互连,所述互连用于将所述第一代理通信地耦合到所述第二代理,所述互连包括:包括P个硬IP模块的硬知识产权(IP)子组件和具有至少一个软IP块的软IP组件;其中,每个硬IP块用于提供n个数据通路并具有固定路由,并且其中,所述p个硬IP块用于提供h=n*p个可用的硬IP通路;所述具有至少一个软IP块的软IP组件包括能够路由的逻辑并提供k个数据通路,其中,k≠h。
在一个或多个实施例中,还公开了一种提供互连的方法,包括:放置包括p个硬IP块的硬知识产权(IP)子组件,放置具有至少一个软IP块的软IP组件;其中,每个硬IP块用于提供n个数据通路并具有固定路由,并且其中,所述p个硬IP块用于提供h=n*p个可用的硬IP通路;所述具有至少一个软IP块的软IP组件包括能够路由的逻辑并提供k个数据通路,其中,k≠h。
在一个或多个实施例中,所述方法还包括禁用k-h个通路。
在一个或多个实施例中,所述方法还包括根据开关模式选择性地映射数据通路。
在一个或多个实施例中,根据开关模式选择性地映射数据通路,包括:按照数字顺序的直接通路映射模式。
在一个或多个实施例中,根据开关模式选择性地映射数据通路,包括:按照反向数字顺序交叉映射通路。
在一个或多个实施例中,所述方法还包括为每个通路提供用于定心的伪随机比特序列。
在一个或多个实施例中,一种互连装置,包括:用于生成时钟信号的时钟生成器;用于通过测试相位将所述时钟信号进行相位移动的移相器;用于测量所述测试相位的错误率的错误率检测器;以及用于至少部分地基于所述测试相位的错误率来选择所述时钟信号的能够操作的相位的能够操作的相位选择器。
在一个或多个实施例中,一种互连装置,包括:用于对用于数据分组的种类标识符进行编码的流通路编码器;以及用于在所述数据分组的非数据时间期间,将所述种类标识符驱动到n个数据通路中的至少一个数据通路上的通路驱动器。
参考贯穿本说明书的“一个实施例”或“实施例”意味着与实施例相关的所描述的特定特征、结构、或特点被包括在本发明的至少一个实施例中。因此,贯穿本说明书的“在一个实施例中”或“在实施例中”的短语在各个位置的出现并不一定全部指代相同的实施例。另外,特定特征、结构、或特点可以以任何适合的方式在一个或多个实施例中组合。
在上述说明书中,具体实施方式已经参考具体示例性实施例而给出。然而,显然各种修改和变化可以在不脱离本发明的更宽的精神和范围的情况下在所附权利要求中阐述。因此,说明书和附图以示例性方式而非限制性方式示出。此外,实施例和其它示例性语言的前述使用不一定指代相同的实施例或相同的示例,而是可以指代不同的和区别的实施例,以及可能相同的实施例。

Claims (23)

1.一种互连装置,包括:
p个硬计算块,其中,每个硬计算块用于提供n个数据通路并且具有固定路由,并且其中,所述p个硬计算块用于提供h=n*p个能够利用的硬计算通路,其中,所述数据通路中的至少一些数据通路具有单独的使能;以及
软计算块,所述软计算块包括能够路由的逻辑,并且提供k个数据通路,其中,k<h;
其中,k-h个通路要被禁用。
2.根据权利要求1所述的装置,其中,所述软计算块还包括能够编程的开关,所述能够编程的开关用于根据开关模式选择性地映射数据通路。
3.根据权利要求2所述的装置,其中,所述开关模式至少包括:直接通路映射模式,其中,通路将按照数字顺序进行映射;以及交叉映射模式,其中,通路将按照反向数字顺序进行映射。
4.根据权利要求2所述的装置,其中,所述开关模式能够经由熔断器拔钳进行编程。
5.根据权利要求2所述的装置,其中,所述开关模式能够经由训练序列进行编程。
6.根据权利要求4所述的装置,其中,所述熔断器能够经由只读存储器进行编程。
7.根据权利要求1-6中的任一项所述的装置,其中,每个通路用于接收用于定心的非相关的伪随机比特序列。
8.根据权利要求1-6中的任一项所述的装置,其中,所述硬计算块中的至少一些硬计算块用于接收单独的VALID信号。
9.根据权利要求1-6中的任一项所述的装置,其中,所述硬计算块中的至少一些硬计算块用于接收单独的STREAM_ID。
10.一种互连的系统,包括:
第一代理;
第二代理;以及
互连,所述互连用于将所述第一代理通信地耦合到所述第二代理,所述互连包括:
p个硬计算块,其中,每个硬计算块用于提供n个数据通路并且具有固定路由,并且其中,所述p个硬计算块用于提供h=n*p个能够利用的硬计算通路,其中,所述数据通路中的至少一些数据通路具有单独的使能;以及
软计算块,所述软计算块包括能够路由的逻辑,并且提供k个数据通路,其中,k<h;
其中,k-h个通路要被禁用。
11.根据权利要求10所述的互连的系统,其中,所述软计算块还包括能够编程的开关,所述能够编程的开关用于根据开关模式选择性地映射数据通路。
12.根据权利要求11所述的互连的系统,其中,所述开关模式至少包括:直接通路映射模式,其中,通路将按照数字顺序进行映射;以及交叉映射模式,其中,通路将按照反向数字顺序进行映射。
13.根据权利要求11所述的互连的系统,其中,所述开关模式能够经由熔断器拔钳进行编程。
14.根据权利要求11所述的互连的系统,其中,所述开关模式能够经由训练序列进行编程。
15.根据权利要求13所述的互连的系统,其中,所述熔断器能够经由只读存储器进行编程。
16.根据权利要求10-15中的任一项所述的互连的系统,其中,每个通路用于接收用于定心的非相关的伪随机比特序列。
17.根据权利要求10-15中的任一项所述的互连的系统,其中,所述硬计算块中的至少一些硬计算块用于接收单独的VALID信号。
18.根据权利要求10-15中的任一项所述的互连的系统,其中,所述硬计算块中的至少一些硬计算块用于接收单独的STREAM_ID。
19.一种提供互连的方法,包括:
放置p个硬计算块,其中,每个硬计算块用于提供n个数据通路并且具有固定路由,并且其中,所述p个硬计算块用于提供h=n*p个能够利用的硬计算通路,其中,所述数据通路中的至少一些数据通路具有单独的使能;以及
放置软计算块,所述软计算块包括能够路由的逻辑,并且提供k个数据通路,其中,k<h;
其中,k-h个通路要被禁用。
20.根据权利要求19所述的方法,还包括根据开关模式选择性地映射数据通路。
21.根据权利要求19所述的方法,还包括为每个通路提供用于定心的伪随机比特序列。
22.一种互连装置,包括:用于执行根据权利要求19-21中的任一项所述的方法的模块。
23.根据权利要求22所述的装置,其中,所述模块包括处理器和存储器。
CN201680012402.0A 2015-03-26 2016-02-22 多芯片封装链路 Active CN107430569B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011252637.1A CN112231255A (zh) 2015-03-26 2016-02-22 多芯片封装链路
CN202011344684.9A CN112486875A (zh) 2015-03-26 2016-02-22 多芯片封装链路

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/669,975 2015-03-26
US14/669,975 US9946676B2 (en) 2015-03-26 2015-03-26 Multichip package link
PCT/US2016/018836 WO2016153660A1 (en) 2015-03-26 2016-02-22 Multichip package link

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202011252637.1A Division CN112231255A (zh) 2015-03-26 2016-02-22 多芯片封装链路
CN202011344684.9A Division CN112486875A (zh) 2015-03-26 2016-02-22 多芯片封装链路

Publications (2)

Publication Number Publication Date
CN107430569A CN107430569A (zh) 2017-12-01
CN107430569B true CN107430569B (zh) 2021-06-29

Family

ID=56975459

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202011252637.1A Pending CN112231255A (zh) 2015-03-26 2016-02-22 多芯片封装链路
CN201680012402.0A Active CN107430569B (zh) 2015-03-26 2016-02-22 多芯片封装链路
CN202011344684.9A Pending CN112486875A (zh) 2015-03-26 2016-02-22 多芯片封装链路

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202011252637.1A Pending CN112231255A (zh) 2015-03-26 2016-02-22 多芯片封装链路

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202011344684.9A Pending CN112486875A (zh) 2015-03-26 2016-02-22 多芯片封装链路

Country Status (5)

Country Link
US (1) US9946676B2 (zh)
EP (3) EP3846042A1 (zh)
CN (3) CN112231255A (zh)
TW (1) TWI634432B (zh)
WO (1) WO2016153660A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105967A1 (en) * 2012-01-13 2013-07-18 Intel Corporation Efficient peer-to-peer communication support in soc fabrics
KR101696124B1 (ko) * 2012-10-22 2017-01-12 인텔 코포레이션 고성능 인터커넥트 물리 계층
WO2015184994A1 (en) * 2014-06-04 2015-12-10 Nexpack Limited Super hub system and method thereof
US9946676B2 (en) 2015-03-26 2018-04-17 Intel Corporation Multichip package link
EP3274851B1 (en) 2015-03-27 2020-06-17 Intel Corporation Dynamic configuration of input/output controller access lanes
DE112015006944B4 (de) * 2015-09-25 2023-03-23 Intel Corporation Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
WO2017062504A1 (en) 2015-10-06 2017-04-13 Woodway Usa, Inc. Manual treadmill and methods of operating the same
US10331846B2 (en) * 2015-12-30 2019-06-25 Arteris, Inc. Dynamic link serialization in network-on-chip
US10373657B2 (en) * 2016-08-10 2019-08-06 Micron Technology, Inc. Semiconductor layered device with data bus
US10846258B2 (en) * 2016-09-30 2020-11-24 Intel Corporation Voltage modulated control lane
US11016920B2 (en) * 2016-12-30 2021-05-25 Intel Corporation Adaptive calibration technique for cross talk cancellation
CN111917656B (zh) * 2017-07-27 2023-11-07 超聚变数字技术有限公司 传输数据的方法和设备
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
CN110224846B (zh) * 2018-03-01 2022-01-25 中兴通讯股份有限公司 基于灵活以太网的业务保护方法、服务器及存储介质
EP3809610B1 (en) * 2018-07-11 2024-03-27 Huawei Technologies Co., Ltd. Signal generation device, method, and system
TWI720345B (zh) * 2018-09-20 2021-03-01 威盛電子股份有限公司 多核心系統的內連線結構
US10831535B2 (en) 2019-01-01 2020-11-10 International Business Machines Corporation Reducing minimum operating voltage through heterogeneous codes
CN109857690B (zh) * 2019-01-03 2023-04-28 华为技术有限公司 驱动器的应用系统、驱动器和数据传输方法
CN110162854B (zh) * 2019-05-09 2023-05-26 重庆大学 一种高速自适应判决反馈均衡器
US11815976B2 (en) * 2019-05-22 2023-11-14 Qualcomm Incorporated Bandwidth based power management for peripheral component interconnect express devices
CN114175003B (zh) * 2019-08-07 2023-10-10 香港大学 用于确定多核处理器中的布线网络的系统和方法以及相关的多核处理器
US11733290B2 (en) * 2020-03-31 2023-08-22 Advantest Corporation Flexible sideband support systems and methods
CN111666235B (zh) * 2020-05-26 2022-02-08 中国人民解放军国防科技大学 用于高速互连网络接口芯片的pio通信装置,芯片,设备及方法
US11317242B1 (en) 2021-01-04 2022-04-26 Bank Of America Corporation System and method for detecting a distance threshold between a target device and a mobile device has been exceeded
US20220327074A1 (en) * 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
TWI784500B (zh) 2021-04-28 2022-11-21 威鋒電子股份有限公司 電子裝置及其安全韌體更新方法
US11592889B2 (en) 2021-05-12 2023-02-28 Apple Inc. Die-to-die dynamic clock and power gating
US12087381B2 (en) * 2021-06-24 2024-09-10 Altera Corporation Systems and methods for detecting and configuring lanes in a circuit system
CN114296430A (zh) * 2021-12-27 2022-04-08 武汉奥泽电子有限公司 一种多状态的多信号量的串行反馈方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103779376A (zh) * 2012-10-17 2014-05-07 国际商业机器公司 集成电路及其制造方法
CN104050618A (zh) * 2013-03-15 2014-09-17 辉达公司 接地参考单端信令连接的图形处理单元多芯片模块

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002531883A (ja) 1998-11-09 2002-09-24 サーラスロジック、アイ・エヌ・シー 磁気ハードディスクドライブ用混合信号単一チップ集積システム電子装置
US7003066B1 (en) 2001-12-03 2006-02-21 Lattice Semiconductor Corporation Digital phase locked loop with phase selector having minimized number of phase interpolators
US7184708B1 (en) 2003-07-30 2007-02-27 Intel Corporation Interference mitigation by adjustment of interconnect transmission characteristics
US7030651B2 (en) * 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US7512718B2 (en) * 2005-04-20 2009-03-31 Lawrence J. Dickson Reconfigurable computing array without chassis
EP1958039B9 (en) * 2005-12-02 2011-09-07 Entegris, Inc. I/o systems, methods and devices for interfacing a pump controller
US20070239922A1 (en) 2005-12-09 2007-10-11 Horigan John W Technique for link reconfiguration
US7627806B1 (en) 2006-03-01 2009-12-01 Altera Corporation Integrated hard-wired or partly hard-wired CRC generation and/or checking architecture for a physical coding sublayer in a programmable logic device
US7752364B2 (en) 2006-12-06 2010-07-06 Mosaid Technologies Incorporated Apparatus and method for communicating with semiconductor devices of a serial interconnection
US7756123B1 (en) * 2006-12-21 2010-07-13 Nvidia Corporation Apparatus, system, and method for swizzling of a PCIe link
US7991098B2 (en) * 2007-10-31 2011-08-02 Micron Technology, Inc. Method and apparatus for training the reference voltage level and data sample timing in a receiver
US7696782B2 (en) * 2008-02-15 2010-04-13 Broadcom Corporation Programmable core for implementing logic change
US8478554B1 (en) * 2009-02-09 2013-07-02 Marvell International Ltd. Reducing eye monitor data samplers in a receiver
US20100277201A1 (en) * 2009-05-01 2010-11-04 Curt Wortman Embedded digital ip strip chip
US8619605B2 (en) * 2009-05-13 2013-12-31 Avaya Inc. Method and apparatus for maintaining port state tables in a forwarding plane of a network element
US8451969B2 (en) * 2011-03-15 2013-05-28 Intel Corporation Apparatus, system, and method for timing recovery
JP5745165B2 (ja) * 2011-05-17 2015-07-08 アルテラ コーポレイションAltera Corporation ハイブリッド統合型デバイスにおいてハードロジックとソフトロジックとの間をインターフェース接続するシステムおよび方法
US8780914B2 (en) * 2011-10-17 2014-07-15 Xilinx, Inc. Parallel processing of network packets
US20140003564A1 (en) * 2012-06-27 2014-01-02 Broadcom Corporation Multichip synchronization system
US8686754B2 (en) 2012-07-05 2014-04-01 Stmicroelectronics International N.V. Configurable lane architecture in source synchronous systems
US8832343B2 (en) * 2012-07-17 2014-09-09 International Business Machines Corporation Double density I2C system
KR101696124B1 (ko) * 2012-10-22 2017-01-12 인텔 코포레이션 고성능 인터커넥트 물리 계층
US9479456B2 (en) * 2012-11-02 2016-10-25 Altera Corporation Programmable logic device with integrated network-on-chip
US9318408B2 (en) * 2013-03-12 2016-04-19 Monolithic 3D Inc. Semiconductor device and structure
CN103257946A (zh) * 2013-05-24 2013-08-21 浪潮电子信息产业股份有限公司 一种紧耦合多控存储系统控制器之间的高速互联方法
US9690741B2 (en) * 2013-07-15 2017-06-27 Altera Corporation Configuration via high speed serial link
US9946676B2 (en) 2015-03-26 2018-04-17 Intel Corporation Multichip package link

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103779376A (zh) * 2012-10-17 2014-05-07 国际商业机器公司 集成电路及其制造方法
CN104050618A (zh) * 2013-03-15 2014-09-17 辉达公司 接地参考单端信令连接的图形处理单元多芯片模块

Also Published As

Publication number Publication date
EP3274857B1 (en) 2021-03-24
TWI634432B (zh) 2018-09-01
CN107430569A (zh) 2017-12-01
WO2016153660A1 (en) 2016-09-29
EP3796181A1 (en) 2021-03-24
EP3274857A1 (en) 2018-01-31
EP3274857A4 (en) 2018-11-21
US9946676B2 (en) 2018-04-17
CN112486875A (zh) 2021-03-12
US20160283429A1 (en) 2016-09-29
TW201705011A (zh) 2017-02-01
CN112231255A (zh) 2021-01-15
EP3846042A1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
CN107430569B (zh) 多芯片封装链路
US11003610B2 (en) Multichip package link
CN107408032B (zh) 互连中的伪随机比特序列
JP6423040B2 (ja) 装置およびシステム
JP6745289B2 (ja) マルチチップパッケージリンク
JP2020201967A (ja) マルチチップパッケージリンク

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