微型計算機原理與接口技術(shù)第二章總結(jié)
第二章 微處理器與總線
2.1 微處理器概述
CPU是計算機系統(tǒng)的核心部件,主要有六項功能,評判CPU性能的指標(biāo)包括字長,意為CPU在單位時間內(nèi)一次處理的二進(jìn)制數(shù)的位數(shù)。CPU主要由運算器,控制器和寄存器組組成,寄存器組又可以視為運算器的一部分。
????????2.1.1? ?運算器
????????運算器由算術(shù)運算單元(ALU),通用或?qū)S眉拇嫫饕约皟?nèi)部總線組成
根據(jù)內(nèi)部總線數(shù)量分為單總線結(jié)構(gòu)運算器,雙總線結(jié)構(gòu)運算器以及三總線結(jié)構(gòu)運算器。
????????2.1.2 控制器
????????控制器的作用是控制程序的執(zhí)行,是整個系統(tǒng)的指揮中心,有以下幾項基本功能:
????????????????1)指令控制:指令在存儲器中是連續(xù)存放的,只有在碰到轉(zhuǎn)移類指令是才會改變?nèi)〕鲰樞颉?/p>
????????????????2)時序控制:一條指令的執(zhí)行時間稱為指令周期
? ? ? ? ? ? ? ? 3)操作控制:根據(jù)指令流程,確定在指令周期的各個節(jié)拍中藥產(chǎn)生的微操作控制信號,以有效地完成各條指令的 操作過程
? ? ? ? ? ? ? ? 除此之外,控制器還要對異常情況以及某些外部請求1處理能力,如出現(xiàn)運算溢出,中斷請求等。
? ? ? ? ? ? ? ? 控制器的內(nèi)部組成:
? ? ? ? ? ? ? ? ? ? ? ? [1]程序計數(shù)器:用來存放下一條要執(zhí)行的指令在存儲器中的地址
? ? ? ? ? ? ? ? ? ? ? ? [2]指令寄存器:用來存放從存儲器中取出來待執(zhí)行的指令
? ? ? ? ? ? ? ? ? ? ? ? [3]指令譯碼器:翻譯指令寄存器中的指令
? ? ? ? ? ? ? ? ? ? ? ? [4]時序控制部件:產(chǎn)生計算機工作中所需的各種時序信號
? ? ? ? ? ? ? ? ? ? ? ? [5]微操作控制部件:是控制器的主體,用于產(chǎn)生與各條指令相對應(yīng)的微操作。
2.2? ?8088/8086微處理器
? ? ? ? ? ? ? ? 在硬件結(jié)構(gòu)上,8088與存儲器和I/O接口進(jìn)行數(shù)據(jù)傳輸?shù)耐獠靠偩€寬度是8位。8086為16位。他們都有40根引線,都可以在5v電壓下運行。
? ? ? ? 2.2.1? ?8088/8086CPU的特點
? ? ? ? ? ? ? ? 1)8088/8086的指令流水線
? ? ? ? ? ? ? ? ? ? ? ? 在程序的的執(zhí)行過程中,CPU的執(zhí)行步驟:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.從存儲器中取出下一套指令
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.指令譯碼
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.如果指令需要,從存儲器中讀取操作數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.執(zhí)行指令
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5.將結(jié)果寫入存儲器
? ? ? ? ? ? ? ? 在8086/8088出現(xiàn)后,CPU將并行實現(xiàn)上述步驟。將其分配給兩個獨立的部件:
? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行單元(EU)和總線接口單元(BIU)
? ? ? ? ? ? ? ? 其中,EU負(fù)責(zé)分析指令和執(zhí)行指令,BIU負(fù)責(zé)取指令,去操作數(shù)和寫結(jié)果
? ? ? ? ? ? ? ? 2)內(nèi)存的分段管理技術(shù)
? ? ? ? ? ? ? ? ? ? ? ? 8086/8088采取了分段管理的方式,將內(nèi)存地址空間分為了多個邏輯段,每個邏輯段最大為64k個單元,每個單元的地址碼長度為16位,滿足其16位內(nèi)部結(jié)構(gòu)的要求。CPU內(nèi)部具有專門存放短地址的段寄存器和存放偏移地址的地址寄存器,將二者送入地址加法器合成后,就形成了指向內(nèi)存某一具體單元的地址(物理地址)
?3)支持多處理器系統(tǒng)
? ? ? ? ? ? ? ? ? ? ? ? 8086/8088具有最小和最大兩種工作模式以及內(nèi)置的多任務(wù)處理能力,可通過模式選擇引腳進(jìn)行選擇。
? ? ? ? ? ? ? ? ? ? ? ? 1.最小模式(單處理器模式):系統(tǒng)控制總線的信號由CPU直接產(chǎn)生,且構(gòu)成的系統(tǒng)不能進(jìn)行DMA傳送
? ? ? ? ? ? ? ? ? ? ? ? 2.最大模式(多處理器模式):CPU能支持系統(tǒng)總線上的多個處理器,由總線控制器提供所有總線控制信號和命令信號
? ? ? ? 2.2.2? ?8088CPU的外部引腳及其功能
? ? ? ? ? ? ? ? 為了減少芯片的引線,8088的許多引腳具有雙重功能,采用分時復(fù)工的工作方式。

