專利名稱:用于結(jié)構(gòu)運(yùn)算的運(yùn)算單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于結(jié)構(gòu)運(yùn)算的運(yùn)算單元。這種運(yùn)算單元下面稱之為磁心單元。
計算機(jī)是本世紀(jì)四十年代發(fā)明的。從那以后,計算機(jī)一直以革命性的速度發(fā)展著。但是盡管如此,今天的計算機(jī)與最初的計算機(jī)的結(jié)構(gòu)差不多是相同的。
人們對計算機(jī)作的改進(jìn)大多在硬件上。超大規(guī)模集成(VLSI)技術(shù)的引進(jìn)以及金屬版印刷術(shù)的提高使得把僅在五年前還被稱作超級計算機(jī)做成單片計算機(jī)成為可能。計算機(jī)的尺寸在以指數(shù)級縮小,現(xiàn)在的線寬也不大于1微米。時鐘頻率及有源晶體管的數(shù)量增加了幾個數(shù)量級。各種物理制約很可能把線寬限制在0.2微米左右。
與此同時,計算機(jī)結(jié)構(gòu)在使用硅材料這點(diǎn)上沒有得到改進(jìn)。相反為了工作得更快,大多數(shù)計算機(jī)使用多于最佳量的硅材料。
上面提到的這些事實(shí)將在以后五年中制約著單片處理器的速度的提高。人們還引用了并行處理器,但產(chǎn)生了因復(fù)雜性增加而導(dǎo)致硬件成本提高以及大多數(shù)類型的程序的編程成本上升過高等問題。
如果減小硬件成本,則新系統(tǒng)的編程成本就會顯著上升,不久就將達(dá)到極高的水平上。這兩者是相互關(guān)聯(lián)的。
一臺計算機(jī)是由不同的軟、硬件單元組成的一個復(fù)雜的集合,在其發(fā)展中的不同的過程和階段產(chǎn)生了(不管是特設(shè)的還是設(shè)立的)散布在系統(tǒng)中的各種標(biāo)準(zhǔn)。正是由于這種不一致性,計算機(jī)中才有大量的接口。
所有這些接口以及不同數(shù)量不同類型的適配都使用戶或者程序員使用機(jī)器時變得困難,因為使用這種機(jī)器需要很多知識。程序員也可能由于這種復(fù)雜性而引入隱藏錯誤。
但是,目前人們正在開發(fā)所謂的歸約處理器(reduction processor)。歸納處理器處理的程序具有某種包含運(yùn)算數(shù)表達(dá)式的結(jié)構(gòu),這種結(jié)構(gòu)在多個歸約步驟中得歸約。這樣,程序的執(zhí)行不是象其他類型的計算機(jī)中的那樣按一定的順序進(jìn)行的。
但是,要在一個有限的規(guī)模之上開發(fā)一個歸約處理器,還有不少困難。
第一臺電子計算機(jī)的開發(fā)也開始了適合于這類計算機(jī)的多個流程語言如FORTRAN.COBOL.Algol,BASIC,Pascal等的開發(fā)。這些語言被稱為命令語言(以下也叫做常規(guī)語言),之所以這樣叫主要是基于下面的事實(shí),即它們通常給出的程序由一系列被常規(guī)的計算機(jī)順序地加以執(zhí)行的命令或者指令組成,這里的常規(guī)計算機(jī)是指根據(jù)約翰·凡·紐曼(John Von Neumann)建立的原則而設(shè)計成的計算機(jī)。這些語言在使用上日趨明顯的不方便導(dǎo)致了另一組語言的開發(fā),這組新的語言有LISP,ISWIM,Scheme(LISP的一種“方言”)、ML、Hope、SASL等。開發(fā)這些語言的驅(qū)動力是概念簡潔,沒有一種具體的機(jī)器能夠影響設(shè)計。功能語言過了一定時間之后才受到人們的注意,一個原因是功能語言執(zhí)行起來很慢。以后的開發(fā)顯示,在某些情況下功能語言的執(zhí)行速度可以接近或者趕上由常規(guī)計算機(jī)執(zhí)行的常規(guī)(命令)語言程序的執(zhí)行速度,雖然功能語言程序并不是準(zhǔn)備由這類計算機(jī)來執(zhí)行的。
促使人們花費(fèi)大量努力來開發(fā)功能性語言的是命令語言在使用中日益明顯的不方便造成的。大約在1970年左右,有人開始談?wù)撥浖C(jī)。程序變得越來越復(fù)雜,通常它包含不少錯誤,難讀難理解,修改起來更難。原因之一是人們的這種“高級命令語言將簡化編程”的期望過高,現(xiàn)在看來這些語言并未達(dá)到這樣的高度。命令語言還是只適合于最初的計算機(jī)概念即約翰·凡·紐曼的那種計算機(jī),其編程級別還是相當(dāng)接近于機(jī)器級。而功能性縮程語言具有幾個性質(zhì)能夠消除這些常規(guī)編程語言的一些缺點(diǎn)。
為了提供附加信息以便加深理解,我們推薦“使用標(biāo)準(zhǔn)ML進(jìn)行功能編程(Functional Programming Using Standard ML)”一書,作者愛克·韋克斯特姆(Ake Wikstrom),Prentice Hall 1987。
為了充分理解本發(fā)明的目的和優(yōu)點(diǎn),重要的要了解計算中的一個功能性方案包括什么,特別是它與歷史上更流行的命令性方案相比較而言時包括什么。
“功能性方案”這一名稱是稱用功能性語言寫成的。在一臺包含有特別適合于這些語言的硬件計算機(jī)上存貯、執(zhí)行的程序,而“命令性方案”這一名稱是指用命令語言寫成的、在一臺包含有適合于命令語言的硬件的計算機(jī)上存貯、執(zhí)行的程序。
但是,在一臺經(jīng)典計算機(jī)上存貯并執(zhí)行用功能性語言寫成的程序是可能的,反過來也是可能的,即用命令語言寫成的程序也可以在一臺適合于執(zhí)行用功能性語言寫成的程序的計算機(jī)上執(zhí)行。
一個用功能語言寫成的程序可以看成是目標(biāo)性質(zhì)的定義和計算規(guī)則的集合。上述的定義是說明部分,計算(或者叫歸納、改寫)規(guī)則是計算機(jī)在執(zhí)行期間使用的操作部分。功能語言提供了一個與計算機(jī)的更高級別的接口,使程序員能夠脫離開計算機(jī)中與硬件有關(guān)的技術(shù)細(xì)節(jié)。功能性程序的一個有益的副作用是程序通常較短,也比通常的命令程序容易理解。功能語言的一個主要缺點(diǎn)是功能性程序要在一臺經(jīng)典計算機(jī)上執(zhí)行的活動必須先轉(zhuǎn)換成命令語言,這通常是由編譯程序或者解釋程序完成的。因此,很顯然,功能性方案的某些優(yōu)點(diǎn)由于下面的事實(shí)而被抑制,即現(xiàn)在還不存在能夠有效地存貯并執(zhí)行功能性程序的專門硬件。
本發(fā)明的目的在于提供一種有源存貯器中的特殊的有源存貯單元(以下稱之為磁芯單元),該單元能夠執(zhí)行所有類型的歸納運(yùn)算,上述的有源存貯器中也包含只能夠執(zhí)行有限的一部分歸納運(yùn)算的其它類型的存貯單元。雖然數(shù)值運(yùn)算可以在與磁芯單元相連的數(shù)字算術(shù)邏輯單元(數(shù)字ALU)中進(jìn)行,但是實(shí)際的歸納操作可以在磁芯單元中進(jìn)行。
本發(fā)明的另一個目的是提供一種能與一個包含有限的存貯單元的最好是一個相聯(lián)存貯器協(xié)同工作的磁芯單元,該單元是唯一與上述的相聯(lián)存貯器具有交換信息的直接通道的單元。
本發(fā)明還有一個目的在于提供一種能存貯一個表達(dá)式的多個級別的磁芯單元。存貯在磁芯單元中的表達(dá)式的基本指令可以在磁芯單元中被執(zhí)行。
本發(fā)明的另一個目的在于提供一種用于結(jié)構(gòu)運(yùn)算(即歸約計算機(jī)程序給出的結(jié)構(gòu)的運(yùn)算)的磁芯單元),其中單元中的表達(dá)式的規(guī)模與執(zhí)行中涉及到的表示圖中的分支相對應(yīng)。一臺經(jīng)典類型的計算機(jī)可以裝在一個用于結(jié)構(gòu)運(yùn)算的磁芯單元,在使用基于結(jié)構(gòu)運(yùn)算概念的那類編程語言(如LISP=List Processing Language)或者任何其他的功能性或者說明性語言時這將發(fā)揮出特別的優(yōu)點(diǎn)。LISP語言特別適合于處理和運(yùn)算清單或者由清單建立的結(jié)構(gòu),在人工智能領(lǐng)域內(nèi)(如建立一個專家系統(tǒng)時)使用很普遍。在符號代數(shù)、VLSI設(shè)計、計器人、自然語言理解等方面也有使用。在這些場合下,磁芯單元可以是通過改寫和/或歸納對這些清單進(jìn)行處理的裝置。
一個執(zhí)行的程序可以表示成由幾個閉包組成的方向圖,程序的每一部分都可以由一個閉包(Closure)來表示。在執(zhí)行過程中,這個閉包方向圖根據(jù)所使用的語言的歸約規(guī)則被逐漸歸約。一旦沒有可執(zhí)行的閉包留下時,程序的執(zhí)行也就結(jié)束了。閉包方向圖也可以被視為一種樹結(jié)構(gòu),樹上的每個結(jié)點(diǎn)都是一個閉包,最高的結(jié)點(diǎn)叫做樹根。歸納處理通常是通過從根而上歸約樹結(jié)構(gòu)而執(zhí)行的,即先歸約樹中那些離樹根最遠(yuǎn)的部分,再一直徑上直至樹根。這種執(zhí)行方式一般被稱作需求驅(qū)動執(zhí)行方式,意思是說如果程序中的某個部分的執(zhí)行取決于其它部分的執(zhí)行結(jié)果的話,那么該部分程序的執(zhí)行將一直延遲到上述結(jié)果能得到時為止。
下面的表中列出了本說明書中所用到的一些術(shù)語及它們的保留意義元素 數(shù)據(jù)結(jié)構(gòu)中較大的部分,清單 一個有順序的元素序列,每個元素反過來又可以是一張清單;
被插入清單 一張清單的一部分,小到足以全部存入一個閉包中能表示任意長的清單,閉包 定義一個過程的呈分層結(jié)構(gòu)的一個整體。所有的閉包都有一個能唯一定義該閉包的根。在歸約機(jī)器上進(jìn)行的歸約工作是針對閉包進(jìn)行的。機(jī)器的整個狀態(tài)能被歸約所轉(zhuǎn)換。
目標(biāo)存貯器 包含存貯著目標(biāo)的存貯單元的存貯器。比方說一個相聯(lián)存貯器。
存貯單元 目標(biāo)存貯器中的一個單元,它存貯一個單元閉包,也可能用來指存貯在其它存貯單元中的其他單元閉包。
單元閉包 一個存貯單元中的內(nèi)容存貯單元段 存貯單元中的一個數(shù)據(jù)段閉包元素 存貯在存貯單元段中的一個數(shù)據(jù)元素,閉包識別符 唯一指定一個閉包的閉包單元元素,歸范閉包 一個不能被再歸約的閉包,亦即不包含任何指示著其它單元閉包的閉包識別符的單元閉包,上述的其它單元閉包有可能被進(jìn)一步歸約。
目的 一個待執(zhí)行即待歸約的閉包,父包 在數(shù)值/指示段中至少有一個閉包識別符的閉包,
子包 通過指示著它的一個閉包識別符與另一個閉包相連的閉包。
一個子包也可能又是一個父包,一個父包也可能是一個子包;一個子包可以有多個父包,一個父包可以有多個子包。
閉包位置 閉包是根還是結(jié)點(diǎn),根 一棵閉包樹中處于最高位置上的閉包單元結(jié)點(diǎn) 閉包樹中不是樹根的閉包單元,位置 包含閉包位置的存貯器單元段類型 單元閉包中的類型碼,亦即表示目標(biāo)性質(zhì)的位組合格式,如指令碼,單元閉包中一個元素,用來指示它是可執(zhí)行的、延遲評價的還是待用,識別符 用來代表存貯在存貯單元中的目標(biāo)的特殊類別的一種閉包元素,環(huán)境 通過給目標(biāo)予相同的環(huán)境而把目標(biāo)分組,數(shù)值/指示 指存貯著簡單數(shù)值(如直接表示)、空白、或者至另一個閉包的指定值(即間接表示)的閉包元素,磁芯單元 指根據(jù)本發(fā)明的結(jié)構(gòu)運(yùn)算單元,該磁芯單元能執(zhí)行與歸納閉包有關(guān)的結(jié)構(gòu)運(yùn)算,數(shù)值A(chǔ)LU 指能夠執(zhí)行基本的數(shù)值和邏輯運(yùn)算的數(shù)值運(yùn)算單元,上述的磁芯單元使用該數(shù)值A(chǔ)LU進(jìn)行數(shù)值運(yùn)算,全寄存器 伸展至一個磁芯單元中的所有平面上的寄存器,磁芯字 磁芯單元中一個全寄存器中的內(nèi)容,有限寄存器 指磁芯單元中伸展至有限量的平面的寄存器,這些有限量的平面包括一個數(shù)值/指定類的閉包單元元素,元素字 指一個有限寄存器或者與該有限寄存器具有相同的伸展?fàn)顩r的部分全寄存器的內(nèi)容,數(shù)碼(num)字 指表示一個數(shù)值或者指示值的元素字的一部分,特征字 指具有指示出上述的數(shù)碼字的表示特性的特征值的元素字的一部分,歸約 指根據(jù)所用的具體編程語言的規(guī)則對一個閉包進(jìn)行改寫/重建。
本發(fā)明的主要目的由一個結(jié)構(gòu)運(yùn)算處理方法來實(shí)現(xiàn)。該方法包括a)把數(shù)據(jù)字存貯在多個寄存器中,每個數(shù)據(jù)字都有一個標(biāo)志部分和一個信息部分,上述的標(biāo)志部分中都有一個指示著該寄存器是否在使用中的標(biāo)志。
b)上述的數(shù)據(jù)字被安置在許多清單(list)中,把每個這樣的清單存貯在預(yù)定數(shù)量的寄存器中,存貯在寄存器中的上述清單中每個上述字中的標(biāo)志部分在使用中用來指示一個上述的表至少有一部分存貯在實(shí)際寄存器中、一部分存貯在上述實(shí)際寄存器中的上述清單包括一個list(列表)指令、它是一種什么種類的清單以及這些清單間的關(guān)系從這些清單在上述寄存器中的分配的哪一部分來看是清楚的,c)控制上述的寄存器,使用屬于存貯在上述寄存器中的清單中的上述列表指令在上述的寄存器中重新安排上述的清單,并根據(jù)上述的列表指令輸入/輸出寄存器中的內(nèi)容。
本發(fā)明的用于進(jìn)行結(jié)構(gòu)運(yùn)算處理的運(yùn)算單元包括a)至少一個用于輸入/輸出數(shù)值清單的輸入/輸出裝置,b)多個寄存器,每個這樣的寄存器都能用于存貯一個數(shù)據(jù)字,每個數(shù)據(jù)字都有一個標(biāo)志部分和一個信息部分,上述的標(biāo)志部分包含一個標(biāo)志,該標(biāo)志指示出所述及的寄存器是否在使用中,每個上述的清單均能存貯在預(yù)定數(shù)量的上述寄存器中,每個存貯在寄存器中的上述字的標(biāo)志部分在使用中用來指示一個上述的清單至少有一個部分存貯在實(shí)際寄存器中,一部分存貯在上述實(shí)際寄存器中的上述清單包括一個列表指令,該清單的種類是什么,以及清單之間的關(guān)系從這些清單在上述寄存器的分配中的哪一部分看是清楚的。
c)控制裝置,用于控制上述的寄存器,并使用屬于存貯在上述寄存器中的清單中的上述列表指令來在上述寄存器中重新安排這些清單,并根據(jù)上述的列表指令輸入/輸出寄存器的內(nèi)容。
清單最好以清單樹的形式存貯在上述的寄存器中,其中有一個清單作為根清單。這個被存貯了的清單樹的識別符最好存貯在一個分離的識別符寄存器中。被存貯的清單樹的環(huán)境被存貯在一個分離的環(huán)境寄存器中。該樹的根清單最好被放置在不同的寄存器中,視被存貯的上述的實(shí)際樹的級別而定。一些寄存器被安置成一個包括一行主寄存器的基寄存器矩陣。一個只包含一個級別的樹被存貯在一個主寄存器中。一個包括二個提供根清單的級別的樹最好存貯在上述主寄存器中,其樹枝清單存貯在基寄存器中。在上述的矩陣之外還可以安置另一組附加的寄存器,稱作輔助寄存器。包含三個級別的樹最好存貯在上述的輔助寄存器中,把它的一個元素存貯在上述的寄存器矩陣中。
清單樹的根清單可以被劃分成許多元素,控制裝置可以從根清單的第一個元素中推出這樣的信息即要進(jìn)行什么類型的歸約;其它元素表示待歸約的數(shù)據(jù)。上述根清單的第一個元素中的信息可以包括一個指令碼(控制裝置將用這個指令碼推導(dǎo)出要執(zhí)行的是什么種類的指令),也可以表示代表函數(shù)定義的一個清單樹的根,控制裝置將用這個信息來推導(dǎo)出為歸約根清單而要采取的行動。
上述樹清單的第一個元素中的信息可以包括一個代表函數(shù)定義的樹的根。
一個清單中的字的最大個數(shù)最好為四。上述清單樹的最大深度最好為三級。如果深度為三級,并且存貯在上述寄存器中的上述根清單中的列表指令指示出上述的根清單具有一個或多個分支,控制裝置在寄存器中存貯上述分支中的一個。
結(jié)構(gòu)運(yùn)算是在存貯在寄存器(如基寄存器、主寄存器或者輔助寄存器)中的目標(biāo)數(shù)據(jù)上提供的。
上述寄存器中的數(shù)據(jù)堆棧最好設(shè)置成一種分片方式,這樣每個數(shù)據(jù)堆棧中具有相同位置的每個堆棧位元素可以在一個包含了所有屬于所有的上述寄存器(這些寄存器在上述的位置上都有一個堆棧位元素的堆棧元素的平面內(nèi)逐位地連接起來。一些寄存器具有比較長的堆棧這樣,一些平面只具有屬于這些較長寄存器的堆棧位元素。
至少一部分寄存器(即稱作為基寄存器的寄存器)在一個由N×N個寄存器構(gòu)成的矩陣中安置成許多行和列,這里N為一個整數(shù)這些基寄存器中的堆棧元素被逐位連接起來。對于上述基寄存器堆棧中的每一位而言,每一列被提供一根列線,每一行被提供一根行線,在每個具有相同的列和行號的上述列線和行線的交點(diǎn)上都提供了一個可控開關(guān)。每個基寄存器至少與最近的行線和列線具有可控的寄存器連接。沿行和沿列相鄰的基寄存器之間也提供了連接??刂蒲b置對這種可控開關(guān)和可控寄存器連接進(jìn)行控制,根據(jù)待執(zhí)行的指令的種類進(jìn)行下列三類連接中的至少一類a)從一個寄存器到另一個寄存器在一個方向上的連接,b)寄存器之間在二個不同方向上的分離的連接,c)寄存器之間的時分連接,其中被存貯的清單元素的傳輸可以先在一個方向上進(jìn)行,在二個后續(xù)相位之間又在另一個方向上進(jìn)行。
寄存器堆棧中的每個單元最好包括a)一個內(nèi)部的一位寄存器b)至少一根能與上述的一位寄存器相連的一線點(diǎn)線,c)至少一個可控的內(nèi)部連接,每個內(nèi)部連接都包括一個可由控制裝置加以控制的開關(guān),該開關(guān)使上述的至少一根一線點(diǎn)線中的一根能與下列元素中的一個相連那該單元之外的點(diǎn)線以及屬于另一個寄存器堆棧的單元中的一個。上述的至少一個內(nèi)部一位寄存器可以包括一個輸入緩沖裝置(如一個反相器)和一個輸出緩沖裝置(如反相器),以及連接在上述的緩沖裝置之間的可控開關(guān)。上述的輸入緩沖裝置和輸出緩沖裝置可以通過上述的可控開關(guān)分別與上述的至少一根一線點(diǎn)線相連。
一些寄存器單元具有固定的、與寄存器的位置有關(guān)的值,這些值被連接到不屬于上述內(nèi)部寄存器的連接之一的上述的至少一個內(nèi)部連接上。
可以連接上一個比較器對上述部分寄存器中的內(nèi)容加以比較,再把比較結(jié)果提供給稱為之訪問的外部總線中的一個線上。
如果結(jié)合附圖來參閱下面的描述,可以更全面地理解本發(fā)明以及本發(fā)明的其它一些目的及優(yōu)點(diǎn)。附圖中,
圖1.概略地示出了歸納處理器的結(jié)構(gòu),該處理器中包括了根據(jù)本發(fā)明的磁芯單元,圖2A.示出了一個能夠存貯一個單元閉包的存貯器單元,圖2B-2D.示出了可以用在本發(fā)明的磁芯單元的實(shí)施例中的磁芯寄存器,圖2E.示出了磁芯單元實(shí)施例中的磁芯寄存器的一種可能的結(jié)構(gòu),圖3A至3F.示出了本發(fā)明的磁芯單元中的不同的數(shù)據(jù)存貯形式,圖4、5和6.示出了本發(fā)明的磁芯單元中的運(yùn)算實(shí)施,圖7.示出了本發(fā)明的磁芯中的第一類運(yùn)算平面的第一個實(shí)施例,圖8.概略地圖7中的第一類工作平面的具有各類可能的連接的一個完整的寄存器單元的設(shè)計實(shí)施例,圖9A至9F.示出了寄存器單元中使用的不同種類的元件的實(shí)例,圖10和11 示出了圖7中的第一類運(yùn)算平面中不同的寄存器單元的設(shè)計示意圖,
圖12.示出了本發(fā)明的磁芯單元中的第二類運(yùn)算平面(屬性平面)的第一個實(shí)施例的方框圖,圖13至15,概略地示出了圖12中的第二類運(yùn)算平面中的不同的寄存器單元的設(shè)計,圖16至17,示出了寄存器單元之間進(jìn)行交換的兩個例子,圖18至24,示出了多個不同的在磁芯單元之間進(jìn)行數(shù)據(jù)傳輸?shù)膶?shí)例,圖25,示出了本發(fā)明的磁芯單元中的第一類運(yùn)算平面的第二個實(shí)施例的方框圖,圖26,概略地示出了運(yùn)算平面中寄存器單元的第二個實(shí)施例的設(shè)計圖。
在圖1中,磁芯單元被表示為包含在一個單歸約處理器(即可以作為一個更為復(fù)雜的歸約處理器的一部分的比較簡單的歸約處理器)的實(shí)施例中。從圖1中可以清楚地看出這種歸約處理器的結(jié)構(gòu)。值得注意的是它的設(shè)計可以是相當(dāng)不同的,比方說磁芯單元的各個平面在芯片上可以并排設(shè)置,也可以設(shè)置與圖示情況不同的并列層次。
圖1中的單歸約處理器包括一個具有多個磁芯寄存器3P的磁芯單元2P。和一個目標(biāo)存貯裝置4P。該目標(biāo)存貯裝置4P包括許多存貯器存貯單元,其中的每一個都存貯一個單元閉包,最好也能提供有限的歸約運(yùn)算集。如果圖1中的單歸約處理器是一個包括多個單歸約處理器的更為復(fù)雜的歸約處理器的一部分,那么還應(yīng)包括在這多個處理器之間進(jìn)行通訊的處理器網(wǎng)絡(luò)數(shù)據(jù)交換裝置5P。這個數(shù)據(jù)交換裝置5P包括多個用于臨時地保存單元閉包從而把單元閉包傳送給另一個單處理器的寄存器。由于轉(zhuǎn)換裝置5P不是本發(fā)明中的實(shí)際磁芯單元的一部分,因此對它不再進(jìn)行描述。
上述的處理器還包括一個用于控制磁芯單元2P中的各元素的控制單元6P和一個數(shù)值A(chǔ)LU 1P。控制單元6P是一個布爾門電路陣列,在磁芯單元將要處理的閉包的內(nèi)容加以處理??刂茊卧?P和數(shù)值A(chǔ)LU都不是本發(fā)明的實(shí)際部分。因此對它們不再進(jìn)行詳細(xì)描述,只是在下面結(jié)合實(shí)施例來描述送往和來自它們的信號。對于有關(guān)控制單元的設(shè)計方向的進(jìn)一步信息,我們推薦由卡佛·米特(Carver Mead)和賴恩·肯威(Lyhn Conway)所著的Addison Wesley出版公司在1980年出版的“VISI系統(tǒng)導(dǎo)論(Introductions to VLSI System)”一書。
磁心寄存器具有一種從目標(biāo)存貯裝置4P推導(dǎo)出的結(jié)構(gòu)。一個目標(biāo)存貯裝置單元中可以只存貯一個一級結(jié)構(gòu)即一個單元閉包。磁心寄存器通過一根總線與目標(biāo)存貯裝置相連,上述的總線寬度足以轉(zhuǎn)送一個一級結(jié)構(gòu)(即單元閉包)。然而,磁心單元可以含有和包括一個((最高的)三級結(jié)構(gòu)。這樣就有四種情況,即一個0.1.2或3級目標(biāo)結(jié)構(gòu)可以存貯在磁心單元中。正象下面要解釋的那樣,如果存貯的是一個三級目標(biāo)結(jié)構(gòu),那么只是它的最高級別(樹根)和一個分支被存貯,不然的話,存貯的就是所有的級別。
磁心單元作為一個整體是一個用于結(jié)構(gòu)運(yùn)算的運(yùn)算裝置,它包含幾個磁心寄存器3P。這些磁心寄存器中存貯著多個清單的樹結(jié)構(gòu)。每個清單包括多個字。這些寄存器(有限寄存器)中的一部分能單獨(dú)存貯一個元素字,一個元素字包括一個數(shù)值字和一個特征字。特征字指示出數(shù)值字的表示特性。舉個例子來說,如果數(shù)值字代表的是一個值,那么,特征字就指示出該數(shù)值字中包含的值的種類(比方說它是整數(shù)還是浮點(diǎn)數(shù)還是其它別的數(shù))。磁心單元一次只能處理一定長度的清單,視它們裝的寄存器的多少而定。用來存貯一個清單的寄存器數(shù)量最好為4個,這意味著被存貯的表可以有4個或小于4個的元素。舉個例子來說,一個寄存器可以包括一個占據(jù)32位的數(shù)值字和一個6位的特征字。在這種情況下,一個具有四個元素的清單將占據(jù)4×38位。
但是,注意長的清單也可以被處理,只是這時每個清單必須被分割成多個長度等于或小于磁心單元能處理的最大長度。磁心單元一次只能處理具有一定深度的樹。具有很大深度的樹也可以處理,只是一次只能在磁心單元中存貯長度有限的一部分樹,也就是說,一次只能處理樹的一部分。
目標(biāo)存貯裝置(最好是相連存貯器)4P通過一個完成信號適配的轉(zhuǎn)換接口9P和一個具有閉包寬度的總線8P與磁心單元實(shí)現(xiàn)互連。總線8P為一條部分總線OBJV(垂直目標(biāo)總線)與寄存器平面NUM相連、部分總線TAG與寄存器平面HBAD相連的總線,因此,它是一條能傳送一個一級結(jié)構(gòu)的總線。接口9P把通過閉包寬度的總線OBJ 8P從磁心寄存器3P送來的信號加以放大、轉(zhuǎn)換成適合于目標(biāo)存貯器中的存貯單元的信號。它也將在讀取操作中來自目標(biāo)存貯裝置的信號加以放大、轉(zhuǎn)換成適合于磁心單元寄存器的信號。雖然該接口在圖中被表示成位于目標(biāo)存貯裝置4P中,它也可以與磁心單元做在一起。但是,接口9P可以不認(rèn)為是本發(fā)明的磁心單元的一部分,因此這里不再加以敘述。
從圖中可以清楚地看到,磁心寄存器可以分幾個標(biāo)為平面NUMHEAD、BOOL、TYPE、WHERE、LAZY.CLOS/SIMPLE的部分。不同的部分包含不同數(shù)量的平面。為簡潔易讀起見,圖1中只示了少數(shù)幾個平面。在下面的描述中,TYPE、WHERE、LAZY及OLOS/SIMPLE平面被稱作屬性平面。
數(shù)值字可以存貯在寄存器平面NUM中,而特征字則可以存貯在寄存器平面HEAD中。這里可以有(比方說)32個NUM平面的和6個HEAD平面。
在圖1所示的處理器實(shí)施例中,可以有(比方說)5個TYPE寄存器平面、1個WHERE寄存器平面、2個LAZY寄存器平面和1個CLOS/SIMPLE寄存器平面。下面將對磁心寄存器的工作情況進(jìn)行描述,從這些描述中可以清楚地看出將要存入上述平面的那些磁心寄存器部分中的信息。
為了介紹磁心單元的開發(fā)裝置,我們想描述一下在開發(fā)本發(fā)明的磁心單元之前被開發(fā)的特殊目標(biāo)存貯裝置4P,該裝置在第 號未決美國申請中得到了進(jìn)一步的描述。另外,還可以看到本發(fā)明的用于結(jié)構(gòu)運(yùn)算的運(yùn)算單元邊可以與更普通種類的計算和存貯裝置相連。還可以注意到本發(fā)明的磁心單元是一種只執(zhí)行結(jié)構(gòu)運(yùn)算的裝置,它使用數(shù)值運(yùn)算單元(數(shù)值A(chǔ)LU)來執(zhí)行數(shù)值運(yùn)算。這就是說,給一個處理器裝上一個既執(zhí)行數(shù)值運(yùn)算又能執(zhí)行部分結(jié)構(gòu)運(yùn)算的算術(shù)/邏輯單元,這個先有技術(shù)中的ALU并不為結(jié)構(gòu)和數(shù)值運(yùn)算而劃分成不同的功能部分。在使用通常的ALU時,為了執(zhí)行與在磁心單元中執(zhí)行的結(jié)構(gòu)運(yùn)算等效的操作,還需要一個小程序。
目標(biāo)存貯裝置4P比一般的RAM型具有更多的靈巧性。它是一種相聯(lián)存貯裝置,它能提供比普通的RAM型存貯器提供的“讀”和“寫”操作還要多的服務(wù)。
目標(biāo)存貯裝置被劃分成許多存貯單元,每個存貯單元包括多個存貯元素。它們提供的服務(wù)級別是很高的。舉個例子來說,只用一個存貯器指定,它就能在各個存貯單元中找到一個特定的數(shù)值單元的所有出現(xiàn)場合,不管它們在何處;同時能全局地即在整個目標(biāo)存貯裝置的范圍內(nèi)把找到的特定數(shù)據(jù)單元改寫成一個新值。由于該目標(biāo)存貯裝置是關(guān)聯(lián)的,因此,這種改寫操作不管影響到多少個存貯裝置單元,都可以在二個物理存貯器周期內(nèi)完成。
圖2A中給出了一個存貯裝置單元的實(shí)施例。它能存貯二類閉包單元,包括特別適合于待存貯的各元素的多個段。在圖2中,這些段被賦予了與將要存貯在其中的元素相同的名字。
第一類元素描述存貯單元的各種不同狀態(tài)。一個這類的元素是LAZY,由它指明該單元是空閑(此時該單元中的其他內(nèi)容將被視為無效信息)、執(zhí)行(即處于可執(zhí)行狀態(tài))。還是等待(即對該單元的數(shù)值必須延遲,在它被執(zhí)行之前必須等待別的結(jié)果。另一個第一類元素為TYPE,它包括一個類型碼(可以是Par、Seq、apply list、unify等等)。這些第一類的元素適合于存貯在平面LAZY、WHERE和TYPE中的磁心寄存器部分中。另外,這個磁心單元還裝有一個稱作“CLOS/SIMPLE”的附加平面,用于提示寄存器中的信號是一個閉包還是一個簡單值。
第二類閉包單元描述識別符、環(huán)境或數(shù)值。它們是IDENTIRIERENVIRONMENT、VALUE/DES。這些第二類的元素適合于存貯在平面HEAD和NUM中的磁心寄存器部分中。這些元素中的每一個都包含一個元素字,該元素字反過來又被劃分成一個存貯在芯心單元的NUM平面中的數(shù)值字和一個存貯在芯心單元的HEAD平面中的特征字。
第二類閉包單元具有一個指示上述的數(shù)值字的特征的特征字。這個特征字有兩種類型即用作識別符和環(huán)境的間接特征字和用作簡單字等的直接特征字。間接特征字的實(shí)例有CIS,canon和open。如果特征字是CIS,則意味著數(shù)值字代表可以歸約的閉包包。如果特征字為canon,則意味著數(shù)值字表示一個不能被進(jìn)一步歸約的閉包。如果特征字是open,則意味著數(shù)值字表示的閉包是一個插入清單。直接特征的實(shí)例有discr,Cont,unused和nothing。如果特征字為cliscr,則意味著數(shù)值字是一個整數(shù)。如果特征字為cont,則意味著該數(shù)值字是一個浮點(diǎn)值。如果特征字為unusel,則意味著該數(shù)值字沒有意義,如果特征字為nothing則意味著該數(shù)值字表示空值,即達(dá)成這樣的一致,一個閉包如果有一個段為空值,則永遠(yuǎn)表示空值。
如果一個存貯單元的識別段中包含一個識別元素,該存貯單元中的處理狀態(tài)可以轉(zhuǎn)送到芯心單元。每一個存貯單元段VALUE/DES中都可以包括一個指示另一個單元閉包的識別符,從而與上述的另一個單元提供一種連接。被存貯的閉包的集合可以看成一種由識別符保持在一起的單元閉包的方向圖或者叫樹。
環(huán)境段中可以包括一個識別符,該識別符提示著提供該閉包的環(huán)境的閉包網(wǎng)絡(luò)部分(即樹)中的根閉包。但是,環(huán)境段也可以有其他用途。通過在所有被建立的單元閉包的環(huán)境中存貯建立程序的識別符,可以用環(huán)境來跟蹤一個結(jié)構(gòu)的建立程序。比方說,在具有相同名稱的符號表示相同的東西的子樹中,所有的閉包單元可以通過具有相同的環(huán)境而被分組。這樣,僅在一個操作內(nèi)就可以從樹的一個閉包訪問直至樹根的整個結(jié)構(gòu)。由于環(huán)境不影響磁心單元中執(zhí)行的操作,因此它不是本發(fā)明的一部分,對它下面不再進(jìn)行描述。
這樣,一旦給定一個閉包的環(huán)境,就可以找出該環(huán)境中的樹根閉包。一個環(huán)境的樹根閉包在其存貯單元的WHERE字段中具有一個特殊標(biāo)記(例如“1”)。而一個環(huán)境的結(jié)點(diǎn)閉包在WHERE字段中具有另一個標(biāo)記(比方說“0”)。
可用于本發(fā)明的磁心單元的實(shí)施例中的寄存器示于圖2B至2D中,用于本發(fā)明的實(shí)施例中的寄存器的結(jié)構(gòu)被示于圖2E中。
圖2B中示出了一個寄存器。從該圖可看出,一個寄存器由多個寄存器單元組成,每個單元可以存貯一位信息。該圖的描制方式想表示一個寄存器伸展至磁心單元中不同的平面上,每個寄存器單元位于一個平面上。
圖2C示出了一個伸展至該磁心單元中所有平面上的一個寄存器(即一個全寄存器)。這類寄存器可以在位于NUM和HEAD平面中的寄存器單元中保存一個識別符或一個值,在位于BOOL、TYPE、WHBRE、LAZY和CLOS/SIMPLE平面中寄存器單元中想可以保存一個上面描述過的狀態(tài)。
圖2D示出了只伸展至磁心單元的NUM和HEAD平面的一個寄存器(即一個有限寄存器)。
圖2E示出了磁心單元的實(shí)施例中的寄存器的一種可能的構(gòu)造。磁心單元有許多最好排列成一個正方形(稱之為基寄存器陳列)的多個基寄存器。這些基存貯器沿著它的一邊有一個主行,稱作主寄存器。在其底部都有一個主寄存器的每個基寄存器列叫做子寄存器。芯心單元也可以裝有一個識別符寄存器和一個環(huán)境寄存器。在基寄存器矩陣的一邊設(shè)置有一行輔助寄存器。
在磁心單元的實(shí)施例中,所有的基寄存器除了主寄存器之外都可以是圖2D中所示的那種類型(即有限寄存器),圖2E中的其他寄存器可以是圖2C中所示的那種類型(即全寄存器)。
在詳細(xì)描述磁心單元的硬件結(jié)構(gòu)之前,先根據(jù)圖3A至3F描述一下數(shù)據(jù)的不同存貯形式,并參考圖4A至4H,5A至5G和6A至6G給出其操作實(shí)例。
如圖3A所示,作為歸約結(jié)果的簡單值25位于主寄存器的一個特殊寄存器中。上述的結(jié)果可以是一個單元閉包的一部分。
進(jìn)行歸約時,裝入磁心單元中的是一個目標(biāo)。如圖3所示,一個只包括一個一級結(jié)構(gòu)(通常是一個不參考其他單元閉包的閉包)的目標(biāo)存貯在主寄存器中。本實(shí)例表示了一個簡單的數(shù)字運(yùn)算,即把數(shù)值1,2和3相加。數(shù)值指令“+”存貯在第一主寄存器中,待處理的元素存貯在其他主寄存器中。
如圖3C所示,一個包括一個二級結(jié)構(gòu)的樹可以使它的根清單((作為父)水平地存貯在主寄存器中,使清單(作為子)垂直地存貯在基寄存器中。在本實(shí)例中,具有清單表示((12)(34)),而結(jié)構(gòu)存貯在基寄存器矩陣中。根清單(如子表中的最初元素加1,3)存貯在主寄存器中,而子清單(即(12)和(34)則垂直地垂直在子寄存器中。此外,下面將參照圖4給出這類存貯裝置的進(jìn)一步實(shí)例。
如圖3E所示,包含一個三級結(jié)構(gòu)的目標(biāo)樹使它的樹存貯在一個輔助寄存器中,使它的單一的子節(jié)點(diǎn)存貯在主寄存器中。在圖3D中,目標(biāo)樹的樹根(指令Transpase)存貯在一個輔助寄存器中,其子節(jié)點(diǎn)(即清單(id1,id2,id3)存貯在主寄存器中。清單中的每個元素反過來又可以是有“子層”的“父層”。在圖3E中,這些兒子被垂直地裝入基寄存器中,即id1與它表示的清單(123)相交換,id2與它表示的清單(11 12 13)相交換,id7與它表示的清單(27 22 23)相交換。
如圖3F所示,一個以流水線格式存貯的樹被裝入。目標(biāo)清單裝入主寄存器中。目標(biāo)之父裝入輔助寄存器中,而把待處理的指令和元素在這二類寄存器中都存入。對數(shù)值表達(dá)式進(jìn)行歸納時最好使用流水線模型的運(yùn)算。這樣做的一個優(yōu)點(diǎn)是中間結(jié)果可以暫存在磁心單元中而不是存入目標(biāo)存貯裝置中。
實(shí)例1圖4A至4H示出的第一個實(shí)例是將作為可歸約閉包給出的并行數(shù)值加以聯(lián)合unify(par(1 par(1)3)par(1 par(1)2))上述的閉包是一個可歸納的閉包,其中可以進(jìn)行多個并行聯(lián)合。該可歸納閉包將被改寫成一個并行聯(lián)合結(jié)構(gòu)。
圖4A中示出的最初始的可歸納閉包。圖4B表示該可歸納閉包是怎樣存貯在目標(biāo)存貯裝置中的。圖4A中標(biāo)出了多個存貯單元中存貯了該可歸納閉包的不同部分。圖4B中標(biāo)出了元素閉包和單元閉包之間的連接。具有識別符id1的單元閉包在其類型段中具有類型碼unify,具有識別符id2,id3和id4的單元閉包在其類型段中具有類型碼par。識別符為id1的單元閉包含有指示著識別符為id2和id4的單元閉包的閉包元素前二個數(shù)值/指示。這些單元閉包的特征為canon。識別符為id2的單元閉包使它的第一和第三數(shù)值/指定閉包元素為離散值,特征字為discr,使它的第二個數(shù)值/指定閉包元素指示著其識別符為id3的單元閉包,從而特征字為canon。識別符為id3的單元閉包使它的第一數(shù)值/指定閉包元素存貯有一個整數(shù),因此特征字為discr。識別符為id4的單元閉包使它的第一和第三數(shù)值/指示閉包元素為離散值,特征為discr;使它的第二數(shù)值/指定閉包元素指示著識別符為id3的單元閉包,因而特征為canon。
如圖4C所示,單元閉包識別符為id1的存貯單元的內(nèi)容首先裝入磁心單元中,即在第一個操作步中把它的含有閉包的類型碼unify的識別符id1放置在識別符寄存器中,把數(shù)值/指定元素作為目標(biāo)設(shè)置在主寄存器中。實(shí)際操作步驟如圖18所示,下面將要詳細(xì)描述。
如圖4D所示,識別符為id2和id4的子結(jié)構(gòu)垂直地裝入基寄存器中,使得它們的第一數(shù)值/識別元素放置在標(biāo)有它的識別符的主寄存器中,其余的數(shù)值/識別元素或一豎列放置在上面的寄存器中。每個這種子結(jié)構(gòu)的類型碼par也裝入主寄存器中。這個類型碼被裝入位于TYPE平面中的寄存器單元中。
如圖4E所示,基寄存器中的內(nèi)容被轉(zhuǎn)置90°,使得基寄存器的第一豎列置入主寄存器中,第二豎列放置到與主寄存器平行的基寄存器的一行中。轉(zhuǎn)置操作在圖23中得到了描述,以后還將詳細(xì)討論存貯在識別符寄存器和主寄存器中的類型碼par和unify互相轉(zhuǎn)換,這是由控制單元自動完成的?,F(xiàn)在,假設(shè)基寄存器中含有一個父層,它有三個排成一列的子層?,F(xiàn)在,使用指令make把每個子層裝回到目標(biāo)存貯裝置中。作為回答,目標(biāo)存貯裝置提供被存貯的子層的識別符,可以看出,控制電路6P屬于門電路陣列,它特別地檢測平面CLOS/SIMPLE至TYPE中的寄存器的內(nèi)容,并根據(jù)從中發(fā)現(xiàn)的信息提供(比方說)用于控制開關(guān)和門電路的指令。子層在id1之后依次命名,已經(jīng)使用了的名字則不再使用。但是,名字的順序是不重要的,因此可以是隨意的。
如圖4F所示,第一個子層得到的識別符為id3,含有與有著現(xiàn)別符id3的單元閉包的第二個子層得到的識別符為id4,第三個子層得到的識別符為id5。其單元閉包與具有識別符id2,id4,id5的單元閉包相聯(lián)的父層還保持它的識別符id1,然后再被存貯到目標(biāo)存貯單元中。
圖4G示出了存貯有可歸納閉包par(unify(1))unify(par(1)par(1))unify(23))的存貯裝置單元。該可歸納閉包本身被表示于圖4H中。圖4G和4H的繪制方式與圖4A和4B相同,因此也是具有自解釋性的。
從圖4G中還可以看出,類型碼為unify的單元閉包在其LAZY段中給賦予的記號為exec,而識別符為id1的單元閉包被給予的記號為wait,這意味著為了把單元閉包中的內(nèi)容歸納成數(shù)值,必須在執(zhí)行識別符id1指定的單元閉包之前執(zhí)行標(biāo)為exec的單元閉包。圖4H中的閉包在以后的時間點(diǎn)上可以裝回磁心單元中進(jìn)行進(jìn)一步處理。舉個例子來說,由于數(shù)值1與其數(shù)值/指定元素中的1是相同的,具有識別符id2的單元閉包的值將為1;由于其數(shù)值/指定元素中的值2和3不相同,因此識別符為id5的單元閉包將產(chǎn)生空值,每個聯(lián)合都將在數(shù)值A(chǔ)LU中進(jìn)行,由它把比較器中的值進(jìn)行比較,并把比較結(jié)果送至控制單元6P。該控制單元又設(shè)定它的布爾門電路陣列,從而相應(yīng)地在磁心單元的第一主寄存器中提供信息。當(dāng)一次歸納產(chǎn)生一個規(guī)范指定或者簡單值或者空值時,它將全局地分散到目標(biāo)存貯裝置的所有的存貯單元段中,目標(biāo)存貯裝置可以這樣存貯第二類的單元閉包,就是使至被歸納的閉包的每個間接指定轉(zhuǎn)換成對數(shù)值的直接指定。這是由下面將要結(jié)合附圖21加以敘述的unify-id操作來實(shí)現(xiàn)的。
實(shí)例2本實(shí)例是一條硬件指令list expansion,意思是單元閉包包括一個插入清單。這種指令其他歸納中為輔助步。硬件指令list expansion在圖24中也得到了描述,以后還將參照圖224進(jìn)行敘述。
機(jī)器進(jìn)行一條叫做ex.type的范例指令的歸納,它可以是任何類型的包括數(shù)值和清單、具有下列形式的指令ex·type(1 list(2 3 list(4 5 6)) 7)這種形式被表示在圖5A中,它的單元閉包被表示在圖5B中。圖5A和5B的繪制方式與圖4A和4B相同,因而它們是具有自解釋性的。
如圖5C所示,識別符為id1的單元閉包被裝入磁心單元的主寄存器中,它的識別符和類型碼存入識別符寄存器中。由于第二主寄存器中的內(nèi)容被標(biāo)為間接元素open,與它相聯(lián)的單元閉包作為子層垂直地裝入基寄存器中,從圖5D中可以清楚地看到這一點(diǎn)。
硬件指令list expand在圖24中還將更詳細(xì)加以描述,它把第三主寄存器中的離散值7移動到第三基寄存器列中的id4旁邊的位置上,把上述的第二主寄存器之上的第二列中的清單部分移動至第三列,把其最低元素(數(shù)值3)送入第三主寄存器中,并賦予類型碼list。由于第二主寄存器中的內(nèi)容為分離值,因此,它具有特征字為discr。
接下來,進(jìn)行一次新的清單擴(kuò)展,把上述的主寄存器上的第三列中的內(nèi)容放入第四列中,并使其類型碼為list。另外,從圖中可以清楚地看出,第三主寄存器中的內(nèi)容為一離散值,其特征字為discr。
此后,在把歸納結(jié)果裝回目標(biāo)存貯裝置之前還進(jìn)行一些其它類型的ex·type歸納。
實(shí)例3下面要執(zhí)行的是數(shù)值指令。一條數(shù)值指令可以是+、-、*、/mod等等。緊跟在該指令之后的是自變量。在本例要做的是一個表中的數(shù)據(jù)之間的相加。機(jī)器對具有下列函數(shù)的一個(application)進(jìn)行一次歸納apply(+list(1 2))
該 被示于圖6A中,其單元閉包被示于圖6B中。圖6A和6B的繪制方式與圖4A和4B相同,具有自解釋性。
如圖6C所示,具有識別符id1的單元閉包被裝入磁心單元主寄存器中,其識別符和類型碼存入識別符寄存器中。數(shù)值指令(+)被標(biāo)為一個指令。由于第二主寄存器中的內(nèi)容被標(biāo)為直接元素open,與它相聯(lián)的單元閉包稱為子層垂直地裝入基寄存器中,這一點(diǎn)從圖6D中可以看得很清楚。
接下來執(zhí)行一次清單展開運(yùn)算,使第二主寄存器中的離散值的特征為discr,并在類型碼段中把經(jīng)清單展開的數(shù)值2標(biāo)為list。之所以這樣是因為無論識別符為id2的清單有2個、3個還是4個元素,機(jī)器進(jìn)行的運(yùn)算是相同的。從圖6F中可以清楚地看出,由于新表中只有一個元素,因此機(jī)器把標(biāo)志list用表示主寄存器含有一個數(shù)值的標(biāo)志即discr來代替。
這樣,主存貯器包括一個指令標(biāo)記(+)和二個離散數(shù)值,這將(比方說)通過存貯在目標(biāo)存貯裝置(存貯有指令)中的與指令有關(guān)的信息,控制數(shù)值A(chǔ)LU執(zhí)行指令,并把數(shù)值運(yùn)算的結(jié)果作為一個規(guī)范值送至第一主存貯器(如圖6G所示)。應(yīng)該注意的是類型碼段中的符號apply是一個表示要進(jìn)行的是逐數(shù)應(yīng)用的標(biāo)志。結(jié)果數(shù)值((本例中為簡單數(shù)值3)被全局地分配,從而與每一個識別符id1相交換。
平面NUM和HEAD的磁心寄存器單元與平面2P的接口9P間的總線OBJv、id總線(即識別符總線)和env總線(即環(huán)境總線中的線相連。OBJv總線包括V0、V1、V2和V3等多個總線部分。
下面講述其余的平面的用途及連接情況。
磁心寄存器單元陣列和寄存器垂直地被“分片”成多個平面,屬于相同的NUM和HBAD平面但是不同的寄存器的寄存器單元再被以圖7中所示的方式互相連接起來。
在如圖7中所示的至少NUM一和HEAD一平面的結(jié)構(gòu)中,有一個寄存器單元方陣被放置在一個具有S0,0至SN-1,SN-1N×N個寄存器的矩陣中。該矩陣中的寄存器單元叫做基寄存器,寄存器單元叫做基寄存器單元。
這些基寄存器在大多數(shù)應(yīng)用場合下用于暫時地存貯閉包單元。寄存器的符號也嚴(yán)格地根據(jù)情況分類,比方說,指寄存器的實(shí)際位置時使用象基、主和輔助寄存器一類的符號;指寄存器的功能時,使用象子層、目標(biāo)和父層寄存器一類的符號。
在本實(shí)施例中N=4,這是最希望的,當(dāng)然也可以選擇其他矩陣尺寸(圖中未示出)。最低一行的基寄存器單元S0,0,S1,0,S2,0和S3,0如圖3所示的那樣和總線ho中該平面專用的線相連,因而是主寄存器。這些主寄存器單元S0,0、S1,0、S2,0和S3,0經(jīng)常用作目標(biāo)根寄存器,它們通過一根由導(dǎo)線NU0至NU3組成的總線NU至數(shù)值A(chǔ)LU 1P相連。
這里應(yīng)該注意的是,根據(jù)本發(fā)明的示教,也可以構(gòu)成不提供數(shù)值運(yùn)算需求的簡單處理器。在與此類似的情況下,也可以省掉數(shù)值A(chǔ)LU(見圖1)。
識別符寄存器單元ID與連線id相連,環(huán)境寄存器單元ENV與連成env相連。
總線連接hi與點(diǎn)線連線vi通過一個開關(guān)SWvi相連,這里的i為0至3中的一個數(shù)。包含總線連線h0,h1,h2,h3的總線叫做OBJh,即水平目標(biāo)總線。該總線OBJh用來和其它部件一起在磁心單元中垂直地裝入一列寄存器中的數(shù)據(jù),這些數(shù)據(jù)是由目標(biāo)存貯裝置通過總線OBJv提供的。這將在以后參考圖20作進(jìn)一步的描述。
總線連成id,env,V0,V1,V2和V3分別通過開關(guān)SWid,h0,SWonv,h0、SWv0、SWv1,h0、SWv2,h0,以及開關(guān)SWV3,h0與總線連線h0相連。包括總線連線Cid。Cf、Ch和Cv的總線res與控制單元6P相連,可以用來給寄存器設(shè)置常數(shù)(如零)。總線連線Cid與識別符寄存器單元相連,而總線連成Cf則與寄存器單元F0,F(xiàn)1,F(xiàn)2和F3相連,總線連線Ch通過開關(guān)SWch,h0可與總線連線h0相連,總線連線Cv通過開關(guān)SWvi,cv可與總線連成xxi相連,這是i為0至3間的數(shù)字。在某些應(yīng)用場合R(圖中未示出),總線res及它的開關(guān)可以省略。
在數(shù)據(jù)樹中有一個頂端層,稱作父層。這個父層有時候存貯在位于圖7左邊的輔助寄存器單元F0,F(xiàn)1,F(xiàn)2和F4中。在圖示的實(shí)施例中,每個輔助寄存器中都能存貯一個磁心字。每個輔助寄存器單元可以分別與總線連線id和與該總線連線id垂直布線的總線OBJh中的連成h0、h1、h2和h3中的一根相連。輔助寄存器單元R在磁心單元能提供的少數(shù)運(yùn)算中才會用到。因此在某些使用根據(jù)本發(fā)明的磁心單元的使用場合(圖中未示出)下,輔助寄存器可以省略。反過來也有可能提供一個具有多于一列輔助寄存器的磁心單元(圖中未示出)。
從上面可以清楚地看出,每個寄存器是由多個位于幾個平面2P上且在平面上具有相同位置的寄存器單元構(gòu)成。因此,即使圖7中只示出了每個寄存器的一個單元(即一位),整個寄存器也是用圖7中所使用的參考符號來標(biāo)識。從圖7中可以清楚地看出,寄存器成行成列配置。輔助寄存器區(qū)F0、F1、F2和F3在一列中,N個基寄存器區(qū)S0,0,至S0,3,S1,0至S1,3,S2,0至S2,3,S3,0至S3,3都分別在一列中,能夠存貯一個子層。
每個平面中相鄰的基寄存器單元之間在水平和垂直方向上都提供了連接。對于水平行上面向目標(biāo)存貯裝置每個最外邊的基寄存器,也提供了具有固定的編程值(本實(shí)施例中為“假”f)的一種連接?;拇嫫髦g在對角線方向上也可以設(shè)置連接從而使可轉(zhuǎn)送信息的位置之間連接起來。這意思是說,一個單元Sij(i不同于j)可以和單元Sji連接起來。每個基寄存器與位于右下方最接近的基寄存器相連,只要在那個位置上有基寄存器。每個輔助、識別符、環(huán)境和基寄存器單元都分別通過輸出端ACCpx、ACCid、ACCeny和ACCsx,y與平面BOOL中的一個相連,這里的x和y是0至3之間的數(shù)。
下面講述位于平面NUM和HEAD中的一個一般寄存器單元(圖8)。圖9A至9F中示出了該一般寄存器單元中所使用的開關(guān)的門電路的實(shí)施例。從這個一般寄存器單元可以得出輔助寄存器單元(圖10)和識別符寄存器單元(圖11)的實(shí)施例。
再下面將講述位于ATTRIBUTE(屬性)平面中的寄存器單元的實(shí)施例。圖13中示出了識別符寄存器單元,圖14中示出了輔助寄存器單元,圖15中示出了主寄存器單元。
參考圖8,一個寄存器單元的最佳實(shí)施例包括二根內(nèi)部總線aR和bR,以及一個中央內(nèi)部寄存器rR。總線aR和bR與該寄存器單元之外的多根連接線相連。圖8中的實(shí)施例示出了一種裝有各種與外界的可能的連接的一般寄存器單元。在典型情況下,一個具體的寄存器單元并不裝有圖8中所示的所有連接線,而是根據(jù)該寄存器單元的位置缺少一根或多根。從圖7中的布線情況可以清楚地看出被連接端口間的所有布線。從圖7中也可以看出,并不是所有的寄存器單元都具有圖8所示的所有外連接線。因此,這里不準(zhǔn)備給出所有寄存器單元以及它們的連接情況的詳細(xì)描述。
總線aR通過開關(guān)SWvi和端口V與垂直總線連線VX相連,這里X為0至3間的一個數(shù)。另外,它還通過開關(guān)SWHi和端口H與水平總線hy相連(y為0至3間的一個數(shù)),通過與相鄰的寄存器單元中的開關(guān)SWE(東)相連的一個端口W(西)與左邊的寄存器單元相連;如果該寄存器單元是主寄存器單元的話,它還直接通過端口NU與數(shù)值運(yùn)算單元1P相連??偩€aR還通過接至右下方的寄存器單元中的開關(guān)SWD6的端口Da與該寄存器單元相連,通過接至它下方的寄存器單元中的開關(guān)SWN(北)的一個端口S(南)與該寄存器單元相連。寄存器單元可以通過與點(diǎn)線aR相連的端DC和開關(guān)SWC進(jìn)行置位和復(fù)位??偩€aR可以通過一個開關(guān)SWa1與中央內(nèi)容寄存器rR的輸入端相連,也可以通過開關(guān)SWa0與它的輸出端相連。
總線bR通過開關(guān)SWE和端口E與右邊的寄存器單元相連,通過開關(guān)SWD6和端口D6也可對角的寄存器單元相連,通過開關(guān)SWN和端口N與上面的寄存器單元相連??偩€bR還通過開關(guān)SWb1與中央內(nèi)部寄存器rR的輸入端相連,通過開關(guān)SWb0與其輸出端相連。
中央內(nèi)部寄存器rR包括二個轉(zhuǎn)換器Q1和Q2(最好是CMCMOS轉(zhuǎn)換器),和它們之間的一個可控開關(guān)SW2。一個完整的寄存器單元還包括總線aR和bR、開關(guān)SWa1,SWa0,SWb1,SWb0和使該單元與外界相連的開關(guān)。該中央內(nèi)部寄存器rR的輸出分別通過開關(guān)SWH0、端口H以及開關(guān)SWVO、端口V與水平和垂直總線相連。中央內(nèi)部寄存器rR存貯一種動態(tài)狀態(tài)(下面將進(jìn)行描述)。
磁心中所有寄存器單元中的所有可控開關(guān)都可以通過與控制單元6P相連的連線加以控制。控制電路6P包括一個門電路陣列,比方說,一個PAL(Programmable Array Logic可編程陣列邏輯)。該門電路陣列使用存貯在磁心單元中的信息來確定開關(guān)哪個開關(guān),以及關(guān)閉哪個開關(guān)。門電路的工作由一個時鐘信號加以同步。這些開關(guān)都是雙向的,但是也有一些(如輸入和輸出開關(guān)SWHi和SWHo)只用于單向。
比較器裝置COMP包括一個第一與非門G1。一個輸入端與反相器Q1的非反相輸入端相連,與一個與反相器22的輸入端相連。該裝置COMP還包括一個第二與非門G2,它的一個輸入端與反相器Q1的輸出端相連,另一個輸入端與反相器Q2的輸出端相連。這二個門G1和G2的輸出與前往一個BOOL平面的單線總線ACC相連。這個與非門可以如圖9D中所示的那樣由兩個串聯(lián)連接的MOS場效應(yīng)管構(gòu)成;這兩個串聯(lián)連接的MOS場效應(yīng)管的串接的源/編通道連接在地和BOOL平面之間,它們的柵極與非門輸入端,上面的那個MOS場效應(yīng)管的漏極即為輸出端。在關(guān)聯(lián)檢索期間,即在應(yīng)該把磁心單元中的一個元素與目標(biāo)存貯裝置中的或者該磁心單元的其它部分中的一個元素相比較期間,就要用到該比較器裝置CONP。被比較的元素加到含有要比較的元素的寄存器單元的輸入端上,這在以后還要詳述。
反相器Q1和Q2可以由兩個增強(qiáng)型MOS場效應(yīng)管組成,也可以由如圖9B那樣連接的一個增強(qiáng)型一個耗盡型二個MOS場效應(yīng)管組成,也可以由二個相補(bǔ)的MOS場效應(yīng)管(如圖9)組成。寄存器單元中的可控開關(guān)既可以由一個MOS場效應(yīng)管,也可以由如圖9F那樣連接的二個相補(bǔ)的(增強(qiáng)型)MOS場效應(yīng)管組成。控制單元6P通過一個控制信號C控制這些開關(guān)。從圖9F中可以看出,為了實(shí)現(xiàn)更快的狀態(tài)轉(zhuǎn)換,開關(guān)可以既用控制信號又用它的相補(bǔ)信號來加以控制。
我們可以把圖8中的一般寄存器單元視為磁心單元中所有寄存器單元的基礎(chǔ),即它們是用相似的方式來設(shè)計的。從上述的一般寄存器單元推出的寄存器單元只是在端口和附帶的輸出輸入開關(guān)的數(shù)量上有所區(qū)別。這種推導(dǎo)出的單元被賦予與圖8中所示的單元相同的參考數(shù)字。
基寄存器單元S0,0,S0,1,S2,3和S3,3沒有裝上開關(guān)SWD6和端口D6,基寄存器單元S0,0,S1,0,S3,2和S3,3不具備Da端口,主寄存器單元(S0,0至S2,0)不具有S端口,而其他的基寄存器單元(S0,1至S3,3)不具備NU端口。所有的基存貯器單元都不具備C端口和SWC開關(guān),而是使用水平和垂直總線以及端口V和H用總線連線Cv和Ch提供的常數(shù)值使一個寄存器單元置位或復(fù)位。
如圖10中所示的輔助寄存器單元只具有端口Hy,V,C和ACC,這里y是0至3之間的一個數(shù),V端口與總線連線ID相連,C端口與總線連線Cf相連。
圖11中所示的識別符寄存器單元只有端口V,C和ACC,這里V端口與總線連線ID相連,C端口與總線連線Cid相連。環(huán)境寄存器單元(圖中未示出)與圖11中的識別符寄存器單元相近似,雖然在本實(shí)施例中它沒有C端口和SWe開關(guān)。在另一個實(shí)施例中,環(huán)境寄存器單元就可以包括C端口和SWc開關(guān)。
在進(jìn)行關(guān)聯(lián)檢索期間,對前往BOOL平面的與訪問相連的總線將進(jìn)行比較。二個與門G1和G2把關(guān)鍵值即Q1的輸入端上的被比較值和Q2的輸入端上的存貯值進(jìn)行比較。在比較期間,該關(guān)鍵值通過內(nèi)部總線aR或bR轉(zhuǎn)換至Q1。開關(guān)SW2必須為關(guān)(即開路)如果提供的值(關(guān)鍵值)與存貯值不匹配,那么被充電的BOOL平面將通過與非門G1和G2放電。如果匹配,BOOL平面還保持充電狀態(tài)。
寄存器中所有的總線連線(每個寄存器單元都有一根總線連線ACC)都可以平行連接,并連接至BOOL平面中相同的總線連線上。另外,NUW和HEAD平面中所有寄存器單元中的總線連線ACC可以與指定給這些平面的BOOL平面中的一根總線連線相連,ATTRIBUTE平面中提供的所有寄存器單元可以和同一BOOL平面或者指定給該ATTRIBUTE平面的第二個BOOL平面中的一根分離的總線連線相連。至于提供了一個還是二個BOOL平面,以及一根還是二根總線連線,那是隨選擇而定的,取決于存貯在控制單元6P中的控制指令的類型。具有多于二個BOOL平面也屬于本發(fā)明的范疇。提供的BOOL平面的數(shù)量反映了關(guān)聯(lián)檢索的細(xì)微度,即能進(jìn)行的不同的關(guān)聯(lián)檢索的數(shù)量以及能執(zhí)行的程度(即涉及哪些寄存器部分)。這樣,與BOOL平面中同一根總線連線的寄存器部分可以同時進(jìn)行比較。如果所有的與非門G1和G2具有相同的輸出(高)那么比較將產(chǎn)生“匹配”,否則將產(chǎn)生“不匹配”?!捌ヅ洹笔侵竷蓚€信息完全相同。因此,BOOL平面是總線連線的平面,可以被視為虛擬或者叫“想象”平面,也就是說,點(diǎn)線連線不一定非得設(shè)置在一個平面中,而是可以直接和控制單元6P相連。
ATTRIBUTE平面具有與平面NUM和HEAD不同的結(jié)構(gòu),這種結(jié)構(gòu)示于圖12中。和圖7中的元素具有相同結(jié)構(gòu)的元素仍使用相同的參考符號。這類平面包括開關(guān)SWv0、SWv1、SWv2和SWv3,一個識別符寄存器單元IDT,四個輔助寄存器單元F0T,F(xiàn)1T,F(xiàn)2T,F(xiàn)3T以及只包括主寄存器單元S0,0S1,0、S2,0和S3,0的基寄存器單元。此時,基寄存器矩陣被減少成一列分別與總線連線V0、V1、V2和V3以及(通過開關(guān)SWv0、SWv1,h0、SWv2,h0、SWv3,h0與總線連線h0相連的象圖7中所示的寄存器平面那樣的主寄存器單元S0,0至S3,0??偩€連線hi通過開關(guān)SWvi可與總線連線vi相連,這里i為0至3間的一個數(shù)。另外,總線連線V0,V1,V2和V3除了引向NUM和HEAD平面中具有相同標(biāo)號的總線連線之外,還可以引向接口9P的其它輸入端,因而可以連接到目標(biāo)存貯裝置4P的其他部分(最好是LAZY,WHERE和TYPE部分)。另外,總線連線V0、V1、V2和V3還可以根本不需要和目標(biāo)存貯裝置4P相連,而使用總線來從目標(biāo)存貯裝置(即LAZY,WHERE和TYPE段)中向磁心單元中相應(yīng)平面內(nèi)的總線連線id轉(zhuǎn)送狀態(tài)信息(見圖1)。另外,主寄存器單元列S0,0至S3,0,識別符寄存器單元IDT以及輔助寄存器單元F0T至F3T都與點(diǎn)線ves相連,該點(diǎn)線res與圖7中所示的寄存器平面一樣包含總線連線Cid,Cf,Ch和Cv。
垂直列的識別符寄存器單元IDT和四個輔助寄存器單元P3TP2T,F(xiàn)1T和F0T另外還與總線連線id相連,還與前往控制單元6P的第二點(diǎn)線連線cont(圖1中未示出)相連。控制單元使用可以轉(zhuǎn)送到該點(diǎn)線上的信息來確定應(yīng)該進(jìn)行哪類歸納。
圖12中所示的那類寄存器平面中的每個寄存器單元還有它的訪問線與點(diǎn)線ACC以及一根輸出線SDi(這里i為0至3的一個數(shù),或者F0至F3的一個符號ID),用來直接觀察與該輸出線相連的所有寄存器單元的狀態(tài)。
圖13中示出了位于ATTRIBUTE平面中的識別符寄存器單元IDT的實(shí)施例。它有四個端口V,CONT,SP和ACC。端口V和CONT分別可以和總線id和cont相連。端口CONT通過開關(guān)SWCONT與內(nèi)部寄存器VR的輸出端相連。端口SD與內(nèi)部寄存器rR的輸出端(即反相器Q2的反相端)相連。端口C與總線連線Cid相連。
圖14中示出了位于ATTRIBUTE平面中的一個輔助寄存器單元FYT的實(shí)例,這里Y為0至3間的一個數(shù)。與識別符寄存器單元IDT相比較這種寄存器單元有一個附加端口,即端口H。端口H能與總線連線hy相連,這里的y為0至3間的一個數(shù)。其余端口的連接方式與識別符寄存器單元IDT中的相應(yīng)端口類似。端口C與總線連線Cf相連。
圖15中示出了位于ATTRIBUTE平面中的一個主寄存器單元SX,0的實(shí)施例,其中x為0至3間的一個數(shù)。它有六個端口V,E,H,W,SD和ACC。端口SD與內(nèi)部寄存器rR的輸出端(即反相器Q2的輸出端相連。其余端口的連接與NUM和HEAD平面中的寄存器單元的相應(yīng)單口的連接情況類似。這些主寄存器單元不具有C端口和SWc開關(guān),相反它們是用端口V和H用點(diǎn)線連線CCv或Ch提供的恒定值使寄存器單元置位和復(fù)位的。
備份存貯裝置模式環(huán)由該單元中的一個或二個環(huán)組成。其中一個環(huán)由開關(guān)SW60、總線bR。開關(guān)Wb1、反相器Q1、開關(guān)SWSW2及反相器Q2組成。另一個環(huán)由開關(guān)SWa0、點(diǎn)線aR、開關(guān)SWa1、反相器Q1、開關(guān)SWQ和反相器Q2組成。當(dāng)一個或二個環(huán)中的開關(guān)被閉合時,信號可以通過二個反相器Q1和Q2前進(jìn)信號電平在反相器Q1的輸入端和反相器Q2的輸出端處將變得穩(wěn)定,數(shù)據(jù)就是這樣存入單元中的,該單元中存貯的是一種動態(tài)狀態(tài)。
在輸出模式下,Q2的輸出可以傳送到總線aR或bR中的一個上,再從那通過控制適當(dāng)?shù)拈_關(guān)傳送到一個或多個輸出端口(N,S,E,W等)的輸出端子上。另一根總線bR或者aR可以用于任意模式。如果開關(guān)SWa為關(guān)(即開路),則反相器Q2的輸出是穩(wěn)定的,亦即在開關(guān)SWa閉合之前,它不會改變。反相器的輸入可以在開關(guān)SWb0閉合時轉(zhuǎn)送至總線bR,在開關(guān)SWa0閉合時轉(zhuǎn)送至總線aR,在開關(guān)SWcont閉合時轉(zhuǎn)送至輸出端cont,并且直接轉(zhuǎn)換至SD端口。通過控制連結(jié)在寄存器單元和外部總線之間的開關(guān),還可以把總線bR和aR上的信息轉(zhuǎn)送到與該寄存器相連的外部總線上,這樣在下面通過實(shí)例加以進(jìn)一步說明。
在輸入模式期間,開關(guān)SWa1或者SWb1中有一個為開(亦即閉合)。這樣,各端口(N,S,EW等)中有一個的狀態(tài)可以轉(zhuǎn)送至本地點(diǎn)線aR或bR,再從那轉(zhuǎn)送至中央內(nèi)部寄存器rR。
通過至磁心單元中另一個寄存器單元的端口連接線可以在二個相位周期內(nèi)把任何寄存器單元中的數(shù)據(jù)轉(zhuǎn)送至另一個寄存器單元。在三個位相同周期內(nèi)可以實(shí)現(xiàn)垂直、水平或?qū)蔷€方向上的寄存器單元之的數(shù)據(jù)交換。
開關(guān)SWa直接由一個主時鐘同步,該主時鐘同時也給寄存器中的所有單元提供同步,這樣可使反相器Q1和Q2之間的轉(zhuǎn)送在整個磁心單元中同時完成。其余的開關(guān)由從主時鐘得出的但提供與主時鐘周期具有不同的適當(dāng)相位間隔的信號來控制。對于磁心單元中的所有操作,主時鐘都用作為一種參考信號。
時鐘周期可以被劃分為時鐘相位O、a和b。在中央內(nèi)部寄存器rR處于各份存貯裝置模式時即數(shù)據(jù)穩(wěn)定時,相位O是第一個可伸展相位。從點(diǎn)線aR進(jìn)行傳輸時使用相位a,從總線bR進(jìn)行傳輸時使用相位點(diǎn)。
單向轉(zhuǎn)送(即只以或者只向寄存器單元)在二個相位的時鐘周期內(nèi)進(jìn)行。第一相位O是穩(wěn)定的。相位a或相位上用于在二個相位的時鐘周期內(nèi)進(jìn)行傳送。
雙向轉(zhuǎn)送(即二個寄存器單元之間進(jìn)行轉(zhuǎn)送而交換它們各自的內(nèi)容)在三個相位時鐘周期內(nèi)進(jìn)行。相位O是穩(wěn)定的。在相位a和b期間,在不同的方向上執(zhí)行傳輸。
應(yīng)該注意的是,具有多個三個相位的時鐘周期(比方說二個b相位)也屬于本發(fā)明的范圍。
開關(guān)SWa1和SWb1通常是閉合的??偩€aR和bR都保持著寄存器單元的存貯狀態(tài)。當(dāng)使用一根內(nèi)部總線aR或者bR來輸入要存貯的新值時,相應(yīng)的開關(guān)SWa1或SWb1被控制成開路。在一個長到足以使該總線上的信息轉(zhuǎn)送至該內(nèi)部總線的短時間間隔內(nèi),連至外部總線(如垂直或水平點(diǎn)線)的一個開關(guān)閉合。
還可以使用移位網(wǎng)絡(luò)即包含與各端口相連的開關(guān)的各個不同的寄存器單元間的網(wǎng)絡(luò)來把寄存器單元中的內(nèi)容向北N、或向西W、或向或向東E轉(zhuǎn)送。
圖16A中示出了二個相鄰的基寄存器單元,數(shù)據(jù)將從左邊的那個發(fā)送元傳送至右邊的那個接收元中。來自控制單元6P的控制信號控制著這些開關(guān)。圖16B中表示的是被上述的轉(zhuǎn)送影響了的每個開關(guān)在不同階段的狀態(tài),圖中低值表示一個打開的開關(guān),而高值表示一個閉合的開關(guān)。實(shí)際的轉(zhuǎn)送在b位相中進(jìn)行。轉(zhuǎn)換以下列的方式進(jìn)行(下面的各不同步驟被標(biāo)上與圖16A和16B中相同的數(shù)字)0.電路處于穩(wěn)定狀態(tài),SW2、SWa0、SWa1、SWb0SWb1閉合,發(fā)送元和接收元中的所有其它開關(guān)都打開(由于它涉及至所有的開關(guān),因此在圖16A中未標(biāo)出)。這種穩(wěn)定狀態(tài)對應(yīng)于圖16B中的相位O。
1.在時鐘間隔的第一個相位(相位b)期間,發(fā)射元和接收元中開關(guān)SWa均打開,2.發(fā)射元和接收元中的開關(guān)SWa0打開,開關(guān)SWb0閉合,3.閉合發(fā)射元和接收元之間的開關(guān)SWE,4.打開發(fā)射元和接收元中的開關(guān)SWb1,5.打開發(fā)射元中的開關(guān)SWa1,閉合接收元中的開關(guān)SWa1這將使數(shù)據(jù)從發(fā)射元內(nèi)部寄存器前進(jìn)至接收元內(nèi)部寄存器,6.在時鐘間隔的第二個相位(相位O)期間,閉合接收元和發(fā)射元中的開關(guān)SWa,7.打開發(fā)射元和接收元之間的開關(guān)SWE,8.先閉合開關(guān)SWb0和SWa0,再閉合接收元和發(fā)射元中的開關(guān)SWb1和SWa1。這將把我們帶回到上述的步驟0(即相位O)中描述的穩(wěn)定狀態(tài)。
圖17A中示出了兩個相鄰的寄存器單元,這二個不同的基寄存器單元中的數(shù)據(jù)通過一次雙向傳送操作進(jìn)行互換。來自控制單元6P的控制信號控制著這些開關(guān)。圖17B中示出了被發(fā)送元影響的每個開關(guān)在各個不同相位時的狀態(tài),其中較低值表示開路開關(guān),較高值表示一個閉合開關(guān)。這二個寄存器單元都是既作為發(fā)送元又作為接收元,因此,下面把它們稱為“單元1”和“單元2”。從單元2到單元1的轉(zhuǎn)送在相位a中進(jìn)行,另一方向從單元1至單元2的發(fā)送則在相位b中進(jìn)行。下面的不同步驟被標(biāo)上了與圖17A和17B中相同的數(shù)字。這種轉(zhuǎn)送以下列方式進(jìn)行0.電路處于穩(wěn)定狀態(tài),SWa、SWa0、SWa1、SWb0、SWb1閉合,二個單元中其它所有開關(guān)打開(這一步由于涉及所有的開關(guān),因而在圖17A中未標(biāo)出)。這種穩(wěn)定狀態(tài)與圖17B中的位相O相對應(yīng)。
1.在時鐘間隔的第一相位(相位a)期間,打開單元1和2中的開關(guān)SWa。
2.閉合單元1和2中的開關(guān)SWa0,打開單元1和2中的開關(guān)SWb0,3.閉合二個單元之間的開關(guān)SWE,4.打開單元1和2中的開關(guān)SWa1,5.閉合單元1中的開關(guān)SWb1,打開單元2中的開關(guān)SWb1這就能使數(shù)據(jù)從單元2前進(jìn)到單元1中。
在時鐘間隔的第二個相位(相位b)期間開關(guān)SWa仍然打開時,
6.打開單元1和2的開關(guān)SWa0,關(guān)閉單元1和2中的開關(guān)SWb0,7.打開單元1和2中的開關(guān)SWb1,8.打開單元1中的開關(guān)SWa1,閉合單元2中的開關(guān)SWa1,這將使數(shù)據(jù)以單元1前進(jìn)到單元2中。
9.在時間間隔的第三相位(相位O)期間,閉合單元1和2中的開關(guān)SWa,10.打開單元之間的開關(guān)SWE,11.先閉合開關(guān)SWb0和SWa0,再閉合二個單元中的開關(guān)SWb1和SWa1,這將把我們帶回到上面在步驟O中描述過的那種穩(wěn)定狀態(tài)(即相位O)。
在相位O期間,這些信號的缺省值為“通”,即門電路閉合。所有的本地點(diǎn)線都保持著存貯狀態(tài)。通過把開關(guān)SW2和開關(guān)xo的控制信號設(shè)置成斷(即開始),就可以控制用于輸入的點(diǎn)線,這里的x為a或b。在輸入操作期間,有多根點(diǎn)線在一個短周期內(nèi)由一些端口(E、V、D、H等)短路。過一會,這些點(diǎn)線就會得到正確的值。
從開關(guān)SWa的控制信號的下降部分至開關(guān)SWX0的控制信號的下降部分有一個延遲。這里x為a或b。如果它很短,則不產(chǎn)生任何問題。但是如果該時間達(dá)到MS級,則總線XR(X為a或b)有可能失去它的動態(tài)狀態(tài)。
從開關(guān)SWX0的控制信號的上升部分至開關(guān)SWX1(x為a和b)的控制信號的上升部分有一個延遲時間。如果變成負(fù)值,則一個錯誤值可能前進(jìn)到從反相器Q2至反相器Q1的本地點(diǎn)線XR上。因此需要一個正的延遲時間。
這些開關(guān)一般是不通(即開路)的。此時所有的本地總線均被絕緣。通過把送至與一條總線相連的端口開關(guān)的控制信號置為“通”(就是使該開關(guān)閉合),就可以控制用于輸入或輸出的那條總線。在這個操作期間,可以用一些開關(guān)(SWE,SWV,SWD和SWH等)使多根總線短路一小段時間。過一會以后,總線就能得到正確的值。
從開關(guān)SWa的控制信號的下降部分至開關(guān)SW2(2可以是HD、N、V、E等等,即任何與裝有開關(guān)的內(nèi)部總線aR和bR相連的端口)的控制信號的上升部分之間有一個延遲時間。如果它是負(fù)值,則本地總線XR(X為a或b)的值可能變換。那時可以設(shè)置寄存器值。因此這個延遲時間應(yīng)該是正值。
從開關(guān)SWz(z為H、D、N、V、E等等,即任何與裝有開關(guān)的內(nèi)部總線aR和bR相連的端口)的控制信號的上升部分與開關(guān)SWX1的控制信號的上升部分之間有一個延遲時間。如果它是負(fù)值,則數(shù)值不能前進(jìn)到輸入端。因此,應(yīng)該用一個正的延遲時間。
從開關(guān)SWX1的控制信號的上升部分至開關(guān)SW2的控制信號的下降部分之間有一個延遲時間。如果它為負(fù)值,則本地總線將會被改變,寄存器可能被設(shè)置成一個錯誤值。因此,需要一個正的延遲時間。
在相位O期間,這些信號的缺省值為“通”。但是從開關(guān)SWa的控制信號的上升部分到開關(guān)SWa1和SWb1的控制信號的上升部分之間必須稍稍有些延遲時間。
如果上述的延遲時間為負(fù)值,那么反相器Q2的輸入端上的值就不能前進(jìn)到總線XR(X為a或b)。因此,必須使用一個正的延遲。
典型的列表指令在一個機(jī)器周期內(nèi)執(zhí)行。正如前面提到過的那樣,磁心單元執(zhí)行的是結(jié)構(gòu)運(yùn)算,由磁心寄存器使用它包含的清單中的指令來執(zhí)行所有的步驟。下面示出了這些指令的例子length 計算目標(biāo)的長度map 用于清單中的元素的一個功能,如清單中包含插入表則該指令也適用于這些插入清單中的元素。(指令mmap將在下面加以詳述。
filter 用于過濾一個清單中的單元的功能。這種過濾也適用于插入表(如果有的話)。
join 所有的元素被重寫回插入表元素。本指令也適用于插入表(如果有的話)。
transpose 使一個小矩陣變位。如果它包含清單元素,則這些元素被互相換位。也處理插入表。(指令transpose將在下面加以詳述)。
磁心單元
*在幾個寄存器(最好是基寄存器中)存貯要?dú)w納的目標(biāo)。
*在某些情況下(如要?dú)w納一個三級結(jié)構(gòu)時),在最好是輔助寄存器中存貯目標(biāo)的根,而在基寄存器矩陣中存貯其余的結(jié)構(gòu)。
磁心單元中的暫時存貯有四種情況,即存貯0,1,2和3級目標(biāo)時的情況。
一個簡單樹即一個簡單值(0級目標(biāo))被存貯在第一主寄存器中。
只包括一個級別的樹存貯在主存貯器中。
包括二個級別的樹可以把它的根清單作為父層水平地存貯在主寄存器中,而把清單作為子層垂直地存貯在基寄存器中。另一種方法是根可以存貯在輔助寄存器中,把子層中的一個存貯在主寄存器中。應(yīng)該注意到的是,控制單元6P能根據(jù)要執(zhí)行的實(shí)際操作而選擇這二種方法中的一個。
包括三個級別的樹把根清單存貯在一個輔助寄存器中,把它的二個級別的子層中的一個存貯在基寄存器矩陣中。
這樣,一個目標(biāo)樹的根清單最好能根據(jù)樹結(jié)構(gòu)的級別以及要執(zhí)行的運(yùn)算存貯在磁心單元中不同地方的寄存器中。
目標(biāo)樹的根是一個可歸納(如unify)類型的閉包。在函數(shù)應(yīng)用中,第一個元素為一個指令或者間接地指定一個用作為函數(shù)定義的閉包結(jié)構(gòu)的識別符,其余的元素則是該函數(shù)/函數(shù)定義的變元。
存入磁心寄存器中的信息由目標(biāo)存貯裝置4P中的信息得出。磁心寄存器單元中的信息以下面的方式存貯
ATTRIBUTE平面中的磁心寄存器與目標(biāo)存貯器總線OBJ相連。所存貯的狀態(tài)由識別符寄存器IDT、輔助寄存器FOT至F3T以及基寄存器S0,0至S3,0的存貯狀態(tài)組成。
送至ATTRIBUTE平面中的磁心寄存器單元的控制字包括送至開關(guān)SWvi、SWvi,cv(i為0至3的一個數(shù))。SWid,hoSWch,ho,SWV1,ho,SWV2,ho以及SWV3,ho識別符寄存器IDT、輔助寄存器F0T至F3T的主寄存器S0,0至S3,0的多個較小的控制字。
控制字通過與控制單元6P相連的多根控制線轉(zhuǎn)送。這些控制線可以是雙相控制對線,也可以是單相控制單線,取決于使用了什么類別的開關(guān)(見圖9E和9F)。
送至主寄存器S0,0至S3,0的每個的控制字通過一個公共部分和各基寄存器特有的部分來傳送。上述的公共部分控制著該磁心單元中的開關(guān)SWa0,SWb0和SWa(見圖15)。另外,必須注意的是這里所描述的只能被視為一個例子,從中可以觀察到幾個其他類型的實(shí)施例。
平面HEAD和NUM中的磁心寄存器與目標(biāo)存貯裝置總線OBJ、存取點(diǎn)線ACC、res點(diǎn)線和數(shù)值A(chǔ)LU點(diǎn)線NU相連,被存貯的狀態(tài)由二個單寄存器ID和ENV、輔助寄存器F0至F3以及基寄存器S0,0至S3,3的存貯狀態(tài)組成。
送至磁心寄存器的控制字由送至開關(guān)SWvi,SWvi,cv(i為0至3間的一個數(shù))、SWid,ho、SWch,ho、SWehv,ho、SWV1,ho、SWV2,ho和SWV3,ho、SWvio、SWV1、SWV2、SWV3、單寄存器ID和ENV。輔助寄存器F0至F3和基寄存器S0,0至S3,3的控制字組成。
這些控制字通過與控制單元6P相連的多根控制線被傳送。這些控制線可以是雙向控制對線或者是單相控制單線,取決于使用了哪一種類的開關(guān)(見圖9E至9F)。
送至兩個寄存器單元的控制字包括一個公共部分和一個每個基寄存器特有的部分。公共部分控制著磁心單元中的開關(guān)SWao、SWbo和SWa(見圖8)。但應(yīng)該注意的是這里描述的僅僅只能看作是一個例子,從中可以推導(dǎo)出幾個實(shí)施例。
圖18至24是從圖7中得出的,圖7中的標(biāo)記也適用于圖18至24。但是,為清楚起見,我們省略了大部分標(biāo)號。另外,在圖18至24的描述中,各寄存器單元的標(biāo)號旨在表示穿過平面2P的整個寄存器。
1.對目標(biāo)存貯裝置4P的訪問mpx-my指令通過目標(biāo)存貯操作mpx-mv,我們讀取目標(biāo)存貯裝置4P,并且設(shè)置主寄存器。被訪問的目標(biāo)正象圖18中帶有指進(jìn)行傳送的寄存器單元的粗實(shí)線所示的那樣,通過總線V0、V1、V2和V3送給主寄存器S0,0,S1,0,S2,0,S3,0,通過總線id送至識別符寄存器ID,并且通過總線env送至寄存器ENY與此同時,主寄存器中的原有內(nèi)容作為一個閉包存貯在目標(biāo)存貯裝置4P中。這樣,mpx-my指令把當(dāng)前的磁心單元閉包存貯在目標(biāo)存貯裝置中,并把下一個要執(zhí)行的目標(biāo)存貯裝置閉包裝入磁心單元中。
圖19和圖20表示了這樣一種情況,即在一個主存貯器中存貯了一個識別符,該識別符要和它指定的信息而交換。把這個如圖19中存貯在S2,0中的識別符送給目標(biāo)存貯裝置4P,目標(biāo)存貯裝置找出該識別符及其它表示的內(nèi)容,把該內(nèi)容放到總線連線V0。至V3上,最后裝入一垂直基基寄存器(如圖20中的S2,0至S2,3)中。
上述操作是由通過總線ho及開關(guān)idid,ho(圖19)把基寄存器S2,0中的識別符發(fā)送至垂直點(diǎn)線id上開始的。存貯值可以以相似的方法從任何其它寄存器發(fā)送。
操作繼續(xù)時,把目標(biāo)存貯裝置4P在點(diǎn)線連線V0、V1、V2和V3上提供的值裝入適當(dāng)?shù)募拇嫫髦?,在本例中這些寄存器為S2,0、S2,1、S2、2、S2,3,并通過開關(guān)SWV0,SWV1,SWV2和SWV3及總線h0,h1,h2和h3來轉(zhuǎn)送數(shù)值。
當(dāng)磁心單元中的內(nèi)容要存入目標(biāo)存貯器中時,可以使用目標(biāo)存貯操作make和unify-id。
make指令在make操作的第一步,有關(guān)寄存器中的內(nèi)容被如圖20所示但以相反的方向進(jìn)行傳送。該操作也能轉(zhuǎn)送環(huán)境寄存器內(nèi)容。為了找到存貯有與磁心單元提供的信息相同的信息,在目標(biāo)存貯裝置中執(zhí)行一次關(guān)聯(lián)搜索。如果找到目標(biāo),則返回表示該目標(biāo)的標(biāo)識符;反之,如果沒有找到目標(biāo),則返回一個未用標(biāo)識符。在這二種情況下,都使用總線連線id把標(biāo)識符從目標(biāo)存貯裝置轉(zhuǎn)送至磁心單元中的識別符寄存器。另外一種方法是把識別符轉(zhuǎn)送到受到影響的那列寄存器中的主寄存器中。這樣,在磁心單元中的內(nèi)容與識別符之間就能建立起一種關(guān)聯(lián)關(guān)系。
unify-id操作示于圖21中,該操作通過開關(guān)SWid,SWid,ho,SWenv,ho,SWvo,SWV1,ho等把相關(guān)的寄存器單元與水平總線ho連接并把所有的垂直點(diǎn)線與水平點(diǎn)線ho相連,從而使一個寄存器(如S2,0)中的識別符分散到所有的垂直點(diǎn)線id,env,V0,V1,V2和V3上。在執(zhí)行關(guān)聯(lián)檢索及替換時,比方說要找出一個識別符的出現(xiàn)場合并且要用一個新的被歸納了的簡單值來替代找到的那個識別符時,就可以使用上述操作。
在與unify-id操作類似的操作中,在第一步可以使用make為磁心單元中的內(nèi)容得到一個唯一的識別符,在第二步中把該磁心單元中的內(nèi)容放到與目標(biāo)裝置相連的點(diǎn)線連線上,從而達(dá)到使用目標(biāo)存貯裝置存貯該識別符和它指定的內(nèi)容的目的。
在附錄1中給出了unify操作的一個例子,附錄1中示出了磁心單元中的內(nèi)容以及相位a、b和O的開關(guān)狀態(tài)。
2.數(shù)值歸納在進(jìn)行數(shù)值歸納時,把要?dú)w納的目標(biāo)(即目的值)放置在主寄存器中。一般說來,整個目標(biāo)都參加歸納。典型的情況下,主寄存器S0,0保存指令碼,它對于不同的指令呈不同的比特格式。寄存器S1,0和S2,0用于進(jìn)行雙值運(yùn)算(即需要二個操作數(shù)的運(yùn)算)寄存器S1,0用于單值運(yùn)算(即只有一個操作數(shù)的運(yùn)算)。一般情況下,后面的寄存器用于列表形式,因此在一次歸納之后它們的內(nèi)容即被推向左邊。
然后,在目標(biāo)寄存器S1,0和S2,0之間進(jìn)行重要的數(shù)值運(yùn)算。數(shù)值A(chǔ)LU的一個主加法器與這二個寄存器相連。其余的寄存器在象mul,div和mod等指令中用于補(bǔ)充目的。
可以使用下面的指令類型單值指令寄存器S0,0保持指令。寄存器S1,0保持操作數(shù)。寄存器S2,0和S3,0未使用。數(shù)值A(chǔ)LU的結(jié)果返回到所有主存貯器中。在非流水線的情況下,它被存貯在寄存器S1,0中在流水線的情況,它將被立即存入輔助寄存器或基寄存器中。
雙值指令寄存器S0,0保持指令,而寄存器S1,0和S2,0保存操作數(shù)。寄存器S3,0未使用。結(jié)果返回到所有的主寄存器中。在非流水線的情況下它被存貯在S1,0中,在采用流水線的情況下,它將被立即存入輔助寄存器或基寄存器中。
nul,div,mod指令寄存器S0,0保存指令,寄存器S1,0,S2,0保存操作數(shù)。寄存器S3,0可以用于暫時地存放中間結(jié)果。最終結(jié)果存入寄存器S1,0中。
unify指令聯(lián)合歸納時使用數(shù)值A(chǔ)LU比較寄存器S0,0中的內(nèi)容與寄存器S1,0的內(nèi)容。在執(zhí)行聯(lián)合時,也可以使用其他的主寄存器。寄存器的HEAD平面中存貯的特征字用來和比較結(jié)果一起用于計算下一個動作的值。
指令mul,div和mod完全在數(shù)值運(yùn)算單元內(nèi)執(zhí)行它們的內(nèi)環(huán)。計算到的中間值可以動態(tài)地存貯在磁心單元中數(shù)值運(yùn)算單元和主寄存器之間的連線(即點(diǎn)線NU)上。
3.結(jié)構(gòu)歸納在進(jìn)行結(jié)構(gòu)歸納期間,待歸納的目標(biāo)(即目的值)被放置在主寄存器中。一般情況下,基寄存器的一部分或全部將參加歸納。典型情況下,S0,0保持指令碼,對于不同的指令就會有不同的位格式。
map指令具有一個函數(shù)f和作為變元的一個清單(el,……en)。給清單中的每個元素都使用該函數(shù)。該指令返回每個函數(shù)使用的結(jié)果的一個清單(fe1,…,fen),這里fe1表示把f應(yīng)用于e1時的結(jié)果。
mapping指令格式(map f list)。
map指令裝入輔助寄存器F0中,把要使用的函數(shù)裝入輔助寄存器F1中。清單裝入主寄存器S0,0至S3,0中。如圖22a所示,存貯在主存貯器中的元素中的元素在底寄存器陣列中被向上轉(zhuǎn)送二層,就是說把寄存器SX,0中的內(nèi)容轉(zhuǎn)送至SX,2寄存器中這里的X為0至3的一個數(shù)。這種轉(zhuǎn)送是使垂直總線連線V0至V3來完成的。接下來,從圖22b中可以看出,輔助寄存器F0和F1的內(nèi)容被水平方向“廣播”給其它基寄存器,即F0的內(nèi)容拷貝至S0,0至S3,0,F(xiàn)1的內(nèi)容拷貝至S0,1至S3,1。如果一個元素為簡單值(不是清單),那么,該元素所在的那個寄存器單元(如S1,2)及它下方的寄存器單元(如S1,1)中的內(nèi)容要向下移位一層?,F(xiàn)在,要使用的函數(shù)位于主寄存器單元(如S1,0)中,即函數(shù)要施用作用的元素位于該主寄存器之上(如S1,1)中。如果元素為一個清單,則那一列寄存器中就不作移動。在圖22C中,假定e1,e2和e3表示簡單值,而e4表示插入清單。因此,基寄存器矩陣中的每一列都將作為一個閉包存入目標(biāo)寄存裝置中。然后,再把每一個這樣存貯了的閉包裝入磁心單元中進(jìn)行繼續(xù)處理。如果存貯的閉包包含一個簡單值,則它將以正常方式即f存入S0,0中、ei存入S1,0中(如圖22d所示)裝入磁心單元中。另一方面,如果存貯的閉包包含有一個插入清單,它也象圖22A那樣被裝入,只是e1為e4所表示的清單中的第一個元素,而e2則是e4中的第二個元素,等等。這將使mop指令循環(huán)地工作在這樣插入清單上。
這樣,具有二級結(jié)構(gòu)的map指令(map,f,(e1,…,en))被改寫成((f,el),,(f,en)),在執(zhí)行之后,它將被改寫成一個一級結(jié)構(gòu),
(fe1,…,fen),這里的fel表示把f應(yīng)用于el的結(jié)果。
具有三級(或更多)結(jié)構(gòu)的map指令(map,f,par(el,…,(ek,…,em),…,en))(這里(ek,…,em)為一插入清單)作為中間步驟被改寫成par((f,el)…,(map,f,(ek,…,em))…,(f,en)),再改寫成par((f,el),…,((f,ek),…,(f,em)…,(f,en)),在執(zhí)行之后,它將被改寫成一個二級結(jié)構(gòu)par(fel,…,(fek,…,fem),…,fen),這里的fel表示把f應(yīng)用于el的結(jié)果,這里的(f,ek,…fem)為一個插入清單。
這樣,函數(shù)f就將循環(huán)地應(yīng)用于變元清單中的所有元素上。
下面將描述磁心單元怎么重建和執(zhí)行一條map指令的示范例。為描述起來簡短起見,我們用縮寫reg表示寄存器,ident表示識別符,用storagel(存貯裝置)在表示目標(biāo)存貯裝置。范例指令為(map f(-1 -2(-7 -8))),這里f為定義為f(x)=abs(x)+1。采用機(jī)器識別符的機(jī)器表示可以是id1(map f id2)id2(-1 -2 id3)id3(-7 -8)這里的識別符id1表示含有(map f id2)結(jié)構(gòu)的閉包。
下面,x為0至3中的一個數(shù)。執(zhí)行下列的步驟第1步map存入寄存器F0中,f存入寄存器P1中,識別符id2存入寄存器S0,0中,第2步使識種符id2展開,即寄存器S0,0包含-1,寄存器S1,0,包含-2,寄存器S2,0包含識別符id3,第3步把寄存器SX,0中的內(nèi)容轉(zhuǎn)送到寄存器SX,2中,標(biāo)為未使用的寄存器不受影響。
第4步使map和f水平方向上進(jìn)行“廣播”,即寄存器SXSX,1中包含f,寄存器SX,0中包含map。標(biāo)為未使用的寄存器不受影響。
第5步其寄存器SX,2中為一簡單值的列被向下降一層,即S0,1中為-1,S0,0中為f,S1,1中為-2,S1,0中為f。第三列未觸及。
第6步把基寄存器矩陣中的每一列象下面那樣(重新)存入目標(biāo)存貯裝置中id1(id6 id7 id8)id6(f -1)
id7(f -2)id8(map f id3)第7步把識識符id6指定的閉包裝入主寄存器中,f裝入S0,0中,-1裝入S1,0中。
第8步把函數(shù)比方說f(x)=abs(x)+1應(yīng)用到變元上,得出結(jié)果2,該結(jié)果2又存貯在寄存器S0,0中。
第9步在目標(biāo)存貯裝置中執(zhí)行對識別符id6的關(guān)聯(lián)檢索,所有出現(xiàn)的識別符id6均被2所替代id1(2 id7 id8)id7(f -2)id8(map f id3)第10步對于id7執(zhí)行第7-9步,得到結(jié)果為3,目標(biāo)存貯器中id1(2 3 id8)id8(map f id3)第11步對于id8執(zhí)行第1至第6步,結(jié)果使得底矩陣的兩列存貯在目標(biāo)存貯器中id1(2 3 id8)id8(id9 id10)id9(f -7)id10(f -8)第12步對于id9和id10執(zhí)行第7-9步,分別得到結(jié)果為8和9。存貯裝置9。存貯裝置中
id1(2 3 id8)id8(8 9)它可以讀作(2 3(8 9))一這樣函數(shù)f被應(yīng)用到了變元清單中的所有元素上。
應(yīng)該注意的是,上述描述的步驟可以由磁心單元以一種不同的但更有效的方式來執(zhí)行比方說,一旦時機(jī)適當(dāng),就可以對中間結(jié)果作進(jìn)一步的歸納處理,而不是把它們存貯在目標(biāo)存貯裝置中。
transpose格式(transpose format)把轉(zhuǎn)送指令裝入一個輔助寄存器(如F0)中,把清單變元(如清單中的清單)裝入基寄存器矩陣中,見圖23?;拇嫫鞯膬?nèi)容被轉(zhuǎn)送。這樣,具有三級結(jié)構(gòu)的transpose指令(transpose,((em,…,e1,m),……(en,1,…,en,m)))被執(zhí)行的結(jié)果是改寫成一個二級結(jié)構(gòu)((el,1,…,en,1),……(e1,m,…,en,m))舉一個示范性實(shí)例一個清單結(jié)構(gòu)
((1 2 3 4),(5 6 7 8),(9 10 11 12),(13 14 15 16)),其第一個清單即(1,2,3,4)存入基寄存器的第一列即基寄存器SD,0至SO,3中,第二個清單(5,6,7,8)存入第二列基寄存器即基寄存器S1,0至S1,3中,與此類推;
被轉(zhuǎn)寫成((1 5 9 13),(2 6 10 14),(3 7 11 15),(4 8 12 16)),此刻,第一個清單(1 5 9 13)被存貯在第一列基寄存器(即基寄存器S0,0至S0,3中,與此類推。
swap格式(swap m list)swap(互換)指令執(zhí)行后,一個具有三級結(jié)構(gòu)的swap指令(swap m((e1,1,…),…(em,1,…,),(em+1,1,…,),……
(en,1,…)))(這里是元素ei,j的清單的清單,i,j是一個元素在基寄存器矩陣中的位置標(biāo)號)被改寫成一個二級結(jié)構(gòu)((e1,1,…),…(em+1,1,…),(em,1,…),……(en,1,…))。
這里元素(em,1,…)與元素(em+1,1,…)互換了位置。
skip格式(skip m list)skip指令執(zhí)行之后,一個具有三級結(jié)構(gòu)的skip指令(skip m((e1,1,…),……(em-1,1,…)(em,1,…)(em+1,1,…)……(en,1,…)))(這里是元素ei,j的清單的清單,i和j是一個元素在基寄存器矩陣中的位置標(biāo)號)被改寫成((e1,1,…),…(em=1,1,…),(em+1,1,…),…(en,1,…))這里的元素(em,1,…)已被刪除。
4.清單指數(shù)把一個包含清單的目標(biāo)放在主寄存器中。如果清單中包含屬于插入清單的元素,這些清單被垂直地存貯在子寄存器中。
expard-list操作可以在一個周期內(nèi)執(zhí)行,基寄存器中的內(nèi)容都被在對角線上向右下移動一步,只有主寄存器中的內(nèi)容除外,它們被轉(zhuǎn)送至垂直點(diǎn)線,插入到該列的最上方的基寄存器中(見圖24)??梢灾貜?fù)使用expand-list,從而給許多主寄存器單元“填充”數(shù)據(jù)。
雖然上面描述的這些磁心單元和寄存器單元的設(shè)計構(gòu)成了本發(fā)明的最佳實(shí)施例,應(yīng)該理解的是,本發(fā)明并不局限于這些特定的設(shè)計,不必離開本發(fā)明的范圍就能對它們作出許多改進(jìn)。
圖25中示出了磁心單元的另一個實(shí)施例。對于與圖7相同的磁心單元元素,我們使用了與圖7中相同的參考符號。具有與圖7不同的連接的元素我們標(biāo)上了11符號。圖7中的最佳實(shí)施例與圖25中的實(shí)施例的差別在于基寄存器S″0,0,S″1,0,S″2,0和S″3,0可以與一根沒有開關(guān)的連線res″相連。。另外還省略了點(diǎn)線連線Cid和Cfo,而且基寄存器的W(西)端口并不與基寄存器S3,y的E(東)端口相連(y為0至3間的一個數(shù)),而是這些端口上接有一個f(假)信號。磁心單元內(nèi)部對于某些指令的連接通道也可以稍微有些不同,但這不是功能上的差別,而是在磁心寄存器單元內(nèi)部控制那些內(nèi)部開關(guān)的差別。圖中的寄存器之間的連線也稍有不同,但是這也只是一個控制每個寄存器單元內(nèi)部的哪那內(nèi)部開關(guān)的問題。
圖26中示出了磁心寄存器單元的第二個實(shí)施例,這個實(shí)施例旨在給出這樣的事實(shí)即一個單元中的受控制的開關(guān)可以以不同的方式設(shè)置,同時,該單元仍具有同樣的功能。對于相同的部分使用了與圖8中相同的參考符號。具有與圖8中的連接不同的連接情況的部分被標(biāo)上了11符號。圖8和圖26中所示的實(shí)施例之間的主要區(qū)別在于于在圖26中省略了端口C和開關(guān)SWC,端口V和H各自只有一個開關(guān),采用了帶開關(guān)的端口L,L′和D而沒有使用帶開關(guān)的端口Da和Db。
雖然我們在上面是結(jié)合具體實(shí)施例描述本發(fā)明的,但是當(dāng)該理解的是,本技術(shù)領(lǐng)域內(nèi)的熟練人員在不離開本發(fā)明的精神范圍就可以作出許多改變,找出各個部分的等效物。此外,不離開本發(fā)明的基本示教還可以對本發(fā)明作出改進(jìn)。
權(quán)利要求
1.一種進(jìn)行結(jié)構(gòu)運(yùn)算處理的方法,包括a)把數(shù)字字存入多個寄存器中,每個數(shù)據(jù)字都有一個標(biāo)志部分和一個信息部分,上述的標(biāo)志部分包括一個指示著相關(guān)的寄存器是否在使用的標(biāo)志,b)上述數(shù)據(jù)字被安排在許多清單中,把每個上述的清單存貯在預(yù)定數(shù)量的上述寄存器中,存貯在上述寄存器中的上述清單中的每個數(shù)據(jù)字的標(biāo)志部分被標(biāo)定或在使用時能指示出一個上述的清單至少有一部分存貯在實(shí)際寄存器中,上述的有一部分存貯在上述實(shí)際寄存器中的清單包括一個清單指示,指示出它是什么類型的清單,從上述清單在上述寄存器中的配置可以清楚地看出清單之間的關(guān)系,c)使用屬于存貯在上述寄存器中的清單的上述清單指示控制上述寄存器,從而根據(jù)上述的清單指示在上述寄存器中重新安排清單和進(jìn)行寄存器內(nèi)容的輸入/輸出。
2.一種根據(jù)權(quán)利要求1的方法,其特征在于把存貯在上述寄存器中的許多清單安排成一個清單樹,把其中的一個清單作為根清單。
3.如權(quán)利要求2所述的方法,其特征在于把被存貯的清單樹的一個識別符存貯在一個分離的識別符寄存器中。
4.如權(quán)利要求2或3的方法,其特征在于把被存貯的清單樹的環(huán)境存貯在一個分離的環(huán)境寄存器中。
5.如權(quán)利要求2至4中任一個所述的方法,其特征在于根據(jù)待存貯的實(shí)際樹的級別,把上述的清單樹的根清單設(shè)置在不同的寄存器中。
6.根據(jù)權(quán)利要求5的方法,其特征在于把一些上述的寄存器安排成一個包括一行主寄存器的基寄存器矩陣。
7.根據(jù)權(quán)利要求5的方法,其特征在于把只包括一個級別的樹存貯在主寄存器中。
8.根據(jù)權(quán)利要求5的方法,其特征在于存貯包括二個級別的樹時,把其根清單存貯在上述的主存貯器,把分支清單存貯在上述的基寄存器中。
9.根據(jù)權(quán)利要求5的方法,其特征在于在上述的矩陣之外設(shè)置一組附加的寄存器(叫做輔助寄存器)。
10.根據(jù)權(quán)利要求9的方法,其特征在于存貯一個包括三個級別的樹時,把它的根清單存貯在上述輔助寄存器中,把它的一個元素存貯在上述的寄存器矩陣中。
11.根據(jù)權(quán)利要求2至10中任何一個的方法,從上述根清單的類型可以推導(dǎo)出有關(guān)要執(zhí)行什么類型的歸約的信息。
12.如權(quán)利要求11所述的方法,其特征在于上述的根清單的類型信息中包括一個表示待執(zhí)行的指令的指令碼。
13.如權(quán)利要求11所述的方法,其特征在于如果上述的類型為函數(shù)應(yīng)用,那么上述的根清單的第一個元素包括一個指令碼或者一個表示函數(shù)定義的清單樹的根。
14.如權(quán)利要求1至13中任一個的方法,其特征在于一個清單中的最大字?jǐn)?shù)為4。
15.如權(quán)利要求2至14中任一個的方法,其特征在于上述清單樹的最大深度為三級。
16.根據(jù)權(quán)利要求14的方法,其特征在于如果上述的深度為三級,存貯在上述寄存器中的上述根清單的上述清單指示,指示出上述的根清單具有多于一個的分支,則在上述的寄存器中只存入一個分支。
17.根據(jù)權(quán)利要求6至16中任一權(quán)利要求的方法,其特征在于對放置在上述寄存器如基寄存器及基寄存器和輔助寄存器中的數(shù)據(jù)目標(biāo)進(jìn)行結(jié)構(gòu)歸約。
18.如權(quán)利要求17所示的方法,其特征在于執(zhí)行一條mappinq(映射)指令,使得一條具有二級結(jié)構(gòu)的map指令(map,f,(ei,··en))這里map指令被寫入一個輔助寄存器中,待映射的函數(shù)寫入第二輔助寄存器中,指令元素ei的清單被寫入基寄存器中;在控制單元控制下被改寫成((f,ei),···(f,en)),這里,函數(shù)被“廣播”,指令元素被重新安置,從而對于上述的基寄存器中每一列而言,該函數(shù)處于該列中最低位的基寄存器中,一個指令元素位于該列中第二低的基寄存器中。
19.根據(jù)權(quán)利要求17的方法,其特征在于執(zhí)行轉(zhuǎn)送指令,使一條具有三級結(jié)構(gòu)的轉(zhuǎn)送指令(transpose,((ei,i,··ei,m),···(en,i,··en,m)))這里該transpose(轉(zhuǎn)送)指令被寫入輔助寄存器中,指令元素ei,j的清單的清單以及表示指令單元在上述矩陣中的符號i和j被寫入基寄存器矩陣中,從而使該基寄存器結(jié)構(gòu)中包括一個元素方陣,在控制單元的控制下被改寫成一個二級結(jié)構(gòu)((ei,i,··en,i),··(ei,m,··en,m))此時,輔助寄存器的值為空,基寄存器矩陣中的信息元素被轉(zhuǎn)送,從而在矩陣中被安置成相對于對角線的鏡象位置上。
20.根據(jù)權(quán)利要求17的方法,其特征在于執(zhí)行一次SWap(互換)操作,從而使具有三級結(jié)構(gòu)的swap指令(SWapm((ei,i,··),··(em,i,··),(em+i,i,··),···(en,i,··)))這里,指令元素ei,j的清單的清單以及該指令元素在上述基寄存器矩陣中的位置表示被寫入該基寄存器矩陣中,從而使基寄存器結(jié)構(gòu)中包含一個元素方陣,在控制單元的控制下被改寫成一個二級結(jié)構(gòu)((ei,i,··),··(em+i,i,··),(em,i,··),···(en,i,··))這樣,元素(em,i,··)與元素(em+i,··)互換了位置。
21.根據(jù)權(quán)利要求17的方法,其特征在于執(zhí)行一個SKIP(跳過)指令,從而使一個具有三級結(jié)構(gòu)的指令(SRiP m((ei,i,··),··(em+i,i,··)(em,i,··)(em+i,i,··)···(en,i,··))這里,在控制裝置的控制下,指令元素ei,j,(i,j為該指令元素在基寄存器矩陣中的位置表示)被改寫成((ei,i,··),··(em-i,i,··),(em+i,i,··),···(en,i,··))這里,元素(em,i,··)已被刪除。
22.一種進(jìn)行結(jié)構(gòu)運(yùn)算處理的運(yùn)算單元,包括a)至少一個用于輸入和輸出數(shù)據(jù)清單的輸入/輸出裝置(V0,V1,V2,V3,id,enV),b)每一個都適合于存貯一個數(shù)據(jù)字的多個寄存器(S0,0至S3,3,F(xiàn)0至P3,ID,ENV),每個數(shù)據(jù)字具有一個標(biāo)志部分和一個信息部分,上述的標(biāo)志部分中包含一個指示著相關(guān)的寄存器是否在使用的標(biāo)志,存貯在上述寄存器中的上述清單中的每個數(shù)據(jù)字的標(biāo)志部分被標(biāo)定為在使用中能指出一個上述的清單至少有一部分存貯在實(shí)際存貯器中,上述的有一部分存貯在上述實(shí)際寄存器中的清單包括一個清單指示,指示出它是什么類型的清單,從上述清單在上述寄存器中的配置可以清楚地看出清單之間的關(guān)系,c)控制裝置(6P),該裝置使用屬于存貯在上述寄存器中的清單的上述清單指示來控制上述寄存器,從而根據(jù)清單指示在上述寄存器中重新安排清單和進(jìn)行寄存器內(nèi)容的輸入和輸出。
23.根據(jù)權(quán)利要求22的運(yùn)算單元,其特征在于存貯在上述寄存器中的清單被按排成一個清單樹,其中一個清單為根清單。
24.根據(jù)權(quán)利要求22或23的運(yùn)算單元,其特特在于上述的寄存器存貯清單的最大數(shù)量為4。
25.根據(jù)權(quán)利要求23或24的運(yùn)算單元,其特征在于上述的清單樹的最大深度為三級。
26.根據(jù)權(quán)利要求25的運(yùn)算單元,其特征在于如果上述的深度為三級,存貯在上述寄存器中的上述根清單的清單指示指示出該根清單具有一個或多個分支,上述控制裝置就只將一個分支存入上述的寄存器中。
27.根據(jù)權(quán)利要求22至26中的任一個的運(yùn)算單元,其特征在于提供了至少一個附加寄存器(ID),要存貯的清單樹的識別符能存入其中。
28.根據(jù)權(quán)利要求22至27中的任一個的運(yùn)算單元,其特征在于提供了至少一個附加寄存器(ENV),待存貯的清單樹的環(huán)境能存入其中。
29.根據(jù)權(quán)利要求22至28中任一個的運(yùn)算單元,包括一個寄存器矩陣(S0,0至S3,3),其周邊行(S0,0至S3,0)為主寄存器,上述矩陣的各列為基寄存器。
30.根據(jù)權(quán)利要求29的運(yùn)算單元,其特征在于包括設(shè)置在上述矩陣之外的多個輔助寄存器(P0至P3)。
31.根據(jù)權(quán)利要求23至30中的任一個的運(yùn)算單元,其特征在于上述清單樹的根清單適于根據(jù)要存貯的實(shí)際樹的級別存貯在不同的寄存器中。
32.根據(jù)權(quán)利要求29的運(yùn)算單元,其特征在于只包含一個級別的樹適于存貯在上述的主寄存器(S0,0至S3,0)中。
33.根據(jù)權(quán)利要求29的運(yùn)算單元,其特征在于包含二個級別的樹適合于把樹清單存貯在上述的主寄存器(S0,0至S3,0)中,把分支清單存入上述基寄存器(S0,0至S0,3,S1,0至S1,3,S2,0至S2,3,S3,0至S3,3)中。
34.根據(jù)權(quán)利要求30的運(yùn)算單元,其特征在于包含三級結(jié)構(gòu)的樹適合于把樹清單存入上述的輔助寄存器(F0至F3)中,把它的一個存貯元素存入上述的寄存器矩陣中。
35.根據(jù)權(quán)利要求23至34中任一個的運(yùn)算單元,其特征在于上述的控制裝置(6P)能從上述的根清單的類型得出有關(guān)要進(jìn)行什么樣的歸約的信息。
36.根據(jù)權(quán)利要求35的裝置,其特征在于上述的根清單中的類型中的信息包括一個控制裝置(6P)將用來推導(dǎo)出執(zhí)行什么類型的指令的信息的一個指令碼。
37.根據(jù)權(quán)利要求35的方法,其特征在于如果上述的類型為函數(shù)應(yīng)用,則上述根清單的第一個元素將包括一個指令碼或者表示函數(shù)定義的清單樹的根,控制裝置(6P)將用它們來推導(dǎo)出歸約該根清單要來取的行動。
38.根據(jù)權(quán)利要求22至37中的任一個的運(yùn)算單元,其特征在于上述寄存器中的數(shù)據(jù)堆棧被設(shè)置成一種分片方式,使得在每個數(shù)據(jù)棧中占據(jù)相同位置的每個堆棧位元素在一個平面能逐位互相連接起來,上述的平面包括所有屬于所有的、在相關(guān)的位置上具有一個堆棧位元素的寄存器的堆棧元素(圖7)。
39.根據(jù)權(quán)利要求38的運(yùn)算單元,其特征在于一些上述的寄存器具有比其它寄存器長的堆棧,因此,某些平面上只具有屬于較長的寄存器的堆棧位元素(圖2)。
40.根據(jù)權(quán)利要求38的運(yùn)算單元,其特征在于至少有一部分寄存器(基寄存器)排列成由N×N個寄存器組成的矩陣中的行和列,N為整數(shù);上述基寄存器中的上述堆棧元素逐位互連起來;對于該基寄存器堆棧中的每一位而言,為每列提供了一根列線(V0,V1,V2和V3),為每行提供了一根行線(h0,h1,h2和h3),在具有相同的行號和列號的上述列線和行號的每個交點(diǎn)上提供了一個可控開關(guān)(SWv0,SWv1,SWv2,SWv3);每個基寄存器至少與最近的行線和列線具有可控的寄存器連接;在沿行和沿列相鄰的寄存器之間也提供了連接。
41.根據(jù)權(quán)利要求40的運(yùn)算單元,其特征在于上述的控制裝置(6P)適合于控制上述的可控開關(guān)及上述的可控寄存器連接,并根據(jù)要執(zhí)行的指令的種類完成下列三種連接中的一種a)從一個寄存器至另一個寄存器的單方向的簡單連接,b)寄存器之間的二個分離的連接,一根一個方向,c)寄存器之間的時間復(fù)合連接,其中被存貯的清單元素目前在一個方面、下二個相位內(nèi)在另一個方向上傳輸。
42.根據(jù)權(quán)利要求22的運(yùn)算單元,其特征在于寄存器堆棧中的每個單元包括a)一個內(nèi)部一位寄存器(rR),b)能與上述的一位寄存器相連的至少一根內(nèi)部單線總線(aR、bR),c)至少一根內(nèi)部的可控連接線,其中每根都有一個可由控制裝置(6P)加以控制從而使上述的至少一根單線總線中的至少一根與下列各部分之一相連的開關(guān)(SWu、SWE、SWvi、SWvo、SWHi、SWHo、SWDb、SWao、SWai、SWbo、SWbi)一根單元外的總線和屬于另一個寄存器堆棧中的諸單元中的一個。
43.根據(jù)權(quán)利要求42的運(yùn)算單元,其特征在于上述的至少一個內(nèi)部一位寄存器(rR)包括一個輸入緩沖器(Q1)(如反相器)、一個輸出緩沖器(Q2)(如反相器)及連接在上述緩沖器之間的一個可控開關(guān)(SWQ)。
44.根據(jù)權(quán)利要求43的運(yùn)算單元,其特征在于上述的輸入緩沖裝置和輸出緩沖裝置可以通過可控開關(guān)與上述的至少一根內(nèi)部單線總線(aR、bR)相連。
45.根據(jù)權(quán)利要求40的運(yùn)算單元,其特征在于每個寄存器單元包括a)第一(aR)和/或第二(bR)內(nèi)部單線總線,b)一個內(nèi)部一位寄存器(rR),c)第一組包含開關(guān)的內(nèi)部可控連接線,上述的開關(guān)可由控制裝置加以控制,從而使上述的第一總線能與上述的內(nèi)部寄存器的第一輸入端相連,另外與連接著其他寄存器單元的第一組多組外部總線相連,d)第二組含有開關(guān)的內(nèi)部可控連接線,上述的控制裝置可對上述的開關(guān)進(jìn)行控制,從而使上述的第二總線能與第二內(nèi)部寄存器的第二輸入端相連,還與連接著其他寄存器單元的多根外部總線相連;e)第三組含有開關(guān)的內(nèi)部可控總線,上述的控制裝置可對上述的控制裝置進(jìn)行控制,從而使上述的內(nèi)部一位寄存器的輸出與上述的第三組多根外部總線相連。
46.根據(jù)權(quán)利要求45的運(yùn)算單元,其特征在于根據(jù)位置不同,有些上述的寄存器具有與上述的至少一根內(nèi)部連接線中不屬于至上述的內(nèi)部寄存器的連線固定相連的固定值。
47.根據(jù)權(quán)利要求45的運(yùn)算單元,其特征在于每個上述的可控連接線是至少一個包括下列構(gòu)成的可控開關(guān)一個MOS場效應(yīng)管(圖9),二個互補(bǔ)的MOS場效應(yīng)管。
48.根據(jù)權(quán)利要求43的運(yùn)算單元,其特征在于每個反相器包括下列設(shè)置之一二個互補(bǔ)的MOS場效應(yīng)管(圖9C),二個增強(qiáng)型MOS場效應(yīng)管(圖9A),一個增強(qiáng)型MOS場效應(yīng)管和一個耗盡型MOS場效應(yīng)管(圖9B)。
49.根據(jù)權(quán)利要求43的運(yùn)算單元,其特征在于連接了一個比較器,用于比較各部分寄存器中的內(nèi)容,并把比較結(jié)果提供到稱之為訪問線的外部總線中的一根連接線上。
50.根據(jù)權(quán)利要求49的運(yùn)算單元,其特征在于上述的比較器包括a)一個第一與非門,它的第一輸入端與上述的第一緩沖裝置(Q1)的上述內(nèi)部寄存器開關(guān)一側(cè)相連,第二輸入端與上述的內(nèi)部寄存器開關(guān)和第二緩沖裝置(Q2)的交點(diǎn)相連,b)第二與非門,它的第一輸入端與上述的第二緩沖裝置(Q2)的上述內(nèi)部寄存器開關(guān)一側(cè)相連,第二輸入端與上述的內(nèi)部寄存器開關(guān)與第一緩沖裝置(Q1)的交點(diǎn)相連,把上述二個與非門的輸出互連,并連接至稱之為訪問線的上述總線的外部總線連線。
51.根據(jù)權(quán)利要求50的運(yùn)算單元,其特征在于每個上述的與非門包括二個具有串接的源/漏通道的MOS場效應(yīng)管,這二個場效應(yīng)管的柵極為與非門的輸入,上面那個MOS場效應(yīng)管的漏極即是送至外部總線連線的輸出。
52.根據(jù)權(quán)利要求30的運(yùn)算單元,其特征在于上述的寄存器矩陣被設(shè)置成能在上述控制裝置的自動控制之下對放置在上述的基寄存器中的數(shù)據(jù)目標(biāo)執(zhí)行結(jié)構(gòu)歸約。
53.如權(quán)利要求52所示的方法,其特征在于執(zhí)行一條mappinq(映射)指令,使得一條具有二級結(jié)構(gòu)的map指令(map,f,(ei,··en))這里map指令被寫入一個輔助寄存器中,待映射的函數(shù)寫入第二個輔助寄存器中,指令元素ei的清單被寫入基寄存器中;在控制單元控制下被改寫成((t,ei),···(f,en)),這里,函數(shù)被“廣播”,指令元素被重新安置,從而對于上述的基寄存器中每一列而言,該函數(shù)處于該列中最低位的基寄存器中,一個指令元素位于該列中第二低的基寄存器中。
54.根據(jù)權(quán)利要求53的方法,其特征在于執(zhí)行轉(zhuǎn)送指令,使一條具有三級結(jié)構(gòu)的轉(zhuǎn)送指令(tramspose,((ei,i,··ei,n),···(em,i,··em,m)))這里該tramspose(轉(zhuǎn)送)指令被寫入輔助寄存器中,指令元素ei,j的清單的清單以及表示指令單元在上述矩陣中的符號i和j被寫入基寄存器矩陣中,從而使該基寄存器結(jié)構(gòu)中包括一個元素方陣,在控制單元的控制下被改寫成一個二級結(jié)構(gòu)((ei,i,··en,i),··(ei,m,··en,m))此時,輔助寄存器的值為空,基寄存器矩陣中的信息元素被轉(zhuǎn)送,從而在矩陣中被安置成相對于對角線的鏡象位置上。
55.根據(jù)權(quán)利要求52的方法,其特征在于執(zhí)行一次SWap(互換)操作,從而使具有三級結(jié)構(gòu)的SWap指令(SWap m((ei,i,··),··(em,i,··),(em+i,i··),···(en,i,··)))這里,指令元素ei,j的清單以及該指令元素在上述基寄存器矩陣中的位置表示被寫入該基寄存器矩陣中,從而使基寄存器結(jié)構(gòu)中包含一個元素方陣,在控制單元的控制下被改寫成一個二級結(jié)構(gòu)((ei,i,··),··(em+i,i,··),(em,i,··),···(en,i,··))這樣,元素(em,i,··)與元素(em+i,··)互換了位置。
56.根據(jù)權(quán)利要求52的方法,其特征在于執(zhí)行一個SKIP(跳過)指令,從而使一個具有三級結(jié)構(gòu)的指令(SRiP m((ei,i,··),··(em-i,i,··)(en,i,··)(em+i,i,··)···(en,i,··))這里,在控制裝置的控制下,指令元素ei,j,(i,j為該指令元素在基寄存器矩陣中的位置表示)被改寫成((ei,i,··),··(em-i,i,··),(em+i,i,··),···(en,i,··))這里,元素(em,i,··)已被刪除。
57.根據(jù)權(quán)利要求22的運(yùn)算單元,其特征在于它是一個中央處理單元的一部分。
全文摘要
本發(fā)明涉及用于結(jié)構(gòu)運(yùn)算處理的方法和運(yùn)算單元。每個具有一個標(biāo)志部分和一個標(biāo)志部分的數(shù)據(jù)字存貯在幾個寄存器中。這些數(shù)據(jù)字被安排在清單中。每個清單都存貯在預(yù)定數(shù)量的寄存器中。存貯在寄存器中的清單中的每個字的標(biāo)志部分在使用時用來表明,一個清單有至少一部分存貯在實(shí)際寄存器中。清單包括一個清單指令。寄存器由一個控制裝置所控制。該裝置使用屬于該清單的清單指令來在寄存器中重新安排清單,并且根據(jù)該清單指令輸入/輸出寄存器的內(nèi)容。
文檔編號G06F7/38GK1059225SQ9110527
公開日1992年3月4日 申請日期1991年8月2日 優(yōu)先權(quán)日1990年8月2日
發(fā)明者卡爾斯特·拉斯·岡納 申請人:卡爾斯特電子公司