專利名稱:Soc架構(gòu)下的高速總線動態(tài)變頻裝置和處理器核接口的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及CPU/SOC領(lǐng)域,更具體地說,本發(fā)明涉及在SOC架構(gòu)下的高速總線動態(tài)變頻技術(shù)。
背景技術(shù):
在一般的主板設計中,總線主頻又稱外頻,由主板頻率發(fā)生器產(chǎn)生,由跳線來控制,一旦改頻,需要重新啟動系統(tǒng),缺乏靈活性。
然而在SOC設計領(lǐng)域,總線主頻往往與處理器核的主頻相關(guān)聯(lián),常規(guī)的做法是二分頻。但隨著處理器核的主頻愈來愈高,對SOC架構(gòu)的總線頻率要求更具靈活性,以便適應片外的主頻要求,如片外訪存是100或133MHz等,SOC總線頻率應相應跟隨。
此外,在SOC設計中,隨著片內(nèi)Cache容量增大(指令Cache、數(shù)據(jù)Cache各32KB),在相當時間段內(nèi),處理器對總線訪存需求不明顯,總線可能比較空閑,出于節(jié)省功耗考慮,可降低總線主頻。
隨著SOC集成的功能愈來愈多,功耗與總線頻率關(guān)聯(lián)度愈來愈高,因為很多IP核工作于總線頻率。為此如何合理利用總線頻率,對節(jié)省功耗很有益處。
因此,就需要有一種變頻裝置,能夠在動態(tài)情況下實現(xiàn)對總線主頻的改變,使得總線能在多種主頻下運行。這樣,允許在總線負載重的情況下選擇高頻運行,在總線負載輕的情況下選擇低頻運行。當總線頻率能夠變頻時,還需要對處理器核接口進行改進,以便讓處理器核適應總線變快或變慢的節(jié)奏發(fā)明內(nèi)容本發(fā)明的目的是提供一種對SOC中的總線主頻進行動態(tài)變頻的變頻裝置。本發(fā)明的另一目的是提供一種與本發(fā)明的變頻裝置一起使用的處理器核接口。
為了實現(xiàn)上述目的,本發(fā)明提供一種SOC架構(gòu)下的高速總線動態(tài)變頻裝置,包括提供處理器核主頻的時鐘電路,還包括一個用于提供總線頻率的總線頻率發(fā)生器;
一個與所述總線頻率發(fā)生器連接的選頻寄存器,所述選頻寄存器內(nèi)存儲有總線頻率與處理器核主頻的分頻關(guān)系值;一個與所述選頻寄存器連接的同步時鐘,所述同步時鐘將所述選頻寄存器內(nèi)的分頻關(guān)系值同步后發(fā)送給所述總線頻率發(fā)生器一個分頻信號;所述時鐘電路向所述總線頻率發(fā)生器提供總線基準頻率,所述總線頻率發(fā)生器接收所述分頻信號并根據(jù)該分頻信號將總線基準頻率分頻后提供總線頻率。
本發(fā)明還提供一種處理器核接口,該接口工作于處理器核主頻和可動態(tài)變頻的總線頻率兩個時鐘域,該處理器核接口包括一個狀態(tài)處理機,所述狀態(tài)處理機接收總線和處理器核的工作狀態(tài)信號,并根據(jù)所述工作狀態(tài)信號控制處理器核進行總線操作。
采用本發(fā)明的總線動態(tài)變頻裝置可以實現(xiàn)總線頻率的動態(tài)變頻,在變頻時只要將分頻關(guān)系值寫入總線選頻鎖存器中即可,對系統(tǒng)開發(fā)人員來說,完全透明。本發(fā)明的變頻裝置可以提供多種總線頻率并且實現(xiàn)動態(tài)切換,以供總線在不同的負載下使用,達到系統(tǒng)合理利用功耗、節(jié)省電能的目的。本發(fā)明的包含狀態(tài)處理機的處理器核接口根據(jù)總線和處理器核的工作狀態(tài)控制處理器核進行總線操作,可以讓處理器核適應總線變快或變慢的節(jié)奏。
圖1是本發(fā)明的總線動態(tài)變頻裝置圖;圖2是采用本發(fā)明變頻裝置將總線頻率由高頻切換到低頻的示意圖;圖3是采用本發(fā)明變頻裝置將總線頻率由低頻切換到高頻的示意圖;圖4是處理器核接口的狀態(tài)控制機配合工作原理圖。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述。
如圖1所示的高速總線動態(tài)變頻裝置,時鐘電路1是常規(guī)的,一般由鎖相環(huán)組成,該時鐘電路1通過處理器核接口2為處理器核(圖中未示出)提供主頻CPUclk。
在本發(fā)明中,處理器核主頻CPUclk同時也作為總線基準頻率輸送給總線頻率發(fā)生器3,總線頻率發(fā)生器3將處理器核主頻CPUclk分頻后提供總線頻率APBclk。如圖1所示,選頻寄存器4中存放總線頻率APBclk與處理器核主頻CPUclk的分頻關(guān)系值SD。因跨時鐘域需要同步,分頻關(guān)系值SD經(jīng)同步時鐘5的時鐘信號OSC_clk同步后產(chǎn)生分頻信號SD_syn,并送到總線頻率發(fā)生器3,總線頻率發(fā)生器3根據(jù)分頻信號SD_syn將處理器核主頻CPUclk分頻產(chǎn)生總線頻率APBclk。在一個實施例中,總線頻率APBclk為處理器核主頻CPUclk的1/(2×SD),若SD=3,則APBclk是CPUclk的1/6。
在系統(tǒng)運行時,通過外部信號動態(tài)地改變并更新選頻寄存器4中的分頻關(guān)系值SD,就可以實現(xiàn)總線頻率APBclk的動態(tài)變頻。在實際應用時,選頻寄存器4中的值SD可以在BIOS中設置,也可以在任務(或進程)調(diào)度時設置;優(yōu)選一種方式是由系統(tǒng)自動偵測總線負載,根據(jù)負載情況發(fā)送程序指令,更新選頻寄存器4中的分頻關(guān)系值SD,從而在總線繁忙時提升總線頻率或者在總線空閑時降低總線頻率,合理利用性能和功耗,達到節(jié)省電能的目的。
圖2和圖3是本發(fā)明的動態(tài)變頻裝置進行變頻的兩個實施例,其中圖2是總線由高頻切換到低頻的波形圖,圖3是總線由低頻切換到高頻的波形圖。
如圖2所示,SD是由外部信號寫入的寄存器值,在變頻前后,SD從1改變?yōu)?,經(jīng)時鐘OSC_clk同步后產(chǎn)生SD_syn,總線頻率產(chǎn)生器根據(jù)處理器核主頻CPUclk和選頻寄存器值SD_syn,產(chǎn)生總線頻率APBclk。如前所述,當總線頻率APBclk為處理器核主頻CPUclk的1/(2×SD)時,則變頻前APBclk為CPUclk的二分頻,變頻后APBclk為CPUclk的四分頻。
圖3和圖2的原理是相同的,在圖3中,分頻關(guān)系值SD在變頻時從2更新為1,則變頻前APBclk為CPUclk的四分頻,變頻后APBclk為CPUclk的二分頻。
與現(xiàn)有技術(shù)相同,處理器核工作在處理器核主頻CPUclk和總線頻率APBclk二個時鐘域中,需要異步握手來實現(xiàn)處理器核接口協(xié)議。在現(xiàn)有技術(shù)中,由于總線頻率APBclk和處理器核主頻CPUclk的關(guān)系是確定的,通常APBclk為CPUclk的二分頻,需要將CPUclk域的信號延長1個時鐘寬度,一般通過延遲再相“或”就能實現(xiàn),但在本發(fā)明中,由于總線頻率APBclk是可動態(tài)變頻的,為了讓處理器核適應總線變快或變慢的節(jié)奏,因此需要一個狀態(tài)機來確定跨時鐘信號被有效獲取。
在本發(fā)明中,處理器核在處理器核主頻CPUclk和總線頻率APBclk兩個時鐘域的異步握手是通過為處理器核接口2提供一個狀態(tài)控制機6來實現(xiàn)的。如圖1所示,APB_rdy是APB總線的工作狀態(tài)信號,CPU_vld是處理器核的工作狀態(tài)信號,其中APB_rdy信號受APBclk同步,CPU_vld信號受CPUclk同步。狀態(tài)控制機6接收APB_rdy和CPU_vld這兩個狀態(tài)信號,并根據(jù)這兩個狀態(tài)信號組合出四種狀態(tài),并對這四種狀態(tài)進行切換。
在下面的描述中,用“APB_rdy”表示APB總線在忙,“~APB_rdy”表示APB總線在閑,“CPU_vld”表示處理器核在忙且不接受總線操作,“~CPU_vld”表示處理器核在閑且需要總線操作。用“00”、“01”、“10”和“11”表示四個狀態(tài)。其中狀態(tài)“00”滿足~APB_rdy/~CPU_vld或復位,進入狀態(tài)“00”,此時,處理器核接受總線操作;狀態(tài)“01”滿足APB_rdy/~CPU_vld,進入狀態(tài)“01”,此時,APB總線忙,處理器核需要總線操作;狀態(tài)“10”滿足APB_rdy/CPU_vld,進入狀態(tài)“10”,此時,APB總線忙,處理器核在忙且不接受總線操作;狀態(tài)“11”滿足~APB_rdy/CPU_vld,進入狀態(tài)“11”,APB總線空閑,處理器核不接受總線操作。
狀態(tài)控制機6根據(jù)APB_rdy和CPU_vld這兩個狀態(tài)信號進行狀態(tài)轉(zhuǎn)換如圖4所示。系統(tǒng)復位Reset,此時~APB_rdy/~CPU_vld,進入狀態(tài)“00”,接受總線操作;當滿足APB_rdy/~CPU_vld,進入狀態(tài)“01”,APB總線忙,否則還是狀態(tài)“00”;當滿足APB_rdy/CPU_vld,進入狀態(tài)“10”,APB總線忙且處理器核忙,否則還是狀態(tài)“01”;當滿足~APB_rdy/CPU_vld,進入狀態(tài)“11”,處理器核忙,不接受總線操作,否則還是狀態(tài)“10”;當~APB_rdy/~CPU_vld,進入狀態(tài)“00”,接受總線操作,否則還是狀態(tài)“11”。
經(jīng)過上述步驟處理,處理器核能和總線動態(tài)變頻能很好配合工作,確保整個SOC工作穩(wěn)定可靠。
權(quán)利要求
1.一種SOC架構(gòu)下的高速總線動態(tài)變頻裝置,包括提供處理器核主頻的時鐘電路,其特征在于,還包括一個用于提供總線頻率的總線頻率發(fā)生器;一個與所述總線頻率發(fā)生器連接的選頻寄存器,所述選頻寄存器內(nèi)存儲有總線頻率與處理器核主頻的分頻關(guān)系值;一個與所述選頻寄存器連接的同步時鐘,所述同步時鐘將所述選頻寄存器內(nèi)的分頻關(guān)系值同步后發(fā)送給所述總線頻率發(fā)生器一個分頻信號;所述時鐘電路向所述總線頻率發(fā)生器提供總線基準頻率,所述總線頻率發(fā)生器接收所述分頻信號并根據(jù)該分頻信號將總線基準頻率分頻后提供總線頻率。
2.一種處理器核接口,該接口工作于處理器核主頻和可動態(tài)變頻的總線頻率兩個時鐘域,其特征在于,該處理器核接口包括一個狀態(tài)處理機,所述狀態(tài)處理機接收總線和處理器核的工作狀態(tài)信號,并根據(jù)所述工作狀態(tài)信號控制處理器核進行總線操作。
全文摘要
本發(fā)明公開了一種SOC架構(gòu)下的高速總線動態(tài)變頻裝置和處理器核接口。該變頻裝置包括提供時鐘電路、總線頻率發(fā)生器、選頻寄存器和同步時鐘。選頻寄存器內(nèi)存儲有分頻關(guān)系值,同步時鐘將分頻關(guān)系值同步后發(fā)送給總線頻率發(fā)生器分頻信號,時鐘電路向總線頻率發(fā)生器提供總線基準頻率,總線頻率發(fā)生器接收分頻信號將總線基準頻率分頻后提供總線頻率。本發(fā)明的處理器核接口包括一個狀態(tài)處理機,狀態(tài)處理機接收總線和處理器核的工作狀態(tài)信號以控制處理器核進行總線操作。本發(fā)明的總線動態(tài)變頻裝置可以實現(xiàn)總線頻率的動態(tài)變頻,供總線在不同的負載下使用,合理利用功耗并節(jié)省電能,包含狀態(tài)處理機的處理器核接口可以讓處理器核適應總線變快或變慢的節(jié)奏。
文檔編號G06F1/04GK1661576SQ20041000341
公開日2005年8月31日 申請日期2004年2月25日 優(yōu)先權(quán)日2004年2月25日
發(fā)明者張志敏, 吳登峰 申請人:中國科學院計算技術(shù)研究所