CN110914813B - 数字处理连接性 - Google Patents

数字处理连接性 Download PDF

Info

Publication number
CN110914813B
CN110914813B CN201880045443.9A CN201880045443A CN110914813B CN 110914813 B CN110914813 B CN 110914813B CN 201880045443 A CN201880045443 A CN 201880045443A CN 110914813 B CN110914813 B CN 110914813B
Authority
CN
China
Prior art keywords
connectivity
connection device
unit
units
fulcrum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880045443.9A
Other languages
English (en)
Other versions
CN110914813A (zh
Inventor
德里克·约翰·哈姆林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
De LikeYuehanHamulin
Original Assignee
De LikeYuehanHamulin
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by De LikeYuehanHamulin filed Critical De LikeYuehanHamulin
Publication of CN110914813A publication Critical patent/CN110914813A/zh
Application granted granted Critical
Publication of CN110914813B publication Critical patent/CN110914813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17362Indirect interconnection networks hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17387Three dimensional, e.g. hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/312List processing, e.g. LISP programming language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种连接性具有互连大量多个拥有地址的计算单元(20和22)的信号链路的第一网络(25)。所述链路中的一些能根据沿着递归曲线分层排序的地址选择。形成所述网络的所述地址指定的链路中的大多数能够在单元之间可切换地操作,使得沿着所述递归曲线的一个分段的第一组可选择单元形成通向沿着第二分段的第二组可选择单元的信号路线。为了接收指令和为了同步,一些分段具有能从那个分段的一个控制单元切换的信号路径。第二网络(23)具有互连多个处理单元(19和21)的信号链路,所述多个处理单元(19和21)中的一些控制数据到所述第一网络的单元中的加载。所述计算单元和所述处理单元具有成对匹配的地址并且是成对相连的,这确保由第二网络(23)对所述连接性的控制被引导到第一网络(25)的能够可定位地选择的分段。

Description

数字处理连接性
技术领域
本发明涉及用于通过多个并发操作的数字计算引擎和互连信令网络来执行指令和数据的并行处理的设备。
背景技术
在通过复合计算系统(诸如,IBM蓝色基因系列的高性能计算机和现有技术中许多其他类似的大规模并行数据处理架构)执行多个用户应用时,大量数字计算引擎中的每一个在一定程度上相互独立地操作以便同时进行用户应用的众多子任务。如果应用和子任务本身完全相互独立,那么数字计算引擎可并发对许多此类任务进行操作,全都在大体上相同的最后期限内完成,正如分布在世界各地的无数单一个人计算机上实际上所发生的那样。明显地,在依序运行相同的这众多任务的情况下,单个这样的处理元件可按与以前相同的最后期限响应完成单个所选择任务,但所有其他任务然后在它们自己完成之前必然必须按某一优选次序等待其对单个处理器的工作负荷的相应分时。
这种简单的观察结果已经成为对按指数增长的单一计算机操作速度的需求的驱动力。已经渐进地开发出异常复杂的制造技术来提高单个单一计算引擎(诸如,Intel系列的微处理器)的原始速度(或吞吐量)。然而,根据计算机制造商的说法,现在(截至2007年),在基础工程设计物理学方面没有不可预测的突破的情况下,单一计算机操作速度的进一步显著提高似乎是不可能的。
长久以来一直有人建议,也许可通过互连在很大程度上自由地并发操作的一群数字计算机来显著降低对时分的需要,如据说Feynman早在1943年所建议的那样。然而,此类并发操作的计算机的有效应用中所需的速度(或数据吞吐量)超过原始速度(或数据吞吐量)。为了可靠地且在可接受的项目时间范围内返回结果而对任务进行的组织、调度和控制一直是计算机科学的主要挑战。即使当在单个计算机上依序地处理时,对任务交互进行的组织、调度和控制也一直是高层次的智力挑战,如最初或完全由于软件设计误差而失败的大量计算机项目所证明的那样。如早先参考普遍存在的个人计算机所指出的那样,存在几乎不需要相互通信的数字计算引擎的许多有价值的、独立的、遍及世界各地的任务,但在商业、经济、工程设计和科学中特别重要的许多其他处理应用涉及执行需要密切相互通信的任务。如果要互连大量数字计算引擎以便同时执行许多任务,那么对此类并发任务的组织、调度和控制一起所带来的挑战远大于历史上的串行计算机编程所造成的挑战;迄今为止,除了在仔细划分的任务之间的基本相互通信的有限情境中,这个问题尚未得到充分解决。
在本专利申请的提议下的重要推测是,如果比方说要用数百万或甚至数亿原始数字计算引擎执行任务,那么使用多个数字计算引擎的并发操作的应用的这种计算机编程负担将得到简化。这与使用少得多但强大得多的单独数字计算引擎获得计算功能有区别,这些单独数字计算引擎需要复杂的任务同步、数据共享和聚集协议,如在粗粒型计算机中所采用。多种原始数字计算引擎与其相关联互连网络的组织在本文中叫作‘连接性’,且可宽松地看作类似于大脑神经元的大型网络,单独地反应迟钝,但是由于所有单独击发细胞的总和的丰富连接性而集体地能够有迅速的、极度复杂的响应。根据原始数字计算引擎(而非强大的通用单一处理器,诸如个人计算机)的使用,下文将要阐释的所提议的数据处理配置属于细粒型大规模并行计算的子类别,其中通信数据传输路线的整体连接模式主要地确定本发明的体现形式及其能力。已提议用于大规模并行处理的许多连接性,包括已取得了一定商业成功的Hillis和Intel超立方体,但是还没有证据表明迄今为止的任何连接性能够在不事先通过多个独立用户一起协同动作来将任务和阵列映射到所选择数字计算引擎上的情况下同时向所有用户提供对各种大小的任务和阵列的并发操纵。一种所提议的架构(Hamlin,美国专利第5,434,972号)从多个接口并发提供对多个任务的自动分布和控制。
由于大脑活动的详细机制仍然是神秘的,因此如在本发明下规定的模拟连接性必然必须使用数据处理部件的根本不同的互连,且还必须使用根本不同的任务切换范例。推测所选择连接模式和相关联的编程范例应一起定义计算机器用于控制大量独立用户访问端口以及用于分布和执行同样大量用户软件任务和数据阵列的整体运行统一性。
此外,最重要的是,定义高性能计算机器所用的所得逻辑规则应使组织其操作的并发性的智力挑战最小化,特别是关于避免常驻应用与其部分之间的逻辑冲突。这些策略性设计驱动因素之间的复杂相互作用意味着连接性的逻辑结构中的高度新颖性,当然也排除了从单一或甚至粗粒并行计算实践进行的直接设计演化。
由于大规模并行处理的巨大前景,在此技术领域中已有众多提议、专利申请和其他公开的主题。因此,例如,美国专利第5,434,972号(其公开内容因为在下文将变得显而易见而将被视为构成本专利申请的整体部分,且因此应结合本申请的公开内容来阅读理解)含有对现有技术提议和实现方式的各种示例的参考,在这些提议和实现方式中,可能与本发明最相关的提议和实现方式登记于描述处理实体的二进制超立方体网络的颁予W.D.Hillis的美国专利第4,598,400号和第4,814,973号,以及特别地,还有Tony Chan和Yousef Saad在1985年在以名称Yale/DCS/TR368标识的文档中发表的题为“Multi-gridAlgorithms and the Hypercube Multiprocessor”的研究中。在典型示例中,形成用于阵列处理的数字计算引擎(图形节点)之间的通信路径的链接(图形边缘)的二进制超立方体图形提供一个可能的平台,并且已由Hillis开发为具有主执行处理器的数字计算引擎的大阵列,且提议可将此阵列与‘茂密树型’输入网络结合起来。
Hillis的网络被设想出来的目的是互连数以千计的数字计算引擎且在最广泛间隔的处理器之间具有短电气距离。作为二进制超立方体的示例,3个维度包括2^3个节点实体,而15个维度的二进制超立方体包括2^15个节点实体,且这后一形式提供通向每个处理器的15个互连链路。明显地,对于大于3的维数,空间维度变得抽象,因此,作为通信网络,它们必须在3个空间维度中实施,但在实践中,大多数连接性互连和处理器节点实际上在结构上坍变为二维处理器网格。应注意,Hillis有用地将循环编码的、格雷编码的地址附加到他的处理实体而非整体,其目的是识别它们在他的网络内的相对电气位置。
因此,Hillis和Intel机器并有大量处理器,且充分地互连物理上靠近的相邻处理器还有广泛分开的处理器。这在同时互连某些种类的并发阵列处理任务方面提供灵活性,且特别显得匹配许多重要的矩阵样操纵的形式。这些超立方体的第一劣势在于由于高维超立方体网络需要大量接口所致的数万处理器的实际上限。在n维二进制超立方体中,每个处理器必须并有到n个相互通信线路的接口连接。如下文所提出,重要的应用需要数百万处理器,因此,在Hillis专利公开内容中,为了增加可用处理器的数目,可能已经使用另外的数字计算引擎块来替换每个超立方体节点数字计算引擎,但这些另外的分群然后将不匹配超立方体拓扑的规则互连,且不可避免地将引起更不透明的混合结构,且伴随着其所有编程困难。还建议减小基础二进制超立方体(即,2阶)架构的拓扑,藉此将超立方体扩展到k阶,使得可以与相同大小的完全互连的二进制超立方体架构中所需相比更少的互连来并入更大数目的数字计算引擎。这称作n维结构的k进制n立方体,其中每个维度有k个线性互连处理器,一共k^n个处理器。在这种情况下,环绕式链路有利地完善网络互连的均匀性,从而形成k进制n环面。
Hillis超立方体的第二劣势在于其对将诸如不平衡决策树的常见逻辑任务的形状和组织、并发‘废物收集’和阵列处理操作本身的逻辑配置和调度匹配到网络的限制。不规则数据结构的复制也是有问题的,就像对并发输入与输出的控制那样,都需要高度专业化的编程技术来将任务映射到处理器的网络上。这导致提议将‘茂密树型’主处理器作为超立方体的执行控制器,以便调度超立方体实体的数据(Leiserson),但关于其实施的可行性和成功性都无法获得信息。实际上,Leiserson等人的“The Network Architecture of theConnection Machine CM-5”暗示已放弃了超立方体形式的连接性。IBM蓝色基因系列也使用树结构来将输入调度到它的处理器阵列,且已提议5维网格以扩展原始实现的网格的效用。使用主处理器调度和馈入阵列处理器在其他地方也是熟知的,如在ICL DAP阵列处理器(美国专利第3,979,728号)的早期示例中,且认识到在此类自动计算应用中在执行阵列处理操作之前对任务进行高效预调度的重要性。然而,DAP是单任务阵列处理器。
尽管如此,仍然不言而喻的是,如果将要跨机器并发进行事务,那么大量的数字计算引擎必然需要大量的互连路径。这种计算的理解解决方案将并有“所有对所有”互连模式(另外称为“完全图形”)。一般来说,对于n节点网络,将需要n×(n-1)/2个双向链路。因此,10^6个处理器将需要~10^12个链路,且每个节点将需要10^6个访问端口。虽然对于编程选项的灵活性是高度所期望的,但这推测起来是不切实际的,因此在实际机械化的选择中,认为对链路的数目进行极端折衷是强制性的。然而必然的是,在为软件设计师提供简单的并行编程原理的同时,更受限制的网络化路径必须仍然以某种方式满足高度并发的应用。
如果未来要在大规模并行连接性内保留编程的效用和权限,那么自动资源再循环(全局废物收集)似乎也是必不可少的,且仅美国专利第5,434,972号在使网络拓扑本身与实际形式的多处理应用软件协调一致的同时贯穿架构提供了程序员无关的并发废物收集。
并行计算网络领域的许多理论研究受到以下期望的激励:将单个网络拓扑一般化以匹配所有可设想的软件应用,使得在仍然针对任一特定软件应用导致改善的最小可达成解决时间的同时,所得机器可不对软件设计师的目标造成限制。另外,作为不可避免的商业折衷,强调可访问处理节点的最小数目。因此,商业及理论上的大规模并行计算机器都鼓励计算的软件线程溢出至高能力的单处理器节点,所述单处理器节点单独地为软件设计师提供实际上无限的软件自由度。然后,编码机器的宏观编程规模与单独节点(和它们的接口)的微观编程规模之间存在操作概念的冲突。认识到商业上可获得的串行节点然后限制了机器的操作的整体并发性,许多相关联理论研究已专用于以本地并行处理器群集(诸如,图形处理单元)进一步增大单独节点的能力,然后解决宏观联网的全局并行性与节点处的微观联网并行性之间的尴尬失配。相比之下,商业上的大规模并行机器是从个人计算节点直接演化的,这是因为个人计算节点的硬件权限和程序员熟悉度。它们的互连和输入/输出网络使启发性地而非严格按理论演化的。已避开了更早期的细粒型、软件匹配的机器(诸如,原型Mago或Hamlin),这至少是因为其拓扑的应用空间局限于执行样式的软件,且对于大型算术处理块效率低下。类似于Turing/von Neumann单处理器的一般性,尚未报告出高效的‘所有事对所有人’大规模并行机器。实际上,认识到并行版本中的各种代码线程在本质上在操作中可以是串行的,所期望的是串行排序的通用图灵机的并行处理版本。长久以来,Churchλ演算在严格程度上被认识为等同于图灵公式,且提供以功能样式的编程为代表的使操作并行的方法。
然而,与对用于大量处理器的互连方法的任何选择相关联,在架构内在处理实体之间仍然存在不可避免的大量离散数据路径。最近的专业制造技术在这方面提供了较大的三维灵活性。例如,例如,“Deposition Processes for Competitive Through SiliconVia Interposer for 3D”,Uzoh等人,IWLPC,2012年11月描述了将实现从硅芯片到其匹配的衬底的引脚密度的实质性增大的‘硅穿孔’,且预示用于促成这里针对细粒型大规模并行机器预料的密集连接性的一种方式。Assefa等人,“Reinventing germanium avalanchephotodetector for nanophotonic on-chip optical interconnects”,自然,第464|4卷,2010年3月赞美了改善连接性的实际范围的另一方法。这声称数字集成电路内的40Gb/s的位速率,且由此通过多对原本并发操作的数字计算引擎之间的数据-消息的共享串行化而会将互连的数目减少至少一个数量级。这可应用于共享数据总线。在这些技术领域中,已公布了许多提议和发展。多抽头总线架构的示例是在每个用户访问点处使用总线空闲传感器来预测新消息插入的可用性的以太网标准。每条消息都标有目的地编码,且以此方式可被预期目的地截获。
关于真实的通用计算范例,最主要是缺乏笛卡尔数据阵列的空间本地算术卷积(诸如在矩阵乘法中)与高度不可预测但在空间上自由的、分层的、树型分支的执行处理结构之间的协调性。冲突是源自计算其相应软件结构的两个必要逻辑范例之间的形状差异。在单处理器顺序处理中,阵列处理操作需要‘for循环’,并且执行处理(即,‘决策’)需要树结构化的‘if-then-elses’。为了有效的操作并发性,应将每一个映射到紧密匹配其自己的形状的数字计算引擎网络上。可将执行软件的分层树模式映射到处理器的笛卡尔阵列(当然,它最佳地匹配矩阵的形状)的部分上,但对于实际的、不规则的执行控制结构,所述映射非常低效—如实际上在超立方体架构中不利地体验到的。尚无商业计算机设计宣布最优地协调并发处理连接性中的两个范例。
所述Hamlin专利尤其预料到包括数据处理单元的多树连接性但实质上与Mago型且与‘茂密树型’实现方式(诸如由Leiserson针对Hillis架构所推崇的)都不同的数据处理连接性。Hamlin模式遵循以笛卡尔平面形式(其遵循首先由Mead和Conway发表的原理(Addison-Wesley,1979))布局的分层的规则树拓扑处理结构,但它并不作为有效阵列处理器连接。
所有数字计算机合并有用于指令序列和数据的大量存储器位置,并且这些位置各自具有明确的地址指定。所述指令通过充当跨存储器的指针的相关联的地址字段而彼此相关,存储器通常被样式化为具有整数地址的一‘列’位置。除了存储器位置之外,计算引擎的中央处理单元还与多种端口接口连接,并且那些端口也通过可由中央处理单元访问的地址标识。中央处理单元具有在‘微编码的’逻辑电路中解译和计算用户指令—各自由唯一代码标识—的能力,所述逻辑电路还选择并控制到各种地址的切换式路线(通常借助于用于诸如‘C’和Lisp的高级语言的编译器来组织)。微编码具有与小软件应用类似的属性,只是它体现在中央处理单元的硬连线切换中。它定义被使得对所有用户可用的指令及其格式,但它是刻意地不灵活的并且通常是用户不可更改的。大规模并行机器具有大量多个单处理器数字计算引擎,所述单处理器数字计算引擎通过访问和控制专用于唯一地标识与信号的源和目标相关联的网络端口的又另外定址方案的专业化微编码的指令在它们自己之间以及与用户进行信令。用于那些网络端口定址方案的指令和定址消息类似于但有别于每单个单处理器数字计算引擎中的存储器位置的指令和定址消息。
表示多维阵列中的数据处理器之间的Hilbert空间填充递归曲线的信令地址的布置已由Lawder(“Calculation of Mappings between one and n-Dimensional ValuesUsing the Hilbert Space-Filling Curve”;研究报告JL1/00,伯克贝克学院,2000)论述,Lawder合并有数据库地址根据由Butz在“Space Filling Curves and MathematicalProgramming”,信息与控制,第12卷,1968中推导出的Hilbert曲线算法进行的顺序排序。这具有组织阵列中的数据的递归空间局域性的期望作用。其他(所谓的)‘空间填充曲线’由Lebesgue(‘Z’曲线)和Moore(关于Hilbert曲线的变化)论述,它们在空间结构中也是递归的。许多递归曲线的形式定义在M.Bader的“Space-Filling Curves”,施普林格出版公司2013中给出。
Butz使用格雷码和整数的等效性来简化他的算法的部分,并且Hillis标识格雷码以用于他的超立方体处理器节点定址,在两种情况下,都是因为在n维度笛卡尔坐标中的紧邻节点的数字编码的地址是通过双态切换单个位来链接。具格雷编码的算术已由Lucal(“Arithmetic Operations for Digital Computers Using a Modified ReflectedBinary Code”,IEEE,1959年12月)解释,并且与常规二进制算术相比仅得到稍微更多的涉及;“The Gray Code”,Doran,CDMTCS-304,2007年3月提供另一解释。
发明内容
根据本发明的第一主要方面,提供一种数据处理连接性,其具有:
由信令路径的第一通信网络互连的多个拥有地址的数字计算单元,其中:
每个数字计算单元连接通过大量信令路径连接到相似大量信号邻近邻居数字计算引擎以用于能够可切换地选择的双向数据通信;
至少一组的所述多个的路径选择代码,所述至少一组的所述多个的路径选择代码是根据递归算法规定的并且双射地映射到所述多个单元中,可能地除了终端代码之外,每个代码适于引导其对应单元选择通向所述对应单元沿着代码选择的路径的链的随后邻居单元的所述路径以用于单向信号传输,所述链只穿过所述单元中的每一个一次,从而沿着其长度递归地定界分层嵌套的分段并描述沿着其所述嵌套分段中的每一个群集的对应地定界的连接性;并且
若干所述连接性中的每一个具有自主操作的通信和处理构件,所述通信和处理构件能操作以对来自对应用户的数字代码阵列执行并发阵列处理。
根据本发明的第二主要方面,提供一种数据处理连接性,其具有若干所述子连接性,每个子连接性具有叫作‘支点’的控制数字处理单元,其具有与其规定子连接性的位置和大小相对应的控制范围,每个支点与对应用户具有信号通信,并且所述支点及其对应单元分段一起具有将来自所述用户的数据传送到所述对应地规定的子连接性的所述单元的构件。
根据本发明的第三主要方面,提供一种数据处理连接性,其具有双向信令路径和信号引导节点的第二网络,所述信号引导节点实现所述多个单元的对之间的互连,使得第一单元具有通过按顺序与第二单元的目的地地址相对应的一系列能够选择的所述节点与所述第二单元通信的构件,所述所得的一系列所述路径从所述第一单元渐进地排序通过毗连节点,并且每个节点具有将自身和其毗连信号路径锁存开放以用于单元之间的双向数据传输的构件,所述网络被配置成使穿过它的多个这样的路线能够共存。
根据本发明的另一方面,提供此类支点的分层,使得具有宽泛范围的支点具有对具有较窄范围的支点连同在其控制下的相应单元的任意控制。
根据本发明的另一方面,所述并发阵列处理操作包括将数据阵列中的每个成员分别从第一子连接性逐步同步地移动穿过所述信令路径的所述网络,以作为相似阵列存储于所述第二单元子连接性中。
根据本发明的又一方面:若干单元通过用于作为计算群体相互通信的构件实现对来自用户的数字编码的函数表达的存储和计算,每个单元具有至少用于根据用于简化函数表达的规则计算指令序列的逻辑和算术处理电路系统;所述序列实现对所述函数表达的可计算函数和所述计算群体内的单元中的另外单元的调用地址两者的评估;并且所述另外单元中的每一个类似地计算另一函数表达,从而返回呈函数自变量的形式的结果以应用于所述数字编码的函数表达的所述简化。
下文参考被视为这里已阐述的权利要求书表中的权利要求,加以必要的变更,来描述本发明的前述和其他特征。
附图说明
下文参考附图描述本发明的实施方案,在附图中:
图1是示意性地表示本发明的实施方案并展示数字处理设备的框图,所述数字处理设备具有通向用户终端的接口,并且包括大量多个数字计算引擎;
图2是更详细地展示本发明的实施方案的示意框图,所述实施方案将数字计算引擎表示为借助于大量信号传输网络相互通信;
图3是在图2的实施方案中体现的信令路线的示意图示,其遵循近似于Hilbert空间填充曲线的穿过数字计算引擎的递归曲线;
图4是展示穿过数字计算引擎的递归曲线的第二形式的信令路线的示意图示;
图5是概念地表示来自三个用户的三个典型软件应用的示意图,所述软件应用跨图2的实施方案中的数字计算引擎分段分布且共享所述分段;
图6是本发明的实施方案的部分的示意图,其展示借助于两个不同但互补的信令网络互连的数字计算引擎电路,以及形成所述网络中的一个的部分的递归曲线链路;
图7是由互补网络中的一个的部分互连的数字计算引擎的示意图;
图8是表示用户与数字计算引擎之间的可切换信令路线的网络路径和切换节点的示意图;
图9是将图8的网络路径和切换节点延伸到二维阵列中的另一示意图;
图10是图8中的典型切换节点的元素部分的示意框图;
图11是图8中的典型切换节点的第二元素部分的示意框图;
图12是图8中的典型第二层级切换节点的示意图;
图13是图8中的典型第三层级切换节点的示意图;
图14是数字计算引擎之间的互连的抽象四维超立方体的并展示递归曲线的示意图;
图15是布局为二维网络的图14的相同抽象四维互连的并展示与‘H’曲线相同的递归曲线的示意图;
图16是k进制n立方体互连和递归曲线连同形成k进制n环面的典型环绕式链路的示意图,其中‘k’为4并且‘n’为3;
图17是图3的详尽细节,其展示数字计算引擎的定址的一种形式;
图18是图4的详尽细节,其展示数字计算引擎的定址的另一形式;
图19是图15到八维递归H曲线的扩展,其展示用于数字计算引擎的紧凑的分层定址方案;
图20是展示一些超立方体连接的图15的网络的第二视图;
图21是从呈格雷码形式的k进制n立方体笛卡尔数字计算引擎定址坐标导出H曲线线性坐标的转换算法的列表;
图22是紧凑的分层地址索引方案的图解,其展示所述方案与两轴格雷编码的二进制序列的关系;
图23是十维超立方体的单个行中和单个列中的数字计算引擎之间的分层链接的图解,其展示与格雷编码的二进制序列的关系;
图24是笛卡尔连接性中的另外链接的示意图;
图25是图19的再现,具有两个数字计算引擎之间由中间数字计算引擎之间的超立方体链路形成的示例性通信路线;
图26是数字计算引擎群集之间的分层总线布置的示意图;
图27是具有互连链路和互连接口的图2的实施方案中的数字计算引擎的笛卡尔布置的示意框图;
图28是存储于大平面数字计算引擎阵列中的数据的抽象平面以及具有对不同范围的子阵列的权限的支点之间的通信路径的示意图;
图29是图2的实施方案的支点与一群数字计算引擎之间的广播相互通信网络的示意图;
图30是支点与其相关联的数字计算引擎群组之间的广播相互通信网络以及支点之间的互连的另一示意图;
图31是示意性地展示通向控制构成数字计算引擎阵列的高权限支点的部分的接口中的一些的框图;
图32是示意性地展示通向控制其自己的群组数字计算引擎的最低权限支点的部分的接口中的一些的框图;
图33是示意性地展示控制对所共享数字计算引擎中的阵列的抽象选择的相关支点的布置的框图;
图34是展示‘反射Z’递归曲线的图解;
图35是展示通过反射式Z曲线的‘行主’元素矩阵到处理器的H曲线阶的踪迹的图解;
图36是展示通过在垂直轴中且然后在水平轴中的超立方体链路对矩阵的元素进行的SWAP操作的示例的图解;
图37是展示通过在垂直轴中的所有处理器且然后在水平轴中的所有处理器的超立方体链路对矩阵的元素进行的矩阵加法操作的示例的图解;
图38是展示以嵌套的反射Z形式表示的行主矩阵与等效‘H’形式之间的第一层级元素交换变换的图解;
图39是展示行主矩阵与等效‘H’形式之间的第二层级和第三层级元素交换变换的图解;
图40是展示通过元素交换变换对呈H阶的矩阵进行的转置的示例的图解;
图41是展示通过元素交换变换对呈H阶的矩阵进行的转置的第二示例的图解;
图42是展示呈H阶的矩阵的转置的第三示例的图解,其中处理器的索引在紧凑的分层定址方案中给出;
图43是展示用于单元群体中的原位矩阵转置的计算程序的图解;
图44是展示用于单元群体中的所保存矩阵的复本的转置的计算程序的图解;
图45是展示呈常规行主形式的两个矩阵的乘法与呈H曲线形式的两个矩阵的乘法(其中结果也呈H曲线形式)之间的关系的图解;
图46是展示两个H阶矩阵中的每一个为使其相乘结果也呈H曲线形式的交换次序的图解;
图47是展示针对对串阵列的SORT操作的元素操纵的示例的图解;
图48是具有仲裁器及选择器组件的元素三切换节点的旋转对称形式的第二示意框图;
图49是具有另外自由空间链路的三切换节点的第二示意框图;
图50是展示获取、地址、确认和自由空间线连接的元素三切换节点的第三示意框图;
图51是展示上行路线中的用于节点本地自由空间获取模式的逻辑切换方案的图解;
图52是展示分支交叉节点处的用于节点本地自由空间获取模式的逻辑切换方案的图解;
图53是展示下行路线中的用于节点本地及远程自由空间获取模式的逻辑切换方案的图解;
图54是展示上行路线中的用于节点远程自由空间获取模式的逻辑切换方案的图解;
图55是展示分支交叉节点处的用于节点远程自由空间获取模式的逻辑切换方案的图解;
图56是展示上行路线中的用于节点正常获取模式的逻辑切换方案的图解;
图57是展示分支交叉节点处的用于正常空间获取模式的逻辑切换方案的图解;
图58是展示下行路线中的用于节点正常获取模式的逻辑切换方案的图解;
图59是节点仲裁器的电路图;
图60是节点选择器的电路图;
参考所有根据本发明的某些数字处理连接性的显着特征及其应用的附图详细描述优选实施方式
图1图示体现本发明的呈块示意形式的数字数据处理设备10。设备10在本文中叫作‘连接性’。为了描述本发明的目的,将‘连接性’解释为:大量多个并发操作的蜂窝电路,每个蜂窝电路各自通过通向预制定布置的可切换信号传输路径的对应接口互连;连同大量合规消息,所述大量合规消息通过至少数对所述蜂窝电路之间的相似大量可切换开放式传输路径并发传输,所述路径可响应于所述蜂窝电路内的信令序列选择。连接性10因此具有呈地址指定的数字计算引擎11的形式的至少大量多个蜂窝式电路,所述数字计算引擎11借助于第一子连接性12互连,所述第一子连接性12在本文中叫作‘递归连接性’,尤其适合于在数字计算引擎的群集之间并发传输数据元素的阵列。大多数数字计算引擎11是‘标准’数字计算引擎13。一些数字计算引擎(在本文中叫作‘支点’数字计算引擎)具有另外的结构和电路。递归连接性12具有大量并发操作的信令构件,它们尤其被布置来执行数字消息流(包括指令、地址和数据)在数对数字计算引擎之间的路线选择。数字计算引擎还在实质上不同布置的信号传输路径和切换节点的第二子连接性15内具有互连,第二子连接性15在本文中叫作‘管理连接性’,适于从大量用户接口16跨数字计算引擎中的可切换地可选择数字计算引擎自动地并发地分布和控制多个处理应用。
管理连接性15具有单独地响应多个用户访问接口17的构件与用于在其中存储和处理所述数字消息流的构件。端口17中的每一个具有信号切换和处理构件,适于接收、存储和传输通过双向数据信令路线18从用户接收的外部产生的用户应用,以及将经处理数据流传输回到用户。
在本说明书中,当应用于可同时操作的装置时,描述‘独立’和‘并发’应被解释为‘很少因信令路线经历时间延迟竞争’。‘双向信令路径’和‘双向信令路线’应被解释为‘实现信号在电路之间在两个方向上的传输但未必同时实现的构件’。
数字计算引擎11在递归连接性12中由数据传输路线的通信网络互连,所述数据传输路线的通信网络主要适于以各种不同方式响应于来自在管理连接性内产生的管理处理任务和来自用户端口17的指令和数据的阵列处理操作。
每个数字计算引擎具有用于进行以下操作的构件:存储和操纵逻辑和算术数据、访问数据存储区地址、以及操纵所述数字计算引擎本身的位置地址,以用于消息在如由每个用户的应用所引导的数字计算引擎之间的可选择传输。每个数字计算引擎具有包括可切换地可选择信号通信接口连接端口的数字计算实践和包括指令解码器和存储器的至少一个中央处理单元所特有的电路功能。所述指令解码器具有解译一组微码中的任一个的构件(通常称为‘基元’),且包括适于根据所述微码在算术、逻辑、存储和信令操作中的对应操作中引导每个数字计算引擎内的中央处理单元的电路。如在数字处理实践中常见的,所述存储构件具有中央处理单元根据用户程序访问的内部预制定存储地址。此外,所有数字计算引擎具有预制定的唯一位置地址,所述位置地址根据用户程序的需求并且与连接性的切换电路一起使得每个数字计算引擎能够调用任一其他数字计算引擎并将消息引导到所述任一其他数字计算引擎。
更详细地,图2将管理连接性515展示为包括与大量多个数字计算引擎11的连接。每个数字计算引擎具有多个接口连接端口,并且每一个具有用于进行以下操作的构件:响应由其他数字计算引擎进行的获取;从其他数字计算引擎接收消息和位置地址;对消息和对位置地址都执行算术和逻辑两种操作;以及通过定址构件跨递归连接性和跨管理连接性获取其他数字计算引擎并与其通信。每个支点数字计算引擎被辨别为具有至少以下另外构件的标准数字计算引擎:能够将每个控制指令传输到一群数字计算引擎的构件、能够响应由至少一个端口517进行的获取的构件、能够接收和处理用户的数据流的构件、以及能够通过管理连接性515的可选择数据传输路线将数据流传输回到用户的构件。在本说明书中,‘链路’用以表示逻辑驱动器与接收器之间的信号的单个导体;‘路径’用以表示能够在两个电路之间携载数字消息的至少一个链路;并且‘路线’用以表示传输信号源与其预期信号接收器之间通过针对信令开放的一系列连接的路径完成的互连。
鉴于管理连接性515用于连接性及其用户访问的逻辑控制的主要用途,以及递归连接性12用于数据阵列的操纵的主要用途,为了描述的目的,有利的是,在本发明的一个优选实施方案中,每个数字计算引擎包括两个部分电路,典型地示出为对19与20,和对21与22。第一部分电路19和21适于与管理连接性接口连接,具有所述基元的一个集合;第二部分电路20和22与第一者部分电路互补且通信,具有所述基元的第二集合且与递归连接性接口连接。与管理连接性515相关联的每个数字计算引擎部分电路19在下文称作‘标准’处理单元,且与管理连接性515相关联的每个数字计算引擎部分电路21具有更复杂的结构和电路,且在下文称作‘特殊’处理单元。这些在其间借助于功能适当的管理连接性23互连,并且还借助于将在适当时候阐释的形式的连接性24(在本文中叫作‘终端连接性’)与用户端口517互连。子连接性23,包括其与处理单元的接口连接,在下文叫作‘表述连接性’,因为它令人期望地包括适于表述性样式软件结构(诸如,功能编程代码)的特征。终端连接性24,包括其与用户和与数字计算引擎的接口连接,具有用于选择每个用户应用(包括至少消息流)并将其引导到具有适合于所述应用的特性的数字计算引擎的构件。
每个标准数字计算引擎具有与递归连接性12相关联且在下文称作标准‘计算单元’的部分电路20。同样地,每个支点数字计算引擎具有与递归连接性12相关联且在下文称作‘支点’计算单元的部分电路22。这些在其间具有通过将在适当时候阐释的形式的功能适当的连接性25进行的互连。25,包括其通过处理和接口连接电路20和22与计算单元的接口连接,在下文叫作‘分段连接性’,因为20和22的处理基元和接口及其通信链路具有适于互连和控制数字计算引擎的嵌套的可定址分段(在本文中另外叫作‘群集’)的构件。
分段连接性25是能可切换地选择的双向的信令路径的网络,每个路径分别链接一对所述计算单元,在所述网络中,每个单元具有大量接口连接电路,所述大量接口连接电路使得能够通过相似大量所述路径与相似大量所述单元互换数字代码,所述大量单元在下文称作所述每个单元的‘邻居’。
与连接到分段连接性的单元的同样大量的一组路径选择地址码双射地存储于所述多个单元中,所述地址码由此使得其对应单元各自能够沿着可选择的所述信令路径的规定递归折叠信令链向随后邻居发信号,所述信令链遵循单元地址的单调序列,仅穿过所述多个单元中的每一个一次,并且在其折叠内递归地定界分层嵌套的子连接性,每个子连接性沿着所述链的对应地定界的分段群集。单元沿着链的分段的单调排序因此使得单元能够响应于共同单元指令而沿着分段以桶队方式串行地传输代码信号。这可应用于将串行数据流从用户接口加载到单元群集中,并且应注意,并发操作的若干用户接口可以这种方式加载构成更大单元群集的若干相应群集。单元中的另外一组路径选择地址码准许在相反方向上进行传输。
递归连接性12包括另外一个连接性26,在下文叫作‘广播连接性’,其具有在数字计算引擎中通过接口27和28在所有计算单元20与22之间的互连32,连接性26是适于将来自每个支点数字计算引擎的消息分布到相关联的所述群集以及用于命令与协调在所述群集内的处理的形式的。
然后,至少一些群集具有用于部分地依靠分段连接性25中的所述大量路径对其对应地存储的数字代码执行并发阵列处理操作的处理和通信构件。阵列处理群集中的操作是按来自支点的共同指令的序列协调的。对于一些应用来说,所述支点中的至少一些是其对应分段的成员单元是一个优势。
连同单元之间的相互通信路径,单元的群集因此根据用于阵列处理的指令在其支点的控制下操作,且每一这样的群集能够独立于其他群集充当阵列处理器。依靠在分段连接性内的分段的嵌套形式,在其间形成子连接性的小群集的协调群组也可响应于共同指令操作并形成更大阵列处理器,如刚才所指示。在每个情况下,规定的阵列处理器处于专用于那个阵列的适当范围的支点的控制之下。每个支点的权限因此由处于其控制下的单元阵列的位置和大小且等效地由形成那个单元群集的嵌套分段的位置和大小定义。相应地,支点在其存储器内具有适当的参数,在本文中叫作支点的‘范围’。在一个优选实现方式中,对于定址的均匀性,有利的是,支点为群集的成员单元,且后续描述采用那种布置。‘范围’意指足够大以涵盖用户应用内的所指令阵列处理任务的协调计算单元群集的大小。在连接性的一个优选实施方案中,依靠分段的递归群集和定址,每一个控制支点具有地址,所述地址作为地址的数字编码的部分必要地表述控制支点的范围。这在对所期望大小的子连接性的搜索方面具有重要性。
在本发明的第一优选实施方案中,多个双向通信路径29准许在可选择路线之间通过终端连接性24和相似多个特殊处理单元21互换指令和数据。因此,管理连接性具有以下构件,所述构件至少用于借助于所述多个接口517中的相应接口接收和引导来自用户接口16的指令,以用于根据用户的指令可切换地选择通向支点数字计算引擎21中具有处理权限的相应支点数字计算引擎的路线,且因此对于用户的需求是足够的。特殊单元电路21具有与其相关联的支点电路22的直接链接,因此,一旦已进行连接,那么若干用户各自就可直接访问具有预定范围和权限的支点。终端连接性24具有多路复用构件,其使得用户能够获得对具有用户选择的范围的一系列这样的支点中的一个的控制访问。
每个支点数字计算引擎14也具有用于在管理连接性515与递归连接性12之间互换指令和数据的构件,尤其通过所述构件,通过从其支点计算单元到递归连接性12中的连接性中的多个端口,每个支点数字计算引擎传输将要对数据阵列执行的指令和在数字计算引擎的群集之中分布的软件例程。
如先前所陈述,大多数数字计算引擎是标准数字计算引擎13,而支点数字计算引擎14具有适合于与用户应用接口连接以及协调标准数字计算引擎的群组的更复杂组织。为了描述具有广泛应用范围的连接性的第一优选实施方案的目的,方便的是,将支点数字计算引擎21描述为各自具有与用户端口517通过其控制特殊处理单元进行的连接,所述控制特殊处理单元尤其又在需要时与其相关联的支点计算单元22通信。对于仅需要阵列处理的应用,第二优选实施方案省略了表述连接性23和相关联的处理电路19和21。用户访问然后借助于通信路径29直接对14的电路22进行,电路22具有另外的适配以用于处理用户输入和输出消息。本说明书的其余部分描述更有能力的第一所述优选实施方案。
支点数字计算引擎中的所述相应数字计算引擎中的每一个具有用于剖析和解译来自用户应用的数字消息流以及用于最终在需要时将计算的结果返回到其相应源发端口517的构件。大量多个数字计算引擎准许使得大量用户应用各自能够访问单独支点数字计算引擎14并且由此通过表述连接性23访问相关联的可切换地可选择模式的其他数字计算引擎。表述连接性具有用于在可在其间切换成连接模式且反映应用软件本身的模式的数字计算引擎的这样的可选择群体之间引导数字消息流的构件,如将在适当时候进一步阐释。此外,贯穿表述连接性的所述引导构件向用户提供与并未通过路径29直接连接到终端连接性24的支点数字计算引擎(诸如,数字计算引擎30)的间接通信。
按与管理连接性的用于托管多个用户应用的构件互补的方式,递归连接性12具有用于将在数字计算引擎的群集(诸如31)之间分布大量用户数据阵列以及用于借助于连接性25和26将处理指令传输到此类群集内的计算单元的构件。如在数字计算实践中常见的,将要在连接性510内评估的用户应用具有编码消息流的形式。如将在适当时候解释的,在将所述流各自引导到其自己的可切换地可选择模式的通过表述连接性互连的处理单元时,管理连接性515还具有选择性地抑制在大量端口517处独立地接收的此类流之间的交互的构件。因此,连接性具有至少用于控制消息流从每个所获取用户接口517到暂时专用于单个应用的一组处理单元的分布的构件,既用于应用用于表述连接性中的详尽管理处理操作的指令,又用于协调和应用适合于分段连接性的所述群集中的多样阵列处理任务的指令。
为了计算通用用户应用的目的,表述连接性包括数字计算引擎之间的另外信令路径,所述另外信令路径实现单元对之间的互连路线,使得第一单元具有用于借助于切换式序列的节点电路与第二单元通信的构件,所述切换式序列的节点电路遵循在次序上与第二单元的目的地地址对应的路线。若干这样的路径可在单元对之间并发排序,并且被锁存开放以用于单元之间的双向数据传输。典型地,来自用户终端的应用软件编码流渐进地指导单元序列作为排序的单元群体跨表述连接性相互通信。单元群体临时地存在以计算部分结果,按软件规定的顺序将传回到用户。在其对所命令计算的贡献完成后,每个单元具有用于从其存储器清除用户数据且将自身登记为未被采用且自由地供另一用户应用获取的构件。
来自用户终端的所述应用软件编码流通常包括不具有规则阵列模式的结构化编程编码,因此每个所获取群体的渐进地形成的相互通信理想地遵循不适合于阵列处理分段连接性的路线的非笛卡尔模式。因此,一个优选实现方式并有结构化编程编码借助于所述节点电路和路径的节点标注树进行的分布,其中所述双向数据传输路线在树中向上进展到适当的节点,并且然后在沿着树到目标单元的路途上渐进地选择性地切换二进制标注的节点。在大量多个单元的连接性中,若干这样的路线可共存且提供并发通信。
通过节点树对单元的定址与在分段连接性中的相同单元的定址具有相同形式是一个优势。这理想地通过以下方式得到满足:在分段连接性中沿着与单调序列的单元地址相符且仅穿过大量多个单元中的每一个一次的信令链对准嵌套分段的递归形式。按这种方式,具有不同的、然而却是递归的形式的表述树连接性被布置成地址对地址地匹配单元的阵列处理模式。这跨两个连接性建立单元之间的信令协调性。贯穿表述连接性23的每个所述可切换地选择的模式中的处理单元具有因此通过选择路线在其间通信的构件,使得互连的模式与函数编程形式所特有的结构化编程软件表达对应。诸如以Lisp语言进行的函数表达提供一种适合于用户的应用编码流的结构化编程型式。所述处理单元的模式的每个处理单元具有接收用户的软件的至少一个所述表达、剖析并解译表达且在适当的时候将表达的值以信号方式发送给所述可切换地互连的处理单元的模式中的处理单元中的另一个的构件。因此,每个处理单元包括典型地如在Lisp实施中使用的函数编程解译器的组件。
每个用户接口517和每个数字计算引擎11具有唯一地址,并且终端连接性24具有从用户端口517通过双向路径29到特殊处理单元21中的对应的可切换地选择的特殊处理单元的多个可切换相互通信路径(图2中未展示)。每个端口517具有带有消息解码器和存储装置的数字处理电路,并且具有至少响应于从接口16接收的用户的应用消息流而操作的搜索状态。借助于接口在其搜索状态下的操作,将搜索信号发送到终端连接性24以借助于终端连接性24中的一系列可切换节点(在下文叫作‘转向器’)通过相互通信路径中的所选择路径打造通向未被采用的特殊单元的路线。为了这个和其他目的,每个处理单元具有将自由状态信号引导到管理连接性中的构件,所述自由状态信号将那个处理单元标识为未被任一当前应用使用。这种状态在本文中叫作单元‘自由状态’(FS)。响应于从未被采用的特殊处理单元发送到终端连接性24中的自由状态信号,在操作中的搜索信号可切换地选择一系列所述转向器内的电路系统,以通过终端连接性24获取适合于用户消息的范围的未被采用的特殊处理单元,如将在适当时候所阐释,并由此获取并存储所获取特殊处理单元(并且因此还有其相关联的支点)的地址。
在搜索操作完成后,所获取特殊处理单元将其自由状态信号从表述连接性移除,由此抑制另一独立用户应用的处理单元对那个处理单元的第二次获取。端口517借助于其所述消息解码器剖析并解译用户消息,并且还具有调用状态,在操作中,使用所存储地址启用调用状态以重新获取特殊处理单元,以用于通过终端连接性24将后续消息传输到所述特殊处理单元的目的。因此,每个处理单元具有一系列可切换的操作状态,包括废除其存储器内的用户数字代码以及进入未被采用的自由状态且在不处于自由状态时能够至少进入操作调用状态的构件,所述操作调用状态适于获取通向另一处理单元的信令路线并与另一处理单元交换数字代码。
典型地,所述消息具有用于计算的函数表达,并且每个特殊处理单元类似地具有根据含有定址代码的表达可切换地选择通过表述连接性23到另一处理单元的路线的调用构件,以及还根据在表达中含有且在所述处理单元中存储的用户端口的地址来引导回到用户端口517的路线的构件。在相应用户消息流的传输期间,通过23和24的每个可切换的所述所选择路线被锁存开放,所述消息流相应地具有指导其所获取特殊处理单元21借助于表述连接性23渐进地贯穿标准处理单元19的所述可选择模式分布其消息的分量部分的表达,如下文将描述的。一旦消息事务完成,来自发起电路(诸如端口517)的保持信号就释放沿着24中的所选择打造路线的转向器和切换节点,所述节点然后恢复到等待状态,准备好作为可能由另一用户(如果有的话)发起的不同路线的部分用于访问。贯穿处理单元的模式的渐进分布过程根据每个处理单元21和19中的微编码基元指令进行操作,所述微编码基元指令对以下项作出响应:所述消息的编码;其组成函数表达;以及所存储处理单元和端口地址。
表述连接性23具有可切换数据传输路线的网络,若干所述路线不时地分别互连连接性中的多个第一处理单元中与第二处理单元中的对应处理单元,并且其中每个路线是在由所述第一处理单元发送到表述连接性23中的调用信号的引导下穿过至少一个切换节点形成的,所述调用信号是根据作为表达的部分存储于第一处理单元中的第二处理单元的地址排序的。响应于调用信号,23中的每个节点具有引导调用信号通过部分路线到另一节点等等、再到第二处理单元的切换构件。表述连接性23类似于电话交换,凭此可在大量终端之间共享消息路线,并且准许在终端对之间的临时一对一事务,至少一些对是可并发操作的。这种网络的示例发现于美国专利第5,434,972号(在本文中叫作‘Hamlin’)“Network forDetermining Route through Nodes by Directing Searching-Signal arriving at onePort of Node to another Port Receiving Free-Path Signal)”中,所述专利应结合本说明书来阅读理解。那项专利描述:未被采用的处理单元的获取及其返回到未被采用的自由状态的条件;其在计算内的典型函数操作;其用于获取另外的处理单元和给其派发任务的搜索构件;以及其定址构件,诸如,用于获取远程代码片段并将其拷贝到自身内的定址构件。
以不同方式响应于端口517、终端连接性24和表述连接性23的处理单元因此具有可配置来将具有编程的结构化消息模式的所述用户消息引导到可切换地选择的处理单元的对应地适当的地址模式中,所述地址模式与每个处理单元相关的本地部分存储于那个处理单元的存储器中。根据计算的进度,沿着处理单元的所导引模式的处理单元可不时地产生与用户应用有关的另外信号,如将借助于示例在适当时候描述。数字计算引擎内的每个处理单元并有数据分段电路,所述数据分段电路适于识别用户消息的用于将函数编程种类的消息结构的管理性的决策制定部分传输到另外处理单元的表达部分。
此外,每个支点数字计算引擎在其计算单元内具有另一数据分段电路,所述另一数据分段电路适于识别消息的与在计算单元中处理阵列有关的分量,并且支点数字计算引擎的每个这样的支点计算单元22具有用于按由其毗连的特殊处理单元电路所命令地将适当的阵列处理组成部分分布到一群相邻标准计算单元的构件。
一旦路线对未被采用的处理单元开放(作为搜索处于自由状态的处理单元的结果),调用处理单元将其自己的消息的分量传输到所述未被采用的处理单元,所述未被采用的处理单元将分量存储于其自己的存储器中并解译所述分量,由此分摊对分段式用户消息的处理的部分。特殊处理单元21具有另外基元,所述另外基元具有对所述分量的与数据结构(诸如,串和矩阵)有关的某些指令码进行解码的构件,以及命令其毗连的支点计算单元(诸如22)以将阵列处理指令并发地且共同地通过广播连接性26传输到相关联计算单元群组的构件。支点计算单元自己对每个阵列处理指令进行解码,如对于所述分量的要求适合的,并且发送调用存储于相关联计算单元群组中的微编码基元的本地指令的广播消息。因此,基元可选择以将计算操作的序列应用于存储于计算单元的群集(诸如31)中的数据元素。
每个端口517和每个特殊处理单元21具有在以下情况时存储消息数据结构的分量的构件:与选择用于处理这些分量的处理单元的所述可切换模式分摊所述数据结构且由所述可切换模式对所述数据结构进行操作。虽然消息分量跨连接性散布,如前文所指出,但多个接口517、互连终端连接性24和特殊处理单元具有用于对多个用户作出响应而在数据结构之间和用户之间无逻辑冲突的构件,如将关于转向器在适当时候解释。本说明书意图适用于具有大量组件的连接性,因此这些组件可潜在地独立且并发地操作,单独用户消息需要在针对那条消息选择的处理单元之间的时间序列相互通信的情况除外。然而,在管理连接性内,联网路线特别地可偶尔地被分时,但无不合理的竞争。类似地,递归连接性的计算单元偶尔地按将关于广播连接性简要阐释的方式在数据阵列之间被派多任务。在相互通信路径和处理器由于所体现的资源量有限而被分时的情况下,时间延迟干扰的程度取决于在管理连接性中的处理器和互连的数目,并且取决于由用户跨管理连接性分布的编程指令的密度。然而,在管理连接性内的切换节点和路线被布置且可切换地配置来抑制否则在信令和处理节点处可能头对头地相遇的消息的任何切换,合适的实施方案在Hamlin中有所描述。
如由形成用户消息的部分的指令以不同方式地所引导,用户消息数据结构的每个所述分量具有在传输中附接到其上的地址字段,所述地址字段准许处理单元协调彼此的相互通信,并且还准许在相关分量存在于连接性510的广泛分开的部分中时毗连这些相关分量。最终,在计算的最后,所述地址字段按顺序通过处理单元链指回且最终指向发起用户端口,计算的结果储存在发起用户端口17处。为此,当加载有第一可解译数据结构时,特殊处理单元21响应于标准处理单元自由状态旗标而获取连接性中其他地方的未被采用的(自由状态)标准处理单元19,并且通过表述连接性23将所述数据结构内含有的所述指令传输到所述所获取处理单元。通过此构件,软件数据结构实现其自己跨连接性的分布,并采用处理单元的模式之中的并发处理。
递归连接性12具有大量多个计算单元(20和22)之间通过分段连接性25进行的互连。计算单元结合互连分段连接性25被配置来处理诸如数据排序和矩阵操纵的操作,其合适的实施方案将关于递归曲线在适当时候描述。递归连接性的每个支点22在所述支点是其成员的数字计算引擎的定义明确的群集(诸如31)内具有控制角色。为了控制对所选择阵列数据元素的某些传输操作,有利的是,标准处理单元19中的至少一些也具有各自与递归连接性中的标准计算单元20中的对应一个的可切换通信。
分段连接性25的一个优选实施方案是k进制m环面,其具有由一般超环面连接性模式定义的双向互连路径,其中k进制m维度超环面中的典型计算单元、即指定的计算单元(i1,i2,..in)具有通向计算单元(i1+1,i2,..in)、计算单元(i1-1,i2,..in)、计算单元(i1,i2+1,..in)、计算单元(i1,i2-1,..in)、计算单元(i1,i2,..in+1)、计算单元(i1,i2,..in-1)的连接,其中每个索引ip是整数模(k)以将环面的环绕式信号路径考虑在内。其中k=2的超环面的特定实施方案是二进制超立方体,然后每个条路径形成环绕式环面信号路径。
图3在有限程度上以示意性形式将具有相关联计算单元电路20的分段连接性25的部分中的示例性实现方式图示为布局为三维阵列的小计算单元布置,其中计算单元(i1,i2,i3)路径(主要是太多以致不能清晰地图示)与环面连接的先前定义对应。使用这些路径中的一些,图3展示穿过分段连接性25中的计算单元对之间的所选择互连的递归曲线33的一种优选形式的分段。
它图示接近于称为Hilbert空间填充曲线的无限数学虚构的形式的递归曲线的示例。实际有限形式在本文中叫作‘Hilbert空间曲线’。在本说明书中,空间曲线意指通信链路链,所述通信链路链因此在概念上以空间填充曲线的线代表,并且仅穿过连接性中的每个单元一次,诸如Hilbert曲线和Morton曲线的递归曲线序列在本发明中在将数据结构编组成分层分段式结构方面具有重要性,所述分层分段式结构可被制成符合分层结构化编程的原理。对于一些处理操作来说方便的是,递归曲线将计算单元组织成沿着曲线的分段的线性序列,并且因此组织成诸如34的均匀群集,每个群集都可作为唯一处理元素块定址并且可处于其自己的支点计算单元(诸如35)的即刻控制之下。对于群集处理操作,管理连接性的特殊处理单元典型地将操作指令和数据流两者传输到其相关联支点,以用于将数据阵列串行地向前分布到计算单元的适当分段(诸如34),在所述分段上,支点(诸如35)具有在递归曲线序列的其分段内的指定控制。关于计算单元地址的算法定义递归曲线的轨迹(如将在适当时候阐释),并且每个计算单元已存储针对其在所述轨迹中的两个(前与后)邻居的本地指针,由此给予递归曲线穿过递归连接性中的所有计算单元的单调定向的意义(向前和向后)。在这个示例中,曲线通过路径36从连接性的另一群集进入64个计算单元的所图示群集。它通过路径37前往另一群集。
图4在有限程度上图示穿过如在图3中布局为三维阵列的分段连接性25的另一递归曲线的部分中的第二示例性实现方式。以微小形式概念化的计算单元群集(诸如431和38)互连以用于并行处理,每个群集具有命令支点,并且所述实施方案的典型布置并有多个此类群集,每个群集包括沿着递归曲线的轨迹坐落的计算单元的定义明确的阵列。在优选实现方式中,在一种示例性使用中,用户将数字消息传递到支点(且由此传递到其相关联群集),从而阵列处理数据和命令以用于操纵矩阵。在另一示例性使用中,用户将预编译成作为子例程和参数接口贯穿群集分布的并发操作程序传递到支点,每个子例程被加载到群集内的预定计算单元中,以便运行自含式、并发处理的元素计算,诸如,用于应用到多维部分微分方程的解。
递归连接性具有第二互连广播连接性26(在图3和图4中未展示),其具有通向计算单元诸如20和22的接口连接元件27和28,所述第二互连广播连接性26具有用于将操作指令和数据流从支点39分布到其被分配的计算单元分段31以及用于从所述被分配的分段中的那些计算单元收集告示其阵列处理操作的完成的旗标信号的构件。每个支点计算单元具有收集告示旗标的构件,所述告示旗标一起充当由支点发起的每个操作的完成信号。根据由管理连接性传递到所述支点的指令,支点具有可操作以通过广播连接性26广播阵列处理函数参考以便由所述分段的所述每个单独计算单元解译以及在所述计算单元中的每一个中发起一系列所参考函数的构件。
如刚所解释,分段连接性25还具有多个信号路径,所述多个信号路径可供每个计算单元用于实现与对应多个邻居(在本文中叫作‘信号邻近邻居’)的通信。这同时实现许多对计算单元之间的数据互换。例如,在由支点发起之后的操作中的阵列处理计算单元分段内,使两个计算单元群集能够在接收单个‘交换’指令的代码时互换其数据元素(在本文中叫作‘SWAP’)。当两个块中的所有计算单元对都已交换值并贯穿广播连接性26的连接(包括支点本身)设定其告示旗标时,支点登记操作的完成(在这种情况下是‘SWAP’)。SWAP程序的微小修改只在一个方向上传递数据元素以便产生副本程序(在本文中叫作‘COPY’)。
分段连接性25具有从每个计算单元到信号邻近相邻计算单元(但未必是地理上相邻的计算单元)的一对多专用双向互连,使得可切换地使至少一些计算单元群组能够同时将数据传输到空间本地和空间远程计算单元。双向信号邻近邻居互连的实施方案包括有线、光学和无线通信路径的选项。至少一些成对计算单元可通过通向分时数据总线的可切换连接来共享数据传输路线。通过这些构件并依靠递归曲线,递归连接性12包括大量多个预认定分段,所述分段中的每一个具有处于其自己的支点计算单元的控制下的固定数目的计算单元。递归连接性中的每个支点具有唯一定义的地址,所述地址具有二进制模式,所述地址首先区分其阵列处理能力的范围,其次区分其分段中的计算单元的可访问数目,且再次区分其分段中的构成计算单元在递归连接性中的相对位置。通过找到所具有的自己的地址模式类似地匹配所应用数据结构的大小、位置和阵列维度的特殊处理单元(并且因此找到其成对支点计算单元),这在表述可被分派处理资源的串和阵列中具有重要性。然后还保证所应用数据结构与连接性中其他地方的具有匹配地址模式的相关联的第二控制支点的第二群集兼容。
以这种方式,支点控制分段诸如431、38和40定义多个多样范围且独立操作的处理器阵列。依靠分段的递归本质,一些支点控制构成更广泛范围的计算单元群集的分段,并且其支点因此与递归连接性中的较低范围的支点具有分层关系—如由38与40之间的关系所例示。如前文所解释通过控制支点,使一些所选择的这样的计算单元分段可作为在预定大小范围内的专用阵列处理器供用户访问。
从前述内容可得出,广泛地说,并且根据本发明,数据处理连接性510包括:各自具有数字处理构件的多个数字计算引擎11;以及能可切换地选择的信令路径的至少第一网络,通过所述第一网络,每个所述数字计算引擎具有通过通向大量所述信令路径中的至少大量信号传输端口到相似大量所述数字计算引擎(在本文中称作信号邻近邻居)的连接;并且所述多个数字计算引擎中的每个数字计算引擎具有唯一地址,所述唯一地址按单调地址序列沿着穿过所有此类定址的数字计算引擎并穿过根据所述序列可选择地可切换的相似多个所述信令路径中的对应信令路径的递归空间曲线43排序,所述数字计算引擎和对应信令路径一起尤其且至少部分地负责具有与所述递归空间曲线的规定算法特性相符的特定形式的空间曲线。空间曲线描述形成对应嵌套子连接性的递归嵌套的计算机单元分段,所述分段与所述大量信令路径一起使得能够在每个子连接性内执行独立的阵列处理操作,并且每个分段具有通向用户以用于输入相关联的数据元素阵列的电路系统。即,每个所述连接性具有自主操作的通信和处理构件,其可操作以对来自对应用户的数字代码阵列执行并发阵列处理。支点及其对应单元分段一起还具有将数字代码按顺序次序沿着所述链从用户接口传送到对应地规定的子连接性的单元的构件。
连接性510还具有在所述多个支点数字计算引擎中的至少一些与至少一个对应用户输入接口电路之间的双向通信构件。
连接性的递归连接性并有信令构件的所述广播连接性,其包括大量信号分布节点,并且其中沿着空间曲线的所述支点中的某些规定支点中的每一个(诸如39)具有穿过所述广播连接性到沿着空间曲线的对应地规定的分段(诸如431)驻留的计算单元的可切换连接,所述支点在将由所述对应分段内的计算单元中的至少一些执行的每个操作中尤其是所述对应分段的控制成员。将在适当时候阐释的本发明的特征是,每一个用户可访问的分段具有唯一支点。例如,分段38的支点将为(比方说)41,而分段40的支点可为42,后者在位置和地址模式上与分段431的类似支点39对应。
在连接性中,每个支点因此为将由沿着具有链路(诸如43)的所述轨迹的规定分段驻留的数字计算引擎电路执行的事务中的控制成员中的一个,并且每个分段的范围由于每个分段沿着递归曲线的所述轨迹的位置而布置于此类分段范围的嵌套分层内,并且每个相应所述信号传输路径可通过表示指示所述规定分段的范围的定义参数的信号来选择。
连接性的管理连接性包括大量用户输入和输出接口电路517以及能可切换地选择的信令路径和切换转向器节点的I/O多路复用连接性24,借助于所述连接性24,若干所述用户输入接口电路可选择性地且并发地操作以用于在通过特殊处理单元中的相关联处理单元到所述支点14中的单独支点的路线上通信,并且当处于所述数字计算引擎自由状态时,所述特殊处理单元将自由状态信号传输到终端连接性中。
各自呈区段软件代码形式的多于一条消息因此可通过若干端口517同时加载到连接性的分布式部分内以供评估,至少一些分布式部分在无相互干扰的情况下操作。分布式部分中的数字计算引擎中的可切换地选择的数字计算引擎接收用户的软件编码的相应区段并对其进行操作,其中所述选择是根据消息的形成每条消息的用户代码的区段分量发起的。贯穿后续描述,应了解,每个数字计算引擎内的编程和数字操纵任务,以及对专用于其自己的本地响应性的多个输入和输出端口的访问,可体现为广泛范围的目前先进技术数字计算机架构中的任一种,诸如PIC微控制器、Xilinx kcpsm3、基于ARMv-7的那些架构以及Intel系列处理器。这些计算机具有通过多个输入端口接收呈消息形式的输入数据流(包括指令序列和数据)以用于存储于其本地存储器单元中的构件,以及用于根据此类消息进行操作的电路。代码命名硬连线逻辑操作序列(在本文中叫作‘微码’)控制此类计算机内的每个基元内部处理操作。典型地,存在控制算术、逻辑、存储和输入/输出操作的广泛范围的此类指令,每个指令都具有专业化数据操纵能力。在数字计算引擎中,这些操作中的一些由可由用户的软件编码访问的具有指定符的指令发起,而其他指令则施行本地专家硬件控制(诸如数字计算引擎之间的接口连接和消息传递),后者然后形成更复杂的用户可访问的微编码指令序列的构成部分。可由用户访问的那些指令码通常叫作机器的‘指令集’。
所述输入用户消息流在连接性中发起外部应用的用户编程的计算任务,并且最终发起针对那项任务所获取的数字计算引擎中的内部操作的微码。在本发明的一个优选实施方案中,连接性并有至少两个时钟-脉冲发生器:在本文中叫作‘次时钟’的第一时钟是如普遍地用于同步数字计算中的切换逻辑的处理器控制时钟;第二时钟是更长周期的消息传递时钟,在本文中叫作‘主时钟’。主时钟锁存到次时钟,并且尤其可通过适当连接将偶数奇偶校验定址的计算单元同步成在一半循环上传输(如果需要这样做的话)并且将奇数奇偶校验定址的计算单元同步成在另一半循环上传输。当偶数奇偶校验计算单元处于传输模式中时,奇数奇偶校验邻居处于接收模式中且反之亦然。依靠数字计算引擎地址的一个优选的二进制布置和连接的分段连接性的形式,对于许多类型的应用来说,具有递归连接性中的偶数奇偶校验地址的计算单元电路然后直接与具有奇数奇偶校验地址的计算单元电路通信,且具有在递归连接性中的奇数奇偶校验地址的计算单元电路类似地直接与具有偶数奇偶校验地址的计算单元电路通信。
如在数字计算实践中常见的,然后,每个数字计算引擎具有指令集,每个指令由微码布置调度并且适于那个数字计算引擎应有的专家本地计算操作。当通过电力和时钟激活时,每个数字计算引擎独立于连接性中的所有其他数字计算引擎进行操作;即,每个数字计算引擎自己的激活其自己的指令集代码的序列的逻辑例程仅对通过其输入端口传入的消息作出响应,在那些消息之间进行仲裁,并且如果适合于其当前任务的话,在适当时忽略那些消息的需求。同样地,每个数字计算引擎不具有对任何其他数字计算引擎的超驰权限,而是相应地必须等待其他数字计算引擎的准备和动作来对其对操作的请求提供响应。传输到每个数字计算引擎中的消息是对动作或数据的请求,在一些原本正确操作的条件下,所述请求可不接收响应。每个数字计算引擎具有切换构件,所述切换构件独立于所有其他数字计算引擎被配置来选择通向其处理电路系统中的其自己的输入端口和选择并调度其微码的构件,每个微码对通过大量所述输入端口接收的消息作出响应;它具有切换构件,所述切换构件独立于所有其他数字计算引擎被配置来选择来自其处理电路系统的其自己的输出端口,并通过适于配置和调度消息以便从所述输出端口传输的构件来选择微码。所述数字计算引擎具有提取用户软件应用的其自己被分配的消息部分、将所述消息部分解码为基元逻辑和算术指令序列、并根据所述消息部分执行其所需求的专家任务中的每一个的构件。在不失去所存储数据的情况下,每个数字计算引擎具有当在设定时间周期期间未接收到对操作的请求时将自身切换到功率备用并响应于输入接口活动而唤醒的构件。
图5是用户应用跨连接性的分布的示意性表示,以便展示(简单地说)对共同驻留于连接性中的三个独立拥有的用户应用的访问。三个三角形44、45和46中的每一个意图表示嵌套用户指令的稀疏的、软件组织的、结构化的编程树,每个树跨稀疏处理单元群体散布并且主动地将指令加载到稀疏处理单元群体中。三个所安装应用中的每一个在这里理论上且笼统地由三角形表示,以表示信令分支根据用户软件消息到跨连接性的许多处理单元的散布。每个树开始于理论上位于每个三角形的顶点处的特殊处理单元(诸如47)。应理解,典型地,仅所图示‘处理器的三角形’中的每一个内的处理单元中的很少几个将被每个独立应用获取,其余间隙处理单元可供其他应用使用(如果需要的话)。因此,例如,在三个三角形区域重叠的情况下,一些处理单元将被应用44获取并使用,一些将被应用45获取并使用,并且一些将被应用46获取并使用,其中每一个中的选择跨每个区域松散地分散开。在一个优选实施方案中,用于处理单元获取和任务派发操作的详细构件是Hamlin的特征,且在本文中有所描述。用户软件表达对处理单元群体的影响在适当时候借助于示例来图示。因此,用户指令和数据的分支通过获取未被采用的处理单元而跨处理单元的表述连接性523散布,大量此类多样应用的分支在彼此之间交错。重要的是观测到每个处理单元在这个过程期间被分配到仅一个用户应用,但在完成其责任之后,处理单元通过诸如Hamlin中描述方法的方法将本身释放回到其自由状态。因此,多个用户应用并不共享共同的单独管理连接性处理单元。
到路线18(诸如48)中的用户应用消息流由其相关联接口517(未展示)解译,所述接口517采用自由状态搜索构件来通过多路复用终端连接性24经由双向搜索路径(诸如49)将搜索信号和消息传递到应用45的所述特殊处理单元中的一个(诸如47)。穿过24的所切换信号传输路径49通过路径29将用户应用消息流传递到47。这个所选择的一个特殊处理单元47存储所接收用户消息流,解译第一消息,并获取分支的树状模式中的额外的标准处理单元13(诸如50),所述分支的树状模式借助于临时获取的由管理连接性的表述连接性523提供的数据通信路径跨523渐进地分散开。结构化应用软件的分支信号通常将借助于表述连接性切换节点与跨连接性的部分路线交错,使得大量用户应用插入不同地获取的处理单元,如图5中示意性地图示,但如刚所陈述,仅一个用户应用能够访问任何一个所获取处理单元,直至那个应用将处理单元撤回到其自由状态。这种分支树中的每个处理单元具有相关联的存储器以用于存储地址,所述地址使那个处理单元与其直接调用的亲代处理单元和在消息树的互连中获取的其自己的子代处理单元有关;并且还具有足够的存储器以用于存储用户软件表达以供评估。依靠存储于每个处理单元中的互联地址,应用的作用处理单元之间的通信路径可临时地被破坏且随后重新获取,例如,以便将计算结果渐进地地传回到源发用户终端。在应用的组成子任务终止之后,应用所采用的处理单元具有将自身释放到未被采用状态、准备好由其他应用获取的构件。即,处理单元变为‘自由状态’,并且忘记其所存储亲代和子代地址,如Hamlin中所解释。
图5还展示一些典型应用指令涉及操纵多样大小的阵列,并且递归连接性按由分段连接性25互连的优选大量多个计算单元的形式布置,所述大量多个计算单元然后一起有助于不时地对大量此类阵列进行加载、操纵和处理。作为管理连接性对用户的消息流进行的动作的部分,使其用户接口517和标准处理单元13各自能够将阵列处理指令作为其指令集的部分进行解译,且且能够获取具有所需求阵列处理任务的足够范围的特殊处理单元(诸如51)。指示阵列的大小的引导信号包含于所述指令中,并且具有每个支点数字计算引擎(其具有那个所需范围)的地址的低阶位模式的形式。数字计算引擎的支点的范围与其相关联特殊处理单元的范围相同,并且因此,特殊处理单元47是借助于终端连接性24接口517选择的,以确保支点具有对范围足够大以托管预期阵列的计算单元分段的控制。在处理单元51的情况下,支点52具有对范围值为2^4的计算单元群组53的控制。特殊处理单元51以将有关的阵列处理命令传递到其对应递归连接性支点52的内置微码进行响应。递归连接性支点52具有指导固定计算单元分段53各自通过广播连接性26接收用户阵列的单独数据元素并且随后对那个单独元素进行操作的构件,所述数据元素作为索引的串行流从用户接口连接48连续地传输通过支点。在这个说明性示例中,第一分段53包括的计算单元可与具有其自己的支点55的第二更大涵盖分段54共同使用,即使那个第二分段自身可能被来自第二独立应用的数据占据也是如此。多个阵列元素对计算单元的共享占据是通过在每个计算单元内进行多任务派发来布置,每个计算单元具有用于两个阵列元素(在这个示例性情况下)的数据存储区,如在数据处理中常见的,并且借助于其专用的更高权限的支点计算单元具有对第二更大阵列的明确权限。再更大涵盖阵列可同样地将其元素子阵列叠覆在这两个更小阵列上,等等,但应理解,计算单元关于每个阵列元素进行的处理活动有可能延迟对更大阵列的处理,且反之亦然。应观察到,这种布置在使用中与专用于一个应用的处理单元的布置在那个应用的需求的持续时间内不同。本发明的特征是,虽然具有相同权限等级(即,范围)的支点计算单元具有不同绝对地址,但在与其权限相对应的位级上,所有支点计算单元在其地址中都具有相同的最低有效位模式,并且每个地址的那个部分与每个其他权限等级的支点地址的最低有效部分截然不同。这不久将针对一种示例性情况来证明。已针对递归连接性任务获取的特殊处理单元的当前拥有用户可指导那个特殊处理单元通过支点(诸如52)将相同范围的另外的可识别阵列并且因此将其相关联的阵列元素加载到所述固定计算单元分段53中。然而,仅在所述当前拥有用户的控制下的软件可引用对所述所获取特殊处理单元的地址,由此抑制由其他用户软件访问那个处理单元及其支点两者,直到处理单元将其自己的自由状态旗标设定到表述连接性中。那时,在处于作为控制支点的角色的相关联支点对其特殊处理单元的响应性下,支点同样地切换到自由状态。
因此,管理连接性515具有用于通过大量多样范围的支点在计算单元群集之间分布大量数据阵列的构件,并且递归连接性12具有用于将阵列处理指令和数据元素从这些支点传输到它们在此类适当范围的群集内的计算单元的构件。每个支点借助于广播连接性26的广播和同步网络(在图5中未展示,但将关于图29在适当时候阐释)依序将所接收用户阵列的每个数据元素传递到在其控制下的计算单元中的每一个。
图5中展示两个另外典型计算单元分段56,它们形成部分递归曲线(在此所图示情况下,二维Hilbert曲线)的两个分段。如先前提到,曲线的递归路径是针对每个计算单元通过存储其前后信号邻近邻居的地址定义的。此类地址的二进制序列有利地以格雷码形式表示。因此,可访问计算单元分段的范围等效于递归曲线的分段中的计算单元序列的长度。
如已解释,来自517的所述可切换路线准许将各自来自用户接口16(图1)的用户消息流传输到特殊处理单元521中的对应处理单元,所述消息分别指导标准处理单元519将其流的组成消息部分渐进地散布通过跨表述连接性的另外亲代和子代标准处理单元519。所述渐进散布过程根据响应所述消息的编码的处理单元519和521中的逻辑和接口连接基元进行操作。因此,终端连接性24具有可配置成首先根据适当特殊处理单元521的可用性(自由状态)且其次根据那个特殊处理单元所连接到的递归连接性支点的权限而将来自用户接口16中的任一个的所述消息流引导到所述适当特殊处理单元(假定阵列处理任务是预期的)的构件。因此,连接性中的所有数字计算引擎可响应于不时地部署到可切换地选择的处理单元中的用户应用的结构化软件模式来选择,如将关于管理连接性的终端连接性在适当时候描述。
每个用户接口517和每个处理单元具有唯一地址。每个特殊处理单元521合并有用于识别用户消息的组成部分的数据分段电路,并且具有用于将其组成部分散布到相邻标准处理单元的构件。为了找到未被采用的自由状态处理单元,并且由此分摊对所分割用户消息的处理,借助于到表述连接性523的联网中的搜索信号来获取这些处理单元。此外,每个特殊处理单元521具有对与数据结构(诸如串和矩阵)有关的所述组成部分的某些指令码进行解码并将此类阵列处理指令引导到其递归连接性支点的构件。视所述组成部分的要求,递归连接性的支点计算单元本身具有对所述阵列处理指令进行解码并发起存储于计算单元中的微编码指令的构件,所述微编码指令特定于控制能可切换地选择的计算单元群集(诸如图5的54)中的阵列操作。
虽然通过这些操作跨连接性散布消息分量,但多个接口517、互连网络和特殊处理单元具有用于引导消息以避免用户之间和不相关的数据结构之间的逻辑冲突的构件,如将关于终端连接性在适当时候阐释。
如已指示且将关于广播连接性在适当时候描述,递归连接性具有偶尔使用优先中断的形式以来自多个数据阵列的元素对计算单元进行多任务派发的特征。明显地,在相互通信的路径和处理器由于有限量的所实施资源而分时的情况下,然后相应地限制同时连接性和并发性的机会。
每个接口517具有使得能够设定逻辑开关的构件,所述逻辑开关选择通信路径,且将用户消息逐个指令地传输通过终端连接性24并通过所选择路径29而到达特殊处理单元21。如由形成用户消息的部分的指令不同地所引导,用户消息数据结构的每个所述分量具有在传输中附接到其上的地址字段,所述地址字段准许处理单元协调彼此的相互通信,并且还在相关联的消息分量广泛分布到连接性的其他部分时重新连接到这些分量。
如图1至图5中展示的连接性的另一示意图示,图6展示连接性的部分,所述部分具有互连适于阵列处理的大量多个拥有地址的计算单元720和622的地址可选择信令路径的分段连接性625。路径43中的一些可根据依照递归曲线序列分层地排序的计算单元地址来选择,小分段由定址为{6,7,5,4,12,13,15,14}g的计算单元的序列图示,其中‘g’将地址符号表述为格雷码,这将在适当时候解释。形成分段连接性625的地址可选择路径中的大多数可在计算单元之间可切换地操作,使得是递归曲线的一个分段的可选择的第一组所述计算单元(典型地{12,13,15,14}g)并发地选择通过分段连接性625到是递归曲线的第二相当分段的可选择的第二组所述计算单元(典型地{0,1,3,2}g)的大量信令路径。
‘相当的’意指地址的轨迹的对应选择在发送群集中与在接收群集中具有相同位置模式,其中两个群集可按用户应用的需求不同地表示串、矩阵、立方体或超立方体数据结构。计算单元分段内的相当序列的所得选择确保地址、分段的形状和分段的取向然后在结构上一致,以便于处理群集中的所有数据项的并发处理。
为了接收消息流且为了同步,可选择分段中的每个所述计算单元还具有从那个分段的一个支点计算单元穿过广播连接性(未展示)的网络的可切换信令路径。
表述连接性23具有互连适于管理处理的多个拥有地址的处理单元619和621(诸如{g,h,f,e,m,n,p,o}g)的信令路径。所述处理单元中的一些(诸如特殊处理单元21(‘o’)),具有将消息流直接加载到分段连接性625的其成对支点计算单元(诸如支点计算单元622(‘14’))中的构件。依靠计算单元地址与处理单元地址的逐对匹配,分段连接性的可选择分段因此从表述连接性623接收对应地可本地化的消息流。
由于管理与阵列函数之间的差别,与处理单元电路相关联的表述连接性的网络与互连计算单元电路的分段连接性625网络具有不同形式。然而,已解释,对于数字计算引擎内的每个处理单元,对应有作为其邻居的计算单元,两者之间具有信号接口连接。然后,依靠递归曲线序列43的形式(如在图5中以典型形式56展示)和沿着其的地址序列的形式,在一个优选实施方案中,管理连接性的每个特殊处理单元具有分派给它的地址,所述地址在数字上与递归连接性的其相关联支点计算单元的地址相同,并且因此具有嵌入式地址模式,像每个支点本身一样,所述地址模式表示在其直接命令下的计算单元分段的范围。虽然形成典型管理控制算法的不规则分支树在拓扑上与数据阵列的典型笛卡尔布置从根本上不同,但位置地址的递归曲线序列使数据结构的主要的笛卡尔布置适于管理样式计算机程序的主要的树分支布置。按顺序处理语言,这类似于通过由结构化‘if-then-else’s’作出的决策选择性地控制的嵌套的‘for循环’。
因此,在连接性710的一个优选实施方案中,根据用户应用的需求对连接性的控制是借助于穿过大量可并发操作的端口617的管理连接性515进行的。每个用户应用包括消息流,所述消息流在连接性的可选择电路之间加载和分布并形成可计算的用户任务。连接性具有跨多个数字计算引擎分布大量此类任务的构件。每个端口617与终端连接性一起具有将用户消息流从一个用户终端串行地传递到至少一个特殊处理单元(诸如图5的‘k’)的构件,所述至少一个特殊处理单元已由管理连接性(终端连接性24)根据跨连接性的任务加载来选择。每个端口617还具有用于多个用户类似地访问端口而无如在计算机处理中常见的消息的逻辑冲突(除了由于分时造成的延迟)的分时访问构件。借助于搜索路径选择,使所述至少一个所选择特殊处理单元的位置地址为端口617已知,以便提供由拥有用户的消息流进行的另外访问。每个特殊处理单元然后具有获取未被采用的标准处理单元以用于所述用户消息的协调分布和评估的构件。(针对一个用户消息流)协调的这些标准处理单元独立于针对来自其他用户的消息协调和使用的那些处理单元进行操作。
以这种方式,表述连接性623与所述至少一个特殊处理单元621(诸如‘k’)具有获取可互连的自由状态标准处理单元619的模式并发起其协调的构件,所述标准处理单元619然后作为任务集体地专用于用户的计算机程序(即,他的消息流)的逻辑操纵。通过所述构件,表述连接性组织所获取处理单元以便匹配管理样式软件的细粒型函数自变量结构(Lisp语言提供其方便示例),并且还匹配并发控制递归连接性中具有基元指令序列的大量多个阵列处理计算单元的需要。例如,在对Lisp样结构进行的操作中,表述连接性的所获取处理单元具有在它们自己之间传递消息的构件,以及组合函数的所计算评估以便进行λ演算表达的简化的构件,其一个示例不久将被列出和解释。用于达成处理单元之间的这种交互的构件的示例在Hamlin中公开,并且连接性的另外示例(当应用于此类表达时)朝向本说明书的末尾给出。
每个处理单元具有通向表述连接性623中的接口,并且当加载有不仅仅对应于具有立即自变量值(即,所谓的‘原子’值)的基元操作的代码时,尤其导出与所述代码相关联的地址指针以便访问表述连接性中其他地方的电路,所述电路存储合并有所述代码的定义的只读语汇,每个这样的语汇拥有描述其在相互通信网络内的位置的唯一地址。每个处理单元还具有选择用户消息的部分以用于向前传输到另外处理单元(除非消息编码是终止消息树的分支的基元(‘原子’)操作)的逻辑和接口连接构件。当加载有来自用户消息流的简化到原子的代码时,托管处理单元评估预定义的基元操作,将评估的结果传回到其获取母代处理单元,并且将自身重置到自由状态。一旦已类似地给另外处理单元派发任务,那么它们独立于任一全局控制机构以类似方式但自主操作地对其所获取软件格式的消息进行操作。以这种方式,呈合适结构化形式的软件有效地将自身跨连接性分布,并且采用大量并发操作的资源来进行其评估。
如在本说明书中描述的对表述连接性623的网络和其使用的进一步论述采取Hamlin中含有的详述。涵盖一个优选实施方案处理单元619和621和所述网络的操作的那个说明书应结合本说明书来阅读理解。为此目的,在本说明书中,我们通过‘H’前缀来区分原始附图数字与在Hamlin中发表的参考数字。如前文观察到,处理主要逻辑处理的那项专利必然地体现与n维笛卡尔网络结构的连接性类型(诸如关于图3和图4描述的连接性类型)不同的连接性类型。
图7是Hamlin的图H23的一部分,这里为了更清晰而重新绘制,其中处理单元(诸如57)优选地按超环面地连接的网格的形式排列,但处理单元之间的双向互连信号路径呈分层切换的、二进制标注的、树状布置的信号路径的形式。所述图解展示出处理单元由具有穿过三分切换节点(诸如60和61)的路由路径(诸如58和59)的至少一个二进制树状网络互连,如通过粗线网络路径的情况下的示例所展示。
在图7中,应理解,每个路径(诸如59)包括准许在两个方向上传输消息而无不合理的冲突的一群链路。即,不同地传递穿过所述路径的消息序列永远不会头对头地会合,如同将由此引起在连接性内的锁定切换。为了支持消息路径的这种独立性,节点(诸如61)类似地具有尤其路由毗连路径而在消息之间无头对头竞争的构件。然而,在每个这样的节点处出现的分叉需要借助于对节点切换进行分时来在一些消息事务之间进行辨别,但这种分时仅由消息之间的‘头对尾’延迟(从无‘头对头’死锁)表征。通过此构件,可偶尔地通过共享互连切换来在表述连接性中的任何两个处理单元之间传递信号。对这种连接性模式的选择将前一发明的目的反映为使用处理器之间的树状连接性的分层的、管理样式的软件处理计算机,而分段连接性625笛卡尔互连涉及如例如在矩阵算术和数字微分分析中发现的数据结构的笛卡尔块的递归操纵。
每个二进制信号引导节点(诸如60)是终端连接性所采用的相同形式的三分开关,并且不久将关于图10来阐释。所述节点形成所述双向信令路径中的三个之间的接合点,由此提供通过节点的六个单向路径,上部路径朝向树的根部引导(离开图7),并且左侧向和右侧向路径各自朝向对向单元处的对向叶路径引导。此外,来自单元的自由状态信号在其朝向上部路径的路途上在专用线上流过两个侧路径,并且准许来自连接性中其他地方的单元的通过树的搜索信号与自由状态信号中的一个会合,由此将所述搜索信号可切换地朝向未被采用的单元引导。除了搜索信号之外,双向的三分节点还准许两个调用信号并发地通过节点。
图7中的表述连接性623的部分网络具有多联网构件,使得例如处理单元62倾向于朝向图的四个边界寻找、获取另外的自由状态处理单元并给其派发任务(在图7的示例中,假定四个这样的网络)。以这种方式,软件应用的更高分层级别可通过选择指针地址的形式广泛地跨连接性的整个范围强制执行分布,假定处理单元将所有四个网络用于其分布,并由此避免在更低软件分层级别处采用的节点的过紧成群。这倾向于留下位置更靠近的处理单元来在软件分层的最低级别处使用。
图7展示四个所述标注的树作为示例,每个树在其叶级双射地将所述多个对向叶路径连接到相似多个单元,任何对向调用单元由此可切换地可连接到四个另外目标单元(如果需要的话)以用于并发信令。例如,可将另外目标单元中的一个选择为具有定义范围的支点单元。图解中的四个树被展示为侧向移位且相对于其他树直角旋转。任选地,可在表述连接性中实现更多这种类型的网络。处于搜索状态的亲代单元独立地发送搜索信号穿过所述网络中的若干个,以便由此获取子代单元,典型地用于扩展函数表达以供评估。树相关于彼此位移的本质理想地倾向于将路线分布到广泛地跨连接性的子代,尽管单元还具有任选地控制搜索的跨度的构件。
Hamlin描述规定此分布过程的特殊切换模式。此外,可供处理单元使用且可供623的网络节点使用的分层引导的搜索模式将跨连接性的可切换路线布置成变形硬件模式,所述变形硬件模式与管理样式软件的典型地不规则软件树分支电一致,其中用户软件应用的‘根’由用户获取的发起特殊处理单元(初始地互连到用户的访问端口617的处理单元,如例如由图5的处理单元47图示)托管。效果在于,处理单元倾向于将软件结构跨表述连接性623的网络分散开,如同在自然分支树中一样。然后,另外的用户应用自由地(主要地,并发地)打造其自己的通向另外所获取处理单元的可切换路线,使得其处理单元可自由地与第一应用的那些处理单元交换,但无相互干扰,除了偶尔地排队访问网络路径,其中那种情况下的共享消息排队是头对尾而非头对头,如已经陈述的。每个应用的评估在所述应用将自身跨连接性散布时通过渐进地将代码加载在每个所获取处理单元处并进行评估发生。在分布式软件树的消息分支终止之后(即,在功能原子处理单元评估时),评估渐进地按分层次序通过分支返回计算的累加结果,直到最顶部特殊处理单元将来自所有互连分支的已完成计算返回到用于那个应用的其相关联端口617,并向外返回到用户接口16。同时,自满足处理单元设定其‘自由状态’旗标以向连接性指示它们已被释放以用于由另外任务采用。
借助于数字计算引擎的‘自由状态’旗标清除数字计算引擎以用于新应用的后续获取的过程类似于函数编程中的‘垃圾收集’,并且类似于紧要软件设计中的手动‘内存收回’。根本差异在于,那些类似的动作通过主协调过程全局管理,而在Hamlin中,垃圾收集在必要的单独处理单元操作已完成时在每个处理单元的位点处自主地发生。
作为这个过程的一个例外,已在应用的评估期间对支点计算单元派发任务以用于阵列处理的特殊处理单元暂停这个垃圾收集过程,直到源发应用在应用完成时按命令直接清除其特殊处理单元自由状态旗标。
每个用户端口617具有用于调度贯穿终端连接性24的网络的一系列转向器节点和路径的处理构件,通过所述处理构件,在接收到来自16的用户消息流的发起之后,端口617借助于可用且适当的支点数字计算引擎的特殊处理单元打开通过所述转向器节点到所述支点数字计算引擎的串行信令路线,如不久将关于图8描述。然后接着是用户消息逐个表达地向前分布到标准处理单元的靶定模式,这初始地在所获取特殊处理单元的控制下,如前文所解释。因此,管理连接性具有通过以下方式解译每个应用的编码消息流的构件:
1)位于接口617处的处理解码器,所述处理解码器相对于定界符代码标定用户程序中的消息流,
2)解译每条消息并且将分量表达传递到适当特殊处理单元,在阵列处理应用的情况下,所述适当特殊处理单元是根据表达的编码所需求的阵列的范围通过终端连接性24获取的;
3)位于每个特殊处理单元21中的解码器,所述解码器解译所述表达并且根据表达的子结构内的定义项目发起对自由状态处理单元的搜索。
在表达合并有另外的嵌套表达、函数名和参数名的情况下,处理和网络控制微码将那些定义项目传递到另外所获取标准子代处理单元19。在获取此类表达、函数和参数名时,视每个函数的情况,标准处理单元本身作为亲代处理单元继续计算用户程序所需的另外嵌套子结构的处理及其到另外子代处理单元19和(在阵列处理定义项目的情况下)特殊处理单元和其相关联支点22两者的分布。
预期来自每个用户的软件应用的结构与如典型地在以下用于(比方说)矩阵的转置(叫作‘MTRANS’)的示例性代码中展示的嵌套表达的函数编程样式一致,矩阵的转置将在适当时候关于硬件操作更详细地论述:
;;既不暗示特定语言,也不暗示关键字。用户手动输入前三个带括号的表达结构,如通常相对于所解译语言执行的:
第一用户输入表达:-
(define’MTRANS’(λ(ψ)($mtrans$ψ))
’MCOPY’(λ(θ)($mcopy$θ)))
;;$MTRANS和$MCOPY(呈大写)是将在其定义的结构中查找的名称(叫作‘符号’),所述结构在本文中叫作‘语汇’。
许多语汇可分布于连接性周围。‘define’是指导用户接口617对附接有其定义结构的一系列此类符号进行排序并将其分布到所获取自由处理单元的互联结构的基元。在这些示例中,‘$mtrans’和‘$mcopy’(呈小写)被假定为可解译为每个支点数字计算引擎已知的机器基元。基元表示在适当时由管理连接性的所获取处理单元的算术逻辑单元还有递归连接性的相关联支点计算单元直接解译的调用。ψ是‘mtrans’的虚拟自变量,并且用符号表示将最终保持指向用户表达的地址指针但却有待供应的寄存器。λ是指导用户接口存储如此定义的在每个函数的主体中使用的虚拟自变量诸如ψ(和另外自变量,如果有的话)的名称的基元。它还指导在将要针对每个函数的查找结构的定义利用的硬件的构造中所需要的每个处理单元是‘只读的’。即,所述结构被保留作为语汇条目,并且所有分量都具有使内容只读直到在相关联任务完成时被垃圾收集的附接的‘引号’基元指定符。虚拟自变量按名称存储于相关联语汇函数定义的头部单元处,并且每个虚拟自变量变为最终在用户的软件应用的处理期间供应的取代值的本地查找参考标签。这确保正确参考对那个本地函数内的每个自变量标签的后续调用。
第二用户输入表达:-
(define’Φ’#Φ
’EXAMPLE’(λ(φ)($MTRANS($MCOPY$φ))))
;;在这个阵列处理示例中,#Φ是在连接性中某处的用户已知的支点的计算单元(和处理单元)地址,所述支点具有对保持通过符号名$Φ(任意地)调用的矩阵的计算单元群组的权限。在这种情况下,Φ的语汇定义简单地是整数地址#Φ。$EXAMPLE的定义是函数$MTRANS,具有尚须加以评估的呈子结构形式的相关联自变量($MCOPY$φ)。
第三用户输入表达(应用程序):-
($EXAMPLE$Φ)
;;这是用户期望获得其评估结果的用户的主程序。所述主程序将需要对矩阵Φ的保留副本进行矩阵转置,所述矩阵Φ已在上文表述为与支点地址#Φ相关联。不同于保持为只读结构的先前语汇程序集,这次,表达如下开始于将进行数学评估(在处理单元中)的符号名:
($EXAMPLE#Φ)
;;自变量Φ的定义发现于其中用户已将其值表述为现在应用于$EXAMPLE的定义的支点地址#Φ的函数的语汇:
(λ(φ)($MTRANS($MCOPY$φ)))
;;从包含语汇寻找并复制$EXAMPLE的这个定义。附接φ(小写)作为’EXAMPLE的虚拟自变量名(在$EXAMPLE处理单元中),从而形成新的立即本地语汇(其中φ将被定义为#Φ)。
(λ(ψ)($mtrans$ψ))($MCOPY$φ)
;;查找在(与φ相关联的)新语汇条目中和上一个语汇条目中都未找到、但在分层上位于上方的语汇(其与用户的第二‘define’调用相关联)中找到的$MTRANS的定义。在这个示例中,它是对符号基元$mtrans的调用,所述符号基元$mtrans初始地被识别为以下查找符号:数字计算引擎发现查找符号是不需要进一步搜索的其自己的基元中的一个。在它的定义中,它具有虚拟变量$ψ作为自变量名,所述自变量名将要通过‘mtrans’的操作来替换(在新单元中),从而形成具有所应用形式定义($MCOPY$φ)的$ψ的新语汇条目,所述形式定义现在本身需要作为函数进行评估:
(λ(θ)($mcopy$θ))#Φ
;;查找$MCOPY的定义并将$φ的值(其最近已变为地址#Φ)应用于虚拟名称$θ。具有地址自变量#Φ的数字计算引擎中的基元‘mcopy’具有获取支点#Φ并将等效基元指令传递到那个支点的逻辑组织。支点中的指令的组织通过终端连接性获取新阵列,所述新阵列具有针对此示例由#Ψ用符号表示的支点地址,其具有与#Φ一致的范围。支点然后组织其计算单元群组以将其元素复制到类似的但未被采用的计算单元群组Ψ。
(λ(ψ)($mtrans$ψ))#Ψ
;;新的计算单元群组的特殊处理单元的地址#Ψ作为$MCOPY函数的导出值从#Φ支点传回,所述导出值然后变为原始$MTRANS表达的定义中的虚拟自变量$ψ的定义。由于基元(mtrans$ψ)现在具有有意义的矩阵自变量#Ψ,因此基元(mtrans#Ψ)跨表述连接性将等效‘转置’指令传递到地址#Ψ处的支点。
;;那个支点组织其计算单元以执行矩阵转置,并产生结果作为其自己的支点地址指针#Ψ,以用于通过已用于产生结果的处理单元链传输回到发起用户接口517。
用户现在知道他的新矩阵的位置#Ψ。如果它们需要矩阵的元素本身,那么示例性方法可将‘print’基元操作应用到支点地址#Ψ,使得支点按串行顺序沿着其递归曲线段收集数据元素,将其传递通过其相关联的特殊处理单元并向前传递到用户接口。这结束了用户示例性应用的管理命令的示例性程序代码。
通过大量数字计算引擎,多个用户可同时进行许多这种类型的计算。
如以上示例所代表的可执行软件程序通常包括用于访问数据元素的阵列以及用于操纵此类阵列的专业化命令。这些命令通常包括每个阵列的大小及其位置的二进制编码的指定符。本说明书的一个特征是,每个计算单元具有指定其自己在递归曲线的大量嵌套分段(诸如图4的38和40)内的位置的地址。每个这样的固定大小的分段将沿着那个分段的计算单元定义为规则元素阵列,其中一些的内容是二进制数据字段,并且分段中的其余部分可被设定为‘无’(即,‘未定义’)。终端连接性24、特殊处理单元21、其相关联的支点计算单元22和广播连接性26一起操作以选择大于用户阵列的大小的所期望范围的计算单元分段,并将用户的二进制数据字段阵列作为有序的串行流分布到所述分段。每个所述数据字段可包括例如适于算术和逻辑操作的整数的数字表示。
终端连接性24中的切换节点和可用信号路径的逻辑元素也具有将搜索路线朝向正确支点范围的特殊处理单元适配以用于访问特定期望大小的计算单元阵列的构件,如将在适当时候描述。每个处理单元具有在单元停止由用户应用使用时设定‘自由状态’信令旗标以用于传输到终端连接性24中的逻辑构件。当由于用户应用的获取和所有而不可用于访问时,处理单元重置其‘自由状态’信令旗标。终端连接性24的节点一起具有询问每个这样的旗标并将输入路线朝向处于‘自由状态’的未被采用的特殊处理单元切换的构件,并且端口517具有对通向特殊处理单元的节点进行倒数、从而根据用户阵列的指定大小将引导信号应用到路线的构件。为了准许对用户消息的后继片段的另外序列的请求的后续目的,并且为了将所计算数据流返回到用户的端口,一旦管理连接性已完成用户消息的评估,端口517就具有将含有其自己的端口地址的地址字段附接到每个向前传输的消息的扩增构件。
因此,管理连接性终端连接性24具有用于接受来自多个用户接口16的大量同时消息输入以及用于通过将要描述的多路复用器构件将那些消息的数据内容分布到管理连接性特殊处理单元21中的所选择处理单元、使得用户消息之间不发生逻辑竞争的构件。然后,输入终端连接性24的目的是根据来自对应多个用户终端的多个用户消息流获取连接性内的管理处理和阵列处理电路。
图8示意性地图示终端连接性24的一个优选实施方案,所述终端连接性24具有通过二进制‘茂密树’将用户消息从作用输入/输出端口717(诸如63)分布到特殊处理单元721中的所选择处理单元的多路复用器构件。
来自用户的每个用户消息流包括用于评估的函数表达连同相关联的基元指令符。指令符编码通过对触发一系列所述转向器节点(诸如64和65)的引导到终端连接性24中的一系列搜索切换信号进行排序来控制用户接口(诸如63)处的输入处理,所述排序是根据那些节点处的‘自由空间’信号的存在并且根据用户阵列的期望范围(如果需要阵列处理的话)进行的。因此,切换逻辑根据基元指令和阵列范围,通过一系列转向器,将终端连接性中的每个所需要传输路线朝向适当的自由特殊处理单元配置,使得用户表达的函数数据内容最终传到例如用于函数解译的所选择特殊处理单元66,并且因此传到标准处理单元,并且如果消息包括阵列处理函数的话,还传到递归连接性12中的支点中的一个适当支点。在数据阵列的情况下,由用户消息请求的阵列的大小对于选择适当支点是重要的,并且终端连接性24具有选择所具有的范围对于那个阵列大小来说足够的未被采用的支点的构件,如现在将描述。
终端连接性的布置具有从端口接口717(诸如67)到搜索转向器节点(诸如65)的可切换路径,所述搜索转向器节点为多路复用器布置的形式(这将关于图10至图13进行描述),其具有用于对来自未被采用的特殊处理单元(诸如68)的‘自由状态’信号作出响应的切换构件,每个特殊处理单元优先地、但不一定是在相应所述用户终端中的每一个的本地。图8中的网络的示例是二进制树,所述树的转向器节点各自被展示为合并有向左和向右的两组分支(典型地,69和70),以及图2的路径29,诸如直接连接到特殊处理单元(诸如72)的71。终端717中的一些(诸如63)具有到对应转向器(诸如73)的直接连接,但转向器节点中的至少一些(诸如74)不具有那种类型的链路。在这个示例中,转向器共同地连接于具有路径(诸如75、76和77)的路线的分层茂密树型网络中,所述树的最低层级连接到连接性的最低范围的特殊处理单元中的至少一些(诸如78)。更高范围的特殊处理单元(诸如79和80)通过在树中更高处的转向器节点来访问。由76代表的所图示分支的较低线提供对较大范围的用户可访问分段的自由空间搜索,而较低范围的可访问分段则通过由77代表的树路径访问。在特殊处理单元之中,81识别较高大小的阵列访问,并且78识别最低大小的阵列。对于加载和读取阵列来说,一个优势是,一些用户访问(诸如82)仅能够通过专用路径84访问小范围的特殊处理单元(诸如83),在这种情况下,不涉及转向器。
适合于跨连接性在两个维度上排列的电路系统的一个优选实施方案包括图8中的每个转向器处的另外两组分支,可以说,一个在概念上流出页面并且另一个流进页面,并形成四叉树。图9将此示意性地展示为转向器节点85的四叉树,连同其与路径(诸如图8的75)相对应的组的连接86。在实现方式中,四叉树跨连接性的宽度布局,并且在实际方便的情况下连接到所选择特殊处理单元。因此,通信四叉树被布置成:既通向叶87处的特殊处理单元,其控制可由用户直接访问的最小阵列中的一些);又通向转向器节点(诸如88),其还直接连接到特殊处理单元(诸如图8的81),从而通过转向器控制更大阵列。终端连接性24中的所述转向器之间的线(诸如86)形成通信路径的‘茂密树’,并且每个树分支(在图9中展示为单条线)因此可包括沿着每个分支的大量可用路径,路径的选择取决于用户应用需要其转向器序列最终选择的阵列的范围:即,以便打造同向具有足够权限的特殊处理单元的开放式路线。图12中更详细地展示并且不久将描述控制三个这样的路径的转向器节点。应了解,与访问较少的较高范围的阵列相比,有更多机会访问较低范围的阵列,并且本发明的一个优选实施方案向用户接口717提供大阵列可用性的引导信号通知。
如Hamlin中关于图H38和所述说明书的特征H62所教导,特殊处理单元各自具有借助于专用链路(不久将论述)将‘自由状态’信号传到外围接口的构件。在终端连接性的一个优先实施方案中,通过接口H591的六个其他链路支持定址和数据信令以用于双向获取和从特殊处理单元到终端连接性的转向器节点中并由此到获取接口717的通信。如前陈述,在连接性的所述第二简化实施方案中,支点本身合并有这个接口连接构件。
转向器具有用于检测自由状态信号的构件,并且因此通过朝向未被采用的特殊处理单元(诸如78)转向的‘引导式搜索’信号索取其他节点和路径。如果特殊处理单元78保持自由,那么中间所索取节点(诸如73和74)一起打造在搜索用户接口(诸如图8中的63)与未被采用的特殊处理单元之间的路径,所述路径(例如)准许向和从特殊处理单元78传递消息。如果在搜索路径完整之前处理单元变成由不同获取应用占用,如在Hamlin(第88列第30行及以下)中关于‘引导的远程自由空间搜索’所解释,那么引导式搜索路径展开回到在终端连接性24内感测到的下一个可用自由信号,从所述下一个可用自由信号,搜索针对相同范围的不同可用特殊处理单元(诸如处理单元66)重新开始。如果无本地特殊处理单元可用,那么引导式搜索路径可通过较高转向器向上继续,之后再次下降到更远的处理单元。用于引导式搜索的逻辑与关于图H65描述的逻辑相同,并且使用相同的基本电路系统,但在本说明书中,分层添加了用于还在消息分段含有用于阵列处理操作的指令的情况下将搜索匹配到用户期望的阵列范围的另外逻辑和链路。在那种情况下,转向器节点具有根据阵列的范围(其对于在搜索期间请求的阵列来说足够大)的地址代码对搜索信号作出响应的切换构件,并且具有将搜索信号传送到茂密树的不同层(诸如,对于较大阵列通过76且对于较小阵列通过77的可切换重新选择)的构件。在这种情况下,所述‘地址代码’意味着匹配期望阵列范围的地址的特定最低有效位模式,而非具体定址的特殊处理单元的位置。所述切换构件由此将搜索信号(和其后续用户消息)连接到自由特殊处理单元,所述自由特殊处理单元具有足够控制大小对于用户的期望阵列来说足够的计算单元分段的范围。地址模式的较低部分匹配适当范围的支点的地址的模式,对于贯穿连接性的那个范围的所有可访问分段来说,那个最低有效位模式是相同的。
图10以示意性框形式图示终端连接性24的一个优选实施方案中的转向器的主子电路中的一个的一个优选实施方案。这个子电路已直接从关于Hamlin的图H65和第75列第25行到第80列第28行描述的网络节点导出。相同电路因此也适用于表述连接性的节点的操作,如前文所指示。
到电路中的多个逻辑选择链路(诸如H51和H56)如其中连同其根据不同地应用于所述链路的逻辑信号电平的操作模式所描述地进行操作。在一种操作模式中,图10的电路用于由检测图8的树所对向的未被采用的特殊处理单元设定的自由状态信号。图10在89处以符号展示自由状态信号在箭头的方向上的路由,以便指示所述符号代表电路90,在本文中叫作‘A型’,并且其中成功的搜索方向与所述箭头相反,向下朝向未被采用的特殊处理单元。所述箭头展示自由状态旗标的所感测方向,并且始终穿过树分层向上指,并且在操作中,侧路径被分配‘0’和‘1’指定以识别优先切换路线。在成功链接到自由状态链路后,当信号源移除其锁存获取线信号时,图10的电路89逐一地将所获取信号路径锁存开放,直到完成整个路线,或直到随后由来自所述源的超驰‘设定到自由状态’信号释放。当设定时,链路H62L上的自由状态信号准许向上的多链路路线H53(从例如65的转向器)通过跨接电路H702连接到向下电路H704。向下路径H56还可以寻找未被采用的特殊处理单元,并且还接收链路H710L对通过H706访问电路H704的准许。H704具有选择器构件以仅准许第一访问搜索器路径继续向下,第二路径保持打开(用于信令),直到(比方说)H704从路径H56上的第一获取事务被释放—此时,路径H56上的信号已被撤回,并且H704使来自链路H53的信号继续向下。然而,如果H702因链路H62L(并且因此H708)上不存在自由状态信号而受到抑制,那么从链路H53进行的搜索继续到H703并且通过链路H55向上,这可能地在由于通过来自链路H51的搜索信号进行的先前获取的延迟之后,如前文所描述。因此,电路89形成消息事务的三分切换器,并且其示意图90在后续电路图和描述中使用。电路89准许一系列双向获取模式和事务各自发生三个信令路线之间。作为示例,在一个操作中,A型电路准许以下切换模式:
(a)在从向上路径H51对特殊处理单元进行的初始搜索和获取期间,在不改变所请求权限的情况下,H62R处的自由状态信号规定从链路H51向下通过H705到H54的信令路线所采用的路径,所述信令路线至少临时遵循到其源的自由状态信号;
(b)如果在从向上路径H51对特殊处理单元进行的初始搜索和获取期间自由状态信号丢失,那么搜索继续向上—保留在‘0’分支上—直到已检测到另一自由状态信号,在此之后,搜索再次向下继续;
图11示意性地展示另一三分开关91,其与图10的电路90中的开关相同,只是其左侧和右侧路径在与图7的自由状态信号通过树的向上流动相反的方向上组合,并且在操作中,它不受到自由状态信号影响。图11展示电路91的符号形式92,在本文中叫作‘B型’,其中再次地,向下到自由状态处理单元的成功搜索方向是与箭头的方向相反。来自93的自由状态信号现在在94处的有线连接处分叉成到H62L和H62R。然而,在这个电路中,电路的主切换逻辑本身并不是由自由状态信号直接控制,并且到H701、H702和H706的逻辑输入设定为高,以便不抑制向上走的路线,在这种情况下,路径的选择由控制终端借助于针对期望支点范围编码的引导式搜索信号来设定。当引导式搜索信号沿着搜索路线获取每个三分电路时,所述信号前进通过所述路线。
Hamlin中详细地解释控制电路89和91的路径获取逻辑及其信令的各种模式。那些获取模式包括对路线的引导试定址,其中每个三分器节点将‘确认握手’信号返回到消息的发起器,所述‘确认握手’信号使得能够将另一引导器信号发送到期望传输路径中的下一个顺序电路,以便切换期望范围路线。搜索路径的路线是通过在来自源接口的地址线和获取线上设定适当信号电平来引导,其方式与如关于在Hamlin第88列第28行及以下和图H77A中描述的引导的远程自由空间搜索所描述的方式相同。
在图8中(如Hamlin中所解释),每条绘制线(诸如95)表示包括一个自由状态信号链路的双向路径和三个控制信号链路的两个路径,一旦在两个对应路线上成功地完成,每个路径就实现在两个方向上并发地传输串行数据事务。两个路径与例如两个路径H51和H52以及H55和H56相对应。在终端连接性中,控制链路中的三个的一个群组(诸如由H56表示)一起以用于切换从用户端口到特殊处理单元的所选择路线的各种操作模式控制路径的获取,并且三个其他链路提供从处理单元到端口的逆向可选择路径。因此,图解中的每条绘制线应理解为包括至少获取、地址和确认信令链路,这些都如Hamlin中所描述。每个箭头指定设定高自由状态信号向上通过四叉树(如图9中典型地图示)的路径到树中的最顶部最高权限节点(由97代表)的前进方向。一些转向器(诸如64)具有与一个特殊处理单元(诸如80)的双向连接729,最下部转向器(诸如74)除外,所述最下部转向器具有到典型地最低范围的四个特殊处理单元(诸如78)(当按四叉树形式布局时)和范围高出一个层级的第五特殊处理单元(诸如节点66)的连接。节点97可同样地具有与终端连接性的最大范围的特殊处理单元79的直接通信。
电路89和91在图12中使用,图12是转向器65的四叉树形式的示例性实施方案的示意图。在那种具体情况下,转向器65具有四叉‘茂密树’的三层节点的形式,而非呈由图7的表述连接性723中的节点61图示的单树节点中的一个的形式。图12中图示的组件之间的每个互连信令路径包括七个信号链路,如在Hamlin中针对获取和信令所描述。在第二层级转向器节点65的示例中,多个(d),d=2路线N1 98和N2 99(象征性地说)从‘北’进入,并且同样地,S1 100和S2 101从‘南’进入,E1 102和E2 103从‘东’进入,并且W1 104和W2 105从‘西’进入。因此,图12中展示各来自四个基本方向的两个路线(d=2)。节点65还与具有第三高范围的特殊处理单元106通信。每个转向器节点具有向下进入节点的d+1个路径,并且在节点65的示例中,这些路径与图8中标注为95、96和70的那些路径对应。在如图9中展示的转向器73的情况下,转向器97通过这三个路径通信,并且还具有通向三个其他d=2个转向器的相似路径。转向器97具有从上方向其馈入的d+2个另外路径。
一旦已打造出通过网络的完整路线并且将其锁存开放以用于信令,就可沿着那条路线传输有用的消息,然后在适当时候也许可临时地通过移除源发锁存‘获取’信号并由此释放路线的构成路径以用于其他用户来关闭路线。搜索路线的源发源(在这种情况下,端口817)保留所获取特殊处理单元的地址代码以用于后续重新获取和消息传输,并且然后使用在Hamlin中描述的正常获取绝对定址模式进行后继事务。同样地,所获取特殊处理单元保留发起源817的地址代码以用于在需要时在相反方向上进行路线获取和消息传递。
转向器(其电路65是‘d=2’个转向器所特有的)各自在四叉树中向下并且还朝向各自具有预设范围权限的特殊处理单元81中的一个连接到四个基本方向。例如,图12的电路107将消息引导到所具有的范围稍微高于处理单元106的较高权限特殊处理单元,而电路108将消息引导到所具有的范围稍微低于处理单元106的较低权限特殊处理单元。在电路108的情况下,当由于四个基本方向(N1、S1、E1、W1)中的至少一个而在109处设定时,自由状态信号准许将搜索路线中的对应一个打造成向下通过‘自由状态’基本方向中离开902的一个;即,如果不需要将搜索发送到较高范围的支点的话。如果65下方的搜索源意图较高范围,那么由获取和地址链路控制的‘非引导式自由空间搜索’模式响应于地址链路信号而切换110并引导路线向上通过路线109。电路108被布置成使得A型111在路线100与104之间仲裁,第二A型112在路线98与102之间仲裁,并且第三A型110在所有四个之间仲裁。因此,电路108根据有未被采用的特殊处理单元的可用性的情况并且根据对期望范围的计算单元的任何自由分段的搜索的情况提供切换进和切换出其五个终端中的任一对的搜索路径。电路113具有象限对之间的路径N2、S2、E2和W2和上升路径114的这些相同逻辑特征。
电路108以及在相同权限等级下继续搜索因此准许转向器切换到渐低的和渐高的权限等级,如由获取链路和地址链路(诸如H63L和H64L)应用到三分开关的可选择进展的连续位序列所触发。端口接口817和特殊处理单元内的每个计算电路具有在获取链路和地址链路上产生位序列的构件,所述获取链路和地址链路引导消息事务路线通过终端连接性,以用于从端口817输入和从特殊处理单元输出。来自端口的脉冲在获取和地址链路上的各种组合沿着使用线设置的路线触发A型和B型电路,如Hamlin中所描述。示例性转向器65(其中d=2)被配置成准许从470处的最高范围向下到96处的较低范围并到95处的最低范围的搜索。
另一方面,从115经过B型电路117到选择路径116的用户信号序列将前进中的路线直接向下引导到特殊处理单元106(如果这个处理单元未被采用的话),就这个节点层级而言,所述特殊处理单元106具有最高范围。如果处理单元106已由用户拥有,那么在117处不存在来自处理单元106的自由状态信号,并且对相同范围的另一自由支点的搜索自动地跟随自由状态搜索进入路径118并通过节点65。图12中的悬空引线符号119指示:像图8的转向器节点74一样,不一定需要到端口817的连接,但来自终端连接性中其他地方的路线仍然可通过节点65获取处理单元106。
作为B型切换操作的应用的示例,B型电路准许以下搜索模式:
(a)在从图11中的现在向上路径H56对特殊处理单元进行的初始搜索和获取期间,在所请求范围的改变的情况下,如前,在A型开关的H62R处的自由状态信号可规定朝向恒定范围‘0’分支上的自由状态信号的信令路线所采用的路径之前,使用获取线和地址线将开关引导到‘1’分支;
(b)一旦在恒定范围路径上,如果在从向上路径H56对特殊处理单元进行的初始搜索和获取期间,自由状态信号在范围的改变之后丢失,那么搜索继续向上进行—剩余的则在‘0’分支上—直到已在那个新范围上检测到另一自由状态信号,在此之后,搜索再次向下朝向那个范围的特殊处理单元和其支点计算单元进行。
在此类操作期间,在获取和重新获取过程期间,源对确认脉冲进行计数并将其对照标准操作模式的所存储表进行比较,以便追踪获取的进度。
作为所实现阵列范围的示例,如果确定分段连接性分段的用户可访问范围是2^10、2^14、2^18、2^22和2^26个计算单元(比方说),那么本说明书的节点65连接到具有第三高权限等级—即,2^18个计算单元—的特殊处理单元106。使用类似于65但仅具有两个上升路线而非三个的电路,最低层级节点(d=1)(诸如74)连接到一个第二低范围特殊处理单元,从而命令2^14个计算单元,并且还连接到四个最低层级特殊处理单元,直接访问2^10个计算单元。通过图8中的示例展示的二进制茂密树终端连接性24具有四个树,所述树具有四个转向器层级。在d=4的情况下,最高节点97不具有另外的上级节点链路,但如果需要,可被连接以供通过任选路径(像图12的119)由另一端口17(未展示)进行可选择直接访问。
为了通过示例描述转向器65的电路107在引导式搜索中的的操作,我们假定电路108正在从仅‘西’路径104接收自由状态信号,‘西’路径104连接到最小权限范围的特殊处理单元。假定路径98、100和102上的特殊处理单元已被占用。对于来自115的寻找最小阵列特殊处理单元的获取编码信号,从117经过路径118的最高权限路线中的信号链路激活B型电路120的‘1’分支,以将路线切换转向到中等范围的A型121。使用那后一电路的引导式自由空间搜索模式,获取链路和地址链路具有迫使搜索到达下一B型122的构件,所述B型122通过其‘1’分支选择启用以按需要A型123处将搜索的范围再次改变成最低范围树。此时,来自104经由路线109通过A型111和110和B型124的自由状态信号得以准许将搜索向下引导,并且这继续通过124,而不将搜索树向下朝向可用特殊处理单元偏转。最后,在104下方的所获取自由状态处理单元传输长确认脉冲以便登记链的完成,并且还用其自己的地址来响应。
如果类似范围的先前获取信号已从上方到达123(比方说),那么123保持来自117的部分路线搁置,直到完成且解锁先前信令。如果先前信号为搜索信号,然后(在104下方的)仅有的可用特殊处理单元丢失,那么123丢失其自由状态信号,并且获取路线通过路线95向上切换到其上级更高层级转向器以获得在相同最低范围终端连接性树上的相同权限的另外自由状态路线(在这个示例中)。
以这种方式,可将路线置于端口817的控制下,以便使消息传递路线朝向任何一个方便定位的未被采用的特殊处理单元演进并将其锁存开放,所述特殊处理单元具有对于用户的阵列处理要求来说足够的范围。因此,用户接口电路具有包括至少搜索状态的大量操作状态,并且当处于搜索状态时,用户接口电路将搜索信号传输到转向器的多路复用网络中,每个转向器适于响应于搜索信号和来自处于自由状态的支点的自由状态信号的存在两者而选择双向部分路线。转向器还具有用于根据表示用户指明的范围的来自用户接口电路的搜索信号和来自规定范围的处于自由状态的支点的自由状态信号两者选择朝向所述支点的部分路线的构件。在自由状态支点在搜索期间以其他方式被获取并且切换出其自由状态的情况下,转向器具有将搜索信令路线重新引导到相似范围的另一自由状态支点的另外构件。如果当前没有这样的自由状态支点可供使用,那么用户接口具有保持搜索状态搁置直到出现另一机会的切换构件。
一旦用户接口电路具有先前所获取支点的地址,它就具有用于将调用信号传输到多路复用网络中的构件,通过根据用户指明的支点的地址通过一系列转向器设定方向开关,所述调用信号前进通过部分路线。这然后准许用户与连接性之间的双向通信恢复以用于后续事务。为了展示终端连接性茂密树与转向器相互关连的方式,图13展示转向器电路(典型地,图8的73)的第二示例,其中d=3。在这种情况下,电路类型108复制三次,并且从125、126和127开始,三组相应四叉路线以与图12中所图示相同的方式向下延伸到‘N’、‘S’、‘E’和‘W’方向中的每一个。一个基本方向向下与由65(d=2)例示的转向器通信,65(d=2)是与如在图9中图示的转向器73对向的四个转向器所特有的。在这种情况下,特殊处理单元72的范围处于第四层级,并且这定义路径128是其成员的终端连接性24的构成子树,在我们的示例中,构成子树的范围为2^22个计算单元。转向器具有相当大的逻辑复杂性,但应注意到,用户访问端口的总数并且因此终端连接性中的这些节点的数目比数字计算引擎的总数少数个数量级。
类似地,然后,图12中的用户端口115具有在处理单元106处于自由状态的情况下通过B型117获取中等范围的特殊处理单元80(其具有对2^18个计算单元(比方说)的权限)的构件。在不存在来自106的自由状态信号的情况下,电路117通过路径118将所获取路径转向到B型120,并且往回向用户终端传输短确认脉冲。否则,特殊处理单元106传输长确认脉冲以告示对期望范围的合适特殊处理单元的获取及与其进行的通信。
假定这个单元不可用,并且用户终端因此已接收到来自开关117的短确认脉冲,那么端口终端获取逻辑具有将地址链路设定为低以便通过电路65、A型开关129且继续向上通过路线470继续对具有相同范围的分段的搜索的构件。129可具有来自下方、来自N、S、E和W方向中的任一个的先前临时索取—借助于切换的B型130—如果它们也需要大的群集的话。在那种情况下,如前,115必须保持其到129的链路搁置。
另一次,如果115请求对大于第三层级的分段的搜索,那么在开关129处应用的低地址信号将搜索向上引导通过路线470以到达下一更高转向器。
在这个示例中,从路线101引导到B型开关131的获取信号伴随有定址信号,所述定址信号将路由向上从开关132引导到114并因此向上通过A型开关133(而非向右转)以通过B型开关130,在B型开关130处,定址信号使路线转向通过129以到达470。路线470通过134的四叉分电路系统馈入图13的路径127以到达A型135,在A型135处,搜索路线首先与来自第四层级范围特殊处理单元72的自由状态信号会合,假定在最后获取阶段的正常自由空间搜索期间,特殊处理单元72未被使用且保持未被—例如,端口63—获取。
每个用户终端具有组成转向器的开关的逻辑映射图,并具有软件例程,所述软件例程根据确认脉冲追踪路由的进度,以便当接收到确认脉冲时,将适当的地址引导指令符发送到终端连接性24。
如前文指示,以上描述的终端连接性24的实施方案包括另外大量用户输入-输出端口接口917,其具有分别通向相似大量专用特殊处理单元的通信路线,所述特殊处理单元可被协调以加载一组子阵列。图8中的组件82、84和83图示一种布置,其中特殊处理单元83具有最低权限,并且这个阵列专用于单个端口82。这可应用于对大数据阵列的协调的、并发的加载和读取,例如,通过将一组小得多的组成阵列从大串行端口矩阵流式传输到分配给大阵列的群集中。对于无阵列的表述性编程任务,可合并通过终端连接性24的另外用户接口连接路径以访问无阵列处理响应性且对支点无直接权限的特殊处理单元。
终端连接性多路复用器切换电路和控制消息流的前述描述准许来自大量用户终端的相似大量数据传输路径用于与全异的用户任务对应的应用和数据进出连接性的并发分布。每个用户路径访问其自己的到终端连接性24中的接口连接构件917,所述接口连接构件917以在逻辑上独立于其他用户路径的方式进行所述分布过程。将要由连接性处理的每个所述用户任务在使用中包括串行数据流,其表示诸如符合函数编程语言的结构化编程样式。这种优选的语言样式用函数名与自变量之间的清晰定界符严格地结构化。在如在本说明书中用于说明的Lisp的示例性情况下,定界符常规地是用于左右括号和空格键的二进制代码。为此目的,917内的接口构件中的选择逻辑将输入数字代码流中的定界符解译为嵌套的、但离散的函数表达,并且记录每个表达目的地,以便当表述连接性23跨机器的特殊和标准处理单元电路共享代码线程时,维持因表达而异的有序的代码线程。作为任选特征,接口917还可包括操作多任务派发实用程序的计算机处理组件(未展示,但在目前先进技术中是常见的)。这些接口连接计算组件还具有用于存储数据流分段并随后将其各自重新传输到表述连接性的最终解译代码函数和自变量的相应特殊处理单元的构件,如将在适当时候通过示例描述。然而,这个选项可能具有众所周知的危及用户分离的软件管理风险(如果由多个用户使用的话)。
一旦所述接口917已通过刚关于图8至图13描述的网络切换构件打造跨终端连接性24到特殊处理单元721中的对应处理单元的路线,所述接口917就具有用于将所述串行数据流的函数表达与其相关联的定界符引导到特殊处理单元的构件。由于917的接口连接处理已追踪通向其所获取特殊处理单元的路线,如前文所解释,因此路线的定址存储于接口存储器中,并且正常获取和信令过程可对同一特殊处理单元重复以用于进一步的后续动作。另外,如果用户期望,可根据任务的需要而继续对另一特殊处理单元的第二且后续的搜索,各种所得代码线程和其目的地被记录以便由输入接口进一步访问。
用户消息流中的至少一些合并有用于命令支点22(通过其相关联的特殊处理单元21)控制阵列数据在阵列处理分段连接性25之上、在所选择子阵列计算单元群组(诸如图4的38)之中的分布的指令。如果用户编码需要的话,对应支点具有被配置成将用于有待由群组中的单独计算单元进行的处理操作的数据阵列和指令码分布到其相应阵列群组的构件。
作为格式化数字流输入到连接性的软件应用被预排序为函数表达的扩展‘树’,所述操作由所获取特殊处理单元跨表述连接性23分布到标准处理单元519。处理单元具有适于分布一连串的这些函数表达、从而将其分配到标准处理单元的类似扩展模式的构件,链路通过管理连接性23以递归软件分布形式传递到另外的标准处理单元,如通过示例在Hamlin中和后续在本文中关于图43和图44所解释。对分布式软件分支中的每单个函数表达的响应性然后取决于对应的单个处理单元,所述处理单元具有解译那个表达的函数部分和表达中包括的任何自变量的构件。如先前所描述,自由状态搜索逻辑从未被采用的标准处理单元选择所述标准处理单元,并且这个所获取单元然后有权限成为下一表达评估层级中的‘亲代’单元。处理单元充当亲代以扩大其用于完成其自己的表达的权限的需求通过以下方式来满足:所述亲代借助于由表述连接性23贡献的搜索和定址逻辑索取另外的贡献‘子代’处理单元。以这种递归性方式,整个软件应用命令自身跨先前未被采用的资源分布。‘亲-子’关系存储于每个处理单元内的存储器位置指针中,使得亲代和子代可沿软件树结构的互联的扩展代码上下将此类指针用于正在进行的事务。
在具有大量资源的连接性中,可使大量用户软件应用在资源之中独立地交错。由于每个处理单元仅具有对一个任务内的一个表达的权限,因此表述连接性23搜索过程自主地转交复杂的软件响应性,最终向下转交到‘原子’基元层级。在那个不能减缩的‘原子’层级,标准处理单元具有根据其自己的微编码基元的指令表来计算本地结果而不进行另外贡献的自含式能力,并且它将那个结果往回传输到其自己的亲代标准处理单元,并通过此类处理单元的链往回传输到源发特殊处理单元,并因此往回传输到用户端口917。
倘若它们先前已被用户任务获取和拥有(临时),那么在所述自主转交中可采用另外的特殊处理单元。这种情况的示例是所述用户任务内的阵列处理操作需要不同大小的另外阵列的获取要求。
如在Hamlin中解释,表述连接性提供所有处理单元对自由状态信令网络的访问,每个未被采用的标准处理单元将自由状态信号传递到所述自由状态信令网络中,使得使搜索函数支持的任何处理单元能够获取多个未被采用的额外标准处理单元,并向这些所获取‘子代’处理单元本身连续地馈入指令序列。当任务由于任何原因而已在处理单元中终止时,那个处理单元自主地重置其‘自由状态’旗标,以便将其未被采用状态登记到连接性。
本发明的一个优选实施方案在表述连接性树的节点处采用所述自由状态旗标的监视器,所述监视器连接到处于自由状态线中的开关,所述开关临时抑制新输入应用到表述连接性的部分中的流动。可方便地使抑制可调整时的活动密度的准则将允许例如将一个地点处的访问限制设定为处于跨设定数字计算引擎群组的可能为70%的上限。连接性的另一实施方案合并有分离的多任务派发电路系统,所述多任务派发电路系统在标准处理单元中、但不在特殊处理单元中,使得类似地传入到表述连接性中的若干自由状态旗标可将若干独立用户应用邀请到所述单元中以用于单元资源的分时。然后,每个标准单元具有用于隔离每个应用的访问权的参数和处理的存储构件。
本发明的另一特征使决策树结构化软件也能够跨计算单元群集分布。示例是超立方体内的结构化编程语言CMLISP的布置,如由Hillis等人展示。然而,本发明的优选实现方式是:连接性的控制是借助于针对递归连接性作为适于将阵列处理指令馈入到计算单元群集的‘主处理器’操作的管理连接性。其中所述表述连接性包括树结构化并行处理设备的合适连接性以如美国专利第5,434,972号的权利要求1至26中任一项所述或如权利要求40至73中任一项所述的特征来描述,优选地,通过硬编码到特殊处理单元和计算单元中的另外的阵列处理基元例程来扩增。这些另外的阵列处理基元中的每一个拥有唯一二进制编码的名称,如在本领域中常见的,并且每一个都具有对将要操纵的阵列的大小和形式进行归类的相关联的自变量数目和符号。应用中的处理单元在更复杂的软件结构内调用基元本身,如在适当时候通过示例说明,并且某些特殊处理单元将对阵列基元的每个调用传递到所需范围的相关联自由支点。支点计算单元和标准计算单元具有致使执行另外的、甚至更多的基元阵列操作的解码逻辑。如前文所解释,这些后来的基元被引导到计算单元以用于处于支点的权限内的操作,所述权限涵盖所感兴趣的阵列的范围。
因此,图7中所展示类型的大规模并行表述连接性的优势是其排序和与例如典型地在图4的分段连接性中的计算单元420和42的数目和地址分布的对应性。
现将阐释分段连接性。
图2展示连接性510合并有递归连接性设备12,所述设备12包括分段连接性25和广播连接性26,并且互连标准数字计算引擎13和支点数字计算引擎14的计算单元。如前文所解释,每个支点数字计算引擎具有特殊处理单元和支点计算单元,并且特殊处理单元将数字编码的指令从管理连接性传输到其直接连接的相关联支点计算单元22,所述支点计算单元22中的每一个具有借助于通过分段连接性25和广播连接性26的通信控制标准计算单元分段(诸如图3中的群组34)的构件。作为成群集的子连接性,那个计算单元分段的目的是对驻留于那些计算单元中的可编程例程和数据元素的阵列执行操作。因此,标准计算单元连同一个支点计算单元一起构成维数和范围比分段连接性25的维数和范围低的至少一个附属阵列处理器(诸如34)。此外,广播连接性26准许从支点到其计算单元子连接性的任务广播,并且还准许递归连接性中的处理任务的同步,如将在适当时候描述。
如前文所指示,连接性体现大量多个双向信令互连,且递归连接性25通信网络的一个示例呈采用由nx2^(n-1)个这样的互连来互连的2^n个计算单元的规则n维二进制超立方体图形的形式。
图14展示这种类型的网络的简单四维示例,并且以粗体形式指示延伸穿过计算单元(诸如137)之间的互连的一个合适的递归曲线136。在本说明书中,我们使用‘g’来表示格雷编码的位格式,其遵循等效于但在编码的模式上不同于十进制整数和二进制编码的整数的序列的循环顺序编号系统。所有这些类型的编码都具有单调计数意义。格雷码编号系统是用于递归的分层嵌套结构的卓越的递归识别方案,并且已由Hillis(连接机)和Hamlin使用。可以看出,图14中的所述递归曲线开始于计算单元地址0000g,并且前进到0001g、0011g和0010g。在符号上,这些二进制模式被给予其熟悉指定‘00’、‘01’、‘03’、‘02’,但等效的十进制计数次序将是[0,1,2,3]。这个曲线从那里跨越以穿过群组139—0110g、0111g、0101g和0100g;十进制符号为:‘6’、‘7’、‘5’和‘4’,而等效的常规十进制计数次序当然将是[4,5,6,7]。众所周知的反射式格雷码编号系统沿着曲线以如下模式继续:1100g、1101g、1111g、1110g、1010g、1011g、1001g和1000g,这其中的最后一个具有等效的十进制值15与常规的二进制值1111b。二进制超立方体的完成链路图示为138。格雷码与二进制之间的变换可按简单的众所周知的位操纵程序来进行。此外,整数算术的基础操作也可在格雷码编号系统中进行(参考Lucal和Doran)。
图14的小(四维)二进制超立方体的计算单元还连同这个特定递归曲线(在本文中叫作‘H曲线’)的互连在图15中被展示为以平面形式分布。应注意,这个曲线在形式上与由Bader论述的空间填充H阶曲线(外加其他曲线)不同。所述图还展示完成这个小超立方体的其余互连中的一些(诸如140)。在本说明书中,H曲线具有与如将在适当时候阐释的矩阵的组织的特定相关性。作为值到矩阵操纵的操作的示例,参看图14,可以看出,存储于分段137和139中的阵列元素可在图15中的四个单信号链路140上在两个基元操作(例如,通过时钟循环的‘奇数’与‘偶数’半循环来同步)中互换—在本文中收作‘SWAP’操作。在这种形式的网络中还将观测到,用奇数奇偶校验地址定址的每个计算单元仅连接到具有偶数奇偶校验地址的计算单元,且反之亦然。穿过计算单元超立方体的递归曲线由存储于每个计算单元内的算法定义,所述算法确定沿着曲线从每个所述计算单元开始的两个相邻计算单元中的每一个的地址。通过改变算法的形式,计算单元选择不同组的路径来形成多种此类曲线。
此外,响应于共同传到阵列处理群集的指令,在子连接性中在一个半时钟循环上作用的每个单元具有用于按规定顺序次序选择其邻居中的每一个并向其发信号的构件。在超立方体网络中,所述次序典型地又追踪互连的每个维度,并且这可应用于例如操纵矩阵和对元素阵列进行排序。
图16中展示呈k进制n环面的形式的分段连接性25的另一示例。这里,k是沿着每个维度的计算单元的整数数目(在二进制超立方体的情况下,为‘2’),并且‘n’是维数。图16因此展示4进制3维立方体中的双向路径。这个特定示例用符号表示为(4,3)超立方体,其应理解为嵌入递归曲线(诸如早先在图3和图4中图示的那些)。在这个表示中,整数k被选择为二的幂,以便维持高阶递归曲线的嵌入,使得下一更高‘k’是8。优选地,这种拓扑通过使路线环绕边缘和角落计算单元来改善,所述路线中的一些在图16中由虚线图示,以便体现k进制n环面,对于它来说,所图示(4,3)立方体通过添加由141、142、143和144例示的所有此类环绕式路线而变为(4,3)环面。一般来说,(k,n)环面合并有由nxk^n个双向信号路线互连的k^n个计算单元。这些互连模式的数学形式已在本文中与图2有关的早先文本中给出。每个环面计算单元与2n个信号邻近邻居连接。在这当中,应了解,大的几何距离通常将会将这些信号邻近邻居中的一些(例如,通过信号路径中的一个143的计算单元145和146)分开,并且这被看作连接性在广泛地跨机器分布数据中的重要特征。另外的环绕式路线移除了立方体的边缘效应,并且提供了例如通过如典型地Hillis所推崇的切换构件使阵列的数据元素在一个计算单元分段中按‘桶桥’次序行进通过分段连接性以用于重新定位到替代计算单元分段的构件。
这种类型的抽象n维网络的实际实现的原则在目前先进技术内有良好理解。应理解,维数大于三的严格形成的笛卡尔n维网络(典型地,呈k进制n立方体的形式)是抽象的概念,但此类网格在实践中可容易地表示为用于在多层平面电路系统中实施的拉平网络,同时保留其信号通信拓扑。美国专利第4,598,400号(Hillis)尤其推崇15维的二进制超立方体(即,k=2);即,用符号表示为(2,15)环面。
依靠递归曲线的n维形式和分层定址,使连接性中的每个处理元件能够沿着嵌入在曲线中的一维串阵列与在二维阵列、三维阵列以及直到n维阵列等中一样容易地计算其自己的网络位置。通过此构件,给定数目的计算单元(诸如例如组成三维连接性的那些)的连接性模式中的每一个可通过使用单个的均匀单调地址序列等效地表示为二维序列、一维序列或实际上n维序列。这是本发明的重要特征,因为这个共同的n维连接性可用于分段式线性数据序列(如在排序操作中)、用于嵌套平面阵列(如用于矩阵操纵)、以及用于诸如多维数字微分分析的应用。此外,通过设定表示用户阵列的所选择维数p的‘维度参数’—‘p’,分布于沿着计算单元的递归曲线的分段的计算单元之中的单个数据序列因此可在线性序列的形式与等效p维块(如可适合于修改某些处理应用)的形式之间进行软件切换。
图3示出多维(4,3)Hilbert曲线的一个示例,并且图17展示呈格雷码形式的典型定址布置。在这种示例性情况下,递归Hilbert空间曲线通过三个维度的计算单元在最低地址000000g,147到最高地址148,100000g(针对64个计算单元)的方向上进行追踪。还展示各种代表性三维反射式格雷码地址,其代表计算单元沿着这个特定曲线的三个轴线的位置。格雷编码中的位的一个优选布置用符号展示为149,其中z轴离开页面,并且每个轴线的位的序列如图所展示,并且每个轴线的每个位序列本身是格雷码。因此,计算单元150的空间坐标和地址是(x,y,z)=(11g,01g,10g)=110110g,这通过自左至右串接坐标值而产生,并且那个方案可扩展到必要超立方体维数。
对于每个计算单元,沿着曲线存在整数计数,Butz将其叫作‘rho’。在“SpaceFilling Curves and Mathematical Programming”中,Butz借助于关于n维坐标的算法推导rho的n维值;即,在所述(4,3)示例中,为三。Lawder(在对他的文本的进行细微校正的情况下)提供逆向推导。相较于计算单元150的空间地址110110g,其rho在十进制中为‘32’、在二进制中为100000b并且在格雷码中为110000g。Butz算法产生一般(k,n)Hilbert曲线的一个版本,其可应用于数据搜索和数据排序。所述算法用于针对每个计算单元相对于其沿着曲线的两个信号邻近邻居的相对地址预先计算每个计算单元的格雷码‘rho’,以用于加载到递归连接性中的计算单元中的每一个中。由于其复杂性,所述算法可离线计算,以便可能地在制造时安装于计算单元存储器中。这种本质的更多曲线可同地样地存储于计算单元存储器中以用于在不同应用中进行选择和使用。
图18再现图4中的H曲线的形式。其表示从151进入、穿过地址000000g处的数字计算引擎152的(4,3)超环面,所述数字计算引擎152位于对于以下两个操作来说都方便的实际位置处:针对管理连接性内的网络中的所选择网络匹配地址,以及当连接性按比例扩大到具有更大数目的数字计算引擎的实施方案时使地址编号的缩放容易。所述曲线从具有沿着曲线的‘rho’地址100000g(即,111111b,或十进制的63)的计算单元154通过路线153退出到另外分段。在这个图示中,沿着曲线的一系列计算单元的‘rho’距离被框起来。对于这个示例,计算单元的空间地址被展示为具有根据轴线155排序的坐标,原点156坐落于计算单元152处,因此157的空间坐标地址(x,y,z)是(00g,10g,01g),具有‘rho’地址010001g(即,十进制的30)。
与Butz形式相比,H曲线‘rho’与空间笛卡尔坐标具有细微关系。其所得的穿过其m维结构范围的空间均匀性准许相当分段之间的直接平移等距,例如,这使矩阵关系左右对映。
递归H曲线针对图4中的三维情况进行图示,图4展示递归H曲线的比图3中的Hilbert曲线的实施方案简单的实施方案。H曲线可特定应用于并行矩阵操纵,如在本说明书中将在适当时候解释。在每种情况下,m维曲线都包含于正方体、立方体和超立方体中,并且可拉平成规则的二维笛卡尔模式,所述二维笛卡尔模式例如如图19所代表并且是集成电路中的数字计算引擎的布局所特有的。图19图示2度的八维H曲线(即,如包含于八维二进制超立方体中),其中‘度’是沿着超立方体和环面的每个边缘的CE的数目。图19因此同等地是四度的四维曲线(4,4)的图示。图19图示一个优选计算单元定址布置,其中计算单元158具有由这个分段在以下层级处的顶层两个二进制数字形成的地址:在159处,任意地展示为符号‘2’(即,10g);在160处的下一层级处,在那种情况下,由‘2’例示;在161处的下一层级处,由‘3’例示;在162处的下一层级处,由‘2’例示;以及在158处的最低层级处,由‘1’(未标记)例示。158处的计算单元的地址因此是符号序列**...*(2)2 3 2 1g,其等同于二进制数字的完全格雷码形式:**...*(1 0)1 0 1 1 1 0 0 1g,前导序列‘**...*’表示更大连接性的更高维度地址数字。
进入163所图示分段的曲线中是通过计算单元地址**...*(10)00000000,并且退出164是通过具有地址:**...*(10)10000000的计算单元165。为了清晰起见,除了曲线所需的信令路径之外的所有连接性信令路径都未展示于这个图中,但分段连接性的那些中的其余信令路径都符合前文给出的超环面信令路径的一般化算法表达。这些后面的路径的一些示例展示于图20中。在匹配分段(诸如图19的165和166)中的计算单元作为通过所述超环面信令路径的H曲线的相当形式相互通信。
图20展示在完全八维二进制超立方体—具有2^8个计算单元—中的后面的所述双向互连中的一些,其中所图示链路(诸如弯曲链路群组167)(包括168)意图暗示所有计算单元列的相同链路模式,并且弯曲链路群组169类似地暗示所有行的相同链路模式。借助于八个典型的列链路167,使上半部中的一块计算单元能够与下半部SWAP数据元素;借助于八个典型的行链路169,使右半部中的一块计算单元能够与左半部SWAP数据元素。使用由四个列链路170代表的列链路和由171代表的四个行链路,这种布置向下继续到计算单元的象限。这种分层操作通过链路172和173且最后在最低层级处通过单个链路(诸如174、175和176)重复。在H曲线的情况下,通过其他分段的曲线经由177进入并经由178退出。在所述分段内,曲线视其算法形式利用前述路径。
图21展示用于递归H曲线的算法。有利的是,沿着顶行179的n维坐标具有格雷编码,而非其等效的二进制整数,使得易于变换成180处的H坐标,如在算法变换181中图示。182处的示例性序列是(8,5)环面中的数字计算引擎地址的五维笛卡尔坐标值。相同的数字计算引擎具有在183处指示的‘rho’值,并且当拉平成二维笛卡尔平面时,同一数字计算引擎的(x,y)格雷坐标在184处。在这最后一个值中,需要前导零位185以组成x坐标。
因此,连接性具有选择诸如呈递归H曲线序列的形式的轨迹的构件,所述递归H曲线序列是符合关于图21描述的特性算法的n维递归曲线序列,其中曲线的节点的坐标与递归编码的地址(诸如格雷编码的地址)一致。
图19中展示的元素的符号编号被选择以提供使用格雷码序列的二进制超立方体中的计算单元阵列的变换分段之间的一致元素关系。所述编号关于图22进一步阐释,图22在二维矩阵之上列出嵌套的格雷码,并使这些与平面的x和y两个轴线的格雷编码有关。y轴例如应分层地自右至左来读,最右侧的位是最高有效位。因此,最顶行具有y值**(0)11111g;最低行具有y值**(0)01111g。如前所解释,左下单元186的组合格雷码地址然后是**(10)1011111111g,其中两轴格雷码交错,x轴前导位紧靠在y值前导位之前。针对象限层级的四个展示等效分层符号编号,其中最顶部象限是(任意地)使用常规十进制符号表示法的‘2’,与格雷码形式中的10g对应。构成完整所图示阵列的四个计算单元象限指定为右下的‘0’、右上的‘1’、左上的‘3’和左下的‘2’。即,单调格雷编号的序列:00g、01g、11g和10g。遵循这种模式最终到单独计算单元,例如单元187被指定为**(2)12013g=**(10)0110000111g,其中括号围住所图示分段(在这种情况下,任意的)的最顶部象限地址。
图23是分段连接性25的一部分的另一简化图示,其展示完整2^10个计算单元的超立方体的行与列互连188和189。在图中暗示地,互连链路各自以图20中所指示的方式连接到一对计算单元。这展示单个代表性计算单元行和类似地计算单元列,在这个视图中,假定计算单元190既在行中又在列中。还展示计算单元行的计算单元格雷码,并且相同模式适用于列计算单元。然后,计算单元190的空间地址将是**1110011100g,数字在x轴与y轴之间交错。对于H曲线,**0000000000g处的原点将方便地位于x=21且y=21(十进制)处。
在例如ICL DAP中实现分段连接性作为有四个路径通向每个计算单元的二维笛卡尔布置的更简单形式。作为对那个简单的布置和对本文中描述的更高维度形式的补充,另外路径可有利地连接于计算单元对之间,而不危及递归曲线信号路径。这些包括诸如由图24中的191图示的交联对角线连接的路径。这种类型的网络可应用于例如心动阵列和人工神经网络连接性。
分段连接性25因此具有从每个计算单元到信号邻近的但未必在地理上相邻的计算单元的一对多硬连线的直接互连,使得可切换地且共同地使计算单元群集能够同时将数据传输到地理上本地的和地理上远程的群组。通过这些构件并依靠递归曲线,递归连接性12包括大量多个定义明确的计算单元群集和分层子群集,所述群集中的每一个具有处于其自己的支点计算单元的控制下的固定数目的单元。连接性中的每个支点的地址是唯一地定义的,并且辨别其分段中的计算单元的数目和那个分段中的构成计算单元在连接性中的位置。这在表述串和阵列方面有意义,所述串和阵列可通过找到所具有的地址模式与将要由所述分段托管的预期数据结构的范围兼容的特殊处理单元并因此找到其相关联的支点计算单元而被分派处理资源。
以这种方式,诸如图4的431和39的分段定义规则计算单元群集,所述群集定义多个不同大小且自主操作的处理器阵列而对中央执行主处理器没有要求。每个这一的计算单元群集(包括其控制支点,如前文解释)可在其自己的预定义尺寸和大小的受抑制范围内在用户应用的持续时间内作为专用阵列处理器供用户访问。
相对于连接性中的计算单元的总数,每个计算单元具有小量多个输入和输出端口。在可预见的未来可实现的工程设计原则必然限制可针对大连接性实施的实际链路的总数,并且因此限制直接连接到每个计算单元的信号邻近通信邻居的数目。互连可通过任何优选数字介质(诸如光电的),但电接口连接是至少部分地始终需要的,并且因此在本说明书中,为了简单起见,假定通信为‘电的’。在通信操作中,每个计算单元中的每个消息传递微编码基元在单个传输中实现计算单元与其信号邻近邻居中的至少一个之间的数据通信,并且对矩阵进行的许多操作仅需要信号邻近邻居之间的连接,如将在适当时候描述。然而,在一个优选实施方案中,,每个计算单元还具有接口连接构件,所述接口连接构件使其能够识别、解译消息、然后将消息传递到更远的靶定计算单元,从而在所述过程中提供在靶定目的地的方向上通过网络的消息传输链。图25展示在计算单元192与193之间形成关系的图19的布置。它们的地址是‘**20322’和‘**23132’,即**(10)00111010g和**(10)11011110g,其中对于两个地址来说,所有前导数字是相同的。明显地,可在具有单个路径的两个计算单元之间进行直接通信,在这种情况下,可在单个时间迭代中传输消息。虽然一些计算单元对确实具有那种有特权路径,如前文所指出,但那个特权不能扩展到大连接性中的所有对。超立方体连接体现对这个问题的一个折衷解决方案,并且两个所图示计算单元之间针对那种情况的一组路径采取四个消息传递步骤,如图所展示。因此,当在非信号邻近邻居计算单元之间命令消息的传达时,任何中间计算单元(诸如194)依序对目标地址进行操作,使得消息被传递并最终到达靶定目的地计算单元。为此目的,关于调用者的格雷编码的目标地址在本质上是源与其目标计算单元之间的前缩式相对地址(而非全长绝对地址),其中位模式长度与途中需要的最差情况消息传输数目精确对应(如由Hillis认识到)。两个计算单元192与193之间的链中的链接是通过格雷编码的地址(在这种情况下,相对地址11100100g,现在忽略了所有前导零)的异或比较找到的。由于地址位在‘x’与‘y’轴之间交错(在二维情况下)并且更高有效位与更大分段范围对应,因此相对地址的第一位与在最高层级象限之间的‘x’路径195对应,第二位与也在最高层级象限之间的‘y’路径196对应。相对地址中的下一‘1’位再次在x方向上,但在第二层级象限之间,从而给出通信路径197;然后,忽略下一‘y’和‘x’层级,但在‘y’方向上需要第三层级象限通信198。最后,在‘x’和‘y’两个方向上忽略第四层级象限,因此,通信按需要在计算单元193处结束。相对地址中的每个位与通过子超立方体的一个维度的路径对应,消息将通过所述路径朝向其目的地被引导。当在途中跨分段分层传输消息时,仅跨在相对地址中的‘1’位处的维度传递消息;因为分段范围的计数贯穿相对地址向下递增,所以分段步骤在大小上变小,并且在相对地址具有‘0’的情况下,相对地址在无消息传输的情况下递减。因此,在每个中间计算单元中,相对地址在每个阶段处相应地缩短至少一个位。然而,通常有利的是还保留源的相对地址,使得可发生反向通信。然后,在沿着路线的每个中间计算单元处,这后一地址从零递增,并且因此在路线中的每个所述中间计算单元处,定址位的总数保持恒定处于所述计算单元对的相对地址的长度。
如早先所指示,至少一些成对计算单元可通过沿着分时数据总线的可切换连接来与其他对对数据传输路线进行分时。这有利于在大的分段连接性实现方式中使跨连接性的路径的数目最少化。虽然并发操作中的一些约束在那种情况下由于总线流量的分时而不可避免,但示例将表明:对连接性的许多重要的并发操作的应用的不利影响由于形成那些应用的组成操作的分层调度而得以降低。
图26图示总线连接布置的一个优选实施方案,其中每个总线(诸如199)已调度来自所选择的同等大小的计算单元群集(诸如200)的馈入。附图标号200括住具有按时间排序次序通过多路复用器201并通过线耦合器202到总线上的对总线的传输访问的八个计算单元(在这个示例中)的群集。如在本说明书中通常的,控制是由支点计算单元203进行,所述支点计算单元203除了其其他责任之外,还具有支持通过其链路204对多路复用器进行时间切换并充当总线控制器和访问调度器的构件。当处于对分段的控制中时,作为支点在其段内的正常功能,支点给布置在其自己的群集200中的多个计算单元派发任务,群集200作为大量相同大小的群集中的一个(诸如205),这些预选择的群集按时间排序顺序通过多路复用器201可切换地连接,所述多路复用器201又通过支点自己的专用总线199将时间调度的消息供应到所述大量相同大小的群集。每个多路复用器(诸如201)还具有支持作为多路分用器操作并接受来自其他类似支点控制的专用总线的时间调度的消息的类似模式的构件,但其自己的支点具有根据来自其更高范围的对向支点的指令在多路复用器的传输和接收模式下调度多路复用器的构件。
信号邻近计算单元之间的短距离布线不保证这种总线连接,并且可针对那些链路上的事务维持完全并发性。这些专用成对互连由分层路径群组206示意性地图示。因此,针对大连接性的较长信令链路选择总线连接操作模式,并且因此由于通过多路复用器的分时使那些互连的处理时间按系数八(在这个示例中)减少。然而,布线密度与处理时间之间的折衷对一些实施方案(诸如需要合并离开芯片和模块的信号链路的实施方案)来说有价值。
传输与接收总线连接群组对之间的关系与良好分离的单对信号邻近计算单元之间所存在的分层关系相同。这后一关系由跨水平行分层的专用路径代表,所述专用路径由从图23中的计算单元190发出的那些路径代表。如由支点管理的,电连接性在总线之上的布置遵循可看作概念块207中的链路分层的原理,其中弯曲线中的每一个(诸如208)现在表示八(在这个示例中)对计算单元的合并的(但时间调度的)消息路径,每个路径托管又沿着总线199共享的八个消息路径。这些合并的消息路径沿循由图23的188中图示的路径代表的相同分层路线。因此对于二进制超立方体的行,图26表明:维度#2、#4、#6和#8(通过举例)由计算单元对之间的直接路径(典型地206)满足,并且维度#10、#12、#14、#16和#18合并于共享消息流中。在许多类型的数据阵列操纵中,借助于由支点以这种方式进行的控制以分层方式对总线共享序列进行排序存在优势,并且支点然后以规则分层次序通过信令208可切换地控制诸如205的块,并且以时间排序的方式共享总线。
每个多路复用器(诸如201和208)因此具有将来自其自己的计算单元群集的信号多路复用到其专用总线上的构件,并且还具有接收并多路分用来自多个其他总线(诸如209)的信号的构件。每个计算单元群集(诸如205)因此像群集200一样也具有其自己的多路复用器210和专用总线211以用于传输其消息,并且还具有多路分用,所述多路分用接收来自200的八个消息的适当序列,但在这种情况下,它具有来自多个总线的相似多个输入(在这种情况下,一个总线是199)。
然后,分时数据总线电路系统替换分段连接性的若干所述信令路径,所述电路系统适于按顺序次序将来自计算单元群组的一系列数字代码路由通过数据总线,所述数字代码被可切换地排序以用于传输到另一群组中的相应单元,并且数据总线电路系统尤其负责前述单调定序的信令链中的相应路径。
来自通向每个所述群组的总线连接的消息遵循与刚描述相同的分层次序,因此在任一时刻,仅来自一个总线的一个链路作用到多路分用器中。多路分用器因此按次序从每个总线传递所接收消息,在这个示例中,一行将存在五个总线,诸如在群组的支点203的控制下的那些概念性展示的馈入群集200。类似数目的总线从相关联的计算单元列进入。在适当时候通过示例来描述使这种类型的消息共享在大规模计算中切实可行的分层软件过程。
图2的数字计算引擎和其连接在图27中更详细地考虑,图27展示九个数字计算引擎820和722的群组,并且数字计算引擎820和722在其内包括接口电路212作为组件,接口电路212在分段连接性25内通过双向信号链路213(在这种情况下,其通向地理上邻近的信号邻近邻居)相互互连。每个数字计算引擎还在分段连接性25内具有至少另一多个信号链路,如由块箭头(诸如214)表示,信号链路不同地引导到其他本地的和在地理上更远的数字计算引擎。
数字计算引擎具有从接口电路527和828到广播连接性26中以及从接口电路215到终端连接性24和从接口电路216到表述连接性23中的其他通信链路。在一些情况中,链路被引导穿过中间切换节点(未展示),例如,在表述连接性和广播连接性的布置中,但其他链路是计算单元对之间的点对点专用链路,如典型地在分段连接性中。已在前文描述由连接性23到26提供的互连的示例的更详细说明。
在图27中,示意性地展示数字计算引擎820和722,它们各自具有:至少四个联网接口电路212,所述至少四个中的每一个在来自其数字计算引擎的基本方向上通信;以及至少一个中央处理单元217,其具有算术和逻辑处理单元、具有诸如直接存储器存取的存储器管理的本地存储器、以及到大量时钟脉冲串的通路。应理解,820和722的所述中央处理单元和其接口可实现为在目前先进技术中常见的计算机。然后,每个接口电路212具有多个串行双向信令端口,其具有用于使计算单元对之间、处理单元对之间以及与用户端口的消息传递操作相互关连并且用于对这些操作进出CPU进行时间调度(如目前先进技术中常见的)的构件。为此目的,端口包括电子线驱动器以及相关联的信号和数据流写入和读取电路,一些电路被配置为串行数字通信路径,并且一些电路被配置为分时数据总线。此外,在接口212内的每个接口连接端口都具有至少本地存储构件,以用于缓冲传入和传出信号,使得其相关联的CPU按需要被启用以加载和访问所述本地存储装置中的信号消息。每个数字计算引擎具有地址操纵电路,其结合接口212中的数字计算引擎端口并通过连接性23到26中的任一个将信号引导到地址可选择的其他数字计算引擎。
所述分段连接性提供从每个所述计算单元到其信号邻近邻居中的可切换地可连接的邻居的直接一对一通信。应理解,这个邻居定址操作与用于CPU内的程序和数据操纵的存储器位置的常规访问截然不同。
数字计算引擎的地址有利地实施于分段连接性25中,使得奇数定址的数字计算引擎仅连接到偶数定址的邻居,且反之亦然。对数字计算引擎在它们自己之中的操作有价值的是:由对主时钟循环的两个相位作出响应的切换构件补充这种定址和连接布置。如前文所解释,这将通信明确地定界在所有数字计算引擎对之间。
然后,计算单元之间的分段连接性25的网络可操作以在用户程序需要阵列处理时,根据某些指令可切换地操纵驻留于匹配计算单元分段中的各种大小的数据阵列。在一个优选实施方案中,所述指令第一在特殊处理单元中解译,第二在其相关联支点计算单元中解译,并且然后,可能地第三在处于所述相关联支点的控制下的附属支点和计算单元中解译。每个支点与其计算单元借助于广播连接性26内的广播和同步网络进行通信,广播连接性26可切换地被启用以并发地将信号从支点传递到其自己的分段中的所有计算单元。信号典型地是表示基元阵列操作(诸如数据元素对之间的比较、计算单元之间的数据交换、以及适合于例如矩阵算术的算术操作)的代码和数据。连接性26还准许将同步消息从支点的计算单元分段返回到支点,以用于由那个分段进行的处理序列中的每个步骤。这确保在支点跨其分段命令另一阵列操作之前将结果的适当完成登记在支点中。然而,对来自支点的基元阵列命令的响应本身跨阵列处理分段连接性25在相关联分段中的对阵列处理操作作出贡献的那些计算单元之间发生。如已描述,分段连接性25具有尤其适合于那个所需求响应的互连。
因此,(图2的)递归连接性12具有第二互连广播连接性26,其具有在支点计算单元处的接口连接元件28和在标准计算单元处的接口连接元件27,所述接口连接元件一起具有用于将所述数据流从每个支点分布到其计算单元分段以及用于从那些计算单元收集宣布由所述分段中的每个单独计算单元进行的阵列处理操作的完成的信号的构件。支点计算单元具有收集所述告示信号的构件,所述告示信号一起充当用于由支点命令的每个阵列操作的完成信号。根据由表述连接性23传递到所述支点的指令,所述支点可操作以通过广播连接性26传输将由包括支点本身的所述分段的计算单元中的所述每一个解译的阵列处理函数参考,并在所述计算单元中的每一个中发起所参考函数。如前文解释,分段连接性25还具有可供每个计算单元实现与多个信号邻近邻居的通信的对应多个路径。然后,分段连接性25同时实现许多对计算单元之间的数据互换。例如,在处于操作中的阵列处理分段内,在接收单个‘交换’指令的代码时,使得处于它们的共同支点的控制下的驻留于两个同等大小的计算单元分段中的两个数据矩阵能够互换数据元素,如以上早先针对‘SWAP’操作所描述。一旦两个分段中的所有计算单元对已交换值并设定其告示旗标(包括两个支点本身的完成),每个支点就登记操作(在这种特定情况下,是‘SWAP’)的完成。因此,通信广播连接性26具有用于来自支点的同时广播消息以及将多个返回告示信号往回路由到支点的构件,并且在一个优选实施方案中,具有分层互连树的形式,如不久将描述。
通过这些构件,软件译码的信号从用户输入端传递,通过应用选择的路线在管理连接性处理单元之间传递,并且在用户软件需要时,传递到至少一个支点计算单元,然后,在阵列处理计算单元相互之间借助于其与递归连接性25的信号切换路线的接口传递。分段连接性的所选择分段的操作典型地是根据来自用户软件程序的指令进行,所述用户软件程序由管理连接性接收、解译和分布。为了在阵列处理操作中使用,所述软件编码的信号可具有表达为指令码的函数参考和操作数,当由支点接收和解译时,所述指令码触发在其相关联分段内的对应计算单元定址和功能逻辑。然后,所述分段的计算单元在操作中由其自己的微码启用以在处理所存储代码和数据的阵列中至少部分地并发执行对应所存储例程。
在连接性的实施方案中将期望的是在数字计算引擎之间实现完全的多对多连接性,以便给用户程序员提供选择数字计算引擎之间的互连的完全自由。然而,在并发计算领域中认识到,这种连接性的自由在大连接性中因连接性(诸如25)中的数字计算引擎之间(不管例如在电、光还是无线电路径的情况下)、特别是在跨连接性在地理上广泛分离的那些数字计算引擎对之间的电接口连接的机械限制而受到极大约束。因此,在现有技术的情况下,折中不可避免,即使当计算时间极其重要时也是如此,并且本发明提供用于各种互连拓扑的构件,如已描述,所述构件被建构成相互补充以便密切实际地近似于对多个接收和驻留的应用的完全并发计算操作。在本说明书中,通过以下之间的折中认识到这一点:一方面,适应跨决策树型连接性的信令的主要地逻辑的管理连接性处理,和另一方面,主要地以笛卡尔互连模式分布和计算笛卡尔数据结构的递归连接性连接性。通过共享各种互连拓扑的资源,所述折中实现同时驻留于连接性中且包括共同使用的逻辑和数学结构的多个用户应用的并发操作。
因此,数据处理连接性510在递归连接性12内包括具有大量多个切换式信号传输路径的通信分段连接性25,每个路线适于至少一个对应计算单元对之间的双向通信,所述计算单元用于使用每个计算单元中的一对传输与接收端口进行数据通信。
计算单元对中的至少一些具有专用的一对一实际信令路线,并且应理解,通信路线的实施方案可在数据输送期间合并有如适合于数据传输范围、装备封装和分布的一系列串行和并行接口、传输物理学和消息格式中的任一者,包括有线构件、光学构件(诸如光纤和纤维通道)和无线电传输(诸如蜂窝式网络路径)。
许多数据传输标准中的任一标准可用于信号沿着所述信令路线的明确电传输,诸如Manchester双相编码,以及更复杂的标准(诸如多线、数据并行和USB(通用串行总线)),并且许多此类实现方式在目前先进技术中是常见的。
因此,在递归连接性内的串行数据传输的一个优选形式可在单个链路上体现Manchester双相编码,这有利地节省了硬件组件之间的布缆。约零上下的传输线电压摆动是自我时控的,并且具有用来对消息中的数据字定界的返回到零状态。在主传输计算单元内的接口电路和选择电路具有在目前先进技术中常见的选择如应用的即刻需求所需要的传输信号长度的构件,并且被使得能够组编每条消息的地址字段和数据字段。
早先已关于图26解释在多分头数据总线中体现的用于用紧凑的分时信令路线替换此类实际连接束的构件。
在分段连接性25的情况下,每个计算单元820和722因此是可切换地可连接的,以用于经由大量直接连接的和总线连接的路径到跨多个图形维度直接链接的相似大量信号邻近邻居计算单元的数据通信。
现在将阐释由支点对计算单元进行的详细控制。
广播连接性26具有数据传输构件,所述数据传输构件用于与分段连接性25中的所有计算单元接口连接并对其进行定址,并用于切换所述数据传输通过路线,所述路线实现信号消息(在本文中叫作‘广播’)的调度、传输、接收和同步,所述信号消息典型地包括地址参考、函数参考和操作数数据,如在数据处理和通信系统中常见的。每个计算单元(包括支点计算单元)由与每个所述地址参考有关的唯一格雷码地址识别。在广播连接性26的第一操作模式中,支点典型地将广播指令传输到连接性中、通过可切换选择路线传输到由所述支点22控制的计算单元群集中的每个计算单元。在第二操作模式中,所述分段的每个计算单元将对应信号返回到所述支点,从而告示从所述支点接收的所命令指令的完成。由于不同大小的大量阵列中的每一个的数据元素可加载到单个计算单元中并由其进行处理,因此每个支点计算单元唯一地控制仅一个计算单元分段,而不控制其他分段。广播连接性26的优选实施方案合并有支点分层,所述支点一起控制与其控制支点匹配的整体范围的一组嵌套的象限分段。
每个支点计算单元,依靠其在连接性内的唯一递归定址,定义用户的程序可在其上通过那个支点进行访问的阵列元素分段的位置,并且地址本身(依靠其格雷码模式)还规定将要如此控制的计算单元群集的范围。群集的可选择大小和群集计算单元在分段连接性25中的可访问地理位置是硬件属性,在建构连接性的实施方案时就已固定。当由用户的任务发起时,每个支点计算单元具有组织本地命令和对其范围内的计算单元硬件群集的控制的构件,如将在广播连接性26的描述中阐释。用户程序内与阵列的输入有关的参数表述将要通过引用将用作范围的量度的地址的最低有效端位模式来处理的群集的范围。因此,地址模式的下端仅规定期望群集的大小而不规定其绝对位置。管理连接性在整个其终端连接性和表述连接性中的作用是从实际可能且可用的选项确定新请求的阵列空间的位置。阵列空间借助于以下特殊处理单元而被标识为自由的:所述特殊处理单元与阵列空间的支点计算单元相关联,并且终端连接性24具有识别所述特殊处理单元并从期望权限的可用自由处理单元获取所述特殊处理单元的构件,如已描述。终端连接性24的切换构件响应于一端处的用户需求和另一端处的自由处理单元而使得连接性能够根据大量主要地独立的用户的需求来规定并同时处理大数目的各种大小的阵列。
图28在广播连接性26的一个优选实施方案中示意性地展示与一个典型计算单元218相关联的一组典型数据阵列,其中计算单元218对布局为抽象数据平面分层的三个不同大小的用户阵列内的三个不同的阵列数据元素具有响应性。用于规则数据阵列的计算单元的分段和子分段因此限于象限分层(诸如219、220和221),如在图中图示。以这种方式,递归连接性的组件可不时地由不同大小的阵列共享,但应注意,较低范围的支点在其支点作用中可另外由第二用户程序主动地拥有(持续一定持续时间)。在这种情况下,可能需要计算单元218进行截然不同阵列大小的两个或更多个单独拥有的阵列处理操作,所述计算单元按其多个支点计算单元的命令与分时规则一致地作出响应。阵列响应性的这种分解早先已关于图5简要地介绍。
至少大多数计算单元(诸如218)具有存储和操纵对应于其在多个不同大小的数据阵列(诸如由图28中的219、220和221概念性地图示的那些)内的设定位置的相似多个独立的数据值的任务共享构件。因此,每个计算单元作为一个元件驻留于每个大小的分段范围中。因此,每个计算单元是分层段布置的共同部件,使得每个大阵列219与下一更低分层层级处的四个对称象限(诸如220)具有精确计算单元关系。应注意,数据平面中的所述四个象限中的每一个在使用中可表示来自彼此和来自更大阵列219中的数据元素的不同数据元素阵列。所展示更低层级处的数据阵列(诸如221和222)之间存在相同的分离关系。计算单元218因此图示于所有层级中,因为其逻辑组织使得能够在同一计算单元内应用不同的抽象操作数据平面。实际上,每个计算单元(包括每个支点计算单元)具有在数字处理领域中众所周知的用于通过任务共享进行多任务派发的构件。典型地,每个这样的任务包括基元和数据值,并且命令支点(诸如223)通过(图2的)广播连接性26将此传递到其计算单元分段(诸如218),所述分段托管许多相关联数据阵列中的一个。
支点计算单元被选择为不具有与不同范围的任一支点共同的最低有效地址位模式。然后,递归曲线的形式抑制两个支点跨连接性共同定位在任一点处。然而,有益的是,最低有效地址位模式应被选择为对于具有相同范围(即,在图28的同一概念数据阵列平面内)的所有支点相同,以便确保对期望分段范围的搜索的可预测性。支点223、224和225的说明性位置是合适的示例。
保证每个支点的地址分配的唯一性的一种优选方式是注意四叉树中对向由支点参考的阵列块的本地分层层级。然后,选择具有以下地址的支点数字计算引擎:‘***g g~gg...g~g’,其中‘~g’是‘g’的二进制反码,并且‘g’是对象所选择支点所负责的完整CE阵列的最顶部四叉树节点的地址代码。因此,g=2(二进制10)与1(01)交替,而g=3(11)与0(00)交替,且反之亦然。唯一性的证明遵循:-
理论:
令n数字整数地址In(j):an an-1...aj..a1 a0,具有底4
其中n、j为整数,且j:1至n-1。
以~aj表示数字aj的二进制补数,
当根据以下规则设定数字aj aj-1..a1 a0时,支点整数地址In(j)关于j是唯一的:
aj aj~aj aj...~aj aj
证明:
初步观察:
i)在所述规则下,整数In(j)相对于j=d(比方说)的前导数字an至aj+1未被指定,并且与在所述规则下类似地定义的整数In(j<d)相比,不影响这个支点地址的唯一性。
ii)位置aj处的数字在数字aj-1处复制。后续数字在~aj与aj之间交替,直到最低有效数字a0
整数编码的顺序数字aj和aj-1始终具有相同的数字值,而根据所述规则,低于aj的其他顺序支点地址数字对都不具有这种关系。
因此,对于最低有效数字a1和a0,整数In(j=1)具有序列a1和a1,所以无支点地址In(j>1)可等于In(j=1),因为在所述规则下,后一整数的等效的最后两个数字必须包括一个数字和其补数。
类似地,对于数字a2和a1,In(j=2)具有序列a2和a2,其中~a2针对a0。因此,它不同于在所述规则下对于a2和a1必须具有交替数字的In(j>2)。
通过外推,对于数字ad和ad-1具有数字值ad和ad且此后是交替补数的In(j=d)不同于:
所有整数In(j>d)和In(j<d)两者。#
所述理论的动机是将阵列支点定位在相对于彼此分布且明确的计算单元处的需求,每个计算单元在数字上反映其所负责的阵列的大小和位置;即,通过使阵列的大小与地址中的数字位置(j)匹配。此外,在选择和获取每个唯一位置地址时,统一有利的是,选择规则跨连接性是一致的并且避免了复杂性。
然后,如前文所指示,这种定址形式可用以按其范围标识和调用未被采用的支点,所述范围可由位位置‘j’明确地标识,并且地址位置可由具有尾随交替位串的aj和aj-1标识。
支点223的实现方式包括对固定数据元素阵列的卓越权限等级,并且每个任务发起所述阵列的每个所述计算单元内的微编码基元(诸如与另一计算单元通信种的数据交换)。每个这样的软件分离的任务具有一组相关联的数字数据标签,所述数字数据标签是由支点规定的所述每个加标签的任务所特有的,并且因此由所述每个加标签的任务明确地发起。在对支点自己的分段的典型操作中,支点将共同的加标签的任务传输到其分段中的计算单元中的每一个(包括支点本身)。如果更高权限的支点要求的话,这种任务可与更大分段相关联。对于任何所要求的共同任务,被分配那项共同任务的所有计算单元必须在其控制支点可分布新任务之前以‘完成’信号来响应支点。用于确保支点分层对计算单元的明确获取的一个优选实施方案是借助于广播连接性26内的支点通信树,如不久将描述。
特定计算单元中的每个所述所传输的共同任务涉及单个本地化代码结构的操纵,诸如计算单元针对一系列这样的任务中的给到计算单元的每个任务存储和操纵的一个阵列数据元素。如此由所述共同任务占据的分段中的每个计算单元820和722(诸如218)响应于其支点(在这种示例性情况下,225)而按所命令次序执行数据阵列的特定范围共同的每个任务。计算单元已针对其被给予响应性的若干数据阵列元素属于对应的阵列范围。此外,比方说,支点223中的某一这样的任务可涉及例如220的其较低层级象限的操纵。在那种情况下,在一个优选实施方案中,支点223具有在路径220上将用于任务的指令传递到支点218的构件,所述支点具有又在路径226上将指令重新传输到支点224的构件,在支点224处,指令被存储以用于在支点224的命令下随后广播到所述分段以用于计算。依靠每个单独计算单元内的多任务派发组织,最高处下方的每个支点因此具有不时地命令在其自己的权限下的计算单元处理与更高范围的支点的需求对应的特定命令信号的构件。控制在更低范围处(即,在更小大小的象限处)的数据元素的支点计算单元具有对这种命令信号作出响应并因此通过将命令传递到又更低范围的支点而对更大阵列的操纵作出贡献的构件。最终,来自所需求高层级任务的具有范围编码的原始指令向下流到对其自己的计算单元分段具有直接控制的最低可访问支点,其中的每个计算单元在适当的分时期间用最高的任务分派支点的命令所需求的处理操作来响应。每个计算单元根据范围代码存储这个计算的结果,使得来自相同更高层级支点的后续指令可继续,而不破坏那个任务计算。这最后一个特征的用途的示例是借助于通过多个用户输入端口对相似多个更小的子阵列的并发加载对大数据元素阵列的加载。
每个计算单元借由通过广播连接性26的较低部分将完成信号传输到那个分段的最低拥有支点(诸如225)来报告其自己的操作的所述共同任务派发的完成。由那个支点对所有此类信号的收集提供在其权限等级下的共同任务的同步,并且由于所述最低拥有支点在开始可针对不同任务的下一指令之前必须看到每个所需求指令的完成,因此在将结果分派到正确任务时不存在含糊不清。如果已从较高范围的支点委托任务,那么所述最低拥有支点具有将具有层级指定符的类似完成信号传输到其下一较高支点(例如,图28中的路径227上的224)的构件。接着,那后一支点因此预期其其他象限支点(如果类似地派发任务的话)的完成,之后将相似信号向上传递到其上级支点(如果相关的话)等等。仅当发起较高层级支点接收到所有完成信号时,对于那个总体复合用户应用来说,所述发起支点才可再次将后续指令向下传输到在其总体自己的完全权限内的其象限支点和计算单元。通过此构件,相似大小的大量多个独立组织的数据阵列可由多个用户跨呈并发的分层布置的共享资源分布和激活而无逻辑冲突,这不同于借助于由于在所采用计算单元内的多任务派发造成的时间延迟的、分时的操作。
广播和同步广播连接性26,结合连接到所述连接性的每个支点的唯一权限,具有将广播信号从在其所实施范围内的发起支点路由到在那个定义范围内的本地计算单元群集中的每一个的构件。每个支点具有用于将范围代码附接到其广播信号的构件,并且因此被使得能够确保在分段中的每个计算单元内关于将在给定时刻操纵所述大量阵列中的哪一阵列元素可不引起含糊不清。
数据阵列跨分段连接性的直接传送(无介入操作)是支点的响应性通常将其限制于在其自己的分段分层内的操作的规则的例外。因此除了消息内的范围代码之外,参与跨分段连接性的一系列此类块传送的每个支点还具有由于这种类型的数据操纵的重要性而将优先级代码附接到其命令的构件。在途中接收此优选级代码的中间支点计算单元然后在其调度中分配有序位置,所述有序位置可超驰并延迟对其分段的计算单元的较高范围需求。然而,通常将预期这种形式的操作是对更高范围的计算任务的天然贡献,并且然后将不干扰那项任务的逻辑进展。
图29示意性地图示广播连接性26的一个优选广播和同步实施方案的第一部分。为了解释的目的,图29只展示小的示例性计算单元电路分段,其中26的广播和同步电路228通过接口627和928在七个计算单元920与一个相关联的支点计算单元1022之间相互通信。多个这样的连接性电路具有通过可选择多个支点一起适于响应来自对应可选择多个管理连接性特殊处理单元21的分层实例化信号和命令信号的构件。通过此构件,可将一系列命令传输到能可切换地选择的计算单元分段,以用于在各种范围的分段处实现阵列处理操作,所述分段可不时地在递归连接性12内存储和处理一系列用户阵列。
在实施方案的这个所述第一部分中,二进制树包括互连节点(诸如230)的第一组路由路径(诸如229),和互连各自包括与门的节点(诸如232)的第二组路由路径(诸如231)。所述树在树的计算单元叶处具有与接口627和928的连接,并且支点接口928另外连接到树的根节点233,由此使得能够将串行通信从支点1022直接发送到顶部节点,并由此广播到对其分段中的其余计算单元920。所述多组路由路径中的一组因此被配置成通过路径234和节点230(具有同时双向(在这个二进制树示例中)分布消息的唯一目的)将共同消息从支点向下朝向计算单元920广播。节点230中的一些可包括信号放大器。
所述多组路线中的第二组(包括231和232)被配置成在每个与门处接收由分段中的对应计算单元设定(未必同时设定)的‘完成旗标’。与节点因此提供组合部分收集的同步化信号并借助于所述根节点233将其传输到支点928的构件。
当除了支点外的所有计算单元已完成广播消息所需求的操作时,两个顶层聚集完成旗标设定与门235,由此向支点计算单元指示已完全对那条消息起作用,使得所述消息的主题也同样由支点自己的计算满足。在接收到新的广播指令时,计算单元重置其完成旗标。
图29中的树专用于一个所展示计算单元分段的信令和控制,但它是贯穿整个广播连接性26具有相同范围的分段和支点所特有的。每个这样的树和其对应分段具有匹配其相关联的支点计算单元和特殊处理单元的权限的范围,如本文先前所解释,并且在当前描述的实施方案中,具有阵列处理分段的最小用户可访问范围。取决于连接性的总体范围,那个范围可方便地为比方,2^10个计算单元。
图30图示广播连接性26的所述一个优选广播和同步实施方案的第二部分的原理,并且展示图29的形式228的群集528的更大群组,这种情况下的最顶部控制支点被图示为这种情况下的计算单元236,并且这与图28的支点223对应。仅仅为了方便绘图而将图30的群集528倒过来展示。
虚线连接器(诸如237)意图展示支点822是所图示群集528中的所指定位置处的对应支点计算单元。具有相同范围(即,在支点分层中的相同支点层级)的支点具有在群集中的相同相对位置;具有不同范围的那些支点具有不同相对位置。因此,所展示三个层级中的较高层级处于计算单元238处,下一较低层级处于计算单元239处,并且最低层级处于计算单元240处。图示展示在较高层级支点的控制下的四个对向支点,但根据理想地使之可供用户使用的一组可访问阵列大小,这个数目可扩展到例如16。路径(诸如241)与图28的路径226和路径227对应。每个计算单元具有存储大量阵列元素的计算构件,每个将要处理的数据阵列有一个阵列元素,并且每个范围的阵列元素根据为了那个目的而将其分配到的分段的范围拥有数字标识符。
图31以块示意性形式展示处于其分层控制作用的较高层级支点数字计算引擎14的支点计算单元部分的示例性实施方案。链路242的群组是与分段连接性25相关联的链路,且关于这个图解不作进一步考虑。存在来自上方的下一上级支点的一个链路群组,其首先包括通向所图示支点中的获取和命令链路。每个支点计算单元具有计算构件243(也被称为处理器243)和将命令传递到在其范围内的最低层级处的计算单元的象限接口244。所图示支点计算单元通过将所述命令复制其向下接口上来分布所述命令,其向下接口通过路径245朝向其对向支点(诸如239),这里展示其向下接口中的四个:针对仅四个对向象限的‘北’、‘南’、‘东’和‘西’。针对下行端口中的每一个,246内的北路径链路在路径247中复制。
在广播连接性26的所述一个优选广播和同步实施方案中,用于处理对支点的多个需求的规则参考图32来解释。双框表示支点计算单元分层内的数据和软件例程。我们将假定最顶部支点248是在层级‘3.1’处,尽管它上方可能有在这个示例性布置中并不起作用的更高范围的支点。根据用户应用,支点针对对由其对向大计算单元分段托管的大阵列‘A’的操作提出一个要求(一次)。如果它们当前未参与其自己的分段上的其自己的单操作要求,那么其附属支点(包括249和250)接收这个需求并将其向下朝向层级‘0’传播,其中支点各负责可由用户直接访问的最小分段628。当所述一个需求的完成告示信号已最终向上通过支点分层返往回前进到支点‘3.1’时,最顶部支点可再次向下发送其下一请求。同时,在调度规则下,‘2.1’处的支点249被准许发起其自己对阵列‘B’的阵列操作,并且同样地,将其对单个操作的需求传递下去。支点249将由248请求的操作保持搁置,但(在这个示例中)‘2.2’250向下继续‘A’请求。然而,‘1.3’引入第三阵列‘C’,但我们应假定那在对‘A’的请求到达之前尚未发生。将‘C’保持搁置直到满足‘A’,随之‘1.3’将得到其自己对命令‘C’的机会。以相同方式,‘1.1’和‘1.2’针对‘B’获取最低层级,除了‘0.2’本身可以阵列‘D1’对其自己的最低层级分段作出先前索取。
在所述一个优选广播和同步实施方案中,那么支点分层操作的最低调度规则(规则3)是:“除非规则2已在操作中,否则支点可发起一个操作,并且在满足上级命令之前等待那个操作的完成”。因此,如果当前描述的状态如所展示是正在执行‘D2’操作的状态,那么在‘1.3’可完成其对‘A’的部分响应性、然后开始其自己的与阵列‘C’有关的需求之前,‘0.4’必须具有来自其分段的阵列‘D2’操作的完成的告示。类似地,在‘2.1’可继续进行‘A’之前,必须完成第一‘D1’,接着是‘B’(已开始)。
为了防止这过程中的不稳定性,支点规则2变为:“除非规则1已在操作中,否则支点可紧跟在其下级支点的单个当前操作完成之后立即获取所述下级支点,并发起其自己的操作”。为此目的,支点上方的任何上级的进行中的命令由准备好用于在那个支点可发起另一操作之前抑制那个支点的下级支点登记和保留。那么,规则1是:“一旦支点自己的单个当前命令完成,那么支点代表较高层级上级命令(如果有的话)保持对下级支点的获取,并且在操作中,代表那个更高命令获取本身,直到释放”。这确保较高层级相对于较低层级已针对对计算单元的获取优先排序,并且一旦较低层级已完成每个其自己的单个操作,最高作用支点就具有对其分段的完全控制,已表述的不需要的子分段除外,这些分段然后自由地用于由其自己的支点使用。
一个优势是,在20个操作(比方说)之后,较高层级支点临时地撤回控制,以便共享在较低层级处进行处理—在短暂间隔之后重新获得控制并继续其操作—的机会。
返回到图31,当从上方通过251通过获取和命令消息来命令时,支点保留获取状态,并且将消息存储在252中以用于随后读取。上级支点将链路253上的获取信号锁存为高,并且这关于支点处理器243通过链路254确认的需求对支点处理器243进行警告。当准备好时,计算单元处理器243通过读取所存储消息(这由链路255触发)来发起所需求操作的动作。
243根据规则2和规则1不同地操作。在规则2下,根据用户的应用,支点922的处理器243发起意图由与所述支点相关联的象限所对向的计算单元执行的阵列处理操作。向下到附属支点(诸如图30中的239)(除了最低范围的支点外)的每个路径(诸如246)具有至少用于消息的获取链路256和命令链路257。当将要执行阵列操作时,锁存器258被设定为高以用于获取下一较低支点,并且当下一较低范围支点准备好且已在其自己的254链路上返回确认信号时,预期最终由243在确认链路259上返回确认信号。
243将意图用于其子段的操作消息存储在其象限接口244中,并且257将消息流式传输到下一较低支点的存储区252。243然后等待通过260完成同步信号,所述信号最终在所有对向路径上以相同方式登记于接口244中。243登记当前操作的完成,并且在规则2下发起下一操作,除非在规则1下由其上级支点超驰。
在最低可访问范围的支点的情况下,图33展示处理器643与广播连接性26通过接口连接电路261通信,所述接口连接电路261通过命令消息链路634从处理器643向外,并且通过同步链路262从图29的节点627进入处理器。
在规则2下,已完成其当前操作的支点询问其获取链路627,并找到来自其上级支点的先前需求,接受命令消息,并将那个消息向下传递到其附属支点,如同它是其自己的消息而非其最终必须针对此当前命令将完成消息向上传递穿过同步链路260的记录。243不再执行另外的支点操作,直到那个操作完成,但它将继续通过链路242进行与分段连接性25相关联的操作,如其连接229和231(图29)所需求。规则2类似地适用于最低范围的支点(图33),只是它与其分段通过广播连接性26直接接口连接。
因此,连接性具有广播连接性,其中沿着递归空间曲线的每个支点具有通过所述广播连接性到沿着空间曲线的对应地规定的分段驻留的数字计算引擎的可切换连接,在用于将由所述对应地规定的分段内的数字计算引擎中的至少一些中的每一个执行的事务的处理指令中,支点尤其是其控制支点。操作中的每个支点并发地被使得能够将共同的指令分布到规定分段内的所述数字计算引擎中的每一个,并且对应分段内的每个数字计算引擎具有向所述控制支点告示所述事务的完成的通向广播连接性中的信令构件。每个支点还具有保持所存储参数的构件,所述参数定义其相关联的所述对应地规定的分段的范围,并且所述范围一起根据空间曲线的递归形式形成有序分层。此外,连接性具有控制所具有的范围涵盖下级分段的范围的上级分段的支点,并且具有可操作以抑制某些低范围的支点对其自己的相关联下级分段的访问且尤其控制下级分段中的数字计算引擎的构件。
因此,支点具有在其间互连的根据支点的分层嵌套的范围分层排序的电路网络;并且根据分段的所述链的分层嵌套的布置和支点范围,若干支点具有由此可切换地选择并以编程方式编码下级范围的支点的构件。另外,控制上级分段(所具有的范围大于且涵盖具有相关联的较小范围的支点的下属分段)的较高支点具有任意构件,其可操作以抑制由后一支点对其自己的所述下级分段的访问且尤其控制下级分段中的单元。
用于各种维度的用户阵列的分布构件(在其逻辑切换的第一阶段的实施方案中)在操作中包括对自由特殊处理单元21的搜索,当处于自由状态时,所述自由特殊处理单元21对应于同样自由且可用于由新用户程序访问的计算单元本身的规则分段。如刚解释,此分段作为由较高范围的支点控制的较大分段的部分,可已具有响应性,但每个计算单元内的任务共享构件解决不同范围任务之间的逻辑隔离。端口517具有搜索和选择构件,其发起从用户终端16接收的应用到连接性的输入,并且引导路由通过终端连接性24中的随附互连,如上所述,并且这提供由用户对适当的所述自由特殊处理单元21(如果有实际上当前自由的特殊处理单元的话)的获取和访问。在其位置中与所述所选择的且索取的特殊处理单元协调的支点计算单元在一个操作模式中本身也可通过形成同一用户的应用程序的部分的指令和数据派发任务。当特殊处理单元最终通过这个应用的完成最终设定到自由状态时,其相关联的支点作为其最终操作同样地将返回到零状态传递到其阵列元素。
至少包括在目前先进技术中常见的一些指令的基元阵列处理指令集被微编码到每个计算单元内。所述集包括实现用于将大数据元素阵列加载到足够大小的计算单元分段中的构件的指令,‘LOAD’(比方说)。在LOAD指令的示例中,高权限等级处的支点具有形成到其分段内的所有下级支点的广播消息流的构件。在首先关于图28提到的广播连接性26的所述实施方案中,当传到高权限等级处的所述支点时,所述阵列加载指令并行地给其对向支点中的每一个派发任务,对向支点中的每一个依序给其下级支点派发任务,直到最低支点权限处的相等大小的子分段,所述子分段对较大阵列的输入内容的组成作出贡献。在此LOAD操作中,假定加载所需要的大阵列的元素本身先前已适当地布置在全数的此类相等大小的子数据阵列中,每个子数据阵列的范围都在最低层级,并且假定这些相等大小的子阵列都已分布并存储(由大量外部构件)到对应数目的用户接口517(诸如82)中,每个用户接口17是根据其地址选择的,以便匹配所述所选择的最低范围的特殊处理单元(诸如83)中的一个的地址,如以上结合图8及以下等等详细地解释。
借助于所选择的最低范围的支点的相关联的特殊处理单元和终端连接性24,所述支点因此被使得能够与一个本地接口517通信,以便当准备好时,按来自较高权限控制支点的命令与其他最低层级支点并发地加载其贡献计算单元分段。包括(比方说)32×32个数据元素的来自517中的处理和存储构件的每个消息流作为串行流传递到其对应最低层级支点,然后所述支点形成将要在广播连接性上发送到其自己的计算单元分段的经定址数据项串行流。如刚指示,这项操作是在较高层级支点的排他性控制下,所述支点又由拥有的用户的代码来命令。每个接受方计算单元使所述流与其自己沿着其分段的位置匹配,以便加载和存储其自己的适当阵列数据元素。计算单元向最低权限支点告示接收的完成,并且大分段中的所有完成信号最终由这些支点向所述较高权限支点告示,从而准许对现在最终驻留于较大计算单元分段中且在那个支点的控制下的大阵列进行另外的操作。‘LOAD’的相反操作是阵列的遵循相反顺序的输出,其中较高层级支点将响应性向下委托给其最低层级支点。在用于广播和同步网络的所述一个优选体现电路中,所述最低层级支点中的每一个将其‘READ’命令(比方说)广播到其分段。支点处理器243用一系列可计数的触发器代码跟踪此操作,所述触发器代码要求分段中的每个计算单元将其贡献数据元素作为定序的串行元素流以‘桶桥’次序沿着广播连接性的空间曲线的轨迹往回传递到支点,并且因此,传递到用户端口中的一个。在第二优选实施方案中,树网络链路629和634和节点230被配置用于双向数据传输,并且支点又为了串行输出而对计算单元定序将其数据元素传递到支点进行定序。在第三优选实施方案中,连接性具有用于某些预认定的大计算单元分段的另外的读取-写入线网络,所述分段各自以与通常用于计算机存储器单元的阵列相同的逻辑方式,按只数据传送的行主序来控制,并且由对应的专用输入/输出端口询问。
因此,当所述搜索和选择构件获取大计算单元分段时,在所述大分段内,同一所述大计算单元分段的另外子分段与其自己的相应支点处的类似支点控制构件一起存在。在分层意义上,这些子分段因此可被看作下级于较大分段。
在连接性的一个优选实施方案中,正方形阵列维数m是二的幂整数,使得在那种情况下,用户加载的阵列必须被约束以沿着递归曲线的对应分段包括不多于2^(2m)个数据项,其中‘m’是在连接性的建构期间固定的一系列整数中的一个。具有小于2^(2m)的范围的诸如矩形矩阵的更一般阵列以填满所述分段的其余部分的‘零’元素来扩增。后续任务派发和传输协议操作,如同所述维数是完整分段的维数,但元素的‘零’指定然后意味着不需要发生与那个元素相关联的传输和处理。
递归曲线在体现这种类型的阵列的n维一致性中具有特定优势,并且至少一个布置支持在跨阵列处理互连并发传输数据元素时的m维直接平移中等距的均匀性(m<n),如不久将论述。
形成分段连接性的设备有利地根据简单的所规定例程并根据通过连接性的数据路由的分层规则性在矩阵的元素之间布置矩阵的元素的递归操纵。作为示例,常规数学中的矩阵操纵需要操纵所选择数据元素对,然后对相乘的值的群组进行求和。标准例程与矩阵元素的行主数学布置紧密对应,并且在串行计算中普遍地使用。然而,至少此操作中的第二矩阵的转置需要在可计算乘积之前跨所述第二矩阵对角线地互换数据元素,并且那种形式对于在处理器的规则笛卡尔阵列上分布的大矩阵并不方便,因为处于其常规行主排序的矩阵元素之间的操作的并发交联将需要与笛卡尔路径的排序不兼容的众多对角线路径。因此有利的是,将矩阵划分为递归地转交的结构以便匹配笛卡尔链路(诸如在本说明书中描述的那些链路)的布置,并且偶然地,按不久将描述的方式进行,所述方式移除对用于对矩阵的最普通操作的交联的需要。因此,首先,期望矩阵元素布置是递归性的,以便匹配递归连接性的互连形式,实际上,这是这个连接性的递归设计的目的;其次,期望对应元素的互换登记在逻辑上尽可能简单以准许大量元素的无竞争地的同时一步传输。双向互连的超环面结构支持此类元素路由操作,并且递归曲线的轨迹的数字排序通常使得递归元素操作能够严格地按时间步骤的Log(n)阶系列布置。
因此,首先有利的是针对正在连接性内输送和操纵且将与连接性的递归曲线组织兼容的矩阵中的每一个,使用在本文中叫作‘反射式Z曲线’的分层组织(在图34中图示),将矩阵的常规‘人为定向的’行主形式重新排序成分层排序。选择此变换曲线以便将每个‘人为’阵列的元素的位置重新索引到嵌套的‘计算机’分层,而不改变元素值。它然后准许元素沿着所选择递归空间曲线的单维轨迹的有序重新定位,所述所选择递归空间曲线的示例是H曲线,如在图35中为比较而图示。图35图示针对计算操作将通过反射式Z曲线阶的示例性4×4行主‘人为’整数矩阵转换到H曲线阶的串行步骤序列,针对连接性的递归连接性12内的一些形式的矩阵算术,这些计算操作偏爱H曲线。已给予阵列组成部分简单的任意值,使得可遵循通过两个曲线的进展。这里,左侧矩阵的常规[0,0]分量具有值‘8’,并且还需要是右侧矩阵的位置[5,5]处的H曲线的起始点。类似地,对于两个矩阵来说,曲线的端点分别在[7,7]和[2,5]处。然后,Z空间曲线必须递归性地分解,并且跨原始阵列递归性地反射Z模式的方法产生沿着H曲线的一系列分量,所述一系列分量实现用于并行矩阵算术的简单的行与列交换方案。将在适当时候借助于示例来阐释Z曲线转置程序。
如前文关于H曲线指示,对于诸如矩阵比较和矩阵算术的应用,使用中的实施方案的一个特征包括一致地跨机器的数据阵列的计算机方向,如已关于图14所论述,图14展示保持在计算单元0110g、0111g、0101g、0100g、1100g、1101g、1111g和1110g中的数据立方体可易于在单个主时钟循环中传送到计算单元0010g、0011g、0001g、0000g、1000g、1001g、1011g和1010g。在这个示例中,第一计算单元分段中的数据存储区可方便地保持将要移动到形状相当的第二分段的元素矩阵。
在矩阵转置和矩阵乘法的情况下,如前文所描述,H曲线是适当的,因为这个布置使得能够通过矩阵元素的单步骤笛卡尔交换来元素对元素地组合矩阵,而非通过麻烦的对角线元素交换和长序列的侧向移动来组合。H曲线的形式实现系统性序列的折叠模式,借此可在单个主时钟循环中并发地交换大量可切换选择的数据元素对,如下文将解释。
在矩阵‘COPY’操作中,用于存储于第一计算单元分段中的第一矩阵的支点命令其计算单元(包括本身)中的每一个将其数据元素的副本通过其共同的下一更高维度轴线传递到第二相当计算单元分段中的其信号邻近邻居。对于完整的复制元素阵列,这意味着接收矩阵副本的相似计算单元分段按与原始相同的次序保持它,并且将它保持在相似排序的计算单元地址中。在这个操作中,在每个半循环上,第一分段中的所有计算单元的一半中的每一个将元素值并发地传递到第二分段中的交替对应的计算单元。在第二半循环中,第一分段的第二半传输其值。在主时钟循环期间,也可以布置成使得每对计算单元交换其元素值—即,SWAP操作。
由于其紧密的函数关系,表述连接性的处理单元在连接性10的计算机电路系统布局中布置成使得每个处理单元与对应计算机单元共同定位于数字计算引擎内。这提供对于管理连接性处理单元和递归连接性计算单元来说共同的地址格式。实际上,每个处理单元的电路系统与计算单元的共同定位然后准许(如果对于封装效率来说期望的话)每对共享数字计算引擎内的组合功能性中的一些并使其最小化,但对于本说明书,已始终为了描述简单起见而方便地将它们视为具有其逻辑的截然不同处理实施方案的单独实体。所述共同定位准许在两个元件之间进行专用双向信号连接,而无来自机器内的其他操作的冲突。
如前文所解释,超立方体分段连接性实施方案的多维笛卡尔路径然后提供用于跨连接性输送由计算单元分段内的不同大小的数据串、矩阵和n维块保持的数据结构的重要通信路径。
应理解,在控制支点的引导下,第一与第二相当分段实际上一起构成直接平移等距,由此使得所述第一计算单元分段的数据内容能够作为阵列通过一个直接侧向消息传输并发地从所述第一计算单元分段传送到所述第二分段。以这钟方式,对于支点和其计算单元来说,致使传送涵盖阵列的大子阵列并在单个时钟循环中覆在涵盖阵列内的第二大子阵列的对应定位的数据内容上是高效的操作。当将分段连接性看作二维计算单元分布(如在图15中)时,可将这个传送移动看作多维数据块的平移移动的‘折叠’运动,并且例如在对SWAP操作中的矩阵操纵的后续描述中是重要的。在一些应用中,一个优势是,数据交换动作是左右对映的。图15图示这项操作的小型示例,但依靠超立方体实施方案中的递归H曲线,同理适用于维数高达比分段连接性的最大维数少一的子超立方体的每个维度。
1024个计算单元的阵列的全数计算单元之间的总数路径形成至少10维二进制超立方体,五个维度是由东西路径形成,并且五个交替维度是由北南路径形成,如在图23中图示的交替层级中指出—即,其中计算单元的‘x’和‘y’坐标各自具有在0d与31d之间的值。在H曲线的情况下,每个计算单元的n维空间格雷码地址(具有细微的数字重新并列)也是其沿着曲线的格雷码位置。
如前文指出,数字计算引擎实施方案的一个特征是主时钟实现方式,其提供在两个半时钟步骤中排序的递归连接性12内的两个计算单元之间的往复消息事务的布置,所述步骤依靠笛卡尔超立方体中的信号邻近邻居的偶数-奇数指定来操作。通过选择计算单元的地址的索引以遵循所述格雷码编号系统,每个‘偶数’奇偶校验地址的计算单元的信号邻近邻居偶然地具有‘奇数’地址的信号邻近邻居,并且每个‘奇数’奇偶校验地址的计算单元具有‘偶数’个信号邻近邻居。主时钟可在交替的半循环上操作,以便首先在一个半时钟循环上激活所有奇数地址的数字计算引擎以发起由其计算单元进行的通信,然后在另一半时钟循环上激活所有偶数地址的数字计算引擎以发起由其计算单元进行的通信。大量所述计算单元因此各自排他性地由所述系统时钟的一个半循环可选择性地操作,以便当如此被操作时,在至少一个数据传输路线上与其信号邻近邻居数字计算引擎中的所选择数字计算引擎通信。
这种指定的一种优选方法是将全系统‘主’时钟布线到每个计算单元,如前文所指出,使得时钟脉冲的上升沿切换所有‘偶数’计算单元(例如)以用于数据传输,同时‘奇数’计算单元收听;并且时钟脉冲的下降沿切换所有‘奇数’计算单元以用于数据传输,同时‘偶数’计算单元收听。应注意,这个时钟与如通常在数字计算和数据传输中使用的计算单元的元素逻辑的普遍存在的较高速度‘小’时钟控制截然不同,主时钟脉冲本身由小时钟的可能地32个循环时钟控制。在每个半循环处,由一对计算单元中对于那个半循环来说的‘主’计算单元发起传输,以用于与其处于‘从’模式的适当接收计算单元通信。在第二半循环上,对于在相反方向上的所需传输,角色颠倒。这解决了计算单元之间的任何可能冲突,因为在任一时间,任一对中的任一个计算单元将正在传输。
因此,所有主传输计算单元在一个群组中操作,从计算单元等待接收;然后,对于一下传输序列,角色颠倒。将在适当时候描述的多维排序是这个同步特征的简单使用示例,其中在交替循环上进行排序序列比较和交换。连接性的偶数-奇数交换的另一示例性应用是数字微分分析。在那种情况下,驻留于连贯计算单元块中的数据表示作为状态变量量化的多变量动态系统,并且定义模拟所述变量之间的相互作用的呈计算单元矩阵的形式的动态函数的离散形式。计算单元块与其交错的信号邻近邻居计算单元交替以从一个到另一个地传输与正执行的问题相关的更新过的自己的值。这匹配计算积分的‘跳蛙’方法。
在操作中的优选实施方案的一个模式中,递归连接性具有大量单独命令的处理器阵列群集,并且每个数字计算引擎的计算单元部分仅与其信号邻近邻居相互通信。然后,传输消息格式有利地限于仅根据每个所传输参数的所需分辨率汇编的单个可改编长度的数据字段。在传输通过中间数字计算引擎被间接地引导到目标数字计算引擎的情况下,每个计算单元具有形成更复杂消息格式的构件,所述消息格式包括至少指令和发送与接收数字计算引擎之间的相对地址。
以下是展示为用于典型阵列处理事务的位模式的串行所传输数据字段的示例性消息流:
消息:-_b_ad x x ad_as x x as_x x x x x x x x x x x x c__字段:-1 2 3------4------- 5 ------6------ 7---------------数据字段-----------8 9 10
‘1’、‘3’、‘5’、‘7’和‘9’是在这里有利地由双相位编码的返回到零特征形成的划界定界符。这种形式的多个消息可通过在消息之间登记双定界符(‘9’和‘10’)而在一个信号传输中串接。
在这个示例中,位‘b’是到从计算单元的阻断信号,当被设定时,所述阻断信号抑制在那个所述从计算单元的半循环上往回向主计算单元返回数据传输—单个答复位消息’b’除外,所述单个答复位消息准许所述从计算单元也抑制到它本身中的通信(如果它参与另外的独立任务的话)。如果未接收到自从计算单元返回的‘b’位(在其‘主’半循环期间),那么主计算单元自由地在其自己的后续半循环上发送后续消息,所述后续消息中的任一个可重置位‘b’,由此释放其自己的来自从计算单元的传入连接。
变量字段‘4’和‘6’构成地址字段,其中‘4’定义相对于当前计算单元的最终目的地地址,并且‘6’是原始源计算单元相对于当前计算单元的地址。对于某些后续应用,后一地址具有到目的地计算单元的值。对于字段‘4’和‘6’中的位的总数随源计算单元与目的地计算单元之间的信令距离而变化的实现方式来说,短距离有利地需要较少位是有价值的。源相对地址在长度上与减少的目的地相对地址协同地增加(源与目的地相对地址是彼此的补数)。在格雷编码中,两个计算单元之间的‘相对’地址被导出为两个地址的异或。
以这种方式,分段连接性的网络使得信号发起计算单元能够通过一连串地址所选择的信令路径将消息传送到目标单元,沿着到目标单元的路线的序列中的每个单元通过连同消息一起传输的单元选择地址码可切换地排序。
‘数据字段’本身包括用于与当前给主计算单元派发任务的特定基元操作一致的阵列维数、函数名和自变量值的另外的附属位字段。此类数据可易于通过在计算单元内微编码来解码和解译,这在目前先进技术中是常规的。阵列的输送和处理在本说明书中受到特别关注,并且有利的是,数据分段中的每个数据项在其传输和处理任务中的每个阶段标识其自己的在所述数据分段中(即,沿着轨迹)的位置。依靠格雷位模式定址形式、对递归曲线的选择和所述数据分段的范围,这个特征使得能够不时地作为群集获取递归连接性,就权限和相对位置来说,所述群集可适于用户的需要。此外,每个计算单元被使得能够不时地负责存储和处理与多个数据阵列中的相应数据阵列相关联的相似多个数据元素中的一个。每个数据元素和其附接的紧接的基元操作符的区别特征是数据元素是其部分的数据阵列的范围整数‘m’。如前文所解释,本发明的一个特征是,与所述多个数据阵列相关联的多个数据元素和附接的基元操作存储于每个计算单元中,且然后根据分时调度和数据阵列范围分层来访问和处理。
应认识到,在多线传输标准中,许多其他格式也是可用的,它们提供与针对串行通道Manchester双相位编码所描述至少等效的信息实用性。
每个计算单元具有指令集,所述指令集准许用户软件代码选择适合于比较、交换和操纵规则数据阵列的元素的逻辑、算术和端口定址操作。因此,用于所述串行传输的数据字段的示例的二进制格式包括符合驻留于每个计算单元内的指令集的格式化的函数指定和自变量指定,如在数据处理中央处理单元中常见的。在本发明中,对每个计算单元中的编码的指令集的选择具有尤其与阵列处理操作有关的微编码。除了用于匹配等效的微编码的硬件指令与用户的编码的消息内含有的函数指定的构件之外,所述指令集逻辑还提供至少:每个所传输自变量与存储于计算单元中的数值、符号值和地址的逻辑比较;对包括如适合于指令的数值和地址值的数字自变量的基本算术操作;与地址值对应的端口选择;请求用于传输到另一计算单元的计算单元占据状态的报告(例如,答复位消息’b’)的指令符;以及触发来自计算单元的本地存储器的宏编码的函数的串的‘执行’指令。所述指令集在每个中央处理单元的逻辑内的存储和操纵遵循在数字计算领域中常见的设计规则。
在所述串行传输的数据字段的示例性消息流中,主半循环脉冲时序只准许固定的最大长度位流在计算单元之间传递,如由主与小时钟周期的比率所确定。为此原因,在所述示例中,如果已利用最大长度,但消息仍仍然不完整,那么预期数据字段中的最后一个旗标位‘c’(第八个)用信号通知:预期后续串接流在下一主时钟处,以便继续同一数据字段。例如,对于第一事务处的完成,‘c’可为‘0’,但如果下一半循环的第一位(不管是‘0’还是‘1’)将为原始流的紧接的继续部分,则被设定成‘1’。这所述第一位与‘b’位有区别,因为先前设定成‘1’的‘c’位已由接收计算单元记住,并且对于那条消息,取消‘b’位的相关性。最终,‘c’位被设定成‘0’以指示数据字段的最终完成。传输器和接收器单元在其适当消息端口处记住‘c’旗标设定的状态,直到最终后续消息的完成。一旦消息流完成,可能在多个半循环传输字之后,使下一双长度‘返回到零’(比方说,在中间半循环中)能够发起包括地址序列和数据字段的新消息(如果需要的话),如前所描述。相比之下,连续的端接Manchester‘返回到零’仅意味着在那个半循环中将不期望另外的数据。
如前文解释,对于一些实施方案,一个优势是,数据总线信号链接在多对计算单元之间分时。数据总线具有标识成对端口并因此区分计算单元端口的每个对应的传输与接收对之间的每个消息传输的构件。在那种情况下,数据总线端口连接规定互连用于特定延长的消息的传输器计算单元与接收器计算单元的特定端口。然后,接收器计算单元的端口通过数据总线唯一地附接到源发源计算单元,并因此明确地追踪每个所接收消息封包,以用于在多个其自己的端口处重新汇编相似多个这样的总体消息。通过此构件,每个计算单元可从多个源接收多个长的交错的消息,而调度电路仍然能够对每条消息的有关部分进行定序,但计算单元的这种分时操作必定影响其对消息与子消息的多个组合的响应速度。
现将描述连接性的操作的各种说明性示例。
示例1,‘SWAP’操作:如通过参考图23的路径所暗示,借助于微编码的指令成对地使沿着递归连接性25的行的每个计算单元能够交换其数据元素,奇数地址的计算单元与在地址值上仅相差一个位位置的偶数地址的计算单元通信。通过计算单元微编码的子例程对定址位位置进行的选择性选择实现元素交换的系统性进展。例如,关于图23的层级‘10’,对仅阵列定义地址长度的最高有效位与目标地址不同的那些计算单元的获取,实现跨矩阵的所有行的在行的两个16计算单元半部之间的所有计算单元数据的同时成对交换,单独对在一个方向上在一个半主时钟循环上且在另一方向上在第二半循环中交换数据。通过那个操作,行中的计算单元互换其数据元素。如果在图23的层级‘8’处,地址在第二到最高有效位处成对匹配,那么在行的四分之一中的计算单元交换其数据元素,在这种情况下,每个行的每个半部颠倒,以此类推直到层级‘2’(如果需要的话),在层级‘2’处,交换紧邻数据对。在任一层级处,所有交换事务并发地在一个主时钟循环内完成。为了交换矩阵(和矩阵的部分)的元素,原位水平地(或垂直地)交换跨路径在两个半循环内仅需要一次,如由诸如图36中的263和264的路由以符号方式所展示。分段(诸如在图36中展示的265)中的每个计算单元保持阵列数据元素,并且SWAP操作通过信号邻近邻居笛卡尔路径(诸如264)水平地交换元素对,如SWAP指令典型地所需求。因此,控制所选择计算单元分段的支点命令数据元素对的交换,在主时钟的‘奇数’半循环期间由‘奇数’计算单元群组进行本地控制,并且在‘偶数’半循环期间由‘偶数’计算单元群组进行本地控制。在这个活动期间,如前文所解释,支点本身具有以下构件:通过广播连接性26确保其群组中的每个计算单元已完成其先前被指定的任务;在阵列操作中作为数据元素满足其自己的响应性;以及发起操作中的下一递归层级。依靠在每个循环处与支点中的指令相关联的地址字段,所述支点具有被使得能够在其命令下选择性地抑制某些子阵列和计算单元的响应的构件,并且借助于定向场,所述支点被使得能够命令SWAP操作在分段连接性的任一象限对之间的轴向方向。
因此,例如,为了叠加两个位于远处的数据阵列并将其数据元素配对以用于求和和乘法操作(比方说),典型的‘MOVETO’操作的微编码采用COPY交换方案(限于数据元素的仅单向传输)。这种受限的COPY操作致使将来自计算单元分段(诸如265)的数据元素阵列通过相邻中间分段(诸如267)叠加到266上,所述相邻中间分段提供元素的临时存储,直到在另一循环中将所述元素传递到分段266。在这种情况下,操作是所具有的范围涵盖至少所有三个构成计算单元分段支点的响应性。
将这个单向COPY机制扩展到矩阵加法,如在图37中,全列元素(诸如268)可通过以下操作来递归性地求和:按从较高维度路径269向下到最低维度270的递归顺序将相同的单向COPY动作渐进地应用于将元素加在一起—即,通过将元素对折叠相加,然后将那些结果成对相加,以此类推直到每列的结果一致地终止于行271(比方说)。开始于272处的值‘1’,通过逐列地相加,重复所述过程通过逐列地相加导致这个元素的值31,并且针对在2×Log(n)+2个主时钟循环中的总体阵列的逐行求和,最终在这个位置处导致‘67’。如前文在将共同命令发送到计算单元分段的广播操作的描述中解释,在这个示例中,支点计算单元将其命令发送到受预期的交换与加法操作影响的群组中的每个计算单元。一旦如此指导,分段中的每个‘奇数’计算单元(比方说)与其相关的信号邻近邻居进行连接以交换数据元素,并且在这个操作中在完全脱离的情况下,可独立地且与分段中的所有其他‘奇数’计算单元并发地执行所述操作。
示例2,反射式Z变换:可在外部进行Z到H变换以用于输入矩阵的H曲线阶形式。然而,作为使用特定行和列交换递归序列实现的内部计算序列的示例,图38和图39图示图38中的常规8×8行主矩阵273到图39中的等效H阶布置274的变换。在于H曲线矩阵274中达到顶点的所图示序列中,用于H阶中的数字计算引擎的最终格雷码方案遵循在图22中展示的相同分层原理,但使所输入行主矩阵开始于275处的分量[0,0]和指定(2)000g,且使Z曲线矩阵结束于276处的具有指定(2)200g的[7,7]。在277处的变换的第一阶段中,具有格雷位模式(2)0i j的所有数字计算引擎与其在(2)3i j处的信号邻近邻居一致地交换分量,逐列通过‘y轴’,‘i j’代表子阵列278中的每个数字计算引擎的具体下端格雷码整数。在第二阶段、即矩阵279中,子阵列280的左下正方形分段中的DEC(2)0i j与右下正方形分段中的数字计算引擎(2)2i j沿着x轴逐行交换。这中相同的SWAP程序继续到281处并且最终到274处的下面较低分层级,从而在274处产生H曲线阶,其中起始点在单元282处并且结束点在单元283处。
示例3:通过‘SWAP’操作进行的矩阵转置:图40图示按递归方式使用交换操作对4×4矩阵284进行原位转置的阵列操作,所述递归方式使对计算单元阵列中的广泛分开的矩阵元素的选择交叉相关。矩阵284是按如将为人类分析员熟悉的常规行主形式在连接性外部布局的示例性4×4数字阵列。为了说明的目的,将反射式Z曲线调度图形285叠加在如参看图34及以下等等论述的矩阵上。这准许变换成矩阵287的‘H’曲线形式286,这对于分段连接性布置来说更方便。执行到矩阵288的常规转置将需要284的所有右上三角形元素与对应的左下三角形元素转置。如果将在并发计算中直接对这个矩阵形式进行转置,那么将需要计算单元之间的长的对角线链接,以便有效地匹配数据元素跨分段连接性的必要对角线传递。虽然对于小转置操纵情况有可能,但对于大矩阵操纵来说更方便的是,互连在布局上是笛卡尔型。针对矩阵操作的启用所选择的模式因此优选地是H曲线286,如前文所描述,其维持具有笛卡尔路径的正方形矩阵的分层格式化。所述分层形式使用针对每个传送层级的连接的适当维度轴线将数据元素的象限和子象限保持在一起以用于跨分段连接性进行块传送。为此目的,在这些示例中,方便的是假定在分段连接性本身内操纵的所有矩阵是H曲线阶。为了解释的简单起见,首先假定用户已通过反射式Z曲线到287的H曲线矩阵布置的变换在外部重新布置矩阵284。然后,用于矩阵元素的分段支点指明用于如前文所描述水平地交换的H曲线形式的矩形子分段(在矩阵289中被展示为有框)。这是操作的第一迭代。第二迭代同样地交换由矩阵290中的框标识的那些元素。通常,需要转置的H曲线矩阵以用于另外的矩阵操作,因此将不需要变换回常规行主形式。如果需要的话,反向反射式Z曲线变换回常规行主形式以用于输出到用户。
图41图示应用到8×8矩阵291的相同转置过程,以便展示在每个分层级处由控制支点触发的选择的系统。一旦矩阵291被变换(在连接性外部)并作为矩阵292加载到阵列处理分段连接性,第一交换就导致矩阵293,第二交换导致矩阵294,并且最后导致295。因此,这个过程是原位应用于n×n计算单元群组的OLog(n)操作。反射式Z曲线序列295变换回常规形式的矩阵296。矩阵图示中的灰影展示在每个变换中的矩阵的同一数据元素;它并不表示同一计算单元。
在图42中,为了使分层矩阵表示法一般化以用于说明矩阵乘法,通过分层符号元素而非示例性整数来系统性地图示转置操作。在未变换的8×8矩阵298中,元素297具有标识符‘dcb’,在矩阵298,中标识符中的每个字母指定四个象限中的一个:用于这种64元素情况的三个分层象限层级中的每一个中的‘a’、‘b’、‘c’和‘d’。因此,对于元素297来说,‘d’是元素的最高层级象限,‘c’是下一子象限位置,并且在这个元素的标识中,‘b’然后是常规行主矩阵中的最低层级象限。在矩阵298中,数据项‘aaa’位于矩阵坐标[0,0]处。在Z变换到矩阵A(H)299后,数据元素‘aaa’位于笛卡尔坐标[5,5]处,从而形成H曲线原点,并且数据元素‘dcb’位于H曲线矩阵中的[3,6]处。在300中的‘H’转置AT(H)的完成后,数据元素297‘dcb’现在驻留于坐标[0,6]处。由于元素‘dcb’将与原始行主矩阵298中的元素‘dbc’转置,因此最后AT(H)形式300的‘dcb’通过H到Z变换与矩阵298的坐标[6,5]对应。在本文档中其他地方的精确匹配表示法出于相同目的使用整数符号:‘1’、‘2’、‘3’和‘4’。这允许在后面的图示(诸如图45)中对来自两个不同矩阵的元素加以区分。
支点可使用以便命令其计算单元群组的嵌套的象限执行‘TRANSPOSE’的一个示例性m×m H曲线转置算法如下:
控制支点将SWAP命令广播到其范围内的所有计算单元广播,以用于仅由y坐标具有最高有效位(msb)=1的计算单元进行动作;
计算单元检查msb,并且所有所选择计算单元通过交换其数据值成对地响应;
支点通过等待来自在其权限下的所有计算单元(包括未按那个命令动作的计算单元)的完成响应来使操作同步,并且对其分段中的y坐标具有第二位=1的计算单元进行定址,并再次触发SWAP操作;
支点依次通过每个y位直到最低有效y位来重复命令;
在此最终位命令之后,支点等待完成响应并终止算法程序。
这种算法将m×m涵盖支点范围所覆盖的p×q矩形矩阵转置成q×p矩形矩阵,其中还跨支点的全数计算单元交换零填补元素(在矩形矩阵外)。
示例4,用于矩阵转置(原位)的编码结构:图43展示用于原位矩阵转置的管理连接性控制的代码的示例性评估。这被提供为管理连接性515用于控制阵列的第一使用图示。这个示例中涉及的示意性且逻辑性的操作采用如在Hamlin连同那项专利的相关联的示例图H25中所描述的管理连接性。
对于图43中图示的示例,假定用户感兴趣的元素矩阵(在本文中命名为‘Φ‘)已通过先前操作(前文通过图8及以下等等所描述)而加载到与特定处理单元‘d’和支点301相关联的计算单元分段中。如早先解释的相关计算单元分段可作为群组由其支点计算单元的单个地址标识,假设所述支点计算单元与加载到所述分段的先前加载矩阵元素群组(包括矩阵Φ)对应,并且通过地址#Φ是用户已知的。在图43中,处理单元地址通过散列标记(诸如#Φ和#a)来区分,并且这些在各种函数调用中用作通信指针。因此,#Φ是指含有Φ的数据元素的301处的感兴趣区段的(单个)支点地址。因此,可推测具有自变量$Φ的用户的$EXAMPLE函数的目的是将矩阵Φ原位转置成矩阵ΦT
在完成后,用户接收回返回的支点的地址,所述地址然后向用户表示:操作已完成,并且主题矩阵(在这个示例中现在被转置)驻留于计算单元群组中,所述群组通过所述支点的地址来区分。与表达中的名称相关联的表示法‘$’表示基元标识符,所述基元标识符表述所述名称本身并非数据串,也不是整数,而是表示语汇标识符并指导处理单元将相关联的名称(诸如‘EXAMPLE’)视为复杂表达结构(在这种情况下,为302),所述复杂表达结构最终要借助于存储于数字化定义语汇中的函数定义扩展成有意义的、可计算的表达。名称的‘意义’发现于存储于相互关连的处理单元的群组303中的语汇条目中并从所述语汇条目进行复制,所述处理单元在它们自己之中通过地址指针相互关连,在这种情况下,其中的处理单元304(B)是所寻找的定义。
紧密类似于函数编程使用的用户操作的符号形式是:
ΦT<=($EXAMPLE$Φ),一旦已通过表述连接性进行第一层取代,作为‘EXAMPLE’的语汇定义的结果,就变为:
ΦT<=($MTRANS#Φ),如现在将描述。
在用户访问305例程时,在本文中为了便于描述而叫作‘a’的具有地址#a的自由状态特殊处理单元306通过传递到表述连接性网络节点中的自由状态搜索信号而被找到(如在Hamlin中描述)。在获取自由状态处理单元a后,用户接口通过终端连接性24(未展示)将表示用户的调用函数的二进制流连同调用者的返回地址一起加载到a中,如前文关于图8及以下等等描述。一旦表示用户表达($EXAMPLE$Φ)的所述二进制流驻留于a中,处理单元a就具有微编码的指令,所述指令通过搜索定义可能地匹配的符号名的语汇分层来发起对符号$EXAMPLE的‘意义’的搜索。虚线箭头暗示对适当语汇的访问通常是间接的,并且需要由一系列对应的中间处理单元进行多个类似的中间定址操作以便匹配搜索符号。每个语汇条目与驻留于类似于a的处理单元内的单个符号(典型地,诸如$EXAMPLE)相关联,但在这个示例中,为了一般性的缘由,推测相关语汇作为302存储于其他地方。语汇的进入点(每个语汇搜索操作自所述进入点开始,通过那个语汇)是代表调用处理单元(在这种情况下,诸如a)最终指向的处理单元。
通常,函数调用处理单元使用表述连接性23的树网络—并且,如果最终需要的话,使用到用户装备的相关联的终端连接性端口—用于访问含有在扩展函数名时成功定位的语汇条目的语汇。每个处理单元中维护地址寄存器以用于存储语汇分层的起始第一进入点的语汇地址,并且随着语汇调用通过函数评估演化,那个地址根据最近的函数范围变化。
在表述连接性的操作中,众多语汇一般将作为函数结构在表述连接性中和可定址用户接口17中遍及各种位置的许多处理单元群体之中散布。在这种情况下,推测相关目标语汇由定义的排序树302表示,其中存在$EXAMPLE的预认定的定义’(EXAMPLE‘(λ(φ)#B)),其具有在位置上必须与305处的函数$EXAMPLE的单个必要自变量对应的虚拟自变量名‘φ‘。在$EXAMPLE的语汇定义前面的处理单元在响应于‘λ’基元而预先布置语汇的构造时含有指向驻留于处理单元B304中的其定义的顶层的地址指针。组成语汇的单元(诸如304)是由‘”表示的‘QUOTED’表达,意思是它们并非在计算上被加以评估,而是仅(在语汇定义的情况下)复制到其他评估单元(像处理单元a)中。一旦位于语汇条目303中,含有‘(EXAMPLE和’φ)的语汇符号单元就重新调用a,并将其函数地址的地址#B发送到具有自变量符号’φ的aa将其记录为新的本地语汇条目等待定义。在这种简单情况下,用户已被提供自变量的完整意义#Φ,并且这存储于a的针对’φ的语汇条目中。
a获取自由单元b,并且加载B,304的地址。b现在记录其亲代地址#a并调用BB用其内容307进行响应,所述内容307包括$MTRANS和其自变量参考—符号$φ,在这种简单情况下,所述符号可在b在针对虚拟变量’φ被分配值#Φ的单元a处的第一语汇搜索进入点中访问。
表示$EXAMPLE的意义的所需表达是($MTRANS$φ),它现在删除了引号,因为需要处理单元b评估这个表达。b必须寻找$MTRANS和$φ两者的意义,并且这首先行进通过头部单元a,其中找到符号φ,但未找到符号$MTRANS。搜索因此被进一步引导到用户的语汇空间中,从而最终在308中找到其语汇条目。
典型的符号搜索如下进行:在诸如由单元a对符号名的搜索期间,所述单元传递消息,所述消息含有用于感兴趣的符号的数字代码与其自己的地址(#a),并且还有与符号有关的表述连接性通信树网络(它是那个搜索阶段的起始树)的数字指定,诸如#3。所述消息作为需求从单元到单元地传递通过第一相关语汇,从而使所述符号与语汇结构中的条目匹配。每个语汇结构响应于λ基元而按符号名的字母数字排序来构成,使得匹配序列可从语汇的底部掉出并接收下一较高语汇的另一指针地址,以便继续向上搜索。为此目的,字母数字序列中的最后一个语汇单元具有下一语汇头部单元而非其自己的语汇中的另外可搜索单元的地址。如果搜索到达用户的语汇结构中的最后一个条目而无匹配,那么最后一个最高层级可搜索单元将‘假符号’错误消息返回到用户接口。
因此,假定搜索在语汇的原始编码中的次序已根据语汇符号名的单调序列布置,以便在缺乏匹配的情况下,在所述序列明确地传递到下一较高语汇之前选择最近符号匹配的路线。一旦满足符号搜索,具有那个符号(诸如303的头部)的语汇单元就使用伴随所述搜索的地址(在这种情况下,为地址#a)重新调用请求单元a,并且在原始搜索网络#3之上传输符号定义消息309,其包括定义的头部单元的地址连同自变量的符号名—在这种情况下,是具有地址#B的处理单元和具有λ名称’φ的单个相关联自变量。
当处理单元a在等待返回指向$EXAMPLE的最终语汇条目的指针时,它自由地定位其第一(在这种情况下,仅有的)自变量#Φ的定义。在这种示例性情况下,不需要这种搜索,因为用户已将’φ的意义指明为#Φ,#Φ是将要转置的Φ计算单元分段的支点的地址;如果$Φ未知,那么将需要所获取自由状态处理单元,并且那个地址将作为’φ的值下载到310。在这个简单示例中,假定用户可能地通过他的之前的应用代码已接收到矩阵地址的通知。一旦自变量’φ的符号名可供处理单元a使用,符号名就作为与处理单元地址#Φ相关联的自变量指针地址寄存器的语汇名存储。在Hamlin中描述的表述连接性的实施方案的那种形式的情况下,在要评估的表达涉及多于一个自变量的情况下,这些自变量参考引起对对应数目的自由状态处理单元各自通过不同表述连接性树:可能地#4、#1和#2进行的获取。
如在Hamlin中所解释,将观测到,每个处理单元支持寄存器中的函数和自变量地址指针,每个所述寄存器能够存储子代处理单元相对于大量树网络中的一个的地址,所述树网络中的每一个相对于其他树网络移位和旋转(见图H23和其相关联的文本,以及本文中的图7)。因此,每个单元具有对应于其在那些树内的多个电位置的相等大量的唯一的自己的地址。众所周知的笛卡尔旋转和平移变换提供大量树之间的固定算法关系,使得处理单元在其在一个树上的位置处的地址可根据其在其在第二树上的位置处的地址来确定。因此,一对处理单元之间的两个路线将包括由处理单元在两个不同表述连接性树网络上的位置确定的两个不同的地址对。随着符号搜索前进通过一系列分层语汇,搜索事务通常在各种网络之间切换,然而提供针对搜索符号的匹配的处理单元却将所得符号定义往回返回到搜索起始处理单元(诸如306),并且返回到所述起始处理单元中的源发端口中。通过此构件,语汇处理单元中的每个相应网络端口代表搜索处理单元识别用于终止每个系统搜索事务的适当返回网络。例如,$EXAMPLE可与网络#3上的处理单元端口#3(比方说)对应,并且对于$φ,在网络#4上的处理单元端口#4处。在自变量的数目超过网络的数目(对于函数本身来说少一个)的情况下,处理单元的最后一个可用网络端口用以指向另一自由状态处理单元,以便提供更多可访问端口来用于使函数的自变量溢出到另外的子代处理单元中。应了解,就像我们当前的单自变量示例一样,这后一布置在其分支模式中将与从相关语汇条目的模式复制到等效作用中单元中的语汇定义一致。
如刚解释,每个处理单元包括用于将相对于表述连接性23中的一个树网络的任何处理单元地址转换成其相对于表述连接性中的第二树网络的等效地址的算法构件。每个轴线变换包括带正负号的二进制乘法器,其定义两个树在图7中的网络对中的每一个之间在两个平面维度中的每一个中的相对正交旋转和移位。来自相对于接收网络的远程位置的每个所接收地址流由这个构件转换至相对于正针对任一向前事务(在这种情况下,跨所述相关语汇)访问的网络的同一处理单元位置的地址。最终,在示例的描述的本阶段中,如果需要的话,$Φ的语汇定义的头部单元将采用具有对应于网络#4的相关联标识符的自由状态子代地址(用于传输$Φ的意义),并且这将实现Φ的定义从语汇的匹配部分到子代处理单元中的加载。
这种定址复杂性的减轻的多处理优势从以下事实获得:自由单元的‘引导式搜索’函数(Hamlin)可用以迫使复杂软件结构通过移位和旋转的网络跨表述连接性的宽泛地理分布。作为自由状态处理单元通过预先存在的应用的演化获取的结果,针对给定应用对处理单元的获取在一定程度上变成处理空间内的随机过程。然而,所述‘引导式搜索’函数还优先地约束任务在构成处理单元之中的散布。所述约束倾向于形成近似于松散金字塔状结构的相互通信处理单元群集,所述松散金字塔状结构粗略地镜射相关语汇定义的复制的分层结构。以这种方式不时地跨表述连接性布局的多个应用自由地相互交错,而无独立任务之间的串扰的风险,同时每个应用单独地保留其自己的分层管理结构。
每个符号搜索开始于每个复制的定义的头部单元,诸如图43中的ab,而非c。族长式本地单元的地址作为搜索起始点向下传递通过其复制的构成子代单元,直到遇到另一所述头部单元。那时,起始地址由下降链中的最新的头部地址替换。
这就结束了对典型的符号搜索过程的描述。
处理单元a现在含有地址#B,因此对处理单元b的获取准许将#B加载到处理单元b中,并且然后那个处理单元继续以调用B,以便在本地语汇单元B中检索$EXAMPLE的定义,所述定义作为307($MTRANS$φ)返回。进一步前进通过图43的示例的处理结构,原始$EXAMPLE的这个函数扩展包括自变量名$φ,由于这个当前示例的性质,所述自变量名碰巧与跟$EXAMPLE相关联的自变量名对应。那触发处理单元b内的第二符号搜索过程,以便首先定位$MTRANS的定义,其可能地在不同语汇308中。针对$MTRANS的符号搜索过程正如刚所描述,并且现在返回地址#C,连同不同本地λ自变量’ψ。如果λ自变量再次是’φ,那么不存在变量的冲突,因为b确保新搜索开始于只是指向其定义的本地指针的那个虚拟变量,在这种情况下,所述虚拟变量已碰巧地变成将要从a而非b开始搜索的‘$φ‘。因此在b处对虚拟变量符号的选择不存在随之发生的重要性。
处理单元b定位自由单元c,并且传递#C连同其自己的地址,以用于符号查找且最终用于将随后计算的结果沿着处理单元链返回—最终返回到用户装备。
a中的$φ的定义是#Φ;初始地,$φ是要搜索的b中的符号,因为实际上$EXAMPLE在a中。b中的自变量$φ的阐释也需要语汇搜索,并且这开始于b的本地语汇,在这种情况下,本地语汇是其自己的亲代单元a,并且搜索通过返回值#Φ立即结束。否则,b将被重新引导以在较高语汇处的第二处寻找$φ的意义。倘若a已完成其立即设置过程,那么它将#Φ传回到b,因为在这个特定情况下不需要另外的搜索步骤。(如果a因为尚未确立其自变量和语汇指针(如果有的话)尚未准备好,那么a存储调用参考并临时地终止b的通信,稍后当准备好时,通过调用b重新连接路径。)因此b调用a,通过ab为它自己访问#Φ以作为$φ的定义,从而加载#Φ以作为本地虚拟变量’ψ的定义。再次,关于#Φ不做任何事,只是使其与$φ相关联之外(那个版本现在属于$MTRANS),$φ又是’ψ的定义。
自由单元cb获取,并接收$MTRANS的意义的位置#C,并将其传输到c。这次,所述示例将$MTRANS的定义作为具有这里由$mtrans表示的标识码和其自变量符号$ψ的机器代码例程给出。当解译为c中的处理器基元时,$trans是准许机器代码片段运行的编码,其将获取支点#Φ(一旦这已由c导出)。已获取了有意义的地址参考#Φ后,c获取d 301,并将支点基元‘mtrans’传递到支点301,为了矩阵转置的目的,所述数字计算引擎对‘mtrans’进行解译,如前文所描述。应注意,基元函数(诸如对于此示例将为所述情况)应内置到处理单元中,使得基元函数在应用变得驻留于其相关联的计算空间中的任何情况下都可用。理想的机器代码指令集基元的精确选择是生产计算机的共同商业挑战,但超出了本说明书的范围。
支点计算单元直接接收其mtrans命令,并命令其计算单元分段对其元素执行矩阵转置。当沿着处理单元链将如前文参看图41描述所形成的转置的矩阵#Φ的支点地址连续地传输到用户装备时,整个操作终止。在这种情况下,支点地址#Φ必然地与原始矩阵的支点地址相同,因为在这个示例中,已在阵列连接的计算单元中原位地进行转置。这就完成了对原位矩阵转置的管理组织的第一示例的描述。
示例4,矩阵转置(复制的矩阵):图44展示矩阵转置的第二管理组织。这被提供作为针对阵列处理连接性的命令采用表述连接性的图示,其中针对其计算转置的原始阵列保持完整,通常用于进一步计算。然后,转置的版本与其相关联的支点地址一起保留于单独计算单元群组中。如前所述,这个示例中涉及的逻辑操作采取如在Hamlin中描述的表述连接性的实现方式,并且以上示例中描述的多数过程也适用于这里。
如在第一转置示例中描述,对于图44中图示的示例,假定用户感兴趣的元素矩阵(在本文中命名为‘Φ’)已通过先前的操作而加载到计算单元阵列中。用户的$EXAMPLE函数与自变量$Φ的目的现在意图是转置矩阵Φ的副本。在完成后,用户接收回原始矩阵的副本的转置形式的返回的支点的地址,所述地址然后向用户表示:操作已完成,并且新矩阵驻留于计算单元群组中,所述群组通过其新获取的支点的地址来区分。
用户操作的符号形式现在是:
ΦT<=($EXAMPLE$Φ),一旦已通过表述连接性进行第一层取代,就变为
ΦT<=($TRANSPOSE($COPY#Φ))
如现在将描述。
在用户访问311连接性时,处理单元a搜索$EXAMPLE的‘意义’,如前文描述。
进一步前进通过图44的示例的处理结构,处理单元B含有$EXAMPLE的意义,即:’($MTRANS($MCOPY$φ)),其中在这个示例中,附加表达’($MCOPY$φ)是$MTRANS的自变量。因此,处理单元a接收地址#B,所以对处理单元b的获取准许将#B加载到处理单元b中,并且那个处理单元然后继续以调用B,以便在B中检索$EXAMPLE的定义,其为,
’($MTRANS)。
其中$MTRANS的自变量现在将为存储于语汇单元C中的另外表达’($MCOPY$φ)。如在第一转置示例中,$触发处理单元b内的符号搜索过程,所述符号搜索过程定位B中的$MTRANS的定义,于是,返回地址#C作为函数自变量’($MCOPY$φ)的地址。处理单元b定位自由单元c,并传递#C。同时,a寻找$Φ并接收数字地址#Φ,所述数字地址#Φ保持作为不再进一步阐释的数字代码。
b中的自变量的扩展以不同方式发生。初始地(移动到图44中的图解中的向左下方),b如前所述寻找$MTRANS的扩展,并且像在第一转置示例中一样借助于D发起通过d的完整事务,但是现在,$MTRANS的定义包括虚拟λ变量’ψ,其本身将需要由b定义。(应观测到,图解中为了清晰起见,将同一单元b本身展示两次,左下方的b处理的第一阶段附接有复制的λ自变量名。)现在,由d尝试获取$ψ的值将临时地被b阻断,直到由311指示的b中的等效自变量位置通过针对$MCOPY的过程完成,所述过程被展示为向下向右扩展通过c。在这种类型的自变量评估中,b照常获取自由状态c,但ba的地址作为其语汇指针给到c
c调用开始于a的$MCOPY的语汇搜索,其最终指向单元Ec获取单个λ分配的自变量’θ,并且将来自C的定义给定为$φ,其定义本身然后必须被寻找。
c定位将从E接收定义的自由状态单元e,并且还为了语汇定义的目的确立其自变量名’θ。COPY过程评估创建#Φ的副本所需的($MCOPY$φ)。为了本示例的描述起见,我们选择调用ΦT:‘Ψ’。为了在单元c中找到’θ的值(其现在为$φ),单元c以对$φ的定义的请求调用a,由此避免符号范围确定的抵触。现在充当新语汇的头部并且在其语汇符号之中找到’φ的a重新调用c,以便返回语汇符号’θ的相关值,其现在变为控制含有矩阵Φ的元素的分段的支点地址。
单元e又调用EE托管基元函数表达’($mcopy$θ),并且计算其自己可执行的基元表达的形式(mcopy$θ),在取代后,所述可执行形式变为用于应用于支点#Φ的指令mcopy。作为评估基元的结果,支点#Φ借助于通过终端连接性24的自由空间搜索获取自由状态支点数字计算引擎#Ψ,并由此指导支点#Φ将自身的副本传递到在#Ψ处的计算单元分段。由于这是副本程序的预期结果,因此将#Ψ沿着链ec返回到b,其中其值变为单元b中的语汇符号’ψ的值。那时,d可由b重新调用,以便传递用于其自变量的定义的新计算的值,即,#Ψ,如d先前所请求。
MTRANS例程的评估像在矩阵转置的第一示例中精确地继续进行。如前所述,沿着链将#Ψ作为ΦT的保留的定义传回到用户接口,并指示矩阵转置的完成。除了两个支点特殊处理单元之外,作出贡献的处理单元通常将被引导返回到自由状态。
这就完成了对并发矩阵转置的管理组织的第二示例的描述。
示例5,用于矩阵乘法的阵列连接性操作:图45图示4×4矩阵乘法所需的通过H曲线的卷积,其中矩阵‘A’和‘B’的元素首先按常规行主次序313并且第二按变换的H曲线阶314布局。图45完全地图示常规行主矩阵乘法的计算的元素,以及为了直接比较的计算出表达为‘H曲线’矩阵的相同结果的H曲线阶操纵的计算的元素。至于常规矩阵转置操作的元素操纵,常规矩阵乘法还建议需要在连接的计算单元之间对角线地传输数据元素。因此,按常规行主次序,矩阵C 316的左上元素315是[11*aa+12*ac+21*ca+22*cc]。为此目的,将矩阵A的行与矩阵B的列组合,矩阵B实际上是为了元素的这种组合而转置的。矩阵397的情况下H曲线阶中的相同第一元素位于318处,并且元素(诸如318)根据图46中图示的组合导出和定位。H曲线变换避免了对非正交路径的需求,并且仅使用笛卡尔路径用于数据元素在笛卡尔计算单元群集之间的递归分布。
为了描述的清晰,矩阵B采用字母数字索引‘a、b、c、d’,但结构原理与针对出于相同目的而使用‘1、2、3、4’的矩阵A所描述相同。(仅为了方便使‘1’与‘a’、‘2’与‘b’...在视觉上相关联,这在符号表示法上与图19的早先‘0,1,2,3’的使用不同)。图46展示在产生H曲线格式中的乘法的结果时A(H)和BT(H)的起始点319和320。图46中的操纵的第一阶段是矩阵B的转置(在H阶中),如例如关于图41所描述。应了解,积矩阵C(H)在H阶中的排序必须在其最终计算上与常规结果的Z转置排序对应。在表示所述元素时,编码‘21ca’例如意指‘A’的元素‘2.1’与‘B’的元素‘c.a’的乘积。
为了计算4×4矩阵乘法,两个矩阵A和BT中的每一个被展开成四个矩阵对321、322、323和324,其中的一些它们自己通过按类似于但不同于图41中前进通过矩阵292到295的方式的方式折叠来系统性地操纵。如在图46中所图示,针对这个程序,‘A’矩阵始终垂直地交换,并且‘BT’矩阵始终水平地交换。四个折叠组合以此机制布置,以便产生所述矩阵对中的每个所得矩阵的16个元素。每对是在其自己的计算单元分段内计算的,使得每对元素(诸如325)(‘32’和‘ad’)可通过COPY一起引进同一计算单元中并原位相乘。元素318是四个乘积11aa、12ac、21ca和22cc的总和,并且是从对323的第三列汇编的;元素326是各自从对324的四个列导出的四个乘积14ac、13aa、24cc和23ca的总和。
最长操作序列是在矩阵C(H)的顶行327的产生中,其中矩阵A(H)和矩阵BT(H)必须首先复制到自由状态计算单元分段中。依序在分段内执行顶层SWAP操作以形成矩阵328和329。这在较低交换层级处重复以形成对321,并且进行元素相乘。最后,乘积按列相加产生期望矩阵C(H)在行327中的最后四个元素。
如果产生乘积H矩阵‘C(H)’中的每个连续行的交换操作的阶由二进制索引表示,那么4×4乘法行依序由格雷码整数‘11g’、‘10g’、‘00g’和‘01g’表示。这些位序列意味着,如果第一个数字是‘1’,那么首先通过变换328和329获得第一行,并且然后如果第二个数字是‘1’,那么通过变换321获得。第二行由‘10’判定,因此仅需要第一类型的变换328和329,并且忽略第二层级阶段。格雷码排序的这个规则对于8×8乘法以‘111g’、‘110g’、‘100g’、‘101g’、‘001g’、‘000g’、‘010g’和‘011g’继续,并且对于更高程度矩阵,以此类推。
对于O3Logn处理时间,忽略矩阵输入延迟,此并发矩阵乘法操作需要原始‘n×n’矩阵的n个副本,因此完整操作需要n×n2个计算单元。时间包括用于展开n个矩阵副本的Ologn,跟着是Ologn SWAP,跟着是列求和的Ologn步骤。通过使最长序列开始于COPY过程的开头,进一步减小是可能的。
示例6,数字微分分析器:另一使用示例是数字微分分析计算(诸如适用于例如部分微分方程的解)的并发迭代。典型地,使用三维扩散方程,这些与时间相关的物理过程(例如,通过固体的温度分布)有关。在这个示例中,用户应用选择具有在连接性内的大范围权限的特殊处理单元,并且所述范围内的每个计算单元计算所模拟材料的规则参考点阵列中的对应3维点的温度。例如,在一个优选实施方案中,具有范围2^20的分段嵌入于20维二进制子超立方体中,但来自每个计算单元的仅六个互连(和六个端口)用于3维数字微分分析器应用。特殊处理单元从用户接收空间参考的索引位流(所述索引位流定义函数表达的子例程和对象形状),以便传递到其相关联的支点以用于分布到其在所述支点控制下的计算单元分段。对于微分分析的此简单示例,假定热扩散系数贯穿材料是恒定的。此外,所述示例的方程仅适用于内部和边界点,这里假定环境温度在边界处是恒定的。端口17和终端连接性24中的用户接口连接机构具有用于接收多个用户应用子消息的构件,所述子消息定义形状特性和三维材料,诸如热扩散系数、每个计算单元的初始温度、以及将要在每个计算单元处评估的函数表达。在这种情况下,‘跳蛙’迭代方法中的一种(诸如Dufort-Frankel)在元素之间是适当的,这受到连接性引导计算单元之间的偶数-奇数迭代的能力辅助,典型地为计算稳定性而包括小‘人工’粘性系数。
由支点共同传递到内部索引的计算单元中的每一个以用于计算局部点温度(其中初始点温度t=to,且无热源)的函数表达可包括例如简单的欧拉近似法:
c*(t1+t2+t3+t4+t5+t6)+(1-6*c)*t,,其中ti是由六个紧邻邻居计算单元中的每一个传导到任何一个这样的计算单元的温度值,并且所述这样的计算单元通过这个表达来更新其自己的温度值‘t’。‘c’是点的网格间距、热扩散系数和时间步骤增量的函数。只有那些通过形状指数表述的计算单元才加载并采用这第一表达。这个算法是对物理部分微分方程的近似,并且在一般情况下只针对小时间步骤和低热容量起作用,但它说明了更能够有限差分化方案的原理。
第二个稍微更复杂的函数表达表示边界点,并且可包括例如:
c*(t1+2*t2+t3+3*Cb*ta)+[1-3*c*(Cb+49)]*t,其中‘Cb’是对流系数,并且‘ta’是环境温度。只有那些具有所述形状指数的计算单元接受且评估这个表达。
当支点广播指令以在主时钟循环迭代时,每个计算单元计算其表达并返回完成信号。可使用主时钟循环的总数的计数来估算所模拟时间的进展。每个计算单元将其自己的状态与由其信号邻近邻居中的六个中的每一个供应的相邻温度进行比较,与其自己的值对比,所述相邻温度表示其紧邻的三维动态环境。如果计算单元是每个‘奇数’时钟循环上的‘奇数’主计算单元,那么它将它自己的值传递到其六个邻居,等待它们在下一个‘偶数’脉冲上的值。在支点发送其指令以迭代的下一个‘奇数’脉冲上,计算单元再次将其值发送到其六个邻居,它们现在通过所述表达按跳蛙序列更新。
偶然地,典型地如由计算单元中的至少一些的相关联的支点引导,这些计算单元将其值发送到其支点计算单元,以用于从连接性通过管理连接性输出到用户。在这个应用中,支点本身确定‘PAUSE’标准(诸如流逝的时间),并将命令广播到其分段,使得某一暂行操作可发生,诸如恢复表示可能地在所模拟域内的一组有限平均化数据的所选择数据值。对于在模拟应用内从所有数字计算引擎规则地输出数据集,有利的是使用先前描述的由控制最顶部支点作出的对对向支点的命令。
示例7,原位排序:作为对跨递归连接性中的大计算单元分段分布的q个符号的阵列进行排序的示例,管理连接性将指令符诸如($SORT#A)传递到所具有的范围大于q的具有地址#A的支点。对于这个示例,假定地址#A是用户软件应用根据用户的应用的先前操作已知的,并且SORT函数名可直接传递到那个特殊处理单元,而无进一步的阐释。所述示例适用于支点控制的维数‘d’大于Log2(q)的分段连接性25的二进制超立方体形式。处理单元引导其相关联的支点将指令解码成可由支点访问的编码的宏命名的SORT,并且依次将那个宏中含有的计算单元基元中的每一个广播到由支点控制的分段中的计算单元,所述支点具有对维数‘d’的分段的权限。在这种简单情况下,仅一个微编码的基元指令需要由计算单元中的每一个(和支点)应用,以便执行期望操作—由基元‘compare_and_swap’(比方说)用符号表示。
图47展示沿着递归曲线的分段的计算单元,诸如330、331和332。由于初始段#A的元素仍然在所述分段中的适当位置,包括填补‘零’元素,因此每个‘偶数’计算单元(诸如330)响应于在其半循环上的所述‘compare_and_swap’指令,首先开放通向其信号邻近邻居中的一个(诸如331)的一个端口(诸如333)(所述一个邻居连接到那个端口),并且传输其自己的符号值。接收计算单元是‘奇数’,并且因此不尝试在那同一时间传输。这后一计算单元在所述半循环上被设定为接收所述符号值并对所接收值进行内部处理。所述分段中的计算单元中的一半在那个半循环上正类似地从其传输邻居中的至少一个接收,并且可接收并比较类似于从‘偶数’计算单元330传输的值的许多值。在现在在‘d’维分段中的每个‘奇数’计算单元中的(d+1)个值中,每个计算单元将它们排序成单调次序,并将它们存储在针对这个示例在表334中列出的对应端口寄存器中。通过每个计算单元的组织、其端口的索引序列、以及其到沿着递归曲线的信号邻近计算单元的互连的相对跨度,有利地体现本地排序以使可用于跨曲线传输的行程距离与数据元素对之间的差异度匹配。
在所述示例中,为了说明,假定计算单元331在所述半循环中不具有到其端口‘+2’的连通,但接收六个其他符号值以用于与当前由初始值‘2’表示的其自己的初始值比较。在这个活动期间,计算单元330在除了一个端口(端口333)外的所有端口中只具有‘零’值。在将其自己的初始值‘7’传输到计算单元331后,计算单元330等待下一个半循环,在所述下一个半循环,计算单元330将从其自己的d个邻居接收许多值以用于进行相同形式的内部排序操作。在每种情况下,除了具有‘零’条目的那些端口外的所有端口将更新的符号值(例如,表334的第三列)传输到其相应邻居。在主时钟的至少两个循环后,如果在计算单元的寄存器中未发生值的改变,那么计算单元在广播和同步广播连接性26中设定其完成旗标,以便登记在阵列#A的总体排序中的其部分的临时完成。然而,如果计算单元由于从邻居接收到新的值而必须对任一端口登记作出后续改变,那么它立即重置其完成旗标。
仅当支点已按相同方式完成时,它才对广播连接性26的其部分进行反应,并且只有一旦所有计算单元已设定其完成旗标,才会这样。当所述分段中的所有计算单元处于未改变的、本地排序的状态时,按定义,阵列#A中的符号值以单调排序的顺序组织。特殊处理单元中的完成的原位($SORT#A)函数返回地址#A作为新阵列在适当位置、准备好用于另外的函数调用(如果有的话)的通知。它被使得能够在被垃圾收集时撤回其响应性,在这种情况下,特殊处理单元的相关联分段中的所有计算单元然后可将其用于那个应用的阵列元素设定到‘零’值。
简要地,然后,在元素操作中,每个计算单元与其‘d’个信号邻近邻居中的每一个通信,以便比较和交换数据元素,直到其满足以下标准:其数据内容在数值上大于其沿着轨迹的前面的邻居且小于其后面的邻居。每个计算单元贯穿广播连接性26设定其完成旗标。当在支点的域内的所有计算单元已设定和保持其旗标时,支点被警示,并且进而通过其相关联的特殊处理单元回应,且因此响应叫作($SORT#A)的管理连接性软件表达。虽然这类似于叫作‘冒泡排序’的串行排序操作,但由每个计算单元对在多维上远程的但信号邻近的计算单元的单步可访问性准许在OLog(q)时间中进行排序,在每个元素计算单元处仅需要的立即本地的知识。
这里跟着是对三分切换节点的一个优选实现方式的详细描述,所述三分切换节点形成本说明书的图10和图11的且如在图7中图示的网络中(诸如在节点61处)采用的三节点电路。开关在这里还以第二示意性形式在图48中展示,图48展示三组输入和输出路径335、336和337。这是由于旋转对称而提供电路简化的对图10的展开(无自由空间线)。每个输入路径和每个输出路径包括至少三个数据信令线,其将在不久描述且如在早先所描述。电路338、339和340在本文中叫作‘选择器’,并且各自具有将输入路径切换到两个输出路径中的一个的构件。电路341、342和343在本文中叫作‘仲裁器’,并且具有选择两个路径中的一个以用于输出到单个输出路径的构件。因此,例如,路径选择器338可将路径344处的输入数字消息通过路径345引导到仲裁器343。当仲裁器接收到消息并且在路径346上不存在其余先前消息时,仲裁器343打开通向输出路径347的消息路径,并保持所述路径开放,以用于344与347之间的后续双向信令事务。选择器电路和仲裁器电路具有在源发装置将其信号从输入端(诸如344)移除时取消沿着路径(诸如345)的路线的切换构件。在这所述一个优选实现方式中,路径选择器338、339和340是相同电路,并且仲裁器341、342和343是相同电路。
将观测到,电路是旋转对称的,并且通过电路的六个路线是可能的。在已访问电路后,高达三个独立的双向信令事务可同时通过电路操作。
图49展示,当作为前述‘A型’三向开关节点(如图10中所图示)操作时,附加‘自由空间’输入线馈入路径选择器,一个(348)来自左边路线、向上通过节点网络,并且一个(349)来自右边路线,每条线能够以信号通知处于自由状态的处理单元的可用性。在图49中,根据例如来自向上右边路径350的信号,并且根据自由空间线351的设定,路径选择器339实现事务从右侧路径350到向下左侧路径347或朝向向上路径352的路由,假定(临时)未针对那获取设定343和541中的相应一个。类似地,如果自由空间线353上不存在自由空间,那么由353引导的路径选择器340实现搜索信号朝向右侧路径354或朝向向上路径352的路由。对于向下路径356,根据自由空间线357和358的设定,并且响应于在356上的向下信号,538可类似地将向下消息切换到仲裁器342或343以用于将事务路由到右侧路径354或左侧路径347,假定未针对那获取设定仲裁器343和342中的相应一个。
或门359接收自由空间线348和349,并且向上传输在下方的任何对向自由单元的通知。不久将描述对节点切换模式的逻辑选择。
图50图示包括通向选择器和仲裁器的每个信号线的三向开关的第三示意图。这个示意图的连接布置在拓扑上与图48的布置相同,并且与图10的布置一致,除了在这里省略了节点的相关联的自由空间线之外。所述线中的第一线(诸如360)是‘获取’线,当在逻辑状态‘1’中为‘高’时,所述‘获取’线结合第二‘地址’线(诸如361)设定通过电路的切换,所述电路准许处理单元渐进地地获取定址的单元。这种操作模式在本文中叫作‘正常’获取。所述获取线具有保持其相关联的路线开放以用于一旦对所调用单元的获取完成时就信令的第二功能。
第二线—‘地址’线361,也具有两个功能。第一功能是通过结合从节点的左侧进入的自由空间线362和从右侧进入的自由空间线363作用于节点电路系统来寻找处于自由状态的单元。如果且只有如果自由空间线363在获取线为低(‘0’)时被设定为低(‘0’),地址线361上的设定高信号才使选择器340能够将地址线信号向上朝向仲裁器641引导并向前引导到输出端352,在输出端352处,信号传递到上方的下一网络节点。如果线363为高,那么选择器340被布置以将地址信号向右切换到仲裁器342,所述仲裁器340将地址线信号向下传递到下方的下一节点。反相器364和365分别连接到选择器339和340的适当自由空间信号输入端,并且确保当其相应自由状态信号重置到低时,这些选择器使地址路径恢复到641。例如,如果自由空间线363为高,从而指示这个节点下方的至少一个自由单元,那么340具有向右切换到仲裁器342并因此如果342尚未被选择器638获取(临时地)则向下切换的构件。如果在这种模式下,选择器340已选择其右边路径用于向下传输,但由于不存在自由对向单元,363处的自由空间信号丢失,那么选择器340具有将搜索地址信号重新引导到其向上路径、通过641(如果准许的话)而到达群组352的地址线的切换构件。这形成‘自由空间获取’模式的部分。
自由空间获取模式将地址线维持为高,以便切换序列向下继续到下一较低节点,通过下一较低节点的等效地址线366,并进入其选择器638。那个节点的选择器(638)还具有来自其等效物362和363的自由空间线输入。当两侧上有自由空间可供使用时,以及还有当只左侧上有自由空间可供使用时,362可切换地启用到左侧分支且向下到仲裁器343的地址路线。如果仅右侧上有自由空间可供使用,那么638将地址路线向右且向下引导到仲裁器342,如前所述。如果362和363都不为高,那么上方的节点必定还丢失了其在至少一侧上的自由空间信号,使得上部节点将地址信号到重新切换替代侧(即,如果那里有自由单元可供使用),或者当搜索沿着树从更高处继续时则向上重新切换。
地址线的第二功能是将对获取线的获取朝向二进制定址的目标单元转向。
沿着整个所引导路线定位的第三切换式线是‘确认’线,诸如367。这由沿着路线的节点开关和锁存器启用,并且形成来自获取序列中的每个节点的短确认脉冲的返回路线,并支持在回到调用单元(在那种情况下,通过端口354连接)的返回方向上的消息。当对向自由单元在自由空间获取模式期间保持处于自由状态时,在获取序列的端部连接到那个单元的最低节点将地址线信号传输到那个单元,所述单元立即通过例如确认线367沿着路线将长响应脉冲传输回到调用单元。调用单元进而用保持为高的获取信号来响应,以便保持完成的路线用于两个处理器单元之间的另外的数据事务。调用单元具有用于检测沿着路线的单独节点获取(由于来自节点电路的短脉冲序列)和用于检测来自所获取单元本身的最终的、较长脉冲的构件。作为进行中的软件应用的部分,所获取单元然后将其自由空间信号重置到低,并将其自己的地址编码通过现在锁存的确认线传输回到‘亲代’调用单元,以用于在稍后时间进行重新获取。类似地,亲代将其地址通常连同其他消息一起通过现在锁存的地址线传输到所获取单元。在完成那个事务阶段后,亲代(调用)单元将获取线和地址线重置到低,使得所获取节点序列得以释放以用于可能地与刚描述的事务不相关的其他事务。
一旦所述单元已互换其地址,每一个随后就可参与‘正常获取’模式,所述模式采用获取线与地址线设定的组合。在这种情况下,获取线是获取信号路径,并且地址线用于根据目标单元的地址引导获取信号的路线。
首先,调用单元将获取线360设定为高,并且返回确认线367上的返回脉冲实现对向上分层节点序列的计数,直到到达在侧向转接前的节点。在期望事务中,来自向上路由的脉冲的数目与两个单元之间的相对地址的二进制序列长度对应。
在接收到来自向上路径中的倒数第二个节点电路的脉冲后,调用单元通过361将其地址线设定为高。倒数第二个节点对获取信号与地址信号的同步接收是借助于延迟电路,并且确保获取信号与地址信号同时传输到用于事务的最顶部节点中的交叉路径选择器。
其次,两个信号从最顶部节点向下通过向下序列中的每个节点的引导之后各自是另一延迟电路。如前所述,这使准备用于在短的延迟后传输到顺列中的后续选择器的获取信号与地址信号同步。选择器638对获取信号、例如连同地址高信号的接收迫使路线向左到343,而获取高信号和地址低信号则迫使路线向右到342。以这种方式,到定址的目标单元的路程上的每个节点获取是通过一系列地址脉冲确定的,每个脉冲是通过来自当前获取的仲裁器电路的确认脉冲在调用单元处触发的。在沿着所打造信令路径的各点处,获取过程可受先前节点活动阻断,在这种情况下,调用单元将其获取信号线维持为高,直到每个节点进而得以释放以用于其用途。所得获取延迟然后取决于网络的那个位置处的并发活动。
实际上,每个节点充当用于用户拨号的‘电话’交换机,一连串交换机由主叫单元自主地控制,而不由中央执行方控制,并且避免在处理器对处理器层级的程序员响应性。因此它提供了处理器单元之间的简单的‘任何对任何’通信互连方案(类似于全球电信网络),并且许多呼叫可跨资源共享网络并发发生。
另一节点操作模式叫作‘远程自由空间获取’,并且准许搜索单元控制到可用的自由状态子代单元的通信距离。然后,子代单元本身具有对搜索距离的一个层级进行倒数并在较短距离上为其本身寻找另一自由单元的构件,由此准许应用事务的自动分层结构化的松散组织,并因此工程设计处理的模块化位置,同样无需蜂窝式层级处的程序员响应性。在远程自由空间获取模式下,然后,节点的降序获取继续进行,就像对于正常获取模式那样,所述获取信号逐个节点继续向上,直到在预期跨接节点前的倒数第二个节点。如对于正常获取,获取信号在那里由地址线信号接合,并且后续选择器将获取朝向相对的(下行)分支交叉切换,如前所述。但在这个自由空间搜索情况下,处理单元将其地址线维持为高,并重置其获取线以用于搜索的其余部分,由此进入本地自由空间获取模式,如前所述。在这个搜索序列期间,可能会丢失自由空间,并且搜索然后如通常一样恢复到树中的更高节点层级。在最终接收到来自目标单元的长脉冲后,搜索单元另一次将其获取线设定为高,以便锁存路线以用于数据信令。
图51至图58中总结三个主要节点操作模式。在两个处理单元PC1(调用亲代单元)与PC2(子代单元)之间,用于与三分节点的操作相关的事务的程序如下:
初始自由空间获取(本地和远程)-
1)PC1信令节点网络以获得处于自由状态的新子代(PC2);
2)PC1通过其地址线,获取并保持通过网络的演化路线;
3)PC2在获取的实例处传输长脉冲,并且在此之后跟着自己的地址;
4)在接收到长脉冲和地址后,PC1转发其自己的地址和消息数据;
5)PC1释放路线。
借助于目标单元地址的后续重新获取(正常获取)-
1)PC1借助于PC2的二进制地址和其短脉冲的计数获取节点序列;
2)PC1通过其获取线渐进地保持通过网络的演化路线;
3)PC2在获取的实例处传输长脉冲并等待消息数据;
4)在接收到长脉冲后,PC1转发其消息数据并等待响应消息;
5)PC1释放路线。
在这个正常获取模式下,可使目标单元参与临时抑制其对调用方的响应的另外处理活动,因此调用方必须然后等待长确认脉冲,即使调用方已实现到目标单元的完成的路线也是如此。
如在前述内容中刚描述,远程自由空间获取如针对正常获取开始,并继续,遵循跨接,如针对本地自由空间获取。
在图51至图58的图示中,ACQUp和ADDUp是指到图7中的节点树网络的根部的方向上的获取线和地址线(诸如从节点61向上的路径59);ACQDn和ADDDn是指在向下到树的目标处理单元层级的路程上的获取的方向。ACKDn是指向下返回到调用单元的确认线,而ACKUp是指来自向下到目标单元的路线的稍后向上确认。‘x’(‘不关心’)指示相关联线上的信号电平对于那个所图示阶段的逻辑控制来说不相关。''指示信号电平在单元(诸如图7的57与62)之间通过‘加粗实线’网络进行的通信事务期间根据消息内容在‘0’与‘1’之间切换。
图51至图58展示获取路线中的节点的三个位置(在向上路径中、在交叉切换处和在向下路径中),以及用于每个位置中的节点的模式逻辑的三个阶段。左分支(诸如图51的368)列出了用于节点的初始获取的逻辑设定,中央分支(诸如369)展示当准许消息传递信号穿过节点时的保持逻辑,并且右分支370展示用于撤出节点的获取的逻辑。
图59展示仲裁器电路的详细逻辑,并且集中在分别具有来自混合与门373和374的控制输入的与非门371和372的正反器布置上,所述与门373和374本身具有来自与门377和378的锁存线375和376。正反器在任一给定时刻到仅一个向上路线的明确切换意味着:门377或378中的仅一个可将信号(来自左边的379或来自右边的380)向上朝向其对应延迟电路381或382传递。
仲裁器中的每一个具有时钟输入383以管理锁存、延迟和确认脉冲发生器电路的时序(如还在图50中展示)。当未进行仲裁器的获取(通过线379或380)时,与门377和378为低,并且线375和376都为低。因此使混合与门373和374准备好传递来自或门384和385的高信号(如果这些中的一个或两个被设定为高)。时钟383半循环在左路线与右路线之间交替地仲裁,使得如果或门384和385同时为高态有效,那么只有一个将在其半循环期间得到对正反器的权限。系统时钟周期被选择为足够长以准许在半循环期间安置正反器门,使得正反器有时间行进到作用中半时钟侧,诸如到设定为高的与门377,因为在那种情况下,或门384已设定为高,并且锁存线375现在抑制来自右边的获取在374处的任何进一步尝试。一般而言,获取时的这种竞争尝试将继续,直到在某一稍后时间再次释放正反器。
一旦向左获取(比方说),那么或门384处的高切换电平穿过与门377传递到确认脉冲发生器386和延迟电路381两者。后者(381)拖延达被选择为足够用于确认脉冲通过确认线387传递到调用单元和用于调用单元将其地址线设定为高的持续时间,如果需要这样以用于控制获取序列中的下一节点阶段的话。
然后,388处的左侧获取线切换电平和389处的地址线切换电平可分别穿过与门390和391。这准许分别通过或门392和393到下一阶段的并发输出,如果需要将获取和地址都一起设定为高的话。由于一次仅有仲裁器的一侧操作,因此或门392和393有效地充当异或门。
为了获取仲裁器的或门384的那一侧,或门384可由获取线而无地址线(与门394)或者由(与门395)地址线而无获取线设定(即,总体上是异或操作)。初始地,获取线和地址线上的信号的同时接收受到抑制,因为那个组合由选择器电路先占,以驱动获取信号跨越到向下路径。然而,在仲裁器的获取后,必须准许通过同时信号的进一步操作,例如,用于消息传递,在这种情况下,通过或门396和现在启用的与门397的电路维持通过或门384的锁存操作。因此,一旦已通过将与门377设定为高来获取左侧,与门397就被启用,所以获取信号388或389中的一者或两者被反馈回到或门384,以便保持锁存接通,即使当地址线和获取线都被设定为高时也是如此。
与门377一被锁存接通,确认短脉冲发生器386就产生其信号,所述信号穿过也通过线375的锁存状态启用的与门398。确认脉冲按需要通过确认线387,而且也通过或门399,向下传到路线中的先前获取的节点,后续脉冲由沿着从4到目的地单元的演化路线更远的节点产生。
为了撤销节点的获取,获取(在388)和地址(在389)信号两者的移除导致到或门384的396/397路线的丢失,并且由于来自394和395的信号类似地丢失,与门377处的左侧锁存器被停用,并且仲裁器再次返回到其仲裁功能。
图60展示选择器电路的详细逻辑,并且集中在分别具有来自混合与门404和405的获取输入的与非门400和401以及控制与门402和403的正反器布置上,所述与门404和405本身具有来自与门407的锁存线406。正反器在任一给定时刻到仅一个向下路线的明确切换意味着:门402或403中的仅一个在被启用时可分别将信号(向左的408或向右的409)向下朝向其左边或右边所选择输出端口410和411传递。所选择路径的闸控是从地址线412的逻辑状态产生,所述逻辑状态对启用通过404(当为高时)的左侧路线和通过405(当为低时)的右侧路线作出贡献。由于这是明确的选择,因此正反器开关状态不需要时钟仲裁。
获取信号在413处进入。地址或获取信号可使仲裁器准备好通过或门414,从而启用与门415和416,以便根据正反器状态向左(417)或向右(418)传递获取信号。所选择获取线(诸如417)进而启用与门420和421,以用于将地址信号(在地址线412上)和获取信号(413)传递到下一路线演化阶段的相应仲裁器。在那个仲裁器处,其延迟元件准许顺列中的下一节点的下一获取和地址信号的同步,同时所产生确认脉冲通过端口410(如果获取是向左的话)返回,并且然后通过或门422返回到先前获取的节点。
在正常获取模式期间,并且针对远程自由空间获取模式,来自413的获取信号使与门402和403准备好(分别通过或门423和424),同时由正反器选择的侧由地址线412确定。如先前解释,为了确保由选择器进行的明确切换事件,必须确保两个信号的组合一致地在412和413处发生,否则选择路由将针对需要获取高和地址高信号的同时存在的‘向左定址’常规获取情况和‘控制的跨接’情况偏置。先前延迟阶段确保所述信号一起抵达412和413,并且这在第一节点处也是必要的,在第一节点处,所述信号必须类似地由调用处理单元驱动。
当获取线413在自由空间搜索期间为低时,与门425和426由通向两侧的地址线启用,并且输入端427或输入端428处的自由空间高信号的存在使地址信号的路由在用于向下搜索的那个方向上偏置。如果两侧都具有自由空间高信号,那么不存在对搜索方向的偏好,并且当前正反器状态将规定搜索的方向。

