2024-10-21|閱讀時間 ‧ 約 0 分鐘

[Verilog] 10分鐘看懂IC design的low power design - 2 (原創)


  1. Voltage island

字面上的意思為電壓島,

概念上是把不同function的module給予不同的driving volatge

然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快

也就是說,當你希望邏輯運算的越快,原則上就需要給他越大的電壓,造成較大的耗電

當fuction面上如果沒有高速運算的需求,則給他較低的電壓,即可達成省電的效果

以下圖為範例

cpu上切成一塊一塊不同功能的block

2個high-performance cores

4個high-efficency cores

1個usb controller

6個gpu cores

因為各個function所需最快的clk period皆不同

以usb來說data的吞吐量一定遠小於cpu和gpu

因此如果和cpu使用一樣的driving voltage就會產生多餘的耗電

以high performance cpu和gpu來說

資料運算晾一定非常的大,因此必須提供他最高的driving volatge,好確保data運算的效能無虞

以effifiency cpu來說

功能上的配置可能希望達到一個power和算力的平衡,運作在較輕載的場景下,因此不用給到像high performance cpu一樣的電壓即可滿足spec


因此voltage island最大的精神就在說

不希望所有的module都用一樣的driving voltage,因為實際上並不是所有的module在使用上都需要有一樣的throghput,因此可以根據module的特性給予他足夠的driving voltage即可


  1. DVFS

DVFS 全名為 dynamic voltage and frequency scaling

意思為對於電壓及頻率上根據不同的場景做一個動態的切換調整

前面voltage island提到說,

high performance cpu因為需要運算龐大的資料量所以需要給他一個較高的driving volatge,好讓他可以在高頻下正常運作,假設為Vhp=0.9V配工作頻率1200MHz

但是應用上不不會永遠都會需要這種極端的運算能力,

有時候只是單純觀看影片或玩輕載的遊戲時,或許只需要他最高算力的一半而已

因此這時候給他0.9V,1200MHz極為效能過剩,

有沒有機會不要殺雞用牛刀呢

這時除了用high efficiency core之外還有個方法

就是我們嘗試降地它的driving voltage和frequency

可能只需要給他0.75V和800MHz即可滿足目前的需求

因此就省下了效能過剩導致的供電浪費

因此當voltage island和DVFS都應用於設計中時,

上圖的範例看起來可能就會變成這樣

每個block不僅僅只有各自的供電,還可以依據不同的使用狀況調整所需的供電


  1. Multi-Vt

先前如何解hold time violation文章中曾提及過

同樣的製程來說,每個cell都會提供不同type讓使用者作挑選,

其本質上的差異即為製造時對CMOS doping的濃度

製造出不同threshold voltage的cell

速度越快的cell有著耗電越大的特性


這樣的話,我想省電是不是全部都用HVT type的cell就好?


答案是理論上確實是這樣沒錯,

但是有個很重要的關鍵,

前面提到說DVFS可以根據不同的場景做電壓和頻率的挑選,

在ic deisgn中cell的driving voltage越高可以跑得越快

因此如果我的DVFS定的不合哩,讓cell處於一個低壓卻要跑高頻的時候,

此時的cell type就會因為要滿足setup time / hold time sign off的需求

被迫使用Low Vt的cell,藉由將低Cell的反應時間來盡可能的滿足timing 需求,

因此為了要達到真正的省電,DVFS各個檔位和頻率的選擇非常重要,

沒有選好會出現代償效應,靠Multi-Vt的方式來解決timing issue




想一個小問題

是不是有辦法把power gating的概念也融入DVFS的範例圖中呢?

另外有沒有一種方法是可以做到power gating

卻在需要喚醒時可以迅速恢復成前一刻的狀態呢?

..

..

.

實際上是有的

付費訂閱
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.