Presentation is loading. Please wait.

Presentation is loading. Please wait.

Foundations of Computer Science Chapter 5 計算機組織

Similar presentations


Presentation on theme: "Foundations of Computer Science Chapter 5 計算機組織"— Presentation transcript:

1 Foundations of Computer Science Chapter 5 計算機組織
計算機概論 第二版 Foundations of Computer Science Chapter 5 計算機組織

2 構成一部計算機的元件可區分成三個主要的分類或子系統:中央處理單元、主記憶體和輸入∕輸出(I/O)子系統。
圖 5.1 計算機硬體(子系統) p.98

3 5.1 中央處理單元 中央處理單元(central processing unit;CPU)執行資料的運算。在大部分的架構中 CPU 有三個部分:算術邏輯單元、控制單元,和一組快速儲存位置的暫存器。 圖 5.2 中央處理單元(CPU) p.98

4 算術邏輯單元(arithmetic logic unit;ALU)執行資料的邏輯、移位和算術運算。 暫存器
暫存器(registers)是快速的獨立儲存位置,可以暫時保存資料。需要多種暫存器以便幫助 CPU 的運算。 資料暫存器:在今日,計算機使用位於 CPU 內部的數十個暫存器來加速其運算,保存其中間結果。 指令暫存器:CPU 負責從記憶體中一個接一個地擷取指令,儲存在指令暫存器(instruction register)中,解碼指令,並且執行指令。 程式計數器:記錄目前正在執行的指令,在執行該指令之後,此計數器會遞增以便指到記憶體內下一個指令的位址。 p.99

5 控制單元(control unit)控制每個子系統的運作,藉由訊號從控制單元傳送到其他子系統來達到控制。
p.99

6 5.2 主記憶體 主記憶體(main memory)是計算機中第二個主要的子系統(圖 5.3)。它是由大量的儲存位置所組成,每一位置具有一個唯一識別碼,稱為位址。資料以成組的位元形式傳入和傳出記憶體,稱為字組(word)。 字組為 8 位元,則稱為位元組。位元組(byte)一詞在計算機 科學中是共通的。 p.100

7 圖 5.3 主記憶體 p.100

8 位址空間 要存取記憶體中一個字組需要一個識別碼。雖然程式設計者使用一個名稱來識別一個字組(或大量的字組),在硬體的層次,每一個字組是用一個位址來加以識別。 記憶體中唯一可識別位置的總數量稱為位址空間(address space),例如,一個記憶體具有 64 K 位元組和一個位元組大小的字組,其位址空間範圍是從 0 到 65,535。 假設一部計算機有 64 K 位元組,位址可表示成無號整數(不會有負的位址)。換言之,第一個位置就是位址 (位址 0),而最後一個位址就是 (位址 65535)。 p.100

9 表 5.1 記憶體單位 p.100

10 範例 5.1 一部計算機有 32 MB(百萬位元組)的記憶體。需要多少個位元 來定址記憶體中每一個位元組? 解答
log2225,或 25 個位元來定址每一個位元組。 p.101

11 範例 5.2 一部計算機有 128 MB 的記憶體,此計算機中每一字組為 8 個位元 組。需要多少位元來定址記憶體中每一個字組? 解答
(23)位元組,表示有 224 個字組,這表示需要 log2224,或 24 個 位元來定址每一個字組。 p.101

12 兩種主要的記憶體分別是:RAM 和 ROM。 RAM
記憶體種類 兩種主要的記憶體分別是:RAM 和 ROM。 RAM 隨機存取記憶體(random access memory;RAM)構成計算機中大部分的主記憶體。要區別 RAM 和 ROM 就在於 RAM 可以被讀取與寫入。RAM 的另一個特性是它具有揮發性;如果電腦電源關閉,則資訊(程式或資料)會被清除。RAM 技術分成兩大類:SRAM 和 DRAM。 p.101

13 SRAM 靜態 RAM(static RAM;SRAM)技術使用傳統的正反閘來保存資料,只要電源是開啟狀態,則資料是被保存的,而且不需要更新記憶體位置。SRAM 速度快但價格昂貴。 DRAM 動態 RAM(dynamic RAM;DRAM)技術使用電容來做資料儲存,如果電容是充滿電的,則狀態為 1;如果電容未充電,則狀態為 0。因為電容會隨時間漏失電荷,所以 DRAM 記憶體單元需要週期性地加以更新。DRAM 速度慢但價格便宜。 p.102

