1. 程式人生 > >ARM、DSP、FPGA比較——非常詳細深入

ARM、DSP、FPGA比較——非常詳細深入

http://blog.sina.com.cn/s/blog_ebbe6d790102uwpl.html

【大嘴說說:有些朋友經常爭論哪個嵌入式處理器強於哪個嵌入式處理器,比如有的人說“FPGA強於DSP,或者DSP強於ARM,或者ARM強於DSP”等等這樣的觀點,大嘴不敢苟同。無論哪種嵌入式處理器都有著各自的應用領域,即使存在一時某處理器某系列晶片的短板,那麼隨著時間的推移,總會出現更高階更牛X的處理器以及更牛X的系列晶片。

技術總是不斷進步的,就拿影象行業常用的幾款DSP晶片(的發展)來說,從一開始的C64x系列的DM642,DM6416,到達芬奇系列的雙核架構晶片DM6446,DM6467,

再到目前趨於主流的DM81x晶片,還有C66x(基於多核keystone架構)系列晶片,每一系列晶片的問世都有很大程度上的技術升級、很多晶片都具有劃時代的意義。各處理器應該在特定的時代、各自擅長的地方發揮各自的作用,取長補短。

另外,​假設我們需要比較DSP和ARM做同一C語言影象演算法時各自的效能,那我們不應該拿某一款最強的DSP晶片去和某一款最弱的arm做比較,很明顯,最強的DSP必然要比最弱的arm強,反之也一樣,最強的arm一定要比最弱的DSP強。各處理器有各自的優勢和弱勢,各處理器應該在特定的時代、各自擅長的地方發揮各自的作用,取長補短。

以下文章轉自網路

ARMAdvanced RISC Machines

)是微處理器行業的一家知名企業,設計了大量高效能、廉價、耗能低的RISC處理器、相關技術及軟件。ARM架構是面向低預算市場設計的第一款RISC微處理器,基本是32位微控制器的行業標準,它提供一系列核心、體系擴充套件、微處理器和系統晶片方案,四個功能模組可供生產廠商根據不同使用者的要求來配置生產。由於所有產品均採用一個通用的軟體體系,所以相同的軟體可在所有產品中執行。目前ARM在手持裝置市場佔有90%以上的份額,可以有效地縮短應用程式開發與測試的時間,也降低了研發費用。ARM32位的微控制器,其內部硬體資源的效能較高,可以載入作業系統成為其主要特點,有了作業系統,就可以像pc機那樣多工實時處理,就是同一時間內能完成多個任務,而且不會互相影響。

DSPdigital signalprocessor)是一種獨特的微處理器,有自己的完整指令系統,是以數字訊號來處理大量資訊的器件。其最大特點是內部有專用的硬體乘法器和哈佛匯流排結構對大量的數字訊號處理的速度快。一個數字訊號處理器在一塊不大的晶片內包括有控制單元、運算單元、各種暫存器以及一定數量的儲存單元等等,在其外圍還可以連線若干儲存器,並可以與一定數量的外部裝置互相通訊,有軟、硬體的全面功能,本身就是一個微型計算機。DSP採用的是哈佛設計,即資料匯流排和地址匯流排分開,使程式和資料分別儲存在兩個分開的空間,允許取指令和執行指令完全重疊。也就是說在執行上一條指令的同時就可取出下一條指令,並進行譯碼,這大大的提高了微處理器的速度。另外還允許在程式空間和資料空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬訊號,轉換為01的數字訊號,再對數字訊號進行修改、刪除、強化,並在其他系統晶片中把數字資料解譯回模擬資料或實際環境格式。它不僅具有可程式設計性,而且其實時執行速度可達每秒數以千萬條複雜指令程式,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦晶片。它的強大資料處理能力和高執行速度,是最值得稱道的兩大特色。由於它運算能力很強,速度很快,體積很小,而且採用軟體程式設計具有高度的靈活性,因此為從事各種複雜的應用提供了一條有效途徑。根據數字訊號處理的要求,DSP晶片一般具有如下主要特點:

1)在一個指令週期內可完成一次乘法和一次加法;

2)程式和資料空間分開,可以同時訪問指令和資料;

3)片內具有快速RAM,通常可通過獨立的資料匯流排在兩塊中同時訪問;

4)具有低開銷或無開銷迴圈及跳轉的硬體支援;

5)快速的中斷處理和硬體I/O支援;

6)具有在單週期內操作的多個硬體地址產生器;

7)可以並行執行多個操作;

8)支援流水線操作,使取指、譯碼和執行等操作可以重疊執行。

當然,與通用微處理器相比,DSP晶片的其他通用功能相對較弱些。

FPGA(Field ProgrammableGate Array)現場可程式設計門陣列的縮寫,它是在PALGALPLD等可程式設計器件的基礎上進一步發展的產物,是專用積體電路(ASIC)中整合度最高的一種。FPGA採用了邏輯單元陣列LCALogic Cell Array)這樣一個新概念,內部包括可配置邏輯模組CLBConfigurableLogic Block)、輸出輸入模組IOBInputOutput Block)和內部連線(Interconnect)三個部分。使用者可對FPGA內部的邏輯模組和I/O模組重新配置,以實現使用者的邏輯。它還具有靜態可重複程式設計和動態在系統重構的特性,使得硬體的功能可以像軟體一樣通過程式設計來修改。作為專用積體電路(ASIC)領域中的一種半定製電路,FPGA既解決了定製電路的不足,又克服了原有可程式設計器件閘電路數有限的缺點。可以毫不誇張的講,FPGA能完成任何數字器件的功能,上至高效能CPU,下至簡單的74電路,都可以用FPGA來實現。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬體描述語言自由的設計一個數字系統。通過軟體模擬,我們可以事先驗證設計的正確性。在PCB完成以後,還可以利用FPGA的線上修改能力,隨時修改設計而不必改動硬體電路。使用FPGA來開發數位電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。FPGA是由存放在片內RAM中的程式來設定其工作狀態的,因此工作時需要對片內的RAM進行程式設計。使用者可以根據不同的配置模式,採用不同的程式設計方式。加電時,FPGA晶片將EPROM中資料讀入片內程式設計RAM中,配置完成後,FPGA進入工作狀態。掉電後,FPGA恢復成白片,內部邏輯關係消失,因此,FPGA能夠反覆使用。FPGA的程式設計無須專用的FPGA 程式設計器,只須用通用的EPROMPROM程式設計器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的程式設計資料,可以產生不同的電路功能。因此,FPGA的使用非常靈活。可以說,FPGA晶片是小批量系統提高系統整合度、可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINXXC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。

區別:

ARM具有比較強的事務管理功能,可以用來跑介面以及應用程式等,其優勢主要體現在控制方面;ARM32位的微控制器,其內部硬體資源的效能較高,可以載入作業系統成為其主要特點,有了作業系統,就可以像pc機那樣多工實時處理,就是同一時間內能完成多個任務,而且不會互相影響。

DSP主要是用來計算的,比如進行加密解密、調製解調等,優勢是強大的資料處理能力和較高的執行速度;

FPGA可以用VHDLverilog HDL來程式設計,靈活性強,由於能夠進行程式設計、除錯、再程式設計和重複操作,因此可以充分地進行設計開發和驗證。當電路有少量改動時,更能顯示出FPGA的優勢,其現場程式設計能力可以延長產品在市場上的壽命,而這種能力可以用來進行系統升級或除錯。

DSP VS FPGA

DSP是通用的訊號處理器,用軟體實現資料處理;FPGA用硬體實現資料處理。DSP成本低,演算法靈活,功能性強,而FPGA的實時性好,成本較高,FPGA適合於控制功能演算法簡單且含有大量重複計算的工程使用,DSP適合於控制功能複雜且含有大量計算任務的工程應用。

