云計算是分布式計算、并行計算和網格計算的發展,或者說是這些計算機科學概念的商業實現。通俗地講,云計算是一種商業計算模型,它將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和各種軟件服務,通俗意義上包括云、端和管道,是虛擬化、效用計算、基礎設施即服務(IaaS)、平臺即服務(PaaS)、軟件即服務(SAAS)等概念混合演進并躍升的結果。
2009年4月24日。美國標準局(NIST)專家給出了云計算定義:云計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網絡訪問,進入可配置的計算資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務供應商進行很少的交互。
自1997年Chellappa提出云計箕的第一個學術定義至今,云計算在各行業的應用如火如荼,在中國卻是新興事物,其發展仍處于起步階段。按照IT(信息產業)產業發展的一般規律,在IT產品或者解決方案的生命周期中,處于萌芽階段的中國云計算應用仍然以偏硬件為主,應用于EDA(電子設計自動化)工作看起來仍然是遙不可及。實際上,IC(集成電路)設計先前是采用大型主機來計算設計參數和設計出相應的芯片,如今是使用大量的服務器,對硬件的應用只是規模的增加而已,IC設計使用的云計算也是laaS和Saas相結合的服務模式。
國家集成電路設計深圳產業化基地(SZICC)孵化的公司規模較小,最優先考慮的是基礎設施的成本和效率以及開始產品設計的時間,以孵化器為平臺的云計算服務模式最適合其需求;而且,小公司的起步階段設計規模一般不大,Internet的帶寬相對而言比較容易滿足孵化器提供的云計算服務。同時,隨著跨國公司研發中心向中國的轉移,大的商業公司在向中國探索研發市場時,基地的云計算服務可以為這些公司提供更為便捷的選擇。最后,以IC基地為主導的產學研合作及IC基地眾多分園要求頻繁便利的IC設計相關培訓,云計算是解決培訓的最好選擇。
如何將云計算應用到IC設計領域?本文以IC基地與國家超級計算深堋中心(簡稱超算中心)合作建立EDA云為例,探討利用云計算完成IC設計工作。
將云計算服務應用于IC設計,最大的應用領域是那些需要大量計算資源的項目,這些項目對CPu數量,內存大小和存儲空間都有著巨大的需求,這是云計算的強項。縱觀IC設計流程,從最開始的想法實現(也就是我們常說的前端),到最終的物理實現(也就是我們常說的后端),在紛繁復雜的設計流程中,對運算能力和存儲空間最為依賴的是仿真驗證和設計規則一致性檢查兩個步驟、將超算中心強大的計算能力應用到這兩個環節。即采用云計算來完善IC基地既有的IC設計流程,能提升整個IC設計的效率。
因此,云計算的主要應用對象是大型的設計項目,越大的設計項目將會耗費越大的計算資源,云計算提升的設計效率也就會越明顯。有統計數據顯示,在整個設計過程中,仿真驗證和設計規則一致性檢查大約占整個設計周期的40%-50%左右的時間,不同的設計類型和電路規模,應用云計算能將效率提升2-10倍,整個設計周期則有20%-45%左右的壓縮,明顯能減短產品面市時間,達到提升產品經濟效益的目的。
IC基地主要承擔中小型企業產品大規模上市之前的孵化和成長,而中小企業的企業規模普遍不大,為了減小風險,其芯片的規模通常也不是太大、在IC基地所有孵化的企業中、絕大部分芯片的規模在1000萬門以下,超過1000萬門的項目不到20%、當前IC基地的計算資源能夠滿足企業絕大部分的需求。但是云計算作為一門新興的應用技術,我們堅信它將會成為未來的發展方向。Gartner的統計表明在未來的5—10年中,25%的IC設計將會基于云計算應用平臺開發設詩。
IC設計的整個流程錯綜復雜,任何質量和進程管理過程中的疏忽都會造成最終的流片失敗。因此,作為IC企業的服務單位,如何將超算中心的優良計算資源引入到目前的設計流程中,IC基地已經完成了內部的可行性論證。在目前IC基地成熟的設計基礎上,以IC基地為中心,配合當前的管理體系,在仿真驗證和設計規則一致性檢查環節,對可以支持并行計算的設計步驟,引入超算中心的云計算服務,提過設計效率,加大產品競爭力。
在提高設計效率的同時,設計的私密性和安全性也是IC設計企業最為關心和關注的內容,因為IC產品設計的最大成果就是數據。數據是由若干二進制代碼組成的文件,與編譯完成的軟件產品類似,也是IC設計公司的最大財富。要實現云計算在IC設計方面的應用,首先要解決的是云計算的數據安全(包括數據傳輸安全、數據隔離和數據殘留)問題。根據目前云計算安全技術特點,采取相應的防范措施:在數據傳輸安全方面,用建立專線的方式避免數據頻繁加密給用戶帶來的麻煩并能保證數據的完整性;針對數據隔離和數據殘留,則可在超算中心專門劃出部分專用區域供IC設計用戶使用,避免與其他公共通用數據混雜,同時建議用戶只將需要大運算量的任務在云中運算,進一步保護了用戶數據安全。
綜合以上因素,并結合IC基地和超算中心的特點,云計算在IC設計中的應用可分為IC產品設計和IC培訓兩種使用方式。圖2是使用IC基地軟件資源的設計公司利用云計算完成IC產品設計,即云計算在IC設計中的應用。
圖2中左邊部分的區域代表SZICC的IC設計客戶端和lICense(許可)服務器,他們同時連接到VPN(VirtualPrivate Network,虛擬專用網絡),通過專線與超算中心的VPN連接、并接入到廣大服務器。當然,這一過程需要云用戶管理軟件配合來完成。
SZICC的用戶使用本地資源將IC設計任務按計算量大小分解,計算量小的例如代碼編輯、物理版圖編輯等工作使用本地資源,同時也能滿足這類工作需要人機交互頻繁的特點。當仿真、物理驗證等運算量大的工作需要使用大量計算資源時,用戶利用云用戶管理軟件發出資源使用請求,云端根據用戶請求自動分配計算資源,并從SZICC服務器上取得所需軟件lICense(許可),開始后臺處理,工作完成時,返回仿真或驗證結果到SZICC本地機供用戶使用。
另一個應用是IC設計培訓。相對于IC產品設計而言,IC培訓過程的數據安全問題就不值一提,當然也無需將實驗過程分解,因此,培訓的所有上機實驗都可以利用云計算完成。
圖3清晰地描述了培訓實驗利用云計算的情況。SZICC提供學員使用終端和軟件(許可),軟件及其使用環境和實驗數據都放在超算中心的云端,學員利用云用戶管理交互界面(圖4“云計算用戶界面”所示)在云端完成的實驗過程。


如此,雖然某些EDA工具類培訓的實驗數據很大(布局布線的實驗數據可達2G以上),運算資源消耗大,szICc培訓室也無需配置高端工作站,只需一般的用戶終端即可滿足需求,這樣也減少了實驗室用戶和軟件維護的大量日常工作。
其實,上述方案對超算中心資源的使用還不能稱為嚴格意義上的云計算,隨著人們對云計算的認識以及初步試用,在網絡、EDA軟件、云計算服務提供商進一步完善的基礎上,在不遠的將來,IC設計應用必然會成為云計算的重要一環。