溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

CPU、MCU、PLC、DSP、SOC、FPGA等之間的關(guān)系

發(fā)布時(shí)間:2020-07-31 13:51:32 來(lái)源:網(wǎng)絡(luò) 閱讀:9809 作者:佳嵌 欄目:系統(tǒng)運(yùn)維

它們之間的關(guān)系

CPU是最基本的存在,因?yàn)槟承┰颍贑PU的外部又包裹了部分附加功能,和CPU一起共同構(gòu)成MCU、DSP、SOC等這些芯片,因此它們都是從CPU的基礎(chǔ)上擴(kuò)展而來(lái),基本關(guān)系我們可以理解為下圖。












至于說(shuō)為什么MCU、DSP、SOC等芯片,會(huì)在CPU的基礎(chǔ)上內(nèi)置功能擴(kuò)展,其它的功能自然它們自己的目的和道理,后面會(huì)針對(duì)每個(gè)芯片做解釋。


9.2 CPU芯片

CPU的英文全稱(chēng)為Central Processing Unit,直譯為“中央處理單元”或者中央處理器,不管什么類(lèi)型的計(jì)算機(jī)都必須要包含CPU,因?yàn)镃PU中的運(yùn)算器和控制器是整個(gè)計(jì)算機(jī)工作的腦中樞。


9.2.1 在什么情況下,CPU為獨(dú)立芯片

當(dāng)我們需要極高性能的CPU時(shí),就必須把CPU單獨(dú)做成一個(gè)芯片,因?yàn)閱挝幻娣e的門(mén)電路數(shù)量是有限的,因此如果像MCU、DSP、SOC一樣,將CPU和很多其它的內(nèi)置擴(kuò)展都集成在一起時(shí),當(dāng)芯片體積都差不多的情況下,單獨(dú)CPU芯片所含門(mén)電路數(shù)量一定高于MCU、DSP、SOC的內(nèi)置CPU所含門(mén)電路數(shù)量,因此才會(huì)單獨(dú)的將CPU集成為一個(gè)獨(dú)立芯片。而且給獨(dú)立的CPU芯片做功能擴(kuò)展時(shí)會(huì)更加的靈活。










9.2.2 哪些計(jì)算機(jī)使用單獨(dú)成片的CPU

現(xiàn)在像個(gè)人電腦和服務(wù)器這一類(lèi)的計(jì)算機(jī),其計(jì)算能力的要求是較高的,因此目前個(gè)人電腦和服務(wù)器的CPU都是獨(dú)立芯片,我們都知道個(gè)人電腦和服務(wù)器的的芯片使用Intel的X86(全稱(chēng)80x86)系列的居多,所以intel的用于個(gè)人電腦和服務(wù)器的CPU基本都獨(dú)立芯片的。


9.2.3 使用CPU獨(dú)立芯片的會(huì)使得計(jì)算機(jī)體積較大,不適合便攜式設(shè)備

如果CPU是獨(dú)立心芯片的話(huà),很多CPU的擴(kuò)展功能需要通過(guò)外置擴(kuò)展的方式實(shí)現(xiàn),所以這就會(huì)導(dǎo)致個(gè)人電腦和服務(wù)器這一類(lèi)的計(jì)算機(jī)體積較大。目前便攜式計(jì)算機(jī)設(shè)備越來(lái)越多,比如手機(jī)、數(shù)碼相機(jī)、平板等這一類(lèi)的計(jì)算機(jī)設(shè)備,為了能夠方便的攜帶,對(duì)于體積要求較高,因此為了將體積減小,就將很多原本很占體積的CPU的外部擴(kuò)展,直接和CPU集成為了一個(gè)很小的芯片,也就是我們前面提到的MCU、PLC、DSP、SOC等芯片,但是這樣做的代價(jià)就是芯片的中內(nèi)置CPU的計(jì)算能力下降了,但是對(duì)于很多移動(dòng)計(jì)算機(jī)設(shè)備來(lái)說(shuō),并不需要像個(gè)人電腦或者服務(wù)器一樣的計(jì)算能力,只要能夠打電話(huà)、看電視頻、聽(tīng)音樂(lè)、玩手游(無(wú)法玩pc才能玩的大型游戲)等等即可。

























9.3 MCU芯片

9.3.1 MCU名詞

MCU的英文全稱(chēng)為Microcontroller Unit,直譯為“微控制單元”,又被稱(chēng)為Single Chip Microcomputer ,直譯為“單片微型計(jì)算機(jī)”,簡(jiǎn)稱(chēng)單片機(jī),最簡(jiǎn)單的理解就是一個(gè)芯片就是一個(gè)微型計(jì)算機(jī)。


9.3.1 CPU芯片和MCU芯片的區(qū)別












從上圖就能大致的看出,CPU與MCU的區(qū)別,但如果說(shuō)想詳細(xì)的了解MCU具體情況的話(huà),這樣簡(jiǎn)單的對(duì)比還不夠。
















9.3.2 PC的結(jié)構(gòu)

