Computer System Overview

Download Report

Transcript Computer System Overview

電腦系統概論
Computer System Overview
第1章
1
作業系統
Operating System
• 利用一個或一個以上的處理器(Processor)
硬體資源(Hardware Resource)
• 為系統使用者提供一組服務
• 管理輔助記憶體(Secondary Memory)與
I/O(輸入/輸出)
2
基本要素
Basic Elements
• 處理器(Processor)
– 中央處理器(Central Processing Unit, CPU)
• 主記憶體(Main Memory)
– 儲存執行中的程式與資料
– 暫存性的(Volatile)
– 被稱為真實記憶體(Real Memory)或主要記憶體
(Primary Memory)
3
基本要素-1
Basic Elements
• I/O模組(I/O Modules)
– 電腦對外界輸出或輸入資料
– 輔助記憶體裝置(Secondary Memory): 磁碟
– 通訊設備: 網路
– 終端機
• 系統匯流排(System Bus)
– 處理器、主記憶體與I/O模組之間的通訊
4
處理器
Processor
• 兩套內部暫存器
– 記憶體位址暫存器 (Memory Address Register,
MAR)
• 下一次讀寫的記憶體位址
– 記憶體緩衝暫存器 (Memory Buffer Register,
MBR)
• 將要寫入記憶體的資料
• 剛剛才從記憶體讀入資料
– I/O位址暫存器(I/O Address Register, I/O AR)
– I/O緩衝暫存器(I/O Buffer Register, I/O BR)
5
頂層元件
Computer Components: Top-Level View
6
處理器內的暫存器
Processor Registers
• 使用者可見的暫存器(User-Visible Registers)
– 令程式設計師可以將存取主記憶體的次數減至
最少
• 控制與狀態暫存器(Control and Status
Registers)
– 處理器用它們來控制本身的運作
– 具有特別權限的作業系統常式,利用它們來控
制程式的執行
7
使用者可見的暫存器
User-Visible Registers
• 可透過機器語言(Machine Language)來參照
• 一般程式都可使用此類暫存器,包括應用
程式與系統程式
• 暫存器種類
– 資料(Data Register)
– 位址(Address Register)
• 索引(Index Register)
• 區段指標(Segment Register)
• 堆疊指標(Stack Pointer)
8
使用者可見的暫存器-1
User-Visible Registers
• 位址暫存器(Address Register)
– 索引(Index Register)
• 針對一個基底值加上索引值,來計算出有效位址
• 陣列(Array)
– 區段指標(Segment Register)
• 記憶體被分割為許多區段,存取記憶體時需要使用
區段和位移值
– 堆疊指標(Stack Pointer)
• 指到堆疊的頂端
9
資料單位
• 位元 Bit: 0 或 1 兩種值
• 位元組 Byte:8 bits
• 字組 Word:與CPU內的資料暫存器相當
– 32 位元電腦: 1 Word = 32 Bits
– 64 位元電腦: 1 Word = 64 Bits
•
•
•
•
1 K (Kilo) = 210 = 1,024 ≈ 一千 (103)
1 M (Mega) = 220 = 1,048,576 ≈ 一百萬 (106)
1 G (Giga) = 230 = 1,073,741,824 ≈ 十億 (109)
1 T (Tera) = 240 = 1,099,511,627,776 ≈ 一兆 (1012)
10
堆疊 Stack
• 後進先出 LIFO
• 兩個動作:
– PUSH 推入
– POP 彈出
PUSH
POP
Stack
Pointer
11
控制與狀態暫存器
Control and Status Registers
• 程式計數器 (Program Counter, PC)
– 內容是將要被擷取的指令位址
• 指令暫存器 (Instruction Register, IR)
– 內容是最近一個擷取到的指令
• 程式狀態字組 (Program Status Word, PSW)
– 狀態碼(Condition Codes) 或『旗標』(Flags)
– 中斷啟動 / 關閉(Interrupt Enable/Disable)
– 監督者 / 使用者模式(Kernel Mode/User Mode)
12
控制與狀態暫存器-1
Control and Status Registers
• 狀態碼或旗標(Condition Codes/Flags)
– 處理器硬體在運算結束後所設定的位元
– 例如,反映數學運算的結果
•
•
•
•
結果是正數(Number is positive)
結果是負數(Number is negative)
結果是零(Number is zero)
溢位(Overflow)
13
指令執行
Instruction Execution
• 兩個步驟
– 擷取(Fetch):處理器從記憶體中讀取指令
– 執行(Execute):處理器執行每個指令
• 指令週期(Instruction Cycle)
– 處理器執行一個指令的過程
– 不斷地重複、循環
14
指令週期
Instruction Cycle
Fetch Stage
Execution Stage
15
指令的擷取與執行
Instruction Fetch and Execute
• 處理器從記憶體擷取一個指令
• 程式計數器 (PC) 的內容:
– 下一個要擷取的指令位址
– 程式計數器每次擷取指令後都會加一
16
指令暫存器
Instruction Register
• 所擷取的指令被載入指令暫存器(IR)
• 分類
– 處理器-記憶體
• 資料在處理器與記憶體之間傳輸
– 處理器-I/O
• 資料可以傳送至週邊設備,或接收自週邊設備
– 資料處理
• 對資料執行一些算數或邏輯運算
– 控制
• 更改執行順序
17
18
19
二進位、十進位、十六進位
Binary, Decimal, Hexadecimal
DEC
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BIN
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
HEX
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
十六進位轉二進位再轉十進位:
FF  1111 1111  27  26  25  2 4  23  2 2  21  20
 128  64  32  16  8  4  2  1
 255
