隨著流媒體、寬帶網絡以及各種高速接口的廣泛應用,消費類電子產品開始向三重播放(triple play)甚至四重播放(quab play)的領域演進。對嵌入式處理器的要求也變得越來越高,一方面要處理大量的人機交互、外設控制等任務,另一方面還要對不同接口的聲音、視頻、圖像等數據進行數字信號處理,與此同時,嵌入式系統還要應對功耗更低,體積更小的挑戰(zhàn)。
傳統的應對方法是不斷研發(fā)更寬數據流、更快頻率的處理器,數據寬已經由最初的4位、8位、發(fā)展到現在的16位、32位,頻率也由最初的mhz級到發(fā)展到現在的ghz級,相應的存儲器容量、速度也在不斷增加。但是繼續(xù)沿著高帶寬、高主頻的摩爾定律方向發(fā)展,工藝上的受限已經初顯端倪,更加難以應對低功耗、小體積的需求。眾多廠商也意識到,對于新的應用而言,速度已經不再是唯一因素,提升性能才是更好的選擇。同一化多核處理器結構
單芯片的多核解決方案是個好的嘗試,也是現在的嵌入式應用的熱點之一。interllasys公司seaforth系統芯片是從自已的可擴展嵌入式陣列scalable embedded array (sea)平臺發(fā)展而來的,與將通用處理器和若干dsp核嵌入單芯片的方法不同,該平臺使用了相同的處理器核,每個核既具有通用處理器的功能,同時內部集成高速乘法器 ,經過妥善設計,就可以把復雜的計算任務分配給各個處理器核共同進行。
工作時,可以簡單地指定各個處理器核完成需要執(zhí)行的不同任務。比如,在三重播放應用中,可以讓1個處理器核去管理外接存儲器,讓8個處理器核負責fft變換,完成多媒體算法,再用幾個處理器核帶動應用系統中的各種i/o子系統(見圖1)。這樣,每個處理器都會專心運行自己的任務,避免了執(zhí)行不同任務時任務切換之間的開銷,單個處理器在執(zhí)行流媒體解碼過程中,也不會出現由于處理器等待別的外設而造成的圖像抖動不暢等現象,同時,我們可以根據具體的應用選擇具有不同數量內核的處理器,極大地增強了設計和選擇的靈活性。目前在這一體系下,已經有40核的處理器解決方案。
本地化ram/rom存儲器
和時鐘發(fā)生器
當設計中使用了多個處理器時,存儲器存取的問題就出來了。大多數多核芯片設計把幾個處理器核和一個共用存儲器放在一起。這樣做簡化了設計,因為每一個核只是處理器本身,問題轉到多個處理器核如何共同使用一個存儲器,以及存儲器存取的仲裁,這是一個難題。通常用到某種仲裁網絡或者交叉點切換開關,在只有3個到4個處理器核時,這個方法是可行的。但是,在芯片上需要幾十個處理器核時,共用存儲器的問題變得很復雜,令人望而卻步。此外,由于越來越多處理器核需要對存儲器進行存取,共用存儲器的效率變得越來越低,很快就成為致命的瓶頸,把多核結構在處理方面的優(yōu)點都淹沒了。
seaforth多核處理器使用了本地化存儲器設計,即為每個處理器核設計了自己的ram/rom存儲器。這有兩個好處,一方面避免了存儲器仲裁,也不需要交叉切換開關;另一方面可以分配給每個處理器核所需要的存儲容量。分析典型算法的源代碼,需要的存儲器容量有兩種,一種是1000字節(jié)或者少一些,一種是容量很大,幾兆字節(jié),甚至幾百兆字節(jié)。大多數應用屬于前者,后者則在少數應用中需要,實現上也不切實際。所以seaforth多核處理器為每一個處理器核都用小一些的本地存儲器,1000字節(jié)的數量級,用于存放程序源代碼和數據,rom中固化每個處理器核的bios,再用一個大得多的外接存儲器,作為緩沖存儲器滿足多媒體的需要。
與采用公共外部時鐘的方式不同,seaforth多核處理器為每個核內建一個時鐘——一個簡單的環(huán)形振蕩器。它的速度和硅半導體的速度一樣快,只有在該處理器核工作時,它的時鐘才工作。這種設計方式為下面介紹的核間通訊提供了可能,同時,任一時刻由于只有部分處理器核在工作也大大降低了功耗。seaforth多核處理器有很低的功耗水平,每個處理器以1ghz的頻率運行,而40核的整體功耗為250mw。高效的處理器核間通訊
seaforth多核處理器允許計算量很大的算法由幾個核協作完成,這時,不同核間需要大量的交換數據,通訊方式的優(yōu)劣影響整個系統的性能。
完成一項復雜的任務時,傳統的做法是由操作系統自行指定參與的核,離的很遠的核間通訊需要處理器內有大量的通訊電路,往往設計復雜,效率偏低。在seaforth多核處理器應用中,由工程師自己指定完成特定任務的處理器核,這需要工程師了解哪些任務需要交換更多的數據,然后指定相鄰的核完成這項任務。對于要求大量訪問核外存儲器的任務,同樣可以指定距離最近的核去完成。
seaforth 多核處理器相鄰的核間通訊通過共用寄存器傳輸。
通過共用寄存器這種方式避免了沖突電路和優(yōu)先權網絡的問題,具體傳輸過程中,傳統的處理方法需要利用讀取、檢測、寫入等狀態(tài)位信息建立握手協議,耗費的時間多于實際傳送數據所用的時間。該處理器由于內建一個電路,可以在一個指令周期內