Claims (43)

1.一种数据处理连接设备,其包括:
多个能并发操作的计算单元,所述计算单元各自能操作以对数字代码进行存储、分布和操纵,并且各自在存储中存储有唯一地规定其在所述连接设备中的位置的地址;
能够可切换地选择的双向的信令路径的第一网络,所述信令路径各自分别链接一对所述单元,每个单元具有通向所述网络中的大量接口连接电路,所述大量接口连接电路使得能够通过相似大量所述信令路径与相似大量所述单元互换数字代码,大量所述单元被称作所述每个单元的“邻居”;
至少一组的路径选择代码,所述至少一组的路径选择代码双射地映射到多个所述单元中并且是根据递归算法规定的,除了终端代码之外,每个路径选择代码适于引导其对应单元选择通向所述对应单元沿着代码选择的路径的信令链的随后邻居单元的所述信令路径以用于单向信号传输,所述信令链只穿过多个所述单元中的每一个一次,从而沿着其长度递归地定界分层嵌套的分段并描述沿着其所述嵌套分段中的每一个群集的对应地定界的子连接设备;并且
若干所述子连接设备中的每一个具有自主操作的通信和处理构件,所述通信和处理构件能操作以对来自对应用户的数字代码阵列执行并发阵列处理。
2.如权利要求1所述的连接设备,其中
若干所述子连接设备中的每一个具有控制数字处理单元,被称作“支点”,其具有与其规定子连接设备的位置和大小相对应的控制范围,每个支点具有通向用户接口电路的双向信号通信路线,并且根据所述信令链的形式,所述支点及其对应单元嵌套的分段一起具有沿着所述信令链按顺序次序将数字代码从所述用户接口传送到对应地规定的子连接设备的所述单元的构件。
3.如权利要求2所述的连接设备,其中
每个支点是所述单元分段的规定成员单元,所述规定成员单元具有适于用户接口连接和适于控制其对应子连接设备的另外电路系统。
4.如权利要求2或3所述的连接设备,其中
每个支点及其对应子连接设备一起具有将信号并发地且共同地从所述支点分布到沿着其对应地规定的分段的所有单元的广播构件。
5.如权利要求4所述的连接设备,其中
所述子连接设备的每个单元具有将至少同步信号传输到其控制支点的构件,每个单元由此响应于所述同步信号而告示其自己的操作的完成。
6.如权利要求5所述的连接设备,其中
每个支点连接到信号引导分层排序信令路径树的根节点切换电路和对向节点电路,所述树的叶层级对向信令路径中的每一个连接到属于所述每个支点的对应地规定的分段的对应单元以用于信号传输。
7.如权利要求6所述的连接设备,其中
所述节点电路具有组合部分地收集的所述同步信号并借助于所述根节点将其传输到所述支点的构件。
8.如权利要求2所述的连接设备,其中:
每个支点在存储区中保持表示其对应分段的所述范围的参数;所述支点具有在其间互连的根据所述支点的所述分层嵌套的范围分层排序的电路网络;并且根据所述分段链的所述分层嵌套的布置和支点范围,若干支点具有由此可切换地选择并以编程方式编码下级范围的支点的构件。
9.如权利要求8所述的连接设备,其中
控制所具有的范围大于且涵盖具有相关联的第二支点的下级分段的上级分段的第一支点具有任意构件,所述构件能操作以抑制由所述第二支点对其自己的所述下级分段的访问,并且控制所述下级分段中的所述单元。
10.如权利要求8或9所述的连接设备,其中
每个支点的所述地址编码所述范围表示参数。
11.如权利要求1所述的连接设备,其中
分时数据总线电路系统替换所述第一网络的若干所述信令路径,所述电路系统适于按顺序次序导引所述第一网络的一系列所述数字代码通过数据总线,所述数字代码在相应单元对之间可切换地排序,并且所述数据总线电路系统负责所述信令链中的相应路径。
12.如权利要求1所述的连接设备,其中
每个单元具有一系列能够切换的操作状态,包括废除其存储器内的用户数字代码和进入被称作“自由状态”的未被采用的操作状态并且当不处于自由状态时被使得能够至少进入被称作“调用状态”的操作状态的构件,所述“调用状态”适于获取通向另一单元的信令路线并与所述另一单元交换数字代码。
13.如权利要求12所述的连接设备,其中
当单元处于自由状态中时,由所述单元将自由状态信号传输到所述连接设备中。
14.如权利要求13所述的连接设备,其中
所述单元具有响应于规定代码恢复到自由状态的构件,以及取消其自由状态信号到所述连接设备中的传输的构件。
15.如权利要求1所述的连接设备,其中
所述第一网络使得信号发起单元能够借助于所述单元和信令路径中的一系列地址选择的单元和信令路径将数据代码传送到所述多个单元中的任何其他一个,被称作“目标单元”,其中的每个单元通过与所述数据代码一起传输的单元选择地址代码可切换地排序。
16.如权利要求1所述的连接设备,其中
所述信令链的路径的轨迹具有曲线的形式。
17.如权利要求1所述的连接设备,其中
所述信令链的路径的轨迹具有H曲线递归序列的形式。
18.如权利要求1所述的连接设备,其中
唯一地规定了每个单元在所述连接设备中的位置的所述地址是循环编码的地址。
19.如权利要求18所述的连接设备,其中
所述循环代码地址是格雷编码的地址。
20.如权利要求1所述的连接设备,其中
所述第一网络是k进制n环面,并且每个单元连接到其2n个邻居中的每一个以用于数据通信。
21.如权利要求20所述的连接设备,其中
k是2,并且每个单元连接到其n个邻居中的每一个以用于数据通信。
22.如权利要求2所述的连接设备,其中,
在共同的控制支点的引导下,第一子连接设备借助于所述第一网络的信令路径被使得能够在直接平移等距中移动其所述数字代码的阵列,所述数字代码由此同步地逐步传送通过所述路径的序列,所述数字代码中的每一个将分别作为相似阵列存储于单元的第二子连接设备中。
23.如权利要求22所述的连接设备,其中,
所述第一子连接设备的若干单元并发地被使得能够获取通向所述第二子连接设备的位于地址指明的位置中的相应位置处的若干单元的数据传输路线,所述第二子连接设备的所述若干单元与所述第一子连接设备的所述若干单元相当。
24.如权利要求23所述的连接设备,其中
所述第一子连接设备和所述第二子连接设备被布置和连接以用于按左右对映关系并发地数据传输。
25.如权利要求1所述的连接设备,其中
系统时钟能在交替半循环上操作,首先在一个半时钟循环上激活所述多个单元中的一半以用于与属于所述多个单元中的其余一半的邻居通信,并且然后在另一半时钟循环上激活所述单元中的其余一半以用于通信。
26.如权利要求25所述的连接设备,其中
所述系统时钟在一个半时钟循环上激活所有奇数地址的单元以用于与具有偶数地址的邻居通信,并且然后在另一半时钟循环上激活具有偶数地址的所述邻居以用于与具有奇数地址的邻居通信。
27.如权利要求25或26所述的连接设备,其中
响应于共同的指令,子连接设备中在一个半时钟循环上作用的每个单元具有用于按规定顺序次序选择和信令其邻居中的每一个的构件。
28.如权利要求2所述的连接设备,其
包括若干所述用户接口电路以及能够可切换地选择的切换节点和信令路径的多路复用网络,每个多路复用器节点被称作“转向器”,通过所述转向器,所述若干所述用户接口电路中的一些并发地各自被使得能够选择信令路线以用于到所述支点中的对应的用户指明的支点的双向信号传输。
29.如权利要求28所述的连接设备,其中
每个用户接口电路具有能操作以按顺序可切换地选择每个转向器的构件,每个转向器适于选择所述信令路线的部分路线,所述信令路线由此通过至少一个转向器渐进地形成,并且被锁存开放以用于信令。
30.如权利要求29所述的连接设备,其中
用户接口电路具有包括至少搜索状态的大量操作状态,并且当处于搜索状态时,所述用户接口电路将搜索信号传输到所述多路复用网络中,每个所述转向器适于响应于所述搜索信号和来自处于自由状态的支点的自由状态信号的存在两者而选择双向部分路线。
31.如权利要求30所述的连接设备,其中
转向器具有用于根据表示所述用户指明的范围的来自所述用户接口电路的搜索信号和来自处于自由状态的规定范围的支点的自由状态信号两者选择朝向所述支点的部分路线的构件。
32.如权利要求31所述的连接设备,其中
所述用户接口电路与所述多路复用网络一起具有重新引导构件,所述重新引导构件能操作以使得在所述用户接口电路在所述搜索状态下被获取并且切换离开其自由状态的情况下,所述多路复用网络将所述双向部分路线重新引导到相似范围的自由状态支点。
33.如权利要求32所述的连接设备,其中,
在没有这样的自由状态支点可供使用的情况下,用户接口具有保持所述搜索状态搁置的切换构件。
34.如先前权利要求30至33中任一项所述的连接设备,其中
用户接口电路包括调用状态和先前获取的支点的所述地址,并且当处于调用状态时,具有用于将调用信号传输到所述多路复用网络中的构件,通过根据所述用户指明的支点的所述地址通过一系列转向器设定方向开关,所述调用信号前进通过所述部分路线。
35.如权利要求1所述的连接设备,其中
双向信令路径和信号引导节点开关电路的第二网络,所述双向信令路径是能够通过另外的单元接口电路可切换地选择的,所述信号引导节点开关电路实现所述多个单元的对之间的互连,使得处于调用状态的第一单元具有通过所述信令路径中的并且遵循路线的按顺序与第二单元的目的地地址相互对应的一系列能够选择的信令路径与所述第二单元通信的构件,其中一系列的所述信令路径从所述第一单元渐进地排序通过毗连节点,并且每个节点具有将自身和其毗连信号路径锁存开放以用于单元之间的双向数据传输的构件,所述网络被配置成使穿过它的多个这样的路线能够共存。
36.如权利要求35所述的连接设备,其中:
所述第二网络包括双向信令路径和分层布置的标注的信号引导节点电路的至少一个标注的树;每个所述树在其叶层级双射地将相似多个对向叶路径连接到所述多个单元;所述第一单元具有由此根据匹配所述第二单元的对向树节点的分层排序的标签代码的目的地地址编码可切换地通过一系列所述标注的节点和对向叶路径连接到所述第二单元以用于通信的构件;并且依靠沿着所述信令链的单元地址的单调序列,至少一个所述树的每个所述叶路径连接到拥有对应地编码的地址的对应单元。
37.如权利要求35或36所述的连接设备,其中
所述多个单元中的每一个具有树搜索状态,并且当处于树搜索状态时,具有通信发起构件,所述通信发起构件能操作以将搜索信号传输到所述第二网络中,所述搜索信号能切换以选择一系列所述信号引导节点,所述信号引导节点各自具有响应于所述搜索信号和从未被采用的单元通过所述第二网络供应的自由状态信号的存在两者而选择路径并且将路径锁存开放以用于通过所述第二网络信令的切换构件,所述节点和所述信号一起适于形成从处于树搜索状态的单元到未被采用的单元的完成的路径,每个这样的完成的路线互连所述单元中的相应一对并且实现数字代码在所述相应一对的单元之间的交换。
38.如权利要求36所述的连接设备,其中,
每个所述信号引导节点是三分开关,其形成所述双向信令路径中的三个之间的接合点,由此提供通过所述节点的六个单向路径,上部路径被引导朝向所述树的所述根,并且左和右侧向路径各自被引导朝向所述对向叶路径,来自所述单元的自由状态信号朝向所述上部路径流过所述左和右侧向路径并且准许搜索信号与自由状态信号会合,由此可切换地将所述搜索信号朝向未被采用的单元引导,并且进一步准许两个调用信号并发地穿过所述节点。
39.如权利要求35所述的连接设备,其中
处于调用状态的单元具有通过所述信号引导节点获取指明范围的支点以用于信令的构件,所述支点具有从所述节点根据支点沿着所述信令链的位置的排序构成的地址。
40.如权利要求35所述的连接设备,其中
第二网络包括若干标注的树,所述树各自在其叶层级双射地将多个对向叶路径连接到所述相似多个单元,任何对向调用单元由此能够可切换地连接到若干目标单元以用于并发信令。
41.如权利要求40所述的连接设备,其中
若干这样的标注的树中的一些各自按相对于彼此侧向移位的方式连接到相应单元,并且每个单元在所述移位的二进制树布置中的每一个中占据不同叶位置。
42.如权利要求40或41所述的连接设备,其中
若干这样的标注的树中的一些各自按相对于彼此旋转移位的方式连接到相应单元,并且每个单元在所述移位的二进制树布置中的每一个中占据不同叶位置。
43.如权利要求35所述的连接设备,其中:
若干单元通过用于作为计算群体相互通信的构件实现对来自用户的数字编码的函数表达的存储和计算,每个单元具有至少用于根据用于简化函数表达的规则计算指令序列的逻辑和算术处理电路系统;所述序列实现对所述函数表达的可计算函数和所述计算群体内的单元中的另外单元的调用地址两者的评估;并且所述另外单元中的每一个类似地计算另一函数表达,从而返回呈函数自变量的形式的结果以应用于所述数字编码的函数表达的所述简化。
CN201880045443.9A 2017-05-17 2018-05-17 数字处理连接性 Active CN110914813B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1707970.8A GB2562520A (en) 2017-05-17 2017-05-17 Digital processing connectivity
GB1707970.8 2017-05-17
GB1805652.3A GB2561091B (en) 2017-05-17 2018-04-05 Data processing connectivity for parallel processing of arrays of digital codes
GB1805652.3 2018-04-05
PCT/EP2018/063007 WO2018211042A1 (en) 2017-05-17 2018-05-17 Digital processing connectivity

