編者按
原文由小熊在線最先發(fā)表,介紹了navida公司設(shè)計(jì)圖象處理芯片(GPU)的全過(guò)程,本站對(duì)文章中一些專業(yè)內(nèi)容進(jìn)行了修改和補(bǔ)充,讓大家可以對(duì)大規(guī)模芯片設(shè)計(jì)的過(guò)程,以及FPGA在IC設(shè)計(jì)中的作用,有一個(gè)形象的了解。
前言
人類對(duì)視覺(jué)信號(hào)天生的敏感決定了對(duì)圖形處理硬件性能的渴求成了現(xiàn)階段硬件產(chǎn)業(yè)最炙手可熱的話題。 與滿足聽(tīng)覺(jué)的音頻設(shè)備相比,現(xiàn)在的圖形處理技術(shù)水平給圖形處理還留有很大的發(fā)展空間, 這就決定了這個(gè)產(chǎn)業(yè)的競(jìng)爭(zhēng)充滿了變數(shù),在技術(shù)開(kāi)發(fā)和市場(chǎng)推廣策略上稍有不慎就會(huì)別別人趕超。 為了應(yīng)付激烈的行業(yè)競(jìng)爭(zhēng), 設(shè)計(jì)出更高性能的圖形處理芯片已經(jīng)成為各個(gè)廠商保持自身競(jìng)爭(zhēng)力水平最重要的手段。 今天我就來(lái)大家做一次特殊的旅行,了解圖形芯片設(shè)計(jì)研發(fā)的全過(guò)程,事實(shí)上現(xiàn)在絕大多數(shù)的芯片設(shè)計(jì)廠商都是依照這個(gè)程序來(lái)進(jìn)行新品研發(fā)的。
確定研發(fā)方案和硬件語(yǔ)言描述
與任何一個(gè)靠生產(chǎn)產(chǎn)品謀求發(fā)展的企業(yè)一樣,設(shè)計(jì)推出一款新的 GPU 的第一步理所當(dāng)然的是市場(chǎng)的調(diào)研和產(chǎn)品的開(kāi)發(fā)規(guī)劃。在這段時(shí)間內(nèi),未來(lái)產(chǎn)品的相關(guān)定位,主要占領(lǐng)的市場(chǎng)范圍等話題都被提到桌面上討論,這些問(wèn)題討論的結(jié)果最終將決定產(chǎn)品最終的研發(fā)方案的大體內(nèi)容:研發(fā)成本,研發(fā)周期以及開(kāi)發(fā)過(guò)程中需要的資源等等。
接下來(lái)就要在研發(fā)方案確定的大方向的技術(shù)上研究從生產(chǎn)工藝,芯片代工等具體的細(xì)節(jié)問(wèn)題進(jìn)行商議。在成本的限制范圍內(nèi)決定諸如集成晶體管數(shù)量等物理參數(shù);緊接著就要在符合生產(chǎn)工藝的芯片代工廠中做出選擇了,決定這個(gè)的因素很多,當(dāng)然第一點(diǎn)是能提供生產(chǎn)芯片要求的工藝水平,比如0.15微米,0.13微米,甚至90納米,其次是代工廠的產(chǎn)品質(zhì)量和價(jià)格因素。當(dāng)然很多時(shí)候芯片在設(shè)計(jì)的時(shí)候就計(jì)劃使用比較超前的工藝,保證選擇的代工廠(即芯片生產(chǎn)的公司比如TSMC )在芯片設(shè)計(jì)完成開(kāi)始投片的時(shí)候完成相關(guān)工藝改造是十分重要的,如果你在這一點(diǎn)上面做出錯(cuò)誤的判斷,那對(duì)公司造成的損失是巨大的,因?yàn)閳D形芯片行業(yè)是一個(gè)最求速度的產(chǎn)業(yè),在生產(chǎn)工藝已經(jīng)決定的情況下,如果要在回過(guò)頭來(lái)修訂工藝指標(biāo),那進(jìn)行的工作又會(huì)持續(xù)幾個(gè)月,其中的工作量不比重新一塊芯片要少多少!
當(dāng)這一切前期環(huán)節(jié)確定以后,就開(kāi)始我們這篇文章最主要的部分了,顯示芯片構(gòu)架的設(shè)計(jì)。一個(gè)設(shè)計(jì)團(tuán)隊(duì)被組織起來(lái)定義GPU 支持的技術(shù)特征并且制定整個(gè)設(shè)計(jì)工作的日程表(比如團(tuán)隊(duì)1在三周內(nèi)完成反鋸齒單元的設(shè)計(jì))。
在我們深入介紹芯片的設(shè)計(jì)過(guò)程之前,我們先來(lái)了解一下現(xiàn)在芯片制造公司一般的設(shè)計(jì)流程。 現(xiàn)在,芯片構(gòu)架的設(shè)計(jì)一般是通過(guò)專門的硬件設(shè)計(jì)語(yǔ)言Hardware Description Languages (HDL)來(lái)完成,所謂硬件設(shè)計(jì)語(yǔ)言( HDL)顧名思義,是一種用來(lái)描述硬件工作過(guò)程的語(yǔ)言,F(xiàn)在被使用的比較多的有 Verilog 、 VHDL。 這些語(yǔ)言寫成的代碼能夠用專門的合成器生成邏輯門電路的連線表和布局圖,這些都是將來(lái)發(fā)給芯片代工廠的主要生產(chǎn)依據(jù)。對(duì)于硬件設(shè)計(jì)語(yǔ)言( HDL)一般的人都基本上不會(huì)接觸到,我們?cè)谶@里只給大家簡(jiǎn)略的介紹一下:在程序代碼的形式上HDL和C也沒(méi)有太大的不同,但他們的實(shí)際功能是完全的不同。比如下面這個(gè)Verilog語(yǔ)言中非;镜囊粭l語(yǔ)句:
always@(posedge clock) Q <= D;
這相當(dāng)于C里面的一條條件判斷語(yǔ)句,意思就是在時(shí)鐘有上升沿信號(hào)的時(shí)候,輸出信號(hào) 'D' 被儲(chǔ)存在'Q'。 就是通過(guò)諸如此類的語(yǔ)句描述了觸發(fā)器電路組成的緩存和顯存之間數(shù)據(jù)交換的基本方式。綜合軟件就是依靠這些代碼描述出來(lái)的門電路的工作方式關(guān)系生成電路的。在芯片的設(shè)計(jì)階段基本上都是通過(guò)工程師們通過(guò)Verilog語(yǔ)言編制HDL代碼來(lái)設(shè)計(jì)芯片中的所有工作單元,也決定該芯片所能支持的所有技術(shù)特征。這個(gè)階段一般要持續(xù)3到4個(gè)月(這取決于芯片工程的規(guī)模),是整個(gè)設(shè)計(jì)過(guò)程的基礎(chǔ)。
在上述的工作完成后,就進(jìn)入了產(chǎn)品設(shè)計(jì)的驗(yàn)證階段,一般也有一兩個(gè)月的時(shí)間。這個(gè)階段的任務(wù)就是保證在芯片最后交付代工廠的設(shè)計(jì)方案沒(méi)有缺陷的,就是我們平時(shí)所說(shuō)的產(chǎn)品的“bug”。這一個(gè)階段對(duì)于任何芯片設(shè)計(jì)公司來(lái)說(shuō)都是舉足輕重的一步,因?yàn)槿绻酒O(shè)計(jì)在投片生產(chǎn)出來(lái)以后驗(yàn)證出并不能像設(shè)計(jì)的那樣正常工作,那就不僅意味著繼續(xù)投入更多的金錢修改設(shè)計(jì),重新投片,還會(huì)在圖形芯片產(chǎn)業(yè)最為重視的產(chǎn)品推出速度方面失去先機(jī)。整個(gè)驗(yàn)證工作分為好幾個(gè)過(guò)程,基本功能測(cè)試驗(yàn)證芯片內(nèi)的所有的門電路能正常工作,工作量模擬測(cè)試用來(lái)證實(shí)門電路組合能達(dá)到的性能。當(dāng)然,這時(shí)候還沒(méi)有真正物理意義上真正的芯片存在,這些所有的測(cè)試依舊是通過(guò)HDL 編成的程序模擬出來(lái)的。
接下來(lái)的驗(yàn)證工作開(kāi)始進(jìn)行分支的并行運(yùn)作,一個(gè)團(tuán)隊(duì)負(fù)責(zé)芯片電路的靜態(tài)時(shí)序分析,保證成品芯片能夠達(dá)到設(shè)計(jì)的主頻 ;另外一個(gè)主要由模擬電路工程師組成的團(tuán)隊(duì)進(jìn)行關(guān)于儲(chǔ)存電路,供電電路的分析修改。 和數(shù)字電路的修正工作相比,模擬工程師們的工作要辛苦的多,他們要進(jìn)行大量的復(fù)數(shù),微分方程計(jì)算和信號(hào)分析,即便是借助計(jì)算機(jī)和專門的軟件也是一件很頭疼的事情。同樣,這時(shí)候的多有測(cè)試和驗(yàn)證工作都是在模擬的狀態(tài)下進(jìn)行的,最終,當(dāng)上述所有的工作完成后,一份由綜合軟件生成的用來(lái)投片生產(chǎn)門電路級(jí)別的連線表和電路圖就完成了。
但是,圖形芯片設(shè)計(jì)者不會(huì)立即把這個(gè)方案交付廠家,因?yàn)樗要接受最后一個(gè)考驗(yàn),那就是我們通常所說(shuō)的FPGA (Field Programmable Gate Array)現(xiàn)場(chǎng)可編程門陣列來(lái)對(duì)設(shè)計(jì)進(jìn)行的最終功能進(jìn)行驗(yàn)證。 對(duì)于NV30那樣集成一億多個(gè)晶體管超級(jí)復(fù)雜芯片,在整個(gè)使用硬件設(shè)計(jì)語(yǔ)言( HDL)設(shè)計(jì)和模擬測(cè)試的過(guò)程中,要反復(fù)運(yùn)行描述整個(gè)芯片的數(shù)十億條的指令和進(jìn)行真正“海量”的數(shù)據(jù)儲(chǔ)存,因此對(duì)執(zhí)行相關(guān)任務(wù)的的硬件有著近乎變態(tài)的考驗(yàn)。我們從下面NVIDIA實(shí)驗(yàn)室的配備可見(jiàn)一斑。

