人類對視覺信號天生的敏感決定了對圖形處理硬件性能的渴求成了現階段硬件產業最炙手可熱的話題。 與滿足聽覺的音頻設備相比,現在的圖形處理技術水平給圖形處理還留有很大的發展空間, 這就決定了這個產業的競爭充滿了變數,在技術開發和市場推廣策略上稍有不慎就會別別人趕超。 為了應付激烈的行業競爭, 設計出更高性能的圖形處理芯片已經成為各個廠商保持自身競爭力水平最重要的手段。 今天我就來大家做一次特殊的旅行,了解圖形芯片設計研發的全過程,事實上現在絕大多數的芯片設計廠商都是依照這個程序來進行新品研發的。
芯片,英文為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主板,它的 北橋 芯片同樣是安放在插座上的,當然這是題外話了。
芯片研發基本過程
一款芯片的設計開發,首先是根據產品應用的需求,設計應用系統,來初步確定應用對芯片功能和性能指標的要求,以及哪些功能可以集成,哪些功能只能外部實現,芯片工藝及工藝平臺的選擇,芯片管腳數量,封裝形式等等,達到整個應用系統的成本低性能高,達到最優的性價比。
之后,進入系統開發和原型驗證階段。根據芯片的框架結構,采用分立元件設計電路板,數字系統一般用FPGA開發平臺進行原型開發和測試驗證(常見的FPGA有XILINX和ALTERA兩個品牌,我公司用的是XILINX)。
模擬芯片的設計,驗證手段主要是根據工藝廠提供的參數模型來仿真,最終能達到的性能指標只能通過真實的投片,進行驗證設計;而數字系統設計一般可通過計算機仿真和FPGA系統,進行充分的設計驗證,然后可以直接投片。因此數模混合的芯片產品開發,一般需要模擬模塊先投片驗證,性能指標測試通過后,然后再進行整體投片。
系統開發和原型驗證通過后,就進入芯片版圖的設計實現階段,就是數字后端、與模擬版圖拼接。版圖設計過程中,要進行設計驗證,包括DRC、LVS、ANT、后仿真等等。芯片版圖通過各種仿真驗證后就可以生成GDS文件,發給代工廠(或者制版廠),就是常說的tapeout了。
代工廠數據處理,拿到GDS數據后,需要再次進行DRC檢查,然后數據處理,版層運算,填充測試圖形等操作,之后發給制版廠開始制版。
制版完成后,光刻版交給代工廠就可以進行圓片加工了。
圓片加工完成后,送至中測廠進行中測,也叫晶圓測試(Chip Test,簡稱CP)。中測完成,圓片上打點標記失效的管芯,交給封裝廠。
封裝廠進行圓片減薄、貼膜、劃片、粘片、打線、注塑、切金、烘干、鍍錫等等操作后,封裝完成。目前封裝技術比較成熟,常見封裝良率在99.5%以上,甚至99.9%以上。
芯片有些功能和性能在中測時無法檢驗的,需要進行成測(Final Test,簡稱FT)。 成測完成的芯片,即可入產品庫,轉入市場銷售了。
芯片的研發過程,是一個多次循環迭代的過程。測試驗證過程中發現問題,就需要返回修改設計,然后再次測試驗證;后端版圖實現過程中,如果時序、功耗、面積、后仿真等通不過,也可能要返回原始設計進行修改;芯片投片出來后,測試性能指標和可靠性達不到設計要求,需要分析定位問題,修改設計,再次投片驗證,等等。
芯片研發環節多,投入大,周期長。任何一個細節考慮不到或者出錯,都有可能導致投片失敗;技術研發充滿了不確定性,可能導致時間拖延及投片失敗。因此,一個成熟產品的研發,可能需要多次的投片驗證,導致周期很長。
現在芯片設計的規模比較大,系統復雜,為了減小投片風險,系統設計和測試驗證的工作十分重要,一方面依靠強大的EDA工具,另一方面依靠經驗和人員時間投入。
芯片轉入量產后,如果成品率不穩定或低于預期,需要與代工廠分析原因,進行工藝參數調整,多次實驗后,找到最穩定的工藝窗口,提高芯片的可靠性和良率,降低成本。
常見的芯片投片方式說明
芯片常用投片方式有工程批(FULLMASK)和多項目晶圓(Multi Project Wafer,簡稱MPW)兩種方式。
隨著制造工藝水平的提高,在生產線上制造芯片的費用不斷上漲,一次0.6微米工藝的工程批生產費用就要20-30萬元,而一次0.18微米工藝的工程批生產費用則需要60-120萬元,如果采用高階工藝,試驗片成本更會呈幾何倍數提高。如果設計中存在問題,那么制造出來的所有芯片將全部報廢。
MPW就是將多個具有相同工藝的集成電路設計放在同一晶圓片上流片,流片后,每個設計品種可以得到幾十片芯片樣品,這一數量對于設計開發階段的實驗、測試已經足夠。而實驗費用就由所有參加MPW的項目按照芯片面積分攤,成本僅為工程批的10%-20%,極大地降低新產品開發成本和開發風險。MPW一般由工藝廠組織,每年定期有班次。
雖MPW降低了集成電路研發階段的費用門檻,但也伴隨著一些投片靈活度低、生產周期長、單位面積有限制等制約因素。具體的投片方式,需要根據設計成功率、資金預算、時間周期來具體選擇。兩種投片方式對比表:
研發一款新的顯卡的過程真好比“萬里長征”一般,講的小編都有些疲憊了,更不要講參與研發的那些工程師們所要付出辛勞和智慧了。而通過整個產品研發有條不紊,環環相扣的程序制定,我們也看到了西方工業在科學理論系統化和產業化方面的強大能量,這也是我們值得學習的啊。
評論
查看更多