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