1)最小模式下的引腳
? ? ? ? ? ? ? ? ? ? ? ? [1]A19/S6-A16/S3:地址/狀態(tài)復(fù)用(輸出)? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? T1_輸出地址高4位A16-A19;T2-T4及TW_狀態(tài)信息S3-S6
? ? ? ? ? ? ? ? ? ? ? ? ? ? 在這些狀態(tài)信號里,S6恒等于0,S5表示中斷允許標(biāo)志位IF的狀態(tài),S4,S3的組? ? ? ? ? ? ? ? ??????????????合表示了CPU正在使用的段寄存器
? ? ? ? ? ? ? ? ? ? ? ? [2]A8-A15:中8位地址信號,三態(tài)輸出
? ? ? ? ? ? ? ? ? ? ? ? [3]AD0-AD7:地址,數(shù)據(jù)分時復(fù)用的雙向信號線,三態(tài)。當(dāng)ALE=1時,

???????????????????????[10]READY:有效時表示存儲器或I/O設(shè)備已經(jīng)準(zhǔn)備好,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CPU可以進(jìn)行數(shù)據(jù)傳送。CPU在T3周期時采樣READY信號,若其無效,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?則插入若干個等待周期Tw
? ? ? ? ? ? ? ?????????[11]INTR:可屏蔽中斷請求輸入信號,高電平有效。CPU在每條指令的最后一個
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?周期采樣該信號,已決定是否進(jìn)入中斷響應(yīng)周期



?? 2.2.3? ?8088/8086?CPU的功能結(jié)構(gòu)
? ? ? ? ? ? ? ? 1)8088/8086 CPU的內(nèi)部結(jié)構(gòu)

? ? ? ? ? ? ? ? 2)8088/8086 CPU的內(nèi)部寄存器
? ? ? ? ? ? ? ? ? ? ? ? CPU內(nèi)部共有14個16位寄存器,分為通用寄存器(8個),段寄存器(4個)
? ? ? ? ? ? ? ? ? ? ? ? 控制寄存器(2個)
? ? ? ? ? ? ? ? ? ? ? ? 1.通用寄存器
????????????????????????????????AX:累加器。所有I/O指令都通過AX與接口傳送信息,中間運算結(jié)果
????????????????????????????????????????也多放于AX中;
????????????????????????????????BX:基址寄存器。在間接尋址中用于存放基地址;
????????????????????????????????CX:計數(shù)寄存器。用于在循環(huán)或串操作指令中存放計數(shù)值;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DX:數(shù)據(jù)寄存器。在間接尋址的I/O指令中存放I/O端口地址;
????????????????????????????????????????在32位乘除法運算時,存放高16位數(shù)。AX存放低16位。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [2]地址指針寄存器
????????????????????????????????????????SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂罚?br>????????????????????????????????????????BP:基址指針寄存器,常用于在訪問內(nèi)存時存放內(nèi)存單元的偏移地址
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [3]變址寄存器?
????????????????????????????????????????SI:源變址寄存器
????????????????????????????????????????DI:目標(biāo)變址寄存器
????????????????????????????????????????變址寄存器在指令中常用于存放數(shù)據(jù)在內(nèi)存中的地址
? ? ? ? ? ? ? ? ? ? ? ? 2.段寄存器
????????????????????????????????CS(代碼段)指明代碼段的起始地址
????????????????????????????????SS(堆棧段)指明堆棧段的起始地址
????????????????????????????????DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址
????????????????????????????????ES(附加段)指明附加段的起始地址
????????????????????????????????存放相應(yīng)段的段基址的高16位。每個段寄存器用來確定一個邏輯段的
????????????????????????????????起始地址,每種邏輯段均有各自的用途。
????????????????????????????????它們要和BX、BP、SI、DI、IP配合形成存儲單元的物理地址。
? ? ? ? ? ? ? ? ? ? ? ? 3.控制寄存器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IP:指令指針寄存器,用以存放預(yù)取指令1偏移地址。CPU取指令時總是以
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CS為段基址,以IP為段內(nèi)偏移地址
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [1]狀態(tài)標(biāo)志位
????????????????????????????????????????CF(Carry Flag)進(jìn)位標(biāo)志位。加(減)法運算時,若最高位
????????????????????????????????????????????????有進(jìn)(借)位則CF=1
????????????????????????????????????????OF(Overflow Flag)溢出標(biāo)志位。當(dāng)算術(shù)運算的結(jié)果
????????????????????????????????????????????????超出了有符號數(shù)的可表達(dá)范圍時,OF=1
????????????????????????????????????????ZF(Zero Flag)零標(biāo)志位。當(dāng)運算結(jié)果為零時ZF=1
????????????????????????????????????????SF(Sign Flag)符號標(biāo)志位。當(dāng)運算結(jié)果的最高位為1時,SF=1
????????????????????????????????????????PF(Parity Flag)奇偶標(biāo)志位。運算結(jié)果的低8位中“1”的個數(shù)
????????????????????????????????????????????????為偶數(shù)時PF=1,僅針對低8位
????????????????????????????????????????AF(Auxiliary Carry Flag)輔助進(jìn)位標(biāo)志位。加(減)操作中,
????????????????????????????????????????????????若Bit3向Bit4有進(jìn)位(借位),AF=1,僅針對低8位
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [2]控制標(biāo)志位:
????????????????????????????????????????TF(Trap Flag)陷井標(biāo)志位,也叫跟蹤標(biāo)志位。TF=1時,
????????????????????????????????????????????????使CPU處于單步執(zhí)行指令的工作方式。
????????????????????????????????????????IF(Interrupt Enable Flag)中斷允許標(biāo)志位。IF=1使CPU可以
????????????????????????????????????????????????響應(yīng)可屏蔽中斷請求。
????????????????????????????????????????DF(Direction Flag)方向標(biāo)志位。在數(shù)據(jù)串操作時確定操作的方向
????????2.2.4? ?8088/8086 CPU 的存儲器組織
? ? ? ? ? ? ? ? 1)物理地址與邏輯地址
? ? ? ? ? ? ? ? ? ? ? ? 物理地址=段基址x16+段內(nèi)偏移
? ? ? ? ? ? ? ? 2)段寄存器的使用
? ? ? ? 2.2.5? ?CPU的工作時序
? ? ? ? ? ? ? ? 時序可分為兩種不同的粒度:時鐘周期,總線周期
????????????????每個時鐘脈沖的持續(xù)時間就稱為一個時鐘周期,通過總線進(jìn)行一次讀或?qū)戇^程稱為一個
? ? ? ? ? ? ? ? ? ? ? ? 總線周期。一個總線周期包括多個時鐘周期
? ? ? ? ? ? ? ? 讀:
?


?


?


?


?????????????????寫:


?
