天天看點

處理器分類

關鍵詞:處理器,內建電路,晶片,CPU,GPU,FPGA,ASIC,DSP。

計算機領域常用的處理器,有中央處理器(CPU)、圖形處理器(GPU)、現場可程式設計邏輯門陣列(FPGA)、專用內建電路(ASIC)、數字信号處理(DSP)晶片等。以下是對不同類型的處理器的簡單說明:

●CPU(Central Processing Unit)。CPU是一塊超大規模的內建電路,主要包括算術邏輯運算單元(Arithmetic Logic Unit,ALU)、控制單元(Control Unit)、高速緩沖存儲器(Cache)和動态随機存取存儲器(Dynamic Random Access Memory,DRAM),及實作它們之間聯系的資料、控制及狀态的總線(Bus)。CPU作為通用處理器,兼顧計算和控制,其中70%的半導體用來建構存儲器和控制單元,以處理複雜邏輯和提高指令的執行效率,真正的計算單元ALU隻占了CPU結構中較小的一部分。是以,CPU的計算通用性強,可以處理的計算複雜

度高,但計算性能一般。

●GPU(Graphics Processing Unit)。GPU擅長做類似圖像處理的并行計算,GPU能夠提供大量的計算單元(多達幾千個計算單元)和大量的高速記憶體,可以同時對很多資料進行并行處理。GPU中的半導體更多用于計算單元,其邏輯控制單元與CPU相比較為簡單,且一個邏輯控制單元對應多個計算單元,是以要想使計算單元充分并行起來,必然要求處理的算法本身複雜度較低,且處理的資料之間互相獨立,這樣才能充分發揮GPU的計算能力。

●DSP(Digital Signal Processor)晶片。DSP晶片的内部采用程式和資料分開的哈佛結構,具有硬體乘法器和多功能運算單元,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速的實作各種數字信号處理算法。

●ASIC(Application Specific Integrated Circuit)。ASIC是為了某種特定的需求而專門定制的晶片,目前主流的ASIC是CPLD(複雜可程式設計邏輯器件)和FPGA(現場可程式設計邏輯陣列),它們的共性是都具有使用者現場可程式設計特性,都支援邊界掃描技術,但兩者在內建度、速度以及程式設計方式上具有各自的特點。ASIC的特點是面向特定使用者的需求,品種多、批量少,要求設計和生産周期短,它作為內建電路技術與特定使用者的整機或系統技術緊密結合的産物,與通用內建電路相比具有體積更小、重量更輕、功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優點。

●FPGA(Field Programmable Gate Array)。FPGA是一種高性能、低功耗的可程式設計晶片,可以根據客戶定制來做針對性的算法設計,并且可以重複程式設計。FPGA與CPU的不同在于FPGA無法應對沒有被程式設計過的指令。程式設計方式一旦确定,FPGA就隻能根據被程式設計的處理邏輯和方式來處理特定的資料輸入。但這樣的架構換來的是FPGA内部幾乎全是計算單元,是以FPGA的實際運算能力會強得多,尤其是在運作簡單但重複性高的任務的時候。并且由于省去了CPU的取指和譯碼兩個步驟,FPGA重複運作相同代碼的效率得到了極大的提高。

●CPLD(Complex Programmable Logic Device)。CPLD采用EEPROM設計複雜的可程式設計邏輯器件。它更适合于小型門數設計,由于它的結構不太複雜,延遲是可以預測的,并且是非易失性的。CPLD通常用于簡單的邏輯應用程式。它隻包含幾個邏輯子產品,但更大——達到100個。

FPGA和CPLD都是程式設計ASIC器件,但有如下差別:

①CPLD更适合完成各種算法群組合邏輯,FPGA更适合于完成時序邏輯。換句話說,FPGA更适合于觸發器豐富的結構,而CPLD更适合于觸發器有限而乘積項豐富的結構。

②CPLD的連續式布線結構決定了它的時序延遲是均勻的和可預測的,而FPGA的分段式布線結構決定了其延遲的不可預測性。

③在程式設計上FPGA比CPLD具有更大的靈活性。CPLD通過修改具有固定内連電路的邏輯功能來程式設計,FPGA主要通過改變内部連線的布線來程式設計;FPGA可在邏輯門下程式設計,而CPLD是在邏輯塊下程式設計。

④FPGA的內建度比CPLD高,具有更複雜的布線結構和邏輯實作。

⑤CPLD比FPGA使用起來更友善。CPLD的程式設計采用E2PROM或FASTFLASH技術,無需外部存儲器晶片,使用簡單。而FPGA的程式設計資訊需存放在外部存儲器上,使用方法複雜。

⑥CPLD的速度比FPGA快,并且具有較大的時間可預測性。這是由于FPGA是門級程式設計,并且CLB之間采用分布式互聯,而CPLD是邏輯塊級程式設計,并且其邏輯塊之間的互聯是集總式的。

⑦ 在程式設計方式上,CPLD主要是基于E2PROM或FLASH存儲器程式設計,程式設計次數可達1萬次,優點是系統斷電時程式設計資訊也不丢失。CPLD又可分為在程式設計器上程式設計和在系統程式設計兩類。FPGA大部分是基于SRAM程式設計,程式設計資訊在系統斷電時丢失,每次上電時,需從器件外部将程式設計資料重新寫入SRAM中。其優點是可以程式設計任意次,可在工作中快速程式設計,進而實作闆級和系統級的動态配置。