首页> 中国专利> 使用消息总线接口的PHY重新校准

使用消息总线接口的PHY重新校准

摘要

接口将控制器耦合到物理层(PHY)块,其中,该接口包括一组数据引脚,该组数据引脚包括发送数据引脚和接收数据引脚,该发送数据引脚用于向PHY块发送数据,该接收数据引脚用于从PHY块接收数据。接口还包括特定的一组引脚,其用于实现消息总线接口,其中,控制器用于在消息总线接口上向PHY块发送写入命令,以将值写入PHY消息总线寄存器的至少一个特定位,PHY消息总线寄存器的位被映射到一组控制和状态信号,并且该特定位被映射到重新校准请求信号以请求PHY块执行重新校准。

著录项

说明书

本申请是2020年2月7日提交的申请号为202010082690.5的同名专利申请的分案申请。

本申请要求享有于2019年2月8日提交的美国临时专利申请序列号62/802,946的权益,并且该申请以其整体通过引用并入本文。

技术领域

本公开涉及计算系统,并且具体地(但不排他地)涉及计算机接口。

背景技术

半导体处理和逻辑设计中的发展已经允许可以存在于集成电路设备上的逻辑的量的增加。作为必然结果,计算机系统配置已经从系统中的单个或多个集成电路演变为存在于单独的集成电路上的多个核心、多个硬件线程和多个逻辑处理器,以及集成在此类处理器内的其他接口。处理器或集成电路典型地包括单个物理处理器管芯,其中处理器管芯可以包括任何数量的核心、硬件线程、逻辑处理器、接口、存储器、控制器中心等。随着处理能力随计算系统中设备数量的增加而增长,插座与其他设备之间的通信变得越来越重要。因此,互连已经从主要处理电气通信的更传统的多点总线发展到促进快速通信的充分发展的互连架构。不幸的是,由于对未来处理器以甚至更高速率消费的需求,对应的需求被置于现有互连架构的能力上。互连架构可以基于多种技术,包括快速外围组件互连(PCIe)、通用串行总线等。

附图说明

图1示出了包括互连架构的计算系统的实施例。

图2示出了包括分层栈的互连架构的实施例。

图3示出了要在互连架构内生成或接收的请求或分组的实施例。

图4示出了用于互连架构的发射机和接收机对的实施例。

图5A-5C示出了PHY/MAC接口的示例实现方式。

图6示出了PIPE PHY/MAC接口的表示。

图7示出了示例PHY/MAC接口的示例状态和控制寄存器的一部分的表示。

图8示出了信令图,该信令图示出了涉及示例PHY/MAC接口的寄存器的示例事务。

图9A示出了使用示例PHY/MAC接口的消息总线接口来执行控制器发起的重新校准。

图9B示出了使用示例PHY/MAC接口的消息总线接口来执行物理层发起的重新校准。

图10A-10B是示出涉及示例PHY/MAC接口的示例技术的流程图。

图11示出了包括多核心处理器的计算系统的框图的实施例。

图12示出了计算系统的框图的另一实施例。

具体实施方式

在以下描述中,阐述了许多具体细节(例如,特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等的示例),以便提供对本发明的透彻理解。然而,对于本领域技术人员将显而易见的是,不一定采用这些具体细节来实践本发明。在其他实例中,没有详细地描述公知的组件或方法(例如,特定的和可替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、特定代码形式的算法表示、特定断电和门控技术/逻辑以及计算机系统的其他具体操作细节),以避免不必要地模糊本发明。

尽管可以参考在诸如计算平台或微处理器之类的特定集成电路中的能量节约和能量效率来描述以下实施例,但是其他实施例也适用于其他类型的集成电路和逻辑器件。本文所描述的实施例的类似技术和教导可以应用于其他类型的电路或半导体器件,其也可以受益于更好的能量效率和能量节约。例如,所公开的实施例不限于台式计算机系统或UltrabooksTM。并且还可以用于其他设备,例如,手持设备、平板式计算机、其他薄型笔记本、片上系统(SOC)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中心、广域网(WAN)交换机或可以执行下面教导的功能和操作的任何其他系统。此外,本文所描述的装置、方法和系统不限于物理计算设备,而是还可以涉及用于能量节约和效率的软件优化。

随着计算系统的发展,其中的组件变得更加复杂。因此,用于在组件之间耦合和通信的互连架构的复杂度也在增加,以确保针对最佳组件操作满足带宽要求。此外,不同的市场细分要求互连架构的不同方面适合市场的需要。例如,服务器要求更高的性能,而移动生态系统有时能够牺牲整体性能以节约功率。然而,大多数结构的唯一目的是以最大功率节约来提供可能的最高性能。下面讨论了多种互连,这些互连将潜在地受益于本文所描述的发明的方面。

一种互连结构架构包括快速外围组件互连(PCI)(PCIe)架构。PCIe的主要目标是使得来自不同供应商的组件和设备能够在开放式架构中互操作,从而跨越多个市场细分:(台式的和移动的)客户端、(标准的和企业的)服务器以及嵌入式和通信设备。快速PCI是针对各种未来的计算和通信平台定义的高性能的通用I/O互连。某些PCI属性(例如,其使用模型、加载-存储架构和软件接口)已经通过其修订版进行维护,而先前的并行总线实现方式已经由高度可扩展的完全串行接口取代。快速PCI的最近的版本利用点对点互连、基于交换机的技术和分组协议中的发展,以递送新的性能和特征水平。快速PCI支持的高级特征中的一些包括功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和错误处理。

参考图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)、南桥和根端口控制器/中心。术语芯片组经常指代两个物理上分离的控制器中心,即,存储器控制器中心(MCH)耦合到互连控制器中心(ICH)。注意,当前系统经常包括与处理器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、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线(Firewire)设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。通常在PCIe中,诸如设备之类的日常用语被称为端点。尽管没有具体示出,但是设备125可以包括PCIe到PCI/PCI-X桥接器,以支持旧有的PCI设备或其他版本的PCI设备。PCIe中的端点设备通常被分类为旧有的集成端点、PCIe集成端点或根联合体集成端点。

图形加速器130也通过串行链路132与控制器中心115耦合。在一个实施例中,图形加速器130耦合到与ICH耦合的MCH。然后,将交换机120以及因此I/O设备125耦合到ICH。I/O模块131和118还用于实现分层协议栈以在图形加速器130与控制器中心115之间进行通信。类似于上面关于MCH的讨论,图形控制器或图形加速器130本身可以集成在处理器105中。应当认识到,图1中示出的组件(例如,105、110、115、120、125、130)中的一个或多个可以被增强以执行、存储和/或体现用于实现本文所描述的特征中的一个或多个的逻辑。

转到图2,示出了分层协议栈的实施例。分层协议栈200包括任何形式的分层通信栈,例如,快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或其他分层栈。尽管紧接着下面参考图1-4进行的讨论涉及PCIe栈,但是相同的概念可以应用于其他互连栈。在一个实施例中,协议栈200是PCIe协议栈,其包括事务层205、链路层210和物理层220。接口(例如,图1中的接口117、118、121、122、126和131)可以表示为通信协议栈200。作为通信协议栈的表示也可以称为实现/包括协议栈的模块或接口。

快速PCI使用分组以在组件之间传送信息。在事务层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是由请求代理生成的字段,并且本地事务标识符字段308对于对该请求代理而言要求完成的所有未完成请求是唯一的。此外,在该示例中,源标识符310唯一地标识PCIe层级内的请求者代理。因此,本地事务标识符308字段连同源ID 310一起提供层级域内的事务的全局标识。

属性字段304指定事务的特性和关系。就这一点而言,属性字段304潜在地用于提供允许对事务的默认处理进行修改的附加信息。在一个实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316和非窥探(no-snoop)字段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负责物理层220的“数字”功能。就这一点而言,逻辑子块包括用于准备用于由物理子块222传输的传出信息的发送部分,以及用于在将接收到的信息传递到链路层210之前标识并准备接收到的信息的接收机部分。

物理块222包括发射机和接收机。发射机由逻辑子块221供应符号,发射机将该符号串行化并发送到外部设备上。接收机被供应有来自外部设备的经串行化的符号,并且将接收到的信号变换为位流。位流被解串行化并且供应给逻辑子块221。在一个实施例中,采用8b/10b传输码,其中发送/接收十位符号。这里,特殊符号用于利用帧223对分组进行组帧。此外,在一个示例中,接收机还提供从传入串行流中恢复的符号时钟。

如上面所陈述的,尽管参考PCIe协议栈的特定实施例讨论了事务层205、链路层210和物理层220,但是分层协议栈不限于此。实际上,可以包括/实现任何分层协议。作为示例,表示为分层协议的端口/接口包括:(1)用于组装分组的第一层(即,事务层);用于对分组进行排序的第二层(即,链路层);以及用于发送分组的第三层(即,物理层)。作为具体示例,使用公共标准接口(CSI)分层协议。

接下来参考图4,示出了PCIe串行点对点结构的实施例。尽管示出了PCIe串行点对点链路的实施例,但是串行点对点链路不限于此,因为串行点对点链路包括用于发送串行数据的任何传输路径。在所示的实施例中,基本PCIe链路包括两个低电压差分驱动信号对:发送对406/412和接收对411/407。因此,设备405包括用于将数据发送到设备410的发送逻辑406以及用于从设备410接收数据的接收逻辑407。换言之,在PCIe链路中包括两个发送路径(即,路径416和417)以及两个接收路径(即,路径418和419)。

传输路径指代用于传输数据的任何路径,例如,传输线路、铜线路、光线路、无线通信信道、红外通信链路或其他通信路径。两个设备(例如,设备405与设备410)之间的连接被称为链路(例如,链路415)。链路可以支持一个通道——每个通道表示差分信号对的集合(一对用于发送,一对用于接收)。为了扩展带宽,链路可以聚合由xN表示的多个通道,其中N是任何支持的链路宽度,例如,1、2、4、8、12、16、32、64或更宽。在一些实现方式中,每个对称通道包含一个发送差分对和一个接收差分对。不对称通道可以包含不相等的比率的发送对和接收对。一些技术可以利用对称通道(例如,PCIe),而其他技术(例如,Displayport)可以不利用对称通道并且甚至可以仅包括发送对或仅包括接收对,以及其他示例。

差分对指代用于发送差分信号的两个传输路径,例如,线路416和417。作为示例,当线路416从低电压电平切换到高电压电平(即,上升沿)时,线路417从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号潜在地展示出更好的电气特性,例如,更好的信号完整性(即,交叉耦合、电压过冲/下冲、振铃等)。这允许更好的时序窗口,从而实现更快的传输频率。

