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

文档序号:9929480阅读:来源:国知局
括两个低电压差分 驱动的信号对:发送对406/411和接收对412/407。相应地,设备405包括用于向设备410发送 数据的发送逻辑单元406以及用于从设备410接收数据的接收逻辑单元407。换句话说,两条 发送路径(即路径416和417)和两条接收路径(即路径418和419)被包括在链路的一些实现 中。
[0048]传输路径指代用于发送数据的任何路径,诸如传输线、铜线、光线、无线通信信道、 红外通信链路或其它通信路径。在两个设备(诸如设备405和设备410)之间的连接被称为链 路,诸如链路415。链路可以支持一个通道-每一个通道表不差分信号对(一对用于发送、一 对用于接收)的集合。为了扩展带宽,链路可以聚合多个信道,由xN表示,其中,N是任何所支 持的链路宽度,诸如1、2、4、8、12、16、32、64或更宽。
[0049]差分对可以指代发送差分信号的两条发送路径,诸如线416和线417。作为示例,当 线416从低电压电平切换到高电压电平时(即上升沿),线417从高逻辑电平驱动到低逻辑电 平(即下降沿)。除其它示例性优势外,差分信号潜在地证明了较好的电特性,诸如较好的信 号完整性,即交叉耦合、电压过冲/下冲、振铃。这允许较好的定时窗口,其实现更快的传输 频率。
[0050]在一个实施例中,提供了新的高性能互连(HPIhHPI可以包括下一代高速缓存一 致的、基于链路的互连。作为示例,HPI可以用在高性能计算平台中(诸如工作站或服务器), 包括在其中PCIe或另一个互连协议典型地用于连接处理器、加速器、I/O设备等的系统中。 然而,HPI不受限于此。作为替代,HPI可以用在本文描述的任何系统或平台中。此外,发展的 独特的想法可以应用于其它互连和平台,诸如PCIe、MIPI、QPI等。
[0051]在一个示例性实施例中,为了支持多个设备,HPI可以包括指令集架构(ISA)不可 知(即HPI能够被实现在多个不同的设备中)。在另一个场景中,HPI还可以用于连接高性能 I/O设备,不仅是处理器和加速器。例如,高性能PCIe设备可以通过适当的转换桥(即HPI到 PCIe)耦合到HPI。此外,HPI链路可以被许多基于HPI的设备(诸如处理器)以不同的方式(例 如星、环、网等)利用。图5示出了多个潜在的多插槽配置的示例性实现。如描绘的,两插槽配 置505可以包括两个HPI链路;然而,在其它实现中,可以利用一个HPI链路。对于较大的拓 扑,除其它额外的或替代的特征外,只要标识符(ID)是可分配的并且存在某种形式的虚拟 路径,就可以利用任何配置。如示出的,在一个例子中,四插槽配置510具有从每一个处理器 到另一个处理器的HPI链路。但是在配置515中示出的八插槽实现中,不是每一个插槽都通 过HPI链路互相直接地连接。然而,如果在处理器之间存在虚拟路径或信道,那么该配置被 支持。支持的本地域中的处理器的范围包括2至32个。除了其它例子外,可以通过使用多个 域或者在节点控制器之间使用其它互连来实现更高数量的处理器。
[0052] HPI架构包括分层协议架构的定义,在一些例子中包括:协议层(一致、非一致、与、 可选择地、其它基于存储器的协议)、路由层、链路层以及物理层。此外,除了其它例子外, HPI还可以包括与功率管理器(诸如功率控制单元(P⑶))、针对测试和调试的设计(DFT)、错 误处理、寄存器、安全相关的增强。图5示出了示例性HPI分层协议栈的实施例。在一些实现 中,在图5中示出的层中的至少一些层可以是可选择的。每一个层处理其自身的信息粒度级 别或信息量(具有分组630的协议层605a、b,具有微片635的链路层610a、b,以及具有物理微 片(phit)640的物理层605a、b)。注意,在一些实施例中,分组可以基于实现包括部分微片、 单个微片或多个微片。
[0053]作为第一例子,物理微片640的宽度包括链路宽度到比特的1对1映射(例如20比特 链路宽度包括20比特的物理微片等)。微片可以具有较大的大小,诸如184、192或200比特。 注意,如果物理微片640是20比特宽以及微片635的大小为184比特,那么需要分数个物理微 片640来发送一个微片635(例如,除其它例子外,9.2个20比特的物理微片来发送184比特微 片635,或者9.6个20比特来发送192比特微片)。注意,在物理层处的基础链路的宽度可以变 化。例如,每个方向的信道的数量可以包括2个、4个、6个、8个、10个、12个、14个、16个、18个、 20个、22个、24个等。在一个实施例中,链路层610a、b能够在单个微片中嵌入不同事务的多 个部分,以及一个或多个报头(例如1个、2个、3个、4个)可以被嵌入在微片内。在一个例子 中,HPI将报头分成相应的时隙以实现去往不同节点的微片中的多个消息。
[0054]在一个实施例中,物理层605a、b可以负责在物理介质(电的或光学的等)上的信息 的快速转移。物理链路可以是在两个链路层实体(诸如层605a和605b)之间的点对点。链路 层610a、b可以从上层抽象物理层605a、b并且提供用于可靠地转移数据(以及请求)和管理 两个直接相连实体之间的流控制的能力。链路层还可以负责将物理信道虚拟化为多个虚拟 信道和消息类。协议层620a、b依赖于链路层610a、b来在将协议消息递给物理层605a、b用于 跨物理链路的转移之前,将协议消息映射成适当的消息类和虚拟信道。除其它例子外,链路 层610a、b可以支持多个消息,诸如请求、监听、响应、回写、非一致数据。
[0055]如在图6中所示,可以在电层(即连接两个部件的电导体)之上和链路层610a、b之 下实现HPI的物理层605a、b(或PHY)。物理层和相应的逻辑器件可以位于每一个代理上并且 连接在彼此分离的两个代理(A和B)(例如在链路的两边的设备上)上的链路层。本地和远程 电层通过物理介质(例如导线、导体、光学介质等)连接。在一个实施例中,物理层605a、b具 有两个主相,初始化和操作。在初始化期间,连接对于链路层是不透明的,以及信令可以涉 及计时状态和握手事件的组合。在操作期间,连接对于链路层是透明的以及信令是以一定 速度的,同时所有通道作为单个链路一起操作。在操作相期间,物理层从代理A向代理B以及 从代理B向代理A传送微片。连接还被称为链路以及从链路层抽象包括介质、宽度和速度的 一些物理方面,同时与链路层交换微片和当前配置(例如,宽度)的控制/状态。初始化相包 括次相,例如轮询、配置。操作相也包括次相(例如链路功率管理状态)。
[0056]在一个实施例中,可以实现链路层610a、b以便提供在两个协议或路由实体之间的 可靠的数据转移。链路层可以从协议层620a、b抽象物理层605a、b、以及可以负责在两个协 议代理(A、B)之间的流控制、以及向协议层(消息类)和路由层(虚拟网络)提供虚拟信道服 务。在协议层620a、b和链路层610a、b之间的接口可以典型地以分组级别。在一个实施例中, 在链路层处的最小转移单元被称为微片或某种其它名称,所述微片是所指定数量的比特, 诸如192比特。链路层610a、b依赖于物理层605a、b来将物理层605a、b的转移单元(物理微 片)构造成链路层610a、b的转移单元(微片)。另外,链路层610a、b可以被逻辑地拆分成两部 分,发送机和接收机。在一个实体上的发送机/接收机对可以连接到在另一个实体上的发送 机/接收机对。通常在微片和分组二者的基础上来执行流控制。还在微片级别的基础上来潜 在地执行错误检测和纠正。
[0057]在一个实施例中,路由层615a、b可以提供将HPI事务从源路由到目的地的灵活的 和分布式方法。方案是灵活的,这是因为可以通过在每一个路由器处的可编程的路由表来 指定针对多个拓扑的路由算法(由固件、软件或其组合执行一个实施例中的程序)。路由功 能可以是分布式的;可以通过一系列路由步骤来完成路由,其中通过对在源路由器、中间路 由器或目的地路由器处的表的查找来定义每一个路由步骤。在源处的查找可以用于将HPI 分组注入到HPI结构。在中间路由器处的查找可以用于将HPI分组从输入端口路由到输出端 口。在目的地端口处的查找可以用于把目的地HPI协议代理定为目标。注意,在一些实现中, 路由层可以是薄的,这是因为规范没有具体地定义路由表以及因此路由算法。这允许了灵 活性和多种多样的使用模型,包括将由系统实现定义的灵活的平台架构拓扑。路由层615a、 b依赖于链路层610a、b用于提供对多至三个(或更多)虚拟网络(VN)的使用-在一个例子中, 在两个无死锁VN,VNO和VN1具有在每一个虚拟网路中定义的若干消息类。可以在链路层中 定义共享的自适应虚拟网络(VNA),但是这个自适应虚拟网络可能不被直接地公开在路由 概念中,这是由于除其它特征和例子外,每一个消息类和虚拟网络可以具有专用的资源和 被保证的前向进程。
[0058]在一个实施例中,HPI可以包括支持缓存来自于存储器的数据线的代理的一致性 协议层620a、b。想要缓存存储器数据的代理可以使用一致性协议来读取数据线以将数据线 装载进其缓存中。想要修改在其缓存中的数据线的代理可以在修改数据之前使用一致性协 议来获得线的所有权。在修改线之后,代理可以遵循将线保持在其缓存中,直到其将线写回 存储器或将线包括在对外部请求的响应中为止的协议要求。最后,代理可以履行使其缓存 中的线无效的外部请求。协议通过规定所有缓存代理可以遵守的规则来确保数据的一致 性。其还为没有缓存的代理提供了用于一致地读取和写入存储器数据的手段。
[0059] 两个情况可以促使支持利用HPI-致性协议的事务。第一,作为例子,协议可以在 每个地址的基础上来在代理的缓存中的数据间和在那些数据和存储器中的数据之间保持 数据一致性。非正式地,数据一致性可以指代在代理的缓存中的每一个有效的数据线表示 数据的最新值,以及在一致性协议分组中被发送的数据可表示在其被发送时的数据的最新 值。当在缓存中或在传输中不存在有效的数据副本时,协议可以确保数据的最新值位于存 储器中。第二,协议可以提供针对请求的明确定义的约定点。针对读取的约定点可以指示数 据何时可用;而针对读取,其可以指示写入的数据何时是全局可观察的以及何时将被随后 的读取装载。协议可以支持针对一致存储器空间中的可缓存的和不可缓存的(UC)请求二者 的这些约定点。
[0060] 在一些实现中,HPI可以利用嵌入式时钟。可以在使用互连发送的数据中嵌入时钟 信号。通过在数据中嵌入时钟信号时,可以省略单独的和专用的时钟通道。这可以是有用 的,例如,因为其可以允许设备的更多的引脚被用于数据转移,尤其是在引脚的空间是非常 珍贵的系统中。
[0061 ] 可以在互连的两侧上的代理之间建立链路。发送数据的代理可以是本地代理,而 接收数据的代理可以是远程代理。状态机可以被两个代理采用来管理链路的各个方面。在 一个实施例中,物理层数据路径可以从链路层发送微片到电前端。在一种实现中,控制路径 包括状态机(还被称为链路训练状态机等)。状态机的动作和从状态机退出可取决于内部信 号、计时器、外部信号或其它信息。事实上,状态中一些状态(诸如几个初始化状态)可以具 有计时器以提供超时值来退出状态。注意,在一些实施例中,检测指代在通道的两腿上检测 事件;但是不一定要同时。然而,在其它实施例中,检测指代由参考代理进行的对事件的检 测。作为一个例子,去抖动指代对信号的持续认定。在一个实施例中,如果发生非功能性通 道,HP I支持操作。这里,可以在特定状态处放弃通道。
[0062] 在状态机中定义的状态可以包括重置状态、初始化状态以及可操作状态,连同其 它范畴和子范畴。在一个例子中,一些初始化状态可以具有辅计时器,其用于当超时时退出 状态(基本上是由于没能在状态中取得进步导致的中止)。中止可以包括寄存器(诸如状态 寄存器)的更新。一些状态还可以具有主计时器,其用于在状态中对主功能计时。除其它例 子外,可以定义其它状态以使得内部或外部信号(诸如握手协议)驱动从一个状态到另一个 状态的转变。
[0063] 状态机还可以通过单个步骤、冻结初始化中止、以及测试器的使用来支持调试。这 里,可以推迟/保持状态退出,直到调试软件准备就绪为止。在某个实例中,可以推迟/保持 退出,直到辅超时为止。在一个实施例中,动作和退出可以基于训练序列的交换。在一个实 施例中,将在本地代理时钟域中运行链路状态机,以及从一个状态到下一个状态的转变将 与发射机训练序列边缘一致。状态寄存器可以用于反映当前状态。
[0064]图7示出了由在HPI的一个示例性实现中的代理使用的状态机的至少一部分的表 示。应当认识到的是,在图7的状态表中包括的状态包括可能状态的非穷举列表。例如,省略 了一些转变以简化图。此外,可以组合、拆分或省略一些状态,而添加其它状态。这样的状态 可以包括:
[0065]事件重置状态:进入到温或冷重置事件上。恢复默认值。初始化计数器(例如,同步 计数器)。可以退出到另一个状态,诸如另一个重置状态。
[0066]计时重置状态;针对带中重置的计时状态。可以驱动预先定义的电有序集(E0S), 以致远程接收机能够检测EOS并且还进入计时重置。接收机具有保持电设置的通道。可以退 出到代理以标定重置状态。
[0067]标定重置状态:通道上没有信令(例如接收机标定状态)或关闭驱动器的标定。可 以是基于计时器的状态中的预先确定的时间量。可以设置可操作的速度。当未启用端口时 可以用作等待状态。可以包括最小驻留时间。可以基于设计发生接收机调节或交错。可以在 超时和/或标定完成之后,退出到接收机检测状态。
[0068]接收机检测状态:检测通道上接收机的存在。可以寻找接收机终止(例如接收机断 开插入)。可以在指定的值被设置时或者当另一个指定的值未被设置时退出到标定重置状 态。如果检测到接收机或者达到超时,那么可以退出到发射机标定状态。
[0069]发射机标定状态:用于发射机标定。可以是被分配用于发射机标定的计时状态。可 以包括在通道上的信令。可以连续地驱动E0S,诸如电空闲退出有序集(或EIEI0S)。当标定 完成时或者当计时器到期时,可以退出到遵循状态。如果计数器已到期或者辅超时已发生, 那么可以退出到发射机检测状态。
[0070] 发射机检测状态:批准有效的信令。可以是代理完成动作的握手状态,以及基于远 程代理信令退出到下一个状态。接收机可以批准来自于发射机的有效的信令。在一个实施 例中,接收机寻找唤醒检测,以及如果在一个或多个通道上去抖动,那么在其它通道上寻找 唤醒检测。发射机驱动检测信号。可以响应于针对所有通道完成去抖动和/或超时、或者在 所有通道上的去抖动未被完成并且存在超时来退出到轮询状态。这里,一个或多个监控器 通道可以被保持醒来以去抖动唤醒信号。以及如果去抖动了,那么其它通道潜在地被去抖 动。这可以实现低功率状态中的功率节省。
[0071] 轮询状态:接收机适应、锁定比特(例如,通过初始化漂移缓冲器)、锁定字节(例 如,通过识别符号边界)以及锁定训练序列边界(例如,通过锁定到电有序集(EOS)和/或训 练序列报头)。通道可以随后被去偏斜。还可以完成握手以将轮询退出到若干潜在的状态中 的一个状态。例如,可以(由代理)引发退出以到链路宽度状态、遵循状态、环回标志状态或 重置状态中的任何一个状态。握手可以包括对各种经定义的接收机动作或状况的完成,以 及发送确认消息(ACK)以触发退出到对应于所完成的动作的集合和ACK的状态。对于轮询去 偏斜,可以以针对最高速度的第一长度和针对缓慢速度的第二长度来覆盖在远程发射机处 的通道到通道偏斜。可以以缓慢模式以及可操作模式来执行去偏斜。接收机可以具有去偏 斜通道到通道偏斜的特定的最大值,诸如8、16或32个偏斜间隔。在一些实现中,接收机动作 还可以包括延时固定。在一个实施例中,可以在有效的通道映射的成功的去偏斜上完成接 收机动作。在一个例子中,当有确认的情况下接收到多个连续的训练序列报头以及在接收 机完成其动作之后发送具有确认的多个训练序列时,可以实现成功的握手。
[0072]遵循状态:从轮询状态进入。出于验证的目的,可以将代理设置为遵循主或从。设 备(用作为主)可以向另一个设备(从)发送遵循模式,从可以在将模式重新定时到其本地时 钟之后循环返回该模式(例如,不需要撤销任何极性反向或通道反转)。当环回不是功能性 的或是不希望有的时,遵循模式可以用于表征在通道的一些子集上的模拟前端的操作。例 如,可以在成功的字节锁定、TS锁定、去偏斜、时延测试以及依赖于若干数字逻辑部分的适 当工作的其它测试的前提下进入环回。随着比特锁定的实现,可以进入遵循以及其可以被 用于抖动或噪声调查、调试、探测链路,连同其它调节。换句话说,万一轮询的结果不允许直 接进入到环回,那么遵循可以充当针对轮序的替代退出。遵循状态可以利用来自于主的发 射机来驱动超级序列。接收机在监控器通道上寻找醒来、去抖动该醒来、丢弃差的通道、适 应以及比特锁定等。从发射机可以驱动遵循模式,直到其接收机动作完成为止。随后环回是 重新计时以及未被去偏斜的。从接收机进行类似的监控和去抖动等动作。除其它例子外,可 以退出到诸如计时重置的重置状态或者到环回模式状态以开始测试。在退出到环回模式状 态的情况下,主可以被发送(例如,被软件控制器)到环回模式状态以尝试更特殊化的模式。 [0073] 代理环回标志状态:环回标志是代理状态,但是不像其它代理状态,主和从动作以 及退出可以是不同的。环回从可以撤销任何极性反向和/或通道反转,但
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1