计算机阵列中的资源分配的制作方法

文档序号:6453854阅读:152来源:国知局
专利名称:计算机阵列中的资源分配的制作方法
技术领域
本发明涉及计算机和计算机处理器领域,更具体地涉及计算机之间唯一 类型的交互的方法及工具。当前本创造性计算机阵列主要用在单个微芯片上 组合多个计算机的方面。
背景技术
使用多个计算机处理器共同工作来完成任务在现有技术中是公知的。多 线程及若干其它方案已经用来允许处理器的合作。然而,业界普遍认为在该 领域中还有很多改进的空间。而且,将若干个处理器合并到单个芯片上是目 前的一个趋势,从而激化了问题,且增加了寻找用于使计算机以有效的方式 共同工作的解决方案的紧迫性。目前认为,出于一些原因,对于很多应用而 言,多处理器的最佳布置可能是由很多计算机组成的阵列,每个计算机均具 有处理能力,并且至少某些计算机具有专用存储器。在这样的例子中,这些 计算机各自的功能凭其自身都不是特别强大,但是计算能力将通过计算机的 密切合作来实现。
以该同 一发明人的名义的相关未决申请已经描述并要求保护这类计算 机阵列的若干创造性方面,包括一些关于如何布置这类计算机以及这类计算 机之间的通信通道如何产生的细节。然而,为了以最高的效率来运行,实现 具有相对较新构思的计算机阵列还需要更多创新。
很明显,关于如何最好地布置计算机阵列、在计算机阵列之间进行通信、 在计算机阵列中划分任务以及以别的方式来使用计算机阵列,还有很多有待 解答的问题。这些问题中的一些问题可能已经得到解答,但是即使在现有解 决方案的基础上还可能有充分的改进空间。在其它情况下,可能需要处理第一次出现的问题的解决方案,以解决现有技术中不存在的新难题。