14 ROM 唯讀記憶體(read-only memory;ROM)的內容是由製造商所寫入;CPU 允許讀出其內容但是不能寫入 ROM 中。其優點為它是非揮發性的──如果關閉電腦,其內容沒有被清除。通常,它是用於程式或資料一定不可以被清除或更改,甚至是將電腦關閉。例如,有些電腦具有 ROM 保存有啟動程式,用於開機時執行。 PROM 可程式規劃唯讀記憶體(programmable read-only memory;PROM)是ROM 的變型,這種型式的記憶體在電腦裝貨時是空白的,使用者可以用特殊設備將程式儲存於其中。當程式存入後就如同 ROM 一般不能被覆寫,此一特性允許使用者儲存特殊程式於 PROM 中。 p.102

15 EPROM 可清除可程式化唯讀記憶體(erasable programmable read-only memory;EPROM)是 PROM 的變型,它可由使用者作程式規劃,但是它也可以用一種應用紫外光的特殊設備加以清除,要清除 EPROM 必須將 EPROM 實際移除與重新安裝。 EEPROM 電壓可清除可程式化唯讀記憶體(electrically erasable programmable read-only memory;EEPROM)是 EPROM 的變型,它可藉由電子脈衝來加以程式化和清除,而不需從電腦中移除。 p.102

16 極少量的高速記憶體在速度具決定性的地方,CPU 內部的暫存器即屬此類。
記憶體階層 極少量的高速記憶體在速度具決定性的地方,CPU 內部的暫存器即屬此類。 適量的中速記憶體來儲存時常存取的資料,快取記憶體即屬此類。 大量的低速記憶體來儲存不常存取的資料,主記憶體即屬此類。 p.103

17 圖 5.4 記憶體階層 p.103

18 快取記憶體在任何時刻均包含部分主記憶體的備分。當 CPU 需要存取主記憶體中一個字組時,它遵循下列程序:
快取記憶體(cache memory)比主記憶體快,但是比 CPU 及其內部的暫存器慢。快取記憶體通常數量少,並置於 CPU 與主記憶體之間。 快取記憶體在任何時刻均包含部分主記憶體的備分。當 CPU 需要存取主記憶體中一個字組時,它遵循下列程序: 1. CPU 檢查快取記憶體。 2. 如果此字組存在,CPU 拷貝此字組;若不存在,則 CPU 存取主記憶體,而且拷貝一塊從所要求的字組開始之主記憶體區塊。此區塊取代快取記憶體中先前的內容。 3. CPU 存取快取記憶體並且拷貝此字組。 p.103

19 圖 5.5 快取記憶體 p.103

20 為什麼快取記憶體會如此有效率,即使只有少量的快取記憶體。答案在於「80-20 法則」。根據觀察,大部分的電腦主要花費百分之八十的時間在存取只有百分之二十的資料,換言之,相同的資料被重複地存取。快取記憶體利用其快速特性,可以保有此百分之二十的資料,使得存取加快至少百分之八十的時間。 p.104

21 5.3 輸入∕輸出子系統 計算機中第三個主要子系統是一群設備的集合稱為輸入∕輸出子系統(input/output (I/O) subsystem)。此子系統允許計算機與外界通訊,以及即使電源關閉時可以儲存程式和資料。輸入∕輸出設備可分成兩大類:非儲存性與儲存性設備。 非儲存性設備(nonstorage device)允許 CPU∕記憶體與外界通訊,但是它們不能儲存資料。 兩種比較常見的非儲存性輸入∕ 輸出設備為鍵盤和螢幕。鍵盤(keyboard)提供輸入功能;螢幕(monitor)顯示輸出而且同時回應在鍵盤上所輸入的字母。屬於這類型的其他設備還有滑鼠、搖桿等。 p.104

22 印表機(printer)是產生永久紀錄的輸出設備。印表機是非儲存性設備。
儲存性設備(storage device)雖然歸類為 I/O 設備,可以儲存大量的資訊,並於之後再度取回。但它們比主記憶體便宜,而且其內容是非揮發性的──當電源關閉時不會被清除。它們有時候被稱為輔助儲存設備,可以將其分類為磁性或光學的設備。 磁性儲存設備使用磁化來儲存資料的位元。如果一個位置被磁化,則代表 1;如果沒有被磁化,則代表 0。 p.105

23 磁碟(magnetic disk)是由一個或多個碟片逐一堆疊而組成。碟片塗上一層磁性薄膜,利用每一個碟片之磁化表面上的讀寫頭(read/write head),將資訊於碟片表面加以儲存及取回。
表面組織:每一個表面分成許多磁軌(track),而每一磁軌分成許多磁區(sector)。磁軌被磁軌間隙(intertrack gap)隔開,而磁區被磁區間隙(intersector gap)隔開。 資料存取:磁碟可視為一種隨機存取設備,一次所能存取的最小儲存區域為一個磁區。一個資料區塊可以儲存在一個或多個磁區,而且取回時不需取回碟片中其餘的資訊。 p.105