DSP是軟體實現演算法,FPGA是硬體實現演算法,所以FPGA的處理速度會更高;FPGADSP快的一個重要原因是FPGA可以實現並行運算,而DSP由於硬體結構條件限制,主要還是依靠軟體來提取指令執行,理解為還是序列執行的【大嘴說說:DSP所謂的並行執行主要還是得自己開通軟體流水,或者說是自己寫並行程式碼,而非硬體結構本身】。


相關推薦

ARMDSPFPGA比較——非常詳細深入

http://blog.sina.com.cn/s/blog_ebbe6d790102uwpl.html 【大嘴說說:有些朋友經常爭論哪個嵌入式處理器強於哪個嵌入式處理器,比如有的人說“FPGA強於DSP,或者DSP強於ARM,或者ARM強於DSP”等等這樣的觀點,大

ARMMCUDSPFPGASOC的比較

ARM、MCU、DSP、FPGA、SOC的比較 1、採用架構 ·        ARM:架構採用32位精簡指令集(RISC)處理器架構,從ARM9開始ARM都採用了哈佛體系結構,這是一種將指令與資料分開存放在各自獨立的儲存器結構,獨

比較MCUDSPARMSOCFPGA

1、採用架構 ARM:架構採用32位精簡指令集(RISC)處理器架構,從ARM9開始ARM都採用了哈佛體系結構,這是一種將指令與資料分開存放在各自獨立的儲存器結構,獨立的程式儲存器與資料儲存器使處理器的處理能力得到較大的提高。ARM多采用流水線技術,此技術通過多個功率部

ARMDSPFPGA的技術特點和區別

在嵌入式開發領域,ARM是一款非常受歡迎的微處理器,其市場覆蓋率極高,DSP和FPGA則是作為嵌入式開發的協處理器,協助微處理器更好的實現產品功能。 那三者的技術特點以及區別是什麼呢?下文就此問題略做總結。 ARM(Advanced RISC Machines)

通俗講解微控制器ARMMUCDSPFPGA嵌入式錯綜複雜的關係!

首先,“嵌入式”這是個概念,準確的定義沒有,各個書上都有各自的定義。但是主要思想是一樣的,就是相比較PC機這種通用系統來說,嵌入式系統是個專用系統,結構精簡,在硬體和軟體上都只保留需要的部分,而將不需要的部分裁去。所以嵌入式系統一般都具有便攜、低功耗、效能單一等特性。 然後

ARMDSPFPGA的區別

ARM:ARM(Advanced RISC Machines)是微處理器行業的一家知名企業,設計了大量高效能、廉價、耗能低的RISC處理器、相關技術及軟 件。ARM架構是面向低預算市場設計的第一款RISC微處理器,基本是32位微控制器的行業標準,它提供一系列核心、體系擴充

CPUMCUMPUDSPFPGA介紹

