深入大規模晶片設計全過程

來源:互聯網
上載者:User

前言

人類對視覺訊號天生的敏感決定了對圖形處理硬體效能的渴求成了現階段硬體產業最炙手可熱的話題。 與滿足聽覺的音訊裝置相比,現在的圖形處理技術水平給圖形處理還留有很大的發展空間, 這就決定了這個產業的競爭充滿了變數,在技術開發和市場推廣策略上稍有不慎就會別別人趕超。 為了應付激烈的行業競爭, 設計出更高效能的圖形處理晶片已經成為各個廠商保持自身競爭力水平最重要的手段。 今天我就來大家做一次特殊的旅行,瞭解圖形晶片設計研發的全過程,事實上現在絕大多數的晶片設計廠商都是依照這個程式來進行新品研發的。

確定研發方案和硬體語言描述

與任何一個靠生產產品謀求發展的企業一樣,設計推出一款新的 GPU 的第一步理所當然的是市場的調研和產品的開發規劃。在這段時間內,未來產品的相關定位,主要佔領的市場範圍等話題都被提到案頭上討論,這些問題討論的結果最終將決定產品最終的研發方案的大體內容:研發成本,研發周期以及開發過程中需要的資源等等。

接下來就要在研發方案確定的大方向的技術上研究從生產工藝,晶片代工等具體的細節問題進行商議。在成本的限制範圍內決定諸如整合晶體管數量等物理參數;緊接著就要在符合生產工藝的晶片代工廠中做出選擇了,決定這個的因素很多,當然第一點是能提供生產晶片要求的工藝水平,比如0.15微米,0.13微米,甚至90納米,其次是代工廠的產品品質和價格因素。當然很多時候晶片在設計的時候就計劃使用比較超前的工藝,保證選擇的代工廠(即晶片生產的公司比如TSMC
)在晶片設計完成開始投片的時候完成相關工藝改造是十分重要的,如果你在這一點上面做出錯誤的判斷,那對公司造成的損失是巨大的,因為圖形晶片行業是一個最求速度的產業,在生產工藝已經決定的情況下,如果要在回過頭來修訂工藝指標,那進行的工作又會持續幾個月,其中的工作量不比重新一塊晶片要少多少!

當這一切前期環節確定以後,就開始我們這篇文章最主要的部分了,顯示晶片構架的設計。一個設計團隊被組織起來定義GPU 支援的技術特徵並且制定整個設計工作的議程表(比如團隊1在三周內完成反鋸齒單元的設計)。

在我們深入介紹晶片的設計過程之前,我們先來瞭解一下現在晶片製造公司一般的設計流程。 現在,晶片構架的設計一般是通過專門的硬體設計語言Hardware Description Languages (HDL)來完成,所謂硬體設計語言( HDL)顧名思義,是一種用來描述硬體工作過程的語言。現在被使用的比較多的有 Verilog 、 VHDL。 這些語言寫成的代碼能夠用專門的合成器產生邏輯門電路的連線表和布局圖,這些都是將來發給晶片代工廠的主要生產依據。對於硬體設計語言(
HDL)一般的人都基本上不會接觸到,我們在這裡只給大家簡略的介紹一下:在程式碼的形式上HDL和C也沒有太大的不同,但他們的實際功能是完全的不同。比如下面這個Verilog語言中非常基本的一條語句:

always@(posedge clock) Q <= D;

這相當於C裡面的一條條件判斷語句,意思就是在時鐘有上升沿訊號的時候,輸出訊號 'D' 被儲存在'Q'。 就是通過諸如此類的語句描述了觸發器電路組成的緩衝和顯存之間資料交換的基本方式。綜合軟體就是依靠這些代碼描述出來的門電路的工作方式關係產生電路的。在晶片的設計階段基本上都是通過工程師們通過Verilog語言編製HDL代碼來設計晶片中的所有工作單元,也決定該晶片所能支援的所有技術特徵。這個階段一般要持續3到4個月(這取決於晶片工程的規模),是整個設計過程的基礎。

