Chip123 科技應用創新平台
標題:
掌握關鍵技術 讓多核心設計事半功倍
[打印本頁]
作者:
masonchung
時間:
2008-3-28 09:50 PM
標題:
掌握關鍵技術 讓多核心設計事半功倍
過去一段時間以來,很明顯地,報酬遞減法則(Law of Diminishing Return)已經能適用在傳統處理器架構的進展上。每一代新製程幾何尺寸和新興微架構的進步,在相應性能上所能帶來的增益正在逐漸減少──顯然,借助更快速度以實現摩爾定律的方法不再靈驗!
- v5 L9 r9 o. S8 V5 J
- y6 R4 X) f. r/ @- h
英特爾借助Pollack定律(以英特爾微處理器實驗室主任Fred Pollack命名)規則對補摩爾定律進行了補充說明,並闡述了此一事實。Pollack觀察到:從i386起,英特爾每一新架構需要兩到三倍的矽晶片面積,而性能只提升1.4到1.7倍。簡言之,性能的提升與複雜性的平方根成比例。就兩代處理器來說,性能每提升一倍,複雜性便增加4倍;速度提升4倍(依摩爾定律需6年時間),電晶體就要多用16倍。
3 k4 U w9 t1 Y
/ s& s. w/ A1 B7 g w
在此同時,許多人相信,他們已找到了阻止製程尺寸進一步微縮的限制因素:不是微影技術或量子物理,而是在極小的實體空間內進行大量運算工作時,必然需要的巨大功率密度。(聽來很駭人嗎?核心的功率密度已高於熔鐵而接近火箭噴嘴的程度。)
6 C7 _9 Y. f( Y' m2 s
7 Q6 {' T4 i; B% L, Q5 e8 o( f
功耗和微架構改良的限制,使單一處理器的發展前景受挫,業界的關注焦點已轉向多處理器或多核心晶片架構開發潛力。雖然多核心產品實際上已問世一段時間了,該這個概念最近才在桌上型處理器中普及。例如,PicoChip在2002年推出的picoArray產品就在一個晶片上整合了300個核心。
2 Q4 K. k& ?' [ y$ r$ _6 A7 Y
! V5 c& T: ^7 e
由於多核心是用於克服單處理器系統侷限的,所以許多人認為,採用多核心純粹是出於性能方面的考慮。但以picoChip的經驗來看,多核心技術的影響更微妙、意義也比僅簡單地提供更強大的處理能力深遠得多。對我們和客戶來說,最重要的一點是:picoArray多核心產品能比標準處理器提供高10倍的處理能力。
! k8 { L) Z1 G% g+ l# B2 C3 u
% J; b: C4 r, n) I2 _6 A& k
也就是說,在同樣的價格和功耗基準下,採用多核心產品的系統,將比採用標準DSP的系統處理能力高10倍。另外,傳統上需要一個大型FPGA的應用,若採用多核心處理器實現,也能降低成本和功耗。
# k# Z- |3 J5 n5 o8 Z/ B
. S& c/ G6 `1 q3 r0 g
從更實用的角度說,這些成本效益屬性使開發諸如3G femtocells(也稱家庭基地台)等大量市場成為可能。這些產品要求極強的處理能力,且對價格很敏感、上市速度要快。這些技術同樣對處理能力和原材料成本有苛刻要求。
& A7 b' }7 {$ Q. A; s
3 y- k/ u" n8 v
對多核心處理器的解讀還存在其他誤解。其中之一是以為‘多核心’意指一種技術。實際上,多核心囊括了多種方法,這些方法可用以下兩個指標劃分:核心大小和所用核心數量。
9 g4 | N0 e. T
' k+ ^; s) \8 h% k/ D3 G
顯然,在桌上型PC用的雙核心處理器和類似picoArray這類數百個核心平行工作的產品間存在巨大差別。但兩個系統的確都是多核心的。
7 N3 J! T8 Z D' t
+ b, \4 o, D. r/ f
嵌入式系統和通用桌上型PC在需求上有顯著差異。對通用PC來說,即使硬體升級,一個工作狀態持續改變(用戶可在任意時刻執行任何程式)的開放環境仍對性能的一致性提出很高要求。相反地,嵌入式系統通常是執行單一任務(儘管複雜),但當硬體改變時,它會重新編譯程式。
4 j, v; _4 D& t9 d, s$ U6 u
+ `% O' {' v9 d* W8 O$ ]
事實上,為了從多核心架構得到更好的性價比,核心與和多核心矩陣的大小是主要關鍵。為做出正確決策,需徹底瞭解該元件的目標應用。針對無線訊號處理應用,picoChip已針對最合適的核心大小或每百萬電晶體所應提供的處理能力進行了仔細分析。得到的結果是:這種核心相對簡單,其複雜性更接近英特爾8086 CPU,而不像Pentium 4那樣高深。
* V# q8 o8 E' i
4 I6 [- z0 P9 w* {+ _
我們的分析顯示,一個時脈頻率100到200MHz、帶三級管線的16位元、三向、長指令字架構就速度/晶片面積或速度/功耗指標來說是最合適的。這個結論蘊含著進化論的邏輯:由於業界正面臨難以置信的價格壓力和極快的更新換代速度,因此,在目前每年售出10多億部手機內採用的處理器架構中,若出現一種更高效的架構,則業者會毫不遲疑地轉移到新架構上。
' ~7 R; S. }1 l3 f8 \' i9 O
7 ^! q$ |9 V) k5 m' t: ` A8 j4 s
採用這種新架構,我們可在每一元件內放置數百個核心。此舉立即克服了多處理器系統面臨的一個傳統難題:對一個過程進行‘某種程度’的平行化處理雖然能提升少量性能,但卻顯著增加了複雜性,並限制了可用性。證據是,從讓性能提升10到20倍所需增加的成本和功耗來看,獨立測試程式的確顯示(如預期般):同樣的電晶體數量(矽晶片面積、成本、功耗)可獲得更多的成果。實際上,Pollack定律幾年來一直屢試不爽。
2 f7 p8 u. r# z7 }, G' X+ t
9 w0 u) }& k ?! _8 d4 P! p0 N; S: A
這讓我們必須面對最重要的可用性問題。為了把多核心架構的潛能發揮到極致,支援處理器間通訊的硬體至關重要。在此之上,軟體發展工具鏈將決定一個專案的成敗。性價比當然越高越好,但若設計團隊要多花一倍時間才能完全實現這些性能,則單純從經濟角度出發的觀點將難以成立,更別提還必須考慮上市時間了。這就是為何picoChip持續投資支援採用熟悉的軟硬體描述語言,就可進行結構化編程工具鏈研發的主要原因。
4 W) j! u r8 }: d5 J- c& o
$ d+ k4 i+ z7 E% `9 K- s
所以,我們可得出如下結論:雖然多核心的確是必經之路,但簡單的整合更多核心並不能解決問題。必須根據應用需求來調配處理器的大小和數量、提供充分的處理器間通訊能力;另外,最重要的是透過提供一個基於標準的直觀工具鏈,來確保軟體工程師能發揮最高創造力。
( B; w+ _/ {8 m- i% m' [7 B
) d, L( V, U, F* p6 u
儘管僅有在上述所有條件皆齊備時多核心才能事半功倍。但好消息是,這些因素不僅可確實獲得,而且也已經在上市產品中獲得驗證。
* P2 h l' Q9 v
5 v( z' M6 n! R: q
3 d# _5 C( @9 h# ?
作者:Peter Claydon
8 i; y. L* z+ s$ k8 X& l
9 f$ w6 `: w1 b+ t4 n9 V$ V
共同創辦人兼COO
2 W9 p' o1 d& o
9 G6 Y5 ~8 J- y% W: X4 }) W
picoChip公司
作者:
jacky002
時間:
2008-4-6 11:08 AM
小弟貢獻一些淺見給Mason大哥參考。
$ n) I% r7 @ a% H
其實目前業界在多核心所面臨到的問題主要是在 - 軟體,沒有適當能發揮功能的即時作業系統(RTOS)
& M/ I/ M7 A- P5 R& T% l3 W
可以將多核心的效能發揮到淋漓盡致。
+ l: y( {. c0 ?. a9 e6 k3 i
6 l7 g2 c6 l4 n) y% k
以我個人而言,當初想要導入多核心RTOS的應用領域,配合公司做下一代產品規劃。
! G% _6 T A* S4 `# }
而所面對的問題是要如何切割工作,讓系統執行效率能 1+1 > 1.5 ~ 1.8.
3 q3 z1 K. ?5 W5 u) t) V! H0 d
另外,系統的JTAG Debug 界面要如何才能有效的工作 - 當初都是各自debug CPU的兩套環境,不像現在RVDS3.1那麼方便。
& J+ T1 ] ^% g7 J; B9 O0 E- d
+ T/ N. V# x* S
我相信很多公司要導入多核心也會面臨這些困境,而克服這些問題是需要一些時間的learing curve才能適應。
) v( W# Z/ K$ g, n) H
往往選擇的工作模式都是每個核心都只要負責處理一小部份的獨立工作,而非讓CPU能互相做load balance與random job assign
q- l+ Y6 X$ L
... etc. 例如:CISCO的高階網路處理器(NPU)裡面所涵蓋的CPU有達到24個,每個CPU負責不同的layer與content inspection的功能。
* q: x: Z1 _. h1 B" u A7 X" B
3 J4 _5 R9 S' S: ]0 w* O( P
我所要表達的是對多核心的認知上,軟體與應用方面都還未達到精髓,還有一段不遠的路要走。
/ t8 H: }5 s. D1 \5 h4 B
也很少人想要榨乾多核心的各個CPU都能發揮到極致效能,這是比較少去討論的問題。
: ~# L; B7 Z% B+ E
& _) k- V& p! d
但如果我們以整個系統設計層面來討論,CPU的IP就已經Ready而用一個跟用兩個以上,在IP license的cost也差不多,甚至於不用額外開銷。
, h4 I1 f3 r1 p; d3 j+ Q
只要Host CPU將F/W載入application(Slave) chip就可以有多核心的系統,讓Host CPU assign job給另一顆CPU就搞定。這就是目前
- \+ {* k4 d1 O3 m5 D5 b
業界在開發的普遍現狀。以產業分工與TTM(Time-To-Market)為考量這是對的,但如果以研究多核心的技術而言,我只是拋出一個方向讓大家討論。
$ Z. K) _# b2 I# R: |; e
有興趣的高手們,可以加入一起討論?
作者:
masonchung
時間:
2008-4-15 12:05 AM
jacky 大大的確是嵌入式系統的箇中高手
. V ]3 P4 n- } [$ }6 h
要發揮多核心的效能是目前軟體的一大挑戰
2 o6 S4 O0 r6 q0 m% ]2 \7 _
要做成支援多核心的SOC也是需要一些時間的learing curve
7 ?3 P" r/ y! t; X/ |
這方面還需有經驗的高手共襄盛舉,教學相長
& w' P2 y: [. G' E0 Y1 \
9 v; E! m" e/ Y
[
本帖最後由 masonchung 於 2008-4-15 12:08 AM 編輯
]
歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/)
Powered by Discuz! X3.2