欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

計算裝置的制作方法

文檔序號:6742579閱讀:280來源:國知局
專利名稱:計算裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一個計算裝置。
計算機是二十世紀(jì)四十年代發(fā)明的。此后即以革命化的速度得到了發(fā)展,但盡管如此,現(xiàn)今的計算機與最先的計算機幾乎具有相同的結(jié)構(gòu)。
大部分改進是對硬件作出的,VLSI的引進以及對平板印刷術(shù)的加強已使得有可能制造單片計算機,這種計算機僅僅在五年前被稱之為超級計算機,行寬按指數(shù)規(guī)律得到了縮小,現(xiàn)在已小于1微米,時鐘頻率以及有源晶體管的數(shù)目增加了好幾個數(shù)量級,物理限制很可能將行寬限制在0.2微米。
同時,在使用硅方面計算機的結(jié)構(gòu)沒有作出改進,相反,大部分計算機為了獲得更快的速度,在硅量的使用上已超過了最佳的用量。
這兩方面事實在下一個五年中將阻止單處理機速度的發(fā)展。并行處理機的引進,由于其復(fù)雜程度增大導(dǎo)致了硬件費用的增長,而且對大部分型式的程序而言編程費用的過高增加。
兩者相互聯(lián)系起來看,新系統(tǒng)的硬件費用得以縮小,但其編程費用將大大提高并將很快達(dá)到無法容忍的程度。
一臺計算機是由硬件和軟件構(gòu)成的許多不同單元的復(fù)雜組裝體,在其發(fā)展過程中的許多范例和階段產(chǎn)生了許多標(biāo)準(zhǔn)(特設(shè)的和建立的),這些標(biāo)準(zhǔn)散布于系統(tǒng)中,由于這一非一致性,導(dǎo)致系統(tǒng)中存在大量接口。
所有這些具有不同質(zhì)量和型式的接口和范例使得一個用戶或一個編程員在使用機器上產(chǎn)生了困難,因為這要求大量的知識,而且由于其復(fù)雜性,一個編程員會引入一些不易發(fā)現(xiàn)的錯誤。
然而,最近發(fā)展了所謂的歸約處理器,一臺歸約處理器執(zhí)行具有某種包含算術(shù)表達(dá)式的結(jié)構(gòu)的程序,這種結(jié)構(gòu)按若干歸約步驟進行歸約,因此,此程序不是像在其它形式的計算機中那樣按給定次序來執(zhí)行的。
要將歸約處理器發(fā)展到超過一有限的尺寸還存在著一些困難。
第一臺電子計算機的發(fā)展開始了適用于這種形式的計算機的多種編程語言的發(fā)展,例如FORTRAN、COBOL、ALGOL、BASIC、PASCAL,這些語言被稱之為命令語言,下面也將其稱之為傳統(tǒng)語言,其主要原因是因為它們通常給出包含一系列命令或指令的程序由一傳統(tǒng)計算機(即根據(jù)John Von Neumann提出的原理而設(shè)計的計算機)順序執(zhí)行,這些程序所出現(xiàn)的越來越多的不足導(dǎo)致了另一系列語言的發(fā)展LISP、ISWIM、SCheme(LISP的一種語言)、ML、Hope、SASL等等。這些語言發(fā)展的動力是為了概念上的簡單化,沒有特定的機器影響其設(shè)計。函數(shù)式語言過了許久才開始得到重視,原因之一是函數(shù)式語言執(zhí)行較慢,隨后的發(fā)展表明其執(zhí)行速度在某些情況下可能接近或相同于傳統(tǒng)(命令)語言由傳統(tǒng)計算機執(zhí)行的速度,即使這些函數(shù)式程序的目的并非在于由這種形式的計算機來執(zhí)行。
使得人們開始大量努力發(fā)展函數(shù)式語言的原因是對命令形語言日益增長的不滿,大約從1970年開始人們談起了有關(guān)軟件危機的問題,程序變得越來越復(fù)雜,通常包含許多錯誤,難讀,難懂,而且特別難于修改,原因之一是人們對高級的命令語言將簡化編程的期望值太高,而實際上這些高級的命令語言并沒有達(dá)到它們期望達(dá)到的水平高度。命令語言仍然適用于早期的計算機概念,即馮·諾依曼計算機,而且編程水平還是很接近于機器水平。函數(shù)式編程語言具有一些特性能緩解傳統(tǒng)編程語言的一些缺點。
為了獲得額外的信息及進一步的理解,我們可以參考教科書“采用ML標(biāo)準(zhǔn)的函數(shù)式編程(Functional Programming Using Standard ML),Ake Widstrom,Prentice Hall 1987)。
為了完整地理解本發(fā)明的目的和優(yōu)點,很有必要先了解什么構(gòu)成了計算機中的函數(shù)式方法,特別要與最普遍采用的命令式方法進行比較。
“函數(shù)式方法”是指程序是用一種函數(shù)式語言寫出的并且存儲于并被執(zhí)行于一臺包含特別適用這一語言的硬件的計算機上,同樣,“命令式方法”是指程序用一種命令語言寫出并且存儲于和被執(zhí)行于一臺包含適用命令語言的硬件的計算機上。
然而由一函數(shù)式語言所寫出的程序也可以存儲于并被執(zhí)行于一臺傳統(tǒng)計算機上,反之亦然,用一種命令語言所寫出的程序能在適用于執(zhí)行用函數(shù)式語言所寫出的程序的計算機上執(zhí)行。
用一種函數(shù)式語言所寫的程序看起來像是目標(biāo)特性的一系列定義以及象是計算規(guī)則,所述定義是說明部分而計算規(guī)則(或歸約或再寫規(guī)則)是計算機在操作過程中所用的操作部分,函數(shù)式語言給計算機提供一較高級的接口使得編程員可以不必考慮計算機與硬件相關(guān)的細(xì)節(jié)問題,函數(shù)式程序有一實際的付效應(yīng),即該程序通常比傳統(tǒng)的命令程序要簡短、易懂。函數(shù)式語言的一個主要缺點是當(dāng)函數(shù)式程序要在傳統(tǒng)的計算機上執(zhí)行時必須翻譯成一種傳統(tǒng)語言,這可通過編譯程序或翻譯程序來實現(xiàn)。很明顯,函數(shù)式方法的一些好處被下述事實所限制,即沒有專用的硬件以一有效的方式來存儲及執(zhí)行函數(shù)式程序。
下表列出了該說明書中所用到的一些詞句以及其專門的意義單元 某些具有較大數(shù)據(jù)結(jié)構(gòu)的部分表 元素的有序序列,每個元素按序是一個表插入表 表的一部分,它足夠小因而能將其整體存儲于一個閉包中,使它可以表示任意長的表閉包 定義一個過程的分極構(gòu)造實體,所用閉包都有一個唯一對其作出定義的根。歸約機器中的歸約工作是在閉包中實現(xiàn)的,機器的整體狀態(tài)通過歸約進行變換。
目標(biāo)存儲器 包含存儲目標(biāo)的存儲單元的存儲器,例如一個關(guān)聯(lián)存儲器存儲單元 目標(biāo)存儲器中的一個單元,它存儲一個單元閉包,該單元閉包可能與存儲在其它存儲單元中的其它單元閉包有關(guān)單元閉包 一個存儲單元中的內(nèi)容存儲單元字段 在一存儲單元中的字段閉包單元 存儲在一個存儲單元字段中的數(shù)據(jù)元閉包標(biāo)記符 唯一指定一個閉包的一個閉包單元元素規(guī)范閉包 不能被進一步歸約的一個閉包,即不包含任何指派某些其它單元閉包的閉包標(biāo)志符,該其它單元閉包能按這樣的一種方式歸約,即該單元閉包能進一步歸約目標(biāo) 閉包將被執(zhí)行,即被歸約父 在一數(shù)值/符號字段具有至少一個閉包標(biāo)志符的一個閉包子 通過一個閉包標(biāo)志符(指示一個子)聯(lián)接到另一閉包的一個閉包一個子也可以是一個父,一個父也可以是一個子,一個子可能具有多于一個父,一個父可以具有多于一個子。
閉包位置 確定封閉是一個根或一個節(jié)點根 在一根封閉樹中最上面的閉包單元節(jié)點 在一封閉樹中不是根的一個閉包單元地點 包含一個閉包位置的一個存儲單元字段類型 在一單元閉中的類型碼,即代表目標(biāo)的一個特性的一種位格式,例如一個指令碼懶惰 在一單元閉包中的一個元素,它指示是可執(zhí)行的(lazy) 或是延期求值或是不動的標(biāo)識符 一種特殊的閉包元,用于指示存儲在一存儲單元中的一個目標(biāo)環(huán)境 通過給它們相同的環(huán)境目標(biāo)可以組成組數(shù)值/指示 一個閉包元素,或者是存儲一簡單的數(shù)值,即一個直接表達(dá)式,或是什么也沒有,或者一個對另一閉包的指示,即一個非直接表達(dá)式核心單元 根據(jù)本發(fā)明的結(jié)構(gòu)運算單元,核心單元可以執(zhí)行包含有歸約閉包的結(jié)構(gòu)運算
(ALU)數(shù)字運算器 數(shù)字運算部件能進行基本的數(shù)值和邏輯操作,核心單元采用數(shù)字運算器進行數(shù)字操作全寄存器 擴展到遍及所有核心單元中的平面寄存器核心字 在核心單元中全寄存器中的內(nèi)容有限寄存器 在一核心單元中的寄存器,通過有限的平面量擴展以包含一個數(shù)值/標(biāo)志型的閉包單元元素元素字 一個有限寄存器或與有限寄存器具有相同擴展范圍的一部分全寄存器中的內(nèi)容數(shù)字字 元素字的一部分,代表一個數(shù)值或一個符號特征字 一個元素字的某一部分,具有指示數(shù)字字中的表示特性的特征歸約 根據(jù)所用的特殊編程語言的規(guī)則重寫/重新構(gòu)造一個閉包特性狀態(tài) 一時間結(jié)構(gòu),例如在一端上統(tǒng)一的一個系列或系列的替換。類似于數(shù)學(xué)術(shù)語集合理論中的空集,它也可簡化應(yīng)用,例如一個“1”在原理上可以是一個特性狀態(tài)本發(fā)明的一個目的是提供一個具有一種陳述性編程語言的計算設(shè)備。
本發(fā)明的另一目的是提供一個如歸約處理器一樣工作的計算設(shè)備。
本發(fā)明的更進一步的目的是提供一個具有一個編程語言的計算設(shè)備,該編程語言簡單、并使編程員不必考慮所有與硬件相關(guān)的細(xì)節(jié),并且用該語言寫程序花費時間少,而且出錯少。
本發(fā)明的另一目的是提供一計算設(shè)備,它具有作為編程語言的一種語言、操作系統(tǒng)和通訊協(xié)議。
更進一步的目的是提供一計算設(shè)備能夠執(zhí)行一種函數(shù)式語言,該語言具有作為其約束方法的單一化。
上述目的實質(zhì)上可通過構(gòu)造一個計算設(shè)備而得以達(dá)到,該計算設(shè)備包括a)一快速存儲裝置,包含許多存儲單元,每一單元中具有能實現(xiàn)一操作的信息,b)至少一個端口裝置,連接到所述存儲裝置,c)至少一個環(huán)境裝置,連接到所述至少一個端口裝置。
最好是包括用于將一端口裝置所提供的信號序列與存儲在至少一個存儲單元中的序列進行比較的裝置,在快速存儲裝置中所存儲的序列具有可能沒定義的序列元素,以及包括將比較次序重寫為零的裝置,即表示某事不一致,如果比較給出一個明顯的差別?;?qū)⑺霰容^次序重寫為一特定次序。
比較裝置可以進行成組比較,組中可包含一予定數(shù)目的表單元中的至少兩個單元。
信號序列最好是一隨時間變化具有單一取樣周期的一個取樣信號,信號序列是元素組表,每一組包括一持續(xù)時間和至少一個在該時間內(nèi)的信號量,每一組中的予定數(shù)目的表元素適合于兩個組成一對,每一對包括時間和信號量的組合。
可提供用于將所述端口裝置的一個與所述端口裝置的至少另一個同步來在每一持續(xù)時間內(nèi)對所述接口的信號量作出并行指示的裝置,這樣在不同端口的信號量可能在同時導(dǎo)出并可以相互比較。
存儲單元裝置在快速存儲器中最好具有某種結(jié)構(gòu)能適用于以一種明確的或隱含的抽象語法編碼來存儲一計算機程序,所述語法通過表達(dá)式來描述一些不同的抽象目標(biāo),每一存儲單元裝置每次可以以適用的數(shù)據(jù)和/或語法結(jié)構(gòu)形式來存儲至少一個所述語法表達(dá)式的一部分。
每一種表達(dá)式還可以具有一相應(yīng)的表達(dá)式,指示它是一程序形式,所有程序形式都是適用于歸約它們本身從而保持有效的表達(dá)式,這使得可以為任意形式的其它語言寫入編譯器和解釋器。
重寫裝置與包含語法表達(dá)式的所述存儲單元結(jié)合根據(jù)予定的重規(guī)則重寫語法表達(dá)式。
根據(jù)本發(fā)明的計算設(shè)備最好是具有由硬件構(gòu)成的說明性編程語言的一臺計算機,此時編程語言也是一種機器語言,然而,如同現(xiàn)今的許多電子設(shè)備一樣,根據(jù)本發(fā)明的計算設(shè)備的連線可以用一個具有解釋器或編釋器的常用型計算機來模擬,該機器的例子是基于M68000處理機的機器,例如Sun3。然而,根據(jù)本發(fā)明該機器有一端口可提供一致性。
要執(zhí)行的一個程序可由閉包方向圖來代表,其中程序的每一部分都用一個閉包表示在執(zhí)行過程中,這閉包方向圖根據(jù)所用語言的歸約規(guī)則逐步歸約,當(dāng)不剩下任何可執(zhí)行的閉包時,程序的執(zhí)行就結(jié)束了。一個閉包方向圖可以看作是樹結(jié)構(gòu),樹中的每個節(jié)點是一個閉包,而最上面的節(jié)點稱為根。通過歸約來執(zhí)行程序通常就是由下而上歸約樹結(jié)構(gòu),最先歸約樹中離根最遠(yuǎn)的部分,逐漸接近于根。這種形式的執(zhí)行方式通常稱之為需求驅(qū)動執(zhí)行(demand driven execution)方式,即擱置依賴于其它部分執(zhí)行結(jié)果的程序部分的執(zhí)行直止得到所需結(jié)果出來為止。
為了完整地了解本發(fā)明以及進一步明確其目的和優(yōu)點,可參考下面結(jié)合附圖所作的說明,其中