CPU: 中央處理器(CPU,Central Processing Unit)是一塊超大規模的積體電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計算機指令以及處理計算機軟體中的資料。 中央處理器主要包括運算器(算術邏輯

廣告中的AdNetworkAdExchangeDSPSSPRTB和DMP是什麼?

http://www.36dsj.com/archives/4541 AdNetwork、AdExchange、DSP、SSP、RTB、DMP這些模式之間存在著內在的關係,所以在理解的時候,我們需要聯絡起來進行理解,不能分開。 1、RTB(RealTimeBiddi

SQL ServerORACLESYBASEINFORMIX和 DB2詳細比較

開發資料庫應用,選擇一個好的資料庫是非常重要的。目前,商品化的資料庫管理系統以關係型資料庫為主導產品,技術比較成熟。面向物件的資料庫管理系統雖然技術先進,資料庫易於開發、維護,但尚未有成熟的產品。國際國內的主導關係型資料庫管理系統有SQL Server、ORACLE、

weka實際操作--構建分類迴歸模型(比較詳細

轉載已授權,原始連結:http://blog.csdn.net/qq_38663729/article/details/77253165 weka提供了幾種處理資料的方式,其中分類和迴歸是平時用到最多的,也是非常容易理解的,分類就是在已有的資料基礎上學習出一個分類函式

51ARVARM微控制器比較

ARM7,9是32位MCU,AVR\51是8位MCU,32位機可以運算非常複雜的指令,進行大量的資料計算,比如視訊資料,能力較8位機強很多。運算速度也高好多倍. AVR與51相比採用精簡指令集(51是複雜指令集),可以在每個時鐘週期內執行一條命令,而51至少需要12個時鐘週

TI AM570x浮點DSP C66x + ARM Cortex-A15工業控制及可程式設計音視訊開發板的flash處理器RAM

SOM-TL570x引出CPU全部資源訊號引腳,二次開發極其容易,客戶只需要專注上層運用,降低了開發難度和時間成本,讓產品快速上市,及時搶佔市場先機。 不僅提供豐富的DSP、ARM軟體開發案例,還提供DSP+ARM雙核通訊開發教程,全面的技術支援,協助客戶進行底板設計和除錯。 處理器 基於TI AM

linux環境下部署zabbix3.2模板郵件告警詳細過程

-1 ice erer without zlib zip ever native item 服務端部署: 系統環境及軟件版本: Linux:release 6.3 zabbix:zabbix-3.2.5.tar.gz nginx:nginx-1.12.0.tar.gz ph

關於ARM中的tstcmpbnebeq指令

and 等於 與運算 bsp 進制 實例 運算 進行 cmp 一、關於cmp的詳細用法     假設現在AX寄存器中的數是0002H,BX寄存器中的數是0003H。    執行的指令是:CMP AX, BX    執行這條指令時,先做用AX中的數減去BX中的數的減法

breakcontinuereturn的比較

class 進行 當前 ret bsp for循環 clas 循環控制 執行 1、return 語句的作用 (1) return 從當前的方法中退出,返回到該調用的方法的語句處,繼續執行。 (2) return 返回一個值給調用該方法的語句,返回值的

JSP中EL表達式的比較符號字符串比較

clas pan 比較 使用 而是 字符串比較 blog div nbsp el表達式一般不直接用==判斷是否相等 != > < >= <=之類的表示不等於 大於 小於 大於等於 小於等於,而是使用字母表示的表達式,他們的表示如下: ==

ARM指令集Thumb指令集Thumb-2指令集

32bit image 存儲 wid mage 頻率 arm 16bit 承載 MCU使用什麽指令集主要由內核決定的,比如Cortex-M3使用的是Thumb-2指令集 ARM指令集: 編代碼全部是 32bits 的,每條指令能承載更多的信息,因此使用最少的指令完

FPGA基礎知識(四)鎖存器觸發器寄存器和緩沖器的區別

高端 指示器 領域 串行 方法 register 緩沖區 計算機 字節 一、鎖存器鎖存器(latch)---對脈沖電平敏感,在時鐘脈沖的電平作用下改變狀態鎖存器是電平觸發的存儲單元,數據存儲的動作取決於輸入時鐘(或者使能)信號的電平值,僅當鎖存器處於使能狀態時,輸出才會隨著

STL_算法_區間的比較(equalmismatch lexicographical_compare)

include predicate iter version ++ pad data per line C++ Primer 學習中。。。 簡單記錄下我的學習過程 (代碼為主) //全部容器適用 equal

比較pagerequestsessionapplication的使用範圍(轉自用)

nal 周期 有一個 invalid 應用 import real 是否 沒有 (1)直接在web contain中進行對象的實例化。 內置對象 類型 作用域 pageContext javax.servlet.jsp.pageContext