Download presentation
Presentation is loading. Please wait.
1
Foundations of Computer Science
Chapter 5 計算機組織 計算機概論 第三版 Foundations of Computer Science
2
Chap.5 計算機組織 Chap.4 資料運算 Chap.3 資料的儲存 Chap.2 數目系統 二元樣式 (binary pattern)
3
5.1 簡介 構成一部計算機的元件可區分成三個主要的分類或子系統: 中央處理單元 主記憶體 輸入∕輸出(I/O)子系統
5.1 簡介 構成一部計算機的元件可區分成三個主要的分類或子系統: 中央處理單元 主記憶體 輸入∕輸出(I/O)子系統 圖 5.1 計算機硬體(子系統) p.96
4
5.2 中央處理單元 中央處理單元(central processing unit;CPU)執行資料的運算。
5.2 中央處理單元 中央處理單元(central processing unit;CPU)執行資料的運算。 在大部分的架構中 CPU 有三個部分: 算術邏輯單元(arithmetic logic unit;ALU) 控制單元(control unit) 一組快速儲存位置的暫存器(registers) 。 圖 5.2 中央處理單元(CPU) p.96
5
中央處理器的規格 核心數量 多核心架構(Multi-core) 市面上主流的個人電腦CPU均為多核心架構
與單核心CPU相較,在同一時脈速度之下,多核心CPU可同時執行多個任務,因此計算效能較好 市面上主流的個人電腦CPU均為多核心架構 例如Intel Core i5/i7系列多為4核心、AMD Phenom II X6系列為6核心 補充
6
算術邏輯單元(arithmetic logic unit;ALU)
p.97
7
暫存器(registers) 暫存器(registers)是快速的獨立儲存位置,可以暫時保存資料。需要多種暫存器以便幫助 CPU 的運算。
指令暫存器:CPU 負責從記憶體中一個接一個地擷取指令,儲存在指令暫存器(instruction register)中,解碼指令,並且執行指令。 程式計數器(Program Counter, PC):記錄目前正在執行的指令,在執行該指令之後,此計數器會遞增以便指到記憶體內下一個指令的位址。 PC=PC+1=01 p.97
8
控制單元(control unit) 控制單元(control unit)控制每個子系統的運作,藉由訊號從控制單元傳送到其他子系統來達到控制。 p.98
9
5.3 主記憶體 主記憶體(main memory)是計算機中第二個主要的子系統(圖 5.3)。它是由大量的儲存位置所組成,每一位置具有一個唯一識別碼,稱為位址(address)。資料以成組的位元形式傳入和傳出記憶體,稱為字組(word)。 字組為 8 位元,則稱為位元組。位元組(byte)一詞在計算機科學中 是共通的。 (210 × 16)/ 23 = 2 KB 圖 5.3 主記憶體 p.98
10
位址空間 要存取記憶體中一個字組需要一個識別碼。雖然程式設計者使用一個名稱來識別一個字組(或大量的字組),在硬體的層次,每一個字組是用一個位址來加以識別。 記憶體中唯一可識別位置的總數量稱為位址空間(address space),例如,一個記憶體具有 64 K 位元組和一個位元組大小的字組,其位址空間範圍是從 0 到 65535。 假設一部計算機有 64 K 位元組,位址可表示成無號整數(不會有負的位址)。換言之,第一個位置就是位址 (位址 0),而最後一個位址就是 (位址 65535)。 p.98
11
記憶體單位 表 5.1 記憶體單位 p.99
12
範例 5.1 一部計算機有 32 MB(百萬位元組)的記憶體。需要多少個位元 來定址記憶體中每一個位元組? 解答
log2225,或 25 個位元來定址每一個位元組。 p.99
13
範例 5.2 一部計算機有 128 MB 的記憶體,此計算機中每一字組為 8 個位元 組。需要多少位元來定址記憶體中每一個字組? 解答
(23)位元組,表示有 224 個字組,這表示需要 log2224,或 24 個 位元來定址每一個字組。 p.99
14
記憶體種類 兩種主要的記憶體分別是: RAM SRAM DRAM ROM PROM EPROM EEPROM p.99
15
RAM 隨機存取記憶體(random access memory;RAM)構成計算機中大部分的主記憶體。
要區別 RAM 和 ROM 就在於 RAM 可以被讀取與寫入。 RAM 的另一個特性是它具有揮發性;如果電腦電源關閉,則資訊(程式或資料)會被清除。 RAM 技術分成兩大類:SRAM 和 DRAM。 p.100
16
SRAM 靜態 RAM(static RAM;SRAM)技術使用傳統的正反閘來保存資料,只要電源是開啟狀態,則資料是被保存的,而且不需要更新記憶體位置。 SRAM 速度快但價格昂貴。 p.100
17
DRAM 動態 RAM(dynamic RAM;DRAM)技術使用電容來做資料儲存,如果電容是充滿電的,則狀態為 1;如果電容未充電,則狀態為 0。 因為電容會隨時間漏失電荷,所以 DRAM 記憶體單元需要週期性地加以更新。 DRAM 速度慢但價格便宜。 p.100
18
ROM 唯讀記憶體(read-only memory;ROM)的內容是由製造商所寫入;CPU 允許讀出其內容但是不能寫入 ROM 中。
其優點為它是非揮發性的──如果關閉電腦,其內容沒有被清除。 通常,它是用於程式或資料一定不可以被清除或更改,甚至是將電腦關閉。 例如,有些電腦具有 ROM 保存有啟動程式,用於開機時執行。 p.100
19
(1) 執行啟動程式並找出OS kernel 所在位置
Computer System 啟動 ROM power-up or reboot (1) 執行啟動程式並找出OS kernel 所在位置 Bootstrap program OS (2)OS kernel 被載入記憶體並執行 (1)執行Word Program 補充
20
PROM 可程式規劃唯讀記憶體(programmable read-only memory;PROM)是ROM 的變型,這種型式的記憶體在電腦裝貨時是空白的,使用者可以用特殊設備將程式儲存於其中。 當程式存入後就如同 ROM 一般不能被覆寫,此一特性允許使用者儲存特殊程式於 PROM 中。 p.100
21
EPROM 可清除可程式化唯讀記憶體(erasable programmable read-only memory;EPROM)是 PROM 的變型。 它可由使用者作程式規劃,但是它也可以用一種應用紫外光的特殊設備加以清除,要清除 EPROM 必須將 EPROM 實際移除與重新安裝。 p.101
22
EEPROM 電壓可清除可程式化唯讀記憶體(electrically erasable programmable read-only memory;EEPROM)是 EPROM 的變型。 它可藉由電子脈衝來加以程式化和清除,而不需從電腦中移除。 p.101
23
記憶體階層 極少量的高速記憶體在速度具決定性的地方,CPU 內部的暫存器即屬此類。
適量的中速記憶體來儲存時常存取的資料,快取記憶體即屬此類。 大量的低速記憶體來儲存不常存取的資料,主記憶體即屬此類。 輔助記憶體 圖 5.4 記憶體階層 p.101
24
快取記憶體(cache memory) 圖 5.5 快取記憶體 p.101
快取記憶體(cache memory)比主記憶體快,但是比 CPU 及其內部的暫存器慢。快取記憶體通常數量少,並置於 CPU 與主記憶體之間。 快取記憶體在任何時刻均包含部分主記憶體的備分。當 CPU 需要存取主記憶體中一個字組時,它遵循下列程序: 1. CPU 檢查快取記憶體。 2. 如果此字組存在,CPU 拷貝此字組;若不存在,則 CPU 存取主記憶體,而且拷貝一塊從所要求的字組開始之主記憶體區塊。此區塊取代快取記憶體中先前的內容。 3. CPU 存取快取記憶體並且拷貝此字組。 圖 5.5 快取記憶體 p.101
25
80-20 法則 為什麼快取記憶體會如此有效率,即使只有少量的快取記憶體。答案在於「80-20 法則」。根據觀察,大部分的電腦主要花費百分之八十的時間在存取只有百分之二十的資料,換言之,相同的資料被重複地存取。 快取記憶體利用其快速特性,可以保有此百分之二十的資料,使得存取加快至少百分之八十的時間。 p.102
26
5.4 輸入 ∕ 輸出子系統 計算機中第三個主要子系統是一群設備的集合稱為輸入∕輸出子系統(input/output (I/O) subsystem)。 此子系統允許計算機與外界通訊,以及即使電源關閉時可以儲存程式和資料。 輸入∕輸出設備可分成兩大類: 非儲存性設備 儲存性設備。 p.102
27
非儲存性設備 非儲存性設備(nonstorage device)允許 CPU∕記憶體與外界通訊,但是它們不能儲存資料。
兩種比較常見的非儲存性輸入∕ 輸出設備為鍵盤和螢幕。 鍵盤(keyboard)提供輸入功能; 螢幕(monitor)顯示輸出而且同時回應在鍵盤上所輸入的字母。 屬於這類型的其他設備還有滑鼠、搖桿等。 印表機(printer)是產生永久紀錄的輸出設備。印表機是非儲存性設備。 p.102
28
儲存性設備 儲存性設備(storage device)雖然歸類為 I/O 設備,可以儲存大量的資訊,並於之後再度取回。
但它們比主記憶體便宜,而且其內容是非揮發性的──當電源關閉時不會被清除。 它們有時候被稱為輔助儲存設備,可以將其分類為磁性或光學的設備。 p.103
29
磁性儲存設備 磁性儲存設備使用磁化來儲存資料的位元。如果一個位置被磁化,則代表 1;如果沒有被磁化,則代表 0。
磁碟(magnetic disk)是由一個或多個碟片逐一堆疊而組成。碟片塗上一層磁性薄膜,利用每一個碟片之磁化表面上的讀寫頭(read/write head),來儲存及讀取在碟片表面的資訊。 p.103
30
磁碟 表面組織:每一個表面分成許多磁軌(track),而每一磁軌分成許多磁區(sector)。磁軌被磁軌間隙(intertrack gap)隔開,而磁區被磁區間隙(intersector gap)隔開。 資料存取:磁碟可視為一種隨機存取設備,一次所能存取的最小儲存區域為一個磁區。一個資料區塊可以儲存在一個或多個磁區,而且取回時不需取回碟片中其餘的資訊。 圖 5.6 磁碟 p.103
31
硬碟的容量 計算硬碟的儲存容量,可以由磁柱數(cylinder)、可讀寫表面數(head)、磁區(sector)決定,公式:
硬碟容量 =可讀寫表面數 x磁柱數 x 磁區數 x 磁區容量 【範例】:假設每一個磁區(sector)可以記錄512位元組,並且從BIOS中查得某硬碟的CHS相關資料如右,請問該硬碟的容量為何? 解: 硬碟容量 =可讀寫表面數 x 磁柱數 x 磁區數 x 磁區容量 = 16 x 1647 x 63 x 0.5KB = KB = MB Cylinder Heads Sector 1647 16 63 補充
32
磁碟效能 效能:磁碟的效能取決於幾項因素:轉速、搜尋時間和轉移時間。 轉速(rotational speed)定義磁碟旋轉多快。
旋轉延遲(rotation delay)則是將要讀寫的磁區轉到讀寫頭下方所需要的時間。而平均旋轉延遲(有些規格稱平均旋轉延遲為平均等待時間)一般都假設為轉半圈的時間。 搜尋時間(seek time)定義移動讀寫頭到所要的儲存資料磁軌所需之時間。 轉移時間(transfer time)定義從磁碟上移動資料到 CPU∕記憶體所需之時間。 p.104
33
硬碟平均存取時間(Average Access Time)
平均存取時間 = 搜尋時間 + 平均旋轉延遲 + 資料轉移時間 【範例】:ST380023AS硬碟最大的內部資料傳輸速率為570Mbits/s,平均搜尋時間為9.4ms,旋轉速度為7200RPM,假設不計控制器時間與佇列延遲,請問,讀寫一個512位元組的磁區平均需要花多少時間? 解: 平均旋轉延遲 = (1*60/7200RPM)/2 = sec/2 = 4.167ms 資料傳輸時間 = 0.5K/(570M/8) = (0.5 KB) / (71.25 MB/sec) = 0.07ms 平均存取時間 = 搜尋時間 + 平均旋轉延遲 + 資料轉移時間 = 9.4ms ms ms = ms 補充
34
磁碟陣列(RAID) 對於伺服器等級的電腦而言,磁碟的可靠度非常重要,不允許發生任何的資料遺失,此時光是靠定時的備份已經無法提供它所需要的可靠度,例如處理金融交易的電腦不允許喪失任何一筆交易記錄,它需要的是即時的備份。 事實上,可用性(availability)與可靠性(reliability)是兩回事 提高可靠性代表著,降低硬體的損壞率,這必須改進硬體技術才能達成; 而提高可用性(容錯功能),則是代表在硬體有所損壞時,整個系統仍必須可以正常運作,這可以藉由增加硬體個數來完成。 補充
35
磁碟陣列(RAID,redundant array of independent disks )
第一是加速: 採用等量分配(Striping) ,由於讀取或寫入資料是對虛擬的大磁碟機運作,而若將資料切割成許多區塊,並同時以平行方式對多顆小硬碟進行存取動作,則速度自然提升。 第二則是提高可用性,也就是增加整個系統的容錯功能: RAID是將許多個獨立的磁碟視為一個大的虛擬磁碟,但由於實際上,這些磁碟要同時壞掉的機率很低,因此,只要在某些硬碟損壞時,能夠恢復錯誤即可。這當然必須付出一些代價來做即時備份,其中有鏡射(Mirroring)及編碼計算兩大方式。 明顯地,在虛擬大磁碟與實體小磁碟間,需要有一套機制來做對應,在硬體上,通常會以RAID控制卡來擔任RAID控制器,而SATA主機板上,通常也都提供了RAID控制器的功能。 對應的處理機制有很多種,比較有名的有RAID0, RAID1, RAID3, RAID5, RAID10 等。其中,RAID 0無法增加系統的可用性,只會增快資料的存取速度。 補充
36
RAID 0 RAID0最早並非RAID的種類之一,因為它完全沒有容錯能力,只能加快資料的存取速度。
首先,存放在邏輯大磁碟機的資料將會分佈在實體的小磁碟機內。如果小磁碟機的大小不一致,則會以最小的為基準。 例如四個實體磁碟機分別為2GB,3GB,3GB,4GB,則邏輯的大磁碟機容量為2×4=8G。 以存入資料為例,當寫入邏輯磁碟機後,RAID控制器會將資料經過分割處理為許多資料區段(chunk),然後將各資料區段存入對應的實體磁碟,由於可同時寫入,故速度得以提升。 但若任一個實體磁碟故障,則全部的資料都將無法讀出。換句話說,實體磁碟數目越多,速度雖然越快,但故障率也將越高。正由於此特性,因此RAID 0僅適合於要求快速資料傳送,且不必擔心資料遺失的狀況。 補充
37
RAID 0 RAID0示意圖 補充
38
RAID 1 RAID 1 是將所有的實體磁碟對分成兩大群,一群負責工作,另一群負責備份。它採用鏡射(mirroring)原理,也就是每一個磁碟都有相對應的一個即時備份用的硬碟(如圖示意),當某一個硬碟損壞時,資料並不會因此流失。 換句話說,它擁有最高的容錯率,但磁碟使用率則只有50%。此類架構至少需要兩顆實體磁碟。 RAID1示意圖 補充
39
RAID 10 我們直接先說明RAID10,這是因為RAID10並非RAID十,而是RAID一零。顧名思義,RAID10=RAID1+RAID0。 它採用了磁碟鏡射並將資料交錯存放,此類架構至少需要四顆實體磁碟。 RAID10可以提供完整的容錯能力,但由於平行寫入的緣故,速度也加快。 不過,RAID10的硬碟使用率也只有50% RAID10示意圖 補充
40
同位元檢查 (parity bit check)
分成奇同位檢查和偶同位檢查。 例如: 補充
41
RAID 3 RAID 3的方式和RAID 1有很大的差別,假設有四個硬碟,它會將其中一個磁碟當做為同位檢查磁碟(存放著另外三個磁碟同一位址的同位資訊),而另外三個磁碟當作資料磁碟。 如此一來,不論是哪一個硬碟發生錯誤,都可以利用檢查同位(parity)的方式,復原錯誤。 一般同位計算是以區塊為單位。為了方便說明,在圖中,我們以一個位元做為一個區塊,而實際上,為了使RAID 3的磁碟陣列更有效率,通常區塊都設定32KB以上。 RAID3 示意圖 補充
42
RAID 5 RAID5與RAID 3類似,不過RAID5採用的是輪轉同位陣列(Rotating Parity Array),也就是將同位位元資料平均分布於每個實體硬碟中,而非單一硬碟。 由於同樣是以區塊為同位計算單位,因此在讀取資料時,可能同時出現一般資料與同位資料,所以通常它的區塊大小必須設定的比RAID3大一些,以避免連續大型檔案被同位資料切割在不同的實體磁碟中,而造成必須讀取多顆硬碟並組合資料的時間延遲。 RAID5 示意圖 補充
43
各類RAID比較 除了上述各種RAID類型之外,其他還有許多類型,我們將優缺點整理在表中。 Level (別名) 額外花費之磁碟數量
容錯能力 存取資料速度 RAID 0 (Disk Striping) 比未使用磁碟陣列更差 佳 RAID 1 (Mirroring) N 比RAID 2, 3, 4 , 5佳 比RAID 6差 讀取時較佳,寫入時與未使用磁碟陣列差不多 RAID 10 (RAID 0+1) 比未使用磁碟陣列更好 最佳 RAID 3 (Parallel Transfer Disks with Parity) 1 RAID 5 讀取時較佳,寫入時比未使用磁碟陣列更差
44
磁帶(magnetic tape) 磁帶(magnetic tape)有各式各樣的尺寸,常見的一種是在半英寸塑膠帶子塗上一層厚的磁膜。磁帶架設於兩個捲軸上,當磁帶經過讀寫頭時,用一個讀寫頭來讀取或寫入資訊。 表面組織 :磁帶的寬度分成九個磁軌;磁軌中的每一位置可以儲存 1 個位元的資訊。九個垂直點可以儲存一個位元組的 8 個位元資訊,加上一個錯誤偵測的位元。 資料存取:磁帶可視為一種循序存取設備,要取回磁帶上特定的區塊,需要經過該區塊之前所有的區塊。 效能:速度比磁碟慢,但是比較便宜。現在,大家使用磁帶來備份大量的資料。 p.104
45
圖 5.7 碟帶 p.104
46
光學儲存設備(optical storage devices)
光學儲存技術的使用是在儲存聲音資料的 CD(compact disk)發明之後,現在,在電腦中使用相同的技術來儲存資訊。 使用此技術的設備有 CD-ROM、CD-R、CD-RW 和 DVD。 p.105
47
唯讀光碟(CD-ROM) 唯讀光碟(compact disk read-only memory;CD-ROM)使用與音樂 CD相同的技術。
a. 母片(master disk)是以高功率紅外光雷射產生位元樣式在鍍膜的塑膠上而製成。雷射將位元樣式轉換成一序列的凹洞(pit)(洞)和平地(land)(無洞)。凹洞通常表示 0,而平地通常表示 1。然而這只是慣例,是可以調換的。其他機制使用轉換(凹洞到平地或是平地到凹洞)來表示 1,而用沒有轉換表示 0。 b. 模版從母片製作而來,在模版中,凹洞用凸塊取代。 p.105
48
圖 5.8 CD-ROM 的產生與使用 p.105
49
唯讀光碟(CD-ROM) c. 將熔化的聚碳酸酯樹脂(polycarbonate resin)射入模版中,以產生與母片相同的凹洞。再將一層非常薄的鋁(作為反射層)加到聚碳酸酯之上。在這鋁層之上,有一層用漆作的保護層,而且加上標籤。每一個碟片的產生只有重複此一步驟。 讀取:CD-ROM 使用低功率雷射光束來加以讀取,此雷射光束經 過平地時會被鋁層表面所反射。當遇到凹洞時會反射兩次,一次是 由凹洞邊界所造成,而另一次是由鋁層邊界所造成。這兩次反射具 有破壞性效應,因為所選擇的凹洞深度剛好為光束波長的四分之一 。如果該位置是平地的話,感測器會檢測到較多的光;如果是凹洞 ,則會檢測到較少的光。 p.105
50
唯讀光碟(CD-ROM) 格式:CD-ROM 的資料格式依據
a.使用一種稱為漢明碼(Hamming code)的錯誤更正碼,將 8 位元的資料區塊轉換成 14 位元的符號(symbol)。 b. 每一個框架(frame)由 42 個符號所組成(14 位元∕符號)。 c. 每一個磁區由 98 個框架所組成(2352 位元組)。 速度:CD-ROM 光碟機具有不同的速度。單倍速稱為 1×,每秒讀 取多達 位元組。 應用:生產費用包含製造母片、模版和實際碟片,如果碟片是大量 生產,則具有經濟效益。 p.106
51
圖 5.9 CD-ROM 格式 p.106
52
表 5.2 CD-ROM 速度 p.107
53
可燒錄光碟(CD-R) 可燒錄光碟(compact disk recordable;CD-R)允許使用者產生一片或多片的光碟,而不必負擔產生 CD-ROM 所包含之費用。這在製作備分時特別有用。 CD-R 有時候稱為一寫多讀(write once, read many;WORM)。 產生:CD-R 技術使用與 CD-ROM 相同的原則產生光碟片。 以下列出其差異處: a. 沒有母片或模版。 b. 反射層用黃金取代鋁來製造。 p.107
54
可燒錄光碟(CD-R) c. 在聚碳酸酯上沒有實際的凹洞(洞);凹洞和平地只是模擬的。要模擬凹洞和平地,需要多一層類似照相所用材料的額外染料,加在反射層與聚碳酸酯之間。 d. 由 CD 燒錄機所產生的高功率雷射束造成染料上的一個黑點,改變其化學構造來模擬凹洞,未被雷射束擊中的區域即為平地。 讀取:CD-R 可以被 CD-ROM 機器或 CD-R 機器讀取。 格式與速度:CD-R 的格式、容量及速度,都和 CD-ROM 相同。 應用:CD-R 這項技術對於想要產生與供應少量光碟片的人來說,是非常具有吸引力的。對於製作文件檔案與備分也非常有用。 p.107
55
圖 製作 CD-R p.107
56
可覆寫光碟(CD-RW) 一種新類型的碟片,稱為可覆寫光碟(compact disk rewritable;CD-RW),有時又稱為可清除光碟。 產生:CD-RW 技術使用與 CD-R 相同的原則來產生光碟片。 以下列出其差異處: a. CD-RW 技術使用銀、銦、銻和碲的合金取代染料,此合金具有兩個穩定狀態:結晶性(透明)和無結晶性(不透明)。 b. 此機器使用高功率雷射來產生合金中模擬的凹洞(將它從結晶性改變成無結晶性)。 p.108
57
可覆寫光碟(CD-RW) 讀取:此機器使用如 CD-ROM 和 CD-R 相同形式的低功率雷射光束,來檢查凹洞和平地。
清除:此機器使用中功率雷射光束將凹洞改變成平地,此光束將一 個位置從無結晶狀態改變成結晶狀態。 格式和速度:CD-RW 的格式、容量和速度都與 CD-ROM 相同。 應用:此技術絕對比 CD-R 技術更具有吸引力。 p.108
58
圖 製作 CD-RW p.108
59
數位多功能光碟(DVD) 市場上最新的光學記憶體儲存設備是數位多功能光碟(digital versatile disk;DVD)。它使用與 CD-ROM 相同的技術,除了下列的差異之處: a. DVD 的凹洞較小:直徑 0.4 微米,取代 CD 所用的 0.8 微米。 b.光(磁?) 軌彼此間更為接近。 c. 光束用紅光雷射取代紅外線雷射。 d. DVD 使用一至兩層的記錄層,而且可以是單面或雙面。 p.109
60
數位多功能光碟(DVD) 容量: 壓縮:DVD 技術使用 MPEG 來作壓縮,這表示一片單面單層的 DVD 能夠保存 133 分鐘高解析度的視訊,其亦包含了聲音和字幕。 應用:DVD 的高容量吸引了許多需要儲存大量資料的應用。 表 5.3 DVD 容量 p.109
61
藍光光碟(Blu-ray Disks) Blu-ray 藍光光碟是由 SONY 主導, 並在 Blu-ray Disc Founders group (BDF, 藍光碟片基金會) 組織下制定規格。 目前 CD/DVD 所採用的雷射為波長 780 nm (奈米, 10-9 公尺) 與 650 nm 的紅色可見光, 故稱為紅光雷射 藍光光碟則改用波長更短、頻率更高的藍光雷射。藍光雷射產生的焦點面積只有紅光雷射的 19%, 在同樣大小的光碟面積上可以更密集地讀寫資料, 所以能夠有效地提升光碟的容量。 單層BD的容量為25GB,能夠錄製長達4小時的高解析度影片,雙層BD及四層BD的容量更高達50GB和100GB, 補充
62
5.5 子系統之互連 連接 CPU 與記憶體 CPU 與記憶體通常由三組線路連接,每一組線路稱為匯流排(bus):
5.5 子系統之互連 連接 CPU 與記憶體 CPU 與記憶體通常由三組線路連接,每一組線路稱為匯流排(bus): 資料匯流排(data bus) 位址匯流排(address bus) 控制匯流排 (control bus) 圖 使用三組匯流排連接 CPU 與記憶體 p.109
63
資料匯流排(data bus) 資料匯流排(data bus)線路的數目取決於計算機所使用字組的大小,如果字組是 32 位元(4 位元組),則需要 32 條線路的資料匯流排,因此一個 32 位元的字組可以同時傳送。 (210 × 16)/ 23 = 2 KB p.109
64
位址匯流排(address bus) 位址匯流排(address bus)允許存取記憶體中特定的字組。位址匯流排線路的數目取決於記憶體位址空間,如果記憶體有2n 個字組,位址匯流排必須有 n 條線路。 (210 × 16)/ 23 = 2 KB p.110
65
控制匯流排(control bus) 控制匯流排(control bus)在 CPU 與記憶體之間傳送聯絡訊號。控制匯流排所使用的線路數目取決於計算機所需要的命令之總數量,如果一計算機有 2m 個控制動作,則控制匯流排需要 m 條線路。 p.110
66
連結 I/O 設備 圖 5.13 連接 I/O 設備到匯流排 p.110 I/O 設備不能直接連接到 CPU 和記憶體的匯流排上。
I/O 設備經由輸入∕輸出控制器(input/output controller)或介面(interface)而連接到匯流排上,每一個 I/O 設備有一個特殊的控制器(controller) 。 控制器或介面彌補了 I/O 設備與 CPU 和記憶體之性質間的差異。控制器可以是串(序) 列或並列設備。目前有數種控制器在使用中。現在最常見的是 SCSI、FireWire 、 USB和HDMI。 圖 連接 I/O 設備到匯流排 p.110
67
小型電腦系統介面(SCSI) 小型電腦系統介面(small computer system interface;SCSI) 最初是由 Macintosh 電腦於 1984 年所發展,今日它已經被使用於許多系統之中。 SCSI 具有 8、16 或 32 條線路的並列介面,SCSI 介面提供雛菊鏈 式(daisy-chained)的連接。雛菊鏈的兩端必須加上一個稱為終端 電阻的特殊設備來加以阻隔,而且每一個設備必須有一個唯一的 位址(目標 ID)。 p.111
68
圖 SCSI 控制器 p.111
69
SAS (Serial Attached SCSI)
SCSI規格歷經多次變革,並且正面臨著SATA的挑戰。 目前,廠商們也開始開發序列傳輸的Serial Attached SCSI,簡稱為SAS,期望藉由序列式技術獲得更高的傳輸速度。 包括Seagate、Maxtor等磁碟廠商以及IBM、HP等伺服器廠商都加強對SAS標準的支援,SAS未來將成為企業儲存系統或伺服器磁碟的主流。 第一代SAS為陣列中的每個驅動器提供 3.0 Gbps(3000 Mbps)的傳輸速率。 第二代SAS為陣列中的每個驅動器提供 6.0 Gbps(6000 Mbps)的傳輸速率。 第三代SAS為陣列中的每個驅動器提供 12.0 Gbps(12000 Mbps)的傳輸速率。 第四代SAS為陣列中的每個驅動器提供 24.0 Gbps(24000 Mbps)的傳輸速率(開發中,預計2017年推出)。 補充
70
火線(FireWire) IEEE 標準 1394 定義一個串列介面通稱為火線(FireWire)。它是一個以封包傳送資料的高速串列介面,最高傳送速率可達 50 MB/sec,在最近的版本甚至是其兩倍的速率。 它可以用雛菊鏈方式或樹狀連結方式(只用一條連結線)連接多達 63 個設備,它不需要像 SCSI 控制器中使用終端電阻。 p.112
71
圖 FireWire 控制器 p.112
72
IEEE 1394/Firewire/i.Link IEEE 1394是高速傳輸資料的一種序列匯流排,最早是由蘋果公司所發展,命名為「Firewire」,並加以註冊商標。 後來SONY則改用「i.Link」加以命名。 「FireWire」在1995年被IEEE納入標準,全名為IEEE STD ,後來又被修正為IEEE 1394a-2000(Firewire與i.Link都符合此標準)與IEEE 1394b-2002,兩者的傳輸速率相差很多。 IEEE 1394a 傳輸速率分為S100(98.304Mbps)、 S200( Mbps) 、S400( Mbps), 而目前的IEEE 1394b可達800Mbps,未來則能達到1600Mbps、3200Mbps以上,傳輸速度極為驚人。 補充
73
通用串列匯流排(USB) 通用串列匯流排(Universal Serial Bus;USB)是一個串列控制器,用來連接慢速和快速的設備到電腦匯流排。 p.112
74
通用串列匯流排(USB) USB 控制器也稱為根集線器(root hub)。USB-2(USB 2.0 版)容許多達 127 個設備使用一種類似樹狀拓樸(topology)連接到 USB 控制器,其中控制器視 為樹根,集線器為中間節點,而設備為終端節點。 此控制器(根集線器)與其他集線器之差異在於此控制器知道在樹狀結構中其 他集線器的存在,但其他集線器為被動設備,只能簡單地傳遞資料。 圖 USB 控制器 p.112
75
通用串列匯流排(USB) 設備可以很容易地從樹狀結構中移除或加入,而不必關閉電腦電源,這稱為可熱插拔(hot-swappable)。
當一個集線器從系統中被移除時,連結到此集線器的所有設備和其他集線器也一併被移除。 USB 使用一個四線的排線,其中兩條線(+5 伏特與接地)用來提 供電源給低耗電設備,例如鍵盤或滑鼠;高耗電設備需要連接到額 外電源。集線器從匯流排取得電源並能提供電源給低耗電設備。另 外兩條線(絞在一起以降低雜訊)用來傳遞資料、位址和控制訊號 。 p.112
76
通用串列匯流排(USB) USB 提供三種資料傳輸率: USB 1: 1.5 Mbps(每秒百萬位元)、12 Mbps
USB 3: 5 Gbps 、10 Gbps 資料在 USB 上以封包形式傳遞。每個封包包含位址部分(設備識 別符號)、控制部分和傳遞到該設備的部分資料。所有設備將會收 到相同的封包,但是只有具有封包中所定義的位址之設備會接受該 封包。 p.113
77
通用串列匯流排(USB) 隨著電腦的汰換更新,以往可以見到的USB大概都是USB 1.1 與USB 2.0,速度上則相差許多
USB 1.1 的傳輸速率約為12Mbps(1.5MB/s) USB 2.0 的傳輸速率可達480Mbps(60MB/s)。 在2007 年,USB 3.0 標準也問世, 由Intel、HP、NEC、微軟與德州儀器共同發展, 提供十倍於USB2.0 的傳輸速率,可達4.8 Gbps(600MB/s)(通常號稱5Gbps),並且可向下相容USB 2.0 的接頭。 USB 3.0有兩種A、B兩種介面 其中B是用來當作充電的介面,稱為USB 3.0 Powered-B 而A則主要是傳統資料傳輸之用,稱為USB 3.0 Standard-A,接頭尺寸與USB 2.0相同,但內部觸點則有所不同,並且會以藍色做為區隔。 2011年開始有支援USB 3.0 的主機板與周邊設備問世,而2012 年10月發行的Windows 8 也原生支援USB 3.0(也就是不用額外安裝驅動程式),故而USB 3.0將逐漸普及於各種周邊設備。 並且在2012年底也開始規劃USB3.0增強版,預期資料傳送速率可達10Gbps。 補充
78
定址輸入∕輸出設備 CPU 通常使用相同的匯流排來讀取或寫入資料到主記憶體和I/O 設備。
處理輸入∕輸出設備的定址有兩種方法:獨立式 I/O 與記憶體對映I/O。 p.114
79
在獨立式 I/O(isolated I/O)
每一個輸入∕輸出設備有自己的位址,輸入∕輸出位址可以與記憶體的位址重疊而不會模稜兩可,因為指令本身就不相同。 例如,CPU 使用命令「Read 101」讀取記憶體字組 101,也可以使用命令「Input 101」來讀取輸入∕輸出設備 101。 圖 獨立式 I/O 定址 p.114
80
在記憶體對映 I/O(memory-mapped I/O)
在記憶體對映 I/O(memory-mapped I/O)的方法中,CPU 將輸入∕輸出控制器中的每一個暫存器視為記憶體的字組。換言之,CPU 並沒有不同的指令來辨別從記憶體或是輸入∕輸出設備傳輸資料。例如,只有一個「Read」指令。 記憶體對映 I/O 組態的優點是指令數量較少,所有記憶體指令可以被輸入∕輸出 設備使用;其缺點是記憶體的部分位址空間被配置給輸入∕輸出控制器中的暫存 器。 圖 記憶體對映 I/O 定址 p.114
81
圖 記憶體對映 I/O 定址 p.115
82
5.6 程式之執行 在今日,通用型計算機使用一組指令稱為程式(program)來處理資料。
5.6 程式之執行 在今日,通用型計算機使用一組指令稱為程式(program)來處理資料。 計算機執行程式以便從輸入的資料產生出輸出的資料,程式與資料兩者均儲存在記憶體之中。 CPU 使用重複的機器週期(machine cycles)來執行程式中的指令,一個 接一個地從開始到結束。一個簡化的週期由三個階段所組成:擷取、解 碼和執行。 p.115
83
圖 週期的步驟 p.116
84
機器週期(machine cycles) 在擷取(fetch)的階段中,控制單元命令系統複製下一個指令到 CPU 的 指令暫存器(IR)中,要被複製指令的位址是存在程式計數器中。在複製之 後,程式計數器(PC)會遞增以便指到記憶體中的下一個指令。 週期中第二個階段是解碼(decode)階段。當指令被擷取到指令暫存器 後,會由控制單元加以解碼。此解碼階段的結果是將由系統執行某一運 算的二進位碼。 PC=PC+1=01 p.116
85
機器週期(machine cycles) 在指令解碼之後,控制單元送出工作命令到 CPU 中的組成元件。 例如,控制單元能告知系統從記憶體載入(讀取)一資料項,或 CPU 告知 ALU 將兩個輸入暫存器的內容相加,並且將結果放入輸 出暫存器中,這就是執行(execute)步驟。 PC=PC+1=01 p.116
86
CPU 的運作與輸入∕輸出設備同步 CPU 的運作必須以某種方法與輸入∕輸出設備達到同步。已經有三種方法被設計來達成同步: 程式化 I/O
直接記憶存取(DMA) p.116
87
程式化 I/O(programmed I/O)
在程式化 I/O(programmed I/O)的方法中,同步是非常簡單的。I/O 設備與 CPU 之間的資料傳送是由程式中的指令所完成,當 CPU 執行一個 I/O 指令,直到資料傳送完成之前 CPU 不作任何動作。CPU 經常地檢查 I/O 設備的狀態:如果設備已經準備好傳送,則資料就傳送到 CPU。 圖 程式化 I/O p.116
88
中斷驅動 I/O(interrupt-driven I/O)
在中斷驅動 I/O(interrupt-driven I/O)的方法中,CPU 通知I/O 設備即將發生資料傳送,當 I/O 設備已準備好時會通知(中斷)CPU。 在此方法之中,CPU 時間未被浪費掉──當慢速 I/O 設備正在完成工作期 間,CPU 能夠執行其他工作。 圖 中斷驅動 I/O p.117
89
直接記憶體存取(DMA) 第三個傳輸資料的方法是直接記憶體存取(direct memory access;DMA)。
此方法直接傳輸一大區塊的資料於高速 I/O 設備,例如磁碟和記憶體之間,而且資料傳輸不經過 CPU,這需要一個 DMA 控制器來減輕 CPU的某些功能。 DMA 控制器具有暫存器,以便在記憶體傳輸之前與之後保存一個區塊的資料。 使用此方法做一個 I/O 動作,CPU 要傳送一個信息給 DMA。此信 息包含有傳輸類型(輸入或輸出)、記憶體位置之起始位址,和要 傳輸的位元組數目,然後 CPU 可以做其他工作。 p.118
90
圖 DMA 連接到一般匯流排 p.118
91
圖 DMA 輸入∕輸出 p.119
92
5.7 兩種不同的架構 CISC CISC(發音 sisk)表示複雜指令集電腦(complex instruction set computer;CISC)。CISC 具有一個大的指令集,包括複雜的指令。在 CISC 電腦上撰寫程式比在其他設計的電腦要容易得多,因為對於簡單或複雜的工作都只要一個指令即可。 指令集的複雜度造成了 CPU 的電路及控制單元非常複雜。CISC 架 構的設計者已經找出解決方法來降低其複雜度:程式規劃分兩個階 段完成。 p.119
93
CISC 架構的缺點之一是微程式規劃所需的額外時間與存取微記憶 體的時間。
CPU 只執行簡單的微運算(microoperation),一個複雜指令先轉換成一組簡單的微運算,再由 CPU 加以執行。因此需要增加一個特殊記憶體稱為微記憶體(micromemory),以保存指令集中每一個複雜指令的一組微運算。這種使用微運算的程式規劃的形式稱為微程式規劃(microprogramming)。 CISC 架構的缺點之一是微程式規劃所需的額外時間與存取微記憶 體的時間。 p.119
94
在 RISC 電腦上撰寫程式比在另一種設計的電腦要更加困難以及更 加耗時,因為大部分的複雜指令是用簡單指令模擬得到的。
RISC(發音 risk)表示精簡指令集電腦(reduced instruction set computer;RISC)。RISC 背後的策略是要具有一個小的指令集以便執行最少數目的簡單運算,而複雜指令是用簡單指令的子集合加以模擬。 在 RISC 電腦上撰寫程式比在另一種設計的電腦要更加困難以及更 加耗時,因為大部分的複雜指令是用簡單指令模擬得到的。 p.120
95
RISC與CISC 一般來說,同樣功能的程式,若使用RISC指令來撰寫,通常程式碼會較長,而使用CISC指令來撰寫,程式碼將會精簡許多
至今尚無明確解答,因此兩種指令集設計都被產品化 但依據實際測試結果,RISC在伺服器級的電腦表現較優,因此,工作站以上的電腦通常採用RISC指令集設計,例如Sun SPARC 而CISC則通常被使用做為個人電腦的CPU指令集,例如Intel x86。 補充
96
RISC與CISC特性比較 項目 RISC CISC 指令種類 少,通常低於100道 多,通常在200~300道以上 指令功能 簡單 複雜
控制單元 硬體拉線控制 微程式控制 指令格式 固定且可平行解碼,速度快 不固定,必須循序解碼 指令長度 固定 不固定 管線 單純 應用領域 特定領域,如工作站 非特定,如個人電腦 產品 PowerPC、Sun SPARC、DLX Intel x86、Motorola 680x0 補充
97
管線處理 現代的計算機使用一種稱為管線處理(pipelining)的技術來增進其產量(throughput;單位時間內所執行指令的總數量)。這個想法是基於如果控制單元能夠同時執行二或三個階段,則下一指令可以在前一指令完成之前就開始執行。 p.120
98
圖 5.24b 顯示管線處理如何能夠增進計算機的產量,第一個計算機在特定期間內平均要執行 9 個階段,而管線化的計算機在相同的時間內可以執行 24 個階段。如果假設每個階段使用相同的時間量,則第一個計算機完成了 9/3 = 3 個指令,而第二個計算機完成了 24/3 = 8 個指令,產量因而增加了 8/3 或266%。 圖 管線處理 p.120
99
管線增速 對於一個使用管線技術製作的電腦系統而言,它能夠提供多少的增速(speedup)呢? 在理想狀況下,管線的增速恰好等於管線的級數
例如:DLX的管線級數為5,因此,使用管線製作的DLX機器比未使用管線技術製作的DLX機器快5倍。 我們很容易可以驗證上述定理,所謂理想狀況,代表管線內每一級所需要的花費時間皆相等,且每一級皆可以完全獨立不受他級影響 例如:每一級需要花費10ns,則未使用管線完成一個指令需要50ns,而完成100個指令需要5000ns。使用管線技術後,完成100個指令所需要的時間為(100-1)*10+50=1040ns。若執行無限多個指令時,管線(5級)所獲得的增速,如下公式計算: 完美的Speedup管線=管線的級數 補充
100
管線步驟所需時間不等 如果每一級所需要花費的時間不相等時,使用管線所獲得的增速就沒有那麼理想了,假設DLX指令執行的5個階段分別需要花費10ns、12ns、10ns、15ns、10ns,此時,若想要管線化,就必須以花費最多的那一級(15ns)做為每一級所需要的時間,如下圖所示。 在此階段中,原本未使用管線執行10個指令需要( )*10=570ns,而使用管線執行10個指令則需要(10-1)*15+75=210ns,增速只有570/210=2.7,因此,要使用管線來增加效能,必須配合指令分解動作的特性。 步驟所需時間不等 補充
101
管線危障 管線處理存在有一些問題,例如遇到跳躍指令時。在這個情況,管線中的指令應該要丟棄,但是,新的計算機設計已經克服大部分的缺點,有些新的 CPU 設計甚至能夠同時做數個擷取週期。 管線危障 使用管線改善效能時,除了必須盡量平衡每一級所花費的時間外,另一項更重要的考量是『每一級的獨立性』。 由於管線是同步作業,換句話說,對於5級的管線而言,每一個時間點內都有5個指令正在被執行且尚未完成某些步驟。 使用管線可能會遇到一種狀況,使得下一個指令無法在預定的時脈週期中被執行,此種情況稱之為危障(hazard)。 例如管線中的某一個指令恰好必須使用尚未完成指令的結果做為來源時,則會發生危障。 管線危障分為很多種類,而危障最簡單的解決方式就是暫停管線一個週期,但這將有損管線的整體效能 除此之外,專家們還發明了許多解決各種危障的方法,讀者若有興趣,可以參閱計算機結構專書。 p.120
102
一部計算機具有多重控制單元、多重算術邏輯單元和多重記憶體單元,這個想法稱為平行處理(parallel processing)。
平行處理的概觀是由 M. J. Flynn 所提出的分類。根據 Flynn 的觀點,平行處理可能發生在資料流、指令流或兩者皆是。 圖 計算機組織之分類 p.120
103
SISD 組織 單一指令流,單一資料流(single instruction-stream, single data-stream;SISD)組織表示計算機只有一個控制單元、一個算術邏輯單元和一個記憶體單元。指令依序地執行而且每個指令可以存取資料流中一個或多個資料項。 圖 SISD 組織 p.121
104
SIMD 組織 單一指令流,多重資料流(single instruction-stream, multiple data-stream;SIMD)組織表示計算機有一個控制單元、多重處理單元和一個記憶體單元。所有的處理單元接受來自控制單元的相同指令,但是對不同的資料項做運算,同時對一個陣列的資料做運算之陣列處理器就是屬於此類。 圖 SIMD 組織 p.121
105
MISD 組織 多重指令流,單一資料流(multiple instruction-stream, single data-stream;MISD)組織是有多個指令分別屬於多個不同的指令流,同時對同一個資料流做運算。MISD 的概念從未曾被實作過。 圖 MISD 組織 p.122
106
MIMD 組織 多重指令流, 多重資料流(multiple instruction-stream, multiple data-stream;MIMD)組織表示有多個指令分別屬於不同的多個指令流,同時對多個資料流做運算(一個指令對一個資料流)。在此結構中數項工作可同時被執行,此結構可使用單一共享記憶體或是多重記憶體區。 圖 MIMD 組織 p.122
107
平行處理 平行處理是另一種提昇電腦效能的方法,對於平行處理的電腦系統而言,一台電腦內或整個系統內的CPU不只一個,每一個CPU都可以獨立執行工作,而記憶體的部分則可以分為兩部分 一部份是配置給每一個CPU私用的記憶體,稱之為本地端記憶體(local memory) 另一部份則是供給所有CPU使用的公用記憶體,稱之為分享記憶體(share memory)。
108
平行處理 平行處理的電腦系統運作時,會將程式分割為許多片段,分別交由不同的CPU來執行,最後再將這些片段的執行結果統合在一起,完成整個工作。
最顯著的平行處理系統就是超級電腦,其特性為運用大量的硬體資源,解決需要大量計算的工作。 補充
109
平行處理 在圖中,您可以將分享記憶體視為一般的RAM,而將本地端記憶體視為CPU與RAM之間的Cache(可能直接作在CPU內部,也可能放置於CPU外部,但無論如何,它都只是該CPU獨享的記憶體)。 值得注意的是,由於各個CPU都可能使用分享記憶體,因此就會產生搶佔記憶體的問題,而加大Cache則可以減緩分享記憶體被搶奪而延緩效能的問題,但系統也必須保證Cache內的資料必須與RAM的資料一致。 常見的平行處理系統技術又分為SMP技術、MPP技術、COMA技術、叢集技術和NUMA技術等等。 補充
110
多核心技術 多核心CPU是目前CPU的主流,它是由平行處理概念而來,可提高CPU的產量。
回頭看平行系統的架構圖,每一個CPU都擁有屬於自己的本地端記憶體,而在多核心CPU中,每一個核心(Core)也有屬於自己專用的Cache記憶體。而將多個核心放置於單一個晶片中,稱之為CMP(Chip MultiProcessor)技術,其架構如圖。 補充
111
多核心的構想 多核心目前的作業系統大多為多執行緒作業系統。
所謂執行緒,即CPU執行程式的單位,同一個程式可能包含眾多執行緒,這些執行緒使用相同的程式,因此只需要記錄每一個執行緒的堆疊及程式計數器(Program Counter),就可於暫停後再度執行該執行緒,而完成多執行緒作業系統之功能。 補充
112
多核心技術 並行(Concurrency): 當系統內只有一個單核心CPU時,多執行緒作業系統是透過不斷地切換執行緒來達到多執行緒的功能,因為CPU一次只能執行一個執行緒。 平行(Parallelism):但當系統內不只一個單核心CPU時(如平行系統),它就可以一次執行很多個執行緒,因為每一個CPU都可以執行一個執行緒,因此較多CPU的系統得以提升產量。 補充
113
5.8 簡單的計算機 要解釋計算機的結構和它們的指令處理,我們介紹一個簡單(非實際存在)的計算機,如圖 5.30 所示。此簡單計算機有三個組成元件:CPU、記憶體和輸入∕輸出子系統。 CPU CPU 本身被區分成三部分:資料暫存器、算術邏輯單元(ALU)和控制單元。 資料暫存器 有 16 個具有十六進位位址 (0, 1, 2, ⋯, F)16 的 16 位元資料暫存器,稱為 R0 至 R15。 p.123
114
圖 簡單計算機的組成元件 p.123
115
控制單元 控制單元有控制 ALU 運算、存取記憶體和存取 I/O 子系統的電路。它還有兩個專屬的暫存器:程式計數器和指令暫存器。程式計數器(program counter;PC)只能保存 8 個位元,負責追蹤下一個要執行的是哪個指令。在每一個機器週期之後,程式計數器會遞增 1 以指到下一個程式指令。指令暫存器(instruction register;IR)保存一個 16 位元的值,其為目前週期之編碼過的指令。 p.124
116
主記憶體 主記憶體有 256 個 16 位元的記憶體位置,其二進位位址為( 到 )2 或十六進位位址 (00 到 FD)16,主記憶體保存資料與程式指令,前 64 個位置 (00 到 3F)16 是專屬於程式指令,記憶體位置 (40 到 FD)16 是用於儲存資料。 輸入∕輸出子系統 此子系統由一個鍵盤和螢幕所組成,但該子系統仍像是部分的記憶體位址。鍵盤(輸入設備)和螢幕(唯一輸出設備)運作就像分別的記憶體位置 (FE)16 和 (FF)16。 p.124
117
指令集 簡單計算機擁有 16 個指令的集合,每個計算機指令由兩個部分組成:運算碼(opcode)與運算元(operand)。運算碼指明要執行於運算元之運算類型,每個指令由 16 個位元區分成四個 4 位元的欄位所組成。最左邊欄位包含運算碼而其他三個欄位包含運算元或運算元的位址。 並非所有的指令都需要三個運算元,任何不需要的運算元欄位填入 (0)16。暫停指令的三個運算元欄位,和移動指令及NOT 指令的最後 欄位,都填 (0)16。 p.124
118
圖 格式與不同指令類型 p.125
119
表 5.4 簡單計算機指令之列表 p.125
120
有兩個加法指令: 一個是整數加法(ADDI) 與一個是浮點數加法(ADDF)。
ROTATE 指令的第三個欄位為 0,則此指令將暫存器 R 中的位元樣 式向右旋轉 n 個位置;如果第三個欄位為 1,則向左旋轉。指令中 也包含了遞增(INC)和遞減(DEC)指令。 p.126
121
處理指令 簡單計算機也使用機器週期的概念。一個週期由三個階段組成:擷取、解碼和執行。在擷取階段期間,由 PC 決定位址的指令從記憶體中取得並且載入到 IR 中,然後 PC 遞增以指到下一個指令。 在解碼階段期間,IR 中的指令被解碼並且從暫存器或記憶體中擷取所需要的運算元。在執行階段期間,指令被執行並且結果被放到適當的記憶體位置或暫存器中。一旦第三個階段完成後,控制單元會再度開始此一週期,但此時 PC 指在下一個指令。此一過程會持續直到 CPU 遇到 HALT 指令為止。 p.126
122
簡單計算機如何將兩個整數 A 和 B 相加並且產生結果 C。假設整數為 2 補數格式,此運算為:
一個範例 簡單計算機如何將兩個整數 A 和 B 相加並且產生結果 C。假設整數為 2 補數格式,此運算為: 要完成這簡單加法的簡單程式需要五個指令,如下所示: p.126
123
在簡單計算機的語言中,這五個指令可編碼為:
p.127
124
在第一週期的開始,PC 指到程式的第一個指令,其位於記憶體位置 (00)16。控制單元經過三個步驟:
週期 1 在第一週期的開始,PC 指到程式的第一個指令,其位於記憶體位置 (00)16。控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (00)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (1040)16 為 R0 ← M40。 3. 控制單元執行指令。 p.127
125
圖 週期 1 之狀態 p.128
126
在第二週期的開始,控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (01)16 的指令,並放置於
週期 2 在第二週期的開始,控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (01)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (1141)16 為 R1 ← M41。 3. 控制單元執行指令。 p.128
127
圖 週期 2 之狀態 p.128
128
在第三週期的開始,控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (02)16 的指令,並放置於
週期 3 在第三週期的開始,控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (02)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (3201)16 為 R2 ← R0 + R1。 3. 控制單元執行指令。 p.129
129
圖 週期 3 之狀態 p.129
130
1. 控制單元擷取儲存於記憶體位置 (03)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。
週期 4 控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (03)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (2422)16 為 M42 ← R2。 3. 控制單元執行指令。 p.129
131
圖 週期 4 之狀態 p.130
132
1. 控制單元擷取儲存於記憶體位置 (04)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。
週期 5 控制單元經過三個步驟: 1. 控制單元擷取儲存於記憶體位置 (04)16 的指令,並放置於 IR 中。此步驟之後,PC 值遞增。 2. 控制單元解碼指令 (0000)16 為 Halt。 3. 控制單元執行指令,這表示計算機停止。 p.130
133
圖 週期 5 之狀態 p.130
134
另一個範例 在實際的情況中,使用輸入設備例如鍵盤將前兩個整數鍵入記憶體中;而透過輸出設備例如螢幕來顯示第三個整數。藉由輸入設備來取得資料通常稱為讀取(read)運算;而將資料送至輸出設備通常稱為寫出(write)運算。欲使之前的程式更為實際,則需修改如下: p.131
135
在此計算機中可以使用 LOAD 和 STORE 指令來模擬讀取和寫出運算。讀取運算為:
寫出運算為: p.131
Similar presentations