Publications (2)

Publication Number Publication Date
CN110914813A CN110914813A (zh) 2020-03-24
CN110914813B true CN110914813B (zh) 2023-10-31

Family

ID=62196599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880045443.9A Active CN110914813B (zh) 2017-05-17 2018-05-17 数字处理连接性

Country Status (6)

Country Link
US (1) US11016930B2 (zh)
EP (1) EP3625691A1 (zh)
JP (1) JP6956310B2 (zh)
CN (1) CN110914813B (zh)
GB (2) GB2562520A (zh)
WO (1) WO2018211042A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341328B2 (en) * 2018-11-30 2022-05-24 Hewlett Packard Enterprise Development Lp Dynamic grammar augmentation for editing multiple network switch configuration files as a single file
GB201904267D0 (en) * 2019-03-27 2019-05-08 Graphcore Ltd A networked computer with multiple embedded rings
US20200322664A1 (en) * 2019-04-05 2020-10-08 Grass Valley Canada System and method for ai driven orchestration automation of live production & channel playout
CN112039786B (zh) * 2019-06-04 2021-11-19 清华大学 基于Torus网络的广播方法
CN112187635B (zh) * 2019-07-01 2023-02-03 中兴通讯股份有限公司 报文转发方法及装置
US11656849B2 (en) * 2019-08-14 2023-05-23 Vorticity Inc. Dedicated hardware system for solving partial differential equations
US11403070B2 (en) 2019-08-19 2022-08-02 Vorticity Inc. Systolic array design for solving partial differential equations
US11921813B2 (en) 2019-08-20 2024-03-05 Vorticity Inc. Methods for utilizing solver hardware for solving partial differential equations
EP3973406A1 (en) * 2020-03-26 2022-03-30 Graphcore Limited Embedding rings on a toroid computer network
CN112241390B (zh) * 2020-10-22 2022-08-30 上海兆芯集成电路有限公司 主机互连装置及其方法
CN112485972B (zh) * 2020-11-19 2022-03-29 东南大学 一种基于欧拉图的激光直写加工多胞结构的路径优化方法
CN112419140B (zh) * 2020-12-02 2024-01-23 海光信息技术股份有限公司 数据处理装置、数据处理方法及电子设备
US11720521B2 (en) 2021-03-29 2023-08-08 Alibaba Singapore Holding Private Limited Topologies and algorithms for multi-processing unit interconnected accelerator systems
US20220414051A1 (en) * 2021-06-28 2022-12-29 Silicon Laboratories Inc. Apparatus for Array Processor with Program Packets and Associated Methods
CN113708963B (zh) * 2021-08-20 2022-08-16 北京大学深圳研究生院 一种满足联盟链分区容忍性的优化拓扑递归方法及系统
CN113626769B (zh) * 2021-10-12 2022-01-21 中国人民解放军国防科技大学 面向向量处理器的低位宽数据矩阵向量化转置方法及系统
CN116343958B (zh) * 2023-03-03 2024-05-10 湖北工业大学 多相体系连通性的判断方法及系统
CN117149446B (zh) * 2023-10-31 2024-03-12 成方金融科技有限公司 一种基于图形处理器的数据处理方法、装置、设备及介质
CN117176589B (zh) * 2023-11-03 2023-12-29 南京邮电大学 一种低开销的数据中心网络系统及其构建方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123109A (en) * 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
CN1063168A (zh) * 1991-01-11 1992-07-29 Gec马科尼有限公司 并行处理装置
US5568614A (en) * 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5920561A (en) * 1996-03-07 1999-07-06 Lsi Logic Corporation ATM communication system interconnect/termination unit
US6256107B1 (en) * 1997-05-30 2001-07-03 Sharp Kabushiki Kaisha Image forming system including interconnected and priority allocated image forming devices
CN1382280A (zh) * 1999-02-05 2002-11-27 坦斯利卡公司 用于设计可配置的处理器的自动处理器产生系统及其方法
CN1815963A (zh) * 2006-03-10 2006-08-09 清华大学 数据网格系统中数据副本的混合定位方法
CN103718197A (zh) * 2011-06-07 2014-04-09 美国亚德诺半导体公司 可编程概率处理
CN105091889A (zh) * 2014-04-23 2015-11-25 华为技术有限公司 一种热点路径的确定方法及设备
EP3144820A1 (en) * 2015-09-18 2017-03-22 Stichting IMEC Nederland Inter-cluster data communication network for a dynamic shared communication platform

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE9002558D0 (sv) 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor
JPH06500655A (ja) * 1990-10-03 1994-01-20 スィンキング マシンズ コーポレーション 並列コンピュータ・システム
JPH06290158A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
CA2129882A1 (en) * 1993-08-12 1995-02-13 Soheil Shams Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same
DE60237433D1 (de) * 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
US8103866B2 (en) * 2004-06-18 2012-01-24 Nethra Imaging Inc. System for reconfiguring a processor array
WO2009101562A2 (en) * 2008-02-11 2009-08-20 Nxp B.V. Method of program obfuscation and processing device for executing obfuscated programs
EP3382569A1 (en) * 2008-05-15 2018-10-03 Fujitsu Limited Network for interconnecting computers
JP5750963B2 (ja) * 2011-03-22 2015-07-22 富士通株式会社 並列計算機システム、制御装置、並列計算機システムの制御方法および並列計算機システムの制御プログラム
US8904398B2 (en) 2011-03-31 2014-12-02 International Business Machines Corporation Hierarchical task mapping
JP2014211767A (ja) * 2013-04-18 2014-11-13 富士通株式会社 情報処理システム、制御装置及び情報処理システムの制御方法
WO2016159765A1 (en) * 2015-03-27 2016-10-06 Recore Systems B.V. Many-core processor architecture and many-core operating system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123109A (en) * 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
CN1063168A (zh) * 1991-01-11 1992-07-29 Gec马科尼有限公司 并行处理装置
US5434972A (en) * 1991-01-11 1995-07-18 Gec-Marconi Limited Network for determining route through nodes by directing searching path signal arriving at one port of node to another port receiving free path signal
US5568614A (en) * 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5920561A (en) * 1996-03-07 1999-07-06 Lsi Logic Corporation ATM communication system interconnect/termination unit
US6256107B1 (en) * 1997-05-30 2001-07-03 Sharp Kabushiki Kaisha Image forming system including interconnected and priority allocated image forming devices
CN1382280A (zh) * 1999-02-05 2002-11-27 坦斯利卡公司 用于设计可配置的处理器的自动处理器产生系统及其方法
CN1815963A (zh) * 2006-03-10 2006-08-09 清华大学 数据网格系统中数据副本的混合定位方法
CN103718197A (zh) * 2011-06-07 2014-04-09 美国亚德诺半导体公司 可编程概率处理
CN105091889A (zh) * 2014-04-23 2015-11-25 华为技术有限公司 一种热点路径的确定方法及设备
EP3144820A1 (en) * 2015-09-18 2017-03-22 Stichting IMEC Nederland Inter-cluster data communication network for a dynamic shared communication platform

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于递归和SVM的特征选择方法研究;高猛;;电子测试(09);全文 *
安维蓉,莫安民,H・J・HELGET.公共信道信令.计算机工程与设计.1993,(06),全文. *
对象代理数据库的双向指针存储优化方法;胡聪睿;刘斌;冯岭;王飞;彭智勇;;计算机学报(08);全文 *