為了弄清楚MCU,需要先從PC機(jī)的內(nèi)部結(jié)構(gòu)開(kāi)始講起,然后通過(guò)對(duì)比來(lái)引出MCU。



























(1)對(duì)于PC等計(jì)算性能較高的計(jì)算機(jī),它們各個(gè)組成部分是分離的,因?yàn)镻C的計(jì)算能力要求很高,所以PC的CPU處理能力很強(qiáng),而且是獨(dú)立芯 片,內(nèi)存和外存的容量非常的大。

(2)不管是那種計(jì)算機(jī),都必須包含CPU、三大總線(xiàn)(地址/數(shù)據(jù)/控制)、外設(shè)IO接口、內(nèi)存和外存,其中內(nèi)存和外存是必須包含的外部設(shè)備, 因?yàn)楸仨氁写鎯?chǔ)設(shè)備用于存儲(chǔ)程序和數(shù)據(jù)。

(3)像什么聲卡和喇叭,顯卡和顯示器,網(wǎng)卡和網(wǎng)線(xiàn)等其它外部設(shè)備等,不同的計(jì)算機(jī)根據(jù)用途不同會(huì)有所不同。

9.3.3 MCU

(1)很多電子設(shè)備對(duì)于計(jì)算能力要求較低,但是體積要求很高

PC等大型計(jì)算機(jī)為了擁有較高的計(jì)算能力,各個(gè)組成部分是分離組建的,獲得了計(jì)算能力但是犧牲了體積。但是對(duì)于像電動(dòng)玩具、家電控制器等這類(lèi)小型電子設(shè)備而言,不需要什么計(jì)算能力而更在乎體積,所以才有了MCU(單片機(jī))的出現(xiàn),MCU是芯片級(jí)的計(jì)算機(jī)。


(2)MCU與PC的異同

1)相同點(diǎn):都必須包含的CPU、三大總線(xiàn)(地址/數(shù)據(jù)/控制)、IO接口、內(nèi)存和外存這些核心的東西。

1)不同點(diǎn)

(a)單片機(jī)會(huì)將CPU、三大總線(xiàn)(地址/數(shù)據(jù)/控制)、IO接口、內(nèi)存和外存集成到一起,PC是分離的

(b)單片機(jī)為了自己特有目的,內(nèi)部還會(huì)集成比如串口、定時(shí)器、AD/DA等外部設(shè)備。























串口、SPI、12C這三種外設(shè)是MCU常見(jiàn)的三種串行通信方式,如果你對(duì)串口、SPI、I2C感興趣,情感后續(xù)的單片機(jī)課程。


(3)MCU特點(diǎn)

1)單片機(jī)芯片不能直接工作,必須為其設(shè)計(jì)外部電路(最起碼供電電路),并且燒錄程序,才能工作。


2)MCU的優(yōu)缺點(diǎn)

(a)優(yōu)點(diǎn):體積小,價(jià)格便宜,單個(gè)芯片就是一個(gè)微小的計(jì)算機(jī),使用方便

(b)缺點(diǎn):因?yàn)轶w積小,所以MCU的CPU、內(nèi)存和外存相對(duì)于PC的來(lái)說(shuō),肯定差了很多,犧牲計(jì)算能力換來(lái)了體積優(yōu)勢(shì)。


3)應(yīng)用

對(duì)于很多簡(jiǎn)單應(yīng)用,比如玩具、家電(電飯煲)等對(duì)于計(jì)算能力要求很低的小型計(jì)算機(jī)設(shè)備來(lái)說(shuō),MCU的計(jì)算功能已經(jīng)足夠,關(guān)鍵是便宜,對(duì)于成本控制很敏感的產(chǎn)品來(lái)說(shuō),價(jià)格這一點(diǎn)顯得突出。


(4)MCU總結(jié)

所以MCU就是將CPU、三大總線(xiàn)(地址/數(shù)據(jù)/控制)、IO、內(nèi)存、外存、以及某些專(zhuān)用外不是被集成為一體的芯片,這就是MCU,一片一機(jī)。


(5)為什么現(xiàn)在MCU使用的這么多

因?yàn)槟隳玫絚pu后,盡管單獨(dú)CPU的計(jì)算能力很強(qiáng),但是你還要為CPU設(shè)計(jì)大量的外部設(shè)備,開(kāi)發(fā)難度直接上了一個(gè)等級(jí),對(duì)于很多不需要太強(qiáng)計(jì)算能力的場(chǎng)合不合適,使用計(jì)算能力很強(qiáng)的獨(dú)立芯片的CPU,簡(jiǎn)直就是殺雞用牛刀,關(guān)鍵是你拿到后還需要為其設(shè)計(jì)復(fù)雜的電路,以便為擴(kuò)展很多需要的最起碼的外設(shè)(內(nèi)存等),設(shè)計(jì)成本很高。

