arm晶元用pcie匯流排是不是能提高數據傳輸性能和效率?
arm自己有一套匯流排,包括flash也都是用的arm自己的介面,那麼如果arm晶元使用pcie匯流排介面,是不是可以提升內存和flash的數據傳輸速度,使整體性能加強?
xieyao你提到的ARM匯流排應該是存儲擴展用的並行匯流排。而PCIE是用於微控制器/微處理器到外設之間的高速串列匯流排。兩者是不一樣的。
另外,有的ARM晶元是帶有PCIE介面模塊的,比如TI的SITARA系列 Cortex-A8 內核的晶元。所以,問之前請先調查清楚。
先跑題一下,ARM的性能瓶頸不在匯流排上。舉個例子,內存帶寬是其重要的瓶頸之一。現有ARM的並非沒有集成Pcie控制器,如陳俊直所說的TI部分系列,還有CB2,3的全志A20 SOC,對SOC而言,只要你買了授權的IP core是可以集成到基於ARM的晶元的。就題主的問題可以有兩個方面來切入,一個是片內匯流排與片外匯流排,一個是ARM的性能。
第一個,題主說的「arm自己有一套匯流排」,這個是片內匯流排的概念,比如AMBA,再細層次的AXI等。ARM與flash的通訊屬於片外匯流排通訊,引申開來有各種片外匯流排,如:SPI,I2C,UART,PCIE等等。那通過PCIe來連接flash確實如 @瘋狂的蔬菜說的,有點殺雞用牛刀的意思。另外,外部匯流排速率上去了,但外設自身速率沒上去也很難提高整體的通信速度。
第二個,提高ARM整體性能。這個議題應該是整個ARM聯盟一直孜孜不倦追求的。坦率的講,僅從性能上,Intel確實可以吊打整個ARM聯盟。原因在於精簡指令集(RISC)是一種更為消耗帶寬的指令集,但ARM 架構的內存帶寬卻遠遠不足,因此這是ARM性能提升的巨大瓶頸。我想,我們談到的並能運算能力差,超線程能力等等瓶頸,其主要的根因也在這。所以,題主問這個問題可能是真心希望改善ARM性能,對於ARM陣營是可好消息。不過,方向可能有些偏頗,呵呵。PCIE匯流排是一種外部匯流排協議,也就是說是一種片間匯流排協議。
具體到這個問題上,假設我有一顆帶PCIE功能支持的ARM晶元,PCIE可以用來連接CPU和特定的存儲器控制器,而不是Flash晶元本身。這是因為大部分FLASH晶元是用來實現存儲程序和數據的功能,具體到電路上面就是地址線給定一個地址-&>使能-&>數據線上出現相應地址的數據電平,實現這種功能並行介面就足夠了。如果硬是要把Flash晶元掛在PCIE通道上面,每一顆Flash晶元都要額外多設計一個PCIE控制器,成本會大大提高。而在SoC一端,也要增加一堆PCIE控制器,成本和功耗都會提高很多(我印象中PCIE控制器在ARM的SoC裡面是一個獨立的IP核,要額外授權?如有誤請指出)。
其次,Flash是一種以block而不是bit組織的存儲器,而且還有壞塊的問題,因此必須要有一個專用的控制器對所有Flash晶元進行集中管理。ARM的SoC上面集成了控制器的話,Flash晶元就可以直接用並行匯流排接到SoC上面了,用PCIE就多做了一層無謂的轉換了。
最重要的一點是,目前大部分ARM的性能瓶頸和匯流排無關,發揮這些SoC的全部數據吞吐能力用PCIE匯流排的話有點殺雞用牛刀了。推薦閱讀:
※如何評價 AMD 的第一個 ARM 平台?
※A9X的真實實力如何? 與X86 CPU比較有何優劣?
※劍橋最後一家科技巨頭ARM被日本Softbank購買了(234億英鎊),英國科技行業還有未來嗎?
※嵌入式控制器中 C++ 的用處真的比 C 大嗎?