11臺(tái)Sun微系統(tǒng)公司提供的SunFire 6800架式服務(wù)器,身高6英尺,每一臺(tái)都配備有 196GB的 內(nèi)存 ,單價(jià)都在百萬(wàn)美元左右。

Racksaver公司的1U單元組成的架式服務(wù)器,每一個(gè)1U單元可以配置兩塊 主板 ,2—4塊Pentium 4處理器 ,整套系統(tǒng)包括2800塊CPU并行運(yùn)行。
這是NVIDIA的 硬盤 陣列機(jī)柜,每一臺(tái)都放滿了硬盤,給上面的那些服務(wù)器提供“深不見(jiàn)底”儲(chǔ)存容量。
(編者:以上設(shè)備是用于一億門級(jí)超大規(guī)模集成電路設(shè)計(jì)的,對(duì)于普通中大規(guī)模IC設(shè)計(jì),一臺(tái)普通的PC工作站或UNIX工作站就能夠滿足要求了)
可編程門陣列FPGA模擬驗(yàn)證
現(xiàn)場(chǎng)可編程門陣列FPGA可以能完成任何數(shù)字器件的功能,上至高性能CPU下至簡(jiǎn)單的74電路,都可以用它來(lái)實(shí)現(xiàn)。FPGA其實(shí)是一個(gè)包含有大量門電路的邏輯元件,但是它的每一個(gè)門的定義可以有使用者來(lái)定義,如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖輸入法,或是硬件描述語(yǔ)言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。所以說(shuō)使用FPGA來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,更為重要的是大大減少了再出現(xiàn)成品芯片以后反復(fù)修改,投片資金和時(shí)間的消耗,一塊幾千美元的FPGA(這里指目前最大容量的FPGA)和花費(fèi)數(shù)百萬(wàn)美元得到一塊成品芯片相比,消耗是微不足道的.
(編者:呵呵,以上文字引用了本站新手入門中的文字,看來(lái)新手入門這篇文章已經(jīng)流傳很廣咯)
在這個(gè)方面,ATI 和 NVIDIA 公司都使用了名為IKOS的FPGA驗(yàn)證系統(tǒng)。 IKOS內(nèi)部是由多塊插卡構(gòu)成,每塊插卡都是一個(gè)FPGA陣列,由許多塊大規(guī)模FPGA組成。 因?yàn)榈搅薘300和NV30世代,圖形芯片已經(jīng)成了最復(fù)雜的ASIC芯片了,無(wú)法用一兩塊FPGA就能完成驗(yàn)證工作,必須使用這樣的專業(yè)FPGA驗(yàn)證設(shè)備. 當(dāng)然, FPGA也不是完美無(wú)缺的,它固有的缺點(diǎn)就是運(yùn)行速度還沒(méi)有ASIC芯片這么快. 和現(xiàn)在動(dòng)不動(dòng)運(yùn)行頻率都在200-300MHz 的GPU相比,IKOS 的運(yùn)行主頻大概只有可憐的幾十兆Hz左右.當(dāng)然這些缺點(diǎn)在應(yīng)用在產(chǎn)品的設(shè)計(jì)過(guò)程中沒(méi)什么大不了的.它負(fù)責(zé)的工作就是最終驗(yàn)證芯片設(shè)計(jì)功能的實(shí)現(xiàn),你可以讓IKOS作為顯示部分的系統(tǒng)正常運(yùn)行,進(jìn)行驅(qū)動(dòng)程序的開(kāi)發(fā)和驗(yàn)證,當(dāng)然如果你硬要在這樣的系統(tǒng)上運(yùn)行游戲也不是不可能,不過(guò)能維持在每秒幾幀就不錯(cuò)了.