但是MCU芯片一次性就把就算計(jì)需要基本東西全部集成到一起,你拿到后開(kāi)發(fā)難度直線(xiàn)下降,因此對(duì)于功能要求不高,成本控制嚴(yán)格的場(chǎng)合,顯然使用單片機(jī)開(kāi)發(fā)是必然的選擇。


(6)MCU的分類(lèi)

1)低中段

低端單片機(jī)比如8051,中端單片機(jī)比如stm32,低中端主要用于家電、玩具等成本低,計(jì)算能力要求不高電子設(shè)備。

2)高端

ARM中A系列(Cortex-A8,Cortex-A89等)的芯片典型的就是高端MCU,主要用于消費(fèi)類(lèi)電子,比如手機(jī)、平板、數(shù)碼相機(jī)。


(7)現(xiàn)在常說(shuō)的單片機(jī),默認(rèn)指低中端單片機(jī)

一般來(lái)說(shuō),我們說(shuō)單片機(jī)時(shí),默認(rèn)指的是低中端的MCU,一般不會(huì)稱(chēng)呼高端MCU為單片機(jī),而是直接使用它們的型號(hào)名稱(chēng)來(lái)稱(chēng)呼,比如ARM的Cortex-A7, Cortex-A8, Cortex-A9,Cortex-A15等。


(8)嵌入式開(kāi)發(fā)與MCU

嵌入式開(kāi)發(fā)所涉及的就MCU這類(lèi)的計(jì)算機(jī)芯片,低端到高端都有,MCU的種類(lèi)很多,這里不在贅述,因?yàn)樵诤竺娴膯纹瑱C(jī)課程中,會(huì)詳細(xì)講。

對(duì)于真正嵌入式開(kāi)發(fā)者,必須具備低中高端MCU的使用能力,希望學(xué)習(xí)嵌入式的同學(xué),請(qǐng)看后面的技術(shù)課程。


9.4 PLC

PLC,英文全程為Programmable Logic Controller,直譯為“可編程邏輯控制器”,直白理解就是可以編程控制的控制設(shè)備,是專(zhuān)門(mén)用在工業(yè)環(huán)境下電子控制設(shè)備,從“電子控制設(shè)備”這個(gè)詞就能看出,事實(shí)上PLC并不是一個(gè)芯片,而是一個(gè)設(shè)備。

那么PLC到底是怎么出現(xiàn)的呢?需要先從使用MCU設(shè)計(jì)工控設(shè)備的缺點(diǎn)開(kāi)始說(shuō)起。


9.4.1 直接使用MCU設(shè)計(jì)工業(yè)控制設(shè)備的缺點(diǎn)

前面講MCU時(shí)就說(shuō)過(guò),是可以使用MCU來(lái)設(shè)計(jì)工業(yè)控制用的設(shè)備的,購(gòu)買(mǎi)到MCU芯片后,可以從頭到尾設(shè)計(jì)出某功能的工控設(shè)備,但是這樣做的問(wèn)題很難多,這些問(wèn)題導(dǎo)致成本高、風(fēng)險(xiǎn)大,問(wèn)題有,


(1)問(wèn)題1:周期長(zhǎng)

從頭到尾設(shè)計(jì),你就必須設(shè)計(jì)電路原理圖,繪制pcb板,元器件焊接,編寫(xiě)和調(diào)試程序,產(chǎn)品發(fā)布后還有測(cè)試周期,所以做工控設(shè)備的公司直接使用MCU從頭開(kāi)始設(shè)計(jì)的,開(kāi)發(fā)周期實(shí)在是太久。


(2)問(wèn)題2:設(shè)計(jì)難度大,穩(wěn)定性不高

很多工控研發(fā)公司不是專(zhuān)業(yè)的MCU開(kāi)發(fā)公司,所以MCU開(kāi)發(fā)技術(shù)不成熟,加之工業(yè)設(shè)備運(yùn)行環(huán)境復(fù)雜,比如高電壓,高粉塵,高振動(dòng),高輻射等,對(duì)于設(shè)備的穩(wěn)定程度需求很高,MCU開(kāi)發(fā)經(jīng)驗(yàn)不足的公司,很難開(kāi)發(fā)出穩(wěn)定性高工控設(shè)備。


(3)問(wèn)題3:成本高

由于第一個(gè)和第二個(gè)原因,如果直接使用MCU從零開(kāi)發(fā)的話(huà),成本非常高,關(guān)鍵是還開(kāi)發(fā)不出好的設(shè)備。


9.4.2 PLC的出現(xiàn)

(1)PLC是如何解決上述問(wèn)題的

經(jīng)驗(yàn)豐富的專(zhuān)業(yè)的、對(duì)工業(yè)控制設(shè)備非常熟悉的MCU設(shè)計(jì)者站了出來(lái),設(shè)計(jì)了一款穩(wěn)定性極高的、功能可圖形化編程的、具備基礎(chǔ)功能的半成品的MCU工控設(shè)備,其他人拿到這個(gè)穩(wěn)定成熟的半成品設(shè)備后,非常容易的就能擴(kuò)展出自己特有的工控設(shè)備。



















