专利名称:一种互连系统的制作方法
一种互连系统本申请文件要求在2005年4月21日申请的,临时申请号为No. :60/674,189的美 国申请,以及在2005年7月11日申请的,申请号为No. :60/698,626的美国申请的权利,每
一项申请在此处结合并被整体参考。
背景技术:
一般来说,计算机和通信技术的发展遵循着摩尔定律原则,其密度和组件都有所 增长,而且,随着时间的推移,其组件的成本有所下降,但同样也伴随着传输和计算速度的 增加。这里有一种趋势是增强功率消耗密度和增加新的解决方案,以可在高温的环境下散 热或运作。在高速电路中,信号传播时延和设计以及制造公差都会限制实践中加速的实现。现有技术的存储系统结构需要在价格、性能以及升级能力之间做出权衡,例如,系 统总的存储能力。增加存储能力通常是由具有连接器/插座接口的存储器模块或者卡来实 现的。通常,这些存储器模块被连接至总线或者通过置于底板上的配线相互连接,以更有效 地利用系统资源。除了升级能力以外,许多现有技术的存储系统也需要为带宽要求较大的 应用提供较大的吞吐量,比如制图。在设计范围内应该考虑系统资源,例如,集成电路压膜的区域,封装插脚,信号线 迹,连接器,底板区域以及电源和响应速度。一种普通型存储器模块是双插存储器模块(Dual In-line Memory Module, DIMM), DMM是一种矩形的低轮廓电路板,其两侧沿长边排布有电触点。当所述DIMM被插 入DIMM存储插座上时,所述触点形成了到主板存储总线的电气连接。存储系统通过模块的使用提供了一种进行升级的路径。一种插座和连接器接口会 被使用,以允许每个模块被移除及被一种更快速或更大存储能力的存储器模块所代替,或 者仅仅用于替换已损坏的存储器模块。存储系统可能被配置为无插座形式或者少于存储器 模块的最大存储能力,(例如,悬空插座/连接器),而在以后的时间内采用存储扩展模块来 增加存储能力。存储器被用在包括但不限于计算机系统或者通信系统中,各种随机存取存储器 (RAM)(例如,静态随机存取存储器S-RAM,动态随机存取存储器D-RAM);可编程只读存储器 (PR0M),电可擦除只读存储器(EPR0M);快闪存储器,包含磁电机随机存取存储器(MRAM), 磁随机存取存储器(FRAM)以及非易失性随机存取存储器(NRAM),变相存储器(PRAM)和媒 体磁盘存储器在内的各种类型的磁存储器。除此之外,还有适用于未来的存储器,例如量子 设备或类似的。在这,需要为存储系统和计算机系统结构或者拓扑结构在提供高速的带宽以维持 微型处理器运行频率的速度时,提供灵活而成本效率的升级能力。可选地,对于相同或相似 操作特性的低功率消耗和低存储反应时间以及类似特性也是一种需求。目前,存储系统的大小和性能由功耗、与功耗和装置密度相关的冷却能力、响应时 间(如,由数据歪斜产生的)、以及需要与存储元件互连的电路板的复杂度,以及这些因素 的经济成本所限制。需要对存储器、通信系统结构及装置进行改善,以减轻这些问题的一些
4或全部。
发明内容
本发明公开了一种与计算机和通信系统组件一起使用的互连系统,包括多个节 点,每一个节点具有一个端口,每一个端口都至少具有一个输入链路(link)或一个输出链 路,每一个链路都包含有多条线路,第一节点的第一线路用于传输控制数据,第二节点的第 一线路上接收的信号用来控制第二节点的第二线路的将来时间的功率状态。第一端点的输 出线路的状态可在将来时间由控制信号决定而改变。将来时间至少包含一个固定时间值, 这取决于互连系统中节点的位置,或者控制信号中包含的一个时间值。另一方面,提供了一种互连系统,多个节点,每个节点具有一个端口,该端口具有 至少一个输出链路或输入链路,每一个链路包括一条第一线路和一个第二线路;所述连接 器进一步包括主板,所述主板上有多个连接器,每一个连接器都与多个存储器模块中的一 个接口连接,其中,一存储器模块与至少所述多个节点中的一个通讯;其中,每一个信号线 路包括至少一个信号接收器或信号发送器;其中,第一节点的第一线路传输第一信号,第二 节点的第一线路上接收的信号用来控制第二节点的第二线路的将来时间的功率状态。每个节点都是可配置的,以使控制数据可以控制所述节点接收的数据的目的地。 数据的目的地从本地节点或者端口中选择。另一方面,还提供了一种互连系统,包括多个节点,每一个节点具有一个端口,每 一个端口具有输出链路或是输入链路中的一个,每一个链路进一步包括多条线路,且所述 每个节点都是可配置的,以使在所述多条线中的一条选择的线路上接收到控制信号。可以 在相同或者不同的线路上接收控制数据和信号数据。所述信号数据可以是模拟数据或者数 字数据。所述数字数据被组织成字。在这里,字只是一种泛指,除了特殊情况外,不限制字 的比特数,其传输的形式是串行或是并行的也不受限制。因此,一些字可以是例如,“半位元 组(nibble) ”,“字节”,全字、双字,具有或不具奇偶的字,及可以是具有非标准数目的比特 的字。另一方面,还提供了一种互连系统,包括多个节点,每一个节点具有一个端口,每 一个端口具有输出链路或是输入链路中的一个,每一个链路进一步包括第一线路和第二线 路,第二节点的第一线路上接收的信号用来控制第二节点的第二线路的将来时间的功率状 态。所述状态在开电或关电状态中变化。在开电状态下至少可进行控制或者数据信号的传 送或接收,待机状态比开电状态的功耗小,关电状态比待机状态的功耗小。在再一方面,提供了一种互连系统,包括多条信号线路,每条线路可以进行传送 或接收数据信号中的至少一个,该信号包括一字中的一个比特,其中,所述数据字有第一比 特和第二比特,第一比特和第二比特中的每个均可在两条信号线路之间进行逻辑交换,以 使当所述字在信号线路的远端被接收到时,所述交换可以改变第一比特和第二比特之间的 差分时间延迟(differential timedelay)。比特的交换,可以在信号线路的最近端或者最 远端完成。随后,可在远端逻辑上重新安排字节中的各比特的位置,使得接收节点的字中的 各数据比特具有正确的逻辑排布。可选地,比特在发送节点被安排,以使在接收节点上该些 比特处于布置中。另一方面,提供一种互连系统,包括多个节点,所述多个节点通过具有线路的链路相互连接形成网络;其中,第一节点是数据源,第二节点是数据目的地,至少有一个第一 节点或第二节点被配置成交换到线路的数据的逻辑排布,以使在第二节点线路上数据字节 的到达时间的差可被改变。所述数据可以是一个包含至少两个比特的字,其第一个比特被指派给第一线路, 第二比特指派给第二线路。一控制模块,对所述输入第一节点的线路的字的比特进行逻辑 排布,以使得这些比特第二节点被以预期的顺序接收。可选择地,还可以在第一节点和第二 节点之间的第三节点上实现所述逻辑配置。另一方面,提供了一种互连系统,包括多个节点,所述多个节点通过具有线路的链 路相互连接形成网络;第一节点为信号源,第二节点为信号目的地;及用于减少在第一节 点和第二节点之间的两条或多条线路上信号的差分时间延迟的装置。提供了一种节点,所述节点具有输入端口及输出端口,每一个输入端口和输出端 口具有多条线路;切换开关,用于使多条输入线路中的每一条可连接到多条输出线路中的 每一条,以在具有与来自输出端口的线路的远端通讯的输入端口进行测量时,使该多条输 出线路上信号之间的时间歪斜被改变。提供一种存储器模块,包括读写存储单元;可配置的切换开关元件(CSE, configurable switching element),所述元件进一步包括用于接收或传输信号中至少一 种的第一端口,所述第一端口具有多条信号线路;其中,CSE被配置成解析接收到的信号以 实现下述中的至少一种改变信号线路中一条线路的将来时间的状态,及路由接收到的信 号到读写存储设备或第二端口中的一个。每个信号线路状态可以是开电、关电或者待机。另一方面,所述将来时间的值为由控制信号决定的或为一个可配置的值,也可能 是为每条线路所分别确定的。另一方面,存储器模块的CSE是可配置的,以使由接收信号线路接收的数据的逻 辑排布和由传输信号线路传输的数据的逻辑排布是可以改变的。所述存储器模块CSE是可配置的,以使第一、第二或是第三端口上的信号线路接 收到的信号可以在上述三个端口上的至少一路线路上传输。传输和接收信号线路可以是单 向线路、双向线路或者可逆的线路。在进一步的一方面,在一个固定时间间隔内,数据信号,控制信号或者同步信号中 的至少一个在连接到CSE上或存储器模块的链路中的每条线路上传输。所述固定时间间隔 可以被确定,以使数据沿跟踪,时钟,时钟相位,或者或帧同步中至少一个被维持。提供了一种存储器模块,具有用于存储数据的装置;用于控制一个或多个输入或 输出接口的将来时间状态的装置;以及用于路由数据到输出接口或用于所述存储数据的装 置中至少一个的装置。在另一方面,该存储器模块具有一个用于为信号交换逻辑和物理接口的排布的装 置,以使在第二存储器模块的输入接口上测量时,该第一存储器模块的输出接口上逻辑信 号之间的差分时间延迟被改变。在另外一个方面,该用于为信号交换逻辑和物理接口的排 布,以使第一存储器模块的输出接口上逻辑信号之间的差分时间延迟被改变的装置包括但 不限于,在模块上的电路线迹的固定排布,所述模块的安装板,芯片封装底层,连接,作为他 们物理上的或者邻近的,所述装置独自处在多芯片模块的芯片之间或者与其他固定或动态 的装置相结合。
另一方面,用于交换逻辑和物理接口上的信号的数据分配,以使在逻辑信号之间 的差分时间延迟被改变的装置包括通过CES和其他置于两个或者更多CES之间切换元件 完成动态切换功能。所述切换元件包括数字开关,模拟/RF开关元件,如微型机电系统装置 一类的机械开关,可以配置的邻近通信设备(proximity communications devices)或者其 他类似的设备等等,所述切换元件可以是独立的,也可以是和其他动态或者固定装置相结合。提供了 一种可配置开关元件(CSE),具有至少两条信号线路,所述第一信号线路 配置为接收控制信号,第二信号线路处于可配置的状态。所述第二信号线路的状态可以是 开电,关电或者待机状态。所述第一信号线路接收的控制信号用于控制第二信号线路的状 态。其中,至少一条信号线路用于接收地址数据,其他信号线路上接收到的数据被发送到其 他的信号线路上或者存储接口中的至少一个。所述存储接口连接到一个用于存储数据的装 置。另一方面,可配置的开关元件包括第一接口,用于接收或者传输信号中至少一个, 所述第一接口具有多条信号线路,且所述CSE配置用来解释接收到的控制信号以完成如下 性能基于接收到的控制信号改变多条信号线路中至少一条的状态,或路由接收到的信号 到其他接口,所述其他接口可以是存储接口,第二接口用于接收或者传输信号,或者传输第 一接口的信号。所述多条信号线路的状态是开电,关电,或者待机状态。另一方面,CSE是可配置的,以实现在接收信号线路上的数据的逻辑排布和到传输 信号线路上的数据的逻辑排布之间的逻辑数据交换。这里还有可配置的第三接口,使在任 何第一、第二或第三端口的任何信号线路上接收的信号都可以在任何第一、第二或第三端 口的任何信号线路上传输。。提供了一种可配置的开关元件(CSE),具有用于控制一个或多个输入或输出接口 的将来时间状态的装置;及用于路由数据至所述输出接口或至一用于存储数据的装置的装置。另一方面,所述可配置开关元件具有,用于为信号交换逻辑和物理接口数据排布 的装置,以在一第二 CSE上的第二接口上进行测量时,该在第一输出接口和第二输出接口 上的信号之间的差分时间延迟被改变。具有顶端和底端的连接接口,所述接口包括多条信号线路形成第一、第二和第三 链路关系;由一个或多个第一、第二或第三链路与所述连接接口相连形成的网络,其中,至少 采用下述中两种配置方式通过线迹连接所述连接接口(a)布置第一至第三链路,使得所有的链路远离第一侧的连接接口 ;(b)布置第一至第三链路,使得一链路具有一条线路离顶端最近,而远离连接接口 的第一侧,另外两条链路远离连接接口的第二侧,且所述远离连接接口的第二侧的链路邻 近布置;(c)布置第一至第三链路,使得一链路具有一条线路离底端最近,而远离连接接口 的第二侧,另外两条链路远离连接接口的第一侧,且所述远离连接接口第一侧的链路邻近 布置;d)布置第一至第三链路,使得一链路具有一条线路离顶端最近,及一链路具有一条线路离底端最近而远离连接接口的第一侧,以及一链路具有一条线路位于之前所述两个 链路之间而远离连接接口的第二侧;以及(e),(f),(g),和(h),在此,(e),(f),(g)和(h)为(a),(b),(c),和(d),不同之 处在于,其中,通过绕与所述连接器垂直的轴将(a),(b),(c)和(d)的图案旋转180度而使 顶端和底端相互交换。另一方面,链路布置在平面印刷集成电路板上,或者所述链路布置为底层的各层 上的导电金属。其他组件,如存储器装置,CSE和其他主动或被动的电路,可被置于相同的 底层或者配线上。 另一方面,至少有三个连接器接口彼此并行布置。提供一种布局网络间互相连接的方法,包括布置多个连接接口,使得连接接口的 顶端彼此相对,连接接口的底端彼此相对;在多个连接接口之间形成一个连接的网络,并至 少使用下述连接接口配置方法中的两种(a)布置第一至第三链路,使得所有的链路远离第一侧的连接接口 ;(b)布置第一至第三链路,使得一链路具有一条线路离顶端最近,而远离连接接口 的第一侧面,另外两路链路远离连接接口的第二侧,且所述远离连接接口的第二侧的链路 邻近布置;(c)布置第一至第三链路,使得一链路具有一条线路离底端最近,而远离连接接口 的第二侧面,另外两条链路远离连接接口的第一侧,且所述远离连接接口第一侧的链路邻 近布置;(d)布置第一至第三链路,使得一链路具有有一条线路离顶端最近,及一链路具有 一条线路离底端最近而远离连接接口的第一侧,以及一链路具有一条线路位于上述两条链 路之间而远离连接接口的第二侧;以及(e),(f),(g),和(h),此处,(e),(f),(g)和(h)为(a),(b),(c),和(d),不同之 处在于,其中,通过绕与所述连接器垂直的轴将(a),(b),(c)和(d)的图案旋转180度而使 顶端和底端相互交换。提供一种网络控制器,具有与计算机通信的第一接口 ;具有用于与节点通信的 链路的第二接口 ;用于确定布置在第一和第二节点之间的链路的线路上的信号之间的差分 时间延迟的装置。在另一方面,该网络控制器可具有一个用于用于指派逻辑信号给在第一和第二节 点之间通信的线路,以改变在第二节点上接收到的逻辑信号的延迟时间的装置。本发明一种网络控制器,包括计算机接口 ;第一数据接口,可以传送和接收信 号;处理器,用于产生由第一数据接口传送的地址信号,所述处理器还可以为信号线路的逻 辑上指定数据值,使得至少两个信号线路上的时间延迟差在接收器端接收到信号时可以被 改变。
从以下几个比较详细实施例的描述,以及附图,可以更好的理解本发明。但是,所 述实施例和附图,不能将本发明限制在所述具体的描述中,仅用于帮助理解本发明。图1是一个网络中互连元件的示意图,目的在于介绍本发明所使用的术语和符
8号;图2是可配置开关元件(CSE)接口的示意图;图3是具有一个以上次级端口的CSE的配置示意图;图4是在网络中与一个以上模块控制器相连的CSE的配置示意图;图5是由8个包含CSE的存储器模块组成的树结构示意图;图6是由8个存储器模块组成的二叉树结构的示意图;图7是由8个存储器模块组成的二叉树结构的另一实例示意图;图8是由9个存储器模块组成的三叉树结构的示意图;图9是由8个存储器模块组成二叉树结构的另一种实例示意图;(其中MO的子模 块同时与MO和MC相连)图10是由8个存储器模块组成二叉树结构及附加设备(如图形处理器)的示意 图;图lla-f是与INTEL公司的FB-DI匪相似的存储系统的工作方式的示意图;图12a_f是具有CSE的存储器模块的一种排布图;图13a_f是在模块间具有独立的命令和数据线路的存储器模块的一种排布图;图14a_f是在模块间具有独立的命令和数据线路的存储器模块的另一种排布图;图15a_f是从模块控制器(MC)到模块Mi的读命令的传输过程的示意图;图16是具有点对点链路的树结构中模块控制器和模块的排布图;图17a_d是与图16类似的具有独立的命令信号链路的排布图;图18示出了用于使用地址指示器来实现其路由的命令的实例;图19是切换开关S的过程图,其从一个或多个输出端口传送NOP命令;图20是一种链路为信道化的模块树结构图;图21是另一种链路为信道化的模块树结构图;图22是数据传输的一种程式化表示的示意图;图23a_d是多数链路处于低功率状态的配置图;图24a_d是与图23类似同时链路可处于更低功率的配置图;图25是具有本地命令扩展表的配置图;图26a_b是从Sl的输入到树的叶子节点的控制流向的示意图;图27a_b是可选用的自路由消息的配置图;图28a_b是适用于可去除头比特的消息格式的示意图;图29a_b是从诸如模块控制器向其他设备传输数据的一个简单实例的示意图;图30是用于克服歪斜的一种方法和设备的示意图;图31是在去歪斜后插入的多路输出选择器的示意图;图32是在INTEL的先进存储缓存器(AMB)中引起数据歪斜的原因的示意图;图33a_b是可减小信号歪斜的信号路由的一种配置图;图34是在5个模块中传输形成数据歪斜的示意图;图35是用于减少线路之间的延迟时间差的设备和方法的示意图;图36a_b是模块对之间的延迟差别较大时的例子的示意37是将线路3和4作为信号信道时的例子的示意图38a-c是一种在线路间交换数据元件的模式的示意图;图39是一种Batcher网络实例图;图40是另一种Batcher网络(a_c)和Clo网络(d)的实例图;图41a_b是一种Benes网络和具有一个8条线路配置的实例图;图42是一种部分线路中使用全交换的线路交换的实例图;图43是模块中两条数据通路的合并的示意图;图44是具有相位校准的时钟数据恢复(CDR)电路的示意图;图45是在图44的基础在两条数据通路上分别加有去歪斜功能的实例图;图46a_b是在更详细的网络中的图45的排布图;图47是具有非临界数据通路的网络的方式示意图;图48是在8个模块组成的树结构的网络中携带逻辑比特0的线路的示意图;图49是在8个模块组成的同图48 —样的树结构的网络中携带逻辑比特N的线路 的示意图;图50是标识了在图49显示的排布中临界和非临界通路的示意图;图51是图49中的延迟的示意图;图52是额外的可变延迟的示意图;图53是在一个链路上的额外延迟的示意图;图54a_b是网络中加入延迟的等同的方法的示意图;图55是图46和49中所示的树结构的延迟的时间线的示意图;图56是表示在网络中的延迟的另一种方式的示意图;图57是在树中发送命令和接收响应的总的时间的示意图;图58a-c是相同模块可具有用于传输到及接收自存储控制器的不同路由情况的 示意图;图59是图48中的树结构包括外向和返回通路的示意图;图60a_b是具有与数据通路不相连的多信号通路的排布的示意图;图61a_c是从模块到模块控制器的数据传输的时序图;图62a_c是使用固定时隙从模块到模块控制器的数据传输的时序图;图63是另一个执行多命令时的时序实例图;图64是相对图62具有不同的延迟排程的一个实例图;图65a_c是相对图63具有不同的延迟安排的一个实例图;图66a_c是一种排程实例示意图,其中,移除了数据到时隙发送次数的限制;图67a_c是另一种排程实例示意图,其中,移除了数据到时隙发送次数的限制;图68是用于一种非时隙实例的时间选择示意图,其中,显示有信号延迟;图69a_c是用于另一种非时隙实例的时间选择示意图,其中,显示有信号延迟;图70是图68中具有不同的命令时间的示意图;图71是具有多命令的另一个时间矢量图;图72是以线性方式布局的与图5类似的树结构的示意图;图73是图72中在其模块上标注有“前侧”和“后侧”的排布图;图74a_d是一种可选择的模块的排布10
图75a_b是模块之间除主板之外的的连接的示意图;图76是图72中具有可选择的模块连接的排布图局部示意图;图77是图72中具有可选择的模块连接的排布图局部示意图;图78是用于图77的排布中的模块连接的另一例子的示意图;图79是各链路之间具有不同宽度的模块的排布图;图80是模块组的网格结构图;图81a_b是模块组的六边形网格结构图;图82是由六边形网格组成的六边形网络结构图;图83是网格配置中的模块与处理器相连的示意图;图84是处理器与具有两个根节点的树相连的配置图;图85a_b是模块与多处理器相连的另外实例的示意图;图86a_b是模块与多处理器相连的另一实施示意图;图87是将控制和数据总线扩展到共享的存储区域的示意图;图88是具有4个处理器和输入/输出设备的模块组成的网格图;图89是图88的配置中I/O模块被其他的计算系统元件所代替的示意图;图90是可提供线性和/或树拓扑结构的连接和模块的排布图;图91是图90的排布用于线性结构的示意图;图92是图90的排布用于树结构的示意图;图93a_b是布置在模块上的CSE和RAM的排布图;图94是具有独立的数据和控制线路的CSE和RAM芯片的排布图;图95是叶子模块相对于剩余的树结构的物理配置图;图96是叶子模块的另一种物理配置图;图97是具有双向链路的模块的排布图;图98是具有高速缓存的模块的排布图;图99是CSE与互连系统相桥接的示意图;图100是按物理上线性排布的模块二叉树示意图;图101是用于图100的树结构的可选的连接排布示意图;图102是一个多根节点树结构的排布图;图103是模块间连接的俯视图(a)和正视图(b);图104是具有冗余结构的多根节点树的一种排布图;图105是具有冗余结构的多根节点树的另一种排布图;图106是当图105所示的树中出现模块故障时对树进行重配置后的排布图;图107是具有4组每组16个模块的模块组的排布图;图108是用于在模块之间具有隔离栅的模块组的排布的空气流排布图;图109是用于模块组的排布的空气流向排布图,以可以控制温度的变化;图110是散热元件的另外排布图;图111是模块间具有由线路组成的链路的双根节点树的配置图;图112是现有设计中在连接的主板上的线迹的布局图;图113是在连接器旋转了 30°后的主板上的线迹的布局图114是对于图113的连接器排布中一组以上具有最小弯曲的线路的示意图;图115是图113的具有连接器定位的主板的大比例的布局图;图116是将82个模块配置为64个具有RAID错误修正的存储器模块及2个空闲 模块的逻辑排布图;图117是对于图116排布中的物理板布局图;图118是具有两个根节点的82个模块组成的树的结构图;图119是图118中所示树的局部的物理板布局图;图120a_d是图119中所示的线路和多层电路板的各层之间的关系示意图;图121是对于82个模块排布的另一个树的逻辑图;图122是图121中所示的逻辑树的物理布局图;图123是对于82个模块排布的再一个树的逻辑图;图124是图123中所示的逻辑树的物理布局图;图125是可用于布局物理板排布的单个模块的连接器路由的物理特性的示意图。
具体实施例方式参考附图可以更好的理解本具体实施例,但是这些具体实施例不应作为对本发明 的限制。在相同或不同附图中相同或相似的标注代表同一部件。部件可用数字或/和字母 缩写标注,选择不同的表示方法仅仅是为了使表示清楚,因此,用数字标注的部件与相同的 使用字母标注或字母与数字的组合标注的部件不应理解为不同的部件。需要说明的是,所描述的方法和附图中的装置可以由可执行的指令进行配置或具 体实现(其具体方式可为软件、硬件、或软件与硬件的结合)。所述指令可以用普通用途计 算机、特殊用途处理器,如如数字信号处理器(digital signalprocessor,DSP)或阵列处理 器、或其他类似可使用指令编程以完成各种操作的装置实现。可选择的,上述各种操作可以 由特殊的硬件组件来实现,所述硬件组件包含有用于执行所描述的操作硬件逻辑或固件指 令,也可以由任何可编程组件和客户端硬件组件的组合来实现,上述组合中可包括模拟电 路。本发明具体实施例中提供的方法可以(至少部分可以)由计算机编程产品实现, 上述产品包括机器可读媒介,在该媒介上存储了在计算机(或其他电子设备)上运行即可 实现上述方法的指令。从这方面考虑,“机器可读媒介”应包括可保存或编码一系列指令或 数据的媒介,该指令或数据可在计算机或特殊用途的硬件上执行以实现本发明实施例中所 描述的所有方法或功能。“机器可读媒介”还应包括固态存储器、光盘、磁盘、磁介质存储器、 光存储器、和载波信号,但并不局限于上述媒介。同时,上述可由计算机实现,但也不排除由 人工来实现。举例来说,机器可读媒介可包括只读存储器(read-only memory, ROM);所有 类型的随机存储器(random access memory, RAM),如S-RAM、D-RAM ;可编程只读存储 器(programmable read only memory, PROM);电可擦除只读存储器(electronically alterable read only memory,EPR0M);磁随机存储器;磁盘存储介质;闪存;电、光、声或其 他形式的可传播信号(如,载波、红外信号、或数字信号)。但上述机器可读媒介不局限于上 述的各种具体形式。
此外,在本领域中,术语“软件”也可以有其他的称呼,如程序、进程、过程、应用、模 块、算法或逻辑等,其描述了执行某一动作或产生某一结果的行为。本领域普通技术人员可 知,上述表达方法仅仅是为了方便描述软件在计算机或类似器件上的执行,这种执行使得 计算机或类似设备完成一个动作或产生一个产品或是结果。当描述某一具体例子时,在该例子中可能包括特定的特征或结构,但不是每个例 子中都包括特定的特征或结构。但这并不意味着两个或多个例子中的特征或结构必然或可 能不能相互结合,除非在文中已明确说明排除了这种结合。对于在文中将某特定的特征或 结构与某一例子相互联系时,本领域普通技术人员可以容易的将所述特征或结构与其他有 或没有明确描述这种联系的例子相互联系起来,并获得某些效果。本具体实施例中所述的连接器或连接器接口(如存储器模块连接器接口),并不 局限于物理上分开的接口(如公连接器或接口啮合与母连接器或接口啮合)。连接器接口 还包括任何物理形式的接口或连接,例如来自存储器模块的接口其导线、焊球或连接均可 焊接到电路板上。例如,在叠式冲模上,多个集成电路冲模逐层堆叠(如存储设备及缓存设 备),其底层形成基底,则该冲模与存储控制器或处理器通过一个球栅阵列类型的连接器接 口相接。又例如,存储设备和缓存可能经由柔性带状互连和接口与存储控制器通过一个球 栅阵列类型的连接器接口或是物理上可分开的接插件类型的连接器接口相互接。连接类型 还包括集成电路片和基底上互连的导体、基底、印刷电路板、或其他类似物之间的接口。存储模块可包括存储器,还可具有控制存储器的控制器、可配置的开关元件 (configurable switching element,CSE)和其他用于处理、传送或接收信号的电路。当然, 存储模块也可能只包括存储器,其他的单个或多个部件可能分开安装。除非是特别指明,特 定模块的功能的布置是为了讨论的方便,本领域的普通技术人员可知可以有多种等价的方 式对实际的物理和计算机的各方面进行安排。“总线”或“链路”表示单条信号线路或多个信号线路,其中每一线路有一个或多个 用于“传输”(发送、接收或两者)的连接点。每一个连接点可连接或耦合到一个传输接收 器(如,传送器_接收器)或一个单独的传送器或接收器电路上。。其连接或耦合形式可以 是电的、光的、磁的、量子缠结的、或其他类似的形式。使用相同或类似的方法形成的其他的 电连接可用来满足如能源、接地、辅助信号和控制、或类似的其他附加系统的需求。有时也 会描述这些附加的连接以使整个例子的描述更加清楚。这些附加的连接对于本领域普通技 术人来说是显而易见的,即使在具体实施例中没有这些连接的描述也不应认为在该实施例 中没有这样的连接。一个链路在信号线路上传输信号。信号可分成如下类型时钟和控制信号、地址信 号、命令信号和数据信号。数据信号携带从存储设备或接口中存储或取得的数据。地址信 号指明数据要读取或写入的在存储设备或系统中的位置或是位置范围,同时,地址信号需 要选择要访问哪个或哪组存储设备或接口。命令信号指明存储设备或接口需要完成的操作 类型,如,读出、写入、刷新、也可能是要使用哪几种访问模式(如脉冲或广播模式)传输数 据。时钟和控制信号用于对在控制器和存储器之间传送的其他信号进行同步。尽管链路可 以使用不同的信号线路传送不同的信号(如,在一个时钟周期内用32路地址线路传送32 位地址,在一个时钟周期内用32路数据线路传送32位数据),亦存在各种设计来复用一个 或多个信号线路用于不同的信号,也存在各种设计来复用一个或多个信号线路用于在一个
13存储事务中的不同时钟周期内传输命令信号、控制信号、地址信号和数据信号。需要注意的是,当讨论连接至接口或端口的线路时,为了方便起见通常会描述该 线路是活动、被上电的或关电的、处于待机模式的、或类似的。上述描述是指在接口处与节 点的端口的连接状态。线路本身可能只是用于提供节点间的连接的电路板上的金属导线或 类似物。树结构中的节点的数字标注经常使用“幅度第一”方法,该方法是指自根节点开 始,首先命名同一层的所有节点再命名下一层的节点。这个标注原则仅仅是为了方便。在 实际中也可以使用不同的数字标注方法,或者同时使用两种或多种标注方法。在信号领域 中,“端口 0,端口 1,等等”这样的标注通常意味着这些端口之间是有关的而不是相互独立的 端口。通常,“南向”、“下行”、“次级”是指远离模块控制器或根节点的方向,而“北向”、“上 行”、“初级”是指靠近模块控制器或根节点的方向。当有多个模块控制器或根节点时,可对 各模块控制器和根节点同时进行操作。如图1所示,为本发明的具体实施例中的一些符号和术语的意思的示意图。这是 为了描述和理解起来更方便、清楚和简明,包括其他在本发明具体实施例中将要用到的类 似的术语都是本领域普通技术人员所公知的。在本具体实施例的以下描述中除非特别的规 定还将用到此处提出的术语。但是,上述说明不代表要排除或区别类似的已被认可的术语 或是可能将要使用的表示相同概念的术语的使用。模块控制器MC 10 (其可能是独立的模块控制器或存储控制器,也可能是其他器 件中的接口或电路,其中上述其他器件可能是中央处理单元(centralprocessing unit, CPU)、数字信号处理器(digital signal processor,DSP)、微处理器、图形协处理器,桥 接芯片、或其他可用来与互连系统相接的类似器件,上述具体器件都没有在附图中显示) 的功能可能由一个器件完成,也可能由一个以上的器件完成。上述控制器与一组模块 M#20 (或其他计算机系统器件,如接口、其他处理器、存储器,或类似器件)通过点对点链路 相连。上述术语“模块”或“存储器模块”也可以用来代表其他包括接口和处理器在内的计 算机系统组件。如图1中所示,存在一或多个多支路总线用于控制和信号线路;同时还存在一个 或多个全局时钟信号,该信号线路和数据线路有可能是单向的,也可能双向的。在MC 10和 M#(M0,M1,M2,M3)之间以及从一个模块到另外模块的的链路可同时包括数据和控制/信号 线路。这些链路可以有很多不同的配置方法,图1中为一些可能使用的配置方法。以下介绍图中的各个线路组中的具体线路L0包括分开的数据线路30和控制线路40,其中,每一路分别是具有相同宽度的 北向或南向的单向线路;L1包括分开的具有相同宽度的北向或南向的单向数据线路30a、30b,以及从Ml 到M0的北向控制线路40a,从MC到Ml的南向控制线路40b,从Ml到MC的北向数据线路 30c ;L2包括在Ml和M2之间的北向和南向的双向数据线路30d和控制线路40c,以及 单独的在Ml和M2之间的双向控制线路40d,从Ml到M3的北向的控制线路40e ;L3包括从M3到M2的组合的北向数据线路30e和控制线路40f,在MC和M3之间 的双向控制线路40g,从M2到M3的南向数据线路30f和北向数据线路30g。
跳过邻接模块的控制线路传输控制信号时会比依次顺序经过经过每个模块传输 控制信号具有更短的延迟时间,如从MC到Ml (40b)、M1到M3(40e),数据线路的情况也类似, 如从Ml到MC(30c)。图中标有“数据”、“控制信号”、“时钟信号”的线路“主要”仅为数据或 控制线路,这些线路也可能用来传输其他类型的信号。比如,标有数据的线路可能传输控制 信号,数据信号可能在控制信号线路上传输。如上所述,数据和控制线路这种说法是逻辑上 或物理上依赖于其具体传输内容的。由时钟产生电路产生的时钟信号可能直接分别发送至不同的组件和模块,该时钟 信号的传输使用单向的时钟线路或是连接在两个或多个模块之间的不同的时钟。高速时钟 信号也可以与数据或控制信号组合在一起。如图2 所示,为可配置的开关元件(Configurable Switching Element,CSE) 15 的 一个具体实施例,所述CSE 15可以有一个以上次级或下行端口。CSE可用于与存储器或其 他器件通讯;上述存储器或其他器件可以与CSE位于主板上相同的物理模块内,也可与CSE 分别处于不同模块上,也可以在其他地方。两端带有箭头的链路表示双向的数据通路,该通 路可能是分开的单向链路,或是双向链路,或是逻辑上的双向链路(如由两个单向连接通 过环状模式形成的逻辑上的双向链路)。链路可以为串行或并行配置,或是串并行的组合, 其方向可以是单向的或是其他的形式。CSE可具有不受限制的将任何输入端口和任何输出端口相连接的能力。为了方便 逻辑上的描述,在以下的描述中,可将端口看成北向或南向的,当然,这样的描述不应作为 对CSE的端口之间通讯能力的限制。比如,在一个CSE中北向端口可以和南向端口通讯,而 在有多根节点树结构连接中南向端口也可以作为北向端口工作。当然,对于某一特定配置, 不需要同时实现端口的上述所有功能。如图3所示,为本发明中CSE 15的另一具体实施例。所述CSE可以有不止一个次 级或下行端口,也可以有不止一个上行或初级端口。此外,所述CSE可以有一个或多个内部 存储器以补充或替代外部存储器,而CSE可以与除了存储器模块或存储系统以外的器件进 行外部连接,上述器件包括输入输出设备、协处理器以及类似器件。如图所示,CSE可以有 多个次级端口,这样CSE可以实现将信号分离成一路以上的通路的功能。此处CSE也可以 作为具有南向和北向端口组的转发器。此处使用术语“内部”和“外部”表示不同的存储器 时,仅仅是为了描述上的方便,不应作为一种对上述器件的限制。在微处理器或特殊功能硬 件中越来越多的使用了存储电路,内部和外部这样的术语的使用是为了帮助读者更好的理 解本发明中的具体实施例。本领域的普通技术人员能够理解,电路的组合或分离、可拆成不 同的物理组件的能力(如可以被集成为相同的封装或设置在相同的底层上,及类似的)均 是由具体的应用和相关的技术状态所决定的。如图4所示,为CSE的另一具体实施例,其中,在一个系统中该CSE可以与不止一 个模块控制器连接,并且没有数据或控制流的“上行”或“下行”方向的区别。CSE可有多 种不同的内部处理功能(或者内部结合有或与具有不同处理功能的器件进行协作操作、), 所述器件如,微处理器、直接存取存储器(direct-memory access,DMA)、作为模块控制器用 于控制其他CSE的CSE,同时,CSE还与除存储系统以外的外部设备相连,如输入输出(I/O) 设备、微处理器(microprocessors,uP),图形处理器(graphics processors,GPU),协处理 器、其他CSE等。术语“初级”和“次级”的使用是为了描述的方便。当CSE中包含微处理器(或处于微处理器之间,或与微处理器耦接)时,这种CSE可以作为处理单元也可以作为切 换开关使用。如图5所示,为由6个存储器模块组成的树形结构,上述存储器模块中包含有与存 储器关联的CSE,在根节点具有一个存储控制器MC。为了方便起见,图中没有明确标示出 CSE,包含在存储器模块M#中的CSE标识为CSE#。存储器模块可能同时包含存储器和CSE ; 当然,也有仅包含CSE的存储器模块。在本配置中,存储器模块M0与Ml和M2相连,而Ml 与M3相连,M3的下一级连接到M7。在这种连接方式中,最远端的模块的跳点数为4 (M0- > Ml- > M3- > M7),如果8个存储器模块以线性连接或菊花链方式排列,则最大跳点数为8。 一个跳点是指网络中连接两个连续节点的链路或线路。当讨论网络的节点间的信号传输的 时间延迟或时差时,可使用跳点作为描述符。如图6所示,图中8个存储器模块连接成二叉树形结构,可将模块排布在PC主板 上,并使得模块在物理上成线性排列。需要注意的是,其中一些链路,如M0和Ml之间、M2 和M6之间的链路穿过中间模块M4和M5,但并没有与M4和M5连接。当链路穿过一个模块 但未与其连接时,在图中将链路穿过该模块的部分表示成阴影来指明这种链路的情况。如 图6中所示的排布方法表明,诸如存储器模块或其他模块的大量的树形结构的各元件可以 以有组织的形式(如物理上成线性排列的结构)排布在电路板上或以插入式的方法将模块 排布在主板上。上述排布方法有利于主板的布局,或有利于模块的冷却。当主板的尺寸由 于其他原因(如主板所在的设备的尺寸)受到限制时,线性和非线性排布方法的组合也可 以有效的用于在主板上排布模块。主板可用于通过替换出现故障的存储器模块来帮助存储系统的修复。是否需要主 板取决于存储器模块的故障率、平均修复时间(mean-time-to-r印air,MTTR)的分析、不可 复原的数据丢失的概率、和其他各种因素。在本发明实施例中,有许多描述元件如何构成二叉树结构例子,但这些例子不应 作为对连接的各种拓扑结构的限制。在例子中还有超过一个的入口节点或“根节点”的树结 构,而且其中命令和数据信号会沿着非“树”形通路传输,如沿着环形结构传输。在树结构 的例子中对各种情况的描述可以更加清晰,并且可以使如对信号路的反转之类的描述更简 洁。但是这并不意味着排除其他的解决方案,如使用冲突解决、队列、存储和转送技术。对 于其他网络结构来说,上述排布方法也是可以适用的。此外,可以采用并行方式对多个独立 的存储控制器进行使用和控制。需要理解的是,当在图中出现一定数目的存储器模块,讨论一定数目的存储器模 块时,并不意味着用图示方法连接的存储器模块或其他的器件必须限定为上述数目,在图 中使用某一特定的数目的元件仅仅是为了方便描述和作图。如图7所示,为一个由6个存储器模块连接而成的二叉树排布示意图,这种排布方 式可以以非线性的形式在PC板上实现。这种排布方法在基于某一特定设计的物理要求时 可能是方便的。如图8所示,为一个由7个存储器模块连接而成的三叉树排布的示意图,该排布方 式可以以非线性的形式在PC板上实现。如图所示,使用具有两个以上次级端口的CSE可以 使系统实现三叉树结构,当然,并不需要将树的所有可能存在的节点都与设备连接。为了简单起见,下述的例子都只讨论二叉树结构,但是还可以有三叉树(如图8所示),四叉树,甚至更高分叉的树的结构。术语“树”可表示包括有任意分叉的树。当使用术 语“树”时,如无特殊说明,也不排除树结构中的部分或全部模块使用线形或菊花链的排布, 同时,术语“二叉树”表示的是有两个或两个以上分叉的树的结构。如前面所提及的,在例 子中的树的用途并不意味着要将所涉及的器件或方法仅仅限制于这些例子中的用途,所述 的器件或方法可以普遍的适用于各种网络中。如图9所示,为一个由8个存储器模块连接而成的二叉树的排布示意图,该排布可 以以非线性的方法布置在PC板上,其中存储控制器MC还同时与树的第二层的模块(即Ml 和M2)相连。这种排布方法可以减少MC和存储器模块之间的通讯反应时间,同时还可以将 原来需要通过M0传输的信号通过其他模块传输来降低M0的功耗。这样的结构由于在透过 由MC到树的第二层(Ml和M2)以及由MC到第一层(M0)的连接链路或线路上发布命令、接 收响应、发出和接收数据,从而便利地增加了网络的吞吐量。如图10所示,为由8个存储器模块连接组成的二叉树结构的排布示意图,该排布 可以以非线性的方法配置在PC板上,其中该二叉树中的模块还与其他器件或模块相连,如 M4与图形处理器(GPU)相连、M5与网络I/O设备相连。上述其他器件或模块还可分别地与 内部或外部存储器(GM、NM)相连,上述存储器可各自被直接访问,也可被MC通过这些模块 上的CSE进行访问。通过提供到与GPU相连的存储器模块GM的直接访问通路,并允许对GM 进行互不冲突的多路访问,也可进一步提高网络的吞吐量。作为对比,如图11a到llf所示,为类似INTEL公司开发的一种存储系统,该系统 为全缓冲的双列直插内存模块(fully-buffered Dual Inline MemoryModule,FB-DIMM) % 统。以下是基于INTEL公司公开发表的该系统的说明文件对该系统做出的描述;但是该系 统的细节部分INTEL公司并未公布,因此,不保证图11中的INTEL公司生产的器件在INTEL 公司生产的存储器系统中是确实如本文所述般工作。为了便于作为一个比较的基准,图 11中描述的分布是预期的。在每一个存储器模块m 200中都包括一个设备,其接口特征与 INTEL公司已公布的用于其高级存储缓冲器(advanced memory buffer, AMB)中的接口特 征相同。为了简化对其功能的描述,此处所用的读命令和其响应的表示方法与INTEL公司 所使用的表示方法不同。例如,在INTEL的AMB中,“读”命令包括几条消息,而此处则表示 为一条消息。另外,AMB可以将一个单独的包含命令的“帧”发送给一个以上的AMB,举例来 说,对于一些命令,包含这些命令的“帧”当其在存储控制器mc 300和存储器模块mk之间 传输时并不只被某一特定的模块接收,其中每一个存储器模块都有包含AMB。在图1 la中,存储控制器300将读命令作为一个地址Ai和一个读命令R进行发布, 并作为一个“信息包”发送至下行通路。在所给的例子中,数据的地址区在存储器模块mi 中。如图lib所示,信息包到达存储器模块mi 200i。在FB-DIMM系统中,信息包通过线性 链路重复地从一个模块快速传至下一个模块。因此,如图11c所示,即使读命令只要传到存 储器模块mi,但其信息包还是要进一步的传到存储器模块mk 200k。因此,包含读命令的每 一个信息包都要传到存储器模块200所链路的所有模块。存储器模块mi 200i的响应表明, 已从地址Ai处读取了数据并将数据比特或数据包通过上行通道回传(如图lid中所示,本 例中的数据比特为D0-D3)。为了方便,仅显示图中所示的数据比特的数目,实际传输的比特 可能比图中的多也可能比图中的少。如图lie和图llf所示,数据通过存储器模块m0后被
17存储控制器mc接收。被所有模块传送的读取数据包都经过了除了去歪斜,去连续化,或解 码操作之外的相同的处理。如图12a_12f所示,为对照图11中基线组成的线性方式的一系列存储器模块M# 的示意图;但是,图12中包括CSE的存储器模块可以“侦听”或读取包含在命令包中的地址, 即使该包并不计划发送给该特定的CSE或其相关的存储器。每一 CSE可以处于一其上行线 路为“降低的”功率调整的状态,用虚线表示。可降低的能量的对象和方法包括但不限于, 低功耗的I/O设备、I/O逻辑时钟的门控(或任何其他相关的可被停止的逻辑)、降低I/O 逻辑的时钟速率、降低I/O逻辑的电压、将当前输入装载到可降低漏电流的I/O逻辑的I/O 逻辑、或任何其他可用于降低芯片的任何部分的功耗的同时还可以撤销这种低功耗状态以 处理返回的数据的方法。在图12d-12f 中,上行链路在数据返回之前恢复正常状态(以下 称开电状态),当数据传输完成后又变成“降低的”功率状态。在本例中,控制信号在数据线路上以信息包的形式传输,当数据在线路上传输时 该线路处于开电状态。一方面,信息包在“帧”或“时隙”定时系统中传输,当每一个“帧”或 “时隙”计时开始时下行通路则处于开电状态,当有信息包需要发送时,发送方保持开电状 态并将包发送出去;否则,发送方保持关电状态直到下一个时隙时间开始,接收方将保持开 电直到确定信息包已经接收完成;如果没有信息包要接收,接收方保持关电状态直到下一 个时隙时间开始。如图12a所示,为MC 10发布对地址Ak的读命令R的情形示意图。在图12b中, 读信号R所在的数据包到达非预期的存储器模块Mi 20i,在图12c中,该数据包传到了存 储器模块Mk。Mk执行读命令R的结果是将数据D0-D3向上行通路传输(如图12d所示), 数据经过Mi (如图12e所示)后被存储控制器MC接收(如图12f所示)。按图12c到12f 的顺序,每一个连续的上行链路在该链路上要传输的数据到达之前转换到开电状态,而当 读取的数据D0-D3通过该链路后转换到关电状态。在现有的排列中,当控制信号和数据在 下行通路的数据线路上传输时,所述下行链路始终处于开电状态,当数据读取命令R信息包沿下行通路从M0到Mi再到Mk时,每一个存储器模块M 观察或“侦听”到该信息包,并获知目的地和该命令的种类在本例中,上述命令为从Mk中 的一个地址读取数据。这个读数据的业务被认为是沿上行通路从Mk到MC。因此,在模块 (该模块即为读命令的目的模块)和MC之间的每一个上行通路的链路将在一个合适的未来 时间处于开电状态(如图中从虚线到实线的转变)以传送该读取的数据,当该读取的数据 从该链路上传出时,该链路可被转换成一个低功耗状态或关掉。此外,当读数据命令R的传 送目的地不是链路中的最后一个模块时,仅有目的模块(如Mi)和MC之间的上行连接需要 在合适的未来时间转换成开电状态以降低功耗。如图13a_13f所示,为包括CSE的存储器模块M的示意图,其中各模块间有分开的 命令和数据线路。图中所示的信号和命令线路可能仅仅是数据线路的一部分,而不是专用 的信号线路。其中,下行线路和与之关联的逻辑电路的一部分处于降低的功率状态。当命 令控制信号通过每一个模块时,信号被解码,同时,如果需要的话,其他的下行线路转成开 电状态以传送跟随在数据包后的数据或命令。如图所示的情况为,读命令R发往存储器模 块Mi中的一个地址Ai,并且,所述读命令R和地址数据Ai在不同的线路上传输。地址数据 Ai表明目的地地址或地址范围是处于存储器模块Mi中的。因为,地址数据包Ai早于读命令R发送,因此,如图13a和13b中所示,地址数据包Ai比读命令R早到达每一个存储器模 块M#,同时,地址数据可用于使发送模块Mi和接收模块Mi+1之间链路转成开电状态为传送 和处理将要到达的命令信号做准备。与图12中的描述相似,当命令信号被接收后,下行命 令通路将重新恢复关电状态,作为命令的执行结果,上行链路将为传输读取的数据及时地 转成活动状态。因而,可以说线路的功耗状态在将来时间内是可改变的,这种改变是基于被CSE 接收的控制或命令信号、地址或数据信号而发生的。该将来时间的状态的改变的时间值可 能是由接收到的命令的特征、目的地的地址、网络中接收信号的CSE的相对位置、相似或衍 生出的信息决定的,也或是由CSE的部分或所有线路产生的。另一方面,如图13b和13c所示,命令信号可能被该命令的目的地模块(本例中为 Mi)改变,此时,无操作(可简称为“no op”)命令可通过下行线路发送至下行所有模块,并 表示在下一帧、时钟周期、或是可作为命令间间隔的时间片段内没有命令将会被发送至这 些模块。如本例中,在图13c中,没有出现读命令,而地址数据Ai则被目的地模块的下一级 模块Mk接收到。这样,Mi和Mk之间的下行命令线路不会被激活。图13d-f中的数据返回 情况如图12d-f中的类似,此处不再一一描述。存储器模块(实际上是存储器模块20中的CSE 15)可对通过它们的每一个地址 数据包进行解码,而不对命令包进行解码,因此当地址数据包和命令包作为信号向下一级 传送时,上述由于解码造成的额外的时间延迟,会使地址数据包和命令包之间的时间间隔 减少(考虑到,地址数据包先于命令包发送)。在地址包和命令包在同一数据线路上传输的 情况下,第一个包结束的后沿和第二个数据包结束的前沿的之间有一定时间间隔以解决对 第一个包的额外的处理造成的时间延迟对下一个包传输的影响。上述处理在某些情况下是 需要的,但并不表示该例子中的带宽会因此受到损失。在另一情况下,存储器模块在对地址数据进行下行传输的同时对其进行解码,这 样将不存在解码造成的时间延迟。在一些情况下,这将使得命令信号早于实际需要的时间 在线路上传输,但取决于实际的配置与该线路的另一端接收该命令有关的CSE可能并没有 被激活。如图14a_f中所示,为与图12和13类似的配置情况,但是在之前的例子中,相对 于当前模块目的地模块可以是上行的模块也可以是下行的模块。这使得每个模块需要将接 收到的地址与许多模块的地址进行比较,取决于寻址逻辑的复杂度,上述寻址过程需要几 个时钟周期。这个处理时间将增加MC传送地址和命令信号之间的时间间隔。通过修改目 的模块Mi接收的地址Ai,使Ai先于地址数据传送到下一级模块Mk,可以减少上述增加的 时间间隔,这样一个新的地址AX可作为地址和命令已经被适当的模块M解释的标记。AX可 以作为保留地址或其他相似的意思。这样,每一个模块只需要比较接收到的地址Ai和模块Mi本身的地址或地址范围 或保留地址即可,而不需要将地址Ai与系统中所有的模块的地址进行比较。在其他方面, 图14和图12及图13类似,细节此处不再一一描述。高速数据链路可使用时钟恢复机制来保持同步。如果在每单位时间内没有收到 足够的比特数,链路的时钟同步将丢失,将耗费一定的时间进行同步的恢复,这会降低吞吐 量,或是导致数据丢失而造成数据重传。为了保持同步,诸如FB-DIMM这样的系统将会周期性地传输包括这样的变换的同步帧(图中表示为“sync”)至所有的模块。然而,在拥有许多存储器模块的配置中,这样的同步帧将会传送至每一个模块,因 此会经过每一条线路,或是将多重同步帧传至树的不同叶子节点。如果由模块组成的树足 够大,上述保持时间同步的方法将占用系统的相当一部分的带宽,而由于需要进行时钟同 步往往会限制系统的规模和复杂度,除非对时钟进行刷新或采用其他办法保持时钟同步。解决上述问题的另一个方法是为每一个模块提供定时器,当有足够数目的传输发 生时该定时器可以记录已用的时间间隔,并在局部发起时钟重新同步化。计数器或看门狗 为上述定时器的一种例子。如图15,表示了从MC到模块M0传输读信号的过程。读信号R发送至所有模块, 而命令线路没有处于低功耗状态。在此情形下,当预定的时间间隔已经过去而线路上没有 被用于传输数据时,该模块开始数据的传输,模块发送“noop”数据包以继续保持该线路的 同步。如图15d所示,在一个帧时间内,M0确定不需要使用M0到Mi方向的链路发送信息 包,则使用该时机,可以为了保持模块Mi的接收同步在该链路的线路上传输变换信号。类 似的,当Mk确定在某该帧时间内不需要使用Mk到Mi方向的线路发送信息包时,可在该帧 时间内传送变换信号。进一步的,如果链路是半双工或全双工的,则该链路或其中线路可以转向,这样数 据可以在模块间通路上传输而不需高业务密度。这种方法取决于接收到的命令信息,以便 模块可以确定没有数据将来自其他的方向并在半双工链路上部分或全部的执行转向。如图 15e-f所示,模块Mi和Mk转变了 Mk到Mi方向(如图15e中所示)的链路,然后在图15f 中,Mi发送变换信号以保持Mk中的接收机同步。带箭头的线段表示各链路,而箭头方向表 示了当前数据流的方向,一个链路可能具有一个或多个传输数据、命令和地址数据的线路, 上述链路的方向可以反向,如在图15f和图15d中,Mi和Mk之间的链路就改变了方向。在 本描述中,传输方向可改变这种功能只是一种可能而不是必须的,这取决于在实际应用中 的需要。如图16所示,为一个模块控制器MC和模块M0,……,M6组成的树形结构示意图, 该树型结构具有点到点的链路。在上述树结构中,包含地址的数据包可向下一级发送,每一 个切换开关(如CSE)或模块(如存储器模块或其他与CSE相结合的模块)对地址和命令信 号解码及确定相应的数据或命令被定向到何处。然而,上述处理在下述步骤上需要消耗时 间接收信号,与目的地地址比较,确定将要进行的操作。当地址在先于命令或数据信号被 发送前的某一时间发送并使用了一系列的链路时,由于地址计算时需要进行数据处理,这 将减少地址和其后的数据之间在相邻两级传输时的时间间隔。上述过程使用的时间比仅仅 传输数据而不对其进行处理所用的时间长。并行执行数据处理功能(如将数据往不需要的 链路上发送)会额外增加复杂性。是否需要进行并行处理取决于整个网络所需要的带宽。另一个需要考虑的问题是每一个数据包里的数据比特的时间分散。在有许多链路 的情况下,数据的各比特可以在并行的信号线路上传输。上述情况可能只是实际情况的简 单描述,比如说,数据可以在并行线路上传输,每一条线路上可以以串行的方式传输一个以 上比特。由于线路长度和阻抗等其他因素的影响造成数据在线路上有差分延迟时间,因此, 对于需要实时处理的数据比特,该比特可能不能足够同步到达,而需要等待一个或多个时 钟周期直到模块接收到所有的比特,再进行解码或其他数据处理。该延迟还增加了每一个节点在处理地址或其他信息之前的必要时间段。在一些情况下,如仅当需要进行数据传输 时才将线路的状态转成开电状态的情况下,地址信息可能要比命令或数据明显早一段时间 发送。这将会降低系统的传输能力或带宽。图16与图12类似,但是图16中模块以树结构相连,图中只显示了相关的通路。 如图16a中所示,MC向处于模块M5中的地址发送读命令R。如图16b所示,M0向M2发送 地址命令和读数据命令,而不需要向Ml及其他与Ml相关的模块发送上述命令(但是如下 所述,将在随后发送“no op”命令)。如图16c所示,由位于M2内本地CSE做出决定并将 地址A5和读命令R向M5传送。如图16a-c中所示,比较了地址包A5和读命令R之间的空 隙,图中定性的表示了在两个包之间的时间间隔不断缩短的情况,在图16c中,当M5接收到 地址和命令数据包时,上述两个包之间的时间间隔可能是最小的。这相当于下述情况,即当 MC发送两个包时设定它们之间的时间间隔,使得经过参与传输的模块的解码延迟后整个时 间间隔被抵消掉。M5对读命令R的响应的过程(如图16d所示)如前所述,本处不再对其 细节一一描述。如图17a_d所示,为如图16类似的排布,但是在如图16所述的地址或数据线路的 基础上,在图17中命令信号使用单独的信号线路。由于命令和地址或数据信号使用不同的 线路传输,将可能更有效的利用地址和数据线路的带宽。为了简单起见,假定在每两个模块 之间的地址信号的传输延迟相同,则可以调整读命令的传输,使得地址和数据以预定的时 间间隔到达目的模块,在本例中目的模块为M5。当读命令序列连续发送时,上述设置将是有 优势的。如前例,地址链路和命令链路在即将被使用前的一段合适的将来时间可转换成开 电状态,而当链路上的信息包传输完成后转换成关电状态。本领域的普通技术人员可以了 解到,允许每一条线路在使用完成后保持一段时间处于开电状态以调节附近距离的信息包 将会得到一些有益的效果。这样的一段时间可是时钟周期的倍数。如图18所示,为使用地址指针实现路由的命令的一个例子。本例中的模块排布的 拓扑结构与图17—样,但是,为了清楚起见,本图中仅显示命令线路,其线路的开电和关电 状态的转换如前所述。在本例中,地址命令的结构为自选路由包而不是目的地地址,该命令 包括3个2比特字以及跟在该字后可被目的模块执行的本地命令。图中,地址字在细六边 形框中,本地命令在粗六边形框中。另外,为了方便描述,每一个字可以视为有一个最低有 效位(least significantbit,LSB)和最一个高有效位(most significant bit,MSB) 上 述4个2比特字如同在两个并行线路上传输一样向SO传输。可选择的,该信息也可以在一 条线路的通路上以串行比特的形式传输。每一个字中的比特的解释如图18中的表所示。注意到,一般的,每一个模块顺序 标识为SO-Sn,这意味着每一个节点可能仅仅是一个切换开关,或是对于布置在切换位置的 其他电子元件的补充。上述切换开关可以是CSE或其他可以解释或响应命令的设备。在本例中,每一个切换模块Sn都有一个输入端口和两个输出端口,输出端口分别 标识为“0”和“1”。地址命令按照目的地选择表进行解释,其中,命令中2比特字的值决定 了要使用哪个输出端口。虽然图中只显示了 2个输出端口,但并不意味着切换开关元件的 输出端口的数目或是每一个地址命令字中的比特数目受此限制。同时,所用术语输出和输 入端口以及上行和下行方向是为了描述的方便,并不排除在任何逻辑或物理输入和输出端口之间的连接。地址包中的最后一个字包括一个本地命令。该命令为由目的切换开关执行的操 作。图中,本地命令表给出了一些命令的具体例子。如,值为1( 二进制值为01)表示选择 CSE,值为2( 二进制值为10)表示选择本地存储器,值为3 ( 二进制值为11)表示无操作命 令(NOP或“no op”)。如图18a所示,为输入到SO的地址命令包,其执行命令的目的地为 S5。第一位比特对(二进制值为10 ;MSB,LSB)表示选择SO的输出端口 0。如图18b所示, 数据从S0的输出端口输出,注意到,由于第一位字1 ( 二进制值为10)已经在S0使用过,所 以从地址命令中去除了。如此这样,每一个切换开关S可根据接收到的包中的第一位字确 定需要执行的行为。每一个切换开关S解释的是字在包中的位置而不是第一位字的内容。 为了简化处理过程,假定在上述格式下每一个切换开关Sn解释地址命令的时间是一样的, 那么处理上述操作增加的延迟则与该地址命令的目的模块在树结构中的深度无关。当该地址包通过切换开关S2后,由于其第一位2比特字的值为1( 二进制值为 01),则应路由至S2的端口 0,然后将第一位字从包中再次去除。如图18c所示,为地址命令 将被S5接收的情形。此时,第一位字值为3 ( 二进制值为11),指示目的地为本地,即表明其 后跟随的数据的目的地为本地。第一位字后跟随的字为本地将要执行的命令,在本例中值 为3 ( 二进制值为11),即为N0P,表示目的地模块不需要向上行回传任何响应。如图19所示的另一个例子中,切换开关S将NOP发往一个或多个没有被地址命令 选择的输出端口。这有助于时钟脉冲在整个树中以有效的方式传输以保持同步。输入到so 的地址命令的目的地仍是S5,该命令包括本地存储器命令2 ( 二进制值为10),如图19b所 示,与图19a中所示的原始命令相比,SO的端口 1处的地址命令中去掉了原来的第一位字。 同样的,没有被选择的端口 0向与本端口相连的切换开关发送包括本地地址命令和NOP命 令的信息包。如图19c所示,为S1接收到NOP命令后执行的操作。由于S1的两个输出端 口都没有被选中来输出数据,则S1可向端口 0和端口 1输出包括本地地址命令和NOP命令 的信息包,该包将发往S3和S4。S2执行的操作与之不同,其输入地址命令如图19c所示, 该地址命令将发往端口 0( 二进制值为01),然后将其第一位字去除,并将剩下的命令包发 往S5。但是,在本例中,数据没有发往S2的端口 1,因此该端口向S6发出一个包括本地地 址命令和NOP命令的包。树的末端上的每一个模块(称为“叶子”,在本例中为S3,S4,S5, S6)可在其每一个输出端口发送一个本地命令和一个NOP命令,但是,如果没有与之连接的 下行通路,则上述处理过程结束。模块亦可被配置成树的叶子模块,其输出端口可以设置成 非活动状态,或省略输出端口。如图20所示,模块树可被配置以使链路通道化,使用如图3所示类型的CSE,并允 许两个或多个命令同期或同步执行,其中,同步执行的命令数目取决于分支度。在本例中描 述了两个独立的数据包的传输情况。第一个数据包是作为读命令R的响应而从M4经Ml和 M0返回至MC的信息包。同时,第二个对读命令R响应的数据包从模块M6,经M2和M0,发往 MC。返回的数据包将使用连接中一些的线路,上述线路的数目少于模块间的链路的线路的 总数。在一个连接中的各“通道”之间的线路的划分并不需要相同。如图21所示,为更进一步的树中通道化的示意图。此处,在模块M3和M6分别处 理读信号R的同时,M4和M5之间经由Ml、M0和M2构成了一个存储器直接存取(direct memory access, DMA)传输。从模块M4到M5的数据传输和M3、M6发出的数据传输都以不间断的相同的速率进行。在本例的配置下,DMA传输可以传向或来自没有正在被访问的模 块,也可以在可同时处理一个以上数据通路的模块上进行。这样,可以进行存储器直接存取 操作而不影响其他同时进行的存取操作。当模块内有仲裁单元,或模块支持一个以上操作 /访问同时进行(比如,模块内包括多端口存储器,或CSE可以对部分或所有的冲突操作进 行缓冲)时,在从模块控制器向模块发送信号的同时,可在模块构成的树结构内进行其他 操作,如DMA。本例所述的DMA操作中还示意了下行端口和上行端口之间的连接,该连接是 可在一个CSE内连接其逻辑或物理端口以进行数据传输的例子。如图22所示,为在树结构中同时或同期传输数据的一种方式(例如树结构)的示 意图。在本例中,模块M8通过M4、M1和M0向MC发送读操作信号(这条路线在本图中表示 为M8到MC的虚线),MC通过MO、M2和M5向M9发送写操作信号(该路线在本图中表示为 MC到M9的实线)。与读信号R有关的数据从模块M5经由M2、M0和Ml传向M4 (如图中点 虚线所示)。取决于特定的源和目的地,当树结构中的存储器间传输信号时自MC的存取也 可能不是同时发生的。如图23所示,为具有多个处于低功率状态的连接(图中表示为虚线)的配置的示 意图。当接收的地址命令表明下行方向将会有数据通过时,在本例中的读命令R经过的下 行通路将转换至开电状态以传输命令。在图中表示为虚线到实线的转换,如图23b中MC到 M0之间的连接变成了实线连接。如图23c中所示,MC到M0的连接状态转换成了关电状态, 而M0到M2和M2到M5之间的连接状态转换成了开电状态。如图23d所示,M5到M2和M2 到M0之间的线路在合适的时间转换成了开电状态以传输数据,该数据是响应读命令R而需 传回的数据。如图24所示,其中配置与图23类似,但在图24中其上行通路可设置为低功率状 态。一般来说,通路状态从很低的功耗状态转换成普通状态的时间要更长一些。当上行数 据通路处于低功耗状态时图中用点虚线表示(上述状态转换可以是如开电状态或待机状 态到关电状态或类似状态之间的转换。在上述相互转换的状态之间应该有总功耗的区别和 变成完全工作状态的时间的区别,但是对于一特定的设计其总的时间或总的功率都是明确 的)。如前所述,当某一特殊的命令通过各模块(本例中为M0和M2)时,在MC和目的模块 (本例中为M5)之间的每一个通路都会知道(或侦听到)该命令的传输和其目的模块在树 中的深度。可以将每一个上行连接按照一个预定的时间重新转成开电状态,使得当有数据 在该连接上传输时,其处于可操作(开电)状态。图24a-c还示意了将NOP命令N传输至 树结构中没有参与目的地址传输的其他分支的情况。对于命令传输时间受到限制的系统,比如时隙传输系统,或是在命令之间有最小 时间间隔的系统,或是限制命令的具体发送时间的系统,还可以进一步降低功率。如图 24a_d所示的例子,在一个时隙传输系统中,传输地址命令的连接可以在时隙开始时转换成 开电状态,在图中以半虚线表示。如果不需要传输命令,则连接在下一个时隙开始前转换成 关电状态。如果需要传输命令,则链路保持开电状态以传输命令。如图24b-d所示,在一个 没有固定的命令起始时间的系统中,将NOP命令N发送至实际命令没有使用的链路上,以使 该未使用连接处于关电状态直到另一个命令发送至该未使用链路时该链路可以再次转换 成开电状态。对于具体的物理线路传输技术,线路的开电和关电需要传送器和线路末端的接收
23器的共同作用才能实现。在关于地址命令的另一个例子中,可对命令进行扩展以实现命令的广播或组播传 送。如图25所示,其中还包括了一个本地命令扩展表,表中包括的值为0广播命令(二进 制值为00),和扩展命令表。与扩展命令有关的字表示在图中虚线的六边形框中。虽然本 图中该字处于地址包的最后一个字,但是实际上扩展命令的位置也可以与本图中的位置不 同。该扩展命令包括值为1的读命令(二进制值为01),值为2的写命令(二进制值为10), 值为3的广播开始命令(二进制值为11)和值为0的广播转发命令(二进制值为00)。在 传送序列中,扩展命令可跟在本地命令字的后面。在本例中,根据地址命令中的第一个字指 向SO的0端口,由于该端口与S1连接,所以会将一个地址命令发送至S1。如图25b、c中 所示,NOP命令被发送至与SO的端口 1相连的S2,并一直传送至S5和S6,上述端口 1是未 被选择的端口。对于发送至S1的包(如图25b所示),其第一个字表明S1就是命令的目的 地,而本地命令值为0 ( 二进制值为00)表明其为一个广播命令。切换开关S1将会根据广 播命令产生一个新的信息。广播命令将从切换开关S1的端口 0和端口 1发往在树结构中 处于S1的下一级并分别与S1的两个端口相连的S3和S4。在广播命令中还有扩展命令,在 本例中该扩展命令为广播转发命令(值为0,二进制值为00)。根据上述广播转发命令,S3 和S4将产生相似的命令并将其向树结构的下级传送。如图26a、b所示,为从S1的输入到树的叶子的控制的流向的细节的示意图。如图 所示的配置可以用来向/自其他模块同步发送/接收少量的单独的状态或控制信号。如图27a所示,为自路由消息的一些可选用的配置的示意图。在需要非常高速传 输的场合,线路到线路造成的歪斜可能是,仅当信息在单条的线路上传输时其解码没有显 著的延迟,否则当信号在多条线路上传输时,由于需要等待其他一个或多条线路上的同一 信息的其他部分都传到则解码可能会增加显著的延迟。此处描述了多种比特序列的形式, 其形式具有多种不同的有用的特性。值得注意的是,让第一个切换开关配置消息息的路由可以使消息的传输具有最小 的延迟。在向处于树的根节点的第一个模块发送消息的特殊情况的例子中,其消消息的头 两个比特(从右往左读)为二进制值01,其后为命令CMD(可能是读命令R,写命令W,或其 他命令)。在将消息发往最底层N(如一个叶子节点)的情况的例子中,头两个比特的二进 制值为11,该消息后为通路指示[PATH],上述指示可以是N比特长的通路信息,其中,该比 特的形式可为0或1,具体取决于要使用到目的地的通路中下一个分支或节点的输出端口 的哪一个。通路指示后跟要发往某一模块的命令CMD。如需将信息发往末级的上一级则头 比特为011,其通路指示长度为N-1。同理,若要发往下一个最高级则头比特为001。其通路 指示的长度为N-2。对于N-3级,其头比特为010,去往其他各级的信息的设置类似。二进 制序列11则指示通路指示比特序列开始。按照上述模式,要到达的级数每增加一级则头比 特的长度增加大约一位,通路指示[PATH]则减少一位,因此,头比特和通路指示的总长度 变化范围可能为1个比特。可见,消息的长度不会随其要到达的模块在树中的深度有大的 变化。如图27b中所示,为发往S9、S4、S1和SO的消消息的头比特的组成的示意图,其中模 块的连接关系与图26相同。图27a中还示意了附加命令CMD-TIME和CMD-EX在信息中的位置。上述附加命令 包含了命令应该在什么时间执行和/或数据在什么时间被返送回来的信息。上述时间可以是绝对时间,或是相对于接收命令时的时间,或可以基于命令本身的特性进行的解释。如图28a所示,为适合在每一节点去除头比特的一种消息格式的示意图。在该格 式中,到模块0的消息的头比特为0,其后一个比特指示后面跟随的是一个命令还是NOP操 作。到第一级的消息的头比特为1,其后为端口选择比特P,其表明选择的是端口 0还是端 口 1。格式ON表示其后跟随的是命令(1),或需要发送NOP (0) (0)。对于通路的下一级的模 块的地址,每增加一级则增加一对比特,该比特指明了增加的深度和通路上的路由。在每一 级,消息的头两个比特确定了消息是发往本地切换开关还是向前发送。当消息往树的下一 层(级)发送时,则要去除消息的头两个比特,消息则通过合适的端口向前发送。图中左边 矩形框中的数字表示树中的深度或等级。如图28b所示,为发往S9的信息在树的不同级的组成的示意图,其中,当消息中的 头比特使用过后将从该消息中删除。当总线(链路)的速度加快时,存在于同步总线上的数据和时钟或命令之间与同 步相关的问题也随之增加了。其中的一个问题是,同一链路、线路的不同的末端之间可能会 具有不同的时钟。如果使用并行数据传输技术,则链路中不同线路的有效物理连接的长度 造成的影响也会不同,这将可能导致不同线路上传输的各比特的到达时间不同。这就是所 谓的数据“歪斜”。一种解决数据歪斜的方法是在每两个相邻链路之间进行去歪斜,以对信 息包头进行解释并在下一个相邻链路上传输信息包。但是,由于去歪斜过程至少需要与各 节点的线路间的最长的差别延迟时间一样长的时间,所以这将显著的增加重新传输的延迟 时间。其他的解决方案是不在每一个节点上进行去歪斜以避免增加额外的延迟,而是允许 通路上存在歪斜,并在目的模块或节点的接收器上进行去歪斜。但是,由于需要处理从源节 点(如存储控制器)一直累积到目的节点的不同长度的延迟,则即使数据包的一部分到的 很早,累积的延迟也会显著的增加总的延迟。在由INTEL开发的FB-DIMM技术中,要求器件可以修正每跳高至6个单位时间间 隔(Unit Interval, UI)的歪斜。术语UI是指传输一个信号的平均时间间隔,当时钟周期 不是十分稳定或没有颤动时,可以在高速时钟速率的场合使用术语UI代替时钟周期。如果 一个存储系统中有8个相邻的链路,在每个相邻链路上的歪斜为6UI,则总的歪斜为48UI。如果链路运行在名义上的时钟频率为2GHz,数据传输率为4Gbps的情形,1UI = 250ps,则48UI的延迟歪斜时间等于12纳秒(ns)。这表明,通过某一条线路第一个到达的 比特的到达时间和通过其他的某一条线路最后到达的比特的到达时间差为12ns。第一个到 达的比特需要存储在存储器内,然后对寄存器进行闭锁或移位直到后续比特到达,最后将 所有比特送至去歪斜和读取数据的设备。一方面,此处描述的互连系统可提供在存在歪斜的环境中进行数据处理的方法和 设备。在上述存在歪斜的环境中,甚至设备到设备之间的线路上的延迟不是固定的。上述 数据处理的方式可减少对延迟均衡、延迟排程、缓冲或类似的操作的需要。如图29a所示, 为简化的从一设备(如模块控制器MC)到另一设备(如切换开关S、存储器模块M、接口、其 他处理器、或类似装置)的数据传输的例子的示意图。在本例中,使用串行器SER 300将一 个宽字(如16位字)转成4个4位字。上述16位字310通过4条分开的线路各自经4个 连续的高速时钟周期传输。数据在链路的另一端被接收,由去串行器DES320进行去串行, 并重新排列成原始输入字的顺序。
如图29b所示,为与上述类似的处理过程,但是在各链路上传输比特的速度不一 样,并且有比特的到达时间之间差一个以上时钟周期。造成上述差分延迟的原因可能是,比 如,模块之间线路的长度不同。如图所示,比特1、3、5、7早于其他比特到达,除非时间延迟 造成的歪斜得到解决,否则上述四个比特可能会被当成在前传输的字。而剩下的比特则被 当作其后的字,这将会使数据出现错误。一方面,如图30所示,为处理歪斜的一种方法和设备的示意图,具有时钟数据恢 复模块(clock data recovery,⑶R)的切换开关元件接收歪斜的数据。可选地,切换开关 元件中也可以没有CDR。去歪斜模块中具有对每路线路进行时间延迟装置,以使所有线路的 延迟是相同的。然后,使用去串行器(DES)对去歪斜后的数据进行处理以恢复原始的传输 字节,并使用CSE和其他的本地功能模块对数据进行处理。虽然各功能模块在图中是分别 单独表示的,但是上述全部或部分模块可以在同一个电子器件内工作,或是集成在一个模 块内。去歪斜模块和CDR也不一定要在同一个电路上。另外,如图31所示,可以将多路输 出选择器330设置在⑶R和去歪斜模块340的输出与DES 320和发送器(TX) 350之间,这 样,输入的数据可以发送至DES 320或/^PTX 350。上述配置,使得数据可以根据需要发送 至DES或TX,而不需一定要被所有电路处理。如图32所示,为在INTEL的先进存储缓冲器(AMB)或其他类似装置中引起歪斜的 原因的示意图,其中AMB在可插入连接器的扩展板上的模块内。上述布置被用于FB-DIMM、 注册的DIMM、和类似元件上。如图所示,上行通路上的消息来自下行模块,该上行通路具有 许多线路,其中线路0在左边,线路4在中间,其他线路布置类似。上行通路与连接器的前 侧相接,在穿过AMB后,连接到连接器的后侧上与前侧类似排布的线路。注意到,插入板的 前侧和后侧都有AMB,但并不表示需要分开的AMB元件来完成其功能。另外,线路仅仅显示 到AMB的边缘,但是如果AMB是在一个球形栅格阵列(ball grid array, BGA)封装或其他 不仅为允许边缘连接的封装中时,上述线路实际上连接到了 AMB的下面。线路从AMB连结至 板子背面的连接器。线路在板子背面的排布顺序也是线路0在左边,线路4在中间。图中 所示的线路可以代表板子上AMB和板子接口的连接器(本图中没有显示出来)之间的连接 线迹。如图中所示线路的排布方式,使得有连接混合模块接口的连接线迹的主板可以不需 要使用交叉连接线迹来连接一个以上的模块。从这个方面来说,主板上连续的连接器的插 脚之间传播信号的时间对每一条线路来说是大约相等的。但在模块板上的情况与之不同。 如图所示,线路4从连接器到AMB为短距离,线路0则要长些。为了对具体实施例进行更好的说明,使用标准尺寸的DIMM模块作为参考。该模块 宽140mm,从切换开关所在的中央往线路0方向的距离为70mm。线路4的长度为20mm,该线 路为AMB和在连接器上与之相关的插脚之间的线路,在本例中,最短和最长线路线迹的长 度的最大差为50mm,该长度差将会导致大约250 350ps的传输时间差。上述情况是一个 实际存在的DIMM的情况的估计,其中,数据传输速度为4GB/S,根据这个传输率仅由于上述 长度差将会导致1或2个时钟周期的歪斜。对于实际存在的标准DIMM或存储器模块,此处使用的术语DIMM或存储器模块应 当理解为表示任何可以安在电路板上的存储器类型,该电路板具有与其他模块电路或类似 设备进行连接的接口。插脚或连接线迹的数目,电路板的尺寸,各类在DIMM上的存储器的 容量或类型,均不局限于上述插脚数目,互连数目,尺寸,容量和类型。
26
如图33a,b所示,为可用于减少时间延迟的不同信号路由的排布方法的示意图。 如图33a所示,为连接线迹从CSE直接散开延伸到连接器的情况。如图33b所示,较长的连 接线迹布置在板的顶部,而其他的信号线路则从中间开始布置。在这种布置下,一部分的连 接线迹要比在图33a中的连接线迹长,但是不同信号组之间连接线迹长度的差别变小了, 比如线路0,1,2,3之间或4,5,6,7之间的差别可以变小。不同线路线迹组长度之间的差别 还是仍然存在的,但是可以通过降低延迟的差别,如图33b中对N个信号,从N个差分延迟 减少到2个差分延迟,来简化延迟管理和信号歪斜的处理。如图34所示,为从模块控制器MC传输信号的一个例子的示意图,如图所示,从左 侧开始的线路0-4通过了五个模块。从MC发出的数据按照线路0,1,2,3,4的顺序标记为 A,B, C,D,E。对应每一个下行模块有一个表,表中输入的数据的逻辑名字为“I”,相邻模块 之间的线路上的延迟为“D”,从MC到当前模块的累积的线路延迟为“T”,输出数据的名字为 “0”。表中每一行对应的一条线路;其中,最上一行为线路0的各项参数值,最下一行为线路 4的各项参数值。在本例中,一个延迟与一条线路有关,不同线路的延迟可能不一样。延迟 可以根据概念上的线路解释为差分延迟,上述概念上的线路可以没有额外的延迟或由于前 一模块或MC的发送器到接收模块的接收器所造成的延迟。在本例中,假定模块之间的延迟的范围为1到6 (任意单位),对每个模块的输入和 输出线路,在从给定的线路号上输出到相同线路号的输入时,赋以相同的延迟值,与每个模 块相关的输出数据的格式和输入数据的格式相同A,B, C,D,E分别在线路0-4上传输。从 按照下行方向的模块的表的变化可以看出,每一条线路的总的延迟是在MC和与表对应的 模块之间的线路上的延迟的总和。比如,MC和第五个模块(M4)之间的线路0上的总的延迟 为30个单位,但线路4上的总的延迟为4个单位。在本例中,其他线路也存在时间延迟的 中间累积。若延迟单位对应为时钟周期,则线路0上的数据将落后线路4上的数据25个时 钟周期到达M4。以整数值给出延迟的时间,以及令模块间的给定线路上的延迟相同仅仅是 为了说明的方便。延迟时间并不一定是整数,在相邻模块间的给定线路上的延迟时间也不 一定相同。举例来说,如果将要发送的命令或包或帧的长度为10个时钟周期,则在任意时 间中,模块4都可能正在处理收到的2. 5个命令。这样,由于最后一个模块需要使用上述时 间将一个命令的所有比特作为一个完整的组来接收,所以最后一个模块在其可以处理第一 个命令之前可能需要在任何时间都能容纳2个完整命令的缓冲器来保存数据。在本例中, 第二个命令和第三个命令的一部分会在第一个命令的所有比特都被M4接收完成后才会被 M4接收。如图35所示,为减少线路间的差别延迟的设备和方法,以减少系统中歪斜的累 积,以及每个节点或相邻连接上需要同时进行处理的命令的数目。在本例提供的设备中,每 一个模块的输入数据可以输出到与输入线路不同的数据线路上,上述布置与插入模块或电 路板或底层有关。图35中,线路的实际物理分布与图34中的一样。但是,如果使用AMB或 CSE则可能导致连接和信号线路的类型和数目的不同。所列的例子是为了说明,如前所述实 际存在的AMB和本发明实施例中提供的方法和设备在处理数据歪斜的不同的效果。在某些 场合下,输入和输出数据线路与之前的线路有相同的逻辑排布,则可能仅有部分数据在不 同的线路上传输。举例来说,对第一个模块M0,数据A从线路0输入从线路4输出;数据B从线路1输出到线路3 ;数据D从线路3输入从线路1输出;数据E从线路4输入从线路0输出;数 据C从线路2输入从线路2输出。在Ml的输出端,延迟的差别的情况与图34中所示的Ml 的情况一样。但是,考察模块M2的表的情况,则两图之间的情况是有差别的。在介于Ml和 M2之间的线路4上传输的数据A只加上线路4的延迟,为1个单位;而在线路0上传输的数 据E则加上了线路0的延迟。在第二个模块M2,可以看到数据E的总的延迟为7个单位,数 据A的总的延迟也为7个单位。其他数据B,C,D的延迟时间并不完全一样但是非常接近, 可见重新分配逻辑和物理数据线路可以减少累积的延迟的差。在之前的例子中,在每个模块上数据A-E重新指定或相互交换其连接的线路0-4, 可以看到标记为A-E的各逻辑数据的延迟的差别是单调增加的。数据可能在每个模块上都 被交换至不同的线路。在最后一个模块(本例中是M4),如图中与其相关的表中所示,差分 逻辑数据的延迟的范围为15单位到18单位,不同延迟之间最大差3。而与图34中所示的 相比,按照图34的连接方式其延迟之间最大差25。交换逻辑数据到物理线路之间的通信连 接可以将需要进行缓冲的数据降低至原来的八分之一,上述数据是指在发送端的一个时钟 周期内的所有被发送的数据完全被某一模块接收之前需要进行缓冲的数据。在本例中,所 有的比特在模块M4内重新被排列成发送时的原始顺序。在本例中,比特安排策略为将经历过最长延迟的数据输出到具有最短延迟的线 路上。类似的,具有最短延迟的数据将输出到具有最长延迟的线路上。在上述描述中,为了简便起见延迟都是整数值;但是也可能有非整数的值,非整数 值可以是代表时钟频率的若干倍的以任意单位定义的延迟。可选择的,延迟和延迟间的差 别也可以是时钟周期的整数和分数倍。如图36中所示,为模块对之间的延迟完全不同时的情况的示意图。图中只显示了 两条线路,但是图中所示的排布方式也可以泛指到任意数目的线路。如图所示的两条线路 为传输命令的线路。图36a中所示的情况与图35类似,其中,对线路进行了交换使得在通 路上每两个相邻节点上各线路总的延迟的差都最小。在第一和第三个模块上进行了线路交 换,在第二和第四个模块上没有进行线路交换。如果在有必要的情况下,可在第五个模块对 线路进行重新排序。在第四和第五模块之间的线路0的延迟为10单位,而此时的线路1的 延迟则为1单元。由于通路上总的延迟之间的差别已经最小化了,则在最后两个相邻模块 之间的较大的延迟的差别使得总的延迟的差别在第五个模块变得比较大,在本例中,线路0 的总的延迟为18,线路1的总的延迟为9,两条线路之间的差别为9。如图36b所示,为一种 可替换的情况的示意图,其中,允许延迟的差别进行累积直到倒数第二个模块,并在最后一 段传输线路上进行线路交换,然后再在最后一个模块内将线路交换回来。则在最后一个模 块上延迟的差为0 ;但是,要注意的是,第四和第五模块之间线路上的延迟的差别应是显著 的,当模块之前的单段线路上的延迟存在显著差别时,对该模块之前的通路上的单段线路 进行交换才能使延迟的差别减少。如图中所示,各段线路上的延迟是在设定线路交换切换开关之前预先决定了的。 各段线路上的延迟是在设计系统或系统原型时,制造时,模块装配到系统上时,系统启动 时,每一个系统启动时,或系统操作时进行测量并确定的。选择确定延迟时间的时间与系统 的复杂性和其所需的工作状态有关,并可能会考虑制造的不稳定性,温度的影响,以及各主 动或被动元件的故障或老化情况。
28
线路的相互交换或“交换”功能可以由切换开关实现,但是此处使用的术语“切换 开关”并不用于限制上述特定功能分别在不同的设备上执行;任何可以实现线路的互换、再 分配或交换功能的器件都可以称为切换开关。为了便利起见,应用在系统或方法的上述方 面的术语“切换开关”包括所有可以执行上述功能的技术。该技术可使用存储区域、状态机 或保存了程序的计算机的操作,以及专门的电子逻辑电路和类似器件,可以是上述单独的 元件或操作也可以是它们的组合。对切换开关的操作可以是动态的也可以是静态的,这取 决于产品的设计的需要。如图37所示,线路3和线路4为信号通道,这两个通道具有最低的延迟,而线路0 到线路2为数据通路。使用互换技术对信号通路进行去歪斜,使其传播延迟小于数据通路, 这样命令可以同时或早于数据到达。数据通路使用前述方法中的一种进行去歪斜。本例主 要介绍信号线路3和4,信号线路可以与任何其他的线路进行交换,这样命令可以与数据同 时到达目的模块。甚至在某一相邻模块之间,部分数据传输使用的线路的延迟时间比信号 使用的还短,只要控制数据和命令信号的传输时间的总的差别使得它们在合适的时间被接 收即可。上述做法可以最小化数据信号的总的延迟时间。如图38a所示,为一种在线路之间交换数据元素以使所有模块之间延迟时间的差 别最小的方式的示意图。图中没有显示延迟表,但是假定按照其延迟可如图布置线路间的 交换。数据进行交换后在M4上的顺序为C,D,E,A,B,而实际期望的顺序为A,B, C,D,E,因 此通过在模块M4内适当的交换数据以获得后续系统所需的数据的顺序。图38b总结了从 MC的输出到M4的输入的交换后的总的效果,以及M4内进行交换后的效果。中间的各连接 和各中间过程中发生的交换可以逻辑上使用MC到M4的总的一次交换和M4内的一次交换 替代。这种表示方法表示了端到端的传输过程。图38a示意了每一个模块上切换开关的配 置状态,MC上输出数据的顺序与M4的输出的数据的顺序一致。另一方面,如图38c所示, 各切换开关的配置状态不变,但是数据顺序在MC传输之前进行了预重排以使数据被M4接 收时为期望的顺序,这样就不需要在M4内对数据顺序进行交换。上述处理方法可以使每一 个模块上进行处理时的延迟最小化,当处理过程在MC上进行时,预重排可以在命令和数据 仍然在输出序列中时完成,而该操作所需的时间可以包含在其他系统处理时间中。由于允 许利用本地CSE对输入数据在输出到下一个模块前预重排或不进行预重排,则进行预重排 也可以简化CSE中的数据通路。如果CSE配置成树结构中的分支,则系统中的一大部分CSE 可能是叶子节点,叶子节点的下行方向没有其他的CSE。上述预重排可以是静态形式也可以 是动态的形式。以上描述的情况为从MC直接到模块的传输,但是也可以有效的应用于其他的通 路,如模块之间的DMA传输,或应用于树结构中不同的通道或分支之间的传输。虽然本发明 实施例中的描述为从MC到某一模块的例子,但是上述的操作可以同等的应用于反方向的 传输。如图39到图42所示,为将逻辑数据重新分配到各线路的切换开关和切换方法的 各种不同例子的示意图。如图39a所示,为具有4个切换开关元件的Batcher排序网络的 配置的示意图,其4个切换开关元件连接输入线路1-4至输出线路1-4。如图39b所示,为 上述网络中2X2切换开关的配置示意图,其中切换开关的配置方法可以有两种其一,元 件内的输入线路分别和相同号码的输出线路相连;其二,元件内输入和输出线路互换。如图39c中所示的切换开关,除具有如图39b所示的功能外还具有复制功能线路1输入的数据 复制到输出线路1和2,同样线路2输入的数据也可以复制到输出线路1和2。如图39d和 e示意的切换开关的电子元件,所示电路元件为2到1多路复用器。如图39d中所示的电 子元件实现了图39b所示的功能,如图39c中所示的电子元件实现了图39c的功能。上述 两个电路的区别在于,在其中一个电路中,2X2切换开关没有复制功能,多路复用器选择共 有的活动线路,其中一个多路复用器具有NOT输入420。在具有复制功能的2X2切换开关 中,对单个切换开关是可以分别控制的。如图40c所示,为一种Batcher排序网络的示意图,在该网络中输入线路顺序为1, 2,3,4,输出线路顺序为3,2,1,4(图中,输出线路的号码在前,其后的括弧内为对应的被传 输至相应输出线路的输入线路的号码)。但是,如果试图得到输出的顺序为1,3,4,2,则如 图40b所示,可能会造成一个通路闭锁。如图40c所示,为一个无闭锁的十字切换开关矩阵的示意图。这种类型的切换开 关可以用于实现任何需要的交换。如图40d所示,为另一种切换开关类型为Clos网络的示 意图,该网络类型为严格无闭锁网络,可以以仅交换那些分配顺序确实被改变的线路的方 式改变输入和输出线路的顺序,如图41a所示,可以通过增加其他的步骤扩充排序网络的切换开关的能力,这样 的网络有时称为Benes网络。这样就可以实现如图40b所示的交换了。切换开关增加的步 骤可能引起额外的延迟。不过上述开关是一个可配置的无闭锁切换开关。如图41b所示, 为上述切换开关扩展成8条线路的配置示意图,对切换开关的宽度没有限制。在某些排布方法中,存在一个或多条线路互换的方式。如图42所示,为系统中的 一些线路经常会需要进行全交换的情况的示意图,并说明了使用器件和电路元件连接如输 入线路1到多路复用器的输出再到线路8的输出的情况。其他的输入和输出也是类似进行 连接。如图所示,还有两个Benes网络连接输入和输入至多路复用器的输出,并对其他排布 进行配置。所需要的排列可以通过输出多路复用器进行选择,该多路复用器与固定的网络 和不同配置的切换开关相结合。此处仅仅示意了一种固定的网络的形式,可以使用不止一 种的固定网络与具有更大输入电容的多路复用器结合使用,如3到1的多路复用器。对于 之前所述的多种电路,当电路不使用时可以使其处于低功耗状态或关电状态,如果电路有 时钟的话对其进行门控,或执行任何其他可以降低功耗的操作。在通路或电路中,系统可能会有许多差分延迟。这种差分可能是热膨胀或参数变 化,或其他确定性或不确定性的因素的影响引起的。当系统中存在差分延迟,信号从树结构 的根节点(比如MC)向各模块传输时,其延迟时间不固定在某一确定的值上。即使在不需 要修正相位差异,而且数据可以与一时钟速度足够慢以致数据不会产生歪斜的全局时钟锁 定的情况下,仍然会产生小范围的相位改变;同时,仍然存在从器件到器件的传输距离的差 别,或从任何一个器件到首端(根)传输距离的差别。当时钟变得不是完全同步,或数据存 在歪斜,全局时钟里有抖动,或相对全局时钟存在相位差异且线路是自同步的时,上述考虑 仍然是适用的。如图43所示,为两路数据通路在其到达的模块中合并(如在树结构中两个分支 (线路)在其交叉的节点中的合并)的示意图。在上述情况下,造成每一个树结构中的延迟 的差异的原因可能是,在节点上的分支之间存在的延迟的差异、在每一个分支内的延迟的差异、在不同线路之间的延迟的差异。可以由CSE或相关的电路对分支进行合并,对上述功 能的任何描述并不意味着对其物理位置的限制,而是表明该功能在每一个元件内完成。如图中所示,为了描述方便,将通路I上4条数据线路上传输的数据用数字编号表 明,通路II上4条线路上传输的数据则用字母编号表明。通路I上各通道输入的数据按时 间顺序排列整齐。数据输入进时钟数据恢复单元(clock datarecovery unit,CDR)。每一 个线路或线路组都有一个单独的CDR相连。通路II上输入的数据在不同的线路之间存在 时间歪斜。每一个CDR的输出都与多路复用器500的输入相连,该多路复用器用于选择两 个通路中的一组数据并将数据输出到发送器(transmiter,TX)510或其他电路。虽然多路 复用器仅选择了一个通路,但是连接多路复用器和TX之间的4条线路上还是同时显示了通 路I和通路II上发送的数据。图中的上述显示仅仅是为了更方便的观察到数据传输时的 时间问题;而实际上仅仅选择了一条通路上的数据,被将其在多路复用器和发送器TX之间 传送。从图中所示的数据的比较可以看出即使每一条线路都有自己的时钟,在通路I和通 路II之间的数据传输相对于时钟仍然存在时间差。虽然每一个通路中的每一条线路都可 能有一个单独的时钟,但是为了便于描述,假定两路数据通路分别有单独的时钟。当选择通路I或通路II上的数据并发送时,需要考虑其在一串CSE中的下一个 CSE或任何相关的数据接收器上的影响。为了描述方便,称一串CSE中的下一个CSE为上 行CSE。上行CSE的配置与图43中所示的CSE —样,接收到的数据在上行CSE的输入端将 会在一个单独的数据通路上,在该通路上数字或字母标注的数据由多路复用器布置其顺序 并通过发送器TX发送。通路I上的数据输入上行CSE,而树结构中的另一个分支则输入通 路II上的数据。以下描述适用于从通路I或通路II的输入,但都以从通路I的输入的数 据为例进行描述,该数据来自如图43中所示的CSE。CDR可以使重新获得的时钟与通路I (数字编号)的数据联系。当多路复用器的开 关将输入切换到通路II (字母编号)时,与通路II有关的时钟频率则可能与通路I的时钟 频率不同,而在上行CSE上根据时钟频率进行的数据采样将会出错。如图44所示,为一个至少部分缓减上述情况的电路的示意图。在CDR中有相位校 准电路,该电路调整数据的时间延迟使得来自通路I和通路II的数据对齐于相同的时钟 沿,比较通路I和2的输入数据和发送器TX输出的多路数据即可看出数据在TX的输出端 是对齐的。需要提醒的是,两路通路中实际上只有一路数据会在某一时间出现在发送器TX 的输出端,但是图中在TX的输出端同时显示了两路数据是为了描述两路数据与同一个时 钟的关系。上述数据的对齐可以减少通路合并中的一部分的延迟差异,在本例中,线路2上 的数据情况则显示两个通路之间存在一个完整的时钟周期的偏移。实际上,偏移可能不止 一个时钟周期;而时间歪斜仍然没有完全消除。如图45所示,为在图44的基础上为通路I和通路II各增加了去歪斜处理的示意 图。通过对通路II的线路2的数据增加一个相等的时钟周期的延迟来达到去歪斜的目的, 这样通路I和通路II的线路2上的数据被多路复用器选择后再被上行CSE接收时,不存在 明显的数据歪斜。如图46a所示,为在一个更高级的结构中图45所描述的概念的示意图。图中存 储控制器MC和模块M0-M7连接成一个树结构。每一个数据通路的时间延迟用连接模块Mi 的线路的长度来表示,每一个模块内的时间延迟用每一个模块的长度来表示。从图46a中可以看出,通路MC-M7为延迟时间最长的通路。图中只显示了在每一个电路元件之间的K 条可能的线路中的一条线路,但是本具体实施例中的描述还适用于其他的线路。在图46b 中,重画了上述树结构,用水平轴代表连接电路元件的线路和每一个电路元件内的时间延 迟。对每一个数据比特,电路元件之间使用的线路可以是不同的物理线路,但对数据或命令 进行解释的电路元件处的逻辑数据比特将是正确的。如图中所示,即使其物理线路为树结 构中其它部分的不同的数字编号的线路,例如图39-42中所示的对线路进行互换之后的线 路,但最终连接至MC的线路0的线路组即是携带会到达线路0的数据的线路,如图47a显示了网络中的两个子树的情况M0,M2,M6和M0,Ml, M3,M7。如图所 示,通路M7-MC为最长的通路。在每一个电路元件上都有两个输入通路和一个输出通路。 两个输入通路中的一个通路为非临界通路,非临界通路在源和目的地之间的总的延迟比其 他通路的延迟小。比如,在模块M1,其到M4的通路相对通过M7-M3-M1的通路为非临界通 路。在上述情况下,相对于通路M7-M3-M1-M0,通路M4-M1-M0会增加一个额外的延迟,但通 路M4-M1-M0的总的延迟并没有增加。在模块的数据通路的连接端处延伸出的一个突出部 550来表示额外的延迟。用图47中介绍的表示方法,图48中表示了一个与模块控制器MC的逻辑比特0通 路相连的8个模块Mi形成的树结构网络。从模块Mi到MC的比特0的比特传输时间延迟 表示为dM_i_N,其中i表示模块的编号,N表示逻辑比特。所述延迟是指从模块Mi的输出 端到MC的输入端的这段线路产生的延迟。为了简便起见,没有显示源模块Mi和接收电路 MC内的延迟。需要注意的是,模块内的额外的延迟可能发生在模块内的任何地方,所述延 迟用模块上的突出部表示。对于网络中的各时刻,其中时刻tM_i_N表示从MC的逻辑比特 0发送的命令或数据的被模块Mi接收到的时刻。如图48所示,为比特0和模块5的情况, 则接收时刻tM_5_0 = t+dM_5_0,其中t = 0表示数据从模块控制器MC发出的时刻。对于任意的比特N也可以得到类似的分析结果,在图49a,b中,其模块的排布情况 和图46b中的情况一样,但是图中的延迟情况是针对另一比特,比特N的。如图50a,b所示, 对于比特N,可能有不同的具有最长通路的子树组,在每一个模块组合成的通路中可能有不 同的具有非临界通路的子树集合。在本例中,具有最长延迟时间的子树为M5,M2,M0和M7, M3,Ml, MO, MC。与上例中比特0的情况相比,第一个子树与图46中的情况不同,但是第二 个子树则没有改变。对于比特N,延迟可能加在互连M2和M6的端口上,而在比特0的例子 中,额外的延迟则可能是加在连接M2和M5的端口上的(如图47中所示)。如图51所示,为使用之前介绍的符号表示的延迟的示意图。对于热效应和其他缓 慢变化的影响需要调整其造成的延迟以保持数据的相位和比特的同步,上述数据由模块中 的多路复用器进行选择,并按照公共时钟进行采样。如图51所示的模块M0,Ml和如图52 中所示的模块Ml中用延伸出来的梯形560标识的延迟表明了上述的变化的额外的延迟,其 中梯形的总的长度565代表了最大总的额外延迟时间,而横向的虚线570表示最小的额外 延迟时间。另一方面,由于存在某些因素的影响,对每条线路模块内的延迟可能不同,上述 因素可能包括模块的内部结构、处理延迟和其他类似因素。当选择不同的线路在模块间传 输逻辑比特时,模块的延迟可能取决于所选择的线路,这一点可用如图53中所示的宽突出 部575来表示。需要再次强调的是,上述仅仅是一个表示符号,并不意味着延迟必须在模块 的输入或输出端产生。
32
取决于控制时间延迟方法的选择,可能可以在模块中使用去歪斜之前利用延迟来 进行歪斜的纠正。如图54a,b为两种引入延迟的方法的例子的示意图。如前所示,在图54 中,延迟加在与M6相连的M2上,其中M5到M2的通路为非临界通路。可选择的,如图54b 所示,延迟可以加在M5上,也可以从M2和MO上去掉。上述情况可被看作,减少了从M6到 M2到MC之间的总的延迟,而没有减少M5到MC之间的延迟。如图55a所示,为图46和49中描述的树结构的延迟的示意图,其中分别表示了标 识为0和N的比特的延迟。如图55b中所示为与图55a相同的树结构,但是图55b中没有 模块M7。删除了长延迟,如图55b中所示,即为没有“最长延迟模块”的情况。比特0的最 长延迟发生在到模块M6的通路,而比特N的则发生在到模块M4的通路上。图46-55为时间延迟的一些例子,如,模块M和模块控制器MC的返回通路上的延 迟。MC和模块M之间的命令和数据的传输,信息的确认和数据的返回也同样存在时间延迟; 但是,在数据返回的情况中返回通路需要从一路以上的通路中选择数据,与之不同的是从 MC发出的命令或数据则只需要将数据下行发向树结构中的各分支即可。同步化时需要对相 位进行校正,而不需要对额外时间延迟造成的歪斜进行校正。因此,即使是对相同的比特, 从MC到模块M的时间延迟和自模块M的返回通路的时间延迟可能不同。在图56中,当模 块上存在延迟时,为了简便起见,模块之间所有的延迟,包括相位同步延迟的歪斜都作为连 接到模块的线路的长度中的一部分。如图56a所示,在树结构中,命令从MC发出,模块内传 输产生的全部延迟用点线表示。为了与通路管理中的讨论一致,对于不是广播命令的其他 命令实际上不会经过在模块之间的每一个连接,而是仅仅经过一部分取决于目的地址的连 接。但是对于经过特定的通路传输的情况,图中则显示了该特定通路上的延迟。如图56b所示,其中树结构与图48中所示的一样。模块之间的线路是图48中所示 的线路和图56a中所示的线路之和。点线580表示从MC的比特0传向其他每一个模块时 遇到的时间延迟,实线和突出部则代表信号从各模块返回至MC的比特0时延迟。为了方便 表示,从MC发出信号的准备时间,目的模块解码、对信号进行操作和传输响应信号的时间, 以及MC上解码和对信号进行操作的时间都忽略了。图56中表示了命令从MC的比特0发送向任何一个或多个模块Mi以及Mi对命令 的响应被MC接收的总的传输时间。图57中显示了图56b中的更多细节,包括表示在树结构中命令和响应的总的传输 时间的符号。sdM_i_N表示命令(或数据)从MC到Mi以及通过线路N第一个比特从Mi到 达MC的输入端的时间延迟。stM_i_N(t)表示从比特N发送到响应被发送电路接收到的所 用的时间。如图所示,对于模块M5,命令从MC的比特0向模块M5发送,并且其响应被MC接 收的情况有 stM_5_0(t) = t+sdM_5_0。在上述例子中描述了输出和返回的通路结构一样的树结构中的情况。但是上述结 构并不是必须的。图58a和b表示了模块相同但是信号从MC发出和接收的路由不同的情 况。图58a中表示的是一返回路由,而图58b中表示的是一发出路由。图58c中表示的是信 号的整个来回传输的时间,其中虚线和实线分别与之前的例子中一样代表不同的用法。在 本图中,一些通路在不止一个地方出现,这些延迟用圈在线路上的椭圆圈以及表明存在延 迟的线路进行提示。图59与图49意义一样,但图49中只显示了返回通路,而图59中还显 示了发出通路的情况。
如图60a,b所示,为具有多条信号通路的示意图,其中上述信号通路与数据通路 是分离的。在图60a中,有经过MO到M2到M5再到达M4的通路。上述通路用以箭头结束的 线路与前面讨论的通路MO到Ml再到M4相区别。类似的,从模块M3也可以经两条不同的通 路到达M7。举例来说,上述两条到达M7的通路可能代表链路的通道化,其中每一通道都有 相关的信号成分。用这种方式表示信号通路可以说明不同的通道具有不同的信号延迟的情 况,比如,当因为使用具有不同延迟的不同线路时。到M4的附加的通道可能代表用于通信 的附加的连接。上述的情况可能可以看作是当模块以栅格网孔的方式连接时的一个例子。 在一个方面,存在一个以上的模块控制器与同一模块通讯时,将会存在不同的通路长度,由 于存在一个以上可用于传输控制信号的路由,则可选择的不同的通路以避免信号冲突。如图60b所示,为与模块控制器MC和每个模块Mi之间的通路有关的时序的示意 图,其中,信号通路用点线来表示,返回数据用实线表示。来自模块M4的额外延迟出现了两 次,用椭圆圈指示了与上述部分有关的地方。其中一条通路为从MO到Ml再到M4的通路, 另一条为从Ml到M2到M5再到M4的通路。在以下对从模块返回的数据或命令的细节的描述中(其中的数据或命令是对其 他命令的响应),为了便利起见,假定命令从MC传至所有模块时没有时间延迟,目的模块对 命令的处理和响应也没有时间延迟。这将有利于使用符号进行描述。进一步的,将会首先 讨论时隙模型,而在后面的说明中也可以看到这种限制也是可以去除的。图61-71中所示 的关于时序的例子说明了数据是如何到达MC的。时隙显示在一个时间轴上,时间轴的右边表示到达模块控制器MC的时刻,而向左 的时间表示命令或数据将在未来的时间到达MC。符号tCi表示包Ci的第一个比特到达MC 的时刻。上述讨论与线路0有关,而相同类型的时序安排也可用于每个单独的线路。进一步 的,以线性的方式显示有延迟dMi的时间轴,而延迟是在树结构中产生的,并且上述延迟也 可与差分延迟抖动缓存混合。这即是表明,模块向链路的一条线路上插入比特的实际时间 为传输的延迟时间。图中没有显示由于抖动/热效应缓存导致的时间的变化的影响,因为 这将使图示变得非常的复杂。上述简化的结果是,如果在网络结构中的较低层考虑比特的 时序,则看上去各比特是相对于彼此在移动,这使得这些比特处于时间轴的错误的位置上; 但是,对抖动/热效应缓存进行纠正后在MC收到的时序则是正确的。一个时隙的总的长度用六边形框900表示,一个比特的时间周期则用小的六边形 框910表示。在本例中使用了时隙系统,其中对模块进行限制,只有当一个合适的时隙到 达时数据才会被传输否则模块需要进行等待。例如,在tl时刻读命令被发往M7,由于tC_ (i+4)已经在模块M7开始了,则对上述读命令的响应时间不能早于时隙tC_(i+5)。图61b 中描述了当一个完整的时隙已经过去的情况。此时,所有的时隙都移动一个时隙,时隙iC_ (i+1)将要抵达MC。模块M7已经开始插入数据,在时隙iC_(i+5)中已经插入了 5个比特 的数据。图61c显示了 iC_(i+2)将要到达MC的情况,可以看到此时,来自M7的所有比特 已经插入了时隙920。在以后的某个时刻,上述时隙将会被MC接收。上述情况中,比特在每 一个时钟脉冲中被顺序插入,这样数据就被填入一个时隙中了。一方面,如图62a_c中所示,给每个模块都安排一个固定的时隙,这样从模块到树 结构的根节点(比如模块控制器MC)的数据或命令以一个预定的顺序抵达。在本例中,MC 可传送多个命令。为了简便起见,假定命令和数据在具有固定延迟的系统传送。在本例中,对命令进行处理时假定具有最远模块的延迟。这样,即使模块具有较短的延迟,其返回的命 令或数据将会被延迟以使其可填入预定的时隙中。如图62a所示,时隙tC(i+6)提前了 5个时钟周期到达M7,并且已经在该时隙内插 入了 5比特数据。另外,已经向MO和M2发出了读命令,对这些命令的响应的时隙分别分配 在tC(i+6)和tC_(i+7)中。如图62b所示,为8个时钟周期过后的情况,其中M7已经将数 据填满分配的时隙,另外,已经向M3和M6发出了读命令,对这些命令的响应时隙分别分配 为tC(i+9)和tC_(i+10)。经过8个时钟周期后时隙移动了一个完整的时隙周期。需要注 意的是,通过比较时隙的位置和延迟时间dMi可知,尚没有随后的时隙到达用于为这些时 隙中安排携带响应的设备,也没有其他模块插入了信号比特。在图63a中,又过了 8个时钟周期的时间,而被分配给模块M0,M2和M6的时隙向 前移动了,但是还没有在时间轴上达到相应模块可向其插入数据的时间。在图63b中,又过 了 8个时钟周期,与模块延迟dMi比较可知,此时分配给模块M0,M2和M6的时隙都到达了 合适的模块;并且模块MO已经插入了 1个比特,模块M2已经插入了 5个比特,模块M3已经 插入了 2个比特。可以注意到,到达MC的时隙上标识了从序列开始以来已经过去的总的时 钟周期的数目。在时刻tMC_0 = tl+45,模块M6已经插入了 7个比特,而其之前的时隙都已经插满 了数据。在4个时隙时间后,在时隙tC_(i+10)结束时,所有的数据比特将会抵达MC。完成上述序列传输的全部时间即是最远模块的时间延迟,在本例的线路中最远模 块为M7。对于别的线路,具有最大延迟的模块可能为别的模块。在这种情况下,延迟可能会 增加成最大延迟。另一方面,如图64中所举的例子,其具有可变的延迟时序。仍然使用时 隙系统,但是向模块发出的命令可能被分配给第一个返回的时隙,该时隙没有被分配给任 何模块,也没有到达与上述接收命令的模块相关的延迟时间。为了进行对比,令图64和65 与图62和63的时间序列一致。但在本例中,当向MO和M2发出命令时,其命令响应时隙分 配为tC_(i+4)和tC_(i+5)而不是图62和63中的tC_(i+7)和tC_(i+8)。如图64b中所 示,经过8个时钟周期后,向模块M3和M6发出了命令,其响应时隙分配为tC_(i+7)和tC_ (i+8),而不是原来的tC_(i+9)和tC_(i+10)。图64a到图65c,显示了返回时隙向前行进, 数据已经在适当的时钟间隔中插入的过程。对发往模块M6的命令的响应的最后一个比特 在tMC_0 = t+55时刻被MC接收,而在如图62和63所示的使用固定延迟时序的例子中,其 响应的最后一个比特直到tMC_0 = t+71时刻才被MC接收。可以看出,由于使用了可变的 延迟时序,来自任何模块的响应的延迟都可以减少。如图66和67所示,在本例中取消了对数据与传输时隙的限制。在图66a中,在t =1时刻向M7发送了读命令R(在本例中忽略了传输和处理命令的延迟),图中所示为4个 时钟周期后的情况,此时已经在线路上插入了 4比特数据。如果也向MO和M2发送了命令, 则这些模块也可以插入数据。如图66b,为图66a所示的时刻又过去4个时钟周期的情况, 其中M7的所有响应比特都已经插入时隙中,MO和M2的响应中的四个比特也插入了时隙中, 并且此时向M3和M6发出了命令。如图66c所示,又过了 4个时钟周期,模块M2和MO已经 完成了响应比特的插入,但是M3和M6还没有开始插入比特。因为有可能与M7的响应时隙 重叠,所以没有立刻为M3和M6分配响应时隙(对MO和M2则是立刻分配的),而是将M3和 M6的响应时隙放在了下一个可能的时钟周期。图67a-c中显示了后续时间序列的情况。本例描述的情况,可能会使时隙之间间隔一定的空间。这使得可以利用上述空间来传输不同 长度的数据或命令,或者用来交错传输来自不同模块的响应。如图68和69所示,为显示了信号延迟的非时隙响应的情况的示意图。信号的延 迟决定了响应时间的位置,其中还考虑了命令到达模块的时间,并且对比特插入到线路上 进行了延迟。这描述了没有指定模块向线路上插入比特的时间的情况,上述线路在模块接 收命令的时刻已经通过了该模块。因此,系统并不需要具有时隙时间序列。模块控制器MC所在的系统或是总线可能以一个较低的时钟速度运行,其时钟速 度可能低于该MC。MC也有可能在一些时间周期中接收高速数据、对数据进行去串行化、对 数据进行闭锁以及将数据发送到其他接口、或在模块控制器MC内使用数据。如果到达MC的 数据与较低频率的时钟进行锁定的时间不足时,则数据将在低速时钟的时钟频率下使用。如果比特没有在将被使用的下一个低速时钟周期及时到达,则该传输与比特在刚 过去的一个可能的时间到达的传输相比不具有任何优势,上述可能的时间中比特可能在下 一个低速时钟周期被使用,这就需要提高系统性能以及降低逻辑复杂度。如图70a所示,为与图68a中所示的系统具有相同信号延迟的系统,其中,M3的信 号延迟(sdM3)比M6的信号延迟(sdM6)小,上述两个模块对tl时刻发出的命令的响应发 生在同一时刻tl_(tl)+48。因此,如图70b所示,如果M3的信号延迟调整到调整的信号延 迟asdM3,则M3的响应潜伏期将会保持不变。在本例中,模块控制器MC的命令返回时序控 制器可能不会在高速时钟周期的基础上对时序进行控制,而是在低速时隙上进行。命令时 序控制器也可以对信号延迟落入具有相同时隙的模块的时序任务进行处理,比如图70b中 所示的 sdM6, asdM4, asdM4 禾口 asdM3。如果上述延迟的调整有利于模块控制器MC的操作或执行,则模块信号延迟的这 种调整将会仅仅作为“虚拟”调整来进行。即是说,信号仍然以SdMi而不是asdMi的延迟 到达模块Mi,但是模块控制器则将信号看作以asdMi的延迟到达来进行操作。延迟也有可能由于进行如图35-38中所示的线路交换而增加,上述交换通过增加 某一模块的信号延迟而减少了另一模块的信号延迟。总的信号延迟为前向和后向延迟的组 合。如在图70a中,如果增加一小部分sdM2的时间,则可以减少sdM3,使得sdM3 <= dM6, 这样就可以在不增加M2的命令潜伏时间的情况下,减少M3的命令潜伏时间。通过调整一个以上的其他模块的延迟可能可以改善一条通路上的总的延迟的情 况。对延迟的改善也可能使另一模块的命令延迟时间增加。如图70a所示的例子中,增加 了 sdMl使得sdMl = sdM2,同时降低了 sdM7使得sdM7 == sdM6。在本例中,Ml的命令潜 伏时间可能增加了一个时隙时间,而M7的命令潜伏时间则减少了一个时隙时间,同时sdMl 仍然比sdM7小。当模块的命令延迟减少时,对延迟的调整实际上可能使得其延迟比模块增加的延 迟变少,这将会有利于总的延迟的减少。如图70c所示,其配置与图70a中的一样,其中,模块控制器MC可以在不固定的时 隙传输命令,或/以及可以在低速时钟速率下传输命令。如图70c所示,为tl+4时刻,或者 说是图70a中所示时刻的4个高速时钟周期后的情况,其中时隙向模块控制器MC移近了 4 比特,这产生了一系列不同的调整信号延迟值,使用这些值可以不影响模块的命令延迟。如图71a所示,其中模块MO和M2的数据延迟和命令延迟与之前的例子中的情况一样,图中还示意了每一个模块执行3个不同的命令CMD#1,CMD#2和CMD#3的时间,以及 当前一个命令为CMD#2时执行命令CMD#3的时间(这个时间表示为CMD#3_(2))。这种表示 方法也可以表示之前有一个以上命令的情况,或者表示模块或系统的不同状态。在本例中, 上述两个模块的命令延迟时间相同;但是对于每个模块其给定命令的延迟并不一定是相同 的。如图71b中所示,为命令信号延迟的产生的示意图,其中符号“sd[3]M2”表示模块 M2对命令CMD#3的信号延迟,而sd[3_(2) ]M2表示模块M2对命令CMD#3_(2)的信号延迟。对于一个模块,可能存在不止一个调整信号延迟。例如,模块控制器可能将从一 个模块返回的数据发送至一个以上的目的地,或者对上述返回数据进行不止一种类型的操 作,这样就可能遇到一个以上的时钟周期的边界。上述时钟周期的“边界”也可以是指向设 备、功能或处理过程等的连续过程中的时间段的起始时间。并没有要求时钟具有固定的相 位或频率关系。在前面的例子中使用了“高速时钟”来表示高速连接上的“一个比特时间”,虽然高 速时钟与比特时间有些不同,比如,数据在两个时钟边缘传输时,使用多值的信号,或者不 同的时钟,多相位时钟,或/和使用一个以上的时钟。需要说明的是,为了叙述的清楚,所给 的例子中认为时钟时间和比特时间是一样的。同样是为了描述清楚,所说的数据在“下一个低速时钟周期”到达也应该理解为下 一个数据可以被使用的时机,这个时机可能不一定是立即到达的下一个时钟时间。本具体实施例中还给出了物理和逻辑的布局结构。对于本领域普通技术人员来说 其他的布局方式也是可能的并且是显而易见的。例如图72中所示的与图5类似的树结构 可以布局在主板或底层上,并使得模块M0-M7以平行于彼此的方式线性排布。这种排布方 式有利于冷空气的流通,或优化母板或主板上的电子布局。如图72中所示,模块中的线路 以箭头表示终止,并在模块的边界处起始以表示模块之间的连接。这些线路中的一部分穿 过了模块但是没有与穿过的模块有任何功能上的连接,这种情况用点线或虚线来表示;但 是从一个模块起始,穿过另一个模块且没有用箭头作为终结的线路将被当作物理上通过了 该模块。通过某一模块而没有功能的相互作用的线路的物理方面的特性可能取决于设计的 细节,但是一方面,点线或绕过的线路可代表是穿过了印刷电路板的背面,或是印刷电路板 或底层中的某一层的线路。如图73a所示,为与图72—样的排布方式,但是其中每一个模块具有“前”侧和 “后”侧,图中用宽箭头示意了模块的前侧所处的位置。每一个模块在前侧有一个端口,后侧 有两个端口,其中每个端口有两个单方向的线路组。另一方面,每一个端口有可由双向的线 路组成。在上述排布下,两个模块(如MO和Ml)之间的一个接口将会导致如图73b中所示 模块的前侧面向另一模块的前侧的情况。图72中所示的排布中的模块的方向都显示在了 图73a中。如图74a_d所示,为模块的另一种排布方式。图74a为模块MO和Ml的俯视图,图 中的模块之间的线路为单向线路。可选的,其中的每一条线路也可以是双向的或可以是线 路组的组合,符号R和T应当看作是方向区别标识而不是代表接收或发出连接。在本例中, R连接在模块的左边,T连接在模块的右边。当连接模块Ml的T到MO的R时,上述连接会 通过上述两个模块的下方,而模块MO的T连接到模块Ml的R连接之间的线路则不需要通过模块的下方。图74b为图74a中的排布的剖面图,其中一些线路布置在板中某一层上970a,一 些线路布置在板的另一层970b上。每一个模块都可以是一个电路板,在该电路板上可以布 置不同的电路元件上述元件可包括存储芯片、CSE、其他接口、计算元件和类似的设备。图 74c为另一个排布的俯视图,图74d为相应的剖视图。在图74c,d中的模块用符号Si表示, 其可代表切换开关。切换开关S可以是CSE或其他布置在电路板上的元件。除非有其他特 别的限制,符号S,Μ, T,R为一般性意义的符号,而不是局限为代表切换开关、模块、发送功 能、或接收功能。其中的线路可以是单向的或是双向的,也可以是具有上面描述的特性的组 合的线路组。如图75所示,其中模块之间的相互连接可能不在同一个主板或底层上。如俯视 图75a中所示,MO和Ml之间的连接在同一个主板上,而M2和另一模块(图中没有显示,但 是该模块处于模块M2的右边)的连接也在同一主板上,但是MO和M2之间的连接则处于板 980上,板980位于模块MO和M2的顶部并连接了这两个模块。可选择的,也可以通过有线 连接和连接器或其他方式完成上述连接。上述配置方式可参见如图75b所示的剖视图。图76表示了图72中的排布方式的一部分,其中到模块的连接为交替出现在模块 的任一边的连接端口 T和R。如图所示,对于一个单独的交替,接收连接R在模块的右边, 发送连接T在左边,接下来则是发送连接T在左边,接收连接R在右边。对于每一个模块都 有三个端口。上述连接的交替可以有任何多次,与每一个交替相互连接的线路为0条以上。 每一组中的线路数目可以不相等。这种布置连接的方法可以不对模块的前侧和后侧进行区 分,可以如在图73中所示布置连接,其中可以不需要旋转该模块两端位置颠倒来确定面向 区的方向。因此,在一些应用中可以生产对称的插入卡。另一方面,图77中模块的排布方式与上图一样,但是T和R连接没有相互交替。本 例中,R连接在板的左边,T连接在板的右边。这表明对于特定的模块和连接的布置可以不 进行连接的交替。如图78所示,其模块的连接布置方式与图77中一样,但是从Ml到M3的两组传输 线路不是都布置在顶部,而是在距离顶部的第二组的位置。如图77中所示,模块MO到M3之 间的线路从MO的顶部经过处于MO的中部的切换开关(图中没有显示),再穿过Ml的顶部 到达M3。即最长的信号通路为MO到切换开关并穿过M1,再到模块Ml的顶部的整个长度的 一半。根据如图78中所示对线路进行排布,从M3到MO的输出再到MC(图中没有显示)的 距离被缩短了。在这方面仅仅考虑了模块上的通路的长度。而模块之间的距离也是整个路 由的一部分。在一些情况下,信号在模块上经过的距离比模块之间的距离更长。可以看到, 对模块上的通路进行互换可以减少到树结构的更下级的模块的延迟,这种互换类似于数据 在逻辑上在传输线路上进行交换的情况。如图79所示,其中模块之间具有不同宽度的链路。模块MO到模块控制器(图中 没有显示)之间具有两个具有完全端口的完全的线路连接。而MO到模块Ml,M2,M3和M4 的线路数目分别只有到模块控制器的线路数目的一半。由于每一个模块都可以将线路连 接至MO,则两个模块可能同时以全速相互通讯。M5,M6,M7和M8都有到Ml的连接,在这样 的例子中,所有的模块可能同时具有全速连接。上述这种配置方式可以称为“丰满(fat)” 树。在这样的树中,通往根节点的数据通路在靠近根节点时逐渐变宽,这样可以在没有拥塞
38的情况下访问多个模块。如图80所示,为以网格形式排布的模块组的示意图。在图80a中,4个模块连接成 基本的四方形,其中模块对之间相互平行,并且模块对处于同一直线方向上。当模块通过连 接器垂直安装在板上时,上述的这种模块之间的平行排布关系将有利于冷空气的流通。不 考虑逻辑连接关系,其物理上的这种排布可以变得比较规律化。在图示中,模块的发送和接 收连接交替出现。当采用U形连接时,U形线路组中的外圈的连接具有最长的路由,但同时 该路由离模块中心最近并且可能离位于中心位置的切换开关或CSE最近,则使用U形线路 连接MO和M2可能可以降低歪斜。如图80b所示,为图80a中所示的电路的逻辑表示的示意图,图中每一个方块代表 一个模块或类似装置,每一条单一的线路代表互连在模块之间的所有连接(如模块之间的 链路线路和线路)。基于上述基本结构,图80c中表示了 4个模块的基本组合如何构造成模 块网格网络的情况。上述网络并不需要在任何维度都是规则的,在网络中可以存在间隙。如图81a中所示的6个模块组的排布,模块之间可以形成各种各样的几何排布形 状。(需要注意的是,如图中所示,并没有要求不同的模块为不同的物理尺寸;使用不同尺 寸的块仅仅是为了表示的方便)。6个模块的逻辑排布与4个时类似,如图81b所示为一六 边形形状的排布。图82中表示了由六边形组成的网格。在图80中,从MO发出垂直向上的 通路与M2的底部的通路相连接,而在图81a中,在板的顶部上的传输线与M2的板的顶部的 接收线相连,且MO与M3的T连接相连。实际上,MO可与M5相互通讯,M3可以与M2相互通 讯,而如图82中所示,由于6个模块的模块组相互之间形成分支使恰当的终端相关联。另一方面,如图83所示,为与处理单元(CPU)、或模块控制器、或其他可以与模块 进行连接的设备相连的一种模块网格结构的示意图。在这种情况下,4个中央处理单元 (CPU1,…,4)可共有一个存储器。如图84所示,为2个CPU与2个树结构(即有两个根节点的树结构)相连的排布 的示意图。一方面,CPU CO可以作为一个树结构中的根节点与模块M0,M2,M4和M6连接, 而CPU Cl作为模块Ml,M3,M5和M7的根节点。通过根节点CPU到达一个树结构可以不需 要考虑对另一个树结构的操作。但是,当需要访问另一个树结构时,需要提供一种防止在树 结构系统或CPUs之间的潜在冲突的协议。双端口存储器可以允许两个或两个以上的CPUs 在同一个模块上存储信息,并提供公有模块的访问通道。特别的,可以对模块MO到模块Ml 之间的连接进行配置,例如,使得这些连接线路中的一半在一个CPU的控制下工作,而另一 半在另一个CPU的控制下工作,这样CPUs之间就可以互相传输信息,或进行其他类型的通 讯了。如图85a,b所示,为模块组与CPU连接的两种不同的排布方式,其中在逻辑树结构 中的每一个模块都与CPU相连。在这种情况下,没有在逻辑通路上的链路没有处于开电状 态;但是也不排除使启动这些链路。控制和返回通路也可以使用不同的逻辑树结构。在上 述树结构中,可以根据单个模块的使用情况分配数据和控制流上的负载,也可以重新分配 链路的逻辑关系使得可以对I/O设备进行访问。如图86a所示,为六边形排布模块组,其中每一个六边形都有一个单独的 CPU(CPU1,…,4),其控制通路用粗实线表示。如图86b所示,为四边形排布模块组,其中每 一个四边形都与一个单独的CPU相连,为了表示清楚,每一个CPU的逻辑控制通路用不同的
39符号表示(分别为不同的实线、虚线和点线)。在上述图示中,各CPU只可访问与之相关的 存储元件组,但是CPU没有与其他计算设备共享访问通路。而在87b中,扩展了控制和返回 总线使得上述总线可以访问共享的存储器区域。对到共享的存储器的访问的控制可以在树 结构中进行,或通过不同通讯通路上的CPU之间的通讯进行,或通过其他方法进行。对于 CPUs Cl和C2,其中一些线路的宽度只有之前所示的线路的一半,如前所述,这种配置可被 两个处理器同时进行访问。也可以对处理器进行配置,使其可以选择性的访问共享的存储器。
如图88所示,为具有4个CPU的模块网格结构的示意图,其中,上述模块可以是存 储器模块,还有4个模块可为输入/输出(I/O)设备(分别为1/0#0到1/0#4)。在本例中, 每一个CPU都可以在不需仲裁的情况下同时访问任何一个I/O模块。如图89所示,其中I/O模块由其他的计算机系统元件代替,上述元件可为用于连 接多支路总线的总线桥(bus bridgeS,BB),其中上述总线可以是PCI总线、点对点总线(如 PCI专线);也可以是与多支路的存储器总线连接的存储器网络集线器ΜΗ#0的接口,以及与 点对点总线连接的存储器网络集线器MH#1。图中线路的宽度是不同的,这表明不是所有的 通路都必须具有相同宽度,也不需要通路之间是对称的。如图90所示,为同时支持线性和/或树结构布局的模块和其链路的排布示意图, 其中具体为何种布局取决于使用哪一组连接线迹。如图91所示,为使用图90中的中央连接线迹形成的线性布局的排布图。如图92所示,为使用图90中的部分中央连接线迹形成的树结构布局的排布图。如图93a所示,为一组RAM芯片和一个CSE在模块M上的排布图,其中CSE位于模 块的两侧,并提供从模块控制器到RAM芯片的连接。RAM仅仅是各种存储器类型中的一个例 子,此处也可以使用其他类型的存储设备或技术来代替CSE。如图93b所示,其中3个CSE以“位片(bit slice) ”的方式提供了图93a中的功能。与图93a类似,图94a为在模块上布有一组RAM芯片和CSE的排布示意图,其中连 接到RAMs的数据线用实线表示,地址/命令线用虚线表示。在各实际应用中,模块的大小 以及在板上的位置都是可变的。如图94b中所示,模块上设有几个CSE,其中RAM发出的数据通过一系列较小的 CSE被分成位片。虽然位片CSE也可以控制地址/命令线,但控制到RAM的地址/命令线的 CSE为在模块最右边的CSE,并且该CSE也可以从一些RAM芯片获取数据,。如图95所示,其中树结构的底部的叶子模块(M6和M7)上的信号链路的相对物理 位置是相同的,在这样的布置下可以进行多种优化,如使用仅有一组链路和/或连接器插 脚并且只能与一组链路相接的CSE建立叶子模块,也可以从其他具有较少的功能的模块中 获得其他的好处。图96中的左侧与图95中的左半部分的模块组的情况一样,其中还显示了模块M6 相对于其他线性对齐的平行模块的偏移。在图96的右侧中,其模块还是一样,但是对连接 线迹进行了调整以减少模块M6的偏移量。如图97所示,为使用双向链路的模块的排布的示意图。术语“模块”可代表CSE以及其相关的功能和/或元件,即使“模块”可能布置在相同的板子上,而另一“模块”不一定要与模块控制器和/或其他模块通过可插拔的连接器 相连。CSE之间的连接用板子上的连接线迹来表示,但是这不代表排除其他通过电线、电缆、 光连接、底层连接线迹以及其他类似方式进行的连接。如图98所示,为之前描述过的模块,其中模块中增加了高速缓冲存储器(该缓存 可以采用RAM或其他类型的存储技术)。上述缓存可以只是CSE的一部分,也可以是整个模 块,用于对来自或要发往模块控制器或任何其他模块的数据在通过本模块时进行缓冲。缓 存的使用可以有利于增加数据流的时间灵活性,而且,如果存储了合适的数据则可以对数 据流重新配置以解决如模块故障等问题。如图99所示,为一个CSE桥接在多个可能的不同互连系统之间的示意图。图99a 中,CSE连接了在模块的顶部边缘处的连接。图99b中,CSE连接了两个处于模块底部边缘 的连接。在另一方面,还需要考虑系统通讯、计算和存储能力的稳定性。数据或功能可能会 由于一个或多个元件的故障而丢失或丧失,因此需要相应的考虑单个器件或元件的稳定性 和系统结构的稳定性。应当避免单个点的故障,如计算机处理器、存储控制器、节点、存储器 模块或类似元件的故障。系统的总体配置中提供了数据错误修正和对被破坏数据复原的冗 余技术,比如检验和,循环冗余码检验(cyclical redundancy check, CRC),错误修正码和 RAID等。术语“RAID”字面上为“经济磁盘的冗余阵列(Redundant Array of Inexpensive Disks),,的缩写,但是现在RAID在本领域中还代表任何与从存储元件上的数据中去除数据 和校验比特的技术有关的冗余技术,这也是在本例中RAID所代表的意思。在此处所描述的 通讯、处理或存储结构中均具有数据修正功能和冗余连接,这样在整个系统完全不能工作 之前至少可以承受一次以上的故障。上述故障可以在比如数据丢失之前被检测到,并在数 据丢失前识别出故障的元件或设备并替换故障元件或设备。一方面,设备、元件或模块在被 替换时可以仍然保证电力供应,这样上述设备在整个修理过程中仍然可以保证正常执行其 功能,这种修理方式在本领域中通常称为“热切换”。如图100中所示,为一个二叉树结构的示意图,其中,模块的物理排布方式为线性 的。模块之间的通讯线路或链路或总线用两端都以箭头结尾的线条表示。当总线通过模块 但并没有与其连接时,总线的这部分用灰色的线条表示;即只有当总线或链路上的箭头与 模块接触时才代表上述总线与该模块之间相互连接了。在本例中,每一个端口都分为两个 通道,用模块的第一侧上的一条总线和模块第二侧上的两条总线表示上述通道。当描述模块的树结构时,用数字表示的“层”来表示树的结构以及描述模块所处的 位置是比较方便的。在图100的下面部分,显示了 5层二叉树中模块之间的逻辑连接关系。 树中的根节点为一个单独处于第0层的模块,用模块0 (MO)表示。根模块可能通过一个端口 与存储控制器MC(本图中没有显示)相连,通过另外两个端口与位于第1层的另外两个模 块(Ml和M2)相连。在二叉树中使用的模块都具有三个或更多的端口,如前所述,上述端口 可以又分成一个或多个通道。在本例中,一个端口被分成了两个通道。还需要注意的是,在 本结构中可对软件和硬件进行设置使得在一个模块的任何两个通道之间都可以进行通讯, 其中端口的具体指派不影响上述通讯,其主板的信号线可连接至处于每一个模块上的不同 位置的连接器上。在本例中,直接相接的模块之间可以用两个通道进行通讯。在图100的上部分中显示的为在线性布置的每个模块的下方,数字序列中的第一行MM表示的是模块的数字标号,第二行数字L则表示模块在树结构中所处的层。在本例所 示的排布方式中,处于第0层的根模块0布置在模块组的中间,总线位于图的顶部并连接至 如存储控制器MC或CPU或类似的设备上。在模块0的两边是位于第三层的模块10和12。 而属于第1层的模块大约位于根模块和图中最左边或右边的模块(即物理上线性排布的分 别处于最边上的模块)的中间。在本图所示的情况中,相同层的模块并没有排布在彼此的 对面,这减少了热点,有利于存储阵列的冷却。在本例所示的树结构中,由于仅有模块0是直接与MC连接的,所以所有的数据最 终都会通过模块0。这意味着模块0的线路将会比其他模块的线路更经常处于活动状态,而 且模块0将会具有较高的功耗。为了方便的讨论功耗问题,假定所有的模块都出现,且读和 写命令平均分摊到每一个模块上。则第一层模块将会接收和发送根模块处理的所有数据的 一半。这意味着第一层模块的线路处于活动状态的频率平均为根模块的一半,这使得第一 层模块的功耗相对较低,简单考虑的话就是根模块功率的一半。类似的,第2层模块的功率 消耗则为根模块的四分之一,第3层模块的功耗为根模块的八分之一。因此,除了功耗最大 的根模块以外,其他各模块的消耗相对较少,在如图100中所示的排布情况下,根模块的两 边为第3层模块,该模块的功耗仅为根模块的八分之一。这样的排布将会有利于根模块的 冷却,而其他模块只有较少或没有热点其冷却将会不那么困难。在此之后将会讨论具有多 根节点的树以分散系统吞吐量的情况,对本领域的普通技术人员来说很容易理解到每一个 根节点的功耗将会减少为原来的一半。如图101中所示,还有许多可用于二叉树的连接方式,在二叉树中每个模块有3个 端口,每个端口被分成两个通道。在图IOla中,通道相对于线性排布的模块的中线对称分 布。可选择的,如图101b,模块之间仍然具有相同的通道和端口,但是连接两个模块的两条 通道之间有一定距离,这使得到另一模块的通道至少有一条是与其他通道间隔开来的。对于具有多根节点的树来说,其第0层有一个以上的模块。在这种情况下,每个树 中的各个根模块有不同的数字标号。在图102中,对第一个根节点其树结构中各模块的数 字标号M#在图的顶部,而第二个根节点其树结构中各模块的数字标号M#*则位于图的底 部。比如,一个模块可以标为0或11,这取决于这个模块是作为树的根节点还是节点。模块之间的线路或总线常常受到针脚密度、连接线迹或线路密度、串扰或其他类 似因素的限制。发送和接收功能的分离,以及线路的分离将会有利于解决上述问题。如图 103a所示,为连接一组模块的线路的一个例子,在俯视图中可以看到在模块组中其他模块 相对于中间模块对称排布。图103b为在印刷线路板PCB实现上述总线连接的正视图,其中 上述PCB板有3层及4个表面。总线可以方便的进行排布并避免或减轻线路交叉、多路由、 盲路由以及类似的问题。在连接的主板设计中,连接器上的针脚穿过PCB板并与每一层的连接线迹相连, 这样每条总线的垂直部分实际上为连接器针脚。连接器针脚通常都具有相同的物理长度, 即使在有些层中不需要进行连接上述针脚仍然会穿过电路板的所有层。当与时钟和信号数 据率相关的频率较高时,这样的针脚可能会成为伪信号的辐射点。虽然可以使用多层PCB,但是并不排除部分或全部的总线连接排布于单独一层上。 同时此处描述的排布方式的各部分也可以有许多其他的排布方法。例如,包括CSE和存储 器在内的部分或全部的元件和互连可以与半导体电路结合在一起,冲模可以处于互连底层或底层或类似结构上。则产品的结构和封装可能与此处所举的例子完全不同。如图104中所示,为一多根节点的树结构的排布示意图,所示结构中有冗余保护, 由于提供了额外连接线迹,且各模块的软硬件可对路由重新配置,使得当某一个根模块故 障时系统仍然可以正常工作。图104a中为树结构的基本连接情况,其中实线表示基本连接 中的总线,图104b中所示为其逻辑连接情况。在图104a中,每一个方块表示树中的一个存 储器模块,并将其布置在相应的存储模块之下。其中MO为根模块并与存储控制器连接。如图104a中所示,本系统的额外互连用粗虚线表示,当系统出现故障时可能会使 用到上述额外连接。当与MC连接的根模块MO故障时,该树结构可以重新配置成如图104c 中所示的结构。此时,模块MO故障前的部分线路将不会被使用(如MO和M2之间的线路), 而此前处于非活动状态的线路将会被启用(如M4和M5之间的线路,图中用粗虚线表示)。 相应的,树结构中的各模块所处的层数可能有所改变。例如,原来为第0层的模块MO现在 在第3层,而原来在第1层的M4现在处于第0层。虽然图104中所示的结构中提供了一些 冗余,但本结构中并没有为任何节点或线路的故障提供冗余替换结构。如图105所示,为一个可以适应任何单个地方故障而不丢失故障元件的数据的树 结构的连接的示意图。其中保留了到所有模块和所有可操作的链路的连通。如图105b所 示,为树结构的逻辑连接关系图,其中实线链路线路表示当所有线路和节点均处于正常状 态时的树基本结构示意图。而虚线表示原处于非活动状态的线路,当根模块0故障时其会 变成活动状态。此时,原处于第3层的模块10重新指派为根模块。如图105b所示,上述变 化用从模块10发出的垂直向下延伸的虚线表示。如图105a所示,为主板上的线路和模块的俯视图,而图105b中为相应的树结构的 逻辑图。用实线表示的链路为活动状态,此时树结构中没有任何故障。而用虚线表示的链 路为当系统中存在一个故障时使系统重新配置后仍可工作的替代链路。本图中所示为根模 块故障的情况,这种情况可能是最严重的系统故障,由于根模块为功耗最大的模块因此这 也可能是统计上最可能会发生故障。在其他条件相同时,某一类型的半导体电路的故障率 随温度的升高而增加。当树结构重新配置后,之前处于活动状态的连接并不都会继续为系 统所用。树结构的重新配置将会导致数据的改变、控制通路和一些模块所处的层的位置的 改变。如图106中的表示有助于使上述改变形象化。图106a中所示为系统中无故障的基本 配置情况,其中辅助链路处于非活动状态(用虚线表示)。当模块0发生故障时,如图106b 中所示,将树结构图沿水平轴对称翻转,这样模块0处于底部而模块15则位于图的顶部。如 图106c所示,可操作的额外链路用粗虚线表示,而不可操作的链路则用细虚线表示。如图107所示,为一个较大容量的主板的示意图,其中有4个模块组,每组有16个 模块。图示为一种进一步增加主板容量并保持冗余结构的配置。每一组模块标识为“第η 组”(其中η为0,1,2,3),并分别具有图105和106中所示的配置结构。四个模块组之间的 连接由电路元件C完成,这些元件可以是CSE或类似元件,这样任何设备C、或CSEO和CSE1、 或任何组中的任何模块的单个故障都不会引起数据的丢失。这种特征还使得模块可进行热 切换,这样,可以对故障模块进行替换,而无需要将该单元退出服务。如前所述,模块的功耗取决于该模块在树结构中所处的层数,而层数也与各种情 况下的平均数据吞吐量有关。对每一个模块所处位置的功耗进行测量,并更有效的使用系
43统的冷却资源、减少系统内的热点。如图108中所示的例子,为一组有15个模块的模块组 的俯视图,与之前的例子类似,图中还显示了 CSE在模块上的位置。图中用宽箭头指示了空 气流的方向,主板上还附带有金属隔离栅1100用来帮助将冷空气导向模块。从主板延伸 出来的隔离栅与主板上的模块高度差不多,也是插在主板的连接器上。处于第0层的模块 0具有最高的功耗,其两边的隔离栅在空气的流入方向具有较大的开口,因此与处于第3层 的模块11和10相比,模块0处的空气流量较大。其他隔离栅布置的位置与之类似,但是隔 离栅1100布置在合适的位置并使处于第1层的模块1和2比位于第3层的模块8,9,12,13 能获得更大的空气量。在需要对一组以上的模块进行冷却,并且冷空气会在通过主板之前通过第二组模 块时,对不同的模块可以使用相似的方法来控制空气流向以减小不同模块之间的温度的差 别。如图109所示,为两组每组有16个模块的模块组的分布,其中,在第二个树结构中较 高层的模块处于第一个树结构中较低层的模块的正下方,这样同一垂直方向上的两个模块 所处的层数的和相对于两组模块同样排布时减少了。如果模块的层数的和越低,则两个模 块组的功耗就越高。例如,离空气入口较近的模块组的处于第0层的模块0在另一模块组 的处于第3层的模块11的前面,则这两个模块的功耗仅仅只有当两个模块组的分布一致 (例如,两个都是第0层的模块处于与空气流向相同的一条直线上)时的两个模块功耗和的 60%。另一方面,由于模块在主板上所处的物理位置与模块在树结构中的层数有关,则 模块之间的空间的大小可能不同,这样树中被认为具有较高的功耗同时处于较低层的模块 (如根模块)相比于处于较高层的模块(如叶子模块)离邻近的模块要远一些。对于有一 个以上根节点的情况,不论是在正常工作或冗余工作状态的情况下,在排布模块的位置时 都会考虑其功耗情况。如图110所示,为处于CSE和/或模块上的CSE和/或散热片的不同放置和从不 同的方向上观察的示意图,上述的布置方式可在空气流和/或模块空间方面提供一定的改 进。如图111所示,为一个具有两个根节点的树结构的示意图,其中节点具有由12条 线路组成的链路。根节点到MC(图中没有显示)有4条线路,到其两个子模块各有3条线 路,到另一根模块有2条线路。根模块的子模块有3条线路到其根模块,上述子模块到其两 个子模块也各有3条线路,同时其还有3条线路到相应的另一根模块的子模块。大型存储阵列的物理布局存在很多问题,如需要较多的PCB层,在各层的导体上 经过或绕过的线路构成连接线迹,或在底层上的类似问题。连接器的插脚引起的电磁辐射 情况,接地和电源平面的完整性的效果都是本领域的普通技术人员所能了解的。如图112a 所示为PCB的一个单层的膜,该PCB与4个连接器相连并与板上的接口连接器或已有的存 储器相连。连接线迹的密度以及线迹之间距离的变化都可能与信号的耦合和传播时间的变 化有关,且直线线迹的偏离将会导致高频信号下电阻的变化,而电阻的变化将会导致信号 波形的失真。如图112b所示,为图112a所示的层的布局的细节的一个例子的示意图。圆 圈代表连接器的插脚,其中黑色圆圈代表与所示层上的线迹相连接的插脚,而浅色圆圈代 表穿过该层与另一层上的线迹相连接的插脚。在远离插脚的地方,线迹与相邻线迹之间的 距离各不相同,其中一些线迹之间比较近,这增加了信号之间的耦合。在插脚的附近,插脚
44之间有成组的线迹,线迹之间以及线迹和插脚之间的距离都变小了。在这个区域中的许多 线迹都存在多次的弯曲,这导致其电阻不连续。如图112c所示,为两个连接器A和D之间 的连接所通过的通路的示意图,其中,连接线迹必须绕过介于A和D之间的连接器B和C的 插脚。图中所示的线迹对代表了使用了不同信号情况下的布局。同样还显示了第二层的布 局,其中信号可顺着通路传播会使一层上的信号线迹的一部分更靠近邻近层的信号线迹。 这样会在板层布局中引起各种问题。如图113所示,为一种减轻电路板布局的限制的方法的示意图。在本例中,将板上 每一个连接器1200进行了旋转,使其与多数存储器板上平行排布的连接器(或类似应用的 设备)之间形成了大约30°的角。当连接器以图示方法成歪斜排布时,线迹1300可以没有 或只有很小弯曲的情况下在绕过连接器插脚1400并布置在相邻的连接器之间。上述歪斜 的角度取决于插脚行的数目和各行之间的距离。在这种排布下存在一个以上的最小弯曲通 路,如图114所示,为在一组具有240个插脚的连接器上具有最小弯曲的两条通路。相邻板 子之间的空间或是插脚空间的一个很小的改变可能可以进一步的减小线迹的弯曲程度。如图115所示,为可容纳84个歪斜放置的DIMM的主板上的连接器的排布图。当 需要排布很多连接器时,板上的空闲空间将缩减到最小,而上述的空闲空间通常会用于布 置板子的接口,存储控制器,辅助设施,滤波器或类似的设备。上述连接器的歪斜方式可用 于本具体实施例中所描述的任何连接器和模块的排布。为了表示的简便,在其他例子中的 连接器还是以水平方式排布。大型存储器板可以使用本处描述的设备和方法进行排布,如图116所示,为82个 DIMM模块的排布图,其中64个为具有RAID等级5错误纠正能力的DIMM存储器模块,上述 RAID5以4+1方式配置,并具有2个备用DIMM模块。存储器板支持2个树结构模块组,并与 树的叶子节点连接。对剩下的数据和控制通路通过合适的重新配置后,树中任何两个模块 的故障都不会影响对其他模块的访问。因此,在数据不可恢复的丢失前需要对存储器板进 行维护,并将故障模块通过热交换换成新的模块。热交换发生在仅当一个DIMM失效时,上 述配置防止了当维护技术员将故障模块替换走时的数据丢失。在本例中,图116中为逻辑 排布图,图117中为相应的在板上的排布图。在图117中,实线表示基本树结构中的链路,虚线表示在基本树结构中没有用到, 但当某一模块故障时对树结构进行重新配置后在保证根和剩余模块相互连接的链路。虚线 所示的链路的通道吞吐量可为实线链路的一半。在实线链路的树结构的第0层,每一个树 都有一个根节点并与存储控制器(图中没有显示)相连接。另一方面,所示排布可以认为 有4个子树,其中每一对子树组成一个树。在上部的树中的每一个子树都是另一个子树的 镜像对称,其中对称线通过子树的根节点。位于图中下部的树结构相对相关的根节点也有 相似的镜像对称结构。每个树中作为冗余结构提供辅助链路,两个树结构中的叶子节点通 过辅助链路相互连接,并指定与MC相连的作为冗余树结构的根模块,其中该MC可以是冗余 MC。如图118所示,为另一个具有两个根节点的由82个模块组成的树结构的示意图。 上述树结构将作为一个例子以描述大型互连系统中的主板上的排布技术。上述技术可以用 于底层、半导体电路内或冲模的相互连接。术语“主板”的使用仅仅是为了描述的方便。其中,每一个树结构的深度为5,第一种配置方法中使用根节点Rl和R2与存储控制器MC连接。冗余配置方法中使用Rl'和R2'中的一个来代替故障的根节点以继续进行 操作而不丢失数据。图中实线表示第一种配置方法中的链路,虚线则代表了当两个或少于 两个的模块故障时的替换配置中的链路。主板上的排布可以认为是两个相似的相互连接的 树结构。与Rl用实线连接的模块为上部的树,而下部的树则为与R2用实线连接的模块。如图119中所示,为上部的树连接的物理排布和相应的树结构的逻辑排布的示意 图。模块Rl在第0层,在本例中处于连接器行的中间,并且与存储控制器MC通过一个链路 相连。图中没有显示MC,该MC可以布置在任何合适的位置,可以在主板上也可以不在。本 二叉树中模块的连接用阴影表示,共有三层阴影。为了便于表示,上述阴影分别用不同的颜 色表示,蓝色(图中为最深的颜色)、红色(最浅的颜色)和绿色(介于上述两种深浅之间 的颜色)。每一条宽的阴影线代表处于其末端的两个模块之间的一条链路。穿过模块的下 面而没有在该模块终结的线条则代表没有将该模块进行连接。上述链路具有之前描述的链 路的特性,而宽线可代表双向线路,单向线路组,通道化的线路,以及用于模块和控制器间 连接的类似物。大部分的链路都用直线表示,只有很少甚至几乎没有链路需要穿过其他的链路。 这种简化的板子的排布方法可以减少信号的耦合,并减少PCB板的层数。图中分别标记为a 和b的链路在树中用于连接根模块和第一层模块,该链路用绿色标记。通过对板上有代表 性的方面的描述,本领域的普通技术人员可以明白链路a和b可以以更短的长度和更少的 弯曲布置在PCB的红色层。此处仅仅表明可对排布和相互连接可进行简化,板子的排布方 式是可以被进一步优化的,上述排布和相互连接是指大量用连接器连接的存储器的相互连 接和排布、或布置于电路板的存储器的相互连接和排布、或与底层上与集成电路集成的或 封装在一起的存储器的相互连接和排布。如图120中所示,为主板上包括位于1-1之间的模块的横截面的示意图。三个相关 的横截面A、B、C中表示了 3组连接到各模块的链路线迹。其中,宽线示意性的表示了链路 中的线路,并与均勻或非均勻分布在电路卡上的连接器的插脚相接。进一步的,不同颜色的 链路可能彼此重叠分布,为了使描述清楚在图中将其分开绘制。图120a为主板的俯视图, 图中指示了各横截面的具体位置。为了便于描述,将各电路卡用数字0-7标识,这种标识还 同时适用于图120中的其他图。在120b中,显示了图120a中的横截面A ;横截面B显示在 图120c中;而横截面C显示在120d中。在横截面A中,显示了蓝色、绿色和红色连接。如 图所示,在本例中,印刷电路板使用了 PCB技术并具有两个地平面层和一个VCC (电源)层 同时板上还布置有链路线迹,因此每条连接的部分线迹(线路)布置在了接地或VCC层的 反面。这将可能增加传输和接收线迹之间的隔离程度。水平阴影线代表连接器之间的链路 的一种可能的位置,上述链路彼此之间没有交叉,可以以直线方向进行配置。如图所示,每 一条链路都终止于一个与模块的连接器连接的插脚,该插脚代表了一组插脚,而垂直阴影 线与连接器插脚相连。在图120c和d中,横截面B和C的路由具有相似的特性。例子中使用了带插脚的连接器,但是也可以使用表面帖装技术(surfacemoimt technology, SMT)连接器。对于SMT连接器,向上接往连接器的水平线迹使用通孔而不是插 脚进行连接。但是,并不需要每一个孔都完全穿过整个厚度以到达要连接的线迹所在的层, 孔可以通过背钻去掉板层上的镀层,使该板层离连接器比离要连接的线迹更远。这减少了垂直传导元件的长度,也就减少了线迹之间的辐射和耦合,同时避免了“盲”孔。此外,在互 连中涉及的层的数目更少,则其中对校准可以有一定的公差,这可以使在地和Vcc平面上 提供的救济最小化,也就增加了屏蔽效果。在本例中用三种颜色表示了用于链路的线迹,也 可以仅用两种颜色对排布在板上的线迹进行表示,不过这将会导致增加一些线迹的弯曲。还可以有很多别的主板的布局方法,以下示例了其他两种布局方法。图121为82 个DIMM的逻辑排布图,其中树结构排布成3行连接器。可以发现上述树结构中具有更进一 步的冗余特性。如图122所示,为图121中所示的相应的逻辑树结构的排布图,其中使用了与图 119相同的符号。对相邻连接器之间的空间进行了调整。例如,增加了根模块或冗余根模 块之间的空间以适应当模块作为根节点时增加的能量分配。在行的中间的模块之间靠的更 紧,以便为诸如模块控制器、CPU或类似元件提供设置的空间。一方面,根模块可以被没有 存储器的CSE或只有很小的存储能力的CSE代替以减少模块作为根节点时的能耗。可容纳82条DMM的主板上布置满了 DMM,其中62个存储器模块配置为RAID 5 模式,若每条DMM上插有2G的存储器,则主板的容量为164G。这样的主板的尺寸大约为 15. 4X21. 4英寸。当然,在类似的方法中也可以采用其他DIMM存储器和其他存储器类型。 本例仅仅是为了描述,在本领域中还有许多不同的可用于DIMM模块的冗余方法,当存在如 上所述的相互连接和操作时,DIMM模块组也可用于实现冗余操作。如图123所示,为另一 82条DMM的逻辑排布图,其中树结构布局成3行连接器的 形式,并利用如图109中所示的从前到后的冷却排布方法。图124所示为相应的主板上的 排布图。主板上的连接种类只有几种形式,其中各种形式以及与模块的关系如图125中所 示。其中标记为从A到H的单元代表了在二叉树结构中会使用的模块的类型。在上述单元 中垂直的线表示了连接器,而垂直的线上的三条水平的短线分别代表一个链路或任何之前 所描述过的链路的类型。链路中的线路可组合成组,并分成不同的通道或单独的路由,上述 单元的种类仅仅表明了相对于其他连接器的链路的方向。此外,对各单元的标记并没有限 制通过哪个侧面的连接器的链路线迹与存储器模块相连。图中所示为具有16个连接器的 布局的例子,但是在该例中并没有使用全部的单元的类型。图中还表明有与特别的连接器 相关的单元的类型。当连接器与树的链路少于3个时,即有些链路少于3的单元类型(图 中没有显示),也可以进行图示的布局。以树结构排布的存储器,其时钟可能是本地的、区域的或系统的时钟、RAMBUS时钟 或类似的以及时钟技术的组合。举例来说,每一个DIMM模块都有本地时钟用来管理存储器 和完成本地处理功能。中央同步时钟可用来将中央时钟传递给存储器模块组,而这些存储 器模块CSE的时钟的相位可能并不知道,但是假定该相位的变化是很缓慢的。在上述情况 下,当一个链路处于活动状态时仅需要对相位进行重新同步化,则启动时间将变得较短。可 能会需要重新获得链路的每一条线路上的时钟,但是一组线路的相位会比较相近并且可作 为一个组进行调整。另一方面,时钟可能会分配在地址线路上,上述线路中的一条在所有时 间和所有链路之间将会保持活动状态。可替换的,当数据、命令或地址数据的间隔时间没有 用于在一预先确定的时间段向邻近模块发送或接收数据时,线路中的一条可能会用于传输 诸如NOP命令的信号。
47
另一方面,一个存储控制器MC —方面可接口到一个或多个根模块,并且另一方面 可直接或间接的与其他的通讯总线或计算元件连接。在MC和根模块之间的接口可以通过 根模块用来与树结构中的其他模块通讯的链路类型来连接。可选择的,在MC和树中的模块 之间可以有一个或多个CSE,CSE的其中一个完成根模块或单个节点的功能,这样在树中其 CSE具有最高的通讯量的点可以为具有较低功耗的模块,举例来说,MC可以完成去歪斜、寻 址、帧控制、数据和命令在上行和下行方向的缓冲、初始化(包括歪斜判定、模块完整性和 其他接通测试)以及当模块故障时树结构的重新配置的功能。MC也可以管理开电状态下的 功耗,使得板上的存储器的能量的最大消耗量与相关的能量供应能力相适应。虽然对本发明提供的方法、装置以及系统通过上述例子进行了描述,但是本领域 的普通技术人员应当可以理解,本发明并不局限于上述的具体实施例,还存在在不偏离本 发明的思想下的对本发明的不同的改变或修改,这些改变和修改应仍然为本发明所涵盖。
48
权利要求
一种互连系统,其特征在于,包括多条信号线路,每一个线路可以进行传送或接收数据信号中的至少一个,该信号包括一字中的一个比特,其中,所述数据字有第一比特和第二比特,第一比特和第二比特中的每个均可在两条信号线路之间进行逻辑交换,以使当所述字在信号线路的远端被接收到时,所述交换可以改变第一比特和第二比特之间的差分时间延迟。
2.如权利要求1所述的互连系统,其特征在于,所述逻辑交换是在信号线路的近端完 成的。
3.如权利要求1所述的互连系统,其特征在于,所述逻辑交换的排布是在信号线路的 远端完成的。
4.如权利要求1所述的互连系统,其特征在于,在远端的比特的逻辑排布可被改变,以 使和近端的各比特具有相同的逻辑顺序。
5.如权利要求1所述的互连系统,其特征在于,所述数据包括具有至少两个比特的字, 其第一比特被指派给第一线路,第二比特被指派给第二线路。
6.如权利要求1所述的互连系统,其特征在于,在数据被读取的第二节点区域,所述数 据的到达时间的差可以改变。
7.如权利要求1所述的互连系统,其特征在于,在数据被去歪斜的第二节点区域,所述 数据的到达时间的差可以改变。
8.如权利要求1所述的互连系统,其特征在于,至少在一个模块控制器中,可以配置第 一节点或是第二节点,使得在第二节点接收的数据与一个模块控制器或第一节点上的输入 数据的逻辑顺序一样。
9.如权利要求1所述的互连系统,其特征在于,所述逻辑排布在链路的发送端完成。
10.如权利要求1所述的互连系统,其特征在于,所述逻辑排布在链路的接收端完成。
11.如权利要求1所述的互连系统,其特征在于,所述逻辑排布在介于第一节点和第二 节点之间的第三节点完成。
12.—种互连系统,其特征在于,包括多条信号线路,主板,具有多个用于与存储器模块接口的连接器,其中,一个字包括第一比特和第二比 特,所述两个比特与至少两条信号线路相关,并被逻辑上的指派在每一条信号线路上,以改 变信号线路的远端接收到的比特的差分时间延迟。
13.一种互连系统,其特征在于,包括多个节点,所述多个节点通过具有线路的链路相互连接形成网络;主板,该主板包含多个连接器,用于与多个存储器模块进行接口连接,其中,第一节点 是数据源,第二节点是数据目的地,至少有一个第一节点或第二节点被配置成可以交换到 线路上的数据的逻辑排布,以改变在第二节点线路上收到数据字的时间。
14.如权利要求13所述的互连系统,其特征在于,多个节点中的一个节点是安装在多 个存储器中的一个上。
15.如权利要求13所述的互连系统,其特征在于,所述系统还包括模块控制器,其中, 可进行在输入到第一节点的线路上的一个字中的各比特的逻辑排布,以使在第二节点以一 预定逻辑顺序接收该些比特。
16.一种节点,其特征在于,包括输入端口及输出端口,每一个输入端口和输出端口具有多条线路; 切换开关,用于使多条输入线路中的每一条可连接到多条输出线路中的每一条,以调 整信号在多条输出线路上的时间歪斜,以使在具有与来自输出端口的线路的远端通讯的输 入端口进行测量时,使该多条输出线路上信号之间的时间歪斜被改变。
17.一种互连系统,其特征在于,包括多个节点,所述多个节点通过具有线路的链路相互连接形成网络; 第一节点为信号源,第二节点为信号目的地;及用于减少在第一节点和第二节点之间的两条或多条线路上信号的差分时间延迟的装置。
18.一种网络控制器,其特征在于,包括 与计算机通信的第一接口;具有用于与节点通信的链路的第二接口;用于确定布置在第一和第二节点之间的链路的线路上的信号之间的差分时间延迟的 装置;以及用于指派逻辑信号给在第一和第二节点之间通信的线路,以改变在第二节点上接收到 的逻辑信号的延迟时间的装置。
19.一种网络控制器,其特征在于,包括 计算机接口;第一数据接口,可以传送和接收信号;以及处理器,用于产生用于通过第一数据接口传送的地址值,所述处理器还可以逻辑上指 派数据值给信号线路,使得至少两条信号线路上的时间延迟差在接收设备接收到信号时可 以被改变。
20.一种节点,其特征在于,包括输入节点和输出节点,每一个所述输入节点和输出节点具有多条线路;以及 开关,可以将多条输入线路中的每条选择性地连接到多条输出线路中的一条,以在具 有与来自输出端口的线路的远端通讯的输入端口进行测量时,使该多条输出线路上信号之 间的时间歪斜被改变。
21.如权利要求20所述的节点,其特征在于,还包括第一和第二输出端口,该第一输 出端口被配置成与存储器连接。
全文摘要
本发明描述了一种在网络中安排元件的互连系统、设备以及方法,所述互连系统可以是数据存储系统、计算机系统或通信系统,其数据通路被配置成可以控制系统的功率消耗和数据歪斜特性;可配置的开关单元用于形成节点间的互连,其控制信号和其他信息被用于控制所述可配置的开关单元其他方面的功率状态;可以通过调整网络间一个或多个节点的逻辑和物理线路排布来改变网络中节点间的传输的数据的时延歪斜。本发明还公开了一种互连主板的布局方法,可以减少线迹(trace)路由的复杂性。
文档编号G06F13/40GK101872333SQ20091013621
公开日2010年10月27日 申请日期2006年4月17日 优先权日2005年4月21日
发明者乔恩·C.R.·班尼特 申请人:提琴存储器公司