一種用于執(zhí)行電路仿真中動態(tài)負載平衡的方法及裝置制造方法
【專利摘要】一種用于執(zhí)行電路仿真中動態(tài)負載平衡的方法和系統(tǒng)。在一個實施例中,一個用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,包括識別被執(zhí)行的多個電路仿真任務、確定對應于多個仿真任務的性能的執(zhí)行持續(xù)時間估計、根據每個仿真任務的執(zhí)行持續(xù)時間估計為多處理器分配多個仿真任務的方法、以及在多個處理器并行執(zhí)行多個仿真任務。
【專利說明】一種用于執(zhí)行電路仿真中動態(tài)負載平衡的方法及裝置
【技術領域】
[0001] 本發(fā)明涉及的領域是電子設計自動化,具體而言,本發(fā)明涉及一種用于執(zhí)行電路 仿真中動態(tài)負載平衡的方法及裝置。
【背景技術】
[0002] 集成電路是由例如電阻、電容、電感器、互感器、傳輸線、二極管、雙極結型晶體管 (BJT)、結型場效應晶體管(JFET)、金屬氧化物半導體場效應晶體管(M0SFET)、金屬T半導 體場效應晶體管(MESFET )、薄膜晶體管(TFT )等電路元件構成的網絡。
[0003] 隨著技術的發(fā)展,集成電路越來越復雜,需要使用強大的數值模擬程序。例如,電 路仿真是集成電路的設計流程中必不可少的環(huán)節(jié),它能幫助電路設計人員無需通過昂貴 的制造工藝驗證其設計的功能和性能。隨著半導體加工技術發(fā)展到納米尺寸,新的仿真 方法需要解決納米級電路設計所固有的新問題?,F(xiàn)代集成電路快速發(fā)展、更新?lián)Q代,不斷 挑戰(zhàn)著電路仿真的算法和實現(xiàn)。半導體行業(yè)需要EDA軟件有能力來分析與動態(tài)電流相關 的納米效應,比如稱合噪聲(coupling noise)、接地反彈(ground bounce)、傳輸線波傳播 (transmission line wave propagation)、動態(tài)漏電流(dynamic leakage current)、電源 電壓降(supply voltage drop)、器件和電路的非線性行為等。因此,精準的電路模擬和晶 體管級仿真已經成為解決納米設計所面臨問題的最有效的途徑之一。
[0004] 電子電路仿真器包括美國加州大學伯克利分校(UC Berkeley)開發(fā)的面向集成電 路的仿真程序-SPICE (Simulation Program with Integrated Circuit Emphasis)以 及各種增強或衍生版本的SPICE仿真程序。SPICE及其增強、衍生版本將在本文被簡稱為 SPICE電路仿真器或SPICE。SPICE方法認為電路是一個不可分割的整體。
[0005] SPICE仿真可以提供對電路行為相當準確的預測。這種預測不局限于個別的子電 路,它涵蓋整個系統(tǒng)(例如,整個集成電路),因而可以發(fā)現(xiàn)、處理全系統(tǒng)范圍關于噪聲之類 的問題。一般的SPICE仿真處理流程,模擬集成電路通常被表示為一個網表描述的形式。網 表是一種由SPICE語言編寫的用于仿真的對模擬電路的電路描述。SPICE網表是包含仿真 控制語句的純結構性語言。其他語言如Verilog-ATM,還具有行為構建的能力。通過結構性 網表,連同預定義電路元件,根據特定的電路建模方法(在本申請中不再詳述),SPICE可以 將模擬集成電路據表示為矩陣形式的數學表達。非線性微分方程解的維度范圍從1到η。 線性方程組的η維輸入向量被表示為{I1,I2,..In}。由輸入向量,可以求得線性矩陣的解 向量{VI,V2,..Vn}。由解向量,通過電路模型方法,可以得到另一組輸入向量。重復以上 計算,直到解向量收斂。一系列的解向量,可以轉換輸出為波形、測量值或者核查結果,這樣 工程師就可以通過計算機屏幕檢查仿真的結果。
[0006] 然而,隨著集成電路行業(yè)的發(fā)展,器件尺寸不斷減小、互聯(lián)效應日益增加,SPICE全 系統(tǒng)仿真變得越來越困難。一個例子是晶體管溝道長度微米尺寸變化為深亞微米尺寸。由 于更小的器件尺寸,電路設計者在集成電路中能夠運用電路元件(例如,晶體管、二極管、電 容)數量呈指數級增長,對應于SPICE矩陣的維數也量級增長,巨大的計算復雜度使得計算 不能在有效時間內完成。
[0007] -個電路可以表示為大規(guī)模離散非線性矩陣用于分析瞬間電流。矩陣維數和電路 中節(jié)點的數目相同。對于瞬態(tài)分析,這個巨大的非線性系統(tǒng)需要求解幾十萬次,這限制了 SPICE方法的容量和性能。一般的SPICE方法可以模擬不超過約50, 000個節(jié)點的電路。因 此,對于全芯片設計,SPICE方法不可行。SPICE在實際應用中被廣泛應用于單元設計、庫生 成和準確性驗證。
[0008] 相對于傳統(tǒng)SPICE,在20世紀90年代初開發(fā)的快速SPICE方法(Fast SPICE)在 一定精度損失的情況下,有兩個數量級以上的容量和速度提升。性能上的提升主要由于使 用簡化模型、電路劃分技術、事件驅動的算法以及對電路延遲的利用。
[0009] SPICE將電路模型化為節(jié)點、元件集,也就是說一個電路被視為通過節(jié)點相連接的 各種電路元件的集合。SPICE的核心是所謂的節(jié)點分析,通過節(jié)點方程(或者電路方程)以 矩陣形式表示電路,求解節(jié)點方程對電路進行仿真。電路元件被表示為器件模型,產生表現(xiàn) 為電路方程的矩陣元素的模型解。
[0010] 電路元件的器件模型模擬,比如加州大學伯克利分校開發(fā)M0SFET器件SPICE模 型,通常以模型方程和模型參數表示在變化偏置電壓下的電路元件特性。例如,具有η個端 子的電路元件,可以由下述的電流-電壓關系建模:
[0011] Ii = fi (Vi,· · ·,Vn,t),其中 i=l,…,η,
[0012] L表示流入第i個端口的電流,Vj(j=l, ···,]!)表示電壓或者端口 j相對于參考端 口(例如地)的偏置電壓,t表示時間。由基爾霍夫電流定律,流入端口 η的電流為
【權利要求】
1. 一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其特征在于包括: 識別要被執(zhí)行的復數個電路仿真任務; 確定對應于所述復數個仿真任務性能的執(zhí)行持續(xù)時間估計; 根據每個仿真任務的所述執(zhí)行持續(xù)時間估計為復數個處理器分配所述復數個仿真任 務; 在所述復數個處理器并行執(zhí)行所述復數個仿真任務。
2. 權利要求1所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 復數個仿真任務包括: 模型計算任務,加載矩陣任務和求解矩陣任務。
3. 權利要求1所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 確定執(zhí)行持續(xù)時間估計包括: 測量電路實時活躍程度的變化; 測量電路實時活動激勵的變化; 識別電路中休眠部分; 省略電路休眠部分的模型計算; 省略電路休眠部分的矩陣求解。
4. 權利要求1所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 分配所述復數個仿真任務至少包括以下之一: 根據執(zhí)行持續(xù)時間估計排序所述復數個仿真任務; 根據測量的執(zhí)行持續(xù)時間排序所述復數個仿真任務。
5. 權利要求1所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 執(zhí)行復數個仿真任務包括: 根據對應于所述復數個仿真任務性能的執(zhí)行持續(xù)時間估計生成降序序列; 依照所述執(zhí)行持續(xù)時間估計的降序序列執(zhí)行所述復數個仿真任務,其中執(zhí)行持續(xù)時間 估計最長的仿真任務最先處理。
6. 權利要求1所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 進一步包括: 將所述復數個仿真任務分割為相應的復數個子任務; 將所述相應的復數個子任務存儲于一個任務隊列; 將所述任務隊列中的相應的復數個子任務分配給復數個處理器以使處理與相應的復 數個子任務的仿真時間相一致。
7. 權利要求6所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 分割所述復數個仿真任務包括: 將模型計算任務分割為多個模型計算子任務; 將加載矩陣任務分割為多個加載矩陣子任務; 將求解矩陣任務分割為多個求解矩陣子任務。
8. 權利要求7所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 將加載矩陣任務分割為多個加載矩陣子任務包括 : 獲取多個模型計算任務的記錄; 對每個模型計算任務遍歷矩陣中的每個位置并加載模型計算的輸出到矩陣中。
9. 權利要求7所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其中 將加載矩陣任務分割為多個加載矩陣子任務進一步包括 : 將層次式數據結構中不同層的加載矩陣任務分配到所述復數個處理器中; 所述復數個處理器并行執(zhí)行矩陣加載任務。
10. 權利要求9所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的計算機實現(xiàn)方法,其 中執(zhí)行多個加載矩陣任務包括: 所述復數個處理器并行加載矩陣中多個位置。
11. 一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其特征在于包括: 一個或多個處理器; 一個或多個處理器控制的動態(tài)負載平衡模塊;其中所述動態(tài)負載平衡模塊包括: 識別要被執(zhí)行的復數個電路仿真任務的邏輯; 確定對應于所述復數個仿真任務性能的執(zhí)行持續(xù)時間估計的邏輯; 根據每個仿真任務的所述執(zhí)行持續(xù)時間估計為所述復數個處理器分配所述復數個仿 真任務的邏輯; 在所述復數個處理器并行執(zhí)行所述復數個仿真任務的邏輯。
12. 權利要求11所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中所述復數 個仿真任務包括: 模型計算任務,加載矩陣任務和求解矩陣任務。
13. 權利要求11所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中確定所述 執(zhí)行持續(xù)時間估計的邏輯包括: 測量電路實時活躍程度的變化的邏輯; 測量電路實時活動激勵的變化的邏輯; 識別電路中休眠部分的邏輯; 省略電路休眠部分的模型計算的邏輯; 省略電路休眠部分的矩陣求解的邏輯。
14. 權利要求11所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中分配所述 復數個仿真任務的邏輯包括以下之一: 根據執(zhí)行持續(xù)時間估計排序所述復數個仿真任務的邏輯;以及 根據所述測量的持續(xù)時間排序所述復數個仿真任務的邏輯。
15. 權利要求11所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中執(zhí)行所述 復數個仿真任務的邏輯包括: 根據對應于所述復數個仿真任務性能的執(zhí)行持續(xù)時間估計生成降序序列的邏輯;以及 依照所述執(zhí)行持續(xù)時間估計的降序序列執(zhí)行所述復數個仿真任務,其中所述執(zhí)行持續(xù) 時間估計最長的仿真任務最先處理的邏輯。
16. 權利要求11所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中進一步包 括: 將所述復數個仿真任務分割為相應的復數個子任務的邏輯; 將所述相應的復數個子任務存儲于一個任務隊列的邏輯; 將所述任務隊列中的相應的復數個子任務分配給所述復數個處理器以使處理與相應 的復數個子任務的仿真時間相一致的邏輯。
17. 權利要求16所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中分割所述 復數個仿真任務的邏輯包括: 將模型計算任務分割為多個模型計算子任務的邏輯; 將加載矩陣任務分割為多個加載矩陣子任務的邏輯;以及 將求解矩陣任務分割為多個求解矩陣子任務的邏輯。
18. 權利要求17所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中將加載矩 陣任務分割為多個加載矩陣子任務的邏輯包括: 獲取多個模型計算任務的記錄的邏輯;以及 對每個模型計算任務遍歷矩陣中的每個位置并加載模型計算的輸出到矩陣中的邏輯。
19. 權利要求17所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中將加載矩 陣任務分割為多個加載矩陣子任務的邏輯進一步包括: 將層次式數據結構中不同層的加載矩陣任務分配到所述復數個處理器中的邏輯;以及 復數個處理器并行執(zhí)行矩陣加載任務的邏輯。
20. 權利要求19所述的一種用于執(zhí)行電路仿真中動態(tài)負載平衡的裝置,其中執(zhí)行多個 加載矩陣任務的邏輯包括: 所述復數個處理器并行加載矩陣中多個位置的邏輯。
21. -種用于執(zhí)行電路仿真中動態(tài)負載平衡的系統(tǒng),其特征在于包括: 識別要被執(zhí)行的復數個電路仿真任務的方法; 確定對應于所述復數個仿真任務性能的執(zhí)行持續(xù)時間估計的方法; 根據所述每個仿真任務的執(zhí)行持續(xù)時間估計為復數個處理器分配所述復數個仿真任 務的方法; 在所述復數個處理器并行執(zhí)行所述復數個仿真任務的方法。
【文檔編號】G06F9/455GK104111871SQ201310131869
【公開日】2014年10月22日 申請日期:2013年4月16日 優(yōu)先權日:2013年4月16日
【發(fā)明者】B·W·麥克高非, 楊釗志 申請人:濟南概倫電子科技有限公司