這么說吧,ASIC原本就是專門為某一項功能開發(fā)的專用集成芯片,比如你看攝像頭里面的芯片,小小的一片,集成度很低,成本很低,可是夠用了。一個山寨攝像頭賣才賣30塊,買一片ARM多少錢?后來ASIC發(fā)展了一些,稱為半定制專用集成電路,相對來說更接近FPGA,甚至在某些地方,ASIC就是個大概念,F(xiàn)PGA屬于ASIC之下的一部分。
FPGA基本就是高端的CPLD,兩者非常接近。我現(xiàn)在用的是ALTERA DE2開發(fā)板的CYCLONE系列FPGA。這種器件是用邏輯門來表述性能的。本身他就是一堆的邏輯門,通過硬件描述語言,比如verilogHDL把它轉成電路連接,從最基本的邏輯門層面上連接成電路(參見數(shù)字電路書上那些全加器觸發(fā)器什么的)。應該說,雖然看起來像一塊CPU,其實是完全硬件實現(xiàn)的。后來因為寫代碼麻煩,對控制部分比較薄弱,本來跟其他CPU配合使用,即麻煩的算法CPU提交給FPGA,F(xiàn)PGA算完把結果再返回給CPU??墒沁@樣外圍電路就變得麻煩。于是提出了SOC設計方法,就是直接在FPGA里寫一個CPU出來,既然FPGA萬能,做個CPU自然毫無壓力。這其中還有軟核和硬核的區(qū)別,不過除了性能,使用方法大同小異。所謂IP核,就是把各種專用集成電路用硬件描述語言描述,然后燒到FPGA里形成專門的電路,這樣就不必另外搭芯片了,所有的電路在一片F(xiàn)PGA里面形成。
DSP實際應該稱為DSPs,即用于DSP處理的專用芯片。跟普通計算機的區(qū)別一方面是他是哈佛結構的,也就是數(shù)據(jù)和程序空間分開。(普通計算機是馮諾依曼結構)另一方面他有流水線結構,不過現(xiàn)在其他也有了,見賢思齊。再一方面他有專用的硬件算法電路,用以完成DSP運算,比如最基本的乘法累加。上過DSP的就知道,蝶形算法FFT什么的,拆成最基本單元就是乘法累加,把這部分加速了,整體性能就有非常大的提高。DSP對于流媒體的處理能力遠遠的優(yōu)于通用CPU。所以你看現(xiàn)在手機CPU,至少語音部分都是用DSP的。后來DSP概念也復雜化,各家都把一個控制核心整合到DSP里面,比如現(xiàn)在的智能手機芯片??梢钥匆幌赂咄ɑ蛘逿I的片,基本是一個ARM核控制整體運算,一個DSP處理語音編解碼,一個GPU負責圖像運算,一個基帶和天線處理模塊負責通信,再加一些七七八八的東東比如GPS模塊什么的。
單片機就是一個百搭的通用CPU,提供各種接口來對整體進行控制,相當一個總調度,當然,簡單的功能一片CPU獨立工作也就完成了。原來的51系列就是一堆IO口,后來慢慢的把常用的PWM,AD之類的功能加入了單片機。主要包括用了無數(shù)年仍然牛逼各大學必教的51系列,還有AVR,PIC,ARM,HOTEK……其實ARM9以后,已經(jīng)說不清ARM算哪類了,目前的架構來看,更接近DSP。
總之,現(xiàn)在各種東西都取長補短大融合,所以只要選擇自己需要用的就好,沒必要強求分類。
[4]
|