NVIDIA 驗(yàn)證實(shí)驗(yàn)室

這就是NVIDIA IKOS 實(shí)驗(yàn)室中用IKOS 模擬NV30的情形,是不是很不可思議,很難把這樣一個(gè)紅色的大盒子和顯卡芯片聯(lián)系在一起。試驗(yàn)人員正在這樣的NV30下運(yùn)行WINDOWS2000。

投片生產(chǎn)樣片和修正
經(jīng)過(guò)前面一系列的驗(yàn)證工作,這道工序就可以告一段落了,幾經(jīng)修訂的設(shè)計(jì)方案被送到了芯片代工廠開(kāi)始投片生產(chǎn).代工廠從拿到設(shè)計(jì)方案到第一批產(chǎn)品下線一般需要四周的時(shí)間,不過(guò)在這段時(shí)間里,設(shè)計(jì)人員仍舊馬不停蹄,繼續(xù)進(jìn)行芯片的模擬測(cè)試和上市產(chǎn)品PCB(Printed Circuit Boards印刷電路板) 的設(shè)計(jì),這就產(chǎn)生了一般官方欽定的“公板”.四周以后,第一批產(chǎn)品下線了,這就是我們一般稱為的”A0”版本。 (編者:就是常說(shuō)的“工程樣片”)
一般情況下, A0版本的產(chǎn)量不會(huì)很多,它們的主要用途還是用來(lái)進(jìn)行測(cè)試和修改,一些被送到開(kāi)發(fā)小組繼續(xù)測(cè)試和查錯(cuò),另一部分被送到相關(guān)的卡板廠商處進(jìn)行相關(guān)的測(cè)試和設(shè)計(jì)。由于現(xiàn)在是有了真正的芯片到手了,查錯(cuò)的手段當(dāng)然也要和前面的模擬手段不同。FIB (Focused Ion Beam聚焦離子束) 系統(tǒng)在這里被引入查錯(cuò)過(guò)程。簡(jiǎn)單的說(shuō)FIB系統(tǒng)相當(dāng)于我們平時(shí)在醫(yī)院看到的各種依靠波束能量進(jìn)行外科類手術(shù)的儀器,它們能在不破壞芯片功能的前提下,對(duì)芯片進(jìn)行門電路級(jí)別的修改——切斷原有的或者是布置新的門連線,不管你需要修改的電路是在芯片金屬布線的哪一層,也不會(huì)對(duì)芯片造成任何的物理?yè)p壞。

這就是nvidia使用的一臺(tái)FIB 設(shè)備

當(dāng)然,除了FIB設(shè)備外,還要使用很多其他的測(cè)試手段,像上圖這臺(tái)機(jī)器同樣是一臺(tái)探測(cè)芯片缺陷的設(shè)備,工作原理又完全不同,實(shí)際上它是一臺(tái)高性能原子級(jí)別電子顯微鏡。下面這張圖顯示的就是一塊NVIDIA 芯片在45,000X放大倍數(shù)下的面目。 我們?cè)谙聢D中用紅線框圍繞的部分就是該芯片的缺陷。一般這種缺陷都是在生產(chǎn)過(guò)程中造成的, 由于某種其他物質(zhì)的原子混進(jìn)高純度硅晶體中造成的。這臺(tái)機(jī)器能夠辨別出混入的這種原子的種類并且判斷可能是什么原因這些原子會(huì)進(jìn)入到芯片的這個(gè)部分,從而能采取措施避免這種情況的發(fā)生,改善成品率。

當(dāng)“所有”的缺陷都得到了修正之后,最終的設(shè)計(jì)被交付到代工廠進(jìn)行投片生產(chǎn),這時(shí)的產(chǎn)量就不會(huì)像A0版本那么少了,但也不是最終的量產(chǎn)版本,在前面驗(yàn)證基本功無(wú)誤的情況下,這次生產(chǎn)的芯片要進(jìn)行各種各樣的和正式上市產(chǎn)品相關(guān)的測(cè)試:產(chǎn)品兼容性,工作溫度,外圍供電電路的穩(wěn)定性,信號(hào)完整性等等,直到產(chǎn)品能達(dá)到作為產(chǎn)品上市的程度,這時(shí)芯片生產(chǎn)方就可以投入量產(chǎn)了。
在最后的這些測(cè)試過(guò)程中,要測(cè)試大量的GPU,方便期間,顯卡上面都做出了GPU的插座,一個(gè)個(gè)獨(dú)立的GPU芯片只要插接在上面就能進(jìn)行測(cè)試了。當(dāng)然這些插座都是為特定的GPU芯片所設(shè)計(jì)的,只能來(lái)測(cè)試引腳定義相同的GPU。也許有朋友說(shuō),要是現(xiàn)在市面上的顯卡也做成這種插座式的設(shè)計(jì),并且能夠不斷進(jìn)行升級(jí)該有多好,我們先不說(shuō)每一款芯片針腳定義不同。假設(shè)這方面不是問(wèn)題,那我們至少也要保證顯存有能力向新核心提供數(shù)據(jù)的帶寬同步增長(zhǎng)才有意義。所以說(shuō),顯卡上GPU插座的設(shè)計(jì)注定只能存在在實(shí)驗(yàn)室。
其實(shí)芯片設(shè)計(jì)過(guò)程中的插座原則也適用于其它產(chǎn)品,在主板 芯片組 的測(cè)試過(guò)程中也很常見(jiàn),瞧瞧上面這塊nForce 2主板,它的 北橋 芯片同樣是安放在插座上的,當(dāng)然這是題外話了。
到了這個(gè)階段就會(huì)有很多芯片用來(lái)進(jìn)行各種測(cè)試,上圖就是等待測(cè)試一堆Quadro4芯片
結(jié)語(yǔ)
呼呼,研發(fā)一款新的顯卡的過(guò)程真好比“萬(wàn)里長(zhǎng)征”一般,講的小編都有些疲憊了,更不要講參與研發(fā)的那些工程師們所要付出辛勞和智慧了。而通過(guò)整個(gè)產(chǎn)品研發(fā)有條不紊,環(huán)環(huán)相扣的程序制定,我們也看到了西方工業(yè)在科學(xué)理論系統(tǒng)化和產(chǎn)業(yè)化方面的強(qiáng)大能量,這也是我們值得學(xué)習(xí)的啊。