2018年1月29日

人工智慧與區塊鏈運算利器:處理器的種類與應用

曲建仲/臺灣大學電機工程學系博士,曾榮獲中華民國96 年度全國優秀青年工程師獎章並獲總統召見,致力臺灣科技教育多年,擅長以淺顯易懂的文字由淺入深帶領非理工背景的讀者們了解艱深困難的科技原理。



處理器(processor)是電子資訊產品的心臟,要了解電子資訊產品,就必須先認識處理器,而要認識處理器,就必須先了解處理器的軟體與硬體架構,以及軟體指令與硬體指令的意義,所有電子資訊產品所使用的處理器都有軟體與硬體架構,個人電腦、智慧型手機的比較複雜,而電視、音響的相對比較簡單。

個人電腦的軟體與硬體架構
處理器是由數千萬個電晶體(complementary metal-oxide-semiconductor, CMOS)排列組合而成,那麼要如何利用程式去指揮控制CMOS 替我們運算呢?我們以個人電腦的軟體與硬體架構為例,如圖一所示,由下到上依序包括:

1. 中央處理器(central processing unit, CPU): 由CMOS 排列組合而成。

2. 硬體指令:驅動CMOS運算的指令,例如:ADD、PUSH、POP 等。

3. 軟體指令:控制硬體指令來驅動CMOS 運算的指令,例如:C 語言所使用的指令For、While、If else、Print等,作業系統是由軟體指令撰寫而成。

4. 作業系統(operating system, OS):管理個人電腦所有硬體與軟體的核心程式稱為作業系統,例如:DOS、Windows、Linux 等。

5. 應用程式(application program, APP):在作業系統管理之下,具有某種特定功能的軟體稱為應用程式,例如:Word、PowerPoint、IE、RealPlayer 等。

6. 使用者介面(user interface, UI):使用者實際與個人電腦溝通的介面,早期使用DOS輸入指令,DOS的「C:\>」就是使用者介面,使用者可以經由這個介面與電腦溝通;目前已經進步到只需要使用滑鼠點選桌面上的圖形即可與電腦溝通,這些圖形稱為「圖形使用者介面(graphic user interface, GUI)」。

圖一:個人電腦的軟體與硬體架構圖。
圖二:智慧型手機的軟體與硬體架構圖。



智慧型手機的軟體與硬體架構與個人電腦極為相似,如圖二所示,最多只是把中央處理器改為「微處理器(micro processing unit, MPU)」,另外作業系統改為Android、iOS,而應用程式當然就是大家熟悉的Chrome、Google Maps、Safari 囉! 基本上,智慧型手機根本就是一台小電腦了!

指令的種類
人類是經由下達指令的方式與處理器溝通,指令可以分為下列2種:

1. 軟體指令(software instruction):指的像是DOS、Windows、Linux等作業系統所使用的指令,例如:Copy、Delete、Rename 等;或像是程式語言(例如:C 語言、BASIC等)所使用的指令, 例如:For、While、Print 等。我們可以在作業系統或程式開發工具直接使用指令,
而且可以經由修改軟體(例如:修改Windows、Linux 作業系統的原始程式碼)而改變這些指令的功能。

2. 硬體指令(hardware instruction):指處理器所使用的指令, 例如:ADD、PUSH、POP 等, 硬體指令是處理器製作的時候就已經固定了,因此無法修改。不同的公司設計的處理器, 例如: 英特爾(Intel) 的中央處理器與TI 的數位訊號處理器(digital signal processor, DSP),其硬體指令並不相同。軟體指令都是由「數個硬體指令」組合而成,換句話說,當使用者在作業系統中執行「複製(copy)」這個軟體指令,則處理器會進行ADD、PUSH、POP 等數個硬體指令來達成複製的動作。

處理器的指令集
處理器可以認得的所有硬體指令稱為指令集(instruction set),處理器依照不同的指令特性與運算特性,大約可以分為下列2 大類:

1. 複雜指令集處理器( complex instruction set computer, CISC ):複雜指令集處理器可以使用較少的指令來完成複雜的運算工作,雖然CISC 的指令功能較多,但指令較複雜,相關的電路設計也較為困難,使用到的電晶體數目較多,成本較高。這種處理器大多由電腦產業的廠商使用,又以英特爾公司所設計與製造的80x86、Pentium 處理器為代表。

CISC 最大的缺點是許多指令可能很少使用,換句話說,處理器支援很少使用到的某些指令,浪費了許多空間,如同傳統的雜貨店,雖然提供很多的商品,但是許多商品可能很少使用,一直放在店裡只是浪費空間而已。

2. 精簡指令集處理器(reduced instruction set computer, RISC):精簡指令集處理器必須使用較多的指令來完成複雜的運算工作。雖然RISC 的指令功能較少,但指令較為簡單,相關的電路設計也較為容易,使用到的電晶體數目較少,成本較低。這種處理器大多由資訊家電產業的廠商使用,又以ARM 公司與MIPS 公司所設計的處理器為代表。RISC 最大的優點是只提供較常使用的指令,換句話說,處理器只支援較常使用的某些指令,節省了許多空間,如同新興的便利商店,雖然提供較少的商品,但是這些商品卻必須常常使用,可以節省空間。


CISC 與RISC 的比較

CISC 就好像是工程用計算機,具有許多工程運算的功能,可以很容易計算出開根號、三角函數等複雜的運算,但是製作工程用計算機比較困難,成本較高;相反的,使用者不需要很強的數學知識就能完成高難度的數學運算。

RISC 則像是一般的計算機,只具有加、減、乘、除這些簡單而基本的四則運算,如果要計算出開根號、三角函數等運算,就必須運用許多次的四則運算來完成,使用者也必須具備很強的數學知識才行。

CISC 和RISC 那一種比較好,是長久以來是大家爭論的話題,雖然曾經有預言RISC 會主導市場,但是CISC 還是有存在的價值,目前市場上存在的處理器已經沒有純粹CISC 或RISC 的設計了,大部分都是2 種設計混合使用。


數位積體電路
用來處理數位訊號的積體電路稱為數位積體電路(Digital IC),目前都是以矽晶圓製造,主要是用來處理0與1 的加減乘除運算與儲存工作,其中處理器包括:中央處理器、數位訊號處理器、微處理器、微控制器(Micro Control Unit, MCU)等;記憶體則包括靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)等;以及其他處理數位訊號,包括標準邏輯積體電路(standard logic IC)、特定應用積體電路(application specific integrated circuit, ASIC)等,臺灣主要的數位積體電路設計公司則包括聯發科技(MTK)、聯詠科技(Novatek)、瑞昱半導體(Realtek)、群聯電子(Phison)等公司。

這裡我們不討論記憶體,只討論用來處理0 與1 的加減乘除運算工作的積體電路,如圖三所示,可以分為處理器、半客製化積體電路(semi custom IC)、全客製化積體電路(full custom IC)三大類:......【更多內容請閱讀科學月刊第578期】

沒有留言: