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

具有針對(duì)軟錯(cuò)誤的保護(hù)的數(shù)據(jù)處理的制作方法

文檔序號(hào):6478047閱讀:153來源:國知局
專利名稱:具有針對(duì)軟錯(cuò)誤的保護(hù)的數(shù)據(jù)處理的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及錯(cuò)誤保護(hù)的數(shù)據(jù)處理。
背景技術(shù)
美國專利申請(qǐng)?zhí)朜o. 20020199175描述了一種用于針對(duì)錯(cuò)誤來保護(hù)數(shù)據(jù)處理操作的技術(shù)。該申請(qǐng)具體地涉及所謂的軟錯(cuò)誤。軟錯(cuò)誤的典型起因是放射性輻射(當(dāng)該輻射推翻數(shù)據(jù)處理器觀察到的數(shù)據(jù)值時(shí))。不能跟蹤這種軟錯(cuò)誤至永久性電路或程序故障。如本文所使用的,軟錯(cuò)誤是不能被跟蹤至永久性硬件或程序錯(cuò)誤的錯(cuò)誤。當(dāng)軟錯(cuò)誤在數(shù)據(jù)處理器執(zhí)行計(jì)算機(jī)程序期間發(fā)生時(shí),這可以引起從處理器錯(cuò)誤輸出數(shù)據(jù)或者甚至錯(cuò)誤的程序流程。 美國專利申請(qǐng)?zhí)朜o. 20020199175描述了可以通過復(fù)制指令執(zhí)行(即通過用所選擇的冗余指令來擴(kuò)展程序以產(chǎn)生復(fù)制結(jié)果)來針對(duì)軟錯(cuò)誤保護(hù)程序單元。將復(fù)制結(jié)果與程序的正常指令的結(jié)果進(jìn)行比較。當(dāng)結(jié)果不匹配時(shí),假定軟錯(cuò)誤已經(jīng)發(fā)生并采取糾錯(cuò)行動(dòng)。
美國專利申請(qǐng)?zhí)朜o. 20020199175為了避免程序性能的不必要降低,僅對(duì)所選部分程序應(yīng)用該技術(shù)。描述了用于選擇這些部分的各種準(zhǔn)則。這些技術(shù)包括標(biāo)識(shí)使用比通常對(duì)軟錯(cuò)誤更敏感的硬件的程序部分、標(biāo)識(shí)使用在對(duì)軟錯(cuò)誤敏感的存儲(chǔ)器中長期保存的變量的程序部分以及使用可能對(duì)處理具有重大影響的數(shù)據(jù)的程序部分。 針對(duì)軟錯(cuò)誤的保護(hù)的其他技術(shù)包括使用與糾錯(cuò)硬件相結(jié)合的、以糾錯(cuò)碼來編碼的數(shù)據(jù)。此外,可以將數(shù)據(jù)處理電路特別設(shè)計(jì)為對(duì)軟錯(cuò)誤的起因具有更好的容忍性。然而,這些技術(shù)是以硬件開銷為代價(jià)的。復(fù)制指令的使用避免了對(duì)這種硬件開銷的需要。不幸的是,這自身的開銷代價(jià)在于,即使僅對(duì)程序的所選部分應(yīng)用復(fù)制,也減慢了程序執(zhí)行并且消耗更多的功率來執(zhí)行程序。

發(fā)明內(nèi)容
本發(fā)明的目的之一是以減少的開銷代價(jià)來提供針對(duì)軟錯(cuò)誤的保護(hù)。 本發(fā)明提供了一種根據(jù)權(quán)利要求1所述的處理電路。本文中可以以對(duì)執(zhí)行期間導(dǎo)
致錯(cuò)誤的可選擇的敏感度等級(jí)來執(zhí)行操作。提供功能單元以響應(yīng)于相應(yīng)命令來執(zhí)行每一個(gè)
操作。在實(shí)施例中,通過選擇由功能單元中的第一或第二功能單元來執(zhí)行操作的命令,來選
擇敏感度等級(jí)。在本實(shí)施例中,第一和第二功能單元具有用于執(zhí)行操作的互不相同的電路
結(jié)構(gòu),功能單元中第一功能單元的電路結(jié)構(gòu)提供比功能單元中第二功能單元的電路結(jié)構(gòu)更
低的對(duì)導(dǎo)致錯(cuò)誤的敏感度等級(jí)。在備選實(shí)施例中,可以根據(jù)來自程序的選擇信息,在以第一
敏感度等級(jí)或者第二敏感度等級(jí)執(zhí)行之間切換功能單元,以執(zhí)行操作。 對(duì)錯(cuò)誤具有較高敏感度的功能單元典型地在一個(gè)或者更多方面相對(duì)于另一個(gè)功能單元具有優(yōu)點(diǎn),如較高的速度、較小的電路面積和/或較少的功耗??梢愿鶕?jù)結(jié)果所需的
可靠性等級(jí),將來自執(zhí)行操作的程序的命令導(dǎo)向功能單元。因此,例如可以以比結(jié)果用于控制目的的加法更低的可靠性來計(jì)算結(jié)果僅用于視頻顯示的加法運(yùn)算。
由于對(duì)于不要求產(chǎn)生高可靠性結(jié)果的命令,可以選擇執(zhí)行對(duì)錯(cuò)誤具有更高敏感度的操作,所以可以減少開銷。從而,例如可以通過將用于產(chǎn)生較不可靠結(jié)果的命令分配給對(duì)錯(cuò)誤更敏感的較低功耗或較快的功能單元,來減少功耗或者提高速度。作為另一個(gè)示例,當(dāng)可以使用不同的功能單元來并行執(zhí)行命令時(shí),可以通過提供向部分功能單元提供低敏感度但是大電路面積,使用其他較小但是更敏感的功能單元,來減少電路面積。這樣,通過將指令分配給較不敏感的功能單元來始終確??煽康慕Y(jié)果,并且可以通過將不需要產(chǎn)生高可靠性結(jié)果的指令分配給其它功能單元來以較少開銷實(shí)現(xiàn)更高平行性。 例如,可以通過使用較大的晶體管或者通過提供比具有較高敏感度的可比功能單元(它們都存在于處理器中以響應(yīng)于命令來執(zhí)行相同類型的操作)的更多的屏蔽,來實(shí)現(xiàn)對(duì)錯(cuò)誤具有較低敏感度的功能單元。在實(shí)施例中,可以在對(duì)錯(cuò)誤具有較低敏感度的功能單元中提供糾錯(cuò)電路,而具有較高敏感度的功能單元不具有這種糾錯(cuò)電路。在另一個(gè)實(shí)施例中,可以通過在具有較低敏感度的功能單元中使用比在具有較高敏感度的功能單元中更多的用于執(zhí)行命令的流水線級(jí),來實(shí)現(xiàn)更高的可靠性。在實(shí)施例中,可以針對(duì)對(duì)錯(cuò)誤的兩個(gè)可選擇地不同的敏感度等級(jí)來提供功能單元,但是備選地,可以使用更多的不同等級(jí)。此外,可以使用針對(duì)對(duì)軟錯(cuò)誤的不同敏感度等級(jí)而提供的不同寄存器。 可以用使用不同敏感度等級(jí)的程序?qū)μ幚砥鬟M(jìn)行編程,例如通過在直接或間接導(dǎo)致需要高可靠性的結(jié)果的計(jì)算中避免使用對(duì)錯(cuò)誤具有較高敏感度的功能單元。從而,在用于具有低敏感度的功能單元的程序命令中,永遠(yuǎn)不使用來自具有較高敏感度的功能單元的結(jié)果。用于具有較高敏感度的功能單元的命令可以使用來自任何功能單元的結(jié)果。
可以由編譯器來支持處理器,該編譯器根據(jù)以結(jié)果所需要的可靠性等級(jí),將用于執(zhí)行相同操作的命令分配給不同的功能單元。在實(shí)施例中,可以跟蹤數(shù)據(jù)依賴關(guān)系,以使用對(duì)需要或不需要具有特定的可靠性等級(jí)的結(jié)果具有直接或間接影響的結(jié)果來確定命令,以相應(yīng)地向功能單元分配命令。在不同實(shí)施例中,可以使用肯定或者否定規(guī)范。對(duì)于肯定規(guī)范,指示所有可靠結(jié)果并且僅將產(chǎn)生對(duì)可靠結(jié)果不具有直接或間接影響的結(jié)果的命令分配給更敏感的功能單元。對(duì)于否定規(guī)范,指示不需要可靠的至少一些結(jié)果,并且可以將產(chǎn)生這些結(jié)果并且不直接或者間接影響其他結(jié)果的命令分配給更敏感的功能單元。在實(shí)施例中,可以由程序員在高級(jí)程序中指示結(jié)果所需的可靠性等級(jí),提供編譯器將其轉(zhuǎn)換成對(duì)功能單元的分配。


使用下列附圖,通過對(duì)示例實(shí)施例的描述,這些和其它目的和優(yōu)點(diǎn)觀點(diǎn)將變得顯而易見。 圖1示出了數(shù)據(jù)處理電路。
圖2示出了編譯的流程圖。
圖3示出了數(shù)據(jù)處理電路。
具體實(shí)施例方式
圖1示出了包括功能單元10a-c的集合、寄存器文件12、指令存儲(chǔ)器16以及指令發(fā)布電路14在內(nèi)的數(shù)據(jù)處理電路。作為示例,示出了具有VLIW(超長指令字(Very LargeInstruction Word))架構(gòu)的數(shù)據(jù)處理電路,盡管應(yīng)當(dāng)理解可以使用其他架構(gòu)。此外,盡管示出了三個(gè)功能單元lOa-c,應(yīng)當(dāng)理解可以存在更多的功能單元。功能單元10a-c中的任一個(gè)可以是例如乘法器、算術(shù)邏輯單元、存儲(chǔ)器接入單元、特殊功能電路等等。指令發(fā)布電路14的輸入耦合至指令存儲(chǔ)器16,輸出耦合至功能單元10a-c的選擇輸入和寄存器文件12的端口的地址選擇輸入。功能單元10a-c的操作數(shù)輸入耦合至寄存器文件12的端口,結(jié)果輸出耦合至寄存器文件12的端口。 功能單元10a-c在功能上包括第一和第二功能單元10a、b,它們?cè)诠δ苌系葍r(jià),但是以互不相同的方式實(shí)現(xiàn),導(dǎo)致對(duì)軟錯(cuò)誤的不同敏感度等級(jí)。作為示例,示出了一個(gè)功能單元10a :具有核心100、核心100的操作數(shù)輸入和功能單元10a的操作數(shù)輸入之間的糾錯(cuò)電路102、以及核心100的結(jié)果輸出和功能單元10a的結(jié)果輸出之間的糾錯(cuò)碼編碼器104。另一個(gè)功能單元10b包括相同類型的核心IOO,但是沒有糾錯(cuò)電路或者糾錯(cuò)碼編碼器。核心100可以是例如乘法器、或者算術(shù)/邏輯單元或者任何其它類型的電路。
應(yīng)當(dāng)理解,可以用很多其它方式來實(shí)現(xiàn)對(duì)軟錯(cuò)誤具有不同敏感度等級(jí)的功能單元。例如,可以通過使用汲取更大電流以表示數(shù)據(jù)的電路,例如通過在與更敏感的功能單元相比較不敏感的功能單元中使用較寬的晶體管,來實(shí)現(xiàn)對(duì)在指令執(zhí)行期間出現(xiàn)的軟錯(cuò)誤的較低敏感度。作為另一個(gè)示例,可以通過用不同電路執(zhí)行相同功能的電路來實(shí)現(xiàn)對(duì)軟錯(cuò)誤的較低敏感度。例如,可以向查找表功能單元提供具有不同大小的存儲(chǔ)器單元的存儲(chǔ)器、或者不同類型的存儲(chǔ)器單元,可以使用不同類型的加法器電路以及其它算術(shù)或邏輯電路,可以在一個(gè)功能單元中使用差分編碼的比特的處理并且可以在另一個(gè)功能單元中使用單端編碼的比特等等。盡管示出了僅具有對(duì)軟錯(cuò)誤具有兩種敏感度等級(jí)的、功能上等價(jià)的功能單元10a、 b,應(yīng)當(dāng)理解可以提供具有逐漸降低敏感度等級(jí)的多于兩個(gè)功能上等價(jià)的功能單元。此外,可以存在功能上等價(jià)的功能單元的不同集合,其中每一個(gè)功能單元具有其自己對(duì)軟錯(cuò)誤的敏感度等級(jí),可以與集合中的其它功能單元的等級(jí)不同(本文中每一個(gè)集合與相應(yīng)功能相關(guān)聯(lián)(例如乘法器或者算術(shù)單元),集合內(nèi)的功能單元都具有與該集合相關(guān)聯(lián)的相同功能)。 在另一個(gè)實(shí)施例中,寄存器文件12可以包含對(duì)軟錯(cuò)誤具有不同敏感度等級(jí)的不同類型的寄存器。從而例如部分寄存器可以由比其它寄存器等價(jià)使用的晶體管更寬的晶體管構(gòu)成,或者可以使用不同的寄存器電路結(jié)構(gòu)。在寄存器的寬度不同的實(shí)施例中,一些寄存器包括用于存儲(chǔ)糾錯(cuò)信息的附加存儲(chǔ)位置,并且其它寄存器不包括這種存儲(chǔ)位置。在這種情況中,對(duì)錯(cuò)誤具有較高敏感度等級(jí)的第二功能單元10b可以不使用糾錯(cuò)信息和/或在其結(jié)果中提供缺省糾錯(cuò)信息。 在操作中,指令發(fā)布電路14從指令存儲(chǔ)器16加載指令并且將從這些指令導(dǎo)出的命令信息發(fā)布至功能單元10a-c以及寄存器文件12的地址輸入。響應(yīng)于該信息,寄存器文件12輸出來自該信息選擇的操作數(shù)寄存器的操作數(shù)數(shù)據(jù),功能單元10a-c使用該操作數(shù)數(shù)據(jù)來執(zhí)行該信息選擇的操作,并且寄存器文件12將來自功能單元10a-c的結(jié)果寫入該信息選擇的結(jié)果寄存器。 在執(zhí)行之前,命令被分配給不同的功能單元10a-c,由這些功能單元來執(zhí)行。在實(shí)施例中,在輸入程序的編譯期間完成該操作。已知的VLIW編譯技術(shù)以對(duì)于程序整體而言最小化所需執(zhí)行時(shí)間的方式,基于功能單元執(zhí)行指令的能力,將來自這種輸入程序的命令分
6配給不同的功能單元。也已知使分配依賴于程序大小或者執(zhí)行程序所需能耗的最小化。
圖2示出了編譯的方法的流程圖。可以由通用計(jì)算機(jī)(圖中未示出)來執(zhí)行該流程圖的步驟。如本文所使用的,編譯包括向圖1的處理電路的功能單元分配命令??梢杂删幾g器來執(zhí)行編譯。如本文所使用的,編譯器是一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括在由計(jì)算機(jī)執(zhí)行時(shí)致使執(zhí)行編譯方法的所描述步驟的任何計(jì)算機(jī)程序。
在該方法中,使向功能單元分配命令依賴于對(duì)功能單元執(zhí)行的操作的結(jié)果所需的軟錯(cuò)誤保護(hù)等級(jí)的指示。在第一步驟31中,計(jì)算機(jī)接收具有用于在圖1的處理電路上實(shí)現(xiàn)的命令代碼的程序,以及相結(jié)合的指示對(duì)命令的結(jié)果的保護(hù)等級(jí)的信息。在實(shí)施例中,該等級(jí)可以具有兩個(gè)值中的一個(gè)。在其它實(shí)施例中,可以使用具有更多可選擇等級(jí)的更細(xì)化的指示。 在第二步驟32中,計(jì)算機(jī)對(duì)可以由具有不同敏感度等級(jí)的功能單元10a、b執(zhí)行的所有命令進(jìn)行標(biāo)記,以指示對(duì)每一個(gè)命令的保護(hù)等級(jí)。當(dāng)對(duì)所有命令提供指示結(jié)果的保護(hù)等級(jí)的信息時(shí),第二步驟32僅僅是根據(jù)其結(jié)果的保護(hù)等級(jí)來標(biāo)記每一個(gè)命令的操作。如果不是所有結(jié)果均具有所指示的保護(hù)等級(jí),則第二步驟32涉及回溯結(jié)果的依賴關(guān)系(確定哪個(gè)其它命令產(chǎn)生了產(chǎn)生該結(jié)果的命令的操作數(shù),等等)并且以直接或間接依賴于該命令的任何結(jié)果的最高保護(hù)等級(jí)來標(biāo)記每一個(gè)命令。 有效地,對(duì)命令的標(biāo)記將功能上相同的命令區(qū)分為命令的不同版本??梢圆捎霉δ苌现С置畹墓δ軉卧?0a來支持直至具有功能單元10a所支持的保護(hù)等級(jí)的版本的所有版本的命令。在具有兩個(gè)等級(jí)的實(shí)施例中,對(duì)軟錯(cuò)誤具有較高敏感度的功能單元10b僅支持具有低保護(hù)等級(jí)的版本的命令,而對(duì)軟錯(cuò)誤具有較低敏感度的功能單元10a支持兩個(gè)等級(jí)的版本的命令。 在第三步驟33中,計(jì)算機(jī)將命令分配給功能單元10a-c。這可以使用已知的VLIW命令分配算法來完成,其中具有下列區(qū)別將具有不同標(biāo)記的保護(hù)等級(jí)的命令作為不同命令來處理,并且將功能單元10a-c作為支持這些命令的不同功能單元來處理。在具有兩個(gè)保護(hù)等級(jí)的實(shí)施例中,將對(duì)軟錯(cuò)誤具有較高敏感度的功能單元10b作為僅支持標(biāo)記有低保護(hù)等級(jí)的命令來處理,而將對(duì)軟錯(cuò)誤具有較低敏感度的功能單元10a作為支持具有低和高等級(jí)保護(hù)標(biāo)記的命令來處理?;蛘撸梢允褂萌魏我阎问降膶?duì)命令分配的優(yōu)化。
隨后在指令存儲(chǔ)器16中安裝對(duì)功能單元10a-c進(jìn)行命令分配而得到的程序,圖1的處理電路從指令存儲(chǔ)器16來執(zhí)行該程序。如果提供了對(duì)錯(cuò)誤具有不同敏感度等級(jí)的寄存器,則可以使用類似的技術(shù)來分配寄存器以存儲(chǔ)命令的操作數(shù)和結(jié)果??梢詫⒅苯踊蜷g接要求具有高保護(hù)等級(jí)的結(jié)果分配給對(duì)錯(cuò)誤具有較低敏感度的寄存器,而可以將其他結(jié)果分配給任何寄存器。 在實(shí)施例中,程序員可以在高級(jí)語言描述中以程序變量屬性的形式來指示保護(hù)等級(jí)。下面是類似于Java的語言中這種程序的示例 int ff(int[]bufferl,unprotected int[]buffer2, int n, intx)
{ for(int i = 0 ;i < n ;i++) { int a = i*i ; bufferl[i] = x氺a ;
buffer2[i]=由;
} 本文中屬性"皿protected"指示了可以以針對(duì)軟錯(cuò)誤的低保護(hù)等級(jí)來計(jì)算稱作"buffer2"的數(shù)組中的值。對(duì)于其他變量(如數(shù)組"bufferl"),該屬性的缺失指示這些其他變量需要高保護(hù)等級(jí)。通過回溯依賴關(guān)系,可以看到,必須以對(duì)軟錯(cuò)誤具有低敏感度等級(jí)的乘法器功能單元來執(zhí)行用于計(jì)算a = i*i以及x*a的乘法運(yùn)算。相反,由于僅在具有屬性"unprotected"的數(shù)組buffer2中使用用于計(jì)算a*a的乘法運(yùn)算的結(jié)果,因此可以以具有任何敏感度等級(jí)的乘法器功能單元來執(zhí)行用于計(jì)算a*a的乘法運(yùn)算。
在實(shí)施例中,向編譯器提供與所選變量相關(guān)聯(lián)的保護(hù)屬性信息,以處理該類型的高級(jí)語言計(jì)算機(jī)程序。類似于傳統(tǒng)編譯器,該編譯器將高級(jí)語言計(jì)算機(jī)程序轉(zhuǎn)換為命令的程序。傳統(tǒng)編譯器還產(chǎn)生將命令結(jié)果鏈接至變量名稱的信息。另外,編譯器向?qū)Ξa(chǎn)生變量的結(jié)果的命令進(jìn)行標(biāo)記的信息提供名稱,屬性信息針對(duì)所述名稱來指示保護(hù)等級(jí)。然后如上所述,在向功能單元分配命令中使用該信息。 之前的實(shí)施例的目的是提供針對(duì)軟錯(cuò)誤的可選擇的保護(hù)等級(jí)。相對(duì)應(yīng),使用具有提供對(duì)軟錯(cuò)誤的不同敏感度等級(jí)的不同實(shí)現(xiàn)的、功能上等價(jià)的功能單元10a、b。然而,還可以與其它錯(cuò)誤相關(guān)來應(yīng)用對(duì)功能上等價(jià)的功能單元10a、b的使用。這使得可以以不依賴于軟錯(cuò)誤的錯(cuò)誤的風(fēng)險(xiǎn)增大為代價(jià),來使用具有實(shí)現(xiàn)優(yōu)點(diǎn)的功能單元10b。
圖3示出了實(shí)施例,其中使用功能上等價(jià)的流水線化的功能單元20、22,功能單元20、22包括一系列一個(gè)或者更多流水線級(jí)200a-c、220a、 b,每一個(gè)流水線級(jí)200a-c、220a、b包括執(zhí)行功能單元20、22的功能的相應(yīng)部分的邏輯電路202a-c、222a、 b以及寄存器204a-c、224a、b。將每一個(gè)流水線級(jí)200a-c、220a、 b的邏輯電路202a-c、222a、 b耦合至前一流水線級(jí)的中間寄存器204a、 b、224a的輸出,或者在第一流水線級(jí)200a、220a的情況下耦合至功能單元20、22的輸入。將最終流水線級(jí)200c、220b的寄存器204c、224b的輸出耦合至功能單元20、22的結(jié)果輸出。中間寄存器204a-c、224a、b接收時(shí)鐘信號(hào),以捕捉來自之前邏輯電路202a-c、222a、b的數(shù)據(jù)。此外,可以提供命令寄存器流水線208a、b、228a用于以連續(xù)指令周期從指令發(fā)布電路14向邏輯電路202b-c提供命令。備選地,可以由指令發(fā)布電路14來執(zhí)行該命令寄存器流水線的功能。 可以注意到,流水線化的功能單元20、22具有互不相同數(shù)量的流水線級(jí),在所示示例中是三個(gè)級(jí)和兩個(gè)級(jí)。功能單元20、22的邏輯電路202a-c、222a、 b執(zhí)行相同的整體功能,但是已經(jīng)針對(duì)不同的流水線化的功能單元20、22,以不同方式將用于執(zhí)行該功能的概念整體邏輯電路分為邏輯電路202a-c、222a、 b。這種劃分基于以下折衷增加流水線級(jí)200a-c、220a、 b的數(shù)量增加了指令周期延遲,但是容忍邏輯電路延遲中的較大波動(dòng)(例如由于電源波動(dòng)、溫度波動(dòng)或者干擾)。相反地,使用較少的流水線級(jí)200a-c、220a和b,以增加由于延遲波動(dòng)造成的錯(cuò)誤的風(fēng)險(xiǎn)為代價(jià)減少了延遲。 在處理電路中,將使用功能單元20、22的功能并且要求最高保護(hù)等級(jí)的命令僅分配給具有最多流水線級(jí)的功能單元20 (或類似單元),而可以將要求較低保護(hù)等級(jí)的類似命令分配給支持所需功能的任何功能單元20、22。從而,通過提供具有相同功能但是使用互不相同數(shù)量的流水線級(jí)來實(shí)現(xiàn)的功能單元,可以使用整體上較少的流水線級(jí)來減少執(zhí)行程序所需的時(shí)間。可以理解,這可以以具有任意數(shù)量的流水線級(jí)的功能單元來實(shí)現(xiàn),只要使用
8不同數(shù)量,而不僅僅是用圖中所示的流水線級(jí)的數(shù)量。功能單元之一甚至可以由單一流水線級(jí)構(gòu)成,使得不將其有效流水線化。此外,除了具有不同流水線級(jí)的功能單元之外的,當(dāng)然可以使用具有相同數(shù)量的級(jí)的處理電路。 在另一個(gè)實(shí)施例中,可以基于對(duì)來自其它電路的寄生干擾的敏感度來選擇不同的
功能單元,當(dāng)需要具有高保護(hù)等級(jí)的結(jié)果時(shí),使用對(duì)寄生干擾具有較低敏感度的功能單元。
對(duì)寄生干擾的敏感度等級(jí)可以依賴于與干擾源的距離、或者依賴于與功能單元相鄰的對(duì)這
種干擾的屏障的存在與否。相應(yīng)地,可以使命令的分配依賴于這種特征。 在目前所示的實(shí)施例中,已經(jīng)示出了 VLIW架構(gòu),其中將功能上等價(jià)的功能單元連
接至能夠并行發(fā)布命令的不同發(fā)射槽。這使得可以通過使用具有比多個(gè)最不敏感功能所需
的更少的開銷的并行性來減少執(zhí)行時(shí)間。 當(dāng)最不敏感功能單元具有比最敏感功能單元消耗更多功率以執(zhí)行命令的結(jié)構(gòu)時(shí),可以通過用最敏感功能單元來執(zhí)行要求較少保護(hù)的命令來減少功耗。 當(dāng)最不敏感功能單元具有比最敏感功能單元要求更多時(shí)間以執(zhí)行命令的結(jié)構(gòu)時(shí),
可以通過用最敏感功能單元來執(zhí)行要求較少保護(hù)的命令來減少執(zhí)行時(shí)間。 可以使用不同的架構(gòu)。在實(shí)施例中,將具有不同敏感度等級(jí)的、功能上等價(jià)的功能
單元耦合至公共發(fā)射槽,使得這些功能單元中一次只有一個(gè)可以接收新的命令。在其它實(shí)
施例中,可以使用除VLIW架構(gòu)之外的架構(gòu),如具有功能上等價(jià)的功能單元的標(biāo)量架構(gòu)。這
使得可以減少能耗和/或處理時(shí)間。 盡管已經(jīng)示出了實(shí)施例,其中已經(jīng)提供了對(duì)錯(cuò)誤具有不同敏感度等級(jí)的不同功能單元,但是可以注意到,備選地,可以提供對(duì)錯(cuò)誤具有可切換的敏感度等級(jí)的功能單元。從而例如,可以通過使用乘法器來切換功能單元中的流水線級(jí)的數(shù)量和/或它們的邊界的位置,該乘法器在采用來自從之前邏輯電路捕捉數(shù)據(jù)的寄存器的信號(hào)用于邏輯電路與直接采用來自之前邏輯電路的信號(hào)之間進(jìn)行選擇。作為另一個(gè)示例,可以選擇性地啟用或者禁用糾錯(cuò)電路。在這種情況中,可以使用等級(jí)指示信號(hào)來擴(kuò)展命令,以指示所需的對(duì)錯(cuò)誤的敏感度等級(jí)。 在另一個(gè)實(shí)施例中,可以由命令中的寄存器地址來控制對(duì)功能單元10a、 b的選擇,當(dāng)命令尋址至對(duì)錯(cuò)誤較不敏感的寄存器時(shí),指令發(fā)布單元選擇較不敏感的功能單元來執(zhí)行。例如,結(jié)果寄存器的地址可以用于選擇功能單元。 本領(lǐng)域技術(shù)人員在實(shí)現(xiàn)要求保護(hù)的本發(fā)明時(shí)、根據(jù)對(duì)附圖、公開以及所附權(quán)利要求的研究,可以理解并且實(shí)現(xiàn)對(duì)所公開的實(shí)施例的其它變化。在權(quán)利要求中,"包括"一詞不排除其它元件或者步驟,并且不定冠詞"一"不排除多個(gè)。單一處理器或者其它單元可以實(shí)現(xiàn)權(quán)利要求中引用的多個(gè)項(xiàng)目的功能。在互不相同的從屬權(quán)利要求中引用特定措施的事實(shí)不指示不可以使用這些措施的組合來進(jìn)行改進(jìn)??梢栽诤线m的介質(zhì)(如與其他硬件一起或者作為其他硬件的一部分來提供的光存儲(chǔ)介質(zhì)或者固態(tài)介質(zhì))上存儲(chǔ)/分發(fā)計(jì)算機(jī)程序,但是還可以以其它形式來分發(fā)該計(jì)算機(jī)程序,如經(jīng)由因特網(wǎng)或者其它有線或者無線通信系統(tǒng)。不應(yīng)當(dāng)將權(quán)利要求中的任何參考標(biāo)記理解為對(duì)范圍進(jìn)行限制。
權(quán)利要求
一種處理電路,包括功能單元(10a-c),所述功能單元(10a-c)被配置為響應(yīng)于相應(yīng)命令來執(zhí)行每一個(gè)操作,所述功能單元(10a-c)被配置為以對(duì)執(zhí)行期間導(dǎo)致錯(cuò)誤的可選擇的敏感度等級(jí)來執(zhí)行至少一個(gè)操作。
2. 根據(jù)權(quán)利要求1所述的處理電路,其中,所述功能單元中的第一功能單元和第二功能單元(lOa、 b)被配置為響應(yīng)于來自共同程序的相應(yīng)命令來執(zhí)行所述至少一個(gè)操作,所述功能單元中的第一功能單元和第二功能單元(lOa、 b)具有用于執(zhí)行操作的互不相同的電路結(jié)構(gòu),所述功能單元中的第一功能單元(10a)的電路結(jié)構(gòu)提供比所述功能單元中的第二功能單元(10b)的電路結(jié)構(gòu)更低的對(duì)導(dǎo)致錯(cuò)誤的敏感度等級(jí),敏感度等級(jí)能夠由來自程序的控制信息來選擇,所述控制信息指示所述功能單元中的哪一個(gè)(10a、b)將執(zhí)行操作。
3. 根據(jù)權(quán)利要求2所述的處理電路,其中,所述功能單元中的第二功能單元(10b)執(zhí)行操作所需的電路面積和/或操作功耗和/或時(shí)間低于所述功能單元中的第一功能單元(10a)執(zhí)行操作所需的電路面積和/或操作功耗和/或時(shí)間。
4. 根據(jù)權(quán)利要求2所述的處理電路,包括耦合至所述功能單元中的第一功能單元和第二功能單元(10a、b)的寄存器文件(12),所述功能單元中的第一功能單元和第二功能單元包括用于執(zhí)行操作的相同的核心電路(IOO),所述功能單元中的第一功能單元(10a)包括耦合在第一功能單元(10a)的核心電路(100)與所述寄存器文件(12)之間的、用于支持所述核心電路(100)的操作數(shù)和/或結(jié)果的糾錯(cuò)的糾錯(cuò)支持電路(102、104),所述功能單元中的第二功能單元(10b)的核心電路(100)的輸入和輸出直接耦合至所述寄存器文件(12)。
5. 根據(jù)權(quán)利要求2所述的處理電路,其中,所述功能單元中的第一功能單元和第二功能單元分別包括第一和第二數(shù)量的流水線級(jí)(200a-c、220a-b),第一數(shù)量大于第二數(shù)量,所述至少一個(gè)被實(shí)現(xiàn)為分別分布在所述功能單元中的第一功能單元和第二功能單元中的第一數(shù)量的流水線級(jí)(200a-c)和第二數(shù)量的流水線級(jí)(220a-b)的組合上。
6. 根據(jù)權(quán)利要求l所述的處理電路,包括存儲(chǔ)器(16),其中存儲(chǔ)有用于由所述功能單元(10a-c)執(zhí)行的程序的命令,所述程序定義各個(gè)命令或命令組的敏感度等級(jí)以及所述程序的命令之間的數(shù)據(jù)依賴關(guān)系,在所述程序中,每一個(gè)特定命令僅使用來自其它命令的操作數(shù),針對(duì)所述其它命令選擇了與針對(duì)所述特定命令所選擇的對(duì)錯(cuò)誤的相同或更低的敏感度等級(jí)。
7. 根據(jù)權(quán)利要求2所述的處理電路,包括指令發(fā)布電路(14),所述指令發(fā)布電路(14)具有耦合至所述功能單元(10a-c)的發(fā)射槽,所述指令發(fā)布電路(14)被配置為從不同的發(fā)射槽中發(fā)布針對(duì)所述功能單元中的第一功能單元和第二功能單元(10a、b)的命令。
8. 根據(jù)權(quán)利要求1所述的處理電路,包括第一和第二寄存器集合,所述第一和第二寄存器集合對(duì)軟錯(cuò)誤具有互不相同的敏感度,并且耦合至所述功能單元(10a-c)。
9. 一種生成程序的方法,所述程序包括針對(duì)處理器的命令,所述處理器包括功能單元(10a-b),所述功能單元(10a-b)均被配置為執(zhí)行用于執(zhí)行相同操作的相同類型的命令,所述功能單元(10a-b)提供對(duì)所述類型的命令的執(zhí)行期間導(dǎo)致錯(cuò)誤的可選擇的敏感度等級(jí),-接收編程的命令;_確定執(zhí)行用于執(zhí)行所述操作的相應(yīng)編程的命令所需的相應(yīng)可靠性等級(jí);_將編程的命令分配給相應(yīng)功能單元以由所分配的功能單元來執(zhí)行,僅向至多具有與已針對(duì)編程的命令而確定的可靠性等級(jí)兼容的對(duì)導(dǎo)致錯(cuò)誤的敏感度等級(jí)的功能單元分配命令。
10. 根據(jù)權(quán)利要求9所述的方法,包括-接收所選編程的命令的結(jié)果的可靠性等級(jí)的規(guī)范;_對(duì)編程的命令進(jìn)行回溯,以標(biāo)識(shí)編程的命令中產(chǎn)生所選編程的命令直接或間接依賴的其他結(jié)果的其他編程的命令;-向所述功能單元中至多具有與所選編程的命令的結(jié)果的可靠性等級(jí)兼容的對(duì)導(dǎo)致錯(cuò)誤的敏感度等級(jí)的任何一個(gè)或更多功能單元分配所選編程的命令以及編程的命令中的所述其他編程的命令;-向所述功能單元中具有對(duì)導(dǎo)致錯(cuò)誤的最低敏感度等級(jí)的一個(gè)或更多功能單元分配其余編程的命令。
11. 根據(jù)權(quán)利要求9所述的方法,包括-接收所選編程的命令的結(jié)果的可靠性等級(jí)的規(guī)范;_對(duì)編程的命令進(jìn)行回溯,以標(biāo)識(shí)編程的命令中產(chǎn)生所選命令直接或間接依賴的結(jié)果的其他編程的命令;-向所述功能單元中至多具有與編程的命令中的第一編程的命令的結(jié)果的可靠性等級(jí)兼容的對(duì)導(dǎo)致錯(cuò)誤的敏感度等級(jí)的一個(gè)或更多功能單元分配所選編程的命令以及編程的命令中的所述其他編程的命令;_向所述功能單元中的任何功能單元分配其余命令。
12. 根據(jù)權(quán)利要求9所述的方法,其中,所述處理器包括具有多個(gè)發(fā)射槽的指令發(fā)布電路,每一個(gè)發(fā)射槽耦合至相應(yīng)功能單元或者功能單元組,所述方法包括基于所述分配來選擇用于命令的發(fā)射槽。
13. 根據(jù)權(quán)利要求9所述的方法,包括使用被分配以命令的功能單元來執(zhí)行命令。
14. 根據(jù)權(quán)利要求9所述的方法,其中,所述方法的步驟是由被編程為執(zhí)行所述步驟的計(jì)算機(jī)來執(zhí)行的。
15. 根據(jù)權(quán)利要求9所述的方法,其中,針對(duì)每一個(gè)編程的指令確定兩個(gè)可靠性等級(jí)中的一個(gè)。
16. —種編譯器,被配置為執(zhí)行根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的方法。
17. —種計(jì)算機(jī)程序產(chǎn)品,包括由編譯器在編譯為由處理器執(zhí)行命令期間使用的指令的程序,所述處理器包括被配置為支持對(duì)執(zhí)行期間導(dǎo)致錯(cuò)誤的可選擇的敏感度等級(jí)的功能單元(10a、b),在所述編譯中,基于與編程的命令的可靠性等級(jí)兼容的對(duì)導(dǎo)致錯(cuò)誤的敏感度等級(jí),來選擇對(duì)錯(cuò)誤的敏感度等級(jí),并且在所述程序中,所述指令包括針對(duì)所述指令的結(jié)果的至少一部分的可靠性等級(jí)的規(guī)范。
18. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述規(guī)范包括添加至所述結(jié)果的至少一部分的聲明中的修改器。
全文摘要
本發(fā)明提供了一種處理電路,具有功能單元(10a-c),所述功能單元(10a-c)被配置為響應(yīng)于相應(yīng)命令來執(zhí)行每一個(gè)操作。所述功能單元(10a-c)被配置為以對(duì)執(zhí)行期間導(dǎo)致錯(cuò)誤的可選擇的敏感度等級(jí)來執(zhí)行至少一個(gè)操作??梢蕴峁┎煌墓δ軉卧@些功能單元被設(shè)計(jì)為在較低敏感度的情況下,以更多電路面積、功耗或者執(zhí)行時(shí)間為代價(jià),以不同敏感度等級(jí)來執(zhí)行相同操作。較不敏感的功能單元可以包括例如附加糾錯(cuò)電路、或者更多的流水線級(jí)。程序根據(jù)所需的敏感度等級(jí)將執(zhí)行操作的命令導(dǎo)向不同的功能單元??梢蕴峁└呒?jí)程序,其中以指定的可靠性等級(jí)來聲明變量。在編譯期間可以使用這些聲明來選擇如何執(zhí)行指令。
文檔編號(hào)G06F11/00GK101779192SQ200880102796
公開日2010年7月14日 申請(qǐng)日期2008年8月15日 優(yōu)先權(quán)日2007年8月17日
發(fā)明者簡·胡格布魯格 申請(qǐng)人:Nxp股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
濉溪县| 咸丰县| 沈丘县| 友谊县| 屯留县| 开阳县| 福贡县| 通榆县| 民和| 连山| 海伦市| 安国市| 瓮安县| 淄博市| 黑山县| 织金县| 明水县| 依安县| 枣庄市| 南昌市| 若羌县| 林口县| 阳曲县| 卢湾区| 乌拉特中旗| 沙洋县| 南华县| 天等县| 梁山县| 富阳市| 巴林左旗| 伊金霍洛旗| 玉门市| 资兴市| 南华县| 临洮县| 抚州市| 五大连池市| 吐鲁番市| 岳池县| 友谊县|