作者:Altera公司總編輯Ron Wilson 隨著工藝技術(shù)從40 nm向28 nm的發(fā)展,不可避免的尺度效應(yīng)改變了基本單元的電特性——芯片設(shè)計人員必須采用的晶體管和互聯(lián)導(dǎo)線。這些新的晶體管級難題也導(dǎo)致了系統(tǒng)級IC體系結(jié)構(gòu)、實現(xiàn)以及性能的改變。這些芯片級變化建立了新領(lǐng)域,系統(tǒng)設(shè)計人員必須在其中開辟新途徑。 IC面市以來,工藝尺度一直在不斷進(jìn)展。在每一新工藝代,最小特征尺寸都減小了大約三分之一,最小的晶體管占據(jù)的面積也減小了兩倍。同時,數(shù)字電路的最大時鐘頻率在增大,功耗也在降低,其變化都相對穩(wěn)定。那么,在每一新工藝代,芯片設(shè)計人員能夠為系統(tǒng)開發(fā)人員提供新IC,集成了更多的功能,速度更快,而功耗更低。但是,這些都一去不復(fù)返了。 今天,為了減小晶體管的尺寸,工藝開發(fā)人員不得不提供給芯片設(shè)計人員涉及到速度、功耗和成本的一系列復(fù)雜條件。芯片設(shè)計人員必須采用他們所有的工具,包括新的電路設(shè)計、新體系結(jié)構(gòu)方法,并對算法進(jìn)行根本的修改,以便能夠以相競爭的價格繼續(xù)實現(xiàn)更好的性能,而功耗在可接受范圍內(nèi)。目前為止,這些方法是有效的,但是系統(tǒng)設(shè)計人員對此并不了解。28-nm工藝代的確是系統(tǒng)設(shè)計的新時代:在這一時代,系統(tǒng)設(shè)計人員必須理解提供硅片的芯片設(shè)計人員面臨的難題及其決定。 簡單尺度的結(jié)束 工藝工程師認(rèn)為,基本問題在于隨著晶體管尺寸的減小,互聯(lián)部分越來越短,電信號特性也在不斷變化。隨著晶體管的減小,它們無法自動提高速度,而是開始泄漏。那么,在28 nm,設(shè)計人員看到晶體管不再像以前那樣在各方面都繼續(xù)提升性能,而是出現(xiàn)了復(fù)雜的變化。您可以簡單的減小40-nm硅氮氧化物柵極晶體管的尺寸,實現(xiàn)相對較低的圓晶成本。但是,您既不能實現(xiàn)最高速率,也不能實現(xiàn)最低功耗。您可以通過應(yīng)變工程提高速度,采用高k/金屬柵極(HKMG)堆減小泄漏電流,但是增加了成本。在一定程度上,您可以通過改變工作電壓來綜合考慮功耗問題。您可以通過控制晶體管的閾值電壓,或者設(shè)計修改,應(yīng)用體偏置,犧牲速度以減小泄漏電流。但是,對于所有應(yīng)用,沒有一個最佳平衡點,能夠以最低功耗實現(xiàn)速度最快的晶體管。 圖1.晶體管泄漏源 表1.晶體管泄漏主要來源 同時,晶體管電路的最基本單元——走線,也成為一個問題。隨著晶體管尺寸的減小,互聯(lián)前幾層的走線相應(yīng)的變窄。但是,現(xiàn)代工藝通過充滿高電阻率阻隔材料來處理這些窄溝道互聯(lián),其目的是保持銅原子多孔低k絕緣。隨著工藝尺寸的減小,溝道越來越窄,但是,阻隔材料并沒有變薄,因此,銅的空間更小,阻抗也就越來越大。更糟的是,在工作溫度時,銅材料填充區(qū)現(xiàn)在靠近電子的平均自由通路,因此,銅電阻率明顯增大?傮w上,最底層的互聯(lián)電阻增大了,進(jìn)一步降低了晶體管的性能,增大了功耗。 因此,隨著工藝的發(fā)展,芯片設(shè)計人員目前看到了有意思的場景——密度增大了,但是,更需要綜合考慮速度、功耗和成本因素。結(jié)果是,在很多情況下,芯片設(shè)計人員發(fā)現(xiàn)采用新工藝技術(shù)后,速度并沒有很大的提高。 IC設(shè)計的新方向 28-nm工藝節(jié)點最大的好消息是顯著增大了晶體管密度,也就是在給定區(qū)域中,能夠容納更多的邏輯門、寄存器和存儲器。在很多應(yīng)用中,前幾代系統(tǒng)級IC已經(jīng)集成了適合集成實現(xiàn)的大部分功能。那么,在28 nm,芯片設(shè)計人員很容易使用所有這些額外的晶體管來提高性能,降低功耗,而這是調(diào)整工藝無法實現(xiàn)的;蛘,他們選擇更小的管芯來降低成本。他們也可以選擇組合使用這些方法,定制實現(xiàn)某些特殊的應(yīng)用。 在很多情況下,芯片設(shè)計人員會選擇嘗試實現(xiàn)系統(tǒng)開發(fā)人員所期望的芯片級性能指標(biāo)。他們可以通過使用晶體管來提高性能,在應(yīng)用中,發(fā)揮內(nèi)在的并行功能的優(yōu)勢。 圖2.兩類并行體系結(jié)構(gòu) 發(fā)揮并行功能的優(yōu)勢 有幾種方式來實現(xiàn)并行功能。至少與應(yīng)用相關(guān)的一種方式是簡單延長設(shè)計中執(zhí)行單元的流水線,在指令級一次執(zhí)行多條指令。對于數(shù)字算法的內(nèi)循環(huán)加速器等應(yīng)用,例如,數(shù)字信號處理,這一方法特別有效。但是,在通常的計算中,研究表明,同時一次執(zhí)行三條指令反而會降低性能。 一種密切相關(guān)的方法是建立功能級模塊流水線,這是數(shù)據(jù)包處理應(yīng)用中目前常用的方法。在這種方法中,數(shù)據(jù)通過處理器鏈,每一處理器都對數(shù)據(jù)進(jìn)行某一特殊的功能處理。這類流水線與具體應(yīng)用密切相關(guān),如果功能與狀態(tài)或者數(shù)據(jù)相關(guān),在執(zhí)行過程中,設(shè)計人員嘗試改變流水線的工作時,設(shè)計會變得非常復(fù)雜。 目前在并行方面最流行的方法是多處理器,很多處理器從共享存儲器中采集數(shù)據(jù)和任務(wù),并行工作。在這方面有很多變化。數(shù)字加速器通常使用單指令多數(shù)據(jù)(SIMD)群,每一處理器單元裝入不同的數(shù)據(jù),但是,都使用公共的指令流。在處理器群中,每一處理器完成固定的任務(wù),從輸入序列中采集數(shù)據(jù),在輸出序列中產(chǎn)生結(jié)果,彼此相互獨立。還有全動態(tài)多核設(shè)計,完全相同的處理器從工作序列中采集任務(wù)和數(shù)據(jù),執(zhí)行它們,除了內(nèi)部任務(wù)通信之外,彼此獨立工作。 所有這些方法都有效的提高了系統(tǒng)級IC的處理帶寬。或者,芯片設(shè)計人員可以通過并行方法來維持性能不變,但是減小了每一獨立處理單元的時鐘速率,支持采用更低的工作電壓,以及低泄漏晶體管和相似的低功耗方法。但是,只有具體應(yīng)用有足夠的并行功能,處理單元保持忙狀態(tài),不會中斷時,這些方法才有效。但這是很大的挑戰(zhàn)。 可能最明顯的問題是以足夠快的速度實現(xiàn)管芯數(shù)據(jù)的輸入輸出,以跟上處理能力的變化。芯片設(shè)計人員能夠成功的使用越來越強的并行功能以提高芯片處理帶寬。但是,I/O帶寬和存儲器帶寬都沒有及時跟進(jìn)。越來越有可能設(shè)計系統(tǒng)級IC,但實際上無法很快的移動數(shù)據(jù)以支持自己的處理速度。 由于復(fù)雜的DRAM時序,采用并行功能進(jìn)一步加劇了這一問題。如果DRAM必須支持不同處理單元或者高速緩存控制器存儲器不同任務(wù)的存儲器申請隨機散射功能,那么,頁缺失的頻率會明顯增大,影響總帶寬和DRAM傳送的預(yù)測能力。非常復(fù)雜的DRAM控制器能夠解決這一問題,但是,代價是增大了每一處理操作的延時不確定性。類似的,芯片設(shè)計人員會采用基于收發(fā)器的高速串行總線,例如,PCI Express Gen3等,或者Interlaken等芯片至芯片連接技術(shù)以提升I/O帶寬。但是,很多處理器單元不協(xié)調(diào)的申請會影響最佳突發(fā)或者流總線協(xié)議,降低了快速I/O的效率。 降低功耗 芯片設(shè)計人員可以使用28-nm工藝額外的晶體管再度提高性能指標(biāo),甚至可能利用晶體管來降低功耗。從一開始就選擇應(yīng)用最佳工藝來提高效率,選擇晶體管閾值電壓和工作電壓的最佳組合。某些設(shè)計會在芯片的整個邏輯部分選擇一個工作點。其他的在不同模塊上采用不同的電壓,只有很少的會根據(jù)特殊管芯的性能要求、溫度以及固有速度來動態(tài)調(diào)整關(guān)鍵模塊的工作電壓。類似的,很多設(shè)計采用了具有不同閾值電壓或者可調(diào)閾值電壓的晶體管,選擇足夠快的晶體管,使模塊甚至是某一時序通路達(dá)到時序收斂。某些設(shè)計還會關(guān)掉空閑模塊的時鐘或者電源。這類動態(tài)方法實際上非常有效,但是帶來了晶體管成本問題,以及功耗開銷,增大了延時,例如,時鐘頻率或者電壓轉(zhuǎn)換延時等。 圖3.相同工藝,相同體系結(jié)構(gòu)在0.85 V和1.0 V時的靜態(tài)和動態(tài)功耗對比 系統(tǒng)設(shè)計人員的任務(wù) 芯片設(shè)計人員追求的主要策略——增強并行使用,依靠寬帶外部存儲器,尋找更大的I/O帶寬,以及總功耗管理等,這都會影響使用IC的系統(tǒng)開發(fā)人員。這些影響涉及到算法設(shè)計、軟件開發(fā)、電路板設(shè)計以及最終的封裝和散熱設(shè)計。 在算法級,越來越多的依靠并行硬件帶來了變化。例如,與高速的單個處理器相比,并行處理通常能夠顯著增大延時——輸入出現(xiàn)在芯片上的時間與其出現(xiàn)在芯片輸出之間的時間差。系統(tǒng)設(shè)計人員必須要理解這些越來越大的延時對系統(tǒng)行為的影響。另一可能存在的問題是并行方法,特別是多處理,需要修改算法才能實現(xiàn)所需的數(shù)據(jù)或者并行任務(wù)。系統(tǒng)設(shè)計團隊有足夠的技術(shù)能力和文檔來改變基本算法,或者他們能夠依靠IC供應(yīng)商來獲得幫助嗎? 對I/O帶寬越來越大的需求帶來了系統(tǒng)級難題。通過不斷增加快速引腳的數(shù)量來實現(xiàn)所需的吞吐量,這會在電路板設(shè)計上帶來難以處理的布線和信號完整性問題。相應(yīng)的,芯片設(shè)計人員越來越多的采用基于收發(fā)器的高速串行總線和鏈路,例如,包括PCI Express Gen3和Interlaken等。DRAM供應(yīng)商進(jìn)一步推動了這一趨勢的發(fā)展,其理念包括串行端口存儲器技術(shù)組,以及Micron的混合存儲器立方計劃等。在所有這些情況中,當(dāng)數(shù)據(jù)輸入輸出管芯時,高速串行鏈路能夠顯著增大帶寬,降低傳輸功耗。但是基于收發(fā)器的鏈路有自己的延時問題,系統(tǒng)設(shè)計人員還是要理解這些延時對系統(tǒng)行為的影響。 功耗管理帶來了另一些難題,怎樣解決功耗這一問題已經(jīng)從工藝工程師傳遞到芯片設(shè)計人員,以及系統(tǒng)設(shè)計人員。對于這些難題,需要首先正確的理解最終系統(tǒng)的應(yīng)用指標(biāo)。在哪些環(huán)境下需要哪些任務(wù),每一任務(wù)需要多大的性能?在某一應(yīng)用模式中,任務(wù)和每一功能模塊的相對比例是多大?這些問題的答案會影響基本工藝技術(shù)的選擇,以及功耗管理協(xié)議的選擇。在后一種情況中,對于系統(tǒng)設(shè)計團隊而言,非常重要的是理解系統(tǒng)需要什么樣的IC功耗管理。電路板需要提供多種電壓嗎?必須要改變它們,或者接通關(guān)斷它們,如果這樣,控制器會有多復(fù)雜? 更重要的另一點是,軟件在多大程度上理解應(yīng)用指標(biāo),能夠應(yīng)用多少這類知識。例如,如果系統(tǒng)軟件不能正確的預(yù)測主要模塊不工作的時間,并將這一信息傳遞給功耗管理系統(tǒng),那么,芯片級復(fù)雜的功耗管理協(xié)議實際上會浪費而不是減小功耗。 結(jié)論 在28-nm時代,系統(tǒng)只能通過積極的選擇半導(dǎo)體技術(shù),與芯片設(shè)計和系統(tǒng)設(shè)計積極的進(jìn)行交流才能滿足性能、功耗和成本需求。 |