Transcript Chapter 2

單元 2: IA-32 處理器架構
章節概要
•
•
•
•
•
基本概念
IA-32處理器架構
IA-32記憶體管理
IA-32微電腦的元件
輸出入系統
基本概念
•
•
•
•
基本的微電腦設計
指令執行週期
讀取記憶體
程式如何執行
基本的微電腦設計
• 時脈器 用於讓 CPU 內部運算與其他系統元件能同步運作。
• 控制單元 負責在執行機器指令時,協調所有相關步驟的順序。
• 算術邏輯單元 負責執行所有的算術運算和邏輯運算,其中算術運 算包括
加法與減法運算,邏輯運算包括 AND、OR 和 NOT 運算。
時脈器 (Clock)
• 每一個與 CPU 和系統匯流排相關的運算都是藉著一個
內部時脈器,以固 定速率送出脈衝來進行同步
• 機器指令的最基本時間單位稱為機器週期 (machine
cycle) 或 時脈週期 (clock cycle)。
• 時脈器是用來觸發動作的。
下一步是什麼?
•
•
•
•
•
基本概念
IA-32處理器架構
IA-32記憶體管理
IA-32微電腦的元件
輸出入系統
指令執行週期
PC
I-1
read
registers
registers
I-1
write
解碼
擷取運算元
執行
儲存輸出
fetch
decode
•
•
•
•
memory
op1
op2
write
• 擷取
program
I-2 I-3 I-4
flags
ALU
execute
(output)
instruction
register
多重管線操作
• Pipelining makes it possible for processor to execute
instructions in parallel
• Instruction execution divided into discrete stages
六階段無管線化的
指令執行過程
Pipelined Execution
• More efficient use of cycles, greater throughput of instructions:
六個階段都一直處
於使用狀態中。一
般 而言,對於 k 階
段的執行程序而言,
n 個指令須要 k +
(n - 1) 個時脈週期
的執行時間。
浪費掉的時脈週期 ( 陰影部份 )
• 當階段之一需要二或者更多的時脈周期的時候,時脈
周期再一次被浪費。
當階段數有 k 個
( 其中一個階段須
要 2 個週期 ) 時,
n 個指令將須要 (k
+ 2n - 1)個週期來
完成指令的執行
超純量架構
超純量架構處理器可以讓多個指令同時進入執行階段。
這裡假設階段 S4 須要兩個時脈週期。其中編號為奇數的指
令進入u管線,編號為偶數的指令則進入v管線。
n 個指令可以在 (k
+ n) 個時脈週期內
完成,其 中 k 代表
管線的階段數。
讀取記憶體
•
•
•
•
從記憶體讀取指令或資料須要幾個步驟,而這是由處理器內部時脈所控制,其步驟是:
週期 1:記憶體運算元的位址位元被送到位址匯流排 (ADDR) 上。
週期 2:讀取線路 (RD) 設定在低位狀態 (0),以便告知記憶體要讀取一個儲存值。
週期 3: CPU 等待一個時脈週期讓記憶體回應。在此週期期間,記憶體控制器將運算
元放 到資料匯流排 (DATA)。
•
週期 4:讀取線路變成 1,告知 CPU 去讀取在資料匯流排上的資料。
快取記憶體
• 高速的和靜止的隨機存取記憶體兩者都在中央處理器
內外。
• Level-1 cache: 在中央處理器裡
• Level-2 cache: 在中央處理器外
• Cache hit:當是閱讀的資料在快取記憶中的時候
• Cache miss:當是閱讀的資料不在快取記憶中的時候
程式如何執行
User
sends program
name to
Operating
system
gets starting
cluster from
searches for
program in
returns to
System
path
loads and
starts
Directory
entry
Current
directory
Program
多工
•
•
•
•
作業系統能夠同時執行多個任務。.
相同任務裡同時執行多條線。
將 CPU 時間切割以後分配給每個執行緒。
任務的迅速切換。
• 所有程式同時執行的錯覺。
• 處理器一定要支援切換的任務。
IA-32處理器架構
•
•
•
•
運作模式
基本執行環境
浮點運算單元
ntel微處理器沿革
運作模式
• 保護模式
• Windows、 Linux
• 實體位址模式
• MS-DOS
• 系統管理模式
• 系統管理模式提供作業系統額外的機 制,用於增加像電
源管理和系統安全等功能。
• 虛擬8086模式
• 混合著保護模式
• 每個程式都是各別執行的
基本執行環境
•
•
•
•
•
•
位址空間
通用暫存器
基本的程式執行暫存器
特殊用途
狀態旗標
浮點運算單元 , MMX, XMM registers
位址空間
• 保護模式
• 4 GB
• 32位元位址
• 真實位址與虛擬8086模式
• 1 MB的記憶體區域
• 20位元位址
通用暫存器
CPU 內部的高速儲存空間,它是設計用來以遠高於一般記
憶體的 速度進行存取的動作。
Accessing Parts of Registers
• Use 8-bit name, 16-bit name, or 32-bit name
• Applies to EAX, EBX, ECX, and EDX
Index and Base Registers
• 通常都會使用到下圖所示的 16 位元暫存器:
特殊用途 (2之1)
• 泛用型
•
•
•
•
•
EAX – 累加器
ECX – 回圈計數器
ESP – 址疊指標
ESI, EDI – 索引暫存器
EBP –延伸框架指標暫存器。
• 區段
•
•
•
•
CS – 密碼區段
DS – 資料區段
SS – 堆疊區段
ES, FS, GS – 附加區段
特殊用徒 (2之2)
• EIP – 指令指標
• EFLAGS
• 控制和狀態旗標
• 每個旗標是二進位的位元
狀態旗標
•
進位
•
• 在無號數算術運算的結果值大於目的位址所能儲存的值時,此旗 標
會被設定。
溢位
•
• 在有號數的算術運算結果值太大或太小,因而無法正確儲存 於目的
位址時,此旗標將會被設定。
符號
• 在算術或邏輯運算後產生負值的結果時,此旗標會被設定。
• 零值
• 在算術或邏輯運算後產生零值的結果時,此旗標會被設定。
• 輔助進位
• 當一個 8 位元運算元在算術運算中,其第三位元 有進位到第四位
元時,此旗標會被設定。
• 同位
• 如果在結果中的最小有效位元組含有偶數個 1 的位元數,則此旗
標會被設定。
浮點運算單元 , MMX, XMM 暫存器
• Eight 80-bit floating-point data registers
• ST(0), ST(1), . . . , ST(7)
• 安排於堆疊中
• 全部使用浮點運算
• MMX 指令集配合使用的八個 64 位
元暫存器
• 八個 128 位元 XMM 暫存器,供單指令多資
料 (Single-Instruction Multiple-Data, SIMD)
運算使 用。
Intel微處理器沿革
•
•
•
•
Intel 8086, 80286
IA-32處理器族系
P6處理器族系
CISC和RISC
早期的Intel微處理器
• Intel 8080
• 64K 位址記憶體
• 8-bit 暫存器
• CP/M 操作系統
• S-100 匯流排構造
• 8吋 磁片
• Intel 8086/8088
• IBM電腦使用8088
•
•
•
•
1 MB 位址記憶體
16-bit 暫存器
16-bit 資料匯流排 (8088是8-bit)
單獨的浮點運算單元 (8087)
The IBM-AT
• Intel 80286
• 16 MB 的定址記憶體
• Protected memory
• 快速的超越過8086
• 介紹 IDE 匯流排的架構
• 80287 浮點運算單元
Intel IA-32 Family
• Intel386
• 4 GB 定址記憶體, 32-bit 暫存器, 分頁
(虛擬記憶體)
• Intel486
• 具備運用管線操作技術的微架構指令集
• Pentium
• 超純量架構, 32-bit 定址匯流排, 64-bit內部
資料路徑
Intel P6處理器族系
• Pentium Pro
• 使用先進的技術來改善指令執行的方式。
• Pentium II
• 加入 MMX 技術。
• Pentium III
• 將 SIMD 引入 IA-32 族系,它具有設計用於快速搬移
大量的資料的特殊 128 位元暫存器, 其中 SIMD 是
一種資料流延伸方式。
• Pentium 4 和 Xeon
• 使用的是 NetBurst 微架構,它讓處理器可以在比以
往 IA- 32 處理器更快的速度下運作。
CISC 和 RISC
• CISC – 複雜指令集
• 指令集是很大
• 高階層的操作
• 需要微碼寫成的直譯器
• 例如: Intel 80x86 族群
• RISC –精簡指令集
• 以快速執行的簡短指令所組成
• 小的指令集
• 由硬體直接解碼和執行指令。
• 例如:
• ARM (高等 RISC 機器)
• DEC Alpha (now Compaq)
下一個是什麼?
•
•
•
•
•
基本概念
IA-32處理器架構
IA-32記憶體管理
IA-32微電腦的元件
輸出入系統
IA-32記憶體管理
•
•
•
•
•
實體位址模式
計算線性位址
保護模式
多區段模式
分頁
實體位址模式
•
•
•
•
最大 1 MB 定址記憶體
應用程式能存取於記憶體的任何區域
單一任務
藉著 MS-DOS 操作系統支援
區段記憶體
區段記憶體位址:
•16 位元區段值,此數值會放置在區段暫存器 (CS,DS,ES,SS) 其中一個。
•16 位元位移值。
一部份
計算線性位址
• 會先將區段值乘以 16,亦即乘以十六進位的 10,然
後 再將此乘積值加上變數的位移值:
• 例如: 轉換 08F1:0100 成一個線性位址
輪到你…
位移式位址是028F:0030,相當於線性位址的多少?
028F0 + 0030 = 02920
總是使用十六進位表示法作為位址。
輪到你 . . .
線性位址是 28F30h 相當於多少的區段位址??
許多不同的區段-位移式位址可產生線性址為 28F30h.
例如:
28F0:0030, 28F3:0000, 28B0:0430, . . .
保護模式 (二之1)
• 4 GB 位址記憶體
• (其位址從00000000 至 FFFFFFFFh)
• Each program assigned a memory partition which
is protected from other programs
• 多工化設計
• 支援 Linux & MS-Windows
保護模式 (二之2)
• 區段描述符表
• 程式結構
• 編碼,資料和堆疊區域
• CS, DS, SS 描述符表
• 全域描述符表 (GDT)
• MASM 程式使用微軟平直記憶體模式
平直分段模式
• 全域描述符表 (GDT).
• 所有的區段都會映射到電腦中的整個 32 位元實體位址
空間
多區段模式
• 每個任務或程式都會擁有自己的局部描述符表
• 每個描述符所指向的區段,會不同於其他行程所用的 區段。
分頁
• 直接被中央處理器所支援
• 以將記憶體區段切分成若干個 4,096 位元組的區塊,
即所謂的頁面
• 分頁可以讓在同一時間執行的全部程式,使用的記憶
體總和遠大於電腦的實體記憶體。
• 當任務在執行時,目前沒有使用到的部份可以儲存在
硬碟上。
• 虛擬記憶體管理員 (VMM) – 處理資料或程式碼頁面的
載入載出。
• 分頁錯誤 –當資料或程式碼的頁面載入回到記憶體中
時,中央處理器會發出分頁錯誤的訊號
What's Next
•
•
•
•
•
基本概念
IA-32處理器架構
IA-32記憶體管理
IA-32微電腦的元件
輸出入系統
IA-32微電腦的元件
•
•
•
•
主機板
視訊輸出
記憶體
輸出入埠和裝置介面
主機板
•
•
•
•
•
•
•
CPU 插座
外部快取記憶體插槽
主記憶體的插槽
BIOS 晶片
聲音合成器晶片 (可選擇)
影像控制晶片 (可選擇)
IDE,平行、序列連接器,USB, Video,鍵盤, 遊戲操縱桿,
網路和滑鼠連接處
• PCI 匯流排連接處 (擴充卡)
Intel D850MD主機板
影像
滑鼠, 鍵盤,平行, 序列和
USB 連接處
音效晶片
PCI槽
記憶控制中樞
Pentium 4 插座
AGP槽
dynamic RAM
固件中樞
I/O 控制器
揚聲器
電池
電源連接處
磁碟機連接處
Source: Intel® Desktop Board D850MD/D850MV Technical Product
Specification
IDE 驅動連接處
影像輸出
• 影像控制器
• 在主機板上,或在擴充卡。
• AGP (accelerated graphics port technology)*
• 影像記憶體(VRAM)
• CRT 顯示影像
• 器使用光柵掃瞄
• 水平回掃
• 垂直回掃
• 數位 LCD 監視器
• 不須要進行光柵掃瞄。
影像控制器樣本 (ATI 公司)
• 128-bit RAGE™128PRO的3D立體
圖形表現裝置
• 3D立體圖形表現
• Intelligent TV-Tuner with
Digital VCR
• TV-ON-DEMAND™
• Interactive Program Guide
• Still image and MPEG-2 motion
video capture
• Video editing
• Hardware DVD video playback
• Video output to TV or VCR
記憶體
•
ROM
• 唯讀記憶體
•
EPROM
• 可抹寫程式化唯讀記憶體
• 動態隨機存取記憶體 (DRAM)
• 的價錢不貴,但是必須在小於微秒的週期內加以刷新其內
容,否則其儲存的資料會遺失。
• 靜態隨機存取記憶體 (SRAM)
• 主要用於當作昂貴的快取記憶體。它不須要持續地刷新 其
儲存內容。
• 視訊隨機存取記憶體 (VRAM)
• 採用雙埠的設計,當其中一個埠 在持續更新螢幕上的資料
的同時,另一個埠則負責寫入即將要顯示的資料。
•
CMOS RAM
• 互補式金屬氧化半導體
• 系統設定資訊
輸出入埠和裝置介面
• USB (通用序列匯流排 )
• 聰明且高速的連接方式
• USB 2.0 版支援的資料傳輸速率達到每秒 480 MB
• 連接具有一個以上的週邊,但卻分享同一個 USB
埠的複合裝置。
• 列舉類型:電腦置於懸置狀態
• 支援hot的連結
• 平行埠
• 資料 可以在短距離內迅速地傳遞
• 對於印表機來說是普通的裝置
• 雙向傳遞,電腦傳送資料給設備,同時也能從設備
接收到相關資訊。
• Intel 8255 控制晶片
輸出入埠和裝置介面(內容)
• 序列
•
•
•
•
•
RS-232 序列埠
一次只能傳送一個二進位位元
使用較長的電纜和數據機
16550 UART (通用非同步收發器 )
用程式語言來規劃的
What's Next
•
•
•
•
•
基本概念
IA-32處理器架構
IA-32記憶體管理
IA-32微電腦的元件
輸出入系統
多階層程式設計
• 第 3 層: 呼叫函式庫的函式來執行一般的文字 I/O 和以檔案為基
礎的 I/O。例如本書就有附贈 這樣的函式庫。
• 第 2 層: 呼叫作業系統函式來執行一般的文字 I/O 和以檔案為基
礎的 I/O。如果作業系統使用 的是圖形化使用者介面,則它會具
有能以與裝置無關的方式顯示圖形的功能。
• 第 1 層: 呼叫 BIOS 函式,以便控制目標裝置獨有的特性,像是
色彩、圖形、音效、鍵盤輸 入及低階磁碟輸出入。
• 第 0 層: 從硬體的層次發送和接收資料,此過程對目標裝置具
有絕對的控制權。
顯示一連串的字元
應用程式的某個敘
述呼叫了一個 HLL
函式庫的函式,以
便將某個字串寫到
標準輸出。
ASM 階層設計
ASM 下列階層可以表現出程式的輸出入:
摘要
•
•
•
•
•
•
•
•
•
•
中央處理器 (CPU)
算術邏輯單元 (ALU)
命令執行周期
多工
浮點運算單元 (FPU)
以複雜指令集
實體模式和保護模式
主機板組件
記憶體類型
輸出/輸入和存取階層