24 圖 5.6 磁碟 p.105

25 效能:磁碟的效能取決於幾項因素:轉速、搜尋時間和轉移時間。轉速(rotational speed)定義磁碟旋轉多快。搜尋時間(seek time)定義移動讀寫頭到所要的儲存資料磁軌所需之時間。轉移時間(transfer time)定義從磁碟上移動資料到 CPU∕記憶體所需之時間。 p.106

26 資料存取:磁帶可視為一種循序存取設備,要取回磁帶上特定的區塊,需要經過該區塊之前所有的區塊。
磁帶(magnetic tape)有各式各樣的尺寸,常見的一種是在半英寸塑膠帶子塗上一層厚的磁膜。磁帶架設於兩個捲軸上,當磁帶經過讀寫頭時,用一個讀寫頭來讀取或寫入資訊。 表面組織:磁帶的寬度分成九個磁軌;磁軌中的每一位置可以儲存 1 個位元的資訊。九個垂直點可以儲存一個位元組的 8 個位元資訊,加上一個錯誤偵測的位元。 資料存取:磁帶可視為一種循序存取設備,要取回磁帶上特定的區塊,需要經過該區塊之前所有的區塊。 效能:速度比磁碟慢,但是比較便宜。現在,大家使用磁帶來備份大量的資料。 p.106

27 圖 5.7 碟帶 p.106

28 光學儲存設備(optical storage devices) 是一種相當新的技術, 使用雷射光來儲存和取回資料。光學儲存技術的使用是在儲存聲音資料的 CD(compact disk)發明之後,現在,在電腦中使用相同的技術來儲存資訊。使用此技術的設備有 CD-ROM、CD-R、CD-RW 和 DVD。 p.106

29 唯讀光碟(compact disk read-only memory;CD-ROM)使用與音樂 CD相同的技術。
a. 母片(master disk)是以高功率紅外光雷射產生位元樣式在鍍膜的塑膠上而製成。雷射將位元樣式轉換成一序列的凹洞(pit)(洞)和平地(land)(無洞)。凹洞通常表示 0,而平地通常表示 1。然而這只是慣例,是可以調換的。其他機制使用轉換(凹洞到平地或是平地到凹洞)來表示 1,而用沒有轉換表示 0。 b. 模版從母片製作而來,在模版中,凹洞用凸塊取代。 p.107

30 圖 5.8 CD-ROM 的產生與使用 p.107

31 c. 將熔化的聚碳酸酯樹脂(polycarbonate resin)射入模版中,以產生與母片相同的凹洞。再將一層非常薄的鋁(作為反射層)加到聚碳酸酯之上。在這鋁層之上,有一層用漆作的保護層,而且加上標籤。每一個碟片的產生只有重複此一步驟。 讀取:CD-ROM 使用低功率雷射光束來加以讀取,此雷射光 束經過平地時會被鋁層表面所反射。當遇到凹洞時會反射兩 次,一次是由凹洞邊界所造成,而另一次是由鋁層邊界所造 成。這兩次反射具有破壞性效應,因為所選擇的凹洞深度剛 好為光束波長的四分之一。如果該位置是平地的話,感測器 會檢測到較多的光;如果是凹洞,則會檢測到較少的光。 p.107

32 a. 將 8 位元的資料區塊轉換成 14 位元的符號(symbol),使用一種稱為漢明碼(Hamming code)的錯誤更正碼。
格式:CD-ROM 的資料格式依據 a. 將 8 位元的資料區塊轉換成 14 位元的符號(symbol),使用一種稱為漢明碼(Hamming code)的錯誤更正碼。 b. 每一個框架(frame)由 42 個符號所組成(14 位元∕符號)。 c. 每一個磁區由 98 個框架所組成(2352 位元組)。 速度:CD-ROM 光碟機具有不同的速度。單倍速稱為 1×,每 秒讀取多達 153,600 位元組。 應用:生產費用包含製造母片、模版和實際碟片,如果碟片 是大量生產,則具有經濟效益。 p.108

33 圖 5.9 CD-ROM 格式 p.108

34 表 5.2 CD-ROM 速度 p.108

35 產生:CD-R 技術使用與 CD-ROM 相同的原則產生光碟片。 以下列出其差異處: a. 沒有母片或模版。
可燒錄光碟(compact disk recordable;CD-R)允許使用者產生一片或多片的光碟,而不必負擔產生 CD-ROM 所包含之費用。這在製作備分時特別有用。CD-R 有時候稱為一寫多讀(write once, read many;WORM)。 產生:CD-R 技術使用與 CD-ROM 相同的原則產生光碟片。 以下列出其差異處: a. 沒有母片或模版。 b. 反射層用黃金取代鋁來製造。 p.109