圖1是根據(jù)本發(fā)明的計算設(shè)備的原理圖;
圖2是在一端上的一個信號序列的圖;
圖3示出根據(jù)本發(fā)明的一個計算設(shè)備的一個實施例的原理方框圖;
圖4大致示出在圖3的實施例中的一個目標(biāo)存儲器中的存儲單元的不同字段的使用;
圖5示出一個函數(shù)如何能被存儲在目標(biāo)存儲器的一個存儲單元中的例子;
圖6示出了對外界的一個端口的實施例;
圖7示出了一個所謂H端口的實施例;
圖8A、8B、8C示出了圖3的計算設(shè)備實施例中的結(jié)構(gòu)運算單元中的不同類型的寄存器;
圖8D示出了一個結(jié)構(gòu)運算單元的實施例;
圖9A至9F示出在一結(jié)構(gòu)運算單元中的不同數(shù)據(jù)存儲器格式;
圖10A至10H、11A至11G、12A至12H示出了根據(jù)本發(fā)明的計算設(shè)備操作的例子。
圖1示意表示根據(jù)本發(fā)明的計算裝置,其中包括一個快速存儲器U1,以下稱之為快速目標(biāo)有儲器,說它是快速的是因為它包含的每個存儲單元都具有能導(dǎo)致計算操作的機會。最好是每個目標(biāo)存儲單元被分為幾個存儲字段,對目標(biāo)存儲器的相關(guān)搜索可以對存儲字段的內(nèi)容進行,一個存儲單元可以存儲一個單元閉包,一個單元閉包能存儲對其它單元閉包的指示作為閉包元,一個函數(shù)可作為包括多個相互標(biāo)識單元閉包的一棵閉包樹,對這些特性將在下面作進一步描述。
目標(biāo)存儲器為本發(fā)明的計算裝置提供一個內(nèi)部狀態(tài),在目標(biāo)存儲器中相應(yīng)于各個端口的多個內(nèi)部狀態(tài)PR1、PR2、……PRn被存儲在不同的地方,即不同的存儲單元中,若干端口U2至U5連到快速目標(biāo)存儲器U1,端口U2至U5的輸入信號RWu2至RWu5可由傳感器提供或者是由計算裝置以外即真實世界環(huán)境中的信息所提供。
一個狀態(tài)是指基本單元能隨時間而變化的一種結(jié)構(gòu),因此,狀態(tài)是一個時間結(jié)構(gòu)但并不表示為什么一個結(jié)構(gòu)會變化,時間結(jié)構(gòu)可認(rèn)為是一個復(fù)合過程的狀態(tài)。本發(fā)明的計算裝置特別適應(yīng)于一種說明性的編程語言,以下稱之為H,它和命令語言不同,對狀態(tài)和轉(zhuǎn)換沒有明確的說明,相反,所有的狀態(tài)都用表達(dá)式來表述,狀態(tài)一詞指的就是隨時間變化的一種結(jié)構(gòu)、一個序列或多個序列中引起改變的一個序列,與數(shù)學(xué)中集合理論的空集應(yīng)用相比較,對于所有可能的值,它也使用一種簡化的形式。
端口將輸入信號轉(zhuǎn)換為適用于快速目標(biāo)存儲器的形式,例如數(shù)字形式,并為其提供可與快速目標(biāo)存儲器中的信息相比較的信號形式,這個對于上述端口是內(nèi)部的信息包括一個或多個可替換的狀態(tài)PR1、PR2、……PRn。
一個端口Ui(i為2至5間的一個數(shù))可看作為作為一個狀態(tài)提供的實地環(huán)境的一部分,所述狀態(tài)由一無窮的時間序列值組成,該序列可以樹結(jié)構(gòu)存儲在計算設(shè)備內(nèi),下面將作進一步描述。圖2表示這種序列的一個例子,取樣信號的序列可隨時間而變化,即取樣周期可以是各別的。由圖2可清楚地看出,既可由計算機程序選擇也可由外界給出,信號序列在這里可以提供為一列元素對,每一對包括一個持續(xù)時間和在此時間內(nèi)的信號量值,在每一時間周期內(nèi),也可能有多于一個的信號量,例如,這種情況可能出現(xiàn)于一個端口,它在每個持續(xù)時間內(nèi)具有一個以上的信號量值或者出現(xiàn)于并行端口,每個端口可能在每個持續(xù)時間內(nèi)處理一個信號量值,端口之間彼此是同步的。
根據(jù)本發(fā)明,經(jīng)由端口到其周圍設(shè)備的輸入和輸出由在其每一邊所提供的聯(lián)合處理所構(gòu)成,即聯(lián)合計算設(shè)備中的內(nèi)部狀態(tài)以及其周圍環(huán)境的外部狀態(tài)。用函數(shù)式語言H所寫的程序提供到快速目標(biāo)存儲器產(chǎn)生本地狀態(tài),實地狀態(tài)實時地描述一個規(guī)程,因此計算裝置朝向周圍的端口記錄計算裝置所看見的真實狀態(tài),它與計算機中討論的規(guī)程相統(tǒng)一。在本發(fā)明的計算裝置中這些究竟是如何實現(xiàn)的將在后面作進一步描述。計算裝置的內(nèi)部狀態(tài)和外部狀態(tài)都以相同的方式設(shè)計,該方式提供一個很精確的操作方式使得計算裝置很適合于作實時操作。
因此,計算裝置包括至少一個比較的可能性,用于將在一端口提供給周圍的一個信號序列與存儲在快速目標(biāo)存儲器的至少一個存儲單元(在多數(shù)情況下是多個存儲單元)中的一個序列進行比較,在聯(lián)合操作過程中,所有那些與實地環(huán)境中的狀態(tài)不相符合的可替換的內(nèi)在狀態(tài)都被舍棄,一個正確的程序應(yīng)該僅有一個可替換狀態(tài)在統(tǒng)一操作后保留下來,而這一狀態(tài)必須與正在討論中端口的狀態(tài)一致。如果在討論中的端口上沒有一個可替代的內(nèi)部狀態(tài)相應(yīng)于實地環(huán)境,那么統(tǒng)一操作后的結(jié)果就是“無”,這被認(rèn)為是一個編程錯誤。
以上對輸入輸出端口的描述可擴展到能處理除當(dāng)前結(jié)構(gòu)之外的其它數(shù)據(jù)結(jié)構(gòu)的輸入和輸出,在此情況下,就不是通過統(tǒng)一持續(xù)時間和信號量值來將內(nèi)部響應(yīng)與外部響應(yīng)統(tǒng)一,而是對位格式作統(tǒng)一化。輸入信號可以是數(shù)字化的。進一步而言,輸入信號可代表數(shù)據(jù)結(jié)構(gòu)或程序結(jié)構(gòu)。例如H語言程序。例如,在一端口的一個存儲單元中的一個存儲單元字段可在端口的輸入端與位格式統(tǒng)一。
例子一個施加的內(nèi)部結(jié)構(gòu)(S1 S2)可同在輸入端上的位格式統(tǒng)一,從而最后被統(tǒng)一的內(nèi)部結(jié)構(gòu)讀作施加(+表(12)),這是在圖11A和11B中所示出的結(jié)構(gòu),這里S1和S2代表“任意的位格式”,S1被與代表“+”的指令碼的位格式統(tǒng)一,而S2與代表“表(12)”的位格式統(tǒng)一。
經(jīng)由接受H語言指令的H端口,一個程序可被裝入到目標(biāo)寄存器,H端口也可用于多個處理器之間,使這些處理器能傳送程序或數(shù)據(jù)或兩者同時傳送,所傳送的程序碼最初可標(biāo)記為數(shù)據(jù)以防止程序碼被立即執(zhí)行。H端口也能用作本發(fā)明的計算裝置的和另一種計算裝置間的接口,該另一計算裝置可能先前公知的也就是傳統(tǒng)的那種。
在圖3所示的計算裝置的實施例中,一個目標(biāo)存儲器1包括一定數(shù)量的存儲單元2,每個存儲單元被分為多個存儲字段,對此下面會作進一步描述,因為目標(biāo)存儲器的精確結(jié)構(gòu)不是實際發(fā)明的一部分,因此不作詳細(xì)的描述。
一個可以作為目標(biāo)存儲器1的目標(biāo)存儲器將在我們的未決申請NO……中作出描述。
在目標(biāo)存儲器中的每個存儲單元可以存儲包括若干閉包元的一個單元閉包,目標(biāo)存儲器1通過存儲器總線結(jié)構(gòu)BUS1至BUSn連接到一個結(jié)構(gòu)運算單元3,所述總線足夠?qū)捯蚨軐⒁粋€存儲單元的每一位單元連到單元3,每一存儲單元的每一位通過總線結(jié)構(gòu)連到所有其它存儲單元的相應(yīng)位。結(jié)構(gòu)運算單元3可以是目標(biāo)寄存器1的一個特定部分,在歸約過程中,要被轉(zhuǎn)換的閉包被暫時移入其中。然而,也可以具有一個單元3的特殊結(jié)構(gòu)(后面要作介紹),使其可能提供快而直接的歸約操作。因為單元3的結(jié)構(gòu)本身不是本發(fā)明的一部分,因而不作詳細(xì)描述。一個可以作為單元3的單元將在我們未決的(Copending)申請NO……中作出描述。
圖3所示的計算裝置圍繞存儲總線結(jié)構(gòu)BUS1至BUS11而組裝的,使得實際上所有的數(shù)據(jù)操作設(shè)備可對其直接存取,這樣,單元3和接口可認(rèn)為屬于快速目標(biāo)存儲器,即作為它的特殊單元。
一個中央控制單元CU控制目標(biāo)存儲器和單元3,也由控制單元CU控制的多個端口4,5,6,11被連接到單元3,兩個端口4和5示出是與周圍連接的統(tǒng)一端口。一個外設(shè)7和8,例如一個傳感器或一受控于和/或控制計算裝置的設(shè)備被分別連接到每個接口,端口6是一個H端口,連接到另一計算裝置9,該另一計算裝置將程序裝入計算裝置。端口11是連接到例如同類型的另一計算裝置12的一個H端口,該另一計算裝置用計算裝置1至6,10,11,CU分擔(dān)傳輸。若干如圖3所示那樣的計算裝置可直接相互連接起來在它們的存儲器總線結(jié)構(gòu)和暫態(tài)存儲器閉包(沒有示出)之間進行傳輸,在每一個裝置中提供一多并行計算裝置,這樣就能實現(xiàn)全方位的搜索。然而,在一些應(yīng)用中很方便將兩個或三個計算裝置或多并行計算裝置由一H接口11連接起來使每個計算裝置作為一個單獨的計算裝置而工作,而這些裝置彼此傳送程序和/或數(shù)據(jù)以便單獨處理,H端口11也可用作與另一種類型處理器的接口,當(dāng)H端口傳送一個程序時,其傳輸方式與數(shù)據(jù)的傳輸方式相同,而且計算裝置以相同的方式進行處理。
一個用作特別操作的額外裝置10也可聯(lián)接到單元3,這種設(shè)備的一個例子是一數(shù)字運算單元,以下稱之為數(shù)字ALU。然而,該額外裝置也可用于比較等等,數(shù)字ALU幾乎可以是工藝技術(shù)相同的任何一種ALU,但一種特別適合本發(fā)明的計算裝置的數(shù)字ALU將在我們未決的某一申請NO……中進行描述。
包含單元3的快速存儲器具有至少一種比較可能性,用于將一個端口(如端口4)的一個信號序列與在至少另一端口(如端口6)的至少一個信號序列進行比較,這一比較可能性可通過提供具有數(shù)值(例如區(qū)間對,每一區(qū)間具有一持續(xù)時間和一具有信號量值形式的值)的閉包在存儲器或在端口直接獲得。然而,也可在額外裝置10中進行比較。當(dāng)兩個外部狀態(tài)被比較時,如果比較是不同的,即端口與周圍物體的持續(xù)時間或信號量值不同時,比較序列重寫為“無”,反之,比較序列重寫為1和同樣的指定序列。
因此,快速目標(biāo)存儲器1,3具有一種結(jié)構(gòu),能夠以一種明確的或隱含的抽象語法編碼來存儲和執(zhí)行一個計算機程序,該語法通過表達(dá)式來描述一些不同的抽象目標(biāo),每一存儲單元當(dāng)時可以以合適的數(shù)據(jù)和/或程序結(jié)構(gòu)來存儲至少一個所述語法表達(dá)式的一部分,該語法將在后面作詳細(xì)的描述。
一個目標(biāo)存儲器1具有比普通的RAM存儲器要多得多的智能,它是相關(guān)的,且與普通RAM存儲器所能提供的“讀出”和“寫入”功能相比,它能提供更多的服務(wù)。
如上所述,目標(biāo)存儲器被分為存儲單元2,每個存儲單元包括多個存儲字段,所提供的服務(wù)具有高水平,例如,它能發(fā)現(xiàn)一個特殊數(shù)據(jù)元的存在,不受該數(shù)據(jù)元是在單個存儲單元內(nèi)的何處,并能采用僅僅一個存儲器指令全元內(nèi)的何處,即在整個目標(biāo)存儲器內(nèi),將所找到的特殊數(shù)據(jù)元重寫為一個新的值。由于該目標(biāo)存儲器是相關(guān)的,這一重寫操作可在兩個物理存儲周期內(nèi)進行而不必考慮相應(yīng)的存儲單元的數(shù)目。
一個存儲單元2的實施例示意于圖4。它能存儲兩種類型元素并包括特別適用于要被存儲的元素的存儲字段,這些字段在圖4中被賦于與其中所存儲的元素相同的名字。
每個存儲單元可存儲下面所列舉的特性中的至少某些特性;
指明在所述單元中的表達(dá)式是否要被歸約的標(biāo)記;
指明該表達(dá)式是否為一棵樹中的一部分的標(biāo)記,以及表達(dá)式的特性;
指明表達(dá)式是如何產(chǎn)生的標(biāo)記;
指明該表達(dá)式是否組成一些重復(fù)狀態(tài)的標(biāo)記;
指明該表達(dá)式是否僅僅是一個表的一部分,該表具有存儲在另一存儲單元中的其他表的結(jié)構(gòu)要素。
第一種元素,以下稱之為屬性元素,描述存儲單元的不同狀態(tài),一種這種形式的元素是LAZY,它指示該單元或者是空閑的,在空閑時,單元的基它內(nèi)容被認(rèn)為是被動信息,確切地說就是處于可被執(zhí)行的狀態(tài),或者是等待,即指對單元估算被延后,并且在其能被執(zhí)行之前必須等待一個結(jié)果。另一個屬性元是TYPE,它包含一個類型碼(Par,Seq,apply,list,Unify等等)。
第二種元素,以下稱為目標(biāo)元素,描述符號、環(huán)境或數(shù)值,它們有IDENTIFIER、ENVIRON-MENT、VALUE/DES。這些目標(biāo)元素適合于存儲于在平面HEAD和NUM(見圖7B、7C)中所提供的核心寄存器部分中,每一這種元素包括一個元素字,該元素字又按序被分為一個數(shù)字字和一個標(biāo)記字。
第二種元素的閉包元具有一個標(biāo)記字,指示數(shù)字字的特性,該標(biāo)記有兩種,間接標(biāo)記即用于符號和環(huán)境的標(biāo)記,和直接標(biāo)記,即用于單純數(shù)值之類的標(biāo)記。
間接標(biāo)記的例子有cls、canon和open,如果標(biāo)記字是cls,表示數(shù)字字代表一個可以被歸約的閉包,如果標(biāo)記字是Canon,表示數(shù)字字代表一個不能進一步歸約的閉包,如果標(biāo)記字為open,則表示數(shù)字字代表的一個閉包是一個被插入的表。
直接標(biāo)記的例子有discr、cont、Unused和nothing,如果標(biāo)記字為discr,表示數(shù)字字是整數(shù),如果標(biāo)記字為Cont,表示數(shù)字字是一個浮點數(shù),如果標(biāo)記字為Unused,表示數(shù)字字無意義,如果標(biāo)記字為nothing,表示數(shù)字字代表“無”,即對一包含標(biāo)記為“無”的字段閉包的統(tǒng)一化處理將總是“無”。
如果在一個存儲單元中的一個符號字段包括一個符號元素、在該存儲單元中的處理狀態(tài)可以傳送到結(jié)構(gòu)運算單元3,以下稱為核心單元。每個存儲單元字段VALUE/DES可能包含一個符號指示另一單元的閉包,從而提供與該另一單元閉包的連接。環(huán)境字段可能包含一個符號指示提供閉包環(huán)境的閉包的網(wǎng)絡(luò)部分即樹中的根閉包。然而,環(huán)境字段也有其它用途,環(huán)境字段可用于通過存儲在所產(chǎn)生的所有單元閉包的環(huán)境中的生成者的符號來跟蹤一個結(jié)構(gòu)的生成者,例如,在一個子樹中的所用閉包單元可按具有相同的環(huán)境而組成組,在所述子樹中,具有相同名子的符號代表相同的物體。這樣,僅僅在一次操作中,通過根,整個結(jié)構(gòu)可由樹中的一個閉包訪問。
標(biāo)志函數(shù)可看作是從一個父到一個子的直接連接,即一個閉包元唯一識別一個單元閉包。具有相關(guān)形式的一個目標(biāo)寄存器的一臺機器的特性可表示為閉包的一個方向圖。
因此,如果給定一個閉包的環(huán)境,在該環(huán)境內(nèi)的根閉包可以找到,一個環(huán)境的根閉包在其存儲單元的字段WHERE中具有一個特定記號(例如“1”),一個環(huán)境的節(jié)點閉包具有字段WHERE中的另一記號(例如“0”)。
存儲表達(dá)式id1=list(par(1 2 3)Par(4 5 6)的一個存儲單元的例子示于圖5,該表達(dá)式是兩個并行值組合的表。第一并行組合par(1 2 3)具有全同符號id2,而第二個并行組合par(4 5 6)具有全同符號id3,包括有在樹中具有全同符號id1的單元閉包的根存儲單元被標(biāo)記為cls,在LAZY字段具有記號exec,在WHERE字段具有一個“1”置位。在TYPE字段具有記號list,在前兩個Value/des,字段中具有id2和id3,這些字段的標(biāo)記被記為Canon,因為這些字段的內(nèi)容是間接的并連接到規(guī)范閉包單元。包括具有全同符號id2的單元閉包的節(jié)點存儲單元。在WHERE字段具有一個“0”置位,在TYPE字段具有標(biāo)志Par,并且具有離散值1,2和3存儲在前三個Value/des字段,因此這三個字段的標(biāo)記記為discr。包括有具有全同符號id3的單元閉包的節(jié)點存儲單元在WHERE字段具有一個“0”置位,在TYRE字段具有標(biāo)記Par,并且具有離散值4,5和6存儲在前3個Value/des。字段,這些字段的標(biāo)記因而也記為discr。
如上所述,根據(jù)本發(fā)明的處理裝置具有一個或多個端口用于向裝置輸入數(shù)據(jù)或從裝置輸出數(shù)據(jù)。每一個端口是向處理裝置的外部周圍提供通信的單元。該端口最好連接到目標(biāo)存儲器1(見圖3)中的一個變換接口(未示),該端口可以看作是目標(biāo)寄存器的延伸(Prolongation),因為它包含最好是四個具有相似功能的存儲單元并與目標(biāo)存儲器單元2(見圖4)兼容,該端口通過聯(lián)合進行輸入/輸出操作。
目標(biāo)存儲器提供處理器一個內(nèi)部狀態(tài),對每一端口提供一個狀態(tài),一個狀態(tài)是一時間結(jié)構(gòu)的語義上的意義,它可由一閉包結(jié)構(gòu)所代表,時間結(jié)構(gòu)可以認(rèn)為是由值的一個無窮時間序列所組成的一個處理過程的狀態(tài)。
對端口的輸入信號可以由傳感器或處理器之外的設(shè)備(即實地環(huán)境)所提供,端口將輸入信號轉(zhuǎn)換為適應(yīng)目標(biāo)存儲器格式的數(shù)字形式,即轉(zhuǎn)換為一個閉包表示,這一閉包表示是一能與處理器中的內(nèi)部狀態(tài)相比較的時間結(jié)構(gòu),即一個狀態(tài),因此,從處理器的角度來看,這一時間結(jié)構(gòu)可看作是一個外部狀態(tài)。
通過端口的輸入和輸出由在其每一邊所提供的處理過程(即在處理器中的內(nèi)部狀態(tài)和在周圍設(shè)備中的外部狀態(tài))的聯(lián)合所完成,內(nèi)部狀態(tài)和外部狀態(tài)兩者都以相同的方式進行修正,該方式提供一個很精確的操作方式使得計算裝置很適合于作實時操作。
外部狀態(tài)一即一個時間序列一的例子示于圖2,取樣信號的序列能隨時間而變化,即取樣周期可能是不同的,這由圖2可清楚地看出,這里所提供的信號序列可以是一列元素對,每對中包括一個持續(xù)時間和在此時間內(nèi)的信號量值,信號量值標(biāo)為qi,時間寬度記為ti,這里i是1到6的一個數(shù)字。
與外界相聯(lián)的端口,例如圖3中的端口4,可以聯(lián)到一個傳感器7,一般來看,端口的接口能處理各種形式的信號,然而這種接口很復(fù)雜并且經(jīng)常在系統(tǒng)中引入干擾,因此,一個好的接口將具有下述特性1、一個信號在某些時間被測量,在作下一次測量前該被測量的信號被看作是恒定的。
2、時間可以給定為或者是由端口所確定的一個固定周期,或者是由程序或由外部時鐘信號所確定的某些時間間隔。
3、被測量的信號以數(shù)字形式提供給機器。
4、被數(shù)字化的信號或者是布爾形式或者被編碼為能指示一個整數(shù)或一個浮點值的數(shù)字形式。
因此,根據(jù)本發(fā)明的計算裝置并不象通用的處理器那樣插入或輸出數(shù)值,在本發(fā)明的處理器中,端口被看作是處理器中的一個程序與處理器外界之間的接口,計算裝置適應(yīng)于函數(shù)化程序語言H,該接口是這樣的所提供的一系列事件在其一邊可看作為一個信號而在另一邊看作為處理器程序中的一個H結(jié)構(gòu)。外界設(shè)置它的物理圖象部分,以及處理器部分,這是由端口邊或接口邊同時進行的,從而這兩者將是同一物體的圖象,這使得計算裝置的實時圖象可能是一接近真正實時的一個實時圖象。
程序被存儲在快速目標(biāo)存儲器中并產(chǎn)生內(nèi)部狀態(tài),程序的執(zhí)行是基于在計算裝置中的程序和外界兩者都在接口中經(jīng)歷事件的同樣的實時過程。
程序?qū)⒔涌诿枋鰹橐粋€數(shù)值對和持續(xù)時間的無窮長系列,即每一個信號值在持續(xù)時間期間延續(xù),因此,在每一時間間隔內(nèi)(包括一對信號值和一個持續(xù)時間)接口描述持續(xù)時間長度和值。所有同樣的信號和持續(xù)時間對按次序提供,端口將一實時狀態(tài)轉(zhuǎn)換為相同形式的表格。
計算裝置的輸入和輸出是由統(tǒng)一得到的,這意味著在每一時間間隔內(nèi)的持續(xù)時間和值在端口的兩邊以相同方式形成。
程序可以確定一個特定的信號量值,或者它可通過采用一個特殊的信號舍棄不確定的信號量值,例如S指示所有可能的值。
一個正確的程序在聯(lián)合操作之后應(yīng)該僅有一個替代狀態(tài)存在,并且這一狀態(tài)必須與正在討論的端口的狀態(tài)一致,如果沒有替代的內(nèi)部狀態(tài)與正在討論的端口的實際環(huán)境相應(yīng),那么聯(lián)合操作將給出nothing作為其結(jié)果,這被認(rèn)為是一編程錯誤,因為nothing代表矛盾。如果在聯(lián)合操作后有一個以上的替代狀態(tài)存在,也被認(rèn)為是一編程錯誤。
當(dāng)內(nèi)部狀態(tài)給定一特定信號值,也稱為信號量值時,這一特定信號是對外界的輸出,如果內(nèi)部狀態(tài)舍棄不確定的信號值,那么一個特定信號是從外界輸入。
當(dāng)內(nèi)部狀態(tài)給定一時間間隔內(nèi)的一特定持續(xù)時間時,那么外界容許一任意的持續(xù)時間長度,如果內(nèi)部狀態(tài)沒有確定持續(xù)時間長度,那么外界就確定該持續(xù)時間。
因此裝置是對稱的1、具有表達(dá)式during的一個時間間隔包括一持續(xù)時間和一信號量值。
2、時間間隔在一程序中由during 持續(xù)時間 信號量值形式來描述。
3、外界可能以不同的方式來描述這一時間間隔,如上所述。
4、端口在其兩邊定義信號量值,這意味著一個信號量值必須是確定的,計算裝置中的程序設(shè)置指向計算裝置這邊端口的一個持續(xù)時間或一個信號量值,在一確定的持續(xù)時間內(nèi)形成一輸出并且/或者一個信號量值饋入到指向外界一側(cè)的端口的導(dǎo)體。
一個用于輸入和/或輸出時間間隔的端口的實施例示于圖6,端口被連到結(jié)構(gòu)運算單元3或直接通過總線結(jié)構(gòu)DU連到目標(biāo)存儲器1,在總線結(jié)構(gòu)DU中的每一總線代表具有例如38根導(dǎo)線的一根總線,端口由中央單元CU控制,端口包含一符號寄存器PID,存儲在寄存器PID中的符號能用作為目標(biāo)存儲器1的一個符號,即能用于將端口連接到目標(biāo)寄存器中的單元閉包。這一符號僅在處理器內(nèi)部使用。端口還包含一個符號寄存器CEID,它與寄存器PID的使用方式相同。端口還包含一些存儲單元CEDU、CELAST、CENEXT、CEID,每一個基本上是思維的產(chǎn)物并如目標(biāo)存儲器1中的存儲單元一樣起作用。
每個存儲單元存儲具有用于存儲三個閉包元素的至少三個存儲字段的一個閉包。例如during,持續(xù)時間和信號量值。
至少兩個后提及的閉包元素能存儲在數(shù)值/指示類型的存儲字段中。表式式during可在一個TYPE字段中提供。由于端口總是提供一during操作。該TYPE字段可以略去。
然而,在圖6所示的實施例中,during在一(類型)字段中以type′apply(′
)(位置)形式和一預(yù)定的函數(shù)名(during碼)在一起,函數(shù)名存儲在端口存儲單元的第一個數(shù)值/指示字段,如同對屬類型′APPly的所有函數(shù)名(例如+ - ↓ /)那樣。during碼可以是指示存儲在目標(biāo)存儲器中的一函數(shù)定義的一個符號。
一個標(biāo)識符id也可存儲在數(shù)值/指示字段,該標(biāo)識符將端口結(jié)構(gòu)與目標(biāo)存儲器中的一個during結(jié)構(gòu)連接起來。
如果不需要包含一個標(biāo)識符的一個字段,那么在圖6所示的實施例中實際僅僅需要三個數(shù)值/指示字段。然而,可提供一個標(biāo)記為unused的第四個數(shù)值/指示字段以便使端口寄存器與計算裝置中的其它存儲單元一致。然而這時也可能將一個用于數(shù)值進/出的額外設(shè)備連接到這第四個數(shù)值/指示寄存器,這將使該端口成為用于一組數(shù)值的端口,即用于持續(xù)時間和兩種信號量值的一個端口。
因此,端口中的每一存儲單元還可能有屬性字段,至少最后所提及的存儲單元可以連接到總線WO1,WI1,WT1,WE1,WT2,WV2,WE2每一總線具有例如38根導(dǎo)線,并以一位一根導(dǎo)線方式連到每一寄存器的位單元。下標(biāo)I表示可連到寄存器的during碼字段一根總線,下標(biāo)T可連接到寄存器的持續(xù)時間數(shù)值/指示字段的一條總線,下標(biāo)V表示可連接到寄存器的信號量值數(shù)值/指示字段的一條總線,下標(biāo)E表示可連到寄存器的額外數(shù)值/指示字段的一條總線,下標(biāo)2代表與外界相連的總線,下標(biāo)1代表通過一傳送器(沒有示出)連到快速目標(biāo)存儲器1,3的一條總線。
注意到,包括′
的類型字段和包括during碼的第一個數(shù)值/指示字段實際上可以略去,因為它們之中的信息總是相同的,因而可包含在中央控制單元CU中。因此,可以有一個端口,它具有僅包含兩個數(shù)值/指示字段的存儲單元,一個字段用于持續(xù)時間,另一個用于信號量值(沒有示出)。
在所示出的端口的實施例的四個存儲單元中存儲緊接先前的閉包,當(dāng)前的閉包,下一閉包以及對未來閉包的標(biāo)識符,存儲單元可能有指定的位置從而其中的全部內(nèi)容可在它們之間傳送,寄存器中每一個位單元的一個合適結(jié)構(gòu)與結(jié)構(gòu)運算單元3中的位單元具有同一結(jié)構(gòu),并示于我們未決的申請NO……中。
然而,也可以將三個最先提及的存儲單元作這樣的安置,它們可以通過變化其命名來變化彼此的位置,命名是由中央控制單元CU的控制來完成的。
端口可以具有不同數(shù)量的存儲單元,例如,一個存儲單元。
端口包括一個時間計數(shù)器TCOUNT,它由來自中央控制單元CU的時鐘信號CLOCKp控制并測量時間,它可由外部復(fù)位信號或來自控制單元CU的復(fù)位信號復(fù)位,時間計數(shù)器TCOUNT連接到一個第一選擇器SEL1,該選擇器由中央控制單元CU控制將時間計數(shù)器TCOUNT的輸出或者直接連到可與存儲單元中的時間存儲器字段相連的總線WT2或者連到一個時間比較器Tcomp的一個第一輸入。時間比較器Tcomp的第二輸入被連到總線WT2,時間比較器的輸出是一個外部時間輸出,該輸出還傳送到控制單元CU。
端口還包含一個外部數(shù)值和輸出端口引線VALUE IN/OUT,它被連到一個用于輸出信號的轉(zhuǎn)換器CONVOUT,例如一個數(shù)/模轉(zhuǎn)換器,它也連到一個用于輸入信號的轉(zhuǎn)換器CONVIN,例如一個模/數(shù)轉(zhuǎn)換器形成對輸入信號采樣,取樣時間可由時間比較器Tcomp的輸出確定或由到時間計數(shù)器TCOUNT(沒示出)的復(fù)位信號確定。一個選擇器SEL2連到總線WT2,該總線可控地連到存儲器單元CEDU、CELAST、CENEXT的信號量值寄存器,該選擇器通過中央控制單元CU的控制選擇一個信號量值是饋出或饋入端口,控制單元CU讀出包含有連到外界的寄存器的存儲器單元中寄存器的內(nèi)容看其中是否包含一個特殊信號$,該信號表示寄存器中的值量任意的,并且可變化為任意可能的值,因此,控制單元CU據(jù)此來控制耦合到寄存器的端口選擇器。
也可以制造一個更復(fù)雜的端口,例如,VALUE IN/OUT的信號量值可由存儲在用于輸入值的轉(zhuǎn)換電路CONVIN和用于輸出值的轉(zhuǎn)換電路CONVOUT中的一個公式來轉(zhuǎn)換,轉(zhuǎn)換函數(shù)可以是一些積分,每個積分用于種類不同的信號值之類。
在每一持續(xù)時間內(nèi)也可以取兩個值,例如一個在持續(xù)時間的起點另一在其末點,并將其中之一直接存到數(shù)值/指示字段,并在一斜率計算裝置(沒示出)中饋入兩個測量值和持續(xù)時間,該斜率計算裝置的輸出例如可被存儲在額外的數(shù)值/指示字段(沒示出),即是用于VALUE IN/OUT的額外選擇裝置。
饋出的信息由存儲器單元CEDU提供,因此該單元具有信息during 持續(xù)時間 信號量在該寄存器中的信號是已知的,因此應(yīng)當(dāng)饋出,信號量從存儲器單元中的信號量值寄存器中取出并通過起驅(qū)動級作用的選擇器SEL2和轉(zhuǎn)換器CONVOUT饋出。
在存儲器單元CEDU中的信息是during 持續(xù)時間在這一寄存器中的信號量值是未知的,并且寄存器準(zhǔn)備接受一信號量值,信號量值從端口信號量值輸入/輸出中取出,在A/D轉(zhuǎn)換器CONVIN中數(shù)字化,然后輸入到存儲單元CEDU的信號量值寄存器中。
在存儲器單元CEDU中的信息是during 持續(xù)時間 信號量值持續(xù)時間是已知的,在持續(xù)時間的開始時間計數(shù)器TcounT被中央控制單元CU復(fù)位,在計數(shù)器TcounT中連續(xù)升高的時間通過時間比較器Tcomp與存儲器單元CEDU中時間寄存器中的時間進行比較,當(dāng)兩者相同時,持續(xù)時間結(jié)束。
在這一持續(xù)時間內(nèi),存儲器單元CELAST被空出而存儲器單元CENEXT被填充,在轉(zhuǎn)換到下一周期時存儲器單元CEDU中的內(nèi)容被移到存儲器單元CELAST,在存儲器單元CENEXT中的信號量值被移到存儲器單元CEDU。
在存儲器單元CEDU的信息為during $ 信號量值因此,持續(xù)時間是未知的,外界將確定該持續(xù)時間,時間計數(shù)器TCOUNT在持續(xù)時間的開始由外部控制復(fù)位,在TCOUNT中連續(xù)升高的時間被饋入存儲器單元CEDU的時間寄存器,當(dāng)外界給出下一次外部復(fù)位時,該持續(xù)時間結(jié)束。因此,外部復(fù)位信號或直接或通過時間計數(shù)器中的一個零信號來控制選擇器斷開與時間計數(shù)器連接。
在這一持續(xù)時間內(nèi),存儲器單元CELAST,被空出而存儲器單元CENEXT被填充,在躍遷到下一周期時,存儲器單元CEDU的內(nèi)容被移入到存儲器單元CELAS,而存儲器單元CENEXT中的內(nèi)容被移到存儲器單元CEDU。
為了說明端口的操作,下面給出一個小例子假設(shè)我們想檢測兩個不同的序列之一,第一個序列的所有第2個信號量值都是確定的,即值為17,并且所有持續(xù)時間確定,即為1秒,第二個序列的所有信號量值都確定,即1,2,3,4等等。但持續(xù)時間未知,要使用的端口稱為Port1,閉包表示為unify(Port1"內(nèi)部狀態(tài)")這里“內(nèi)部狀態(tài)”是alt操作,它指示所有可替代序列,即一個具有下列形式的大數(shù)據(jù)結(jié)構(gòu)。
alt(seq(during(1S 17)during(1S $)during(1S 17)……)seq(during($,1)during($,2)duirng($,3)……))現(xiàn)在,如果輸入信號序列可通過上述結(jié)構(gòu)統(tǒng)一,那么該輸入被接受并采取適當(dāng)?shù)牟僮?。被接受的序列的一個例子是((1S 17)(1S 0)(1S 17)(1S 99)(1S 17)這是一個與上面給出的內(nèi)部狀態(tài)的第一序列一致為一個序列??杀唤邮艿牧硪恍蛄惺?(2S 1)(4S 2)(1S 3)),該序列將與內(nèi)部狀態(tài)的第二序列一致。一個不被接受的序列例子是((1S 2)…),因為信號量值即2不能與給出的內(nèi)部狀態(tài)的兩個序列的信號量值一致起來。
示于圖7中的一個H端口的實施例試圖將本發(fā)明的兩個分離的計算裝置彼此連接起來,屬于第一計算裝置的H端口的那一半包括一個類型字段TYPE11,四個數(shù)值/指示字段V/D11,V/D12,V/D13,V/D14,以及一個標(biāo)識符寄存器IDF11。屬于第二計算裝置的H端口的那一半包括一個類型字段TYPE21,四個數(shù)值/指示字段V/D21,V/D22,V/D23,V/D24,以及一個標(biāo)識符寄存器IDF21,在圖7所示的實施例中端口兩邊的類型字段和數(shù)值/指示字段各用一根總線連接,傳輸通過串聯(lián)總線進行。
因為具有盡可能少的物理連接優(yōu)點較多,因此最好的操作模式是通過一個串行總線在對分端口傳送數(shù)據(jù)。然而,與對每一存儲字段采用一條傳送總線相比,這種傳送方式將使中央控制單元CU中的內(nèi)部控制線路更復(fù)雜。將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)的接口或者反過來將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)的接口未在圖7中示出,因而也未描述,因為對本領(lǐng)域的技術(shù)人員而言這是很熟悉的。
H端口的每一半被分別連到控制單元CU1和CU2,CU1和CU2分別控制它們所屬的計算裝置,控制單元的CU1提供一個與另一控制單元CU2同步的同步信號SYNC,當(dāng)進行一次傳輸時,H端口的一半在除標(biāo)識寄存器之外的所有寄存器中包括特別符號$,這種情況由控制單元指示,然后接收另一半的相應(yīng)寄存器中的內(nèi)容。
當(dāng)一個程序的大數(shù)據(jù)包通過一個H端口從一個計算裝置轉(zhuǎn)換到另一計算裝置中時,標(biāo)識符必須在適應(yīng)標(biāo)識符號數(shù)內(nèi)部分配的接收計算裝置中進行改變,以便避免同一號碼的重復(fù)使用。因此當(dāng)將變換閉包中的每一標(biāo)識符變?yōu)樾碌臉?biāo)識符并將其存儲在目標(biāo)存儲器中時,一根樹或者從其根部轉(zhuǎn)移到葉(這是可取的)或從葉轉(zhuǎn)移到根。
新編語言H采用具有三種情況的一種狀態(tài)其形式為p t a其中p.t和a是三個不同的修正變量,p.t和a參數(shù)分別模擬并行(Parallelism)、序列時間和替代作用。它們可以分別作為標(biāo)記不同并行作用,不同事件和替代作用的下標(biāo)。這三種情況在實施由特定結(jié)構(gòu)用命令語言所描述的若干種狀態(tài)時是很有用的。它們是共同的中心思想,即是H語言特征的核心。根據(jù)本發(fā)明的計算裝置的結(jié)構(gòu)因而適應(yīng)于具有這三方面情況的處理狀態(tài)。值得注意的是,在某些應(yīng)用中,模擬變量可能是一個以上的值,即在同一時間可能發(fā)生多個替代事件。
如上所述,歸約操作最好在一特定的結(jié)構(gòu)運算單元3中進行,當(dāng)歸約進行時,單元閉包的有限的樹被傳送到該單元3中。
現(xiàn)在將給出結(jié)構(gòu)運算單元3(核心單元)的一個實施例并作一簡要說明,說明存儲在目標(biāo)存儲器中的表達(dá)式和數(shù)值將在核心單元3中的寄存器中如何具有它們的對應(yīng)物以及在目標(biāo)存儲器1和核心單元之間如何配合。
可作為核心單元實施例中的寄存器示于圖8A至8C,可以用于核心單元實施例中的寄存器的結(jié)構(gòu)示于圖8D。
在圖8A中示出了一個寄存器,圖中表示寄存器由寄存器單元組成,每個單元能存儲一個信息位,寄存器畫出的方式是要示出一個寄存器通過在核心單元中的不同平面延伸,每一寄存器單元位于一個平面。
圖8B示出了一個寄存器,它延伸到核心單元中的所有平面,即是一個全寄存器,這種寄存器在其位于核心單元中NUM和HEAD平面的寄存器單元中將有一標(biāo)識符或一個數(shù)值。如上所述,它在位于核心單元中TYPE、WHERE。LAZY以及clos/SMPLE平面的寄存器單元中還持有一狀態(tài)。
圖8C示出了一個寄存器,它僅僅延伸到核心單元的NUM和HEAD平面,是一個有限寄存器。
圖8D示出了核心單元實施例中寄存器的一個可能構(gòu)造,核心單元最好具有按正方形安置的基本寄存器,稱為基本寄存器矩陣?;炯拇嫫髟谄涓鬟呌幸恢餍?,稱之為主寄存器?;炯拇嫫鞯牧性谄涞撞扛饔幸粋€主寄存器,該列稱為輔助寄存器。核心單元還可以具有一個標(biāo)識符寄存器和一環(huán)境寄存器,一行從屬寄存器位于基本寄存器矩陣的邊上。
在核心單元的一個實施例中,輔助寄存器可以是圖8C中所示的那種寄存器,即有限寄存器,而圖8D中的其他寄存器可以是示于圖8B中的那寄存器,即全寄存器。
對核心單元硬件結(jié)構(gòu)更詳細(xì)的描述參見我們的未決申請NO……,不同的數(shù)據(jù)存儲形式的簡要說明將參照圖8A至8F,它的一些操作實例將參照圖10A至10H,11A至11G,12A至12G給出。
如圖9A所示,作為一個歸約結(jié)果的一個簡單值25出現(xiàn)在主寄存器的一個特別寄存器中,這個結(jié)果可能是一個單元閉包的一部分。
一個目標(biāo)是裝入核心單元的以便進行歸約的事件。如圖9B所示,一個包括僅僅一級的目標(biāo)(最典型的是不參考其他單元閉包的一個閉包)存儲在主寄存器中,例子中示出了一個簡單的數(shù)字操作,即數(shù)值1,2和3相加。數(shù)字指令(+)存儲在每一個主寄存器中,而欲處理的元素存儲在其它主寄存器中。
如圖9C所示,包括一個二級結(jié)構(gòu)的一根樹具有其根表,它是父,水平地存儲在主寄存器中,而將作為子的表,垂直地存儲在基本寄存器中。在這一例子中,具有表示表((12)(34))的結(jié)構(gòu)存儲在基本寄存器矩陣中,作為子表中最先元素的根表,即1和3被存儲在主存儲器中,而子表,即(1 2)和(3 4)被垂直地存儲于輔助寄存器中。使用這種寄存器的例子在下面給出,參見圖9A至9H。
如圖9E所示,包括一個三級結(jié)構(gòu)的目標(biāo)樹具有存儲于一個輔助寄存之中的根,將其單一的子存儲在主寄存器中,在圖9D中,目標(biāo)樹的根(是指令轉(zhuǎn)移)存儲在一個輔助寄存器中,而其子(即表(id1id2 id3))存儲在主寄存器中,在這表中的每個元素按順序是具有子的一個父。在圖9E中,這些子被垂直地裝入基本寄存器,在那里id1被調(diào)換成它所指示的表,即(1 2 3),id2被調(diào)換成(11 12 13),id7被調(diào)換為(21 22 23)。
如圖9E所示,以流水線模式存儲的一棵樹將目標(biāo)表裝入到主寄存器,將目標(biāo)的父存儲在輔助寄存器中,并且它具有存儲在這兩種寄存器中的將要被處理的元素和指令,當(dāng)歸約數(shù)字表達(dá)式時,最好采用流水操作模式,一個優(yōu)點是瞬態(tài)結(jié)果可以馬上存儲在核心單元而不是目標(biāo)寄存器。
因此,依賴于樹結(jié)構(gòu)的級別和所要進行的操作,目標(biāo)樹的根表最好存儲在核心單元中寄存器的不同位置。
特別適用本發(fā)明的計算裝置的語言稱為H語言。解決復(fù)雜性問題的傳統(tǒng)手段是通過將所有復(fù)雜東西隱藏起來而將簡單東西放在表面,從而更增加了復(fù)雜性,根據(jù)本發(fā)明的計算裝置采用相反方法,所有不必要的軟件級別都移走。H語言在機器中作各種用途作為機器語言,編程語言,操作系統(tǒng)和通訊協(xié)議。然而,如同現(xiàn)有的所有電子設(shè)備一樣,本發(fā)明的計算設(shè)備的線路可以在一個具有解釋或編譯程序的計算機中模擬,這種機器的一個例子是Sun3,然而,該機器必須有一個可以提供一致性的端口。
傳統(tǒng)的邏輯編程語言將分辨率和一致性作為主要的語義特性,備有H語言的本發(fā)明的計算裝置對分辨率和自由變量采用模式匹配,并且在歸約語言中對一致性采用模式匹配。存儲在存儲器單元字段中的H語言中的目標(biāo)具有并行存在,次序存在和交替存在的特性。
目標(biāo)樹的根是可歸約形式的一個閉包,例如Unify,alt,apply,在某種意義上也是par和Seq,因為它們有時能被歸約為“無”。在函數(shù)應(yīng)用apply(也稱為
)中第一個元素是一個指令(+ - */during),該指令直接由硬件解釋,或一標(biāo)識符間接指示一個用作函數(shù)定義的閉包結(jié)構(gòu),其余的元素是指令/函數(shù)定義的自變量。如上所述,本發(fā)明的計算裝置適應(yīng)于處理特殊的稱為H的解釋性語言。該語言一抽象句法和語義來定義。
句法通過表示式來描述一些不同的抽象目標(biāo),可使用下面的基本表達(dá)式port,nothing,alt(list),par(list),seq(list),
unify(list),during(list),Cont(v),period(v)。
其中(list)在包括在表達(dá)式的目標(biāo)存儲單元(S)中指定為數(shù)據(jù)元素形式(e1,……en),V是一個實數(shù)。
因為在本發(fā)明的布線應(yīng)用中每一存儲單元都有一個有限數(shù)量的數(shù)值/指示字段,一個表可被存儲在一些存儲單元中,要注意到,如果用通用形式的計算機來模擬目標(biāo)存儲器結(jié)構(gòu),那么可模擬的存儲單元可能具有可變數(shù)量的存儲字段。
Port 表示一個物理端口的表達(dá)式,即一序列的during,它是一個特殊形式的間接元素。
nothing 表示矛盾的一種特殊數(shù)值。
Alt 指示包含有這一表達(dá)式的該存儲器單元中含有認(rèn)為是可替代元素的表列元素。
par 指示包含這一表達(dá)式的存儲器單元中包含認(rèn)為是并行元素的表列元素。
Seq 指示包含這一表達(dá)式的存儲器單元中包含認(rèn)為是順序元素的表列元素。
Unify 指示包含這一表達(dá)式的存儲器單元中包含認(rèn)為要被一致化處理的元素的表列元素。
During 指示包含這一表達(dá)式的存儲器單元中包含表列元素,該表or 列元素給出持續(xù)時間,在該持續(xù)時間內(nèi)將發(fā)生某事。
(··)Cont 指示一個空間量,該空間量沿具有長度V的一個距離具有極小量的狀態(tài)。
period 指示一個時間寬度,該時間寬度在寬度為V的時間內(nèi)具有若干極短的狀態(tài)。
位于表列中的元素以數(shù)值存儲在數(shù)值/指示字段。
為與存儲單元配合的中央控制裝置CU建立了重寫功能,因而控制裝置中包含重寫規(guī)則,它根據(jù)予定的重寫規(guī)則來重寫所述句法表達(dá)式。
中央控制裝置最好是一布爾門陣列,它們連接起來以讀出存儲的表達(dá)式,并根據(jù)所建立的規(guī)則來提供重寫操作。當(dāng)時只有一根樹的一部分需要讀出。具有根據(jù)所建立的協(xié)議在組成的輸入端起作用的提供組成的輸出功能的布爾門陣列的指令在出版物“Introduction to VLSI Systems”中作了描述,該出版物作者Carver Mead和Lynn Conway,Addison Wesley出版公司1980年出版。
重寫規(guī)則如下altalt() →nothingalt(e) →ealt(e1…nothing…en) →alt(e1…en)即值nothing被略去了alt(e1…alt(c1…ck)…en) →alt(e1…c1…ck…en)parpar(e1…nothing…en) →nothing如果e1至en中任意一值為nothingpar(e1…alt(c1…ck)…en) →alt(par(e1…c1…en)par(e1…ck…en))
par(e1…en) →par(e1…en)在相反情況下SeqSeq(e1…nothing…en) →nothing如果e1至en的任意一值為nothingSeq(e1…alt(c1…ck)…en) →alt(Seq(e1…c1…en)Seq(e1…ck…en))Seq(e1…en) →Seq(e1…en)在相反情況下UnifyUnify() →nothingunify(e) →eunify(e1…en) →e1如果所有e1至en都是相同的unify(e1…en) →nothing如果e1至en中有任意一個與其他的不相同unify(e1e2e3…en) →Unify(unify(e1e2)e3…en)unify(e1…en) →nothing如果e1至en的任意一值為nothingunify(e1…alt(c1…ck)…en) →alt(unify(e1…c1…en)unify(e1…ck…en))當(dāng)存儲在目標(biāo)存儲器中的一種樹結(jié)構(gòu)要被歸約時,樹結(jié)構(gòu)的至少一部分要傳送到單元3,在單元3中處理一種樹結(jié)構(gòu)的不同的可能性的進一步描述將在下面給出,作為圖3結(jié)構(gòu)的一個特殊實施例。
控制單元cu讀出現(xiàn)在存儲在單元3中的單元閉包的TYPE字段,并根據(jù)上面提到的重寫規(guī)則重新安排單元3中單元閉包中的內(nèi)容,并將重寫的結(jié)果送回存儲在目標(biāo)存儲器1中。如果重寫結(jié)果歸約為一個值或nothing??刂茊卧ㄟ^目標(biāo)存儲器作全面搜索,將指定為歸約結(jié)構(gòu)的父的存儲字段中的內(nèi)容改變?yōu)闅w約所產(chǎn)生的值。
采用這些句法規(guī)則的操作方式將舉例說明,在下面例中沒有說明的句法規(guī)則與說明的那些例子很相似,當(dāng)結(jié)合下面的例子考慮時,對本領(lǐng)域的技術(shù)人員而言很容易理解。
例1圖10A至10H中所示出的第一個例子是以可歸約閉包給出的并行值的一致化。
Unify(par(1 par(1)3)par(1 par(1)2))這是一個可歸約閉包,其中將進行一些并行統(tǒng)一化處理,這一可歸約閉包將重寫為統(tǒng)一化的一個并行結(jié)構(gòu)。
圖10A表示最初的可歸約閉包,圖10B表示這可歸約閉包是如何存儲在目標(biāo)存儲器中的,存儲可歸約閉包的不同部分的存儲的單元在10A中標(biāo)出。元素閉包和單元閉包之間的聯(lián)線在圖10B中標(biāo)出。具有標(biāo)識符id1的單元閉包記為CLS,并在類型字段具有類型碼unify,而具有標(biāo)識符id2,id3和id4的單元閉包在其類型字段具有類型碼par。具有標(biāo)識符id1的單元閉包包括作為其最初兩個數(shù)值/指示的的指示具有標(biāo)識符id2和id4的單元閉包的閉包元素,這些單元閉包標(biāo)記為Canon。具有標(biāo)識符id2的單元閉包具有它的第一和第三個數(shù)值/指示閉包元素,該閉包元素具有標(biāo)記為discr的離散值,并具有它的第二個數(shù)值/指示閉包元素,該閉包元素指示具有標(biāo)識符id3的單元閉包并標(biāo)記為Canon。具有標(biāo)識符id3的單元閉包具有它的第一個數(shù)值/指示閉包元素,該閉包元素具有一個整數(shù)并標(biāo)記為discr;具有標(biāo)識符id4的單元閉包包括作為它的第一和第三個數(shù)值/指示的閉包元素,該閉包元素具有標(biāo)記為discr的離散值,并包括它的第二個數(shù)值/指示閉包元素,該閉包元素指示具有標(biāo)識符id3的單元閉包,因而標(biāo)記為Canon。
如圖10C所示,具有標(biāo)識符id1的單元閉包的存儲器單元中的內(nèi)容首先被裝入核心單元,當(dāng)在id1在包括閉包的類型碼unify的情況下,該核心單元將其標(biāo)識符id1放在該標(biāo)識符存儲器中,并在第一操作步驟中將作為目標(biāo)的數(shù)值/指示元素放在主存儲器中。
如圖10D所示,具有標(biāo)識符id2和id4的子被縱向地裝入到基本寄存器中,這樣在其第一數(shù)值/指示元素中的內(nèi)容被放入標(biāo)有它的標(biāo)識符的主寄存器中,而在寄存器中的它的其余的數(shù)值/標(biāo)識符元素放在其上的縱列寄存器中。每個這些子的類型碼par也裝入到主寄存器,類型碼裝入到位于TYPE平面的寄存器單元中。
如圖10E所示,基本寄存器中的內(nèi)容被轉(zhuǎn)置90°,這樣在基本寄存器的第一個縱列中的內(nèi)容被放在主寄存器中,而第二縱列放在平行于主寄存器的基本寄存器的一行中,在標(biāo)識符寄存器和主寄存器中提供的類型碼par和unify可進行交換,這是由控制單元自動完成的?,F(xiàn)在基本寄存器包括具有位于縱列中的三個子的一個父。
每個子現(xiàn)在采用指令make裝回到目標(biāo)存儲器,作為來自目標(biāo)存儲器的回答,所存儲的子的標(biāo)識符被提供并存儲在主寄存器中,可以看到,根據(jù)其中所發(fā)現(xiàn)的信息,控制單元CU(是一種門陣列)檢測特別位于平面CLOS/SIMPLE到平面TYPE的寄存器中的內(nèi)容并提供指令,即控制這個門和這個開關(guān)。子在id1之后按序命名,已經(jīng)占據(jù)的名字就不再使用。然而,命字次序無關(guān)緊要,因此可以是任意的。
如圖10F所示,第一個子取得標(biāo)識符id2,包含有占據(jù)標(biāo)識符id3的元素閉包的第二個子取得標(biāo)識符id4,而第三個子取得標(biāo)識符id5。具有連接到具有標(biāo)識符id2,id4,id5的單元閉包的父保持其標(biāo)識符id1,然后存儲在目標(biāo)寄存器中。
圖10G表示存儲可歸約閉包Par(Unify(1 1)Unify(par(1)par(1))Unify(2 3))的存儲器單元,可歸約閉包本身示于圖10H,圖10G和10H按如圖10A和10B的相同方式示出,因此可以自己解釋。
在圖10G中也表示具有類型碼unify的單元閉包在LAZY字段中給定標(biāo)記為exec,而具有標(biāo)識符id1的單元閉包給定標(biāo)記為wait,這表示標(biāo)記為exec的單元閉包應(yīng)該在由標(biāo)識符id1所指示的單元閉包之前執(zhí)行以便將其內(nèi)容歸約為值。
在圖10H中的閉包在隨后的某一時間可被裝回到核心單元以便進一步處理,例如,具有標(biāo)識符id2的單元閉包具有值1,因為其數(shù)值/指示元素中的值1和1是相同的,而具有標(biāo)識符id5的單元閉包導(dǎo)致結(jié)果為nothing,因為其數(shù)值/指示元素中的值2和3不相同。
在最佳實施例中每一次統(tǒng)一化都可在數(shù)字ALU中進行,該裝置在比較器中對值進行比較,并將結(jié)果提供給控制單元CU,然后,控制單元設(shè)置其布爾門陣列相應(yīng)地在核心單元的第一個主寄存器中提供信息。當(dāng)歸約結(jié)果為規(guī)范符號或簡單值或nothing時,該結(jié)果分布在目標(biāo)存儲器的所有存儲字段,所述目標(biāo)存儲器可被操縱去存儲第二種類型的元素閉包,這樣每一個對歸約的閉包的間接指示被變化為數(shù)值的直接指示。
例2
這個例子是一個硬件指令list expansion。意指單元閉包包括一個插入的表,這種類型的指令是其它歸約中的一個輔助步驟。
機器產(chǎn)生一個示范化指令的歸約,稱為ex.type,ex.type可包含下列形式ex.type(1 list(2 3 list(4 5 6))7)的值和表的任意一種指令,該形式示于圖11A,其單元閉包示于圖11B。圖11A和11B的標(biāo)記方式與圖10A和10B相同,因此可以自己解釋。
如圖11C所示,具有標(biāo)識符id1的單元閉包裝到具有其標(biāo)識符的核心單元的主寄存器中,而類型碼裝到標(biāo)識符寄存器中,由于在第二個主寄存器中的內(nèi)容用一間接元素open標(biāo)記,它所連接到的單元閉包id2被縱向地裝入到基本寄存器中作為一個子,而這由圖11D可清楚地看出。
然后,硬件指令list expand將在第三個主寄存器中的離散值7移到第三個基本列中除id4以外的位置,并將第二個主寄存器之上的第二列中的表的部分移到第三列,該第三列將其最低元素(值3)放在第三個主寄存器中并給予其類型碼list(見圖11E)。由于在第二個主寄存器中的內(nèi)容是一個離散值,因而它具有標(biāo)記discr。
然后產(chǎn)生了一個新表展開式,只要將主寄存器之上的第三列中的內(nèi)容放在歸類為List的第四列。在第三主寄存器中是一離散值的內(nèi)容被標(biāo)記為discr,如圖11F中可明顯看出。
隨后,在第四列中的表采用硬件指令make存儲在目標(biāo)存儲器中,它被存儲在具有標(biāo)識符id2的存儲器單元中,因為該存儲器單元是空閑的,而標(biāo)識符id2的部分被送回到核心單元被存儲在第四個主寄存器中,如圖11G所示那樣。
隨后進一步進行ex.type歸約,當(dāng)出現(xiàn)一個規(guī)范結(jié)果時,歸約的結(jié)果被裝回到目標(biāo)存儲器中。
回到圖3,根據(jù)本發(fā)明在一端口操作的基本思想是將外界7,8和快速目標(biāo)存儲器1,3的雙重狀態(tài)看成是一致的,即導(dǎo)致在每一持續(xù)時間內(nèi)信號量值僅得到一個通用的確定的值。
為了了解操作方式,給出下面的例子具有一個輸入端口和一個輸出端口的一臺機器是要在輸出端提供符合一致的輸入信號量值,存儲在機器中的程序因而是Unify(par(portinportout)“機器狀態(tài)”)這里“機器狀態(tài)”是一個alt操作,它指示所有可想到的輸入和輸出的序列對,即具有以下形式的一個大數(shù)據(jù)結(jié)構(gòu)。
alt(seq(par(during(1s 1)during(1s 1))(par(during(1s 2)during(1s 4))(par(during(1s 3)during(1s 9))…)(seq(par(during(1s 1)during(1s 1))(par(during(1s 3)during(1s 9))(par(during(1s 2)during(1s 4))…)(seq(par(during(1s 2)during(1s 4))(par(during(1s 1)during(1s 1))(par(during(1s 3)during(1s 9))…)
(seq(par(during(1s 2)during(1s 4))(par(during(1s 3)during(1s 9))(par(during(1s 1)during(1s 1))…)(seq(par(during(1s 3)during(1s 9))(par(during(1s 1)during(1s 1))(par(during(1s 2)during(1s 4))…)當(dāng)輸入端口開始輸出其值時,在核心單元中進行的歸約操作將連續(xù)地消去在變?yōu)閚othing的替代操作alt中的所有分支,即所有不適合的分支。
在核心單元執(zhí)行下面的歸約規(guī)則格式表達(dá)式Unify(par(port1…portn)seq(par(during(q11t1)…during(qlnt1))…)(par(during(qk1tk)…during(qkntk)…)被重寫為nothing或重寫為表達(dá)式
Seq(par(during(q11t1)…during(qlnt1))…(par(during(qk1tk)…during(qkntk)…)這有賴于來自環(huán)境的信號與表達(dá)式作比較。在Seq中每個操作par的所有during需要相同的時間。為了使所有during操作同時開始和結(jié)束,需要進行同步。
重寫上述表達(dá)式的一種替代方式是將其重寫成nothing或重寫成表達(dá)式Seq(during(par(q11…qln)t1)…(during(par(qk1…qkn)tk)…)這有賴于環(huán)境的信號與表達(dá)式的比較。
在所給的例子中采用第一重寫規(guī)則時,隱含了下面的歸約規(guī)則Unify(par(e1…en)par(h1…h(huán)n))→→par(unifye1h1)…unifyenhn)對Seq也是同樣。一旦輸入值與機器中的相應(yīng)值不一致,即不一樣,那么結(jié)果就是nothing。這將一直波及到alt操作,從而整個分支從alt表達(dá)式中消除。
構(gòu)造一種數(shù)值能送進機器中并能從機器中傳出來但賴于外部信號是否確定。賴于機器值是否確定(具有值$)的端口的獨創(chuàng)性在于機器并不限于上面所描述的簡單的輸入端口和輸出端口系統(tǒng),因此,可以寫一個程序,其中端口交替地寫入機器或從機器讀出,與此相關(guān)的例子是下面的程序Unify(port“機器狀態(tài)”)該程序具有機器狀態(tài)alt(Seq(during1s 1)(during 1s 1)(during1s 2)(during1s 4)(Seq(during1s 1)(during1s 1)(during1s 3)(during1s 9)(Seq(during1s 2)(during1s 4)(during1s 1)(during1s 1)(Seq(during1s 3)(during1s 9)(during1s 2)(during1s 4)等等。
即(Seq(during輸入)(during輸出)(during輸入)(during輸出))在該機器狀態(tài)中,外界提供一個數(shù)值,機器通過在下一時間間隔內(nèi)饋出與其一致的值作出回答,該方法對數(shù)據(jù)如何以簡單方式流動作全面的控制。
單元3與端口聯(lián)系并適應(yīng)于將端口的輸入以序列形式存儲在目標(biāo)存儲器中,它是以下述格式的表達(dá)式提供的Unify(端口seq(duringt1q1)…seq(during tk qk)…)當(dāng)這一表達(dá)式被歸約時,依賴于從外界而來的信號與表達(dá)式的比較,中央控制單元CU中的協(xié)議將這一表達(dá)式重寫成nothing或重寫成表達(dá)式Seq(during newt1newq1)…Seq(during newtknewqk)…在該表達(dá)式中newti是數(shù)值對序列中第i個時間間隔的一個新的持續(xù)時間,而neqi是一新的信號量值(見圖2)。
如果端口的信號具有圖2的形式,如果信號中的值qi與Unify表達(dá)式中給出的相應(yīng)值qi不同,或者如果信號中的值ti與在Unify表達(dá)式中給出的相應(yīng)ti不同,那么上述Unify表達(dá)式在單元3中將重寫為nothing。反之,Unify表達(dá)式被重寫為Sep表達(dá)式。如上所述,在Unify表達(dá)式中可提供一特殊符號$,表示該值可以是任意的。
如果表達(dá)式中的數(shù)值ti或pi(i為任意整數(shù))是$,那么隨著被測量的值ti或qi的插入,將重寫相應(yīng)的newti或newqi。
相應(yīng)地,當(dāng)Unify表達(dá)式中的取值ti和qi為特定值時,如果來自外界的信號是不確定的,那么在時間ti內(nèi)信號強度由端口(見圖6)的數(shù)/模轉(zhuǎn)換器CoNVout提供為qi,而Seq表達(dá)式中的newti和newqi與Unify表達(dá)式中的值ti和qi一樣。
根據(jù)上面所描述的系統(tǒng),可能存在的所有狀態(tài)都可以作番描述,不幸的是程序可以極大。為了處理這種情況可插入另外的程序結(jié)構(gòu),其中最重要的是Symb,Lambda和apply。
用于H語言的有用的一個完整的句法可能包括下面的句法表達(dá)式cont(v),delta,period(v)deltat,par(list)seq(list),′alt(list),′con(list),′pri(list),′Lambda(list),
′hide(list),′symb(list),′unify(list),′set(list),′apply(list),alt(list),nothing,con(list),pri(list),unify(list),lambda(list),hide(list),Set(list),apply(list),Symb(list),discr(n)pulses(n),其中句法表達(dá)式在存儲器單元的類型字段以編譯形式被提供為操作符。
因此,每一表達(dá)式都是一個以一表達(dá)式形式存儲在一個目標(biāo)存儲器單元的操作符,在(list)中的每一個元素是指示一個狀態(tài)的表元素,n是一整數(shù),V是一個實數(shù)。每一元素都可被存儲在包含該表所屬的所說表達(dá)式的存儲器單元中的存儲器字段。
表達(dá)式cont(v)(其中V是一個實數(shù))表示沿具有長度V的一個距離具有無限個極小狀態(tài)的一個空間量。period(v)(其中V是一個實數(shù))表示在具有時寬V的周期內(nèi)具有無限個極短狀態(tài)的時間寬度。
表達(dá)式delta表示在空間具有極小擴展并且有不確定時間寬度的一個狀態(tài)。表達(dá)式deltat代表在時間上具有極小擴展,在空間上具有不確定擴展的一個狀態(tài)。
在空間的一個整數(shù)擴展可按以下方式編碼為delta的一個par0=par( )1=par(delta)2=par(delta delta)…5=par(delta delta delta delta delta)等等在時間上的一個整數(shù)擴展可按同樣方式編碼為deltat的一個par。
因此一個整數(shù)(discr(n))可表達(dá)為一種極微單元delta的一個平滑組合。
量的非常重要的應(yīng)用是在一個during操作中作為一個元素,在這一操作中,量可用來指示時間和空間,因此采用相應(yīng)于稱為deltat的delta的時間。
delta在空間極小,而在時間上無限deltat在空間上無限而在時間上極小上面的表達(dá)式以和句法表達(dá)式相同的方式存儲在目標(biāo)存儲器中。
機器幾乎瞬時將插入的所有表達(dá)式歸約為它的值,例如表達(dá)式apply(+ par(2 4))被直接歸約為值6,這使得當(dāng)程序設(shè)置后不能訪問該程序,不可能將程序分為許多部分而對各部分進行運算。
為了對付上述問題,引入一個并行于基本語言的被動的格式,它們被稱為程序格式,它們對它自身進行歸約(它們是規(guī)范的),因而保持不變。它們可以被劃分為幾塊。
一個函數(shù)plusrevary可按下面的方式定義Unify(Symb(Plusrevary)Lambda(par(Y X)′apply(+par(X Y)))它根據(jù)上面的程序給出程序格式′apply(+par(2 4))以相反的次序給出正量設(shè)置的自變量,par(42)。
為了將一個存儲的程序格式轉(zhuǎn)換為相應(yīng)的程序,采用了一個標(biāo)準(zhǔn)函數(shù)eval。因此程序被復(fù)制,“blips”被消除,程序自然被進一步歸約到它的值。
apply(Symb(eval)′apply(+par(2 4)))
=apply(+par(2 4)))=6分解程序格式的可能性使“reason over”程序簡單化,這使得采用具有H語言作為其基本語言的機器為任意一種其它語言寫解釋和編譯程序變得簡單化。
總之,所有的結(jié)構(gòu)(例如delta,par)都有前面貫以′作為詞法單元的第二種格式(例如′delta,′par),該詞法單元指定該格式為程序格式。值得注意的是,在一程序格式中只有實際的結(jié)構(gòu)而不是整根樹。為了將整根樹指定為程序形式,所有的結(jié)構(gòu)都必須標(biāo)上′。
如果程序格式(具有′的)中的表包括nothing,那么表達(dá)式將被轉(zhuǎn)換為nothing。
需要用作定義,例如定義Sqr的機理在上面作了描述,然而還需要以小定義的組合形成一程序的最佳機理。我們需要建立一個看作為具有一些輔助定義的一個主表達(dá)式的程序,這可借助于Con(list)來實現(xiàn)。
ConCon結(jié)構(gòu)包括一個顯露值V和多個不顯露值ei,i是1到n之間的一個整數(shù)。
Con(v e1e2e3…en)這種結(jié)構(gòu)具有等于第一元素V的值。然而如果表是空的或該表中的任一元素為nothing,那么Con結(jié)構(gòu)具有值nothing,表中的所有元素處于相同范圍,因此,不顯露元素可用作限制,或者將限制為自由變量或者將其統(tǒng)一為nothing。
Con的重寫規(guī)則是Con( ) →nothing
Con(e1…nothing…en) →nothingCon(e1…en) →e1如同所有其它規(guī)則一樣,該規(guī)則是作為快速存儲器1,3和中央控制單元CU之間的協(xié)作關(guān)系而建立的。
Pri上面所描述的結(jié)構(gòu)中沒有一個能用于指示某事在另外某事無效(是nothing)的情況下是有效的。由于表達(dá)式的一種“負(fù)”方式有時比表達(dá)式的“正”方式更為緊湊,因此對于表達(dá)式的“負(fù)”方式附加結(jié)構(gòu)Pri。
Pri的歸約規(guī)則是這樣的pri的值是不同于nothing的第一個元素,如果沒有這樣一個元素,那么pri就是nothing,因此Pri(nothing nothing 9 nothing 7 8)=9結(jié)構(gòu)pri(e1e2)以按如下方式解釋如果e1無效,則采用e2。該pri結(jié)構(gòu)類似alt結(jié)構(gòu),它是一組狀態(tài),但在pri中,狀態(tài)是有序集合,第一個狀態(tài)是表中的第一個,第二個狀態(tài)是表中的第二個,等等。
很值得注意的是,pri結(jié)構(gòu)與在傳統(tǒng)語言和用于處理編排的機器中原來所采用的概念無任何共同之處,相反,它用于借助失效來實施非操作。
Pri的重寫規(guī)則為pri( ) →nothingpri(nothing1…nothing2) →nothingpri(nothing1…nothingk-1ek…en) →ek如同所有其它規(guī)則一樣,該規(guī)則是作為快速存儲器1,3和中央控制單元CU之間的協(xié)作關(guān)系而建立的。
作用域是指原文環(huán)境,其中所出現(xiàn)的相同符號代表相同的語法實體。一個作用域規(guī)則指示某一結(jié)構(gòu)是否以及為何引起一個新的作用域,H語言具有下面的作用域規(guī)則1、結(jié)構(gòu)par、seq、alt、
和unify不引起新的作用域,這表示表達(dá)式中所出現(xiàn)的同樣符號代表相同的實體。
2、結(jié)構(gòu)Lambda(替換模式)引起一個新的從屬作用域,所有在規(guī)則中出現(xiàn)的而在以上場所中所沒有提及的符號屬于一個新的作用域。
3、結(jié)構(gòu)hide(表達(dá)式)引起一個完全新的作用域。在一規(guī)則結(jié)構(gòu)hide中無符號出現(xiàn)系指相同的實體,如果在該規(guī)則結(jié)構(gòu)中的相同的符號環(huán)繞該hide結(jié)構(gòu)。
當(dāng)編制擴展程序時,需要在不同的意義下使用相同符號,這可通過引入隔離作用域的結(jié)構(gòu)(hide)來實現(xiàn)。
hiding的每一個重要概念主要用于隔離使用一個目標(biāo)以及該特定目標(biāo)的定義,按本發(fā)明的計算裝置的用戶會在程序包,程序庫和實施概念中發(fā)現(xiàn)這點。
H語言定義hide結(jié)構(gòu)hide(e),它定義一個狀態(tài)。用在結(jié)構(gòu)內(nèi)外的自由變量被分開,即它們彼此之間是不可見的。H語言的這一特性與其他類型的語言不同,后者通常輸出一數(shù)據(jù)形式和幾個符號名稱,這些名稱不能用在程序包內(nèi)部,這意味著在全集合或在一有限集合中,全符號域?qū)λ谐绦虬即_實是完整的,而且在它們內(nèi)部是可見的。
一個典型的程序包按以下方式確定
lambda(a-pkg$$)·hide(…局部實施…);
它定義了一個具有從a-pkg開始的一種格式的規(guī)則,而其余部分沒有定義。這只是對一個規(guī)則的定義,在那里,對規(guī)則替換本身的符號是未知的。
一個程序庫是指在采用一個參數(shù)選擇一個或幾個規(guī)則的H語言概念中的程序包,它可實施為hide(alt(lambda“規(guī)則a”.a-specLambda“規(guī)則b”.b-spec…Lambda“規(guī)則n”.n-spec))程序庫是包含規(guī)則的一個替代物,格式“規(guī)則a”用于選擇一程序aspec。它可定義為一任意結(jié)構(gòu),它通常它是一個提要或一個規(guī)則。
如上所述,H語言具有精巧的方法指定需要的軟件工程概念,為此目的,語言不需引入新的語言結(jié)構(gòu)。
可以看出,hide只影響作用域的處理。
lambda表達(dá)式Lambda(esepl…epn)是一種規(guī)則,表示元素es取代epl…epn),這里用
表規(guī)則Lambda(esepl…epn)。而所述表達(dá)式apply(erearg1…earg2)是一個應(yīng)用,如果每一epi由相應(yīng)的eargi統(tǒng)一化,則該應(yīng)用在歸約操作中由es取代,反之,該應(yīng)用由nothing取代。
apply現(xiàn)在將給出規(guī)則apply如何實施的例子。
例3
在這里執(zhí)行一數(shù)字指令。一數(shù)字指令可以是+,-,*,/,during,等等。在指令之外緊跟著自變量。在該例中,執(zhí)行表中數(shù)字間相加操作,機器執(zhí)行具有下面形式的一個apply(應(yīng)用)的歸約apply(+ list(1 2))該應(yīng)用示于圖12A,其單元閉包示于圖12B,圖12A和12B的標(biāo)記方式與圖10A和10B的相同,因而可以自我解釋。
如圖12C所示,具有標(biāo)識符id1的單元閉包被裝入到在標(biāo)識符寄存器中具有其標(biāo)識符和類型碼的核心單元的主寄存器中。數(shù)字指令(+)標(biāo)記為一個指令。如圖12D所示,由于第二個主寄存器中的內(nèi)容被標(biāo)記為一個間接元素open,它所連接的單元閉包以子的形式縱向地裝入基本寄存器中。
隨后進行表的擴展,將第二個主寄存器中的離散值標(biāo)記為discr,并在類型碼字段中標(biāo)記擴展值為2的表為List。由于不管具有標(biāo)識符id2的表具有二個,三個或四個元素機器都作相同操作,故上述處理過程可以完成。由于在一新的表中僅有一個元素,如圖12F所示,機器將用主寄存器包含一個是discr的值的指示來替代標(biāo)記list。
因而,如圖12G所示,主寄存器包含一個指令標(biāo)記(+)和兩個離散值,這使得存儲指令的控制單元控制數(shù)字ALU執(zhí)行指令(相加)并將數(shù)字操作結(jié)果作為一個規(guī)范值輸出到第一個主寄存器。注意到在類型碼字段中的標(biāo)號apply是表示要進行一函數(shù)應(yīng)用的標(biāo)記。結(jié)果值,在該例中是一簡單值3被分布到各處,以便將每一個出現(xiàn)標(biāo)記id1的地方都換成該值。
重寫規(guī)則確定相等的表達(dá)式。重寫方向與這些規(guī)則相聯(lián)系。當(dāng)跟隨該重寫方向時,可獲得一較簡單的表達(dá)式。當(dāng)表達(dá)式不能被重寫為一個較簡單的表達(dá)式時,該表達(dá)式是規(guī)范的。因此,本發(fā)明的計算裝置采用重寫規(guī)則將表達(dá)式重寫為更規(guī)范的形式。
除上面所給出的重寫規(guī)則之外,中央控制單元CU還包含下列重寫規(guī)則type(e1…nothing…en)→nothing,這里type系指上述表上從par(list)一直到unify(list)的一個表達(dá)式,e1…en是表元素。
type(e1…alt(c1…ck)…en)→alt(type(e1…c1…en)…type(e1…ck…en))這里type更指上述表上從par(list)一直到unify(list)(除alt(list)之外)的一個表達(dá)式,e1,en,c1,ck為表元素。
set(a) →nothingset( ) →′alt(a),如果a是在上面表示式表中從par(list)至′apply(list)的一個表達(dá)式。
set(alt(e1…en)) →′alt(ea…en),這里e1…en是沒有按特定次序提供的元素,ea…en為按某種次序提供的元素。
set(e1…en) →set(con(e1…en))Lambda(alt(e1…en) →set(alt(e1…en))Lambda(e1…en) →par(e1…en)hide(alt(e1…en) →set(alt(e1…en)hide(e1…en) →par(e1…en)apply( ) →nothing
apply(e) →evalmeta(e)apply(′alt(b1…bn)a2…am)→apply/ evalmeta′alt(b1…bn)a2…am)apply(par(b1…bn)a2…am) →nothing,如果所有bi和ai是上面表示式中從par(list)到′apply(list)的表達(dá)式,而且n#m或?qū)τ趇>1,ai#bi.
apply(par(b1…bn)a2…am) →b1,如果所有bi和ai是上面表達(dá)式表中從par(list)到′apply(list)的表達(dá)式,而且m=n,并且對于i>1所有ai=bi。
apply(seq(b1…bn)a2…am) →nothing,如果所有bi和ai是上面表達(dá)式表中從par(list)到′apply(list)的表達(dá)式,n#m或?qū)>1任一ai#bi。
apply(seq(b1…bn)a2…am) →bi,如果所有bi和ai是上面表達(dá)式表中從par(list)到′apply(list)的表達(dá)式,n=m,并且對i>1,所有ai=bi。
函數(shù)evalmeta將以程序形式表示的表達(dá)式(即貫以′的)轉(zhuǎn)換為值的形式(即無′的),只有最高級結(jié)構(gòu)中可以省去′。
evalmeta′type(a) →type(a),這里type代表上面表上的從par(list)到unify(list)的一個表達(dá)式(除alt(list)之外)。
Symb包括一個元素S的表達(dá)式symb(s),當(dāng)歸約為一個規(guī)范表達(dá)式時該元素S是一個標(biāo)識符,所述元素S可以被存儲在屬于目標(biāo)存儲器中不同存儲單元的存儲字段,所述存儲單元被定義為按作用域方式布置,在每一作用域中的所有標(biāo)識符S表示相同的狀態(tài)。
Discr,pulses表達(dá)式dircr(n)(其中n是一個整數(shù))表示具有n個微狀態(tài)的一并行狀態(tài),表達(dá)式pulses(n)(n是一個整數(shù))表示n個微狀態(tài)的一個時間鏈。
下面的重寫規(guī)則是予定的par(delta1…deltan)→discr(n)Seq(deltat1…deltatn)→pulses(n)為了說明如何應(yīng)用擴展句法,用于在同一端口交替讀出和寫入的程序可以更緊湊的方式提供。首先對超過離散值1,2和3的抽象平方(sqr)由下面的短程序定義Unify(symb(sqr)alt(Lambda(1 1)Lambda(4 2)Lambda(9 3))存儲在目標(biāo)存儲器1的閉包樹中。從而“機器狀態(tài)”可僅寫成一個Seq操作Seq(during(1s x)during(1s apply(symb(sqr) x)
(during(1s x)during(1s apply(symb(sqr) x)…)這一Seq操作在執(zhí)行時將被改寫為上面指出的alt操作。即使這一程序還是和輸入數(shù)據(jù)一樣長,處理這一問題的精巧方式是在硬件中提供一些函數(shù)和標(biāo)準(zhǔn)替代物,或作為軟件與插入程序裝在一起。
例子之一是乘法(X),借助于標(biāo)準(zhǔn)操作,數(shù)值a的乘方可以簡單程序?qū)懗鯱nify(symb(sqr)Lambda(symb(a) apply(x par(symb(a) symb(a)))))這一程序試圖將由硬件所定義的所有數(shù)進行乘方處理。
這些規(guī)則可用于寫小循環(huán)程序,該程序在根據(jù)歸約規(guī)則進行重寫時并不呈現(xiàn)上面所提及的大alt結(jié)構(gòu)。硬件使不必要的說明都被略去。這可通過采用我們的未決申請NO…中所描述的核心單元形式來得到最佳地實施。
可以執(zhí)行所描述的重寫規(guī)則,通過采用狀態(tài)的統(tǒng)一(化)而隱含一種說明方式的計算裝置的狀態(tài)由明確規(guī)定的所經(jīng)過的時間次序加以確定。這種時間上的描述看起來象是一種符號語言。
抽象句法很簡單,不幸的是這使它不特別易讀,為了使程序更易讀引入一個更復(fù)雜的句法,因為人們不希望那種過份低淺的復(fù)雜性。
這種變換可以許多不同方式完成,然而最自然的是具有句文(具有正文)的和圖象的形式。當(dāng)硬件檢測一個值不正確時,例如通過檢查計算值的奇偶校驗位時,提供一錯誤指示,這時采用back up表達(dá)式。
backup的歸約規(guī)則是這樣的一個backup的值是不同于fault的第一個元素,如果不存在這樣一個元素,backup就是nothing。
backup的重寫規(guī)則為backup( ) →faultbackup(fault1…faultn) →faultbackup(fault1…faultk-1ek…en)→ek如同所有其他規(guī)則一樣,該規(guī)則是以快速存儲器1,3和中央控制單元CU之間的協(xié)作形式建立的。
根據(jù)上面的描述可以清楚語言H有幾種表示,該語言具有一個核心Habs,這是一種抽象語言,關(guān)于這種語言采用了一套表示法,主要的語言表示法為Habs 這種語言表示的是正式定義之外現(xiàn)有的最基本的一種,它是完全說明性的,但沒有用戶易讀的句法。
Hfault 這種語言表示法是由在計算裝置中用于修正硬件錯誤的結(jié)構(gòu)所擴展了的Habs,這種語言表示不是說明性的,相反其結(jié)果是一個隨機值,這種表示法是一種根語言表示法,所有其他語言表示法都基于該表示法,它沒有用戶易讀的句法。
Huser 這種語言表示法是用對整數(shù)和實數(shù)運算設(shè)置集合,以及用對數(shù)字和結(jié)構(gòu)運算的算符加強的Hfault,其中還包括無限替換。語言表示法Huser沒有用戶易讀的句法。這種表示法是一種對用戶可見的抽象語言。
Hascii 這種語言表示法對除采用插入句法的最通用表示之外的所有句法采用規(guī)定的ascii字符和前綴。
本發(fā)明是參照最佳實施例描述的,對本領(lǐng)域的普通技術(shù)人員而言在不脫離本發(fā)明正確精神和范圍的前提下可作各種變化,并可對元素作等效替換,此外,在不脫離本發(fā)明基本教導(dǎo)的前提下可作各種修正。
權(quán)利要求
1.一種計算裝置,其特征在于a)一快速存儲裝置(CU,1),該裝置包括許多存儲單元裝置(2),每個單元具有能夠啟動執(zhí)行一次操作的信息;b)至少一個端口裝置(4,5,6),該裝置被連接到所述快速存儲裝置;c)至少一個環(huán)境裝置(7,8,9),該裝置被連接到所述至少一個端口裝置。
2.如權(quán)利要求1所述的一臺計算裝置,其特征在于具有用于在所述快速存儲裝置中將在一個端口裝置上提供的一信號序列(圖2)與存儲在至少一個存儲單元中的一個序列進行比較的裝置,所述被存儲的序列具有可能未被定義的序列元素($),在所說快速存儲裝置中,以及重寫所述比較序列為nothing的裝置(cu,3),如果比較給出明顯的差異,那么將比較序列重寫為nothing,(即nothing代表矛盾),反之將所述比較序列重寫為一個指定的序列。
3.如權(quán)利要求2所述的一臺計算裝置,其特征在于所述比較裝置進行成組比較,各組包括表元素中予定數(shù)目的至少兩個元素。
4.如權(quán)利要求2所述的一臺計算裝置,其特征在于具有裝置(3,during,7,8,9),用于提供所說信號序列作為一個隨時間變化的具有單一采樣周期的被采樣的信號(圖2),所述信號序列是一元素組表,每一組包括一持續(xù)時間和在該時間內(nèi)的至少一個信號量。
5.如權(quán)利要求4所述的一臺計算裝置,其特征在于在每一組中的所述予定數(shù)目的表元素每兩個組成一對,每對包括時間和信號量的組合。
6.如權(quán)利要求1至5中任一權(quán)利要求所述的一個計算裝置,其特征在于具有用于將所述端口裝置與至少另一所述端口裝置同步,并在每一持續(xù)時間內(nèi)對從所述端口輸出的信號量值進行并行指示的裝置。
7.如權(quán)利要求1至6中任一權(quán)利要求所述的一臺計算裝置,其特征在于所述存儲單元裝置在所述快速存儲器中具有一種結(jié)構(gòu),適應(yīng)于以一種明確的或隱含的抽象句法編碼方式存儲一計算機程序,該句法通過表達(dá)式描述一些不同的抽象目標(biāo),每一存儲單元裝置每次能以一種適當(dāng)?shù)臄?shù)據(jù)和/或程序結(jié)構(gòu)形式存儲所述句法表達(dá)式的至少一部分。
8.如權(quán)利要求7所述的一臺計算裝置,其特征在于每種表達(dá)式還有一種相應(yīng)的表達(dá)式,指示它是一程序形式,所有程序形式適合被歸約為它們本身,因而保持不變的表達(dá)式。
9.如權(quán)利要求9所述的計算裝置,其特征在于包括重寫裝置(CU),該裝置配合所述包含句法表達(dá)式的存儲單元根據(jù)予定的重寫規(guī)則重寫所述句法表達(dá)式。
10.如權(quán)利要求9所述的一臺計算裝置,其特征在于所述句法包括至少下面的一些基本句法表達(dá)式port,nothing,alt(list),par(list),Seq(list),Unify(list),during(list),Cont(v),period(v),這里(list)是數(shù)據(jù)元素表(e1…en),每個表存儲在包含該表所屬的表達(dá)式的一個所述存儲單元的一個存儲字段中,如果該所述存儲單元有空閑處存儲該表的話,或至少存儲在與包含所述表達(dá)式的所述存儲單元相聯(lián)的一個所述存儲單元中,這里V是一個實數(shù);在during(list)中的表可能具有下面的元素Cont(v),period(v)和一任意值($);這里表達(dá)式port代表所述物理端口之一個端口,而且是一種特別類型的間接元素,nothing是一特殊類型值,代表矛盾,包含alt表達(dá)式的存儲單元中包含一表的認(rèn)為是替代元素的離散元素;包含par表達(dá)式的存儲單元中包含一表的認(rèn)為是并行元素的離散元素;包含Seq表達(dá)式的存儲單元中包含一表的認(rèn)為是序列元素的離散元素,包含unify表達(dá)式的存儲單元中包含一表的認(rèn)為是統(tǒng)一化元素的離散元素包含during表達(dá)式的存儲單元中包含一持續(xù)時間和一信號量值對,Cont(v)表示沿具有長度V的一段距離具有無限個極小狀態(tài)的一個空間量。而period(v)表示在具有寬度V的一個周期內(nèi)具有無限個極短狀態(tài)的一個時間長度。
11.如權(quán)利要求9和10的組合所述的一個計算裝置,其特征在于所述重寫規(guī)則至少某些規(guī)則由下面選出nothing →nothingalt(e) →ealt(e1…nothing…en) →alt(e1…en)(即值nothing被略去)alt(e1…alt(c1…ck)…en) →alt(e1…c1…ck…en)par(e1…en) →nothing(如果e1至en的任意一值為nothing)par(e1…alt(c1…ck)…en) →alt(par(e1…c1…en)…par(e1…ck…en))par(e1…en) →par(e1…en)在相反情況下seq(e1…en) →nothing(如果e1至en的任意一值為nothing)seq(e1…alt(c1…ck)…en) →alt(seq(e1…c1…en)…seq(e1…ck…en))……seq(e1…en) →seq(e1…en)在相反情況下Unify( ) →nothingUnify(e) →eUnify(e1e2) →e2(如果e1=e2)Unify(e1e2) →nothing(如果e1不同于e2)Unify(e1e2e3…en) →Unify(unify(e1e2)e3…en)Unify(e1…en) →nothing(如果e1至en任意一值為nothing)Unify(e1…alt(c1…ck)…en) →alt(unify(e1…c1…en)…Unfiy(e1…ck…en))
12.如權(quán)利要求8所述的計算裝置,其特征在于所述句法至少包括在下列表達(dá)式中選擇的一個句法表達(dá)式Cont(v),period(v),deltat,par(list),seq(list),′alt(list),′con(list),′pri(list),′Lambda(list),′hide(list),′Symb(list),′unify(list),′Set(list),′apply(list)alt(list),nothing,con(list),pri(list),Unify(list),Lambda(list),hide(list),set(list),apply(list),Symb(list),discr(n),pulses(n),其中每一句法表達(dá)式是在所述目標(biāo)存儲單元中的作為表達(dá)式存儲的一個算符,在(list)中的每一個元素是指示一個狀態(tài)的元素;n是一個整數(shù),V是一個實數(shù);每個所述元素都可被存儲在包含該表所屬的所述表達(dá)式的存儲單元中的一個存儲字段中;表達(dá)式cont(v)表示沿具有長度V的一段距離具有無限極小狀態(tài)的一個空間量;表達(dá)式period(v)表示在具有寬度V的時間周期內(nèi)具有無限個極短狀態(tài)的一個時間間隔;所述表達(dá)式delta表示在空間具有極微擴展和具有無限時間擴展的一個狀態(tài);表達(dá)式deltat表示在時間上具有極微擴展而在空間具有無限擴展的一個狀態(tài);表達(dá)式par(list)代表包含該表達(dá)式的存儲單元包含一表列的認(rèn)為是并行元素的離散元素;表達(dá)式seq(list)代表包含該表達(dá)式的存儲單元包含一表列的認(rèn)為是序列元素的離散元素;所有具有一詞法元素的表達(dá)式指示其形式為一程序形式;表達(dá)式alt(list)表示包含該表達(dá)式的存儲單元包含一表列的認(rèn)為是替代元素的離散元素;nothing是表示矛盾值的一特殊單元;表達(dá)式con(list)包含至少具有零但也可以是幾個狀態(tài)元素的表,并且和其表中第一元素是相同的,如果在該表中的所有元素是規(guī)范的并且不同于nothing;表達(dá)式pri(list)包含至少具有零但也可以是幾個狀態(tài)的表,并且和其表中不是nothing的第一個規(guī)范元素是相同的;表達(dá)式Unify(list)表示包含該表達(dá)式的存儲單元包含一列表的認(rèn)為是統(tǒng)一化的元素的離散元素;表達(dá)式Lambda(e3ep1…epn)是一規(guī)則,表示元素e3被ep1…epn置換;表達(dá)式apply(list)用于具有作為其第一元素的函數(shù)指令(+-*/等)的算術(shù)運算,其余的元素是自變量;如果er是一規(guī)則Lambda(esep1…epn),所述表達(dá)式apply(evearg1…eargn)是一應(yīng)用,在一歸約操作中,如果epi與相應(yīng)的eargi一致,則該應(yīng)用由es替代,反之,該應(yīng)用為nothing;表達(dá)式hide(list)表示一狀態(tài),在那里用于結(jié)構(gòu)內(nèi)和結(jié)構(gòu)外的全變量是分離的,即彼此是不可見的;表達(dá)式set(list)表示在表(list)中的內(nèi)容將被轉(zhuǎn)換為程序形式;表達(dá)式Symb(s)包括一個元素S,在表達(dá)式被歸約為一規(guī)范表達(dá)式時,該元素是一標(biāo)識符,所述元素S可以被存儲在屬于所述目標(biāo)存儲器中不同存儲單元的存儲字段,所述存儲單元被定義為安置在作用域內(nèi),在該作用域內(nèi)的所有標(biāo)識符S代表相同的狀態(tài);表達(dá)式discr(n)(其中n為一整數(shù))代表具有n個微小狀態(tài)的空間量;表達(dá)式pulses(n)(其中n為整數(shù))代表n個微小狀態(tài)的時間間隔。
13.如權(quán)利要求12和13的計算裝置,其特征在于所述重寫規(guī)則由下述規(guī)則擴展type(e1…nothing…en) →nothing,其中type代表上面表上的從par(list)到′apply(list)的一個表達(dá)式,e1,en是表元素。type(e1…alt(c1…ck)…en)→alt(type(e1…c1…en)…type(e1…ck…en))其中type代表上面表中從par(list)至Unify(list)(除alt(list)之外)的一個表達(dá)式,e1,en,c1,ck是表元素。Set( ) →nothingset(a) →′alt(a),如果a是上面表示式表中從par(list)到′apply(list)的一個表達(dá)式Set(alt(e1…en)) →′alt(e0…en)其中e1…en是不提供任何特別次序的元素,而e0…en提供某種次序。set(e1…en) →set(con(e1…en))Lambda(alt(e1…en)) →Set(alt(e1…en))Lambda(e1…en) →par(e1…en)hide(alt(e1…en)) →set(alt(e1…en))hide(e1…en) →par(e1…en)apply( ) →nothingapply(e) →evalmeto(e)apply(′alt(b1…bn)a2…am) →apply(evalmeto′alt(b1…bn)a2…am)apply(par(b1…bn)a2…am) →nothing(如果所有bi和ai是上面表達(dá)式中從par(list)至apply(list)的表達(dá)式,并且n#m,以及對i>1任何ai#biapply(par(b1…bn)a2…am) →b1,如果所有bi和ai是上面表達(dá)式表中從par(list)到′apply(list)的表達(dá)式,并且n=m,對i>1所有ai=biapply(seq(b1…bn)a2…am) →nothing,如果所有bi和ai是上面表達(dá)式表中從par(list)到′apply(list)的表達(dá)式,并且n#m或?qū)>1任何ai#biapply(seq(b1…bn)a2…am) →b1,如果所有bi和ai是上面表達(dá)式表中從par(list)到′apply(list)的表達(dá)式,并且n=m,以及對i>1所有ai=bi函數(shù)evalmeto將程序形式的表達(dá)式(前面貫以′)轉(zhuǎn)換為數(shù)值形式(即沒有′),只有最高一級結(jié)構(gòu)可省去′。evalmeto′type(a) →type(a),其中type代表上面表中從par(list)到Unify(list)(除alt(list之外)的表達(dá)式con( ) →nothingcon(e1…nothing…en) →nothingcon(e1…en) →e1pri( ) →nothingpri(nothing1…nothingn) →nothingpri(nothing1…nothingk-1ek…en) →ekpar(delta1…deltan) →discr(n)seq(delta1…deltatn) →pulses(n)
14.如權(quán)利要求1至13中任一權(quán)利要求所述的計算裝置,其特征在于每個存儲單元適應(yīng)于至少存儲下面所列舉的一部分特性指示在所述存儲單元中的表達(dá)式是否要被歸約的標(biāo)記;指示表達(dá)式是否為一根樹的組成部分以及表達(dá)式特性的標(biāo)記;指示表達(dá)式是如何產(chǎn)生的標(biāo)記;指示表達(dá)式是否由一些重復(fù)狀態(tài)組成的標(biāo)記;指示表達(dá)式是否僅僅為一個表的一部分的標(biāo)記,該表具有存儲在另外存儲單元的另外的表的組成部分。
15.如權(quán)利要求1至14中的任一權(quán)利要求所述的計算裝置,其特征在于在所述目標(biāo)存儲器的存儲單元裝置中包含有可能以明確的或隱含的抽象句法編碼形式存儲一計算機程序的裝置,并在該句法上確定歸約規(guī)則的語義。
16.如權(quán)利要求15所述的計算裝置,其特征在于所述語義包括若干重寫規(guī)則,每一該規(guī)則包括一個表達(dá)式和一組數(shù)值,這意味著在所述組中的每一值與該組中的另一值是等效的,可以用它進行交換。
17.如權(quán)利要求1至16中的任一權(quán)利要求所述的計算裝置,其特征在于有一區(qū)域,包含存儲單元,該存儲單元與所述快速存儲器中的所述存儲單元具有相似的功能結(jié)構(gòu),但是是一個只讀形式的,并且具有予定功能和標(biāo)準(zhǔn)的選擇元。
18.如權(quán)利要求1至17中任一所述的計算裝置,其特征在于包括用于連續(xù)查錯的裝置,并且有按照下述規(guī)則的backup性能backup( ) →faultbackup(fault1…faultn) →faultbackup(fault1…faultk-1ek…en) →ek
全文摘要
本發(fā)明是關(guān)于一種計算裝置,該計算裝置包括a)一快速存儲裝置(Cu,1),該裝置包括許多存儲單元裝置(2),每一個具有能夠啟動執(zhí)行一種操作的信息;b)至少一個端口裝置(4,5,6),該裝置被連到所述快速存儲裝置;c)至少一個環(huán)境裝置(7,8,9),該裝置被連接到所述至少一個端口裝置。
文檔編號G11C11/417GK1059799SQ9110865
公開日1992年3月25日 申請日期1991年8月2日 優(yōu)先權(quán)日1990年8月2日
發(fā)明者卡爾斯特·拉斯·岡納 申請人:卡爾斯特電子公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
福海县| 响水县| 柳江县| 万全县| 昌邑市| 苍南县| 万盛区| 榆中县| 金阳县| 井陉县| 三台县| 平谷区| 苗栗县| 潼关县| 勐海县| 景德镇市| 遂宁市| 黄梅县| 阿坝| 河曲县| 莆田市| 东丽区| 武鸣县| 乌拉特后旗| 全南县| 本溪| 大田县| 新乐市| 青龙| 嘉禾县| 阳信县| 长寿区| 通州市| 柘荣县| 阿克陶县| 邓州市| 安达市| 依兰县| 中阳县| 加查县| 广水市|