專利名稱:處理系統(tǒng)以及用以處理該處理系統(tǒng)中指令的相關(guān)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種處理包含多個(gè)處理單元的處理系統(tǒng)的預(yù)定指令的方法, 特別有特別涉及一種處理系統(tǒng),其具有提供每一處理單元的本地程序計(jì)數(shù)器 的多個(gè)處理單元。且本發(fā)明有關(guān)于處理此處理系統(tǒng)中的預(yù)定指令的相關(guān)方法。
背景技術(shù):
一般而言,單指令多數(shù)據(jù)(Single Instruction Multiple Data, SIMD)處理系統(tǒng)的指令執(zhí)行流程控制(flow control,或稱為分支控制branchcontrol)都相當(dāng)?shù)睦щy,因?yàn)閷?duì)于同一個(gè)分支指令處理的多個(gè)不同數(shù)據(jù),可能會(huì)造成不同的分支結(jié)果,但是受限于此處理系統(tǒng)僅能夠在同一時(shí)間內(nèi)執(zhí)行 單一指令于多個(gè)數(shù)據(jù)的特性,所以需要一些特殊技巧來(lái)解決在此處理系統(tǒng)架構(gòu)下,執(zhí)行不同指令流程的問(wèn)題??蔡资搅鞒炭刂聘鼝夯舜朔N問(wèn)題。有一 些現(xiàn)有方法可以解決部份問(wèn)題,但卻浪費(fèi)了硬件資源來(lái)解決前述的坎套式流 程控制問(wèn)題。通常在繪圖處理的領(lǐng)域中,都利用SIMD的平行處理架構(gòu)特性來(lái)處理需要 做類似運(yùn)算的多筆數(shù)據(jù)。然而,SIMD通常相當(dāng)?shù)氖芟蕖Ee例來(lái)說(shuō),較常見(jiàn)的 問(wèn)題是平行處理系統(tǒng)的多數(shù)SIMD處理單元雖然可以同時(shí)處理多筆不同的數(shù) 據(jù),但每一個(gè)處理單元都必須執(zhí)行同一個(gè)程序計(jì)數(shù)器(program counter)所 指定的指令。事實(shí)上,傳統(tǒng)的SIMD處理單元僅有一個(gè)程序計(jì)數(shù)器。因此,需要有新穎的方法和裝置解決上述問(wèn)題。發(fā)明內(nèi)容因此,本發(fā)明的目的之一是提供一具有多數(shù)處理單元的一處理系統(tǒng)以解 決前述問(wèn)題,其中,處理單元具有本地程序計(jì)數(shù)器。本發(fā)明更提供與此處理 系統(tǒng)相關(guān)的方法,用以處理在處理系統(tǒng)中的預(yù)定指令。本發(fā)明的較佳實(shí)施例揭露了一種一處理系統(tǒng)中的預(yù)定指令的處理方法, 此處理系統(tǒng)具有多數(shù)處理單元,此方法包含提供一全局(global)程序計(jì)數(shù)器,并設(shè)定該全局程序計(jì)數(shù)器的計(jì)數(shù)值,以作為被執(zhí)行的所述預(yù)定指令的指令;指定一本地程序計(jì)數(shù)器給每一處理單 元,并根據(jù)該處理單元所執(zhí)行的一現(xiàn)今指令設(shè)定該本地(local)程序計(jì)數(shù)器的 一計(jì)數(shù)值;以及根據(jù)存儲(chǔ)在該處理單元的該本地程序計(jì)數(shù)器以及該全局程序 計(jì)數(shù)器的計(jì)數(shù)值使能至少一處理單元以執(zhí)行所述預(yù)定指令的一特定指令。本發(fā)明的較佳實(shí)施例揭露了 一種用以處理預(yù)定指令的處理系統(tǒng)。此處理 系統(tǒng)包含 一指令緩沖器,用以接收并緩沖該預(yù)定指令; 一全局程序計(jì)數(shù)器, 耦接至該指令緩沖器,用以存儲(chǔ)一計(jì)數(shù)值,且該計(jì)數(shù)值是作為被執(zhí)行的該預(yù) 定指令的指令;多數(shù)處理單元,其中的每一個(gè)包含 一執(zhí)行單元,用以執(zhí)行 指令; 一本地(local)程序計(jì)數(shù)器,用以根據(jù)該執(zhí)行單元所執(zhí)行的一現(xiàn)今指 令設(shè)定一計(jì)數(shù)值;以及一流程控制單元,耦接至該全局程序計(jì)數(shù)器以及每一 處理單元,用以根據(jù)存儲(chǔ)在該處理單元的該本地程序計(jì)數(shù)器以及該全局程序 計(jì)數(shù)器的計(jì)數(shù)值使能至少一處理單元以執(zhí)行所述預(yù)定指令的一特定指令。
圖1示出了根據(jù)本發(fā)明的一實(shí)施例的用以處理預(yù)定指令的處理系統(tǒng)的方塊圖。圖2示出了根據(jù)本發(fā)明的實(shí)施例的用以處理預(yù)定指令的方法。附圖符號(hào)說(shuō)明100處理系統(tǒng)105多凄t處理單元106執(zhí)行單元107本地程序計(jì)數(shù)器108寫回單元109緩存器文件110指令緩沖器120全局程序計(jì)數(shù)器130指令取得/解碼單元140流程控制單元具體實(shí)施方式
在i兌明書及后續(xù)的申^青專利范圍當(dāng)中j吏用了某些詞匯來(lái)指稱特定的組 件。所屬領(lǐng)域中具有通常知識(shí)者應(yīng)可理解,硬件制造商可能會(huì)用不同的名詞 來(lái)稱呼同一個(gè)組件。本說(shuō)明書及后續(xù)的申請(qǐng)專利范圍并不以名稱的差異來(lái)作 為區(qū)分組件的方式,而是以組件在功能上的差異來(lái)作為區(qū)分的準(zhǔn)則。在通篇 說(shuō)明書及后續(xù)的請(qǐng)求項(xiàng)當(dāng)中所提及的「包含」是一開(kāi)放式的用語(yǔ),故應(yīng)解釋成r包含但不限定于」。以外,「耦接」 一詞在此是包含任何直接及間接的電 氣連接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表該第 —裝置可直接電氣連接于該第二裝置,或通過(guò)其它裝置或連接手段間接地電 氣連接至該第二裝置。請(qǐng)參照?qǐng)D1,圖1示出了根據(jù)本發(fā)明的一實(shí)施例的用以處理預(yù)定指令的 處理系統(tǒng)100的方塊圖。在圖1中,小箭頭符號(hào)代表一控制路徑,其代表何 種動(dòng)作欲被執(zhí)行以及欲被寫入至特定緩存器的執(zhí)行結(jié)果。而大箭頭符號(hào)代表 一數(shù)據(jù)路徑,而數(shù)據(jù)路徑包含了指令以及數(shù)據(jù)。處理系統(tǒng)100包含一指令緩 沖器110。指令緩沖器110用以接收并緩沖欲被處理的預(yù)定指令。全局程序 計(jì)數(shù)器120耦接至指令緩沖器110,用以存儲(chǔ)一計(jì)數(shù)值以作為被執(zhí)行的該預(yù) 定指令的指令。處理系統(tǒng)100亦包含多數(shù)處理單元105,其中的每一個(gè)都具 有一執(zhí)行單元106以及一本地程序計(jì)數(shù)器l(H。執(zhí)行單元106用以執(zhí)行存儲(chǔ) 在指令緩沖器110中的預(yù)定指令。本地程序計(jì)數(shù)器107用以根據(jù)執(zhí)行單元106 所執(zhí)行的一現(xiàn)今指令"i殳定一計(jì)數(shù)值。此外,處理系統(tǒng)100包含一流程控制單元"0。流程控制單元14G耦接 至全局程序計(jì)數(shù)器120以及每一多數(shù)處理單元105。流程控制單元用以 根據(jù)存儲(chǔ)在處理單元105中的本地程序計(jì)數(shù)器107以及全局程序計(jì)數(shù)器120 的計(jì)數(shù)值使能至少一處理單元105以執(zhí)行預(yù)定指令的一特定指令。處理系統(tǒng)100的流程控制單元140在存儲(chǔ)在特定處理單元中105的特定 本地程序計(jì)數(shù)器107具有和全局程序計(jì)數(shù)器120相等的計(jì)數(shù)值時(shí),使能一特 定處理單元105以執(zhí)行被全局程序計(jì)數(shù)器120所指向(point to)的特定指令。此外,特定處理單元105中的特定本地程序計(jì)數(shù)器107在處理單元IOS 的特定處理單元105未被流程控制單元14G使能以執(zhí)行特定指令時(shí),維持存 儲(chǔ)在特定本地程序計(jì)數(shù)器1Q7的一特定計(jì)數(shù)值。若特定指令不為一流程控制指令,處理系統(tǒng)100的流程控制單元140控制特定本地程序計(jì)數(shù)器107以增加存儲(chǔ)在特定本地程序計(jì)數(shù)器107中的特定 計(jì)數(shù)值。若特定指令是一流程控制指令,特定處理單元1Q5的執(zhí)行單元1Q6計(jì)算 流程控制指令,且流程控制單元14G根據(jù)4丸行單元106的計(jì)算結(jié)果更新存儲(chǔ) 在特定本地程序計(jì)數(shù)器107中的特定計(jì)數(shù)值。流程控制單元106在流程控制指令(或分支指令)未被判斷成分支動(dòng)作 要才丸行(branch not taken)時(shí),增加存^諸在特定本地程序計(jì)數(shù)器107中的 特定計(jì)數(shù)值,以及流程控制單元106在流程控制指令(或分支指令)被判斷成 分支動(dòng)作要執(zhí)行時(shí)(branch taken),指派對(duì)應(yīng)于另 一指令的一預(yù)定目標(biāo)地址 給存儲(chǔ)在特定本地程序計(jì)數(shù)器107中的特定計(jì)數(shù)值。在本發(fā)明的另一實(shí)施例中,每一處理單元105包含一呼叫狀態(tài)位(call status bit),用以表示處理單元105何時(shí)執(zhí)行一呼叫塊(call block)或一 坎套呼叫塊(nested call block)的指令。此特性相當(dāng)?shù)闹匾?,因?yàn)槿舯镜?程序計(jì)數(shù)器107具有最小的本地程序計(jì)數(shù)值,將使得相對(duì)應(yīng)的處理單元IO5 執(zhí)行指令。每一處理單元105可具有一呼叫狀態(tài)位,當(dāng)處理單元105執(zhí)行進(jìn) 入一呼叫塊或一坎套呼叫塊的一呼叫指令(Call )時(shí),呼叫狀態(tài)位被設(shè)定。 而當(dāng)處理單元105執(zhí)行存在于非坎套呼叫塊或位于最高層坎套呼叫塊的一回 復(fù)指令(Return)時(shí),呼叫狀態(tài)位被清除。在此例中,具有設(shè)定的呼叫狀態(tài) 位的處理單元105首先被視為一群組,且在此群組中,若處理單元105具有 最小的本地程序計(jì)數(shù)值,將使得相對(duì)應(yīng)的處理單元105執(zhí)行指令。當(dāng)沒(méi)有呼 叫狀態(tài)位被設(shè)定時(shí),則回到先前的規(guī)則,藉此,流程控制單元140會(huì)從處理 單元105中,選取具有最小的對(duì)應(yīng)本地程序計(jì)數(shù)值來(lái)設(shè)定全局程序計(jì)數(shù)器120 并抓取指令,亦即處理單元105具有最小的對(duì)應(yīng)本地程序計(jì)數(shù)值者會(huì)執(zhí)行指 令,在此情況下呼叫狀態(tài)位并不會(huì)有影響。易而言之,在此實(shí)施例中具有設(shè)定的呼叫狀態(tài)位的處理單元105具有取 得和執(zhí)行指令的優(yōu)先級(jí)。藉此方法具有設(shè)定的呼叫狀態(tài)位的處理單元105比 不具有設(shè)定的呼叫狀態(tài)位的處理單元105優(yōu)先被使能。舉例而言, 一第一處 理單元具有M本地程序計(jì)數(shù)值,且此本地程序計(jì)數(shù)值組具有設(shè)定的呼叫狀態(tài) 位,而一第二處理單元具有M-1本地程序計(jì)數(shù)值,且此本地程序計(jì)數(shù)值組具 有清除的呼叫狀態(tài)位。在此情況下,因?yàn)榫哂性O(shè)定的呼叫狀態(tài)位,被較大值 的M本地程序計(jì)數(shù)值所指向的指令反而被取得和執(zhí)行。最后,用以處理預(yù)定指令的處理系統(tǒng)100的處理單元105更包含一寫回(write-back)單元108以及一緩存器文件109。在本發(fā)明的實(shí)施例中,流程 控制單元140被用以控制執(zhí)行單元106以根據(jù)本地程序計(jì)數(shù)器107執(zhí)行跟隨 流程控制指令的指令。流程控制單元14 0亦被用以控制寫回單元108以將3九 行結(jié)果寫入緩存器文件109。上述的處理系統(tǒng)100可為一平行處理系統(tǒng),而處理單元105可為一平行 處理單元,但僅用以舉例,并非用以限定本發(fā)明。熟知此項(xiàng)技藝者當(dāng)可知道 本發(fā)明及相關(guān)方法并非必定需要此類平行處理系統(tǒng),與平行處理系統(tǒng)相關(guān)的 系統(tǒng)亦可使用在本發(fā)明的系統(tǒng)和方法,使本發(fā)明得以和其它現(xiàn)有裝置和方法 作整合,其亦在本發(fā)明的范圍之內(nèi)。請(qǐng)參照?qǐng)D2,圖2示出了根據(jù)本發(fā)明的實(shí)施例的用以處理預(yù)定指令的方法。 此方法對(duì)應(yīng)于圖1中所述的處理系統(tǒng)IOO,其步驟如下所述步驟200開(kāi)始步驟210設(shè)定全局程序計(jì)數(shù)器120的計(jì)數(shù)值,使其與分別具有設(shè)定的呼叫狀態(tài)位 每一處理單元105的本地程序計(jì)數(shù)器的最小值相同。若沒(méi)有設(shè)定的呼叫狀態(tài) 位,則設(shè)定全局程序計(jì)數(shù)器120的計(jì)數(shù)值,使其與每一處理單元105的本地 程序計(jì)數(shù)器的最小值相同。步驟220取得全局程序計(jì)數(shù)器120所指向的下一指令。 步驟2 30判斷對(duì)每一處理單元而言,是否全局程序計(jì)數(shù)器120與本地程序計(jì)數(shù)器 107相等 若是,到步驟280,若否,到步驟240。 步驟240判斷現(xiàn)今指令是否為一流程控制指令?如果是,到步驟250。若否,到步 驟290。步驟25 0計(jì)算現(xiàn)今指令的計(jì)算域以決定流程控制結(jié)果。到步驟260。 步驟260處理單元105的計(jì)算是否確定取得流程控制結(jié)果,也就是,是否要執(zhí)行分支指令?若是,到步驟295。若否,到步驟270。 步驟270設(shè)定本地程序計(jì)數(shù)器107,使其等于本地程序計(jì)數(shù)器107加一。到步驟210。步驟280保持本地程序計(jì)數(shù)器107為未改變。遮蔽緩存器文件109以防止寫入被 使能。到步驟210。 步驟290執(zhí)行現(xiàn)今指令,并設(shè)定本地程序計(jì)數(shù)器107,使其等于本地程序計(jì)數(shù)器 107加一。到步驟210。 步驟295設(shè)定本地程序計(jì)數(shù)器107,使其等于和現(xiàn)今執(zhí)行的流程控制指令有關(guān)的 目標(biāo)地址。若現(xiàn)今流程指令的執(zhí)行進(jìn)入一呼叫塊,則設(shè)定呼叫狀態(tài)位。若現(xiàn) 今流程指令的執(zhí)行離開(kāi)一呼叫塊,則清除呼叫狀態(tài)位。到步驟210。本發(fā)明的流程開(kāi)始于步驟200。在步驟210中,若沒(méi)有設(shè)定的呼叫狀態(tài) 位,則設(shè)定全局程序計(jì)數(shù)器120的計(jì)數(shù)值,使其與每一處理單元105的本地 程序計(jì)數(shù)器107的最小值相同。然而,如先前所述,具有設(shè)定的呼叫狀態(tài)位 的本地程序計(jì)數(shù)器107被指派取得和執(zhí)行指令的較高次序。因此,若至少一 呼叫狀態(tài)位被設(shè)定,本方法的流程將優(yōu)先使能具有設(shè)定的呼叫狀態(tài)位的處理 單元1D5,而不是具有被清除的呼叫狀態(tài)位的處理單元105。如圖2所示,全 局程序計(jì)數(shù)器120被分別具有設(shè)定的呼叫狀態(tài)位每一處理單元105的本地程 序計(jì)數(shù)器的最小值設(shè)定。接著在步驟220中,下一指令根據(jù)全局程序計(jì)數(shù)器120被取得。在步驟 230中,對(duì)每一處理單元105,本發(fā)明確認(rèn)全局程序計(jì)數(shù)器120 (PC一J是否 和本地程序計(jì)數(shù)器107 (PClMal)相同。若全局程序計(jì)數(shù)器120和特定本地程 序計(jì)數(shù)器107相同,則流程到步驟240,否則流程到步驟280。步驟240中, 因?yàn)閮蓚€(gè)程序計(jì)數(shù)器,全局程序計(jì)數(shù)器120和特定本地程序計(jì)數(shù)器107已被 確認(rèn)為相等,因此現(xiàn)在本發(fā)明須確認(rèn)現(xiàn)今指令是否為流程控制指令。若現(xiàn)今 指令為一流程控制指令,到步驟250,否則到步驟290。在步驟250中,此時(shí) 現(xiàn)今指令已被認(rèn)定為是一流程控制指令,因此須計(jì)算現(xiàn)今流程控制指令須被 計(jì)算以決定流程控制結(jié)果。接著,到步驟260。在步驟260中,若特定處理單元105計(jì)算出要4丸行分支動(dòng)作(branch taken)的結(jié)果,易而言之,即表 示處理單元105計(jì)算流程控制指令且其將取得流程控制,然后本發(fā)明到步驟295。若特定處理單元105計(jì)算出不要執(zhí)行分支動(dòng)作(branch not taken)的 結(jié)果,則本發(fā)明到步驟270。在步驟270中,本地程序計(jì)數(shù)器107被設(shè)定成 等于本地程序計(jì)數(shù)器107加一 (也就是,PClMal=PC,Ma)+l),然后本發(fā)明到步驟 210。回到步驟230,若全局程序計(jì)數(shù)器120未和特定本地程序計(jì)數(shù)器107相 等,流程進(jìn)行至步驟280,其中本發(fā)明使本地程序計(jì)數(shù)器107保持現(xiàn)今值而 不改變。此外,緩存器文件109被遮蔽(mask)以防止寫入被使能。接著, 流程回到步驟210。步驟240中,因?yàn)閮蓚€(gè)程序計(jì)數(shù)器,全局程序計(jì)數(shù)器120和特定本地程 序計(jì)數(shù)器107已被確認(rèn)為相等,因此現(xiàn)在本發(fā)明須確認(rèn)現(xiàn)今指令是否為流程 控制指令。若現(xiàn)今指令不為一流程控制指令,到步驟290。在步驟290中, 執(zhí)行單元106執(zhí)行現(xiàn)今指令。此外,本地程序計(jì)數(shù)器1Q7被設(shè)定成等于本地 程序計(jì)數(shù)器107加一 (也就是,PC,。cPC,織,+l),然后本發(fā)明到步驟210?;氐讲襟E260,在步驟260中,若特定處理單元105計(jì)算出要執(zhí)行分支 動(dòng)作(branch taken)的結(jié)果,易而言之,即分支動(dòng)作被執(zhí)行,然后本發(fā)明 到步驟295 。在步驟295中,本地程序計(jì)數(shù)器IO7被設(shè)定成和現(xiàn)今執(zhí)行的流 程控制指令有關(guān)的目標(biāo)地址相等,此現(xiàn)今執(zhí)行的流程控制指令由執(zhí)行單元106 所執(zhí)行,且流程回到步驟210。此外,若現(xiàn)今流程指令的執(zhí)行進(jìn)入一呼叫塊, 則已被清除的呼叫狀態(tài)位會(huì)被設(shè)定。然而,若現(xiàn)今流程指令的執(zhí)行離開(kāi)一呼 叫塊,則清除呼叫狀態(tài)位會(huì)被清除。上述的流程控制指令可為IF流程控制指令,但僅用以舉例,并非用以限 定本發(fā)明,亦即,其亦可為L(zhǎng)OOP、 REP、 BREAK、 ELSE、 ENDIF、 ENDLOOP、 ENDREP、 BREAKC...等其它種類指令。因此,本發(fā)明的范圍應(yīng)包含下列的方法使用已 揭露的具有本地程序計(jì)數(shù)器的流程控制結(jié)構(gòu),此結(jié)構(gòu)使得預(yù)定指令包含一 IF 流程控制指令,而此IF流程控制指令并不需要具有(但亦可具有)相對(duì)應(yīng)的 終端流程控制指令Endlf流程控制指令。須注意的是,比較全局程序計(jì)數(shù)器120的計(jì)數(shù)值和處理單元105中的本 地程序計(jì)數(shù)器107中的計(jì)數(shù)值的動(dòng)作是用以判別具有最小本地程序計(jì)數(shù)值的 處理單元,此最小本地程序計(jì)數(shù)值由全局程序計(jì)數(shù)器120中所存儲(chǔ)的計(jì)數(shù)值所指示。然而,亦可以采用其它實(shí)施方式。舉例來(lái)it,;危禾呈4空制單元140比 較存儲(chǔ)在處理單元105中的本地程序計(jì)數(shù)器107中的計(jì)數(shù)值以判別具有最小 本地程序計(jì)數(shù)值的處理單元。接著,指令緩沖器110根據(jù)流程控制單元140 所產(chǎn)生的比較結(jié)果以提供欲被執(zhí)行的指令,且被判別的處理單元105中的執(zhí) 行單元106被流程控制單元140使能以根據(jù)比較結(jié)果執(zhí)行指令。簡(jiǎn)而言之, 流程控制單元140的動(dòng)作等同于比較一參考值以及本地程序計(jì)數(shù)器107的計(jì) 數(shù)值以產(chǎn)生一比較結(jié)果。參考值可為存儲(chǔ)在全局程序計(jì)數(shù)器中的計(jì)數(shù)值,另 一本地程序計(jì)數(shù)器107中的計(jì)數(shù)值,或是其它電子組件根據(jù)所須設(shè)計(jì)所給予 的值。因此,指令緩沖器110根據(jù)比較結(jié)果而提供指令,執(zhí)行單元106被流 程控制單元使能以根據(jù)比較結(jié)果執(zhí)行指令。綜上所述,本發(fā)明提供了多數(shù)處理單元,且每一處理單元具有本地程序 計(jì)數(shù)器。且僅有具有最小本地程序計(jì)數(shù)器的執(zhí)行單元執(zhí)行現(xiàn)今指令。在坎套 或非坎套式呼叫流程控制的情況中,執(zhí)行坎套或非坎套式呼叫指令的處理單 元被分類成同一群,且其本地程序計(jì)數(shù)器被優(yōu)先確認(rèn)是否為最小值,以得知 那一處理單元將執(zhí)行現(xiàn)今指令。處理單元可以很容易被判別是否在一坎套式 流程控制的情況中,例如,可用一狀態(tài)位或一特定變量判斷之。本發(fā)明可以 在所有處理單元將計(jì)算流程控制指令時(shí),使用和流程控制指令有關(guān)的目標(biāo)地 址以藉由早期離開(kāi)(early-out,也就是說(shuō),在所有的數(shù)據(jù)皆被判斷采取同一 個(gè)分支動(dòng)作時(shí),可以提早離開(kāi)坎套或非坎套式流程控制塊,而不是一直停留 在坎套或非坎套式流程控制塊中,抓取不需執(zhí)行的指令來(lái)執(zhí)行,最后又將其 執(zhí)行結(jié)果予以屏蔽)以得到更好的效率。以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所做的均 等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1. 一種處理系統(tǒng)中的預(yù)定指令的處理方法,該處理系統(tǒng)具有多數(shù)處理單元,該處理方法包含(a)提供一全局程序計(jì)數(shù)器,并設(shè)定該全局程序計(jì)數(shù)器的計(jì)數(shù)值,以作為被執(zhí)行的所述預(yù)定指令的指令;(b)指定一本地程序計(jì)數(shù)器給每一處理單元,并根據(jù)該處理單元所執(zhí)行的一現(xiàn)今指令設(shè)定該本地程序計(jì)數(shù)器的一計(jì)數(shù)值;以及(c)根據(jù)存儲(chǔ)在該處理單元的本地程序計(jì)數(shù)器以及該全局程序計(jì)數(shù)器的計(jì)數(shù)值,來(lái)使能至少一處理單元以執(zhí)行所述預(yù)定指令中的一特定指令。
2. —種用以處理預(yù)定指令的處理系統(tǒng),該處理系統(tǒng)包含 一指令緩沖器,用以接收并緩沖該預(yù)定指令;一全局程序計(jì)數(shù)器,耦接至該指令緩沖器,用以存儲(chǔ)一計(jì)數(shù)值,且該計(jì) 數(shù)值是作為被執(zhí)行的該預(yù)定指令的指令; 多數(shù)處理單元,其中的每一個(gè)包含 一執(zhí)行單元,用以執(zhí)行指令;以及一本地程序計(jì)數(shù)器,用以根據(jù)該執(zhí)行單元所執(zhí)行的一現(xiàn)今指令設(shè)定 一計(jì)數(shù)值;以及一流程控制單元,耦接至該全局程序計(jì)數(shù)器以及每一處理單元,用以根 據(jù)存儲(chǔ)在該處理單元的該本地程序計(jì)數(shù)器以及該全局程序計(jì)數(shù)器的計(jì)數(shù)值使 能至少一處理單元以執(zhí)行所述預(yù)定指令的一特定指令。
3. 如權(quán)利要求2所述的處理系統(tǒng),其中,該流程控制單元在存儲(chǔ)在該特 定處理單元中的該本地程序計(jì)數(shù)器具有和該全局程序計(jì)數(shù)器相等的計(jì)數(shù)值 時(shí),使能一特定處理單元以執(zhí)行被全局程序計(jì)數(shù)器所指向的特定指令。
4. 如權(quán)利要求3所述的處理系統(tǒng),其中,該特定指令是流程控制指令以 外的其它指令,且該流程控制單元控制該特定本地程序計(jì)數(shù)器以增加存儲(chǔ)在 該特定本地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值。
5. 如權(quán)利要求3所述的處理系統(tǒng),其中,該特定指令是一流程控制指令, 且該特定處理單元的該執(zhí)行單元執(zhí)行該流程控制指令以產(chǎn)生 一計(jì)算結(jié)杲,且 該流程控制單元根據(jù)該計(jì)算結(jié)果更新存儲(chǔ)在該特定本地程序計(jì)數(shù)器中的該特 定計(jì)數(shù)值。
6. 如權(quán)利要求5所述的處理系統(tǒng),其中,該流程控制單元在該計(jì)算結(jié)果 使得該流程控制或分支指令指定的分支動(dòng)作不執(zhí)行時(shí),增加存儲(chǔ)在該特定本 地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值,以及該流程控制單元在該計(jì)算結(jié)果使得該 流程控制或分支指令指定的分支動(dòng)作要執(zhí)行時(shí),指派對(duì)應(yīng)于另一指令的一預(yù) 定目標(biāo)地址給存儲(chǔ)在該特定本地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值。
7. 如權(quán)利要求2所述的處理系統(tǒng),其中, 一特定處理單元中的一特定本 地程序計(jì)數(shù)器在所述處理單元的該特定處理單元未被使能以執(zhí)行該特定指令 時(shí),維持存儲(chǔ)在所述特定本地程序計(jì)數(shù)器的 一特定計(jì)數(shù)值。
8. —種一處理系統(tǒng)中的預(yù)定指令的處理方法,該處理系統(tǒng)具有多數(shù)處理 單元,該方法包含(a) 比較存儲(chǔ)在多數(shù)本地程序計(jì)數(shù)器中的多數(shù)計(jì)數(shù)值以產(chǎn)生一比較結(jié) 果,其中所述計(jì)數(shù)值分別被指派給該處理單元;(b) 根據(jù)該比較結(jié)果提供該預(yù)定指令的一指令;以及(c) 根據(jù)該比較結(jié)果使能所述處理單元中的一特定處理單元以執(zhí)行該指令。
9. 一種用以處理預(yù)定指令的處理系統(tǒng),包含多數(shù)本地程序計(jì)數(shù)器,耦接于多數(shù)處理單元,其中,所述本地程序計(jì)數(shù) 器分別存儲(chǔ)多數(shù)計(jì)數(shù)值;一流程控制單元,耦"^妄于所述本地程序計(jì)數(shù)器,用以比較所述計(jì)數(shù)值;一指令緩沖器,接收并緩沖所述預(yù)定指令的一指令,并根據(jù)該流程控制 單元所產(chǎn)生的一比較結(jié)果提供該指令;以及一執(zhí)行單元,耦接至該指令緩沖器并被該流程控制單元使能以根據(jù)該比 較結(jié)果執(zhí)行該指令。
10. 如權(quán)利要求9所述的處理系統(tǒng),其中,若該執(zhí)行單元未被使能以執(zhí)行該指令,則存儲(chǔ)在^^皮指派給該處理單元的一本地程序計(jì)數(shù)器的一特定計(jì)數(shù) 值會(huì)被維持。
11. 如權(quán)利要求9所述的處理系統(tǒng),其中,若該指令是流程控制指令以 外的其它指令,該流程控制單元更增加存儲(chǔ)在對(duì)應(yīng)該執(zhí)行單元的一特定本地 程序計(jì)數(shù)器中的 一特定計(jì)數(shù)值。
12. 如權(quán)利要求9所述的處理系統(tǒng),其中,若該指令為一流程控制指令, 該執(zhí)行單元執(zhí)行該流程控制指令以產(chǎn)生 一計(jì)算結(jié)杲且該流程控制單元且根據(jù)該計(jì)算結(jié)果更新存儲(chǔ)在對(duì)應(yīng)該執(zhí)行單元的 一特定本地程序計(jì)數(shù)器中的 一特定 計(jì)數(shù)值。
13. 如權(quán)利要求12所述的處理系統(tǒng),其中,若該計(jì)算結(jié)果使得該流程控 制或分支指令指定的分支動(dòng)作不執(zhí)行,該流程控制單元增加存儲(chǔ)在該特定本 地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值,而且若該計(jì)算結(jié)果使得該流程控制或分支 指令指定的分支動(dòng)作要執(zhí)行,該流程控制單元指派對(duì)應(yīng)于另一指令的一預(yù)定 目標(biāo)地址給存儲(chǔ)在該特定本地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值。
14. 一種用以處理預(yù)定指令的處理系統(tǒng),包含 一本地程序計(jì)數(shù)器,耦接于一處理單元,用以存儲(chǔ)一計(jì)數(shù)值; 一流程控制單元,耦接于該本地程序計(jì)數(shù)器,用以比較該計(jì)數(shù)值以及一參考值;一指令緩沖器,接收并緩沖所述預(yù)定指令的一指令,并根據(jù)該比較單元 所產(chǎn)生的一比較結(jié)果提供該指令;以及一執(zhí)行單元,耦接至該指令緩沖器并被該流程控制單元使能以根據(jù)該比 較結(jié)果執(zhí)行該指令。
15. 如權(quán)利要求14所述的處理系統(tǒng),其中,該流程控制單元在該計(jì)數(shù)值 和該參考值相等時(shí),使能該執(zhí)行單元以執(zhí)行該指令。
16. 如權(quán)利要求14所述的處理系統(tǒng),其中,若該指令是流程控制指令以 外的其它指令,該流程控制單元更增加存儲(chǔ)在對(duì)應(yīng)該執(zhí)行單元的該本地程序 計(jì)數(shù)器中的該計(jì)數(shù)值。
17. 如權(quán)利要求14所述的處理系統(tǒng),其中,若該指令為一流程控制指令, 該執(zhí)行單元執(zhí)行該流程控制指令以產(chǎn)生一計(jì)算結(jié)果且該流程控制單元根據(jù)該計(jì)算結(jié)果更新存儲(chǔ)在對(duì)應(yīng)該執(zhí)行單元的該本地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值。
18. 如權(quán)利要求17所述的處理系統(tǒng),其中,若該計(jì)算結(jié)果使得該流程控 制或分支指令指定的分支動(dòng)作不執(zhí)行,該流程控制單元增加存儲(chǔ)在該本地程 序計(jì)數(shù)器中的該計(jì)數(shù)值,而且若該計(jì)算結(jié)果使得該流程控制或分支指令指定 的分支動(dòng)作要執(zhí)行,該流程控制單元指派一預(yù)定目標(biāo)地址給存儲(chǔ)在該特定本 地程序計(jì)數(shù)器中的該特定計(jì)數(shù)值,且該預(yù)定目標(biāo)地址對(duì)應(yīng)于另一指令。
19. 一種一處理系統(tǒng)中的預(yù)定指令的處理方法,該方法包含(a)比較一參考值以及存儲(chǔ)在被指派給一處理單元的一本地程序計(jì)數(shù)器中的 一計(jì)凄U直以產(chǎn)生一 比命i結(jié)果;(b) 根據(jù)該比較結(jié)果提供該預(yù)定指令的一指令;(c) 根據(jù)該比較結(jié)果使能該處理單元中以執(zhí)行該指令。
全文摘要
本發(fā)明的較佳實(shí)施例揭露了一種一處理系統(tǒng)中的預(yù)定指令的處理方法,此處理系統(tǒng)具有多數(shù)處理單元,此方法包含提供一全局(global)程序計(jì)數(shù)器,并設(shè)定該全局程序計(jì)數(shù)器的計(jì)數(shù)值,以作為被執(zhí)行的所述預(yù)定指令的指令;指定一本地程序計(jì)數(shù)器給每一處理單元,并根據(jù)該處理單元所執(zhí)行的一現(xiàn)今指令設(shè)定該本地(local)程序計(jì)數(shù)器的一計(jì)數(shù)值;以及根據(jù)存儲(chǔ)在該處理單元的該本地程序計(jì)數(shù)器以及該全局程序計(jì)數(shù)器的計(jì)數(shù)值使能至少一處理單元以執(zhí)行所述預(yù)定指令的一特定指令。
文檔編號(hào)G06F15/80GK101231584SQ20071000407
公開(kāi)日2008年7月30日 申請(qǐng)日期2007年1月23日 優(yōu)先權(quán)日2007年1月23日
發(fā)明者閻學(xué)斌 申請(qǐng)人:矽統(tǒng)科技股份有限公司