36 d. 由 CD 燒錄機所產生的高功率雷射束造成染料上的一個黑點,改變其化學構造來模擬凹洞,未被雷射束擊中的區域即為平地。
讀取:CD-R 可以被 CD-ROM 機器或 CD-R 機器讀取。 格式與速度:CD-R 的格式、容量及速度,都和 CD-ROM 相同。 應用:CD-R 這項技術對於想要產生與供應少量光碟片的人來說,是非常具有吸引力的。對於製作文件檔案與備分也非常有用。 p.109

37 圖 製作 CD-R p.109

38 一種新類型的碟片,稱為可覆寫光碟(compact disk rewritable;CD-RW),有時又稱為可清除光碟。
產生:CD-RW 技術使用與 CD-R 相同的原則來產生光碟片。 以下列出其差異處: a. CD-RW 技術使用銀、銦、銻和碲的合金取代染料,此合金具有兩個穩定狀態:結晶性(透明)和無結晶性(不透明)。 b. 此機器使用高功率雷射來產生合金中模擬的凹洞(將它從結晶性改變成無結晶性)。 p.110

39 讀取:此機器使用如 CD-ROM 和 CD-R 相同形式的低功率雷射光束,來檢查凹洞和平地。
清除:此機器使用中功率雷射光束將凹洞改變成平地,此光 束將一個位置從無結晶狀態改變成結晶狀態。 格式和速度:CD-RW 的格式、容量和速度都與 CD-ROM 相 同。 應用:此技術絕對比 CD-R 技術更具有吸引力。 p.110

40 圖 製作 CD-RW p.110

41 a. DVD 的凹洞較小:直徑 0.4 微米,取代 CD 所用的 0.8 微米。 b. 磁軌彼此間更為接近。
市場上最新的光學記憶體儲存設備是數位多功能光碟(digital versatile disk;DVD)。它使用與 CD-ROM 相同的技術,除了下列的差異之處: a. DVD 的凹洞較小:直徑 0.4 微米,取代 CD 所用的 0.8 微米。 b. 磁軌彼此間更為接近。 c. 光束用紅光雷射取代紅外線雷射。 d. DVD 使用一至兩層的記錄層,而且可以是單面或雙面。 p.111

42 壓縮:DVD 技術使用 MPEG 來作壓縮,這表示一片單面單層的 DVD 能夠保存 133 分鐘高解析度的視訊,其亦包含了聲音和字幕。
容量: 壓縮:DVD 技術使用 MPEG 來作壓縮,這表示一片單面單層的 DVD 能夠保存 133 分鐘高解析度的視訊,其亦包含了聲音和字幕。 應用:DVD 的高容量吸引了許多需要儲存大量資料的應用。 表 5.3 DVD 容量 p.111

43 5.4 子系統之互連 連接 CPU 與記憶體 CPU 與記憶體通常由三組線路連接,每一組線路稱為匯流排(bus):資料匯流排、位址匯流排和控制匯流排。 資料匯流排 資料匯流排(data bus)線路的數目取決於計算機所使用字組的大小,如果字組是 32 位元(4 位元組),則需要 32 條線路的資料匯流排,因此一個 32 位元的字組可以同時傳送。 p.111

44 圖 使用三組匯流排連接 CPU 與記憶體 p.111

45 位址匯流排 位址匯流排(address bus)允許存取記憶體中特定的字組。位址匯流排線路的數目取決於記憶體位址空間,如果記憶體有2n 個字組,位址匯流排必須有 n 條線路。 控制匯流排 控制匯流排(control bus)在 CPU 與記憶體之間傳送聯絡訊號。控制匯流排所使用的線路數目取決於計算機所需要的命令之總數量,如果一計算機有 2m 個控制動作,則控制匯流排需要 m 條線路。 p.112

46 連結 I/O 設備 I/O 設備不能直接連接到 CPU 和記憶體的匯流排上,。I/O 設備運作的速度也遠比 CPU∕記憶體慢,因此,需要一個媒介來處理中間的差異。I/O 設備經由輸入∕輸出控制器(input/output controller)或介面(interface)而連接到匯流排上,每一個 I/O 設備有一個特殊的控制器。 控制器或介面彌補了 I/O 設備與 CPU 和記憶體之性質間的差 異。控制器可以是串列或並列設備。目前有數種控制器在使 用中。現在最常見的是 SCSI、FireWire 和 USB。 p.112

47 圖 連接 I/O 設備到匯流排 p.112

