專利名稱:一種電子并行處理電路的制作方法
技術領域:
本發(fā)明涉及一種包括多個并行指令處理單元的電子電路。
技術背景具有多個并行指令處理單元的處理器電路的典型實例是SIMD (單指令多數(shù)據(jù))處理器,其中,所有的處理單元執(zhí)行公共的指令 周期。在每個指令周期中,這些SIMD處理單元執(zhí)行相同的程序指 令,每個處理單元使用它們自己的操作數(shù)數(shù)據(jù)。典型地,這類SIMD 處理器具有中央程序計數(shù)器,用于對提供給所有處理單元的共有指 令進行尋址。在計算機程序中,除了最簡單的程序,通常所有程序都包括一 些條件流控制形式,以便如果被處理數(shù)據(jù)的值滿足了某條件,則從 程序的一部分跳轉到另一部分,從而實現(xiàn)例如高級程序中的 if-then-else結構。把這類跳轉實現(xiàn)為對程序計數(shù)器的條件更新。還希望在SIMD處理器中實現(xiàn)條件執(zhí)行。使用了各種方法。歐 洲專利申請?zhí)?035647描述了一種結構,在該結構中每個處理器單 元判決是否對提供給所有處理器單元的共有指令進行執(zhí)行。可替換 的方案是使用跳轉,來實現(xiàn)為所有處理元件集體選擇后續(xù)指令。已 知為這種跳轉使用跳轉條件,其包括檢測是否所有處理單元發(fā)出用 于表示它們檢測到特定條件的信號,或者是否沒有處理單元發(fā)出用 于表示其檢測到特定條件的信號。典型地,這是通過使用OR電路 或AND電路來實現(xiàn)的,其中該OR或XOR電路的輸入端連接到處 理單元的標志輸入端,該OR/AND電路的輸出用于對是否執(zhí)行跳轉 進行控制??紤]到更多種條件,還已知對來自可選擇的處理單元的 標志信號進行屏蔽。
這類條件跳轉僅可以承擔程序流中非常有限的取決于數(shù)據(jù)的控 制。只有在諸如"沒有處理單元設置了它們的標志"或"所有的處 理單元都設置了它們的標志"這樣的條件下才有可能跳轉。這對于 例如當(數(shù)據(jù)包含噪聲且)需要取決于統(tǒng)計條件的跳轉時沒有什么 用。發(fā)明內容其中,本發(fā)明的目的是為了使得能夠在更復雜的條件下在處理 器電路中執(zhí)行跳轉指令,其中在該處理器電路中,多個處理單元執(zhí) 行具有公共程序流的程序。其中,本發(fā)明的目的是為了提供具有多個并行處理單元的處理 器電路,其支持在統(tǒng)計條件下的集體程序跳轉。權利要求1中描述了根據(jù)本發(fā)明的電子電路。根據(jù)本發(fā)明,使 用了加法器電路,其輸入端連接到處理單元的標志輸出端,并且其 和輸出端連接到公共流控制電路。這樣,程序跳轉條件可以基于設 置了標志的處理單元數(shù)量的計數(shù)來實現(xiàn)。
將通過非限制性實例,來說明本發(fā)明的各個有利的方面,其中 該實例使用以下附圖。 圖1示出處理電路; 圖2示出進一步的處理電路。
具體實施方式
圖l示出了處理電路,其包括多個處理單元IO、操作數(shù)存儲電 路12、加法器電路14、控制存儲器16、程序計數(shù)器18,以及指令 提供電路19。盡管僅示出了三個處理單元IO,應該明白,在實踐中 可以出現(xiàn)大得多的數(shù)量。處理單元10具有連接到操作數(shù)存儲電路12 的操作數(shù)輸入端和輸出端,并且具有連接到加法器電路14的輸入端 的標志輸出端。加法器電路14的和輸出端連接到控制處理器16。指令提供電路19具有連接到程序計數(shù)器18的輸入端,并且具有連接 到處理單元10、操作數(shù)存儲電路12以及控制處理器16的輸出端。 控制處理器16具有連接到程序計數(shù)器18的控制輸出端。在簡單的 實現(xiàn)中,指令提供電路19是指令存儲器,其返回由程序計數(shù)器18 所尋址的存儲器位置的內容,但是可以使用更復雜的電路,用于實 現(xiàn)例如高速緩沖存儲、流水線操作和/或初步指令解碼。在結構上, 程序計數(shù)器18可以被看做是指令提供電路19的一部分,但是為了 清楚起見,單獨將其示出。在操作中,程序計數(shù)器18把指令地址提供給指令提供電路19。 在通常情況下,程序計數(shù)器18在連續(xù)的指令周期中遞增指令地址, 使得在連續(xù)的指令周期中尋址連續(xù)的程序指令。響應于每個指令地 址,指令提供單元19把指令信息提供給處理單元10、操作數(shù)存儲電 路12以及控制處理器16。響應于指令信息,操作數(shù)存儲電路12把 操作數(shù)數(shù)據(jù)輸出到處理單元IO,并且處理單元IO執(zhí)行受指令控制的 操作,每個操作使用操作數(shù)數(shù)據(jù)中的不同部分作為操作數(shù)。作為執(zhí) 行結果,每個處理單元10產(chǎn)生一個結果,并且把這些處理單元10 的組合結果寫回到操作數(shù)存儲電路12中由指令提供電路19的指令 所控制的地址上。響應于至少一類指令,處理單元IO在它們的標志輸出端輸出取 決于操作數(shù)的標志數(shù)據(jù)。在一個實例中,處理單元10支持"比較" 指令,并且一旦執(zhí)行了這個指令,每個處理單元10在其標志輸出端 輸出針對其特定操作數(shù)所獲得的比較結果。在另一個實例中,在計 算結果的期間,作為副作用產(chǎn)生標志輸出端的信號,該信號指示出, 例如,該結果是表示大于零的數(shù),還是表示溢出等等。加法器電路14把標志輸出端的信號進行相加。g口,其形成了對 標志輸出端的數(shù)量的計數(shù),其中在標志輸出端的標志信號具有預定 的邏輯電平。因此,如果僅有一個處理單元輸出了這種標志信號, 加法器電路14就輸出用于表示數(shù)量"1"的信號,如果僅有兩個處 理器單元輸出了這種標志信號,加法器電路14就輸出用于表示數(shù)量 "2的信號,依次類推,直到處理單元的數(shù)量"N"。
控制處理器16從指令提供電路19接收它自己的取決于程序計 數(shù)器的指令,并且從加法器電路14接收和信號。響應于這些指令, 控制存儲器16可以執(zhí)行各種類型的動作。這些指令包括條件跳轉指 令(在本文中該術語與術語"分支指令"可互換地使用)。響應于這 種指令,控制處理器16對是否滿足指令中所指定的條件進行測試, 并且如果滿足了該條件,那么控制存儲器16把信號發(fā)送給程序計數(shù) 器18,以改變該指令地址。所需要的改變可以是例如絕對改變(程 序所選擇的地址),又例如相對改變(舊的指令地址加上程序所選擇 的偏移量)。在一個實施例中,控制處理器16被設計為通過使用取決于來自 加法器電路14的和信號的條件,對至少一類指令做出響應。在一個 實施例中,這類指令通過門限數(shù)量來指定該條件,從而如果來自加 法器電路的和信號超過了這個門限數(shù)量(和/或可選擇地等于這個數(shù) 量),那么控制處理器16響應于該指令,促使程序計數(shù)器18根據(jù)相 對或絕對跳轉來更新指令地址。在另一個實施例中,如果來自加法 器電路的和信號低于或等于這個門限數(shù)量,那么控制處理器16響應 于這個指令來促使跳轉。最好把控制處理器16設計為支持各個指令 當各個來自加法器電路的和信號低于(和/或等于)和高于(和/或等 于)這個門限數(shù)量時促使跳轉。在一個實例中,這類指令用來在信號處理(例如處理音頻信號, 其中處理單元10處理各自的音頻抽樣、或各自的傅立葉系數(shù),和/ 或處理視頻信號,其中處理單元10處理各自的像素抽樣、或各自的 傅立葉系數(shù)(此處所用的"抽樣"不僅涉及直接測量到的物理值, 還涉及對這種測量序列進行處理所產(chǎn)生的序列))期間做統(tǒng)計判決。 在這類任務的程序中,例如可以提供有普通的程序流,還可以提供 特殊程序部分用于多于最小數(shù)量的抽樣值超過門限的情況。在這種 情況下,該程序可以包含用于跳轉到特殊程序部分的指令,比如, 一旦5%的處理單元IO檢測到其操作數(shù)超過了門限,就進行該跳轉。在進一步的實施例中,該電路可以被配置為支持標志的屏蔽, 以便加法器電路14僅形成來自程序所選擇的處理單元10的標志信
號的和。可以以各種方式來實現(xiàn)屏蔽。在一個實施例中,處理單元 10中支持屏蔽。在這種情況下,例如每個處理單元10可以被設計為 如果在該特定處理單元10中的一個指令的第一操作數(shù)的條^^不滿 足,并且在該特定處理單元10中的該指令的第二操作數(shù)中的控制標 志具有預定值,則響應于該指令而輸出零標志信號(即對和沒有貢 獻的信號)。在這種情況下,處理單元10只有當滿足該條件并且該控制標志沒有預定值時才輸出非零標志信號。在另一個實施例中,通過指令提供電路19提供給控制寄存器(未 示出)的屏蔽向量來支持屏蔽??梢詮闹噶钐峁╇娐?9直接提供這 個屏蔽向量,或者經(jīng)由控制處理器16來提供。圖2示出了一個實施例,其中以處理單元10和加法器電路14 之間所提供的AND門20的形式,把屏蔽電路示出在處理單元10 之外。每個處理單元10的標志輸出端連接到各自AND門的第一輸 入端,從屏蔽寄存器22提供控制標志到第二輸入端。AND門20的 輸出端連接到加法器電路14。在這個實施例中,控制寄存器22的各 個輸出端連接到AND門20的輸入端,以提供控制標志。在這個實 施例中,經(jīng)由控制處理器16來提供屏蔽向量,可以用一個或多個用 于設置控制寄存器各個部分的指令來實現(xiàn)該屏蔽向量。然而,本發(fā) 明并不限于這個實施例,例如類似于AND門的功能可以是處理單元 IO固有的,在此情況下,控制寄存器22連接到處理單元10;或者 可以使用作為處理單元10的部件的控制寄存器。類似地,如果從指 令提供電路19提供控制標志,該電路可以連接到控制寄存器22,或 者如果控制標志來自操作數(shù)存儲單元12,則控制寄存器22將會是該 電路的部件。在另一個實施例中,處理單元10被構造為輸出多個不同的標志 信號(發(fā)出信號來表示例如不同條件,例如,操作數(shù)相等、第一操 作數(shù)大于第二操作數(shù)、第一操作數(shù)小于第二操作數(shù)、或者操作結果 分別大于零、等于零以及小于零)。在這個實施例中,可以在處理單 元10和控制處理器16之間提供多個加法器電路14,每個用于對各 自類型的標志信號進行求和。在這種情況下,控制處理器16優(yōu)選被
構造為對不同類型的指令做出響應,該不同類型的指令響應于不同 類型的和來實現(xiàn)跳轉。在另一個實施例中,把多個種類型的標志信號提供給一個法器電路14,并且每個復用器(未示出)連接在各個 處理單元10的一組標志輸出端和加法器電路14的相應輸入端之間, 控制處理器16具有連接到這些復用器的控制輸入端的輸出端,用于 選擇在控制處理器16的指令控制之下必須被求和的標志信號的類 型;可選擇地,處理單元可以被配置為在它們的指令的控制之下來 選擇標志類型。在一個實施例中,加法器電路14是飽和加法器電路,其被設計 為僅累計到預定的最大值,返回表示該最大值的數(shù)字,或者如果該 實際的和超過了最大值則返回以該實際和為模的數(shù)。這在許多情況 中滿足要求。然而,優(yōu)選把加法器電路14設計為累加到所有可能的 和值。可以使用各種類型的加法器電路。優(yōu)選使用樹形結構加法器 電路14,其中提供了各個子加法器(未示出)以形成處理單元子集 的標志信號的各自部分和,并且一個或多個后續(xù)加法器對這些部分 和進行求和。這減小了標志信號的生成和跳轉的執(zhí)行之間等待時間。 應該明白的是,在任何情況下,都可以使用某種流水線操作形式, 使得在一個指令周期內處理單元IO所輸出的標志信號的和,影響在 稍后的指令周期內的跳轉,該跳轉導致程序計數(shù)器地址改變,例如 對于最初指令周期偏移在流水線化的加法器電路14中所使用的多個 周期。優(yōu)選使用一比特的標志。但是在進一步的實施例中可以使用多 比特標志(例如兩比特標志,以指示處理單元10的操作數(shù)之間的比 較導致四個種類中哪一個)。在進一步的實施例中,把加法器電路14 設計為將這些多比特標志作為數(shù)字來求和。要強調的是,如果使用 多比特標志,則該多比特標志的大小最好很小,典型地,比處理單 元10的操作數(shù)中的比特數(shù)量小得多,以避免標志的輸出和跳轉的執(zhí) 行之間有過大的等待時間。該處理電路優(yōu)選是SIMD(單指令多數(shù)據(jù))電路,其意味著指令 提供電路19在每個指令周期把相同指令提供給所有處理單元10。這
樣,以簡單的方式確保了將由處理單元io輸出可比較的標志信號,可以明顯地對該信號進行求和。然而,本發(fā)明不限于SIMD處理器。 本發(fā)明還可應用于MIMD處理器,即其中的指令提供電路19能夠 把彼此不同的指令提供給處理單元10的處理器。典型地,在這種情 況下,以標志信號的和為條件的跳轉指令僅用于當把相等的或至少 相似的指令提供給所有處理單元10 (或者至少那些沒有屏蔽在和之 外的處理單元IO)時產(chǎn)生的標志輸出。此外,盡管本發(fā)明所描述的優(yōu)選實施例中使用加法器電路14的 輸出來執(zhí)行條件跳轉(分支)指令,但是應該明白的是,此外或者 可替換地,本發(fā)明可以應用于中斷或異常處理。在中斷的情況下, 當發(fā)生了取決于該和的條件時,控制處理器16促使跳轉到預定的地 址。例如,固定地通過硬接線或響應于"激活中斷"指令,可以為 后續(xù)的指令預先設置條件和/或預定的地址。在這類處理器中,程序 計數(shù)器18跟隨正常程序流,除非在正常程序流期間執(zhí)行了任一指令 之后該和滿足了條件。如果滿足了條件,控制跳轉到異常處理指令。此處描述了一個實施例中,控制處理器16被構造為與處理單元 10來步調一致地執(zhí)行指令,包括用于改變程序計數(shù)器的跳轉指令, 該程序計數(shù)器對處理單元IO和控制處理器16的指令選擇進行控制。 典型地,控制處理器16被構造為還能夠執(zhí)行其它類型的指令,例如 以便控制將信號數(shù)據(jù)捕獲到操作數(shù)存儲電路12中或者更新該電路的 輸出結果等等。然而應該明白的是本發(fā)明不限于這個實施例。在不 同的實施例中,控制處理器16僅僅用來監(jiān)視條件,以便實現(xiàn)取決于 這些條件的程序計數(shù)器的更新。在這個情況下,控制處理器的"指 令"僅僅包含跳轉目標地址(或偏移量)以及可選擇的條件指定, 例如和的門限值以及/或者如果該和高于或低于該門限值時是否需 要跳轉。此外,盡管只詳細描述了使用標志信號的和來指定跳轉條件, 應該明白的是,控制處理器16此外可以構造為還促使在其它條件下 的跳轉,例如取決于(標志輸出的可選擇屏蔽部分的) 一些邏輯函 數(shù)(是否為真)。為此,可以把相應的邏輯電路與加法器電路14并
行連接在標志輸出端和控制處理器16之間。在這個情況下,控制處 理器的指令優(yōu)選指定用哪個電路來判決是否實現(xiàn)跳轉。然而,應該 注意的是,對于標志輸出信號的一些簡單的邏輯函數(shù)(例如邏輯 AND、邏輯OR,以及奇偶函數(shù))的結果之上的跳轉,可以使用加 法器電路14的輸出信號如果和大于零,則邏輯OR的值為真;如 果該和等于最大可能值,則邏輯AND的值為真;并且奇偶性對應于 該和的最低有效位。通過結合對所選擇的標志信號進行屏蔽,求和電路的輸出還可 以用來計算糾錯校驗子值的比特。典型地,這包括多個不同的屏蔽, 以及和的最低有效位的使用??商鎿Q地,可以并行地提供多個不同 的求和電路(其中某些僅具有最低有效位輸出)以及多個屏蔽寄存 器,以并行地計算校驗子的不同比特。
權利要求
1、一種電子電路,包括多個并行指令處理單元(10),每個處理單元(10)都具有標志輸出端,用于提供條件信號,以表示在由該處理單元(10)執(zhí)行指令的期間是否發(fā)生了取決于數(shù)據(jù)的條件;指令提供電路(18、19),其輸出端連接到所述處理單元(10)具有輸入端以及和輸出端的加法器電路(14),所述輸入端連接到所述標志輸出端;控制電路(16),其連接到所述指令提供電路(18、19)以控制所提供指令的程序流,所述控制電路(16)具有連接到所述和輸出端的條件輸入端,所述控制電路(16)被配置為根據(jù)在所述和輸出端所提供的和的值,實現(xiàn)所述指令提供電路(18、19)的條件程序控制跳轉。
2、 如權利要求l所述的電子電路,包括屏蔽電路(20、 22), 用于消除所述條件信號對從根據(jù)屏蔽選擇的處理單元(10)而來的 取決于數(shù)據(jù)的條件的依賴性。
3、 如權利要求l所述的電子電路,用包含跳轉指令的程序對其 進行編程,以根據(jù)與大于一并且小于處理單元(10)的總數(shù)減一的 數(shù)相對的所述和結果的值,強制程序跳轉。
4、 如權利要求1所述的電子電路,其中,所述電子電路具有 SIMD結構,所述指令提供電路(18、 19)被配置為對所有處理單元 共同提供相同指令信息。
5、 如權利要求l所述的電子電路,其中,所述控制電路(16) 是指令處理電路,所述指令提供電路(18、 19)被配置為在向所述 處理單元(10)提供所述指令信息的同時,向所述控制電路(16) 提供與用于所述處理單元(10)的各個指令相關聯(lián)的控制指令,所述控制電路的控制指令集包括用于實現(xiàn)條件程序控制跳轉的條件跳 轉指令。
6、 如權利要求l所述的電子電路,其中,通過所述加法器電路 來相加的所述條件信號是一比特信號,所述和是多比特和信號。
7、 如權利要求1所述的電子電路,其中,所述處理單元(10) 的指令集包括比較指令,用于定義該取決于數(shù)據(jù)的條件是如何取決 于所述指令的操作數(shù)數(shù)據(jù)的。
8、 如權利要求1所述的電子電路,其中,所述控制電路(16) 被配置為根據(jù)所述和的值是否低于所述控制電路的控制指令中指 定的門限值以及/或者根據(jù)所述和的值是否高于所述控制電路的控 制指令中指定的門限值,來實現(xiàn)所述條件程序控制跳轉。
9、 一種用于并行地處理多個操作數(shù)的方法,所述方法包括 把指令提供給多個并行的處理單元(10); 把所述指令的各個操作數(shù)數(shù)據(jù)提供給各個處理單元(10); 在每個特定的處理單元(10)中,確定在由該特定的處理單元(10)執(zhí)行指令的期間,是否發(fā)生了取決于操作數(shù)數(shù)據(jù)的條件; 根據(jù)所述確定,從每個特定的處理單元(10)輸出條件信號; 對所述條件信號進行求和,以形成和信號;在包含所述指令的程序中實現(xiàn)條件程序控制跳轉,該跳轉根據(jù) 所述和信號表示的值來實現(xiàn)。
全文摘要
一種包含多個處理單元(10)的電子電路,其中把受公共程序流控制的指令提供給該多個處理單元(10),該電子電路典型地用于SIMD操作,其中,把相同的指令應用到所有的處理單元,并且把該指令的不同操作數(shù)數(shù)據(jù)應用到各自的處理單元(10)。在該指令的控制之下,每個處理單元(10)確定是否發(fā)生了取決于操作數(shù)數(shù)據(jù)的條件。該處理單元根據(jù)所述確定輸出條件信號。把條件信號相加,以形成和信號。通過取決于該和信號所表示的值的條件跳轉來控制程序流。
文檔編號G06F9/32GK101120310SQ200680004709
公開日2008年2月6日 申請日期2006年2月9日 優(yōu)先權日2005年2月14日
發(fā)明者A·A·阿博, R·P·克萊霍斯特, S·F·莫于 申請人:皇家飛利浦電子股份有限公司