最複雜且耗費運算資源的EDA軟體,必須積極地活用平行處理能力,以加速未來IC的設計
Tom Spyrou是Cadence益華電腦的卓越工程師,負責SoC數位實現平台的平行處理。
更快速的晶片設計需求就是設計自動化的原動力之一。在消費者導向、高度競爭的市場中,誰的設計能夠率先上市,誰就能夠獲得成功。
在過去一般用途處理器的速度改善,讓EDA軟體 – 以及其他以PC為基礎的軟體 – 能夠一如預期地兌現重大的效能提升。然而,在2004年中期,熱效應卻導致部分備受矚目的微處理器計畫被撤銷,速度的改善實質上面臨了僵局。微處器廠商聲稱這是從單核心設計邁向單一晶片多重處理器的過程中「難以突破的瓶頸」,但是這種情勢轉變並非完全出乎意料之外。業界領導廠商老早就呼籲要採用新的方式,來因應繪圖處理、科學研究與電子設計自動化等越來越耗費運算資源的軟體需求。
現在,事實上,EDA效能提升的康莊大道 – 更快速的設計時間 – 就是活用這些多核心處理器。
挑戰在於,大多數EDA應用軟體與演算法仍舊是為滿足連續運算(serial computation)需求而撰寫的。EDA除了運算時間非常冗長或者平行的程式規劃非常繁瑣(例如,RTL 合成與library資料庫描述)以外,多半是單一執行。
為了達成貨真價實的效能提升,EDA工程師與流程設計人員必須跨越“平行運算簡易化(easy-to-parallelize)”的階段。未來,工作流程的每一階段都同時執行才能達到有意義的效能提升。
Amdahl法則(Amdahl’s Law)就是這項工作的最佳指標,當系統中單一部分獲得改善,就能達到整個系統最高期望的改善。例如,假設使用單一處理器核心執行某程式需要50個小時,而其中5小時的工作(或者10%的程式)無法平行處理。這時,執行過程的其餘45個小時(或90%)可以平行加速,無論使用多少顆處理器,最低執行時間都不可能短於5小時的連續執行時間。因此,在這個案例中,可實現的最高改善值為10倍(10X)。
這就是想要大幅提升平行化效率時必須跨越的主要障礙。
在數位IC設計實現(IC implementation)領域,從netlist到投產(tape-out)的設計流程分成許多許多階段,包括時序分析(timing analysis)、佈局、時脈分配合成(clock distribution synthesis)、實體設計最佳化、佈線、雜訊分析和各種晶片完成步驟。在Cadence益華電腦,我們努力地重新編寫所有程式,在2008年12月發表的Encounter數位設計實現系統(Encounter Digital Implementation System)提供前段到後段一貫化(end-to-end)平行運算能力。現在我們非常滿意地向大家報告,成果輝煌。
但請牢記Amdahl法則,並請注意EDA創新涵蓋的層面很廣,毫無疑問地跨多個供應商的流程會嚴重限縮未來的可能性,除非整個業界都全面擁抱平行化。
這是一項絕不平凡的工作。許多老舊應用軟體必須翻新或重新改寫,而創新應用軟體可能必須大幅修訂。依據我的經驗,支援連續多重處理的設計流程將是EDA的最大挑戰之一,但還是可以克服的。許多核心演算法依然按兵不動,執行這些演算法的軟體架構將會受到很大的影響。有時候,軟體的整體執行時間要達到95%以上的平行化,幾乎是不可能的任務;再者,軟體無法以具備成本效益的方式延展超過16顆CPU;有些其他案例仍需要以多重核心電腦的「雲端運算(clouds)」才能夠完成任務。
如果有哪些方法可以實踐這種連續平行處理的目標,就會具備明顯的優勢,因為能夠更快速執行、更精準設計而且量產前置時間更短;可以讓EDA使用者因物美價廉的平行運算而獲益良多,甚至因為實現了前所未見的執行速度而大幅提升設計表現。