归约处理器的制作方法

文档序号:726635阅读:811来源:国知局
专利名称:归约处理器的制作方法
技术领域
本发明涉及归约处理器。
在40年代发明了计算机,此后它以革命性的速度在发展。即使如此,当代的计算机的体系结构几乎与第一台计算机的相同。
大多数的改进是在硬件方面。VLSI的引入和平板印刷术的发展使得能够制造仅在5年以前还被称为超级计算机的单片计算机。尺寸按指数率缩减,线宽现已小于1微米。时钟频率以及有效晶体管的数目已增大了几个数量级。物理局限可能将线宽限为0.2微米。
在此期间,计算机的体系结构并不随着硅的应用而有所改进。相反地,大多数计算机为了运行更快而在使用着大于最恰当数量的硅。
这些事实将在下一个5年内阻碍单个处理器的发展速度。并行处理器的采用由于增加了复杂性而引起硬件费用的增加,以及对大多数的程序类型而言的编程费用的过高的增长。
由于相互的联系,硬件费用得到减少但新系统的编程费用显著地增加并将很快达到高得使人不敢买的水平。
计算机是软件和硬件方面的不同单元的复杂组件。在其发展过程中的不同的范例和阶段已经建立了渗进系统中去的标准-由于特殊的规定并普遍建立到系统中去,由于这些不一致性而存在许多接口。
所有这些质量和类型不同的接口和范例使机器难于被用户或程序员所使用,它的使用需要许多知识,由于复杂,程序员可能输入看不见的错误。
但是,近年开发了所谓的归约处理器。归约处理器执行具有某种包含算术表达式的结构的程序,该结构在一些归约步骤中被缩减。因此,程序不是象在其它类型的计算机中以给定的顺序被执行。
开发超过一定容量的归约处理器有一些困难。
编程语言的发展第一台电子计算机的开发导致了几种适合于这种计算机的编程语言的开发,例如FORTRAN,COBOL,AIGOI,BASIC,PASCAL。这些语言被称为强制性语言,下面也称为常规语言,主要是由于这一事实,即它们通常给出由一系列将被常规的计算机,就是说根据由John Von Neumenn发展的原理而设计的计算机顺序地执行的命令或指令组成的程序。对这些语言不断增长的不满导致另一系列语言的发展LISP,ISWIM,Scheme(LISP的分支),ML,Hope,SASL等等。在这些语言发展后面的驱动力是概念上的简单,特定的机器不影响其设计。在一段时间之后功能性语言才被注意,理由之一是功能性程序执行较慢。后来的发展已表明,在某些情况下,即使这些功能性程序不是专门为了被常规的计算机所执行,但执行速度已能够接近或者等同于被常规的计算机执行的常规(强制性)语言程序的执行速度。
软件危机产生巨大的动力来开发功能性语言是由于对强制型语言不断增长的不满。人们大约在1970年开始谈论软件危机。变得越来越复杂并且经常包含许多错误的程序难于阅读、难于理解并且特别难于修改。原因之一是对高级强制性语言将简化编程的期望过高了,这些语言并不是如原来所想象的那样高级或抽象,强制性语言只适合于早期的计算机概念,即Von Neumann型计算机,并且编程的水平简直就接近机器的水平。功能性编程语言具有几种减轻常规的编程语言的某些缺点的性质。
为了得到更多的信息以及更好地理解,参看教科书《使用标准ML的功能性编程》AKe Wikstrom,Pretice Hall 1987。
为了充分理解发明的目的和优点,必须了解在计算方面的功能性方法包括些什么,特别是与在历史上很流行的强制性方法相比较。
“功能性方法”的说法是指程序用功能性语言来书写并且在包括特别适用于这些语言的硬件的计算机上被存储和被执行。同样地,“强制性方法”的说法是指程序用强制性语言来书写并且在包括适用于强制性语言的硬件的计算机上被存储和被执行。
但是,在常规的计算机上存储和执行用功能性语言书写的程序是可能的。反过来也是可能的-用强制性语言书写的程序能在适合于执行用功能性语言书写的程序的计算机上被存储和执行。
功能性语言的性质用功能性语言书写的程序可被看作是一组对象性质的定义和计算规则。定义是说明部分,而计算规则,或者归约或者重写规则是计算机在执行期间使用的操作部分。功能性语言向计算机提供较高级的接口,该接口使程序员有可能脱离开计算机的与硬件相关的细节。功能性程序通常比常规的强制性程序更短并且更易于理解,这是其积极性的一面。功能性语言的一个主要缺点是,功能性程序为了能在常规的计算机上被执行不得不被翻译成常规的语言。这已经可以用编译程序或解析程序来实现。显然,功能性方法的某些长处的发挥受到以下事实的影响,即还没有专门的硬件能够有效地存储和执行功能性程序。
本发明的主要目的是提供在其中消除了大部分的硬件限制的处理器。
本发明另外的目的是提供适用于真正的实时运算的非常快速的处理器。
本发明的再一个目的是提供一处理器,在该处理器中,编程将会尽可能的最简单,编程的复杂性将以统一和简单的标准来衡量。
本发明的再一个目的是提供适用于同时可作为机器语言,操作系统,通信协议和编程语言使用的语言的处理器,即该语言简单并且在语言中软件等级已被降为最小。
本发明的再一个目的是提供对程序员,系统管理者,硬件设计师和普通人员而言使用都非常简单和灵活的处理器。
本发明的再一个目的是提供适用于将行为作为语义对象的说明性编程语言的处理器,由此描述实时操作和系统特性。
本发明的再一个目的是提供具有与数值算术单元相分离并且与之协同操作的结构算术单元的处理器。
为了达到上述的及其它目的,本发明提出由具有结构的程序控制并且适用于在包括不同类型的归约的一些归约步骤中缩减所说结构的归约处理器,这一类型的第一级处理器包括快速存储器,后者又包括
a.多个快速存储单元,每一单元有机会引起归约操作的执行,以及b.将每一归约的结果传送给存储单元中与该结果有关联的所有单元的通信网络。
通信网络最好包括总线配置,总线配置有控制线和数据线,所有这些线被连接到每一个所说存储单元,以及为所有所说的存储单元公用的控制装置。每个存储单元可包含执行归约操作必须的所有信息。
归约信息也可包含对至少一个所说的其它存储单元的访问,通过所说的访问而进行通信的存储单元的内容呈树结构。至少一个被称为磁芯单元的所说存储单元能够执行所有类型的归约,被称为目标存储单元的余下的所说单元只能执行所有归约类型中某些有限的部分。目标存储单元被包含在具有用于外部控制的第一总线配置和用于数据的第二存储器总线配置的相关存储器中,该相关存储器包括用来存储复合信息的几个所说目标存储单元;
在每个所说目标存储单元中的用来存储至少一个标记的装置,所说标记至少表明所说目标存储单元的选择状态或非选择状态;
在所说目标存储单元中进行检索操作以便设置所说标记的装置;以及所有所说目标存储单元与之联接并且从几个所说目标存储单元中选择一个优先译码器。
至少需要一条全局总线以便在所说存储单元之间进行与和或的逻辑操作,以及在每个存储单元中的用来与所说总线进行通信并且控制所说存储单元使其参加实际的逻辑操作的装置。
几个第一级归约处理器可被连接到代表第二级归约处理器的矩形域中,所说矩形域中的每个第一级处理器包括通往在所说矩形域中的每个相邻的第一级归约处理器的通道。
第二级归约处理器又可被划分为每个大小为2n×2n个第一级归约处理器的各逻辑区域,所说各逻辑区域以固定的模式相互以侧边相连接以便覆盖所说第二级归约处理器的矩形域。
至少一个被设有地址的有关的非直接单元被存储在每个区域中,所说单元相对于在它所属的区域内的存储单元才是有关的。
第一级处理器在所说第二级处理器中可相互如此连接,使得通过对在所说第二级处理器的所说区域的放置进行内部的再定义在所说第二级处理器内的每个所说区域在每个方向上是半个区域可移置的。
此外,几个所说第一级归约处理器可以分级网络的形式进行连接,每个网络为总线或环形,或者几个所说第一级归约处理器可以分级网络的形式进行连接,至少有两种类型的网络,第一种为总线而第二种为环形,第三种为矩形域。
至少一个端口装置被连接到所说快速存储器装置,至少一个外围装置被连接到所说的至少一个端口装置。
设置了将由端口装置提供的信号序列与存储在至少一个存储单元中的序列进行比较的装置,存储的序列具有在所说快速存储器装置中可能没有被定义的序列单元,还有如果该比较给出明确的区别就不重写所说的存贮序列,即作为代表不一致的某种东西,否则就将所说的存贮序列重写入一指定的序列中的装置,该指定序列为来自周围的信号序列与来自机器的存贮序列的统一。
多个第二级归约处理器相互之间地区性地扩展开来就会形成第三级归约处理器。
区域有限的相关寻址被用于第二级归约处理器,而物理寻址被用于第三级归约处理器。
归约的执行待执行的程序可用闭包的有向图来代表,其中程序的每一部分用闭包来代表。执行时闭包的这一有向图根据所用语言的缩减规则被逐步地缩减。当不剩下可执行的闭包时,程序的执行就完结了。闭包的有向图可被看作一树结构,在该树结构中树上的每个节点是闭包,最上面的节点被称为根。归约的执行一般是通过从下到上缩减树结构,缩减树最远离根的部分,然后缩减至根部来实现的。这种执行通常被称为命令驱动执行,这就是说,取决于其它部分的执行结果的部分程序的执行被推迟到获得执行结果为止。
定义以下是在本说明书中使用的一系列术语以及它们专用的意义元素数据结构中较大的部分;
表元素的有序的序列,每个元素也可以是表;
插入表表的一部分,小到能够整个存储在一个单元闭包中,使有可能表示任意长的表;
闭包定义过程的分级结构实体,所有闭包都有唯一地确定闭包的根。归约机中的归约操作是在闭包上进行的。机器的全部状态通过归约来变换;
目标存储器包含存储目标的存储单元的存储器;
存储单元目标存储器中的单元,它存储单元闭包,该单元闭包可访问存储在其它存储单元中的其它单元闭包;
单元闭包存储单元中的内容;
存贮单元字段存储单元中的字段;
闭包元素存储在存储单元字段中的数据元素;
闭包标识符唯一地指定一闭包的闭包单元元素;
正则闭包不能被再缩减的闭包,即不包含任何指定某些其它单元闭包的闭包标识符的单元闭包,这些其它单元闭包被以这样一种方式来缩减,使该单元闭包不得不进一步被缩减;
目标将要被执行,即被缩减的闭包;
父在值/指示字段中至少具有一个闭包标识符的闭包;
子通过闭包标识符联结到另一个闭包的闭包,该标识符指定子;
子也可以为父,父也可以为子,一个子可以有多个父,一个父可以有多个子;
闭包网一个闭包及其所有的父;
闭包状态闭包是根或者是节点;
根闭包树上最上面的闭包;
节点闭包树上不为根的闭包;
地点包含闭包状态的存储单元字段;
类型单元闭包中的类型代码,即代表对象的性质的比特模式,例如指令代码;
懒惰单元闭包中表示该闭包是可执行的或者被推迟计算或者是不活动的元素;
标识符用来表示存储在存储单元中的对象的特殊种类的闭包元素;
环境通过给予它们相同的环境可被组合在一起的成份;
值/指示存储简单值,即直接表示,零或者相对另一个闭包的指示,即非直接指示的闭包元素;
磁芯单元结构算术单元,磁芯单元能够执行与缩减闭包有关的结构计算;
数值ALU数值算术单元能够执行基本的数值和逻辑运算,磁芯单元利用数值ALU进行数值运算;
全寄存器贯穿磁芯单元中的所有面的寄存器;
磁芯字磁芯单元中的全寄存器的内容;
有限寄存器贯穿磁芯单元中的有限数量的面的寄存器,这些面包含了值/指示类型的闭包单元元素;
元素字有限寄存器或者与有限寄存器大小相同的一部分全寄存器的内容;
数值字代表值或指示的元素字的一部分;
标记字具有表示在数值字中的表明特征的标记的元素字的一部分;
归约根据所使用的特定的编程语言规则重写/重建闭包。
相关目标存储器根据本发明获取处理器的策略是将目标存储设备作为几个存储单元来设置。每个这样的单元应当包含一个单元闭包或者应当是空闭未被使用的单元。不应以特定的顺序来设置这些单元,但应设想是可利用的资源库。
不具有物理地址或不依赖于物理位置被认为是非常重要的。这样的依赖性将或迟或早产生问题,如在所有常规的RAM型设备中那样。
目标存储器中的所有单元通过存储器总线配置来进行通信,为了降低成本这是非常重要的。其它的配置,例如使用几个端口等将增大目标存储器的面积。但是存储器总线配置在每个存储器周期中只能执行一个操作。
归约机制具有由单元闭包构成的状态,每个单元闭包有一标识符,通过标识符连结在一起的单元闭包形成图。通过利用单元闭包的标识符对单元闭包进行寻址能够追踪图。因此,存储器总线将被作为所有图的顶点的共享路径。
每个单元闭包还有环境,该环境可包括指定在提供闭包的环境的闭包树上的根闭包的标识符。这样一来,从树上的一个闭包经由根仅在一个操作周期内就能寻址整个结构。具有相同环境的闭包可被组合在一起。
必须根据内容信息进行所有的“寻址”,因为不具有物理依赖性,即存储器是相关的。单元闭包,即存储单元中的内容几个可存储在存储单元的存储区域中的闭包元素。每个存储的元素可包含带有某种标记信息或者值的表示或者它不被使用的说明的标识符。在相关检索中,可以使用任何闭包元素或者闭包元素的组合作为检索的线索,例如单元标识符,单元环境,单元类型,写入存储单元字段的值或者它们的组合。
闭包元素可包括表明闭包元素已被选择作为存取机制的目标的额外选择比特。某些检索操作在存储单元字段中设立这些选择比特。
这种类型的存取涉及一个或几个存储单元,一个多单元操作能够在属于不同的存储单元的多个被选择的存储区域中存储标识符。
中央控制单元基本的归约规则太多,所以它们不能被包括入每个存储单元中。因此,归约机制被所有单元闭包所共享。驱动和读出放大器被用来使所有的目标存储单元能够驱动长的存储器总线导线。中央控制单元能够随时和在各级上调整总线信号。因此,由于中央控制单元作为控制设备,所有的通信在存储器总线配置上进行,最好为布尔门阵列的中央控制单元对外部导线上的数值进行相当简单的译码并通过控制总线配置将大部分的控制信号传送到目标存储器中的所有存储单元。有关控制单元的设计的进一步知识请参看Carver Mead和Lynn Conway所著的教科书《VLSI系统引论》,Addison Wesley出版公司1980年版。
为了能够执行复杂的存取模式,在每个存储单元中求解布尔表达式。通过由中央控制单元传送的控制字控制这一表达式。控制字通常是由中央控制单元读出存储单元中的信息来获得的。对于本发明的归约处理器的大部分应用而言,在存储单元中求解布尔表达式是很重要的,因为这比用普通的方式从存储器中读出信息并处理该信息有效得多。
为了使用布尔表达式引起的面积额外开销尽可能小,布尔表达式被选择得尽可能小。因此,应仔细地选择存取操作。
这就是说,控制单元控制目标存储器的操作,存储器总线配置与所有存储单元进行通信。在某些情况中,要求读出几个存储单元,为此目的,提供了每次只选择几个候选单元中的一个机制。选择是由连接到所有存储单元的优先译码器来进行的。
磁芯单元最好应使以下称为磁芯单元的特定的快速存储单元能与目标存储器协同操作,后者本身又被看作为快速存储器。磁芯单元能够执行所有类型的归约,而相关目标存储器包含只能够执行归约类型中某些有限的部分的存储单元。但是,可以在目标存储器的一部分中模拟磁芯单元-虽然这不是很有效。
磁芯单元能够存储多个表达式层次。存储在磁芯单元中的表达式的基本指令应在磁芯单元中被执行。磁芯单元适用于结构单法,即重写由计算机程序给出的结构的算法。单元的表达式的单位大小相应于在重写操作中涉及的表示图的转移。
数值/结构算术单元需要指出磁芯单元是只进行结构计算,即大部分的归约的器件,它利用数值算术单元(数值ALU)执行数值运算。通常在处理器中设置既执行数值运算又执行部分结构运算的算术逻辑单元(ALU)但这种先有技术的ALU并没有被划分成为相应于结构和数值运算的功能部分。当使用常规的ALU,为了执行相当于在磁芯单元中执行的结构运算的运算时,需要少量的程序。
为了更彻底理解本发明以及发明的另外的目的和优点,请参看对附图的以下描述,其中

