從計算機的結構...

7
補充教材 電子計算機概論(一) 84 386 96 . 10 . 16 / 顏春煌 計算機就是大家都很熟悉的電腦,平常用慣了電腦,大概比較少去想像 到底電腦是如何完成我們的工作?雖然其中有不少大學問,但是我們也可以 用簡單的方式來解說,關鍵在於軟體與硬體的關係,因為使用者直接面對的 是軟體,負責執行工作的是硬體,只要知道兩者如何搭配,電腦工作的原理 就可以迎刃而解了。 一、無所不在的電腦系統 在日常生活的環境中,電腦存在的形式 越來越多元化了,除了傳統的桌上型電腦以 外,手機、家電、汽車、電玩設備等都有類 似於電腦的組成,電腦系統可以接收與儲存 資料,並且快速地進行軟體所設定的運算, 因而產生各式各樣的應用。右圖顯示的是一 個比手指頭還小的全球定位系統(GPS),其中就有類似於電腦的結構與組 成。 二、電路與數位邏輯 將電腦的外殼打開,可以看到主機板及安裝在主機板上的擴充卡、積體 電路與各種電子元件,當打開電腦的電源時,這些電腦的組成中會有電流通 過,同時在電路的任意兩點之間形成持續變化的電壓。電路中電流與電壓的 特性可以用來表示數位資料(digital data),亦即由01的位元所組成的資 料。 從計算機的結構 談軟體與硬體的關係

Upload: others

Post on 01-Nov-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

補充教材 電子計算機概論(一)84 386

空 大 學 訊 96 . 10 . 16

/ 顏春煌

計算機就是大家都很熟悉的電腦,平常用慣了電腦,大概比較少去想像

到底電腦是如何完成我們的工作?雖然其中有不少大學問,但是我們也可以

用簡單的方式來解說,關鍵在於軟體與硬體的關係,因為使用者直接面對的

是軟體,負責執行工作的是硬體,只要知道兩者如何搭配,電腦工作的原理

就可以迎刃而解了。

一、無所不在的電腦系統

在日常生活的環境中,電腦存在的形式

越來越多元化了,除了傳統的桌上型電腦以

外,手機、家電、汽車、電玩設備等都有類

似於電腦的組成,電腦系統可以接收與儲存

資料,並且快速地進行軟體所設定的運算,

因而產生各式各樣的應用。右圖顯示的是一

個比手指頭還小的全球定位系統(GPS),其中就有類似於電腦的結構與組

成。

二、電路與數位邏輯

將電腦的外殼打開,可以看到主機板及安裝在主機板上的擴充卡、積體

電路與各種電子元件,當打開電腦的電源時,這些電腦的組成中會有電流通

過,同時在電路的任意兩點之間形成持續變化的電壓。電路中電流與電壓的

特性可以用來表示數位資料(digital data),亦即由0與1的位元所組成的資

料。

從計算機的結構談軟體與硬體的關係

Page 2: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

85

【圖1】顯示的電晶體(transistor)是一種最基本的電子元件,算是半導

體元件(semiconductor device)的一種,電腦系統的組成中包含了許多電晶

體。電晶體有三個接點,即collector、base與emitter,電晶體的作用有點像一

個小開關,當少量的電流從base流向emitter時,會有大量的電流從collector流

向emitter,從base流向emitter的電流停止時,從collector流向emitter的電流也會

停止。來自base的電流變成控制collector與emitter是否有電流通過的關鍵。電

晶體是組成數位電路(digital circuits)的要件,【圖1】左邊是工程上表示電

晶體的方式,右邊則是一個真正的電晶體的外觀。

數位電路作用的理論基礎是布林代數(Boolean algebra),布林代數定

義了一些布林函數,可以針對布林值(即0與1)進行運算,例如【圖2】中的

A與B代表用來進行布林運算的資料,A and B的函數定義and運算子的作用是

當輸入的A與B都為1時,A and B運算才會得到1的結果,其他的情況得到的A

and B都是0。【圖2】的其他兩個表格分別定義A or B及not A的布林運算。

【圖1】電晶體(transistor)

【圖2】布林代數定義的布林函數

Page 3: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

補充教材 電子計算機概論(一)86 386

空 大 學 訊 96 . 10 . 16

布林函數可以看成是數位電路中輸

