和奔騰系列微處理器原理初步.ppt
《和奔騰系列微處理器原理初步.ppt》由會員分享,可在線閱讀,更多相關(guān)《和奔騰系列微處理器原理初步.ppt(64頁珍藏版)》請在裝配圖網(wǎng)上搜索。
2 8086和奔騰系列微處理器原理初步 2 18086的編程結(jié)構(gòu)2 28086的引腳信號和工作模式2 38086的存儲器編址2 4奔騰系列微處理器特點 微 第2章 本章學(xué)習(xí)要求 1 掌握8086CPU的內(nèi)部結(jié)構(gòu) 3 掌握8086CPU的兩種工作模式 2 掌握8086CPU對存儲器的分段管理的基本概念 4 了解奔騰系列微處理器的特點 2 18086CPU的內(nèi)部結(jié)構(gòu) 編程結(jié)構(gòu) 從功能上看 CPU可以分為兩大部分 1 總線接口部件BIU BusInterfaceUnit 2 執(zhí)行部件EU ExecutionUnit 8086CPU內(nèi)部結(jié)構(gòu)框圖如下所示 8086CPU的內(nèi)部結(jié)構(gòu)框圖 一 總線接口部件 總線接口部件負(fù)責(zé)與存儲器 I O接口傳送數(shù)據(jù) 包括物理地址的形成 預(yù)取指令 指令隊列排隊 讀 寫操作數(shù)和總線控制等 總線接口部件由下列4部分組成 4個段地址寄存器 CS DS ES SS 16位的指令指針寄存器IP InstructionPointer 20位的地址加法器 6字節(jié)的指令隊列緩沖器 二 執(zhí)行部件 執(zhí)行部件負(fù)責(zé)指令的執(zhí)行 由下列4部分組成 4個通用寄存器 即AX BX CX DX 4個專用寄存器 即基數(shù)指針寄存器BP basepointer 堆棧指針寄存器SP stackpointer 源變址寄存器SI sourceindex 目的變址寄存器DI destinationindex 標(biāo)志寄存器 算術(shù)邏輯部件ALU arithmeticlogicunit 8086內(nèi)部寄存器有 4個通用寄存器和4個專用寄存器1個指令指針寄存器1個標(biāo)志寄存器4個段寄存器 1 4個16位的通用寄存器AX BX CX DX 它們還可以分成高8位和低8位兩個獨立的寄存器 AHBHCHDHALBLCLDL對其中某8位的操作 并不影響另外對應(yīng)8位的數(shù)據(jù) 每個寄存器又有它們各自的專用目的 AX 累加器 Accumulator 使用頻度最高 用于算術(shù) 邏輯運算以及與外設(shè)傳送信息等 BX 基址寄存器 常用做存放存儲器地址CX 計數(shù)器 作為循環(huán)和串操作等指令中的隱含計數(shù)器DX 數(shù)據(jù)寄存器 常用來存放雙字長數(shù)據(jù)的高16位 或存放外設(shè)端口地址 2 變址寄存器SI DI 變址寄存器常用于存儲器尋址時提供地址 SI是源變址寄存器 sourceindex DI是目的變址寄存器 destinationindex 串操作類指令中 SI和DI具有特別的功能 3 指針寄存器SP BP 指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù) SP為堆棧指針寄存器 StackPointer 指示棧頂?shù)钠频刂?SP不能再用于其他目的 具有專用目的 BP為基址指針寄存器 BasePointer 表示數(shù)據(jù)在堆棧段中的基地址 SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址 4 段寄存器CS DS ES SS DS數(shù)據(jù)段寄存器 DataSegment CS代碼段寄存器 CodeSegment ES附加段寄存器 ExtraSegment SS堆棧段寄存器 StackSegment 這些段寄存器的內(nèi)容與有效地址一起 用于確定內(nèi)存的物理地址 通常用CS DS ES以及SS用于確定代碼段 數(shù)據(jù)段 附加段以及堆棧段的基地址 5 指令指針寄存器IP InstructionPointer 指令指針寄存器IP 指示代碼段中下一條要執(zhí)行指令的偏移地址 它與代碼段寄存器CS聯(lián)用 確定下一條指令的物理地址 計算機(jī)通過CS和IP寄存器來控制指令序列的執(zhí)行流程 IP寄存器是一個專用寄存器 6 標(biāo)志寄存器FLAGS 標(biāo)志 Flag 用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式 8086處理器的各種標(biāo)志形成了一個16位的標(biāo)志寄存器FLAGS 程序設(shè)計需要利用標(biāo)志的狀態(tài) 標(biāo)志寄存器中共有9個位用作標(biāo)志 7個位未作使用 標(biāo)志的分類 分為狀態(tài)標(biāo)志和控制標(biāo)志 6個狀態(tài)標(biāo)志 用來記錄程序運行結(jié)果的狀態(tài)信息 許多指令的執(zhí)行都將相應(yīng)地設(shè)置它的狀態(tài) 共有6個狀態(tài)標(biāo)志位 CFZFSFPFOFAF3個控制標(biāo)志 可由程序根據(jù)需要用指令設(shè)置 用于控制處理器執(zhí)行指令的方式DFIFTF 進(jìn)位標(biāo)志CF CarryFlag 當(dāng)運算結(jié)果的最高有效位有進(jìn)位 加法 或借位 減法 時 進(jìn)位標(biāo)志置1 即CF 1 否則CF 0 49H 6DH 例 B6H 沒有進(jìn)位 CF 0 BBH 6AH 1 25H 有進(jìn)位 CF 1 零標(biāo)志ZF ZeroFlag 若運算結(jié)果為0 則ZF 1 否則ZF 0 49H 6DH B6H 結(jié)果不是零 ZF 075H 8BH 1 00H 結(jié)果是零 ZF 1 注意 ZF為1表示的運算結(jié)果是0 例 符號標(biāo)志SF SignFlag 運算結(jié)果最高位為1 則SF 1 否則SF 0 有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號所以 最高有效位就是符號標(biāo)志的狀態(tài) 奇偶標(biāo)志PF ParityFlag 當(dāng)運算結(jié)果的低8位 最低字節(jié) 中 1 的個數(shù)為偶數(shù)時 PF 1 否則PF 0 3AH 7CH B6H 10110110B結(jié)果中有5個1 是奇數(shù) PF 0 PF標(biāo)志僅反映最低8位中 1 的個數(shù)是偶或奇 即使是進(jìn)行16位字操作 例 溢出標(biāo)志OF OverflowFlag 若算術(shù)運算的結(jié)果有溢出 則OF 1 否則OF 0 49H 6DH B6H 產(chǎn)生溢出 OF 175H 8BH 1 26H 沒有溢出 OF 0 例 什么是溢出 處理器內(nèi)部以補碼表示有符號數(shù)8位補碼表達(dá)的整數(shù)范圍是 127 12816位補碼表達(dá)的范圍是 32767 32768如果運算結(jié)果超出這個范圍 就產(chǎn)生了溢出有溢出 說明有符號數(shù)的運算結(jié)果不正確 49H 6DH B6H 就是73 109 182 已經(jīng)超出 128 127范圍 產(chǎn)生溢出 故OF 1 另一方面 補碼B6H表達(dá)真值是 74 顯然運算結(jié)果也不正確 溢出和進(jìn)位的區(qū)別 溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個意義不同的標(biāo)志 進(jìn)位標(biāo)志表示無符號數(shù)運算結(jié)果是否超出范圍 運算結(jié)果仍然正確 溢出標(biāo)志表示有符號數(shù)運算結(jié)果是否超出范圍 運算結(jié)果已經(jīng)不正確 溢出和進(jìn)位的對比 例1 49H 6DH B6H無符號數(shù)運算 73 109 182范圍內(nèi) 無進(jìn)位有符號數(shù)運算 73 109 182范圍外 有溢出 例2 BBH 6AH 1 25H無符號數(shù)運算 187 106 293范圍外 有進(jìn)位有符號數(shù)運算 69 106 37范圍內(nèi) 無溢出 溢出的判斷 判斷運算結(jié)果是否溢出有一個簡單的規(guī)則 只有當(dāng)兩個相同符號數(shù)相加 包括不同符號數(shù)相減 而運算結(jié)果的符號與原數(shù)據(jù)符號相反時 產(chǎn)生溢出 因為 此時的運算結(jié)果顯然不正確 其他情況下 則不會產(chǎn)生溢出 輔助進(jìn)位標(biāo)志AF AuxiliaryCarryFlag 49H 6DH B6H D3有進(jìn)位 AF 1 這個標(biāo)志主要由處理器內(nèi)部使用 用于十進(jìn)制算術(shù)運算調(diào)整指令中 用戶一般不必關(guān)心 若算術(shù)運算時D3位 低半字節(jié) 有進(jìn)位或借位 則AF 1 否則AF 0 例 方向標(biāo)志DF DirectionFlag 用于串操作指令中 控制地址的變化方向 設(shè)置DF 0 存儲器地址自動增加 設(shè)置DF 1 存儲器地址自動減少 中斷允許標(biāo)志IF Interrupt enableFlag 用于控制外部可屏蔽中斷是否可以被處理器響應(yīng) 設(shè)置IF 1 則允許中斷 設(shè)置IF 0 則禁止中斷 跟蹤標(biāo)志TF TrapFlag 用于控制處理器進(jìn)入單步操作方式 設(shè)置TF 0 處理器正常工作 設(shè)置TF 1 處理器單步執(zhí)行指令 單步執(zhí)行指令 處理器在每條指令執(zhí)行結(jié)束時 便產(chǎn)生一個編號為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試 一 8086CPU的引腳及其功能 8086CPU的40條引腳信號按功能可分為四類 它們是 地址總線數(shù)據(jù)總線控制總線其它 時鐘與電源 2 28086CPU的引腳和工作模式 1 最小模式和最大模式概念 1 最小模式 在系統(tǒng)中只有一個微處理器 2 最大模式 兩個或多個微處理器 主處理器 協(xié)處理器 為了盡可能的適應(yīng)各種應(yīng)用場合 設(shè)計8086CPU時 使其能具有兩種工作模式 即最小模式和最大模式 2 8086的引腳信號 1 最小模式 MN MX接 5V AD15 AD0 地址 數(shù)據(jù)總線 A19 S6 A16 S3 地址 狀態(tài)總線 BHE S7 高8位數(shù)據(jù)允許 狀態(tài)線 MN MX 最小 最大模式控制信號 輸入 RD 讀信號 WR 寫信號 M IO 存儲器 輸入輸出控制信號 ALE 地址鎖存允許信號 READY Ready 準(zhǔn)備就緒信號 INTR 可屏蔽中斷請求信號 INTA 中斷響應(yīng)信號 NMI 非屏蔽中斷請求信號 RESET 系統(tǒng)復(fù)位信號 DEN 數(shù)據(jù)允許信號 DT R 數(shù)據(jù)發(fā)送 接收控制信號 HOLD 總線保持請求信號輸入 HLDA 總線保持響應(yīng)信號 TEST 測試信號 CLK 時鐘輸入信號 VCC 5V GND 2 最大模式 MN MX接地 8086CPU工作在最大模式時 其24 31引腳需重新定義 如表2 4所示 QS1 QS0 指令隊列狀態(tài)信號 S2 S1 S0 總線周期狀態(tài)信號 LOCK 總線封鎖信號 RQ GT1和RQ GT0 總線請求信號輸入 總線請求信號允許輸出 一 主存儲器的分段機(jī)制 原因 由于CPU地址線數(shù) 20位 與寄存器位數(shù) 數(shù)據(jù)線數(shù) 16位 的差異 為了提高主存儲器容量 必須采用分段機(jī)制8086CPU有20條地址線最大可尋址空間為220 1MB物理地址范圍從00000H FFFFFH8086CPU將1MB空間分成許多邏輯段 Segment 每個段最大限制為64KB 216B 每個段首個單元物理地址的低4位為0000這樣 一個存儲單元除具有一個唯一的物理地址外 還具有多個邏輯地址 在不同的段中 2 38086CPU的存儲器編址 對應(yīng)每個物理存儲單元都有一個唯一的20位編號 就是物理地址 從00000H FFFFFH 分段后在用戶編程時 采用邏輯地址 即段首地址加段內(nèi)偏移地址 其形式為 段基地址 段內(nèi)偏移地址 分隔符 二 物理地址和邏輯地址 邏輯地址 段基地址 段首地址 說明邏輯段在主存中的起始位置 但起始位置不是任意的 8086規(guī)定段地址必須是模16地址 xxxx0H 省略低4位0000 段地址就可以用16位數(shù)據(jù)表示 就能用16位段寄存器表達(dá)段地址 偏移地址說明主存單元距離段起始位置的偏移量 每段不超過64KB 偏移地址也可用16位數(shù)據(jù)表示 段基地址 段內(nèi)偏移地址 問題 在20位的8086系統(tǒng)下 主存儲器的最大容量可以是多少 32位的80386 80486 Pentium系列呢 物理地址和邏輯地址的轉(zhuǎn)換 將邏輯地址中的段地址左移4位 加上偏移地址就得到20位物理地址 一個物理地址可以有多個邏輯地址 邏輯地址1460 100 1380 F00物理地址14700H14700H 三 8086對存儲器的訪問 2 4 1 Pentium的性能與先進(jìn)技術(shù)2 4 2 Pentium的原理結(jié)構(gòu)2 4 3 Pentium的寄存器2 4 4 Pentium的技術(shù)發(fā)展 2 4奔騰系列微處理器特點介紹 2 4 1Pentium的性能與先進(jìn)技術(shù) 1993年3月Intel公司推出了第五代微處理器Pentium Pentium是微處理器本質(zhì)上的一次創(chuàng)新 Pentium采用了0 8 m雙極性互補金屬氧化半導(dǎo)體 BiCMOS 技術(shù) 它屬于單芯片超標(biāo)量流水線微處理器 片內(nèi)集成了多達(dá)310萬個晶體管 工作電壓 5V 功耗15W 片內(nèi)時鐘頻率 微處理器主頻 與片外總線的時鐘頻率相等 均為60MHz或66MHz兩種 Pentium通往外部存儲器的數(shù)據(jù)總線為64位 CPU內(nèi)部總線的寬度為32位 屬于32位微處理器 外部64位數(shù)據(jù)總線 D63 D0 每次可同時傳輸8字節(jié)的二進(jìn)制信息 若選用主總線時鐘頻率66MHz計算 即存儲器總線的時鐘頻率也為66MHz 則Pentium與主存儲器交換數(shù)據(jù)的速率可為528MB S 一 PentiumCPU內(nèi)部的主要部件 總線接口部件BIU U流水線和V流水線 指令高速緩沖存儲器Cache 數(shù)據(jù)高速緩沖存儲器Cache 指令預(yù)取部件 指令譯碼器 浮點處理部件FPU 分支目標(biāo)緩沖器BTB 微程序控制器中的控制ROM 寄存器組 2 4 2Pentium的原理結(jié)構(gòu) 執(zhí)行部件EU 二 PentiumCPU的原理結(jié)構(gòu)圖 Pentium的寄存器可以分為三組 基本寄存器組 包括通用寄存器 指令指針寄存器 標(biāo)志寄存器以及段寄存器 系統(tǒng)寄存器組 包括地址寄存器 控制寄存器 調(diào)試寄存器和測試寄存器 浮點寄存器組 包括數(shù)據(jù)寄存器 控制字寄存器 狀態(tài)寄存器 指令指針寄存器和數(shù)據(jù)指針寄存器以及標(biāo)記字寄存器 2 4 3Pentium的寄存器 PentiumCPU的基本寄存器組包括通用寄存器 段寄存器 指令指針寄存器和標(biāo)志寄存器 1 通用寄存器 一 基本寄存器組 Pentium通用寄存器如圖所示 它兼容8086CPU原來的8個16位通用寄存器以及原來的8個8位的寄存器 而且將原來的8個16位通用寄存器AX BX CX DX SI DI BP SP均擴(kuò)展成32位的寄存器EAX EBX ECX EDX ESI EDI EBP ESP 既可以使用保留的8位和16位寄存器 還可以使用32位寄存器 2 段寄存器及其段描述符高速緩存器 段寄存器及段描述符高速緩存器如圖所示 Pentium系列CPU有6個16位段寄存器 每個段寄存器對應(yīng)有一個64位的描述符 用戶不可見 6個段寄存器的長度均為16位 除CS和SS分別是代碼段寄存器和堆棧段寄存器之外 其余的DS ES FS GS都是數(shù)據(jù)段寄存器 每個段對應(yīng)一個段描述符 8個字節(jié) 6個段描述符存放在CPU內(nèi)的段描述符高速緩存器中 它們均由內(nèi)存的描述符表中拷貝而成 以便CPU訪問某一段時 均按存放在CPU內(nèi)該段的段描述符所描述的信息進(jìn)行操作 段描述符 段描述符的組成 PentiumCPU中有一個32位的指令指針寄存器 EIP 和一個32位的標(biāo)志寄存器 EFLAGS 如圖3 6所示 3 指令指針寄存器和標(biāo)志寄存器 EIP保存下一條待執(zhí)行指令所在代碼段內(nèi)的偏移值 也就是偏離代碼段首地址的字節(jié)地址數(shù)值 EIP的低16位為IP EFLAGS在808616位FLAGS基礎(chǔ)上擴(kuò)充了高16位 其中 FLAGSb11 b0中保留了8086CPU中6個狀態(tài)標(biāo)志和3個控制標(biāo)志 增加了NT與IOPL 高16位中新增了6個標(biāo)志位 這些擴(kuò)充標(biāo)志位的含義參考課本 Pentium的系統(tǒng)寄存器組包括4個表所對應(yīng)的4個基地址寄存器GDTR IDTR LDTR TR 也稱為4個表寄存器 還包括5個控制寄存器CR0 CR1 CR2 CR3 CR4 系統(tǒng)寄存器組中的所有寄存器都不可能被用戶訪問 只能由特權(quán)級為0的操作系統(tǒng)程序訪問 二 系統(tǒng)寄存器組 P51 4個表寄存器如圖所示 1 表基地址寄存器 1 GDTR GlobalDescriptorTableRegister 全局描述符表寄存器 共有48位 其中 高32位保存全局描述符表的線性基地址 低16位是表限字段 即限制表的最大長度為64KB 2 IDTR InterruptDescriptorTableRegister 中斷描述符表寄存器 共有48位 其中高32位用于保存中斷描述符表IDT的32位線性基地址 低16位是表限字段 表的最大長度也是64KB 3 LDTR LocalDescriptorTableRegister 局部描述符寄存器 包括16位段選擇符 不可編程的64位描述符寄存器 在64位描述符寄存器中 有32位LDT的線性基地址 20位的表限及12位的描述符屬性 4 TR TaskRegister 任務(wù)寄存器 包括16位段選擇符 64位描述符寄存器 其中 32位任務(wù)狀態(tài)段的線性基地址 20位的表限及12位的描述符屬性 CR0控制寄存器 2 5個控制寄存器 CR2 CR3控制寄存器 CR2 頁故障線性地址寄存器 用于保存最后出現(xiàn)頁故障的32位線性地址 操作系統(tǒng)中的頁異常處理程序可以通過檢查CR2的內(nèi)容 得知32位的線性地址 CR3 頁目錄基址寄存器 其中高20位存放頁目錄表的物理基地址 在進(jìn)行分頁變換時 加上10位線性地址 4 找到某一存儲容量為4B的頁描述符 在頁目錄基址寄存器的低12中 有PCD和PWT兩位控制位 其余10位保留 CR4 允許結(jié)構(gòu)擴(kuò)展的標(biāo)志寄存器 32位CR4中僅使用了9個控制位 其余23位保留 這組寄存器具有測試 跟蹤 性能檢測以及機(jī)器檢查等功能 模式專用寄存器 PentiumCPU內(nèi)部有一個浮點運算部件 與之配套一起實現(xiàn)浮點運算的浮點寄存器有 8個數(shù)據(jù)寄存器1個標(biāo)記字寄存器1個狀態(tài)寄存器1個控制字寄存器1個數(shù)據(jù)指針寄存器1個指令指針寄存器 三 浮點寄存器組- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 奔騰 系列 微處理器 原理 初步
鏈接地址:http://zhongcaozhi.com.cn/p-8743959.html