Also Published As

Publication number Publication date
JP2020520530A (ja) 2020-07-09
GB2561091B (en) 2019-10-23
CN110914813A (zh) 2020-03-24
US20200301876A1 (en) 2020-09-24
GB201805652D0 (en) 2018-05-23
GB2562520A (en) 2018-11-21
US11016930B2 (en) 2021-05-25
GB2561091A8 (en) 2018-10-24
GB2561091A (en) 2018-10-03
JP6956310B2 (ja) 2021-11-02
WO2018211042A1 (en) 2018-11-22
EP3625691A1 (en) 2020-03-25

Similar Documents

Publication Publication Date Title
CN110914813B (zh) 数字处理连接性
Guerreschi et al. Two-step approach to scheduling quantum circuits
Lim et al. Efficient algorithms for block-cyclic redistribution of arrays
Rapaport Multi-million particle molecular dynamics: II. Design considerations for distributed processing
Siegel et al. Using the multistage cube network topology in parallel supercomputers
Tiskin The design and analysis of bulk-synchronous parallel algorithms
Lin et al. Adaptive multicast wormhole routing in 2D mesh multicomputers
Chien Concurrent aggregates (CA): design and experience with a concurrent object-oriented language based on aggregates
Bokhari Multiphase complete exchange: A theoretical analysis
US8792786B2 (en) Photonically-enabled in-flight data reorganization
Chen et al. Wavelength assignment for realizing parallel FFT on regular optical networks
Jaros Evolutionary optimization of multistage interconnection networks performance
Rettkowski et al. ASIR: application-specific instruction-set router for NoC-based MPSoCs
Rajbhandari et al. CAST: Contraction algorithm for symmetric tensors
Ziavras et al. Data broadcasting and reduction, prefix computation, and sorting on reduced hypercube parallel computers
Khan et al. A transputer routing algorithm for non‐linear or dynamic finite elementanalysis
Greenberg et al. The cost of complex communication on simple networks
Quadri et al. Modeling of topologies of interconnection networks based on multidimensional multiplicity
Al-Abadleh et al. Embedding Static Networks Into Hex-Cell Topology
Awwad Efficient structural outlooks for vertex product networks
Ma et al. E-kernel: an embedding kernel on the IBM Victor V256 multiprocessor for program mapping and network reconfiguration
Tao Mapping parallel programs onto parallel systems with torus and mesh based communication structures
Murta Support for Transputer Based Program Development via Run-Time Link Reconfiguration
De et al. Parallel architecture and algorithms for space weather prediction–A review
Saikia A copy of the thesis On the Star Graph Interconnection Topology for Parallel Computing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 10A North Street, Clayton Town, Devon, UK

Applicant after: Derek John Hamlin

Address before: Kent County

Applicant before: Derek John Hamlin

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant