TWI477941B - Dynamic modulation processing device and its processing method - Google Patents
Dynamic modulation processing device and its processing method Download PDFInfo
- Publication number
- TWI477941B TWI477941B TW102102883A TW102102883A TWI477941B TW I477941 B TWI477941 B TW I477941B TW 102102883 A TW102102883 A TW 102102883A TW 102102883 A TW102102883 A TW 102102883A TW I477941 B TWI477941 B TW I477941B
- Authority
- TW
- Taiwan
- Prior art keywords
- cycles
- instruction
- result
- instructions
- modulation processing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
Description
本發明係有關一種處理技術,特別是關於一種動態調變處理裝置及其處理方法。
近年來,綠能產業的興起帶領了科技發展,太陽能電池的出現顯示日益缺乏的能源問題受到重視,但其也對既有的積體電路(IC)設計技術帶來衝擊,如何在低功率操作環境(如:太陽能電池供電、水銀電池)下維持相當的效能成為一大挑戰。相反地,人們在日常生活中對於可攜式電子產品的需求卻越來越多元與廣泛,也越來越仰賴電子產品,例如結合娛樂與商務的智慧型手機,或是生物醫療電子。為了因應多方面的需求,嵌入式系統設計變得複雜,而高速運算不僅導致大量功率消耗,產生的過熱現象也導致系統的穩定性、效能受到影響。以手機為例,越來越多的多媒體應用在手機上面,藍芽傳輸和無線傳輸等功能更是需要功率的支援元件。在電池技術還未一日千里的階段,如何在系統晶片中管理及節省功率越來越佔有重要的地位。
如公式(1),電能消耗(Energy)與頻率(f)成正比,與電壓(V)的平方成正比,與每週期執行指令數(Instruction Per cycle,IPC)成反比,與執行的指令數目(N)成正比,由此可知,為了降低電能消耗,首先要做的就是造就一個低電壓的執行環境,來降低耗電量。
如之前所說,降低工作電壓是減少功率消耗的最基本方法,但在傳統的設計中,都依賴一個穩定的電壓,因此一旦電壓因為雜訊(noise)
的因素而有所飄移,對整個電路就會有相當大的影響,輕者使得電路的速度變慢,重者則將癱瘓整個電路的運作。因此如何因應電壓源的變異,就是一個重要的課題;依據製程所標定的一般電壓(nominal voltage)而作的設計,到以低電壓、次臨界電壓、極低電壓等為目標的設計,形成一關又一關更為艱難的挑戰,因此許多的研究如動態電壓調整技術(Dynamic Voltage Scaling,簡稱DVS),適用於極低電壓的電路設計(Ultra-Low Voltage design),低電壓環境下的錯誤偵測(Timing Error Detection)...等,皆專注於低電壓、高變異環境的問題解決,並盡可能維持原有的效能。
縮小電路面積亦是另一種解決辦法,電路的面積大小關乎電容的多寡,即功率消耗的多寡,製程的進步帶來了面積大小的解決辦法,但也帶來積體電路延遲(IC delay)、散熱等問題。在2007時國際半導體技術藍圖(ITRS,International Technology Roadmap for Semiconductors)的系統單晶片藍圖(SOC Roadmap)預測2012年時半導體製程將到達22奈米以下,電晶體的密度將達320億電晶體每平方公分。
由現今的製程技術看來,仍循此趨勢縮小。依此積體化的程度看來,複雜度的增加使得IC中線延遲(wire delay)時間遠大於邏輯延遲(logic delay),低功率消耗及對抗製程與工作環境變異成為IC設計關鍵性問題。但縮小面積所帶來晶片內部散熱需求也將巨幅增大,根據研究指出,60%的製程距離縮小會造成6倍大的散熱需求(W/cm2)。同時,從電耗電容×供電電壓×2時脈頻率+供電電壓×漏電流這道公式可得知有效改善使用電耗的關鍵,無非是要針對供電電壓及時脈頻率去著手這兩方面的控制。既然低電壓的電路設計已是時勢所趨,又因著製程密度的精進,能夠提供低功率消耗的IC設計技術,必然會在往後的科技產品設計中成為不可或缺的必備功能,然而低電壓所帶來的非線性延遲成長以及高變異性仍有待克服。就嵌入式處理器發展趨勢而言,處理器效能與穩定度會隨著電壓的下降明顯受影響,需有配合新的抗變異(Variation-tolerant)技術或可變管線設計(Adaptive pipeline control)以提升或補足效能的減損。同時,正如同上述所提到製程上的精密度、多變性都將造成IC設計上不容忽視的關鍵,例如90nm的製程電晶體在頻率上有將近30%的變化性,這些不確定性帶給IC設計上
的困難度也日與遽增,因此針對時序變化(timing variation)問題及晶片上穩定度(on-chip reliability)問題的解決更是刻不容緩的任務。
因此,本發明係在針對上述之困擾,提出一種動態調變處理裝置及其處理方法,以解決習知所產生的問題。
本發明之主要目的,在於提供一種動態調變處理裝置及其處理方法,其係使用時間解碼器,靜態地將可變延遲改為可變週期,並利用修正正反器進行檢測,以減少動態調整電壓和頻率的安全界限,如此便可提高資料吞吐量、降低功耗與製程變異的影響。
為達上述目的,本發明提供一種動態調變處理裝置,其包含一時間解碼器,其內存有複數種週期數,並接收複數指令,以依據每一指令之種類選擇其對應之週期數作為預設週期數,並輸出此預設週期數與其對應之指令。時間解碼器連接一多週期控制器,其係接收指令及預設週期數,多週期控制器以預設週期數或單一週期數運算出指令之結果(result),並將其輸出之。多週期控制器連接一修正正反器,其係接收上述結果、一第一時脈訊號與相對其延遲半個週期之一第二時脈訊號。修正正反器並以第一時脈訊號與第二時脈訊號,取樣同一結果,並在被取樣之結果相異時,修正此結果。
本發明亦提供一種動態調變處理方法,首先,接收複數指令,以依據每一指令之種類選擇其對應之週期數作為預設週期數,並輸出此預設週期數與其對應之指令。接著,利用多週期控制器接收指令及預設週期數,並依據指令之運算數值判斷是否執行快速通道:若是,則以單一週期數運算上述指令,以得到一第一答案;若否,則以預設週期數運算指令,以得到一第二答案。再來,將第一答案或第二答案作為運算上述指令之結果(result),並將其輸出之。最後,接收此結果、一第一時脈訊號與相對其延遲半個週期之一第二時脈訊號,並以第一時脈訊號與第二時脈訊號,取樣同一結果,並在被取樣之結果相異時,修正此結果。
茲為使 貴審查委員對本發明之結構特徵及所達成之功效更有進一步之瞭解與認識,謹佐以較佳之實施例圖及配合詳細之說明,說
明如後:
10‧‧‧瑞澤正反器
12‧‧‧時間解碼器
14‧‧‧多週期控制器
16‧‧‧修正正反器
18‧‧‧邏輯左移0-7
20‧‧‧快速算術單元
第1圖為先前技術之瑞澤(Razor)正反器示意圖。
第2圖為第1圖之瑞澤正反器之對應波形圖。
第3圖為本發明之裝置方塊示意圖。
第4圖為本發明之方法流程圖。
第5圖為本發明之GPP ULV-RISC運算之訊號波形圖。
第6圖為本發明之GPP ULV-RISC之開發流程圖。
第7圖為本發明之修正正反器之架構示意圖。
第8圖為本發明之重建可變延遲路徑之執行階段示意圖。
本發明適用於動態調整電壓處理器之前鋒與後衛時間保護機制,可減少在最差情況下所設計的安全界限,可靠地獲得更佳的功耗和性能。首先,利用時間解碼器,靜態地將可變的延遲改為可變的週期,以修整大多數資料路徑過度的安全界限。其中包括架構階級的時序劃分,低負擔的可變週期延遲控制,和吞吐量的實驗。由於低電壓會加速惡化延遲,在此情況下的效能不佳,突顯了可變週期延遲的效果。其次,利用一檢測時間錯誤的後衛,可進一步減少動態調整電壓和頻率的安全界限,並進一步容忍更低的電壓調整。因此,與傳統的動態調整電壓頻率設計相比,此方法不但擁有原本的運算能力,且有較低的功耗與較高資料吞吐量,同時減少因低電壓加速惡化關鍵路徑運算時間大幅增長之效能減低問題,亦可有效降低製程變異影響。
在介紹本發明之架構前,先介紹瑞澤(Razor)正反器,請參閱第1圖與第2圖。Razor的主要想法是藉由觀察處理器在某工作電壓運算的錯誤率,再透過調整工作電壓,依處理器的狀況調至能量最好的電壓,並及時修正運算發生的錯誤。Razor正反器(FF,flip-flop)10是Razor對於偵測運算錯誤所提出的一重要元件,它會對管線階級(pipeline stage)的值做兩次偵測,透過兩個獨立的時脈(clock)驅動,分別是快速時脈以及延遲時脈,而這
個延遲時脈則是Razor技術用來運算正確的結果的驅動訊號,當此延遲時脈訊號拉起時,Razor FF10會比較先前的運算結果,假如不同則代表快速時脈驅動時的運算結果是錯誤的,此時Razor FF10即會發出一錯誤訊號,並且啟動回復正確資料的機制。
本發明以『管線調整技術』為基礎,針對"指令與資料型態"及使用頻率分析管線每次的執行時間,並利用合成技術將執行時間變的可控制。加上『動態調整管線延遲技術』後,執行時間預測電路將可預測及控制管線每次的執行時間,根據其指令與資料型態分為複數不同週期,使得處理器時脈將不會被侷限於最差的電路延遲(critical path),因此整體的效能將會有所提升。當環境產生變異相較於現有的錯誤執行(timing error)的偵測技術(ex.Razor),預測執行時間並不能完全保證其正確性,可能潛在錯誤執行(timing error)的問題,因此本發明亦欲建構超低成本修正正反器,來確保執行的正確性。此外,此除錯原件不僅能夠找出潛在錯誤,還能讓預測電路大膽地預測執行時間,將所耗的週期數降到最低。
接著請參閱第3圖。本發明包含一時間解碼器12,其內存有複數種週期數,並接收複數指令,以依據每一指令之種類選擇其對應之週期數作為預設週期數,並輸出預設週期數與其對應之指令。由於『管線調整技術』的應用,每道指令進入執行階段所耗費的執行週期數有所不同,例如:32位元(bit)乘法將耗費3週期數。時間解碼器12連接一多週期控制器14,其更包含一有限狀態機(FSM),此係接收上述指令及預設週期數,並以預設週期數或單一週期數運算出指令之結果(result),並將其輸出之。為了更積極的提高效能,本發明的目標是調高頻率以縮短了週期時間,使之可以最大化吞吐量和增加容忍的能力。但可能會導致某些指令的執行時間超過週期時間。多週期控制器14之有限狀態機連接一修正正反器16,其係接收上述結果,並接收一第一時脈訊號與相對其延遲半個週期之一第二時脈訊號,修正正反器16以第一時脈訊號與第二時脈訊號,取樣同一結果,並在被取樣之結果相異時,則延遲(stall)一個週期讓修正正反器16中的回復(recovery)機制將正確答案算出,以修正此結果並繼續執行。另外,時間解碼器12更包含複數暫存器,以儲存週期數,並可供外部修改。
若將整個運作過程以流程表示,則如第4圖所示。請同時參閱第3圖與第4圖。首先,如步驟S10所示,時間解碼器12接收複數指令,以依據每一指令之種類選擇其對應之週期數作為預設週期數,並輸出預設週期數與其對應之指令。接著,如步驟S12所示,多週期控制器14接收上述指令及預設週期數,並依據指令之運算數值判斷是否執行快速通道,若是,則如步驟S14所示,以單一週期數運算指令,以得到一第一答案;若否,則如步驟S16所示,以預設週期數運算指令,以得到一第二答案。步驟S14或S16結束後,進行步驟S18,其係利用多週期控制器14將第一答案或第二答案作為運算指令之結果(result),並將其輸出之。最後,如步驟S20所示,修正正反器16接收上述結果、第一時脈訊號與相對其延遲半個週期之第二時脈訊號,並以第一時脈訊號與第二時脈訊號,取樣同一結果,並在被取樣之結果相異時,修正此結果。
第5圖顯示了GPP ULV-RISC運算中的實際情況。(1)顯示了正常執行狀況下,在第一時脈訊號觸發時,Razor管線(在圖中的D)傳遞給下一個階段(Q)。(2)接著下一道指令預計執行2個週期,因此延遲(stall)訊號拉起。此時,Razor管線中沒有結果,Q的值為NOP。(3)此處顯示當第一時脈訊號和第二時脈訊號分別觸發時,Razor管線比對結果不相同,因此時序錯誤(Timing error)訊號拉起,使得Q的結果變成無效。而recovery機制將會拉起stall訊號,借用另一個週期完成執行。由此可知,多週期機制與時間預測錯誤都會影響其吞吐量。因此,如何在週期時間與週期數中取得一個平衡是非常值得探討的議題。
指令的延遲會因為適應電壓、溫度或其他環境因素的變化而變得較長或較短。頻率調節是一種正在流行的主題,有關恢復因變異容忍而失去的性能。因為容忍程度的限制,在電路層級就已經確定,故在效能和容忍變異能力間做取捨時,會較無彈性。不過,對於容忍變異,有一種完全不同於傳統的想法一運用多週期的設計。對於短週期時間和可配置的執行週期來說,多週期的執行時間設計可以非常接近延遲。表一根據指令類型和在上面中講到的延遲分析多週期分類實施階段。從一些微處理器效能指標聯盟(EEMBC)基準和媒體基準的統計資料,表一的平均使用率
顯示了不同延遲指令的組成,也提供了改進多週期的方式。
在表一中有兩大分類,分別是基準線(baseline)和粒狀過程時序推測(course-grain timing speculation,CTS)多週期,基於資料的路徑,並沒有CTS的做法。baseline僅為一初步分類的階段,讓所有指令逐步執行,例如,一個MOV指令可以沒有行動的穿過偏移單元(shifter unit),到達邏輯單元(logic unit)。另一方面,CTS多週期的資料路徑區分得更加詳細,如算術指令有5個子類型。甚至,還會去參考將要運算的數值。因此,路徑延遲的長度可能會更加的不同,以及更需要多週期。以BaseLine分類對象,當頻率達到112M赫茲(Hz)時。通過合成的結果,除了乘法之外,每種類型的指令延遲時間可以限制在9奈秒之內。因此,將近96%的指令,可像是流水操作技術(pipelining)一般,只需要花費1個週期的時間,就可執行完成。而乘法的指令則需要額外的一個週期以防止系統的錯誤。為了更有效率,將對象的頻率提高到166MHz,此時一個週期的時間和大多數1週期類型的指令的延遲時間將會越來越接近。但在調整後,像延遲時間較長的類型:載儲/多載儲(LS/LSM)和算術指令可能無法完成運算。然後,執行週期延長為2個週期。這可能會導致平均33%的性能損失(取決於應用程式),但可以提高分類指令的頻率。
三個分類CTS多週期的標準,差、中、好,定義方式為相應的操作環境(差:0.45伏特,125℃;中:0.5伏特,25℃;好:0.55伏特,0℃)。在較差的環境下,初始多週期(initial multi-cycle)的保守分類有很小的變化,且在無任何頻率改變的情況下,CTS改善了13%,如有更好的環境,在平常與最佳的環境下可節省另外18%的循環次數。此外,幾乎所有類型的指令執行週期頻率為166MHz。當發現現在環境的變化,這些CTS多週期的設計可以重新配置週期的時間,以容忍惡化的環境或是在最佳環境下以更高速運作。
標記時序推測(Branded timing speculation,BTS),包含多週期機
制以及時序錯誤偵測(timing error detector),試圖將頻率增加到250MHz,然後多週期分類重新安排了4ns的週期時間。為了獲得更多的效能,執行週期可能並不總是像CTS一樣保守,在發生錯誤的事件中,回復資料會暫停管線(pipeline)一個週期,然後此指令有足夠的時間執行完未完成的運算。舉例來說,指令邏輯左移(LSL)穿過算術單元(Arithmetic unit)的最長路徑需要5.15ns。在250MHz時,如果使用CTS,其執行週期為2個週期,但使用BTS只需要1個週期。因為不是每個此類型的指令都需要5.15ns來完成執行。如果有80%此類型的指令使用少於4ns的時間能得到結果,另外20%使用額外的開銷執行。因此,當執行的頻率相同時,BTS平均使用1.2倍的週期時間執行指令,而CTS使用了2倍週期時間。
表二顯示了CTS和BTS的分類,在不同的目標執行頻率。從CTS到BTS,在這些分類中,增加的頻率都造成了一些過度(overhead)。在差的環境變異下,平均有5%的overhead,但提高的BTS可以恢復它。因為釋放再送(FTS)的保護了超過時間指令執行所造成的損失,有一些BTS的指令類型保持CTS在中度環境下所制定的週期時間。同時,在好的狀態下稍微超過4ns的指令,為了節省更多的能源,安全的界線可能會被關閉。總而言之,當CTS轉換成BTS時,分類略有不同,但因為頻率升高到250MHz,效能已顯著改善。
利用本發明所提出之流程將提出的方法,進行高階至低階之開發與實做至提出的低成本處理器中。這個開發流程的重點在於不只能讓可變執行長度的設計更有彈性且更精確,也對於製程變異有更高的容忍度,使整個設計的更為耐用。相對於傳統的設計流程,本發明之合成流程加入了兩個新的處理程序,包含(1)在不同環境(例如 差/中/好)間,靜態最佳化不同資料路徑。(2)對精細時序侵佔(fine-grained timing stealing)必要的最小延遲限制(min delay constrain)。為了讓處理器在大多數的時候都能有較好的表現,合成流程會先做事先分析,接著在標準環境下最佳化幾條我們較著重的資料路徑,然後將已經合成好的電路在不同的環境下各別做評估。在最好及最差環境下,難免出現一些異想不到的較長路徑,而這個問題可
能是必定存在,或者是不能用有限次數重新合成去解決。有時候,這表示在不同環境下對不同資料路徑做最佳化會互相影響的情況,最簡單的解決方法就是讓非常少用到的指令多執行一個週期。
請參閱第6圖,整個流程分成數部分,透過觀察處理器的運算以及所運算的資料來評估各個處理器的功能單元的使用率。接著,初步的合成結果提供了處理器電路上的特性,配合初步使用率歸納出電路延遲的長度與指令之間的關係。運算值亦是另一影響電路延遲長度的原因。由上述兩項初步的分析,開始對處理器架構進行調整,設計一個配合指令層級且可被預測電路執行時間的管線階級,並試著以合成技術最佳化此階段的電路,使其確切符合預測的執行時間。藉由此流程,反覆的修正電路設計及相對應之預測時間,直到符合系統提出之設計規格。接著建立指令層級的模擬器來模擬其週期(cycle)執行狀況,配合合成所得的分析(時間、面積、功率)取得初步的效能評估。透過來回的修訂達到第一階段的電路設計(gate-level)後,進入更後段(APR)的電路設計與效能評估,最終得到目標設計之處理器。以下是各階段之詳細說明。
時間解碼器內存有週期資訊,週期資訊即是要執行多少個週期的資訊,時間解碼器可經由晶片外部對時間解碼器作設定,並非寫死的暫存器,時間解碼器裡有3種週期資訊分別為當精簡指令集(RISC)處於3種執行模式,RISC隨著感測器的偵測會變更執行模式以採用適當的週期資訊,在解碼階段時根據指令解出需要執行階級的哪些單元,並且依據指令所需執行時間長短以及執行模式而給定不同週期數執行。
多週期控制器控制包含一個有限狀態機,決定是否要執行多個週期並延遲(stall)其他管路(pipe),以防止先前的階段(stage)資料被覆蓋。有限狀態機包含兩個階段的執行時間預測,一個是以指令型態預設的執行週期,另一個則是透過判斷運算數值所決定。第二階段的執行時間預測主要是為了
細瑣運算(Trivial operation)的偵測以及決定是否使用快速通道。Trivial operation是由運算數和相關的指令形態所組成,例如:A*0=0、A+0=A。由於其不須透過運算及可得到結果之特性,一旦偵測到,預測的執行時間將被設定成1個週期。但在第二階段執行時間預測電路必須要快,以確保及時控制,因此,只實做特定的Trivial operation。
請參閱第7圖,修正正反器(RFF)16取代了原本在可變週期執行階段(variable-cycle execution stage)之後的管路(pipe),如同Razor所設計,RFF16內有一個陰影閂鎖(shadow latch),其使用另一延遲半個周期的時脈,用以修正錯誤的結果,並使用一個比較器判斷錯誤是否發生。在Razor的設計中,每級加上RFF 16會耗費很多面積,判斷錯誤結果時也會由花費不少時間。由於低成本的考量,且必須快速的得到比對結果,本發明只將運算的結果以RFF 16取代原先的正反器(FF)設計。此外,Razor的錯誤檢測機制是檢查每1位元的結果是否有誤,使用或閘(OR gate)處理所有錯誤的信號,這可能會耗費許多時間。而本作品提出『部分錯誤比較器』,可將數個位元一起比對,並優先的檢查關鍵的比較器,較能快速有效地發現錯誤。
針對執行階段(EXE stage),本發明提出了一管線重整技術,相對於針對底層電路最佳化的傳統做法,我們的作法使得我們可以由比較高的層級去看一個可調適性的處理器。設計者可以藉由觀察程式行為和指出那些在電路層級(circuit-level)看不到的潛在的短路徑,去組織exe stage的資料路徑。此外,最佳化的結果會被分類到週期資訊及無空隙的嵌入到指令解碼器裡做時間的預測。
首先,這裡對於常用且執行時間較短的資料路徑,提出下列幾種組織方式,多週期控制器可以下列方式在單一週期內算出指令之結果:1.分開常用的運算單元:算術邏輯單元(ALU)是最頻繁被使用的運算單元,大部分指令都需要經過ALU去運算,但是在指令集(採用ARM7TDMI)的設計裡,為了節省指令數,讓偏移(shift)和ALU能夠在一道指令內作完,因此多數指令裡ALU的執行也伴隨著shift運算,因此運算域
(Operand)到ALU之前必須先經過shift運算;因此發現當目的只是單純的ALU運算時,先經過偏移單元(Shifter Unit)運算變成了沒有必要延遲,因此依據指令分析偏移器(Shifter)的偏移種類(shift kind)以及偏移量(shift amount),減少經過Shifter Unit的運算而直接進入ALU運算,因此將Shifter +ALU拆為算術單元(Arithmetic Unit)(operand不需作Shift)、邏輯單元(Logic Unit)(operand不需作Shift)、以及Shifter +ALU等3條不同執行時間的路徑,當不需作Shift的指令即可直徑進入AU或LU作運算,以較短的時間完成運算。除了資料處理(Data Processing)指令外,幾乎所有的Load/Store指令也都由執行Shifter +ALU變更為執行AU,因此縮短週期時間的效果更好。
2.簡化常用的運算單元:第8圖呈現用這種方法實作的兩個例子。一個是提供一個較簡易的shifter(只有邏輯左移的功能,且左移量不超過七個位元,”LSL 0~7”),去取代50%會跑在的原本shifter上的指令,讓這些指令執行時間也比原本的shifter快了1X倍。加了LSL 1~7會讓原本的shifter運算元花費多一點點的時間,因為必須加上一個多工器(mux)來選擇資料路徑,但這個只會造成輕微的影響。另一個例子是提供一個簡化的快速算術單元(“Fast AU”,僅處理不會更改旗標的加減法),讓40%指令可以執行非常短的時間(部分運算及load/store指令)。
3.多工器和資料路徑的組織:一個恰當的資料路徑規劃可以避免連續且過長的資料傳遞,這也讓執行時間得以較短。我們的策略是根據不同運算間不同的特性,去平行化它們的運算。這讓我們可以利用前面提到的合成方法,清楚地最佳化一些較短的資料路徑,並且平行不同的運算單元也可以使執行時間有較平均的表現。另外,使用具有優先權的多工器也可以縮短常用運算的時間。
4.部分結果(Partial result):執行階段有效的輸出是根據所執行的指令跟資料的種類來判斷,而這代表不用等到所有訊號都穩定就可取得有效的結果。舉個例子,乘法器(““MAC 32x32+64”)有最長的執行時間。然而,當執行的指令是8x8(25%的MAC指令),只有16最低位元(LSB)是有效的輸出結果,而8x16(27%)的有效輸出結果,只需要24 LSB。再舉另一個例子,當執行的指令不須改變狀態旗標(CPSR暫存器)時,則”NZCV”
的結果是無效的。而”MAC”指令藉由只取所須部分的輸出結果,縮短執行時間30~50%,而”Full AU”指令也藉由這個方法,縮短了30%的執行時間。
5.細瑣結果(Trivial result):有一些指令的不必要運算可以很簡單的根據運算元去推論出來,像是加法中的加0,任何數加0都會等於原來的值。根據簡單的探測規則(a+0,a-0,a*1,和a*0),簡易運算的結果不經過運算單元,以非常的短的執行時間直接輸出結果給下一級。
6.不需指派的指令:因”condition test fail”而被捨棄的指令也算是短指令。運算後的結果不需要指派(commit),而執行時間的長短取決於condition-test的運算時間。
第8圖與表三呈現的是根據指令層級去重新建構的執行階段,而根據這張圖可以發現一些常用的資料路徑很有機會有極短的執行時間。透過提出的『管線重整技術』,對於執行階段的電路做了一些修改,增加了『邏輯左移0-7(LSL0-7)18』、『快速算術單元(Fast AU)20』等運算單元,目的是提供特定指令有一快速通道可以通過,也可提高預測指令執行時間的準確度,增進效能。
綜上所述,本發明建立可變週期之前鋒機制與檢測時間錯誤之後衛機制,來增加處理器之資料吞吐量與降低功耗。
以上所述者,僅為本發明一較佳實施例而已,並非用來限定本發明實施之範圍,故舉凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
12‧‧‧時間解碼器
14‧‧‧多週期控制器
16‧‧‧修正正反器
Claims (16)
- 一種動態調變處理裝置,包含:一時間解碼器,其內存有複數種週期數,並接收複數指令,以依據每一該指令之種類選擇其對應之該週期數作為預設週期數,並輸出該預設週期數與其對應之該指令;一多週期控制器,連接該時間解碼器,並接收該些指令及該預設週期數,該多週期控制器以該預設週期數或單一週期數運算出該些指令之結果(result),並將其輸出之;以及一修正正反器,連接該多週期控制器,以接收該結果,並接收一第一時脈訊號與相對其延遲半個週期之一第二時脈訊號,該修正正反器以該第一時脈訊號與該第二時脈訊號,取樣同一該結果,並在被取樣之該結果相異時,修正該結果。
- 如請求項1所述之動態調變處理裝置,其中該多週期控制器更包含一有限狀態機(FSM),其係連接該時間解碼器與該修正正反器,該有限狀態機接收該些指令及該預設週期數,且以該預設週期數或該單一週期數運算出該些指令之該結果,並將其輸出之。
- 如請求項1所述之動態調變處理裝置,其中該時間解碼器更包含複數暫存器,以儲存該些週期數,並可供外部修改。
- 如請求項1所述之動態調變處理裝置,其中該多週期控制器係分開利用複數運算單元,並以該單一週期數運算出該結果。
- 如請求項4所述之動態調變處理裝置,其中該運算單元為算術邏輯單元(ALU)。
- 如請求項1所述之動態調變處理裝置,其中該多週期控制器簡化複數運算單元,並以該單一週期數運算出該結果。
- 如請求項6所述之動態調變處理裝置,其中該運算單元為偏移器(shifter)或算術單元(AU,arithmetic unit)。
- 如請求項1所述之動態調變處理裝置,其中該多週期控制器平行化不同運算單元之運算,且採用多工器,並以該單一週期數運算出該結果。
- 如請求項1所述之動態調變處理裝置,其中該多週期控制器係擷取該指令之部分運算結果、去除該指令中不必要的運算或去除不需指派的該指令,並以該單一週期數運算出該結果。
- 一種動態調變處理方法,其係包含下列步驟:接收複數指令,以依據每一該指令之種類選擇其對應之週期數作為預設週期數,並輸出該預設週期數與其對應之該指令;利用多週期控制器接收該些指令及該預設週期數,並依據該指令之運算數值判斷是否執行快速通道:若是,則以單一週期數運算該些指令,以得到一第一答案;以及若否,則以該預設週期數運算該些指令,以得到一第二答案;將該第一答案或該第二答案作為運算該些指令之結果(result),並將其輸出之;以及接收該結果、一第一時脈訊號與相對其延遲半個週期之一第二時脈訊號,並以該第一時脈訊號與該第二時脈訊號,取樣同一該結果,並在被取樣之該結果相異時,修正該結果。
- 如請求項10所述之動態調變處理方法,其中在以單一週期數運算該些指令,以得到該第一答案之步驟中,係分開利用複數運算單元,並以該單一週期數運算出該第一答案。
- 如請求項11所述之動態調變處理方法,其中該運算單元為算術邏輯單元(ALU)。
- 如請求項10所述之動態調變處理方法,其中在以單一週期數運算該些指令,以得到該第一答案之步驟中,係簡化複數運算單元,並以該單一週期數運算出該第一答案。
- 如請求項13所述之動態調變處理方法,其中該運算單元為偏移器(shifter)或算術單元(AU,arithmetic unit)。
- 如請求項10所述之動態調變處理方法,其中在以單一週期數運算該些指令,以得到該第一答案之步驟中,係平行化不同運算單元之運算,且採用多工器,並以該單一週期數運算出該第一答案。
- 如請求項10所述之動態調變處理方法,其中在以單一週期數運算該些指令,以得到該第一答案之步驟中,係擷取該指令之部分運算結果、去除該指令中不必要的運算或去除不需指派的該指令,並以該單一週期數運算出該第一答案。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102102883A TWI477941B (zh) | 2013-01-25 | 2013-01-25 | Dynamic modulation processing device and its processing method |
US13/960,317 US20140215284A1 (en) | 2013-01-25 | 2013-08-06 | Dynamic scaling processor device and processing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102102883A TWI477941B (zh) | 2013-01-25 | 2013-01-25 | Dynamic modulation processing device and its processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201430513A TW201430513A (zh) | 2014-08-01 |
TWI477941B true TWI477941B (zh) | 2015-03-21 |
Family
ID=51224400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102102883A TWI477941B (zh) | 2013-01-25 | 2013-01-25 | Dynamic modulation processing device and its processing method |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140215284A1 (zh) |
TW (1) | TWI477941B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11892506B2 (en) | 2020-11-30 | 2024-02-06 | Mediatek Singapore Pte. Ltd. | Method and circuit for at-speed testing of multicycle path circuits |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510730A (zh) * | 2002-11-14 | 2009-08-19 | 艾科嘉公司 | 开关电源转换器和用于控制多个开关电源转换器的系统 |
TWM374091U (en) * | 2009-09-18 | 2010-02-11 | Che-Wei Hsu | Power supply apparatus |
TW201013388A (en) * | 2008-07-11 | 2010-04-01 | Em Microelectronic Marin Sa | Power supply unit having a voltage converter |
TW201023520A (en) * | 2008-12-10 | 2010-06-16 | Grenergy Opto Inc | High-performance pulse-width modulation controller |
TW201212510A (en) * | 2008-02-01 | 2012-03-16 | Int Rectifier Corp | Power supply circuit and dynamic switch voltage control |
TW201236339A (en) * | 2011-02-18 | 2012-09-01 | Intersil Inc | System and method for improving regulation accuracy of switch mode regulator during DCM |
-
2013
- 2013-01-25 TW TW102102883A patent/TWI477941B/zh not_active IP Right Cessation
- 2013-08-06 US US13/960,317 patent/US20140215284A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510730A (zh) * | 2002-11-14 | 2009-08-19 | 艾科嘉公司 | 开关电源转换器和用于控制多个开关电源转换器的系统 |
TW201212510A (en) * | 2008-02-01 | 2012-03-16 | Int Rectifier Corp | Power supply circuit and dynamic switch voltage control |
TW201013388A (en) * | 2008-07-11 | 2010-04-01 | Em Microelectronic Marin Sa | Power supply unit having a voltage converter |
TW201023520A (en) * | 2008-12-10 | 2010-06-16 | Grenergy Opto Inc | High-performance pulse-width modulation controller |
TWM374091U (en) * | 2009-09-18 | 2010-02-11 | Che-Wei Hsu | Power supply apparatus |
TW201236339A (en) * | 2011-02-18 | 2012-09-01 | Intersil Inc | System and method for improving regulation accuracy of switch mode regulator during DCM |
Also Published As
Publication number | Publication date |
---|---|
TW201430513A (zh) | 2014-08-01 |
US20140215284A1 (en) | 2014-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kahng et al. | Slack redistribution for graceful degradation under voltage overscaling | |
Oboril et al. | Extratime: Modeling and analysis of wearout due to transistor aging at microarchitecture-level | |
Austin et al. | Opportunities and challenges for better than worst-case design | |
Constantin et al. | Exploiting dynamic timing margins in microprocessors for frequency-over-scaling with instruction-based clock adjustment | |
WO2015171496A1 (en) | A timing violation resilient asynchronous template | |
Gluzer et al. | Probability-driven multibit flip-flop integration with clock gating | |
Chen et al. | Variable-latency adder (VL-adder) new arithmetic circuit design practice to overcome NBTI | |
Koneru et al. | Fine-grained aging prediction based on the monitoring of run-time stress using DfT infrastructure | |
Kumar et al. | Machine learning-based microarchitecture-level power modeling of CPUs | |
TWI477941B (zh) | Dynamic modulation processing device and its processing method | |
Bal et al. | Revamping timing error resilience to tackle choke points at NTC systems | |
US9329622B2 (en) | Cycle stealing when a process or environmental variation is detected and a processing instruction is using a critical path | |
Oboril et al. | MTTF-balanced pipeline design | |
CN106547514B (zh) | 一种基于时钟拉伸技术的高能效二进制加法器 | |
Ravi et al. | Recycling data slack in out-of-order cores | |
Chatzitsompanis et al. | On the facilitation of voltage over-scaling and minimization of timing errors in floating-point multipliers | |
Kumar et al. | Learning-based architecture-level power modeling of CPUs | |
Ghosh et al. | Tolerance to small delay defects by adaptive clock stretching | |
Ananda Kumar | Learning-based architecture-level power modeling of CPUs | |
Nanya | Asynchronous VLSI system design | |
Varghese et al. | Clock-Gating: A Novel Method for Reducing Dynamic Power Dissipation on FPGAS | |
Andorno | Design of the frontend for LEN5, a RISC-V Out-of-Order processor | |
Albeck et al. | Energy efficient computing by multi-mode addition | |
Löfgren et al. | Bit-serial CORDIC: Architecture and implementation improvements | |
Efthymiou | Asynchronous techniques for power-adaptive processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |