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) 以複雜指令集 實體模式和保護模式 主機板組件 記憶體類型 輸出/輸入和存取階層