專利名稱:數(shù)據(jù)處理器的狀態(tài)引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于數(shù)據(jù)處理器、尤其是并行處理器中的狀態(tài)引擎。
背景技術(shù):
經(jīng)常出現(xiàn)因而必須對連續(xù)數(shù)據(jù)流執(zhí)行功能的情況。如果這些功能以處理器中的軟件來實現(xiàn),則從數(shù)據(jù)流依次到達(dá)的每個數(shù)據(jù)報(數(shù)據(jù)包)必須被存儲、處理、然后轉(zhuǎn)發(fā)。這個過程將耗用一些有限量的時間來執(zhí)行。隨著數(shù)據(jù)包到達(dá)的速率增大,將到達(dá)單處理器不再能跟上步伐的點。那么這些功能必須分布在被安排成流水線的多個處理器之間或者并行設(shè)置的多個處理器之間-每個處理器以某種循環(huán)序列依次接收來自數(shù)據(jù)流的數(shù)據(jù)包。從并行處理器輸出的數(shù)據(jù)包通常在轉(zhuǎn)發(fā)之前被重新排序。
這是對于高性能數(shù)據(jù)包處理的一種充分證明了的方式,但隨著處理器數(shù)量增加而在其可縮放性上受到限制。無論是對于代碼還是數(shù)據(jù),對共享存儲器的訪問最終成為瓶頸。對共享狀態(tài)的同時R/W訪問將進(jìn)一步增加系統(tǒng)控制信令的復(fù)雜度以便解決爭用。
這留下了由多個并行處理器對共享狀態(tài)信息的多個項目進(jìn)行高速訪問的問題。隨著處理器數(shù)量及其算法復(fù)雜度增加,對于到共享數(shù)據(jù)的系統(tǒng)總線的地址和數(shù)據(jù)帶寬要求也將增加。這可能成為瓶頸。本說明稍后描述的狀態(tài)元素技術(shù)通過局部化和管理對共享狀態(tài)的串行化來支持并行處理系統(tǒng)。
切題的一個好的例子是網(wǎng)絡(luò)路由器中通信量管理的難題。按流量的通信量處理中的一個公認(rèn)的重大問題是,需要對大量隊列中的每一個維護狀態(tài)的大量項目。這意味著(a)需要實現(xiàn)相當(dāng)大的共享存儲器;(b)如果每個隊列要求對不同(共享)狀態(tài)變量進(jìn)行分別訪問,則需要許多存儲器地址帶寬;以及(c)存儲器訪問等待時間可能很長,因而在修改過程中導(dǎo)致狀態(tài)阻塞,從而影響性能。
對共享狀態(tài)變量的爭用可通過實現(xiàn)稍后所述的狀態(tài)元素來解決。但是,高性能系統(tǒng)中的狀態(tài)元素概念本身不是一種解決方案。為了最大吞吐量和靈活性,大量狀態(tài)元素被組合到狀態(tài)引擎中。這允許對共享狀態(tài)的多個并發(fā)訪問。本發(fā)明旨在解決以下問題1.并行處理器可創(chuàng)建對狀態(tài)的相同項目的高速率訪問。
2.如果給定功能需要從相同地址訪問多個變量,即需要訪問和處理狀態(tài)記錄,則發(fā)生什么情況?3.如果在處理器中對單個數(shù)據(jù)報執(zhí)行的多個功能各要求訪問狀態(tài)變量或記錄的不同的獨立可尋址的表,則發(fā)生什么情況?簡言之,所針對的基本問題在于高速率的狀態(tài)訪問。這個問題必須以靈活方式來解決,使所存儲的狀態(tài)的數(shù)量以及狀態(tài)訪問的速率能夠易于縮放。
發(fā)明概述在一個方面,本發(fā)明提供一種并行處理器,它包括提供對共享狀態(tài)的相干并行訪問的狀態(tài)元素部件。
并行處理器最好是陣列處理器,例如SIMD處理器。并行處理器還可包括串行化和/或同步對所述共享狀態(tài)的多個訪問/更新的部件。
所述狀態(tài)可包括狀態(tài)的單個項目或者狀態(tài)的多個項目,以及可包括在存儲器中的單個存儲位置或數(shù)據(jù)結(jié)構(gòu)。
對所述狀態(tài)的操作可作為操作的固定或硬連接集合來執(zhí)行。其它部件可提供數(shù)據(jù)以更新所述狀態(tài)。部件還可向所述狀態(tài)發(fā)送命令和數(shù)據(jù),因而所述操作是可編程的。
多個所述狀態(tài)元素部件可組織成狀態(tài)細(xì)胞部件,從而對所述狀態(tài)的操作可以是流水線式的??梢杂卸鄠€所述狀態(tài)細(xì)胞部件,從而允許與所述狀態(tài)有關(guān)的多個請求同時被處理。
狀態(tài)細(xì)胞部件還可包括輸入和輸出互連部件,提供對所述狀態(tài)細(xì)胞部件的訪問或者來自所述狀態(tài)細(xì)胞部件的訪問;所述輸入和輸出互連部件的總線接口,所述總線接口與系統(tǒng)總線接口;以及控制單元,與所述系統(tǒng)總線互連,用于控制對所述狀態(tài)的訪問。
各所述狀態(tài)元素部件最好包括本地存儲器,以及數(shù)據(jù)記錄的各字段存儲在相應(yīng)狀態(tài)元素部件的相應(yīng)存儲器中。
各所述狀態(tài)元素部件最好包括所述狀態(tài)的本地存儲器、適合對所述本地存儲器中的所述狀態(tài)執(zhí)行運算的算術(shù)單元、以及控制所述運算的命令和控制邏輯。
本發(fā)明還考慮結(jié)合了如以上陳述的任一項所指定的并行處理器的計算機系統(tǒng)和網(wǎng)絡(luò)處理器。
處理器可設(shè)置在單個硅片上。
附圖簡介現(xiàn)在將參照附圖來描述本發(fā)明,附圖中
圖1是全部根據(jù)本發(fā)明、使用狀態(tài)元素的狀態(tài)引擎的示意圖;圖2是狀態(tài)引擎的功能表示;圖3是組成狀態(tài)引擎的一部分的狀態(tài)細(xì)胞的實現(xiàn);圖4是作為設(shè)計用于通信量處理和隊列管理的復(fù)雜狀態(tài)引擎的通用狀態(tài)引擎的特定實現(xiàn);圖5與使用本發(fā)明所實施的狀態(tài)元素的益處對照來說明訪問共享狀態(tài)的先有技術(shù)方法;圖6是根據(jù)本發(fā)明的狀態(tài)元素的功能概覽;圖7是狀態(tài)元素的實現(xiàn)概覽;以及圖8和圖9表示狀態(tài)元素的狀態(tài)和命令單元的優(yōu)選實現(xiàn)的相應(yīng)實例。
所示實施例的詳細(xì)描述現(xiàn)在參照圖5-9來描述狀態(tài)元素的一個特定設(shè)計。但是,其它設(shè)計對于包含在狀態(tài)引擎中是可行的。
當(dāng)流水線或并行處理器共享要求對其讀寫訪問的狀態(tài)變量時出現(xiàn)問題。可能不允許處理器同時讀取/修改/回寫共享變量,因為來自第一回寫的結(jié)果將被第二個蓋寫。需要對訪問串行化。
這引起兩個重要問題1.必須實現(xiàn)用于使處理器相互鎖定的系統(tǒng),使得它們可仲裁資源,然后當(dāng)存在爭用時對它鎖定。這個控制信令可能是復(fù)雜的,并增加大量功能和性能開銷。
2.當(dāng)處理器已經(jīng)成功地協(xié)商資源時,它應(yīng)當(dāng)使用那個資源,然后盡快釋放它,以便限制施加到其它處理器上的延遲。如果訪問等待時間對于外部存儲器很長,則這可嚴(yán)重影響系統(tǒng)性能。
信標(biāo)可用來互鎖處理器或控制邏輯,以及高速緩存可用來攔截并發(fā)訪問并將它們串行化。但是,這些操作可能是復(fù)雜的、緩慢的和/或要求結(jié)合到硬件中的大量支持。嵌入式存儲器可減少封鎖時間,但延遲可能仍然明顯。本說明中所述的狀態(tài)元素采用不同的方式,通過這種方式,可接受存在串行化點,并建立一種方法以管理它而不是創(chuàng)建互鎖。在如稍后會變得更為清楚的廣義方面,功能與本地存儲器共存,該功能在存儲器中而不是在軟件中執(zhí)行讀取、修改和回寫。它是一種物理解決方案而不是基于軟件的解決方案。
這個解決方案的一種缺點在于,它“管束”軟件。先前可編程的某個方面這時由阻塞軟件的另外某個方面所取代。這兩個方面是相互關(guān)聯(lián)的。第一個問題是軟件的串行化,但這具有以下結(jié)果如果解決方案是通過硬件,而不是在系統(tǒng)中具有讀取/修改/回寫周轉(zhuǎn)時間以及復(fù)雜控制信號的數(shù)十個周期,它將減少到幾個周期以內(nèi),但這時進(jìn)行實際修改的實體是硬件。不但消除等待時間問題,這個解決方案還針對它引入的可能處理軟件的其它問題。
本解決方案的這個方面的獨創(chuàng)性在于靠近存儲器的邏輯的重新定位與使它半可編程的組合。
狀態(tài)元素是本上下文中的關(guān)鍵組件,它們執(zhí)行到共享存儲器中的訪問的串行化。在其中對共享狀態(tài)的同時訪問是越來越可能的并行處理器的上下文中,存在可能許多的狀態(tài)元素,它們?nèi)渴遣⑿械?,?zhí)行來自并行處理器的功能調(diào)用,但全部為SIMD,其中并行處理器從單指令流進(jìn)行操作,狀態(tài)元素并行但從各自的指令流進(jìn)行操作。它們響應(yīng)來自處理器的請求有效地操作。
狀態(tài)元素可用于MIMD體系結(jié)構(gòu),或者實際上用于存在要解決的沖突的任何位置。但是,它特別適用于SIMD體系結(jié)構(gòu),因為MIMD更容許存儲器訪問中的非確定性,而SIMD更偏向一切都是確定性的。
本發(fā)明的這個方面的一個優(yōu)點是系統(tǒng)總線上的負(fù)荷的減小。功能調(diào)用一般通過總線發(fā)出,以便指示狀態(tài)元素執(zhí)行功能。發(fā)出命令,該命令產(chǎn)生讀取請求,使數(shù)據(jù)被返回,以及使已修改數(shù)據(jù)再次被回寫。在狀態(tài)元素中,不是具有通過系統(tǒng)總線的三個訪問,這時只有一個。因此,可遠(yuǎn)程執(zhí)行相當(dāng)復(fù)雜的操作,而無需不斷向處理器回送信息。
在優(yōu)選實現(xiàn)中,命令行允許命令被發(fā)出,以訪問和修改一段存儲器或者在狀態(tài)元素中存放微碼。因此,狀態(tài)元素包括基本存儲器加上ALU、在其中寫入微碼的控制器單元以及特殊功能單元、如加法單元。設(shè)計原理的一部分是使元素能夠成為申請人的工具包的一部分,其中所需功能可根據(jù)需要被“固定”。
因此存在兩級靈活性。一方面,存儲器中的微碼可改變,使得不是通過添加被傳遞到命令行以進(jìn)行回寫的固定操作來執(zhí)行例如讀取/修改等操作,而是可能通過另一段軟件,例如讀取、添加值、保存、添加另一個值并回寫。如果需要條件讀取/修改/回寫,則可添加條件塊。如果想要歷史功能,則可提供在其中保持標(biāo)志集的歷史塊。因此,可保持控制標(biāo)志,允許將來訪問,其中可根據(jù)那個標(biāo)志來執(zhí)行兩個操作中的一個或另一個。
狀態(tài)元素是關(guān)鍵組件,它們執(zhí)行到共享存儲器中的訪問的串行化。狀態(tài)元素被組合在狀態(tài)引擎中并連接到總線。狀態(tài)元素可比作微型微碼ALU,但重點是在存儲器訪問而不是在處理側(cè)。狀態(tài)元素主要包括具有靈活的、但著重進(jìn)出存儲器的數(shù)據(jù)的快速傳遞的附加功能的存儲器。它對存儲器執(zhí)行靈活的功能。
在采用單處理器的系統(tǒng)、如數(shù)據(jù)包隊列控制系統(tǒng)中,當(dāng)處理器從存儲器中尋找數(shù)據(jù)時沒有爭用。數(shù)據(jù)包隊列的狀態(tài)對于單處理器是可用的。單處理器可保持多達(dá)10000個這種隊列。但是,與此對比,考慮多個處理器共享對存儲器中的某些狀態(tài)的訪問的情況。在任何時刻,一個以上處理器可能需要更新同一個隊列的狀態(tài)。因此存在更大的爭用可能。如果爭用將通過復(fù)制處理器來避免,則存在更大的復(fù)雜度,尤其是在采取措施以保留處理器之間的狀態(tài)相干性以及所需存儲裝置大小方面。因此,需要讓狀態(tài)保持在存儲器中,它對于所有處理器是可用的,但其方式是,整個過程沒有被減慢到不能接受的程度。
圖5a示意說明本發(fā)明能夠解決的問題的類型。該圖表示包含響應(yīng)來自兩個處理器中的一個或另一個的請求而經(jīng)由片上總線訪問的傳統(tǒng)存儲器的過程的時間線。假定是處理器間串行化。例如,如果處理器1發(fā)出讀取請求,則被尋址數(shù)據(jù)從存儲器中被讀取,以及數(shù)據(jù)通過總線傳送給處理器。然后,數(shù)據(jù)在處理器中進(jìn)行修改,以及結(jié)果經(jīng)由總線回寫到存儲器。在這時,例如來自第二處理器的其它任何請求被封鎖。這是必要的,因為同樣的數(shù)據(jù)不能同時在不同處理器的控制下經(jīng)過修改。在封鎖周期結(jié)束時,存儲器再次變成對下一個請求是可用的。顯然,封鎖周期對各個處理器執(zhí)行的整個過程的速度施加了相當(dāng)大的約束。
狀態(tài)元素對這種已知方法提供一種備選方案,它要求一種配置,其中并行處理器從存儲器中讀取、修改、回寫數(shù)據(jù),并請求存儲器代表它來執(zhí)行修改。然而,本發(fā)明的優(yōu)選實現(xiàn)中的狀態(tài)元素定位串行化點,它不在每個處理器之內(nèi)/之間,而是在具有對于其中存儲了共享狀態(tài)變量的存儲器的本地快速訪問的簡單共享處理器中。
狀態(tài)元素與面向?qū)ο蟮脑O(shè)計中的對象相似。它已經(jīng)秘密地存儲了只有經(jīng)由對象的方法才可訪問的數(shù)據(jù)。通過發(fā)出命令,并行處理器可被認(rèn)為正進(jìn)行對于對象的方法調(diào)用。
狀態(tài)元素的優(yōu)選實施例包括與簡單算術(shù)和邏輯單元結(jié)合的、具有單周期讀/寫訪問時間的小塊嵌入式存儲器60,如圖6中一般所示。算術(shù)單元61(從處理器)接收包含地址、數(shù)據(jù)和命令代碼的命令。地址標(biāo)識將被訪問的狀態(tài)變量,數(shù)據(jù)提供簡單計算機用來修改變量的操作數(shù),以及命令62選擇已編程微碼63的本地存儲線程,它能夠在極少數(shù)量的系統(tǒng)時鐘周期內(nèi)讀取、修改和回寫狀態(tài)變量。結(jié)果可返回到發(fā)出該命令的處理器。
實施例的詳細(xì)情況狀態(tài)元素包括嵌入式存儲器和附加功能。該功能可以是硬布線的(有限狀態(tài)機)或者是可編程的微碼電路。后一種方式更通用和復(fù)雜。組件模塊及其互連的系統(tǒng)的更完整圖形如圖7所示。注意特殊功能和條件塊的存在。這些極大地擴展了元素的工作能力。
狀態(tài)元素設(shè)計中的重點在于快速存儲器訪問速度而不是處理能力。嵌入式存儲器塊足夠小,使得單周期訪問時間是可實現(xiàn)的??膳渲玫淖x取/修改/回寫(R/M/W)在兩個周期時段內(nèi)是可能的,因為能夠?qū)ψx取的結(jié)果執(zhí)行簡單算術(shù)運算,并在第二周期內(nèi)讓它回轉(zhuǎn)以便回寫。命令通常可在3到5個時鐘周期內(nèi)完全被處理。
圖8說明算術(shù)單元的簡單性以及命令行與存儲器之間的路徑如何具有最小延遲。圖9表示一個更復(fù)雜的變體,其中,狀態(tài)的多個項目保存在存儲器中。對命令行周轉(zhuǎn)(以及微碼存儲大小)的影響很顯著。但是,這并不是說,圖9的電路不可用于適當(dāng)?shù)那闆r中。例如,在具有更復(fù)雜的狀態(tài)集的較低性能的系統(tǒng)中,它可能是優(yōu)選方法。
狀態(tài)引擎的總體概述狀態(tài)引擎可采用狀態(tài)元素作為原子部分以結(jié)構(gòu)化及明確定義的方式來構(gòu)建。正如簡單細(xì)胞組合成簡單有機物、分子可以是簡單細(xì)胞的構(gòu)造塊、原子是分子的組成部分那樣,狀態(tài)元素可組合成狀態(tài)細(xì)胞,它們成倍增加為狀態(tài)陣列,狀態(tài)陣列又可以組合在一起以形成狀態(tài)引擎。雖然特定狀態(tài)元素設(shè)計稍后在此上下文中描述,但本發(fā)明包括利用其它狀態(tài)元素的狀態(tài)引擎。
這種分級設(shè)計構(gòu)架如圖1所示。所示組成部分為狀態(tài)記錄-這是概念實體,由具有給定基地址的一個或多個狀態(tài)變量的組構(gòu)成。
命令行-由處理器發(fā)送到狀態(tài)引擎的消息。命令行中的字段包含命令代碼、地址和數(shù)據(jù)。處理器有效地請求對給定地址中的狀態(tài)記錄執(zhí)行由命令代碼索引到的功能。參數(shù)可在通用數(shù)據(jù)字段中提供以及返回。
狀態(tài)元素-狀態(tài)元素是保密的小存儲器,它包含只有經(jīng)由狀態(tài)元素的控制邏輯所執(zhí)行的功能才可訪問的狀態(tài)變量。這些功能通常讀取狀態(tài)變量,執(zhí)行某種修改,以及回寫新的值。結(jié)果也可記錄在命令行的數(shù)據(jù)字段中。狀態(tài)元素的主要作用是通過以最大速度對存儲器執(zhí)行簡單功能來管理狀態(tài)訪問串行化點。狀態(tài)元素的特定實現(xiàn)已經(jīng)在本說明中進(jìn)行了描述。
狀態(tài)細(xì)胞-如果記錄中有一個以上狀態(tài)變量,則可允許整個記錄作為一個條目被存儲在單個狀態(tài)元素中。但是,當(dāng)記錄中的每個字段將需要被依次處理時,這將把可用帶寬限制到此狀態(tài)。在狀態(tài)細(xì)胞中,記錄的每個字段作為單個狀態(tài)變量存儲在其本身的狀態(tài)元素中。這些狀態(tài)元素則共同鏈接成流水線。命令行從一個元素傳遞到下一個元素,相同的地址和控制字在每一級用于從公共記錄中揀選不同的字段,并對它執(zhí)行某種功能。狀態(tài)細(xì)胞邏輯提供有效地構(gòu)成面向存儲器的流水線處理系統(tǒng)的它的組成元素之間的同步。
因此,狀態(tài)細(xì)胞的主要作用是提供構(gòu)造允許高速處理更復(fù)雜的狀態(tài)記錄的簡單流水線處理器的方法。
狀態(tài)陣列-用于狀態(tài)細(xì)胞的狀態(tài)元素的嵌入式存儲器的體積必須較小,以便快速(理想地為單周期)訪問。這對于可存儲在單狀態(tài)細(xì)胞中的狀態(tài)記錄的示例數(shù)量設(shè)置了限制。為了增加狀態(tài)的數(shù)量,給定類型的狀態(tài)細(xì)胞可以平鋪以形成大的狀態(tài)陣列。在設(shè)備布局過程中的縮放通過狀態(tài)陣列互連來簡化?;ミB框架的分段以及平鋪陣列中利用明確定義的接口的相鄰細(xì)胞的耦合如圖2所示?;ミB保留對相同狀態(tài)細(xì)胞的訪問之間的順序。由于不要求訪問不同狀態(tài)細(xì)胞的命令行之間的順序保留,因此不需要對陣列中的不同細(xì)胞的命令行訪問的等待時間被平衡。陣列是以簡單方式可縮放的,并且是布局友好的。
通過成倍增加狀態(tài)細(xì)胞來增加總狀態(tài)存儲容量還可增加整體狀態(tài)訪問帶寬,因為各個狀態(tài)細(xì)胞的吞吐量可能略低于互連的吞吐量。如果狀態(tài)細(xì)胞的數(shù)量增加到互連成為限制因素的點,則合計吞吐量可通過提供多個互連信道來進(jìn)一步增加,其中每個信道訪問陣列(即表)的不同部分。這與設(shè)計具有多個獨立可尋址信道以增加隨機訪問帶寬的存儲器系統(tǒng)相似。
狀態(tài)陣列的主要作用是提供可縮放容量。它還提供用于縮放地址和數(shù)據(jù)帶寬的方式。
狀態(tài)引擎-狀態(tài)引擎把狀態(tài)陣列與所有附加膠合邏輯以及構(gòu)造可經(jīng)由系統(tǒng)總線配置及訪問的塊所要求的設(shè)施相結(jié)合。組件包括●總線接口邏輯●系統(tǒng)控制邏輯-狀態(tài)引擎控制器可向狀態(tài)陣列發(fā)出(保密)系統(tǒng)命令。這些命令由外部塊通過經(jīng)由實用總線接口對控制器的訪問來調(diào)用。只有(公開)狀態(tài)命令可經(jīng)由主數(shù)據(jù)流接口到達(dá)。系統(tǒng)命令配置陣列或者提取診斷信息。
●旁路邏輯-旁路模式使命令能夠跳過它們不要求訪問的陣列。這將節(jié)省功率和帶寬。所需提取和插入點也可由系統(tǒng)控制器使用。
●陣列間交換連接器-這包括用于路由各表格之間的訪問的(Banyan)交換技術(shù)的新應(yīng)用。它可能僅當(dāng)存在通過各狀態(tài)陣列的一個以上獨立路由時才被要求。
狀態(tài)引擎行為包括●消息廣播-系統(tǒng)命令可在整個存儲器陣列上廣播,用于檢索狀態(tài)或傳遞配置和控制消息。這個方法還用于把微碼加載到狀態(tài)陣列中。
●多個訪問-如果多個陣列連接到管道中,則顯然每個命令行必須包含各陣列的不同地址和命令信息。因此,從處理器發(fā)出的單個命令產(chǎn)生多個狀態(tài)訪問。
●命令行“變形”-當(dāng)命令行逐個陣列地傳播時,它們被使用并且有時因各個狀態(tài)元素訪問而被更新。由一個陣列中的狀態(tài)元素插入到命令中的數(shù)據(jù)可由下一個陣列中的狀態(tài)元素使用。數(shù)據(jù)、也許甚至地址可被修改。
實施例的詳細(xì)情況把狀態(tài)元素共同“縫合”到流水線中的狀態(tài)細(xì)胞如圖3所示。構(gòu)成狀態(tài)細(xì)胞的狀態(tài)元素的流水線存儲一組狀態(tài)記錄的成分變量。訪問這些狀態(tài)記錄的命令到達(dá)第一狀態(tài)元素??刂谱侄斡脕泶_定對狀態(tài)記錄的第一成分進(jìn)行的更新,在本例中是經(jīng)由微碼控制器進(jìn)行。然后,命令行被傳遞到下一個狀態(tài)元素,以便更新狀態(tài)記錄的下一個成分。這對于狀態(tài)細(xì)胞中的流水線長度重復(fù)進(jìn)行。來自流水線的最后級的結(jié)果返回給請求處理器。
狀態(tài)陣列的體系結(jié)構(gòu)以及狀態(tài)引擎組件的互連如圖4所示。這使用標(biāo)準(zhǔn)/已知的路由選擇和負(fù)荷平衡技術(shù)把輸入命令行分配給適當(dāng)?shù)臓顟B(tài)細(xì)胞。
附加特征負(fù)荷平衡-狀態(tài)記錄可根據(jù)需要動態(tài)分配(以及還可重新分配)是可能的。如果存在通過給定陣列的多個路徑,則希望所存儲狀態(tài)在可用狀態(tài)元素/細(xì)胞之間均勻分布。這種系統(tǒng)中的狀態(tài)條目的可用性可由控制器通過下列方式來通知確保記錄從各元素依次被分配,從而平衡負(fù)荷。
因此,本質(zhì)上,本發(fā)明的優(yōu)選實現(xiàn)提供以下特征,其中針對與并行處理器的高速數(shù)據(jù)查找關(guān)聯(lián)的所有指定問題●形式框架,用于創(chuàng)建采用智能存儲器(通常為狀態(tài)元素)的并行協(xié)處理器。
●單個訪問,多個查找-單個訪問對狀態(tài)引擎內(nèi)的多個獨立狀態(tài)表起作用,即,由于來自總線的單個請求而到不同存儲器所保存的不同表中的多個查找。
●流水線體系結(jié)構(gòu)-到不同表中的查找不是從點源向不同存儲器中發(fā)出的。而是,訪問本身(以命令行的形式)以串行方式從一個表格路由到另一個表格。它是通過狀態(tài)引擎?zhèn)鞑サ膶ο蟆?br>
●命令行“變形”-當(dāng)命令行沿管道逐個表格地傳播時,它們被使用并且有時因每個表訪問而被更新。由一個表插入到命令中的數(shù)據(jù)可由下一個中的狀態(tài)元素使用。
●狀態(tài)細(xì)胞概念-高吞吐量流水線處理(可縮放處理能力)●狀態(tài)陣列概念-用于縮放狀態(tài)數(shù)量、帶寬和負(fù)荷平衡的“布局友好”方案●狀態(tài)引擎概念-來自單個命令的多個正交查找利用多通道狀態(tài)引擎體系結(jié)構(gòu)的交換技術(shù)。控制器為數(shù)據(jù)和指令廣播提供系統(tǒng)命令。
●狀態(tài)元素可交互。
本發(fā)明所針對的問題特別適合對于通信量處理應(yīng)用中訪問共享狀態(tài)的陣列處理器的應(yīng)用。狀態(tài)引擎被認(rèn)為是以針對高速狀態(tài)訪問的附加問題的方式來設(shè)置狀態(tài)元素(管理狀態(tài)爭用所需的)的一種方式。
但是,狀態(tài)引擎還可從相同或相似的狀態(tài)元素來構(gòu)造,以便滿足其它應(yīng)用的需求-例如通信量調(diào)節(jié)的相關(guān)領(lǐng)域中的計量表管理。因此,狀態(tài)引擎可用于把狀態(tài)元素技術(shù)傳遞給其中并行(或者甚至流水線)處理器以高速率訪問共享狀態(tài)的其它任何應(yīng)用。
附加可選特征系統(tǒng)線程-后臺,系統(tǒng)線程可編程為當(dāng)沒有為來自處理器的命令提供服務(wù)時對狀態(tài)存儲器中的數(shù)據(jù)進(jìn)行操作。例如,能夠用于標(biāo)識空閑的狀態(tài)條目。
查找空閑隊列算法-“查找_空閑_隊列”系統(tǒng)功能。這是后臺線程,它實現(xiàn)重新分配用來表示/管理轉(zhuǎn)為空閑(即空)的隊列的狀態(tài)條目的“兩擊輸出(Two strikes and out)”算法。
特殊功能單元-“標(biāo)志單元”和“地址單元”是設(shè)計用于支持查找空閑隊列算法的特殊功能單元。它們提供的特征被認(rèn)為是通用值的,并且可由其它算法(例如維護狀態(tài)元素中的計量表所需的)使用調(diào)度算法-自同步公平排隊算法所要求的信息無法直接映射到狀態(tài)元素中。它以使訪問和操作更健壯和有效的形式來表示。
因此,可以理解,構(gòu)成本發(fā)明的組成部分的狀態(tài)元素可提供以下特征●智能存儲器-狀態(tài)元素在存儲器端而不是處理器端局部化并行數(shù)據(jù)訪問的串行化。這極大地減小了一般與狀態(tài)的阻塞關(guān)聯(lián)的等待時間。
●功能多用性-狀態(tài)元素提供大量(已配置/)已編程遠(yuǎn)程功能,它們可對存儲數(shù)據(jù)執(zhí)行-功能將包括少量數(shù)據(jù)讀取、寫入、算術(shù)運算和條件訪問。
●靈活性-這些功能可以(但不一定需要)以微碼來表示,使得狀態(tài)元素仍然可編程,并且沒有使處理器中運行的軟件“依靠”硬連接到狀態(tài)元素中的功能。
●系統(tǒng)效率-讀取/回寫出現(xiàn)在ALU與狀態(tài)元素內(nèi)部的存儲器之間。只有命令才通過系統(tǒng)總線傳播。這與傳統(tǒng)方法相比,減小了系統(tǒng)總線上的負(fù)荷。
●系統(tǒng)簡單性-讀取/修改/寫入被封裝在狀態(tài)元素內(nèi),以及通過狀態(tài)元素邏輯固有地實施串行化。處理器無需首先相互協(xié)商便可同時發(fā)出使某個功能對狀態(tài)的同一個項目起作用的命令。
●不需要在返回時對結(jié)果歸類-存在到請求處理器的自動返回。
應(yīng)當(dāng)認(rèn)識到,爭用不是通信量處理獨有的一個問題,因此狀態(tài)元素還可用作任何應(yīng)用中支持并行處理器的通用工具。當(dāng)實時(數(shù)據(jù)流處理)系統(tǒng)中的任何兩個處理器要求對共享狀態(tài)變量的R/M/W訪問時,可能出現(xiàn)爭用。因此,狀態(tài)元素可與處理器的任何并行或流水線配置結(jié)合使用。
權(quán)利要求
1.一種并行處理器,包括提供對共享狀態(tài)的相干并行訪問的狀態(tài)元素部件。
2.如權(quán)利要求1所述的并行處理器,其特征在于,所述并行處理器是陣列處理器。
3.如權(quán)利要求2所述的并行處理器,其特征在于,所述陣列處理器是SIMD處理器。
4.如以上權(quán)利要求中的任一項所述的并行處理器,其特征在于還包括使對所述共享狀態(tài)的多個訪問/更新串行化和/或同步的部件。
5.如以上權(quán)利要求中的任一項所述的并行處理器,其特征在于,所述狀態(tài)包括狀態(tài)的單個項目。
6.如權(quán)利要求1至4中的任一項所述的并行處理器,其特征在于,所述狀態(tài)包括狀態(tài)的多個項目。
7.如權(quán)利要求1至4中的任一項所述的并行處理器,其特征在于,所述狀態(tài)包括存儲器中的單個存儲位置或者數(shù)據(jù)結(jié)構(gòu)。
8.如權(quán)利要求1所述的并行處理器,其特征在于,對所述狀態(tài)的操作是作為固定的或硬連接的操作集來執(zhí)行的。
9.如權(quán)利要求8所述的并行處理器,其特征在于還包括提供數(shù)據(jù)以更新所述狀態(tài)的部件。
10.如權(quán)利要求8所述的并行處理器,其特征在于還包括向所述狀態(tài)發(fā)送命令和數(shù)據(jù)的部件,從而所述操作是可編程的。
11.如權(quán)利要求1所述的并行處理器,其特征在于還包括多個所述狀態(tài)元素部件,它們組織成狀態(tài)細(xì)胞部件,從而對所述狀態(tài)的操作可以是流水線式的。
12.如權(quán)利要求11所述的并行處理器,其特征在于還包括多個所述狀態(tài)細(xì)胞部件,從而允許與所述狀態(tài)有關(guān)的多個請求同時被處理。
13.如權(quán)利要求12所述的并行處理器,其特征在于還包括輸入和輸出互連部件,它們提供對所述狀態(tài)細(xì)胞部件的訪問和來自所述狀態(tài)細(xì)胞部件的訪問;用于所述輸入和輸出互連部件的總線接口,所述總線接口與系統(tǒng)總線相接口;以及控制單元,與所述系統(tǒng)總線互連,用于控制對所述狀態(tài)的訪問。
14.如權(quán)利要求11至13中的任一項所述的并行處理器,其特征在于,各個所述狀態(tài)元素部件包括本地存儲器,以及數(shù)據(jù)記錄的各個字段存儲在相應(yīng)狀態(tài)元素部件的相應(yīng)存儲器中。
15.如以上權(quán)利要求中的任一項所述的并行處理器,其特征在于,各個所述狀態(tài)元素部件包括所述狀態(tài)的本地存儲器、適合對所述本地存儲器中的所述狀態(tài)執(zhí)行運算的算術(shù)單元、以及控制所述運算的命令和控制邏輯。
16.一種計算機系統(tǒng),包括如以上權(quán)利要求中的任一項所述的并行處理器。
17.一種網(wǎng)絡(luò)處理器,包括如以上權(quán)利要求中的任一項所述的并行處理器。
18.在單硅片上實現(xiàn)的、如以上權(quán)利要求中的任一項所述的并行處理器。
全文摘要
對并行處理器、如SIMD陣列處理器共享的狀態(tài)的相干訪問和更新通過具有存儲狀態(tài)并允許訪問串行化的本地存儲器的狀態(tài)元素的使用而成為可能。對狀態(tài)的單個或多個項目的操作通過固定/硬接線的操作集來執(zhí)行,但通過發(fā)送命令和數(shù)據(jù)來控制操作,它們是可編程的。各狀態(tài)元素包括本地存儲器、算術(shù)單元以及命令和控制邏輯。多個狀態(tài)元素在狀態(tài)細(xì)胞中是流水線式的,狀態(tài)細(xì)胞又被組織成實現(xiàn)對共享狀態(tài)訪問的完全控制的狀態(tài)陣列和狀態(tài)引擎。讀取/修改/寫入操作可以僅在兩個周期中執(zhí)行,以及完整的命令僅在三到五個周期中執(zhí)行。
文檔編號H04L12/54GK1735878SQ200380108223
公開日2006年2月15日 申請日期2003年11月11日 優(yōu)先權(quán)日2002年11月11日
發(fā)明者A·斯潘塞 申請人:克利爾斯皮德科技有限公司