48 SCSI 小型電腦系統介面(small computer system interface;SCSI) 最初是由 Macintosh 電腦於 1984 年所發展,今日它已經被使用於許多系統之中。 SCSI 具有 8、16 或 32 條線路的並列介面,SCSI 介面提供雛 菊鏈式(daisychained)的連接。雛菊鏈的兩端必須加上一個 稱為終端電阻的特殊設備來加以阻隔,而且每一個設備必須 有一個唯一的位址(目標 ID)。 p.113

49 圖 SCSI 控制器 p.113

50 它可以用雛菊鏈方式或樹狀連結方式(只用一條連結線)連 接多達 63 個設備,它不需要像 SCSI 控制器中使用終端電阻。
FireWire IEEE 標準 1394 定義一個串列介面通稱為火線(FireWire)。它是一個以封包傳送資料的高速串列介面,最高傳送速率可達 50 MB/sec,在最近的版本甚至是其兩倍的速率。 它可以用雛菊鏈方式或樹狀連結方式(只用一條連結線)連 接多達 63 個設備,它不需要像 SCSI 控制器中使用終端電阻。 p.113

51 圖 FireWire 控制器 p.114

52 通用串列匯流排(Universal Serial Bus;USB)是一個串列控制器,用來連接慢速和快速的設備到電腦匯流排。
USB 控制器也稱為根集線器(root hub)。USB-2(USB 2.0 版)容許多達 127 個設備使用一種類似樹狀技術連接到 USB 控制器,其中控制器視為樹根,集線器為中間節點,而設備 為終端節點。此控制器(根集線器)與其他集線器之差異在 於此控制器知道在樹狀結構中其他集線器的存在,但其他集 線器為被動設備,只能簡單地傳遞資料。 p.113

53 圖 USB 控制器 p.114

54 設備可以很容易地從樹狀結構中移除或加入,而不必關閉電腦電源,這稱為可熱插拔(hot-swappable)。當一個集線器從系統中被移除時,連結到此集線器的所有設備和其他集線器也一併被移除。
USB 使用一個四線的排線,其中兩條線(+5 伏特與接地)用 來提供電源給低耗電設備,例如鍵盤或滑鼠;高耗電設備需 要連接到額外電源。集線器從匯流排取得電源並能提供電源 給低耗電設備。另外兩條線(絞在一起以降低雜訊)用來傳 遞資料、位址和控制訊號。 p.115

55 USB-2 提供三種資料傳輸率:1.5 Mbps(每秒百萬位元)、12 Mbps 和 480 Mbps。

56 定址輸入∕輸出設備 CPU 通常使用相同的匯流排來讀取或寫入資料到主記憶體和I/O 設備,如果指令參考到記憶體中的字組,則資料的傳輸是在主記憶體與 CPU 之間。如果指令指定一個輸入∕輸出設備,則資料的傳輸是在輸入∕輸出設備與 CPU 之間。處理輸入∕輸出設備的定址有兩種方法:獨立式 I/O 與記憶體對映I/O。 p.115

57 獨立式 I/O 在獨立式 I/O(isolated I/O)的方法中,用來讀∕寫記憶體的指令完全不同於用來讀∕寫輸入∕輸出設備的指令。這些指令有測試、控制、讀取和寫入輸入∕輸出設備。每一個輸入∕輸出設備有自己的位址,輸入∕輸出位址可以與記憶體的位址重疊而不會模稜兩可,因為指令本身就不相同。例如,CPU 使用命令「Read 101」讀取記憶體字組 101,也可以使用命令「Input 101」來讀取輸入∕輸出設備 101。 p.115

58 圖 獨立式 I/O 定址 p.116

59 記憶體對映 I/O 在記憶體對映 I/O(memory-mapped I/O)的方法中,CPU 將輸入∕輸出控制器中的每一個暫存器視為記憶體的字組。換言之,CPU 並沒有不同的指令來辨別從記憶體或是輸入∕輸出設備傳輸資料。例如,只有一個「Read」指令。 記憶體對映 I/O 組態的優點是指令數量較少,所有記憶體指令 可以被輸入∕輸出設備使用;其缺點是記憶體的部分位址空間 被配置給輸入∕輸出控制器中的暫存器。 p.116

60 圖 記憶體對映 I/O 定址 p.116

61 5.5 程式之執行 在今日,通用型計算機使用一組指令稱為程式來處理資料。計算機執行程式以便從輸入的資料產生出輸出的資料,程式與資料兩者均儲存在記憶體之中。 CPU 使用重複的機器週期(machine cycles)來執行程式中的 指令,一個接一個地從開始到結束。一個簡化的週期由三個 階段所組成:擷取、解碼和執行。 在擷取(fetch)的階段中,控制單元命令系統複製下一個指 令到 CPU 的指令暫存器中,要被複製指令的位址是存在程式 計數器中。在複製之後,程式計數器會遞增以便指到記憶體 中的下一個指令。 p.117

62 圖 週期的步驟 p.117

63 週期中第二個階段是解碼(decode)階段。當指令被擷取到指令暫存器後,會由控制單元加以解碼。此解碼階段的結果是將由系統執行某一運算的二進位碼。
在指令解碼之後,控制單元送出工作命令到 CPU 中的組成元 件。例如,控制單元能告知系統從記憶體載入(讀取)一資 料項,或 CPU 告知 ALU 將兩個輸入暫存器的內容相加,並 且將結果放入輸出暫存器中,這就是執行(execute)步驟。 p.117

64 CPU 的運作必須以某種方法與輸入∕輸出設備達到同步。已經有三種方法被設計來達成同步:程式化 I/O、中斷驅動 I/O 及直接記憶存取(DMA)。
在程式化 I/O(programmed I/O)的方法中,同步是非常簡單的。I/O 設備與 CPU 之間的資料傳送是由程式中的指令所完成,當 CPU 執行一個 I/O 指令,直到資料傳送完成之前 CPU 不作任何動作。CPU 經常地檢查 I/O 設備的狀態:如果設備已經準備好傳送,則資料就傳送到 CPU。 p.118

65 圖 程式化 I/O p.118

66 在此方法之中,CPU 時間未被浪費掉──當慢速 I/O 設備正在 完成工作期間,CPU 能夠執行其他工作。
在中斷驅動 I/O(interrupt-driven I/O)的方法中,CPU 通知I/O 設備即將發生資料傳送,當 I/O 設備已準備好時會通知(中斷)CPU。 在此方法之中,CPU 時間未被浪費掉──當慢速 I/O 設備正在 完成工作期間,CPU 能夠執行其他工作。 p.118

67 圖 中斷驅動 I/O p.119

68 直接記憶體存取 第三個傳輸資料的方法是直接記憶體存取(direct memory access;DMA)。此方法直接傳輸一大區塊的資料於高速 I/O 設備,例如磁碟和記憶體之間,而且資料傳輸不經過 CPU,這需要一個 DMA 控制器來減輕 CPU的某些功能。DMA 控制器具有暫存器,以便在記憶體傳輸之前與之後保存一個區塊的資料。 使用此方法做一個 I/O 動作,CPU 要傳送一個信息給 DMA。 此信息包含有傳輸類型(輸入或輸出)、記憶體位置之起始 位址,和要傳輸的位元組數目,然後 CPU 可以做其他工作。 p.119

69 圖 DMA 連接到一般匯流排 p.120

70 圖 DMA 輸入∕輸出 p.120

71 5.6 兩種不同的架構 CISC CISC(發音 sisk)表示複雜指令集電腦(complex instruction set computer;CISC)。CISC 具有一個大的指令集,包括複雜的指令。在 CISC 電腦上撰寫程式比在其他設計的電腦要容易得多,因為對於簡單或複雜的工作都只要一個指令即可。 指令集的複雜度造成了 CPU 的電路及控制單元非常複雜。 CISC 架構的設計者已經找出解決方法來降低其複雜度:程式 規劃分兩個階段完成。 p.121

72 CISC 架構的缺點之一是微程式規劃所需的額外時間與存取微 記憶體的時間。
CPU 只執行簡單的微運算(microoperation),一個複雜指令先轉換成一組簡單的微運算,再由 CPU 加以執行。因此需要增加一個特殊記憶體稱為微記憶體(micromemory),以保存指令集中每一個複雜指令的一組微運算。這種使用微運算的程式規劃的形式稱為微程式規劃(microprogramming)。 CISC 架構的缺點之一是微程式規劃所需的額外時間與存取微 記憶體的時間。 p.121

73 在 RISC 電腦上撰寫程式比在另一種設計的電腦要更加困難以 及更加耗時,因為大部分的複雜指令是用簡單指令模擬得到 的。
RISC(發音 risk)表示精簡指令集電腦(reduced instruction set computer;RISC)。RISC 背後的策略是要具有一個小的指令集以便執行最少數目的簡單運算,而複雜指令是用簡單指令的子集合加以模擬。 在 RISC 電腦上撰寫程式比在另一種設計的電腦要更加困難以 及更加耗時,因為大部分的複雜指令是用簡單指令模擬得到 的。 p.121