在上述的工作完成後,就進入了產品設計的驗證階段,一般也有一兩個月的時間。這個階段的任務就是保證在晶片最後交付代工廠的設計方案沒有缺陷的,就是我們平時所說的產品的“bug”。這一個階段對於任何晶片設計公司來說都是舉足輕重的一步,因為如果晶片設計在投片生產出來以後驗證出並不能像設計的那樣正常工作,那就不僅意味著繼續投入更多的金錢修改設計,重新投片,還會在圖形晶片產業最為重視的產品推出速度方面失去先機。整個驗證工作分為好幾個過程,準系統測實驗證晶片內的所有的門電路能正常工作,工作量類比測試用來證實門電路組合能達到的效能。當然,這時候還沒有真正物理意義上真正的晶片存在,這些所有的測試依舊是通過HDL
編成的程式類比出來的。

接下來的驗證工作開始進行分支的並行運作,一個團隊負責晶片電路的靜態時序分析,保證成品晶片能夠達到設計的主頻 ;另外一個主要由類比電路工程師組成的團隊進行關於儲存電路,供電電路的分析修改。 和數字電路的修正工作相比,類比工程師們的工作要辛苦的多,他們要進行大量的複數,微分方程計算和訊號分析,即便是藉助電腦和專門的軟體也是一件很頭疼的事情。同樣,這時候的多有測試和驗證工作都是在類比的狀態下進行的,最終,當上述所有的工作完成後,一份由綜合軟體產生的用來投片生產門電路層級的連線表和電路圖就完成了。

但是,圖形晶片設計者不會立即把這個方案交付廠家,因為它還要接受最後一個考驗,那就是我們通常所說的FPGA (Field Programmable Gate Array)現場可程式化門陣列來對設計進行的最終功能進行驗證。 對於NV30那樣整合一億多個晶體管超級複雜晶片,在整個使用硬體設計語言( HDL)設計和類比測試的過程中,要反覆運行描述整個晶片的數十億條的指令和進行真正“海量”的資料儲存,因此對執行相關任務的的硬體有著近乎變態的考驗。我們從下面NVIDIA實驗室的配備可見一斑。

 

11台Sun微系統公司提供的SunFire 6800架式伺服器,身高6英尺,每一台都配備有 196GB的 記憶體 ,單價都在百萬美元左右。

 

Racksaver公司的1U單元組成的架式伺服器,每一個1U單元可以配置兩塊 主板 ,2—4塊Pentium 4處理器 ,整套系統包括2800塊CPU並行運行。

這是NVIDIA的 硬碟 陣列機櫃,每一台都放滿了硬碟,給上面的那些伺服器提供“深不見底”儲存容量。

(編者:以上裝置是用於一億門級超大規模整合電路設計的,對於普通中大規模IC設計,一台普通的PC工作站或UNIX工作站就能夠滿足要求了)

可程式化門陣列FPGA類比驗證

現場可程式化門陣列FPGA可以能完成任何數字器件的功能,上至高效能CPU下至簡單的74電路,都可以用它來實現。FPGA其實是一個包含有大量門電路的邏輯元件,但是它的每一個門的定義可以有使用者來定義,如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖IME,或是硬體描述語言自由的設計一個數字系統。通過軟體模擬,我們可以事先驗證設計的正確性。在PCB完成以後,還可以利用FPGA的線上修改能力,隨時修改設計而不必改動硬體電路。所以說使用FPGA來開發數字電路,可以大大縮短設計時間,更為重要的是大大減少了再出現成品晶片以後反覆修改,投片資金和時間的消耗,一塊幾千美元的FPGA(這裡指目前最大容量的FPGA)和花費數百萬美元得到一塊成品晶片相比,消耗是微不足道的.

(編者:呵呵,以上文字引用了本站新手入門中的文字,看來新手入門這篇文章已經流傳很廣咯)

在這個方面,ATI 和 NVIDIA 公司都使用了名為IKOS的FPGA驗證系統。 IKOS內部是由多塊插卡構成,每塊插卡都是一個FPGA陣列,由許多塊大規模FPGA組成。 因為到了R300和NV30世代,圖形晶片已經成了最複雜的ASIC晶片了,無法用一兩塊FPGA就能完成驗證工作,必須使用這樣的專業FPGA驗證裝置. 當然, FPGA也不是完美無缺的,它固有的缺點就是運行速度還沒有ASIC晶片這麼快.
和現在動不動運行頻率都在200-300MHz 的GPU相比,IKOS 的運行主頻大概只有可憐的幾十兆Hz左右.當然這些缺點在應用在產品的設計過程中沒什麼大不了的.它負責的工作就是最終驗證晶片設計功能的實現,你可以讓IKOS作為顯示部分的系統正常運行,進行驅動程式的開發和驗證,當然如果你硬要在這樣的系統上運行遊戲也不是不可能,不過能維持在每秒幾幀就不錯了.

