在過去的幾年中,諸如“多線程”,“多處理”和由此衍生出的市場術語等術語已開始作為現有電子設計自動化(EDA)軟件的功能出現。同時,廉價的計算資源的可用性(最好地體現在當今可用的多核中央處理器(CPU)中)可以提供一種經濟有效的方式來減少EDA軟件的運行時間。
物理設計和物理驗證軟件是需要此類技術的計算密集型EDA應用程序的示例。一個示例是典型的蒙版,其中可能包含數十億個物理幾何形狀。必須創建掩模布局中的每個幾何圖形,設計自定義庫,然后放置和布線,并將其組裝成完整的芯片。每種幾何形狀都必須經過驗證,以符合鑄造廠的制造要求,同時還要面對越來越多的復雜設計規則。對于現代設計,單CPU運行時間很容易超過數百小時。顯然需要并行處理。
兩種眾所周知的趨勢-設計復雜性和制造復雜性-每年都使挑戰變得更大。例如,從90納米(nm)遷移到65納米工藝節點的設計人員發現設計檢查的復雜性增加了3倍。過渡到45納米和40納米的過程更加復雜,因為制造工藝自由度的降低使設計規則檢查(DRC)的設計和驗證軟件變得更加復雜。復雜的線路末端以及通過由亞波長光驅動的配置規則光刻問題就是很好的例證?,F在,單個度量是規則,方程式或模型中包含的一組復雜度量。
由于需要并行設計和分析來避免設計進度表的延遲,因此計算負擔更加復雜。進行物理設計然后運行單獨的物理驗證階段也不再足夠。由于制造規則的復雜性,在物理設計過程中需要進行所有層,規則和簽核檢查。如果不這樣做,在完成布局布線后,設計團隊將清理DRC或布局與原理圖(LVS)錯誤,這將導致代價高昂的設計延遲,從而在引入并發時增加了另一層次的復雜性。
最后,按時交付項目的需求至關重要-尤其是在今天,開始的設計較少,掩膜成本較高且如果錯過了市場窗口,財務后果將非常嚴重。
隨著復雜度的增加,設計時間必須保持恒定,如果不能改善的話。所有公司都希望事半功倍。
當今的目標設計是在40納米處,頂層具有1億個單元實例,并且具有內存和模擬/混合信號內容的混合。有效設計和驗證的計算復雜度增加了6倍,這使得使用傳統流程幾乎無法完成65納米設計變得極為耗時。
交付解決方案需要新的軟件架構,該架構必須具有靈活的靈活性,以實現跨大量CPU內核的線性可伸縮性,以及強大的數據模型,可以在設計和驗證之間進行并發。
所需的解決方案
硬件供應商面臨這樣的現實,即由于功率限制而無法持續增加時鐘頻率,因此已經采用并行機制來提高性能??紤]在多插槽主板中使用多核CPU。圖形處理器單元(GPU)是高度并行的單指令多數據(SIMD)機器,并且具有適當的應用程序編程接口(API)(例如NVIDIA的CUDA接口或AMD的ATIStream)是通用計算的潛在強大解決方案。
針對軟件供應商的解決方案是有效地利用這些資源,這取決于軟件使用硬件的能力以可負擔的方式加速計算,也就是說,無需昂貴的定制硬件解決方案。當需要大量內存,軟件被約束為只能在一臺計算機上運行或者需要昂貴的自定義互連時,會產生成本。
例如,可以以低于5,000美元的價格購買配置合理的八核x86Linux計算機,該計算機具有雙CPU和64GB內存。將內存占用空間增加到此之外是很昂貴的-達到128GB或更高的成本會使該基本配置的成本達到40,000美元或更高。
理想的解決方案將在標準配置(64GB)或低端配置(32GB或16GB)的四核或八核Linux計算機的標準網絡上線性擴展。線性可伸縮性意味著在四臺計算機上運行將比在兩臺計算機上運行快4倍。幸運的是,如今此類Linux計算場很普遍,負載共享工具(LSF)或GRID分布式計算可用于動態調度大量軟件應用程序的作業,從合成和電路仿真到物理設計和驗證。
物理驗證的參考解決方案
物理驗證工具在設計的布局上執行幾何分析,以驗證可制造性。DRC是這些分析的很大一部分,一個簡單的示例是檢查一根導線到另一根導線的間距。
傳統的物理驗證工具依賴于標準的“數據庫”方法進行此類計算。該技術很簡單-設計師以快速可搜索的數據結構表示布局,并查詢相鄰的幾何形狀以檢查導線之間的距離。
跨多個CPU內核加速這種類型的計算似乎微不足道-設計人員可以并行計算許多導線的距離。實際上,如果所有CPU都在同一臺計算機上并且該計算機具有足夠的內存來完全表示布局,則此方法可以很好地擴展。
不幸的是,設計的大小使得這兩個假設現在都無效。首先,如果規則復雜,則簡單的分而治之的方法將不起作用。在65納米和45/40納米,基于連接的新檢查很常見,以反映需要電連接以確保可制造性和可靠性。
其次,幾何形狀的數量使得一臺機器沒有足夠數量的CPU內核來滿足周轉時間要求。通過計算,在標準Linux網絡上從一臺計算機到另一臺計算機查詢數據庫效率很低。
最后,布局數據庫的大小(在許多40nm設計中為100GB以上)使得數據庫方法需要使用昂貴的高內存硬件來使用此計算方法。有些工具需要256GB的計算機。
最近,計算機科學家宣傳了一種稱為數據流或流架構的不同方法。在進行物理驗證的情況下,布局不表示為數據庫,而是表示為幾何流,這在很大程度上類似于MP3文件是聲音流而不是音符集合。
流方法的優點是它對多核,多CPU和多計算機設置友好。由于不再依賴于內存數據庫,因此處理核在何處不再重要-它們可以位于不同的裸片,不同的封裝,不同的主板或不同的機器上。
流架構支持并行性,并行性可以從一個內核擴展到四個內核,從16個內核擴展到64個內核,甚至更高。作為獨立物理驗證軟件的指南,需要在16個核上實現線性可擴展性,以在65nm節點上實現有效的周轉時間。對于45/40-nm,需要32核到64核的可伸縮性,而有效的32/28-nm全芯片驗證將需要128核。
第二個優點是,由于沒有中央布局數據庫,流傳輸體系結構的內存使用率較低。正如大多數設計人員所知,即使將內存使用量減少2倍,也可以使現有硬件的快速運行與死機并需要昂貴的硬件升級或導致較長的計劃延遲之間產生差異。流技術使設計人員能夠將大型應用程序用于需要大內存的應用程序(例如,簽核時序分析程序),并可以將標準硬件用于高效的流應用程序。
第三個優點是,即使在單個CPU內核上,它們也可以比傳統數據庫方法更快地運行。從本質上講,數據庫方法涉及從CPU到主內存數據庫的隨機查詢。計算機算法可以提高這種查詢的算法復雜度(例如O(logn),其中n是幾何數)。CPU等待內存請求返回的查詢速度受到阻礙-從L1緩存到L2緩存再到主內存,甚至可能到磁盤交換。
流體系結構使所有數據保持本地化(通常在CPU緩存限制之內),這比獲取主內存至少提供10倍的優勢。盡管并非所有時間都在花費EDA軟件來等待內存提取,但很明顯,流技術可用于甚至提高單CPU效率。
流式架構的一個缺點就是它的強度。因為沒有集中的內存數據庫,所以需要非本地化數據的操作可能會很復雜。例如,如果所需的計算是從設計中獲取兩個隨機對象,則假定數據已加載到內存中,則大型存儲計算機上的數據庫方法將更快。
物理驗證應用程序-從DRC(包括基于天線和連接性的檢查,到LVS到電氣規則檢查),都可以進行流計算。對于基于連接的操作(例如天線檢查或電壓相關的網絡檢查),每個網絡都可以可視化為相互連接的幾何流。
用于物理驗證的流傳輸架構的一個示例是Magma的QuartzDRC和QuartzLVS。與傳統的物理驗證工具不同,Quartz是針對大型并行計算而編寫的。大多數其他工具都依賴于在1980年代和1990年代設計該軟件時普遍適用于計算服務器環境的架構。
在這里,CPU內核的數量從一個或基線增加到64個。相對速度繪制在Y軸上。線性可擴展的應用程序遵循45度線-4倍于CPU數量4倍的速度。如圖所示,流工具可以在標準LSF環境中線性擴展。相比之下,只要所有計算都可以在同一臺機器上完成,傳統的數據庫方法就可以合理地擴展。超過一定點后,可伸縮性就會減弱,并最終達到飽和,在這種情況下為8到16。
但是,流計算不是萬能的。因為位置和路線是高度交互的并且涉及許多不同的服務,從寄生建模到時序和噪聲分析,所以集中式數據結構/數據庫是最有效的。對于此類應用,對算法設計的仔細關注也可以實現大規模并行性。
流計算的另一個挑戰是利用非傳統核心。在上面的示例中,Quartz使用IBM,Intel和AMD的微處理器中常見的標準CPU內核。
NVIDIA和AMD的GPU中發現的專用內核缺乏CPU內核的通用計算能力。專用的EDA應用程序已移植到GPU,包括英特爾在內的圖形提供商的未來路線圖都指向功能更強大的GPU內核。
責任編輯:tzh
-
處理器
+關注
關注
68文章
19391瀏覽量
230629 -
cpu
+關注
關注
68文章
10898瀏覽量
212532 -
eda
+關注
關注
71文章
2777瀏覽量
173542
發布評論請先 登錄
相關推薦
評論