事务性缓冲式存储器中的提早识别的制作方法

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