通过无开销链路级CRC进行的错误隔离 相关申请的交叉参考
本发明要求名为MASSIVELY PAPRLLEL SUPERCOMPUTER的提交于2001年2月24日的共同拥有、共同未决的美国临时专利申请序列号60/271,124的优先权,其整个内容和公开内容在此明确引入作为参考,就象在此全部提出的一样。该专利申请另外涉及提交于与之相同的日期的以下共同拥有、共同未决地美国专利申请,其每个的整个内容和公开内容在此明确引入作为参考,就象在此全部提出的一样。对“ClassNetworking Routing”的美国专利申请序列号(YOR920020027US1,YOR920020044US1(15270));对“A Global TreeNetwork for Computing Structure”的美国专利申请序列号(YOR920020028US1(15271));对“Global Interrupt and BarrierNetwork”的美国专利申请序列号(YOR920020029US1(15272));对“Optimized Scalable Network Switch”的美国专利申请序列号(YOR920020030US1(15273));对“Arithmetic Functions in Torusand Tree Networks”的美国专利申请序列号(YOR920020031US1,YOR920020032US1(15258));对“Data Capture Technique for HighSpeed Signaling”的美国专利申请序列号(YOR920020033US1,YOR920020034US1(15259));对“Managing Coherence Via Put/GetWindows”的美国专利申请序列号(YOR920020035US1(15260));对“LowLatency Memory Access And Synchronization”的美国专利申请序列号(YOR920020036US1,YOR920020037US1(15261));对“Twin-TailedFail-Over for Fileservers Maintaining Full Performance in thePresence of Failure”的美国专利申请序列号(YOR920020038US1(15276));对“Fault Isolation Through No-Overhead Link LevelChecksums”的美国专利申请序列号(YOR920020039US1(15277));对“Ethernet Addressing Via Physical Location for MassivelyParallel Systems”的美国专利申请序列号(YOR920020040US1(15278));对“Fault Tolerance in aSupercomputer Through Dynamic Repartitioning”的美国专利申请序列号(YOR920020041US1(15274));对“CheckpointingFilesystem”的美国专利申请序列号(YOR920020042US1(15279));对“Efficient Implementation of Multidimensional Fast FourierTransform on a Distributed-Memory Parallel Multi-NodeComputer”的美国专利申请序列号(YOR920020043US1(15262));对“A Novel Massively Parallel Supercomputer”的美国专利申请序列号(YOR9-20010211US2(15275));和对“Smart Fan Modules andSystem”的美国专利申请序列号(YOR920020045US1(15263))。
【发明背景】
【发明领域】
本发明涉及例如被应用于生命科学领域中的计算的分布式存储器消息传递并行计算机设计和系统软件的领域。更具体而言,它涉及支持许多并行应用所使用的全局通信的系统软件库。
背景技术
名为“A Massively Parallel Supercomputer”的临时专利申请no.60/271,124描述了包括许多计算节点和较小数量的I/O节点的计算机。这些节点由几个网络连接。具体而言是双功能树网络,其支持整数组合运算,如整数最大值和整数最小值。
在并行超级计算机中,有以消息形式从一个处理器发送到另一个的大量数据。这些消息通过标准技术如奇偶校验、crc校验等来保护以使其不受损害,其中数据的奇偶或数据的crc被包括在从一个处理器发送到另一个的数据中,由接收处理器来计算,并被比较。然而,如果在被用于计算该比较或双差错错误逸出(escape)奇偶检测等的逻辑中有故障,一些消息差错可通过机器传播而没有检测。在被描述于上述临时专利申请no.60/271,124中的机器中,存在近似64,000个处理器,其具有每微秒发送256个字节的约1,000,000个链路。即使有作为极低的位差错率的低如10-15中1个的差错率,仍将有每秒1个差错。所需的是一种简单的装置以确保在发送器和接收器之间的数据传输中不发生差错,而无需附加的计算。
发明概述
本发明的目的是改进并行超级计算机中的错误检测。
本发明的另一目的是提供用于整体并行的超级计算机的无开销错误检测的过程。
本发明进一步的目的是提供一附加装置以检测可发生于在并行超级计算机中从一个处理器到另一个处理器发送的数据的传输中的差错,而不导致在处理器之间发送附加数据的损失(penalty)所述差错。
这些和其它目的是用实施本发明的错误隔离技术来实现的。通常,依照本发明,对从一个处理器被发送到另一个并且从一个处理器被接收到另一个的所有数据保持独立的crc(循环冗余校验)。在每个校验点的结尾处,crc被比较。如果它们不匹配,则有差错。crc在每个校验点处被清除并且重新开始。
在优选实施例中,基本的功能性是计算已在给定链路上成功发送的所有包数据的CRC。该CRC是在链路的两端进行的,由此允许对认为已被正确发送的所有数据进行独立的校验。优选的是,所有链路都具有该CRC覆盖范围,并且在该链路级校验中使用的CRC不同于在包传输协议中所使用的。如果被成功传递,该独立的校验实际上消除了在先前传输周期内错过任何数据差错的可能性。
从对参照附图给出的以下详述的考虑,本发明进一步的好处和优点将变得明显,所述附图详细说明并示出本发明的优选实施例。
附图简述
图1是实施本发明的并行超级计算机的简化表示。
图2是图1的超级计算机的处理节点的方块图。
图3示出由全局组合树连接在一起的超级计算机的节点。
图4示出以环形的形式被连接在一起的超级计算机的节点。
图5是示出用于在节点链路的发送侧保持校验和的电路和过程的方块图。
图6是说明在图5的电路中发生的各个事件的相对时序的时序图。
图7是识别在图5的电路中使用的信号的表。
图8是说明用于保持crc的第二过程的方块图。
图9是示出在图8的电路中发生的各个事件的相对时序的时序图。
图10是识别在图8的电路中使用的信号的表。
优选实施例详述
图1说明实施本发明的整体并行的计算机系统10。系统10是基于216=65,536个节点12的可按升级的超计算机计算机。每个节点12是很简单的,包括单个ASIC和9个SDRIM-DDR存储器芯片。节点通过6个网络互连,该网络的最高总带宽是将节点映射到64×32×32的物理3维环形中的最近的相邻链路。实际上在这种互连中没有非对称,这是因为节点以相同的带宽和几乎相同的等待时间与在物理上关于相邻支架(rack)上的节点接近的节点通信。由此允许简单的编程模型。给节点供电的ASIC基于芯片上系统技术并结合了所有所需的功能性。它亦包含4MB的极高带宽嵌入式DRAM,其是来自最高L1高速缓存未中上的寄存器的第9级循环。节点12本身在物理上是小的,从而允许很高密度的处理。
图2是系统10的一个节点12的方块图。该节点包括两个嵌入的芯20和22,每个都具有有2.8GF目标峰值性能的双浮点芯。优选的是系统10支持虚拟切过(cut-through)路由,其将使任何树节点以低等待时间通信。还有,优选的是,存储器系统被构建用于高带宽、低等待时间存储器和高速缓冲存储器访问。节点12进一步包括预取缓冲器24和26、eDRAM 30、多端口SRAM缓冲器32、链路缓冲器34、接口模块36、DDR单元40和用于eDRAM的共享目录42。
参照图3,每个I/O处理节点12通过以50表示的全局组合树连接于例如64个计算节点。任何计算节点能以全千兆位速度来读或写RAID盘。这种二进制组合树实际上在整个机器10上延伸,从而允许以小于1usec的等待时间将数据从任何节点发送到所有其它节点(广播)或节点的子集。消息传递被支持于全局组合树上,并由每个ASIC内的第二处理器控制,从而允许类似所有对所有通信的强化操作以独立于计算节点而继续进行。该树的每个分支在发送和接收两个方向上均具有1.4GB/s或每个处理器循环2个字节的目标带宽。被构建到树中的硬件功能性是整数加法、减法、最大、最小和广播。该功能是以最低等待时间可能方式来实施的。相同的树可被用于数据的全局广播,而不是绕环载运它。
此外,物理机器体系结构被最近地结合于如以图4的52表示的3D环形。这是简单的3维最近的邻元素互连,其在边缘处被“包绕(wrapped)”。所有邻元素是等距离的,除了飞行时间差异,如在ASIC的不同支架之间所存在的,从而使得容易编写和最优化代码。最近的相邻链路目标被设定为4x的处理器速度(每个方向上2.8Gb/s)。每个节点因此支持有4.2GB/s的总带宽的6个独立双向最近相邻链路。例如,在系统10中,电路卡以2×2×2的近立方体(sub-cube)来接线,而每个支架两个的中间平面被接线为8×8×8的近立方体。整个64k机器是64×32×32的环形。
在系统10中,对从一个处理器被发送到另一个并且从一个处理器被接收到另一个的所有数据保持独立的crc,并且在每个校验点的结尾处,该crc被比较。如果它们不匹配,则有差错。优选的是,该crc在每个校验点处被清除并重新开始。
基本的功能性是计算已在给定链路上成功发送的所有包数据的CRC。该CRC是在链路的两端进行的,由此允许对认为已被正确发送的所有数据进行独立的校验。优选的是,所有链路都具有该CRC覆盖范围,并且在该链路级校验中使用的CRC不同于在包传输协议中所使用的。如果被成功传递,该独立的校验实际上消除了在先前传输周期内错过任何数据差错的可能性。该周期可以是任何时间长度,并且例如可以是至少几分钟。就数据使用而言,该技术不需要开销,这是因为它完全是另外进行的。例如,链路级CRC可在链路不运转的任何时间通过DCR来校验。方便的时间可能是在校验点期间。数据和由此的CRC的大小由网络接口的大小来确定。对于环形,可使用8位的方案,而对于树,32位的方案可能是适合的。
优选的链路级CRC在以下被讨论。一开始,可以指出,对于树网络和环形配置两者,接收侧CRC可以是相同的,并且该CRC亦可被用于环形体系结构的发送侧。然而,用于环形的发送侧链路级CRC不同于用于树的,这是因为环形将发送可能不被重新发送的包。
对于树50,并参照图5,以60表示的发送侧将基于所发送的所有数据而累计CRC。从再传输缓冲器发送的数据将不被包括,这是因为该数据将已被包括在运行的(running)CRC中。可以指出,令牌和确认应答不被包括在CRC中,而仅仅是数据包被包括在其中。
图6示出用于树的发送侧链路级上的事件的时序,而图7的表识别在该过程中所使用的信号。
对于树,第二过程被用于CRC的接收侧,而对于环形,被用于发送侧和接收侧两者。更具体而言,参照图8,接收侧将基于正确接收的所有数据而累计CRC。这亦被用于环形上的发送侧逻辑。由于我们不应在该链路级CRC中包括一个包,直到确定没有差错,因而在此使用了附加特征。正被接收并且可潜在地成为可接受的数据包(通过“Valid”信号来表示)的数据通过将其加载到运行的CRC模块64中而被包括在运行的crc中。当看到一个包的结尾并且该包已通过所有完整性检验(packet accept=“1”)时,运行的CRC模块的输出被捕获到接收侧CRC寄存器66中。这是通过“Packet Accept”信号来表示的。如果发现一个包处于差错状态或由于差错复原协议而要被忽略,则用先前存储的CRC寄存器预加载运行的CRC模块。处于控制逻辑单元68的控制下的该过程将确保CRC寄存器将包含用于在链路上被接受的所有数据的CRC。
用于输入信号的时序关系在图9中给出。可能优选的是管线输送(pipeline)“received byte”至少一个循环以满足这些时序要求。图10的表识别在该过程中所使用的信号。
尽管显然在此所公开的发明被很好地考虑以实现上述目的,将理解可由本领域的技术人员设计诸多修改和实施例,并且想要的是所附的权利要求覆盖属于本发明真实精神和范围的所有这样的修改和实施例。