计算机处理器阵列的制作方法

文档序号:6655359阅读:308来源:国知局
专利名称:计算机处理器阵列的制作方法
技术领域
本发明涉及计算机和计算机处理器领域,更具体地说,本发明涉及一种 方法和装置,用于将计算机连接起来,使得所组合的计算机的总的速度和效 率最优化。本发明的计算机阵列当前的主要用途是在单个微芯片上组合多个 计算机,其中这些计算机相互合作以达到统一的预期目标。
背景技术
在计算技术领域中,处理速度是值得期待的品质,不断要求创建更快的 计算机和处理器。由于在现有技术的任何给定状态下,处理器的最大可用速 度是有限的,因此存在多种利用多个处理器或计算机以加快运行速度的尝试。 在本技术领域中,已知组合多个计算机处理器或计算机以划分一个任务或计 算,使得该任务能在最短的时间内完成。 一个例子是多线程应用程序,其中 在不同的处理器上运行不同的程序线程。
如上所述,可以确定有必要加快计算机处理器的运行速度。但还没有现 有技术方法或装置已经能对多个计算机操作的性能达到最佳速度。

发明内容
因此,本发明的一个目的是提供一种用于加快计算机处理速度的装置和 方法。
本发明的另 一个目的是提供一种装置和方法,其以不昂贵的方式提供显
著的(substantial)计算能力。
本发明的再一个目的是提供一种装置和方法,用于提高多计算机阵列的 运行速度。
本发明的仍一个目的是提供一种装置和方法,用于实现计算密集型任务。 筒而言之,本发明的一个已知实施例是一种计算机阵列,每个计算机有 自己的存储器,并具有能够独立计算的功能。诸如数字无线电、数字立体声 前置放大器、GPS ( Global Positioning System,全球定位系统)接收单元、无线电收发机、语音识别器的实现或其他许多类似功能之类的任务被划分为多 个子操作,并且在阵列运行的初始化阶段,每个操作被分配到计算机之一。
在上述的本发明的实施例中,计算机阵列在单个模片(die)上实现,其 中至少一些在模片边缘附近的计算机被配置为实现输入和输出任务。配置计
算机之间的连接以使得设备的实现相对简单,同时最小化在整个阵列中通信 所需的"中继(hop)"的数目。在描述的实施例中,计算机被排列为5乘5的 矩阵,其中每个计算机通过并联连接与其邻居中的3个计算机直接相连,虽 然其他类型和数量的连接也在本发明的范围内。
发明人发现,虽然起初将一个单独的任务分配到每个计算机可能会导致 一些或所有的计算机有空闲时间,但配置的缺少复杂性和内在效率会弥补这 样的空闲时间所导致的任何低效率,从而总的速度和任务的易完成性得到了 很大提高。
如在此所述和在附图中的几幅图所示,根据用于实现本发明的方式及其 工业适用性的描述,本领域的技术人员将会清楚本发明的这些和其它目标及 优点。所列的目标和优点并不是本发明所有可能优点的穷尽列表。此外,即 使在应用中一个或多个预期的目标和/或优点不存在或不被要求时,仍然可以 实践本发明。
另外,本领域的技术人员会发现,本发明的各种实施例可能会达到一个 或多个、但不一定是全部所描述的目标和/或优点。相应地,在此所述的目标 和/或优点不是本发明的必需部分,不应被理解为限制。


图l是根据本发明的计算机阵列的概略图; 图2是图1中的计算机之一的一个示例的方框图; 图3是根据本发明的、为特定应用配置的计算机阵列的概略图;和 图4是描述本发明方法的一个示例的流程图。
具体实施例方式
在下列描述中,参照附图来说明本发明,其中相同的数字表示相同或相 似的单元。虽然本发明以实现发明人目标的方式来描述,但是本领域的技术 人员会意识到在不背离本发明的精神或范围的情况下,可以根据这些示教来实现各种变化。根据本发明,可以通过组合一个或多个包含代码的机器可 读存储设备和用于执行其中包含的代码的合适的标准计算机硬件来实践本发 明的方法形式。
在此所述和/或在附图中所示出的本发明的实施例和变形只是以示例的 方式来提供,而不应作为对本发明范围的限制。除非特别申明,本发明的各 个方面和成分可以被省略或修改,或用已知的等价物或甚至未知的替代物代 替,诸如未来开发出的替代物或未来可能发现是可接受的替代物。在保留在 本发明的精神和范围中的情况下,本发明也可以针对各种应用而被修改,这 是因为潜在应用的范围是很大的,并且期望本发明可适应于许多这样的变化。
一种已知的、用于实现本发明的方式是单个计算机的阵列。本发明的计 算机阵列如图1中的概略图所示,在此总的用参考符号IO来指代。该计算机
阵列10中具有多个计算机12(在所示的例子中为25)。在所示例子中,所有 的计算机12位于单个模片14上。根据本发明,每个计算机12是通常意义上 的功能独立的计算机,稍后将会更详细讨论。计算机12通过多条(其数量将 在稍候会详细讨论)互连数据线16来互连。在该例子中,数据线16是异步 高速并行数据线,虽然在本发明的范围内为此目的也可以采用其它互连装置 (如串行数据线)。在阵列IO的本实施例中,不仅在计算机12之间的数据通 信是异步的,而且各个计算机12也是以异步模式运行。虽然这并不是本发明 的必需特征,但发明人认为这可以提供重要的优点。例如,由于不必在整个 计算机阵列12上分布时钟信号,所以可以节省大量能量,并且本领域内的技 术人员会知道这是一个重要的优点。此外,不必分布时钟信号消除了许多可 能限制阵列12的尺寸或引起其他已知困难的定时问题。
应该指出,图1的视图并不意欲作为计算机12的布局图,而是该视 解说明计算机12的可能互连的一个例子。在图l的视图中,可以看到计算机 12的相邻的示例计算机(adjacent examples )通过3条数据线16而被连接到 3个相邻的计算机12。发明人认为,数据线16的这个数量是一个合理的数量, 这是因为它使得模片14上的金属层的必需数量最少,同时提供充足的数据通 路,且从在阵列10的周边的一个计算机12到甚至最里面的计算机12的通信 所需的"中继"的数目最少,其中术语"中继"用来表示计算机12之间的连接 或转移,其中信号通过所述连接或转移而从一个计算机12转移到另一个计算 机12。闪存18和RAM20也在图1中呈现。在所示的实施例中,闪存18和RAM 20处于"芯片外",表示它们不在模片14上,尽管可以想象到它们中的一个 或两者可能位于模片14上也属于本发明的范围。闪存18用来在开机时将初 始程序装载到计算机12,而RAM 20以传统方式来使用。存储器控制计算机 12a控制到闪存18和RAM 20中的存储器的访问。在所述的本发明的实施例 中,闪存18使用串行数据线22以将数据传输到存储器控制计算机12a并且 通过该存储器控制计算机12a,而RAM 20利用并行数据总线24,这是因为 希望到RAM 20的尽可能快的连接。
存储器控制计算机12a的示例用于说明本发明的一个重要方面。虽然, 根据本发明,几个计算机12完全或基本相同,但是它们的每一个可以被配置 为执行完全不同的功能。应当指出,根据本发明,计算机12是基本相同的计 算机,在这些计算机中,在结构、电路、布局和操作性能上基本相同。在此 将讨论一些可以选择性地提供的小差别的例子。但是,本发明的阵列10、 10a 仍是基本相同的计算机12的阵列。换句话说,本阵列10、 10a是同构阵列, 而不是从一开始为执行不同功能而设计的异构计算机阵列。虽然本发明的同 构阵列10、 10a中的计算机12是基本相同的,但是通过增加少量的额外电路 它们可适于特定目的,稍后会详细讨论。本发明的同构阵列的多个优点之一 是功能多样性。根据本发明,阵列10、 10a可用于许多不同目的。此外,即 使针对某个特定目的需要或期望做一些修改,这些修改在设备的生产过程中 也很容易实现。
存储器控制计算机12a只是执行专门任务的计算机12之一的这样一个例 子。如从图1中的例子可以看出,可以预期,存储器控制计算机12具有比前 面所讨论的仅仅为3的数量多的数量的数据线16以将其连接到其他计算机 12,会带来好处。
如前面筒单讨论,阵列10中许多计算机12会有不同的功能。相应地, 最好在最接近模片14边缘的计算机12被认为最好有输入/输出功能,因为如 果它们被置于模片14的边缘,则从这些外部计算机12连接到所需的针脚更 容易。内部计算机12 (阵列10中不在外部的那些计算机)则因此将更多地 用于实现计算和控制功能,或其他通常较少需要输入/输出能力的功能。如图 1所示,多个输入/输出电路26与相应的计算机12相关联,并提供输入/输出 功能,在稍后的例子中将会更详细讨论。由于各种输入/输出电路26可能彼此不同,根据其相应的预期功能,它们分别用从26a到26p的不同名称指代。 图2是图1中的计算机12之一的一个示例的方框图。从图2中可以看出, 计算机12具有处理器28、 ROM 30和RAM 32。如前面讨论的,计算机12 因此能独立于阵列10中的所有其他计算机12而执行指定的功能。
图3是计算机阵列10a的一个例子的概略表示,示出了其中计算机12的 一个可能的配置。图3中的计算机阵列10a的例子与图1中的计算机阵列10 的第一例子的区别在于计算机12的配置,如在稍后会更详细讨论的。应当指 出,同图l所示一样,图3的视图并不想作为布局图,并且因此不意欲表示 任何计算机12的必需的物理布置。不过,图3中的例子表示这样一个事实, 5乘5的计算机阵列10a被认为是计算机12的一个实用的物理排列。根据该 排列,由很少的计算机而不是太多计算机被埋置在阵列10a的深处,使得将 数据从一个外部计算机12、通过其他计算机12中继到内部计算机12只需一 些少量的"中继"。此外,25个计算机的数量很适合最大化对模片14上的可 用空间的使用。即使在许多其中并不需要所有25个计算机的应用中,使用如 在此描述的例子的阵列也是十分经济的。应当指出,计算机阵列10a的5乘5 排列和计算机12的数量25,被认为是实用的排列和数量(如上讨论),但决 不能被认为是仅有的有用的排列和数量。目前,如前面参照图l所讨论的, 有24个计算机12的6乘4的矩阵被认为有一些特别的优点。例如,在有偶 数个计算机12的阵列中,阵列能由多个2乘2的计算机块组成。在这种情况 下,每个计算机12可以被当作块中对面计算机的一个镜像。这可能使得计算 机设计任务和互连布局变得更容易。实际上,稍后将详细讨论的因素表明, 根据本发明,基本上任何数量、从少到4个到多达包括成千的计算机可以被 排列在一起。而且,虽然在图1的例子中示出了将每个计算机12连接到其邻 居的3条数据线16,但发明人相信另一个实用的排列将是将每个计算机12 与其最接近的所有邻居计算机12相连的数据线16。在这样一个连接的排列 中,连接每个计算机的数据线16的数目将根据阵列10、 10a中每个计算机12 的布置而变化。
图3中计算机阵列10a示例具有被分配诸如可能用于创建全球定位系统 ("GPS")接收器之类的任务的计算机12。图3中的例子只是作为如何将各 种任务分配到各种计算机12的例子而被提出。图中没有示出互连,因为它们 不会与图1中的例子有重要的区别,除了可能是实现所述特定任务所必要或期望的之外。
在图3的例子中可以看出,计算机阵列10a有计算核心34,所述计算核 心34包括计算机12q到12v。外围计算机12a到12p通常被配置用于输入和 输出,如稍后将更详细讨论的。注意在图3例子的概略图中,在图1中被单 独示出的输入/输出电路26没有被单独示出。这是这样一个事实的例子输 入/输出电路26在单个计算机12a到12w中被认为是变化的。无论输入/输出 电路26是否被单独示出,还是被包含作为通常相似的计算机12a到12w之间 变化的一部分,这仅仅是概略图表现方式的不同。
在图3的例子中,计算机12i被配置为RAM输入/输出设备,而计算机 12j被配置为闪存输入/输出设备。通过与图1中的例子相比较,可以看出与 图1例子的计算机阵列IO的变化,图1中的计算机阵列IO具有用于处理来 自闪存18和RAM 20(图l)两者的输入和输出的单个计算机12,而当前例子 的计算机阵列10a在计算机12之间划分这些任务。这样的变化是可能应用于 计算机阵列10、 10a的许多这样的变化的一个典型。
回到外围计算机12a到12p的讨论,计算机12a到12d被配置用于到外面 设备的输入和输出。在所示的例子中,计算机12a到12d分别实现了 LAN接 口、 USB接口、固件接口和无线接口。本领域的技术人员会熟悉计算机12a 到12d中为实现这些功能的每一个必需的针脚输出和硬件协议。可替换地, 计算机12a到12d之一可以被用于实现视频输出。在一些应用中,可能只需 要少于4个的输入/输出计算机12a到12d。例如,在一些应用中,可能一个 USB接口就足够用于到外部设备的输入/输出。
在图3中的GPS接收器的例子中,计算机12e提供硬件控制(其是数字 输入和输出),用于设置计算机阵列10a外部的其他接收器(未示出)的参数。 计算机12f提供硬件监视(其是模拟输入和输出),用于监视接收器运行方面 的参数。硬件监视和控制允许计算机阵列10a确定其他GPS接收器的运行如 何,同时提供用于设置或修改计算机阵列10a外部的其他接收器的各种操作 配置的方式。
计算机12o和12p被配置和编程为采样和处理接收到的RF信号(模数转 换),计算机12n被配置和编程为为在采样之前的频率下变换(数模转换)提 供参考频率。计算机12w和12x被配置和编程为用于从GPS信号中解码前向 纠错("FEC,,)比特流。GPS接收器领域的技术人员应该熟悉GPS信号中使用的FEC。
计算机12y和12h可选地用于在接收解调后的GPS比特流的解密方面。 注意到计算机12y和12h的使用被描述为是可选的,因为在GPS接收器中通 常不要求加密和解密。虽然GPS信号的某些部分被加密,但是商业接收器通 常不访问这些信号。但是在军用版本的GPS接收器中会要求加密。计算机121 被配置和编程为与另外的计算机阵列10通信,如果有必要的话。
在图3的计算机阵列lOa的例子中,上面没有专门讨论到的计算机12可 能是备用的(没有用到),或是可以可选地用于提供额外的输入和/或输出功 能和/或对其他计算机12的冗余。
图4是一个流程图,描述了一个本发明的计算机阵列方法36的例子,根 据如前所讨论的计算机阵列10、 10a来理解该方法。在"提供互连的计算机,, 38的操作中,在计算机阵列10中提供此前所述的计算机12和互连数据线16。 在"为任务配置计算机"40的操作中,所提供的计算机12被提供有特殊数 据线16、和将计算机阵列10应用于特定应用所需的其他特征。当然,前面 的操作38和40在生产计算机阵列IO期间和之前将完成。在"向计算机指派 任务"42的操作中,确定特定任务的哪些部分最好在哪些计算机12上执行, 并且编写程序以指派和执行这些任务。当要使用计算机阵列10时,在"初始 化计算机"44的操作中,每个任务被装载到计算机12的RAM 32中,并开 士台i^:4于。
本领域的技术人员会认识到所列的计算机阵列方法36的操作并不是与 计算机阵列io、 lOa的生产和运行一起用到的操作的穷尽列表。仅作为一个 例子,本领域的技术人员会认识到在计算机阵列10、 10a初始化时,会运行
测试例程。
在不改变其价值和范围的情况下,可能会对本发明做各种修改。例如, 其他不同于在此特别讨论的数量和排列的计算机12完全在本发明的精神和 范围内。虽然在此已经讨论了计算机12的排列和使用的特定示例,但是可以 预期本发明的计算机阵列IO将会有大量的还未预见的应用。实际上,本发明 的方法和装置可以被应用到各种应用中正是本发明的优点之一。
上述所有的只是本发明的可得到的实施例的 一些例子。本领域内的技术 人员会容易地观察到在不违背本发明的精神和范围的情况下,可以作出大量 的其它修改和改变。相应地,在此公开的内容不意欲作为限制,并且所附权利要求可被解释为包含本发明的整个范围。 工业适用性
本发明的计算机阵列10、 10a和相关联的方法意欲广泛应用到各种计算 机应用中。可以预期计算机阵列在计算机密集型应用中将会特别有用,在这 些应用中需要完成大量不同但相关的功能。可以预期本发明的计算机阵列10、 10a及相关联的方法最好的应用是其中需要的任务可以被分割,使得每个计算 机12与其他计算机有近似相同的计算要求。但是,发明人发现,即使某些计 算机12有些时候、或甚至经常以远低于其最大能力工作,计算机阵列10、 10a的总的效率和速度通常会超过现有技术的、可能动态分配任务的计算机阵 列。
应当指出,在许多应用中可能用多于一个计算机阵列10、 10a会有优势。 许多这样的可能应用中的一个例子为需要GPS输入的数字无线电装置。在这 个例子中,无线电装置可以用一个计算机阵列IO来实现,该计算机阵列接收 来自被配置成执行GPS功能的单独计算机阵列10的输入。
应当指出,如在前面例子中所讨论的,虽然计算机12可以被优化以执行 单个任务,但是如果在一个特定的应用中不需要该任务,则计算机12可以容 易地被编程以执行另外任务,这只受到编程者想象的限制。
可以预期本发明的计算机阵列10、 10a最好用Forth计算机语言实现,该 语言可以自然地被分割以容易地划分任务,如实现本发明所要求的那样。 Color Forth是Forth语言的一个近来的变种,也同等适用。
由于本发明的计算机阵列10、 10a和计算机阵列方法36可以很容易生产 并与现有的任务、输入/输出设备等集成,并由于提供在此描述的优点,所以 可以预期它们在工业界将被容易接受。基于这些和其他原因,可以预期本发 明的实用性和工业适用性将会在当前和很长一段时期内有重要意义。
权利要求
1. 一种计算机阵列,包括多个计算机;和多个连接所述多个计算机的数据通路,其中至少一些计算机被分配一个不同于分配给其他计算机的任务的任务。
2. 根据权利要求1的计算机阵列,其中 每个计算机被分配不同于其他计算机的任务的任务。
3. 根据权利要求1的计算机阵列,其中 至少一些计算机被配置用于特定输入功能。
4. 根据权利要求1的计算机阵列,其中 至少 一 些计算机被配置用于特定输出功能。
5. 根据权利要求1的计算机阵列,其中 所述多个计算机之间的通信是异步的。
6. 根据权利要求1的计算机阵列,其中 所述多个计算机之间的通信经由多条并行数据线。
7. 根据权利要求1的计算机阵列,其中每个计算机被硬连线,以和所述多个计算机中的至少3个计算机通信。
8. 根据权利要求1的计算机阵列,其中 所述多个计算机的数量是25。
9. 根据权利要求1的计算机阵列,其中 所述多个计算机在物理上^皮排列为5乘5的阵列。
10. 根据权利要求1的计算机阵列,其中至少一些计算机在物理上被排列为4乘6的阵列。
11. 根据权利要求1的计算机阵列,其中 沿所述阵列的每一边的计算机的数量是偶数。
12. 根据权利要求1的计算机阵列,其中 至少一个计算机直接与外部存储源通信。
13. 根据权利要求1的计算机阵列,其中至少一个计算机将数据从外部存储源传递到所述多个计算机中的至少一 些计算机。
14. 一种用于执行计算机化作业的方法,包括提供多个计算机;并且 向至少一些计算机分配不同的任务。
15. 根据权利要求14的方法,其中 至少一个计算机被分配来与闪存通信。
16. 根据权利要求14的方法,其中至少 一个计算机被分配来与随机访问存储器通信。
17. 根据权利要求14的方法,其中至少 一个计算机被分配来执行输入/输出功能。
18. 根据权利要求14的方法,其中所述多个计算机之一路由到剩余计算机的分配。
19. 一种计算机阵列,包括 多个计算机;和所述多个计算机之间的多条数据通路;其中 至少一些计算机被编程以执行不同的功能。
20. 根据权利要求19的计算机阵列,其中 不同的功能一起工作以完成一个任务。
21. 根据权利要求19的计算机阵列,其中 当计算机阵列初始化时,每个功能被编程到各个计算机中。
22. 根据权利要求19的计算机阵列,其中 所述多个计算机之间的通信是异步的。
23. —种用于利用多个计算机来完成任务的方法,包括 将任务划分为多个操作部分,并将每个操作部分分配给所述多个计算机之一;对至少一些计算机编程,以完成每个操作部分。
24. 根据权利要求23的用于完成任务的方法,其中 所述多个操作部分是用于实现全球定位系统接收器的操作。
25. 根据权利要求23的用于完成任务的方法,其中 在任务开始运行之前,对计算机进行编程,以便完成每个操作部分。
26. 根据权利要求23的用于完成任务的方法,其中 所述多个计算机被排列为计算机阵列。
全文摘要
一种计算机阵列(10),具有多个计算机(12),用于完成可以被分成多个更小的任务的大任务,其中每个小任务被分配到一个或多个计算机(12)。每个计算机(12)可以针对特定功能而被配置,且与外部的计算机(12)关联的各个输入/输出电路(26)特别适合于特定的输入/输出功能。一个25个计算机(12)排列在计算机阵列(10)中的例子具有中心计算核(34),且接近模片(14)边缘的计算机(12)被配置为输入和/或输出。
文档编号G06F3/00GK101421703SQ200580008575
公开日2009年4月29日 申请日期2005年2月18日 优先权日2004年3月16日
发明者查尔斯·H·穆尔 申请人:Vns业务有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1