第1章 背景
簡介系統軟體和整體架構
系統軟體和機器架構之關係
簡化指令電腦(SIC)
電腦架構範例
系統軟體是由許多支援電腦運作的程式所組成的。
使用者只需關注應用程式或問題的解決方案,不必知 道電腦內部的運作細節。
組合語言(assembler language)撰寫程式,並且使用 巨集指令(macro instructions)來讀取或寫入資料,
或是執行其他的高階功能。
使用具備巨集處理器(macro processor)的組譯器
(assembler),將這些程式轉換成機器語言。
轉換後的機器碼,可藉由載入器或連結器以置入系統 中準備執行。
使用除錯器來偵測程式的錯誤。
簡介
組譯器
載入器
連結器
巨集處理器
編譯器
作業系統
資料庫管理系統
文字編輯器以及互動式除錯系統
系統軟體和應用軟體最大的不同,就是與機器的相關 性
系統程式是為了要支援電腦的運作並且供電腦本身的 使用,而不是支援特定的應用
系統程式通常與其執行機器的架構是有密切的關係: 組 譯器, 編譯器,作業系統
有許多的系統軟體並不是與其所支援電腦系統的類型 有直接的關係。例如,組譯器的一般設計和邏輯
1.2 系統軟體和機器架構
為了方便說明系統程式基本功能及避開真實機器的特 殊設計,透過簡化的指令計算機(SIC)討論。
SIC 是一種假想的電腦,其設計包括了大部分真實機 器中常見的特性,而避免掉一些不適當的獨特性質。
1. 在任何此類軟體的範例中,都能找到的基本功能。
2. 與機器架構有緊密關係的特性。
3. 在實作這種類型軟體時,其他與機器無關的共通特性。
4. 建構特殊軟體的主要設計考量。例如,單階段或是多階段處理。
5. 真實機器上的實作範例,著重不常使用的軟體特性,以及與機器 相關的特性。
本課程介紹各式系統軟體方式如下:
簡化指令電腦(SIC-simplified instruction computer):
用來說明硬體所具備的特性和概念,並可以避免真 實機器上大部份的特殊性質。
記憶體、暫存器、資料格式、指令格式、定址模 式、指令集、輸出與輸入。
SIC的版本:
標準版本
XE 版本(extra equipment or extra expensive)
1.3 簡化指令電腦(SIC)
記憶體
記憶體是由長度為八個位元的位元組(bytes)所組 成;連續三個位元組形成一個字組(word,24 個位 元)
所有的位址都是位元組位址(byte address);字組 的位址是以最低位之位元組的位址來表示
電腦記的憶體共有32,768(215)個位元組。
1.3.1 SIC機器架構
1.3 簡化指令電腦(SIC)
暫存器
5 Registers (24 bits)
Mnemonic (助記憶符號)
Number (編號)
Special use (用途)
A 0 累加暫存器:供算術運算
X 1 索引暫存器:用來定址
L 2 連結暫存器:跳到副程式指令(jsub)
PC 8 程式計數:儲存下一個即將存取的指令位址
SW 9 狀態字組:包含各種資訊和條件碼(CC)
1.3.1 SIC機器架構
1.3 簡化指令電腦(SIC)
資料格式
整數是以24 位元的二進制值來表示;並以二的補數 來表示其負數。(integer size)
+3=00000011, -3 =11111100+1=11111101
字元是以8 位元的ASCII 碼來表示(附錄B)。
在標準版的SIC 中,沒有硬體的浮點運算器。
1.3.1 SIC機器架構
1.3 簡化指令電腦(SIC)
指令格式
8 1 15
Opcode (運算碼) x Address (位址)
表示索引定址模式
定址模式
兩種定址模式
模式 指示 Target address (TA)計算
Direct(直接定址) x=0 TA=address
Indexed(索引定址) x=1 TA=address+(X)
索引暫存器的內容 TA: Target Address (目標位址)
1.3.1 SIC機器架構
1.3 簡化指令電腦(SIC)
指令集
載入和儲存暫存器:
LDA、LDX、STA、STX
整數算數運算指令:
ADD、SUB、MUL、DIV9 所有算術運算都是針對暫存器A與記憶體內容做運算。
9 運算結果存於暫存器A中。
比較:COMP
9 將暫存器A 中的值與記憶體中的一個字組比較,將結果設定在一
個條件碼(CC)中(<, =, >)。
條件跳躍指令:
JLT(<)、JEQ(=)、JGT(>) 9 測試條件碼(CC)的值,根據其結果跳躍。
副程式連結:
JSUB、 RSUB9 JSUB 跳躍到副程式中,將返回位址放到暫存器L 中。
9 RSUB 跳到暫存器L中所儲存的位址(由副程式回返) 。
1.3.1 SIC機器架構
1.3 簡化指令電腦(SIC)
輸入和輸出
在標準SIC版本中,輸入和輸出的運作是從暫存器A最右邊的
八個位元開始
每個裝置都具有一組八位元的裝置碼
SIC系統共有三個I/O指令
9 裝置測試(Test Device, TD)
9 讀取資料(Read Data, RD)
9 寫入資料(Write Data, WD)
1.3.1 SIC機器架構
1.3 簡化指令電腦(SIC)
記憶體
最大可用記憶體為1 M位元組(220位元組)。
額外暫存器(除A,X,L,PC,SW暫存器外)
助記符號 編號 特定用途
B 3 基底暫存器:用於定址
S 4 一般工作暫存器
T 5 一般工作暫存器
F 6 浮點累加器(48個位元)
1.3.2 SIC/XE機器架構
1.3 簡化指令電腦(SIC)
資料格式(XE)
整數與文字同SIC
另外提供48bits浮點資料型式
1.3.2 SIC/XE機器架構
1.3 簡化指令電腦(SIC)
•
分數值必須介於0~1之間
•
分數值第一個值必須為1
•
指數的值介於0~2047之間
分數 (f) (e)
指令格式
記憶體擴大
1.3.2 SIC/XE機器架構
1.3 簡化指令電腦(SIC)
e=0
e=1
定址模式
計算目標位址TA
TA使用方式
1.3.2 SIC/XE機器架構
1.3 簡化指令電腦(SIC)
範例: (附錄A)
1.3.2 SIC/XE機器架構
1.3 簡化指令電腦(SIC)
00 is the op code of LDA
opcode n i x b p e disp TA (A) 000000 1 1 0 0 1 0 0110 0000 0000
6 0 0 格式三
相對程式計數器 SIC/XE
TA=(PC)+disp= 3000+600=3600
000000 1 1 0 0 1 0 0110 0000 0000 0 3 2 6 0 0
opcode n i x b p e disp TA (A)
000000 1 1 1 1 0 0 0011 0000 00003 0 0 格式三
相對基底 SIC/XE
TA=(B)+disp+(X)= 6000+300+90=6390 x=1, 則計算TA時加上
000000 1 1 1 1 0 0 0011 0000 0000 0 3 C 3 0 0
A=10 B=11 C=12
Addressing Mode (XE)
Addressing Mode (XE)
Addressing mode
Direct b=0, p=0 TA=disp
Index x=1 TAnew=TAold+(X)
Index+Base relative x=1, b=1, p=0 TA=(B)+disp+(X)
Index+PC relative x=1, b=0, p=1 TA=(PC)+disp+(X)
Index+Direct x=1, b=0, p=0 TA=disp+(X)
Format 4 e=1
Summary of addressing modes
n i x b p e 0 1
Format 3 Format 4
0 Format 3, base relative 1 0
0 Format 3, pc relative 0 1
0/1 Format 3/4, disp is TA, direct 0 0
1
0 immediate (TA: operand) 0
1 indirect (TA: address of address) simple (TA: address of operand) 1 index
1 1
指令集
新的暫存器:LDB、STB
浮點算數運算:ADDF、SUBF、MULF、DIVF
暫存器移動:RMD
暫存器的算數運算:ADDR、SUBR、MULR、D1VR
監督呼叫指令: SVC
9執行中斷工作,以便和作業系統溝通(第六章)
1.3.2 SIC/XE機器架構
1.3 簡化指令電腦(SIC)
輸出和輸入
SIO、TIO和HIO指令可以用來啟始、測試和暫停I/O 通道的運作(第六章)。
1.3.3 SIC程式設計範例
資料搬移運算程式
SIC
SIC/XE
1.3.3 SIC程式設計範例
算術運算程式
SIC
算術運算程式
SIC/XE
1.3.3 SIC程式設計範例
迴圈和索引運算程式 1
SIC (string copy)
1.3.3 SIC程式設計範例
X denotes the index of the string array
迴圈和索引運算程式 1
SIC/XE
1.3.3 SIC程式設計範例
迴圈和索引運算程式 2
SIC (GAMA=ALPHA+BETA)
1.3.3 SIC程式設計範例
Array with 100 elements
1.3.3 SIC程式設計範例
迴圈和索引運算程式 2
SIC/XE
1.3.3 SIC程式設計範例
輸入及輸出運算
SIC
1.3.3 SIC程式設計範例
副程式呼叫及讀取輸入資料
SIC
1.3.3 SIC程式設計範例
副程式呼叫及讀取輸入資料
SIC/XE
Traditional (CISC) Machines
Complex Instruction Set Computers (CISC)
complicated instruction set
different instruction formats and lengths
many different addressing modes
e.g. VAX or PDP-11 from DEC
e.g. Intel x86 family
Reduced Instruction Set Computer (RISC)
RISC Machines
RISC system
Instruction
standard, fixed instruction format
single-cycle execution of most instructions
memory access is available only for load and store instruction
other instructions are register-to-register operations
a small number of machine instructions, and instruction format
Instructional-level parallelism
A large number of general-purpose registers
A small number of addressing modes
Three RISC machines
SPARC family
PowerPC family
Cray T3E