在一些实现方式中,数据链路层或逻辑物理层可以包括控制器或体现介质访问控制(MAC)层。在一些实现方式中,物理(PHY)层(例如,其逻辑和/或物理结构)可以被提供为单独的知识产权(IP)块或计算块,该块可以与提供用于实现互连栈的硬件逻辑的其他部分的其他计算块耦合。为了实现这样的实现方式,可以提供接口来连接计算块,同时仍然在(例如,由互连的计算块提供的)所得到的互连上支持特定的互连协议(或潜在的多个不同的互连协议)。作为示例,已经开发了用于快速PCI架构的PHY接口(PIPE)来定义这种接口。实际上,PIPE已经被扩展为实现控制器(本文也称为“介质访问控制器”或MAC)之间的接口,并且现在,PHY用于多种不同的互连技术,不仅包括PCIe,而且还包括SATA、USB、DisplayPort、Thunderbolt和聚合的IO架构。因此,有时也将PIPE可替代地称为用于快速PCI、SATA、DisplayPort和聚合的IO架构的PHY接口。PIPE旨在实现功能等效的快速PCI、SATA和USB PHY的开发。因此,PHY可以作为分立集成芯片封装(IC)或作为包括在ASIC设计或其他系统中的宏单元被递送。规范定义了一组PHY功能,这些功能必须并入符合PIPE的PHY中。PIPE被定义为在此类PHY与介质访问层(MAC)和/或链路层ASIC之间提供标准接口。标准化的PHY接口(例如,PIPE)可以提供ASIC和端点设备供应商可以开发的接口。

图5A-5C是示出PHY层与MAC层(例如,实现为两个或更多个不同的计算块(例如,集成电路(IC)、宏单元、知识产权(IP)块等))之间的定义的接口505的简化框图500a-500c。在一些实现方式中,可以根据基于PIPE的协议来实现接口。该接口可以根据相应的架构来帮助定义系统的物理层和其他层的分区。例如,图5A示出了使用接口的PCIe的划分,图5B示出了使用接口的USB的划分,并且图5C示出了使用接口的聚合的IO的划分,以及其他示例。

在图5A-5C的示例中,通过物理信道510发送或接收的数据由PHY层逻辑处理。在一个示例中(例如,在PCIe架构中(例如,如图5A中示出的)),可以认为物理层既包括物理介质附件(PMA)层515、物理编码子层(PCS)520也包括介质访问层(MAC)525。在其他示例中(例如,USB架构(例如,如图5B中示出的)),可以将物理层定义为包括PMA层515和PCS 520,其中MAC实现该架构的链路层的至少一部分。在又一示例中(例如,聚合的IO架构(例如,如图5C中示出的)),PMA层515和PCS520实现物理层,而MAC实现架构的逻辑层,以及层的其他示例划分。

通常,示例PMA 515可以包括模拟缓冲器、串行化器/解串行化器(SERDES),(到信道510的)接口(例如,10位或130位接口),以及其他示例逻辑和元件。PCS 520可以包括编码/解码逻辑(例如,取决于架构,8b/10b编码/解码、64b/66b编码/解码、128b/130b编码/解码、128b/132b编码/解码等)、弹性缓冲器和接收机检测逻辑,以及其他示例逻辑和元件。在一个示例中,MAC层525可以包括用于链路训练、流控制、弹性缓冲、通道到通道抗扭斜和状态的状态机,加扰和解扰逻辑,以及其他示例逻辑和元件。MAC层525可以在PHY层(和/或链路层,这取决于架构)与架构的较高协议层(例如,数据链路层、事务层、传输层等)之间提供或实现接口530。

在一些实现方式中,基于PIPE的PHY/MAC接口505可以包括附加特征(例如,同时允许该接口与PIPE的早期版本向后兼容)。例如,为了解决在一些实现方式中信号计数增加的问题,可以在接口505的一些实现方式中采用消息总线接口。消息总线接口可以映射旧有的PIPE信号而没有严格的时序要求,使得可以经由(例如,在接口的控制和状态引脚上实现的)消息总线接口访问旧有的PIPE信号的相关联的功能,而不是实现专用信号。此外,在某些实例中,为了进一步促进被实现为硬IP块的生成目的的PHY的设计以及为了向MAC层提供更大的自由度来进行延迟优化,可以提供SerDes架构来简化PHY并进一步将协议特定的逻辑转移到实现MAC层的块中,以及其他示例特征和增强。