74 管線處理 現代的計算機使用一種稱為管線處理(pipelining)的技術來增進其產量(throughput;單位時間內所執行指令的總數量)。這個想法是基於如果控制單元能夠同時執行二或三個階段,則下一指令可以在前一指令完成之前就開始執行。 圖 5.24b 顯示管線處理如何能夠增進計算機的產量,第一個計算機在特定期間內平均要執行 9 個階段,而管線化的計算機在相同的時間內可以執行 24 個階段。如果假設每個階段使用相同的時間量,則第一個計算機完成了 9/3 = 3 個指令,而第二個計算機完成了 24/3 = 8 個指令,產量因而增加了 8/3 或266%。 p.121

75 圖 管線處理 p.122

76 一部計算機具有多重控制單元、多重算術邏輯單元和多重記憶體單元,這個想法稱為平行處理(parallel processing)。
管線處理存在有一些問題,例如遇到跳躍指令時。在這個情況,管線中的指令應該要丟棄,但是,新的計算機設計已經克服大部分的缺點,有些新的 CPU 設計甚至能夠同時做數個擷取週期。 平行處理 一部計算機具有多重控制單元、多重算術邏輯單元和多重記憶體單元,這個想法稱為平行處理(parallel processing)。 平行處理的概觀是由 M. J. Flynn 所提出的分類。根據 Flynn 的觀點,平行處理可能發生在資料流、指令流或兩者皆是。 p.122

77 圖 計算機組織之分類 p.122

78 SISD 組織 單一指令流,單一資料流(single instruction-stream, single data-stream;SISD)組織表示計算機只有一個控制單元、一個算術邏輯單元和一個記憶體單元。指令依序地執行而且每個指令可以存取資料流中一個或多個資料項。 SIMD 組織 單一指令流,多重資料流(single instruction-stream, multiple data-stream;SIMD)組織表示計算機有一個控制單元、多重處理單元和一個記憶體單元。所有的處理單元接受來自控制單元的相同指令,但是對不同的資料項做運算,同時對一個陣列的資料做運算之陣列處理器就是屬於此類。 p.123

79 圖 SISD 組織 p.123

80 圖 SIMD 組織 p.123

81 MISD 組織 多重指令流,單一資料流(multiple instruction-stream, single data-stream;MISD)組織是有多個指令分別屬於多個不同的指令流,同時對同一個資料流做運算。MISD 的概念從未曾被實作過。 MIMD 組織 多重指令流, 多重資料流(multiple instruction-stream, multiple data-stream;MIMD)組織表示有多個指令分別屬於不同的多個指令流,同時對多個資料流做運算(一個指令對一個資料流)。在此結構中數項工作可同時被執行,此結構可使用單一共享記憶體或是多重記憶體區。 p.123

82 圖 MISD 組織 p.124

83 圖 MIMD 組織 p.124

84 5.7 簡單的計算機 要解釋計算機的結構和它們的指令處理,我們介紹一個簡單(非實際存在)的計算機,如圖 5.30 所示。此簡單計算機有三個組成元件:CPU、記憶體和輸入∕輸出子系統。 CPU CPU 本身被區分成三部分:資料暫存器、算術邏輯單元(ALU)和控制單元。 資料暫存器 有 16 個具有十六進位位址 (0, 1, 2, ⋯, F)16 的 16 位元資料暫存器,稱為 R0 至 R15。 p.124

85 圖 簡單計算機的組成元件 p.125

86 控制單元 控制單元有控制 ALU 運算、存取記憶體和存取 I/O 子系統的電路。它還有兩個專屬的暫存器:程式計數器和指令暫存器。程式計數器(program counter;PC)只能保存 8 個位元,負責追蹤下一個要執行的是哪個指令。在每一個機器週期之後,程式計數器會遞增 1 以指到下一個程式指令。指令暫存器(instruction register;IR)保存一個 16 位元的值,其為目前週期之編碼過的指令。 p.125

87 主記憶體 主記憶體有 256 個 16 位元的記憶體位置,其二進位位址為( 到 )2 或十六進位位址 (00 到 FD)16,主記憶體保存資料與程式指令,前 64 個位置 (00 到 3F)16 是專屬於程式指令,記憶體位置 (40 到 FD)16 是用於儲存資料。 輸入∕輸出子系統 此子系統由一個鍵盤和螢幕所組成,但該子系統仍像是部分的記憶體位址。鍵盤(輸入設備)和螢幕(唯一輸出設備)運作就像分別的記憶體位置 (FE)16 和 (FF)16。 p.126

88 指令集 簡單計算機擁有 16 個指令的集合,每個計算機指令由兩個部分組成:運算碼(opcode)與運算元(operand)。運算碼指明要執行於運算元之運算類型,每個指令由 16 個位元區分成四個 4 位元的欄位所組成。最左邊欄位包含運算碼而其他三個欄位包含運算元或運算元的位址。 並非所有的指令都需要三個運算元,任何不需要的運算元欄 位填入 (0)16。暫停指令的三個運算元欄位,和移動指令及 NOT 指令的最後欄位,都填 (0)16。 p.126

