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

用于數(shù)據(jù)處理系統(tǒng)的單元式引擎的制作方法

文檔序號(hào):6422555閱讀:161來源:國(guó)知局
專利名稱:用于數(shù)據(jù)處理系統(tǒng)的單元式引擎的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及一種用于數(shù)據(jù)處理系統(tǒng)的引擎,并且具體涉及一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎(cellular engine),所述數(shù)據(jù)處理系統(tǒng)實(shí)現(xiàn)主動(dòng)式相聯(lián)存儲(chǔ)器或相聯(lián)引擎,以提高數(shù)據(jù)處理速度和效率。
背景技術(shù)
自動(dòng)化或半自動(dòng)化數(shù)據(jù)處理系統(tǒng)在多種應(yīng)用中都是集成組件。通常,數(shù)據(jù)管理系統(tǒng)被嵌入到大型的計(jì)算機(jī)化設(shè)備或系統(tǒng)內(nèi),并且諸如通過執(zhí)行必要的算術(shù)操作數(shù)、數(shù)據(jù)變換等等對(duì)那些運(yùn)行在大型計(jì)算機(jī)化系統(tǒng)中的應(yīng)用提供輔助和便利。
正如已知的那樣,可以將基本的數(shù)據(jù)處理系統(tǒng)分類為單指令、單數(shù)據(jù)流(SISD)裝置,并且典型地以它們最簡(jiǎn)單的表達(dá)形式來使用處理器、接口和存儲(chǔ)器裝置。所述處理器響應(yīng)用戶或整個(gè)系統(tǒng)的另一個(gè)組件所輸入的指令來執(zhí)行有指導(dǎo)的任務(wù)(directed task)。在執(zhí)行其指定的任務(wù)過程中,所述處理器依賴接口向存儲(chǔ)器傳遞諸如數(shù)據(jù)請(qǐng)求之類的命令,以及通過該接口接收存儲(chǔ)在存儲(chǔ)器裝置內(nèi)的指定數(shù)據(jù)。
已知數(shù)據(jù)處理系統(tǒng)大都使用常規(guī)編址的存儲(chǔ)器裝置。也就是說,已知的數(shù)據(jù)系統(tǒng)使用了在其中包含已定義的本地語系(locale)的存儲(chǔ)器裝置,每一個(gè)本地語系都具有其自己的特殊地址。按這種方式,要是處理器希望將存儲(chǔ)在地址A上數(shù)值加上存儲(chǔ)在地址B上的數(shù)值,該存儲(chǔ)器裝置就會(huì)前轉(zhuǎn)到存儲(chǔ)器內(nèi)的特定的已編址位置或單元,并且經(jīng)由接口將這些數(shù)值傳遞給發(fā)生適當(dāng)求和的處理器。在這類系統(tǒng)中,集成組件的特性和功能,也就是處理器和存儲(chǔ)器裝置的特性和功能都是意義明確的而且是互不相同的。圖1描繪出了這類已知的數(shù)據(jù)處理系統(tǒng),在其中處理器2響應(yīng)經(jīng)由輸入線4輸入的任務(wù)來進(jìn)行操作。爾后,利用接口6向存儲(chǔ)器裝置8傳遞諸如數(shù)據(jù)請(qǐng)求之類的指令,以及借此來接收存儲(chǔ)在存儲(chǔ)器裝置8內(nèi)的指定數(shù)據(jù)。
同時(shí),還已知的是數(shù)據(jù)處理系統(tǒng)可以包含一個(gè)以上的處理器和存儲(chǔ)器,并且進(jìn)一步講,所述這些多個(gè)組件都可以是執(zhí)行多指令流的系統(tǒng)的一部分??梢园堰@些多指令流多數(shù)據(jù)流(MIMD)裝置視作為緊耦合SISD裝置的大型集合,在其中系統(tǒng)中的每一個(gè)處理器雖然是與其它集成處理器整體協(xié)同工作的,但是負(fù)責(zé)較大任務(wù)的指定部分。也就是說,MIMD裝置的效能通常受限于那些特定的場(chǎng)合(arenas),在這里,待解決的問題適于被分解成多個(gè)相似的又相對(duì)獨(dú)立的子問題。MIMD裝置的那些集成組件的特性和功能同樣也是意義明確的而且互不相同。
另一種已知的數(shù)據(jù)處理系統(tǒng)包含單指令流多數(shù)據(jù)流(SIMD)裝置。這些SIMD裝置使用了任意數(shù)量的處理器,全部以彼此同步的方式來執(zhí)行相同程序,但是每個(gè)處理器都將當(dāng)前指令所指定的操作符作用于不同的操作數(shù)并由此產(chǎn)生其自己的結(jié)果。SIMD裝置中的處理器訪問集成存儲(chǔ)器以獲取操作數(shù)并存儲(chǔ)結(jié)果。同樣,SIMD裝置的那些集成組件的特性和功能都是意義明確的并且互不相同,因?yàn)橛?jì)算是由必須具備對(duì)存儲(chǔ)器的某種類型的訪問以完成其作業(yè)的處理器來執(zhí)行的。
盡管已知的數(shù)據(jù)處理系統(tǒng)因此能夠處理大量的數(shù)據(jù),但是處理器和存儲(chǔ)器裝置的已定義的且不變的特性限制了可以完成各種操作的速度和效率。
此外,還已經(jīng)構(gòu)造出了使用非常規(guī)編址的其他類存儲(chǔ)器的各種不同的結(jié)構(gòu)。通常,將這些存儲(chǔ)器稱為“相聯(lián)(associative)”存儲(chǔ)器,并且正如所表明的那樣,這些存儲(chǔ)器不是按各數(shù)據(jù)位在存儲(chǔ)器內(nèi)的位置來對(duì)這些數(shù)據(jù)位進(jìn)行編目錄(catalog)。相反,相聯(lián)存儲(chǔ)器按其中所存儲(chǔ)的信息的特性或固有性質(zhì)來對(duì)它們的數(shù)據(jù)位進(jìn)行“編址”。也就是說,相聯(lián)存儲(chǔ)器內(nèi)的數(shù)據(jù)不是通過它們位置的名稱來標(biāo)識(shí)的,而是根據(jù)存儲(chǔ)在存儲(chǔ)器的每個(gè)特定單元中的數(shù)據(jù)的屬性來標(biāo)識(shí)的。
在大多數(shù)相聯(lián)存儲(chǔ)器裝置中,對(duì)全部所存儲(chǔ)數(shù)據(jù)附加固定尺寸的關(guān)鍵字字段。然后,可以利用搜索關(guān)鍵字從相聯(lián)存儲(chǔ)器裝置中選擇其所附加的關(guān)鍵字字段與該搜索關(guān)鍵字相匹配的一個(gè)特定數(shù)據(jù)字段或多個(gè)數(shù)據(jù)字段,而不管其命名的位置為何,以供根據(jù)指定的指令來進(jìn)行后續(xù)的處理。
因此,盡管相聯(lián)存儲(chǔ)器的實(shí)施方式是已知的,但是這些裝置總是被用作為已知的數(shù)據(jù)處理系統(tǒng)內(nèi)部的專用塊或組件,所述已知的數(shù)據(jù)處理系統(tǒng)采用了標(biāo)準(zhǔn)的處理器、接口以及常規(guī)編址的存儲(chǔ)器。也就是說,盡管已知的相聯(lián)存儲(chǔ)器不采用常規(guī)的編址協(xié)議,但是它們自身并不能不依賴已知的處理器和外部存儲(chǔ)器而以與已知的SISD、SIMD和MIMD結(jié)構(gòu)相一致的方式來處理信息。
鑒于上述問題和考慮,因此本發(fā)明試圖通過使用主動(dòng)相聯(lián)存儲(chǔ)器來提供一種克服上述缺陷的用于數(shù)據(jù)處理系統(tǒng)的引擎,所述主動(dòng)相聯(lián)存儲(chǔ)器使用可變尺寸關(guān)鍵字,通過有選擇地既充當(dāng)處理器又充當(dāng)存儲(chǔ)器,其各單元在進(jìn)行它們的作業(yè)時(shí)不必訪問獨(dú)立的存儲(chǔ)塊,因此實(shí)質(zhì)上縮短了處理、計(jì)算和通信時(shí)間。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種有效的數(shù)據(jù)處理系統(tǒng)。
本發(fā)明的另一個(gè)重要方面是,提供一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其按照提高數(shù)據(jù)處理速度和效率的方式實(shí)現(xiàn)主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎裝置。
本發(fā)明的另一個(gè)重要方面是,提供一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其實(shí)現(xiàn)主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎裝置,通過有選擇地既充當(dāng)處理器又充當(dāng)存儲(chǔ)器,主動(dòng),所述主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎裝置的各單元不必訪問獨(dú)立的存儲(chǔ)塊以便完成它們的作業(yè)。
本發(fā)明的另一個(gè)重要方面是,提供一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其實(shí)現(xiàn)主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎,所述主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎的各個(gè)單元能夠根據(jù)由全局傳播的指令或查詢而設(shè)置的它們各自狀態(tài)來有選擇地處理給定指令。
本發(fā)明的另一個(gè)重要方面是,提供一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其實(shí)現(xiàn)主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎,所述主動(dòng)相聯(lián)存儲(chǔ)器或相聯(lián)引擎的各個(gè)單元,能夠都在單個(gè)時(shí)鐘周期之內(nèi)根據(jù)它們各自的狀態(tài),有選擇地并行處理指定指令。
本發(fā)明的另一個(gè)重要方面是,提供一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其實(shí)現(xiàn)允許使用可變長(zhǎng)度關(guān)鍵字字段的主動(dòng)存儲(chǔ)器裝置或單元式引擎。
本發(fā)明的另一個(gè)重要方面是,提供一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其實(shí)現(xiàn)主動(dòng)存儲(chǔ)器或單元式引擎,所述主動(dòng)存儲(chǔ)器或單元式引擎是同構(gòu)的,由此在執(zhí)行程序期間,允許在不同的時(shí)間把存儲(chǔ)在存儲(chǔ)器中的完全相同的信息塊作為關(guān)鍵字字段或數(shù)據(jù)字段(的一部分)。
本發(fā)明的另一個(gè)目的是,提供一種用于有效的數(shù)據(jù)處理系統(tǒng)的單元式引擎,其使得在主動(dòng)相聯(lián)存儲(chǔ)器內(nèi)可進(jìn)行搜索空間的動(dòng)態(tài)限定(dynamic limitation)。
本發(fā)明的另一個(gè)目的是,提供一種用于有效的數(shù)據(jù)處理系統(tǒng)的單元式引擎,其提供了對(duì)單元陣列任一端的有選擇的可訪問性。
本發(fā)明的另一個(gè)目的是,提供用于有效的數(shù)據(jù)處理系統(tǒng)的引擎,其能夠調(diào)節(jié)相聯(lián)存儲(chǔ)器內(nèi)的兩個(gè)或多個(gè)單元之間的數(shù)據(jù)傳輸。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,一種數(shù)據(jù)處理系統(tǒng)包括含有n個(gè)單元的相聯(lián)存儲(chǔ)器,n個(gè)單元中的每一個(gè)都包含一處理電路。利用控制器來向相聯(lián)存儲(chǔ)器發(fā)出多條指令中的一條,而利用時(shí)鐘裝置每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào)。所述時(shí)鐘裝置向相聯(lián)存儲(chǔ)器輸出同步時(shí)鐘信號(hào),并且所述控制器在其中一個(gè)時(shí)鐘周期內(nèi)同時(shí)地將多條指令中的一條全局地傳遞給所有n個(gè)單元。
通過整體考慮說明書、權(quán)利要求和附圖,本發(fā)明的這些及其它目的以及它們的優(yōu)選實(shí)施例會(huì)變得清晰明了。


圖1是舉例說明已知的SISD數(shù)據(jù)處理結(jié)構(gòu)的框圖。
圖2是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的、數(shù)據(jù)處理系統(tǒng)的一般配置的框圖,所述數(shù)據(jù)處理系統(tǒng)包括存儲(chǔ)器引擎和同步時(shí)鐘元件。
圖3是示出圖2中所示的存儲(chǔ)器引擎的更詳細(xì)的框圖。
圖4是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的、單元或處理元件的結(jié)構(gòu)的框圖。
圖5是示出代碼轉(zhuǎn)換器的結(jié)構(gòu)的框圖。
具體實(shí)施例方式
圖2描繪出了控制器100(下文中稱為笛卡爾控制器(CC))與單元式引擎102(下文中稱為聯(lián)結(jié)引擎(CE))之間的結(jié)構(gòu)關(guān)系。利用同步時(shí)鐘電路106來協(xié)調(diào)CC 100和CE 102的操作,以便可以由CC100發(fā)出多條指令中的一條并傳送給CE 102,以供并行執(zhí)行和處理。
所述時(shí)鐘電路106每秒能夠輸出預(yù)定數(shù)目的時(shí)鐘周期,而所述CC100能夠執(zhí)行內(nèi)部操作,這樣CC 100可以執(zhí)行多種內(nèi)部操作中的一種,同時(shí)在單個(gè)時(shí)鐘周期內(nèi)并行地向CE 102發(fā)出多條指令中的一條。
正如在圖3中描繪出的那樣,所述CE 102是由主動(dòng)單元或處理元件的陣列組成的,并被具體化為聯(lián)結(jié)存儲(chǔ)器(CM)104和包含多個(gè)矢量108的RAM(隨機(jī)存取存儲(chǔ)器),每一個(gè)矢量都具有與CM 104相同的存儲(chǔ)容量,并因此能夠有選擇地存儲(chǔ)CM 104的全部?jī)?nèi)容。也就是說,所述CE 102包括具有n個(gè)單元的CM 104和相關(guān)聯(lián)的矢量存儲(chǔ)器108,其在串行的CC 100的控制之下。在本發(fā)明的一個(gè)實(shí)施例中,正如將在稍后更詳細(xì)論述的那樣,存儲(chǔ)器矢量108的用途是使得能夠在比CM 104內(nèi)可容納的字符串更長(zhǎng)的字符串上執(zhí)行搜索查找、插入和刪除操作,并且用來提供低成本的實(shí)施方案和降低功耗。
應(yīng)該理解,在不脫離本發(fā)明的較寬范方面的前提下,本發(fā)明要覆蓋這樣的情況,CE 102可以具有任何數(shù)量的特定電路的配置,只要CC100能夠向CE 102發(fā)出命令和從它那里接收數(shù)據(jù)。
參考圖3,CM 104中的每一個(gè)n位單元都包含下列寄存器·′mark′ ——1位標(biāo)記寄存器;·′w′——主寄存器,它扮演著類似常規(guī)設(shè)計(jì)中累加器的角色,同時(shí)它還與數(shù)量等于存儲(chǔ)器矢量數(shù)目的許多通用寄存器相關(guān)聯(lián)。
記號(hào)設(shè)x是長(zhǎng)度m的位字段,而y是長(zhǎng)度n的位字段,則{x,y}表示通過把y添加到x上而構(gòu)成的長(zhǎng)度m+n的位字段??梢詫⒃撚浱?hào)推廣到任何數(shù)量的位字段,例如,對(duì)三個(gè)變量的位字段{a,b,c}={a,{b,c}}={{a,b},c}假設(shè)r是(n+1)位寄存器并且n≥k≥0,則r[k]表示從右端(k=0)至左端(k=n)開始數(shù)起的r中的第(k+1)位。
假設(shè)r是(n+1)位寄存器并且n≥m>k≥0,則r[m:k]表示長(zhǎng)度m-k+1的位字段,{r[m],r[m-1],...,r[k]}。
因此,在CM 104內(nèi)的m位單元的內(nèi)容是其w寄存器的內(nèi)容加上其mark寄存器的內(nèi)容單元[m-1:0]={mark,value}數(shù)值[m-2:0]={ext,symbol}符號(hào)[m-3:0]其中ext代表擴(kuò)展位,用來創(chuàng)建特定數(shù)值(對(duì)于ext=1的情況)的字母表。
本發(fā)明的一個(gè)重要方面在于CM 104內(nèi)的每個(gè)m位單元除存儲(chǔ)數(shù)據(jù)之外主動(dòng)處理數(shù)據(jù)的能力。數(shù)據(jù)的處理可以發(fā)生在每個(gè)m位單元內(nèi)部,或者通過影響預(yù)定單元的左側(cè)或右側(cè)緊鄰的單元來發(fā)生數(shù)據(jù)的處理。應(yīng)當(dāng)注意的是通過按這種方式提高CM 104內(nèi)的每個(gè)m位單元的功能性,本發(fā)明表現(xiàn)出系統(tǒng)級(jí)行為,也就是更復(fù)雜的行為,并且超過了其它數(shù)據(jù)處理系統(tǒng)的性能。
本發(fā)明的另一個(gè)重要方面是通過將要“標(biāo)記”的每個(gè)單元的能力來部分地實(shí)現(xiàn)CM 104內(nèi)的單元級(jí)的主動(dòng)處理數(shù)據(jù)的能力,這是條件或?qū)傩缘囊徊糠?,將它指定為其本身或CM 104內(nèi)的相鄰單元隨后將執(zhí)行任務(wù)或執(zhí)行操作數(shù)的單元。
返回到圖3,對(duì)于本發(fā)明的目的而言,如果一位的內(nèi)部單元寄存器mark=1,則把單元視為“已標(biāo)記”,而如果mark=0則視為“未標(biāo)記”。此外,所述CM104具有能通過發(fā)出專用指令而被動(dòng)態(tài)調(diào)節(jié)的“左界限”和“右界限”。另外,CM 104的“搜索空間”是由左界限和右界限劃界的CM 104的分段(segment)。應(yīng)該理解在不脫離本發(fā)明的較寬范方面的前提下,內(nèi)部單元寄存器mark在長(zhǎng)度方面可以大于一位。
正如先前提到的那樣,提供給CE 102的代碼的執(zhí)行是由CC 100來驅(qū)動(dòng)的。所述CE 102/CC 100接口使用了四個(gè)專用寄存器,如圖3所示·′INR′112——數(shù)據(jù)輸入寄存器——所有CE 102指令都從INR(由CC 100提供的)獲取它們的(即時(shí))數(shù)據(jù)變量(如果有的話);·′OUTR′114據(jù)輸出——包含“無標(biāo)記”位和數(shù)值。如果至少其中一個(gè)單元被標(biāo)記,則OUTR包含0,后面跟隨第一個(gè)已標(biāo)記單元中所含的數(shù)值;否則OUTR包含1,后面跟隨與實(shí)施方案相關(guān)的特定數(shù)值,比如11...1;·′OPR′116——指令寄存器,其包含當(dāng)前CE 102指令的操作碼(該源是CC 100指令中的專用字段);·′VAR′118——用于矢量存儲(chǔ)器的地址寄存器。所述VAR 118寄存器是由特定的CC 100指令來更新的,并且被用作顯式操作矢量的指令的變量;所述VAR 118寄存器還被用在執(zhí)行涉及與單元相關(guān)聯(lián)的通用寄存器的所有操作中。
正如進(jìn)一步在圖3中表示的那樣,可以有選擇地利用輸入/輸出線120來訪問CM 104的兩端。正如在此使用的那樣,所述輸入/輸出線120具有下列含義·′left_in′122={w,mark,eq,first},作為默認(rèn)所有都為0(eq=1是指單元中的兩個(gè)操作數(shù)相等;first=1是指所述單元是第一個(gè)已標(biāo)記的單元);·′left_out′124={w,mark,eq,first},來自第一個(gè)單元;·′right_in′126={w,mark,eq,first},作為默認(rèn)所有都為0;·′right_out′128={w,mark,eq,first},來自最后一個(gè)單元。
圖4示出了CM 104內(nèi)的m位單元的內(nèi)部結(jié)構(gòu)的一個(gè)實(shí)施例。如圖4所示,每個(gè)單元的內(nèi)部結(jié)構(gòu)都包括下列電路·ALU算術(shù)邏輯部件130,其執(zhí)行加法、減法、比較和逐位邏輯功能·leftMux多工器131,其從下列中選擇用于ALU的左操作數(shù)w存儲(chǔ)在累加寄存器134中的數(shù)值in自輸入寄存器112c中接收的數(shù)值memOut從由向量地址寄存器VAR 118編址的矢量存儲(chǔ)器中讀取的數(shù)值·aluMux多工器133,其從下列中選擇將要加載到累加寄存器(w 134)中的數(shù)值w存儲(chǔ)在累加寄存器134中的數(shù)值fromLeft存儲(chǔ)在左側(cè)單元的累加寄存器中的數(shù)值fromRight存儲(chǔ)在右側(cè)單元的累加器中的數(shù)值A(chǔ)LU 130的輸出·w累加寄存器134·mark標(biāo)記寄存器·三態(tài)輸出緩沖器·DECODE組合電路137,其根據(jù)由下列產(chǎn)生的局部環(huán)境來對(duì)指令進(jìn)行譯碼localFlags由ALU產(chǎn)生的leftFlags接收自左側(cè)單元的標(biāo)志rightFlags接收自右側(cè)單元的標(biāo)志class_i接收自TRANSCODER(代碼轉(zhuǎn)換器)的分類碼TRANSCODER產(chǎn)生·用于leftMux、rightMux、ALU、aluMux、mark、三態(tài)緩沖器的命令代碼·來自鄰近單元的標(biāo)志·用于TRANSCODER的單元的state_i位代碼轉(zhuǎn)換器圖5示出了TRANSCODER(代碼轉(zhuǎn)換器)的組織,它是與CE 102集成的電路并且充當(dāng)控制互連網(wǎng)絡(luò)的一部分。也就是說,利用TRANSCODER,根據(jù)如下內(nèi)容·其狀態(tài)位(狀態(tài)i),(即局部狀態(tài))·所有單元的狀態(tài)位(即全局狀態(tài))·將要執(zhí)行的當(dāng)前指令,將每個(gè)單元分到下面的類別·已標(biāo)記單元·第一個(gè)已標(biāo)記單元·最后一個(gè)已標(biāo)記單元·在界限范圍內(nèi)的單元(該界限存儲(chǔ)在TRANSCODER的存儲(chǔ)區(qū)中)·主動(dòng)單元。
應(yīng)該理解在不脫離本發(fā)明的較寬范方面的前提下,可以將其它的單元類別添加到上述類別中。
所述TRANSCODER從每個(gè)單元中接收狀態(tài)位(state_0,state_1,...,state_(n-1)),并將指定它所歸屬的各類的3位代碼(class_0,class_1,...,class_(n-1))送回到每個(gè)單元。
代碼轉(zhuǎn)換器的構(gòu)造塊(building block)為·OR前束(Prefixes)主要根據(jù)將要執(zhí)行的分類來計(jì)算單元的相對(duì)位置的電路140·界限存儲(chǔ)器用于存儲(chǔ)關(guān)于所述界限的信息的兩個(gè)鎖存器141·MUXs多工器142,其根據(jù)當(dāng)前指令選擇每個(gè)單元的類可以按以下兩種不同的方式來實(shí)現(xiàn)TRANSCODER,以便最優(yōu)化它的尺寸和速度·用于小n值的線性版本·(用于大n值的)二維版本,其包含LINE TRANSCODER和COLUMN TRANSCODER,每一個(gè)都具有O(n1/2)量級(jí)的尺寸。
因此,本發(fā)明的另一個(gè)重要方面是CC 100的這種能力CC 100向CE 102發(fā)出命令,并且在單個(gè)時(shí)鐘周期內(nèi)使這類指令并行地廣播到CM 104內(nèi)的所有單元。例如,那些符合由來自CC 100的指令所設(shè)定標(biāo)準(zhǔn)的單元,可以在相同的時(shí)鐘周期中同時(shí)獨(dú)立地和有選擇地對(duì)自身進(jìn)行標(biāo)記,由此,在后面時(shí)鐘周期內(nèi),可以根據(jù)該分類結(jié)果,再次在單個(gè)時(shí)鐘周期內(nèi)并行地執(zhí)行后續(xù)的指令或操作。
因此,本發(fā)明的另一個(gè)重要方面是TRANSCODER(代碼轉(zhuǎn)換器)不僅依照其局部狀態(tài)(例如,其已標(biāo)記或未標(biāo)記的狀態(tài))對(duì)每個(gè)單元進(jìn)行分類,而且還按照其全局狀態(tài)和當(dāng)前指令來對(duì)每個(gè)單元進(jìn)行分類。也就是說,當(dāng)由TRANSCODER(代碼轉(zhuǎn)換器)進(jìn)行的單元分類的一個(gè)方面可能是特定單元的局部狀態(tài)為“已標(biāo)記”,但是對(duì)于這類單元而言同樣重要的是要“知曉”它相對(duì)于所有其它單元的“全局狀態(tài)”,比如“已標(biāo)記”的單元是“第一個(gè)已標(biāo)記”單元還是“最后一個(gè)已標(biāo)記”單元。
通過一個(gè)示例,假設(shè)在先前的時(shí)鐘周期內(nèi),經(jīng)由來自CC 100的指令所指出的某些單元的屬性,對(duì)CM 104內(nèi)的這些單元進(jìn)行了如下的標(biāo)記(已標(biāo)記的單元在該串中用粗體數(shù)字表示)CM2 5 2 7 6 4 10...
假設(shè)接下來,在單個(gè)時(shí)鐘周期內(nèi)又并行地將指令“addr 5”廣播到CM 104內(nèi)的所有單元,其中矢量存儲(chǔ)器108中的矢量5如下第5行3 4 7 8 2 5 12...
CM 104內(nèi)的所有已標(biāo)記的單元于是將把它們的數(shù)據(jù)字段的內(nèi)容添加到矢量5中的對(duì)應(yīng)元素的內(nèi)容中,其結(jié)果是這種操作被存儲(chǔ)在CM104的各個(gè)單元中,如下CM5 9 2 7 6 9 10...
正如上面的示例所述的那樣,CM 104內(nèi)的每個(gè)單元的已標(biāo)記/未標(biāo)記狀態(tài)不受由CC 100發(fā)出的特定指令的影響(指在本例中;盡管正如所提到的那樣,某些指令可能會(huì)影響CM 104內(nèi)的每個(gè)單元的已標(biāo)記的狀態(tài))。此外,所有加法運(yùn)算都在單個(gè)時(shí)鐘周期內(nèi)被同時(shí)地(也就是說,彼此并行地)且在每個(gè)已標(biāo)記單元內(nèi)執(zhí)行。
正如在上面的示例中進(jìn)一步示出的那樣,本發(fā)明的數(shù)據(jù)處理系統(tǒng)能夠在系統(tǒng)級(jí)上來實(shí)現(xiàn)對(duì)數(shù)值的矢量定義的操作;在這個(gè)示例中,矢量數(shù)值是CM 104數(shù)據(jù)和矢量存儲(chǔ)器108的矢量5。在這點(diǎn)上,本發(fā)明的數(shù)據(jù)處理系統(tǒng)包括具有帶有主動(dòng)單元(即,處理元件)線性陣列的CM 104的CE,其中CM 104內(nèi)的每個(gè)單元都具有一個(gè)或多個(gè)標(biāo)記位和一個(gè)累加器(134);與此同時(shí),在每個(gè)單元的級(jí)別上,可以把所有矢量的對(duì)應(yīng)元素看作為一組相關(guān)聯(lián)的寄存器。(因此,相關(guān)聯(lián)的寄存器的數(shù)目等于矢量108的數(shù)目)。
此外,本發(fā)明的另一個(gè)重要方面是通過分別分別地使各累加器與CM 104內(nèi)的每個(gè)單元的單獨(dú)關(guān)聯(lián)的寄存器連結(jié),本發(fā)明的數(shù)據(jù)處理系統(tǒng)提供了對(duì)數(shù)值矢量的操作,由此可實(shí)現(xiàn)矩陣計(jì)算等等。
與在本發(fā)明的背景技術(shù)中所論述的SIMD和MIMD系統(tǒng)相比,本發(fā)明的數(shù)據(jù)處理系統(tǒng)不依賴于處理器與所鏈接的存儲(chǔ)器裝置的操作之間的不變而嚴(yán)格的劃界。
在本發(fā)明的數(shù)據(jù)處理系統(tǒng)中,可以存儲(chǔ)用于在CM 104中進(jìn)行搜索的消息,但不是用常規(guī)的“存儲(chǔ)器地址”概念;盡管CM 104內(nèi)的每個(gè)單元自身都可以響應(yīng)全局發(fā)出的命令有選擇地處理信息,但是它本身并不是處理器,不過正如前面所論述的那樣,CM 104內(nèi)的每個(gè)單元都包含處理電路;而且本發(fā)明的數(shù)據(jù)處理系統(tǒng)的性能嚴(yán)格來講是其尺寸的線性函數(shù),并且它可以按其它已知的可編程機(jī)器所未曾表現(xiàn)的方式而適用于寬范圍的程序/應(yīng)用。
應(yīng)該理解本發(fā)明的數(shù)據(jù)處理系統(tǒng)在CM 104中的n個(gè)單元中的每一個(gè)單元內(nèi)所包含的處理電路的特性和配置方面不受限制。
依照本發(fā)明,所述CE 102具有豐富的指令集,按下列類來加以分組·全局管理指令——CM 104界限的設(shè)置和重置;在CM 104和RAM矢量108之間交換數(shù)據(jù);·搜索/訪問指令——對(duì)CM 104的一個(gè)或多個(gè)單元進(jìn)行的相聯(lián)訪問;·標(biāo)記操縱指令;·數(shù)據(jù)存儲(chǔ)和傳送指令;·算術(shù)和邏輯指令;·條件指令;和·變址。
注意用于CE 102的所有指令都是在單個(gè)機(jī)器周期內(nèi)執(zhí)行的。
所述CE 102它自身不具備對(duì)程序存儲(chǔ)器進(jìn)行訪問以取出其指令的訪問權(quán)——每一個(gè)周期它的單元都等待獲取專用寄存器中的操作碼,但是它要采用不同的實(shí)體,在本例中,利用CC 100來為它們做這事;所述代碼為順序的并且需要有單個(gè)訪問點(diǎn)以將其取出。因此,所述CC 100的主要工作就是驅(qū)動(dòng)CE 102的程序的執(zhí)行,即,取出將由單獨(dú)的單元執(zhí)行的指令,并將它們放置在內(nèi)部寄存器中;同時(shí),它充當(dāng)?shù)紺E 102的網(wǎng)關(guān)并且因此負(fù)責(zé)所有的輸入/輸出交互。所述CC 100還執(zhí)行簡(jiǎn)單的順序操作,若沒有所述操作的話則它將不可能為這類機(jī)器寫入有意義的代碼這類操作的一類就是所謂的“控制原語”,即那些用于編碼決策序列(例如,if、while、repeat等等)的指令。
偽代碼在下文中,利用偽代碼來非正式地規(guī)定CE 102的大部分指令的語義,偽代碼使用一種受C程序設(shè)計(jì)語言啟發(fā)的記號(hào)。應(yīng)該理解這種說明并不是要限制指令實(shí)際實(shí)現(xiàn)的表示,而是本發(fā)明還設(shè)想了其它的表示。
專用偽語句forall描述由單元組并行執(zhí)行的動(dòng)作;其文法可以表示為·<forall statement>∷=forall[(<forall condition>)]<statement>;·<forall condition>∷=marked|in searchSpace;考慮forall的下列三種變化1.forall<action>;
2.forall(in searchSpace)<action>;3.forall(marked)<action>;變化1可用于規(guī)定由CM 104中的所有單元執(zhí)行的動(dòng)作。變化2可用于涉及搜索空間中的所有單元的動(dòng)作(參見上面),而變化3適用于當(dāng)所有已標(biāo)記的單元執(zhí)行指定的動(dòng)作時(shí)的情形。
在每個(gè)單元的級(jí)別上,執(zhí)行所有指令所需要的完整數(shù)據(jù)集連同它們?cè)趥未a中使用的名稱,是·單元的寄存器(包括相關(guān)聯(lián)的寄存器),即w,mark,r0,r1,...,rN;和·單元左右兩邊相鄰單元的內(nèi)容,即分別為right_w、right_mark和left_w、left_mark。
同時(shí),能夠在單元級(jí)別上來評(píng)價(jià)對(duì)first_mark和last_mark的預(yù)測(cè);前者對(duì)CM中最左側(cè)的已標(biāo)記單元為真,而后者對(duì)于最右側(cè)的已標(biāo)記單元為真。
全局管理指令·ldl<value>即時(shí)加載行(load line immediate);根據(jù)由對(duì)VAR的輸入產(chǎn)生的數(shù)值所選擇的存儲(chǔ)器矢量來還原所有CM單元(標(biāo)記和w寄存器)的內(nèi)容CM=RAM[VAR];stl<value>即時(shí)存儲(chǔ)行(store line immediate);將所有CM單元的內(nèi)容(標(biāo)記和w寄存器)保存至由對(duì)VAR的輸入產(chǎn)生的數(shù)值所選擇的存儲(chǔ)器矢量中RAM[VAR]=CM;llim左界限(left limit);將搜索空間的左界限設(shè)置為第一個(gè)已標(biāo)記單元。不影響標(biāo)記。注意,所述左界限是受搜索/訪問指令的影響的最左側(cè)單元。
rlim右界限(right limit);將搜索空間的右界限設(shè)置為第一個(gè)已標(biāo)記單元。不影響標(biāo)記。注意,所述右界限是受基本搜索/訪問指令的影響的最右側(cè)單元。
droplim刪除界限;將左界限設(shè)置為最左側(cè)的CM單元,而將右界限設(shè)置為最右側(cè)的CM單元。不影響標(biāo)記。
搜索/訪問指令注意在本節(jié)中描述的所有指令僅僅在搜索空間的界限范圍內(nèi)動(dòng)作;變量是在輸入寄存器(INR)中可用的m-1位數(shù)值。
find<value>標(biāo)識(shí)所有具有等于所述變量的數(shù)值的單元。對(duì)于每個(gè)單元而言,當(dāng)發(fā)現(xiàn)匹配時(shí)將其右側(cè)相鄰的單元的標(biāo)記位設(shè)置為1;將所有其它的標(biāo)記位設(shè)置為0forall(in searchSpace)mark=(left_w==INR)?1:0;match<value>將存儲(chǔ)在所有已標(biāo)記單元中的數(shù)值同所述變量進(jìn)行比較。如果在指定的單元中發(fā)現(xiàn)匹配,則就將下列單元的標(biāo)記位設(shè)置為1;將所有其它的標(biāo)記位設(shè)置為0forall(in searchSpace)mark=(left_mark && left_w==INR)?1:0;lfind<value>向左查找并標(biāo)記(find and mark left);標(biāo)識(shí)所有具有等于所述變量的數(shù)值的單元。對(duì)于每個(gè)單元而言,當(dāng)發(fā)現(xiàn)匹配時(shí)將其左側(cè)相鄰的單元的標(biāo)記位設(shè)置為1;將所有其它的標(biāo)記位設(shè)置為0forall(in searchSpace)mark=(right_w==INR)?1:0;
lmatch<value>向左匹配并標(biāo)記(match and mark left);將存儲(chǔ)在所有已標(biāo)記單元中的數(shù)值同所述變量進(jìn)行比較。如果在指定的單元中發(fā)現(xiàn)匹配,則將前面的單元的標(biāo)記位設(shè)置為1;將所有其它的標(biāo)記位設(shè)置為0forall(in searchSpace)mark=(right_mark && right_w==INR)?1:0;markall標(biāo)記搜索空間中的所有單元forall(in searchSpace)mark=1;addmark<value>標(biāo)記所有包含等于所述變量的數(shù)值的單元;不影響其它的標(biāo)記forall(in searchSpace){if(w==INR)mark=1;}mark<value>標(biāo)記所有包含等于所述變量的數(shù)值的單元;將所有其它的標(biāo)記位設(shè)置為0。
forall(in searchSpace)mark=(w==INR)?1:0;clr<value>清除所有包含等于所述變量的數(shù)值的單元的標(biāo)記位。
forall(in searchSpace){if(w==INR)mark=0;}
標(biāo)記操縱指令clrf清除第一個(gè);清除第一個(gè)(即,最左側(cè)的)標(biāo)記。
forall{if(first_mark)mark=0;}trace向左復(fù)制標(biāo)記。
forall{if(right_mark)mark=1;if(mark)mark=1;}keepl保留最后一個(gè);除了最后(即,最右側(cè)的)一個(gè)之外清除所有標(biāo)記。
forall{if(!last_mark)mark=0;}clrl清除最后一個(gè);清除最后一個(gè)(即,最右側(cè)的)標(biāo)記。
forall{if(last_mark)mark=0;}left將所有標(biāo)記向左側(cè)移動(dòng)一個(gè)單元。
Forall
mark=right_mark;right將所有標(biāo)記向右側(cè)移動(dòng)一個(gè)單元。
forallmark=left_mark;cright有條件的右移;將所有標(biāo)記向右側(cè)移動(dòng)一個(gè)單元,除非它們右側(cè)相鄰的單元包含等于所述變量的數(shù)值,而在這樣情況下用11...1來替換該數(shù)值。
forall{if(left_mark && w==INR){mark=0;w=11...1;}if(left_mark && w!=INR)mark=1;if(mark)mark=0;}cleft有條件的左移;將所有標(biāo)記向左側(cè)移動(dòng)一個(gè)單元,除非它們左側(cè)相鄰的單元包含指定的數(shù)值,而在這樣情況下用11..1來代替此數(shù)值。
forall{if(right_mark && w==INR){mark=0;w=11..1;}if(right_mark && w?。絀NR)mark=1;
if(mark)mark=0;}數(shù)據(jù)存儲(chǔ)和轉(zhuǎn)移指令nop無操作reset<value>存儲(chǔ)所有單元中的數(shù)值。不影響標(biāo)記。
forallw=INR;get將存儲(chǔ)在第一個(gè)已標(biāo)記單元中的數(shù)值發(fā)送到CM輸出,并且其標(biāo)記向右移動(dòng)一個(gè)位置。不影響其它的標(biāo)記。
forall{if(first_mark){OUTR=w;mark=0;}if(left_mark is first_mark)mark=1;}back將存儲(chǔ)在第一個(gè)已標(biāo)記單元中的數(shù)值發(fā)送到CM輸出,并且其標(biāo)記向左移動(dòng)一個(gè)位置。不影響其它的標(biāo)記。
forall{if(first_mark){OUTR=w;mark=0;}if(right_mark is first_mark)
mark=1;}set<value>存儲(chǔ)第一個(gè)已標(biāo)記單元中的數(shù)值。不影響標(biāo)記。
forall(marked){if(first_mark)w=INR;}setall<value>存儲(chǔ)所有已標(biāo)記單元中的數(shù)值。不影響標(biāo)記。
forall(marked)w=INR;ins<value>在第一個(gè)已標(biāo)記的單元之前插入數(shù)值。將插入點(diǎn)右側(cè)的所有單元的內(nèi)容向右轉(zhuǎn)移一個(gè)位置。注意在該進(jìn)程中,最初保存在最右側(cè)單元中的數(shù)值被丟失。
forall{if(right of first_mark)w=left_w;if(first_mark)w=INR;mark=left_mark;}del刪除存儲(chǔ)在第一個(gè)已標(biāo)記單元中的數(shù)值。所述單元保持已標(biāo)記的狀態(tài),并且將刪除點(diǎn)右側(cè)的所有單元的內(nèi)容向左轉(zhuǎn)移一個(gè)位置。
forall{if(first_mark)w=right_w;if(right of first_mark){
w=right_w;mark=right_mark;}}cpr向右復(fù)制;對(duì)于所有已標(biāo)記的單元,將整個(gè)單元內(nèi)容(w寄存器和標(biāo)記)復(fù)制到右側(cè)相鄰的單元。
forall{if(left_mark)w=left_w;mark=left_mark;}cpl向左復(fù)制;對(duì)于所有已標(biāo)記的單元,將整個(gè)單元內(nèi)容(w寄存器和標(biāo)記)復(fù)制到左側(cè)相鄰的單元。
forall{if(right_mark)w=right_w;mark=right_mark;}ccpr<value>有條件的向右復(fù)制;對(duì)于所有已標(biāo)記的單元,將保存在寄存器w中的數(shù)值復(fù)制到右側(cè)相鄰的單元;也復(fù)制標(biāo)記,除非在w寄存器中存儲(chǔ)有等于所述變量的數(shù)值。
forall{if(left_mark && left_w?。絀NR){w=left_w;mark=1;}else
mark=0;}ccpl<value>有條件的向左復(fù)制;對(duì)于所有已標(biāo)記的單元,將保存在寄存器w中的數(shù)值復(fù)制到左側(cè)相鄰的單元;也復(fù)制標(biāo)記,除非在w寄存器中存儲(chǔ)有等于所述變量的數(shù)值。
forall{if(right_mark && right_w?。絀NR){w=right_w;mark=1;}elsemark=0;}ld<address>即時(shí)加載;對(duì)于所有已標(biāo)記的單元,將保存在寄存器<r>中的數(shù)值加載到w寄存器中,以作為由對(duì)VAR的輸入產(chǎn)生的數(shù)值所選擇的RAM矢量的一部分。
forall(marked)w=<r>;st<address>即時(shí)存儲(chǔ);對(duì)于所有已標(biāo)記的單元而言,將保存在w寄存器中的數(shù)值移動(dòng)到寄存器<r>,以作為由對(duì)VAR的輸入產(chǎn)生的數(shù)值所選擇的RAM矢量的一部分。
forall(marked)w=<r>;算術(shù)和邏輯指令所有算術(shù)指令都是對(duì)用2的補(bǔ)碼來表示的m-2位數(shù)字執(zhí)行的操作數(shù)<op>是其中一個(gè)相關(guān)聯(lián)的單元寄存器(由對(duì)VAR的輸入產(chǎn)生的數(shù)值所選擇的RAM矢量的一部分),或者是由控制器提供的m-2位數(shù)字<op>∷=INR[m-3:0](即時(shí)數(shù)值)|r(RAM矢量元素)add<op>把操作數(shù)加到所有已標(biāo)記單元的w寄存器中。不影響標(biāo)記。
forall(marked)w+=<op>;fadd<op>完全添加,其中把右側(cè)擴(kuò)展當(dāng)作為進(jìn)位(參見add)。
forall{if(mark)w+=(<op>+right_w[m-2]);if(left_mark)w[m-2]=0;}sub<op>從存儲(chǔ)在所有已標(biāo)記單元的w寄存器中的數(shù)值中減去操作數(shù)數(shù)值。不影響標(biāo)記。
forall(marked)w-=<op>;fsub<op>完全減去,其中把右側(cè)擴(kuò)展當(dāng)作為進(jìn)位(參見sub)。
forall{if(mark)w-=(<op>+right_w[m-2]));if(left_mark)w[m-2]=0;}
half[<op>]對(duì)于所有已標(biāo)記的單元,將寄存器操作數(shù)除以2并將結(jié)果存儲(chǔ)在w寄存器中。不影響標(biāo)記。
forall(marked)w={<op>[m-2:m-3],<op>[m-3:1];fhalf[<op>]完全半數(shù);對(duì)于所有已標(biāo)記單元,將寄存器操作數(shù)除以2并將結(jié)果存儲(chǔ)在w寄存器中,如果左側(cè)單元的最低有效位是1的話,則將100..0添加到其中。不影響標(biāo)記。
forall(marked)w={<op>[m-2],left_w
,<op>[m-3:1];lt<op>小于(或等于);對(duì)于所有已標(biāo)記的單元,檢查寄存器w是否持有少于或等于保存在<op>中的數(shù)值的值;如果w<o(jì)p,則將w擴(kuò)展位設(shè)置為1;如果op>w,則將該標(biāo)記位設(shè)置為0。
forall(marked){if(w<<op>)w[m-2]=1;if(w><op>)mark=0;}flt<op>完全lt;對(duì)于所有已標(biāo)記的單元,當(dāng)w<o(jì)p或其左側(cè)相鄰的單元具有設(shè)置為1的w擴(kuò)展位時(shí),將該擴(kuò)展位設(shè)置為1;清除左側(cè)擴(kuò)展位,并且如果w>op的話,則也清除該標(biāo)記。這條指令是結(jié)合測(cè)試時(shí)使用的,以用來對(duì)多個(gè)連續(xù)的單元進(jìn)行比較。
forall{if(mark && (w<<op>‖left_w[m-2]))w[m-2]=1;if(right_mark)w[m-2]=0;
if(mark && w>op &&!left_w[m-2])mark=0;}gt<op>大于(或等于);對(duì)于所有已標(biāo)記的單元,檢查寄存器w是否具有大于或等于保存在<op>中的數(shù)值的值;如果w>op的話,則將w擴(kuò)展位設(shè)置為1;如果w<o(jì)p,則將該標(biāo)記位設(shè)置為0。
forall(marked){if(w><op>)w[m-2]=1;if(w<<op>)mark=0;}fgt<op>對(duì)于所有已標(biāo)記的單元,當(dāng)w>op或其左側(cè)相鄰的單元具有設(shè)置為1的w擴(kuò)展位時(shí),將該擴(kuò)展位設(shè)置為1;該左側(cè)擴(kuò)展位被清除,并且如果w<o(jì)p,則也清除該標(biāo)記。這條指令是結(jié)合測(cè)試時(shí)使用的,以用來對(duì)多個(gè)連續(xù)的單元進(jìn)行比較。
forall{if(mark &&(w><op>‖left_w[m-2]))w[m-2]=1;if(right_mark)w[m-2]=0;if(mark &&w<o(jì)p &&!left_w[m-2])mark=0;}test對(duì)于所有包含等于INR的數(shù)值的已標(biāo)記單元,將標(biāo)記位設(shè)置為0,并且如果左側(cè)單元的擴(kuò)展位是1,則將寄存器w賦值為11..1并清除左側(cè)單元的擴(kuò)展位。
forall{if(right_mark && right_w==INR)w[m-2]=0;if(mark && w==INR && left_w[m-2])w=11...1;else if(mark && w==INR)mark=0;}and<op>按位與;對(duì)于所有已標(biāo)記的單元,在寄存器w和<o(jì)p>之間執(zhí)行按位與。不影響標(biāo)記。
forall(marked)w&=<op>;or<op>按位或;對(duì)于所有已標(biāo)記的單元,在寄存器w和<op>之間執(zhí)行按位或。不影響標(biāo)記。
forall(marked)w|=<op>;xor<op>按位異或;對(duì)于所有已標(biāo)記的單元,在寄存器w和<o(jì)p>之間執(zhí)行按位異或。不影響標(biāo)記。
forall(marked)w^=<op>;條件指令下列兩條指令使用操作數(shù)寄存器<r>(由對(duì)VAR的輸入產(chǎn)生的數(shù)值所選擇的RAM矢量的一部分)以及來自于INR的m-1位數(shù)值。
<r>∷=w(用于寄存器w)|r(RAM矢量元素)cond<value>[<r>]對(duì)于所有已標(biāo)記的單元,檢查在兩個(gè)操作數(shù)之間執(zhí)行按位“與”操作之后是否有至少一位被設(shè)置為1。
forall(marked)mark=((<r>&INR)?。?)?1:0;ncond<value>[<r>]對(duì)于所有已標(biāo)記的單元,檢查在兩個(gè)操作數(shù)之間執(zhí)行按位“與”操作的結(jié)果是否為0。
forall(marked)mark=((<r>&INR)==0)?1:0;變址指令index對(duì)于所有已標(biāo)記的單元,將寄存器w賦值為單元相對(duì)于CM最左側(cè)單元(它具有變址0)的相對(duì)位置的數(shù)值。
正如能夠從上述說明書和附圖中看到的那樣,本發(fā)明以這樣一種方式提供了處理數(shù)據(jù)的新穎方法,所述方式就是提供增強(qiáng)的處理能力,并顯著降低處理時(shí)間、硅面積和功耗。正如所論述的那樣,本發(fā)明的數(shù)據(jù)處理系統(tǒng)并行地向各CM單元提供任何指定的指令及其要傳遞的操作數(shù),所述各CM單元在相同的時(shí)鐘周期內(nèi)執(zhí)行所述指令。
本發(fā)明的數(shù)據(jù)處理系統(tǒng)的又一個(gè)內(nèi)在的優(yōu)點(diǎn)就在于單元式引擎內(nèi)的每個(gè)單元不僅在單個(gè)時(shí)鐘周期內(nèi)同時(shí)執(zhí)行指令,而且還通過利用局部狀態(tài)信息和全局狀態(tài)信息兩者來動(dòng)態(tài)限制那些執(zhí)行全局廣播指令的這些單元的能力。具體來講,通過在單獨(dú)的單元級(jí)別上使用標(biāo)記位,相聯(lián)存儲(chǔ)器內(nèi)的實(shí)際單元能夠以一種迄今為止未知的方式來影響已標(biāo)記單元左側(cè)或右側(cè)的那些單元。因此,在系統(tǒng)級(jí)別上,本發(fā)明通過相聯(lián)機(jī)制,也就是說,通過CM 104內(nèi)的各單元的內(nèi)容的特性或?qū)傩远瞧渲刑囟ǖ闹付ㄎ恢玫刂?,提供了有選擇性的激活或已標(biāo)記狀態(tài)的更改。
因此,本發(fā)明在非常鄰近的級(jí)別上將處理和存儲(chǔ)器加以組合,這意味著CM 104的單獨(dú)單元不需訪問獨(dú)立的存儲(chǔ)塊以便完成其作業(yè)。此外,操作數(shù)在單元級(jí)上駐留在它們自己的局部空間中,因此使結(jié)果保持不動(dòng),從而節(jié)省了通信和處理時(shí)間、硅面積和功率。
應(yīng)當(dāng)注意的是某些指令操作數(shù)實(shí)際上是在全局廣播指令的同時(shí)由CC 100廣播出去的。
盡管已經(jīng)參照優(yōu)選實(shí)施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員能夠理解,在不脫離本發(fā)明的實(shí)質(zhì)范圍的情況下,可以作出各種明顯的改變,也可以用等同物來代替其元件。因此,本發(fā)明不想局限于所公開的特定實(shí)施例,而是本發(fā)明包括所有落入所附權(quán)利要求的范圍內(nèi)的實(shí)施例。
權(quán)利要求
1.一種用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,所述引擎包括具有n個(gè)單元的數(shù)據(jù)裝置,所述n個(gè)單元中的每一個(gè)都能夠存儲(chǔ)m位;包含p個(gè)矢量的矢量存儲(chǔ)器,所述p個(gè)矢量中的每一個(gè)都具有n×m位的存儲(chǔ)容量;控制互連網(wǎng)絡(luò),其依據(jù)所述n個(gè)單元中的每一個(gè)的局部狀態(tài)來對(duì)所述n個(gè)單元中的每一個(gè)進(jìn)行分類;指令寄存器,用于接收從控制器發(fā)出的指令;時(shí)鐘裝置,用于每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào),所述時(shí)鐘裝置向所述數(shù)據(jù)裝置和所述矢量存儲(chǔ)器輸出所述同步時(shí)鐘信號(hào);并且其中所述引擎在其中一個(gè)所述時(shí)鐘周期內(nèi),同時(shí)地向所有所述n個(gè)單元全局地傳遞所述指令,全部在一個(gè)所述時(shí)鐘周期內(nèi),由所述數(shù)據(jù)裝置內(nèi)所選定的各單元,依照通過所述控制互連網(wǎng)絡(luò)進(jìn)行的所述n個(gè)單元中每一個(gè)的所述分類,并行執(zhí)行所述指令。
2.根據(jù)權(quán)利要求1所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述指令是由所述數(shù)據(jù)裝置內(nèi)的所有所述n個(gè)單元并行執(zhí)行的。
3.根據(jù)權(quán)利要求1所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,進(jìn)一步包括數(shù)據(jù)互連網(wǎng)絡(luò),其將每個(gè)單元分別連接到它的右側(cè)相鄰單元和左側(cè)相鄰單元。
4.根據(jù)權(quán)利要求1所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述控制互連網(wǎng)絡(luò)依據(jù)所述n個(gè)單元中的每一個(gè)的局部狀態(tài)和所有所述n個(gè)單元的全局狀態(tài)來對(duì)所述n個(gè)單元中的每一個(gè)進(jìn)行分類。
5.根據(jù)權(quán)利要求4所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述n個(gè)單元中的每一個(gè)都包括狀態(tài)字段和數(shù)據(jù)字段,所述狀態(tài)字段包括用于對(duì)所述n個(gè)單元中每一個(gè)的局部狀態(tài)進(jìn)行編碼的標(biāo)記位;并且其中所述標(biāo)記位處于已標(biāo)記狀態(tài)和未標(biāo)記狀態(tài)中的一個(gè)狀態(tài)。
6.根據(jù)權(quán)利要求5所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述狀態(tài)字段是利用相聯(lián)機(jī)制加以修改的,所述相聯(lián)機(jī)制是通過屬于特定指令子集的所述指令的執(zhí)行來實(shí)現(xiàn)的。
7.根據(jù)權(quán)利要求6所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述數(shù)據(jù)字段是通過依照由所述控制互連網(wǎng)絡(luò)進(jìn)行的所述n個(gè)單元中每一個(gè)的分類來執(zhí)行所述n個(gè)單元中的邏輯和算術(shù)指令來修改的。
8.根據(jù)權(quán)利要求3所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述數(shù)據(jù)互連網(wǎng)絡(luò)和所述控制互連網(wǎng)絡(luò)兩者都是可擴(kuò)展的。
9.根據(jù)權(quán)利要求1所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述數(shù)據(jù)裝置是相聯(lián)存儲(chǔ)器裝置。
10.根據(jù)權(quán)利要求9所述的用于數(shù)據(jù)處理系統(tǒng)的單元式引擎,其中所述相聯(lián)存儲(chǔ)器裝置中的所述n個(gè)單元中的每一個(gè)包括處理電路。
11.一種用于數(shù)據(jù)處理系統(tǒng)的引擎,所述引擎包括包含n個(gè)單元的存儲(chǔ)器裝置;控制器,用于有選擇地向所述存儲(chǔ)器裝置發(fā)出指令;單元分類裝置,其與所述n個(gè)單元中的每一個(gè)的局部狀態(tài)相關(guān)聯(lián)地進(jìn)行操作;時(shí)鐘裝置,用于每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào),所述時(shí)鐘裝置向所述存儲(chǔ)器裝置和所述控制器輸出所述同步時(shí)鐘信號(hào);并且其中所述引擎在一個(gè)所述時(shí)鐘周期內(nèi)全局地向所有n個(gè)單元同時(shí)傳遞所述指令;并且其中,由所述存儲(chǔ)器內(nèi)的所選定的各單元依據(jù)由所述單元分類裝置指向的所述n個(gè)單元的所述局部狀態(tài)來執(zhí)行所述指令,所述指令的所述執(zhí)行是在一個(gè)所述時(shí)鐘周期內(nèi)、在所述所選定的各單元中的每一個(gè)單元中同時(shí)發(fā)生的。
12.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述指令是由所述存儲(chǔ)器裝置內(nèi)的所有所述n個(gè)單元執(zhí)行的。
13.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述存儲(chǔ)器裝置不是常規(guī)編址的。
14.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述存儲(chǔ)器裝置是相聯(lián)存儲(chǔ)器裝置。
15.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述n個(gè)單元中的每一個(gè)都包括處理電路。
16.根據(jù)權(quán)利要求15所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述處理電路具有累加器。
17.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述n個(gè)單元中的每一個(gè)都包括具有標(biāo)記位的字段;并且所述局部狀態(tài)反映所述標(biāo)記位的已標(biāo)記狀態(tài)和未標(biāo)記狀態(tài)中的一個(gè)狀態(tài)。
18.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述單元分類裝置與所述n個(gè)單元的全局狀態(tài)相關(guān)聯(lián)地進(jìn)行操作;并且其中,所述指令是由所述存儲(chǔ)器裝置內(nèi)的所選定的各單元,依據(jù)由所述單元分類裝置指向的所述n個(gè)單元的所述局部狀態(tài)和所述全局狀態(tài)來執(zhí)行的,所述指令的所述執(zhí)行是在一個(gè)所述時(shí)鐘周期內(nèi)、在所述所選定的各單元中的每一個(gè)單元中同時(shí)發(fā)生的。
19.根據(jù)權(quán)利要求18所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中由所述分類裝置使用的所述全局狀態(tài)是通過所有所述n個(gè)單元的所述局部狀態(tài)加以確定的。
20.根據(jù)權(quán)利要求17所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述指令只在具有設(shè)置為所述已標(biāo)記狀態(tài)的所述標(biāo)記位的那些n個(gè)單元內(nèi)加以執(zhí)行。
21.根據(jù)權(quán)利要求11所述的用于數(shù)據(jù)處理系統(tǒng)的引擎,其中所述n個(gè)單元中的每一個(gè)都包括具有多個(gè)標(biāo)記位的字段。
22.一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括包含n個(gè)單元的相聯(lián)存儲(chǔ)器裝置,所述n個(gè)單元中的每一個(gè)都包括處理電路和m位的存儲(chǔ)容量;控制器,用于向所述相聯(lián)存儲(chǔ)器發(fā)出多條指令中的一條;時(shí)鐘裝置,用于每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào),所述時(shí)鐘裝置向所述相聯(lián)存儲(chǔ)器裝置和所述控制器輸出所述同步時(shí)鐘信號(hào);并且其中所述控制器在一個(gè)所述時(shí)鐘周期內(nèi)、全局地向所有所述n個(gè)單元同時(shí)傳遞所述多條指令中的一條。
23.根據(jù)權(quán)利要求22所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括分類裝置,用于有選擇地與所述n個(gè)單元中的每一個(gè)的局部狀態(tài)相關(guān)聯(lián)地進(jìn)行操作;并且其中所述多條指令中的一條由所述相聯(lián)存儲(chǔ)器裝置內(nèi)的所選定的各單元,依據(jù)由所述分類裝置指向的所述n個(gè)單元的所述局部狀態(tài)來執(zhí)行,所述指令的所述執(zhí)行在一個(gè)所述時(shí)鐘周期內(nèi)、在所述所選定的各單元中的每一個(gè)單元中同時(shí)發(fā)生。
24.根據(jù)權(quán)利要求23所述的數(shù)據(jù)處理系統(tǒng),其中所述n個(gè)單元中的每一個(gè)都包括狀態(tài)字段和數(shù)據(jù)字段,所述狀態(tài)字段包括用于對(duì)所述n個(gè)單元中的每一個(gè)的局部狀態(tài)進(jìn)行編碼的標(biāo)記位,由此指示所述n個(gè)單元中每一個(gè)的已標(biāo)記狀態(tài)和未標(biāo)記狀態(tài)中的一個(gè)狀態(tài)。
25.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“l(fā)oad lineimmediate”命令,借此用所述“l(fā)oad line immediate”命令所指示的數(shù)據(jù)來代替處于所述已標(biāo)記狀態(tài)的所有所述n個(gè)單元的內(nèi)容。
26.根據(jù)權(quán)利要求25所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括包含p個(gè)矢量的矢量存儲(chǔ)器,所述p個(gè)矢量中的每一個(gè)包含n個(gè)元素,所述n個(gè)元素中的每一個(gè)都具有m位;并且由所述“l(fā)oad line immediate”命令指示的所述數(shù)據(jù)對(duì)應(yīng)于所述p個(gè)矢量中的一個(gè)。
27.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括由所述控制器發(fā)出的所述多條指令中的一條是“store lineimmediate”命令,借此將處于所述已標(biāo)記狀態(tài)的所有所述n個(gè)單元的內(nèi)容保存到所述“store line immediate”命令所指示的存儲(chǔ)器矢量中。
28.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“l(fā)eft limit”命令,借此將搜索空間的左界限設(shè)置為處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最左側(cè)單元。
29.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“right limit”命令,借此將搜索空間的右界限設(shè)置為處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最左側(cè)單元。
30.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中所述控制器可以在所述n個(gè)單元內(nèi)動(dòng)態(tài)地限定搜索空間。
31.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“find”命令,借此來標(biāo)識(shí)保持有等于所述“find”命令所指示的變量的數(shù)值的所述n個(gè)單元中的每一個(gè);并且其中,所述“find”命令在位于所述已標(biāo)識(shí)的n個(gè)單元右側(cè)的所述n個(gè)單元中的每一個(gè)中,將所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài),而在所有其它的所述n個(gè)單元中將所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
32.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“match”命令,借此來標(biāo)識(shí)所述n個(gè)單元中的每一個(gè),所述n個(gè)單元中的每一個(gè)具有處于所述已標(biāo)記狀態(tài)下的標(biāo)記位、并具有與所述“match”命令所指示的變量相匹配的所述數(shù)據(jù)字段;并且其中所述“match”命令在緊接所述已標(biāo)識(shí)的n個(gè)單元后面的所述n個(gè)單元中的每一個(gè)中,將所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài),而在所有其它的所述n個(gè)單元中將所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
33.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“find and markleft”命令,借此來標(biāo)識(shí)保持有等于由所述“find and mark left”命令所指示的變量的數(shù)值的所述n個(gè)單元中的每一個(gè);并且其中所述“find”命令在位于所述已標(biāo)識(shí)的n個(gè)單元左側(cè)的所述n個(gè)單元中的每一個(gè)中,將所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài),而在所有其它的所述n個(gè)單元中將所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
34.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“match and markleft”命令,借此來標(biāo)識(shí)所述n個(gè)單元中的每一個(gè),所述n個(gè)單元中的每一個(gè)具有處于所述已標(biāo)記狀態(tài)下的標(biāo)記位、并具有與所述“match”命令所指示的變量相匹配的所述數(shù)據(jù)字段;并且其中所述“match”命令在位于所述已標(biāo)識(shí)的n個(gè)單元左側(cè)的所述n個(gè)單元中的每一個(gè)中,將所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài)。
35.根據(jù)權(quán)利要求28所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“markall”命令,借此將所述搜索空間內(nèi)的所述n個(gè)單元中的每一個(gè)的所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài)。
36.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“addmark”命令,借此將包含等于由所述“addmark”命令所指示的變量的數(shù)值的所述n個(gè)單元中的每一個(gè)的所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài);并且所述“addmark”命令不影響任何其它的所述n個(gè)單元的所述標(biāo)記位。
37.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“mark”命令,借此將包含等于由所述“mark”命令所指示的變量的數(shù)值的所述n個(gè)單元中的每一個(gè)的所述標(biāo)記位設(shè)置為所述已標(biāo)記狀態(tài);并且所述“mark”命令在不包含等于由所述“mark”命令所指示的變量的數(shù)值的所述n個(gè)單元中的每一個(gè)中,將所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
38.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“clr”命令,借此將包含等于由所述“clr”命令所指示的變量的數(shù)值的所述n個(gè)單元中的每一個(gè)的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
39.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“clear first”命令,借此將所述最左側(cè)的具有設(shè)置成所述已標(biāo)記狀態(tài)的所述標(biāo)記位的所述n個(gè)單元設(shè)置為所述未標(biāo)記狀態(tài)。
40.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“trace”命令,借此在所述相聯(lián)存儲(chǔ)器中向左側(cè)復(fù)制所有所述n個(gè)單元的所述標(biāo)記位。
41.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“keepl”命令,借此,將除了處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最右側(cè)之外的所有所述n個(gè)單元的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
42.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“clrl”命令,借此將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最右側(cè)的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài)。
43.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“l(fā)eft”命令,借此將所述n個(gè)單元的所有所述標(biāo)記位向左移一個(gè)單元。
44.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“right”命令,借此將所述n個(gè)單元的所有所述標(biāo)記位向右移一個(gè)單元。
45.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“cright”命令,借此將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所有所述標(biāo)記位向右移一個(gè)單元至右側(cè)下一個(gè)單元,除非所述右側(cè)下一個(gè)單元包含等于所述“cright”命令所指示的變量的數(shù)值;并且當(dāng)所述右側(cè)下一個(gè)單元包含等于由所述“cright”命令所指示的變量的數(shù)值時(shí),所述“cright”命令用預(yù)定值來代替所述右側(cè)下一個(gè)單元的所述數(shù)據(jù)字段。
46.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“cleft”命令,借此將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所有所述標(biāo)記位向左移一個(gè)單元至左側(cè)下一個(gè)單元,除非所述左側(cè)下一個(gè)單元包含等于由所述“cleft”命令所指示的變量的數(shù)值;并且當(dāng)所述左側(cè)下一個(gè)單元包含等于由所述“cleft”命令所指示的變量的數(shù)值時(shí),所述“cleft”命令用預(yù)定值來代替所述左側(cè)下一個(gè)單元的所述數(shù)據(jù)字段。
47.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“nop”命令,借此不執(zhí)行任何操作。
48.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“reset”命令,借此給所述n個(gè)單元的所述數(shù)據(jù)字段賦值為由所述“reset”命令所指示的數(shù)值。
49.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“get”命令,借此從所述相聯(lián)存儲(chǔ)器裝置中輸出存儲(chǔ)在處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最左側(cè)單元中的數(shù)值;并且將處于所述已標(biāo)記狀態(tài)下的所述最左側(cè)單元的所述標(biāo)記位向右移一個(gè)單元。
50.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“back”命令,借此從所述相聯(lián)存儲(chǔ)器裝置中輸出存儲(chǔ)在最左側(cè)的已標(biāo)記單元中的數(shù)值;并且將所述最左側(cè)的已標(biāo)記單元的所述標(biāo)記位向左移一個(gè)單元。
51.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“set”命令,借此將所述“set”命令所指示的數(shù)值存儲(chǔ)在處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最左側(cè)。
52.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“setall”命令,借此將所述“setall”命令所指示的數(shù)值存儲(chǔ)在處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中。
53.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“ins”命令,借此在位于處在所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最左側(cè)之前的插入點(diǎn)上,將所述“ins”命令所指示的數(shù)值存儲(chǔ)在所述n個(gè)單元的其中一個(gè)中;并且所述“ins”命令將位于所述插入點(diǎn)右側(cè)的所述n個(gè)單元中的每一個(gè)的內(nèi)容向右移一個(gè)單元。
54.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“del”命令,借此刪除處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的最左側(cè)的數(shù)據(jù)字段;并且所述“del”命令將位于所述最左側(cè)的已標(biāo)記單元右側(cè)的所述n個(gè)單元中的每一個(gè)的內(nèi)容向左移一個(gè)單元。
55.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“cpr”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元的內(nèi)容向右拷貝一個(gè)單元。
56.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“cpl”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元的內(nèi)容向左拷貝一個(gè)單元。
57.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“ccpr”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元的內(nèi)容向右拷貝一個(gè)單元,包括拷貝所述已標(biāo)記狀態(tài);并且所述“ccpr”命令不拷貝這樣的所述n個(gè)單元的所述已標(biāo)記狀態(tài)其所述內(nèi)容等于由所述“ccpr”命令所指示的數(shù)值。
58.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“ccpl”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元的內(nèi)容向左拷貝一個(gè)單元,包括拷貝所述已標(biāo)記狀態(tài);并且所述“ccpr”命令不拷貝這樣的所述n個(gè)單元的所述已標(biāo)記狀態(tài),其所述內(nèi)容等于所述“ccpl”命令所指示的數(shù)值。
59.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“l(fā)d”命令,借此將所述“l(fā)d”命令所指示的數(shù)值加載到處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段中。
60.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括包含p個(gè)矢量的矢量存儲(chǔ)器;和由所述控制器發(fā)出的所述多條指令中的一條是“st”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段的內(nèi)容拷貝到所述“st”命令所指示的所述p個(gè)矢量的其中一個(gè)矢量當(dāng)中的對(duì)應(yīng)位置上。
61.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“add”命令,借此將所述“add”命令所指示的數(shù)值增加到處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元當(dāng)中的所述數(shù)據(jù)字段。
62.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“fadd”命令,借此將所述“fadd”命令所指示的數(shù)值增加到處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元當(dāng)中的所述數(shù)據(jù)字段中;并且其中,在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的右側(cè)的單元的所述數(shù)據(jù)字段的最左位充當(dāng)進(jìn)位位。
63.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“sub”命令,借此從處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段中減去所述“sub”命令所指示的數(shù)值。
64.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的多條指令中的一條是“fsub”命令,借此從處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段中減去所述“fsub”命令所指示的數(shù)值;并且其中,在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的右側(cè)的單元的所述數(shù)據(jù)字段的最左位充當(dāng)進(jìn)位位。
65.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“half”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段除以二。
66.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“fhalf”命令,借此將處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段除以二;并且其中,如果在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于所述n個(gè)單元中每一個(gè)的左側(cè)的單元的最低有效數(shù)據(jù)位處于所述已標(biāo)記狀態(tài),則將所述數(shù)據(jù)字段的最左側(cè)位加一。
67.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“l(fā)t”命令,借此將所述“l(fā)t”命令所指示的數(shù)值與處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段進(jìn)行比較;如果所述“l(fā)t”命令所指示的所述數(shù)值大于所述數(shù)據(jù)字段,則所述“l(fā)t”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài);并且如果所述“l(fā)t”命令所指示的所述數(shù)值小于所述數(shù)據(jù)字段,則所述“l(fā)t”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述數(shù)據(jù)字段的最左側(cè)位設(shè)置為1。
68.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“flt”命令,借此將所述“flt”命令所指示的數(shù)值與處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段進(jìn)行比較;如果所述“flt”命令所指示的所述數(shù)值大于所述數(shù)據(jù)字段,并且在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的左側(cè)的單元的所述數(shù)據(jù)字段的最左側(cè)位是零,則所述“flt”命令將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài);如果所述“flt”命令所指示的所述數(shù)值小于所述數(shù)據(jù)字段,則所述“flt”命令將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述數(shù)據(jù)字段的最左側(cè)位設(shè)置為1;如果在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的左側(cè)的單元的所述最左側(cè)位是1,則所述“flt”命令將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的述數(shù)據(jù)字段的最左側(cè)位設(shè)置為1;并且所述“flt”命令將在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的左側(cè)的單元的所述最左側(cè)位設(shè)置為0。
69.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“gt”命令,借此所述“gt”命令所指示的數(shù)值與處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段進(jìn)行比較;如果所述“gt”命令所指示的所述數(shù)值小于所述數(shù)據(jù)字段,則所述“gt”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài);并且如果所述“gt”命令所指示的所述數(shù)值大于所述數(shù)據(jù)字段,則所述“gt”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述數(shù)據(jù)字段的最左側(cè)位設(shè)置為1。
70.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“fgt”命令,借此將所述“fgt”命令所指示的數(shù)值與處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段進(jìn)行比較;如果所述“fgt”命令所指示的所述數(shù)值小于所述數(shù)據(jù)字段,并且在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的左側(cè)的單元的所述數(shù)據(jù)字段的最左側(cè)位是零,則所述“fgt”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài);如果所述“fgt”命令所指示的所述數(shù)值大于所述數(shù)據(jù)字段,所述“fgt”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述數(shù)據(jù)字段的最左側(cè)位設(shè)置為1;如果在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的左側(cè)的單元的所述最左位是1,則所述“fgt”命令就將處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元的所述數(shù)據(jù)字段的最左側(cè)位設(shè)置為1;并且所述“fgt”命令將在所述相聯(lián)存儲(chǔ)器裝置內(nèi)、位于處于所述已標(biāo)記狀態(tài)下的所述n個(gè)單元中每一個(gè)的左側(cè)的單元的所述最左側(cè)位設(shè)置為0。
71.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“test”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的、包含由所述“test”命令所指示的數(shù)值的所有所述n個(gè)單元,所述“test”命令將所述標(biāo)記位設(shè)置為所述未標(biāo)記狀態(tài);并且如果所有具有所述指示值的所述n個(gè)單元左側(cè)的單元的最左側(cè)位是1,則所述“test”命令就將預(yù)定值賦值給所有具有所述指示值的所述n個(gè)單元的所述數(shù)據(jù)字段;并且如果所述最左側(cè)位是1,則所述“test”命令就清除所有具有所述指示值的所述n個(gè)單元左側(cè)的所述單元的所述最左側(cè)位。
72.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“and”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元,所述“and”命令完成由所述“and”命令所指示的數(shù)值同處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段的按位“與”。
73.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“or”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元,所述“or”命令完成由所述“or”命令所指示的數(shù)值和處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段的按位“或”。
74.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“xor”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元,所述“xor”命令完成由所述“xor”命令所指示的數(shù)值和處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元中的所述數(shù)據(jù)字段的按位“異或”。
75.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“cond”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元,如果在由所述“cond”命令所指示的數(shù)值和處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元的所述數(shù)據(jù)字段之間的按位“與”操作的結(jié)果是0,則所述“cond”命令就將它們的已標(biāo)記狀態(tài)轉(zhuǎn)換為所述未標(biāo)記狀態(tài)。
76.根據(jù)權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“ncond”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元,如果在由所述“ncond”命令所指示的數(shù)值和處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元的所述數(shù)據(jù)字段之間的按位“與”操作的結(jié)果不是0,則所述“ncond”命令就將它們的已標(biāo)記狀態(tài)轉(zhuǎn)換為所述未標(biāo)記狀態(tài)。
77.根據(jù)權(quán)利要求71所述的數(shù)據(jù)處理系統(tǒng),其中由所述控制器發(fā)出的所述多條指令中的一條是“index”命令,借此對(duì)于處于所述已標(biāo)記狀態(tài)下的所有所述n個(gè)單元,所述“index”命令將表示所述已標(biāo)記的n個(gè)單元中每一個(gè)相對(duì)于所述n個(gè)單元的最左側(cè)的位置的一個(gè)數(shù)值賦給所述已標(biāo)記的n個(gè)單元中的每一個(gè)。
78.根據(jù)權(quán)利要求22所述的數(shù)據(jù)處理系統(tǒng),其中所述分類裝置判斷所述n個(gè)單元中的每一個(gè)的全局狀態(tài);并且其中所述多條指令中的所述一條是由所述相聯(lián)存儲(chǔ)器裝置內(nèi)的所選定的各單元,依據(jù)所述n個(gè)單元的所述局部狀態(tài)和所述全局狀態(tài)兩者來執(zhí)行的,所述指令的所述執(zhí)行是在一個(gè)所述時(shí)鐘周期內(nèi)、在所述所選定的各單元中的每一個(gè)單元中同時(shí)發(fā)生的。
79.根據(jù)權(quán)利要求22所述的數(shù)據(jù)處理系統(tǒng),其中所述相聯(lián)存儲(chǔ)器裝置允許使用可變長(zhǎng)度的關(guān)鍵字字段。
80.根據(jù)權(quán)利要求78所述的數(shù)據(jù)處理系統(tǒng),其中所述可變長(zhǎng)度的關(guān)鍵字字段包括數(shù)據(jù)字段和關(guān)鍵字字段,所述n個(gè)單元中的每一個(gè)都具有所述數(shù)據(jù)字段和所述關(guān)鍵字字段;并且其中在執(zhí)行所述多條指令中的一條期間,在不同的時(shí)間交替地把存儲(chǔ)在所述n個(gè)單元中的每一個(gè)中的數(shù)據(jù)看作所述數(shù)據(jù)字段和所述關(guān)鍵字字段的一部分。
81.一種處理數(shù)據(jù)的方法,所述方法包括以下步驟形成相聯(lián)存儲(chǔ)器裝置以包含n個(gè)單元;配置所述n個(gè)單元中的每一個(gè)以便包括處理電路;從控制器向所述相聯(lián)存儲(chǔ)器裝置發(fā)出多條指令中的一條;使用時(shí)鐘裝置,用于每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào),所述時(shí)鐘裝置向所述相聯(lián)存儲(chǔ)器裝置和所述控制器輸出所述同步時(shí)鐘信號(hào);以及在一個(gè)所述時(shí)鐘周期內(nèi),全局地從所述控制器向所有所述n個(gè)單元同時(shí)傳遞所述多條指令中的一條。
82.一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括包含n個(gè)單元的存儲(chǔ)器裝置,所述n個(gè)單元中的每一個(gè)都包括處理電路;控制器,用于向所述相聯(lián)存儲(chǔ)器裝置發(fā)出多條指令中的一條;時(shí)鐘裝置,用于每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào),所述時(shí)鐘裝置向所述相聯(lián)存儲(chǔ)器裝置和所述控制器輸出所述同步時(shí)鐘信號(hào);和其中所述控制器在一個(gè)所述時(shí)鐘周期內(nèi),全局地向所有所述n個(gè)單元同時(shí)傳遞所述多條指令中的一條。
全文摘要
一種數(shù)據(jù)處理系統(tǒng)(102)包括包含n個(gè)單元的相聯(lián)存儲(chǔ)器裝置(104),n個(gè)單元中的每一個(gè)單元都包括處理電路(130)。利用控制器(100)向相聯(lián)存儲(chǔ)器裝置(104)發(fā)出多條指令中的一條,而利用時(shí)鐘裝置(106)每秒輸出由預(yù)定數(shù)目的時(shí)鐘周期組成的同步時(shí)鐘信號(hào)。所述時(shí)鐘裝置(106)向相聯(lián)存儲(chǔ)器裝置(104)和控制器輸出同步時(shí)鐘信號(hào),所述控制器在一個(gè)時(shí)鐘周期之內(nèi)同時(shí)地將多條指令中的一條全局地傳遞給所有n個(gè)單元。
文檔編號(hào)G06F15/76GK1720516SQ200380105095
公開日2006年1月11日 申請(qǐng)日期2003年12月5日 優(yōu)先權(quán)日2002年12月5日
發(fā)明者格奧爾基·斯特芬, 戴恩·托梅斯庫(kù) 申請(qǐng)人:康奈克斯技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安国市| 青岛市| 泰宁县| 南昌市| 万宁市| 普兰店市| 溧水县| 桃江县| 天镇县| 杭锦旗| 抚松县| 黔西县| 咸丰县| 晋城| 平江县| 淮安市| 武威市| 三门峡市| 安多县| 顺义区| 嘉善县| 丰台区| 洛南县| 绵竹市| 巍山| 白银市| 四会市| 偃师市| 宜州市| 偏关县| 柳江县| 涿州市| 晋州市| 唐山市| 碌曲县| 佳木斯市| 大兴区| 鄂托克前旗| 穆棱市| 五家渠市| 即墨市|