低功耗设计(一)
? ? ? ? 要進行低功耗設計,首先就要清楚設備的低功耗出現在哪里,都有什么形式的低功耗,這方面看過一些論文或者一些博文的已經非常清楚了,首次啟動的驅動電流,靜態功耗,動態功耗三種。
? ? ? ? 首次啟動的驅動電流就是大型設備第一次上電時那股巨大的浪涌電流,這會造成很大的功耗,但是對于數字的IC設計而言,這部分我們是難以解決的,一般是這個做這個設備的底層解決的。
? ? ? ? 靜態功耗就是因為MOS管由于泄露電流造成的功耗,這方面的功耗隨著工藝的進步越來越大。動態功耗或者開關功率是門輸出切換時由于邏輯變換而引起的功率。
????????
? ? ? ?是門的電容;
? ? ? ? S是每個時鐘周期整個電路的平均轉換次數。
? ? ? ? ?是時鐘頻率
????????是供應的電源電壓
門在切換時電容會充放電這就導致了動態功耗,對于整個ASIC而言,其整體功耗就是動態功耗加上靜態功耗。
? ? ? ? 對于以往的典型應用動態功耗可能占整個ASIC功耗的80%,但是隨著工藝的進步,靜態功耗所占的比重也越來越大。
????????
根據上圖,從下而上,在不同的設計層次對整個功耗的影響越來愈大。
在這個圖中的每一個設計層次都必須考慮到功耗問題。
第一個層次是系統級層次:在這個層次的決策主要依賴于應用程序,例如可以選擇基于緩存的內存或集中式內存。
第二個層次是體系架構級層次:必須決定實現并行化部署還是流水線式的部署,并行部署整體效率更高,速度更快,流水線式的部署可以通過多路復用的方式減少能耗,降低資源消耗,但是相對于并行化的部署架構整體處理速度相對較低。
第三個層次是邏輯和布局的層次,在綜合時選擇工藝庫和不同的網表對這步至關重要。
第四個層次是物理層面,必須選擇合理的布局優化計數。
系統級層面使用SOC的一個很大好處就是降低了功耗,怎么說呢,其實做ASIC應該都很清楚,IO口的面積還有電壓都非常大,尤其是IO電壓,要不CORE電壓大不少,但是如果使用SOC級數,在系統級層面連接各類接口,減少了接口數量,從而大大降低了功耗,這一點很重要。
軟硬件協同技術,處理器放在系統中,一些功能可以放在硬件里面實現,還有一些功能也可以放在軟件里面實現,在現代的通信算法中,算法越來越傾向于遞歸實現,這就意味著硬件邏輯90%的時間都是在執行10%的功能代碼,如何去識別這些一直在工作,或者在執行的代碼,是一門技術,對這些代碼塊我可以采用工藝庫中較低閾值的單元,增加處理速度,對另外的一些沒有在工作的,或者是工作時間較少的代碼塊,我利用時鐘門控類似的技術直接讓其休眠,并對其工藝單元采用高閾值單元,從而降低靜態功耗,降低總體功耗。
?標準的軟硬協同的設計步驟,設計說明,設計劃分,軟硬件功能描述,軟硬件接口說明等等。
? ? ? ?架構級的低功耗技術:
1.時鐘門控技術:
對時鐘進行使能,在翻轉率沒有,或者使用率極低模塊上直接讓其使能為零,讓其休眠。
選通時鐘來禁用電路的重要部分,時鐘門控技術在CPU,GPU這些設計上確實能降低很大的功耗,但是在某些信息處理的ASIC設計當中,由于ASIC是一直在進行信息調制,基本上不存在休眠的時候,只可能某些用于初始化的配置模塊在后續的信息調制中處于休眠狀態,另外對于加入了時鐘門控技術,雖然降低了功耗,但是相當于多加了觸發器,所以面積上也會增加,另外時鐘門控技術是針對時鐘進行處理的,這就帶來的一個很重大的問題是對時鐘進行組合邏輯處理必然會帶來時延,這對與時序上有些情況是不能接收的,所以對于時鐘門控選項要慎重,在某些小型化的ASIC設計當中,還是優先保證時序暢通,在考慮功耗的影響。
2.DVFS技術:動態電壓及頻率縮放
這是提高系統能效的一種有效方法,而且在學術界,這種方法已經被研究了很長一段時間了,這種方法通過在頻率不敏感的應用階段降低時鐘速度和電源電壓,可以在性能損失不大的情況下實現功率的大幅度降低。
但是這項技術也得慎用,DVFS是通過調整電壓頻率來降低功耗的,但是某些ASIC設計當中是不能這樣做的,同一個模塊在一個可變的頻率下工作,很容易造成亞穩態。電壓縮放也要依賴于特殊硬件設備實現,特別是可編程的DC-DC開關電壓調節器,可編程時鐘發生器和具有寬工作范圍的高性能處理器,使用高性能處理器去處理調節,處理器在正常的電壓和頻率下運行,負載較低時,工作頻率較低,滿足計算要求。
3.緩存體系結構
簡單來說就是對于DSP,CPU,GPU這類硬件設備中加入高速緩存區,就是加入一級Cache,在進行高速訪問的時候通過這些緩存區,在訪問較慢的數據中存放在二級Cache中。
4.使用對數系統運算
對于具有復雜運算的硬件設備,使用對數系統進行運算而不是線性系統進行運算更加快速。使用對數系統運算的好處在于通過使用加減運算實現乘除運算,要比線性系統的直接乘除會降低很大的功耗。
5.電壓域選通(功率選通)。
這就是對某些不活躍的模塊或者說不工作的模塊,直接關掉電壓供應,因為模塊在有電壓工作的時候會有泄露電流產生,而泄露電流會造成很大的一部分功耗,功率選通就可以完美的解決這一問題,直接把電壓供應給關掉,而且對于現在越來越先進的工藝水平而言,泄露電流非常大,這種方法也就完美的解決了這一問題,電壓選通,或者說功率選通 往往是通過在芯片上加入開關,根據應用需求可以有選擇的關閉開關,這里面的開關選項還分為兩種,一種是細粒度功率門和粗細度功率門。
這些功率門的實現一般會在晶體管上標準單元庫和EDA工具都會有這種選項,在綜合時直接加入就可以,或者在后端設計當中加入。這種功率門的方法主要針對的也是泄露電流的影響,
粗細粒度的主要區別在于,細粒度直接加入到晶體管上去控制,而粗粒度是加入配電網絡上,粗粒度創建一個電源開關網絡,但其本質上是一組開關晶體管,可以并行的打開和關閉整個模塊。
細粒度很大程度依賴于基本單元庫,因為這個是直接加入到晶體管上的,是直接作用到底層的器件上的,而粗粒度主要依賴于EDA工具的處理能力。
功率選通還需要為電壓域關和電壓域開的邏輯或信號插入隔離單元,保證設計完整,避免功率損失,當一個模塊電源關閉時,輸出將轉到一個仍然通電的模塊,斷電節點浮動,他們可以浮動到閾值電壓并產生不需要的電流,隔離單元可以在RTL中進行設置,也可以使用EDA工具直接插入,EDA工具插入主要是在綜合過程和Place和Route期間。
6.多閾值電壓
就是單元庫中的處理單元有多個電壓域,閾值電壓高就不易導通,漏電流小,但速度慢,適用于不活躍的模塊,相反閾值電壓低易導通,速度快,但漏電流大,這非常有助于處理泄露和動態電源。
高閾值電壓電池的漏電流比低閾值電壓電池少50%,但無不良副作用。
在具體設計當中如果使用到多閾值電壓單元庫就要根據不同的功能設置不同的EDA策略,讓EDA工具處理達到最佳的性能,一般在設計如果以功能目標為先,則應該首先使用低閾值電壓單元使功能首先滿足要求,再根據設計當中不需要最高性能和低壓電池的路徑,并用高壓電池替換,從而減少總體功率和設計泄露,低閾值電壓單元的結果改變單元庫的使用。如果電源是應用程序的主要目標,并且面積的增加不成問題,則應該首先使用高閾值電壓單元運行合成,找到關鍵路徑再用低壓單元替換高壓單元,直到達到性能目標。
7.多電源電壓
就是將設計按照不同的時序性能要求,分為多個電壓域,不同的區間使用不同的電壓域,每個域根據時序要求使用不同的電源電壓運行。
如今的EDA工具都提供了插入電平移位器的功能,在設計過程中直接對EDA工具命令,在設計當中插入電平移位器實現不同的電壓域模型。
8.存儲器的門控
在大型的SOC設計當中,存儲器SRAM,占據了功耗的很大一部分,這個觀點的意思就是,對存儲器加入門控,對于小內存就是一直打開的一部分內存,還有大內存,只有在執行密集型任務才會開機的內存。而且對于較大的內存也可以分割成多個較小的內存,總的讀取周期數是相同的,但是每個小內存讀取的周期消耗的能量將低很多
總結
- 上一篇: 招聘小程序制作:连接人才与企业
- 下一篇: 面试题集锦(非常适合初中级测试工程师)