在一些实现方式中,例如上面所介绍的PIPE消息总线接口可以被实现为控制器与PHY之间的定义的接口,可以尝试与接口的管理以及对链路上的一个或多个互连协议的支持结合地定义控制器与PHY之间的标准化接口(包括控制和状态信号的定义),该标准化接口用于实现控制器的计算块与PHY之间的传输。例如,PIPE定义了MAC与PHY之间的接口,可以使用专用的控制和状态信号线来实现该接口以用于涉及MAC与PHY之间的通信的每个操作。随着PIPE信号的数量已经由于PIPE支持的协议规范中的每一个(例如,PCIe、SATA、USB)的演变而随着时间推移增长(并且随着添加了附加的协议以用于通过PIPE的支持(例如,USB Type-C、Displayport、Thunderbolt等),使用专用信号线在PIPE中实现控制和状态信令会导致PIPE接口所需的引脚计数的问题性的增加。实际上,不断增加的引脚计数可能会威胁诸如PIPE之类的接口的未来可扩展性和可用性,以及其他示例问题。

例如,在本文所讨论的实现方式中的一些中所利用的消息总线接口可以帮助解决以上问题中的至少一些。例如,消息总线接口可以利用基于寄存器的状态和控制接口。在一些示例接口中,可以定义一组数据路径信号以及控制和状态信号。例如,假设PIPE接口具有针对每个Rx/Tx通道对的定义的数据路径信号以及控制和状态信号(并且其他接口可以另外地支持可配置对,其中将对配置为{Rx,Tx}、{Rx,Rx}、{Tx,Tx}或{Tx,Rx}等),在一个实施例中,可以例如通过提供这样的接口来使用消息总线接口实现传统PIPE接口的低引脚计数版本:该接口维护用于数据路径信号、异步控制和状态信号以及延迟敏感的控制和状态信号的专用线,但是该接口将针对该接口定义的其余控制和状态信号映射到寄存器(例如,8位、16位或32位寄存器),可以通过少量的诸如促进每个方向进行4位、8位等数据传输的线之类的附加引脚/线(例如,消息总线接口)来对这些寄存器进行访问。为了支持使用寄存器(本文中也称为“消息总线寄存器”)对这些控制和状态信号的消息传递,可以提供定义的寄存器被映射到其中的地址空间(例如,12个地址位)。在一些实现方式中,该地址空间可以被设计为有意地大以容纳要使用这些定义的寄存器的一组操作、控制和状态信号的扩展。这允许用于将来的扩展的足够的顶部空间(headroom),以及用于容纳供应商特定的寄存器的空间,PHY设计可以使用这些供应商特定的寄存器以将有用的状态信息暴露给控制器或者提供附加的可配置性。

继续以上示例,为了促进使用寄存器对这些控制和状态信号的消息传递,可以定义读取、写入、完成和其他命令以用于访问寄存器。包括一种用于将多个写入分组在一起,以使这些写入在相同的周期内起效的机制。还包括一种用于区分1周期生效类型的信号与保持恒定值的信号的机制。涉及这些寄存器的事务可以包括命令、地址和数据或这三个元素的任何子集,这些事务可以以时间复用的方式(例如,在多个单位间隔或时钟周期内)通过一小组线进行传送。也可以结合接口定义组帧方案,通过该组帧方案,对应的计算块可以标识潜在多个顺序(或同时)寄存器事务的边界(例如,开始和结束),每个事务用于传送一个或多个控制或状态信号,而不是例如在传统PIPE接口中完成的那样通过专用线驱动这些相同的信号,以及其他示例特征。因此,消息总线接口可以将MAC-PHY接口(例如,PIPE)的一些信号卸载到专用寄存器,并且因此随着由接口(例如,PIPE)支持的协议演变为增加新的特征,在将来实现更多的接口操作,同时节省接口以避免接口信号计数的进一步增加。

转到图6,示出了示例PIPE接口的简化框图600,该PIPE接口利用基于寄存器的低引脚计数PIPE控制和状态接口(例如,消息总线接口)。PIPE接口可以将MAC计算块605与PHY计算块610耦合,并且通常针对该接口定义的控制和状态信号的至少一个子集可以被分类为异步信号、时序关键信号以及常规控制和状态信号,以及其他示例分类。在该示例中,可以在改进的接口上为异步信号和时序关键控制和状态信号指派专用线,如图6中示出的。然而,常规控制和状态信号可以映射到寄存器的位(例如615、620)中并由其代替,通过一小组线(例如,四位或八位)对这些寄存器的位进行访问,如本示例中示出的。寄存器命令(例如,读取和写入)、寄存器地址和寄存器数据可以以时间复用的方式跨该小串行接口被发送,以使得值被写入消息总线寄存器。此外,接口的与数据路径有关的信号可以与控制和状态信号分开,并且实际上可以与其中使用专用引脚来实现所有控制和状态信号的实现方式(例如,不支持消息总线信令的实现方式)中所提供的那些信号相同或非常相似。

在消息总线寄存器的一个示例实现方式中,一组PIPE控制和状态信号可以被映射到8位PIPE寄存器中。在某些情况下,(例如,在基于PIPE的规范中)仅针对接口定义的若干控制和状态信号的子集可以被映射到计算块中的寄存器位,而实际上,定义的链路层-物理层接口(例如,PIPE)的所有控制和状态信号可以潜在地被映射到寄存器位(例如,除了异步信号和时序关键控制信号之外,这些信号可能仍通过专用线实现),以及其他示例。此外,尽管某些实现方式可以使用8位寄存器来实现消息总线寄存器,但其他潜在的寄存器宽度(包括16位或32位寄存器等)也可以轻松使用。在一个示例实现方式中,MAC→PHY控制和状态信号可以被映射到与PHY计算块的寄存器相对应的第一地址空间,而PHY→MAC控制和状态信号可以被映射到与MAC计算块的寄存器相对应的第二地址空间。在某些情况下,第一地址空间和第二地址空间可以利用独立的地址空间,使得在PHY的寄存器和MAC的寄存器中的每一个中可以潜在地使用相同的地址。在其他示例中,可以利用公共或共享的地址空间,使得第一地址空间和第二地址空间不重叠,其中PHY和MAC中的每个寄存器具有唯一的地址。在一个示例中,可以将MAC→PHY控制和状态信号映射到开始于地址零处的地址空间中,而可以将PHY→MAC控制和状态信号映射到开始于地址零处的另一地址空间中。作为示例,可以实现12位的地址空间,其可以被认为足够大以容纳当前定义的PIPE信号,并且具有用于将来的信号增长的足够顶部空间,然而,在其他示例中可以选择其他地址空间大小。可以与寄存器结合利用大的地址空间,以实现用于供应商特定的寄存器的专用地址范围的空间,这些供应商特定的寄存器可以用于暴露有用的PHY状态信息和/或提供附加的可配置性。在其他示例中,取决于跨串行接口发送完整命令加地址位的延迟要求,可以提供可以经由不同命令访问的不同大小的地址空间,以及其他示例实现方式。

可以将示例PHY/MAC接口的一组状态/控制寄存器内的位映射到在PHY/MAC接口中定义或扩展的一组信号中的定义的信号(例如,在PIPE规范中定义的信号)。在一种实现方式中,当将“1”写入被映射到特定信号的位时,该值被解释为与在为信号中的每一个提供专用线的接口的实现方式中接收到该特定信号相同。作为示例,第一计算块可以确定应该输入TxDetect状态,并且可以通过准备写入(该写入将通过接口的引脚的子集发送,该子集被指定为PHY/MAC接口的状态和控制接口)将该TxDetect状态用消息传递到另一计算块,在该特定示例中,这导致将“1”写入对应的位(例如,12’h000[6])以指示信号“TxDetectRx/循环回”。接收的第二计算块可以检测到“1”已经写入地址12’h000处的寄存器的位6,并且将该值解释为PIPE TxDetectRx/循环回信号的接收,以及其他潜在示例。

表1:寄存器命令的示例

表1提供了一些寄存器命令的示例,这些寄存器命令用于访问与针对MAC-PHY接口(例如,PIPE)定义的控制和状态信号结合地维护的寄存器。例如,可以利用无操作(或“NOP”)命令来指示没有正在被请求的操作(例如,在空闲状态期间使用)。写入操作可以用于代替对针对接口定义的一组控制和状态信号中的一个或多个的传输。例如,写入可以将值写入特定寄存器中的被映射到该组控制和状态信号中的特定一个信号的特定位。该特定位的值可以被解释为特定信号的接收(即使该特定信号(例如,由于在改进的接口设计中已经省略了专用线)实际上没有被发送)。

在某些实例中,接口可以提供在该组控制和状态信号中要同时发送的信号的组合。例如,某些PIPE信号可能需要对齐,使得其值在同一周期期间起效。在接口的常规版本中,信号的这种组合可以各自在其相应的线上同时发送。在改进的基于寄存器的实现方式中,同时写入到与信号的组合相对应的寄存器位中的每一个可能是不可行的(例如,这些位可以跨具有多个不同地址的多个寄存器散布)。在一个示例中,写入命令可以包括提交的写入和未提交的写入。例如,未提交的命令可以用于临时地写入或将写入排队到与该命令相对应的经标识的寄存器地址。可以保持未提交的写入,直到接收到下一个提交的写入为止,这时将(例如,自从上一个提交的写入之后)中间的未提交的写入中请求的值连同在提交的写入中请求的寄存器的写入一起写入其相应的寄存器位。例如,可以将未提交的写入写入到缓冲器(其在提交的写入时刷新)或影子寄存器中以存储该写入,直到接收到下一个提交的写入并且状态和控制寄存器被更新为止,同时将提交的写入直接写入到状态和控制寄存器。以这种方式,可以请求一个或多个未提交的写入,然后请求提交的写入,以将值同时写入多个不同的寄存器和位,以便实现映射到这些位的信号的对齐。

作为示例,在具有8位寄存器的实现方式中,可以将(来自定义的接口的)24个不同信号跨三个或更多个寄存器(例如,寄存器A、B和C)映射。在一个示例中,映射到寄存器A中的三个相应位的三个信号可能需要与映射到寄存器B中的相应位的另一信号对齐,并且将两个信号映射到寄存器C中的两个相应位。在该特定的说明性示例中,为了模拟这些信号的对齐,可以在第一写入_未提交命令中将值写入寄存器A中的三个位,然后在第二写入_未提交命令中将值写入寄存器B中的位。此后,可以利用写入_提交命令不仅写入寄存器C中两位的值,而且“提交”并导致对寄存器A和寄存器B的未提交的写入与对寄存器C的写入同时执行,并且由此使得与对寄存器A、B和C的写入相关联的所有值在同一周期内起效。

可以结合改进的接口的状态和控制寄存器来提供附加操作。例如,可以提供读取命令和读取完成命令来访问写入特定状态寄存器的值。例如,还可以定义确认(ACK)命令,以指示对已经在特定寄存器处成功执行了提交的写入或未提交的写入(即,向请求计算块)的确认。

一些实现方式可以省略对写入_未提交命令的支持。例如,在一种实现方式中,可以以这种具有宽度和信号指派的方式定义特定计算块的寄存器:被理解为需要对齐的信号被映射到相同寄存器或相邻寄存器中的位,从而使得在单个提交的写入中写入寄存器中的对应位中的每一个位是可能的。其他潜在有用的命令可以包括(但不限于)跨越多个相邻寄存器的写入,以及其他示例。

在消息总线的一个示例实现方式中,基于PIPE的接口的规范可以定义12位地址空间以启用消息总线接口,其中MAC和PHY各自实现唯一的12位地址空间。例如,图7示出了示出示例地址空间700的框图。这样的地址空间可以用于托管与各种接口操作(例如,PIPE操作)相关联的消息总线寄存器。例如,在PIPE消息总线的一些实现方式中,MAC和PHY可以访问寄存器中的特定位以发起操作、参与握手或指示状态。MAC在消息总线接口上发起请求,以访问PHY地址空间中托管的消息总线寄存器。类似地,PHY在消息总线接口上发起请求,以访问MAC地址空间中托管的类似的寄存器。如图7的表示中示出的,在一些示例中,每个12位地址空间(例如,700)可以被划分为四个主要区域:接收机地址区域705、发射机地址区域710、公共地址区域715和供应商特定的地址区域720。例如,接收机地址区域705可以用于配置并报告与接收机操作相关的状态(例如,跨越从12’h000到12’h3FF的1024KB的区域,以及支持多达两个接收机,其中512KB分配给每个接收机)。发射机地址区域710可以用于配置并报告与发射机操作相关的状态(例如,跨越从12’h400到12’h7FF的1024KB的区域,以及支持多达两个发射机TX1和TX2,其中512KB的区域与每个发射机相关联)。公共地址区域715可以托管与接收机操作和发射机操作两者相关的寄存器(例如,跨越从12’h800到12’hBFF的1024KB的区域,以及支持多达两组Rx/Tx对,其中512KB分配给用于每一对的公共寄存器)。供应商特定的地址区域720可以被实现为从12’hC00到12’hFFF的1024KB的区域,并且可以使单独的供应商能够在对应的基于PIPE的规范的特定版本中定义的那些寄存器之外根据需要定义寄存器,以及其他示例实现方式。如上面所指出的,地址空间可以被定义为支持可配置的Rx/Tx对。可以假设在任一时间处多达两个差分对是可操作的。支持的组合是一个Rx和一个Tx的对、两个Tx的对或两个Rx的对,以及其他示例实现方式。

表2和表3示出了图7中示出的示例PIPE消息总线地址空间的示例详细实现方式。例如,可以经由这些地址空间中托管的消息总线寄存器来控制PCIe RX裕度操作和弹性缓冲器深度。另外地,可以将若干旧有的PIPE控制和状态信号映射到这些地址空间中托管的寄存器中。以下小节定义了PHY寄存器和MAC寄存器。单独的寄存器字段被指定为要求的或可选的。另外地(如表2和表3的示例中示出的),每个字段可以具有对级别或1周期生效的属性描述。当写入级别字段时,写入的值由硬件维护,直到对该字段的下一写入或直到发生重置为止。当写入1周期字段以使值为高生效时,硬件仅在单个周期内维护该生效,并且然后在下一周期将值自动地重置为零。

表2列出了PHY寄存器以及其相关联的地址。每个寄存器的详细信息在下面的小节中提供。为了支持可配置对,针对RX1定义的相同的寄存器也针对RX2被定义,针对TX1定义的相同的寄存器针对TX2被定义,并且针对CMN1定义的相同的寄存器针对CMN2被定义。在该示例中,一次仅有两个差分对基于配置是活动的,例如,与RX1+TX1+CMN1、RX1+RX2+CMN1+CMN2或TX1+TX2+CMN1+CMN2中定义的寄存器相对应的有效组合。在该示例中,不支持可配置对的PHY仅实现针对RX1、TX1和CMN1定义的寄存器。在一个示例中,可以实现PHY寄存器,例如,在下面列出的表1的特定示例中所阐述的:

表2:示例PHY消息总线寄存器的表示

类似地,表3列出了MAC寄存器的示例实现方式、MAC寄存器的特性以及其相关联的地址。例如:

表3:示例MAC消息总线寄存器的表示

应当认识到,表2和表3中枚举的示例寄存器仅作为说明性示例呈现。实际上,消息总线接口的示例好处中的一个是由MAC-PHY接口(例如,PIPE)的示例实现方式支持的控制和状态信号的简单的扩展性。

转向图8,示出了信令图800,该信令图800示出了在MAC-PHY接口的8位状态和控制接口830上的示例信令。可以在每个时钟(PCLK)835周期或单位间隔(UI)期间发送8位数据。在启动时或在空闲状态后,可以发送零,因为在MAC块与PHY块之间没有正在发送的控制或状态信号。当在空闲后发送非零数据时,该数据可以被解释为接口上的状态/控制事务的开始。例如,在图8的示例中,计算块中的第一个可以确定定义的状态和控制信号中的特定一个要被发送到另一计算块,如由接口所定义的。在基于寄存器的实现方式中,已经省略了专用的信令引脚,而第一计算块替代地通过状态和控制接口发送数据。例如,事务可以以四位寄存器命令(例如,“4’d1”)开始(在810处),随后在第一UI中发送寄存器地址中的该命令被应用于的前四位。在下一个UI中,发送寄存器地址的其余8位(在815处),随后发送包含要被写入到32位寄存器的值的四个UI的数据(32位)(在820处开始)。

在一些实现方式中,所有状态和控制寄存器事务可以包含命令。对于写入命令和读取命令,事务可以进一步包括相关联的寄存器地址。对于写入完成和读取完成,事务还可以包含数据(从而标识寄存器的内容)。因此,可以从命令类型推导跨接口传送事务所花费的周期的数量。例如,假设在4位命令、32位寄存器和12位地址空间的情况下,图8中示出的示例事务涉及在6个周期(或UI)内完成的跨8位串行接口传送的写入命令805。预期该配置中的其他事务将花费相应数量的UI来完成。例如,读取可能花费两个UI(例如,对于4位命令和12位地址而言),并且读取完成可能花费五个UI(例如,对于4位命令和32位读取数据而言),以及其他示例。给定对这些各种事务的长度的可预测性,可以基于事务类型来检测事务的结束。因此,例如,当非零数据紧跟着被检测到代表先前事务的结束的UI或位时,可以同样地检测到另一事务的开始。在某些实现方式中,这可以允许省略事务标识符。此外,当在空闲或空信号(例如,825)之后接收到有效命令时,可以同样地检测到事务的开始,以及其他示例。

在一些定义的接口(例如,PIPE)中,不仅基于在其上发送一些现有的状态和控制信号的指定线,而且还基于信号保持在对应线上的持续时间来定义这些现有的状态和控制信号。因此,在用寄存器映射代替这些专用信令线中的至少一些的实现方式中(例如上面所描述的),可能期望能够将要求1周期生效的信号与需要在多个UI上保持(例如,处于静态值)的信号区分开。例如,可以配置特定的寄存器位或寄存器,使得写入该位的值保持在该值,但是然后自动返回默认值或未生效的值(即,在不要求显式写入事务将值返回到默认(例如,从“1”回到“0”)的情况下)。例如,特定位可以被映射到具有1周期生效的特定信号,使得当将“1”写入该特定位时,“1”被解释为特定信号的实例。然而,不是在对应的单个UI或周期期满之后将该特定位的值保持在“1”,而是可以将值自动返回到“0”。同样地,可以将要在多于一个UI内保持在一个值的信号映射到被配置为直到定义数量的周期到期或直到该位被覆写为止都保持在该值的寄存器位,以及其他示例。在某些实例中,具有相似配置的位可以被分组在相同的寄存器或连续寻址的寄存器内。例如,给定寄存器内的位可以全部映射到相应的单个周期信号生效,使得处理该寄存器以针对寄存器中的任何位始终将值返回到默认。其他寄存器可以用于对映射到具有类似相等的信号生效长度的其他信号的其他位进行分组,以及其他示例。在另一实现方式中,可以简单地通过以下操作来区分1周期生效类型的信号和静态值类型的信号:将两个不同的信号类型分组到位于不同地址空间或相同地址空间的不同地址范围中的不同寄存器中,并且基于这些信号的相应的地址解释这些信号的值。在另一实现方式中,可以将不同的信号类型映射到不同的寄存器,并使用不同的写入命令类型(例如,静态类型的写入和单个周期的写入等)进行访问,以及其他示例。

在一些实现方式中,可以(例如,通过对应的消息总线寄存器的定义)定义消息总线接口信号,以支持利用MAC-PHY接口的实现方式对PHY的重新校准(例如,对PHY接收机的重新校准)。例如,随着I/O互连数据速率的提高,发射机和接收机必须满足的绝对裕度变得更小。因此,适当的PHY操作对硅电路中的非理想性和噪声项目(例如,热噪声、串扰等)变得更加敏感。另外地,对更宽的操作温度范围的支持还引入了另一个可以影响适当的PHY操作的因素。通常,PHY可以通过添加监视电路来缓解这种情况,该监视电路感测电路参数(例如,偏移、增益)的变化并且即时校正偏差。然而,在一些实现方式中,这种校正可能涉及添加冗余路径,这对于以较高数据速率实现可能是非常昂贵的,以及其他示例缺点。

为了实现更加成本高效的实现方式,在一些示例中,可以增强PIPE接口以允许PHY通知MAC已经检测到要求对PHY的重新校准的情况。例如,在某些情况下,PHY可以标识PHY处的条件并且确定该PHY需要重新校准。这些条件可以包括操作条件的改变(例如,Vref改变)或对某些错误条件的检测,以及其他示例。响应于从PHY接收到期望重新校准的信号,MAC可以通过强制链路进入恢复来静默该链路,并且然后用信号通知PHY以执行解决该问题所需要的增量校正,以及其他示例实现方式。

在一些实现方式中,可以提供示例接口,该示例接口支持PHY发起的重新校准或控制器发起的重新校准。例如,可以增强基于PIPE的接口以便以成本高效的方式(例如,在没有冗余路径的情况下)来支持PHY发起的PHY重新校准和控制器发起的PHY重新校准。例如,在某些情况下,PHY可以标识PHY处的条件并且确定该PHY需要重新校准。这些条件可以包括操作条件的改变(例如,Vref改变)或对某些错误条件的检测,以及其他示例。此外,MAC-PHY接口可以被定义为使得控制器或PHY可以发起重新校准。在一些实现方式中,在恢复状态期间可能要求进行重新校准(例如,PHY Rx重新校准)。在一些实现方式中,恢复可以仅由控制器(而不是直接由PHY)发起。在一些实现方式中,仅MAC可以被定义为能够发起恢复。在这样的实现方式中,如果PHY确定重新校准是必要的(并且发起重新校准),则该PHY可以首先(例如,通过消息总线接口)通知MAC该MAC应该发起恢复,并且然后(或同时)请求重新校准。另一方面,如果重新校准是由MAC发起的,则在这种示例中,这可能单方面地结合(通过消息总线接口发送的)重新校准请求使得链路进入恢复。在这两种情况下,当重新校准完成时,PHY可以用信号通知控制器,使得控制器可以退出恢复并继续正常操作,以及其他示例实现方式。

在一些实现方式中,可以实现在基于PIPE的规范上实现的消息总线接口,以实现以定义的序列的信令来实现PHY发起的PHY重新校准和控制器发起的PHY重新校准两者。在一些实现方式中,当链路处于恢复(例如,用于PCIe的Recovery.RcvrLock)时,PHY重新校准操作(无论是PHY发起的还是MAC发起的)将发生。控制器可以发起链路到恢复的转变。因此,当链路已经进入恢复并且链路准备重新校准操作的执行时,控制器可以通知PHY。另外地,PHY可以负责当重新校准过程已经完成并且可以退出恢复时,通知控制器。在一个示例实现方式中,可以通过PIPE消息总线在基于PIPE的接口上促进这些信号。例如,结合PHY发起的重新校准请求和控制器发起的重新校准请求的消息总线实现方式,MAC消息总线地址空间中的两个位可以被指定用于要由PHY发送到MAC的信号,并且在PHY的消息总线地址空间内的至少一个位可以专用于要由MAC发送到PHY的信号。

转到图9A-9B,示出了简化图900a-900b,其示出了在PHY-MAC接口的消息总线接口的实现方式上用于实现重新校准请求的示例信令,该示例信令导致PHY的一个或多个块(例如,PHY接收机端口)被重新校准。

例如,如图9A中示出的,可以使用消息总线接口定义信令序列,以实现控制器发起的重新校准请求。例如,对于每个数据通道,MAC-PHY接口(例如,基于PIPE的接口)的引脚可以包括用于实现8位MAC到PHY(M2P)消息总线905的8个引脚,以及用于实现对应的8位PHY到MAC(P2M)消息总线910的8个引脚。在消息总线905、910上发送的消息可以根据接口时钟915(例如,PIPE接口时钟(pclk))。在图9A的示例中,MAC可以确定(或者可以从更高层逻辑接收信号)以标识PHY接收机应当执行的重新校准。因此,MAC可以通过写入PHY的消息总线寄存器中被映射为接收重新校准请求的位来发起920接收机重新校准请求。例如,MAC可以使用M2P消息总线905来发送写入命令925a(例如,提交的写入命令),以使得“1”被写入到PHY的消息总线寄存器中的接收机重新校准位(例如,IORecal位)。在一些实现方式中,接收机重新校准位可以被配置为1周期寄存器值。

继续图9A的示例,响应于读取由MAC写入的接收机重新校准位,PHY可以在P2M消息总线910上发送确认信号930。如上面所指出的,在一些实现方式中,可以定义协议或其他规则以要求在链路处于恢复或其他特定状态时执行PHY重新校准。在某些情况下,这种状态或状态转变可以仅由MAC(或更高层协议逻辑)发起。例如,在图9A的示例中,MAC可以结合到接收机重新校准位的写入925a来发起恢复状态。例如,MAC可以基本上与将重新校准请求写入PHY消息总线寄存器一致地或在将重新校准请求写入PHY消息总线寄存器之后自动地发起恢复状态。

如在图9A的示例中那样,当PHY标识写入其消息总线寄存器中的特定一个的重新校准请求时,PHY可以开始执行重新校准。在完成重新校准之后,PHY可以利用P2M消息总线910用信号通知MAC重新校准完成(在935处)。例如,PHY可以在P2M消息总线910上发送写入请求940a,以使得MAC消息总线寄存器中的特定位(例如,IORecalDone)被写入以向MAC标识重新校准完成。在一些实现方式中,该特定位可以被配置为1周期寄存器值。此外,与重新校准请求一样,可以定义响应于来自PHY的重新校准完成的指示要(由MAC)发送的确认(例如,945)。在一些实现方式中,MAC可以基于(在其消息总线寄存器上)接收到重新校准完成的指示,来使得链路从恢复转变为另一状态,以及基于重新校准的完成的其他示例动作。

作为总结,在一些实现方式中(例如,在图9A的示例中示出的),可以跨PIPE消息总线接口看到用于控制器发起的PHY重新校准的事务的序列。例如,当控制器确定需要进行PHY重新校准时(例如,由于检测到过多数量的错误),该控制器可以强制链路进入恢复并且通过写入PHY的消息总线地址空间中的IORecal位来发起PHY重新校准。PHY可以通过返回write_ack来确认重新校准请求的接收。完成重新校准过程之后,PHY可以通过写入控制器的消息总线地址空间中的IORecalDone位来用信号通知控制器完成,控制器通过返回write_ack来确认该完成。在通知已经完成重新校准过程之后,控制器随后可以退出恢复并且继续链路上的正常操作。

转到图9B,示出了PHY发起的接收机重新校准的示例。例如,可以在PHY块实现方式处提供工具以监视PHY的属性,并且提供使用PHY建立的链路用于检测其中期望对PHY(例如,PHY的接收机)进行重新校准的实例(例如,基于检测到信号质量下降到可接受的水平以下)。例如,在某些情况下,PHY可以标识PHY处的条件(例如,操作条件的改变(例如,Vref改变)或对某些错误条件的检测)并且确定该PHY需要重新校准,以及其他示例。响应于标识出期望重新校准,PHY可以在P2M消息总线910上发送写入命令955以使得值被写入到在MAC的消息总线寄存器中定义的重新校准请求位(例如,PhyIORecalRequest),并且由此(在950处)发起接收机校准。MAC可以检测到该值已经被写入该位(例如,1周期寄存器位),并且使用M2P消息总线905将确认960发送到PHY。在一些实现方式中,PHY可以在执行重新校准之前首先(在955处)写入该请求,因为重新校准将在特定链路状态(例如,恢复)期间执行,该特定链路状态将使用MAC来发起。例如,MAC可以当在其消息总线寄存器处接收到重新校准请求时发起状态。从这一点来说,在一些实现方式中,信令序列可以对应于在图9A中示出并描述的控制器发起的重新校准中的信令序列。例如,MAC可以通过(使用M2P消息总线905)将重新校准请求925b写入PHY消息总线寄存器以指示链路准备好重新校准(例如,已经进入恢复),来请求重新校准继续(在965处)。PHY可以(通过P2M消息总线910上的消息总线信号970)确认MAC的重新校准信号925b,并且通过在PHY处执行重新校准来做出响应。在重新校准完成后,PHY可以通过使用P2M消息总线910写入940b到MAC消息总线寄存器以指示重新校准完成来用消息传递重新校准完成(在975处)。MAC可以基于PHY的信号使得链路退出恢复,并且可以在M2P消息总线905上进一步发送确认信号980以完成信令序列,以及其他示例特征和实现方式。

总而言之,图9B的示例示出了跨PIPE消息总线接口看到的用于PHY发起的PHY重新校准的事务的序列。例如,当PHY检测到需要重新校准的电路参数变化时,该PHY用信号通知控制器其应进入恢复并请求PHY重新校准;这是通过写入控制器的消息总线地址空间中的PhyIORecalRequest位来完成的。控制器通过返回write_ack响应来确认该请求的接收。动作的其余序列可以完全遵循上面描述的控制器发起的PHY重新校准中的序列,以及其他示例实现方式。

表4和表5示出了消息总线寄存器的示例实现方式,该消息总线寄存器用于实现基于PIPE的接口的消息总线上的信令,以促进PHY重新校准请求。例如,表4示出了基于MAC的寄存器的一部分的示例实现方式,该基于MAC的寄存器用于使用PIPE消息总线接口从PHY到MAC进行消息传递:

表4:示例MAC消息总线寄存器的表示

在表4的特定示例中,可以定义MAC消息总线寄存器中的两个字段,以便于在基于PIPE的接口的消息总线接口上实现重新校准请求。例如,PHY发起的重新校准请求信号(PhyIORecalRequest)可以被映射到MAC消息总线寄存器的接收机控制(例如,Rx控制0)寄存器的位0。当将值“1”(通过在消息总线接口上从PHY接收的提交的写入请求)写入该位时,MAC可以读取寄存器并将写入的值解释为来自PHY的Rx重新校准请求信号。PhyIORecalRequest位可以被配置为1周期生效类型的信号。在该示例中,还可以定义重新校准完成信号(IORecalDone)并将其映射到MAC消息总线寄存器的Rx状态0寄存器的位1。PHY可以使用消息总线接口(例如,通过提交的写入)将“1”写入该位,以向MAC指示PHY已经完成了Rx重新校准。该信号也可以是1周期生效类型的信号字段。

在一些实现方式中,可以将PhyRecalRequirement参数用作这样的参数:该参数可以由PHY块(例如,在其数据表中、在能力寄存器或其他数据结构中、从在线源等)公告是否要求(通过基于PIPE的接口连接到PHY的)对应的控制器支持重新校准功能信令序列和相关的消息总线寄存器值(例如,PhyIORecalRequest、IORecal和IORecalDone等),以及涉及请求和实现PHY重新校准的其他示例信息。

表5示出了基于PHY的寄存器的一部分的示例实现方式,该基于PHY的寄存器用于使用PIPE消息总线接口从MAC向PHY进行消息传递:

表5:示例PHY消息总线寄存器的表示

表5表示示例PHY消息总线寄存器的寄存器位,该寄存器位被定义为使用PIPE消息总线接口来实现重新校准请求。具体地,在该示例中,可以定义重新校准请求信号(IORecal)并将其映射到PHY消息总线寄存器的PHY RX控制寄存器的位1。当将值“1”(通过在消息总线接口上从MAC接收的提交的写入请求)写入该位时,PHY可以读取寄存器并将写入的值解释为来自MAC的Rx重新校准请求信号。可以这样发送IORecal信号:例如,在MAC发起的Rx重新校准请求中或者作为对PHY发起的Rx重新校准请求的响应(例如,以确认链路处于适于要执行的Rx重新校准的状态(例如,恢复)),以及其他示例。IORecal位可以配置为1周期生效类型的信号。

图10A-10B是示出与通过示例MAC-PHY接口的消息总线发起重新校准相对应的示例过程的流程图。例如,在图10A的示例中,示出了PHY发起的重新校准的示例。例如,可以(例如,通过PHY上的检测电路)检测1005PHY的属性,并且可以基于这些属性或事件(例如,在PHY处)确定1010PHY(例如,(多个)PHY接收机)应被重新校准。因此,PHY可以利用消息总线接口向控制器发送写入命令1015,并且将值写入控制器的消息总线寄存器中被映射到重新校准请求信号的特定位。在一些实现方式中,控制器可以负责在重新校准可以继续之前确保由PHY实现的链路处于恢复状态。因此,可以在消息总线接口上从MAC接收1020写入命令,以将值写入PHY消息总线寄存器的特定位,以指示重新校准请求/由MAC进行的确认。PHY可以基于检测到对PHY消息总线寄存器中的特定位的写入来执行1025重新校准(例如,PHYRx重新校准)。在完成重新校准之后,PHY块可以再次使用消息总线接口将值写入1030MAC消息总线寄存器中被映射到重新校准完成信号的另一值,以向MAC指示重新校准完成。

转到图10B,示出了MAC发起的重新校准的示例。例如,可以(例如,通过MAC或更高层逻辑)检测1040PHY块的属性,并且基于该属性可以确定1045PHY块的至少一部分(例如,(多个)接收机)应被重新校准。MAC还可以发起使用PHY块实现的链路到恢复状态的转变1050,以便促进重新校准的完成。消息总线接口可以用于将值写入1055PHY消息总线接口中被映射到重新校准请求信号的特定位,以指示对PHY块的重新校准请求。MAC可以在消息总线接口上从PHY块接收写入请求,以将值写入MAC消息总线寄存器中被映射到重新校准完成信号的特定位,以指示重新校准已经完成。然后,MAC可以使得链路退出1065恢复状态并且在重新校准之后(例如,在活动链路状态中)继续通信,以及其他示例实现方式和特征。

注意,上面描述的装置、方法和系统可以在前述的任何电子设备或系统中实现。作为具体说明,以下附图提供了用于利用如本文所描述的本发明的示例性系统。随着下面的系统被更详细地描述,从上面的讨论中公开、描述并重新讨论了许多不同的互连。并且显而易见的是,上面描述的发展可以应用于这些互连、结构或架构中的任一个。

参考图11,描绘了包括多核心处理器的计算系统的框图的实施例。处理器1100包括任何处理器或处理设备,例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器1100包括至少两个核心——核心1101和核心1102,其可以包括不对称核心或对称核心(所示实施例)。然而,处理器1100可以包括任何数量的处理元件,这些处理元件可以是对称或不对称的。

在一个实施例中,处理元件指代用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或能够保持处理器的状态(例如,执行状态或架构状态)的任何其他元件。换言之,在一个实施例中,处理元件指代能够独立地与代码(例如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插座)典型地指代集成电路,该集成电路潜在地包括任何数量的其他处理元件,例如,核心或硬件线程。

核心通常指代位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立地维持的架构状态与至少一些专用执行资源相关联。与核心不同,硬件线程典型地指代位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立地维持的架构状态共享对执行资源的访问权。如可以看出的,当某些资源是共享的并且其他资源专用于架构状态时,硬件线程和核心的命名法之间的界限重叠。然而通常地,核心和硬件线程被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。

如图11中示出的,物理处理器1100包括两个核心——核心1101和核心1102。这里,核心1101和核心1102被认为是对称核心,即,具有相同配置、功能单元和/或逻辑的核心。在另一实施例中,核心1101包括乱序处理器核心,而核心1102包括有序处理器核心。然而,核心1101和核心1102可以从任何类型的核心(例如,本地核心、软件管理核心、适于执行本地指令集架构(ISA)的核心、适于执行转换指令集架构(ISA)的核心、共同设计的核心或其他已知的核心)中单独选择。在异构核心环境(即,非对称核心)中,可以利用某种形式的转换(例如,二进制转换)以在一个或两个核心上调度或执行代码。然而,为了进一步讨论,核心1101中示出的功能单元在下面进一步详细描述,因为核心1102中的单元在所描绘的实施例中以类似的方式操作。

如所描绘的,核心1101包括两个硬件线程1101a和1101b,这些硬件线程也可以称为硬件线程槽1101a和1101b。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器1100视为四个单独的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上面所提到的,第一线程与架构状态寄存器1101a相关联,第二线程与架构状态寄存器1101b相关联,第三线程可以与架构状态寄存器1102a相关联,并且第四线程可以与架构状态寄存器1102b相关联。这里,如上面所描述的,架构状态寄存器(1101a、1101b、1102a和1102b)中的每一个可以被称为处理元件、线程槽或线程单元。如所示的,架构状态寄存器1101a在架构状态寄存器1101b中被复制,因此能够针对逻辑处理器1101a和逻辑处理器1101b存储单独的架构状态/上下文。在核心1101中,还可以针对线程1101a和线程1101b复制其他较小的资源,例如,分配器和重命名器块1130中的指令指针和重命名逻辑。可以通过分区来共享一些资源,例如,重新排序/引退单元1135中的重新排序缓冲器、ILTB1120、加载/存储缓冲器和队列。其他资源(例如,通用内部寄存器、(多个)页表基址寄存器、低级别数据高速缓存和数据TLB 1115、(多个)执行单元1140以及乱序单元1135的部分)是潜在地完全共享的。

处理器1100通常包括其他资源,这些资源可以是完全共享的、通过分区共享的或由处理元件专用/专用于处理元件的。在图11中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任一个,以及包括未描绘出的任何其他已知的功能单元、逻辑或固件。如所示的,核心1101包括简化的、代表性的乱序(OOO)处理器核心。但是可以在不同的实施例中利用有序处理器。OOO核心包括用于预测要执行/采用的分支的分支目标缓冲器1120和用于存储用于指令的地址转换条目的指令转换缓冲器(I-TLB)1120。

核心1101还包括解码模块1125,该解码模块1125与获取单元1120耦合以对所获取的元素解码。在一个实施例中,获取逻辑包括分别与线程槽1101a、线程槽1101b相关联的单独的定序器。通常,核心1101与第一ISA相关联,该第一ISA定义/指定在处理器1100上可执行的指令。通常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),该操作码引用/指定要执行的指令或操作。解码逻辑1125包括从其操作码识别这些指令并在流水线中传递经解码的指令以进行由第一ISA定义的处理的电路。例如,如下面更详细讨论的,在一个实施例中,解码器1125包括被设计为或适于识别特定指令(例如,事务指令)的逻辑。由于解码器1125进行的识别,架构或核心1101采取特定的预定义动作来执行与适当指令相关联的任务。重要的是要注意,可以响应于单个或多个指令来执行本文所描述的任务、块、操作和方法中的任何一个;其中一些指令可能是新的或旧的指令。注意,在一个实施例中,解码器1126识别相同的ISA(或其子集)。可替代地,在异构核心环境中,解码器1126识别第二ISA(第一ISA的子集或不同的ISA)。

在一个示例中,分配器和重命名器块1130包括用于保留资源(例如,用于存储指令处理结果的寄存器文件)的分配器。然而,线程1101a和线程1101b潜在地能够乱序执行,其中分配器和重命名器块1130还保留其他资源,例如,用于跟踪指令结果的重新排序缓冲器。单元1130还可以包括寄存器重命名器,以将程序/指令参考寄存器重命名为处理器1100内部的其他寄存器。重新排序/引退单元1135包括诸如上面提到的重新排序缓冲器、加载缓冲器和存储缓冲器之类的组件以支持乱序执行和乱序执行的指令的稍后有序引退。

在一个实施例中,(多个)调度器和执行单元块1140包括用于调度执行单元上的指令/操作的调度器单元。例如,浮点指令在具有可用的浮点执行单元的执行单元的端口上被调度。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。

较低级别数据高速缓存和数据转换缓冲器(D-TLB)1150耦合到(多个)执行单元1140。数据高速缓存用于存储最近使用/操作的元素,例如,数据操作数,其潜在地保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为特定示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。

这里,核心1101和核心1102共享对更高级别或更远的高速缓存(例如,与片上接口1110相关联的第二级高速缓存)的访问权。注意,更高级别或更远指代高速缓存级别增加或从(多个)执行单元进一步远离。在一个实施例中,更高级别高速缓存是最后一级数据高速缓存——处理器1100上的存储器层级中的最后高速缓存——例如,第二或第三级数据高速缓存。然而,更高级别高速缓存不限于此,因为它可以与指令高速缓存相关联或包括指令高速缓存。迹线高速缓存——一种类型的指令高速缓存——相反可以在解码器1125之后耦合以存储最近解码的迹线。这里,指令潜在地指代宏指令(即,由解码器识别的通用指令),其可以解码为多个微指令(微操作)。

在所描绘的配置中,处理器1100还包括片上接口模块1110。历史上,下面更详细描述的存储器控制器已经被包括在处理器1100外部的计算系统中。在这种场景中,片上接口1110用于与处理器1100外部的设备(例如,系统存储器1175、芯片组(通常包括用于连接到存储器1175的存储器控制器中心和用于连接外围设备的I/O控制器中心)、存储器控制器中心、北桥或其他集成电路)进行通信。并且在这种场景中,总线1105可以包括任何已知的互连,例如,多点总线、点对点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层协议架构、差分总线和GTL总线。

存储器1175可以专用于处理器1100或者与系统中的其他设备共享。存储器1175的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)和其他已知的存储设备。注意,设备1180可以包括图形加速器、与存储器控制器中心耦合的处理器或卡、与I/O控制器中心耦合的数据存储装置、无线收发器、闪存设备、音频控制器、网络控制器或其他已知的设备。

然而,最近随着更多逻辑和设备被集成在诸如SOC之类的单个管芯上,这些设备中的每一个可以合并在处理器1100上。例如,在一个实施例中,存储器控制器中心与处理器1100在同一封装和/或管芯上。这里,核心的一部分(核心上部分)1110包括一个或多个控制器,用于与诸如存储器1175或图形设备1180之类的其他设备相接合。包括用于与这种设备相接合的互连和控制器的配置通常被称为核心上(或非核心配置)。作为示例,片上接口1110包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路1105。然而,在SOC环境中,甚至更多的设备(例如,网络接口、协处理器、存储器1175、图形处理器1180和任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上以提供具有高功能和低功耗的小形状因子。

在一个实施例中,处理器1100能够执行编译器、优化和/或转换器代码1177以编译、转换和/或优化应用代码1176,以支持本文所描述的装置和方法或与其相接合。编译器通常包括用于将源文本/代码转换成目标文本/代码的程序或程序集。通常,利用编译器来编译程序/应用代码是在多个阶段和多遍中完成的,以将高级别编程语言代码变换为低级别机器或汇编语言代码。然而,单遍编译器仍然可以用于简单编译。编译器可以利用任何已知的编译技术并且执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。

较大的编译器通常包括多个阶段,但是大多数情况下这些阶段被包括在两个一般阶段中:(1)前端,即,通常在该处可以进行句法处理、语义处理和一些变换/优化,以及(2)后端,即,通常在该处进行分析、变换、优化和代码生成。一些编译器指代中间部分,其说明了编译器的前端与后端之间的界定的模糊处。因此,对编译器的插入、关联、生成或其他操作的引用可以在前述阶段或遍中的任何一个以及编译器的任何其他已知的阶段或遍中进行。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,例如,在编译的前端阶段插入调用/操作,然后在变换阶段期间将调用/操作变换为较低级别的代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入此类操作/调用,以及优化代码以便在运行时期间执行。作为特定说明性示例,可以在运行时期间动态地优化二进制代码(已编译的代码)。这里,程序代码可以包括动态优化代码、二进制代码或其组合。

类似于编译器,诸如二进制转换器之类的转换器静态地或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可以指代:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或转换器,以编译程序代码、维护软件结构、执行其他操作、优化代码或转换代码;(2)执行包括操作/调用的主程序代码,例如,已经优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(例如,库),以维护软件结构、执行其他软件相关的操作或优化代码;或(4)其组合。

现在参考图12,示出了根据本发明的实施例的第二系统1200的框图。如图12中示出的,多处理器系统1200是点对点互连系统,并且包括经由点对点互连1250耦合的第一处理器1270和第二处理器1280。处理器1270和1280中的每一个可以是处理器的某个版本。在一个实施例中,1252和1254是串行点对点一致互连结构的一部分,例如,Intel快速路径互连(QPI)架构。因此,本发明可以在QPI架构内实现。

虽然仅示出了具有两个处理器1270、1280,但是应该理解的是,本发明的范围不限于此。在其他实施例中,一个或多个附加处理器可以存在于给定处理器中。

处理器1270和1280被示为分别包括集成存储器控制器单元1272和1282。处理器1270还包括作为其总线控制器单元的一部分的点对点(P-P)接口1276和1278;类似地,第二处理器1280包括P-P接口1286和1288。处理器1270、1280可以使用P-P接口电路1278、1288经由点对点(P-P)接口1250交换信息。如图12中示出的,IMC 1272和1282将处理器与相应的存储器(即,存储器1232和存储器1234)耦合,这些存储器可以是本地附接到相应处理器的主存储器的部分。

处理器1270、1280各自使用点对点接口电路1276、1294、1286、1298经由单独的P-P接口1252、1254与芯片组1290交换信息。芯片组1290还经由接口电路1292沿着高性能图形互连1239与高性能图形电路1238交换信息。

共享高速缓存(未示出)可以被包括在任一处理器中或两个处理器外部;而经由P-P互连与处理器连接,使得如果处理器被置于低功率模式,则任一处理器或两个处理器的本地高速缓存信息可以存储在共享高速缓存中。

芯片组1290可以经由接口1296耦合到第一总线1216。在一个实施例中,第一总线1216可以是外围组件互连(PCI)总线,或者诸如快速PCI总线或另一第三代I/O互连总线之类的总线,但本发明的范围不限于此。

如图12中示出的,各种I/O设备1214连同将第一总线1216耦合到第二总线1220的总线桥1218一起耦合到第一总线1216。在一个实施例中,第二总线1220包括低引脚计数(LPC)总线。在一个实施例中,各种设备与第二总线1220耦合,包括例如,键盘和/或鼠标1222、通信设备1227和存储单元1228(例如,磁盘驱动器或其他大容量存储设备,其通常包括指令/代码和数据1230)。此外,音频I/O 1224被示为与第二总线1220耦合。注意,其他架构是可能的,其中所包括的组件和互连架构不同。例如,除了图12的点对点架构,系统可以实现多点总线或其他这样的架构。

计算系统可以包括组件的各种组合。这些组件可以实现为IC、其部分、分立电子设备,或适配在计算机系统中的其他模块、逻辑、硬件、软件、固件或其组合,或者实现为以其他方式并入计算机系统的机箱内的组件。然而,应该理解,在其他实现方式中,可以省略所示出的组件中的一些组件,可以存在附加的组件,并且可以出现所示出的组件的不同布置。因此,上面描述的发明可以在下面示出或描述的互连中的一个或多个互连的任何部分中实现。

在一个实施例中,处理器包括微处理器、多核心处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。在所示的实现方式中,处理器充当主处理单元和中央中心,用于与系统的各种组件中的许多组件通信。作为一个示例,处理器被实现为片上系统(SoC)。作为具体的说明性示例,处理器包括基于

在一个实施例中,处理器与系统存储器通信。作为说明性示例,这在实施例中可以经由多个存储器设备来实现以提供给定量的系统存储器。作为示例,存储器可以符合基于联合电子器件工程委员会(JEDEC)低功率双倍数据速率(LPDDR)的设计,例如,根据JEDECJESD 209-2E(2009年4月发布)的当前LPDDR2标准,或者被称为LPDDR3或LPDDR4的下一代LPDDR标准,其将提供对LPDDR2的扩展以增加带宽。在各种实现方式中,个体存储器设备可以具有不同的封装类型,例如,单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(13P)。在一些实施例中,这些设备直接焊接到主板上以提供较低轮廓的解决方案,而在其他实施例中,这些设备被配置为一个或多个存储器模块,这些存储器模块进而通过给定连接器耦合到主板。并且当然,其他存储器实现方式也是可能的,例如,其他类型的存储器模块,例如,不同种类的双列直插式存储器模块(DIMM),包括但不限于microDIMM、MiniDIMM。在特定的说明性实施例中,存储器的大小在2GB和16GB之间,并且可以被配置为经由球栅阵列(BGA)焊接到主板上的DDR3LM封装或LPDDR2或LPDDR3存储器。

为了提供对诸如数据、应用、一个或多个操作系统等之类的信息的持久存储,大容量存储装置也可以耦合到处理器。在各种实施例中,为了实现更薄更轻的系统设计以及为了改进系统响应性,可以经由SSD实现该大容量存储装置。然而,在其他实施例中,大容量存储装置可以主要使用硬盘驱动器(HDD)来实现,其中较少量的SSD存储装置充当SSD高速缓存,以实现在断电事件期间对上下文状态和其他这样的信息的非易失性存储,从而可以在重新发起系统活动时发生快速上电。闪存设备可以例如经由串行外围接口(SPI)耦合到处理器。该闪存设备可以提供对系统软件的非易失性存储,包括基本输入/输出软件(BIOS),以及系统的其他固件。

在各种实施例中,系统的大容量存储装置由SSD单独实现或者实现为具有SSD高速缓存的磁盘驱动器、光驱动器或其他驱动器。在一些实施例中,大容量存储装置实现为SSD或HDD以及恢复(RST)高速缓存模块。在各种实现方式中,HDD提供在320GB-4太字节(TB)及以上之间的存储,而RST高速缓存利用容量为24GB-256GB的SSD实现。注意,这种SSD高速缓存可以被配置为单级高速缓存(SLC)或多级高速缓存(MLC)选项,以提供适当级别的响应性。在仅SSD选项中,模块可以容纳在各种位置,例如,在mSATA或NGFF槽中。作为示例,SSD的容量范围为120GB-1TB。

各种外围设备可以经由低引脚计数(LPC)互连耦合到处理器。在所示的实施例中,各种组件可以通过嵌入式控制器耦合。这些组件可以包括键盘(例如,经由PS2接口耦合)、风扇和热传感器。在一些实施例中,触摸板也可以经由PS2接口耦合到EC。另外,诸如可信平台模块(TPM)(根据日期为2003年10月2日的可信计算组(TCG)TPM规范版本1.2)之类的安全性处理器也可以经由该LPC互连耦合到处理器。然而,应理解本发明的范围不限于此方面,并且对安全信息的安全处理和存储可以在另一受保护的位置(例如,安全性协处理器中的静态随机存取存储器(SRAM))进行,或者作为仅当受安全飞地(SE)处理器模式保护时解密的加密数据二进制大对象。

在特定实现方式中,外围端口可以包括高清晰度媒体接口(HDMI)连接器(其可以具有不同的形状因子,例如,全尺寸、迷你或微型);诸如根据通用串行总线修订版3.0规范(2008年11月)的全尺寸外部端口之类的一个或多个USB端口,当系统处于连接待机状态并插入到AC墙壁电源时,至少一个端口供电以对USB设备(例如,智能电话)充电。另外,还可以提供一个或多个Thunderbolt

系统可以以各种方式与外部设备通信,包括无线地。在某些实例中,存在各种无线模块,其中的每个无线模块可以对应于针对特定无线通信协议配置的无线电。一种用于诸如近场之类的短距离的无线通信的方式可以是经由近场通信(NFC)单元,NFC单元在一个实施例中可以经由SMBus与处理器通信。注意,经由该NFC单元,彼此非常接近的设备可以通信。例如,用户可以通过将两个设备紧密地适配在一起使得系统能够与另一(例如)便携式设备(例如,用户的智能电话)进行通信,并且使得能够传送诸如识别信息、支付信息之类的信息,诸如图像数据之类的数据等。还可以使用NFC系统来执行无线功率传送。

使用本文描述的NFC单元,用户可以通过利用这种设备中的一个或多个设备的线圈之间的耦合来边对边地碰撞设备并且边对边地放置设备以用于近场耦合功能(例如,近场通信和无线功率传送(WPT))。更具体地,实施例提供具有策略性成形并放置的铁氧材料的设备,以提供线圈的更好耦合。每个线圈具有与其相关联的电感,可以结合系统的电阻、电容和其他特征来选择电感,以便针对系统实现共同的共振频率。

此外,附加的无线单元可以包括其他短距离无线引擎,包括WLAN单元和蓝牙单元。使用WLAN单元,可以实现根据给定的电气和电子工程师协会(IEEE)802.11标准的Wi-Fi

另外,例如根据蜂窝或其他无线广域协议的无线广域通信可以经由WWAN单元发生,该WWAN单元进而可以耦合到订户身份模块(SIM)。另外,为了使得能够接收和使用位置信息,还可以存在GPS模块。WWAN单元和诸如相机模块之类的集成捕获设备可以经由给定的USB协议(例如,USB 2.0或3.0链路,或UART或I

在特定实施例中,无线功能可以例如以WiFi

如上面描述的,集成相机可以并入到盖板中。作为一个示例,该相机可以是高分辨率相机,例如,具有至少2.0兆像素(MP)的分辨率并且延伸到6.0MP或更高。

为了提供音频输入和输出,可以经由数字信号处理器(DSP)实现音频处理器,该数字信号处理器可以经由高清晰度音频(HDA)链路耦合到处理器。类似地,DSP可以与集成编码器/解码器(CODEC)和放大器通信,CODEC和放大器进而可以耦合到可以在机箱内实现的输出扬声器。类似地,放大器和CODEC可以耦合以接收来自麦克风的音频输入,在实施例中,麦克风可以经由双阵列麦克风(例如,数字麦克风阵列)来实现,以提供高质量的音频输入以便在系统内实现对各种操作的语音激活控制。还应注意,音频输出可以从放大器/CODEC提供给耳机插孔。

在特定实施例中,数字音频编码解码器和放大器能够驱动立体声耳机插孔、立体声麦克风插孔、内部麦克风阵列和立体声扬声器。在不同的实现方式中,编码解码器可以集成到音频DSP中或者经由HD音频路径耦合到外围控制器中心(PCH)。在一些实现方式中,除了集成立体声扬声器之外,还可以提供一个或多个低音扬声器,并且扬声器解决方案可以支持DTS音频。

在一些实施例中,处理器可以由外部电压调节器(VR)和集成在处理器管芯内部的多个内部电压调节器(称为完全集成的电压调节器(FIVR))供电。在处理器中使用多个FIVR使得能够将组件分组到分离的电源平面中,从而功率由FIVR调节并仅提供给组中的那些组件。在功率管理期间,当处理器被置于特定低功率状态时,一个FIVR的给定电源平面可以掉电或断电,而另一FIVR的另一电源平面保持活动或完全供电。

在一个实施例中,可以在一些深度睡眠状态期间使用维持电源平面来针对若干I/O信号使I/O引脚通电,例如,处理器与PCH之间的接口,与外部VR的接口以及与EC的接口。该维持电源平面还对管芯上电压调节器供电,该管芯上电压调节器支持板载SRAM或在睡眠状态期间存储处理器上下文的其他高速缓冲存储器。维持电源平面还用于使处理器的唤醒逻辑通电,该唤醒逻辑监测并处理各种唤醒源信号。

在功率管理期间,当其他电源平面在处理器进入特定深度睡眠状态时掉电或断电时,维持电源平面保持通电以支持上面引用的组件。然而,这可能导致当不需要这些组件时不必要的功耗或耗散。为此,实施例可以提供连接待机睡眠状态以使用专用电源平面来维护处理器上下文。在一个实施例中,连接待机睡眠状态有助于使用PCH的资源进行处理器唤醒,该PCH本身可以与处理器一起存在于封装中。在一个实施例中,连接待机睡眠状态有助于维持PCH中的处理器架构功能直到处理器唤醒,这使得能够关闭在深度睡眠状态期间先前保持通电的所有不必要的处理器组件,包括关闭所有时钟。在一个实施例中,PCH包含时间戳计数器(TSC)和用于在连接待机状态期间控制系统的连接待机逻辑。用于维持电源平面的集成电压调节器也可以驻留在PCH上。

在实施例中,在连接待机状态期间,集成电压调节器可以用作专用电源平面,其在处理器进入深度睡眠状态和连接待机状态时保持通电以支持存储处理器上下文(例如,关键状态变量)的专用高速缓冲存储器。该关键状态可以包括与架构、微架构相关联的状态变量,调试状态和/或与处理器相关联的类似状态变量。

可以在连接待机状态期间将来自EC的唤醒源信号发送到PCH而不是处理器,从而PCH而不是处理器可以管理唤醒处理。另外,TSC在PCH中维护以有助于维持处理器架构功能。

处理器中的功率控制可以导致增强的功率节省。例如,可以在核心之间动态地分配功率,个体核心可以改变频率/电压,并且可以提供多个深度低功率状态以实现非常低的功耗。另外,对核心或独立核心部分的动态控制可以通过在不使用组件时将组件断电来提供降低的功耗。

在不同的实现方式中,诸如TPM之类的安全性模块可以集成到处理器中,或者可以是诸如TPM 2.0设备之类的分立设备。利用集成的安全性模块(也称为平台信任技术(PTT)),可以使能BIOS/固件以针对特定安全性特征公开特定硬件特征,包括安全指令、安全引导、

尽管已经关于有限数量的实施例描述了本发明,但是本领域技术人员将理解由此产生的许多修改和变型。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这些修改和变化。

设计可以经历从创建到仿真到制造的各个阶段。表示设计的数据可以以多种方式表示设计。首先,如在仿真中有用,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外地,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到表示各种设备在硬件模型中的物理放置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定对于用于制造集成电路的掩模而言在不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可以存储在任何形式的机器可读介质中。存储器或诸如磁盘之类的磁或光存储装置可以是用于存储经由光波或电波发送的信息的机器可读介质,该光波或电波被调制或以其他方式生成以发送这样的信息。当发送指示或携带代码或设计的电载波时,在执行对电信号的复制、缓冲或重传的程度上,制作新的副本。因此,通信提供商或网络提供商可以将体现本发明的实施例的技术的诸如编码到载波中的信息之类的制品至少临时地存储在有形的机器可读介质上。

如本文所使用的模块指代硬件、软件和/或固件的任何组合。作为示例,模块包括硬件(例如,微控制器),其与用于存储适合于由微控制器执行的代码的非暂时性介质相关联。因此,在一个实施例中,对模块的引用指代特别地被配置用于识别和/或执行要保持在非暂时性介质上的代码的硬件。此外,在另一实施例中,对模块的使用指代包括特别适合于由微控制器执行以执行预定操作的代码的非暂时性介质。并且,如可以推断的,在又一实施例中,术语模块(在该示例中)可以指代微控制器和非暂时性介质的组合。通常,示出为分离的模块界限通常变化并且潜在地重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,例如,晶体管、寄存器或其他硬件(例如,可编程逻辑器件)。

在一个实施例中,对短语“用于”或“被配置用于”的使用指代对装置、硬件、逻辑或元件进行布置、放在一起、制造、提供以售卖、导入和/或设计以执行指定或确定的任务。在该示例中,没有进行操作的装置或其元件仍“被配置用于”如果其被设计、耦合和/或互连以执行指定任务则执行所述指定任务。作为纯粹说明性的示例,逻辑门可以在操作期间提供0或1。但是“被配置用于”向时钟提供使能信号的逻辑门不包括可以提供1或0的每一个潜在的逻辑门。相反,逻辑门是以在操作期间1或0输出用于启用时钟的某种方式耦合的逻辑门。再次注意,对术语“被配置用于”的使用不要求操作,而是集中于装置、硬件和/或元件的潜在状态,其中在潜在状态下,装置、硬件和/或元件被设计为当装置、硬件和/或元件正在操作时执行特定任务。

此外,在一个实施例中,对短语“能够/能够用于”和/或“可操作用于”的使用是指以这样的方式被设计为使得能够以指定方式使用装置、逻辑、硬件和/或元件的某种装置、逻辑、硬件和/或元件。如上文所提到的,在一个实施例中,对用于、能够用于或可操作用于的使用指代装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件没有在操作,但是以这样的方式被设计为使得能够以指定方式使用装置。

如本文所使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,对逻辑电平、逻辑值(logic value)或逻辑上的值(logical value)的使用还称为对1和0的使用,其简单地表示二进制逻辑状态。例如,1指代高逻辑电平,并且0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中的值的其他表示。例如,十进制数十也可以表示为二进制值1010和十六进制字母A。因此,值包括能够保持在计算机系统中的信息的任何表示。

此外,状态可以由值或值的部分表示。作为示例,诸如逻辑1之类的第一值可以表示默认或初始状态,而诸如逻辑0之类的第二值可以表示非默认状态。另外,在一个实施例中,术语重置和设置分别指代默认值或状态和更新后的值或状态。例如,默认值潜在地包括高逻辑值(即,重置),而更新后的值潜在地包括低逻辑值(即,设置)。注意,值的任何组合可以用于表示任意数量的状态。

以下示例涉及根据本说明书的实施例。示例1是一种装置,包括:物理层(PHY)电路;用于实现消息总线寄存器的存储器,其中,一组控制和状态信号被映射到消息总线寄存器的位,并且该组控制和状态信号包括重新校准请求信号,该重新校准请求信号被映射到消息总线寄存器的位中的特定位;以及用于与控制器耦合的接口,其中,该接口包括基于用于快速PCI的PHY接口(PIPE)的接口,并且该接口包括:一组数据引脚,其包括发送数据引脚和接收数据引脚,该发送数据引脚用于向控制器发送数据,该接收数据引脚用于从控制器接收数据;特定的一组引脚,其用于实现消息总线接口,其中,写入命令用于在消息总线接口上从控制器被接收,以将值写入特定位;以及重新校准电路,其用于基于被写入特定位的值执行对PHY电路的重新校准。

示例2包括示例1的主题,其中,写入命令包括提交的写入。

示例3包括示例1-2中任一项的主题,其中,特定位的值用于在多个时钟周期之后被自动地重置。

示例4包括示例1-3中任一项的主题,还包括检测电路,该检测电路用于:检测PHY电路的一个或多个属性;并且基于一个或多个属性确定重新校准应被执行。

示例5包括示例4的主题,其中,PHY电路用于在消息总线接口上向控制器发送写入命令,以将值写入控制器的消息总线寄存器,以向控制器指示用于执行重新校准的请求。

示例6包括示例5的主题,其中,基于用于执行重新校准的请求,来自控制器的写入命令被接收。

示例7包括示例6的主题,其中,PHY电路用于实现链路,并且在链路处于恢复时重新校准被执行,其中,控制器用于发起恢复。

示例8包括示例1-7中任一项的主题,其中,PHY电路用于在消息总线接口上向控制器发送写入命令,以将值写入控制器的消息总线寄存器,以向控制器指示重新校准完成。

示例9包括示例1-8中任一项的主题,其中,基于PIPE的接口包括用于快速PCI、SATA、DisplayPort和聚合的IO架构的PHY接口。

示例10是一种装置,包括:控制器;以及用于将控制器耦合到物理层(PHY)块的接口,其中,该接口包括:一组数据引脚,其包括发送数据引脚和接收数据引脚,该发送数据引脚用于向PHY块发送数据,该接收数据引脚用于从PHY块接收数据;以及特定的一组引脚,其用于实现消息总线接口,其中,控制器用于在消息总线接口上向PHY块发送写入命令,以将值写入PHY消息总线寄存器的至少一个特定位,PHY消息总线寄存器的位被映射到一组控制和状态信号,并且该特定位被映射到用于请求该PHY块执行重新校准的重新校准请求信号。

示例11包括示例10的主题,其中,该组控制和状态信号包括第一组控制和状态信号,并且该装置还包括用于实现控制器消息总线寄存器的存储器,其中,控制器消息总线寄存器的位被映射到第二组控制和状态信号,并且控制器用于在消息总线接口上从PHY块接收命令以设置控制器消息总线寄存器中的位的值来指示第二组控制和状态信号中的特定信号。

示例12包括示例11的主题,其中,第二组控制和状态信号包括重新校准完成信号,该重新校准完成信号被映射到控制器消息总线寄存器的位中的特定位,以指示由PHY块进行的重新校准的完成。

示例13包括示例11的主题,其中,第二组控制和状态信号包括PHY发起的重新校准请求信号,该PHY发起的重新校准请求信号被映射到控制器消息总线寄存器的位中的特定位,以发起由PHY块进行的重新校准。

示例14包括示例13的主题,其中,重新校准用于在链路处于恢复时被执行,控制器用于发起链路到恢复的转变,并且PHY发起的重新校准请求信号用于请求控制器发起链路到恢复的转变。

示例15包括示例13的主题,其中,第二组控制和状态信号还包括重新校准完成信号,该重新校准完成信号被映射到控制器消息总线寄存器的位中的另一位,以指示由PHY块进行的重新校准的完成。

示例16包括示例10-15中任一项的主题,其中,接口包括基于用于快速PCI的PHY接口(PIPE)的接口。

示例17包括示例10-16中任一项的主题,其中,控制器包括介质访问控制器(MAC)。

示例18包括示例10-17中任一项的主题,其中,写入命令包括提交的写入。

示例19包括示例1-18中任一项的主题,其中,特定位的值用于在多个时钟周期之后被自动地重置。

示例20包括示例1-19中任一项的主题,其中,基于PIPE的接口包括用于快速PCI、SATA、DisplayPort和聚合的IO架构的PHY接口。

示例21是一种系统,包括:第一设备,其包括介质访问控制器(MAC)电路;第二设备,其包括物理层(PHY)电路,其中,第二设备包括PHY消息总线寄存器,PHY消息总线寄存器的位被映射到一组控制和状态信号,并且PHY消息总线寄存器的位中的特定位被映射到重新校准请求信号;用于将第一设备耦合到第二设备的接口,其中,该接口包括:第一引脚,其用于实现从第一设备到第二设备的数据的信令;第二引脚,其用于实现从第二设备到第一设备的数据的信令;第三引脚,其用于实现消息总线接口,其中,第一设备用于在消息总线接口上向第二设备发送写入请求,以将值写入特定位并且指示用于执行对PHY电路的重新校准的请求,其中,第二设备还包括重新校准电路,以基于将值写入特定位来执行重新校准。

示例22包括示例21的主题,其中,该组控制和状态信号包括第二组控制和状态信号,第一设备包括控制器消息总线寄存器,控制器消息总线寄存器的位被映射到第一组控制和状态信号,控制器消息总线寄存器的特定位被映射到PHY发起的重新校准请求信号,并且控制器消息总线寄存器的另一位被映射到重新校准完成信号。

示例23包括示例21的主题,其中,接口包括用于快速PCI、SATA、DisplayPort和聚合的IO架构的PHY接口。

示例24是一种方法,包括:在基于用于快速外围互连的物理层(PHY)接口(PIPE)的接口的消息总线上从控制器接收第一写入请求,其中,第一写入请求用于设置PHY消息总线寄存器的特定位的值,PHY消息总线寄存器的位被映射到第一组控制和状态信号,基于PIPE的接口将控制器耦合到PHY块,并且该特定位被映射到第一组控制和状态信号中的重新校准请求信号;基于设置特定位的值来执行对PHY块的至少一部分的重新校准;以及在消息总线接口上向控制器发送第二写入请求,其中,第二写入请求用于设置控制器消息总线寄存器的特定位的值以指示重新校准的完成,其中,控制器消息总线寄存器中的位被映射到第二组控制和状态信号。

示例25包括示例24的主题,其中,第一写入和第二写入中的至少一个包括提交的写入。

示例26包括示例24-25中任一项的主题,其中,PHY消息总线寄存器和控制器消息总线寄存器中的至少一个的特定位的值用于在多个时钟周期之后被自动地重置。

示例27包括示例24-26中任一项的主题,还包括:检测PHY块的一个或多个属性;并且基于一个或多个属性确定重新校准应被执行。

示例28包括示例27的主题,还包括在消息总线接口上向控制器发送另一写入请求,以将值写入控制器消息总线寄存器的另一位,以向控制器指示用于执行重新校准的请求。

示例29包括示例28的主题,其中,基于用于执行重新校准的请求,第一写入命令从控制器被接收。

示例30包括示例24-29中任一项的主题,其中,PHY块用于实现链路,并且重新校准用于在链路处于恢复时被执行,其中,控制器用于发起恢复。

示例31包括示例24-30中任一项的主题,其中,基于PIPE的接口包括用于快速PCI、SATA、DisplayPort和聚合的IO架构的PHY接口。

示例32是一种系统,包括用于执行示例24-31中任一项的方法的模块。

示例33是一种方法,包括:检测物理层(PHY)块的一个或多个属性;基于一个或多个属性,确定PHY块的至少一部分应被重新校准;以及在基于用于外围互连快速的PHY接口(PIPE)的接口的消息总线上发送第一写入请求,其中,第一写入请求用于设置PHY消息总线寄存器的特定位的值,PHY消息总线寄存器的位被映射到第一组控制和状态信号,基于PIPE的接口将控制器耦合到PHY块,并且该特定位被映射到第一组控制和状态信号中的重新校准请求信号。

示例34包括示例33的主题,还包括在消息总线接口上接收对控制器的第二写入请求,其中,第二写入请求用于设置控制器消息总线寄存器的特定位的值以指示重新校准的完成,其中,控制器消息总线寄存器中的位被映射到第二组控制和状态信号。

示例35包括示例33-34中任一项的主题,其中,重新校准用于在链路处于恢复时被执行,并且该方法还包括发起链路到恢复的转变。

示例36包括示例33-35中任一项的主题,还包括在消息总线接口上接收对控制器的另一写入请求,其中,该另一写入请求用于设置控制器消息总线寄存器的定义的位的值,以指示重新校准请求,其中,基于标识出定义的位的值被设置,第一写入请求被发送。

示例37包括示例33-36中任一项的主题,其中,接口包括基于用于快速PCI的PHY接口(PIPE)的接口。

示例38包括示例33-37中任一项的主题,其中,控制器包括介质访问控制器(MAC)。

示例39包括示例33-38中任一项的主题,其中,写入命令包括提交的写入。

示例40包括示例33-39中任一项的主题,其中,特定位的值用于在多个时钟周期之后被自动地重置。

示例41包括示例33-40中任一项的主题,其中,基于PIPE的接口包括用于快速PCI、SATA、DisplayPort和聚合的IO架构的PHY接口。

示例42是一种系统,包括用于执行示例33-41中任一项的方法的模块。

上面所阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上的、能够由处理元件执行的指令或代码来实现。非暂时性机器可访问/可读介质包括以诸如计算机或电子系统之类的机器可读的形式提供(即,存储和/或传输)信息的任何机制。例如,非暂时性机器可访问介质包括随机存取存储器(RAM)(例如,静态RAM(SRAM)或动态RAM(DRAM));ROM;磁或光存储介质;闪速存储器设备;电存储设备;光存储设备;声学存储设备;用于保持从暂时(传播)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备(其用于区别于可以从其接收信息的非暂时性介质);等等。

用于对逻辑进行编程以执行本发明的实施例的指令可以存储在系统中的存储器(例如,DRAM、高速缓存、闪速存储器或其他存储装置)内。此外,可以经由网络或通过其他计算机可读介质的方式来分发指令。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器,或用于经由电、光、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传输信息的有形的机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。

贯穿本说明书对“一个实施例”或“实施例”的引用表示结合该实施例描述的特定的特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定指代同一实施例。此外,特定的特征、结构或特性可以以任何适合的方式组合在一个或多个实施例中。

在前述说明书中,已经参考具体的示例性实施例进行了详细描述。然而,将显而易见的是,在不偏离如所附权利要求书中阐述的本发明的更宽泛的精神和范围的情况下,可以对其进行各种修改和改变。说明书和附图因此应被视为说明意义而非限制意义的。此外,对实施例和其他示范性语言的前述使用不一定指代同一实施例或同一示例,而是可以指代不同且独特的实施例以及潜在地指代同一实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号