89 圖 格式與不同指令類型 p.126

90 表 5.4 簡單計算機指令之列表 p.127

91 有兩個加法指令: 一個是整數加法(ADDI) 與一個是浮點數加法(ADDF)。
ROTATE 指令的第三個欄位為 0,則此指令將暫存器 R 中的 位元樣式向右旋轉 n 個位置;如果第三個欄位為 1,則向左旋 轉。指令中也包含了遞增(INC)和遞減(DEC)指令。 p.127

92 處理指令 簡單計算機也使用機器週期的概念。一個週期由三個階段組成:擷取、解碼和執行。在擷取階段期間,由 PC 決定位址的指令從記憶體中取得並且載入到 IR 中,然後 PC 遞增以指到下一個指令。 在解碼階段期間,IR 中的指令被解碼並且從暫存器或記憶體中擷取所需要的運算元。在執行階段期間,指令被執行並且結果被放到適當的記憶體位置或暫存器中。一旦第三個階段完成後,控制單元會再度開始此一週期,但此時 PC 指在下一個指令。此一過程會持續直到 CPU 遇到 HALT 指令為止。 p.127

93 簡單計算機如何將兩個整數 A 和 B 相加並且產生結果 C。假設整數為 2 補數格式,此運算為:
一個範例 簡單計算機如何將兩個整數 A 和 B 相加並且產生結果 C。假設整數為 2 補數格式,此運算為: 要完成這簡單加法的簡單程式需要五個指令,如下所示: 1. 載入 M40 的內容到暫存器 R0(R0 ← M40)。 2. 載入 M41 的內容到暫存器 R1(R1 ← M41)。 3. R0 和 R1 的內容相加且結果放到 R2(R2 ← R0 + R1)。 4. 儲存 R2 的內容到 M42(M42 ← R2)。 5. 停止。 p.128

94 在簡單計算機的語言中,這五個指令可編碼為:
p.128

95 在第一週期的開始,PC 指到程式的第一個指令,其位於記憶體位置 (00)16。控制單元經過三個步驟:
週期 1 在第一週期的開始,PC 指到程式的第一個指令,其位於記憶體位置 (00)16。控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (00)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (1040)16 為 R0 ← M40。 3. 控制單元執行指令。 p.129

96 圖 週期 1 之狀態 p.129

97 1. 控制單元擷取儲存於記憶體位置 (01)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。
週期 2 在第二週期的開始控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (01)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (1141)16 為 R1 ← M41。 3. 控制單元執行指令。 p.129

98 圖 週期 2 之狀態 p.130

99 1. 控制單元擷取儲存於記憶體位置 (02)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。
週期 3 在第三週期的開始控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (02)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (3201)16 為 R2 ← R0 + R1。 3. 控制單元執行指令。 p.130

100 圖 週期 3 之狀態 p.131

101 1. 控制單元擷取儲存於記憶體位置 (03)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。
週期 4 控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (03)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (2422)16 為 M42 ← R2。 3. 控制單元執行指令。 p.130

102 圖 週期 4 之狀態 p.131

103 1. 控制單元擷取儲存於記憶體位置 (04)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。
週期 5 控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (04)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (0000)16 為 Halt。 3. 控制單元執行指令,這表示計算機停止。 p.132

104 圖 週期 5 之狀態 p.132

105 另一個範例 在實際的情況中,使用輸入設備例如鍵盤將前兩個整數鍵入記憶體中;而透過輸出設備例如螢幕來顯示第三個整數。藉由輸入設備來取得資料通常稱為讀取(read)運算;而將資料送至輸出設備通常稱為寫出(write)運算。欲使之前的程式更為實際,則需修改如下: 1. 讀取一個整數到 M40。 2. R0 ← M40。 3. 讀取一個整數到 M41。 4. R1 ← M41。 p.132

106 在此計算機中可以使用 LOAD 和 STORE 指令來模擬讀取和寫出運算。讀取運算為:
5. R2 ← R0 + R1。 6. M42 ← R2。 7. 從 M42 將整數寫出。 8. 停止。 在此計算機中可以使用 LOAD 和 STORE 指令來模擬讀取和寫出運算。讀取運算為: 寫出運算為: R ← MFE 因為鍵盤假設為記憶體位置 (FE)16 M ← R R ← M MFF ← R 因為螢幕假設為記憶體位置 (FF)16 p.133


Download ppt "Foundations of Computer Science Chapter 5 計算機組織"

Similar presentations


Ads by Google