(2)PLC這種半成品工控設(shè)備的優(yōu)點(diǎn)

前面就說(shuō)過(guò),PLC并不是一個(gè)芯片,PLC只是使用MCU芯片設(shè)計(jì)的半成品的電子工控設(shè)備,關(guān)鍵是可以使用這個(gè)設(shè)備進(jìn)行功能擴(kuò)展,擴(kuò)展的方式就是插接各種的電路線(xiàn),PLC的實(shí)物圖如下










日本三菱的PLC設(shè)備


使用PLC設(shè)計(jì)工控具有如下優(yōu)點(diǎn):

1)無(wú)需從零開(kāi)發(fā):也就是說(shuō)別人已經(jīng)將所有最核心的設(shè)備硬件做好了,幫你把最難最復(fù)雜的部分實(shí)現(xiàn)好

2)硬件上擴(kuò)展簡(jiǎn)單易行:硬件的擴(kuò)展很容易,直接通過(guò)“功能擴(kuò)展接線(xiàn)螺絲”連接外部控制設(shè)備,就可以進(jìn)行擴(kuò)展了。

3)編程容易:PLC在設(shè)計(jì)時(shí),已將底層的各種功能的程序代碼,轉(zhuǎn)成了各種直觀(guān)的圖形符號(hào)(梯形圖),直接通過(guò)這些梯形圖的繪制就可以編程了, 會(huì)有相應(yīng)的軟件將梯形圖轉(zhuǎn)變?yōu)樽罱K需要執(zhí)行的MCU計(jì)算機(jī)指令。












梯形圖


4)穩(wěn)定程度高:由于是由專(zhuān)門(mén)為工控量身設(shè)計(jì),具有很強(qiáng)的穩(wěn)定性,足以應(yīng)對(duì)工業(yè)上的各種復(fù)雜情況。


9.5 Soc芯片

其實(shí)很多人對(duì)于SOC芯片的理解都是錯(cuò)誤的,那么也是通過(guò)這一小節(jié)的講解,希望大家能夠搞清楚什么是SOC。

SoC的英文全稱(chēng)System-on-a-chip,直譯為“片上系統(tǒng)”,直接從名字理解什么是SoC有些困難,但是如果直接講什么是SOC芯片的話(huà),也很難闡述清楚。

事實(shí)上,SOC與MCU是有著很大的關(guān)系,所以如果不能說(shuō)清楚二者的關(guān)系的話(huà),也就無(wú)法搞清楚SOC的,需要先從從MCU說(shuō)起。

9.5.1 先說(shuō)說(shuō)MCU

(1)其實(shí)MCU芯片是通用計(jì)算機(jī)芯片

所謂“通用”就是滿(mǎn)足很多方向的應(yīng)用,既能用于家電,也能工業(yè)、交通等很多方向。

(2)MCU如何滿(mǎn)足通用開(kāi)發(fā)需求

為了滿(mǎn)足不同公司,不同應(yīng)用方向開(kāi)發(fā)需求,MCU必須滿(mǎn)足哪兩個(gè)兩點(diǎn):

1)程序由開(kāi)發(fā)公司自主編寫(xiě)

因?yàn)楣居凶约禾赜械男枨?,因此希望能夠開(kāi)發(fā)自己的特有程序,所以MCU的程序由開(kāi)發(fā)公司自主編寫(xiě)。

2)MCU芯片中會(huì)集成各種常見(jiàn)的外設(shè)

為主要是了滿(mǎn)足各個(gè)公司在不同方向上的開(kāi)發(fā)需求,比如有些公司需要使用定時(shí)器,有些公司需要使用串口,有些需要使用網(wǎng)卡,需求各不相同,MCU為了都滿(mǎn)足大家的需求,MCU會(huì)將各種常見(jiàn)外設(shè)(定時(shí)器、串口、SPI、I2C、網(wǎng)卡)都集成在了芯片中,用戶(hù)拿去后選擇性使用自己需要的外設(shè),不需要的你不用就是。

(3)使用MCU所面臨的問(wèn)題

1)MCU的價(jià)格相對(duì)較貴的

說(shuō)的是相對(duì)較貴,如果跟使用獨(dú)立CPU芯片進(jìn)行開(kāi)發(fā)相比的話(huà),MCU無(wú)疑非常便宜的,就人來(lái)說(shuō)的話(huà),欲望是無(wú)止盡,便宜了還希望更便宜。

人們認(rèn)為MCU在某些特殊的情況下,成本還有很大下降空間,事實(shí)確實(shí)如此,才從通用MCU中脫胎出了更便宜的SoC芯片。

2)為什們說(shuō)MCU的還有進(jìn)行成本下降的空間呢?

發(fā)現(xiàn)很多產(chǎn)品是專(zhuān)門(mén)針對(duì)某個(gè)用途,專(zhuān)門(mén)針對(duì)某個(gè)用途時(shí),有如下兩個(gè)特點(diǎn),

(a)該用途只用其中某兩個(gè)外設(shè)