入值與輸出值之間的關係,假如以+5伏

特(volts)的電壓代表1,以0伏特的電

壓代表0,則【圖3】的數位電路的作

用就相當於一個not的布林函數,因為

當input為+5 volts時、output為0 volts,

input為0 volts時、output為+5 volts。

布林函數定義的and、or與not可以

看成是運算子(operator),用來運算

的布林值則是運算元(operand),運

算子與運算元可以組合成各種運算式(

expression),代表複雜的布林運算,這些

布林運算式可以進一步地以數位電路來表示,換句話說,對應的數位電路可

以執行布林運算式所描述的運算功能。所謂的邏輯電路設計,就是運用布林

代數設計達到輸出與輸入關係的布林函數,【圖4】顯示邏輯閘(logic gate)

的表示法,在進行邏輯電路設計時可以用這些符號來表示電路的邏輯設計。

【圖3】具有not布林函數功能的電路

【圖4】邏輯閘(logic gate)的表示法

透過邏輯設計得到的數位電路可以利用像電晶體那樣的電子元件製作出

來,然後組合封裝成積體電路(IC, integrated circuits)。例如【圖5】左邊顯

示的NAND邏輯閘的設計,其中包含了四個NAND gate,旁邊標示數字的部分

代表輸入與輸出的接點,製作成積體電路時,就會像【圖5】右邊的模樣,接

腳的部分可以插到電路板上,與其他的電子元件連接起來。

【圖5】7400 NAND Gate的設計與一般IC的外觀

Page 4: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

87

除了邏輯電路之外,電腦中還有一些其他種類的電路設計,這些電路會

依照功能組合成元件,變成電腦的一部分,以積體電路來說,就有好幾種層

級,一般的邏輯閘算是小型的積體電路(SSI, small scale integration),複雜

的處理器則屬於超大型的積體電路(VLSI, very large scale integration)。

大量製造這些複雜的電路時,會把相同的電路複製在大型的晶圓(

wafer)上,再經過切割與封裝之後成為電腦的組

成。右圖顯示晶圓的外觀,國內的台積電與聯電就

是有名的國際性晶圓大製造廠,屬於電腦產業的上

游廠商。不過,為了讓電腦的元件容易組裝在一

起,通常VLSI晶片會再設計成各種元件,放置到

印刷電路板(PCB, printed circuit board)上,例如

電腦的主機板就是一

種印刷電路板。

經過以上的介紹以後,應該比較清楚電腦的

組成與工作的原理了,【表1】整理出電腦組成的

層次,從最底層的電晶體到最上層的電腦,以這

種分工的方式整合了很多相關的產業,在台灣近

代科技發展扮演了相當重要的角色。當然,電腦

發展的過程中也是一直在進化中,像左圖中笨重

的真空管(vacuum tube)就是早期電腦使用的重

要組成。

層次 組成

電腦 由電路板組成

電路板(circuit board) 由處理器、記憶體等元件組成

處理器 由VLSI晶片組成

VLSI晶片 由邏輯閘組成

邏輯閘 由電晶體組成

電晶體 矽半導體

【表1】電腦組成的層次

Page 5: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

補充教材 電子計算機概論(一)88 386

空 大 學 訊 96 . 10 . 16

三、資料與程式的表達

由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

時候,處理與產生的資料可以看成是由0與1組成的串列,所以0與1稱為二進

位元(binary digits),是電腦表示資料的基本單位,由0與1形成的串列稱為

位元組(byte)。在此有一個很重要的概念,就是電腦中電路的特性只表示

0與1,可是人類所認知的資料種類很多,像數字、文字、聲音與影像等,必

須想辦法在0與1及人類使用的資料之間找出一種適當的對應:

(一)以數值類型的資料來說,電腦採用二進位的表示法,可以轉換成對

應的十進位數值,例如二進位的011相當於十進位的3。除了一般的正整數以

外,二進位的表示法也可以表示負數與小數。這麼一來,數值的運算就可以

透過數位電路來處理。

(二)文字是另外一種類型的資料,文字由字元組成,例如flower由六個

英文字母所組成,中文也是一樣,例如「花卉」由兩個中文字元所組成。

既然電腦只認0與1,我們只要規定位元組與字元之間的對應就可以在電腦中

