书签 分享 收藏 举报 版权申诉 / 33

用于高速信令的数据捕获技术.pdf

  • 上传人:54
  • 文档编号:94392
  • 上传时间:2018-01-24
  • 格式:PDF
  • 页数:33
  • 大小:1.54MB
  • 摘要
    申请专利号:

    CN02805440.7

    申请日:

    2002.02.25

    公开号:

    CN1529958A

    公开日:

    2004.09.15

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||发明专利公报更正卷=20号=37页码=更正项目=申请人 共同申请人 地址误=韦恩M·巴雷特陈东 保罗W·科特尤斯 美国明尼苏达州正=国际商业机器公司 美国纽约州|||发明专利申请公开说明书更正卷=20号=37页码=扉页更正项目=申请人 共同申请人 地址误=韦恩M·巴雷特陈东 保罗W·科特尤斯 美国明尼苏达州正=国际商业机器公司 美国纽约州|||实质审查的生效|||公开

    IPC分类号:

    H04L7/00; H04L7/02; H03D3/24; H04B10/08; G06F12/00

    主分类号:

    H04L7/00; H04L7/02; H03D3/24; H04B10/08; G06F12/00

    申请人:

    韦恩M·巴雷特; 陈东; 保罗W·科特尤斯

    发明人:

    韦恩M·巴雷特; 陈东; 保罗W·科特尤斯; 艾伦G·加拉; 罗里D·杰克逊; 杰勒德V·科普克塞; 本J·内桑森; 托德E·塔肯; 帕夫罗斯M·弗拉纳斯

    地址:

    美国明尼苏达州

    优先权:

    2001.02.24 US 60/271,124

    专利代理机构:

    中国专利代理(香港)有限公司

    代理人:

    程天正;王勇

    PDF完整版下载: PDF下载
    内容摘要

    一种用于高速信令的数据捕获技术,以便于对异步数据流的最佳采样。该技术允许极高的数据速率,不要求像在源同步系统中的那样要将一个时钟随数据一起发送。本发明也提供一种硬件机构,用于为最佳双位并发双向(SiBiDi)信令自动地调节传输延迟(图5)。

    权利要求书

    1: 一种允许在不随数据流发送时钟信号的情况下对异步数据流进 行最佳采样和捕获的数据捕获方法,包含: 通过沿具有一系列延迟抽头的时钟定时的延迟线发送数据流的串 行数据位来捕获数据; 利用一个时钟对所有的延迟抽头采样; 将每个延迟抽头输出与相邻的延迟抽头输出进行比较,以确定是 否相同; 利用这些比较结果来形成一个时钟定时串,以便生成一个数据历 史纪录; 检查该数据历史记录,以便确定最佳数据捕获眼,其方法是通过 查找数据在相邻的延迟抽头之间不变换的地方的数据捕获眼,把这些 数据捕获眼测定为最佳数据捕获眼。
    2: 权利要求1的方法,其特征在于,包括定期地更新数据历史记 录,以补偿改变的参数。
    3: 权利要求1的方法,其特征在于,将时钟定时串与以前的时钟 定时串相组合以便生成数据历史纪录。
    4: 权利要求1的方法,其特征在于,把串行数据输入时钟定时的 延迟线,并且把串行数据时钟定时地通过组合的反相器系列,每个所 述反相器添加一个延迟增量,每个反相器输出被导向历史寄存器。
    5: 权利要求4的方法,其特征在于,每个反相器输出被导向偶数 和奇数历史寄存器,偶数历史寄存器被一个时钟的正边沿定时,奇数 历史寄存器被该时钟的负边沿定时,以便允许逻辑电路以两倍时钟速 率捕获串行数据,所述偶数历史寄存器被用来检测正时钟相位的偶数 数据捕获眼,所述奇数历史寄存器被用来检测负时钟相位的奇数数据 捕获眼。
    6: 权利要求5的方法,其特征在于,一个偶数眼多路转换器接收 偶数历史寄存器的所有输出,一个奇数眼多路转换器接收奇数历史寄 存器的所有输出。
    7: 权利要求4的方法,其特征在于,历史寄存器包括一个以第一 时钟速率定时的第一历史寄存器以及顺序地接收第一历史寄存器的输 出并以第二时钟速率定时的串行排列的第二、第三和第四数据历史眼 寄存器。
    8: 权利要求4的方法,其特征在于,该时钟定时的延迟线包含位 于每个反相器的输出端的延迟线寄存器,以及 每个延迟线寄存器的输出被导向一个也从时钟定时的延迟线中的 下一个延迟线寄存器接收一个输入的异或门XOR,由于数据位在进入下 一个延迟线寄存器之前被下一个延迟线反相器翻转,并且如果数据位 在连续的级之间不经历变换,则每个寄存器和下一个寄存器将保持相 反的值,使得该XOR门生成一个表示连续的级之间没有数据变换的1, 相反,如果数据位在连续的级之间经历一次变换,则每个寄存器和下 一个寄存器将保持相同的值,使得每一级XOR门生成一个表示连续的 级之间有数据变换的0。
    9: 权利要求8的方法,其特征在于,每个XOR门的输出被输入到 一个AND门,该AND门的输出被输入到作为四个串行历史寄存器中的 第一个的第一历史寄存器,该第一历史寄存器被以第一时钟速率采样 并复位到高,而第二、第三和第四历史寄存器则以更高的第二时钟速 率被采样并更新。
    10: 权利要求5的方法,其特征在于,包括通过递增地搜索整个 偶数历史寄存器而搜索一个偶数眼,以便搜索该偶数眼的前导和结束 边沿,而对奇数眼的搜索在被检测到的偶数眼的中心开始,然后搜索 第二个数据眼的前导和结束边沿。
    11: 权利要求5的方法,其特征在于: 在第一级中,历史寄存器被定期地复位和刷新并获得一个新的历 史纪录,然后独立地确定时钟的每个相位的最佳数据眼,该最佳数据 眼然后被用来发送和捕获要在每一个系统时钟下被转发到下一级的数 据位;和 在第二级中,所述被转发的数据位被插入到与一个筒形寄存器一 起用来正确地选择和传送对准的数据位的一个移位寄存器中。
    12: 权利要求5的方法,特征在于,数据采样眼被不断地更新和 再对准,它在现有偶数和奇数数据采样眼处开始,然后向现有眼的左 边和右边查找,以确定左眼边和右眼边缘,然后在它们左边缘和右边 缘之间重新对准偶数眼和奇数眼的中心。
    13: 权利要求8的方法,其特征在于,该XOR门的输出被顺序地 采样,并且每次检查一个该输出,以确定每个输出是0还是1,其中0 表示在眼外部的一个数据变换,1表示不可能在眼内部有数据变换,对 于位移寄存器的每个延迟抽头输出,顺序地重复上述顺序采样和检 查。
    14: 权利要求1的方法,其特征在于,延迟抽头输出被由时钟的 正边沿定时的第一电路采样,并被由时钟的负边沿定时的第二电路采 样,检测对应于正时钟相位的偶数数据捕获眼,以及与偶数眼的检测 相独立地检测对应于负时钟相位的奇数数据捕获眼。
    15: 一种硬件机构,用于为两个节点之间的最佳双位并发双向 (SiBiDi)信令自动地调节传输延迟,以便改善通信线路上并发双向信 令的信号质量,其中在一个设定序列期间,在通信线路上以单向通信 方式发送参数设置数据,以允许两个节点在设定序列期间更准确地交 换参数设置数据,由此单向通信有更好的信号质量,以便更准确地交 换参数设置数据。
    16: 权利要求15的机构,其特征在于,在设定序列期间,以比在 SiBiDi信令期间更低的数据速率发送数据,其中使用1∶n的比率,保 持“1“或“0”持续n位时间。
    17: 权利要求15的机构,其特征在于,每个节点在n个步骤中可 能有范围从最小或零延迟到最大延迟的n个步级的不同延迟,因此延 迟的可能的组合数是n*n,以至选择一个最佳延迟组合要测试n*n种可 能的组合,该机构每次一个地循环经过所有n*n个组合。
    18: 权利要求15的机构,其特征在于,一个差分数据线连接所述 两个节点,每个节点与一个1位发送器CPU和1位捕获CPU一起工作。
    19: 权利要求15的机构,其特征在于,两个差分数据线连接所述 两个相同节点,每个节点与一个2位发送器CPU和2位捕获CPU一起 工作。

    说明书


    用于高速信令的数据捕获技术

        交叉参考

        本发明要求下述具有共同拥有人的、共同未决的美国临时专利申请的权益:申请序列号60/271124,申请日2001年2月24日,名称“Massively Parallel Supercomputer(大规模并联超级计算机)”,特此将其全部内容如同全文叙述一样地合并在本文中作为参考。本专利申请还与下列具有共同拥有人的、共同未决的、具有相同申请日的美国专利申请有关,特此将这些美国专利申请的每个的全部内容如同全文叙述一样地合并在本文中作为参考:美国专利申请序列号(YOR920020027US1、YOR920020044US1(15270)),发明名称“ClassNetworking Routing(分级联网传送)”;美国专利申请序列号(YOR920020028US1(15271)),发明名称“AGlobal Tree Network forcomputing Structures(用于计算结构的全局树形网络)”;美国专利申请序列号(YOR920020029US1(15272)),发明名称“GlobalInterrupt and Barrier Networks(全局中断和闭锁网络)”;美国专利申请序列号(YOR920020030US1(15273)),发明名称“OptimizedScalable Network Switch(优化的可伸缩的网络开关)”;美国专利申请序列号(YOR920020032US1、YOR920020033US1(15258)),发明名称“Arithmetic Functions in Torus and Tree Networks(环形和树形网络中的算术功能)”;美国专利申请序列号(YOR920020033US1、YOR920020034US1(15259)),发明名称“DataCapture Technique for High Speed Signaling(用于高速信令的数据捕获技术)”;美国专利申请序列号(YOR920020035US1、(15260)),发明名称“Managing Coherence Via Put/Get Windows(通过放置/达到窗管理相干性)”;美国专利申请序列号(YOR920020036US1、YOR920020037US1(15261)),发明名称“LowLatency Memory Access and Synchronization(低等待时间存储器存取和同步)”;美国专利申请序列号(YOR920020038US1(15276)),发明名称“Twin-Tailed Fail-Over for Fileservers MaintainingFull Performance in the Presence of Failure(双拖尾故障-出现故障时的文件服务器维护全性能)”;美国专利申请序列号(YOR920020039US1(15277)),发明名称“Faultisolation ThroughNo-Overhead Link Level Checksums(通过无开销链接级校验和的故障隔离)”;美国专利申请序列号(YOR920020040US1(15278)),发明名称“Ethernet Addressing Via Physical Location for MassivelyParallel Systems(通过大规模并联系统的物理位置的以太网编址)”;美国专利申请序列号(YOR920020041US1(15274)),发明名称“Fault Tolerance in a Supercomputer Through DynamicRepartitioning(通过动态重分配的超级计算机故障容限)”;美国专利申请序列号(YOR920020042US1(15279)),发明名称“Checkpointing Filesystem(校验指示文件系统)”;美国专利申请序列号(YOR920020043US1(15262)),发明名称“EfficientImplementation of Multidimensional Fast Fourier Transformationon a Distributed-Memory Parallel Multi-Node Computer(在分布存储器并联多节点计算机上有效地实现多维快速傅利叶变换)”;美国专利申请序列号(YOR920010211US1(15275)),发明名称“A NovelMassively Parallel Supercomputer(新颖的大规模并联计算机)”;美国专利申请序列号(YOR920020045US1(15263)),发明名称“SmartFan Modules and Systems(智能扇形组件和系统)”。

        【发明背景】

        1.发明领域

        本发明总体涉及用于高速信令(signaling)的数据捕获技术,更具体来说,涉及一种用于异步数据流的最佳采样的技术。该技术允许极高的数据速率,并且不要求像在源同步系统中那样要将一个时钟随同数据一起发送。

        本发明也提供一种用于为最佳双位并发双向(SiBiDi--two-bitsimultaneous Bi-Directional)信令自动地调节传输延迟地硬件机构。

        2.背景技术

        大规模并行计算机系统能进行类别宽广的重要计算。这种系统由许多相同的计算机节点组成,每个计算机节点一般有一个或多个CPU、存储器和一个或多个用于将该节点与其它节点连结的网络接口。

        在相关的美国临时专利申请(申请序列号60/271124,申请日2001年2月24日,名称“Massively Parallel Supercomputer(大规模并联超级计算机)”)中描述的计算机,利用芯片上系统(SOC)技术,建立一个具有高通过量(throughput)的、可伸缩的(scalable)、成本-效用有益的计算系统。SOC技术已经使利用包括具有集成的第一级高速缓存的CPU的内置部件库在单一芯片上建立整个多处理器节点成为可行的。这种包装大大地减少了节点的部件数,便于建造可靠的大规模机器。

        本发明涉及用于诸如生命科学领域中的应用等各种应用的大规模并行计算机系统的领域。更具体来说,本发明涉及高速信令的领域,涉及单向信令或并发双向(SiBiDi)信令。

        有这样的情形:要求进行大量的数据传输,但是能用的连线数量有限。并发双向信令允许用相同的连线同时传送和接收信号。这就将连线的数量降低一半。需要进行大量数据传输但电缆数量受到严重限制的一个例子是具有数千个通过连线通信的处理器的大规模并行超级计算机。

        SiBiDi信令的工作方式是在接收数据的相同连线上发送数据。因此,在接收期间,不仅接收从导线另一端发送的需要的数据,也接收它刚刚发出的数据。这当然破坏所需要的信号。然而,由于刚刚发出的数据是已知的,因此可以“将其减去”。这是由标准的SiBiDi电路进行的。

        【发明内容】

        因此,本发明的主要目的是提供一种用于高速信令的数据捕获技术,尤其是允许在不将时钟随数据一起发送的情况下对异步数据流最佳采样和捕获。捕获数据的方法是,沿着具有一系列延迟抽头(taps)的时钟定时的(clocked)延迟线发送数据流的串行位,并利用一个时钟采样所有的延迟抽头。将每个延迟抽头输出与相邻的延迟抽头输出进行比较,确定是否相同,该比较结果被用来形成一个时钟定时的串,以生成一个数据历史记录,该数据历史记录被加以检查,以确定最佳数据捕获眼(capture eyes),所述确定最佳数据捕获眼的方法是查找数据在相邻的延迟抽头之间不变换(transition)的地方的数据捕获眼,把它们作为最佳数据捕获眼。

        本发明的另一个目的是提供一种硬件机构,它用于为最佳双位SiBiDi信令自动地调节传输延迟,以便改善双位SiBiDi信令的信号质量。实行一个特殊的硬件算法,并将该两个位中的每一位用于单向信道(channels),以允许两个节点的硬件算法在设定序列期间安全地交换设置参数。一个相同频率的单向信道有SiBiDi信道的带宽的一半,但是有相当好的信号质量。

        【附图说明】

        本领域的熟练人员参照以下结合附图对若干实施例的详细说明,能更好地理解用于高速信令的数据捕获技术的本发明的上述目的和优点。附图中相同的部件用相同的标注号指明。

        图1表示一个数据接收宏,它能捕获2G位速率的串行数据并将其带入本地时钟域。

        图2表示一个数据发送宏块,其接收500Mhz 1字节宽的数据输入,并生成每个是2Gb/s串行数据的两个数据流的数据输出,该数据输出被在SiBiDi(并发双向)差分(differential)数据链路上传送,然后数据被输入到图1的数据捕获宏。

        图3表示一个级内(instage)2位宏块。

        图4表示一个时钟定时的延迟线的实现,其中串行数据经过组合的串行反相器组,每个反相器增加一个延迟增量。

        图5表示一个历史逻辑块,它被表示为时钟延迟线的延伸,并显示一个时钟相位(phase)。

        图6A和6B表示数据和历史样本MUXs,它们每个对应于图3底部所示的MUX,图6A和6B分别用于先导边沿时钟相位和下降边沿时钟相位,图6C的MUX接收图5的底部的输出信号。

        图7表示要被用作能在每个时钟周期捕获4个数据位的配对链路(paired link)的串行位组合和字节对准逻辑,它含有两个2位宏(如图3中所示的)并在2个输入数据流之间寻找适当的字节对准。

        图8表示一个眼检测流程图中的眼检测过程。

        图9表示两个2位宏状态图的第1图,该图表示在眼位置样本点正被确定期间的相位的状态流。

        图10表示两个2位宏状态图的第2图,该图表示在正常数据捕获操作期间的重复状态流。

        图11表示一个第一实施例,其中两个差分数据线连接一对相同节点1、2,并且其中每个节点都有一个唯一的ID,每个节点与一个2位发送器CPU和一个2位接收CPU一起操作。

        图12表示一个在两个节点1、2之间的SiBiDi电通信的第二实施例,其中一个差分通信线路连接这些节点。

        图13A和13B的状态机表示在同步Si-Bi-Di连接的训练中由节点计算芯片采取的步骤。

        发明详细说明

        概述

        本发明旨在用于在大规模并行超级计算机中实现互连,它解决计算机产业中两个长期存在的问题;(1)在处理器和存储器之间以时钟周期计量的日益增加的距离,和(2)由主流单处理器或对称多处理器构造的并行计算机的高能力密度。

        本发明总体涉及用于高速信令的数据捕获技术,更具体来说,涉及一种用于异步数据流的最佳采样的技术。该技术允许极高的数据速率,不要求像在源同步系统中的那样要将一个时钟随数据一起发送。

        串行链路勘测

        连接大规模并行超级计算机的串行链路的目标带宽是1.4Gb/s(每个方向)。这个带宽必须是双向的。这个双向要求可以以许多方式处理。所有情况共有的限制是,它们是低功率和低成本的。选择的实现将被集成到处理节点内的ASIC中。与这种方法相关联的一个特别问题是低功率限制。加上缺少用于链路传输的相对相位(phase)信息,这消除了标准的PLL时钟和数据恢复设计。在这种情况下,必须在不用PLL的条件下高度可靠地从数据本身抽取相位。

        数字数据捕获

        概述

        本说明书详细地描述一种数字数据捕获技术。图1表示一个能捕获2G位速率的串行数据并将其带入本地时钟域的数据接收宏。目标是用少量的信元(cells)低功率地、可靠地实现这一点。图2表示一个比数据接收宏显著简单的数据发送宏块,它将在本说明书的第二部分被说明。这描述一种DDR(双数据速率)类型的数据恢复,它允许一个是位时间的频率的一半的内部时钟。这能被用于SDR(单一数据速率)模式或者在需要时被扩展到四数据速率方案。

        参看图1,至数据接收宏的数据输入是两个2Gb/s输入串行数据的数据流,这代表着总共4Gb/s的数据流;数据输出是一个500Mhz的一字节宽的(8位宽的)数据流。其它输入信号是:一个1Ghz的时钟,一个把数据捕获宏复位到已知状态的复位信号,一个用于指导宏寻找最佳眼(沿多抽头延迟线(见图3、4、5)上的位置或阶段—数据在该处不经历变换、因此是最不可能有数据错误的最准确的数据捕获位置)以恢复数据的训练信号,一个空置字节信号,它是在数据未被接收时被宏接收的预定空置数据模式(idle data pattern)的,一个指令宏在双数据速率方式下操作的DDR方式,以及一个是寻找最佳数据或空置眼的约束参数的最小距离。其它输出信号包括,指示空置模式的有效接收的有效空置信号,一个指示已经检测到最佳眼位置和参数的眼找到信号,一个指示最佳眼位置被锁定的锁定信号,以及一个指示最佳眼位置由于离多抽头数字延迟线的一端太近而处于被丢失的危险中的警告信号。

        参考图3、4、5、6和7进一步解释图1的宏。

        接收宏中的延迟在7和12个位时间(bit times)之间,视数据的字节相位(byte phase)而定。通过跳过字节输出,可以将延迟削减到5至6个位时间。对于数据内容可以被忽略的信号再驱动(redriving)来说,这是一个合理的方法。

        图2是一个数据发送宏块,其接收500Mhz 1字节宽的数据输入,并生成每个是2Gb/s串行数据的两个数据流的数据输出,该数据输出被在单向或SiBiDi(并发双向)差分数据链路上传送,这在下面说明,然后数据被输入到图1的数据捕获宏。另外的一个输入是字节有效信号,它指示一个有效的数据信号正在被接收并要被发送,这与空置信号不同;另外的输入是一个1GHz时钟信号和一个把数据发送宏复位到某个已知状态的复位信号。

        图3、4和5表示数据接收和捕获。捕获数据的方法是沿快速抽头延迟线(见图3、4和5)发送数据位,并用本地时钟采样所有的抽头。将每个抽头与其邻居(见图3、5)比较,看看是否相同。这些比较综合起来形成一个时钟定时的串,该串与以前的时钟定时的串组合起来生成一个能被用来确定最佳采样点的历史。可以通过从历史串中(见图5,寄存器A、B、C、D)查找那里的数据在延迟抽头之间不曾改变的区域而找出最佳采样点,它们在本文中被称为“眼”。历史被定期地更新,例如每隔一个本地时钟就更新。定期更新弥补了变化的参数,诸如不同部件中的温度或电压的变化。还将有三个额外的不常被更新的“眼”流水线化的寄存器(见图5,寄存器B、C、D)。这允许一种具有可编程的持续期间并且不受被隔离位错误的影响的捕获方案。持续时间可以被设置得任意长,但是必须不短于为可靠地采样数据边沿所需的最大时间。为了容纳快于本地时钟周期的位采样时间,用时钟的两个边沿来捕获DDR数据(见图3、4)。时钟的每个边沿有其自己相关联的捕获寄存器和独立的逻辑来寻找最佳眼。这个技术因此大大地免于本地的和发送端时钟占空度(duty cycle)的不对称的影响。

        由于历史寄存器将改变,最佳采样点也将移动。这个更新应当在比持续时间短的时间范围进行。这个功能是在直方图和采样点确定单元中进行的。

        数据捕获的方法牵涉到一个两阶段初始化,它或者在系统复位后或者在单独的“训练”信号被确定后进行。

        阶段1:在复位或“训练”信号(见图1、2)后,历史寄存器被刷新,在所有3个“眼”寄存器中获取一个新的历史模式(pattern)。在获取一个有效的“眼”寄存器集合后,通过状态机序列(见图9、10)确定最佳采样点。这是按时钟的每个相位独立地进行的。这些采样点然后被使用,并在每一个系统时钟将两个位传送到下一个阶段。

        阶段2:两个位被接收并被插入到一个移位寄存器中,该移位寄存器与一个筒式位移器一起被用于允许适当的半字节(1/2字节或4位)边界(见图7)。这些边界是通过在初始化序列期间使用唯一性的半字节模式而找到的。

        时钟定时的延迟线块

        图4和5表示一个时钟定时的延迟线的实现,其中串行数据进入左边的反相器I,经过组合的反相器串,其中每个反相器增加一个延迟增量。在每个反相器输出端有两个寄存器锁存器FF,见图3-5,一个被时钟的正边沿定时,另一个被负边沿定时。这允许该逻辑以两倍的时钟速度捕获数据。一组锁存器捕获正时钟相位的数据眼,而另一组锁存器捕获负时钟相位的数据眼。两种眼被单独地检测和采样,这样,每个时钟相位需要一个单独的、如图5中所示的电路。独立的正、负时钟定时的逻辑电路导致对时钟信号的周期工作循环、尤其是本地的和发送端时钟工作循环的不对称的很小依赖性。

        该模块有在输入接收器之后的高速信号作为其输入。该模块的唯一的其它输入是向所有触发器扇出相等时间的本地时钟。该模块的输出只有N+1个时钟定时的延迟抽头D[0:N]。每个抽头约50ps,在上升边沿和下降边沿之间具有较好的匹配。下降延迟与上升延迟之间所需的匹配大约是20-30%。我们要求时钟对所有相邻锁存器是约10ps内的相等时间。这可以用抽头的时钟线而不是时钟树更好地实现。这些数据捕获电路中的许多都是可以实现的,因此功率是关键。

        该模块是布局关键的,因此要求额外的布局考虑。

        为了测试芯片的目的,将部件的数量固定在32。这给出大约1.6n秒的额定总延迟,这足以捕获频率下降到大约1Gb/s的DDR数据。

        参看图3和5,特别是图5,每个寄存器FF(触发器)被导向到一个异或门XOR,该异或门也接收来自延迟线中下一个寄存器FF的输入。参看延迟线的第一和第二级,由于数据位在进入第二寄存器之前被第二反相器倒置,如果数据位不经过在两个连续级之间的转换,则第一和第二寄存器将保持相反的值,使得第一级XOR将产生一个1,指示没有级与级之间的转换。相反,如果数据位在两个连续级之间经过转换,则第一和第二寄存器将保持相同的值,使得第一级XOR将产生一个0,指示有级与级之间的转换。

        图5的系统正在沿着时钟定时的延迟线搜寻一个稳定位置或眼,以检测数据不经历转换处的数据,这是由来自一系列的连续XORs的一系列的1输出指示的,这样就应当将数据检测眼对准到一系列1的中间。每个XOR的输出被输入到一个AND门,AND门的输出被输入到寄存器A,寄存器A是一系列FF(触发器)历史寄存器A、B、C和D中的第一个。第一寄存器A被以满1Ghz时钟速率采样,并以较慢的时钟速率(例如>1ms(微秒))定期地被一个“设置到高”的信号复位到高,而寄存器B、C和D则以与“设置到高”相同的时钟逻辑速率被采样和更新。

        寄存器A被时钟以a>1ms的时钟速率设置或复位到高1输出,在复位后,如果XOR的输出是1,则AND门的输出是1,且寄存器A的输出是1,它随后(被寄存器B、C和D的负载(ld)输入端的更新信号)顺序地被时钟定时地(clocked)通过寄存器B、C和D。相反,如果XOR的输出是0,且寄存器A的输出被设置或复位至1,则AND门的输出是0,且寄存器A输出一个0,它随后被顺序地时钟定时通过寄存器B、C和D。该安排使得一旦寄存器A的输出是0,则它保持为0,一直到寄存器被“设置到高”信号复位,使得寄存器B、C和D的每个的输出被顺序地时钟定时至0,并保持为0,一直到寄存器A被“设置到高”信号复位到1。

        历史寄存器B、C和D的每个的输出是一个3之2(2 of 3)逻辑元件的输入,3之2逻辑元件在其3个输入的任何2个是1时产生一个1或高(H)输出。3之2逻辑的目的是补偿通过数字延迟线的数据流中的可能错误地导致3个输入的其中之一为0的假信号(glitches),使得尽管有数据假信号也能产生准确的输出。此外,可以计算3之2逻辑检测的出现次数并加以报告,作为正在被接收的数据的完整性的一个指示。H输出(0至N-1)是图6C中所指示的MUX的输入。H输出中的一个串1一般表示是数据采样眼的一个好候选,应当被置于该串1之中的中心。

        图3表示一个级内2位宏块,其大部分已经结合图5作了描述。直方图(histogram)和采样点确定单元包括图5的AND门、历史寄存器和3之2逻辑以及图6C的MUX以及图9和10的状态图。宏块也包括一个MUX,它接收数字延迟线的FF寄存器的所有输出作为输入,并在图5的底部的信号H[0]、H[1]、H[N-1]的控制下选择性地将这些输入作为数据输出而传送出去。

        历史块

        图5表示一个历史逻辑块,它被表示为时钟延迟线块的延伸,并显示一个时钟相位。另一个时钟相位需要一个相同的电路。图5中所示的反相器串对两个时钟相位是共同的。

        采样点块

        采样点块最容易用一个状态图来描述,状态图确定两个最佳采样点,每个时钟相位对应一个。由于采样点不是被频繁更新的(更新之间至少有50个时钟),我们可用一个时钟过程来寻找最佳采样点。

        图6A和6B表示数据和历史样本MUXs,采样MUXs分别具有D_even[N:0]和D_odd[N:0]的输入,每个输入对应于图3底部所示的MUX,每个分别对应先导边沿时钟相位和下降边沿时钟相位,而图6C的MUX则如前所述地接收图5的底部的信号。

        组合两个2位宏

        图7表示要被用作能在每个时钟周期捕获4个数据位的配对链路的串行位组合和字节对准逻辑,它含有两个2位宏(如图3中所示)并在向两个2位宏70(如图3中所示)输入的频率各为2Ghz的2个输入数据流之间寻找适当的字节对准(alignment)。这两个输入信号可被视为图1的被与适当的字节对准组合的输入信号。图3的两个2位宏的输出是两个数据流,每个速率1Ghz,它们被输入到寄存器71,后者延迟并标准化这2个数据流,这2个数据流被输入到一个12位的位移寄存器72,位移寄存器72被以半速Clk/2的时钟定时,将这2个数据流转换成500Mhz的12位宽数据流。这12位宽数据流被输入到逻辑73和筒形位移器74,筒形位移器74具有两个12位宽数据流的24位的输入,实质上在逻辑73的控制下选择24位中被适当对准的8位,以确定筒形位移器的正确的位位移。逻辑73用一个已知的训练模式(train pattern)来生成两个4位宽的、控制筒形位移器的输出。逻辑73实质上在软件的控制下通过时钟定时的延迟线不断再发送相同的已知数据训练模式,直到它知道筒形位移器的正确的位位移。筒形位移器在该逻辑的控制下选择性地挑选24位输入中的最适当对准的8位,作为字节输出传送。

        状态图:

        眼检测流

        图8表示一个眼检测流程图中的眼检测过程的总流程,从复位80开始,把系统初始化到已知值,紧接着在框81等待足够数量的数据变换,以保证眼的干净确定。框82检查偶数眼历史寄存器中的1和0,以确定一个对应于上升沿的时钟定时数据的偶数眼,并选择一个具有最小延迟的第一眼通过时钟定时的延迟线。框83对奇数眼做相同的事,检查奇数眼历史寄存器中的1和0,以确定一个对应于下降沿的时钟定时数据的奇数眼,并选择一个具有最小延迟的奇数眼通过时钟定时的延迟线。

        可能有几个不同的对应于延迟线上不同位置的偶数相位和奇数相位眼,并在检测到最小延迟眼后,流程图从框84重新循环到框82,寻找具有下一个最大延迟的下一对眼;而逻辑控制继续再循环到框82,一直到整个长度的延迟线被作了对应偶数和奇数相位的眼的检查。框84比较每个下一个检测到的眼对与最佳的以前检测的眼对,保留最佳眼对,这样,它就选择所有候选眼对的最佳眼对,这个功能由图7的逻辑73执行。

        在这一点,逻辑73在框85等待一个“对准”包,这是一个已知的训练模式,诸如一个已知的位序列,用于确定此时尚未知的字节边界。在字节边界由图7中的逻辑73用对准训练模式确定之后,然后框86(它也对应于逻辑73)设置对准输入到筒形位移器,用以对准筒形位移器74,选择和传送正确对准的8位作为字节输出,并且逻辑73也生成锁定的输出信号。筒形位移器于是准备好在正常的数据接收期间传送8个正确对准的位作为字节输出。

        框87指示数据采样眼是不断被更新的。一个优选的再对准在现有的偶数和奇数数据采样点处开始,然后检查现有眼的左右,以确定左眼边和右眼边,然后在偶数和奇数相位眼的左边和右边之间再对准偶数和奇数相位眼的中心,如结合图9所解释的那样。

        训练眼检测的状态图

        图9表示两个2位宏状态图的第1图,该图表示在眼位置样本点正被确定期间的相位的状态流,总体对应于图8的框82和83。

        在图9中,对应于图5底部输出的图6C的对MUX的H[N-1:0]输入被顺序采样并逐一检查,作为图6C的MUX的被传送的输出Hsamp。第一位H[0]要么是0,要么是1,0指示在眼的外部数据变换(transition),1指示眼内不可能有数据变换;第一位H[0]被图9的步骤序列检查,其中0被显示为Samp(样本)=0,1被显示为Samp=1。在第一位H[0]被图9的所有步骤S0-总结检查后,第二位H[1]通过相同的步骤序列被检查,如此等等,直到最后一位H[N-1]被检查。

        两个两位宏状态图之一在图9中的状态如下所述:

        ·S0是复位状态。在复位活动期间,控制依然在这里。

        ·S1是初始化状态。在复位被释放之后,控制在这里等待,直到一个更新计数器到时,然后,如果samp=0(表示图5的被检查的抽头产生一个0,因此不在眼中),前进到S2,如果samp=1(被检查的抽头输出是1并且可能是某个眼的一部分),前进到S3。

        状态S2-S3.5通过递增搜寻整个偶数延迟线历史而查找一个偶数眼,它相应于上升时钟沿定时的数据。

        ·S2通过从左至右递增通过偶数延迟线历史查找一个偶数眼(samp=1)。它寻找偶数眼的左端。如果找到或者如果它命中延迟线的右端,则前进到状态S3,否则停留在S2。

        ·S3搜寻偶数眼的右端,仍然搜寻,直到它发现samp=0。Samp=1期间控制留在S3中,因为它在眼内。当发现smap=0时,控制进到S3.5,这是控制在某些情况下正确工作所必需的延迟状态。

        ·S3.5立即转换到S4。

        状态S4-S13检索对应于下降时钟边沿时钟定时的数据的奇数眼,对奇数眼的搜寻在被检测的偶数眼的中心开始,比对偶数眼的搜寻更加复杂。

        ·S4开始搜寻奇数眼。对于正常的方式,如果奇数眼samp=0,它前进到S7,否则samp=1,它前进到S5。Samp=0意味着奇数眼在奇数延迟线历史中不与偶数眼对准,正常的策略是向左和向右搜索,挑选最接近的奇数眼。有两个可替代方式。控制进到S13的,则向右搜索;控制进到S12的,则向左搜索。

        ·S5意味着奇数眼与偶数眼是对准的,且初始样本点已经在奇数眼中。因此这个状态通过递减一个样本计数器(用于选择数据点的)从初始样本点向左搜索,一直到它找到奇数眼的左端或者延迟线的左端。然后,控制进到S6。

        ·S6向右搜索,寻找奇数眼的右端。当它找到奇数眼的右端或者延迟线的右端时,控制进到总结状态,该状态是步骤S13之后搜索的结束的状态,数据样本计数器在这里被设置得对应于偶数和奇数眼的正常处理。

        ·S7意味着奇数眼与偶数眼是不对准的,且初始样本点在噪声区中任何眼之外。这个状态通过递减样本计数器向左搜索一个匹配的奇数眼。当samp=1时,它已经找到一个奇数眼的右边,它把该右边记在MAX(右边寄存器)中,然后,控制进到S8。或者,它到达延迟线的左端都没有找到左奇数眼,在这种情况下,控制进到S11。

        ·S8旨在搜索一个不对准的右奇数眼。它在samp=0期间不断搜索,一直到samp=1,这表示一个右奇数眼的左端被找到并被记在MIN(左边寄存器)中,然后,控制进到S9。如果到达延迟线的右端都没有发现samp=1,则没有右眼,因此控制直接进到S10中的左眼处理。

        ·S9中比较MIN和MAX与右眼的距离。如果MIN较近,控制进到S6。如果MAX较近,控制进到S10。

        ·S10搜索奇数眼的左端。在samp=1期间,控制保持在S10。当samp=0或者到达到达延迟线的左端时,控制传送到总结。

        ·S11在没有左奇数眼时搜索一个不对准的右奇数眼。在samp=1期间,控制保持在S11。samp=1时,控制进到S6。如果在发现samp=1之前到达延迟线的右端,则没有奇数眼。这是一个错误条件,由警告指示器检测并指示。

        ·S12搜索延迟线中偶数眼左边的不对准的奇数眼。在samp=0期间,控制保持在S12。samp=1时,控制进到S10。如果在发现samp=1之前到达延迟线的左端,则没有左眼,然后,除非控制是从S13进入到S12的—此时没有奇数眼,否则控制选择在S13中向右查找。这是一个错误条件,由警告指示器检测并指示,然后控制进到总结。

        ·S13搜索延迟线中偶数眼右边的不对准的奇数眼。在samp=0期间,控制保持在S13。samp=1时,控制进到S6。如果在发现samp=1之前到达延迟线的右端,则没有右眼存在,然后,除非控制是从S13进入到S12的—此时没有奇数眼,否则控制选择在S12中向左查找。这是一个错误条件,由警告指示器检测并指示,然后控制进到总结。

        ·总结是眼数据采样点被确定用于正常操作时的状态。

        具有眼样本点再对准的正常操作的状态图

        图10表示两个2位宏状态图的第2图,该图表示在正常数据捕获操作期间的重复的状态流。在这个阶段(phase),逻辑要捕获串行数据并将其转换到字节并行格式。

        图10表示正常数据捕获运行状态。控制一般驻留在RUN0。完成更新(done update)信号由一个时钟计数器控制定期地使控制能进入RUN1。状态RUN1和RUN2递增和递减到偶数眼的两极,它们是可以改变的。记住新的极限。类似地,状态RUN3和RUN4递增和递减到奇数眼的两极,且极限被记住。状态RUN5使用RUN1至RUN4的发现来计算新的数据采样点,新的数据采样点被锁存起来供使用。控制然后返回到RUN0,进入下一个更新周期。

        SiBiDi

        本发明也提供一种硬件机构,用于为最佳双位并发双向信令自动地调节传输延迟。

        在希望接收的信号不改变时如果需要被减除(subtracted)的信号改变,则所传输的信号的SiBiDi(并发双向)IO单元“减除”(subtraction)是更成功的。这可以通过按适当的量(时钟周期的某个分数)延迟传输而实现。但是在一端延迟传输意味着数据将延迟到达另一端。于是另一端的电路将只好重新调整它的传输延迟,以便其自己的“减除”最优。因此需要寻找一对延迟设置,每个对应于连线两端的每端的电路,以便“减除”对两端都给出同样好的质量。

        此外,为了实现这一点,这两端需要交换关于对应于另一端上的传输延迟的每个选择的本地减除(subtraction)的质量的信息。但是这个信息不能用正在被优化的相同信令传输技术来交换。如果某延迟设置不好,它会破坏所发送的描述它如何不好的数据。本发明描述一种为最佳的双位SiBiDi信令自动地调节传输延迟的硬件机构。

        图11表示的第一实施例中,两个差分数据线连接一对相同节点1、2,并且其中每个节点都有一个唯一的ID,每个节点与一个2位发送器CPU和一个2位接收CPU一起操作。

        该方法利用“安全通信”设置阶段来传送每个传输延迟集合的结果。通过使用为IO单元的单向设置(其中仅仅为了使噪声最小而在一个方向上传输)并且只使用该单元的一个1位部分,将2位发送器/捕获单元用于安全通信。

        图11表示一对结点之间的电连接,并显示了两个差分数据线(每个由两个连线组成能实现差分信令)。箭头表示在安全通信设置阶段的单向信号的方向。否则,在正常通信期间的电连接是双向的。

        Sel A、B框是MUX,其中Sel=0选择从2位发送器单元到2位捕获器单元的上路径,Sel=0选择下路径。

        I)将READY(准备好)寄存器(未予示出)设定为0。

        1)IO单元A=单向发送器方式

          IO单元B=单向接收器方式

          Sel  A=1(选择上路径)

          Sel B=1(选择下路径)

        2)设定发送器延迟方式为零延迟。

        3)开始训练,上文关于寻找和检测好数据捕获眼时已经作了描述。

        4)在好的数据捕获眼中保存安全单向设置阶段通信的眼参数

        5)发送ID的第一位。在这个实施例中,节点1和2的每一个的独有Ids确定哪一个节点是主节点,哪一个节点是从节点,较高的ID自动是主节点。

        等到接收到另一个节点的第一ID位。

        比较第一ID位。

        如果相等则重复。

        如果本地的小于邻居的则设定PRIORITY(优先级)=0

        如果本地的大于邻居的则设定PRIORITY(优先级)=1

        6)IO单元A=SiBiDi方式

          IO单元B=SiBiDi方式

          Sel A=0

          Sel B=0

        7)发送器延迟方式=0

          开始训练

          寻找眼

          保存本地眼参数

        8)至如步骤1的安全方式

        9)发送你的本地眼参数至另一个节点。

          接收另一个节点的眼参数。

        10)比较参数并保存最小的参数

        11)比较当前最小的眼参数与以前的最小眼参数并将两者中的最大参数与该最大参数的本地发送器延迟方式一起保存。这个方式被视为最佳方式并被记为OPT_SENDER_MODE(最佳发送器方式)。

        在这个第一实施例中,假设一个8抽头的延迟线,这样每个节点在8个步骤中就可能有范围从零延迟到最大延迟的8个不同延迟,因此可能的组合数是8*8=64。换言之,对应一个节点处的8个延迟的每一个,在第二节点上有8个可能的延迟。因此必须测试64种可能的组合来选择最佳组合。步骤12一次一个地简单循环通过所有64个组合。

        返回到步骤6),用以下的发送器延迟方式序列重复总共64次:

        如果PRIORITY=0则邻居首先改变方式。本地序列是:

        0,8步

        1,8步

        2,8步

        3,8步

        4,8步

        5,8步

        6,8步

        7,8步

        如果PRIORITY=1,则本地序列是:

        0,1步

        1,1步

        2,1步

        3,1步

        4,1步

        5,1步

        6,1步

        7,1步

        重复8次。

        12)如6)中那样转至SiBiDi,其中发送器延迟方式=OPT_SENDER_MODE(最佳发送器方式)。

        13)设定READY寄存器至1以表示系统被优化并准备好正常的SiBiDi通信。

        如果在任何步骤有故障,以至达不到步骤14,则该节点已经发生故障。可以通过READY寄存器的内容识别故障节点。

        图12表示一个在两个节点1、2之间的SiBiDi电通信的第二实施例,其与第一实施例的一个区别在于其中一个差分数据线连接这些节点。第二个区别是该实施例对1位数据操作,而不是像图11的第一实施例中那样对2位数据操作。另一个区别是,在本实施例中,主节点和从节点是由控制软件指定的,而不是根据所分配的Ids指定的。本实施例也假设一个16抽头的延迟线而不是如图11中那样的8抽头延迟线。

        概述:

        初始对准过程(IAP)是一个步骤序列,每个端口的每个同步信号由其确定最佳传输延迟线设置(为其级外(outstage))。美国临时专利申请序列号60/271124中描述了一种具有按三位晶格连接的32*32*64个节点的、每个节点连接到6个相邻节点的大规模并行超级计算机。每个节点有6个端口,每个端口20个同步信号,使得超级计算机的一个节点处的一个节点计算机芯片上的所有120个同步信号(6个端口*20个同步信号)都能独立地执行个别训练。所有训练可以并行地发生,或者只是一次一个。(都在软件的控制下)。训练是同时在SiBiDi链路的两个方向上进行的,这允许必要的ISI(符号干涉间)和近端噪声(与环境噪声)。参看图12,IAP序列的高级流程是:

        1.软件动作:通过写每个节点计算机芯片的IAP控制寄存器而把同步链路的一端标识为“主”,另一端标识为“从”。

        2.硬件动作:主端(图12中的A端)与从端(图12中的B端)通信,以开始训练。这是有些复杂的,因为必须在一个链路在被完全训练之前跨链路传送信息。(见下文的”跨未训练链路的通信”)

        3.硬件动作:一个链路的每端都有一个遍历(runs through)所有可能的延迟线设置并比较结果以发现最佳延迟线设置的状态机(如图13A和13B中所示)。改变一端上的延迟线设置影响两端上的眼,因此系统需要遍历所有16*16个组合。(注:级外(数据发送)延迟线有16个设置,如前文所解释的那样)。对于每个延迟线训练循环,级内(数据捕获)宏从另一端接收一个伪随机数据流并寻求找到眼和表示眼大小信息供分析。

        4.软件动作:读IAP状态寄存器以确定训练的成功/失败。可以通过软件可访问的其它链路特定的状态寄存器读取精确的延迟线设置和眼大小范围。

        链路训练序列:

        图13A和13B的状态机表示在同步Si-Bi-Di连接的训练中由节点计算芯片采取的步骤。链路的每端使用下列寄存器:

        DTR-延迟抽头寄存器-控制级外中的延迟线。(有效设置是0-15)。在IAP序列期间使用两个额外的“工作”拷贝:Mst-DTR和Slv-DTR。

        LBDTR-本地最佳延迟抽头寄存器-在训练期间保存对应于最佳要看见的眼大小的DTR值。在训练结束时,LBDTR的内容被永久地装载到DTR中。

        MBESR-互相最佳眼大小寄存器-在训练期间保存最佳要看见的眼大小(根据训练中给定步骤A端和B端眼大小的最小者)。

        在链路训练序列期间,噪声生成器宏能被启动作为人工添加更多噪声的一种方式以模拟一个非常嘈杂的环境以及保证与眼的大小有关的更多的纵向电压范围。软件通过在IAP控制寄存器中写”开始”位开始IAP序列,并确定芯片为主(端A)或从(端B)。

        跨未训练链路的通信:

        在链路被完全训练之前有必要在链路的两端之间进行通信。为确保最可靠的数据传输,采用下列过程:

        1)一次只在一个方向发送数据。

        2)以较低速率发送数据。可采用1∶8的比率(即为8位时间保存“1”或“0”)。

        在训练之前,链路的两端没有可预测的相位(phase)关系。因此,如果一端发送”110011”,并且如果样本点与交换数据对齐,则数据可能被接收为”111011”或”100011”等等。传输速率要低的足以检测到连续样本上的稳定数据,并且不与位流内的在0->1或1->0变换期间发生的错误采样相混淆。

        在“主”和“从”之间发送的“命令”有一长串的前导“1”和后继的8个0。命令看起来是:......许多1,8个0,命令的第一位的8位时间,命令的第二位的8位时间,......命令的最后一位的8位时间。接收端检测到1->0转变并估计8位时间窗的中间。(实际上,这可以是8位时间窗的第3、第4、或第5位;它们全部都应当稳定且有效)。此后,对每一个第8位采样,以解译命令/信息。

        参看图13A和13B,所有命令都以大写字母指示,图13B中的框0、5、6、9、12-14中的“相同”二字表示它们分别与图13A中对应的框的意思相同。

        参看图13A,这是主端,在阶段(0)等待一个开始软件命令,然后复位寄存器DTRs、LBDTR、MBDTR。在阶段(1),主端等待接收来自从端的BEGIN(开始)命令,如果不,则向从端发送一个BEGIN命令,并等待来自从端的BEGIN答复。如果不,则主端等待并向从端再发送BEGIN。如果主端接收到来自另一个主端的BEGIN,则中断。

        在阶段(4),如果是,主端发送一个TRAIN(训练)命令,指示主端准备开始同步,然后暂停。

        在阶段(5),主端传送一个随机数据位流,以便能捕获眼。

        在阶段(6),主端等待眼的捕获并评估关于每个眼的信息,诸如眼大小。

        在阶段(7),主端等待接收关于眼大小的数据,如果不,等待(例如1微秒)并发送关于眼大小的数据,再次等待接收关于眼大小的数据。

        接收到时,主端更新MBDTR和LBDTR寄存器并递增Mst-DTR,如果重叠(计数器溢出)则递增SLv-DTR寄存器,对所有256个组合重复阶段(4)-(9)。

        如果是,在阶段(10),主端发送一个END(结束)命令,以结束眼训练。

        在阶段(11),主端等待接收来自从端的END命令。

        如果是,在阶段(12),主端用LBDTR装载DTR,然后复位级内,这是一个设定(set-up)节点。

        在阶段(13),最优眼参数被用来传送随机数据。

        阶段(12)和(13)用最优眼参数来传送随机数据,然后最优眼参数被重新评估,如果成功则被锁定就位。

        在阶段(14),主端断言一个“复位假信号”(Reset Glitch)信号,以复位并重新评估数据捕获,对照最小眼大小数据检查眼大小,以及更新IAP状态寄存器。

        图13B的从端的操作从上述对主端的描述应当是明显的。

        尽管本文详细描述了本发明的用于高速信令的数据捕获技术的若干实施例及变体,显然,对于本领域的那些熟练人员来说本发明的内容和教导将揭示许多可替代的设计。

    关 键  词:
    用于 高速 数据 捕获 技术
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:用于高速信令的数据捕获技术.pdf
    链接地址:https://www.zhuanlichaxun.net/p-94392.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1