比如只用到網(wǎng)卡,或者串口,其它外設(shè)都是多余的,但是既然買(mǎi)的是通用MCU,就算有些外設(shè)你不用,但是你同樣要買(mǎi)單,事實(shí)上這些不用的外設(shè)就可以拆掉以節(jié)省成本。

(b)開(kāi)發(fā)的程序多是雷同的

很多公司都生產(chǎn)該用途的產(chǎn)品,購(gòu)買(mǎi)MCU開(kāi)發(fā)時(shí),每家公司都要各自開(kāi)發(fā)實(shí)際上大致相同的程序,各家公司都在花相同的錢(qián)開(kāi)發(fā)相同功能的程序,反正程序都是雷同的,只要有一個(gè)人把程序開(kāi)發(fā)好,其它公司不是就不用在為開(kāi)發(fā)程序花簽了嗎。


















9.5.2 SOC解決上述面臨的問(wèn)題

(1)SoC的是怎么節(jié)省成本的

MCU芯片生產(chǎn)廠(chǎng)家發(fā)現(xiàn)了以上描述的情況后,就想到了為MCU芯片使用者節(jié)省成本的方法,

(a)將MCU中不需要用到外部設(shè)備裁剪掉,比如我只需要網(wǎng)卡,那么我就只留下網(wǎng)卡,為購(gòu)買(mǎi)MCU的公司節(jié)省了成本

(b)MCU生產(chǎn)廠(chǎng)家直接將程序固化在芯片內(nèi),購(gòu)買(mǎi)到MCU的公司就不用自己寫(xiě)程序了,也節(jié)省了成本。

通過(guò)以上兩步做出的專(zhuān)門(mén)針對(duì)某用途的特有MCU芯片,這個(gè)特有的MCU就是SOC芯片。
























(2)芯片廠(chǎng)家出SOC芯片的條件

1)芯片廠(chǎng)家設(shè)計(jì)出SOC芯片替被人省了錢(qián),芯片廠(chǎng)家自己不久虧了嗎?

芯片廠(chǎng)家自然是不會(huì)干虧本的買(mǎi)賣(mài),生產(chǎn)SOC的前提是,專(zhuān)門(mén)針對(duì)某用途的SOC的使用量非常巨大,在量非常巨大的情況下,做

出SOC,既能給使用者省成本,SOC芯片廠(chǎng)家自己也不虧,不虧的原因有兩點(diǎn),

(a)SoC能省成本,自然非常受用戶(hù)的歡迎,用戶(hù)也就更加依賴(lài)上了SOC,有助于建立更深的合作關(guān)系。

(b)使用SoC的一定都是大批量的,薄利多銷(xiāo),對(duì)于芯片廠(chǎng)家來(lái)說(shuō),不僅沒(méi)有因?yàn)榻档蚐oC的成本而虧錢(qián),反而掙了錢(qián)。

2)芯片廠(chǎng)家出SOC芯片的先決條件就是,要求使用量大

只有當(dāng)專(zhuān)門(mén)針對(duì)某用途的產(chǎn)品量非常巨大時(shí),芯片廠(chǎng)家才會(huì)為其出SOC芯片,在巨大的量的支持下,芯片廠(chǎng)家和芯片使用公司才有可能雙贏,如果沒(méi)有量的支持,是不可能為其出SOC芯片的。

對(duì)于量小的產(chǎn)品,各家公司只能老老實(shí)實(shí)的購(gòu)買(mǎi)MCU芯片開(kāi)發(fā),因?yàn)閺S(chǎng)家不可能虧本做出讓別人節(jié)省成本的SOC芯片。


(3)總結(jié):什么是SoC

1)一句話(huà)理解SOC

soc相當(dāng)于是擁有特定用途的,為了節(jié)省成本而在出廠(chǎng)時(shí)固化了代碼、且只集成專(zhuān)用外設(shè)、而且使用量非常巨大的特殊MCU。

2)如何理解SoC這個(gè)名字

System-on-a-chip,直譯“片上系統(tǒng)”,往往具有一定完備性的事物才稱(chēng)為系統(tǒng)。

SoC芯片的硬件是根據(jù)需求專(zhuān)門(mén)設(shè)計(jì)的,而且還給它固化了代碼,因此相對(duì)來(lái)說(shuō),SOC可以算得上是一個(gè)硬軟都不缺的完備系統(tǒng),因此才被稱(chēng)片上系統(tǒng),即一個(gè)芯片可算作是一個(gè)相對(duì)完整的系統(tǒng)。


當(dāng)然,拿到SOC芯片后,肯定是要為其設(shè)計(jì)外部電路的。

(4)Soc芯片舉例1)例子1:WIFI芯片











   樂(lè)鑫公司的ESP8266 串口WIFI芯片 


ESP8266是專(zhuān)門(mén)用于WIFI無(wú)線(xiàn)通信的SoC芯片,使用這個(gè)芯片可以設(shè)計(jì)出很多無(wú)線(xiàn)WIFI通信模塊,比如很多單片機(jī)是不能WIFI無(wú)線(xiàn)上網(wǎng),

但是通過(guò)連接擁有SOC芯片的無(wú)線(xiàn)WFIF通信模塊后,就可以無(wú)線(xiàn)WIFI上網(wǎng)了,因?yàn)檫@個(gè)芯片的需求量非常大,因此樂(lè)鑫公司把它做成了SOC。


2)例子2:顯卡、聲卡芯片

其實(shí)電腦中的顯卡芯片、聲卡芯片就是典型soc芯片,顯卡芯片專(zhuān)門(mén)用于視頻的編解碼,聲卡專(zhuān)門(mén)用于音頻編解碼,用途很專(zhuān)一,由于這類(lèi)芯片的使用量很大,因此為了節(jié)省成本,也被做成了SoC,編解碼程序被直接固化在了芯片中。

9.6 DSP芯片

DSP的英文全稱(chēng)為Digital Signal Process,即數(shù)字信號(hào)處理,DSP芯片即指能夠?qū)崿F(xiàn)數(shù)字信號(hào)處理的芯片,直接看名字的話(huà)不好理解,要弄清楚為什么需要DSP芯片,需要先從CPU處理大批量浮點(diǎn)數(shù)的乘法、除法運(yùn)算說(shuō)起。


9.6.1 CPU處理大批量浮點(diǎn)數(shù)的乘法和除法時(shí),面臨問(wèn)題

(1)非常耗費(fèi)CPU的運(yùn)算資源

耗費(fèi)cpu運(yùn)算資源有三方面的原因,

1)數(shù)據(jù)量大:數(shù)據(jù)來(lái)那個(gè)大,自然就需要花費(fèi)更多的時(shí)間處理

2)浮點(diǎn)數(shù):相比整數(shù),浮點(diǎn)數(shù)(小數(shù))的數(shù)據(jù)結(jié)構(gòu)復(fù)雜,處理更費(fèi)勁

3)乘法、除法:相比加法和減法來(lái)說(shuō),加法器在做乘法和除法運(yùn)算時(shí)會(huì)花費(fèi)更久的時(shí)間。

(2)因?yàn)楹馁M(fèi)CPU預(yù)算資源,CPU會(huì)被纏著不放

像音視頻數(shù)據(jù)的編解碼,又或者大型游戲的3D渲染這一類(lèi),典型就涉及大批量浮點(diǎn)數(shù)的乘法和除法運(yùn)算,因此

1)數(shù)據(jù)量大

2)乘法、除法運(yùn)算多

3)浮點(diǎn)數(shù)非常多

如果非要讓CPU處理的話(huà),cpu會(huì)一直耗在這些數(shù)據(jù)的處理上,CPU沒(méi)空去處理電腦的其它事情,比如發(fā)現(xiàn)你的電腦非常的卡,當(dāng)鍵盤(pán)敲入數(shù)據(jù)沒(méi)反映,那是因?yàn)镃Pu還沒(méi)有忙過(guò)來(lái)呢,暫時(shí)沒(méi)空處理鍵盤(pán)輸入的事情。

(3)CPU是有處理大批量浮點(diǎn)數(shù)乘法、除法運(yùn)算的能力,但是CPU有更加重要的工作

因?yàn)閏pu作為整個(gè)計(jì)算機(jī)的主控中心,需要負(fù)責(zé)整個(gè)計(jì)算機(jī)大局上各部件、各種程序的正常運(yùn)轉(zhuǎn),不是只有進(jìn)行大量數(shù)據(jù)運(yùn)算這一項(xiàng)工作要做,因此如果cpu一直被大量數(shù)據(jù)的運(yùn)算纏著不放肯定是不行的。

9.6.2 DSP,以CPU的協(xié)作者的身份出現(xiàn)

(1)DSP職能:專(zhuān)門(mén)進(jìn)行大量數(shù)據(jù)運(yùn)算的芯片

DSP作為cpu的助手芯片,DSP專(zhuān)門(mén)用于應(yīng)對(duì)涉及乘法、除法的大量浮點(diǎn)數(shù)的運(yùn)算,一旦當(dāng)cpu檢測(cè)需要進(jìn)行大量數(shù)據(jù)的乘法和除法運(yùn)算時(shí),就會(huì)將這些煩人的工作交給DSP,DSP會(huì)負(fù)責(zé)處理后,cpu脫身后會(huì)投入到指揮整個(gè)計(jì)算機(jī)的工作中。

(2)CPU和DSP

1)通過(guò)比喻理解CPU和DSP的關(guān)系

好比一個(gè)領(lǐng)導(dǎo),領(lǐng)導(dǎo)能做的事情很多,自然包括文案處理,文案工作少的話(huà)都無(wú)所謂,領(lǐng)導(dǎo)兼職完成就行了,當(dāng)然領(lǐng)導(dǎo)如果專(zhuān)門(mén)從事文案工作的話(huà),也是文案的行家里手,但問(wèn)題是,對(duì)于領(lǐng)導(dǎo)最重要的工作不是文案處理,而是指揮全局,當(dāng)文案工作堆積如山的時(shí)候,如果領(lǐng)導(dǎo)還把大量的精力花在文案處理上的話(huà),就沒(méi)人指揮大局了,這個(gè)時(shí)候就需要為領(lǐng)導(dǎo)安排一位專(zhuān)門(mén)處理文案秘書(shū),由秘書(shū)接替領(lǐng)導(dǎo)繁雜的文案工作,讓領(lǐng)導(dǎo)能夠全身心地進(jìn)入到大局的統(tǒng)籌安排中。

這個(gè)例子中,CPU就是領(lǐng)導(dǎo),DSP就是秘書(shū)。

2)CPU和DSP芯片所處理的數(shù)據(jù),各自的特點(diǎn)

(a)CPU處理的數(shù)據(jù)

cpu處理的數(shù)據(jù)基本都是控制類(lèi)數(shù)據(jù),所謂控制類(lèi)數(shù)據(jù),就是告訴這里開(kāi)、那里關(guān)等的發(fā)號(hào)施令的數(shù)據(jù),這些數(shù)據(jù)的特點(diǎn)就是,

· 數(shù)據(jù)的量較小

· 除法和乘法運(yùn)算少

· 處理的浮點(diǎn)數(shù)少



(b)DSP處理的數(shù)據(jù)

· 處理的數(shù)據(jù)量非常大

· 而且除法和乘法運(yùn)算多

· 處理的基本都是浮點(diǎn)數(shù)


所以DSP專(zhuān)門(mén)用于處理大量浮點(diǎn)數(shù)的乘法和除法運(yùn)算,主要就是為了解放CPU。


3)DSP和CPU相互配合的方式








(a)主從關(guān)系

CPU芯片、或者集成有CPU的芯片是主芯片,DSP是從芯片,也就是說(shuō)DSP聽(tīng)命于CPU的指揮,CPU給DSP劃分任務(wù),讓其進(jìn)行大量 數(shù)據(jù)的運(yùn)算。



(b)CPU和DSP可以集成在一起,也可以是獨(dú)立的兩個(gè)芯片

目前很多情況是,DSP和CPU被集成在了一起,網(wǎng)絡(luò)攝像頭所使用的就是這樣的處理芯片,在專(zhuān)門(mén)提供這類(lèi)芯片的公司中,華為海 思、安霸、TI是最好的三家。



9.7 FPGA芯片












通過(guò)前面學(xué)習(xí)的這張圖片知道,各類(lèi)芯片(CPU、MCU、DSP、SOC)都是由各種門(mén)電路的組合而成,F(xiàn)PGA芯片也不例外。


9.7.1 一般的計(jì)算機(jī)芯片(CPU、MCU、DSP)

可以將一般的計(jì)算機(jī)芯片(比如CPU)表示成為下面這樣,


















傳統(tǒng)的計(jì)算機(jī)芯片,或者說(shuō)一般的計(jì)算機(jī)芯片,比如前面提到的CPU、MCU、SOC、DSP等,這些芯片在出廠(chǎng)時(shí),內(nèi)部門(mén)電路之間的連接關(guān)系是早已經(jīng)固定死了,這一類(lèi)芯片尤其自身的優(yōu)點(diǎn)和缺點(diǎn)。


(a)優(yōu)點(diǎn)

所有設(shè)備的計(jì)算機(jī)芯片都是一樣的,功能靈活性很高,因?yàn)橹灰獔?zhí)行不同的程序?qū)崿F(xiàn)的,計(jì)算機(jī)芯片就可以體現(xiàn)不同的功能(工作邏輯),因此基本所有的計(jì)算機(jī)都采用這種傳統(tǒng)的,出廠(chǎng)時(shí)內(nèi)部門(mén)電路連接就已經(jīng)設(shè)計(jì)好的方式實(shí)現(xiàn)。


(b)缺點(diǎn)

使用該芯片做成產(chǎn)品后,必須要有相應(yīng)的程序指令指揮其工作,工作的步驟必須一條指令一條指令的來(lái),比如有5條指令,這5條指令只能由硬件一步一步的執(zhí)行,不能一次被硬件全部同時(shí)執(zhí)行。這里不少同學(xué)就要說(shuō)了,不是還有多核CPU,就算是多核CPU,并發(fā)也是有限的,給你30條指令全部有硬件一次執(zhí)行完,多核也很難做到一次將30條指令全部運(yùn)行完畢,因?yàn)槟憧偛恢劣?0個(gè)核吧。


9.7.2 FPGA的出現(xiàn)

(1)FPGA名字理解

由于上面的傳統(tǒng)計(jì)算機(jī)芯片并發(fā)運(yùn)行存在缺陷,后來(lái)人們就搞出了一個(gè)叫做FPGA的東西,F(xiàn)PGA的英文全稱(chēng)為Field-Programmable Gate Array,直譯為“現(xiàn)場(chǎng)可編程邏輯門(mén)陣列”,如何理解這個(gè)詞呢,這個(gè)詞包含如下幾層含義,只要理解了這幾層含義,也就理解了什么叫“現(xiàn)場(chǎng)可編程邏輯門(mén)陣列”。


1)門(mén)陣列

這個(gè)芯片內(nèi)部包含大量的邏輯門(mén)(與門(mén)、非門(mén)等等),這些邏輯門(mén)在一起組成一個(gè)一個(gè)的陣列,所以叫門(mén)陣列。


2)可編程

這些“邏輯門(mén)”在出廠(chǎng)時(shí)沒(méi)有固定死的連接在一起,芯片是半成品,可以按照自己的需求通過(guò)硬件編程語(yǔ)言,把這些門(mén)電路按照自己的獨(dú)特需求進(jìn)行連接,像搭積木似的進(jìn)行按需組合。

由于編程修改的是芯片內(nèi)的門(mén)電路組合關(guān)系,也就是硬件組合關(guān)系,因此FPGA的編程也稱(chēng)為硬件編程。


3)現(xiàn)場(chǎng)

芯片內(nèi)部門(mén)電路結(jié)構(gòu)可以隨時(shí)根據(jù)需求重新組合。











(2)FPGA的優(yōu)點(diǎn)

1)優(yōu)點(diǎn)1

可以根據(jù)自己的需求,設(shè)計(jì)芯片的功能,完全做到硬件上同時(shí)執(zhí)行很多功能,執(zhí)行時(shí)間縮短了,所以效率很高

比如采用傳統(tǒng)的是計(jì)算機(jī)芯片需要執(zhí)行5條指令,也就是說(shuō)需要5個(gè)順序步驟才能完成。但是在FPGA這邊,根據(jù)需求重新組合門(mén)電路后,分別同時(shí)的執(zhí)行這5條指令時(shí),在FPGA里面不稱(chēng)為指令而是功能,這5個(gè)功能可以由5個(gè)功能區(qū)同時(shí)執(zhí)行,所以真正的做到了硬件上的并發(fā)。



















2)優(yōu)點(diǎn)2

門(mén)電路組合被硬件語(yǔ)言程序安排好后,硬件功能就固定好了,上電即可運(yùn)行,不再需要什么匯編、c語(yǔ)言來(lái)再寫(xiě)指揮工作的程序。


(3)FPGA的缺點(diǎn)

1)FPGA很貴

2)相對(duì)來(lái)說(shuō),開(kāi)發(fā)難度大


(4)FPGA的硬件編程與我們常說(shuō)的普通編程的區(qū)別

1)FPGA

FPGA的硬件編程使用的語(yǔ)言叫做HDL(Very-High-Speed Integrated Circuit Hardware Description Language),簡(jiǎn)稱(chēng)硬件描述語(yǔ)言,該語(yǔ)言編寫(xiě)的程序可以直接修改FPGA芯片內(nèi)部的門(mén)電路組成結(jié)構(gòu),也就是修改內(nèi)部的硬件結(jié)構(gòu),所以該語(yǔ)言才稱(chēng)為硬件編程語(yǔ)言。


2)普通的編程:比如匯編、c、c++、java等等,這一類(lèi)語(yǔ)言寫(xiě)的程序只是告訴硬件按照某個(gè)步驟工作,但是硬件內(nèi)部的組成機(jī)構(gòu)是固定的。

(5)FPGA應(yīng)用場(chǎng)合

對(duì)于效率要求非常高,特別是在高頻信號(hào)處理方面(信號(hào)發(fā)生器),高到了普通的計(jì)算機(jī)芯片無(wú)法滿(mǎn)足的程度,需要硬件上完全并發(fā)執(zhí)行各種功能才能到達(dá)時(shí),就必須使用FPGA。



9.8 為什么弄清CPU、MCU、PLC、DSP、SOC、FPGA的區(qū)別

(1)知道方案選擇

如果說(shuō)這些芯片之間的區(qū)別搞不清楚的話(huà),會(huì)在項(xiàng)目方案的選擇上不知所措,因?yàn)椴煌捻?xiàng)目要求,對(duì)于產(chǎn)品開(kāi)發(fā)周期,難易度,成本要求,穩(wěn)定程度都有不同的,因此需要選擇不同特性的芯片實(shí)現(xiàn)項(xiàng)目的開(kāi)發(fā),那么你就需要對(duì)這些芯片要有所了解。

(2)通過(guò)對(duì)比加深理解

希望通過(guò)對(duì)這些芯片內(nèi)部結(jié)構(gòu)的對(duì)比介紹,可以加深大家對(duì)于每個(gè)芯片的認(rèn)識(shí)。


作者:佳嵌工作室

51CTO免費(fèi)視頻地址:http://edu.51cto.com/lecturer/12941022.html

課程進(jìn)度咨詢(xún)QQ群:528495268

轉(zhuǎn)載請(qǐng)說(shuō)明源地址。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI