TWI307042B - Idling a processor pipeline - Google Patents
Idling a processor pipeline Download PDFInfo
- Publication number
- TWI307042B TWI307042B TW094128330A TW94128330A TWI307042B TW I307042 B TWI307042 B TW I307042B TW 094128330 A TW094128330 A TW 094128330A TW 94128330 A TW94128330 A TW 94128330A TW I307042 B TWI307042 B TW I307042B
- Authority
- TW
- Taiwan
- Prior art keywords
- idle
- circuit
- signal
- processor
- input
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 7
- 230000001902 propagating effect Effects 0.000 claims description 5
- 230000001629 suppression Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims 4
- 230000003213 activating effect Effects 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000005055 memory storage Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 230000009471 action Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000004020 conductor Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 206010029412 Nightmare Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- 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
-
- 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/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
1307042 九、發明說明: 【發明所屬之技術領域】 本發明係有,-種閒置處理ϋ的线和方法,制是有關於一種簡 化處理器之閒置處理電路以達到處理器閒置的一致性。 【先前技術】 關於電子裝置,特別是使用處理器的手持電池運作之裝置其在研發 設計階段,賴㈣耗問題即是很重要的考量要素。由於處理器之時脈電 癱路運作通常會消耗大量的電池電力,因此這一類的裝置在長時間不工作 時’通常會料脈停止,畴省賴。_,在停止時脈電路之前, 電源管理邏料元(,e「management _)通料要錢職進入_ 種不再處理任何動作之閒置狀態;當處理器閒置時,電源管理邏輯單元才 能安全地停止時脈電路。 關閉時脈電路不僅,省電池電力,且能讓無纽地從電子裝置上 φ驅散。因為處理器通常會執行一些非關鍵的指令’例如,,自我迴圈(|00p t0 itself)”的指令’因此亟待設計—種具#處理關置電賴裝置用以避免 處理器執行些不需要的指令,以減少熱能產生。在某些情況,削減這些 不需要的指令執行足以減少熱能的產生,因而毋需使用風扇,讓整個裝置 的大小和成本得以減少。或者,如果使用適當的散熱裝置,則手持裝置就 不會過熱或因太燙而無法觸碰。再者,當熱能得到有效地控制時,另一種 好處就是可以使用較便宜的封裝。 第一圖顯示傳統電子裝置之處理器系統(pr〇cessing system)1〇 ,例如 1307042 . 使用電池運作的手持式裝置。該處理器系統10包括電源管理邏輯單元 (powermanagementlogic)12、處理器(processor)14、記憶體(memory)16 和輸入/輪出裝置(input/output device)18,這些裝置或單元藉由内部匯流 排(internal bus)20相互連接。處理器(pr〇cessor)14包含一 b夺脈電路22, 用以驅勒電子電路;記憶體16可以由記憶控制器(memory controller)和/ 或其它硬體或軟體的元件組成;輸入/輸出裝置18可包含鍵盤、數值輔助 鍵盤、顯示螢幕等。由於熟悉該技術的人都了解記憶體16和輸入/輸出裝 9 置18的操作和功用,因此在本說明書中將不會作進一步的描述。 電源管理邏輯單元12可包含硬體和/或軟體單元,用以判定特定電路 的狀態’以決定什麼時候才是節約電源的理想時間。例如,電源管理邏輯 單元12監控處理器於長時間内沒有執行重要的指令、監控使用者長時間 不動作或監控其它特定的電路狀態。在這些情況下,電源管理邏輯單元12 可以要求處理器14進入間置狀態。當處理器14進入閒置後,電源管理邏 輯單元12就會停止處理器之時脈電路22 ;之後,當喚醒事件(wake-up W . event)發生時,電源管理邏輯單元12即會重新起動時脈電路22。 第二圖顯示傳統處理器14之實施作法,該處理器14包含具有五個層 級電路的處理器管線電路(processor pipe|jne)24,每一層級電路個別進行 資料的處理,且在有需要時與記憶體16和/或輸入/輸出裝置18互動。管 線電路24的層級電路包括讀取(fetch)級電路26、解碼(decode)級電路28、 執行(execute)級電路30、記憶讀取(memory access)級電路32和寫回 (w「ite-back)級電路30雖然處理器通常具有五個層級電路來表示五種主 1307042 要的處理器操作,然而這些層級電路亦可以被切割或合併成其它的架構; 其它常見的處理器管蟓電路中可有較多或較少的層級電路》 第二圖同時顯示了處理器之時脈電路(clock)22,其提供時脈信號並 饋至管線電路(pipeline)24的各層級電路中》時脈電路22也與電源管理邏 輯單元(power management丨ogic)12相連接,以接收起動或抑止的信號。 處理器14還包含一及閘(AND gate)36,其接收來自各個層級電路的閒置 (idle)信號’並輸出閒置回應信號⑽e_acknowledge)回到電源管理邏輯單 ® 元12。在讀取級電路26中包含一個及閘(ANDgate)38,其中的一個輸入 端接收來自電源管理邏輯單元12的閒置要求信號idle一reqUest,而另一輸 入端則接收來自内部導線40之一般指令要求(norma| jnstructj〇n request) 〇 值得注意的是,每-層級電路都包含有各自獨立關置健電路(未顯 不出),,用來判斷各層級電路何時屬於閒置。例如,當沒有指令需要讀取 • 時,讀取級電路26的間置細電路即會偵測出一閒置狀態,並傳送出一 高準位的閒置(idle)信號到及閘36之一輸入端。同樣地,在解碼級電路 28執行級電路30、記憶讀取級電路32和寫回級電路34的間置細電 路會侧出各自的職狀態,然後_賴置錢傳酬及閘%。當收到 所有層級電路的閒置信號時,及閘36會傳出一邏輯,的間置回應信號 idle—ackn_edge ; #電源管理邏輯單元12收到此閒置回應信號後,它 就會傳出—抑止信號把時脈電路22關閉。 1307042 在處理器14的-般操作時期,電源管理邏輯單元12會維持閒置要求 信㈣一request使其為不動作(邏輯〇);及閑22的第一輸入端會反轉該 不動作_S_t_e_「equest,__,且帛二輸人端會從導 線40收到-般指令要求。當閒置要求信號不動作時,及閘%會沿著導線 42輸出-般指令要求’從記憶體16讀取指令。針對此指令讀取要求,記 憶體16讀回指令數值,例如軟體程式,沿著導線44傳回_取級電路 26。此讀取數值被傳送至解碼級電路28,經解碼後,再將已解碼的指令 傳到執行級f路30進行齡雜行。_,記_麵級祕32和寫回 級電路34於需要時,從記_ 16讀取資料或者寫人資料至記紐π。 如上所述,為了在不動作的期間得以節省電力,電源管理邏輯單元12 於各層級電路不動作或閒置狀態時會停止時脈電路22。為了閒置處理器, 電源&理邏輯單70 12送出—高準位(邏輯1)賴置要求信號idle_ request 到處理器14,以抑制讀取級電路26處理更多指令讀取要求。閒置要求信 _號會抑制導線40上的指令要求,使其不會從及問38輸出。因此,指令的 要求被暫時的停止了。在收到閒置要求信號咖—叫咖之前,處理器14 可能剛發出指令要求’這些指令要求很可能會來往於記憶體16之間。由 於這個原因’讀取級電路26仍可能於收到閒置要求信號咖_叫_之 後的成個翻之内,繼續從記憶體16收到額外的指令數值。最後,記憶 體16才凡全停止傳送指令數值。於一段時間後,讀取級電路的閒置偵 測電路將偵得不再有其它的齡進來,因^送㈣置信號至及閘36。其它 層級電路的閒置铜電路最後也會餅不動作之狀態,因而也送出閒置信 1307042 、 號。 傳統處理器管線電路_置作法有一個很大的缺點就是,每一層級電 路必須個別決定其閒置狀態,導致每個層級電路之間缺乏一致性。此一致 性的缺乏很可能造成處理器設計上的錯誤疏失。例如,執行級電路對於其 各個組成,例如乘法器(multiplier)、運算(arjthmetjc)單元、加/減 (add/substrate)單元、移動(Shift)單元、邏輯(|0gic)單元等,必須偵得所有 組成都屬於閒置狀態時,才能確認執行級電路是閒置的。萬一設計者因疏 失而漏掉了其中-部份的細,將很可能造成縣應該為正常的動作被誤 判為閒置。當處理器的架構變得更複雜時,上述設計的疏失就變得更有可 能了。因此,亟待提出一種簡化的閒置偵測電路,使得處理器的閒置能夠 達到一致性。 【發明内容】 本發明係有關於處理器的閒置系統和方法。在一實施例中,處理器包 • 含一時脈電路用以驅動時脈信號,以及具有多層級電路的處理器管線電 路。該處理器包含處理器閒置電路,其位於這些管線層級電路之間,並回 應於閒置要求信號idle_request。第一層級電路於收到閒置要求信號 idle—request之後即抑制進來的指令使其不受進一步的處理。其它層級電 路當十’至少有二層級電路包含有閒置旗標邏輯單元(idle_flag 1〇gic) 用以接收閒置要求信號(idle-reques1;),而閒置旗標邏輯單元則經由處 理器ί線電路來傳送閒置要求信號idie_reqUest。 於處理器間置方法之實施例中,該處理器具有多層級電路’其從電源 e ^輯單元接收閒置要求信號(idle_request)。此閒置方法還包括阻 1307042 $來自讀、||恤令數值,且藉由處理㈣各層級電路傳播—不運算 、梦竑P tl〇n)域。除了傳播不運算(n〇-〇peration)信號,此方法 還藉由各層級電路傳細置顧錢(idle_flag)。 【實施方式】 本發明揭路-種用來閒置(jd|e)處理器的電路,且相較於傳統技術, 本發月更加簡化了此種閒置過程。由於本發明之處理關置電路比傳統電 來得簡化HUb在電路設計時比财會⑽,柯至於發生不正線的閒 置才曰示3外,本發明也可以避免發生時脈電路(C丨〇ck)被閒置後,卻無 务再重新啟動的錯誤。通常,本發明也可以在—些情況下減少電源的消耗, 田使用者於段長時間内都沒有提供任何輸入,或者當處理器於一段 長時間内都沒有執行主要紅作(_ea|task)時。 第二圖顯不本發明實施例之處理器60的功能方塊圖。此處理器60可 乂應用於些電池運作或手持之電子設備中,如筆記型電腦、個人數位助 理(PDA)、無線電話、膝上型電腦等等。本實施例包含獨特的電路,其根 據來自電源管理邏輯單元(p〇wermanagement丨〇gjc)的閒置要求信號 idle—request來閒置處理器60。此處理,6〇包含一個具有五個層級電路 的處理器管線電路(pjpeljne)—讀取(fetch)級電路64、解碼(扣⑺扣) 級電路66、執行級電路(execute) 68、記憶體存取(memory access) 級電路70和寫回(write_back)級電路72。雖然如圖所示的處理器6〇具 有五層級電路,然而熟悉本技術者可以將本發明應用在其它具有不同層級 電路數的實施例中。事實上,本發明可以大大地簡化處理器的設計,特別 是當處理器具有較大的層級電路數時。 1307042 s - 第二圖所示實施例之第一級電路(亦即讀取級電路64)包含一個及閘 (AND gate) 74 ’其中的一個輸入端接收來自電源管理邏輯單元的閒置 要求信號idle_request ’而另一輸入端則接收來自内部導線76之一般指令 要求(normal instruction request)。當閒置要求信號 id|e_request 為低準 位時’及閘74會藉由導線78輸出指令要求(jnstructj〇r)叫⑽切);而當 閒置要求信號idle一request變為高準位時,則及閘74會將指令要求阻擋 住,這些過程和前述第二圖中的及閘38操作類似。然而,本發明提出額 ❿夕卜的電路’可以達成簡化及-致性的目的,不像傳統作法中每一級電路都 必須具備各自的閒置偵測電路用以偵測各自的閒置狀態。 此外,讀取(fetch)級電路64包含一具有第一和第二輸入端的多工器 __exer)82,其第一輸入端接收從記憶體沿著導線μ所傳來的指令數 值’其第二輸入端接收-“不運算,,(N0P)信號,此信號係用來表示當處理 器60未執行任何新指令的情形。多工器的選擇輸入端86連接至閒置要求 φ 信?虎哪-reqUest ’用以選擇第一或第二輸入端。在處理器的-般操作情 形下,閒置要求訊號idle一request為邏輯低準位(邏輯〇),因此多工器82 將導線84上的指令數值送到下一級電路。當處理器被要求閒置且閒置要 求信號idle_reqUest變為高準位時,選擇輸入端86使得多工器82輸出” 不運算”N0P訊號。在本實施例中,多工器82不再接收任何新指令,且不 需要等待從記憶體回來的指令,因而可以使得處理器6〇快速的達到閒置。 本實施例中的多工器82也可以使用其它邏輯元件乡且合來達到相同的功能。 上述的"不運算”N0P信號被傳送到處理_ 6〇的其它層級電路裡面, 11 1307042 乂 以進行解碼、勃;^势 ^订寺’使侍每一級電路都能知道處理器是處在一個,,不運算” 模式中更進步來講’在讀取(fetCh)級電路64中’ NOP信號是代表 „一個”太運董”托入 ;當此NOP信號傳遞至底下的其它層級電路時,將會抑 制每級電路的輪出控制信號,因而使得每一級電路不會進行操作 (operation)。每—級電路在顧接受Ν〇ρ信號之前,可能需要㈣不定 數量的時脈週期,在底下介紹完明丨⑽―next」nstruct丨〇η信號之後,即可 對此有所瞭解。 再參閱第二圖’於解瑪(decode)級電路66、執行級電路(execute) 68、s己憶體存取(memoryaccess)級電路和寫回(wrjfe_back)級電 路72中’都包含有閒置旗標邏輯單元(jd|e_flag|〇gjC) 8〇。至於讀取級 電路64中,也可以放置一個閒置旗標邏輯電路(丨dle_f丨ag丨〇gic),不過, 通常是不需要的。每一級電路的閒置旗標邏輯電路80會在底下配合第四 圖作進一步描述,此電路主要是用來將閒置旗標信號jd|e_f|ag在管線電路 (pipeline) 62中的各個層級電路中傳遞下去。另外,處理器60也將間
I 置要求信號idle一request連接至每一級電路中的閒置旗標邏輯電路 (idle一flag logic) 80 中。 應注意的是,在本實施例中,第二級電路(亦即,解碼級電路66) ϋ 非從前一級電路的閒置旗標邏輯單元來得到閒置旗標信號idle_flag的,因 為第一級電路中並沒有包括此一邏輯單元。也就是說,第二級電路係直接 接收閒置要求信號1d丨e-「equest ’以及從第一級電路接收閒置旗標 idle_flag ;這些在經過底下的詳細說明之後’即可對此有所瞭解。 12 1307042 第四圖顯示第三圖之閒置旗標邏輯單元8〇的示意圖。此閒置旗標邏輯 單tl80包含一多工器9〇、一及閘(AND gate)92和一 D型正反器94。多 工器90的第一輸入端接收來自正反器94輸出端延著導線96的迴授信號, 而第一輸入端則接收來自前一級電路的閒置旗標丨d|e_ _flag。多工器90的 選擇輪入端健㈣線98敝—選擇钱,用以鄉-輸人端和第二輸 入端兩者當中選擇其-。及閘92的第-輸人端接收閒置要求信號 idle—request ’其第二輸入端則接收多工器9〇的輸出β正反器94的輸入 I *而連接到及閘92的輸出端,且具有時脈電路(c|〇ck)輸入端及重設輸入 端,正反器94的輸出端係輸出閒置旗標信號咄6」|3£(到下一級電路的閒. 置旗標邏輯單元。 下一指令選擇信號select一nextjnstruct|〇n連接至多工器9〇的選擇輸 入端,用以指出何時有新指令可以被處理。當新指令被送到某一級電路時, 下一指令選擇信號select一next—instruction會變為高位準,藉此,有助於 _ 讓不運算(N0P)信號與閒置旗標信號id|e_flag達到同步,使得兩者可 以同時傳送至管線電路(pjpe|jne) 62的每一級電路。例如,假設某一指 令於某一層級電路中需要三個時脈週期;當下一指令選擇信號 select一nextjnstruction於第三時脈週期時變為高準位,則下一指令僅可 以在第四時脈週期時加以處理。 底下將描述第四圖之間置旗標邏輯單元80的操作。在一般情形下,處 理器60不需進行閒置,輸入至及閘92的閒置要求信號idle一request為低 準位’因此正反器94的閒置旗標輸出信號idle一flag也是低準位;此低準 13 .1307042 位旗標迴授到多工器90 ’使得此旗標一直保持為低準位,因而讓處理器6〇 持續操作在一般模式下》 當處理器60被要求進入閒置時,電源管理邏輯單元會送出一高準位(邏 輯1)的閒置要求信號idle_reqUest 〇在解碼(dec〇de)級電路66中的 閒置旗標賴單元80,除了關92接收此·要求健咖」琴細, 且多工器90中標示Τ’的輸入端也是接收閒置要求信號jd|e_request。至 #於其它的層級電路,其多工器90中標示”1”的輸入端則是接收來自前-級 電路的閒標信號idle—flag。當目前的指令執行完畢以後,下一指令選 擇信號Select_nexUnstruction會從多工器9〇中標示,τ的輸入端選擇 高準位的閒置旗標信號idle—flag,因此使得原本為低準位輸出的及閘92 變為高準位;並進-步使得正反㈣的輸出轉在高雜,且傳遞至底 下的其它層級電路。當閒置旗標信號到達最後一級(電路亦即寫回 ⑽e-back)級電路72)時,該閒置旗標信號_來作為閒置回應信號 • (idle—aCkn〇Wledge)傳回到電源管理邏輯單元;此時,電源管理邏輯單 元知道處理器已經完成閒置的準備,因此料脈電路㈣⑻予以停止。 此時’閒置旗標邏輯單元80將閒置旗標信號—直保持在高準位,直到閒 置要求信號idle_request變為低準位為止》 雖然第四_電_示本發明用轉旗標傳遞至下—層級電路的最佳 實施例,_ ’減職術者魏知道此賴電路⑽由不_元件或組 合型態來取代。細圖般本發_以將閒置旗標信號傳遞於管線電路 (pipeline)的—個例子,其它具有相同功能的變化型態也應涵蓋在本發 .1307042 明之内。. 第五圖顯示當處理器60被要求閒置時,位於處理器6Q _的信號時 序圖。位於最上端的時脈信號(d〇ck)顯示出時脈信號具有一預設的頻率。 當閒置要求信號idle_reqUest變為高準位後,解瑪(dec〇de)級電路邱 的閒置細言號idle」丨叩在下一個時脈週期時也變為高準位;再經過一時 脈週期後,執行級電路(execute) 68的閒置旗標信號哪―㈣也變為高 • 準再、毯過時脈週期後,δ己憶體存取(memory access)級電路 的閒置旗標健id丨e—flag也變為高準位;再經過—雜聊後,寫回 (write-back)級電路72的閒置回應信號(id|e—ackn〇w|ed㈣也變為高 準位。當閒置旗標信號傳遞完整個管線電路(pjpe|ine)且閒置回應信號 (丨die一acknowledge)也變為高準位後’於經過—段時間後(如圖式中所 示的左側纽),f膽理祕單元即會轉雜 (dQGk),如圖式中 一段處於低準位的時脈信號(clock)。然後,再經過一段時間後(如圖式 鲁中所示的右側虛線),電源管理邏輯單元於侧到其它事件(event)發生 (例如使用者提供—輸人動作)’而需要喚喊㈣㈤時,這雜,電源 官理邏輯Μ即會啟動雜辦,謂,要求錢「学&變為低 準位。如圖所示,於閒置要求信號丨d丨e_request變為低準位後的下一個時 脈週期,每一層級電路均會將其閒置旗標信號丨dle_flag都變為低準位。 雖然第五_示出每—層級電路落後前—層級電路有—個時脈週期, 然而’對於”不運算”(N0P)信號之處理則沒有延遲。每一層級電路的閒 置旗钛彳5號必須等待二或多個時脈週期之後才能變為高準位,這完全要視 15 1307042 下一指令選擇信號se|ect_next_inst「uction於什麼時候會變為高準位,以 使得”不運算”(N〇P)信號被域定接受。藉此機制,旗標信賴e_flag與” 不運算’’(N0P)信號可以同步併行的傳遞於整個管線電路丨丨阳)。 第六圖的時序圖顯示,雖然提出了閒置的要求id丨e_request,但是電 源管理邏輯單元卻在處理器60完全進入閒置之前將閒置要求信號 idlejequest予以抑制(disab|e)。雖然此種情形發生的機率極低,但是, ,-旦發生了,就必須聽其連雜生無法接受的絲,例如發生處理器6〇 或時脈被鎖住的的情形。在圖式所示的例子中,.當閒置要求信號 idle一request變為高準位後,於一個時脈週期過後(或者因受到下一指令 選擇信號select一nextjnstruction影響而於較多個時脈週期過後),第二級 電路的旗標信號idle一flag變為高準位;再經過一時脈週期後,執行級電路 (execute) 68的閒置旗標信號idle一flag也變為高準位。然而,在記憶體 存取(memoryaccess)級電路70接收到前一級電路的閒置旗標信號 ,idle一flag並傳遞其自己的旗標信號旧匕一flag之前,閒置要求信號 idle—request卻被抑制(disabled) 了。此種情況使得及閘92的輸入端與 輸出端均為低準位,使得旗標信號idle一flag變為低準位;連帶使得後面層 級電路的閒置旗標信號idle一flag都保持為低準位,因此都是持續著一般的 操作,而沒有進入閒置狀態。 以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之申 晴專利範圍;凡其它未脫離本發明所揭示之精神下所完成之等效改變或修 飾,均應包含在下述之申請專利範圍内。 16 1307042 【圖式簡單說明】 第一圖顯示傳統電子裝置之處理器系統。 第二圖顯示傳統處理器之實施作法。 第三圖顯示本發明實施例之處理器的功能方塊圖。 第四圖顯示第三圖之閒置旗標邏輯電路的示意圖。 ® 第五圖顯示當處理器被要求閒置時,位於處理器内部的信號時序圖。 第六圖的時序圖顯示,於提出了閒置的要求後,電源管理邏輯單元在處理 器完全進入閒置之前將閒置要求信號予以抑制(disable)。
V 【主要元件符號說明】 10處理器系統 12電源管理邏輯單元 14處理器 16記憶體 18輸入/輸出裝置 20内部匯流排 22時脈電路 24處理器管線電路 17 1307042 26讀取級電路 28解碼級電路 30執行級電路 32記憶體存取級電路 34寫回級電路 36及閘 φ 38及閘 40導線 42導線 44導線 60處理器 62處理器管線電路 • 64讀取級電路 66解碼級電路 68執行級電路 70記憶體存取級電路 72寫回級電路 74及閘 1307042 76導線 78導線 80閒置旗標邏輯單元 82多工器 84導線 86導線 _ 90多工器 92及閘 94正反器 96導線 98導線
Claims (1)
1307042' _— '、 ,#丨丨月4日修王替換頁 十、申請專利範圍: -一 1· -麵置處理n管線電路之裝置,包含_ 一内部匯流排; 一處理器,電性連結於該内部匯流排,該處理器包含: -時脈電路’用以提供複數個時脈信號;及 一管線電路’包含一讀取級電路、一解碼級電路、一執行級電路、一記 憶體存取級電路和一寫回級電路; 一記憶體裝置,電性連結於該内部匯流排; 至少一輸入/輸出裝置,電性連結於該内部匯流排;及 一電源管理邏輯單元,電性連結於該處理器,用以啟動或停止該時脈信 號; 其中上述之讀取級電路包含一多工器,當該讀取級電路收到來自該電源 管理邏輯單元的一閒置要求信鍊時,該多工器即輸出一不運作信號,當該 讀取級電路並無接收到該閒置要求信號時;該多工器即從該記憶體裝置輸 出一指令數值到該解碼級電路;及 其中上述解碼級電路包含一閒置旗標邏輯單元,用以經由該管線電路傳 送一閒置旗標信號。 20 1307042 . 11月丄I日修正替換頁 2_如申S月專利範圍帛1項所述之閒置處理器管線電路之裝置,其中上述之 閒置旗標邏輯單元包含: 夕工器’具有一輸出端及一第一與第二輸入端; -及閘’具有—第—及第二輸人端及—輸出端,其中該第—輸入端以連 接到該多工器的輸出端’ g亥第一輸入端係用以接收該閒置要求信號;及 -正反器’具有—輸人端以連接至該及閘的輸_,且該正反器具一閒 置旗標信號輸出端連接至該多工器的第一輸入端; 其中’該多工器之第二輸入端係接收該閒置旗標信號。 3. 如申請專利範圍第彳項所述之閒置處理器管線電路之裝置,其中上述執行 級電路、記憶體存祕電路和寫回級電路各自具有一閒置旗標邏輯單元。 4. 如申請專利範圍第3項所述之閒置處理器管線電路之裝置,其中上述之閒 置旗標邏輯單元包含: 多工器,具有一輸出端及一第一與第二輸入端; -及閘’具有—第—及第二輸入端及—輸出端,其中該第—輸入端以連 .接到該多卫器的該輸出端,該第二輸人端係用以接收該間置要求信號;及 21 1307042 卜年"月"Μ日修正替換, —正反 ,目士 .. ^-- —1 ° 具有—輪入端以連接至該及閘的輸出端,且該正反器具一 置旗^號輪_連接至該多工㈣該第―輸入端; I | 八° 亥夕工器之該第二輸入端係接收前一級電路的該閒置旗襟俨號 輯單元 如申。月專利範圍第2項所述之閒置處理器管線電路之裝置,其中上述寫回 級電路的雜雜輸出被當成—間置瞒錄,傳送職電源管理邏 脈信號 6_如申請專利細第5項所述之職處理H管線電路之裝置,其中•該電源 管理邏解元魏__應信餅,該麵彻邏解场^該時、 7·—種處理器,包含: 一時脈電路,用以驅動複數個時脈信號; 一處理器管線電路,具有複數個層級電路;及 複數個處理關置電路’設置於該複數個層級電路内,用以反應一閒置 要求信號; 其中,當接收到該閒置要求信號時,位於-第―層級電路之一阻止裝置 22 1307042 阻止一指令數值的進入且不作進一步處理;及 其餘各層級電路當中,該至少兩個層級電路包含一閒置旗標邏輯單元, 用來接收該閒置要求信號,且藉由該處理器管線電路傳送一間置旗標信號。 8.如申請專利範圍第7項所述之處理器,其中上述之阻止裝置係為一多工 器’其包含一第一和第二輸入端、一選擇輸入端和一輸出端,其中該第一 輸入端係用以接收一記憶體裝置的指令數值,該第二輸入端係用以接收一 不運作信號,而該選擇輸入端係用以接收該閒置要求信號。 9_如申明專利範圍帛8所述之處理ϋ ’其中上叙閒置旗標信號和不運作信 號係平行地傳送於該管線電路中。 1〇_如申清專利範圍第8所述之處理器,其中上述之閒置旗標信號和不運作 信號係同步地傳送於該管線電路中。 11.如申請專利範圍第7所述之處理器,其中上述之閒置旗標賴單元包含: 一多工器,具有一輸出端及一第一及第二輸入端; 及閘具有-第-及第二輸入端及一輪出端,其中該第一輸入端係連 23 1307042 丨丨月孚丨叫正替換頁丨 一及閘’具有-第-及第二輸人端及-輪出端,其中該第一輸入端係連 接至該多工器的輸出端’該第二輸入端係用以接收該閒置要求信號;及 一正反器,具有一輸入端以連接至該及閘的輸出端,且具有—輪出端用 來提供該閒置旗標信號,其中該輸出端連換至該多工器的第一輪入端 其中,該多工器的第二輸入端用以接收前一級電路的閒置旗標信號。 12·一種閒置具有複數層級電路的處理器之方法,包括: 接收一閒置要求信號; 阻擋一指令數值,且藉由該處理器各個層級電路來傳播一不運算信號.; i . 及 平行地傳播一閒置旗標信號與諒不運算信號於該處理器的複數個層級電 路中。 13·如申請專利範圍第12所述之閒置具有複數層級電路的處理器之方法, 更包含: ' ' .,入 於最後一層級電路接收該閒置旗標信號;及 輸出一閒置回應信號。 24 9 I3070f42 14.如申請專利範園第13所述之閒置具有複數層級電路的處理器之方法 更包含: 接收一抑止信號,其中該抑止信號用以停止一時脈信號。 15.如申請專利範園第14所述之閒置具有複數廣級電路的處理器之方法, 更包含: 重新啟動該時脉信號,且當一喚醒事件發生時,使得該閒置要求信號不 動作。 16·—種閒置處理器的系統,包含·· 一接收裝置,用以自一電源管理邏輯單元接收一閒置要求信號; 一阻止裝置,用以阻止該處理器自一記憶體接收指令數值,且用以傳播 一不運算信號於該處理器的複數個層級電路中;及 一傳播裝置,用以平行地傳播一間置旗標信號與該不運算信號於該處理 器的該複數個層級電路中。 17.如申請專利範圍第 含-間置旗標邏輯單元料、' 處理器的祕,其中上述傳播裝置包 、孩複數個層級電路。 25 1307(542
p年Η月W日修必 18. 如申請專利範圍第16所述之閒置處理器的系統,更包含: 一第一裝置,用以在最後一級之該層級電路接收該間置旗標信號;及 . ι 1 .一第二裝置,用以輸出一閒置回應信號。 19. 如申請專利範圍第18所述之閒置處理器的系統,更包含: 一第三裝置,用以自該電源管理邏輯單元接收一抑止信號,用以停止一 時脈電路。 | i 20·如申請專利範圍第19所“之閒置處理器的系統,更包含: 一第四裝置,用以重新啟動該時脈電路,且當一唤醒事件發生時,使得 該閒置要求信號不動作。 21·如申請專利範圍第16所述之閒置處理器的系統,其中上遠之阻止裝置 包含一多工器。 22.—種閒置邏輯單元,係位於處理器中至少一層級電路内,該閒置邏輯單 元包含: 26 Τ.一-/«k-K-r —…-.· — LMJ/U42 ,, 丨作.丨丨沖'〖:::簡f| ιί ' ................................. 一多工器,具有一輸出端與一第一與第二輸入端; 一及閘,具·有一第一及第二輸入端及一輸出端,其中該第一輸入端係連 接到該多工器的輸出端,該第二輸入端係用以接收一閒置要求信號;及 一正反器,具有一輸入端以連接至該及閘的輸出端,且該正反器具有一 間置旗標信號輸出端連接至該多工器的第一輸入端; 其中,該多工器之第二輸入端係接收前一級之該層級電路的間置旗標信 號。 23. 如申請專利範圍第22所述之閒置邏輯單元,其中上述之多工器更包含 選擇輸入端,其反應該層級電路中的下一指令選擇信號。 24. 如申請專利範圍第23所述之閒置邏輯單元 ,其中於該層級電路接受一 下個指令時’上述之閒置邏輯單元將該閒置旗標信號從前一級之該層級 電路傳送至下一級之該層級電路。 25. 如申請專利綱第22所述之閒置邏輯單元,其中當細置要求信號變 為低準位時,上述之正反器提供一低準位信號於該閒置旗標信號輸出端。 27
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/963,159 US7266708B2 (en) | 2004-10-12 | 2004-10-12 | System for idling a processor pipeline wherein the fetch stage comprises a multiplexer for outputting NOP that forwards an idle signal through the pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200612341A TW200612341A (en) | 2006-04-16 |
TWI307042B true TWI307042B (en) | 2009-03-01 |
Family
ID=36146770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094128330A TWI307042B (en) | 2004-10-12 | 2005-08-19 | Idling a processor pipeline |
Country Status (3)
Country | Link |
---|---|
US (1) | US7266708B2 (zh) |
CN (1) | CN100409147C (zh) |
TW (1) | TWI307042B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401242B2 (en) * | 2005-09-27 | 2008-07-15 | International Business Machines Corporation | Dynamic power management in a processor design |
US20070074054A1 (en) * | 2005-09-27 | 2007-03-29 | Chieh Lim S | Clock gated pipeline stages |
US7536568B2 (en) * | 2005-12-01 | 2009-05-19 | Covidien Ag | Ultra low power wake-up circuit |
JP4747026B2 (ja) * | 2006-05-08 | 2011-08-10 | Okiセミコンダクタ株式会社 | マイクロプロセッサ |
US8908709B1 (en) * | 2009-01-08 | 2014-12-09 | Juniper Networks, Inc. | Methods and apparatus for power management associated with a switch fabric |
US8578191B2 (en) | 2010-06-10 | 2013-11-05 | Juniper Networks, Inc. | Dynamic fabric plane allocation for power savings |
WO2014186948A1 (en) * | 2013-05-21 | 2014-11-27 | Advanced Micro Devices, Inc. | Thermal-aware compiler for parallel instruction execution in processors |
US10693725B1 (en) * | 2016-11-28 | 2020-06-23 | Barefoot Networks, Inc. | Dynamically reconfiguring data plane of forwarding element to account for operating temperature |
CN114765455A (zh) * | 2021-01-14 | 2022-07-19 | 深圳比特微电子科技有限公司 | 处理器和计算系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247134B1 (en) * | 1999-03-31 | 2001-06-12 | Synopsys, Inc. | Method and system for pipe stage gating within an operating pipelined circuit for power savings |
US6636976B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Mechanism to control di/dt for a microprocessor |
US20030070013A1 (en) * | 2000-10-27 | 2003-04-10 | Daniel Hansson | Method and apparatus for reducing power consumption in a digital processor |
US6826704B1 (en) * | 2001-03-08 | 2004-11-30 | Advanced Micro Devices, Inc. | Microprocessor employing a performance throttling mechanism for power management |
US7130988B2 (en) * | 2002-11-15 | 2006-10-31 | Via-Cyrix, Inc. | Status register update logic optimization |
US7222251B2 (en) * | 2003-02-05 | 2007-05-22 | Infineon Technologies Ag | Microprocessor idle mode management system |
-
2004
- 2004-10-12 US US10/963,159 patent/US7266708B2/en active Active
-
2005
- 2005-08-19 TW TW094128330A patent/TWI307042B/zh active
- 2005-08-23 CN CNB2005100959423A patent/CN100409147C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US7266708B2 (en) | 2007-09-04 |
TW200612341A (en) | 2006-04-16 |
US20060080560A1 (en) | 2006-04-13 |
CN1760803A (zh) | 2006-04-19 |
CN100409147C (zh) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI307042B (en) | Idling a processor pipeline | |
JP3454866B2 (ja) | バスユニットと実行ユニットとを含むタイプのプロセッサを動作させる方法、中央処理装置、コンピュータシステム、およびクロック制御装置回路 | |
EP2438520B1 (en) | Communication between internal and external processors | |
TWI280507B (en) | A method, system, and apparatus for improving multi-core processor performance | |
TWI313822B (en) | Method and apparatus for interfacing a processor to a coprocessor | |
US7155618B2 (en) | Low power system and method for a data processing system | |
JP4855451B2 (ja) | 記憶装置のアクセス方法及び装置 | |
KR101915006B1 (ko) | 고속 재개를 이용하는 시스템 대기 에뮬레이션 | |
JPH09138716A (ja) | 電子計算機 | |
JPH0844464A (ja) | コンピュータシステム | |
TW201248389A (en) | Reducing power consumption of uncore circuitry of a processor | |
JP2007041781A (ja) | リコンフィグ可能な集積回路装置 | |
US7904615B2 (en) | Asynchronous computer communication | |
JP2008226236A (ja) | 構成可能なマイクロプロセッサ | |
JP3705022B2 (ja) | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム | |
JP4689087B2 (ja) | 情報処理装置及び省電力移行制御方法 | |
JP2008542949A (ja) | パイプライン型マイクロプロセッサの節電システムおよび節電方法 | |
JP2006244382A (ja) | マイクロプロセッサ | |
JP2003186567A (ja) | マイクロプロセッサ | |
TWI237764B (en) | Control chip with function for inhibiting bus cycle, circuit and method thereof | |
JP4585249B2 (ja) | 情報処理装置 | |
Bainbridge et al. | MARBLE: An asynchronous on-chip macrocell bus | |
JPH1083343A (ja) | メモリをアクセスする方法 | |
US10366019B1 (en) | Multiprocessor system having efficient and shared atomic metering resource | |
JP3906865B2 (ja) | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム |