超大规模计算机的制作方法

文档序号:1546阅读:440来源:国知局
专利名称:超大规模计算机的制作方法
本发明涉及大规模并行处理机,特别涉及对上述参照的日本专利号第109776/84和美国专利号4,598,400中所首先揭示的方法和装置的改进。
如上述′400专利中图1A(在此以图1形式重视)所示,那些发明的计算机系统包括主机10,微控制器20,并行处理集成电路35的阵列30,数据源40,第一缓冲器和多路转换器/多路分配器50,第一、第二、第三和第四双向总线控制电路60、65、70、75,第二缓冲器和多路转换器/多路分配器80,以及数据接收器90。主机10可以是经过适当编程的市场上有售的通用计算机,例如数字设备公司生产的VAX(TM)计算机。微控制器20是惯常设计的指令序列发生器,它能产生通过32位并行总线22而应用于阵列30的指令序列。微控制器20在线26上接收来自阵列30的一个信号。该信号是可用于数据输出和状态信息的通用信号或GLOBAL信号。总线22和线26并行连到每个集成电路35。结果,来自微控制器20的信号同时加到阵列30中的每个集成电路35上,通过线26加到微控制器20上的信号由组合该阵列中所有集成电路35的输出信号所构成。
阵列30包含成4个相同的集成电路35,并且每个集成电路35包含几个相同的处理器/存贮器36。在′400号专利所揭示的实施例中,指出阵列可以包含有32,768(=215)个集成电路35;每个集成电路35可包含32(=25)个相同的处理器/存贮器36。在递交该专利申请案时,包含至多4096(=212)个相同集成电路35,并且每个集成电路包含16(=24)相同处理器/存贮器的阵列已由受让者作为连接机(TM)计算机被生产以及发运。
处理器/存贮器36按二种几何结构构成和互联。一种几何结构是惯用的二维网络型式,其中处理器/存贮器按长方矩阵构成并连到该阵列中的四个最近的相邻单元上。为了说明方便,该阵列的边用东、南、西、北表示。为了使每个处理器/存贮器与其四个最近相邻单元相连,每个处理器/存贮器是通过网格上每行和每列相邻的处理器/存贮器之间的电导线相连接的。
第二种几何结构是15维的n-立方体的布尔结构。为了理解n-立方连接型式,对集成电路从0到32,767加以编号,并用15位二进制数字来表示这些数字和地址是有帮助的。就象我们可以用二位数字,其中一个表示二维网络中第一维的位置,另一个表示第二维的位置来指定二维网络中一个物体的位置一样,以此类推,可用一个数字来限定一个集成电路在布尔15-立方体的15维中的一维的位置。然而,在一个n-立方体中,一个集成电路在每一维中只能有两种不同状态0和1中的一个,这样,15个二进制的数字可用作集成电路地址,并表示集成电路在n-立方的15维中的位置。更进一步说,由于一个二进制数只能有二个值,0和1,同时由于每个集成电路由15个二进制数唯一确定,所以每个集成电路具有与其进位地址只相差一位的15个其他集成电路。我们把这15个二进制地址仅与第一个集成电路二进位地址相差一位的集成电路称为该第一个集成电路的最近相邻单元。那些熟悉汉明距离的数学定义的人将发现,该第一集成电路与15个相邻最近单元中每个相隔一个汉明距离。
为了使上述参照申请中的集成电路35按布尔15-立方体形式连接,每个集成电路就由15根输入线38和15根输出线39与其最近相邻的单元相连。连到每个集成电路35的15根输入线38中的每根是与波尔15-立方体型式的15维中每一个相联系的,同样,每个集成电路35的15根输出线39中的每根是与不同的维相联系的。布尔n-立方型连线的详细情况由日本专利申请128,294/86案提供。为了允许布尔15-立方体型通过互连型式的通信,计算的结累是按信息包的形式构成;这些包根据构成包的一部分的地址信息,在通过每个集成电路中的发送电路中从一个集成电路发送到另一个集成电路。
典型的一个处理器/存贮器26由′400专利申请的图7A详细说明。如图7A所示,该处理器/存贮器包括32×12位随机存贮器(RAM)250,算术逻辑单元(ALU)280和标志控制器290。ALU对三种来源的数据起作用,即RAM中的二个寄存器和一个标志输出信号,并产生二个输出信号,被写入一个RAM寄存器的和输出信号以及能在标志控制器中某个寄存器和某个其它处理器/存贮器中可用的执行输出信号。
输入到RAM250的是地址总线152,154,156,158,来自ALU270的和信号输出线285,来自′400专利中图6B所示的通信接口单元(CIU)180的信息包输入线122,以及来自标志控制器290的写入线298。RAM250的输出线是256,257。线256,257上的信号来自RAM250中二个不同寄存器的同一列,其中一个被设定为寄存器A,而另一个为寄存器B。总线152,154,156,158根据微控制器20的指令字确定寄存器和其所在列的地址。
ALU280包含一个八选一解码器282,信号输出选择器284和执行输出选择器286。如′400专利中所详细说明的,这使它能产生包括加,逻辑或和逻辑与等多种功能的和信号及执行输出。ALU同时对三位起作用,即来自RAM250中寄存器A和寄存器B的线256,257上的二位和来自标志控制器290的线296上的一位。ALU具有二个输出被写入RAM250中寄存器A的线285上的和信号;以及可能被写入标志寄存器292并加到与该处理器/存贮器相连的其它处理器/存贮器36的东、南、西、北以及数据捕获和译码系统输入端的线287上的执行信号。在执行线287上的信号同样也可通过信息输出线123提供到通信接口单元180。
每个集成电路35还包括某些集成电路上处理器/存贮器的管理电路以及使集成电路按布尔n-立方体型式连接到其最近相邻集成电路的发送电路200,如′400专利案所揭示的,管理电路包括时标发生器140,对于来自微控制器20的指令信号进行译码并给集成电路的处理器/存贮器提供译出的指令信号的可编程逻辑阵列150,以及控制集成电路的处理器/存贮器和该集成电路相关的发送电路之间的输入和输出信息包传送流的通信接口180。
发送电路200控制信息包按布尔n-立方体型式与最近集成电路的传送。通过该电路,信息包可以按布尔n-立方体型式由任一集成电路发送到其它集成电路。如′400专利中图6B所示,电路200包括线分配器205,信息检测器250,缓冲器和地址还原器215和信息发射器220,它们按此顺序成环状串联,这样一个元件的输出被提供为下一元件的输入,并且信息发射器220的输出提供到线分配器205上。线分配器205包括一个15×15个大致相同的发送逻辑单元400的阵列。该阵列的每一列控制布尔15-立方体型式的一维中的最近发送电路200间的信息包的传送流。该阵列中的每一行控制发送电路200中的一个信息包的存贮。发送电路的信息检测器210把与该特别发送电路相关并包含处理器/存贮器地址的信息包提供给通信接口单元(CIU)180,信息发射器220把CIU180的信息包发射到在发送电路中循环的信息包组。
九个这样的发送逻辑单元400如′400专利申请的图11所示,在此用图2重现。在左侧列的三个单元与第一维相关,中间列的三个单元与第二维相关,右侧列三个单元与第十五维相关。每个单元列具有与该维相关的输出线39相连的输出总线410。对于那些行来说,最低行的三个单元是阵列中最低的单元,它接收来自输入线38的输入信号。顶部三个单元是阵列中最高的单元,中间三个单元代表顶部和底部间的任何单元,但在图中示出的是与最底行相连的三个单元。
图2中同样也示出了代表部分信息检测器210,缓冲器和地址还原器215以及发送电路200中的信息发射器220的三个处理和存贮装置420,它们处理的存贮来自线分配器205中的对应的三行单元400的信息。还有十二个处理和存贮装置用来处理和存贮来自其它行的信息(图中未示)。
如果没有发生发送冲突,信息包将被从一个输入端送到第一维发送单元,并送到在一个信息周期内被确定地址的处理器存贮器的寄存器中,如果发生发送冲突,信息包将被暂时地在一个或多个中间点上存贮在发送电路的处理和存贮装置中;把信息包送到其目标需要多于一个发送周期。
图2提供了对每个发送单元400的输入和输出端方便的简要说明。如沿着底行的三个单元400所指的,布尔15-立方体型的不同维来的信息包被加到NAND门405。这些门除了在重置情况下都有效。转换信息包的每个NAND门405的输出,被加到最低行中的一个单元400的输入端L-in。在L-in端的表示信息包存在的信号同样也加到同一单元的输入端LP-in。对于底行的在每个单元来说,设置该信息出现信号的理由是它具有限定底行下一列中的单元在接受信息包时进一步处理的条件功效。这样在单元输入端的表示信息包存在的信息出现信号被用于整个发送电路200以建立发送信息包所需的发送电路200的数据通道。
从某一线38接收到的信息包从M-OUT端被送出一列中最低单元400,并被加到其直接右方一列中的单元400的M-IN端。与此同时,信息出现信号从MP-OUT端送出,送到其直接右方单元的MP-IN。
任一单元400的M-IN端接收得的信号可在任何一个总线端U-OUT输出端或M-OUT端送出该单元,依赖于网络中其他信号是什么。在一列中所有单元400的总线端是连到公共输出总线410上的,该公共总线410是通过NOR门(异或门)415连到输出线39并连到布尔n-立方体型中该维的最近邻近单元上的,异或门415的另一输入是一定时信号t-INV-OUT-n,其中n是维数。该定时信号补充信息包中重复地址中适当的地址位,以当信息包通过布尔15-立方体型时修正该地址。
从U-OUT端离开单元的信息被迅速地加到一列中直接上方单元的L-in端,并且由该单元按在L-in端接收到的任一信号同样处理。信息存在信号按同样方式从UP-OUT端传送到它直接上方单元的LP-in端。
在每列中的单元400中的电路被设计成能在每列(或每维)的输出总线410上放置对应于该维的信息;该信息在最靠近顶部的行中周转并且向顶行压缩所有行。最终,在每列中提供控制信号允许(G)和全满(AF),向该列中的各个单元提供在该列中它以上单元的状态信息。特别是,允许信号(G)通过由G-in和G-OUT端加到单元以下每一列的信号控制每列或每维的输出总线410的存取。传插该信号的电路提供对应于该维地址的列中的最高信息包的存取,并且防止该列中的较低单元中的信息传送到输出总线上,全满(AF)信号通过在每个单元的AF-OUT端和AF-in端向它指明在该列中其上方每个单元是否有信息来控制信息从一个单元400传输到同一列的其上方单元的。如果任一个上部单元是空的,每个较低单元中的信息就移到该列中的上一单元。
对于顶行中的单元,输入到端头的信号总是高的。对于这些单元,加到G-in端的输入信号是对重置信号的补充,因此除了重置期间都为高信号。结果,在一列的顶部单元中的信息包一般将对输出总线410存取,如果对应于该维地址的话。但是如果输出线39断了的话,可通过给与该线相对应维的顶部单元的G-in输入端一个低电平信号而把该线从互连的15-立方体网络中去掉。在单元400的最低行中,来自G-OUT端的允许信号常用于控制能够给输出总线提供接地的通路晶体管425。特别是,如果在那输出线上没有信息,则给那维的输出线写入0位。
在单元中某些触发器的工作情况由定时信号t-COL-n控制,其中n是维数,而其他触发器由基本时钟信号phil定时,从以下说明可以明显看出,每列中的发送单元同步于阵列30中的所有发送电路的同一列中的所有其他发送单元而进行工作。
用几千个相同的并行工作的处理器/存贮器打开了计算的全新远景。由于串行的计算机的限制而不能达到的种种问题现在能在适当的时间内通过并行计算机例如连机计算机实现。
计算能力的大大增加促进了对于现有并行计算机加重负担的更复杂问题的兴趣,并且还促进了对于更大的并行计算机的需求。同时对每一个可由一个并行计算机方便地进行寻址的问题不需非常大的计算机进行处理。一些简单的问题不需用足够的数据去占用大的并行计算机的所有资源;其他一些问题并不对并行计算机的计算量有严格的要求。除非能发现一种方法,在所有时间内都用并行计算机的大部,否则从经济上来说,很难证明用这样的计算机是正确的。
一种折衷的方法是,利用多余的处理能力和存贮容易以模拟另外的并行处理机,如上述参照申请日本专利申请第39301/87号所描述的。根据那种技术,与每个实际处理机相关的存贮器可分为多个子存贮器,并且每个子存贮器可被相继利用,就象它与一个独立的处理机相连一样,这样第一指令或一系列指令被加到并行计算机的所有处理器上以使至少一些处理器处理第一子存贮器中的第一或其它单元中的数据。以后,第一指令或一系列指令同样被加到计算机的所有处理器上,以使一些处理机处理存贮在第二存贮器中相同的第一单元的数据。对每一个子存贮器以此类推,该技术在许多情况下都很有用,处理每组模拟处理器中数据的实际处理器机仍然是惯用的顺序(或者Von Neunann)处理器。结果,如果大量模拟处理器和/或大量数据是与实际处理器相关的话,在实际处理器中会有出现Von Neumann瓶颈阻塞。
本发明的目的旨在提供一种通过在大量用户中合理发配并行计算机的资源提供改善并行计算机利用率的方法和装置。根据本发明,在大量用户中分配并行计算机以满足数据库和与同时在计算机上行的程序的多重性要求。它是通过把并行计算机分成多个处理器阵列的装置来完成的,每个处理器都可独立于其它处理器使用。该种划分按下述意义是动态的,即能够容易地转换,并且实际上在分时环境中能在机器的二个相继时间片之间转换。
此外,并行计算机的构成能如′301申请案所述的,通过每个阵列中的实际处理器允许模拟其它的并行处理机,并能提供模拟并行处理机间的通信。根据本发明,不仅是对于与特殊实际处理器相关的模拟处理器相互间提供通信成为可能,而且对于与任何实际处理器相关的任何模拟处理器同与有行计算机中的任一实际处理器相关的模拟处理机之间通信也成为可能。通过虚拟存贮器的类似概念,我们此后这些模拟处理器看作虚拟处理器。此外,根据本发明,同样提供了在虚拟存贮器中存贮虚拟处理器的手段。
本设计的结果,可能制造具有数量级为1,000,000个实际处理器和数量级为1,000,000,000,000个虚拟处理器的并行计算机。而且,由于计算机可动态地重新组合成多个独立的处理机阵列,这样大小的装置能被大量用户分享,每个用户只是用了整个计算机的一部分,适合于该问题所需的容量,然传被编址。特别是,大约1,000用户可通过局部网络与并行计算机相接。
为了在处理器之间提供通信,实际处理器按足够大小的二进位n-立方体型式互联,以在立方体中给每个实际处理器设定唯一的位置,每个虚拟处理器被指定其独自的地址。这样的地址结构允许对2个虚拟处理器进行编址。
本发明中并行计算机的其它特点还包括计算机支持一通常的单步(word-at-a-time)指令集。另外,它还支持并行指令的同构集。对于每个即时字节运算,对应数据的并行运算对整个数据集同时进行。
计算机还提供硬件支撑以分配和同步执行通过多个处理器的指令。结果,通过机器的那些运算彼此相互按完全确定的次数发生。
用户可能按需要来尽量分配多余存贮量以保证重要事务的可靠运算,这可以从简单的要求不高应用的自检直到可靠事务的整个四重模块余量的范围中。由于多余部分只根据需要分配,故多余量的消耗只是当需要多余量时才能发生。
本发明的这些和其它目的,特征和优点将从以下对本发明最佳实施例所作的描述中明显看出,其中;
图1是已有技术中并行处理机的结构图;
图2是图1中的并行处理机的发送电路的结构图;
图3是本发明的最佳实施例的总体结构图;
图4是本发明一个处理器单元的结构图;
图5和图6是把图4所示的处理器单元组织到并行处理机阵列中的结构说明图;
图7是说明图4所示的处理器单元的部件的详细结构图;
图8-12是图7的部件的详细结构图;
图13是本发明的最佳实施例寻址方式的说明;
图14是有助于理解本发明的结构示意图;
如图3所示,本发明的最佳实施例是一个系统300,它包括多个用户终端310A-N,局部网络320以及一个处理器阵列330。典型地,每个终端包括具有键盘314和CRT显示316的控制台312,一些硬拷贝输出例如打印机(图中未画),以及位于终端和局部网络320间的接口318。如果需要的话,通常的个人计算机可用作终端310。
处理器阵列330典型地包括262,144(=218)个实际处理器部件(PPU),四兆字节的高速读/写或者与每个处理器相连的随机存贮器,外加的低速大存贮量读/写存贮器以及外围电路,兆兆字节的高速存贮器典型的是由集成电路存贮芯片来提供的。大存贮量读/写存贮器例如可能为32,768(=215)个硬盘驱动器,每个具有300兆字节的容量,总的容量是10兆兆字节,262,144个PPU按18维超立方体加以联结,其中每个PPU沿着超立体的十八个边的每一边连结18个相邻的PPU,可如下详细说明。
局部网络320把处理器阵列330中的一些PPU与终端310相连,这样特定的终端与特定的PPU通信。这些PPU依次地动态控制阵列中其它PPU并具逆归控制更多的PPU,以对特殊问题提供充分的处理功能和存贮器。局部网络最好是象开关一样灵活,使任一络端可与任何同连网的PPU相连,并且,这些连接随时可按需要改变,甚至就象在分时环境下所需的经常程度一样。大量常用的局部网络,例如(Ethernet(TM))系统或数字PBX,可用于该目的,它提供了足够的能力以连接包含在系统300中的终端的数目。如果需要,可用多个局部网络。典型地,局部网络应该能连接本发明的系统中的1000个终端。
可以看出,本发明的装置提供了比惯用机器上实际使用更多的RAM数。它允许全部数据库存贮在主存贮器中,其中存取时间成千倍地快于磁盘。串行机器的兆兆字节的主存贮器主要是不经济,因为当只有一个用户在一个单元进行存取太浪费,在本发明中,不会发生这样的问题,这是因为存贮器的许多部分被同时存取。
根据以上参照申请所揭示的,通过把与PPU相关的存贮器分开,并把每个分存贮器指定给不同的虚拟处理器,故每个PPU可作为多个虚拟处理器来工作。根据本发明,存贮器的划分甚至能扩展到虚拟存贮器,例如在硬盘或磁带存贮装置上。进而,每个虚拟处理器在计算机的处理过程中可被认为是等效于实际处理器。
根据本发明,用户可以对PPU指定数据处理和存贮的要求,PPU能构成足以满足这些要求的一组处理器(包括实际处理器和虚拟处理器)。有利的是,该组处理器送归构成,这样一个处理器控制一个或多个其它处理器而其他处理器控制更多的处理器,余此类推。最好是,数据库的每个成份和处理器一对一被存贮,且处理器也按与数据库相同的结构构成,这样安排的结果是1.每个处理器能够完成正规的Von Neumann型运算,包括算术/逻辑运算,数据移动和正规控制如子程序或分支等运算流。
2.每个处理器能够分配一组数据处理器,使它们在并行指令执行过程中受它控制。分配处理器称为控制处理器,被分配的处理器称为数据处理,这些是相对术语,因为数据处理器具有控制处理器的全部能力,并能自身分配数据处理器。
3.每个处理器可以从其分配的数据处理器中选择上下文集合,该上下集合是一系列并行操作的数据。该上下文集合是根据用于所有数据处理器或用于目前上下文集合中所有数据处理上的某个条件加以选择的,上下文集合可以被保存转贮。
4.每个处理机可以同时按其上下文集合中的所有数据并发执行并行运算。并行运算与分类目录1中的顺序运算完全相同,除非它们同时用于上下文集合中所有数据。这些包括所有数据操作,存贮器参照(通信),以及控制流操作。直至编程序者能够了解到这些运算在数据集合中的所有处理器上同时发生。
5.每个处理器能够存取共享的数据库并把数据成份的各部分装入存贮器。虚拟处理机同样也能修改数据库。
本发明中并行计算机的指令相似于常用计算机的指令。它们可分成三类局部指令,并行指令,和上下文指令。
局部指令完全就常用计算机的指令,包括子程序调用,条件和非条件转移,返回,基于寄存器的算术数据移动,逻辑运算机和测试,局部指令在控制处理器内执行。
并行指令就象局部指令一样,除非它们在数据处理器的上下文集合中同时被执行。成组的并行指令,调用命令,是在上下文集合中在所有虚拟数据处理器上同时执行的。对于每个局部数据指令,存在有一个对应的并行数据指令。
上下文指令被用来指定并行处理的虚拟数据处理器集合。有四种上下文指令设置上下文为所有虚拟处理器满足某个条件;
限制上下文使处理器的分上下文在现行上下文的范围内,满足某个条件;
把现行上下文推上堆栈;
使现行上下文跳出堆栈。
这些上下文指令可与并行数据指令混合成组以形成命令。
命令是本发明中并行计算机中的基本同步单元,命令是控制处理器和数据处理器之间的通信单元。在最简单的情况中,一条命令为单个指令,它也可以是一组可一起执行的指令,而不考虑在该命令中通过实际数据处理器的同步情况。控制处理器的基本作用是通过α发送程序(图7)发出命令并且等待它已被所有数据处理器执行的确认。不同的虚拟处理器能够并一般地将在不同时刻执行命令中不同的指令。
命令也是在系统中存贮指令的基本单元。这意味着在命令中所允许的指令数是有限的。因为一条命令可以包含调用指令,由命令完成的运算数目可以任意大。除子程序调用以外,命令可以包含有简单循环和在命令中的条件转移。
指令可根据简单规则或组成命令,规则保证命令中的的指令能同步执行。例如这可以通过允许引入非局部通信会作为命令中的最后指令来实现。
命令通过α程序发送器从控制处理器传输到数据处理器中。当命令被所有数据处理器执行时,给控制处理器提供信号是α程序发送器的职责,该信号机制也被用作为在控制处理器中控制程序流的组合条件编码。
如图4所示的结构图,每个PPU包括微处理器350,功能电路360,和存贮器370,PPU可以任选地包括一特殊数学电路以提高高速数学运算的性能,微处理器350,存贮器370和数学电路380可是常用的集成电路。例如,微处理器350可以是Intel8086机而数学电路380可以是浮点加速器,例如Intel8087。也可用Motorola68000和例如Faircuild clipper的微处理器是有特别优点的,因为它们具有独立的指令和数据引线。
存贮器370可以是任何高速大容量的读/写存贮器。典型地,该存贮器是由32个4×64千位集成电路芯片构成的阵列所提供的4兆字节存贮器。另外可用存贮有利于错误检测和校正的奇偶和错误控制位的存贮器。由于较大容量的存贮器芯片能够获得,这些芯片可用于增加存贮容量的大小和/或减少所需集成电路片的数量。
功能电路360决定着存贮器接口,信息通路,错误校正,指令分配和同步,数据存贮和虚拟处理机控制。该电路接收来自PPU的信息并产生适合于驱动动态存贮器的地址信息。它还把数据送入PPU的数据线或取出,送入动态存贮器的数据线或取出。该功能电路还执行把PPU用作虚拟处理机所需的所有管理功能。微处理器350,功能电路360和存贮器370的连接使功能电路360位于微处理器350和存贮器370之间,允许微处理器对此′400专利所述系统中更多存贮器进行寻址,在′400专利中,微处理器和存贮器直接耦合在一起。与此同时,该结构还调节信息包发送,如下所述。
PPU由16个单元构成,这样具有0~15的16个PPU和外围电路的集成电路设在如图5所示的单电路板400上。外围电路包括硬盘接口410,总输入/输出电路420,自检电路430,时钟电路440,标识电路450和性能测量电路460。
硬盘接口410是标准SCSI小型机系统接口)接口,它连到PPU的O端。它被设计成与下面将要说明的大容量存贮设备470相连,其最大通信带宽近似为每秒10兆位。在电路板400上的其他PPU通过PPU的O端与大容量存贮体相接,用作文件服务器。
输入/输出电路420是32位宽的并行口或串行口,连到PPU1的。该端口具有约为每秒50兆位的最大带宽。电路420把局部网络320与PPU1相接,该PPU1在网络中作为另一终端或简单地作为一并行或串行口。电路板400的其它PPU通过PPU1与输入/输出电路420相接。作为这样安排的结果,在任一终端310A-N处的用户可在处理器阵列330中对任何PPU进行选择寻址,方法就象用户能用连到电话网络中的任何电话一样。
自检电路430能够检测发生在电路板400上的任何错误,这样,该装置可从系统中去除。有利的是,它被连到发光二极管上,能够提供视觉信号指明该装置失效应维修。每个电路板包含其自己的时钟电路440,它同步于系统中其它PPU的时钟电路。标识电路450是一电可抹的固定存贮器,它包含该电路板的生产和维修历吏,序号等等。性能测量电路460检测软件的执行。
大容量存贮体470典型地包括一个标准盘控制器480和一标准的5-1/4英寸300-兆字节驱动器,考虑到在同一控制器上加直至七个附加驱动器,其总的存贮容量为2400-兆字节。
电路板400和存贮体470设在箱500中,它包括16块板400的大存贮体502和16个存贮体470。这样,在具有262,144个PPU的系统的情况下,用1,024(=2)个箱来容纳PPU,箱与箱通过光导纤维通信线互连。因此,每个箱包括一个或多个通信装置505,每个通信装置505包括至少一个用于在箱体间转换并传送数据的光纤收发通信装置。该收发装置可以是常用的光纤收发装置,具有每秒100兆位的数据传送率并能够把一个箱中的不同PPU通过分时多路通信传送到其它箱中以发挥光纤通信线较大带宽的优点,最好的是,在每个通信设备中用至少二个收发装置,这样,信号在每个通信设备中可同时接收下的各维和发射。
最好,PPU330根据上述参照发明′294号所述的技术进行超立方体互连。这样,每个PPU在立体网络中对应于超立方体的四维在同一电路板上与四个其它PPU连接,并且还连到在一个箱中其它4块电路板的PPU上,对应于超立方体的另外四维。在具有262,144个PPU的系统情况下,箱中每个PPU被连到十个不同箱中的十个PPU上。这些另外十对连接对应于超立方体余每个箱中在这些十维上的连接是通过一独立的通信装置505来完成的。
如图7所示,功能电路包含9个主要功能单元地址变换器510,存贮器接口520,虚拟处理器序列发生器530,数据存贮器540,错误校正器550,α程序发送器560,β程序发送器570,阻断器580,以及命令存贮器590。直观地,所有这些功能单元都做在单个集成电路或芯片上,但是也可用多个芯片来完成。地址线532和数据线582把VP序列发生器530和阻断器580连到PPU的微处理器350上。地址线522和数据线552把存贮器接口520和错误校正器550连到PPU的存贮器370上。α引线562和立方体连线572把PPU的α和β程序发送器560,570连到其它PPU的α和β程序发送器上,正如下面将详细说明的。
如图8所示,地址变换器510包含一个PPU地址寄存器605,起始寄存器610,VP偏移寄存器615,Vp增量寄存器620,以及一个页面表625。地址变换器还包括第一、第二、第三多路转换器630,635,640和第一,第二加法器645,650。地址变换器通过地址总线602接收来自VP序列发生器530的输入,变换器的输出通过实际地址总线652而送到存贮接口520,页码的二位通过页位线654提供到VP序列发生器530。如图所示,地址总线是二十四位码宽,实际地址总线是二十二位码宽。
为了理解地址变换器的工作情况,理解本发明的寻址方式是很有帮助的。如图13所示,在系统中存贮了四种类型的地址位置地址,程序发送器地址,虚拟地址,以及实际地址。为了提供足够的虚拟处理以满足1,000个用户的需要,本发明的系统提供甚至存贮在虚拟存贮器中的虚拟处理器。这样,甚至实际贮在盘中的数据可与虚拟处理器相联系。结果,本发明的系统被设计成可有一万亿个虚拟处理器(240)。由于整个地址空间原理上可由一个用户使用,所以CM2提供了一个带有64位地址空间的寻址结构。
地址的最一般的形式是需要64存贮位的位置地址。该地址能在整个系统中的任何虚拟处理器中指出任何存贮位置。地址的最高40位指定正被存取的虚拟处理器。最低24位指定在那个虚拟处理器中的位移。由于264大于整个系统虚拟存贮器的规模,所以在编码中有多余空室。特别是,指明虚拟处理器的40位分别指明了虚拟处理器停留(18位)的PPU,虚拟处理机所开始的该实际处理单元的虚拟存贮器中的字(22位)。虚拟处理器可在实际处理单元的24-位虚拟地址空间中任一偶32-位边界上启动。
程序发送器地址是通信网络所用的地址。它们基本上是压缩形式的地址,是通过把24位偏移量和四乘虚拟处理地址的22位偏移部分加在一起而形成。程序发送器地址指明了系统中的某个实际处理器单元的虚拟存贮器中的一个单字。程序发送器地址的长度是42位它对应于整个系统上虚拟存贮器的字数。
在PPU中,所有地址计数器以24位虚拟地址形式被存贮。在这样的一个地址中,8位码代表存贮器的页,16位码代表在该页中一个字节的地址。该页是虚拟存贮系统的按需要为基础的存贮单元。在任一给定时刻,在存贮器中实际可达64页。
24位虚拟地址由页面表625被变换到22位实际地址上。页面表是有256个字乘6位的查找表,把虚拟存贮器中的28页每一个变换到实际存贮器中的26个页。
地址变换器510把虚拟地址带入功能电路并把它既变到存贮器的实际地址,又变换到程序发送器地址以便通信。地址变换器被设计成能提供三种不同的寻址方式,普通,相对虚拟处理,以及扩展地址。在普通寻址方式中,24位实际地址从PPU中直接取出并分解成8位页号和16位偏移量。8位页号被用作页面表625的索引,它包含虚拟页面与实际存贮器的对应。当参照页面在实际存贮器中时,页面表将产生6位地址告诉页存在于实际存贮器的的哪一部分。它与16位偏移量组合以形成直接通向存贮接口的22位实际地址。当参照页被“换出”时,页面表将通过用页面位的置值来指明,并且发生一个中断,以允许页面从二级存贮装置中转到实际存贮器中。页面通过第一输入/第一输出基线装入,这样,新页将被装入到最新被装入页面的顶部。用页位对某些页进行“写入”同样也是可能的,这样它们绝不会移出到二级存贮装置上。
寻地的第二种方式是相关虚拟处理器,在该情况下,来自总线的地址作为最近正被执行的虚拟处理器相对于虚拟处理器偏移地址的偏移量。这些二个24位地址通过加法器650加在一起以产生24位虚拟地址和以前一样通过页面表而转换的实际地址。虚拟处理编移是由虚拟处理器序发生器或者增加固定虚拟处理器的规模而设置的。
寻址的最后一种形式是完成内部处理机通信的机制,在该情况下,通过β程序发生器来计算相关函数的,其地址如下计算目的PPU的18位地址并置到来自芯片(移位寄存器)的24位实际地址,和装入到起始寄存器610中的24位起始字节的和上。典型地,它是在扩展地址运等过程中通过以前的操作过程装入的。当信息地址接收到以后,接收到地址的存贮部分,是由一个起始和位移的和计算出来的,该存贮部分被用作虚拟存贮器地址并通过页面表按普通寻址方式索引到实际地址。
存贮器接口单元520负责寻址的实际多路转换和随机动态存贮器和存贮器刷新。如图9所示,接口单元520包含刷新计数器660,行数寄存器665,多路转换器670和比较器675。多路转换器670把22位实际地址在11根地址线上转换。刷新计数器660可为诊断目的而重置。存贮接口单元同样也设计成有利于大多数动存贮器所提供的快速块模存取。为了达到这点,存贮器接口单元中存贮了行寄存器665中最后被存取的行的行数。如果比较器675判定存取发生在先前存取相同的行上,则将执行一个快速周期以只选通地址的列部分。这样,相同存贮器块的参照在大约为普通随机存贮所需的一半时间中进行。这对于顺序数据存取块特别重要。
虚拟处理器序列发生器530是一简单的有限状态机以迅速完成虚拟处理器消耗所需的表列运算。PPU附件通过按时顺序多路转换它们的运算实现多重虚拟处理器。PPU存贮空间的某一部分(包括其虚拟处理器)分布给每个虚拟处理器,尽管每个虚拟处理器的虚拟存贮器个数是完全不同的。典型地,由PPU实现的虚拟处理器按几种不同的任务连接。对于每个任务,PPU须按当前任务的上下文形式对通过所有处理器定序,提供被执行的命令。同样,必须对通过每个与任务顺序相关的命令定序。但是,不必对不在被执行的任务的上下文里的由PPU实现的虚拟存贮器定序。结果,大大节约了对由PPU实现的虚拟处理器的定序所需的时间。
虚拟处理器和转换任务上下文开关都由硬件直接支持,存贮器中的虚拟处理器的构成如图14所示。任务被连在一起成为循环清单,称为任务清单,任何给定时刻的PPU包含一个指示任务清单中一个任务的指示器。通过序列发生器530的帮助,PPU依次循环通过每个任务,在走向下一个任务以前,对每个虚拟处理器的现有任务的上下文执行一个命令。这样,如果上下文相对较少,相对于所有处理器都对现有上下文进行处理所需的时间来说,它将在较短的时间内执行。
每个任务具有与它相关的一个标题,包含三种信息对应于现行上下文的指示器;对应于存贮联结清单的栈的指示器,以及对应于任务中所有虚拟处理器清单的指示器,序列发生器同样包含一个对应于任务清单中下一个任务的以及关于任务的辅助信息的指示器,所述辅助信息指的诸如优先和运行统计。PPU按联结清单,在上下文指示器处开始,直到零位终此符出现停止,决定虚拟存贮器中每个虚拟处理器的单元位置。这些清单被存贮在存贮器受保护的区域内。
为了执行“推入上下文”的指令,PPU分配新的存贮部件并把现行上下文指示器推上栈,改变栈指示器使其处于栈顶,“跳出上下文”指令则恰恰相反,除非当栈下溢,否则用顶部上下文级指示器。下一个最普通的操作是根据一些条件把上下文限制为现行上下文的子集合。在这种情况下,虚拟处理器表列根据条件分裂,从现行上下文开始。符合限定条件的虚拟处理器被加到表列的末端。指示着表列结尾处的指示器就成为现行上下文。这样代表连续上下文的嵌套的子集合定序方法被有效存贮。根据这种设计,不在现行上下文中的虚拟处理器在命令执行过程中不会发生过载。
如图10所示,虚拟处理器序列发生器530包含5个主寄存器,其中每个都能够保持虚拟处理器地址的最高22位。上下文寄存器680保持指向现行上下文清单起始的指示器。栈寄存器685保持指向现行任务的上下文栈指示器。顶端寄存器680保持指向现行栈上下文清单顶部的指示器。任务寄存器695保持指向任务清单中的下一个任务的指示器,而下一个寄存器700保持指向虚拟处理器系列中下一个虚拟处理器的指示器。可用另外的寄存器存贮所需的辅助信息。序列发生器530的输出通过多路转换器715被选择以响应可编程逻辑阵列(PLA)710来的信号。
虚拟处理器序列发生器中包含一个由状态寄存器705和PLA710实现的有限状态机,以管理这些寄存器并控制地址变换器和命令存贮器中的寄存器。该有限状态机排列所需的管理指令系列以完成任务和虚拟处理器的交换操作。状态机的输出取决于现行状态和来自功能电路余部的条件位。例如,页面表625的页位。PLA也能够根据由零位检测器720检测得的现行数据是否为零有条件地作出变换。在某种意义上,虚拟处理器序列发生器是一个无算术单元的非常简单的计算机。
数据存贮器540完全是常用的存贮只读数据的存贮器。
错误校正器550是标准的根据6位汉明编码的单位错误纠正、多位错误检测逻辑。如图11所示,它包含线驱动器740,745,750,755用以计算奇偶位的错误控制电路760,765,检测奇偶错误的异门770,判别一个错误是否被纠正的解码器775,以及用于校正检出错误的异门780。错误控制电路760把错误纠正位加到被写入实际存贮器的所有数据上。由实际存贮器读出的所有数据通过在错误控制电路765中重新计算来自存贮器的数据读出的奇偶位以及在与门770中比较这些位和从存贮器读出的奇偶位进行检测。解码器775判别错误是否能被纠正,并且通过把合适的信号加到与门770(如果可能)来实现。如果发生多重错误,由解码器775反映出单元失效。
α和β程序发送器560,570被分别用作为指令和数据传送,并能分享实际通信线,尽管发送硬件是独立的。如图12所示,α程序发送器包含一个由触发器805A-N控制的与门800A-N阵列、第一、第二或门810,815,由触发器825A-N阵列、第一、第二或门810、815,由触发器825A-N控制的多路转换器820A-N,由触发器832,834所控制的第一多路转换器830和由触发器842控制的第二多路转换器840。输入线802A-N被加到与门800A-N,输出线822A-N从多路转换器820A-N延伸。这些线在二进制超立方体中把PPU的α程序发送器连到最近相邻的PPU的α程序发送器上。因此,与门800A-N的数目,多路转换器820A-N和与他们相关电路的数目对应于超立方体的维数,例如18,但为说明起见在此只示出了三个维。由于与每维相关的输入和输出线通向同一个α程序发送器,这些线如果需要可以多路复用。此外,由于这些线作为β程序发送器的输入、输出线通向相同的PPU。它们也能与β程序分配器的线多路复用。
α程序发送器用于分配和同步指令。它基本上起着与4,598,400专利申请所描述的指令分配树和全局-或树相同的作用,除非任何一个处理器或任何数量的处理器同时是指令的来源。这些指令聚集在一起被称为命令。一条命令的执行是通过α程序分配器同步经过整个机器的,这样在下一条命令出现以前,一条命令被完全执行。
来自局部阻断器580被传送的命令在命令进线上接收,从其他程序发送器上接收到的命令通过命令输出线提供到命令存贮器540上。表明接收到命令结束的同步信号在同步进线上由PPU提供到程序发送器,表明其他PPU的一个命令结束的信号在同步输出线上提供到PPU。
α程序发送器的运算方式根据从PPU接收到的信号由触发器控制。这样,如果局部PPU要给其他PPU传输命令,触发器842给多路变换器840赋值以在命令进线上传送信号,而触发器825A-N给多路转换器820A-N赋值以传输这些信号。如果局部PPU接收来自另一个PPU的命令,触发器832,834被赋值以把特定的即将来的维线指定给正在等待命令的多路变换器830。如果该命令是要通到另一个PPU的话,触发器842也给多路变换器840赋值以把来自多路转换器830的信号传输给多路转换器820A-N。通过这样安排,PPU可以把命令传输给与其最近的单元中每一个并以此控制它们;每个PPU等候来自其最近单元之一的命令以被它所控制。
在一个命令出现以后,发布该命令的PPU通过同步信号装置监测命令的执行情况。PPU通过同步输入线把同步位号传输到或门815中,并通过给触发器825A-N置值,使多路变换器820A-N传输来自或门815的信号。同步信号通过赋值触发器805A-N接收,使与门800A-N能给或门810传送一个接收到的信号。或门810的输出也可通过或门815的输入端给其他PPU传送信息。通过这样安排,PPU可以选择地等候它所控制的那些最近单元PPU来的同步信号,而忽略其他那些它不控制的PPU所来的信号。
β程序发生器570基本上是与4,598,400专利中所描述的相同型号的程序发送器。如图2所示,它具有输入输出线38,39的阵列,输入输出线38,39通过图7所示的立体引线572与超立方体中最近相邻PPU的β程序发送器通信。信息包通过地址变换器510和数据存贮器540从微处理器提供到β程序发生器570,接收到的信息包通过同样部件提供到微处理器。输入和输出线可以多路复用,这些线也能与α程序发送器的线802A-N和822A-N多路复用。
β程序发送器负责基本上三种不同的功能,它把信息包从一个PPU传输到另一个,完成4,598,400专利相同的功能。它产生对应于与之相关的PPU所需的存贮器的信息包并把它传输给与其它PPU相关的存贮器,它接收来自其它PPU的被指定到与它相关的PPU输入信息包,并适当传递这些信息。虽然这后二个功能是新的,但在每个功能中信息包的传送是与′400专利所揭示的一样的。
本发明的全部安装好的并行计算机是一个很贵的设备,或许是太大的一个设备以致于一个用户用任何长的时间也不能占据整个系统。计算机的一个设计前提是同时可被几千个用户使用。而用户的最高要求可能非常高,假设平均的需求是适中的,例如每个用户每秒1亿条指令。此外,假定用户能够利用共享设备,而不仅只是计算周期,例如,共享数据库里的信息。
由于用户通过共享空间和共享时间来区分计算机的空间时间源,故用于共享资源的技术被称为空间共享,模仿时间共享而得。就这种意义上说,共享空间可以被更精确地称为“共享空间时间”,因它也能在时间的多路转换。共享空间时间甚至能在每个用户在所有时间内提交给整个系统相同负载的情况下工作,但是就用户感觉到的利益来说工作比上述情况要好,这是因为下列典型用户负荷的不均匀性所决定的。
理想时间许多用户常常在他们使用机器的时候,事实上需要很少的时间周期。这对于能提供询问和共享数据库的事务系统是特别正确的。
非均匀并行性当执行并行程序时,在程序中会有许多点,可能有效地同时利用成千成百个虚拟处理器。还会有其他一些点,在那里单个单步执行已足够。
非均匀存贮器需要许多用户在任何给定时刻只对计算机中一个兆兆位存贮器的相对较小部分要求直接存取。
数据的共同性许多用户在一个短的时间周期内可能对同一数据库进行存取,并允许它在相对低耗情况下保存在主存贮器中。在共享软件中有相似的情况。
为了利用这些非均匀性,计算机根据运行时间的要求动态地把实际处理器分配给虚拟处理器。这样,用户消耗资源正比于实际所需量,而不是正比于想象实用的资源量。
β程序分配器的特点是使在不同用户中划分PPU的阵列,共享空间成为可能。如图2所示,G-in输入端控制通信线39的存取,它能把信息包从一个PPU传送到另一个。如果该线断掉的话,通过给与那根线相连的G-in输入端提供一个低电平信号,就可以把该线从网络中去掉。根据本发明,超立方体的任何子立方体通过给与通信线相连的G-in输入端提供一个低电平信号而分开,所述通信线是连接超立方体的余部和子立方体的。例如,每个子立方体的256个PPU处,可以通过给与第8维到18维的通信线相连的G-in输入端提供一个低电平,256个PPU的分立方体可与18维超立方体简单地分开。同时,在超立方体的各个其它部分的大量子立方体也可同样与超立方体分开,该分离是通过给不再用的那维通信线相关的G-in输入端提供低电平信号。
为了实现这一点,给出了每个PPU的微控制器,对G-in输端进行存取,这样它能响应于一个子立方体特定配置的低电平信号。所示的存取可通过一触发器(图中未画)来完成,该触发器的输出状态可由PPU的微处理器控制。
根据本发明,指令中的标志位表示了由其他PPU并行执行的并行指令。阻断器580检测该标志位。所有由PPU从存贮器中存取的数据通过阻断器580,如果数据的标志位指明是并行指令,则无操作指令被送到数据线,阻断器把并行指令送到α程序发送器中以传送给其他PPU。如果标志位没有指明并行指令,则指令由数据线提供给PPU。
命令存贮器590是用以存贮来自α程序发送器指令的存贮器。虚拟处理器序列发生器530将使PPU从命令存贮器中存取指令以实现每个虚拟处理器上的动作。命令存贮器大体上是一个对由每个任务正在并行工作的指令存贮器。典型地,该存贮器是256个字深度。
由于计算机的内部双重元件,自然可通过冗余技术适当提高误差精度。有利的是,在数据库中的所有存贮内容是在至少二个实际独立的装置中,这样,当一个存贮装置失效时,可用来自后备装置中的数据,并复制给另一个后备装置。当一个处理器装置失效时,直到它被替换以前,它是与系统分开的,而从保留的可用处理机库中再分配实际处理器。
在这类容错系统中最困难的问题在出现错误时检测并分离它们,以及处理出错时刻正在加工的作业。在此,在任务被完美地完成的确信程度和分配给任务的硬件数量之间有一协调方案。在本发明的并行计算机中,用户根据任务的紧急程度,可在运行期间作出协调方案。任务可按三种方式中的一种根据所需的冗余量来完成的。
在系统运行的最简单方式中,如图11所示的错误校正器电路550一类自检硬件被用于检测和分离错误,该硬件能够检测最常见类型的误差和错误,例如,没有校正的存贮器错误,失电,通信中无纠正的错误,在自检方式工作时,一旦错误被检测,当前作业停止,硬件重新配置以隔离失效部分,于是作业再从头重新开始。
尽管自检电路将检测发生的大多数错误,但是不能保证检测到每一类的错误。特别是许多发生在PPU本身的错误将不被检测。在双冗余方式中,运算系统在两个实际上独立的处理器的相同集合中执行二个相同的程序并在规定间隔处比较中间值。(通信系统的引线,是n-维立方体型式,正如给这类比较提供正确的通信路径)。比较机制保证错误检测,分析错误是怎样并为什么发生。一旦在双冗余方式中检测到错误,与自检方式中同样的方式处理。在诊断分析能判别出哪个处理器出错之前,两个处理器都与系统分开。
自检和双冗余方式的缺点是当错误发生时它们需要重新起始作业。这对于不能方便地拆成相对较小作业的任务来说是可以接收的。但是,一些任务具有实时处理要求,不允许作业的重做。对于这二种情况中的任何一种,四倍冗余方式是达到无错运行的合适方式。
在四倍冗余方式中,四个相同的应用拷贝同步运行。每个任务把其运算按循环形式与其他的相比较;例如,A检查B,B检查C,C检查D,而D检查A。当出现一个错误时,通过失配比较的型式,将它检测和分离开来。在这种情况下,处理的正确状态从一个无错任务复制到另一个子立方体中,运行连续,不发生明显阻断。四倍(而不是三倍)的冗余被用来使进行比较所需的合适的连线能在n-维立方体型式中可用。
可明显看出,在本发明的思想和范围内,上述方法和装置可以有大量改变。例如,当本发明被描述成以超立方体二进位形式构成并行处理机的阵列的上下文时,可以理解为可用其它配置,例如′400专利提出的方法。在那种情况下可以看出,对于通信装置,例如上面所述的α和β程序发送器,也需要合适的改进,以在处理器阵列中能信号指示。
权利要求
1.一种包含多个处理器单元的并行计算机,其特征在于每个处理器单元包括一个处理器,读/写存贮器以及控制电路,所述的控制电路包括在所述并行计算机中,通过把确定地址的信息包从一个处理器单元传送到另一单元的用于互连所述处理器单元的手段;保护正在第一组运算处理器单元和第二组运算处理器单元间传输的信息包的手段,其中所述并行计算机被分成二个或多个处理器单元,互相间不相影响。
2.如权利要求
1所述的计算机,其特征在于,互连装置包括位于处理器单元间的通信线以及用于把信息包传送给所述通信线的传送装置,所述传送装置包括按优先原则控制所述通信线存贮的装置,并且所述保护装置包括给所述控制装置赋值以防止对通信线进行存取的手段。
3.一种并行计算机,其特征在于它包括其中每个都能执行串行命令的多个处理器以及能区分将由所述多个处理器并行处理的和不用多个处理器处理的指令之间差异的手段。
4.如权利要求
3所述的计算机,其特征在于所述的用以区分指令之间差别的手段是每条指令中的标志位,以及当标志位确定是并行指令时,用于检测所述标志位并使并行指令实现的手段。
5.一个并行计算机包括几个处理器,每个都有其自己的写/读存贮器,通过信号线互连所述处理器以形成超立方体的手段,把所述多个处理器分成至少为第一和第二同构组的手段,所述组相对于包含在与所述处理器相关的读/写存贮器中的数据来说,也是同构的,用信号线在超立方体中互连所述处理器,在执行计算机指令的过程中,通过比较在第一和第二组并行计算机所完成的指令结果来检侧错误的装置。
6.并行计算机,其特征在于包括具有各自读/写存贮器的多个处理器,使所述每个处理器和读/写存贮器工作得以模拟其他处理器的手段,以及递归控制所述处理器包括模拟其他处理器的装置,使一个处理器控制至少另一个处理机,而另一处理器控制至少一个其他处理器。
7.一种并行处理器,其特征在于包括多个处理器和用于发送所述处理器间信号的装置,所述装置包括在所述处理器间的信号线,在所述处理器间传输确定地址的信息包的装置,把指令从第一处理器传送到选定的其他处理器的装置,以及在第一处理器上用于监测来自被选定的其他处理器上通信线上表明传送指令的执行情况的装置。
8.如权利要求
7所述的并行计算机,其特征在于进一步包括使指令的传送同步响应于由监测装置检测有信号的装置。
9.一种检测并行计算机的运行中出错的方法,其特征在于包括下列步骤各自都具有读/写存贮器的多个处理器与信号线相互连接,形成超主体结构,把这些处理器分成第一和第二个处理器的同构组,所述组对于与所述处理器相连的每个读/写存贮器中的数据也是同构的。利用与处理器互连的信号线形成超立体结构,通过比较第一和第二组处理器上的并行执行计算机指令的结果来检测错误。
专利摘要
一种通过向大量用户分配并行计算机资源以提高并行计算机利用率的方法和装置。并行计算机为大量用户所分配以满足计算机同时运行的大量数据库和程序的要求,它是通过把并行计算机分成多个相互独立的处理机阵列的装置来完成的。并行计算机的构成以允许由阵列中的每个实际处理机对其它并行处理机进行模拟,并提供模拟并行处理器间的通信,在虚拟存贮器中提供了存贮虚拟处理器的手段。
文档编号G06F12/02GK87106067SQ87106067
公开日1988年3月9日 申请日期1987年8月29日
发明者W·丹尼尔·西里斯 申请人:智能机器公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1