專利名稱:用于片上系統(tǒng)中知識產(chǎn)權(quán)核和功能模塊的功耗降低方法
技術(shù)領域:
本發(fā)明涉及微處理器體系結(jié)構(gòu)和集成電路技術(shù),特別涉及片上系統(tǒng)(System-on-Chip,以下簡稱SoC)中各種知識產(chǎn)權(quán)(Intellectual Property,以下簡稱IP)核和功能模塊的功耗降低方法。
背景技術(shù):
眾所周知,提高SoC設計效率的關鍵有賴于IP核的可重復使用。IP核是工程師們研究設計的提煉,主要實現(xiàn)一些常見而且有一定設計難度的功能,這些IP核一般都經(jīng)過驗證,可以使SoC的設計者們不用重復設計便可直接使用這些IP核,從而縮短設計周期和提高系統(tǒng)可靠性。因此,IP核是SoC的基本單位,降低SoC功耗就需要設計低功耗的IP核。
已有的利用門控時鐘降低IP核功耗的方法有兩種一種是使用電子設計自動化(Electronics Design Automation,以下簡稱EDA)工具在IP核中具有自反饋的寄存器前面插入門控單元;另一種是IP核設計者手工在整個模塊的時鐘信號輸入前加入一個可編程的門控單元,用戶利用軟件開關這個IP核的時鐘。已有的技術(shù)中第一個方法的缺點是必須使用特定的EDA工具,并會無規(guī)律地插入大量的門控單元,對本來就很復雜的后端時鐘樹設計造成更大的難度,而且當IP核不工作時并沒有關閉整個IP核的時鐘網(wǎng)絡,雖然部分電路會休眠,但功耗降低并不徹底;而已有技術(shù)中第二個方法的缺點是不能自動開關IP核的時鐘,而是需要用戶軟件支持,并依賴于用戶對IP核使用的監(jiān)控,也就是說用戶需要根據(jù)自己對該IP核和功能模塊的使用情況,決定其時鐘的開啟或關閉,因而此種方法效率低下且易出錯。比如,IP核時鐘實際需要關閉的時候,用戶并不一定關閉時鐘,因此損失不必要的功耗;而不能關閉時鐘的時候,由于用戶的疏忽而造成的關閉,將導致系統(tǒng)出現(xiàn)嚴重錯誤。
因此,現(xiàn)有技術(shù)的不足就需要一種改進的用于SoC中IP核和功能模塊的功耗降低方法。
發(fā)明內(nèi)容
本發(fā)明的目的是克服已有技術(shù)中降低功耗不徹底和容易出錯的問題,從而提供一種改進的用于SoC中IP核和功能模塊的功耗降低方法。
為了達到上述目的,本發(fā)明采取如下技術(shù)方案。
一種改進的用于SoC中功能模塊的降低功耗的方法,包括a)將原始功能模塊的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài),“工作”態(tài)即非“空閑”態(tài),“空閑”態(tài)即該原始功能模塊當前沒有進行有效工作的狀態(tài);b)提供一個邏輯電路與所述原始功能模塊連接構(gòu)成新的低功耗功能模塊,該邏輯電路完成如下邏輯功能如果總線沒有對原始功能模塊的請求,就保持時鐘關閉;如果總線有對該原始功能模塊的請求,則打開原始功能模塊的時鐘,原始功能模塊進入“工作”態(tài);保持時鐘打開,直到原始功能模塊處于“空閑”態(tài)并且沒有總線請求,就關閉原始功能模塊時鐘并保持關閉,直到總線再次對該功能模塊提出請求。
在上述技術(shù)方案中,還包括將所述邏輯電路的供電電源與所述原始功能模塊的供電電源隔離,該邏輯電路還實現(xiàn)以下邏輯功能當且僅當所述原始功能模塊處于“空閑”態(tài)并且沒有總線請求時,關閉原始功能模塊的供電電源;否則打開原始功能模塊供電電源。
在上述技術(shù)方案中,所述步驟a)中,對于在硬件描述語言中有顯式的狀態(tài)機描述的,直接將其“空閑”狀態(tài)劃為一類,其它狀態(tài)劃為“工作態(tài)”;對于在硬件描述語言中不是顯式的描述所述原始功能模塊狀態(tài),而是在各個級別的流水線中隱式地表示的,需要對流水線中的有效位寄存器的結(jié)果進行編碼,完成“空閑”態(tài)和“工作”態(tài)的劃分。
在上述技術(shù)方案中,步驟b)中所述邏輯電路包括一個低電平有效的鎖存器與一個兩輸入與門相連接;并且,當時鐘為高電平的時候,所述鎖存器關閉;當時鐘為低電平時,所述鎖存器導通,所述與門屏蔽毛刺的傳遞。
一種改進的用于SoC中IP核的功耗降低方法,包括a)將原始IP核的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài),“工作”態(tài)即非“空閑”態(tài),“空閑”態(tài)即該IP核當前沒有進行有效工作的狀態(tài);b)提供一個邏輯電路與所述原始IP核連接構(gòu)成新的低功耗IP核,該邏輯電路完成如下邏輯功能如果總線沒有對原始IP核的請求,就保持時鐘關閉;如果總線有對該IP核的請求,則打開原始IP核的時鐘,原始IP核進入“工作”態(tài);保持時鐘打開,直到原始IP核處于“空閑”態(tài)并且沒有總線請求,就關閉原始IP核時鐘并保持關閉,直到總線再次對該IP核提出請求。
在上述技術(shù)方案中,還包括將所述邏輯電路的供電電源與所述原始IP核的供電電源隔離,該邏輯電路還實現(xiàn)以下邏輯功能當且僅當所述原始IP核處于“空閑”態(tài)并且沒有總線請求時,關閉原始IP核的供電電源;否則打開原始IP核供電電源。
在上述技術(shù)方案中,所述步驟a)中,對于在硬件描述語言中有顯式的狀態(tài)機描述的,直接將其“空閑”狀態(tài)劃為一類,其它狀態(tài)劃為“工作態(tài)”;對于在硬件描述語言中不是顯式的描述所述原始IP核狀態(tài),而是在各個級別的流水線中隱式地表示的,需要對流水線中的有效位寄存器的結(jié)果進行編碼,完成“空閑”態(tài)和“工作”態(tài)的劃分。
在上述技術(shù)方案中,在打開或關閉IP核的時鐘時,為了避免可能產(chǎn)生的時鐘毛刺(glitch)而導致嚴重錯誤,使用一個低電平有效的鎖存器(Latch)和一個兩輸入與門來搭建門控單元;并且,當時鐘為高電平的時候,所述鎖存器關閉從而屏蔽了毛刺的傳遞;當時鐘為低電平時,所述鎖存器導通,所述與門將屏蔽毛刺的傳遞。
與已有技術(shù)相比,本發(fā)明的優(yōu)勢在于本發(fā)明通過改進的設計,利用IP核自身工作狀態(tài),根據(jù)實際應用,實時自動地開關整個IP核的時鐘,減少IP核時鐘網(wǎng)絡的跳變,從而降低IP核的動態(tài)功耗;同時自動開關該IP核的電源,在不影響正常工作的前提下降低該IP核的漏電功耗。
圖1是本發(fā)明一實施例對顯式的狀態(tài)描述的原始IP核的降低功耗的示意圖;圖2是本發(fā)明另一實施例對隱式的狀態(tài)描述的原始IP核的降低功耗的示意圖。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述實施例1如圖1所示,本實施例對顯式的狀態(tài)描述的原始IP核的降低功耗的示意圖。
步驟a)將原始IP核的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài),“工作”態(tài)即非“空閑”態(tài),“空閑”態(tài)即該IP核當前沒有進行有效工作的狀態(tài)。具體如下
圖中,方框內(nèi)為原始IP核10的工作模型,該原始IP核10的狀態(tài)有“空閑”、“請求”、“準備”、“運行”、“結(jié)束”;處于“空閑”態(tài)時,如果總線沒有請求,則保持在“空閑”態(tài),如果總線發(fā)出請求,則進入“運行”態(tài);圖中圓圈表示狀態(tài),箭頭表示躍遷,指示了狀態(tài)機的下一個狀態(tài)。原始IP核10的實際電路中狀態(tài)由一系列寄存器(時序電路)實現(xiàn),躍遷由組合電路實現(xiàn)。由于本實施例中的對于在硬件描述語言中有顯式的狀態(tài)機描述,直接將該原始IP核10的狀態(tài)分為兩類—“空閑”態(tài)和“工作”態(tài),“工作”態(tài)由“空閑”態(tài)以外的狀態(tài)構(gòu)成。
b)提供一個邏輯電路與所述原始IP核連接構(gòu)成新的低功耗IP核,該邏輯電路完成如下邏輯功能如果總線沒有對原始IP核的請求,就保持時鐘關閉;如果總線有對該IP核的請求,則打開原始IP核的時鐘,原始IP核進入“工作”態(tài);保持時鐘打開,直到原始IP核處于“空閑”態(tài)并且沒有總線請求,就關閉原始IP核時鐘并保持關閉,直到總線再次對該IP提出請求。
具體如下原始IP核10要從外面引入工作時鐘,在工作時鐘信號進入原始IP核10之前,增加一個邏輯電路11(圖中虛線框內(nèi)),該邏輯電路11包括與非門電路12,該與非門電路12的兩個輸入端分別連接原始IP核10的“空閑”態(tài)標志信號和總線無請求的標志信號。
鎖存器13,所述與非門電路12的輸出端連接到鎖存器13的數(shù)據(jù)輸入端,該鎖存器13的另一個輸入端(時鐘輸入端)連接工作時鐘信號,鎖存器13的輸出端連接到與門電路14的一個輸入端,與門電路14的另一個輸入端連接工作時鐘信號,與門電路14的輸出端連接到原始IP核10為其輸入工作時鐘信號。
當原始IP核10滿足圖1中虛線標明的兩個條件時關閉該IP核的時鐘,否則保持時鐘的開啟狀態(tài),即如果總線沒有對原始IP核的請求,就保持時鐘關閉;如果總線有對該IP核的請求,則打開原始IP核的時鐘,原始IP核進入“工作”態(tài);保持時鐘打開,直到原始IP核處于“空閑”態(tài)并且沒有總線請求,就關閉原始IP核時鐘并保持關閉,直到總線再次對該IP提出請求。
可見,本實施例在原始IP核10的基礎上增加一個邏輯電路并實現(xiàn)時鐘開關邏輯,就形成了一個新IP核,該核是一個低功耗IP核15,實時自動地開關整個IP核15的時鐘,減少IP核15時鐘網(wǎng)絡的跳變,從而降低IP核15的動態(tài)功耗。
進一步地,將邏輯電路11的供電電源與所述原始IP核10的供電電源隔離,該邏輯電路10還實現(xiàn)以下邏輯功能當且僅當所述原始IP核10處于“空閑”態(tài)并且沒有總線請求時,關閉原始IP核10的供電電源;否則打開原始IP核10的供電電源。這樣的低功耗IP核15能夠自動開關原始IP核10的電源,在不影響正常工作的前提下降低該IP核的漏電功耗。
實施例2圖2是本發(fā)明另一實施例對隱式的狀態(tài)描述的原始IP核的降低功耗的示意圖,說明進行低功耗改造時的具體方法。該IP核原始設計的流水線共分為3級流水線,每一級都是包含眾多寄存器位的寄存器槽。本實施例降低功耗的方法包括步驟a)將原始IP核的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài),“工作”態(tài)即非“空閑”態(tài),“空閑”態(tài)即該IP核當前沒有進行有效工作的狀態(tài)。
本實施例的原始IP核區(qū)別于大多數(shù)IP核的一個特點是,在用硬件描述語言描述的設計代碼中沒有顯式的狀態(tài)機描述,其狀態(tài)是由多級流水線的有效位隱式表示的,因此需要適當進行處理,具體如下首先對原始IP核20(圖中虛線框內(nèi))外的總線21的指令進行監(jiān)測,判斷其是否為有效的請求,如果是,“請求”信號被置1,否則置0;利用流水線1級22中的有效位寄存器,在“請求”信號被置1后的第一個時鐘上升沿到來時,設置該有效位為1,即“流水線1級有效”信號為1;隨后的兩級流水線,流水線2級23、流水線3級24分別包含一位有效位寄存器,流水線1級22的有效位寄存器的數(shù)值在下一周期傳遞給流水線2級23的有效位,流水線2級23的有效位在下一周期傳遞給流水線3級24的有效位,以此類推;將流水線1到3級的有效位作為第一或門電路25的輸入,輸出為“流水線忙”信號;將“請求”信號和“流水線忙”信號作為第二或門電路26的輸入,輸出為“時鐘使能”信號,作為低電平有效的鎖存器27的數(shù)據(jù)端輸入,外部的時鐘信號作為該鎖存器27的時鐘端輸入,鎖存器27的輸出為“門控”信號,該信號和時鐘信號作為與門電路28的兩個輸入端,輸出為原始IP核20內(nèi)部使用的時鐘。
第一或門25為三輸入,第二或門26為兩輸入,與門28為兩輸入。
由于“時鐘使能”信號由組合電路搭建,為了避免可能產(chǎn)生的時鐘毛刺(glitch)而導致IP核的工作錯誤,使用鎖存器(Latch)27和與門電路28搭建門控單元當時鐘為高電平的時候,鎖存器27關閉從而屏蔽了毛刺的傳遞;當時鐘為低電平時,鎖存器27導通,與門28將屏蔽毛刺的傳遞。
本實施例在原始IP核20的基礎上增加邏輯電路并實現(xiàn)時鐘開關邏輯,就形成了一個新IP核30,該核是一個低功耗IP核30,與原始IP核具有相同的邏輯功能和時序,可以實時自動地開關整個IP核的時鐘,減少IP核時鐘網(wǎng)絡的跳變,從而降低IP核的動態(tài)功耗。
進一步,將原始IP核20與其他邏輯電路的供電電源隔離,并且將鎖存器27輸出的“門控”信號或時鐘使能信號作為該IP核20的電源開關信號,當“門控”信號為1時,打開該IP核20的電源,為0時關閉IP核20的電源。這樣低功耗IP核30能夠自動開關原始IP核20的電源,在不影響正常工作的前提下降低該IP核20的漏電功耗。
最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實施例對本發(fā)明進行了詳細說明,本領域的普通技術(shù)人員應當理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1.一種用于片上系統(tǒng)中功能模塊的功耗降低方法,包括a)將原始功能模塊的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài),所述“工作”態(tài)為非“空閑”態(tài),所述“空閑”態(tài)為該原始功能模塊當前沒有進行有效工作的狀態(tài);b)提供一個邏輯電路與所述原始功能模塊連接構(gòu)成新的低功耗功能模塊,該邏輯電路完成如下邏輯功能如果總線沒有對原始功能模塊的請求,就保持時鐘關閉;如果總線有對該原始功能模塊的請求,則打開原始功能模塊的時鐘,原始功能模塊進入“工作”態(tài);保持時鐘打開,直到原始功能模塊處于“空閑”態(tài)并且沒有總線請求,就關閉原始功能模塊時鐘并保持關閉,直到總線再次對該功能模塊提出請求。
2.根據(jù)權(quán)利要求1所述用于片上系統(tǒng)中功能模塊的降低功耗的方法,還包括步驟c)將所述邏輯電路的供電電源與所述原始功能模塊的供電電源隔離,該邏輯電路還實現(xiàn)以下邏輯功能當且僅當所述原始功能模塊處于“空閑”態(tài)并且沒有總線請求時,關閉原始功能模塊的供電電源;否則打開原始功能模塊供電電源。
3.根據(jù)權(quán)利要求1用于片上系統(tǒng)中功能模塊的功耗降低方法,所述步驟a)中,對于在硬件描述語言中有顯式的狀態(tài)機描述的,直接將其“空閑”狀態(tài)劃為一類,其它狀態(tài)劃為“工作態(tài)”;對于在硬件描述語言中不是顯式的描述所述原始功能模塊狀態(tài),而是在各個級別的流水線中隱式地表示的,需要對流水線中的有效位寄存器的結(jié)果進行編碼,完成“空閑”態(tài)和“工作”態(tài)的劃分。
4.根據(jù)權(quán)利要求1、2或3任一項所述用于片上系統(tǒng)中功能模塊的功耗降低方法,步驟b)中所述邏輯電路包括一個低電平有效的鎖存器與一個兩輸入與門相連接;并且,當時鐘為高電平的時候,所述鎖存器關閉;當時鐘為低電平時,所述鎖存器導通,所述與門屏蔽毛刺的傳遞。
5.一種用于片上系統(tǒng)中知識產(chǎn)權(quán)核的功耗降低方法,包括a)將原始知識產(chǎn)權(quán)核的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài),所述“工作”態(tài)為非“空閑”態(tài),所述“空閑”態(tài)為該知識產(chǎn)權(quán)核當前沒有進行有效工作的狀態(tài);b)提供一個邏輯電路與所述原始知識產(chǎn)權(quán)核連接構(gòu)成新的低功耗知識產(chǎn)權(quán)核,該邏輯電路完成如下邏輯功能如果總線沒有對原始知識產(chǎn)權(quán)核的請求,就保持時鐘關閉;如果總線有對該知識產(chǎn)權(quán)核的請求,則打開原始知識產(chǎn)權(quán)核的時鐘,原始知識產(chǎn)權(quán)核進入“工作”態(tài);保持時鐘打開,直到原始知識產(chǎn)權(quán)核處于“空閑”態(tài)并且沒有總線請求,就關閉原始知識產(chǎn)權(quán)核時鐘并保持關閉,直到總線再次對該知識產(chǎn)權(quán)核提出請求。
6.根據(jù)權(quán)利要求5用于片上系統(tǒng)中知識產(chǎn)權(quán)核的功耗降低方法,還包括步驟c)將所述邏輯電路的供電電源與所述原始知識產(chǎn)權(quán)核的供電電源隔離,該邏輯電路還實現(xiàn)以下邏輯功能當且僅當所述原始知識產(chǎn)權(quán)核處于“空閑”態(tài)并且沒有總線請求時,關閉原始知識產(chǎn)權(quán)核的供電電源;否則打開原始知識產(chǎn)權(quán)核供電電源。
7.根據(jù)權(quán)利要求5或6用于片上系統(tǒng)中知識產(chǎn)權(quán)核的功耗降低方法,所述步驟a)中,對于在硬件描述語言中有顯式的狀態(tài)機描述的,直接將其“空閑”狀態(tài)劃為一類,其它狀態(tài)劃為“工作態(tài)”;對于在硬件描述語言中不是顯式的描述所述原始知識產(chǎn)權(quán)核狀態(tài),而是在各個級別的流水線中隱式地表示的,需要對流水線中的有效位寄存器的結(jié)果進行編碼,完成“空閑”態(tài)和“工作”態(tài)的劃分。
8.根據(jù)權(quán)利要求5用于片上系統(tǒng)中知識產(chǎn)權(quán)核的功耗降低方法,步驟b)中所述邏輯電路包括一個低電平有效的鎖存器與一個兩輸入與門相連接;并且,當時鐘為高電平的時候,所述鎖存器關閉;當時鐘為低電平時,所述鎖存器導通,所述與門屏蔽毛刺的傳遞。
9.根據(jù)權(quán)利要求7用于片上系統(tǒng)中知識產(chǎn)權(quán)核的功耗降低方法,步驟b)中所述邏輯電路包括一個低電平有效的鎖存器與一個兩輸入與門相連接;并且,當時鐘為高電平的時候,所述鎖存器關閉;當時鐘為低電平時,所述鎖存器導通,所述與門屏蔽毛刺的傳遞。
10.根據(jù)權(quán)利要求5、6或9中之一所述用于片上系統(tǒng)中知識產(chǎn)權(quán)核的功耗降低方法,所述邏輯電路包括與非門電路(12),該與非門電路(12)的兩個輸入端分別連接原始知識產(chǎn)權(quán)核(10)的“空閑”態(tài)標志信號和總線無請求的標志信號;鎖存器(13),所述與非門電路(12)的輸出端連接到鎖存器(13)的數(shù)據(jù)輸入端,該鎖存器(13)的另一個輸入端連接工作時鐘信號,鎖存器(13)的輸出端連接到一個與門電路(14)的一個輸入端,所述與門電路(14)的另一個輸入端連接工作時鐘信號,所述與門電路(14)的輸出端連接到原始知識產(chǎn)權(quán)核(10)為其輸入工作時鐘信號。
全文摘要
本發(fā)明公開了一種SoC中各種知識產(chǎn)權(quán)核和功能模塊的功耗降低方法。包括a)將原始功能模塊的所有狀態(tài)分為兩類——“空閑”態(tài)和“工作”態(tài);b)提供一個邏輯電路與所述原始功能模塊連接構(gòu)成新的低功耗功能模塊,該邏輯電路完成如下邏輯功能如果總線沒有對原始功能模塊的請求,就保持時鐘關閉;如果總線有對該原始功能模塊的請求,則打開原始功能模塊的時鐘,原始功能模塊進入“工作”態(tài);保持時鐘打開,直到原始功能模塊處于“空閑”態(tài)并且沒有總線請求,就關閉原始功能模塊時鐘并保持關閉,直到總線再次對該功能模塊提出請求。本發(fā)明降低IP核的動態(tài)功耗,同時自動開關該IP核的電源,降低該IP核的漏電功耗。
文檔編號G06F1/32GK101078950SQ200610080968
公開日2007年11月28日 申請日期2006年5月26日 優(yōu)先權(quán)日2006年5月26日
發(fā)明者常曉濤, 張明明, 艾霞, 張志敏 申請人:中國科學院計算技術(shù)研究所