NVIDIA 驗證實驗室

這就是NVIDIA IKOS 實驗室中用IKOS 類比NV30的情形,是不是很不可思議,很難把這樣一個紅色的大盒子和顯卡晶片聯絡在一起。實驗人員正在這樣的NV30下運行WINDOWS2000。

 

 

投片生產樣片和修正

經過前面一系列的驗證工作,這道工序就可以告一段落了,幾經修訂的設計方案被送到了晶片代工廠開始投片生產.代工廠從拿到設計方案到第一批產品下線一般需要四周的時間,不過在這段時間裡,設計人員仍舊馬不停蹄,繼續進行晶片的類比測試和上市產品PCB(Printed Circuit Boards印刷電路板) 的設計,這就產生了一般官方欽定的“公板”.四周以後,第一批產品下線了,這就是我們一般稱為的”A0”版本。(編者:就是常說的“工程樣片”)

一般情況下, A0版本的產量不會很多,它們的主要用途還是用來進行測試和修改,一些被送到開發小組繼續測試和查錯,另一部分被送到相關的卡板廠商處進行相關的測試和設計。由於現在是有了真正的晶片到手了,查錯的手段當然也要和前面的類比手段不同。FIB (Focused Ion Beam聚焦離子束) 系統在這裡被引入查錯過程。簡單的說FIB系統相當於我們平時在醫院看到的各種依靠波束能量進行外科類手術的儀器,它們能在不破壞晶片功能的前提下,對晶片進行門電路層級的修改——切斷原有的或者是布置新的門連線,不管你需要修改的電路是在晶片金屬布線的哪一層,也不會對晶片造成任何的物理損壞。

這就是nvidia使用的一台FIB 裝置

 

當然,除了FIB裝置外,還要使用很多其他的測試手段,像這台機器同樣是一台探測晶片缺陷的裝置,工作原理又完全不同,實際上它是一台高效能原子層級電子顯微鏡。下面這張圖顯示的就是一塊NVIDIA 晶片在45,000X放大倍數下的面目。 我們在中用紅線框圍繞的部分就是該晶片的缺陷。一般這種缺陷都是在生產過程中造成的, 由於某種其他物質的原子混進高純度矽晶體中造成的。這台機器能夠辨別出混入的這種原子的種類並且判斷可能是什麼原因這些原子會進入到晶片的這個部分,從而能採取措施避免這種情況的發生,改善成品率。

當“所有”的缺陷都得到了修正之後,最終的設計被交付到代工廠進行投片生產,這時的產量就不會像A0版本那麼少了,但也不是最終的量產版本,在前面驗證基本功無誤的情況下,這次生產的晶片要進行各種各樣的和正式上市產品相關的測試:產品相容性,工作溫度,外圍供電電路的穩定性,訊號完整性等等,直到產品能達到作為產品上市的程度,這時晶片生產方就可以投入量產了。

在最後的這些測試過程中,要測試大量的GPU,方便期間,顯卡上面都做出了GPU的插座,一個個獨立的GPU晶片只要插接在上面就能進行測試了。當然這些插座都是為特定的GPU晶片所設計的,只能來測試引腳定義相同的GPU。也許有朋友說,要是現在市面上的顯卡也做成這種插座式的設計,並且能夠不斷進行升級該有多好,我們先不說每一款晶片針腳定義不同。假設這方面不是問題,那我們至少也要保證顯存有能力向新核心提供資料的頻寬同步增長才有意義。所以說,顯卡上GPU插座的設計註定只能存在在實驗室。

其實晶片設計過程中的插座原則也適用於其它產品,在主板 晶片集 的測試過程中也很常見,瞧瞧上面這塊nForce 2主板,它的 北橋 晶片同樣是安放在插座上的,當然這是題外話了。

 

到了這個階段就會有很多晶片用來進行各種測試,就是等待測試一堆Quadro4晶片

結語

呼呼,研發一款新的顯卡的過程真好比“萬裡長征”一般,講的小編都有些疲憊了,更不要講參與研發的那些工程師們所要付出辛勞和智慧了。而通過整個產品研發有條不紊,環環相扣的程式制定,我們也看到了西方工業在科學理論系統化和產業化方面的強大能量,這也是我們值得學習的啊。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.