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