图1示意地表示本发明的第一级归约处理器的结构;
图2示意地表示在图1的第一级归约处理器中的存储器实施例的设计;
图3示意地表示在如图2所示的存储器中的存储单元的实施例;
图4A表示在能够存储单元闭包的存储单元中的不同字段的使用;
图4B到4D表示能够在磁芯单元的实施例中使用的磁芯寄存器;
图4E表示在磁芯单元的实施例中的磁芯寄存器的可能结构;
图5A到5F表示在磁芯单元中的各种数据存储方式;
图6、7、8表示磁芯单元操作的实例;
图9表示在图1的第一级归约处理器的磁芯单元中的操作面实施例的方框图;
图10示意地表示在具有如图9所示的操作面的所有类型的可能连接的磁芯单元中的类属寄存器单元设计的实施例;
图11和12示意地表示在磁芯单元中的寄存器单元之间转移的两个实例;
图13到19表示磁芯单元内数据传送的各种实例;
图20表示在存储单元(如图3所示)中的比特单元的电路图以及与之连接的驱动和读出电路;
图21A表示被包括在存储器的优先译码器中的方块的电路图;
图21B表示如图21A所示的方块的连接;
图22表示在存储器中的元素标题的实施例的电路图;
图23表示在存储器中的闭包标题的实施例的电路图;
图22A表示在图1的第一级处理器中的数值ALU的方框图;
图24B表示图24A所示的数值ALU的时钟信号以及某些基本的控制信号的波形图;
图25表示算术表示法中比特字段划分的简略表示;
图26A表示整数代码的图形表示;
图26B表示浮点值代码的图形表示;
图26C表示说明在7比特总线上设置的算术表示法的建立的简略表示;
图27A和27B表示根据图26提供的数据表;
图28表示在本发明的第一级处理器中的数值ALU的实施例的电路图;
图29A到C表示不同时钟序列的数值ALU的输入/输出缓冲器的实例;
图30表示被包括在图28所示电路中的精确译码器实施例的电路图;
图31A表示在图28所示电路中的全字加法器实施例的方框图;
图31B表示在图31A的加法器中的精确片的方框图;
图31C表示在图31B的精确片中的比特片的方框图;
图32表示在图28所示电路的递增器中的精确片的实施例;
图33表示被包括在图28所示电路的操作数电路的选择器中的基本选择器比特片的实施例的电路图;
图34表示包括在本发明的处理器中的端口处的信号序列图形;
图35表示本发明的处理器的输入和/或输出端口的实施例;
图36表示本发明的非常一般的第二级归约处理器(SOP);
图37A表示在其中第一级处理器(FOPS)被设置在矩形域中的SOP的实施例;
图37B表示在被提供有四个单独的数据转移装置以便可能在图37A的矩形域SOP中使用的磁芯单元中的操作面;
图37C表示包含被划分为矩形区域的256FOPS的矩形域SOP;
图37D和37E表示在矩形域SOP中的软环;
图38表示在其中FOPS被以分级网络形式排列,每一网络为总线的SOP的第二实施例;
图39表示在其中FOPS被以分级网络形式排列,每一网络为硬环的SOP的第三实施例;
图40表示包括在图37A、38、39中的SOP的组合SOSOP的实施例;
图41表示包括几个SOPS的第三级归约处理器;
图42A到C表示第三级归约处理器的各个部分,并用图说明处理全局寻址的一种方法。
第一级归约处理器本发明的第一级归约处理器的一实施例,即一简单的归约处理器如图1所示。如以下将要进一步描述的那样,第一级处理器是能够被作为在更复杂的归约处理器中的一部分的归约处理器。这一归约处理器的粗略结构由图1可一目了然,但是,应当指出它的设计可以差别很大,例如,磁芯单元的不同面可被并排地设置在芯片上,或者它们可被以平行层的形式设置,但不必具有与示意图所示的设计完全一样的设计。
图1的第一级归约处理器包括以下被称为目标存储器的快速、相关存储器1,它包含有以下被称为存储单元的存储器单元,每一单元能够存储包含可执行的部分的数据对象并且最好能够提供有限缩减运算集合,结构算术单元2,以下称为磁芯单元,包括几个执行结构算术运算,即结构修改归约的磁芯寄存器3,以及在多个处理器之间提供通信的处理器网络数据转移装置4。如果图1中的第一级归约处理器是包括几个第一级归约处理器的两级或多级归约处理器的一部分的话。数据转移装置4包括几个适合于暂时保持存储单元结构的寄存器以便将该结构转移到另一个第一级处理器。
可以在目标存储器中为在磁芯单元中进行的操作保留一字段,即可以在目标存储器的一部分中模拟磁芯单元。磁芯单元具有几个特性以便仅在一操作周期内在它的寄存器之间交换和转移数据。这样的特性在模拟磁芯单元的目标存储器字段中将需要几个操作周期。
数值算术逻辑单元(数值ALU)5连接到磁芯单元2,当要进行数值运算时,磁芯单元的数据被转移到数值ALU,因此,结构运算和数值运算是在不同的独立单元中进行的。
处理器当然还包括控制目标存储器1、磁芯单元2和数值ALU5中的部件的中央控制单元6。另外,还可向处理器提供一个或几个端口,以便与外界进行通信。
中央控制单元中央控制单元6最好是结构相当复杂的布尔门阵列。它的实施例无法表示,因为它的结构是在被提供了所有考虑了与信息信号有关的控制信号的形式的算法的计算机中被计算的。根据本发明,对于整个处理,布尔门阵列由适用于芯片掩膜的结构的计算机直接以芯片掩膜的方式来提供。因此,该电路的细节无法表示。结合以下描述的实施例只能描述输入到该电路或从该电路输出的信号。
目标存储器目标存储器1比普通RAM型存储器更智能化,如以下进一步说明的那样,它是相关的,这就有可能使它提供比如由普通RAM型存储器所提供的“读”和“写”更多的服务,特别适用于目标存储器的比特单元结构如图20所示。
虽然存储器比特单元只包含四个连接关系,其中三个是可控的,但它能够完成许多功能。它包含非常少的部件,这就有可能制造包含大量存储器比特单元的袖珍型存储器件。
目标存储器以存储单元来划分,每个存储单元包括几个闭包元素。所提供的服务在较高的级别上,例如,能够找出特定的数据元素的所有出现,不管数据元素放在单个存储单元的哪一个里,能够只使用一个存储器指令在全局上,即在整个目标存储器内将找出的特定的数据元素重写为一新的数值。因为目标存储器是相关的,这一重写操作可在两个物理存储器周期内完成,与涉及的存储单元的数目无关。
参看图2,相关目标存储器1由存储单元10的列的存储面组成,因此,存储单元以堆叠的形式被设置为列。如将结合图20作进一步的描述那样,它们被连接到在变换接口7中的驱动和读出放大器驱动的垂直存储器总线t1、t2、id、env、V0、V1、V2、V3。所有的存储单元被连接到每次从将要被操作的几个存储单元中选择一个存储单元10的优先译码器11。目标存储器被在某几个周期的对话期间执行的相关存取所控制。在对话期间执行全目标存储器的存取。
端口为了与外界进行通信,可以给归约处理器设置一个或几个用于输入/输出数据的端口。端口可被看作是目标存储器的延伸,因为它包含功能相同的存储单元并且与目标存储单元兼容。端口通过统一化执行输入/输出操作。
目标存储单元目标存储器1中的存储单元10被用来存储数字信息以及被用来积极参与实际计算。在每个存储单元10中存储复合数字信息和至少一个标记。标记或者是“被选择”或者是“不被选择”,通过读或写被标记为“被选择”的信息能够读或写称为闭包元素的在存储单元或在部分存储单元中的复合数字信息。不涉及标记比特也能进行存取。存取被在一比特总线a和b上的逻辑函数的结果所控制,上述总线被连接到如图3所示的单元,图3表示存储单元。
为了在存储单元10之间进行逻辑运算,设置了两条全局一比特总线12(模式)和13(更多)。这些运算可以是与和或。第三总线14(任何)被设置为连接到优先译码器。但是,总线的数目不是限于三条而是可以仅为一条或几条。各个存储单元能够从总线12、13、14读出,并且也参与逻辑运算。如果将要对总线a和b的任何一条进行测试,总线12(模式)将出现信号“真”,所有的存储单元都能够读和写总线12(模式)。如果一个以上的存储单元被选择,总线13(更多)将出现值“真”。如果任何一个存储单元请求通信总线14(任何),将出现信号“真”(即“1”)。
图3所示的存储单元被划分成几个存贮单元域151,每个存贮单元域151包括几个比特单元15和元素标题16。闭包元素被存储在比特单元15中,表示被选择或不被选择的标记被存储在元素标题16中。可以给闭包元素指定彼此不同的任务。将要被存储在每个闭包元素中的字长例如可以是38比特。作为在标题16中的标记的附加物,以比特单元15中的一些比特也可被用作表示在该元素中的其它信息的使用情况的信息。因此,所谓的标记字可被设置在这些比特中,6比特可被用作标记字而32比特可被作为在比特单元15中的通常的被存储信息。
由图3显然可知,所有闭包元素不必大小相同,因此,被连接到总线部分t1和t2的闭包元素,即类型小于被连接到其余总线部分的闭包元素。存贮单元域151的元素标题16被连接到存储单元的局部一比特总线a和b。可以以另一种方式选择这些总线的数目,重要的是至少应有一条总线,使用这些总线来进行被选择的闭包元素之间的线与和线或逻辑运算。
每个存储单元有闭包标题17,总线a和b被连接到闭包标题17。闭包标题17通过至少一条1比特的总线被连接到优先译码器,在实施例中,该总线被表示为两条总线18和19,还被连接到全局总线12和13。闭包标题17作为缓冲器。这些存储单元能够读这些总线上的结果或参与逻辑运算。
目标存储单元的使用图4A概略地表示存储单元的具体化,这一具体化的存储单元将被用来说明在存储单元中的不同存储字段的功能,就象在本发明的处理器中使用的那样。在图4A的存储单元中的字段不具有与在图3的存储单元中的字段相同的次序,因为图3表示硬件结构而图4A表示单元的使用。如图4A所示,存储单元能够存储两类闭包元素,并且包括特别适于将要被存储的元素的存储字段。在图4A中这些字段被命名为与将要被存储的这些字段中的闭包元素相同的名称。
第一类闭包元素第一类元素描述存储单元的不同状态,这一类的一个元素是懒惰(LAZY),它表示单元是否空闲,此时该单元的其余内容被看作是消极的信息,是可被执行的,即处于可执行状态,或者表示单元是否在等待,即对该单元的测定已被延迟,在它可被执行之前,它在等待结果。字段懒惰包含两个比特。另一个第一类元素是地点(WHERE)表示闭包是否是树的根或节点,它包含一个比特。再一个第一类元素是类型(TYPE),它包括类型代码(par、seq、apply、list、unify等),它在所示的实施例中包含三个比特。当单元闭包被转移到磁芯单元以便进行缩减时,这些第一类元素适合于被存储在磁芯寄存器3的设置,在如图1所示的懒惰、地点、类型面上的那些部分中,因此,已给它们相同的名称。但是磁芯单元还有另外的被称为闭包简单值(CLOS/SIMPLE)的面,它表示在寄存器中的信息是否是闭包或是简单值。以下面,闭包/简单值、懒惰、地点、类型被称为属性面(ATTRIBUTE planes)。根据应用情况,可以提供附加存贮单元域和磁芯单元面。
第二类闭包元素第二类元素描述标识,环境或数值,它们是标识符((IDENTIFIER)、环境(ENVIRONMENT)、值/指示(VALUE/DES),这些第二类元素适合于被存储在磁芯寄存器3的设置,在如图1所示的标题(HEAD)和数值(NUM)面上的那些部分中。在所示实施例中,每个这些元素包含包括38比特的元素字。当被转移入磁芯单元时,元素字又被划分为数值字的标记字,前者最好为32比特,被存储在磁芯单元中的NUM面上,后者最好为6比特,被存储在HEAD面上。根据应用情况,可提供附加面。
标记字第二类闭包元素中的每一个具有表示数字字的特征的标记字。标记有两种,非直接标记字,即被用于标识符和环境的标记,和直接标记,即被用于简单值或类似的东西的标记。非直接标记字的例子是CIS、Canon和open。如果标记字是CIS,这就意味着数值字代表还可被缩减的闭包。如果标记字是Canon,这就意味着数值字代表不可被再缩减的闭包。如果标记字是open,这就意味着标识符字段代表为一被插入表的闭包。直接标记的例子是discr、cont unused、和nothing。如果标记字是discr,这就意味着数值字是一整数。如果标记字是Cont,这就意味着数值字是一浮点值。如果标记字是unused,这就意味着字段中的数值字无意义。如果标记字是nothing,这就意味着字段的数值字什么也不代表,即相抵触,例如,对包含什么也未标示的字段的闭包进行联合,将总是什么也没有。根据应用情况,可以提供附加间接或直接标记字。
标识符如果存储单元中的标识符字段包含标识符元素,就能将在该存储单元中的单元闭包转移到磁芯单元。每个存储单元字段VALUE/DES可包含另一个单元闭包的标识符,由此提供到其它单元闭包的连接。被存储的闭包的总和可被看作是被标识符联合在一起的有向图或单元闭包树。
环境环境字段可包含表示在提供闭包的环境的闭包树上的根闭包的标识符。这样一来从树上的闭包开始,经过根,仅在一个运算周期内内就能对整个结构进行存取。但是环境字段还可以有其它用途。通过在被产生的所有单元闭包的环境中存储产生者的标识符,环境就可被用来跟踪结构的产生者。另一个例子是在子树上的所有闭包单元通过具有相同的环境可被组合在一起,在这些闭包单元中具有相同名称的所有符号应代表同样的事物。
因此,如果给定闭包的环境,就能找出在该环境内的根闭包。在它的存储单元的字段WHERE中可以给环境的根闭包设置一个专门的标记(例如“1”),在字段WHERE中可以给环境的节点闭包设置另一标记(例如“0”)。
类型类型在存储单元字段TYPE中的内容是单元闭包的类型,这一类型组成部分例如可以具有值par,即并行值和/或指示;list,即顺序值/或指示;unify,即将要被检验,看它们是否代表相同的数值等的值的内容和/或指示。
磁芯单元磁芯单元作为一个整体是用来进行结构运算的算术器件,包括几个磁芯寄存器3(参看图1)。寄存器存储表树,每表包含字。
磁芯寄存器包含从目标存储器1获得的定义。磁芯寄存器3通过包括总线类型、id、env、V0、V1、V2、V3的总线配置8被连接到目标存储器,该总线配置容量足以传送在目标存储单元中的内容。但是,磁芯单元可包含多达三级的目标结构,存在四种情形0、1、2或3级目标结构都可被存储在磁芯单元中。
磁芯单元中的寄存器能被在磁芯单元的实施例中使用的寄存器如图4B到4D所示,能够被在磁芯单元的实施例中使用的寄存器结构如图4E所示。
图4B所指的是寄存器由寄存器单元来构成,每个单元能存储1比特信息。画出寄存器的方法是在表明寄存器贯穿磁芯单元中的不同面,每个寄存器单元位于一个面内。
图4C表示贯穿磁芯单元中的所有面的寄存器,即全寄存器。这种寄存器能够在位于NUM和HEAD面内的寄存器单元中存储一标识符或数值。如上所述,它也能在位于BOOL、TYPE、WHERE、LAZY和CLOS/SIMPLE面内的寄存器单元中存储状态。
图4D表示只贯穿磁芯单元的NUM和HEAD面的寄存器,即有限寄存器。
图4E表示磁芯单元中的寄存器的可能的结构。磁芯单元具有最好为矩形排列的基址寄存器,称为基址寄存器矩阵。基址寄存器有沿着它的一侧边的主要行,称为主寄存器。基址寄存器的列,每列有一在底部的主寄存器,称为次要寄存器。还可以给磁芯单元设置标识符寄存器和环境寄存器。一列辅助寄存器被设置在基址寄存器矩阵的旁边。
在磁芯单元的一实施例中,除主寄存器外的所有基址寄存器可以是图4D所示的类型,即有限寄存器,图4E中余下的寄存器可以是图4C所示的类型,即全寄存器。
在更详细地描述磁芯单元的硬件结构之前,参看图5A到5F,简要地描述数据的不同存储方式。参看图6A到6H,7A到7G和8A到8G,描述磁芯单元操作的实例。
简单值如图5A所示,在主寄存器的一特定的寄存器中存储作为缩减的结果的简单值25。
一级结构目标是为了被缩减而被装入磁芯单元中的东西。如图5B所示,只包含一级结构的目标,特别是不访问其它单元闭包的闭包被存储在主寄存器中。该实施例表示简单的数值运算,即值1、2和3的相加。数值指令(+)被存储在第一个主寄存器中,而将要被处理的元素被存储在其它主寄存器中。
两级结构如图5C所示,包含两级结构的树可以使它的作为父的根表被水平地存储在主寄存器中,使作为子的表被垂直地存储在基址寄存器中。在这一例子中,具有表表示((1 2)(3 4))的结构被存储在基址寄存器矩阵中。作为次要表中的第一个元素的根表,即1和2被存储在主寄存器中。而子表,即(1 2)和(3 4)被垂直地存储在次要寄存器中。以下,例如结合图6将给出这类存储器的另外的实例。
三级结构如图5E所示,包含三级结构的目标树使它的根被存储在一个辅助寄存器中,而它的单个子被存储在主寄存器中。在图5D中,目标树的根,它是指令转换(Tr),被存储在一个辅助寄存器中,而它的子,它是表(id1、id2、id7)被存储在主寄存器中。在这一表中的每个元素又是一个代表一个子的标识符。在图5E中,这些子被垂直地装入基址寄存器中,其中id1被它表示的表代替,即(1 2 3);id2被它表示的表代替,即(11 12 13 13);id7被它表示的表代替,即(21 22 23)。
流水线模式如图5F所示,通过将目标表存储在主寄存器中,将目标的父存储在辅助寄存器中,而装入以流水线模式存储的树,以流水线模式存储的树使将要被处理的指令和元素被存储在上述两种寄存器中。当缩减数值表达式时最好使用流水线模式的操作。优点之一是中间结果被暂存在磁芯单元而不是在目标存储器中。
例1如图6A到6H所示的第一个例子是被给定为可缩减闭包的并行值的联合。
unify(par(1par(1)3)par(1par(1)2))这一可缩减闭包将作为联合的并行结构被重写。
图6A表示最初的可缩减闭包。图6B表示这一可缩减闭包是如何被存储在目标存储器中的。在图6A中标出存储可缩减闭包的不同部分的存储单元。在图6B中标出元素闭包和单元闭包之间的连接。具有标识符id1的单元闭包在类型字段中具有标识符cls和类型代码unify;具有标识符id2、id3、id4的单元闭包在它们的类型字段中具有类型代码par。具有标识符id1的单元闭包的前两个值/指示闭包元素指定具有标识符id2和id4的单元闭包这些单元闭包被标记为Canon。具有标识符id2的单元闭包使它的第一和第三个值/指示闭包元素被设置具有标记disc的离散值,它的第二个值/指示闭包元素指定具有标识符id3的单元闭包,并因此被标记为Canon。具有标识符id3的单元闭包使它的第一个值/指示闭包元素被设置整数值,因此被标记为discr。具有标识符id4的单元闭包使它的第一和第三个值/指示闭包元素被设置具有标记为discr的离散值,它的第二个值/指示闭包元素指定具有标识符id3的单元闭包,并因此被标记为Canon。
如图6C所示,在最初的操作步骤中,其单元闭包具有标识符id1的存储单元的内容被首先装入到它的标识符放置在标识符寄存器中作为包含闭包的类型的代码unify的id1,以及将值/指示单元放置在主寄存器中作为目标的磁芯单元中。这一切实际如何完成的将如图13所示,并在下面作进一步的描述。
如图6D所示,具有标识符id2和id4的子被垂直地装入基址寄存器,使得在它们的第一个值/标识符元素中的内容被放置在以它的标识符标记的主寄存器中,其它的值/标识符元素被放置在主寄存器以上的垂直列中的寄存器中。每个这些子的类型代码par也被装入主寄存器。类型代码被装入位于TYPE面内的寄存器单元中。
如图6E所示,基址寄存器的内容被转置90°,使得在基址寄存器每垂直列中的内容被放置在主寄存器中,第二垂直列被放置在平行于主寄存器的基址寄存器的行中。转置操作如图18所示,并在下面作进一步的描述。设置在标识符寄存器和主寄存器中的类型代码被交换,这由控制单元自动地完成。现在基址寄存器包含具有放置在列中的三个子的父。用指令make将每个子装回到目标存储器。作为来自目标存储器的回答,在主寄存器中设置并存储被存储到子的标识符。需要指出控制单元6在读出专门位于面CLOS/SIMPLE到TYPE内的寄存器中的内容,并且根据从那里获得的信息提供指令,即控制开关和门。子按顺序被命名id1,已被占用的名称不再使用但是,名称的次序是无关紧要的,因此可以是任意的。
如图6F所示,第一个子获得标识符id2,包含占用标识符id3的元素闭包的第二个子,获得标识符id4,第三个子获得标识符id5。使元素闭包被连接到具有标识符id2、id4、id5的单元闭包的父保留它的标识符id1,并且被存储在目标存储器中。
图6G表示存储可缩减闭包的存储单元。
par(unify(1 1)unify(par(1)par(1)unify(2 3))可缩减闭包本身如图6H所示,与图6A和6B相同的方式表示图6G和6H,因此,图6G和6H是显然的。
图6G还表示具有类型代码unify的单元闭包已被在LAZY字段中给定符号exec,具有标识符id1的单元闭包被给定符号wait,这意味着为了将被标记为exec的单个闭包的内容缩减为数值,它们应当在被标识符id1表示的单元闭包之前被执行。图6H中的闭包稍后就可被装回到磁芯单元以便作进一步的处理。例如,具有标识符id2的单元闭包将具有值1,因为值1和在它的值/表示元素中的1是相同的。具有标识符id5的单元闭包结果是nothing因为在它的值/表示元素中的值2和3是不相同的。每个联合都将在数值ALU中进行,数值ALU在比较器中比较数值,并向控制单元6提供比较结果。控制单元然后就利用它的布尔门阵列来提供在磁芯单元的第一个主寄存器中的信息。当归约的结果是正则表示或者是简单值或者什么也不是时,结果就被分配到目标存储器中的所有字段,使得被缩减闭包的每个非直接表示被缩减的结果所代替。这是由下面结合图16作进一步描述的联合-id操作来完成的。
例2该实例是硬件指令表扩充,表示单元闭包包含一插入表。这类指令是在其它归约中的辅助步骤。硬件指令表扩充如图19所示并结合图19作进一步的描述。
机器执行作为例子的被称为ex.type的指令的归约,该指令可以是任一类包含具有如下形式的数值和表的指令ex.type(1 list(2 3 list(4 5 6))7)这一形式如图7A所示,它的单元闭包如图7B所示。与图6A和6B相同的方式表示图7A和7B,因此图7A和7B是显然的。
如图7C所示,具有标识符id1的单元闭包被装入磁芯单元的主寄存器中,磁芯单元的标认符和类型代码在标识符寄存器中。由于在第二个主寄存器中的内容用非直接元素open来标记,将与之连接的单元闭包被垂直地装入基址寄存器中作为子,如从图7D一目了然的那样。
在图19中作更详细表示的硬件指令表扩充将在第三个主寄存器中的离散值7移到第三基址列中id4旁边的位置,将位于第二个主寄存器之上的第二列中的部分表移到第三列,将该列的最底端元素(值3)放在第三个主寄存器中,并给该寄存器类型代码list。由于在第二个主寄存器中的内容是离散值,所以它具有标识符discr。于是实现了新的表扩充,将在主寄存器之上的第三例中的内容放置在将其标示为list的第四列中。在第三个主寄存器中的内容因是离散值故被标为discr,如图7F可一目了然。
而后利用指令make把第四列中的表存贮在目标存贮器中。它被存在具有标识符id2的存贮单元中,因为它已变成闲置了,标识符id2被送回到磁芯单元以便存在第四主寄存器中,如图7所示。
此后,在归约的结果被装回到目标存贮器之前,其它一些ex.type的归约已被执行。
例3数值指令将被执行,数值指令可以是+、-、×、/、mod等。在指令之后将跟着变量。在该实例中将进行表中的数字之间的相加。机器执行具有如下函数apply的归约。
apply(+list(1 2))应用如图8A所示,它的单元闭包如图8B所示。与图6A和6B相同的方式表示图8A和8B,因此图8A和8B是显然的。
如图8C所示,具有标识符id1的单元闭包装装入磁芯单元的主寄存器中,磁芯单元的标识符和类型代码在标识符寄存器中。数值指令(+)被标记为一指令。由于在第二个主寄存器中的内容被标记为非直接元素open,将与之连接的单元闭包被垂直地装入基址寄存器中作为子,如从图8D中一目了然的那样。
然后执行表扩充,将在第二个主寄存器中的离散标记为discr,将被扩充表的值2作为类型代码字段中的list。这样做是因为不管具有标识符id2的表具有两个、三个或四个元素,机器都执行相同的操作。由于在新表中只有一个元素,机器用主寄存器包含一离散值的标记discr代替标记list,如从图8F一目了然的那样。
于是,主寄存器包含指令标记(+)和两个离散值,这就使控制单元,直接或例如利用与存储在目标存储器的不可写部分中的指令有关的信息,指令被存储在该目标存储器中,来控制数值ALU以便执行该指令(相加),并将数值运算的结果作为规范值传送到第一个主寄存器,如图8G所示。需要指出在类型代码字段中的符号apply是将要执行函数操作的标记。此时为简单值3的结果值然后被进行全局的分配,以便用这一值代替各寄存器中的标识符id1。
如上所述,在寄存器栈中的固定数目的寄存器存储表。未被使用的寄存器被特别地标记为未被使用。表树被用来控制和规定计算,这是在中央控制单元6的控制,以及数值ALUS的协同操作下-如果需要执行数值算术运算的话-被执行的。通过重写表树中的内容来进行计算。
具有多达四个元素的表可被放置在一个单元闭包中。但是,任意长的表都可被处理,只是每个这样的表必须被划分为几个表,每个表的长度等于或小于将要被在磁芯单元中处理的最大长度。磁芯单元每次只能处理一定深度的树,深度较大的树也可被处理,但每次只有有限深度的部分树被存储在磁芯单元中,即每次只可能处理树的一部分。
接口目标存储器〈-〉磁芯单元目标存储器1和磁芯单元2通过使信号匹配的转换接口7和闭包宽总线配置8,即能够在磁芯单元2和目标存储器1之间传送单元闭包的整个内容的总线配置而相互连接。总线配置8包括部分总线配置OBJV,后者又包括连接到在磁芯寄存器3中的寄存器面NUM的总线id、env、V0、V1、V2、V3和连接到在磁芯寄存器3中的寄存器面HEAD的部分总线配置TAG以及包括从面LAZY、WHERETYPE到存储单元中相应的闭包字段的总线的总线配置ATTRIBUTE接口7放大从磁芯寄存器3到单元闭包宽总线配置8的信号并将该信号变换为适用于在目标存储器中的存储器比特单元的信号。它还放大在读操作时来自目标存储器1的信号并使该信号适合于磁芯单元寄存器。虽然接口7被表示为被放置在目标存储器1中,但它也可被放置在磁芯单元中。比特单元的接口如图20所示并将在下面详细描述。
存储单元操作参看图3,存储单元被来自中央单元6的复合数字信息控制,中央单元6通过连接到磁芯单元2的控制总线配置(未画出)而被指定给所有的存储单元。
在每个闭包元素中的比特单元15可被它的标题16所控制,使得该比特单元每次能够执行以下的操作放置在这一操作中,每个比特单元保持被存储的比特值的被存储状态;
读在这一操作中,在比特单元中存储的比特值被读出;
写在这一操作中,比特值被写入比特单元;
比较在这一操作中,将由存储在比特单元中的比特值组成的数据字与另一数据字进行比较。
根据逻辑条件可设置标记,每个标记是在第二总线a和b上的数据,先前的标记、在比较操作情况下的比较结果,以及由控制单元6到存储器的控制信号的函数。
由于使用相关寻址,即根据被存储的内容而不是通过地址来查找数据,所以没有物理依赖性。存储器是相关的,可以使用单元标识符、环境、类型、信息值或它们的组合作为检索的线索。
在存储单元的元素中的值为选择的一个或多个标记比特表示该元素已被选择作为存取机制的目标。一定的检索操作建立标记,这将在下面描述。
这种存取这许涉及一个或几个存储单元。如上所述,这些多单元操作中的一种可以是在许多个被选择元素中存储标识符的存储操作。
连接到标题16的导线acc将元素内的所有比特单元相互连接。所有比特单元被导线acc上的信号控制。连接到比特单元的其它导线d和d*被连接到在目标存储器的其它存储单元的相应的比特单元。
优先译码器优先译码器11对每个存储单元设置一个区间,每个区间有一用于请求的第一接头,在该接头上比特值“真”,代表需要,而比特值“假”,代表不需要;一用于“同意”的第二接头,在该接头上比特值“真”代表被选择,而“假”代表不被选择。
优先译码器11最多使一个“同意”等于被选择。可以这样来选择以达到上述目的,使得使“请求”等于“需要”的以结构为标准的第一区间将是被选择的。优先译码器的实施例将在下面结合图21来描述。
在许多场合下,对存储器总线的协议与所有存储单元进行通信。但是在某些情况下,几个存储单元或在存储单元内的闭包元素应该被整理为有序状态或被读出。这可通过优先译码器11来实现,从每个单元发出一请求信号,而优先译码器11返回同意信号。
用读、写和检索操作控制存储器。这些操作可被组合为更复杂的操作。可以在几条内部总线a和b,以及在全局总线上进行一定的运算。
检索可通过作具有结果“适合”或“差异”的比较来进行,可以根据以下方式中的一种来进行检索(1)对每个闭包元素逐一地进行检索,检索与在其它闭包元素中的复合信息无关;
(2)通过对在存储单元中的所有闭包元素进行比较来进行检索。在每个单元中结果都必须是“适合”(FIT);
(3)通过对在存储单元中的所有闭包元素进行比较来进行检索,在至少一个闭包元素中的结果必须是“适合”。
比较能够根据以下方式中的一种来进行(1)两个比特模式被比较,当所有相应的比特都相同时,比较的结果才是“适合”;
(2)对将要被比较的两个比特模式,或者它们的一个这样进行编码使得一个比特表明比特模式信息相应于“任意的”或“特定的”信息值V。在比较场合下,如果一个信息值相应于“任意的”信息值V,那么结果就为“适合”。否则只有当两个特定的信息值V都相等时结果才是“适合”。
总线功能是执行读或写目标存储器字的规则。总线被存取功能来控制,存取功能依赖于第二总线a和b的标记和/或值。
设置在一比特总线a上的“线或”函数具有一系列布尔值,它判断在存储单元中的所有闭包元素之间的逻辑“或”。在物理上它相当于在元素标题16中的晶体管阵列所设置的导线。
设置在一比特总线b上的“线与”函数具有一系列布尔值。它判断在存储单元中的所有闭包元素之间的逻辑与。在物理上它相当于在元素标题16中的晶体管阵列所设置的导线。
优先译码器11的优先函数将一系列布尔值作为自变量并且产生相应大小的布尔值表。自变量具有最高优先权的第一元素。在该比特后跟着具有较低优先权的比特。自变量的第一个“真”比特产生结果中相应的“真”比特。所有其它的比特都是“假”。
在存储单元中的元素,通常被对在元素中的值的第一次检索所使用,然后被例如在所选出的元素中的读和写这样的施行操作所使用。
磁芯单元的硬件结构面NUM和HEAD将它们的磁芯寄存器单元连接到位于面2和接口7之间的总线OBJV、id总线,即标识符总线和env总线,即环境总线中的导线。OBJV总线包括总线部分V0、V1、V2和V3。
磁芯寄存器单元的阵列由此垂直于寄存器而被切割成面,属于同一NUM或HEAD面但属于不同的磁芯寄存器的寄存器单元以图9所示的方式被相互连接。
在如图9所示的至少NUM和HEAD面的结构中,寄存器单元的方阵被放置在具有NXN个寄存器S0,0到Sn-1,n-1的矩阵中,即基址寄存器中。
基址寄存器在大多数的应用中被用来暂时存储闭包元素。寄存器的表述已在这样的意义上被严格划分,即如果描述涉及寄存器的实际位就使用例如基址、主和辅助寄存器这类的表述,如果描述涉及寄存器的功能就使用例如子、目标和父寄存器这样一类表述。
在N=4的实施例中,这是被推荐的,但也可选择其它的矩阵大小(未被表示出来)。如图9所示,基址寄存器单S0,0、S1,0、S2,0、S3,0的最低行被连接到总线ho,并且是主寄存器单元。主寄存器单元S0,0、S1,0、S2,0、S3,0被最经常地用作目标根寄存器,并且通过NU0到NU3构成的总线NU被连接到数值ALU5。
标识符寄存器单元ID被连接到总线id,环境寄存器单元ENU被连接到线路env。通过开关SWvi总线hi可与总线vi连接,此处i是0和3之间的数字。包含总线h0、h1、h2、h3的总线被称为OBJh,即水平目标总线。总线OBJh除了别的以外还被用于垂直地装入数据,即以磁芯单元中的寄存器列的形式,数据通过总线OBJV由目标存储器来提供。这将结合图15作进一步描述。
分别通过开关SWid、ho、SWenv、ho、SWvo、SWv1,ho、SWv2,ho和SWv3,ho,总线id、env、v0、v1、v2、v3可与总线hho连接。包括总线Cid、Cf、Cn和Cv的总线res被连接到控制单元6,并且可用于常量,例如零来设置寄存器。总线Cid被连接到标识符寄存器单元,总线Cf被连接到寄存器单元F0、F1、F2和F3,通过开关Swch,ho,总线Ch可与总线Ch可与总线ho连接,通过开关SWvi,cv,总线Cv可与总线vi连接,这里i是0和3之间的数字。总线res及它的开关在某些应用中可被省略(未表示)。
辅助寄存器在数据树中有一最高级,被称为父,父有时被存储在图9中被放置在左侧的辅助寄存器单元F0、F1、F2、F3中。在所示实施例中,每个辅助寄存器能够存储一磁芯字。每个辅助寄存器单元被分别连接到总线id和线路h0、h1、h2、h3中的一条。辅助寄存器单元将在磁芯单元能够提供的操作的一小部分中被使用。因此在某些应用中辅助寄存器可被省略(未示出)。还可以提供具有多于一个列的辅助寄存器的磁芯单元(未示出)。
由以上所述显然可知,每个寄存器由在几个面2中的具有相同位置的寄存器单元所提供。因此,整个寄存器将以在图9中使用的标号来命名,即使图9只表示一个单元,即每个存存器1比特。由图9显然可知,寄存器被以行和列的形式来排列。辅助寄存器区域F0、F1、F2、F3是一列,N个基址寄存器区域S0,0到S0,1,S1.0到S1.3,S2.0到S2.3和S3.0到S3.3分别是一列并能存储一子。
寄存器单元之间的连接在每个面中的相邻基址寄存器单元之间垂直和水平相连。也给在水平上的作为目标存储器的每个最外的基址寄存器单元提供具有被固定编程的值的连接,该值在所示的实施例中是假f。它与寄存器单元中的N(北)端相连,并用于进行自北向南移位时。这样来确定基址寄存器单元之间沿对角线方向的连接,使得转置的位置是可连接的。这意味着单元Si,j,这里i不同于j,可与单元Sj,i连接。每个基址寄存器单元被连接到最靠近下部右侧的基址寄存器单元。每个辅助、标识符、环境以及基址寄存器单元通过输出ACCFX、ACCid、ACCenv和ACCsx,y,被分别连接到面BOOL中的一个,这里X和Y是0和3之间的数字。
以下描述类属寄存器单元(图10),从类属寄存器单元可获得特定的寄存器单元,即基址、辅助、标识符和环境寄存器单元(未示出)。有关各种寄存器单元的特定结构的进一步细节请参看尚待批准的美国申请,号码为…。
类属寄存器单元参看图10,寄存器单元的推荐实例包括两条内部总线aR和bR,以及一中央内部寄存器r。总线aR和bR被连接到寄存器单元外部的几个接点。图10的实施例表示被设置了与外部的每种可能的连接的类属寄存器单元。有代表性的是不给图10所示所有接点提供特定的寄存器单元,根据寄存器单元的放置可省略一个或多个。所有被连接接头之间的导线由图9所示的连接可一目了然。由图9还可一目了然的是,不是所有的寄存器单元都有如图10所示的所有最外面的连接。因此不给出所有寄存器单元以及它们的连接的详细描述。
总线aR总线aR通过开关SWVi和端V连接到垂直总线的线VX,其中X是0和3之间的数。另外,它还通过开关SWHi和端H连接到水平总线的线hy,其中y是0和3之间的数,还通过连接到邻近寄存器单元中开关SWW(东)上的端W连接到靠近右边的寄存器单元,且若该寄存器单元是主寄存器单元,则还要通过端NU直接连接到数值运算单元IP。总线aR还通过由那个寄存器单元所提供端Da到开关SWDb连接到直至右边寄存器单元,还通过由那个寄存器单元提供的端S(南)到开关SWN(北)连接到下面的寄存器单元。连接到总线aR的寄存器单元可以利用端C和开关SWC进行置位和复位。总线aR还通过开关SWal连接到中央内部寄存器rR的输入端,并通过开关SWao连接到同一寄存器rR的输出端。
总线bR总线bR通过开关SWE和端E连接到靠右边的寄存器单元,通过开关SWDb和端Db连接到寄存器单元的一个对角线上,并通过开关SWN和端N连接到上面的寄存器单元。同时通过开关SWb1,总线bR还连接到中央内部寄存器rR的一个输入端,通过开关SWbo,连接到上述寄存器rR的一个输出端。
中央内部寄存器中央内部寄存器rR包括两个最好是由CMOS构成的反相器Q和Q2,和一个位于Q1和Q2之间的可控开关SWQ。整个寄存器单元还包括总线aR、总线bR、开关SWal、SWao、SWbl、SWbo和连接到外部单元的多个开关。中央内部寄存器rR的输出可分别通过开关SWHO和端H以及开关SWVO和端V连接到水平和垂直总线上。中央内部寄存器rR存储动态状态(下面将解释)。
开关操作磁芯单元中所有寄存器单元内的可控开关均可通过连接到包括诸如PAL(可编程阵列逻辑)的门阵列的控制装置6的导线加以控制该门阵列利用存储在磁芯单元中的信息来确定哪一个开关应当打开,随后哪一个开关应当关闭。该门阵列操作与时钟同步。除了某些开关例如输入和输出开关SWHI和SWHO,仅单向使用外,其余的开关均是双向使用的。
比较器装置COMP
比较器装置COMP包括一个第一与非门G1,它的一个输入端连接到反相器Q1的非反相输入端,另一输入端连接到反相器Q2的输入端。装置COMP还包括第二与非门G2,其一个输入端连接到反相器Q1的输出端,而另一输入端连接到反相器Q2的输出端。门G1和G2的输出端连接到朝向面BOOL中一个的一线总线ACC。两个与非门都可以由在地和电源之间连接、具有串联耦合源/漏通道的两个串联耦合的MOS-FET晶体管提供。其栅极是与非门的输入端,最上面MOS-FET晶体管漏极是输出(未示出)。在相应检索期间,即当磁芯单元中的元素将要和目标存储器或磁芯单元其它部分中的元素进行比较时,才应用到该比较器装置COMP。然后,待比较的元素被加到包含有该元素的寄存器单元的输入端从而进行比较。有关这点,下面要进一步描述。
反相器和开关反相器Q1和Q2可以由两个增强型MOS-FET晶体管提供,或由一个增强型,一个耗尽型MOS-FET晶体管提供,或者由两个互补MOS-FET晶体管(未示出)提供。寄存器单元中的可控开关可由一个MOS-FET晶体管或两个互补的MOS-FET(未示出)晶体管提供。控制装置6利用控制信号C控制各开关。为了实现快速的状态变换,开关可以是由控制信号和它的互补信号控制的。
相关检索和BOOL面在相关检索期间,根据到BOOL面的布线和总线的存取执行比较。两个与门G1和G2将Q1输入端上的键值,即待被比较的存储值和Q2输入端上的存储值进行比较。在该比较过程中,通过内部总线aR和bR,键值被传输给Q1。然后开关SW0必须判断,即打开。若所提供的值,即键值与存储值不匹配,则充电BOOL面并通过与非门G1和G2放电。若二者相匹配,那么BOOL面将保持充电。
一个寄存器中所有的总线线路ACC(每个寄存单元一个总线线路)相互并联耦合并连接到BOOL面中同一个总线线路上。当进行变换时,在面NUM和HEAD中提供的所有寄存器单元的总线线路ACC都连接到供这些面所使用的BOOL面内的总线线路上,在ATTRIBUTE面中提供的所有寄存器单元都被连接到供ATTRIBUTE面使用的同一个BOOL面或第二个BOOL面中提供的各总线线路上。若出现了需要选择是提供一或二个BOOL还是提供一或二个总线线路的情况,那么这样将取决于控制装置6中存储的控制指令的类型。具有两个以上BOOL面的情况也包含在本发明的范围之中。所提供BOOL面的数量规定了相关检索的粒度,即能够被执行的不同相关检索的数量,并规定了这种相关检索被延伸到哪一部分,即寄存器的哪一部分能被包括进来。随后,与连接到该BOOL面中同一总线线路上的寄存器部分相关的比较同时进行。若与非门G1和G2具有相同的输出(高),则比较的结果是匹配,反之则不匹配。所谓匹配,意味着两个信息段是相同的。BOOL面就是用于总线线路的面,该面被认为是虚拟或假想面,即在面中不必提供该总线线路,但该总线线路必须直接连接到控制装置6上。
ATTRIBUTE面的结构相对于NUM和HEAD面来讲,ATTRIBUTE面具有不同的结构,例如它可以被提供有基址寄存器的仅一列,而不是基址寄存器的一个矩阵(未示出)。另外,ATTRIBUTE面应当具有附加总线线路,这个附加总线线路连接到走向控制装置6的面中的所有的或某些寄存器单元,它可以利用该总线上的信息来决定执行哪一种类型的归约。另外,不需要为ATTRIBUTE面提供环境寄存器单元。与NUM和HEAD面中具有相同名称的总线线路相比较,总线线路V0、V1、V2和V3更加接近接口7的其它输入端,上述总线线路最好被耦合到lazy,Where和type(见图1)的目标存储器1的其它部分。在ATTRIBUTE面中,代之以总线线路id用于来自目标存储器的状态信息的传输(见图1),即目标存储器中的lazy、Where、type被耦合到磁芯单元中相应面内的总线线路id上。
备用存储器模式备用存储器模式回路是由寄存器单元中一个或二个回路形成的。开关SWbo、总线bR、开关SWbl、反相器Q1、开关SWO、和反相器Q2形成一个回路。开关SWao、总线aR、开关SWal、反相器Q1,开关SW0和反相器Q2形成另一个回路。当一个或两个回路中的开关关断时,信号能通过两个反相器Q1和QQ2进行传送,信号电平在反相器Q1的输入端和反相器Q2的输出端上变得稳定,一这就是什么样的数据被存入寄存器单元,该单元存储动态状态。
输出模式当处于输出模式时,Q2的输出被传送给总线aR或bR中的一个,从这里,某些适当的开关被控制来将该输出传送给一个或多个输出端(N、S、E、W等)。其它的总线bR或aR可以被用于任意模式。若开关SW0是所开的,即是打开的,则反相器Q2的输出是稳定的,即在开关SW0闭合之前,它是不能变化的。反相器的输出在开关SWbo闭合时可通过该开关传送给总线aR。总线bR和aR上的信息能被传输给外部总线中的每一个,通过控制在寄存器单元和上述外部总线间连接的开关,上述外部总线被连接到寄存器单元上。下面还将通过举例对比进行叙述。
输入模式在输入模式期间,开关SWal或SWbl中的一个是接通的,即是闭合的,端(N、S、E、W等)中的一个的或多于一个的状态被传送给局部总线aR或bR,并由此传输给中央内部寄存器rR。
传送在两个相位周期内,将来自磁芯单元中任一寄存器单元的数据通过端连接传送给磁芯单元中其他寄存器单元是可能的。在三个相位周期内,在垂直、水平或对角线方向上进行两个基址寄存器单元的交换是可能的。
开关SW0直接由主时钟计时,并同时用于寄存器中的所有单元在整个磁芯单元中,反相器Q1和Q2之间的传输是同时进行的。剩下的开关由来自主时钟,不同的具有主时钟周期内适当相位间隔的信号加以控制。主时钟被用作与该磁芯单元所有操作的基准信号。
时钟周期被分时钟相位O、a和/或b。相位O是第一可展宽相位,即当中央寄存器rR处于备用存储器模式时,也即是数据处于稳定状态之时。相位a用于在由总线aR传递数据期间内,而在由总线bR传递数据期间使用相位b。
单向传送,即仅从寄存器单元传出或仅传送给寄存器单元,是在两个相位时钟周期内进行的。第一相位O是稳定的。在两个相位时钟周期内,相位a或相位b被用于传送数据。
双向传输,即在两个寄存器单元之间进行传输,以相互改变它们各自内容的传输,它是在三个时钟相位周期内执行的。相位O是稳定的,在相位a和b期间内,在不同的方向上执行传输。
应当注意,例如开关SWal和SWbl在通常闭合状态下所形成的时钟周期多于三个相位的情况也落入本发明的范围之内。两个局部总线aR和bR保持寄存器单元所存储的状态。当一个内部总线aR或bR将被用于一个待存储新值的输入值,则将有一个适当的开关SWal或SWbl被分别控制打开。在相对于企图向内部总线传送数据的那条总线上的信息足够长的短间隔期间内,靠近一个外部总线,例如垂直或水平总线的一个开关是闭合的。
利用移位网络,即在包括连接到终端的多个开关的不同寄存器单元之间的网络,在寄存器单元,北N或南S或西W或东E内传输内容是可能的。
单向传输操作的例子图11A表示了两个相邻的基址寄存器单元,数据将从左边的一个(发送器)向右边的一个(接收器)进行传送。来自控制装置6的控制信号控制各开关。图11B表示在不同相位期间受传输影响的每一个开关的状态,较低值表示开关打开,较高值表示开关闭合。实际的传输是在相位b发生的。传输以下述方式进行(在图11A和11B中,下述各不同步骤标以相同序号。
0、电路是稳定的,开关SWQ、SWao、SWal、SWboSWbl是闭合的,而发送器和接收器中所有其它开关都是断开的(由于该步涉及了所有开关,所以在图11A和11B中,该步未予标注。该稳定模式相应于图11B中的相位O;
1.在时钟间隔的第一相位(相位b)期间,当发送器和接收器中的开关SW0是打开的时候;
2.发送器和接收器这二者中的开关SWao是打开的,而SWbo闭合;
3.发送器和接收器之间的开关SWE闭合;
4.在发送器和接收器中的开关SWbo打开;
5.发送器中的开关SWal打开和接收器中的开关SWal闭合。这使得数据能够从发送器内部寄存器传输给接收器内部寄存器;
6.在时钟间隔的第二相位(相位O)期间内,当发送器和接收器中的开关SWQ是闭合的;
7.发送器和接收器之间的开关SWE打开;
8.首先,开关SWbo和开关SWao闭合,随后接收器和发送器中的开关SWbl和SWal闭合,这使我们返回到上述步骤0即相位O的稳定模式。
双向传输操作的例子图12A表示了两个相邻基址寄存器单元,且两个不同基址寄存器单元中的数据将以双向传输操作的方式进行交换。来自控制装置6的控制信号控制各开关。图12B表示在不同的相位期间受传输影响的每一开关的状态,较低值表示开关打开,较高值表示开关闭合。两个寄存器单元分别用作发送器和接收器。下面它们将称为单元1和单元2。从单元2到单元1的一种传输在相位a发生,而从单元1到单元2的另一方向的传输在相位b发生。下述各步骤在图12A和图12B中赋予相同标号。传输以下述方式进行0.电路是稳定的,SW0、SWao、SWal、SWbo和SWbl是闭合的,而该两个单元中的所有其它开关都是打开的(由于涉及了所有开关,所以在图12A中未标出该步骤),该稳定模式相应于图12B中的相位O;
1.在时钟间隔的第一相位(相位a)期间内,当单元1和2中的开关SWQ是打开时;
2.在单元1和2中的开关SWao闭合,开关SWbo打开;
3.两单元间的开关SWE闭合;
4.单元1、2中的开关SWal打开,和5.单元1中的开关SWbl闭合,单元2中的开关SWbl打开,这使得数据可以从单元2传输给单元1;
在时钟间隔的第2相位(相位b)期间,当开关SWQ仍然是打开时;
6.单元1和2中的开关SWao打开,开关SWbo闭合;
7.单元1和2中的开关SWbl打开,和8.单元1中的开关SWal打开,单元2中的开关SWal闭合,这使得数据能从单元1传输给单元2;
9.在时钟间隔的第三相位(相位O)期间内,当单元1和2中的开关SWQ闭合时;
10.单元1中的开关SWE打开,和1111.首先,开关SWbo和SWao闭合,随后两个单元中的开关SWbl和SWal闭合,这就使我们返回到上述步骤O,即相位O的稳定模式。
用于开关SWao和SWbo的控制信号在相位O期间,借助于缺席规则,使得具有信号,即开关闭合。然后,所有的局部总线均处于存储状态。用于输入的总线通过建立一个断开,即打开控制信号给开关SW0和SWXO予以控制,其中X是a或b。在输入操作期间,某些总线可借助于一些终端(E、V、D、H等)被短路一个短周期,此后,总线就获得一个校正值。
从送往开关SWQ的控制信号的下降部分到送往开关SWXO(X是a或b)的控制信号的下降部分,有一个延迟时间。若这个延迟时间很短,则不产生什么问题,若这个延迟时间增长到ms的范围那么,总线XR(X是a或b)就可能失去其动态状态。
从送往开关SWXO的控制信号的上升部分到送往开关SWxl(X是a或b)的控制信号的上升部分,有一个延迟时间,假如它变成负的,那么,就可能将一个错误的值从反相器Q2到反相器Q1传输给局部总线XR,而一个正延迟时间是有用的。
用于开关SWE、SWV、SWD、SWH等的控制信号这些开关通常是关断的,即是打开的。这样,所有的局部总线都是被隔绝的。通过为连接其上的终端开关建立一个控制信号,即闭合该开关来控制用于输入或输出的总线。在该操作期间,一些总线可被某些开关(SWE、SWV、SWO、SWH等)短路一个短周期,此后,总线获得校正值。
在送往开关SWQ的控制信号的下降部分到送往开关SWZ(z是H、D、N、V、E等),即连接到装备有开关的内部总线aR和bR的任一端)的控制信号的上升部分有一个延迟时间。若该延迟时间是负的,则局部总线XR(X是a或b)的值可以改变,然后可以建立寄存器值,因此,该延迟时间应当是正的。
从送往开关SWZ(z是H、D、N、V、E等),即连接装备有开关的内部总线aR和bR的任一端)的控制信号的上升部分到送往开关SWxl的控制信号的下降部分有一个延迟时间。若它变成负的,那么该值就不能送往输入端,因此,正的延迟时间是有用的。
从送往开关SWxl的控制信号的上升部分到送往开关SWZ的控制信号的下降部分有一个延迟时间。若它变成负的,则局部总线就可能被改变,且寄存器内就可能被建立错误的值。因此,正的延迟时间是有用的。
用于开关SWal和SWbl的控制信号在相位O期间,借助于缺席规则使得信号存在,然后,在从送往开关SWQ的控制信号的上升部分到用于开关SWal和SWbl的控制信号的上升部分必然有一个轻度的延迟。若该延迟变成负的,那么,反相器Q2输入端上的值就不可能传输给总线XR(X是a或b),因此正的延迟是有用的。
磁芯单元计算典型的表指令在一个机器周期内完成。
如上所述,磁芯单元执行结构运算。通过使用它所包含的表中的指令来执行所有的步骤。指令举例如下长度所计算目标的长度;
变址赋予表中成分的功能,若该表包含有插入表,则该指令也被赋予这些插入表的各成分。(下面将进一步解释变换这个指令);
筛选程序赋予功能并筛选表中成分,该筛选程序也用于插入表,如果有插入表程序的话;
连编所有成分被再写入插入表成分,若有插入表,该指令也用于它;
转置小矩阵被转置,若它包含有表成分,它们被调动。处理插入表。(下面还将进一步解释指令转置)等磁芯单元存储器磁芯单元存储。
*在一系列寄存器,最好是基址寄存器中待被缩减的目标。
*在某些情况下,例如当三级结构被缩减时,最好是在辅助寄存器中目标的根和在基址寄存器矩阵中剩余结构。
目标存储器1仅能存储一个级别的指令,但磁芯寄存器3可以包括最多三级目标结构。对于磁芯单元中临时存储器来讲,存在四种情况,即存储0、1、2或3级目标。若存储三级目标,那么仅存储它的根及转移指令中的一个。在所有其它情况下,存储所有级。
简单树,即唯一值(O级目标)被存储在第一主寄存器中。
仅包含一级的树被存储在主寄存器中。
包含有二级的树可以具有它的根表,如果是父,就水平地存储于主寄存器和表中,如果是子,就垂直地存储于基址寄存器中。当发生变换时,该根将存储于辅助寄存器中,而子中的一个将存储在主寄存器中。应当看到,控制装置6能根据待被执行的操作来选择一种或另一种变换。
包括三级的树具有存储在一个辅助寄存器中的根表,且其两级子中的一个存储于基址寄存器矩阵中。因此,目标树的根表最好根据树结构的级和待执行的操作,存储在磁芯单元中寄存器内不同的地方。
目标树的根是诸如统一(unify)等可减少种类的闭包。在一个功能应用中,第一元素是一个直接指定给用作功能定义的闭包结构的指令或识别符,剩下的元素是指定给该指令/功能定义的主目。
磁芯单元存储器控制磁芯寄存器中存储的信息来自目标存储器1中的信息。磁芯寄存器中的信息以下列方式存储HEAD和NUM中的磁芯寄存器被连接到目标存储器总线OBOBJ,存取总线ACC,储备(res)总线和数值ALU总线NU存储状态由两个单一寄存器ID和ENV的存储状态、辅助寄存器FF0到F3和基址寄存器S0,0到S3,3的存储状态组成。在ATTRIBUTE面中的磁芯寄存器以相类似的方式连接到目标存储器,除了连接到目标存储器1的不同部分,最好是lazy、Where、type部分。
到磁芯寄存器的控制字由到开关SWvi、SWvi,cv(其中i是0到3之间的数),SWid、ho、SWch、ho、SWenv,ho、SWv1,ho、SWv2,ho、SWv3,ho、SWvio、SWv1、SWv2、SWv3,单一寄存器IDENV,辅助寄存器F0到F3和基址寄存器S0.0到S2.3的控制字组成。
控制字通过连接到控制装置6的一系列控制线进行传输。根据使用何种开关,控制线应是双相控制对线或单相控制单线。到每个基址寄存器单元的控制字包括一个公用部分和单独用于每一基址寄存器的部分。公用部分控制磁芯单元的开关SWao、SWbo和SWQ。应当注意,这里所叙述的仅被认为是一个例子,还可以想见一系列其它实施例。
磁芯单元操作例图13到19来自图9,图9中所提供的参考也适用于图13到19。然而为了清楚起见,大多数参考被省略了。另外,在对图13到19的叙述中,寄存器单元的名称被用来表示贯穿磁芯单元中该面的整个寄存器。
对目标存储器的存取mpx-mv指令通过目标存储器操作mpx-mv,读该目标存储器,并使得某些磁芯寄存器置位。被存取的目标如图13所示,利用具有箭头指向为其建立传送的寄存器单元的厚线路,通过总线V0、V1、V2和V3传输给主寄存器S0.0、S1.0、S2.0、S3.0,通过总线id传输给寄存器ID,并通过总线env传输给寄存器ENV。同时,主寄存器中原来的内容作为一个闭包被存储在目标存储器1中。这样,指令mpx-mv将当前磁芯单元闭包存储在目标存储器中,并将下一个待被执行的目标存储器闭包装入磁芯单元中。
取指令图14和15表示了在主寄存器的一个之中存储有标识符,以及将该标识符变换成它所表示的信息的情况。存储于S2.0(见图14)的该标识符被提供给目标存储器1,该目标存储器找到该标识符及其所表示的内容,其内容被放入总线线路V0到V3,并最后被装入基址寄存器S2.0到S2.3(见图15)中的垂直列中。
经总线ho和开关idid,ho(见图14)将基址寄存器中的标识符传输给垂直总线id,使得操作开始执行。所存储的值可以类似方式从任一其它寄存器进行传输。
通过将由目标存储器1在总线线路V0、V1、V2和V3上提供的值装入适当的寄存器(在该例中,这些寄存器是S2.0、S2.1、S2.2、S2.3)并经过开关SWV0、SWV1、SWV2、SWV3以及总线h0、h1、h2、h3传输这些数据,使得上述操作传续下去。
当磁芯单元中的内容要存储到目标存储器1中时,将使用由目标存储器操作、制作和统一id(unify-id)指令。
制作(make)指令操作制作的第一步,在上述寄存器中的内容被如图15所示但却是在相反方向上进行传输。该操作也传输环境寄存器的内容。为了查找具有由磁芯单元所提供的作为信息存储的相同信号的目标,在目标存储器中执行相关检索,若找到了一个目标,就返回到表示目标的标识符,若未发现目标,就返回到一个新的标识符。在这两种情况下,都利用总线id将该标识符从目标存储器传输给磁芯单元中的标识符寄存器。作为一种变换,标识符将传送给寄存器有效列中的主寄存器,随后,建立磁芯单元内容间的结合及标识符。
统一-id指令操作统一-id示于图16,该指令利用将上述寄存器单元通过开关SWid,ho、SWenv,ho、SWV0和SWV1,ho等连接到水平总线ho和将所有垂直总线连接到水平总线ho,将来自一个寄存器的标识符分配给例如所有的垂直总线id、env、V0、V1、V2、V3。当执行相关检索和替代时,将使用上述操作,所谓的相关检索和替代例如包括有关标识符出现的检索和利用新的,缩减了的简单取代所找到的该标识符。
为了使目标存储器存储该标识符及其所表示的内容,类似于统一-id操作的第一步,先使用“制作”程序获得与磁芯单元内容相关的唯一标识符,第二步是把磁芯单元的内容放入连接的目标存储器的总线线路上。
统一操作的例子由附录1给出,其中示出了磁芯单元的内容,同时,还示出了与相位a、b和O相关的开关状态。
数值归约在数值归约期间,归约的对象,即目标被置入主寄存器中。通常全部目标都参加归约。一般,主寄存器S0.0保持该指令代码,该代码是一个与不同的指令相关的不同位组合格式。寄存器S1.0、S2.0用于动态操作,即使用两个操作数的操作,而寄存器S1.0用于一元操作,即仅有一个操作数的操作。通常,尾部寄存器以表格形式使用,因此,其内容被归约以后放入左边。
随后,在目标寄存器S1.0、S2.0之间产生主要的数值运算。数值ALU的主加法器被连接到上述两个寄存器上。其它寄存器可用于象mul、div、mod指令中的辅助过程中。
下述类型的指令请被使用到一元指令寄存器S0.0保持该指令,而寄存器S1.0保持操作数。寄存器S2.0、S3.0不使用。数值ALU的结果送到所有主寄存器。在非流水线情况下,本指令用于寄存器S1.0中。在流水线情况下本指令在中间用于辅助寄存器或基址寄存器中。
二元指令寄存器S0.0保持该指令,寄存器S1.0、S2.0保持操作数,寄存器S3.0不使用。其结果被返回给所有主寄存器。在非流水线情况下,该指令被用于寄存器S1.0,在流水线情况下,该指令被中间地用于辅助寄存器和基址寄存器中。
mul、div、mod指令寄存器S0.0保持该指令,寄存器S1.0、S2.0保持操作数,最终的结果用于寄存器S1.0。
统一归约统一归约利用数值ALU对寄存器S0.0中的内容和S1.0中的内容进行比较。当执行该统一时,还要使用其它的主寄存器。存储于寄存器HEAD面内的标记字和比较的结果被共同用来评价下一个动作。
指令mul、div、mod执行整个数字算术单元的内循环。计算的中间值被动态地存储在磁芯单元中数字算术单元和主寄存器之间的导线,即总线NU上。
结构归约在结构归约期间,归约的对象,即目标被放置在主寄存器内。通常,某些或所有的基址寄存器参加归约。一般主寄存器S0.0保持该指令代码,对于不同的指令,它具有不同的位组合格式。
变换指令具有作为主目的功能f和表(e1…,en)并将该功能提供给表中的每一元素,该指令再被每个功能应用结果的表(fe1…,fen),其中fe1表措在e1上施加f时的结果。
变换指令格式(map f list)变换指令被装入辅助寄存器FO。所用功能被装入辅助寄存器F1。表被装入主寄存器S0.0到S3.0。如图17a所示,存储在主寄存器中的元素在基址寄存器矩阵中向上两步传输,即寄存器S。中的内容被传输给寄存器S.2,其中X是0和3之间的数。利用垂直总线线路V0到V3,使得传输得以下进行。如图17b所示,辅助寄存器F0到F1中的内容然后水平地传输给基址寄存器,即F0的内容被烤贝入S0.0到S3.0,而F1的内容被烤贝到S0.1到S3.1。若某个元素是一个简单值(不是表),那么该元素所位于的寄存器,即S1.2的内容以及它下面的寄存器,例如S1.1的内容将下移一步。所施加的功能现在位于主寄存器,例如S1.0中,而施加功能的元素现在位于该主寄存器之上的寄存器,例如寄存器S1.1之中。若该元素是一个表,那么在寄存器的列中就不存在位移。在图17C中,假定e1、e2、e3各表示一个简单值,而e4表示一个表,基址寄存器矩阵中的每一列都作为目标存储器中的闭包而存储起来。因此,每一个这样存储的闭包都被装入磁芯单元以用于持续处理。若所存储的闭包包含简单值,则它将以通常方式被装入磁芯单元,即f被存储在S0.0而ei被存储在S1,0,如图17d所示。另一方面,若所存储的闭包包含一个表,它将如上所述被装入,如图17a所示但在由e4所代表的该表中,e1将是第一个元素,e2将是第二个元素,等等。这就允许变换指令递归地执行与插入表相关的操作。
具有两级结构(map,f,(e1,…,en))的变换指令被重新写入((f,e1),…,(f,en)),执行以后的该指令被重新写成一级指令(fe1…,fen)。其中,fe1表示在ee1上施加f时的结果。具有三级(或更多)结构(map,f,par(e1,…,(ek,…em),…en)),其中((eh,…,em)是插入表)的变换指令先作为中间步骤被写成par((g,e1),…,(map,f,(eh,…,em))…,(f,en))随后被写成par((f,e1),…,((f1ek),…(f,em)),…,(f,en)),执行后的该指令被写成两级结构par(fe1…,(fek,…,fem),…fen),其中,fe1表示在e1上施加f时的结果,而(fek,…,fem)是一个插入表。这样,功能f就被递归地施加到主目表中的所有元素上。
下面将要叙述关于磁芯单元是如何调整和执行变换指令的一个例子。
为了使叙述尽可能的短采用如下缩写reg表示寄存器,ident表示标识符,存储器是指目标存储器。
作为例子的指令如下(map f(-1 -2(-7 -8))),其中,f被规定成f(X)=abs(x)+1。利用机器标识符机器表示如下id1(map fid2)id2(-1 2 id3)id3(-7 -8)其中,标识符id1规定了含有(map f id2)结构等的闭包。
下面,i是0到3的数。执行下述步骤第一步,map被存储在寄存器F0中,f存储于寄存器F1中,而标识符id2被存储于寄存器S0.0中;
第二步,展开标识符id2,即寄存器S0.0包含-1,S1.0包含-2,S2.0包含标识符id3;
第三步,寄存器Si。中的内容被传输给寄存器Si.2。未注明使用的寄存器不被驱动;
第四步,map和f水平传送,即寄存器Si,1包含f,而寄存器Si,0包含map。未注明使用的寄存器不被驱动;
第五步,寄存器Si,2中具有简单值的列向下作一步压缩,即寄存器S0,1包含-1,寄存器S0.0包含f,寄存器S1.1包含-2,寄存器S1.0包含f,第三列未被触及;
第六步,基址寄存器矩阵中的每一列被(重新)存储到目标存储器中,如下id1(id6 id7 id8)id6(f-1)id7(f-2)id8(map f id3);
第七步,由标识符id6所规定的闭包被装入主寄存器,f装入寄存器S0,0,-1装入寄存器S1.0;
第八步,功能,即f(X)=abs(X)+1被施加给具有结果2的主目,该主目存储于寄存器S0.0内;
第九步,在目标存储器中执行与标识符id6相关的检索,出现的所有的标识符id6均被2取代id1(2 id7 id8)id7(f-2)id8(map f id3)第十步,进行与标识符id7有关的第7-9步,并利用结果3。目标存储器id1(2 3 id8)
id8(map f id3)第十一步,执行与标识符id8有关的第1-6步,其结果是两个基本矩阵列被存储于目标存储器id1(2 3 id8)id8(id9 id10)id9(f-7)id10(f-8)第十二步,分别利用第8和9的结果执行与标识符id9和id10有关的第7到9步。目标存储器id1(2 3 id8)id8(8 9)它读(2 3(8 9))一功能f被施加给主目表中的所有成份上。
应当注意的是,上述各步骤可以由磁芯单元以一种不同的更有效的方式来执行。例如,在适当的时候,在磁芯单元中完成归约/执行,而不是在目标存贮器中存贮中间结果。
转移(Transpose)指令格式(transponse list)转移指令被装入一个辅助寄存器F0中,并且该表主目(即多个表中的一个表)被装入基址寄存器矩阵之中(见图18)。基址寄存器矩阵中的内容被转移。因此,具有三级结构(transpose,((e1.1,…,e1,m),
…(en,1,…,en,m)))…的转移指令被执行,其结果被写成两级指令((e1,1,…,en,1),…(ei,m,…,en,m))一个实例说明((1 2 3 4),(5 6 7 8),(9 10 11 12),(13 14 15 16)),其中第一表,即(1 2 3 4)被存贮于基址寄存器S0.0-S0.3的第一列内,第二个表即(5 6 7 8)被存贮在基址寄存器S1.0-S1.3的第二列内,等等,上述表结构被转移到((1 5 9 13),(2 6 10 14),(3 7 11 15),(4 8 12 16)),其中第一表,即(1 5 9 1 13)被存贮在基址寄存器S0.0-S0.3的第一列中,等等。
交换(swap)指令格式(swap m list)一个交换指令被执行,从而指明具有三级结构的交换
(swap m((e1.1,…),··(em,1,…),(em+1,1,…),…(en,1,…)))其中,具有元素ei,j)的多个表中的一个表(i和j是基址寄存器矩阵中元素位置符号)被重新写成两级结构((e1,1,…)··(em+1,1,…),(em,1,…),…(en,1,…))这样一来,元素(em,1,…)随元素(em+1,1,…)而改变位置。
空白(skip)指令格式(skip m list)一个空白指令被执行,从而指明具有三级结构的空白(skip m((e1,1,…),(em-1,1,…)(em,1,…)(em+1,1,…)
…(en,1,…)))其中,具有元素ei,j的多个表中的一个表(i和j是基址寄存器矩阵中的元素位置)重写为两级结构((e1,1,…),··(em-1,1,…),(em+1,1,…),…(en,1,…))n这样一来,表(em,1,…)被删除了。
4.表提取包含有一个表的目标被放置在主寄存器中。如果该表包含有被写入这些表中的元素,那么,这些表将被垂直地存贮在辅助寄存器中。
展开表操作可在一个时钟内被执行。除了主存贮器的内容被传送给垂直总线并写入该列的最高基址寄存器之外,基址寄存器的内容沿对角线向右下移动一步(见图19)。重复展开表可以被用于利用数据“填充”主寄存器。
位单元作为本发明的旧约处理器的一部分,整个存贮器使用VLST(VLST=特大规模集成)技术来实现。每一位单元在VLST技术中都有一个适于付诸实现的设计。图20示出了一个位单元电路以及与位单元线d、d*和acc相关的驱动器的实施例。其虚线内所示为位单元15。
在图20所示的位单元实施例中,利用两根线(例如线d和d*)将每个位单元连接到控制装置上。这样,到某个元素并用来存贮具有38位长信息的信息总线的每一部分就包含有76根线,每一个这样的总线部分被连接到在存贮器单元区域的列中放置的存贮单元域151上。
如图20所示,位单元仅有4条连线,即第一条连线Vcc被用来恒定地提供电源,第二、三和四条连线acc、d和d*中的每一条都可至少建立三种不同的控制状态,下面对此还要进一步叙述。
图20所示的位单元是一个4晶体管CMOS单元。它是静态的并带有一个负载。该负载分别是MOS FET I1和I2的源/漏通路。在本实施例中,该通路具有反相门。也可以是一个电阻负载(未示出)。
该单元是一个可由每一边进行控制的触发器。在存取线acc和电源线Vcc之间两个串联连接,每一个都包含有分别被并联提供的MOS FET源/漏通路和负载T1、I1和T2、I2。晶体管T1的漏极被连接到晶体管T2的栅极,晶体管T2的漏极被连接到晶体管T1的栅极。
二极管D1连接到线d和晶体管T1的漏极、负载I1以及晶体管T2的栅极的互联线n1之间。二极管D2连接在线d*和晶体管T2的漏极、负载I2以及晶体管T1的栅极的互联线之间。每个二极管D1和D2由MOS FET提供,并且其MOS FET的漏极和栅极彼此连接,上述两个二极管被分别连接到线d和d*。
电路元件的主要特征如下二极管D1和D2是仅允许电流相对于线d和d*进行单方向流动的元件,晶体管T1和T2是驱动元件其中的电流可由晶体管基极的电位的变化加以控制。n1和n2的互联点是结点,在这些结点上可存贮涉及一位信息的电位。负载I1和I2是诸如电阻的元件。
在图20中,电压Vcc为一高电位、二极管D1和D2的作用是使电流分别从d或d*流向结点n1或n2。当栅极电位增加,随后该结点的电位降低时,驱动元件T1或T2的阻抗是很低的。但是在另外的实施例中,可以选择电位和电流,从而使得与图20所示的实施例具有相反的方向。
位单元能够存贮其值为“真”或“假”的值Vstoreo通过在线acc、d和d*上建立不同的电位,该位单元可以建立一系列不同功能状态的结构。
控制状态是高电平、低电平、对于所有线的流入该单元的电流和对于线acc的流出该单元的电流。线acc是来自16的存取线,并且和一个存贮单元域中的所有位单元15相连接。当对该单元进行写或读以及存取线acc是低电平时,第三和第四线d和d*具有彼此相互反相的信号。
元素标题16中的驱动和读出放大器图20中的虚线内示出了驱动器和读出放大器。第一晶体管T3的源极接电压V,它的漏极接到在存贮单元域151所有位单元115中的存取线acc,它的栅极上加有来自时钟信号发生器(未示出)的时钟信号V2。第二晶体管T4的源极接0伏电压,它的漏极接到存贮单元域151中所有位单元15中的存取总线acc,它的栅极加有电压V3,当存取线acc上的电压为0伏时,电压V3处于高电位。如上所述,存取线acc将被连接到存贮单元域中的所有位单元上,例如38位单元上。它也加在该头中,因而该头应该是很小的。线acc的电压在放大器AMP中放大。
接口7中的驱动与检测电路比特单元线d与d*的接口7中的驱动器与检测电路示意性地示出在图20的另一个虚线框中。然而,要指出的是,该电路只示出了驱动与检测线d与d*的一种可能方案。输入/输出IN/OUT是连接到图1中所示的核心单元2的。从而,该电路是在目的存储器1与核心单元2之间的一个接口中可能提供的许多相似电路之一。
线d的写电路包括一个第一对晶体管T5与T6,在实施例中第一个表示为n型而第二个为p型,它们的漏极连接到线d并形成一个分压器。晶体管T5的源极连接到一个电位Vr,而其栅极则馈以予充电信号prech。另一个晶体管T6的源极连接到一个电位Vcc,而其栅极则馈以一个控制信号V4,它当电位Vcc必须馈送到线d时变成低电平。线d的写电路同时包括一个p型晶体管T9与连接在电源Vcc与一个n型晶体管T11之间的n型晶体管T10的源/漏通路的一个串联连接,T11的源极接地,其栅极连接到来自外部控制的一个输入写。晶体管T9与T10的漏极之间的互连点连接到晶体管T6的栅极并具有电压V4。晶体管T9的栅极被馈以反相予充电信号prech*,该信号予充电阶段通过一个导通晶体管T9将晶体管T6的栅极连接到电源电压Vcc。
线d*的写电路包括一第二对串联耦合的晶体管T7与T8,在本实施例中,第一个示出为n型的而第二个则为p型的,它们的漏极连接到线d*上,并且也构成一个分压器。晶体管T7的源极连接到一个电位Vr,而其栅极则被馈以予充电信号prech。另一个晶体管T8的漏极连接到一个电位Vcc,而其栅极则被馈以一个控制信号V5,该控制信号当电位Vcc必须馈送到线d*时变成低电平。
线d*的写电路同时包括连接在电压源Vcc与晶体管T11的漏极之间的一个p型晶体管T12与一个n型晶体管T13的源/漏通路的一个串联连接。晶体管T12与T13的漏极之间的互连点连接到晶体管T8的栅极并具有电压V5。晶体管T12的栅极被馈以反相的予充电信号prech*,该信号在予充电相位通过一个导通晶体管T12将晶体管T8的栅极连接到电源电压Vcc。
用于输入输出的外线IN/OVT连接到两个三态反相器。其输出连接到线IN/OUT的一个三态反相器包括两个n型晶体管T14、T15与两个p型晶体管T16、T17的源/漏通路的一个串联连接。晶体管T16的栅极连接到一条控制线,该线提供信号bitin,并且晶体管T15的栅极被馈以反相信号bitin*。其输入连接到线IN/OUT的第二个三态反相器包括两个n型晶体管T18、T19与两个p型晶体管T20、T21的源/漏通路的一个串联连接。晶体管T19的栅极连接到提供信号bitin的控制线而晶体管T20的栅极则被馈以反相信号bitin*。第二三态反相器的输出连接到晶体管T13的栅极并通道一个反相器INV连接到晶体管T10的栅极。
一个读放大器包括一个n型晶体管T22,该晶体管T22的源极接地,基栅极连接到将晶体管T22保持经常导通并作为一个电流发生器工作的一个恒压Vbias,以及其漏极连接到一个n型晶体管与一个p型晶体管T23、T24以及T25、T26的两条分别串联连接的源/漏通路的一个并联连接,它们的另一端连接到电源电压Vcc。p型晶体管T24与T25的栅极互连并连接到晶体管T23与T24的栅极的互连点。晶体管T23的栅极连接到线d,而晶体管T23的栅极则连接到线d*。
每一个时钟周期,信号prech与prech*,分成一个予充电相位以及一个工作相位,在予充电相位中信号prech为高电平,在工作相位中,信号prech为低电平,其他控制信号确定要进行的操作。因此,在予充电相位线d、d*与acc分别通过晶体管T5、T7与T3被予充电至电压Vr。
信号bitin与bitin*控制数据送至或取自比特单元15的时间。当信号bitin为低电平而信号bitin*为高,则数据由第一三态反相器从比特单元传送到线IN/OUT。当信号bitin为高而信号bitin*为低,则第二三态反相器将数据从线IN/OUT传送到比特单元。
在线d、d*与acc予充电到Vr以后的相位2的读操作时,任线d与d*浮动,而线acc则被一高电压V3设置到电压OV使得晶体管T4导通。这使得具有最低电位的节点,如n1,降低到在Vr与OV之间的一个电位。因为这样,一个电流从线d流经节点n1至线acc。这一电流使线d放电,即线d上的电压降低。这一电压降由读放大器T22至T26测出。读的结果提供在晶体管T25与T26的漏极之间的互连上并馈送到第一三态反相器T14至T17的输入。低的信号bitin与高的信号bitin*对读取并放大的比特值提供一个到输入/输出线IN/OUT的传送。在相位2中,线d与d*未被以激活方式驱动这一点是重要的,否则在一条线上将得不到电压降。
从而,对于读操作,d与d*都是初始提供在电位Vr上的。d与d*两者基本上保持在电位Vr上,但由于进入单元的“电流进”将线d、d*之一放电,所以它们中的一条的电位有所降低。由于这里Vr是定义为“低”的,低电位将比“低”更低。d与d*给出所读的值,d比d*低给出FALSE(伪),d比d*高给出TRUE(真)。对于不写、写伪、写真、不写与不比较操作,线d与d*上的信息电位并不给出任何信息。
对于相位2中的一个写操作,线d、d*与acc予充电到Vr以后,线acc被一个高电压V3设置到电压OV使晶体管T4导通要存储的值是在输入/输出线IN/OUT上提供的。信号bitin高与bitin*低激活第二三态反相器T18至T21将线IN/OUT上的值传送到其输出上。在晶体管T11的栅极上的高的控制信号写将晶体管T10与T13的源极连接到OV。
第二三态反相器T18至T21来的一个高信号,即一个要写入的“O”或伪,将晶体管T13控制到导通状态,将电压V5设置到低电压,晶体管T8被控制为导通以及线d*被设置到电压Vcc,即高。从第二三态反相器馈送到晶体管T10的低的反相信号将保持它为非导通,在予充电相位中连接到电压源Vcc的电压V4将保持在这一电压上,晶体管T6将保持非导通,而在予充电期间通过晶体管T5连接到线d的电压Vr将保持。
来自第二三态反相器T18至T21的一个低信号,即要写入的一个“1”或真,将控制线d的写电路T5、T6、T9、T10通过反相器INV将线d设置在高电压Vcc上,而写电路T7、T8T12、T13将保持线d*在予充电相位中被设置的电压Vr上。
从上述例子中可知,在图20所示的实施例中存储节点n1与n2是以下述操作方式使用的。在操作周期的第二相位中,节点n1n2之一或者两者被充电或放电,这是取决于所使用的是控制信号V3、V4与V5中的哪一个的,即是否线acc被设置在OV上或者是否线d与d*中之一(或两者)被设置在Vcc上。
如上所述,每一个操作周期由一个予充电时期与一个执行时期构成。从而,当下面提到线acc设置为高时,这意味着信号V3在执行时期不在控制晶体管T4在线acc上设置电压OV。同样,当在下面提到线d或d*被设置为低时,这意味着控制信号V4或V5在执行时期中不在控制晶体管T6或T8在下述状态中,即通过高于电压Vr的电压Vcc耦合到线d或d*。然而,当线d或d*设置为高时,晶体管T6或T6将被控制为通过电压Vcc连接到线上。
存储单元区域可相当大,例如包括256个存储单元,这意味着每对晶体管T5、T6以及T7、T8分别地连接到一条用于所有存储单元(例如256个比特单元)中的一个比特单元的线上。所以晶体管大小必须调整到总的总线电容以及所要求的速度。
电压Vr可从一个短接反相器建立,从而使Vr与感测放大器反相器之间保持一种已知的关系。头中的存取电路将控制比特单元并同时从比特单元中取信息。
下述功能状态是可由控制状态设置的静止单元存储值vstore,读伪可读取值vstore=false(伪),读真可读取值vstore=true(真),不读单元存储值vstore,写伪将存储的值vstore设置为′false′(′伪′),写真将存储的值vstore设置为′true′(′真′),不写单元存储值vstore,比较伪将存储值vstore与一个值′false′(′伪′)进行比较,比较真将存储值vstore与一个值′true′(′真′)进行比较,不比较单元正在存储值vstore。
以下是一个比特单元的不同操作模式的一张操作表操作模式 acc d d*静止 低 低 低读伪 低 电流进 高读真 低 高 电流进不读 高 任意 任意写伪 低 低 高写真 低 高 低不写 高 任意 任意比较伪 任意 低 高比较真 任意 高 低不比较 任意 低 低对于比较伪与比较真,如果比较结果为DIFFERENT(不同)则线acc必定为状态电流出。
对于比较伪或比较真操作,线a′cc(存取线)给出比较结果。线acc予充电到Vr,并且在线d上提供输入数据,而其反相值则在线d*上提供。如果存储在比特单元中的值与输入数据不同,则线acc将通过二极管D1或D2之一,并通过对应的n型晶体管T1或T2被充电。这是现头16中的放大器检测到的。当检测到一个比较的FIT(符合)时,线acc将被保持在电位Vr上。
术语电流与电流出分别表示在一个时序中一个电荷移进或移出讨论的线。这是通常认在静止(REST)操作模式中分别将该线启动成高或低并随即变换成实际模式来进行的。一个电流将分别放电或充电讨论中的线。当没有电流时,则没有适当的电荷将被传输。因此在时序中将设有电压变化被提供。
目标存贮器控制电路优先择码器(图21A和图21B)图21A和21B所示的优先译码器11的实施例被分成多个四方块。如图21A所示,每个四方块具有一对左侧应答和请求线和四对右侧请求和应答线reqo、grant 0……到……reg 3、grant 3。
如图21B所示,第一个四方块520的四对右侧线连接到多个四方块(图中示出了外面的一对21和22)的每一对左侧线上。四方块520、521和520、522利用反相放大器523和524相互连接,放大器523将信息传送给方块链中较低的方块,而在该方块链中,较高的方块则需要优先权申请,放大器524将信息传送给作出应答的方块链中较高的方块。这样,在第二个四方块列中,方块521……522的数目是4。
当第二列方块中的方块被连接到四方块20时,第二列中的每一个方块被以同样方式连接到第三列方块的4个四方块上。第三列中四方块的数目将是16。图中仅示出了最外层的四方块525和526。
第三列中的每个方块然后以同样的方式被连接到第四列方块中的4个四方块上,第三列中四方块的数目是64。图中仅示出了最外层的四方块527和528。
第三列中四方块的右侧线被连接到目标存贮器。如图21B所示每一对都适用于作为存贮器单元10的总线18和19。
总共有85个方块用于265个闭包。最低的方块528用于最低的存贮器单元,向下直至存贮器单元O,最高的方块527用于最高存贮器单元,即直至存贮器单元255。
图21A和21B所示结构均使用了多米诺(domino)予充电逻辑,其中,全优先级解码器包括串联多米诺级,它相应于来自例如最低方块528的请求信号req O,通过所有的优先译码器方块的传输和返回,从而把一个“伪”应答信号传递给除存贮单元号O之外的所有存贮器单元。
如图21A所示,每个方块包括有5行MOS FET晶体管,除了第5行具有与第4行相同数目的MOS FET晶体管之外,其余每一行都比下一行多包含一个MOS FET晶体管。
在四个最低行中最靠外右边的MOS FET Tr0,0-Tr3,0中的每一个为p型晶体管,其栅极连接到时钟信号源,其漏极连接到正电源,其源极分别连接到应答线grant 0、grant 1、grant 2或grant 3。最高行中的MOS FET的源极没有接到应答线grant i(i是0-3之间的数),而是通过反相器523连接到方块级链中的下一个较低的方块上。
其余的MOS FET是n型晶体管,第一行中的Tr0,1,第二行中的Tr1,1、Tr1,2,第三行中的Tr2,1、Tr2,2和Tr2,3,第四行中的Tr3,2、Tr3,3和Tr3,4以及第五行中的Tr4,2、Tr4,3、Tr4,4和Tr4,5的源极接地,而对四个最低行的MOS FET而言其漏极分别接应答线grant 0、grant 1、grant 2或grant 3,而对第5行的MOS FET而言,其漏极接请求线req a。
应答线被连接到MOS FET Tr0,1、Tr1,1、Tr2,1、Tr3,1中每一个的栅极。请求线req 0被连接到MOS FET Tr1,2,Tr2,2,Tr3,2和Tr4,2中的每一个的栅极。请求线reg 1被连接到MOS FET Tr2,3、Tr3,3和Tr4,3中每一个的栅极。请求线req 2被连接到MOS FET Tr3,4和Tr4,4中每一个的栅极。请求线req 3被连接到MOS FET Tr4,5的栅极。
优先级解码器在两个相位内工作。在第一个相位,当时钟信号为低时,所有的应答(grant i)都被予先充电到高电平(真)。然后,所有的请求信号(req i)都是低电平(不需要)。在第二个相位,予充电被关闭,即时钟信号为高电平。然后,某一个或多个输出请求req i将变为高电平,它将使上述所有的应答信号grant i变低(不选择),并且置请求信号为低。若请求信号为低,则图21中靠近左边的相邻四方块内的请求信号req i将变为高电平。四方块520中的请求和应答信号是无关紧要的。然而,四方块520中的应答线是接地的。由于当连接到任一单元包包的任一请求req i变为高电平时,它必须变低,所以四方块529中的的请求信号在图2和3中的线14上提供“ANY”结果。
组件头部分(图22)图22详细地示出了组件头16的实施例。组件头16控制到存贮单元10的存取线acc,检测存取线acc和线ANY14(这里称之为任何一类型),它在总线a和b上执行线-“与”和线-“或”操作,并且还要读出该总线a和b。进而,它还包括一个内部动态存贮器位。
n沟道MOS FET no具有连接在电压Vr(与图20中的Vr为同一电压)和存取线acc之间的源/漏极通路。时钟脉冲cpb被提供给MOS FET no的栅极。n沟道MOS FET nl具有在地和存取线acc之间连接的源/漏通路。
在电源和地之间串联连接有两个P沟道MOS FET P2和P3的并联耦合源/漏通路、P沟道MOS FET P4的源/漏通路以及n沟道MOS FET n5的漏/源通路。
直接连接到最近位单元的线任何一类型(any-type)被连接到MOS FET P2的栅极。来自中央控制单元的线匹配(Writ match)连接到MOS FET P3的栅极。存取线acc通过包括有P沟道MOS FET P1的串联源/漏通路和其栅极连接到存取线acc的n沟道晶体管n6的反相器INV1连接到MOS FET P4的栅极。n沟道MOS FET n7的源/漏通路连接在反相器INV1和地之间。线eval,s(即来自中央处理单元的判断选择evaluate Select)被连接到MOS FET n7的栅极。线Set.s(即来自中央处理单元的置位选择Set Select)被连接到MOSFET n5的栅极。
MOS FET P4和n5漏极间的相互连接点i1(也称选择节点)被连接到p沟道MOS FET P6的漏极,P6的源极经P沟道MOS FET P7接到电源+Vcc。来自中央处理单元的线reset.b被连接到MOS FET P6的栅极。与图3所示相同的线b被连接到MOS FET P7的栅极。
P沟道MOS FET P8的漏极连接到与图3所示线a相同的线a上,其源极连接到互联点i2。线Wand.a(即来自中央处理单元的线与a被连接到它的反相门。P沟道MOS FET P9的漏极被连接到线上,其源极连接到互联点i2。线Wand.b(即来自中央处理单元的线-与-b)连接到它的反相门上。P沟道MOSFET P10的漏极连接到互联点i2,其源极接到电源+Vcc上。互联点i1通过“与”反相器INV2连接到MOS FET P10的反相门上。反相器INV2包括P沟道MOS FET P14的串联源/漏通路以及连接在电源+Vcc和地之间并且其栅极连接到互联点i1的n沟道MOS FET n8。
在线b和电源+Vcc之间连接有两个P沟道MOS FET P11和P12的漏/源通路。线wor(即来自中央处理单元的线“或”wire or)被连接到MOS FET P12的栅极。互联点i1在接到MOS FET P11的栅极。P沟道MOS FET P13的源/漏通路连接在线a和互联点il之间。线Sa(即来自中央处理单元的选择线a Select a)连接到MOS FET P13的栅极。
在地和电源+Vcc之间,连接有n沟道MOS FET n2 P沟道MOS FET P15、P沟道MOS FET P16的漏/源通路。MOS FET n2和P15源极间的互联点i3接到MOS FET n1的栅极。两个P沟道MOS FET P17和P18串联于互联点i3和电源+Vcc之间。互联点i1接到MOS FET P18的栅极。线r/w.b(即来自中央控制单元的读/写.b)被连接到MOS FET P15的反相门。线r/w.s(即来自中央处理单元的读/写选择)连接到MOS FET P17的栅极。线r/w.r(即来自中央处理单元的读/写复位,该信号被用于在读或写操作之后使结点i3复位)被连接到MOS FET n2的栅极。
图22所示组件头实施例的逻辑功能如下所述。在每个负时钟脉冲时,MOS FET n0向存取线acc予充电,在读或写时,MOS FET n1赋予它低电平值。在备用状态,MOS FET n2向i3予充电使其为低电平从而保持MOS FET n1处于关断状态(即非导通状态)。
MOS FET P17和P18执行由选择结点所控制的读/写。这被用于例如指令匹配、清除闭包单元的标记或是闭包单元的识别符的指令中。若未建立标记,则将根据总线a和b上的指令来产生不同的作用。
匹配功能将磁芯单元和存贮器单元中的值(例如所说的目标值)进行比较,并且认为这些值规定了2个集(set),如果这两个集不相交,则比较结果是“伪”。如果闭包的一部分未被全部求值则也假设成上述情况。
MOS FET n5向选择结点i1充电,并在MOS FET n7的栅极上由来自控制单元6的控制信号进行控制,由MOS FET P2-P4来计算它的值。MOS FET P8-P10根据来自中央控制单元的控制信号在总线a和/或总线b上执行线“与”操作。MOS FET P11和P12在中央控制单元的控制下执行线“或”操作。
反相器INV2使在选择结点上的选择位反相。由于要执行线“或”与线“与”操作,上述反相是需要的。MOS FET PP13将总线a上的值传输给选择结点。由于它被予先充电为低电平状态,因此仅需要传输高电平状态。最后,当处于控制状态时,MOSFET P6和P7被用来选择高电平状态。随后,由于选择结点在执行读操作的同时被复位,所以在与读标记存贮单元和清除该单元标记有关的指令中,上述选择是需要的。该特性也被用于其它类型的指令中,在这些指令中,必须在组件头中执行逻辑与操作。
任何一类型信号被直接接到最近的位单元。它包括所存贮值的类型。在匹配期间,使MOS FET P3受控关闭,从而使得在具有任何一类型(any-type)信号的线上的高电平值产生一个“真”匹配。类似的,为了检测存贮单元是否被使用,当MOS FET P3受控关断时,含有任何一类型信号的线上的高电平状态将使得选择结点上的信号选择保持在低电平。为了检测相关等式,MOS FET P3受控接通(即导通)。
闭包头(图23)图23所示的闭包头17能在总线a或b上执行优先级操作和模式操作。两种操作可以在不同的总线上同时执行。模式操作(即在图2和图3所示的电路中总线12〈MODE〉的操作)仅对总线b上的低电平状态是敏感的,而对总线a上的高或低电平状态都是敏感的。闭包头能使总线13(见图2)上的全局信号MORE复位,并可将旧总线数据读或写到总线a和b上。
执行MODE操作的电路和执行优先级操作的电路是根据两级多米诺(domino)原理设计的。第一级确定哪一条总线是输入状态,并且校正极性,而第二级执行具体的操作。因此,闭包头工作于两个相位之中,第一为予充电相位,第二为操作相位。这样,就提供了一些予充电n沟道MOS FET n20,n21,n22和n23,它们的栅极均由来自中央处理单元的时钟信号Prech来进行控制。n20向总线a予充电,n21向总线b予充电,n22向通往优先级译码器11的总线req充电,而n23使接点网络F1变为“低”。
接点网络F1包括两个并联的P沟道MOS FET P20、P21和P22、P23的源/漏通路的串联耦合对。网络F1的一端通过MOS FET n23的源/漏通路接地,另一端接电源+Vcc。总线a被连接到MOS FET P20的栅极,并通过反相器INV20连接到MOS FET P23的栅极,随后,P23的栅极获得与总线a上信号a相反的信号a*。来自中央控制单元的信号mode.a*被提供给MOS FET P21的栅极,而来自中央处理单元的反相信号mode.a*被提供给MOS FET P22的栅极。接点网络F1实现了a*mode.a与*a*mode.a*相比较的功能。
在电源Vcc和总线b之间串接有两个P沟道MOS FET P23和P25的源/漏通路,总线a被连接到MOS FET PP24的栅极,而来自中央处理单元的信号ba被提供给MOS FFET P25的栅极。
网络F1和MOS FET n23漏极间的结点被连接到n沟道MOS FET n24的栅极,MOS FET n24的源极接地,漏极接总线12(mode)(如图2和3所示)以提供模式信号。在电源+Vcc和总线b之间串接有两个P沟道MOS FET P26和P27的源/漏通路。模式信号(总线12上)还通过将该模式信号进行放大的反相器INV21和INV22连接到MOSFET P27的栅极。信号mode.b由中央控制单元提供给MOS FET P26的栅极。
信号mode.a在总线a上执行模式操作,信号mode.a*也在该总线上执行模式操作,但在该总线上形成一个相反的值a*。若总线a被置为“低”电平,那么信号ba则置该总线为“高”电平。若总线模式为“低”电平,那么信号mode.b将置总线b为高电平。信号Prech用来将总线a和b予充电为“低”电平。
因此,MODE(模式)操作是根据信号a还是根据信号a*来进行,其选择是由接点网络F1的辅助手段来完成的。总线MODE12可以通过目标存贮器中所有闭包头17对地进行校正。晶体管P26栅极上的控制信号mode.b将标总线b拉向高电平。在这种情况下,在总线a和总线b上进行两种不同的测试是可能的。若在总线b上的测试表明其实际上操作的结果为高电平,那么总线b就可以被置为高电平。例如WIRED OR可以在总线a和b中的一条线上进行,而WIRED AND则在另一条线上进行,逻辑操作也可以执行,在执行过程中其状态应当是当总线a上的结果如是“伪”时,总线b则应与示出“伪”。其它的状态也可根据总线b的结果来进行另外的操作。
在电源+Vcc和总线b之间,串接有两个P沟道MOS FET P28和P29的源/漏通路。来自优先级译码器11的应答信号grant通过反相器INV23接到NAND门NAND1的一个输入端,其第二输入端接请求信号reg。该NAND门包括其源/漏通路串联连接的两个n沟道MOS FET n25和n26的和其源/漏通路并联连接并且连接于MOS FET n26的栅极和电源+Vcc之间的两个P沟道MOS FET。MOS FET n25的源极接地。信号grant*被提供给MOS FET n26和P34的栅极,而信号reg被提供给MOS FET n25和P32的栅极。NAND门的输出被连接到MOS FET P28的栅极以及其源/漏通路连接在电源+Vcc和线MORE13之间的MOS FET P33的栅极上。来自中央控制单元信号grant.b被馈送给MOS FET P29的栅极。
在电源+Vcc和到优先级译码器11的总线reg之间,串接有两个P沟道MOS FET P30和P31的源/漏通路。来自中央控制单元的信号Prio馈送给MOS FET P30的栅极,总线b接到MOS FET P31的栅极上。
来自中央控制单元的信号Prio被用于向优先级译码器11传送请求信号,即当总线b处于“低”电平时,提供一个高电平信号req。NAND门P32、P34、n25、n26检测请求信号req是否为高电平、应答信号grant是否为低电平,即对优先级的要求是必须的,而不是可选择的。在这种情况下,NAND门变为低电平,并置总线13(MORE)为高电平,即表示需要优先级。若请求信号req为“高”,就要使用应答信号grant.b。此后,首先由中央控制单元提供信号Prio,然后目标存贮器中最多一个存贮单元上的应答信号grant.b将具有处于“低”电平状态的总线b。
提供第一种常规类型数字ALU的处理器属于本发明范畴之内,该处理器由控制单元6进行控制,并接到磁芯单元上。另外,下面将给出根据本发明特别适用于第一种处理器的数字ALU5的实施例,数字ALU叙述如下*它能缩减数字表达式,而不必使用临时存贮器*它能处理作为操作数的浮点值,该值在尾数和指数之间具有变变化的部分,该部分以代码段进行编码*以可变代码长度的代码段的形式在总线上使用有关操作数所给予的算术指令*具有浮点和整数表达之间的共同变化*具有代码紧凑值表示基于该数字值元素,数字ALU能够执行算术的、逻辑的相关操作,其操作方式如下a)提供包括待处理的数字值及指令信息的输入表,b)利用指令信息,根据输入表中数字值元素执行操作,c)通过重写输入表中的该元素执行计算,d)在输出表中显示其结果。
在输入和输出表中其元素的最大数最好是4,该值相应于磁芯单元中主存贮器的数目,它提供了一个输入表并接受一个输出表。然后表一的元素可以用指令字来表示,第二元素可以用两个数字值表示中的每一个来表示,并且在一段时间内通过重复写入输入元素而形成的计算期间内,表一元素将被提供有中间计算结果。
该表更可取的是包括的功能应用,在该应用中,它的一个元素是一个指令代码,其余的是相对于该指令的主目。在得到最终结果之前通过把来自结果输出表的指令代码写入和重复写入输入表来执行一个指令。在每次重复写入过程中,该表将被重新写入以在对于实际运算适当的情况下包括其后跟随有适当值字的经校正的指令代码字。
在实际处理前,应提供具有代码形式的适当的数字值字。表示数字值字的字最好被提供有将该数字值提供成紧凑表示的编码,即值的每一个编码表示相应于一个译码值。第一编码将以表示整数值的二进制字来提供,第二编码将以表示浮点值的二进制字来提供。该编码的优点是在编码以后,以与整数值表示相同的序列来提供浮点值表示。在该方式下,两种表示中的任一种都必须是二进制数字形式。硬件被提供来根据所传输的位组合格式,利用下述给定的规则,即不需要知道如何译码来进行隐函数计算。
完成一个具有可变指数宽度的浮点值表示的简单途径是使二进制编码浮点值表示包含有代码段、指数段和尾数段,代码段在指数段和尾数段之间的分隔部分有一个指示,从而使得指数段和尾数段具有可变的长度。通过在与浮点值表示的尾数部分相关的字段前面包括有一个虚拟的“1”,即在该表示中实际上并不存在1来提供紧凑表示。
数字ALU硬件结构简示于图24A的数字算术逻辑单元ALU包括一个控制驱动装置1a和一个算术单元阵列2a,该阵列用于在特定的分别包含有多条(M)传输线的输入/输出总线NU0、NU1、NU2和NU3上执行算法,每条总线传输一个M位值,M位值例如可以是32。数字ALU由控制装置6控制。数字ALU通过下述信号与控制装置发生联系时钟信号输入CALU、忙碌输出ABUSY、控制输入ACNTACNTL、状态输出ASTATE和译码指令输出AINS。
接口数字ALU<一>单元输入输出总线NU0、NU1、NU2和NU3被连接到图1所示的第一级处理器中主寄存器或目标寄存器上,该第一级处理器用于处理归约型的指令。
磁芯单元中主寄存器单元,即S0,0、S1,0、S2,0和S3,0(图9)都具有般个NU端(见图10),该端被连接到输入/输出总线NU0-NU3中的一个上。因此,主寄存器SX,0中的内容能够使用输入/输出总线NUX传输给数字ALU,这就是输入表如何能提供给ALU,其中X是0和3之的数。另外,数字ALU使用同一条总线能够将该结果作为输出表提供给主寄存器。位于NUM面中主寄存器的部分内容,即num字被传输给数字ALU。输入/输出总线NU0-NU3传送num字的表,该表是一个数字值或指令。在任何时间都不允许所有总线都处于使用状态。输入/输出NU0-NU3上的输入表包括将被提供的运算类型信息,并且在控制陈列2a中不同元素的同时,控制驱动器1a从表中获得该信息。通过以位或位组状态方式在输入表中重复写入该内容来进行运算,所谓位或位组状态是指该位在一个字中具有相同的位置或位组在一个字中提供“薄片”状态,并且运算的结果作为输出表。应当注意,在最终结果出现在输出端以前,通过内部电路多次重复循环该值是可能的在循环期间,一个临时输出表出现在输出端,它仅是作为一个临时的输入表而插入的。
该表可以包括与待被处理的值共同存在的功能应用或其它类型的表,例如是仅包含至少一个整数值或浮点值的表。当它包括功能应用时,在输入/输出NUO上提供的第一表元素包括指令代码,即待被进行处理的类型信息,表的其余部分是有关指令的主目。为了最终获得该结果,通过一步或多步地重写该指令来执行一个指令。微指令和状态信号被用于数字ALU内部。通过数字ALU内部的单独的控制器1a,利用这些指令来控制阵列2a。当直接写入结果时,该值被放入输出表内。当进行逐步重写时,重写该表以保持同一指令代码,或具有新的或特有变化的指令代码,以及具有互大多数情况下其后跟有一个或多个值的指令代码。应当注意,在一系列周期中进行重写操作的最佳方式是在整个操作期间内保持指令代码不变,这是因为在这种情况下控制单元6将不会是太复杂的。
接口数字ALU<一>单元返回来看图24A,时钟信号CALU被用于将时钟脉冲信号传送给数字ALU,并且数字ALU规定在什么时候它将利用输出ABUSY上准备好的信号对时钟脉冲进行存取。
主存贮器的部分内容位于标题部分中,即特征字都送到控制单元6,它将按顺序控制数字ALU控制驱动单元1a。
但是在输入/输出上提供的信息中具有的特征位是属于本发明的范围,这样,该特征位信息直接送到该控制驱动单元,以下也称之为数字ALU控制单元。
该控制输入ACNTL通常用来控制数字ALU的数字操作,这种操作需要数个时钟周期。
在每一个操作之后,输出ASTATE返回到控制单元6,输出AINS上的指令码是连接总线NUO的主寄存器中的指令码的压缩码。
参阅图24B,由控制单元6提供的用于处理器的基本时钟是C10,例如它具有10ns的周期。数字ALU在一个或几个这样的时钟内执行操作。连接到该数字ALU的磁芯处理器使用更长的周期控制,例如用两倍于数字ALU的周期,即如果C10是有10ns周期,则时钟信号C20具有20ns的周期。但是,也可用更短的周期进行控制。用于具有更短周期的基本控制信号CALU(即在实施例中表示的数字ALU或其它的磁芯处理器)由此延伸到一个指令的终端,以便同具有更长周期的时钟信号C20同步。一旦该数字需要更多个C0时钟周期去执行一个指令时,它将返回一个高电平信号ABUSY。如图24B可清楚地看到,在信号ABUSY成为低电平后才产生延伸。
数值表示法对于浮点表示,在其指数和尾数之间数字ALU具有一可变化的部分。这样,一方面对小数的尾数可能有很多位而使精度提高,另一方面还可处理很大的数。
如图25所示,总线上具有的数字值的每一位组合格式在多数位信息串的最高位中最好具备一个短位字段,该位信息串具有数值符号部分的信息、指数符号部分的信息以及有关在数字值和尾数部分之间分隔位置的一个代码部分的信息。要指出的是,该位字段代码部分的长度也是可以改变的,而且码字段和指数字段间分隔位置的距离由码字段来确定,例如图25左箭头所说明的那样。
数字ALU用相同指令提供数字的浮点表示法,如像相同数字的整数表示那样。这样,相同的位组合格式的浮点值和整数值是完全不同的。
这个目的可以这样来达到,即用所具有的第一判断式来判断该位串是否是一个浮点值以及第二判断式来判断该位串是否是一个整数值。这样,两个表达式中任何一个都不需用二进制数形式,只需有一个(最好是两个)采用编码方式。这种位组合格式的转移是自动进行的,并且,机器中的硬件使得在该变换了的位组合格式上的计算是隐含在下面所给出的规则中,也就是说并不知道该判断已经发生。
一种努力是提供浮点值的精确表示,即不存在能以相同数字来判断的位组合格式。
整数表示法图示图26A表示了本发明用于整数值代码的图示,该整数值被称之为整数H值。沿水平轴给出二进制表示,而沿垂直轴为H值。最高位代表该值的符号,正或负。由图26A看出,当二进制表示全为“0”时,该H值具有其最大的负值,在二进制表示的中间(即当最高位从“0”变到“1”时)具有0值,而与二进制表示全为“1”时(即具有其最大的二进制时)具有最大的正值max rep。
浮点值表示法图解图26B为本发明用于浮点值代码的图示,该浮点值称之为浮点H值。沿水平轴给出了二进制表示,而沿垂直轴为H值,这里通过一个点作图,在该点浮点H值改变它们的符号。同样在该表示中。最高有效位表示了该值的符号。浮点值表示必须满足全部的要求。对于一定的精度,该值的大小必须是任意可变的。这样应当能够表示出极小值和极大值。该浮点H值的刻度是对数。在每两倍刻度之间,对数H值能使用直线近似值为简化。结果形成一个典型的浮点码。由图26B看到,对于-1和+1之间的B值,二进制表示处在该二进制表示字段的中间,并且包括该字段的一半。
在整个数值范围,其相对精度是不变的。对数值具有一定的精度和范围。如果该数值必须任意大,则必须有可能调整对数的范围。
在任何时候该对数值能用对数函数来表示。这样有可能表示每一个大的值,但是对于大的值,其精度将要降低,而对于小的值,将能保持其精度将要降低,而对于小的值,将能保持其精度或稍有改善。
由于两种表示法的两种位组合格式是以相同的方式出现的,所以整数大小比较器也可用于该浮点值的表示。这意味着可以省掉一个具体的浮点值比较器。进而意味着仅在一个周期里进行比较操作的整数大小比较器可用于浮点值,这是一个很大的优点。一种通常型式的浮点值比较器,它的操作必须使用许多周期。
在一般的运算逻辑单元中,若干位组合格式可以相同的数字方式来判读,选择这些位组合格式中的一个进行归一化。按照本发明,则不需要进行归一化,至少在实际运算时是这样,归一化可在计算操作之前和计算操作之后来进行。一旦准确地表示浮点值间的相似性,则一个浮点值计算(例如比较操作)可以在一个周期中确定。具有准确表示的优点也在于可以使用浮点值的最大值,即在数值的序列中没有舍弃的和无用的值。
在一般应用中存在着若干位组合格式能够以相同数字形式判断的理由是在于一个数值的指数部分和尾数部分彼此相乘来产生该数值。例如1.0可以是由21×1/2产生,即具有指数位组合格式01和尾数位组合格式100,或者是24×1/4,即具有指数位组合格式10和尾数位组合格式010,该指数位组合格式和尾数位组合格式彼此相互组合在一起。
借助于提供一个隐含的“1”来产生准确的表示,即在用于正值的尾数位组合格式以用于负值的隐函“0”之前实际上没有“1”存在。通常,尾数值指定在-1和+1之间。二进制编码尾数指定在(1.0到2.0)或(-2.0至-1)范围内,其正负取决于符号。
表达式编码整数格式将被准确地确定,如同整数判断一样,浮点表示将具有相同连续的阶,这是一个很大的限制。
图26C示出了解决这个问题的一种方便的方法。图27A和27B表示按图26C所提供的字的数据表格。图26C表示浮点编码的示意图表。二进制表示在垂直分隔线LIN的左边加以说明,而浮点H值在线LIN的右边加以说明。该线LIN用来说明指向更大值的轴。无论对二进制表示还是对H值表示都是适当的。这种表示法和H值被判断为从线LIN向其两边扩展。最接近线LIN的是说明图26B中的隔膜中心轴。H值轴向右,而二进制表示轴向左。第一字段是在轴表示之外,sh朝向右而s朝向左,代表存贮单元位的最高有效位。对于负值为“0”而对于正值“1”。第二字段,seh和se,分别代表下一个最高有效位,它是指数符号位。第三字段至少有一位比上述邻接的最高有效位更低,如同所说明的那样,如果二进制字段是低位,则存贮单元具有七位,如果二进制是高位,则该存贮单元具有更多的位,在下面将要说明具有32位的情况。
在图26C、27A和27B所示的例子中,七位字编码替代32位字编码,或许在实践中使用的更多。二进值表示直接朝向中心线左边将被判断为具有的H值为-1024到+768。应当指出,H值-1和+1分别置于0值和值-1024及+768之间的中间距离处。第一二进制位分别是s和sh,无论对于该表示法和对于H值都是值的符号,不管它是正值还是负值。
第二三进制位是指数的符号,即不管管其绝对值高于或低于数值1。该H值指数符号Seh在-1024和-1之间是正的,而在-1和+1之间是负的,并且在+1到+768之间是正的。如从图26C左边可明显看出的,在二进制序列的第一个四分之一中表示指数符号Se是负的,在第二个四分之一中为正的,在第三个四分之一中为负的,而在第四个四分之一中是正的。位Seh可以这样来描述,例如如果S=1,则Sch=Se,否则Seh=1-Se。
这样,在该表达式中,所表示的字符符号的最高有效位具有最慢的变化,而表示指数符号的下一个最高有效位的变化较慢,即二倍于字符符号位的变化。在下一位置,该位具有两倍于指数位的变化,并且是代码位C。根据图26C和27A、27B所示的例子,该代码仅包括有一位。在另外的例子中,代码字段可包括有多位,该代码控制指数长度看作为先前的符号位。
提供的目标的浮点H值,即浮点记数,按更具体的方式提供代码字段,从eh值清楚地看出,它直接给出指数H值,该eh值从一个大的正值下降为0值,该处H值为-1,从该点到一个大的负值,该处的H值为0,从该点到-0值,该处的H值为+1,以及从该点到一个大的正值,该处H值是768,ehebs部分表示绝对的指数H值,由两条曲线表示,所提供的边接边的每条曲线在一个大的正值和其处于O的中间点处具有两个端点。用于H值的代码字段的结构用来反映H值ehebs,这样,它被表示成具有用虚线表示的相同的形式。只要该代码字段仅包括用实线表示的一位,它将具有这样的形式。这样,如果Se=1,则代码Ch=1,反之,当代码Ch仅包括一位时,Ch=1-C。
图27A和27B所提供的表格配置是容易理解的,因为每一个位字段S、Sh、Se、Seh、C和Ch只包括一位,因此图26同图27A、27B相比较是显而易见的。图27A和27B第一列是按顺序的二进制表格,从0000000到1111111,在第二列是以二进制数来提供的。箭头列的右边是用于表示法转换数,表示出了H值。该表所给的实水平线用来表示代码字段的每一个转接,以便使它容易同图26B相比较。
Ch的右列包括用十进制表示的表示法的指数值e,还包括用十进制表示的H值的指数值。下面两列分别为以二进制表示的e和eh值。下面两列分别为以十进制和二进制表示的表示法的尾数值。接着为以十进制表示的H值的尾数值。要指出的是,图27A中的尾数在-1和-2之间变化,而Sh值为“0”。在图27B中的尾数在++1和+2之间变化,而Sh值为“1”。当转换时,最右边的一列表示由二进制结合最左列所提供的十进制H值。
从图27B的上部可清楚地看到,该表示具有的“1”作为它的最高有效位,后跟的“0”S表示实际的浮点值“0”。
从图26的二进制数序列清楚地看出,靠近中心线的左边的七个二进制位,其右边的四个最低位为指数和尾数,而三个最高有效位留给符号位及代码位。根据数字列e和m,清楚地看到,在最上部,指数效号Se是负的,即为“0”,而编码值C是“1”,值e包括三位,而值m是一位(前面两个“0”S在该列中可以省略)。这种情况在图26C中加以说明,在图中表明该部分的许多步骤都有e-表示法。在第二部分,该指数符号Se仍然是负的,但代码C是“0”,值e不仅包括一位(前面两个“0”S在该列中可以省略),而尾数值可包括三位。这种情况在图26C中加以说明,在图中表明该部分只有少数几步有e-表示法。在下一部分中值e只包括一位,而尾数包括三位,等等。
如在表示法部分所示出的,指数e在C=O和Se=O部分具有许多步长,而在C=1和Se=1部分只有几个步长。在e+bias部分到e部分的左边用实线表明,该值e用一条不超出其四分之一的一条线来形成,并且用虚线来表明该ehabs的值是如何利用反转e+bias中的该部分的每一个第二部分的四分之一来形成的(eh表示具有指数符号的e值)。
这样,一个编码位或多个编码位取决于先有的指数符号位,因而可以说该编码事实上包括了符号位,并因此使其长度可以有限,也就是比当指数的长度仅取决于编码字段时的长度要段。
按这种方式其尾数长度取决于指数值,就是当指衡长时尾数短,或反过来指数短时尾数长。因此,尾数未表示在图26中,但出现在图27A和27B表中的m,m列中,在那里第一个m表明十进制数值,第二个m表明其对应的数字部分。如上所述,如果S=1,则mh=1.0+m,否则mh=-2+m。
为了清楚起见,上述例子是针对七位字长度来描述的。如上所述字长也可选择成长,例如32位字长。这样,实际上具有变化的编码长度。这是可以实现的,为了使电路简化,可以以若干位为一级,例如以四位为一级来改变指数和尾数间的分离点。其一个优点是当该部分的改变是合理时,不需要有必需有的许多代码。这样一种精确译码器的例子将在下面进一步描述。
一个数字ALU的实施例表示数字ALU的细节的实施例示于图28,根据本发明,它包括在第一指令处理器中。输入/输出总线NU0-NU3连接到输入/输出缓冲器20。对于每个反转的外部时钟信号CLOCK的时钟期间它把输入端上的信息送到内部导线V0 i-V3 i,CLOCK是在缓冲器的一个时钟控制输入端上提供的,对于每个时钟区间,内部输出导线V0 out-V3 out上的输出送至输入/输出总线NU0-NU3。
电路20和它的时钟的实施例示于图29A、29B和29C中输入/输出缓冲器20包括输入缓冲器、输入/输出总线NU0-NU3中的一根总线以及相同数目的输出缓冲器。为避免空转(race)问题,时钟信号必须不重叠,为此将采用适当地截止它们的前沿的办法来处理。
在图29A所示的时钟信号CLOCK的第一状态期间,由于左边带有括号标记的反转,输入缓冲器被提供给数字ALU中的内部数字通道去控制传送状态。当过渡到在输出总线上提供的下一状态时,数据将通过数字ALU中的内部数据通道进行传送。输出缓冲器被控制在阻塞状态。
如图29B所示,在时钟信号CLOCK的时钟周期的状态1期间,电路20的输入缓冲器被控制在阻塞状态,而数字ALU电路则起到一个稳定的多路缓冲器的作用,以控制加在输入/输出总线NU0-NU3上的信号,电路20的输出缓冲器被控制在发送状态。
图29C示出了状态0时多周期指令状态条件。当在状态0期间先前状态0时从数字ALU送到输入/输出总线NU0-NU3上的内内容将保持在该总线上,这是由于电容效应的缘故,并能通过被控制在发送状态的输入缓冲器来传送,而输出缓冲器被控制在阻塞状态,对于输入总线V0 i,V1 i,V2 i,V3 i,由于转换到下一状态,从那里通过数字ALU中的内部数据通道传送。
输入表通常控制并执行一种计算,它是借助于再生输入表的内容把其结果送到输出端去进行的。该表中的第一个元素是一指令码,而其余元素是关于指令的主目,该指令要求提供取决于输入数据功能的硬件。但是有关表示在总线V1 i,V2 i,V3 i上的信息类型的信息最好在来自控制单元6的一个输入端EXT上给出。
控制单元6最好具有该信息,而不管在输入总线V0 i,V1 i,V2 i,V3 i上的字表示为指令和/或数,如果该数是浮点值或整数,则通过总线EXT把该信息送到数字ALU控制电路27。
图28所示的实施例提供了下列处理单元来执行不同的指令比较器第一比较器21连接到线V0 i和V1 i上去比较这些线的全部信息,即比较V0 i>V1 i,并在它的连到数字ALU控制电路27的输出端cmp01上提供比较结果(即一个两位值)。第二比较器22连接到线V1 i和V2 i上去比较这些线上的全部信息,即比较V1 i>V2 i,V1 i=V2 i,并在它的连接到控制电路27的输出端cmp12上提供比较结果。第三比较器221连到线V2 i和V3 i上去比较这些线上的全部信息,即比较V2 i>V3 i,V2 i=V3 i,并在它的连接到控制电路27上的其输出端cmp3上提供比较结果。第四指数比较器222连到线V1 i和V2 i,每根线都是32位总线,并在这些线上比较字的最高有效位,即Se、c,e部分,也就是这些线上除尾数和符号以外的所有信息。该比较器记录上述Se、c,e部分的编码信息。因此,来自精密译码器PD的信号B1sb1被送到比较器222的独立的输入端。
第五比较器223比较来自精确解码器的信号Blsb和Blsb所得的信号Cmp-pree表示信号Blsb1和Blsb2是否相同。
控制电路27把比较器的比较结果送到连到控制单元6的输出端ASTATE(参见图24A)。该结果也用来控制某些下面所描述的单元,例如,如果适当的话,将予先字(Prechasen Words)送到输出总线V10 ut,V20 ut和V30 ut上。
无效译码器一个无效译码器23连接到线V1 i上,用来检测V1 i上的所有的位是否都是“0”或“1”。总线V1 i上的字是否是整数以及总线V1 i上的字是否是浮点值,并分别检测指数部分和尾数部分的位是否都是“0”或“1”。一个指示输入V1 i的无效位组的信号B1sb1提供了输入总线上的字是一个整数还是一个浮点值的信息,以及在浮点值时,指数和尾数部分之间的情况。检测结果被提供到连到控制电路27的一个输入端的输出端insig1上。一个无效译码器24连到线V2 i上,用来检测V3 i上所有的位是否都是“0”或“1”,总线V3 i上的字是否为一整数,以及V2 i上的字是否是一浮点值,并分别检测指数部分和尾数部分的位是否都是“0”或“1”。信号B1sb2指示输入V2 i上的无效位组并提供和信号B1sb1相同类型的信息。这些检测结果被提供到连接到控制电路27的一个输入端的输出端insig3上。一个无效译码器25被连接到线V3 i,以检测V3 i上的字是否都为“0”或“1”,总线V3 i上的字是否为整数,V2 i上的字是否为一浮点值,并分别检测指数部分和尾数部分的位是否都是“0”或“1”。有关的这些信息由信号V1sb1给出。这些检测结果被送到控制电路27的一个输入端的输出端insig2上,每个无效译码器由下面将进一步描述的来自控制电路27的信号C52来控制。
配置无效译码器的目的是为了检测是否参与计算的一个输入端上的信息是无效的。该信息也被提供到控制单元6的总线ASTATE之上。对于某些操作类型,至少有一个无效单元的一个输入端,例如指示全为0的一个终止条件能够控制电路27。
指令译码器指令译码器26连接到线V0 i上。当算术逻辑单元ALU执行代数运算时,总线V0 i上出现指令。若总线V0 i上出现有指令或数据信息时,对V0 i的译码结果将通过输出ins传送给控制电路27,第23至26单元也分别由电路PD1、PD2和27中产生的信号B1sb1、B1sb2和C5控制,下面我们将分别予以描述。
加法器和减法器与线V1 i和V2 i相连的第一加法器是将这两条线上的值相加并将其结果V1 i+V2 i送至独立的输出端a1上。一个可携带此结果的信号将被送到与控制电路27相连的输出端gra1。同样,减法器29与线V1 i和V2 i相连,产生相减信号V1 i-V2 i并将此结果送到独立的输出端a2。一个可携带此结果的信号将会被送到与数字ALU控制电路相联的输出端gra2。第二加法器30与线V1 i和V2 i相联,产生V1 i+2×V2 i并将其结果送至独立的输出端a3。一个可携带此结果的信号将被送至与控制电路27相联的输出gra3。每一个加法器都是控制电路27产生的控制信号C5和信号B1sb1来控制的。这个信号提供了输入总线上是整数值还是浮点数值这样一个信息。如果是浮点数,则总线V1 i和V2 i分别代表它的指数和尾数部分的相应值。这些信息是很重要的因为离散值即整数是被完整的赋值,而连续值即浮点数值是通过尾数和指数部分分别赋值的。
符号电路第一符号和指数符号电路35是用来分拣该符号、指数符号、最高有效尾数数字位和总线V2 i上的字符的最后两个有效尾数位,并且将它的输出信号Sign1送至控制电路27的一个输入端。第二符号和指数符号电路36是用以分拣该符号、指数符号、最高有效尾数数字位和总线V2 i上的字符的最后两个有效尾数位,并将它的输出信号sign2送到控制电路27的一个输入端。同样,第三符号和指数符号电路27与总线V2 i相连并且将它的输出Sing3送至控制电路27的一个输入端,应注意的是,电路35和36在当符号、指数符号、尾数位作为总线V1 i和V2 i所提供的字符的一部分时是绝对需要的。在浮点值字符位于输入总线上时,电路35和36是被数字ALU的控制电路所使用。一个符号和指数符号电路(未示出)还可以在某些数字ALU的应用中被提供作为总线V0 i。
数字ALU控制电路控制电路27通过处理它的输入信号可在输出总线C1,C2,C3,C4,C5上提供数字输出信号。控制电路27最好是逻辑门电路阵列。它的输出信号所提供的控制例子将在下面描述。
操作数单元两个操作数单元r1和r2分别位于线V1 i和V2 i上,所包含的所有的运算只对一个单元。每个操作单元都有几个信息输入端。其中的三个输入端分别与三个单元28、29和30的独立的输出端a1、a2和a3相连,它们中的二个还分别连到总线V1 i和V2 i以及它们中的三个还分别连到总线V1 i和V2 i以及它们中的三个还分别与各个精确译码器PD1或PD2的某些输出端相连。这些将在下面描述。从原理上进每一个信息输入端都是一条包括像与每条输入总线V0 i,V1 i,V2 i,V3 i的线编号相同的总线。
操作数单元r1的输出端是输出总线V1 out和操作数单元r2的输出端是输出总线V2 out。
控制电路27的一个输出C1是一个复合控制信号,它用来控制操作数单元r1的内部元素。单元r1的其余控制信号是由精确译码器PD1来提供的。控制电路27的第二个输出C2也是一个复合信号,它用以控制操作数单元r2的内部元素。单元r2的其它控制信号是由精确译码器PD2提供的。第三个输出C3是提供给第三操作数单元r3的复合信号。第四输出C4被提供用来控制多项式给定电路31,这将在后面描述。第五输出C5用来对精确译码器PD1和PD2、无效电路23至25、加法器28,30和减法器29、符号和指数符号电路35至37提供控制。
每个操作数单元r1或r2都有基本相同的结构,这里只详细描述它们之中的r2。单元r1和r2相同的元件其标注也是相同的。操作数单元分为两部分,指数部分OPe和尾数部分OPm,尾数部分OPm有一输出端n1,指数部分OPe有一输出端n2。输出端n1和n2都与一个输出总线选择器的输入端相连,该选择器也称之为单独位组选择器M1。一个可以提供四组精选的“0”或“1”的0/1发生器被控制信号C211所控制,并且这个发生器与选择器M1的一个外部输入端相连。
指数部分OPe以操作数单元的四个输入端作为它的输入端,即V2 i以及来自精确译码器PD2的Bbias2,Bco-inor2Bco-decr2,并且还有一个来自尾数部分的输入端n8。输入V2 i连接到递增器INC的输入端、递减器DEC的输入端以及字选择器M2的五个输入端中的一个。部件INC和DEC的输出n5和n6分别连到字选择器M2的两个输入端。Bco-incr2被连到字选择器M2的另外两个输入端。
操作数单元r2的部件INC还具有进位输出端gr12和Cei2其部件DEC具有进位输出端grd2和Ced2,它们都连接到控制电路27上。同样,操作数单元r1具有连接到控制电路27的递增器部件进位输出信号gri2和Cei1递减器部件进位输出信号grd1和Ced1。该进位输出是在时钟周期的上半周期提前提供的。选择器在时钟周期的上半周期延迟控制,要注意一个情况,即在某些递增或递减电路中是否存在着进位,再决定提供选择控制。
到第一选择器的最大的正常传递延迟是大于半个周期。这样,就不会存在由于电路装置而造成的过大的延迟。但是,典型的传送延迟是小于半个周期。当到最后个半周期时,估计所有的信号都应到达。在选择器中不存在产生不需要的渡越。
操作数单元中字选择器M2的输出N4直接连到具有四个输入端的M3的第一输入端,还通过一个反相器1NV连接到它的第二输入端。输出端n2是指数部分OPe的输出。输入Bblos2连接到字选择器M3的第二输入端。
尾数部分OPm具有五个输入,即V2 i,V1 i,a1,a2和a3。所有的输入都连接到具有五个输入端和一个端出端n8的字选择器M4的输入端。输出端n8连接到指数部分OPe中的字选择器M3的第四个输入端。输出端n8还直接连到字选择器M5的三个输入端中的一个,通过一负位移器SH1连接到字选择器M5的第二输入端,该SH1将在其输入端上的二进制信息分四步向较低的有效位方向进行位移。它还通过正位移器SH2连接到M5的第三输入端,该SH2将在其输入端上的二进制信息分四步向较高的有效位方向移位,即用16来乘以该二进制信息。
字选择器M5输出端n7连接到字选择器M6的六个输入端中的第一输入端;经过一个反向移位器SH3将它的输入端上的二进制信息向较低有效位方向位移一步连接到M6的第二输入端;通过第二反向移位器将它输入端上的二进制信息向较低有效位方向位移一步直接连到M6的第三输入端;通过一个正向移位器SH5将它输入端上的二进制信息向较高的有效位方向位移一步连接到M6的第四输入端;通过第二个正向移位器SH6将其输入端上的二进制信息向较高有效位方向位移一步连接到M6的第五输入端。一个内部稳定的字发生器41在它的控制输入端C210上产生一个稳定的控制字Cord2并且将字发生器41的输出端连到字选择器M6的一个专用的输入端上。稳定的字发生器41可提供由诸如全“0”或全“1”予先合成的一组“0”或“1”或者提供一个由控制信号C210对发生器控制的指示某些特殊信息的一个字。该发生器只能存贮数目有限的字组合体,而用控制信号C210对其中进行选择,字选择器M6的输出是尾数部分OPm的输出端n1。
该尾数部分OPm执行下述功能。由字选择器M4选择出n8上的基本尾数值结果是V2,V1,a1,a2或a3。它可以是向左移位(正向移位)1,2,3,4,5,6位或向右移位(负向移位)1,2,3,4,5,6位或用稳定的字发生器41所提供的字Cword2所替代。
指数部分OPe执行下述功能。它的输出不是n8,V2+1,反态V2+1,V2-1,Bco-incr2,反态Bco-incr2Bco-decr2,反态Bco-decr2上非移位尾数值就是Bbias2。
在操作数单元r2内,字选择器M2到M6是由在控制电路27的输出端C2上的控制字单独控制的。因而,字选择器M2是由部分控制字C23控制,字选择器M3是由部分控制字C23控制,字选择器M4是由部分控制字C25控制,字选择器M5是由部分控制字C25控制和字选择器M6是由部分控制字C24控制。同样,连到选择器M4的输出n8上的移位器SH1和SH2是由部分信号C28控制,移位器SH3和SH6是由部分信号C29控制,提供输出Cword2的稳定的字发生器41是由部分信号C210控制,而0/1发生器40是由部分信号C211控制。
位组专用选择器M1是由包括一个部分控制字C21,一个来自精密译码器PD2的输出码信号Bcde2,一个输出最低有效位信号B1 sb adi2,和一个输出指数信号Bexp adj2的合成的多位信号来控制,最后所述的两个信号是由来自精密译码器PD2的输出B1 sb2和Bexp2分别在处理电路42A和42B中导出的。下面将进一步描述和举例说明这些信号。处理电路42A和42B是由来自控制电路27的输出C2部分的信号C25来控制。精密译码器PD2具有在总线V2 i上的指数符号和代码部分信息,与来自控制电路27上的二进制控制信号C53一起作为输入,指出在总线V2 i上的字是表示一个整数还浮点数值。控制信号C52是来自ALU控制电路27的C5输出的一部分。
同样适宜于操作数单元r1的是精密译码器PD1。来自精密译码器PD1的信号Bl sh1,Bexp1是在处理电路43A和43B中处理后给出输出为B1 sb adi1和Bexp adi1。如果它的输出来自属于它的译码器,则处理电路42A,42B和43A,43B几乎给出同样的输出。但是在某些场合,当进位是由递增器INC或递减器DEC所提供时,输出信号将被移位,这将在下面描述。该移位是由来自数字ALU控制电路27的输出端C2或C1分别输出的部分信号C25或C15分别控制的。
精密译码器PD2(或PD1)给出输出是无效的,例如如果字V2 i表示一个整数,则该输出对处理电路42A和42B(或43A43B)提供全零显示,以及如果字V2 i(或V1 i)表示一个浮点值,则该类型的输出和下面所述的Bexp2,B1 sb2和Bcde2(或Bexp1,B1 sb1和Bcde2)。
精密译码器PD1向运算数单元r1提供输出信号Bco-decr1Bco-incr1、Bhias1、Bexp1、Besb1、Bmsb1与Bcdc1,以及向ALU控制电路27提供一个指示代码是否表示指数的最大长度的信号Bco max1与一个指示代码是否表示指数的最小长度的信号Bco min1。精度译码器PD2向运算数单元r2提供输出信号Bco-decr2、Bco-incr2、Bbins2、Bexp2、Besb2、Bmsb2、与Bcdc2,以及向ALU控制电路27提供一个指示代码是否表示指数的最大长度的信号Bco-max1与一个指示代码是否表示指数的最小长度的信号Bco-min1。为了使新的精度反映在输出上以及在正常移位中,分别来自精度译码器PD1或PD2的输出Besb、Bexp必须以与数值部分的移位相同的方式移位,这是分别由电路42A与42B或43A与43B在信号C25或C15的一部分的控制下控制进行的,如上所述。
各精度译码器在其输入上被馈以一个信号C53用于分别指示在输入总线V1 i或V2 i上的字是否表示一个整数或一个浮点值。信号C53是来自控制电路23至30的ALU控制电路27的输出C5的信号的一部分。
下面将对精度译码器的输出信号作更具体的描述。
乘法与除法,运算数单元r3第三运算数单元r3,被乘数/商函数单元,是与单元r1与r2不同的另一种单元,并主要是为乘法与除法运算提供的。单元r3在乘与除函数中执行必要的移位与设置。它是由提供在ALU控制单元27的输出C3上的一个控制字控制的。
被乘数/商单元r3有若干输入端,其中第一个被提供在总线V2 i上的信息,第二个在总线V2 i上的信息,第三个被提供以来自一个常数字发生器44的一个输出,该发生器在来自电路27的输出C3的一个部分信号C34的控制下从若干存储在发生器中比特组合中提供选中的一个比特组合。
单元r3用于在复杂的数值指令中估值一个变元。其输出连接到总线V3 out上。
输入V2 i被馈送到一个字选择器M11的一个第一输入端上。输入V3 i直接馈送到字选择器M11的一个第二输入端,并通过一个受一个信号部分C35控制的正一比特移位器SH11送到它的一个第三输入端,并通过一个第一负一比特移位器SH12送到它的一个第四输入端,以及通过一个第二负一比特移位器SH13送到它的一个第五输入端,最后提到的两个比特位移器是受信号C33、Bmsb1、Nesb1控制的。发生器44的输出端连接到该字选择器M11的一个第六输入端。要提供给一个第二字选择器M12的一个输入端的字选择器M11的输出是由来自ALU控制单元27的控制字C3的一个控制字部分C32选择的。
M12是提供选择器M11的输出到输出总线V2 out的一个总线连接点,但它也能被一个控制字部分C31控制到一个切断状态。
数值ALU的运算的有关示例,我们参照我们的共同未决申请……。
精度译码器图30中示出了一个精度译码器的原理结构。要说明的是在所示的结构中可进行修改,例如为了加快计算速度。这些只不过是结构性特征,并且对于精于此道的人是显而易见的,所以不再在这里说明了。也就是实际的电路结构可能与图30所示的不完全相同,但它们的原理功能与图30是完全相同的。
输入信号V1 i或V2 i的指数符号和代码部分被送到记录电路50,在实施例中,电路50的输出提供了一个包括有示于上面表中的指数符号的代码变式,例如左边的变式没有提供在它的输入端上。另外,电路50可以提供这两种结构相同的变式作为输出,但输出只能是其中的一种,例如在上面表中的左变式在哪些线上则右变式也在那些线上。电路50的输出送至可以监控在其输入端上的位组合并可提供数字信号Bmsb以显示代码位长的位顺序比较电路51。同时电路51还可提供信号Bcdc。
六位顺序比较器52至57同样与记录电路50的输出相连接,它们的每一个都反应它的特定编码,以便在输出中提供“1”,如果来自记录电路50的输出线上的位格式是相同的,即它提供输出“1”而不是通常的“0”起作用。这时,只有电路52至57中的一个提供“1”(即真信号),其余的提供输出“0”(即伪信号)。信号B1sb的第一位和最后一位通常是“0”。因而,线58和59与有“0”位的线直接相连。
来自电路52至57的输出线58和59提供每一精确组具有一位的总线B1sb。总线Bbias每一精确组有四位,每一组包括有三个“0”位,且B1sb信号的位被提供给该特殊的组。因而,每一组线有三根与“0”相连,第四根与B1sb的输出相联。输出Bco-min与电路52的输出相连,输出Bco-max与电路57的输出相连。
输出Bexp的位格式包括在最低有效位至到具有一个“1”的输出B1sb为“0”s,之后的所有位为“1”s。在线59上的最低有效位总是一个“0”,但从倒数第二个最低位置又有可能为“1”。因此,或门60的一个输入来自电路57的输出而另一个输入来自电路56的输出。电路57的输出与B1sb的倒数第二位相连。因此,如果电路57的输出为“1”,那么或门56的输出也是“1”。只有在电路56,57的输出全为“0”的情况下,或门66的输出才为“0”。或门61的一个输入与或门60的输出相连另一个输出与电路55的输出相连。或门61的输出一方面与Bexp第三最低位相连,另一方面又作为或门62的第一个输入,或门62的另一输入作为电路54的输出,以此类推。这种类型的或门串联连接在所有与B1sb给出“1”的位置相同或更高的有效位提供“1”S。
字Bco-decr的符号,指数符号和代码部分具有连接到一个提供“1”的单元的第一根线,它的第二根线与B1sb的第六根线相连的反相器161相连,它的第三根线连接到其输出连接到B1sb的第五和第六根线的或门162,它的第四、第五根线分别直接连接到B1 sb的第二、第三根线。对于信号、指数信号和字Bco-decr的代码部分的这些线都与一个位完成电路66的输入相连,将“0”S加到该引入的字中,以便在它的输出端提供一个32位的字。
字Bco-incr的符号,指数符号和代码部分具有连接到提供“1”和单元的第一和第二条线,它的第三条线连接到同B1 sb的第七条线相连的一个反相器163,其第四条线连接到其输入端与B1 sb的第三和第四条线相连的或门164,其第五条线直接与其输入端连到B1 sb的第三和第五条线相连接的或门165相连。用于符号,指数符号和字Bco-incr的代码部分的这些线都与一个位完成电路67的输入相连,将“0”S加到该引入的字中,以便在它的输出提供一个32位的字。
加法器图31A-31C示出了一个加法器的实施例。例如图28中的28-30电路中的一个。它具有两个自变量a和b,自变量a在总线V1 i上被提供,而自变量b在总线V2 i上被提供。这些自变量被编码为浮点值或整数值。信号C51对整数是“0”,而对浮点数是“1”,输入C5来自图28的电路27,并且总线B1sb1和B1sb2对整数都为“0”,对浮点数有一个“1”位。如图31所示,该加法器是由8个部分G0,G1,…Gi…G7,耦合而成,也就是用于每个精确组的一部分。
根据上面相加操作的说明看出,在a,b是浮点值的情况下,将它们相加之前要对照自变量a和b。这意味着B1sb1和B1sb2必须要相等。B1 sb1是被作为信号B1 sb去控制加法器的。当信号B1 sb加到该加法器,递增器、递减器等时,它向尾数方向位移一步,因为在最高有效位尾数组中,这时它有可能去干扰进位传送(阻塞进位传送)。因此,在该信号B1 sb中的最低有效位在这些情况下是不使用的。
包括有32位的自变量a和b被分成8组,每组包括有4位。a和b的每4位一组由被提供作为专用部分Gi的单独输入,i为0到7的一个整数。除GO之外,总线B1 sb的每根线都连到专用部分Gi。线Cin到该Gi表明了该加法器是否将进行加或减。Cin为“0”是相加,而Cin为“1”是相减。每个部分提供一位进信号Couti送到下一部分,并接受来自相邻上一部分的进位信号Cini。这将在下面进一步描述。
如果必要的话,自变量a和b的相加在每一个按G7-G0的顺序向下一部分提供进位信号的G0-G7的每一部分中是单独进行的如果必要的话,对于一个浮点值,提供一尾数执行总线Cm以便提供尾数执行。该总线与具有符号位的线C8和具有指数符号位的线Cse一起从输入端gral(或gra2或gra3)到图28中的电路27。该电路27在总线ASTATE上将这个信息提供给控制单元6。
信号C51表明该自变量a和是整数还是浮点值,信号C52表明对于自变量a该代码是正常的还是变化过的,和信号C53表明对于自变量b该代码是正常的还是变化过的。这些信号都被送到部分G0,G0相应于包括最高有效位片(符号片)的最高有效位组。实际上这是依赖于操作数a和b的格式(而不管它们是整数还是浮点值值)。
三态门70被用来将总线Cn置为一个确定值,例如当该操作数为整数时都置为“0”,因为在总线上不存在尾数进位,该三态门70由信号C53进行控制。
图31示出了一个部分G1的结构的实施例。它被“切”成四个加法器片AS1至AS4。它还包括一个进位发生器,它用来估算下一个部分的进位Couti。对于上述部分Gi的每一位组ai和bi,具有分别连到每一个专用加法器片ASK的位aik和bik,k是1-4之间的整数。每个加法器片提供总和输出的位SUNik。
如将在图31C中更详细地描述的那样,该进位发生器是由一个表明该部分之和大于16的生成位Gen,一个表明该部分之和大于或等于15的传送位pr,一个来自于下一个相邻部分Cin-i的进位,一个来自加法器片AS4的进位Cin-i4和位B1sb-it1所提供。该位B1sb-it1通过一个反相器75被加到三态门的反相输入端,并直接送到三态门76的控制输入端。位Cin-i4与三态门76的第二反相输入端相连。这样,当位B1 sb-it1是“0”时,三态门76被控制来传送位B1 sb-it1。但是,当位B1 sb-it1是“1”时,则三态门76被控制去传送表明当它是“1”时该尾数已执行的位Cin-i4。
对紧跟自变量指数部分的精确组提供尾数执行是必要的,并且只有这个组具有位B1 sb-it1“1”。
从一部分到一部分的进位传送对紧跟指数部分的精确组是阻塞的该位B1 sb-it1连到一个与门77的一反相输入端,其另外的反相输入端上加有反相信号Gen,因而当Bisb-it1是“0”时传送信号Gen。该位Bisb-it1还连到另一与门778的一反相输入端,该与门的第二反相输入端上加有反相信号pr在第三反相输入端上有Bin-1位,这样,仅当B1 sb-it1是“0”以及Cin-i是“0”时传送信号pr。一个或门79的输入端连到与门77和78的输出端,并且当其中一个与门具有输出“1”时才提供输出“1”。
图31C示出了每个加法器片ASK的一个实施例。输入aik和bik被送到“异”门80的输入端,当输入彼此不同时该门提供一个“1”,相反,则该门提供一个“0”。“异”门80的输出被送到第二“异”门81的第一输入端,而位Cin-ik被送到其另一输入端。只有当它的输入不同时“异”门81的输出是一个“1”并且提供输出SUMik来使得来自下一个相邻的加法器片进位,或者如果该加法器片是该部分的第一个加法器片,则进位来自下一个相邻的部分。
位aik和bik送到具有一个反相输出的或门82,该输出按顺序连接到三个与门83,84,85的每个与门的第一反相输入端。如果aik和bik中任意一个是“1”,则反相位Cin-ik*被送到传送位Pin-ik*的与门83的第二反相输入端。如果位aik和bik的任意一个为“1”,则来自下一个相邻加法器片的反相位Pin-ik*被送到提供的位Pout-it为Pin-ik的与门84的第二反相输入端。如果位aik和bik中的任一个为“1”时,则反相位Gin-ik*被送到传送位Gin-ik的与门85的第二反相输入端。位Pin-ik和位Gin-ik对于每个精确部分中的每个第一加法器片AS1分别是“1”和“0”,这从图31B可清楚地看出。
为了实现脉动进位,即为了更快地相加,需要pr和Gen。由于在进位链的输入端上存在着分离值,因此所有精确组都按并行方式计算,即所有的组都同时计算。与没有脉动进位的32门延迟相比较,来自该加法的最后进位C5将只有4+8门延迟。
位aik和bik还加到具有一个反相输入端的与门88的输入端并依次连接到两个或门86,87的第一反相端。与门83的输出连接到提供输出Cout-ik的或门86的第二输入端。与门85的输出连到提供输出Cout-ik的或门87的第二输入端。
为了提供很快的进位链,如果一个位片使脉动激励的极性反转并且传送位也反转,则在它们中只可能有一个延迟。因此,每个第二精确组部分具有反相的输入端(未示出)。
从图31A的左边可清楚地看出,最高有效的精确部分G0和其它部分略有不同。它不使用输入自变量B1 sb-0。在该组中,它被假定为“0”。它具有尾数进位输入Cin-m。它通常产生进位输入到该符号位。该输出具有一个表明该执行来自指数的执行。除了B1 sb-0假定是一个“0”(即为伪)之外,正常的执行是在正常的组内产生一位信号C51,C52,C53可有以下的位组合格式(C51,C52,C53)=(伪,伪,伪)意指整数;(C51,C52,C53)=(伪,伪,真)意指a和b二者都有正常的代码(C51,C52,C53)=(真,伪,伪)意指a有变化,b是正常代码;(C51,C52,C53)=(真,真,真)意指a是正常代码,b有变化。
递增器递增器的结构与加法器的结构很类似。图32给出了一递增器精确部分的示意图,该递增器只有一个输入端a′(未示出)。增量位片AS1′-AS4′与加法器位片不同之处在于它们不具有从一个转移到另外的发生器位Gen。片AS4′的反向输出端Pr和下一个相邻部分的反向进位Cin*被送到具有两个反向输入端的与门990的一个输入端。Cin进位到在该线上是“1”的第一部分G7表明其增量已完成。与门90的输出和B1 sb-it1送到提供输出进位Cout到下一个部分的或NO2的各个输入端。提供递增器的进位输出与加法器采用同样方式进行。脉动进行链Cin/Cout指明该和是否大于或等于2。脉动进位链pe′指明该和是否大于或等于1。
该加法器和递增器具有一个被信号B1 sb-it1所控制的尾数执行总线。控制位C1g或C2g表明该表示是一个整数还是一个浮点值。控制位C1g和C2g控制三态门,当不使用时,将该尾数执行总线置为一确定值(未示出)。
递减器和递增器的结构是相同的。但是递增器具有一个加到相应于递增器片AS1′至AS4′的递减器片上的反相输入a′in*。
选择器操作数单元中的选择器通常是由一排传送门组成的。该选择器通常总是具有一确定的输出端。除了一个之外其它都是关闭的。一个辅助信号控制每个输入。用一系列这样的元件来控制整个选择器。它们被控制在不同的状态,以便从所规定端获得输入。图33给出了一个基本选择器位片的实施例。选择器每个输入端的一位Sin3,Sinc和Sind分别连到可控开关Sa,Sb,Sc和Sd。一对控制线Sca,Scb,Scc和Scd分别被提供给每个开关。提供一个输入传送到它所属的开关的该控制对具有信息“1,0”,另外的则具有信息“0,1”。
应当指出,根据以上描述的原则,就加法器而言,已建立了数字ALU中的主要电路。因此可以相邻,本专业技术人员利用这些原则就能容易地设计出其余的电路。因而没有必要详细地讨论每一个信号电路。
数字ALU控制电路27图28所示的数字ALU控制电路27是一个结构十分复杂的逻辑门阵列。不能给出它的具体实施例,这是因为它的结构是计算机进行计算的,该计算机备有与该信息信号有关的控制信号的配置的算法规则。根据本发明的所有的数字ALU,逻辑门阵列是根据适合于芯片掩模方式结构的计算直接用芯片掩模方式来提供的。因而,该电路不可能详细地予以给出。在用于整数相乘的附录2中给出了控制电路27输入输出关系的表。
附录2未示出在执行整数乘法时ALU驱动电路27的输入与输出之间的关系。该附录是分成不同的“控制情形”的。每一种控制情形对应于一个输出,即一条微指令。
在标题“微指令线”下列出的ALU驱动电路27的输出是在总线C1-C5上的信号电平。总线C1、C2与C3被分成连接到ALU各点上的更小的总线C11、C12、C13等。不同的输入集合可能导致相同的输出。导致相同输出的可能输入信号列出为条件1、条件2等等。因此,在标题“控制情形1”下作为“状态,感测线-条件4”列出的输入导致下面在标题“微指令线”下的输出。作为条件1、2与3列出在上面的输入导致与条件4相同的输出。
每一个条件是以某些状态线上的一个确定的信号电平(0/1)的组合定义的,而其它状态线则可具有不确定的值(x=无关)。
除了co-1imit 7与co-1imit 2以外,列出在附录中的所有输入信号也都标示在图28中。在图28中,信号co-1imit 7是分成其两个分量Bco-max1与Bco-min1的的。
信号co-1imit 2也分成它的两个分量Bco-max2与Bco-min2的。输出ASTATE只是电路27的输入的一个复制。输出ASTATE是连接到控制单元6的。
一个数据值可由第一级处理器中的磁芯单元的主寄存器来提供,或者由某些数字ALU内部单元来提供,例如指令操作数/商或多项式。有关在总线上放置位串表示的类型可以用指令总线中的信息给出或用代码字段给出。
权利要求
1.一种归约处理器,由具有一种结构的程序所控制,并且适用包括有不同归约类型的若干归约步骤来简化所说的结构,其特征是该类型的第一级处理器包括有一快速存贮器(1,2),依次包括a.多个快速存贮单元(10,2),每个快速存贮单元都有可能导致归约操作的执行,以及,b.一个通信网络(t1,t2,id,env,v0,v1,v2,12,13,14,6,7,11,16,17)将每个归约的结果通知给所有与所说结果相连的存贮单元。
2.按照权利要求1所述的一种归约处理器,其特征在于所说的通信网络包括一总线装置,该装置有若干控制线(与6相连)和若干数据(t1,t2,id,env,V0,V1,V2,V3),所有的线都与每个所说的存贮单元相连,并且一个控制装置6对于所有所说的存贮单元是共用的。
3.根据权利要求1或2的一种归约处理器,其特征是每个存贮单元(2;10;图4A,图4E)能包括执行归约操作所必须的所有信息。
4.根据权利要求3所述的一种归约处理器,其特征是所说的归约处信息还包括参考(VALUS/DES)至少一个其它的存贮单元该存贮单元的内容以三种结构(图6B,6G,7B,8B,图5A至5F)被所说的参考连接。
5.按照权利要求1到4的任何一个权利要求所述的一种归约处理器,其特征在于有至少一个称之为磁芯单元(2)的所说的存贮单元能够执行所有类型的归约,而其余的终之为目标存贮单元(10;图4A)的所说单元只能执行所有类型归约中的某些有限部分。
6.根据权利要求5所述的一种归约处理器,其特征在于所说的目标存贮单元包括在一相关联的存贮器中,该存贮器具有用于外部控制的第一总线装置(任何类型,Vr,cpb,Set.s,match,r/w.s,r/w.b,r/w.r,wand.a,wand.b,wor,s.a,reset.b,mode.a*mode.a*,prech,hamode.b,grant.b,prio等),和一个用于数据的第二存贮总线装置(t1,t2,id,env,V0,V1,V2,V3)包括几个用来存贮一个合成信息的目标存贮单元(10),在每个所说的目标存贮单元中的装置(16,17)用来至少存贮一个标记,对于所说的目标存贮单元,所说的标记至少包括选择状态(s)或非选择状态(s),用来进行查找在所说的目标存贮单元中所设置的所说标记的操作的装置,与所有的所说目标存贮单元相连接并可选择所说的若干目标存贮单元中的某个输出的优先权译码器(11)。
7.按照权利要求6所述的一种归约处理器,其特征是至少一条全局总线(12,13,14)被用于进行在所说的存贮单元之间的与和或类型的逻辑操作,以及在每个存贮单元中的装置(11)用来同所说的总线进行通信并控制所说的存贮单元去参与一种实际的逻辑操作。
8.按照权利要求6或7所述的一种归约处理器,其特征是在每个目标存贮单元中包括有若干个数据目标存贮字段(IDENTIFIERENVIRONMENT,VALUE/DES.0,VALUE/DES.1,VALUE/DES.2,VALUE/DES.3),每个数据目标存贮字段可存贮一数据字(名为num字),以及一个以特征字形式出现的标记。
9.按照权利要求6至8中的任何权利要求所述的一种归约处理器,其特征是在每个存贮单元中包括有至少一个指示在所说存贮器单元中的一个状态或多个状态的特征存贮字段(LAZY,WHERE,TYFE)。
10.根据权利要求5至9中的任何权利要求的一种归约处理器,其特征是所说的磁芯单元是一个运算单元,用来结构上的运算处理,包括a.至少一个用来将来自所说目标存贮单元和送到目标存贮单元的数据表输入和输出的输入/输出装置(V0,V1,V2,V3,id,env),b.若干寄存器(S0,0至S3,3,F0至F3,ID,ENV),每一个都宜于存贮一数据字,每个数据字具有一标记部分特征字以及一信息部分,数据字,所说的标记部分包括有一个指示上述寄存器是否处于使用状态的标记,每个所说的表是存贮在所说的予定寄存器中,所说的每个寄存器的标记部分在使用中被加上标记指示所说的表至少有一部分已存贮在实际的存贮器中,并指示部分存贮在所说寄存器中的表包括有一表指令,说明该表的类型及表的关系,c.控制装置(6)用来控制所说的寄存器和使用所说的属于存贮在所说寄存器中的表指令重新安排所说寄存中的表以及根据所说的表指令输入/输出寄存器的内容。
11.按照权利要求10的一种归约处理器,其特征在于被存贮在寄存器中的所说表被安排为树形结构表,其中之一的表为一个根表。
12.按照权利要求10或11的一种归约处理器,其特征是其中至少提供一个备用寄存器(ID),其中所存贮的树形结构表的识别符是可贮存的。
13.按照权利要求10至12中的任何权利要求所述的一种归约处理器,其特征是至少提供一个备用寄存器(ENV),其中被存贮的树形结构表的环境是可贮存的。
14.按照权利要求10至13中的任何权利要求所述的一种归约处理器,包括有一个寄存器矩阵(S0,0-S3,3),具有提供主寄存器的外围行(S0,0-S3,0),所说矩阵的列提供基寄存器。
15.按照权利要求14所述的一种归约处理器,其特征是包括若干提供外部所说矩阵的辅助寄存器(F0-F3)。
16.按照权利要求10至15中的任何权利要求的一种归约处理器,其特征是根据存贮的所说实际树形结构的电平,所说树形结构表的根表适于放置在不同寄存器的位置中。
17.按照权利要求10至16中的任何权利要求所述的一种归约处理器,其特征是如果它不代表一种功能应用,该信息应考虑执行的什么类型的归约可以从所说的根表的类型得,包括一个表明该指令执行和是否所说的类型不代表一种功能应用的指令代码,所说的根表的第一元素包括一个指令代码或表示一种功能定义的树形结构表的根,所说控制装置(6)适于从所说根表中得出所说信息。
18.按照权利要求10至17中的任何权利要求所述的一种归约处理器,其特征是所说寄存器在磁芯单元面中以片方式安置,各面最多包括来自寄存器的一个寄存器单元,各寄存器单元可存贮一位指令,在一个平面上的寄存器单元可相互连接。
19.按照权利要求5至18中任何权利要求所述的一种归约处理器,其特征是所说通信网络适于将来自于在所说目标存贮单元中的一个目标存贮单元的信息传送给由所说通信网络(6)所选择的所说磁芯单元(2)中的寄存器(ID,ENV,S0,0-S3,3,F0-F3)并将来自所说寄存器的信息传送给由通信网络所选择目标存贮单元中的一个或几个目标存贮单元。
20.按照权利要求5至19中的任何一个权利要求所述的一种归约处理器,其特征是,所说的通信网络(6)适于在所说磁芯单元和所说目标存贮单元的一个单元中的寄存器之间调动所说寄存器和所说存贮单元的内容来执行一个转换操作。
21.按照权利要求3至30中的任何权利要求所述的一种归约处理器,其特征是一个或几个所说的存贮单元(2,10)适于存贮一个闭包,该闭包是一个可执行的标志,在一个树形结构中的位置的标志,一个识别符的标志,一个环境的标志和一个树形结构数值的标志,所说的识别符,环境和每个单独的数值是所说的闭包中的元素。
22.按照权利要求8至21中的任何权利要求所述的一种归约处理器,其特征是包括在所说闭包中的树形结构数值包括片元素(即终止元素)和组合元素,每个组合元素包括一个状态和一个数值表。
23.按照权利要求8至22中任何权利要求所述的一种归约处理器,其特征是在所说闭包中的可执行的标志至少具有两个状态,第一状态是空闲状状态,第二状态是执行状态。
24.按照权利要求8至23中任何权利要求所述的一种归约处理器,其特征是在所说的闭包中的位置标志至少包括百种状态,第一状态是节点位置,第二状态是根位置。
25.按照权利要求8至24中任何权利要求所述的一种归约处理器,其特征是所说闭包中的每个单元由一个特征字和一个数字字所组成,所说的数字字由若干位组成,每位或者是真或者是伪。
26.按照权利要求12至25中的任何权利要求所述的一种归约处理器,其特征是所说的特征字被分为一个间接类和一个直接类。
27.按照权利要求8至26中的任何权利要求所述的一种归约处理器,其特征是所说的处理装置适于在代表整数表示的一个二进制字上使用第一编码和在代表浮点表示的二进制字上使用第二编码,进一步的特征是所说的编码在编码后与整数表示一样提供浮点表示。
28.按照权利要求8至27中的任何权利要求所述的一种归约处理器,其特征是一个整数适于用一格式化的二进制编码存贮在所说单元中,这样所有的数值都表示成从最小值到最大值的一系列数,每个数包括几个位值,其中O为放置在该系列数的中间,并且在它的最高有效位上一个二进制数具有真的二进制值,而在其余的位上具有伪的二进制值。
29.按照权利要求8至28中的任何权利要求所述的一种归约处理器,其特征是一个二进制编码浮点值表示包括有一个符号,指数符号和代码字段,一个指数字段和一个尾数字段,所说指数符号和代码字段在所说指数字段和尾数字段之间的一个分离位置上有一个指示,这样,指数和尾数字段具有可变的长度。
30.按照权利要求29所述的一种归约处理器,其特征是表示数字值字的字是由一个将所说的数字值表示成一密集形式的编码来提供的,也就是一个数值的编码表示只相应于一个说明值。
31.按照权利要求8至30中的任何权利要求所述的一种归约处理器,其特征是至少某些所说的闭包标志出现在不同的状态,每个状态由几个代表一个二进制代码的位所组成。
32.按照上述的任何权利要求所述的一种归约处理器,其特征是包括有一个数字运算单元在数字值元素上执行算术,逻辑和相关的操作,包括a.包括有一组总线的一个输出端,每一条总线由一个表中的一个表元素来提供操作,所说表包括在所说表中的与这些字有关的指令信息,b.与一组总线相连接的处理装置在所说表中的所说字上利用重写所说字的指令信息来执行一种操作,c.一适用于提供重写结果的输出包括有一组具有和一组输入总线一样的有相同数目和结构的总线。
33.按照权利要求3的一种归约处理器,其特征是至少一个所说表中的表元素包括有一个指令信息的表示并在提供在所说的输入总线组中的一条特殊总线上,被计算的数字值表示适于被提供在所说输入总线组的另外总线上,所说的处理装置适于执行一种重写在所说输入表中的数字值表示的计算。
34.按照权利要求32所述的一种归约处理器,其特征是有几个电路,每个电路都适于在所说的输入总线上在说的数字值表示中执行一种特定的操作,并以并联形式提供所述操作的结果,具有所说指令信息的控制驱动装置适于从所有执行实际指令的执行结果中选择所执行的结果。
35.按照权利要求34所述的一种归约处理器,其特征是所说的表适于包括一种功能应用,其中它的一个元素是一个指令代码,而其余的对所说的指令是自变量,所说的处理装置利用从所说输出端到输入端重写并循环所说指令码来执行一个指令直至获得一个最终的结果为止,在每次重新写入所说的处理装置时,如果对于实际运算是适当时,将所说表重新写入包括一修正的指令代码字中,如果适当时则还跟随数字字。
36.按照上述任何权利要求所述的一个归约处理器,其特征是若干个第一级处理器由一个网络将其彼此相连,所说的被连接的第一阶处理器相当于一个第二阶归约处理器。
37.按照上述任何权利要求所述的一个归约处理器,其特征是在每个第一阶归约处理器中的一个或几个所说的存贮单元适于存贮一个闭包,这个闭包是一个可执行的标志,在一个树形结构中一个树形位置的标志,一个识别符的标志,环境和在所说闭包中每个分离值是一个元素,在所说闭包中每个元素是由特征字和数字字组成,所说的数字字由若干位组成,每一位不是“真”就是“伪”,和所说的特征位被分为间接类和直接类,所说间接类元素的位形式被分为一区域部分和一地址部分。
38.按照权利要求37所述的一种归约处理器,其特征是几个第一阶归约处理器(FOP1.1′到FOPm,m′)被接入一个表示一个第二阶归约处理器的平方字段,在所说平方字段中的每个第二阶处理器包括一个通向在所说的平方字段中的每个相邻的第一阶归约处理器(图37A,37C和37D)的通道(CAN)。
39.按照权利要求38所述的一种归约处理器,其特征是所说的第二阶归约处理器按内部规定被分为若干区域(图37C),每个区域具有2n×2n第一阶归约处理器的尺寸,所说的区域在一个正规图形中被提供在相互连接的公共区,如像提供所说的第二阶的平方字段一样。
40.按照权利要求39所述的一种归约处理器,其特征是在所说的第二阶处理器中第一阶处理器各自相互连接,在所说的第二阶处理器中每个所说区域可按所说的第二阶处理器中所说区域的位置的内部定义在每一个方向上被置换半个区域。
41.按照权利要求39或40所述的一种归约处理器,其特征是至少有一个可参看的被提供有一个地址的间接元素被存贮在每一个区域中,所说的元素仅可参看为来自该区域中它所属的存贮单元。
42.按照权利要求37至40中的任何权利要求所述的一种归约处理器,其特征是某些所说的第一阶归约处理器连接在一个网络(NET1至NETn)体系中,每个网络是一总线。
43.按照权利要求37至42中的任何权利要求所述的一种归约处理器,其特征是某些所说的第一级归约处理器连接在一个网络体系中,每个网络是一个环(图39)。
44.按照权利要求37至43中的任何权利要求所述的一种归约处理器,其特征是某些所说的第一阶归约处理器连接在一个网络体系中,至少提供了两种类型的网络,第一种类型是总线,第二种类型是一个环(图40)。
45.按照上述任何权利要求所述的一种归约处理器,其特征是包括至少一个连接到所说快速存贮装置的端对装置(4,5,6),以及至少一个连接到至少一个端对装置的环境装置(7,8,9)。
46.按照权利要求45所述的一种归约处理器,其特征在于包括用来将在一个端对装置上所提供的信号顺序(图34和35)与存贮在至少一个存贮单元上的一个顺序相比较的装置,在所说的快速存贮装置中,所说的被存贮的顺序可能有不确定的顺序元素(S),和用来把所说的比较顺序重写为零的装置(CU,3)也就是如果该比较给出一个明显的差别,或者将比较顺序重新写为指定的顺序,则某些事物表现出矛盾。
47.按照权利要求46所述的一种归约处理器,其特征是所说的比较装置是在表元素的元定数的组上进行比较的。
48.按照权利要求46或47所述的一种归约处理器,其特征是包括用来提供所说信号顺序作为一个被取样的信号(图34)的装置(3,during;7,8,9),该被取样信号随时间变化并具有单独的取样周期,所说信号顺序是一个元素组的表,每一组包括一个持续时间以及在那个时间期间至少一个信号参量。
49.按照权利要求48所述的一种归约处理器,其特征是在一对中所提供的每组中的所说予置的表元素的数目是2,每一对包括一个时间和信号参量的组合。
50.按照权利要求45至50中的任何权利要求所述的一种归约处理器,其特征是在所说的快速寄存器中在一种结构中所提供的所说的目标存贮单元适于以一种摘要语法显式或隐式编码的形式来存贮计算机程序,所说的语法借助于表达式来描述若干不同的摘要目标,每个目标寄存单元至少能同时按适合的数据和/或程序结构的方式存贮所说的语法表达式的一部分。
51.按照权利要求44所述的一种归约处理器,其特征是若干第二阶归约处理器(SOPS),相互地地理伸展,形成一个第三阶归约处理器。
52.按照权利要求52所述的一种归约处理器,其特征是区域限制相关联的寻址适用于第二归约处理器(SOPS)和物理寻址适用于第三阶归约处理器。
53.按照权利要求52所述的一种归约处理器,其特征在于在第三阶归约处理器中的各区域分开的第二阶归约处理器(GSOP)包括跟随各GSOPS中的父面不是子的装置。
54.按照权利要求53所述的一种归约处理器,其特征在于所述的跟随非本地父的装置包括在本地目标存贮器中的一数据结构,所述数据结构对每一具有非本地父的子来说包括一个表,该表包括所考虑的子的非本地父的地址,该地址包括一个识别非本地父被存在第二阶归约处理器(GSOP)中的一个部分。
全文摘要
一种归约处理器,由具有一种结构的程序所控制,并且适用包括有不同归约类型的若干归约步骤来简化所说的结构,该类型的第一级处理器包括有一快速存贮器(1、2),依次包括a.多个快速存贮单元,每个快速存贮单元都有可能导致归约操作的执行,以及,b.一个通信网络,将每个归约的结果通知给所有与所述结果相连的存贮单元。
文档编号G06F7/38GK1062426SQ9110594
公开日1992年7月1日 申请日期1991年8月2日 优先权日1990年8月2日
发明者卡尔斯特·拉斯·冈纳 申请人:卡尔斯特电子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1