发明内容
因此,本发明的一个目的在于提供一种用于有效使用计算机阵列中可用 的计算能力的方法及装置。
本发明的另一目的在于提供一种用于以低成本提供强大的计算能力的 装置及方法。
本发明的再一 目的在于提供一种用于提高多计算机阵列的运算速度的 装置及方法。
本发明的又一目的在于提供一种用于完成在计算机上强度大的任务的 装置及方法。
本发明的再一目的在于提高速度和效率,使计算机组中的一个计算机可 以与剩余计算机中的 一个或多个计算机进行通信和/或使用剩余计算机中的 一个或多个计算机的资源。
简言之,本发明的一个已知实施例是计算机阵列,各计算机具有其自身
的存储器,并且能够独立执行计算功能。为了合作完成任务,这些计算机必 须在彼此之间传输数据和/或指令。根据发明的一个实施例,这些计算机与 垂直相邻的计算机之间具有连接的数据通路,从而使各计算机能够与多至四 个"邻居"直接通信。如果期望计算机与另一个非直接邻居的计算机进行通 信,则通信会通过其它计算机引导至期望的目的地。
由于根据本发明所描述的实施例,包含多至四条指令的数据字可以在计 算机之间并行传递,也可以向各计算机的内部存储器并行传递,以及从各计 算机的内部存储器并行传递,所以根据本发明,各数据字可以由最小程序组 成,这里该最小程序称作微循环。应该记住在大型的处理器阵列中,大型的 任务被理想地划分为多个较小的任务,各较小的任务可以由能力有些有限的 处理器来容易地完成。因此,四条指令的循环被认为十分有用。该事实甚至 由以下相关联的事实变得更加值得注意,即由于这些计算机具有有限的装备,因此对它们来说间或从邻居"借用"装备是有利的。这将会给予微循环 的使用以理想的机会。虽然计算机可能需要从邻居借用处理能力等,但另一 种可能是计算机可能需要从邻居借用一些存储器,并以有些类似于其自身的 内部存储器的方式来使用借用的存储器。这种存储器的借用可以通过向邻居 传输指示该邻居读取或写入数据串的微循环来很容易地完成。这样的微循环 可以包含例如从特定的内部存储器位置写入、将该位置递增然后重复一给定 次数的迭代的指令。
以上向邻居传递微循环的例子是本发明又一 方面的例子,由于这些例子
目前是以Forth计算机语言实现的,因此该例子被称作"Forthlet" —尽管本 发明的应用不严格局限于使用Forth。 Forthlet是可以被直接发送到计算机以 供执行的小型程序。在现有技术的计算机中,指令在执行之前必须被读取并 存储,但是从这里的详细描述中可以看出,根据本发明不需要在执行之前读 取并存储指令。的确,预计发明的重要方面是计算机可以生成Forthlet并将 其传递到另一计算机来执行。Forthlet可以由程序员"预写入"并存储,以 供使用。的确,Forthlet可以被积累到"库"中,以供在需要时使用。然而, 可以在计算机内根据预编程的准则生成Forthlet也落在该发明的范围内。
以举例方式,在该发明的实施例中,I/O寄存器被视为存储器地址,这 意味着对存储器进行读和写的相同(或相似)指令还可以执行i/o操作。在 多核芯片的情况下,I/O结构的这种选择具有很强大的分支。核处理器不仅 可以从其本地ROM和RAM读取并执行指令,而且还可以读取并执行在I/O 端口或寄存器上呈递给它的指令。目前传输数据的紧致循环的构思变得难以 置信的强大。它允许指令流在I/0端口处呈递给核,并从这些端口处直接执 行。因此, 一个核可以向邻接的核处理器发送代码对象,该邻接的核处理器 可以直接执行该代码对象。目前代码对象可以在核之间传递,这些核在寄存 器中执行这些代码对象。由于各核基本上完全在其自身的本地地址空间中工 作,没有明显的时间用于传输代码指令,因此代码对象以很快的速度到达。
如上所述,各取指令将多条(在当前描述的实施例中是四条)指令带入核处理器。尽管这类内建"高速緩沖存储器"当然很小,但是当指令本身可
以利用它时就它会变得非常有效。例如,由于-下一条(for-next)微循环可 以构造为完全包含在单个18位指令字的范围内。当与建立在I/0寄存器内 的自动状态信令结合时,这种类型的构造是理想的,因为这意味着大的数据 块可以仅用单个取指令来传输。并且使用这种类型的指令打包,执行在来自 邻居处理器核的共享的1/0寄存器上呈递的指令的构思具有新的能力,因为 现在出现在那个寄存器中的各字表示的不是一条指令,而是四条指令。这些 类型的软件/硬件结构以及它们对多核芯片的性能的巨大影响是传统语言不 能轻易获得的-它们仅在这种指令集中才是可能的,即在单个字之内打包了 多条指令,并且可以从该字内执行完整的循环。
考虑到这里所描述的以及在几副附图中所示出的对发明的实施方式及 其工业实用性的描述,本发明的这些及其它目的和优点将对本领域技术人员 来说变得清晰。所列出的目的和优点并没有穷尽发明的所有可能的优点。而 且,即使在应用中缺少或不需要一个以上计划的目的和/或优点的情况下, 也可以实施该发明。
进一步地,本领域技术人员将认识到本发明的各种实施例可以实现所描 述的目的和/或优点中的一个或更多,但不一定是全部的目的和/或优点。因 此,这里所描述的目的和/或优点并不是本发明的必须元素,且不应当解释 为限制。