20
直接記憶體存取
Direct Memory Access(DMA)
• I/O模組直接與記憶體進行資料交換
• 處理器允許I/O模組讀寫記憶體
• 減輕處理器的負擔
21
中斷
Interrupt
• 暫時打斷處理器的正常作業,讓處理器去
處理緊急事件
• 大多數的I/O裝置速度比處理器慢很多,處
理器與I/O裝置來往,浪費很多時間等待
– 設定中斷:
• 處理器對I/O裝置說:等你準備好了,再叫我,我先
忙別的事情去了
– 發生中斷:
• I/O裝置對處理器說:我準備好了,請你快來幫我處
理一下
22
速度上的差異
• CPU:GHz 每秒大約可以執行 1 Giga 個指令
• 硬碟: KHz,和 CPU 差一百萬倍以上
– 硬碟速度的評估:
• 傳輸速度:讀取/寫入資料的速度
• 搜尋速度:讀寫臂在磁柱(Cylinder)間移動的速度
• 旋轉時間:磁盤轉半圈所需的時間
– 轉速 7200 RPM,亦即每秒轉 7200 圈,轉半圈約需:
60/7200/2 ≈ 0.004 = 4 ms
23
24
④ 準備 I/O
⑤ 傳輸資料
使用者程式一旦寫入指令
(WRITE),便開始執行 I/O
程式時,整台電腦都在等
I/O 做完,總共等了 :
④+⑤+④+⑤
25
X 為中斷發生點
使用者執行 WRITE 後,
不等 I/O 完畢,立即繼續
執行後續的指令。
I/O 程式以中斷的方式,
打斷使用者程式的執行,
取得CPU的執行時間
26
I/O 等待時間較長
發生第二個WRITE時,第
一個WRITE尚未完成。
必須等待第一個WRITE完
畢,才能夠提出第二個
WRITE。
27
中斷處理常式
Interrupt Handler
• 服務特定I/O裝置的程式
• 通常是作業系統的一部分
28
29
加入中斷的指令週期
Instruction Cycle with Interrupts
Interrupt Stage
30
加入中斷的指令週期-1
Instruction Cycle with Interrupts
• 處理器會查看是否有任何中斷發生
• 若沒有任何中斷,則擷取目前程式的下一
個指令
• 如果已發生中斷(等待服務),則處理器
暫停執行目前的程式,並執行中斷處理常
式
31
Short I/O Wait
I/O 等待時間較短
32
Long I/O Wait
I/O 等待時間較長
此時已經執行第二
個WRITE,必須等
第一個WRITE結束
33
中斷處理
Interrupt Processing
• 中斷的發生,觸發許多事件,處理器硬體
和軟體都被牽動
34
35
發生中斷時記憶體和暫存
器所產生的變化
36
多重中斷處理
Multiple Interrupts
• 當處理器正在處理中斷時,忽略其它送至處理器的中斷信號
37
多重中斷處理-1
Multiple Interrupts
• 定義中斷的優先順序等級
38
多重中斷處理-2
Multiple Interrupts
39
多元程式處理
Multiprogramming
• 處理器有多支程式需要執行
• 程式的執行次序
– 程式優先順序的高低
– 是否正在等待I/O動作完成
• 在中斷處理常式結束時,控制權未必會馬
上交回給前一次被中斷的使用者程式
– 等待中的程式不只一支,優先順序較高先執行
40
記憶體階層架構
Memory Hierarchy
•
•
•
•
存取時間越快,則每位元的價格就越高
容量越大,則每位元的價格越低
容量越大,則存取時間越長
主記憶體觀察:
– 創見 JetRam,規格
41
記憶體階層架構-1
Memory Hierarchy
42
深入記憶體階層架構
•
•
•
•
每位元的價格越來越低
容量越來越大
存取時間越來越長
記憶體被處理器存取的頻率越來越低
– 參照區域性(Locality of Reference)
– 快取(Cache)
43
兩層式記憶體架構
• 揮發性(Volatile)
– 一旦停止供電,儲存在其中的資料立即消失
• 非揮發性(Non-Volatile)
– 即使關掉電源,儲存在其中的資料也不會消失
• 輔助記憶體(Secondary Memory/Auxiliary
Memory)
– 用來儲存程式與資料檔案
44
磁碟快取
Disk Cache
• 用一部份的主記憶體容量當作磁碟資料暫
時的緩衝區
• 磁碟所寫入的位址有集中的特性
• 程式要寫出去到磁碟的某些資料,可能很
快就會被參考到,此時從磁碟快取讀取會
比較快
• 觀察:硬碟規格
45
快取記憶體
Cache Memory
• 以額外的高速記憶體提昇系統效能
– 速度快=>貴=>容量小
• 區域性原則(Locality)
– 有些處理器將指令快取和資料快取分開
46
快取記憶體-1
Cache Memory
47
快取記憶體-2
Cache Memory
• 包含主記憶體某部份的內容
• 處理器先檢查快取
• 如果在快取中找不到,則包含該資料的主
記憶體區塊會先被搬移至快取,然後再傳
送給處理器
• Cache HIT 需要的資料在快取中找到
• Cache MISS 需要的資料不在快取中
48
快取/主記憶體結構
50
快取記憶體設計原則
Cache Design
• 快取大小(Cache Size)
– 小小的快取對系統效能卻有很重大的影響
• 區塊大小(Block Size)
– 快取與主記憶體之間資料交換的單位
– 當區塊的大小逐漸增大時,讀取的命中率(Hit
Ratio)一開始會逐漸增加,最後會降低
51
快取記憶體設計原則-1
Cache Design
• 對應函數(Mapping Function)
– 決定區塊該放在快取的哪個位置
• 置換演算法(Replacement Algorithm)
– 選擇被置換的區塊
– 近來最少使用演算法(Least Recently Used, LRU)
52
快取記憶體設計原則-2
Cache Design
• 寫入原則(Write Policy)
– 何時真正進行記憶體寫入動作
– 每次區塊內的資料有更動就馬上進行
– 只有當區塊被置換才進行
• Dirty: 快取內某塊資料已經被修改過,但是尚未寫回
主記憶體
• 將記憶體寫入動作次數減至最低
• 這會讓主記憶體的內容一直是過時的狀態
53
I/O 通訊技術
I/O Communication Techniques
• 程式化控制I/O(Programmed I/O)
• 中斷驅動I/O(Interrupt-Driven I/O)
• 直接記憶體存取(Direct Memory Access, DMA)
54
程式化控制I/O
• 是由I/O模組來執行動作,
而不是處理器
• 在I/O狀態暫存器中設定
適當的位元
• 不會對處理器發出中斷
• 處理器必須定期查看,
直到I/O工作真的完成為
止
55
中斷驅動I/O
• 當I/O模組準備好要交換資
料時,再對處理器發出中斷
請求
• 處理器儲存程式目前的狀態
資訊 (context),並開始執行
中斷處理常式
• 沒有不必要的等待
• 會耗費處理器許多時間,因
為每個字組的讀寫動作都必
須透過處理器
56
直接記憶體存取
• 直接傳輸一整塊資料進
出記憶體
• 傳輸動作完成時發出中
斷信號
• 處理器繼續做別的事
57