隨著人們對現代通信系統要求的不斷提高,對處理器的性能要求也在不斷增加。以往滿足不斷增長的系統性能要求的方法是提高時鐘速度。然而,高速設計的壓力和熱問題復雜性的增加意味著這種方法已經接近微處理供應商的能力極限。即使近年來工藝技術有了大幅提高,硅片面積因此也有了顯著縮小,運行速度明顯加快,但也無法跟上性能要求提高的步伐。
一種趨勢是增加額外的處理器。然而,使用額外的處理器會造成架構復雜性增加、系統功耗上升,更不用說價格更高的PCB。越來越多的芯片供應商開始采用在單塊硅片上集成多個處理內核的設計方法。
發展趨勢
向高級電信計算架構(ATCA)和微電信計算架構(uTCA)等業界標準發展的趨勢允許復用機箱、機架和風扇組件,從而不僅可以降低總的系統成本(因為允許使用常用組件),而且能夠通過減輕設計師的設計負擔來縮短產品的上市時間,設計公司也因而能集中精力于更高層的任務,例如系統架構的開發。
這一趨勢的形成原因部分是由于串行/解串器(SERDES)技術即高速串行接口的出現。SERDES不僅極大地提高了承載卡和背板的數據傳輸速度,而且通過取代并行總線架構而簡化了設計工作,避免了并行總線布線、數據扭曲(data skew)、時鐘負載等問題。
工業標準架構允許原始設備制造商(OEM)快速轉向更加模塊化的設計。AdvancedMC(AMC)的“即插即用”特性能讓處理單元迅速得到替換和/或升級(至少就硬件來看是這樣)。
當然,AMC規范的這種模塊化特性也是有代價的,AMC規范在電路板面積、元件高度和模塊電源方面作的限制給電路板設計師提出了新的挑戰。硅片制造商通過努力使這些硅片是AMC“友好的”來應對這些挑戰,如使處理器的功耗更低、封裝體積更小,并集成進更多的功能,不再需要外圍橋接芯片。
存儲器交錯處理技術
對于大多數高性能系統來說,高性能存儲器接口對保證高吞吐量甚為關鍵。通常,在較差的系統設計中,具有極高性能的處理器常常處于一種無數據處理的“饑餓”狀態。
提高總吞吐量的一種方法是采用存儲器交錯處理(memory interleaving)。存儲器交錯處理能使處理器在指定時間內讀寫更多的信息,從而有助于減少潛在的瓶頸問題。
交錯處理的原理是將系統存儲器劃分成多個塊。通常存儲器被劃分成2個或4個塊。這些系統也被稱為雙路或四路交錯系統。即使有兩個物理上獨立的存儲器庫,軟件也視之為一個存儲器塊。
為了實現存儲器交錯處理,必須能夠使用一組單獨的控制線訪問每個存儲器塊。一旦開始對第一個存儲器塊的訪問,對第二個塊的訪問也能同時進行。
在交錯處理的存儲器系統中,仍有兩個DRAM物理庫。然而,處理器在邏輯上只看到一個存儲器庫。對存儲器的訪問是輪流進行的,先是庫1的數據,然后是庫2的數據,然后又再是庫1的數據。邏輯庫的所有偶數長字存放在物理庫1中,所有奇數長字存放在物理庫2中(見圖1)。這樣做具有明顯的速度優勢,因為對這些存儲器的存取采用的是獨立的總線,時間上可以同時進行。
圖1:存儲器交錯處理時序
千萬不要把存儲器交錯與傳統系統中使用多個存儲器庫相混淆。這些“傳統”系統只是簡單地通過增加存儲器庫來提高存儲器容量,通常插入雙列直插存儲器模塊(DIMM)。雖然新增的庫可能被賦予獨立的片選線,但它們一般都共享控制線,比如行地址選通(RAS)和列地址選通(CAS),因此不允許同時訪問。兩個存儲器控制器之間的交錯能力可以為系統設計師提供兩大好處:首先,它不需要處理器利用軟件去平衡對兩個存儲庫的訪問,而是可以自動平衡,因此能讓處理器充分發揮存儲器控制器的帶寬優勢;其次,它允許一次打開兩倍具有空間方位性的DRAM頁,這樣可以顯著提高打開頁被訪問到的概率,從而減小延遲。
存儲器交錯處理過去一直沒有用于嵌入式系統,因為新增存儲器和支持這種架構所需的復雜芯片組成本都非常高。然而,隨著存儲器成本的不斷下降,PC機市場的大力推動以及大量處理器中集成具有交錯處理能力的存儲器控制器,這種技術現在已經走向應用。
例如,MPC8641D Power處理器能通過存儲交錯技術訪問集成在內部的DDRII DRAM控制器。該處理器支持兩個DDRII存儲器控制器,存儲器事務可以根據地址分派給DDRII控制器1或DDRII控制器2。另外,控制器也可以經過配置支持兩個存儲器控制器之間的交錯事務。兩個存儲器控制器之間的交錯處理可以以緩存線(cache line)或頁為基礎進行。
AMC參考平臺
在仔細考慮了對多內核AMC卡的要求后,我們會發現各種要求之間似乎有矛盾或不一致的地方。初看起來確實是這樣,例如:高處理器性能但要最小化功耗;雙存儲器庫,要支持交錯,但只有有限的電路板面積;不存在系統瓶頸的高速SERDES接口;除了“寬管(Fat Pipe)”外,還要支持“普通選項(common option)”接口。
下面讓以飛思卡爾半導體公司推出的MPC8641D AMC參考平臺為例(見圖2),揭示此類架構如何克服上述“問題”的。
圖2:MPC8641D AMC卡功能結構框圖
MPC8641D的兩個內核都以1,500MHz速率運行時的處理器典型功耗為32W,也即這款處理器僅需32W功耗就能提供3GHz的Power處理能力。因此給整體設計帶來了很大的好處:
1. 功耗的減少可以簡化電源設計;
2. 由于需要散發的熱量少,所以可以用較小的散熱器,同時由于減少了對昂貴的專用工具解決方案的需求,設計將更簡單、成本也更低;
3. 較小的散熱器能使電路板輕易滿足對AMC卡的機械要求;
4. 由于是“較冷”的解決方案,整體可靠性提高了。
MPC8641D支持兩個獨立的64位DDRII控制器。這些存儲器控制器是集成在內部的,因此不僅簡化了設計,而且不再需要使用外部的橋接芯片,從而節省了寶貴的電路板面積。卡上的DDRII庫在物理上是用分立器件實現的。這種實現方法有兩大優點:首先,整體解決方案在體積上要小于用DIMM實現的解決方案;其次,由于分立器件不高,因此可以把這些器件放在AMC卡的反面,并保持在高度范圍之內。在MPC8641D AMC卡上,兩個庫都放在正面,并與處理器相鄰(如圖3所示)。
圖3:MPC8641D AMC卡
由于分立DDRII實現的高度低,因此需要時可以安裝較大的散熱器。例如,當卡需要在較高溫度或空氣流動不暢的環境下工作時就需要用較大的散熱器。因此,這種實現方法具有很大的靈活性。
AMC規范開發背后的源動力是背板通過SERDES接口可以獲得較高的數據速率。像串行RapidIO或PCI Express等高速互連總線就是這樣的接口。通常這些接口需要用專門的橋接芯片或FPGA實現。這些額外接口芯片可能導致系統中的瓶頸、額外的成本和更大電路板面積等問題。
MPC8641D集成了支持串行RapidIO和PCI Express的兩個SERDES接口。這種集成式模塊不僅取消了外部芯片,而且避免了潛在的瓶頸問題。由于內部集成了這些接口,可以用內部DMA引擎直接將數據從I/O移動到系統內存。因此不僅去除了瓶頸,而且無需處理器介入就能實現數據傳送。
除了“寬管”外,AMC規范要求在邊沿連接器上提供“普通選項”區域。該區域一般用作兩個千兆位以太網、SERDES接口。就像"寬管"接口一樣,處理器芯片中也集成了千兆位以太網接口。同樣,這樣做能帶來更小電路板面積、更簡單的設計和消除潛在瓶頸等好處。事實上,MPC8641D支持4個千兆位以太網端口。在AMC卡上,兩個千兆位以太網在通用功能區使用,另外兩個通過前面板上的RJ45連接器接出來。
當然,硬件只是整個解決方案的一部分。毫無疑問,設計最復雜的部分,事實上也是最難的架構決策需要根據軟件結構實現。
在多重處理系統中,軟件可歸結為兩種基本選擇,即對稱多重處理或非對稱多重處理。采用哪種系統很大程度上取決于總體系統要求,基本上是系統想在輸入/輸出、任務處理、系統延時等方面達到的要求。每種方法都有自己獨特的優勢。
對稱多重處理方法認為只有一個操作系統高效地擁有系統中的所有資源。例如在MPC8641D雙核處理器上,操作系統將每個內核看作一個資源。對于非對稱多重處理,每個內核運行一個獨立的操作系統。資源一般在各個處理單元之間分配。
每種方法都允許用戶充分利用設計的雙核特性以最大化性能。例如,一個內核處理數據任務,而另外一個內核處理控制任務。或者,第一個內核將各種任務卸載給第二個內核。
MPC8641D內部支持這些架構。例如,針對數據緩存的硬件增強型的、改進的/排它/共享/無效(MESI)的緩存協議可確保緩存一致性。
本文小結
電信產業的發展趨勢是采用能夠最大化電路板面積和功耗等方面的投資回報的解決方案,因此硅片制造商和電路設計師的壓力正在與日俱增,他們不僅需要提高MIPS性能,還要最小化功耗和整機外形。
在硅片供應商努力滿足這些要求的同時,他們開發的處理器也越來越復雜,從而給板級設計師帶來了更多的潛在性挑戰。看起來,設計多內核處理器以滿足AMC規范要求對一個公司來說似乎是個艱巨的任務,在外形、熱要求和板級功能等方面的嚴格規范給板極設計師和設備制造商造成了很大的困難。然而,有硅片供應商提供的參考平臺和設計保證,這些問題可以迎刃而解。用戶為了縮短產品上市時間,紛紛利用硅片制造商提供的參考設計。這些設計可以是實際電路板,也可以是經過驗證的詳細設計,用戶可以在此基礎上開展他們自己的工作。