图1是根据本发明的计算机阵列的概略图2是示出图1的计算机子集的更详细视图以及图l的互连数据总线的 更详细^L图3是描绘图l和图2的计算机之一的一般布局的框图; 图4是根据本发明的应用的指令字的概略图; 图5是图3的时间片定序器42的示意图。
具体实施例方式
在参见附图的以下描述中对该发明进行描述,在附图中,相似的附图标 记表示相同或相似的元件。虽然本发明是根据用于实现本发明的目的的模式 来描述的,但是本领域技术人员将认知到可以不脱离本发明的精神或范围的 情况下,根据这些启示实现变体。
这里所描述的和/或在附图中所示的本发明的实施例及其变体仅以示例 方式给出,并不限定本发明的范围。除非以其它方式具体说明,本发明的个 别方面和部件可以被省略或修改,可以具有因此被替代的已知等价物,也可 以具有还未知的替代品,例如可能在未来开发的替代品,或例如可能在未来 被发现是可接受的替代品。由于潜在应用的范围很大,且由于本发明意在适 应很多这样的变体,因此只要保持在所要求的发明的精神和范围之内,还可 以针对各种各样的应用来对本发明进行修改。
虽然使用即具有计算机之间的异步通信也具有独立异步运行的计算机 的计算机阵列来描述以下实施例,但是本发明的应用决不受到该背景的限 制。
实施本发明的一种已知方式是单个计算机的阵列。图1中的概略图中描
绘创造性计算机阵列,该计算机阵列在此由一般附图标记10来指代。计算 机阵列10具有多个(在示出的例子中是24个)计算机12 (在阵列的例子 中有时也称作"核"或"节点")。在示出的例子中,计算机12中的所有 计算机都位于单个电路小片14上。根据本发明,计算机12中的各计算机通 常是独立运行的计算机,这在下文更详细地讨论。计算机12通过多条互连 数据总线16 (其数量将在下文更详细地讨论)相互连接。在该例子中,数 据总线16是双向异步高速并行数据总线,尽管出于该目的而采用其它的互 连手段也在发明的范围之内。在阵列IO的本实施例中,不仅计算机12之间 的数据通信是异步的,而且独立的计算机12内部也以异步模式运行。发明 人已经发现这种模式提供了重要的优势。例如,由于没有必要在整个计算机阵列10中分发时钟信号,因此可以节省大量的功率。此外,没有必要分发
时钟信号还消除了可能限制阵列10的大小或产生其它已知困难的很多时序问题。
本领域技术人员将认识到,电路小片14上还存在附加的部件,为了清 楚起见,图1的视图中省略了这些部件。这些附加的部件包括微处理器芯片 的电源总线、外部连接焊盘及其它这些普通方面。
计算机12e为不处于阵列10边界的一个计算机12的例子。也就是说, 计算机12e具有四个互相垂直的相邻计算机12a, 12b, 12c和12d。在下 文中将使用计算机12a-12e的这个分组,来更详细讨论阵列10的计算机12 间的通信。在图1的^L图中可以看出,诸如计算机12e之类的内部计算机12 具有四个其他的可以通过总线16与其通信的计算机12。在以下讨论中,所 讨论的原理将应用于除了只能够与三个其他计算机12直接通信的位于阵列 IO边界的计算机12、以及只能够与两个其他计算机12直接通信的拐角计算 机12之外的所有计算机12。
图2为图1中的一部分的更详细视图,只示出一些计算机12,特别是 包括计算机12a-12e。图2的视图还揭示每条数据总线16都具有读线18、 写线20和多条(在本例子中为18)数据线22。数据线22通常能够并行同 时传输一个18位指令字的所有位。应当注意到,在发明的一个实施例中, 一些计算机12是相邻计算机的镜像。然而,计算机12是全部具有同一方向, 还是作为相邻计算机的镜像并不是当前所描述的发明的方面。因此,为了更 好地描述该发明,在此将不再进一步讨论该潜在的复杂情况。
根据本创造性方法,诸如计算机12e之类的计算机12可以设置其一条、 两条、三条或全部四条读线18, /人而准备从相应的一个、两个、三个或全 部四个相邻计算机12中接收数据。相似地,计算机12也可以将其一条、两 条、三条或全部四条写线设置为高。尽管发明人相信同时将计算机12的一 条以上的写线20设置为高在当前没有任何实际价值,但是可以想到针对这 种操作的应用可能会发生,而这样做也并不会超出该发明的范围。当相邻计算机12a、 12b、 12c或12d中的一个计算机将其自身与计算积j 12e之间的写线20设置为高时,如果计算机12e已经将对应读线18设置为 高,那么字在相关联的数据线22上从那个计算机12a、 12b、 12c或12d传 输至计算机12e。然后,发送计算机12将释放写线20,并且接收计算机12e (在该例子中)将写线20和读线18拉低。后一个动作是向发送计算机12 确认已经接收到数据。注意,上述说明并不必然地意在按次序指示事件的顺 序。在实际应用中,该例子中接收计算机可以在发送计算机12释放(停止 拉高)写线20之前,试着将写线20设置得略低。在这种情况下,发送计算 机12 —释放写线20,写线20就会被接收计算机12e拉低。
在本例子中,只有编程错误才会使位于一条总线16的对立端的两个计 算机12试着将它们之间的读线18设置为高。而且, 一条总线16两端的两 个计算机12同时试着将它们之间的读线18设置为高是错误的。类似地,如 上所述,目前所能预计到的是,并不期望将单个计算机12的四条写线20中 的一条以上设置为高。然而,目前预计到,将存在以下时机期望将读线 18的不同组合设置为高,从而使一个计算机12可以处于等待来自选中计算 机12中的首个计算机的数据来将该首个计算机的对应写线20设置为高的等 待状态。
在以上讨论的例子中,计算机12e被描述为在相邻的计算机(选自计算 机12a、 12b、 12c或12d中的一个以上计算机)将该相邻计算才几的写线20 设置为高之前,计算机12e将该计算机12e的读线18中的一条以上读线设 置为高。然而,该过程当然也可以以相反的次序发生。例如,如果计算机 12e正尝试向计算机12a写,那么计算机12e会将计算机12e和计算机12a 之间的写线20设置为高。如果计算机12e和计算机12a之间的读线18还没 有被计算机12a设置为高,则计算机12e会简单地等待,直到计算机12a将 该读线20设置为高为止。然后,如上所讨论的,当写线18与读线20的对 应对均为高时,等待在数据线22上进行传输的数据被传输。之后,发送计 算机12e —释放写线20,接收计算机12 (在该例子中是计算机12a)就会将两个计算机(在该例子中是12e与12a)之间的读线18和写线20都设置为 低。
每当诸如计算机12e的计算机12预计要写,将其一条写线20设置为高 时,它将简单等待,基本不消耗功率,直到如上所述有适当的相邻计算机 12 "请求"该数据为止,除非数据待被发送到其上的计算机12已经将它的 读线18设置为高,在这种情况下数据被立即发送。类似地,每当计算机12 预计要读取,将其一条以上读线18设置为高时,它将简单等待,基本不消 耗功率,直到连接到所选择的计算机12的写线20变高以在两个计算机12 之间传输指令字为止。
可能存在若干种潜在的手段和/或方法来使计算机12如所述工作。但是,
在本例子中,计算机12之所以运转得这样简单是因为它们通常都是内部异
步运行(除了以所述异步方式相互之间传输数据)。也就是说,通常是按顺
序完成指令。当发生写指令或读指令时,直到该指令完成(或者,也许作为
替代地,直到其因为"复位"或其他原因被异常中断时)才会有进一步的动
作。现有技术中,没有规则的时钟脉冲。更具体地说,只有当正在被执行的
指令既不是读类型指令也不是写类型指令时(假如读或写类型指令经常需要 另一个实体完成)或当该读或写类型操作事实上已经完成时,才生成脉冲以
完成下一条指令。
图3为描绘图1和图2的一个计算机12例子的总体布局的框图。如图 3的视图所见,各计算机12为具有其自己的RAM 24和ROM 26的通用整 装计算机。如先前提到的,计算机12有时也称为独立的"核"。在本例子 中,假设计算机12被组合在单芯片上。
计算机12的其他基本部件为返回堆栈28、指令区域30、算术逻辑单元 ("ALU" )32、数据堆栈34和用于对指令进行解码的解码逻辑段36。本 领域技术人员通常应该很熟悉诸如本例子中的计算机12的基于堆栈的计算 机的操作。计算机12为具有数据堆栈34和分离的返回堆栈28的双堆栈计 算机。在发明的这个实施例中,计算机12具有四个与相邻计算机12进行通信 的通信端口 38。通信端口 38为三态驱动器,具有关闭状态、接收状态(用 于驱动信号使其进入计算机12)和发送状态(驱动信号使其离开计算机12)。 当然,如果特定计算机12不在诸如计算机12e的例子的阵列(图1)内部, 那么至少出于这里所述的意图, 一个以上通信端口 38不会被那个特定计算 机使用。指令区域30包括若干寄存器40,在本例子中,寄存器40包括A 寄存器40a、 B寄存器40b、 P寄存器40c。在本例子中,A寄存器40a为全 18位寄存器,而B寄存器40b和P寄存器40c为9位寄存器。
尽管该发明并不限于该例子,但是本计算机12 ^皮实施为执行本才几Forth 语言指令。熟悉Forth计算机语言的人将认知到,复杂Forth指令,即通常 所说的Forth "字"是根据设计在计算机中的本机处理器指令所构建的。在 其它语言中,这可能为通常所说的"库"。如下文将更详细描述的,计算机 12在一个时段从RAM24、 ROM26或直接从一条数据总线16 (图2)读取 十八位。然而,由于在Forth中大多数指令(即通常所说的无操作数指令) 直接从堆栈28和34中得到它们的操作数,因此它们的长度通常仅为5位, 使得在单个十八位指令字中可以包含多达四条指令,条件是该组指令的最后 一条指令选自仅需三位的指令的有界集。在图3的视图中以框图的形式描绘 的还有时间片定序器42。在发明的该实施例中,数据堆栈34顶部的两个寄 存器是T寄存器44和S寄存器46。
图4为指令字48的概略图。(应该注意指令字48实际上可以包含指令、 数据,或包含指令和数据的一些组合。)指令字48由十八位50组成。作为 二进制计算机,各位50将为"1"或"0"。如这里先前所讨论的,十八位 宽的指令字48可以包含位于四个时间片54中的多达四条指令52,该四个 时间片54被称为时间片零54a、时间片一 54b、时间片二 54c和时间片三54d。 在发明的本实施例中,十八位指令字48总是作为整体被读取。因此,由于 指令字48中总是存在具有多达四条指令的潜能,因此在计算机12的指令集 中包括no-op (无操作)指令以提供用于当没有必要或甚至是不期望使用所有可用的时间片54的情况。应该注意,根据该发明的一个特定实施例,在 间隔的时间片(具体来说,时间片一 54b和时间片三54c)中位50的极性(与 有效低相比较是有效高)是相反的。然而,这不是当前描述的发明的必需方 面,因此,为了更好地解释该发明,在下面的讨论中避免这种潜在的复杂情况。
图5为图3的时间片定序器42的示意图。从图5的3见图中可以看出, 时间片定序器42具有排列成环形的多个(在该例子中是十四个)反相器56 和一个与非门58,使得信号在经过该十四个反相器56和与非门58时被反 相奇数次。当或门60的两个输入中的任一个变为高时,在时间片定序器42 中发起一信号。第一或门输入端62得自正在被执行的指令52的位i4 66(图 4)。如果位i4 66为高,则该特定指令52是ALU指令,且位i4 66为"1"。 当i4位为"1"时,则第一或门输入端62为高,且时间片定序器42被触发, 以发起使下一条指令52被执行的脉沖。
当第一或门输入端62变高或被第二或门输入端64变高(如将在下文中 讨论的)而触发时间片定序器42时,信号绕时间片定序器42移动两圈,每 次在时间片定序器输出端68产生输出。该信号第 一次通过时间片定序器输 出端68时,时间片定序器输出端68的输出为低,而第二次时为高。来自时 间片定序器输出端68的相对宽的输出被提供给脉冲发生器70 (以框图的形 式示出),该脉冲发生器70产生窄时序脉冲作为输出。本领域技术人员应 该认识到窄时序脉冲是为准确发起计算机12的操作所期望的。
当正在被执行的特定指令52为读指令或写指令,或不期望正在被执行 的指令52顺序地触发下一条指令52的执行的任何其它指令时,则i4位66 为"0"(低),并且因此第一或门输入端62也为低。本领域技术人员将认 识到,在诸如计算机12的器件中,事件的时序通常很关键,而且无一例外。 本领域技术人员将认识到, 一旦检测时间片定序器42,来自或门60的输出 即必须保持为高,直到该信号循环通过与非门58以便发起环的第二 "圏" 之后为止。之后,在第二 "圈"期间,来自或门60的输出会变低,以便阻
13止电路的多余继续振荡。
根据以上讨论可以认知到,假设下文会讨论的第二或门输入端66不为 高,则当i4位66为'0,时,时间片定序器42不会^皮触发。
如上所述,根据各指令52是否为读类型指令或写类型指令来设置各指 令52的i4位66。指令52的剩余位50为该指令提供了特定操作码的剩余部 分。在为读类型指令或写类型指令的情况下, 一个以上位可用于指示从该特 定计算机12读取数据的地址或将数据写入该特定计算机12的地址。在该发 明的本例子中,待写入的数据总是来自于t寄存器44(数据堆栈34的顶部), 然而数据可以被选择性地仅读入t寄存器44或仅读入可以执行该数据的指 令区域30。这是由于在该发明的该特定实施例中,可以以在此所述的方式 来传送数据或指令,因此尽管不是本发明的必需方面,也可以从数据总线 16直接执行指令。此外, 一个以上位50将用来指示哪个端口 38,如果存在 的话,将被设置为读或写。该稍后的操作可以通过利用一个以上位指代诸如 A寄存器40a、 B寄存器等的寄存器40来可选地完成。在这种例子中,将具 有与各端口 38 (以及计算机12可尝试与之通信的任何其它潜在实体,例如 存储器、外部通信端口等)相对应的位的数据预载入所指代的寄存器40。 例如,在特定寄存器40中,四位中的各位可以对应于上端口 38a、右端口 38b、左端口 38c或下端口 38d中的各端口。在这些位的位置中的任意位置 存在"1"的情况下,通过对应的端口 38将通信设置为继续进行。如这里先 前所讨论的,在该发明的本实施例中,预计读操作码可能在单条指令中设置 一个以上用于通信的端口 38,而尽管有可能,但预计写操作不会在单条指 令中设置一个以上用于通信的端口 38。
紧接着的例子采用计算机12e尝试向计算机12c写的通信,尽管该例子 适用于在任意相邻计算机12之间的通信。当在写计算机12e中执行写指令 时,选中的写线20 (在该例子中,是计算机12e与12c之间的写线20)被 设置为高。如果对应的读线18已经为高,则通过所选中的通信端口 38马上 将数据从选中的位置发送出去。作为替换地,如果对应的读线18还不为高时,则计算机12e简单地停止操作,直到对应的读线18确实变高为止。这 里先前已经讨论过当存在读类型指令或写类型指令时停止计算机12a (或更 准确地说是禁止计算机12a的进一步操作)的机制。简言之,指令52的操 作码在位的位置i466处为'0,,因此或门60的第一或门输入端62为低, 并且时间片定序器42不会被触发而生成使能脉冲。
关于如何在读类型指令或写类型指令完成时恢复计算机12e的操作,机 制如下当计算^L 12e和12c之间的读线18和对应写线20均为高时,则两 条线18和20分别被将相应线保持为高的相应计算机12中的各计算机12释 放。(在该例子中,发送计算机12e将写线18保持为高,而接收计算机12c 会将读线20保持为高)。然后,接收计算机12c将两条线18和20拉低。 在实际应用中,接收计算机12c可以在发送计算机12e释放写线18之前尝 试将线18和20拉低。然而,由于线18和20被拉高,且只能微弱地保持(锁 存)为低,因此将线18或20拉低的任何尝试实际上都不会成功,直到线 18或20被将其锁存为高的计算机12释放为止。
当数据总线16中的两条线18和20均被拉低时,则这是"确认"条件。 计算机12e和12c中的各计算机在接收该确认条件之后,将其自身的内部确 认线72设置为高。从图5的视图中可以看出,确认线72提供给第二或门输 入端64。由于到或门60输入端62或64中的4壬一个的输入都会4吏或门60 的输出变高,所以这将以这里先前所述的方式来发起时间片定序器42的操 作,从而将执行指令字48的下一个时间片54中的指令52。确认线72保持 为高,直到下一条指令52被解码为止,从而防止伪地址到达地址总线。
当正在被执行的指令52位于指令字48的时间片三的位置时,无论如何, 计算机12将提取下一个等待的十八位指令字48,当然除非位i4 66为'0,。 在实际应用中,本创造性机制可以包括用于"预提取"指令的方法和装置, 使得可以在指令字48中所有指令52的执行结束之前开始该提取。然而对于 异步数据通信来说这也不是本创造性方法和装置的必需方面。
已经详细描述了计算机12e向计算机12c写的以上例子。根据以上讨论可以认知到,无论计算机12e首先尝试向计算机12c写还是计算机12c首先 尝试从计算机12e读取,其操作基本相同。操作在计算机12和12c都就绪 之后才会完成,而且无论计算机12e还是计算机12c首先就绪,该首先就绪 的首个计算机12简单地"进入睡眠,,,直到另一个计算机12e或12c完成 传输为止。实际上,考虑上述处理的另一种方式是,当写计算机12e和接收 计算机12c分别执行写指令和读指令时,它们均进入睡眠,但是当读线18 和写线20都为高时,最后进入事务处理的计算机几乎瞬时再度醒来,而发 起事务处理的首个计算机12会几乎无限期地保持睡眠,直到第二计算机12 做好完成处理的准备为止。
发明人相信使能器件之间有效的异步通信的关键特征是某种确认信号 或条件。在现有技术中,器件之间的大多数通信是时钟控制的,且发送器件 没有得知接收器件已准确接收数据的直接方式。诸如校验和操作的方法可用 来尝试保证数据被正确接收,但是发送器件没有操作已完成的直接指示。如 这里所述的本创造性方法提供必要的确认条件,该条件允许器件之间的异步 通信,或至少使器件之间的异步通信变得实用。此外,确认条件还可能使一 个以上器件"进入睡眠",直到确认条件发生才会醒来。当然,也可以通过 在计算机12之间发送的分离信号(通过互连的数据总线16或通过分离的信 号线)来在计算机12之间传送确认条件,而且这样的确认信号在本发明的 该方面的范围之内。然而,根据这里描述的该发明的实施例可以认知到,因 为用于确认的方法不需要在实际上影响通信的任何额外的信号、时钟周期、 定时脉冲或除所述的之外的任何这类资源,因此这里包括更多的经济节约。
可以在不改变本发明的值或范围的情况下,对其进行各种修改。例如, 虽然这里在读指令和写指令方面对该发明进行了描述,但是在实际应用中, 可以存在至少两种读类型指令和/或至少两种写类型指令。仅作为一个例子, 在该发明的一个实施例中,存在使寄存器递增的写指令和不使寄存器递增的 其它写指令。类似地,可以根据使用哪个寄存器40来选择通信端口 38等而 改变写指令,如这里先前所描述的。还可以存在若干不同的读指令,仅取决于计算机12的设计者认为哪种改变是作为替换的读行为的有用选项。
类似地,尽管在这里已经关于单个电路小片14上的阵列IO中的计算机 12之间的通信描述了本发明,但相同的原理和方法可用于或被修改为用于 完成其它器件间通信,例如计算机12与其专用存储器之间的通信,或阵列 10中的计算机12与外部器件之间的通信(通过输入/输出端口等)。实际上, 预计到, 一些应用可能需要阵列的阵列一利用当前描述的器件间通信方法潜 在地适用于阵列的阵列中的通信。
尽管这里已讨论了创造性计算机阵列10和计算机12的具体例子,但是, 预期将存在很多还无法想象的应用。实际上,本发明的一个优势在于本创造 性方法及装置可以适于大量使用。
上面的所有仅是本发明的可用实施例的一些例子。本领域技术人员将容 易看出,可以在不脱离本发明的精神或范围的情况下进行大量其它的修改和 变动。相应地,这里的公开内容目的不意在限定,且所附的权利要求被解释 为包含本发明的全部范围。
工业实用性
创造性计算机阵列10、计算机12和关联的方法74意在广泛使用在大 量的计算机应用中。预期它们在需要强大的计算能力的应用中尤其有用,并 且功耗及热的产生也是重要的考虑因素。
如这里先前所述的,本发明的实用性在于很多类型的器件与计算机之间 的通信可以由此而得到改进。预计可允许一些计算机在未使用时"进入睡眠" 的创造性方法可以在大量的应用与实现中用于减小功耗、减少热的产生,并 改进计算机与计算机化的器件之间的通信效率。
由于本发明的计算机阵列10、计算机12及方法74可以很容易地生产 并与现有任务、输入/输出器件等集成,并且由于提供了这里所描述的优点, 因此预期它们在工业中很容易被接受。出于这些或其它原因,预期该发明的 应用性及工业实用性在范围上会很巨大,且在持久性方面很耐用。注意该对应表仅为提供信息的目的而提供。其并不是官方专利申请的 一部分。
10计算机阵列
12计算机
14电3各小片
16数据总线
18读线
20写线
22数据线
24 RAM
26 ROM
28返回堆栈
30指令区域
32 ALU
34数据堆栈
36解码段
38内部通信端口
38a上端口
38b右端口
38c左端口
38d下端口
40寄存器
40aA寄存器
40bB寄存器
40cP寄存器
42时间片定序器
44T寄存器46S寄存器
48指令字 50位 52指令 54时间片 54a时间片0 54b时间片1 54c时间片2 54d时间片3 56反相器 58与非门 60或门
62第一或门输入端 64第二或门输入端 66 i4位
68时间片定序器输出端 70脉沖发生器 72确i人线
权利要求
1、一种计算机阵列,包括多个计算机;以及连接这些计算机的多条数据通路;其中各计算机与它的至少一些最接近的邻居之间具有直接通信通路。
2、 根据权利要求1所述的计算机阵列,其中 各计算机与它的所有最接近的邻居之间具有直接通信通路。
3、 根据权利要求1所述的计算机阵列,其中所述邻居的定义限定为与目标计算机直接相邻的那些计算机。
4、 根据权利要求1所述的计算机阵列,其中所述邻居的定义包括仅在水平方向上与目标计算机直接相邻或仅在垂 直方向上与目标计算机直接相邻的那些计算机。
5、 根据权利要求1所述的计算机阵列,其中目标计算机能够通过传递消息来与所述阵列中未与该目标计算机直接 相邻的另一些计算机通信,所述消息是经由其它计算机中的至少一些计算机 而传递的。
6、 一种计算机,其中指令被可选地直接从输入寄存器执行。
7、 一种在具有多字指令集的计算机中的改进,包括 将循环指令纳入所述多字指令集,以返回到所述多字指令集中的首指令。
8、 根据权利要求7所述的改进,其中 所述循环指令是所述多字指令集中的末指令。
9、 根据权利要求7所述的改进,进一步包括空操作指令,在构成完整循环所需的指令少于四条指令的情况下纳入在 所述多字指令集中。
10、 一种在计算机阵列中的改进,包括使所述计算机中的第 一计算机向所述计算机中的第二计算机传送指令 组;以及使所述计算机中的第二计算机直接从输入寄存器执行所述指令组。
11、 根据权利要求10所述的改进,其中所述计算机中的所述第一计算机和所述计算机中的所述第二计算机之 间具有直接通信通路。
12、 根据权利要求IO所述的改进,其中所述指令组被规定为其路线至少经过所述第一计算机与所述第二计算 机之间的第三计算机。
13、 根据权利要求IO所述的改进,其中所述指令组具有与之关联的用于规定所述指令组从所述第一计算机到 所述第二计算机的路线的指令。
全文摘要
一种计算机阵列(10)具有多个计算机(12)。这些计算机(12)直接与邻居计算机通信,并且间接与阵列中的其它计算机通信。这些计算机传递包括数据和/或指令的数据字。一个18位数据字中可以包括多至四条指令。由于一次传送四条指令,因此可以传送由多至四条指令组成的完整的微循环。本发明的计算机可以直接从它们的输入寄存器中执行指令。
文档编号G06F15/00GK101438260SQ200780005652
公开日2009年5月20日 申请日期2007年2月16日 优先权日2006年2月16日
发明者查理斯·H·莫尔 申请人:Vns组合有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1