表示各種類型的資料,這種對應通常會形成公認的標準,目前最常見的是

Unicode。

電腦除了要能表示資料之外,也要能表示程式(program),程式是告訴

電腦如何工作的指令,當然,程式可以利用資料來表示,但是電腦要知道如

何詮釋程式的內涵,這就與程式的指令結構及程式儲存的方式有關。

四、處理器與指令集

電腦的基本結構可以用凡紐曼的架構(von Neumann architecture)來表

示,【圖6】以最簡單的方式畫出這樣的結構。資料與程式儲存在記憶裝置

中,處理器負責程式所交付的運算,透過輸入與輸出與外界溝通。

【圖6】電腦的基本結構

Page 6: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

89

要瞭解電腦工作的原理,處理器是主要的關鍵之一,【圖7】畫出傳統

處理器的架構,控制單元(controller)是處理器的核心,負責安排程式的執

行,同時要協調其他裝置的工作。ALU(arithmetic and logic unit)是指算術與

邏輯運算單元,負責處理器運作時需要處理的算術與邏輯運算。

【圖7】傳統處理器的架構

處理器處理程式的時候會遵循所謂的「擷取→執行循環(fetch-execute

cycle)」,也就是先擷取程式指令、執行,然後擷取下一個程式指令、執

行,⋯⋯。由於電腦工作的速率由系統的時鐘(clock)控制,所以通常一

個程式指令的執行需要數個系統時鐘的週期。例如某台電腦的時鐘頻率為3

GHz,則代表每秒鐘會產生3×109個時脈,每個時脈的時間很短,這也表示電

腦執行指令的效率相當高。

◆深入思考◆電腦何時上工?何時停工呢?電腦開機以後,作業系統會

從儲存裝置複製到特定的記憶體位置,然後處理器才會啟動,從作業系

統程式所在的位置開始擷取指令執行。電腦從開機到關機的期間,作業

系統程式一直都在執行中,使用者也會透過作業系統啟動其他程式的執

行,這表示fetch-execute cycle從電腦一開機就一直在運作,直到電腦關

機為止。

Page 7: 從計算機的結構 談軟體與硬體的關係enews.open2u.com.tw/~noupd/book_up/4869/(386)084-090.pdf · 三、資料與程式的表達 由於數位邏輯電路以電壓的特性來表示0與1兩種狀態,當電路在運作的

補充教材 電子計算機概論(一)90 386

空 大 學 訊 96 . 10 . 16

電腦的處理器可以執行程式指

令,那麼有哪些指令可以使用呢?

這是由電腦的指令集(instruction

set)來決定的。指令集定義電腦

能夠接受的指令有哪些?以及這些

指令的功能,每一個fetch-execute

cycle就會執行一個指令。程式指令

的格式也要預先設定,這樣電腦才

能按照電路原來設計的邏輯來執行

指令。

五、語言的層次

寫過程式的人都知道,程式語言不會顧慮到電腦的資料要如何移動?

處理器該如何工作?或是程式要如何利用位元來表示?那些細節太繁瑣了!

電腦的運作包含許多細微的步驟,對於使用者來說,能達到使用的目的最重

要,中間的步驟最後都透明化、不要看見最好。所以電腦的指令集並不是一

般人寫程式時使用的指令,但是程式語言與指令集之間會有一個對應,當我

們完成一個利用程式語言的語法寫的程式以後,另外有程式可以將這個高階

可讀的程式轉換成指令集的指令,讓電腦能夠執行。就因為這樣才衍生出像

機器語言(machine language)、組合語言(assembly language)與程式語言(

programming language)等不同層次的語言來。

六、後記: 一個講不完的故事

從多年前第一次接觸電腦開始,就時常好奇地想著電腦是如何達成這

許多神奇的功能,相信這是很多人心裡的一個大謎題,正當我們思索這個問

題的時候,電腦技術卻也不斷地在更新著,所以若是要把電腦的發展當成故

事來說,可是講不完的;雖然電腦是大家的好朋友,卻不像好朋友那麼地熟

悉,幾年不見,電腦的外觀恐怕大異於往昔。所幸有一些電腦的原理是不

變的,希望透過這些瞭解能夠讓我們知道如何去駕馭這個潛力無限的科技產

品。

(作者為本科目學科委員兼召集人)