共享存储器链路中的低功率进入的制作方法

文档序号:9929479阅读:333来源:国知局
共享存储器链路中的低功率进入的制作方法
【技术领域】
[0001] 本公开内容涉及计算系统,特别地(但非排他性地),本公开内容涉及计算系统中 的部件之间的存储器访问。
【背景技术】
[0002] 半导体处理和逻辑设计的进步已准许在集成电路器件上可以存在的逻辑单元的 数量增加。作为推论,计算机系统配置已从系统中的单一或多个集成电路演变成在各个集 成电路上存在多核、多硬件线程和多逻辑处理器,以及在这些处理器中集成的其它接口。处 理器或集成电路通常包括单一物理处理器管芯,其中该处理器管芯可以包括任意数量的内 核、硬件线程、逻辑处理器、接口、存储器、控制器集线器等等。
[0003] 随着在更小的封装中容纳更多的处理能力的更大能力,更小的计算设备的普及度 已增加。智能电话、平板设备、超薄笔记本和其它用户设备已成指数地增长。但是,这些更小 的设备依赖于服务器以进行数据存储和超出形状因子的复杂处理。因此,对于高性能计算 市场的需求(即,服务器空间)也发生了增长。例如,在现代服务器中,通常不仅存在具有多 个内核的单一处理器,而且还存在多个物理处理器(其还称为多个插槽)来增加计算能力。 但是,随着处理能力连同计算系统中的设备数量发生增加,在插槽和其它设备之间的通信 也变得更加关键。
[0004] 事实上,互连已从更加传统的主要处理电通信的多点式总线,演变为有助于快速 通信的完全成熟的互连架构。不幸的是,随着未来处理器按照甚至更高速率进行处理的需 求,对于现有互连架构的能力也施加了相应的需求。
【附图说明】
[0005] 图1示出了包括互连架构的计算系统的实施例。
[0006] 图2示出了包括分层栈的互连架构的实施例。
[0007] 图3示出了在互连架构中生成或者接收的请求或分组的实施例。
[0008] 图4示出了用于互连架构的发送器和接收器对的实施例。
[0009] 图5示出了互连的示例性分层协议栈。
[0010] 图6示出了示例性节点的实施例的简化框图。
[0011] 图7示出了包括多个节点的示例性系统的实施例的简化框图。
[0012]图8示出了包括垫层(shim)逻辑单元的节点的示例性逻辑单元。
[0013] 图9是根据示例性共享存储器链路发送的数据的图示。
[0014] 图10示出了在数据流中嵌入的示例性控制窗口的图示。
[0015] 图11A-11B示出了使用嵌入式控制窗口的示例性握手的流程图。
[0016] 图12是另一种示例性握手的图示。
[0017] 图13是数据成帧令牌的示例性起始的图示。
[0018] 图14是示出用于进入低功率链路状态的示例性技术的流程图。
[0019] 图15示出了用于包括多核处理器的计算系统的框图的实施例。
[0020] 图16示出了用于包括多核处理器的计算系统的框图的另一个实施例。
[0021 ]各个附图中的相同附图标记和标注指示相同的元素。
【具体实施方式】
[0022] 在下文的描述中,为了对本发明提供一个透彻理解,对众多特定细节进行了阐述, 诸如以下示例:特定类型的处理器和系统配置、特定的硬件结构、特定的架构和微架构细 节、特定的寄存器配置、特定的指令类型、特定的系统部件、特定的测量/高度、特定的处理 器流水线阶段和操作等等。但是,对于本领域普通技术人员来说将显而易见的是,不必采用 这些特定细节来实践本发明。在其它实例中,为了避免对本发明造成不必要的模糊,没有详 细描述公知的部件或方法,例如,特定的或替代的处理器架构、用于所描述的算法的特定逻 辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材 料、特定的编译器实现方式、利用代码的算法的特定表示、特定的掉电和门控技术/逻辑、以 及计算机系统的其它特定操作细节。
[0023] 虽然可以参照特定的集成电路中的(例如,计算平台或微处理器中的)节能和能量 效率来描述下面的实施例,但其它实施例可适用于其它类型的集成电路和逻辑器件。本文 所描述的实施例的类似技术和教导,可以应用于也能从更佳的能量效率和节能中获益的其 它类型的电路或半导体器件。例如,所公开的实施例并不限于桌面型计算机系统或超级 本?。其还可以用于其它设备,例如,手持设备、平板设备、其它薄笔记本、片上系统(S0C)设 备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码相机、个人数 字助理(PDA)和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系 统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或者能够执行下面所教 示的功能和操作的任何其它系统。此外,本文所描述的装置、方法和系统并不限于物理计算 设备,还可以涉及用于节能和能量效率的软件优化。如下面的描述中将变得显而易见的,本 文所描述的方法、装置和系统的实施例(无论是参照硬件、固件、软件,还是它们的组合)对 于平衡性能考量的"绿色技术"未来都是至关重要的。
[0024] 随着计算系统不断提高,其中的部件也变得越来越复杂。结果,用于在这些部件之 间进行耦合和通信的互连架构在复杂度上也不断增加,以确保满足带宽需求来实现最优的 部件操作。此外,不同的市场分部要求互连架构的不同方面来适合市场的需求。例如,服务 器需要更高的性能,而移动生态系统有时能够为了省电而牺牲整体性能。另外,大多数结构 的唯一目的是在具有最大省电的情况下,提供最大可能的性能。下面将讨论多种互连,它们 将潜在地从本文所描述的本发明的方面受益。
[0025] 一种互连结构架构包括外围部件互连(PCI)高速(PCIe)架构。PCIe的主要目标是 使不同供应商的部件和设备能够在开放的架构下进行互操作,其跨度多个市场分部、客户 端(桌面型和移动型)、服务器(标准和企业)、以及嵌入式设备和通信设备。PCI Express是 针对各种各样的未来计算和通信平台所规定(define)的一种高性能、通用I/O互连。诸如使 用模型、装载/存储架构和软件接口之类的一些PCI属性历经其修订版仍在维持,而先前的 并行总线实现方式已被高度可扩展的、完全串行接口来替代。PCI Express的最新版本充分 利用点对点互连中的改进、基于交换的技术和分组化协议,来传送新的水平的性能和特征。 功率管理、服务质量(QoS)、热插拨/热交换支持、数据完整性和错误处理都是PCI Express 所支持的高级特征中的一些。
[0026]参见图1,示出了由点对点链路组成的结构的实施例,其中该点对点链路对部件集 合进行互连。系统100包括耦合到控制器集线器115的系统存储器110和处理器105。处理器 105包括诸如微处理器、主机处理器、嵌入式处理器、协同处理器或其它处理器之类的任何 处理单元。处理器105通过前端总线(FSB)106耦合到控制器集线器115。在一个实施例中, FSB 106是如下所述的串行点对点互连。在另一个实施例中,链路106包括遵循不同的互连 标准的串行的、差分互连架构。
[0027]系统存储器110包括任何存储器设备,例如,随机存取存储器(RAM)、非易失性(NV) 存储器或者系统100中的设备可访问的其它存储器。系统存储器110通过存储器接口 116来 耦合到控制器集线器115。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道 DDR存储器接口和动态RAM(DRAM)存储器接口。
[0028]在一个实施例中,控制器集线器115是外围部件互连高速(PCIe或PCIE)互连等级 中的根集线器、根复合体或者根控制器。控制器集线器115的示例包括芯片集、存储控制器 集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。通常,术语芯片集 指代两个物理独立的控制器集线器,即,耦合到互连控制器集线器(ICH)的存储控制器集线 器(MCH)。应当注意,当前系统通常包括与处理器105集成的MCH,而控制器115以与如下所述 的类似方式与I/O设备进行通信。在一些实施例中,通过根复合体115来可选地支持对等路 由。
[0029]这里,控制器集线器115通过串行链路119耦合到交换器/桥120。输入/输出模块 117和121(它们还可以称为接口 /端口 117和121)包括/实现分层协议栈,以提供控制器集线 器115和交换器120之间的通信。在一个实施例中,多个设备能够耦合到交换器120。
[0030] 交换器/桥120将来自设备125的分组/消息向上游路由到控制器集线器115(即,朝 着根复合体沿层级往上),将来自处理器105或系统存储器110的分组/消息向下游路由到设 备125(即,离开根控制器沿层级往下)。在一个实施例中,交换器120被称为多个虚拟PCI到 PCI桥设备的逻辑组件。设备125包括要耦合到电子系统的任何内部或外部设备或部件,诸 如I/O设备、网络接口控制器(NIC)、插入式卡、音频处理器、网络处理器、硬盘驱动器、存储 设备、⑶/DVD R0M、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串 行总线(USB)设备、扫描仪和其它输入/输出设备。通常在PCIe行话中,例如将设备称为端 点。虽然没有详细地示出,但设备125可以包括PCIe到PCI/PCI-X桥,以支持传统或其它版本 PCI设备。通常,将PCIe中的端点设备分类成传统、PCIe或集成根复合体的端点。
[0031] 此外,图形加速器130也通过串行链路132耦合到控制器集线器115。在一个实施例 中,图形加速器130耦合到MCH,MCH耦合到ICH。随后,交换器120以及相应地I/O设备125耦合 到IOLI/0模块131和118也用于实现分层协议栈,以便在图形加速器130和控制器集线器 115之间进行通信。类似于上面讨论的MCH,图形控制器或图形加速器130自身可以集成在处 理器105中。
[0032] 转到图2,示出了一种分层协议栈的实施例。分层协议栈200包括任何形式的分层 通信栈,例如,快速通道互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或者其它分层栈。 虽然下面参照图1-4所紧跟着的讨论与PCIe栈有关,但相同的概念也可应用于其它互连栈。 在一个实施例中,协议栈200是包括事务层205、链路层210和物理层220的PCIe协议栈。诸如 图1中的接口 117、118、121、122、126和131之类的接口可以表示成协议栈200。表示成通信协 议栈还可以称为实现/包括协议栈的模块或接口。
[0033] PCI Express使用分组来在部件之间传送信息。在事务层205和数据链路层210中 形成分组,以携带从发送部件到接收部件的信息。随着所发送的分组流经其它层,利用在这 些层对分组进行处理所必需的另外信息来扩展分组。在接收侧,发生反向过程,且分组将从 它们的物理层220表示变换到数据链路层210表示,并最后(对于事务层分组)变换成接收设 备的事务层205可以处理的形式,来获得分组。
[0034] 事务层
[0035]在一个实施例中,事务层205用于提供设备的处理内核和互连架构之间的接口,例 如,数据链路层210和物理层220。在该方面,事务层205的主要责任是分组(即,事务层分组 或TLP)的组装和拆卸。通常,事务层管理针对TLP的基于信用的流控制。PCIe实现拆分事务, 即,具有通过时间来分隔的请求和响应的事务,其允许链路携带其它业务,同时目标设备收 集用于进行响应的数据。
[0036]此外,PCIe使用基于信用的流控制。在该方案中,设备将用于事务层205中的每一 个接收缓冲区的信用度的初始量告之于众。位于该链路的另一端的外部设备(例如,图1中 的控制器集线器115)对每一个TLP所消耗的信用量进行计数。如果该事务没有超过信用额 度,则可以发送该事务。在接收到响应之后,恢复信用量。信用方案的一种优点在于信用返 回的时延并不影响性能(倘若没有达到信用额度的话)。
[0037]在一个实施例中,四种事务地址空间包括配置地址空间、存储器地址空间、输入/ 输出地址空间和消息地址空间。存储器空间事务包括读请求和写请求其中的一个或多个, 以将数据传送往/返存储器映射的位置。在一个实施例中,存储器空间事务能够使用两种不 同的地址格式,例如,短地址格式(如,32比特地址)或长地址格式(如,64比特地址)。配置空 间事务用于访问PCIe设备的配置空间。针对配置空间的事务包括读请求和写请求。对消息 空间事务(或者,简单的消息)进行规定,以支持PCIe代理之间的带内通信。
[0038]因此,在一个实施例中,事务层205对分组报头/有效载荷206进行组装。可以在 PCIe规范网站的PCIe规范中,找到用于当前的分组报头/有效载荷的格式。
[0039] 快速地参见图3,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符 300是用于携带事务信息的机制。在该方面,事务描述符300支持系统中的事务的识别。其它 潜在用途包括:跟踪缺省事务排序的修改以及事务与信道的关联性。
[0040] 事务描述符300包括全局标识符字段302、属性字段304和信道标识符字段306。在 所示出的例子中,将全局标识符字段302描述成包括本地事务标识符字段308和源标识符字 段310。在一个实施例中,全局事务标识符302对于所有显著请求来说是唯一的。
[0041]根据一种实现方式,本地事务标识符字段308是请求代理所生成的字段,且其对于 对该请求代理来说需要完成的所有显著请求来说是唯一的。此外,在该示例中,源标识符 310在PCIe等级中唯一地标识请求方代理。因此,与源ID 310-起,本地事务标识符308字段 在等级域中提供事务的全局标识。
[0042]属性字段304指定该事务的特性和关系。在该方面,潜在地使用属性字段304来提 供允许对事务的缺省处理进行修改的另外信息。在一个实施例中,属性字段304包括优先级 字段312、保留字段314、排序字段316和不监听字段318。这里,发起方可以对优先级子字段 312进行修改,以便为事务分配优先级。将保留属性字段314保留以便未来使用,或者供应商 定义的用途。可以使用保留属性字段来实现利用优先级或安全属性的可能使用模型。
[0043] 在该示例中,使用排序属性字段316来提供用于传送排序类型的可选信息,其中该 信息可以修改缺省的排序规则。根据一种示例性实现方式,排序属性"〇"指示将应用缺省的 排序规则,其中排序属性"1"指示放松的排序,其中写入可以在相同的方向传递写入,而读 完成可以在相同的方向传递写入。使用监听属性字段318来判断是否对事务进行监听。如图 所示,信道ID字段306标识与事务相关联的信道。
[0044] 链路层
[0045]链路层210(其还称为数据链路层210)充当事务层205和物理层220之间的中间级。 在一个实施例中,数据链路层210的责任是提供用于在链路的两个部件之间交换事务层分 组(TLP)的可靠机制。数据链路层210的一侧接受事务层205所组合的TLP,应用分组序列标 识符211(即,标识号或分组编号),计算和应用错误检测码(即,CRC 212),并向物理层220提 交修改的TLP以便通过物理层向外部设备传输。
[0046] 物理层
[0047] 在一个实施例中,物理层220包括逻辑子块221和电子子块222,以物理地向外部设 备发送分组。这里,逻辑子块221负责物理层221的"数字"功能。在该方面,该逻辑子块包括: 发送段,以准备用于由物理子块222进行传输的输出信息;以及接收器段,用于在将接收的 信息传送给链路层210之前,识别和准备该接收的信息。
[0048] 物理块222包括发送器和接收器。逻辑子块221向发送器提供符号,其中发送器对 这些符号进行串行化,并将其发送到外部设备上。向接收器提供来自外部设备的串行化的 符号,并将所接收的信号转换成比特流。将该比特流进行去串行化,并将其提供给逻辑子块 221。在一个实施例中,使用8b/10b传输编码,其中发送/接收十比特符号。这里,使用特殊符 号来利用帧223对分组进行成帧。此外,在一个示例中,接收机还提供从输入的串行流中恢 复的符号时钟。
[0049] 如上所述,虽然参照PCIe协议栈的特定实施例来讨论了事务层205、链路层210和 物理层220,但分层协议栈并不受此限制。事实上,可以包括/实现任何分层协议。举例而言, 表示成分层协议的端口/接口,包括:(1)用于对分组进行组装的第一层(即,事务层);用于 对分组进行序列化的第二层(即,链路层),以及用于发送这些分组的第三层(即,物理层)。 举一个特定的例子,使用公共标准接口(CSI)分层协议。
[0050] 接着参见图4,示出了 PCIe串行点对点结构的实施例。虽然示出了 PCI e串行点对点 链路的实施例,但串行点对点链路并不受此限制,这是由于其包括用于发送串行数据的任 何传输路径。在所示出的实施例中
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1