人類對視覺信號天生的敏感決定了對圖形處理硬體性能的渴求成了現階段硬體產業最炙手可熱的話題。 與滿足聽覺的音頻設備相比,現在的圖形處理技術水平給圖形處理還留有很大的發展空間, 這就決定了這個產業的競爭充滿了變數,在技術開發和市場推廣策略上稍有不慎就會別別人趕超。 為了應付激烈的行業競爭, 設計出更高性能的圖形處理晶片已經成為各個廠商保持自身競爭力水平最重要的手段。 今天我就來大家做一次特殊的旅行,了解圖形晶片設計研發的全過程,事實上現在絕大多數的晶片設計廠商都是依照這個程序來進行新品研發的。
晶片,英文為Chip;晶片組為Chipset。晶片一般是指集成電路的載體,也是集成電路經過設計、製造、封裝、測試後的結果,通常是一個可以立即使用的獨立的整體。「晶片」和「集成電路」這兩個詞經常混著使用,比如在大家平常討論話題中,集成電路設計和晶片設計說的是一個意思,晶片行業、集成電路行業、IC行業往往也是一個意思。實際上,這兩個詞有聯繫,也有區別。集成電路實體往往要以晶片的形式存在,因為狹義的集成電路,是強調電路本身,比如簡單到只有五個元件連接在一起形成的相移振蕩器,當它還在圖紙上呈現的時候,我們也可以叫它集成電路,當我們要拿這個小集成電路來應用的時候,那它必須以獨立的一塊實物,或者嵌入到更大的集成電路中,依託晶片來發揮他的作用;集成電路更著重電路的設計和布局布線,晶片更強調電路的集成、生產和封裝。而廣義的集成電路,當涉及到行業(區別於其他行業)時,也可以包含晶片相關的各種含義。
晶片也有它獨特的地方,廣義上,只要是使用微細加工手段製造出來的半導體片子,都可以叫做晶片,裡面並不一定有電路。比如半導體光源晶片;比如機械晶片,如MEMS陀螺儀;或者生物晶片如DNA晶片。在通訊與信息技術中,當把範圍局限到矽集成電路時,晶片和集成電路的交集就是在「矽晶片上的電路」上。晶片組,則是一系列相互關聯的晶片組合,它們相互依賴,組合在一起能發揮更大的作用,比如計算機裡面的處理器和南北橋晶片組,手機裡面的射頻、基帶和電源管理晶片組。
確定研發方案和硬體語言描述
與任何一個靠生產產品謀求發展的企業一樣,設計推出一款新的 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實驗室的配備可見一斑。
可編程門陣列FPGA模擬驗證
現場可編程門陣列FPGA可以能完成任何數字器件的功能,上至高性能CPU下至簡單的74電路,都可以用它來實現。FPGA其實是一個包含有大量門電路的邏輯元件,但是它的每一個門的定義可以有使用者來定義,如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬體描述語言自由的設計一個數字系統。通過軟體仿真,我們可以事先驗證設計的正確性。在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作為顯示部分的系統正常運行,進行驅動程序的開發和驗證,當然如果你硬要在這樣的系統上運行遊戲也不是不可能,不過能維持在每秒幾幀就不錯了。
投片生產樣片和修正
經過前面一系列的驗證工作,這道工序就可以告一段落了,幾經修訂的設計方案被送到了晶片代工廠開始投片生產。代工廠從拿到設計方案到第一批產品下線一般需要四周的時間,不過在這段時間裡,設計人員仍舊馬不停蹄,繼續進行晶片的模擬測試和上市產品PCB(Printed Circuit Boards印刷電路板) 的設計,這就產生了一般官方欽定的「公板」。四周以後,第一批產品下線了,這就是我們一般稱為的」A0」版本。 (編者:就是常說的「工程樣片」)
一般情況下, A0版本的產量不會很多,它們的主要用途還是用來進行測試和修改,一些被送到開發小組繼續測試和查錯,另一部分被送到相關的卡板廠商處進行相關的測試和設計。由於現在是有了真正的晶片到手了,查錯的手段當然也要和前面的模擬手段不同。FIB (Focused Ion Beam聚焦離子束) 系統在這裡被引入查錯過程。簡單的說FIB系統相當於我們平時在醫院看到的各種依靠波束能量進行外科類手術的儀器,它們能在不破壞晶片功能的前提下,對晶片進行門電路級別的修改——切斷原有的或者是布置新的門連線,不管你需要修改的電路是在晶片金屬布線的哪一層,也不會對晶片造成任何的物理損壞。
當然,除了FIB設備外,還要使用很多其他的測試手段,像上圖這臺機器同樣是一臺探測晶片缺陷的設備,工作原理又完全不同,實際上它是一臺高性能原子級別電子顯微鏡。下面這張圖顯示的就是一塊NVIDIA 晶片在45,000X放大倍數下的面目。 我們在下圖中用紅線框圍繞的部分就是該晶片的缺陷。一般這種缺陷都是在生產過程中造成的, 由於某種其他物質的原子混進高純度矽晶體中造成的。這臺機器能夠辨別出混入的這種原子的種類並且判斷可能是什麼原因這些原子會進入到晶片的這個部分,從而能採取措施避免這種情況的發生,改善成品率。
當「所有」的缺陷都得到了修正之後,最終的設計被交付到代工廠進行投片生產,這時的產量就不會像A0版本那麼少了,但也不是最終的量產版本,在前面驗證基本功無誤的情況下,這次生產的晶片要進行各種各樣的和正式上市產品相關的測試:產品兼容性,工作溫度,外圍供電電路的穩定性,信號完整性等等,直到產品能達到作為產品上市的程度,這時晶片生產方就可以投入量產了。
在最後的這些測試過程中,要測試大量的GPU,方便期間,顯卡上面都做出了GPU的插座,一個個獨立的GPU晶片只要插接在上面就能進行測試了。當然這些插座都是為特定的GPU晶片所設計的,只能來測試引腳定義相同的GPU。也許有朋友說,要是現在市面上的顯卡也做成這種插座式的設計,並且能夠不斷進行升級該有多好,我們先不說每一款晶片針腳定義不同。假設這方面不是問題,那我們至少也要保證顯存有能力向新核心提供數據的帶寬同步增長才有意義。所以說,顯卡上GPU插座的設計註定只能存在在實驗室。
其實晶片設計過程中的插座原則也適用於其它產品,在主板 晶片組 的測試過程中也很常見,瞧瞧上面這塊nForce 2主板,它的 北橋 晶片同樣是安放在插座上的,當然這是題外話了。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