《微型計(jì)算機(jī)原理與接口技術(shù)》第2章 微處理器與總線-20130906-0整理-final_第1頁
《微型計(jì)算機(jī)原理與接口技術(shù)》第2章 微處理器與總線-20130906-0整理-final_第2頁
《微型計(jì)算機(jī)原理與接口技術(shù)》第2章 微處理器與總線-20130906-0整理-final_第3頁
《微型計(jì)算機(jī)原理與接口技術(shù)》第2章 微處理器與總線-20130906-0整理-final_第4頁
《微型計(jì)算機(jī)原理與接口技術(shù)》第2章 微處理器與總線-20130906-0整理-final_第5頁
已閱讀5頁,還剩175頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第2章微處理器與總線韋耿wei_geng@163.com河海大學(xué)計(jì)算機(jī)與信息學(xué)院1主要內(nèi)容:

(1)微型機(jī)的基本結(jié)構(gòu);

(2)8088(8086)微處理器的工作

原理、引線及結(jié)構(gòu);

(3)總線的一般概念。

22.1微型機(jī)的基本結(jié)構(gòu)微機(jī)系統(tǒng)的基本組成微型機(jī)的工作原理3☆

微機(jī)系統(tǒng)的組成4微處理器、微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng)三者之間有什么不同?(1)三者不同,微處理器是微型計(jì)算機(jī)的一個(gè)組成部分,而微型計(jì)算機(jī)又是微型計(jì)算機(jī)系統(tǒng)的一個(gè)組成部分。(2)微處理器:運(yùn)算器、控制器及寄存器組;

微型計(jì)算機(jī):由微處理器、存儲(chǔ)器、輸入/

輸出接口電路和系統(tǒng)總線構(gòu)成的裸機(jī)系統(tǒng);

微型計(jì)算機(jī)系統(tǒng):微型計(jì)算機(jī)、系統(tǒng)軟件和外設(shè)。5微型計(jì)算機(jī)的系統(tǒng)結(jié)構(gòu)框圖總線結(jié)構(gòu)6微型計(jì)算機(jī)的結(jié)構(gòu)

微處理器(CPU)存儲(chǔ)器輸入/輸出接口總線1.硬件系統(tǒng)71)微處理器微處理器簡稱CPU,是計(jì)算機(jī)的核心,主要包括:

運(yùn)算器控制器寄存器組8☆

運(yùn)算器算術(shù)邏輯單元ALU:加法器:加、減、乘、除邏輯運(yùn)算功能部件:與、或、非、異或通用或?qū)S眉拇嫫鹘M:

提供操作數(shù)和暫存中間運(yùn)算結(jié)果及結(jié)果特征內(nèi)部總線:數(shù)據(jù)傳輸通道9

組成:

程序計(jì)數(shù)器、指令寄存器﹑指令譯碼器、時(shí)序控制部件,微操作控制部件功能:1、指令控制2、時(shí)序控制3、操作控制4、處理對(duì)異常情況及某些外部請求☆

控制器10☆

寄存器組

CPU內(nèi)部的若干個(gè)存儲(chǔ)單元;分為專用寄存器和通用寄存器;

專用寄存器:其作用是固定的,如SP、FLAGS。

通用寄存器:如AX﹑BX等由程序員規(guī)定其用途。112)存儲(chǔ)器定義:存儲(chǔ)器又叫內(nèi)存或主存,是微型計(jì)算機(jī)的存儲(chǔ)和記憶部件。作用:存放計(jì)算機(jī)工作過程中需要操作的數(shù)據(jù)和當(dāng)前執(zhí)行的程序。12☆注意區(qū)分:內(nèi)存單元的地址和內(nèi)容地址:每個(gè)單元都對(duì)應(yīng)一個(gè)編號(hào),以實(shí)現(xiàn)對(duì)單元內(nèi)容的尋址內(nèi)存單元的內(nèi)容:內(nèi)存單元中存放的信息

1011011038F04H內(nèi)存地址單元內(nèi)容13☆指標(biāo):內(nèi)存容量內(nèi)存所含存儲(chǔ)單元的個(gè)數(shù),以字節(jié)為單位內(nèi)存容量的大小依CPU的尋址范圍而定(即CPU地址信號(hào)線的位數(shù))14☆內(nèi)存操作讀:將內(nèi)存單元的內(nèi)容取入CPU,原單元內(nèi)容不改變寫:CPU將信息放入內(nèi)存單元,單元中原來的內(nèi)容被覆蓋15存儲(chǔ)器讀操作過程CPU讀地址05H內(nèi)存單元中的內(nèi)容的過程(1)(2)(3)16存儲(chǔ)器讀操作過程CPU把00100110B寫入地址為08H的單元(1)(2)(3)17☆內(nèi)存儲(chǔ)器的分類

隨機(jī)存取存儲(chǔ)器(RAM)按工作方式可分為只讀存儲(chǔ)器(ROM)183)輸入/輸出接口輸入/輸出接口是微型計(jì)算機(jī)的重要組成部分接口是CPU與外部設(shè)備間的橋梁CPUI/O接口外設(shè)19☆

接口的分類:

串行接口輸入接口并行接口輸出接口20☆接口的功能數(shù)據(jù)緩沖寄存信號(hào)電平或類型的轉(zhuǎn)換實(shí)現(xiàn)主機(jī)與外設(shè)間的運(yùn)行匹配214)總線總線:是一組信號(hào)線的集合,是在計(jì)算機(jī)系統(tǒng)各部件之間傳輸?shù)刂?、?shù)據(jù)和控制信息公共通路。內(nèi)部總線:位于芯片內(nèi)部的總線。系統(tǒng)總線:連接微處理器與存儲(chǔ)器、輸入輸出接口,用以構(gòu)成完整的微型計(jì)算機(jī)的總線(外部總線)。分類:數(shù)據(jù)總線、地址總線和控制總線。22數(shù)據(jù)總線:用于傳送數(shù)據(jù)信息,實(shí)現(xiàn)微處理器、存儲(chǔ)器和I/O接口之間的數(shù)據(jù)交換。數(shù)據(jù)總線是雙向總線,數(shù)據(jù)可在兩個(gè)方向上傳輸。

地址總線:用于發(fā)送內(nèi)存地址和I/O接口的地址,是單項(xiàng)總線。

控制總線:則傳送各種控制信號(hào)和狀態(tài)信號(hào),使微型計(jì)算機(jī)各部件協(xié)調(diào)工作。每一根是單向的,但整體是雙向的。232.軟件系統(tǒng)軟件:為運(yùn)行、管理和維護(hù)計(jì)算機(jī)系統(tǒng)或?yàn)閷?shí)現(xiàn)某一功能而編寫的各種程序的總和及其相關(guān)資料。系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)系統(tǒng)實(shí)用程序軟件編譯程序匯編程序數(shù)據(jù)庫調(diào)試程序工具軟件24☆

程序設(shè)計(jì)語言機(jī)器語言:計(jì)算機(jī)直接執(zhí)行的二進(jìn)制形式的程序。匯編語言:助記符語言表示的程序。高級(jí)語言:不依賴于具體機(jī)型的程序設(shè)計(jì)語言。25☆微型計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

馮?諾依曼結(jié)構(gòu)哈佛結(jié)構(gòu)26馮?諾依曼機(jī)的特點(diǎn):將計(jì)算過程描述為由許多條指令按一定順序組成的程序,并放在存儲(chǔ)器保存指令按其在存儲(chǔ)器中存放的順序執(zhí)行由控制器控制整個(gè)程序和數(shù)據(jù)的存取以及程序的執(zhí)行以運(yùn)算器為核心,所有的執(zhí)行都經(jīng)過運(yùn)算器27馮?諾依曼計(jì)算機(jī)結(jié)構(gòu)28每臺(tái)計(jì)算機(jī)都有各種類型的機(jī)器指令,這些指令按照一定的規(guī)則存放在存儲(chǔ)器中,在中央控制系統(tǒng)的統(tǒng)一控制下,按一定順序依次取出執(zhí)行,這就是馮諾依曼的核心原理,即存儲(chǔ)程序的工作原理。馮?諾依曼計(jì)算機(jī)的核心原理29存儲(chǔ)程序:是指把程序和數(shù)據(jù)送到具有記憶能力的存儲(chǔ)器中保存起來,計(jì)算機(jī)工作時(shí)只要給出程序中第一條指令的地址,控制器就可依據(jù)存儲(chǔ)程序的指令順序地、周而復(fù)始地取出指令、分析指令、執(zhí)行指令,直到執(zhí)行完全部指令為止。30●指令:一條基本操作命令稱為一條機(jī)器指令。指令是對(duì)計(jì)算機(jī)發(fā)出的一條條工作命令,命令它執(zhí)行規(guī)定的操作。機(jī)器指令必須滿足兩個(gè)條件:a、機(jī)器指令的形式必須是計(jì)算機(jī)能夠理解的,必須使用二進(jìn)制數(shù)字編碼形式表示。b、機(jī)器指令規(guī)定的操作必須是計(jì)算機(jī)能夠執(zhí)行的。必須有硬件支持?!裰噶钕到y(tǒng):應(yīng)用于某種CPU的機(jī)器指令及其使用規(guī)則的集合。指令系統(tǒng)決定了計(jì)算機(jī)的能力,也影響著計(jì)算機(jī)的結(jié)構(gòu)?!癯绦颍菏菍?shí)現(xiàn)某種任務(wù)的指令序列。31●程序中的指令必須采用二進(jìn)制編碼,和數(shù)據(jù)一樣進(jìn)行存儲(chǔ)?!癯绦蛑械闹噶畋仨殞儆趫?zhí)行程序的計(jì)算機(jī)的指令系統(tǒng)。32微型計(jì)算機(jī)的工作過程計(jì)算機(jī)執(zhí)行程序示意圖33指令執(zhí)行的兩個(gè)基本階段●取指令階段由一系列相同的操作組成。取指令階段的時(shí)間總是相等的?!駡?zhí)行指令階段由不同的事件順序組成,它取決于被執(zhí)行指令的類型。微機(jī)工作過程就是不斷地取指令和執(zhí)行指令的過程。34一個(gè)程序工作的例子例:求5+4=?計(jì)算步驟:一個(gè)計(jì)算步驟完成一個(gè)基本操作(如取數(shù)、加法、存數(shù)、打印輸出等)計(jì)算程序:是由完成某一特定任務(wù)的一組指令所組成。指令必須提供的信息:

a、執(zhí)行什么樣的操作b、參與操作的對(duì)象即數(shù)據(jù)是什么或地址是什么。注意區(qū)分:

a、存儲(chǔ)單元的地址

b、存儲(chǔ)單元的內(nèi)容35指令在內(nèi)存中的存放形式

36在微機(jī)中a、所有操作都是用二進(jìn)制代碼進(jìn)行編碼的;b、數(shù)據(jù)用二進(jìn)制表示,且存放在存儲(chǔ)器的預(yù)定地址的存儲(chǔ)單元中。

本例編碼后00000100:取數(shù)操作的操作碼,地址:0000010100000010:加法操作地址:0000011100000101:存數(shù)操作地址:0000100100001000:打印輸出操作,地址:0000101100000101:原始數(shù)據(jù)“5”,地址:0000000100000100:原始數(shù)據(jù)“4”,地址:0000001037

計(jì)算機(jī)執(zhí)行指令的過程

38(1)執(zhí)行程序時(shí),給程序計(jì)數(shù)器PC賦以第一條指令的地址05H,就進(jìn)入第一條指令的取指階段,具體過程如下:①將PC的內(nèi)容05H送至地址寄存器AR。②當(dāng)PC的內(nèi)容可靠地送入地址寄存器AR后,PC的內(nèi)容加1變?yōu)?6H。③地址寄存器AR把地址號(hào)05H通過地址總線AB送至存儲(chǔ)器。經(jīng)地址譯碼器譯碼,選中05H號(hào)單元。④CPU給出讀命令至存儲(chǔ)器。⑤將05H單元的內(nèi)容04H()(指令操作碼)讀至數(shù)據(jù)總線DB上。39⑥讀出的內(nèi)容04H經(jīng)過數(shù)據(jù)總線DB送至數(shù)據(jù)寄存器DR。⑦因是取指階段,取出的為指令操作碼,故DR將其送至指令寄存器IR,然后經(jīng)過譯碼分析發(fā)出執(zhí)行這條指令的各種控制信號(hào)。(2)取指階段完成后,轉(zhuǎn)入了執(zhí)行第一條指令的階段。經(jīng)過譯碼分析,知道這是一條從內(nèi)存單元取操作數(shù)的指令,接下去要先從指令的第二字節(jié)獲取操作數(shù)地址,然后再從中讀取數(shù)據(jù)。①PC的內(nèi)容06H送至地址寄存器AR。40取指令操作數(shù)地址示意圖41②當(dāng)PC的內(nèi)容可靠地送入地址寄存器AR后,PC的內(nèi)容加1變?yōu)?7H。③地址寄存器AR把地址號(hào)06H通過地址總線AB送至存儲(chǔ)器。經(jīng)地址譯碼器譯碼,選中06H號(hào)單元。④CPU給出讀命令至存儲(chǔ)器。⑤所選中的06H單元的內(nèi)容01H(操作數(shù)地址)讀至數(shù)據(jù)總線DB上。⑥讀出的內(nèi)容01H經(jīng)過數(shù)據(jù)總線DB送至數(shù)據(jù)寄存器DR。⑦因讀出的01H為操作數(shù)地址,所以在控制器的控制下將DR內(nèi)容送往地址寄存器AR422.28088/8086微處理器主要內(nèi)容:8088CPU外部引線及功能8088CPU的內(nèi)部結(jié)構(gòu)和特點(diǎn)各內(nèi)部寄存器的功能8088的工作時(shí)序438088和8086的異同不相同:(1)外部數(shù)據(jù)總線位數(shù)的差別:

8086CPU有16位,在一個(gè)總線周期內(nèi)可輸入/輸出一個(gè)字(16位數(shù)據(jù)),系統(tǒng)處理數(shù)據(jù)/對(duì)中斷響應(yīng)的速度快;

8088CPU有8位,準(zhǔn)16位處理器。(2)指令隊(duì)列容量的差別:

8086CPU的指令隊(duì)列可容納6個(gè)字節(jié),且在每個(gè)總線周期中從存儲(chǔ)器中取出2個(gè)字節(jié)的指令代碼填入指令隊(duì)列,這可提高取指操作和其它操作的并行率,從而提高系統(tǒng)工作速度;

8088指令隊(duì)列只能容納4個(gè)字節(jié),且在每個(gè)總線周期中只能取一個(gè)字節(jié)的指令代碼,從而增長了總線取指令的時(shí)間,在一定條件下可能影響取指令操作和其它操作的并行率。

448088和8086的異同不相同:(3)引腳特性的差別:兩種CPU的引腳功能是相同的,但有以下幾點(diǎn)不同:

a.AD15~AD0的定義不同:在8086中都定義為地址/數(shù)據(jù)復(fù)用總線;而在8088中,由于只需用8條數(shù)據(jù)總線,因此,對(duì)應(yīng)予8086的AD15~AD8這8條引腳,只作地址線使用。

b.34號(hào)引腳的定義不同:在8086中定義為BHE信號(hào);而在8088中定義為SS0,它與DT/R,IO/M一起用作最小方式下的周期狀態(tài)信號(hào)。

c.28號(hào)引腳的相位不同:在8086中為M/IO;而在8088中被倒相,改為IO/M,以便與8080/8085系統(tǒng)的總線結(jié)構(gòu)兼容。

458088和8086的異同相同:(1)類似的體系結(jié)構(gòu);(2)內(nèi)部結(jié)構(gòu)基本相同;(3)執(zhí)行部件EU完全相同;(4)指令系統(tǒng)及尋址能力,程序的編制及設(shè)計(jì)方法都相同;所以兩種CPU完全兼容。

461.8088/8086的指令流水線執(zhí)行程序時(shí),CPU重復(fù)執(zhí)行:(1)從存儲(chǔ)器取出下一條指令;(2)指令譯碼(或指令分析);(3)如果指令需要,從存儲(chǔ)器讀取操作數(shù);(4)執(zhí)行指令(包括算術(shù)邏輯運(yùn)算、I/O操作、數(shù)據(jù)傳送、控制轉(zhuǎn)移等);(5)如果需要,將結(jié)果寫入存儲(chǔ)器。8088/8086CPU的特點(diǎn)執(zhí)行單元(EU)和總線接口單元(BIU)47●指令執(zhí)行部件EU:負(fù)責(zé)執(zhí)行指令●總線接口部件BIU:負(fù)責(zé)取指令、取操作數(shù)和寫結(jié)果。執(zhí)行1執(zhí)行2存結(jié)果取指2取指1執(zhí)行3取數(shù)取數(shù)取指3忙碌忙碌忙碌忙碌忙碌忙碌EUBIUBUS48EU和BIU并行操作的實(shí)現(xiàn):BIU內(nèi)部的指令隊(duì)列指令隊(duì)列的作用:使得8086/8088的EU和BIU能夠并行的工作,從而減少了CPU為取指令而等待的時(shí)間,提高了CPU的執(zhí)行效率和運(yùn)行速度,另外也降低了對(duì)存儲(chǔ)器存取速度的要求49指令流水線技術(shù)一般情況下,CPU執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,稱為流水線技術(shù),減少了CPU為取指令而等待的時(shí)間,從而提高了CPU的效率。502.內(nèi)存的分段管理技術(shù)8086/8088CPU的內(nèi)部是16位,產(chǎn)生216=64K個(gè)地址。如何提高尋址能力?如何實(shí)現(xiàn)對(duì)更大(如220)空間的尋址?——分段管理方法8088/8086CPU的特點(diǎn)51分段管理方法將內(nèi)存空間分為多個(gè)邏輯段,每個(gè)邏輯段最大為64K個(gè)單元,段內(nèi)每個(gè)單元的地址碼(偏移地址或相對(duì)地址)長度為16位,滿足其16位內(nèi)部結(jié)構(gòu)的要求;再為每個(gè)段設(shè)置段地址(也稱段基地址),以區(qū)分不同的邏輯段。內(nèi)存單元的地址為段地址和段內(nèi)偏移地址。段寄存器:專門存放段地址地址寄存器:專門存放偏移地址8088/8086CPU的特點(diǎn)523.支持多處理器系統(tǒng)有最小模式和最大模式兩種工作模式。最小模式:單處理機(jī)系統(tǒng),CPU直接產(chǎn)生系統(tǒng)控制總線信號(hào)。最大模式:多處理器模式,總線控制器提供所有總線控制信號(hào)和命令信號(hào)8088/8086CPU的特點(diǎn)53

總結(jié):8088/8086CPU的特點(diǎn)

●采用并行流水線工作方式通過設(shè)置指令預(yù)取隊(duì)列實(shí)現(xiàn)●對(duì)內(nèi)存空間實(shí)行分段管理:將內(nèi)存分為4個(gè)段并設(shè)置地址段寄存器,以實(shí)現(xiàn)對(duì)1MB空間的尋址●支持多處理器系統(tǒng)548088工作模式:最小模式和最大模式。(1)最小模式:MN/MX=1單處理機(jī)模式;

控制信號(hào)較少,一般可不必接總線控制;

只包括一個(gè)處理器8088;

系統(tǒng)總線由8088的引線直接引出形成。(2)最大模式:MN/MX=0

多處理機(jī)模式;

控制信號(hào)多,須通過總線控制器與總線相連;

處理器8088和其他的處理器;

系統(tǒng)總線由8088和總線控制器共同產(chǎn)生。8088的外部引腳和功能55引腳定義的方法可大致分為:每個(gè)引腳只傳送一種信息(RD等)引腳電平的高低不同的信號(hào)(IO/M等)CPU工作于不同方式有不同的名稱和定義(WR/LOCK等)分時(shí)復(fù)用引腳(AD7~AD0等);引腳的輸入和輸出分別傳送不同的信息(RQ/GT等)。5612345678910111213141516171819204039383736353433323130292827262524232221

GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC+5VAD15A16/S3A17/S4A18/S5A19/S6BHE/S7

MN/MXRDHOLDHLDAWRM/IO

DT/RDENALEINTATESTREADYRESET80868086

CPU引腳12345678910111213141516171819204039383736353433323130292827262524232221

GND

A14A13A12A11A10A9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC+5VA15A16/S3A17/S4A18/S5A19/S6SS0

MN/MXRDHOLDHLDAWRM/IO

DT/RDENALEINTATESTREADYRESET80888088CPU引腳57主要引線(最小模式)8088是工作在最小還是最大模式由MN/MX端狀態(tài)決定。MN/MX=0工作于最大模式,反之工作于最小模式。AD7~AD0:低8位地址和數(shù)據(jù)信號(hào)分時(shí)復(fù)用。在傳送地址信號(hào)時(shí)為單向,傳送數(shù)據(jù)信號(hào)時(shí)為雙向。A19~A16:高4位地址信號(hào),分時(shí)復(fù)用。A15~A8:輸出8位地址信號(hào)。58主要的控制和狀態(tài)信號(hào)WR:寫信號(hào)RD:讀信號(hào)IO/M:為“0”表示訪問內(nèi)存為“1”表示訪問接口DEN:低電平有效時(shí),允許進(jìn)行讀/寫操作RESET:復(fù)位信號(hào)59[例]:當(dāng)WR=1,RD=0,IO/M=0時(shí),表示CPU當(dāng)前正在進(jìn)行讀存儲(chǔ)器操作60READY信號(hào):T1T2T3TwaitT461中斷請求和響應(yīng)信號(hào)INTR:可屏蔽中斷請求輸入端NMI:非屏蔽中斷請求輸入端INTA:中斷響應(yīng)輸出端62總線保持信號(hào)HOLD:總線保持請求信號(hào)輸入端。當(dāng)CPU以外的其他設(shè)備要求占用總線時(shí),通過該引腳向CPU發(fā)出請求HLDA:總線保持響應(yīng)信號(hào)輸出端。CPU對(duì)HOLD信號(hào)的響應(yīng)信號(hào)638088CPU的功能結(jié)構(gòu)8088內(nèi)部由兩部分組成:執(zhí)行單元(EU)總線接口單元(BIU)648088處理器內(nèi)部結(jié)構(gòu)65執(zhí)行單元功能指令的執(zhí)行從指令隊(duì)列中取指令代碼譯碼在ALU中完成數(shù)據(jù)的運(yùn)算運(yùn)算結(jié)果的特征保存在標(biāo)志寄存器FLAGS中。66執(zhí)行單元包括

運(yùn)算器8個(gè)通用寄存器1個(gè)標(biāo)志寄存器

EU部分控制電路67總線接口單元功能:從內(nèi)存中取指令到指令預(yù)取隊(duì)列負(fù)責(zé)與內(nèi)存或輸入/輸出接口之間的數(shù)據(jù)傳送在執(zhí)行轉(zhuǎn)移程序時(shí),BIU使指令預(yù)取隊(duì)列復(fù)位,從指定的新地址取指令,并立即傳給執(zhí)行單元執(zhí)行。68總線接口單元包括

段寄存器指令指針寄存器指令隊(duì)列

地址加法器總線控制邏輯電路698088的指令執(zhí)行過程708088的內(nèi)部寄存器含14個(gè)16位寄存器,按功能可分為三類8個(gè)通用寄存器4個(gè)段寄存器2個(gè)控制寄存器718088的內(nèi)部寄存器72通用寄存器數(shù)據(jù)寄存器(AX,BX,CX,DX)地址指針寄存器(SP,BP)變址寄存器(SI,DI)73數(shù)據(jù)寄存器8088含4個(gè)16位數(shù)據(jù)寄存器,它們又可分為8個(gè)8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL74數(shù)據(jù)寄存器特有的習(xí)慣用法AX:累加器。所有I/O指令都通過AX與接口傳送信息,中間運(yùn)算結(jié)果也多放于AX中BX:基址寄存器。在間接尋址中用于存放基地址;CX:計(jì)數(shù)寄存器。用于在循環(huán)或串操作指令中存放計(jì)數(shù)值DX:數(shù)據(jù)寄存器。在間接尋址的I/O指令中存放I/O端口地址;在32位乘除法運(yùn)算時(shí),存放高16位數(shù)75地址指針寄存器SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂稡P:基址指針寄存器,常用于在訪問內(nèi)存時(shí)存放內(nèi)存單元的偏移地址堆棧(Stack)是主存中一個(gè)特殊的區(qū)域,采用“先進(jìn)后出”或“后進(jìn)先出”存取操作方式,用8088/8086形成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱為堆棧段76BX與BP在應(yīng)用上的區(qū)別作為通用寄存器,二者均可用于存放數(shù)據(jù)作為基址寄存器,用BX表示所尋找的數(shù)據(jù)在數(shù)據(jù)段;用BP則表示數(shù)據(jù)在堆棧段77變址寄存器SI:源變址寄存器DI:目標(biāo)變址寄存器用途:常用于指令的間接尋址或變址尋址。在串操作指令中,分別用SI、DI存放源操作數(shù)及目標(biāo)操作數(shù)的偏移地址?,F(xiàn)在不必完全理解,以后會(huì)詳細(xì)展開78段寄存器用于存放相應(yīng)邏輯段的段基地址

CS:代碼段寄存器。代碼段存放指令代碼

DS:數(shù)據(jù)段寄存器

ES:附加段寄存器

SS:堆棧段寄存器:指示堆棧區(qū)域的位置存放操作數(shù)79控制寄存器(1)IP:指令指針寄存器,其內(nèi)容為下一條要執(zhí)行指令的偏移地址FLAGS:標(biāo)志寄存器,存放運(yùn)算結(jié)果的特征6個(gè)狀態(tài)標(biāo)志位(CF,SF,AF,PF,OF,ZF)3個(gè)控制標(biāo)志位(IF,TF,DF)80標(biāo)志寄存器FLAGS中存放的9個(gè)標(biāo)志位:狀態(tài)標(biāo)志:用來表示運(yùn)算結(jié)果的特征(CF、PF、AF、ZF、SF和OF)

;控制標(biāo)志:用來控制CPU的操作(IF、DF和TF)。(1)CF(CarryFlag)進(jìn)位標(biāo)志位。CF=1,表示本次運(yùn)算中最高位(第7位或第15位)有進(jìn)位(加法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí))。無符號(hào)數(shù)加/減:若CF=1,表示結(jié)果超出了數(shù)據(jù)范圍。有符號(hào)數(shù)運(yùn)算:CF對(duì)運(yùn)算結(jié)果沒有直接意義。81(2)PF(ParityFlag)奇偶標(biāo)志位。PF=1:本次運(yùn)算結(jié)果的低八位中有偶數(shù)個(gè)1;

PF=0:表示有奇數(shù)1。PF可以用來進(jìn)行奇偶校驗(yàn),或者用來生成奇偶校驗(yàn)位。(3)AF(AuxiliaryCarryFlag)輔助進(jìn)位標(biāo)志位。

AF=1,表示8位運(yùn)算結(jié)果(限使用AL寄存器)中低4位向高4位有進(jìn)位(加法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí))。這個(gè)標(biāo)志位只在BCD數(shù)運(yùn)算中起作用。82(4)ZF(ZeroFlag)零標(biāo)志位。ZF=1,表示運(yùn)算結(jié)果為0(各位全為0),否則ZF=0。(5)SF(SignFlag)符號(hào)標(biāo)志位。SF=1,表示運(yùn)算結(jié)果的最高位(第7位或第15位)為1,否則SF=0。(6)OF(OverflowFlag)溢出標(biāo)志位。OF=1表示二個(gè)用補(bǔ)碼表示的有符號(hào)數(shù)的加法或減法結(jié)果超出了該字長所能表示的范圍。例如,進(jìn)行8位運(yùn)算時(shí),OF=1表示運(yùn)算結(jié)果大于+127或小于-128,此時(shí)不能得到正確的運(yùn)算結(jié)果。OF標(biāo)志對(duì)無符號(hào)數(shù)的運(yùn)算結(jié)果沒有意義。

溢出標(biāo)志位是根據(jù)操作數(shù)的符號(hào)及其變化情況設(shè)置的。例如,加法運(yùn)算時(shí),兩個(gè)操作數(shù)符號(hào)相同,而結(jié)果的符號(hào)與之相反,則OF=1;否則OF=0。83(7)IF(InterruptFlag)中斷允許標(biāo)志位。IF=1,表示允許CPU響應(yīng)可屏蔽中斷。IF標(biāo)志可通過STI指令置位(置1),也可通過CLI指令復(fù)位(清零)。(8)DF(DirectionFlag)方向標(biāo)志位。在串操作指令中,若DF=0,表示串操作指令執(zhí)行后地址指針自動(dòng)增量,串操作由低地址向高地址進(jìn)行;DF=1,表示地址指針自動(dòng)減量,串操作由高地址向低地址進(jìn)行。DF標(biāo)志位可通過STD指令置位,也可通過CLD指令復(fù)位。(9)TF(TrapFlag)單步標(biāo)志位。TF=1,控制CPU進(jìn)入單步工作方式。在這種工作方式下,CPU每執(zhí)行完一條指令就會(huì)自動(dòng)產(chǎn)生一次內(nèi)部中斷,這在程序調(diào)試過程中很有用。84例:若AL=3BH,AH=7DH,指出AL和AH中的內(nèi)容相加、相減后,標(biāo)志CF,AF,PF,SF,OF和ZF的狀態(tài)。(1)(AL)+(AH)由運(yùn)算結(jié)果可知:CF=C7(D7位上的進(jìn)位)=0(無進(jìn)位);AF=C3(D3位上的進(jìn)位)=1(有輔助進(jìn)位);PF=1(運(yùn)算結(jié)果有4個(gè)1);SF=D7=1(運(yùn)算結(jié)果符號(hào)位為1);OF=C7⊕C6=0⊕1=1(有溢出);ZF=0(運(yùn)算結(jié)果不為0)。85由運(yùn)算結(jié)果可知:CF=1(有借位);AF=1(有輔助進(jìn)位);PF=1(運(yùn)算結(jié)果中有6個(gè)1);SF=1(符號(hào)位為1);OF=0(無溢出);ZF=0(運(yùn)算結(jié)果不為0)。運(yùn)算產(chǎn)生的標(biāo)志位由程序員根據(jù)需要選擇使用。例如,如果參加運(yùn)算的兩個(gè)數(shù)是有符號(hào)數(shù)(用補(bǔ)碼表示),他可以用OF判斷結(jié)果是否產(chǎn)生溢出,這時(shí)他不必關(guān)心CF的狀態(tài);如果參加運(yùn)算的兩個(gè)數(shù)是無符號(hào)數(shù),他可以用CF判斷結(jié)果是否超出范圍,無需關(guān)心OF的狀態(tài)。(2)(AL)-(AH)86①指令指針寄存器IPIP(InstructionPointer)為指令指針寄存器,指示主存儲(chǔ)器指令的位置隨著指令的執(zhí)行,IP將自動(dòng)修改以指示下一條指令所在的存儲(chǔ)器位置IP寄存器是一個(gè)專用寄存器IP寄存器與CS段寄存器聯(lián)合使用以確定下一條指令的存儲(chǔ)單元地址控制寄存器(2)(續(xù))87②標(biāo)志寄存器FLAGS標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式8088處理器的各種標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器FLAGS(程序狀態(tài)字PSW寄存器)

程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)88★標(biāo)志寄存器-分類狀態(tài)標(biāo)志--用來記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CFZFSFPFOFAF控制標(biāo)志--可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式DFIFTFOF111512DF10IF9TF8SF7ZF65AF43PF21CF0標(biāo)志寄存器FLAGS89★進(jìn)位標(biāo)志CF(CarryFlag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;否則CF=03AH+7CH=B6H,沒有進(jìn)位:CF=0AAH+7CH=(1)26H,有進(jìn)位:CF=1OF111512DF10IF9TF8SF7ZF65AF43PF21CF090★零標(biāo)志ZF(ZeroFlag)若運(yùn)算結(jié)果為0,則ZF=1;否則ZF=03AH+7CH=B6H,結(jié)果不是零:ZF=084H+7CH=(1)00H,結(jié)果是零:ZF=1注意:ZF為1表示的結(jié)果是0OF111512DF10IF9TF8SF7ZF65AF43PF21CF091★符號(hào)標(biāo)志SF(SignFlag)運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0

有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)OF111512DF10IF9TF8SF7ZF65AF43PF21CF092★奇偶標(biāo)志PF(ParityFlag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=03AH+7CH=B6H=10110110B結(jié)果中有5個(gè)“1”,是奇數(shù):PF=0

PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是

偶或奇,即使是進(jìn)行16位字操作OF111512DF10IF9TF8SF7ZF65AF43PF21CF093★溢出標(biāo)志OF(OverflowFlag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=03AH+7CH=B6H,產(chǎn)生溢出:OF=1AAH+7CH=(1)26H,沒有溢出:OF=0OF111512DF10IF9TF8SF7ZF65AF43PF21CF094★什么是溢出?處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:+127~-12816位表達(dá)的范圍是:+32767~-32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH+7CH=B6H,就是58+124=182,已經(jīng)超出-128~+127范圍,產(chǎn)生溢出,故OF=1;補(bǔ)碼B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確

B6H=10110110B,最高位為1,作為有符號(hào)數(shù)是負(fù)數(shù)對(duì)B6H求反加1等于:01001001B+1=01001010B=4AH=74

所以,B6H表達(dá)有符號(hào)數(shù)的真值為-74?95★溢出和進(jìn)位的區(qū)別溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同的標(biāo)志進(jìn)位標(biāo)志表示無符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確?96★溢出和進(jìn)位的對(duì)比例1:3AH+7CH=B6H無符號(hào)數(shù)運(yùn)算: 58+124=182

范圍內(nèi)(0~255),無進(jìn)位有符號(hào)數(shù)運(yùn)算: 58+124=182

范圍外,有溢出例2:AAH+7CH=(1)26H無符號(hào)數(shù)運(yùn)算: 170+124=294

范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算: -86+124=28

范圍內(nèi),無溢出97★溢出和進(jìn)位的應(yīng)用場合處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志OF應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。也就是說,如果將參加運(yùn)算的操作數(shù)認(rèn)為是無符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出98★溢出的判斷判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)椋藭r(shí)的運(yùn)算結(jié)果顯然不正確其他情況下,則不會(huì)產(chǎn)生溢出例1:3AH+7CH=B6H 溢出例2:AAH+7CH 無溢出例3:3AH-7CH 無溢出例4:AAH-7CH=2DH 溢出99

★輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag)3AH+7CH=B6H,D3有進(jìn)位:AF=1運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心OF111512DF10IF9TF8SF7ZF65AF43PF21CF0100★方向標(biāo)志DF(DirectionFlag)用于串操作指令中,控制地址的變化方向:設(shè)置DF=0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF=1,存儲(chǔ)器地址自動(dòng)減少CLD指令復(fù)位方向標(biāo)志:DF=0STD指令置位方向標(biāo)志:DF=1OF111512DF10IF9TF8SF7ZF65AF43PF21CF0101★中斷允許標(biāo)志IF(Interrupt-enableFlag)控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF=1,則允許中斷;設(shè)置IF=0,則禁止中斷CLI指令復(fù)位中斷標(biāo)志:IF=0STI指令置位中斷標(biāo)志:IF=1OF111512DF10IF9TF8SF7ZF65AF43PF21CF0102★陷阱標(biāo)志TF(TrapFlag)用于控制處理器進(jìn)入單步操作方式:設(shè)置TF=0,處理器正常工作;設(shè)置TF=1,處理器單步執(zhí)行指令單步執(zhí)行指令——處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試OF111512DF10IF9TF8SF7ZF65AF43PF21CF01031.物理地址和邏輯地址8086/8088CPU存儲(chǔ)系統(tǒng)中,每個(gè)存儲(chǔ)單元都有一個(gè)唯一的20位編號(hào),從00000H–FFFFFH。16位機(jī)的寄存器為16位,分段后在用戶編程時(shí),采用邏輯地址表示物理地址,形式為:段基地址:段內(nèi)偏移地址分隔符段首地址的高16位8088/8086的存儲(chǔ)器組織104存儲(chǔ)器物理地址的形成邏輯地址是程序中使用的地址,它由段基址和段內(nèi)偏移值所組成,段基址與段內(nèi)偏移值都為16位的二進(jìn)制數(shù)。物理地址也叫實(shí)際地址或絕對(duì)地址,是CPU訪問存儲(chǔ)器時(shí)實(shí)際使用的地址,為20位地址。

物理地址=段基址×10H+段內(nèi)偏移地址105106通過此例說明,每個(gè)內(nèi)存單元有唯一的物理地址,但可由不同的段地址和偏移地址構(gòu)成。物理地址相同,就選中同一單元DSESSSCSIP數(shù)據(jù)暫存器PSW標(biāo)志寄存器執(zhí)行部件控制電路指令譯碼器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組指令隊(duì)列總線接口控制電路運(yùn)算器地址加法器、、、指令1指令2指令3指令4、、、數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3、、、地址總線AB數(shù)據(jù)總線DB控制總線CB地址譯碼器地址12300H=00010010001100000000BA19A16A12A020根地址線:107例:設(shè)某存儲(chǔ)單元的段基址為2000H,偏移地址是5678H。寫出該單元的邏輯地址、物理地址,以及該單元所在段的首末單元物理地址。解:(1)該單元的邏輯地址表示為2000H:5678H

(2)該單元的物理地址是:PA=段基址×10H+偏移地址(EA)

=2000H×10H+5678H=25678H

(3)該單元所在段的首單元地址是:段基址×10H=20000H;

(4)該單元所在段的末單元地址是:段起始地址+FFFFH=2FFFFH。108物理地址的計(jì)算示意圖109

[注意]一個(gè)物理地址對(duì)應(yīng)多個(gè)邏輯地址.如01234H存儲(chǔ)單元其邏輯地址可表示為:

0100H:0234H也可表示為:

0120H:0034H如圖2-10示.110例已知CS=1055H,DS=250AHES=2EF0HSS=8FF0H某操作數(shù)偏移地址=0204H畫出各段在內(nèi)存中的分布、段首地址及操作數(shù)的物理地址10550H250A0H2EF00H8FF00HCSDSESSS111段與段之間可以:

◆重合◆重疊◆緊密連接◆間隔分開112分段(段加偏移)尋址的好處:允許程序在存儲(chǔ)器內(nèi)重定位(浮動(dòng))允許實(shí)模式下編寫的程序在保護(hù)模式下運(yùn)行

可重定位程序是一個(gè)不加修改就可以在任何存儲(chǔ)區(qū)域中運(yùn)行的程序。113段寄存器8086有4個(gè)16位段寄存器CS(代碼段)指明代碼段的起始地址SS(堆棧段)指明堆棧段的起始地址DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址ES(附加段)指明附加段的起始地址每個(gè)段寄存器用來確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途圖示114★代碼段寄存器CS(CodeSegment)代碼段用來存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令115★堆棧段寄存器SS(StackSegment)堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)116★數(shù)據(jù)段寄存器DS(DataSegment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)117★附加段寄存器ES(ExtraSegment)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域118段寄存器的使用程序段:用來存放程序的指令代碼;數(shù)據(jù)段/附加段:用來存放數(shù)據(jù)和運(yùn)算結(jié)果;堆棧段:內(nèi)存中一個(gè)特殊區(qū)域,用于傳遞參數(shù)、保存數(shù)據(jù)和狀態(tài)信息。常用于響應(yīng)中斷或子程序調(diào)用。119★如何分配各個(gè)邏輯段程序的指令序列必須安排在代碼段程序使用的堆棧一定在堆棧段程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中120★段超越前綴指令沒有指明時(shí),一般的數(shù)據(jù)訪問在DS段;使用BP訪問主存,則在SS段默認(rèn)的情況允許改變,需要使用段超越前綴指令;8088指令系統(tǒng)中有4個(gè):CS: ;代碼段超越,使用代碼段的數(shù)據(jù)SS: ;堆棧段超越,使用堆棧段的數(shù)據(jù)DS: ;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)ES: ;附加段超越,使用附加段的數(shù)據(jù)示例1218086/8088對(duì)段寄存器使用的約定序號(hào)內(nèi)存訪問類型默認(rèn)段寄存器可重設(shè)的段寄存器段內(nèi)偏移地址來源1取指令CS無IP2堆棧操作SS無SP3串操作之源串DSES、SSSI4串操作之目標(biāo)串ES無DI5BP用作基址尋址SSES、DS按尋址方式計(jì)算得有效地址6一般數(shù)據(jù)存取DSES、SS按尋址方式計(jì)算得有效地址122工作時(shí)序:表征CPU各引腳在時(shí)間上的工作關(guān)系CPU工作時(shí)序決定系統(tǒng)各部件間的同步和定時(shí),描述CPU引腳如何實(shí)現(xiàn)總線操作。什么是總線操作?8088/8086CPU的工作時(shí)序123總線操作是指CPU通過總線對(duì)外的各種操作。8088的總線操作主要有:存儲(chǔ)器讀、I/O讀操作存儲(chǔ)器寫、I/O寫操作中斷響應(yīng)操作總線請求及響應(yīng)操作CPU正在進(jìn)行內(nèi)部操作、并不進(jìn)行實(shí)際對(duì)外操作的空閑狀態(tài)Ti什么是總線周期?124時(shí)鐘周期CPU的一切操作都是在系統(tǒng)主時(shí)鐘CLK的控制下按節(jié)拍有序地進(jìn)行的。系統(tǒng)主時(shí)鐘一個(gè)周期信號(hào)(時(shí)鐘脈沖)所持續(xù)的時(shí)間稱為時(shí)鐘周期(T),大小等于頻率的倒數(shù),是CPU的基本時(shí)間計(jì)量單位。如某CPU的主頻f=5MHz,則時(shí)鐘周期T=1/f=1/5MHz=200ns(1ns=10-9s)

125總線周期

CPU通過總線對(duì)存儲(chǔ)器或I/O接口進(jìn)行一次讀/寫操作的過程稱為總線周期。為完成對(duì)存儲(chǔ)器或I/O端口的一次訪問,CPU需要先后發(fā)出存儲(chǔ)器或I/O端口地址,發(fā)出讀或者寫操作命令,進(jìn)行數(shù)據(jù)的傳輸。以上的每一個(gè)操作都需要延續(xù)一個(gè)或幾個(gè)時(shí)鐘周期。所以,一個(gè)總線周期由若干個(gè)時(shí)鐘周期(T)組成。126指令周期CPU執(zhí)行一條指令的時(shí)間(包括取指、譯碼、讀寫操作數(shù)到執(zhí)行完成所需的全部時(shí)間)。一個(gè)指令周期由若干個(gè)總線周期組成。取指令需要一個(gè)或多個(gè)總線周期,如果指令的操作數(shù)來自內(nèi)存,則需要另一個(gè)或多個(gè)總線周期取出操作數(shù),如果要把結(jié)果寫回內(nèi)存,還要增加總線周期。因此,不同指令的指令周期長度各不相同。1278088的基本總線周期需要4個(gè)時(shí)鐘周期(T1,T2,T3和T4)當(dāng)需要延長總線周期時(shí)需要插入等待狀態(tài)Tw何時(shí)有總線周期?128任何指令的取指階段都需要存儲(chǔ)器讀總線周期,讀取的內(nèi)容是指令代碼.任何一條以存儲(chǔ)單元為源操作數(shù)的指令都將引起存儲(chǔ)器讀總線周期,任何一條以存儲(chǔ)單元為目的操作數(shù)的指令都將引起存儲(chǔ)器寫總線周期只有執(zhí)行IN指令才出現(xiàn)I/O讀總線周期,執(zhí)行OUT指令才出現(xiàn)I/O寫總線周期CPU響應(yīng)可屏蔽中斷時(shí)生成中斷響應(yīng)總線周期如何實(shí)現(xiàn)同步?129關(guān)鍵問題:總線操作中如何實(shí)現(xiàn)時(shí)序同步?CPU總線周期采用同步時(shí)序:各部件都以系統(tǒng)時(shí)鐘信號(hào)為基準(zhǔn)當(dāng)相互不能配合時(shí),快速部件(CPU)插入等待狀態(tài)等待慢速部件(I/O和存儲(chǔ)器)CPU與外設(shè)接口常采用異步時(shí)序,它們通過應(yīng)答聯(lián)絡(luò)信號(hào)實(shí)現(xiàn)同步操作130總線周期

總線周期總線周期指令周期M1(MachineCycle)(取指)M2(讀存儲(chǔ)器)M3(寫存儲(chǔ)器)時(shí)鐘周期(T狀態(tài))

T1

T2T3T4T5T6T7T8T9

131132第4章:等待狀態(tài)Tw的插入133例:8088CPU讀存儲(chǔ)器總線周期134(DS)=3000H,(BX)=500CH,(3500CH)=9AH

執(zhí)行MOVAL,[BX]1.IO/M變低,

CPU將對(duì)內(nèi)存進(jìn)行操作2.A19~A0上出現(xiàn)地址信號(hào)

00110101000000001100

A19A15A11A7A3A03.ALE上出現(xiàn)正脈沖信號(hào)4.DT/R變低,數(shù)據(jù)收發(fā)器處于接受狀態(tài)T1狀態(tài)T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D0135T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D05.A19~A16上出現(xiàn)狀態(tài)信號(hào)

0IF11S6S5S4S3使用DS

6.AD7~AD0變高阻態(tài)7.RD變低發(fā)給內(nèi)存,CPU將進(jìn)行讀操作8.DEN變低允許數(shù)據(jù)收發(fā)器進(jìn)行數(shù)據(jù)傳送T2狀態(tài)(DS)=3000H,(BX)=500CH,(3500CH)=9AH

執(zhí)行

MOVAL,[BX]136T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D0(DS)=3000H,(BX)=500CH,(3500CH)=9AH

執(zhí)行MOVAL,[BX]T3狀態(tài)9.AD7~AD0上出現(xiàn)數(shù)據(jù)信號(hào)

10011010AD7AD0

數(shù)據(jù)由3500CH內(nèi)存單元送出137T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D0(DS)=3000H,(BX)=500CH,(3500CH)=9AH

執(zhí)行MOVAL,[BX]10.RD變高,

CPU從數(shù)據(jù)線上讀數(shù)據(jù),

將數(shù)據(jù)9AH讀到AL中11.DEN變高,數(shù)據(jù)收發(fā)器與總線斷開,

AD7~AD0變高阻態(tài)T4狀態(tài)138簡例:微處理器最基本的4種總線周期:(1)存儲(chǔ)器讀總線周期(2)存儲(chǔ)器寫總線周期(3)I/O讀總線周期(4)I/O寫總線周期139存儲(chǔ)器寫總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸出數(shù)據(jù)A19~A16S6~S3READY(高電平)IO/M*WR*T1狀態(tài)——輸出20位存儲(chǔ)器地址A19~A0IO/M*輸出低電平,表示存儲(chǔ)器操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)WR*和數(shù)據(jù)D7~D0T3和Tw狀態(tài)——檢測數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——完成數(shù)據(jù)傳送140I/O寫總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸出數(shù)據(jù)0000S6~S3READY(高電平)IO/M*WR*T1狀態(tài)——輸出16位I/O地址A15~A0IO/M*輸出高電平,表示I/O操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)WR*和數(shù)據(jù)D7~D0T3和Tw狀態(tài)——檢測數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——完成數(shù)據(jù)傳送141存儲(chǔ)器讀總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸入數(shù)據(jù)A19~A16S6~S3READY(高電平)IO/M*RD*T1狀態(tài)——輸出20位存儲(chǔ)器地址A19~A0IO/M*輸出低電平,表示存儲(chǔ)器操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)RD*T3和Tw狀態(tài)——檢測數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——前沿讀取數(shù)據(jù),完成數(shù)據(jù)傳送142I/O讀總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸入數(shù)據(jù)S6~S3READY(高電平)IO/M*RD*0000T1狀態(tài)——輸出16位I/O地址A15~A0IO/M*輸出高電平,表示I/O操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)RD*T3和Tw狀態(tài)——檢測數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——前沿讀取數(shù)據(jù),完成數(shù)據(jù)傳送143插入等待狀態(tài)Tw同步時(shí)序通過插入等待狀態(tài),來使速度差別較大的兩部分保持同步在讀寫總線周期中,判斷是否插入Tw1.在T3的前沿檢測READY引腳是否有效2.如果READY無效,在T3和T4之間插入一個(gè)等效于T3的Tw,轉(zhuǎn)13.如果READY有效,執(zhí)行完該T狀態(tài),進(jìn)入T4狀態(tài)144總線周期

T1T2T3T4TiTi

T1T2T3TwTwTwT4TiTi

總線周期總線周期若干個(gè)1~2個(gè)基本總線周期由4個(gè)T狀態(tài)組成:T1、T2、T3、T4等待時(shí)鐘周期Tw,在總線周期的T3和T4之間插入空閑時(shí)鐘周期Ti,在兩個(gè)總線周期之間插入動(dòng)態(tài)145各種周期的動(dòng)態(tài)演示146總線總線的基本概念和分類總線的工作方式常用系統(tǒng)總線標(biāo)準(zhǔn)147總線

是一組導(dǎo)線和相關(guān)的控制、驅(qū)動(dòng)電路的集合。是計(jì)算機(jī)系統(tǒng)各部件之間傳輸?shù)刂贰?shù)據(jù)和控制信息的通道地址總線(AB)數(shù)據(jù)總線(DB)控制總線(CB)148(1)通用性

采用了總線標(biāo)準(zhǔn)可以為各模塊的互連提供一個(gè)標(biāo)準(zhǔn)的界面,這個(gè)界面對(duì)于界面兩端的模塊來說是透明的,界面的任一方只需根據(jù)總線標(biāo)準(zhǔn)要求設(shè)計(jì)和實(shí)現(xiàn)接口的功能,而不用考慮另一方的接口方式,所以按總線標(biāo)準(zhǔn)設(shè)計(jì)的接口具有廣泛的通用性。

總線的優(yōu)點(diǎn)

149(2)便于用戶的二次開發(fā)由于采用同樣總線標(biāo)準(zhǔn)設(shè)計(jì)制造各種功能的模塊板,各個(gè)模塊板是掛在總線上的相互獨(dú)立的模塊,因此用戶可以根據(jù)自己的需要選用現(xiàn)成的功能模塊板,也可根據(jù)自己需要自行設(shè)計(jì)符合總線標(biāo)準(zhǔn)的模塊板。這樣節(jié)省硬件的重復(fù)性開發(fā),也使得編寫該模塊的相應(yīng)軟件更容易,給調(diào)試和修改帶來諸多方便,從而提高了效率,降低了成本。

150(3)便于系統(tǒng)的更新隨著集成電路技術(shù)的發(fā)展,新的芯片不斷產(chǎn)生,微機(jī)系統(tǒng)需要不斷更新。采用統(tǒng)一標(biāo)準(zhǔn)的總線結(jié)構(gòu)對(duì)于系統(tǒng)的更新就更加方便。(4)可不斷提高系統(tǒng)的功能由于采用了標(biāo)準(zhǔn)總線,計(jì)算機(jī)的主要功能部分做成不同的模塊板掛在總線上,這樣就給系統(tǒng)提供了在原設(shè)計(jì)的基礎(chǔ)上以最小的變動(dòng)來跟隨市場要求的可能性。只要根據(jù)新的要求,設(shè)計(jì)新的模塊,插在總線上就可以了。151總線分類CPU總線系統(tǒng)總線外設(shè)總線片內(nèi)總線片外總線按相對(duì)CPU的位置按層次結(jié)構(gòu)152系統(tǒng)總線(1)ISA總線ISA總線是IBMPC/AT機(jī)上使用的總線,為80286CPU而設(shè)計(jì)的,又稱為PCAT總線(2)EISA總線EISA總線是以Compag為代表的幾個(gè)公司,為解決瓶頸現(xiàn)象,針對(duì)486微機(jī)而設(shè)計(jì)的。(3)PCI總線隨著各種應(yīng)用軟件的發(fā)展,需要在微處理器與外部設(shè)備之間進(jìn)行大量的高速的數(shù)據(jù)傳輸,以往的ISA總線,及以后發(fā)展的EISA總線都未能解決總線及高效率傳輸?shù)膯栴}。

153于是由Intel公司首先推出PCI總線,繼而由多家公司聯(lián)合建立、發(fā)展和推廣了PCI總線。PCI總線解決了微處理器與外圍設(shè)備之間的高速通道,總線的頻率為33MHz,與CPU的時(shí)鐘頻率無關(guān),總線寬度為32位,并可以擴(kuò)展到64位,所以其帶寬達(dá)到132Mb/s~264Mb/s。PCI總線與ISA、EISA總線完全兼容,盡管每臺(tái)微型計(jì)算機(jī)系統(tǒng)的插槽數(shù)目有限,但PCI局部總線規(guī)格可以提供“共用插槽”,以便容納一個(gè)PCI及一個(gè)ISA。PCI總線采用了一種獨(dú)特的中間緩沖器的設(shè)計(jì),把處理器子系統(tǒng)與外圍設(shè)備分開,這樣使得PCI的結(jié)構(gòu)不受處理器種類的限制。154總線結(jié)構(gòu)(從微機(jī)系統(tǒng)結(jié)構(gòu)來劃分)(面向系統(tǒng)的)

單總線結(jié)構(gòu)CPUMM

I/OI/OI/O155●

優(yōu)點(diǎn)

控制簡單方便,擴(kuò)充方便●

缺點(diǎn)系統(tǒng)總體傳輸?shù)男屎退俣仁艿较拗?。因?yàn)橥粫r(shí)刻只能在兩個(gè)設(shè)備之間傳送數(shù)據(jù)。

156多總線結(jié)構(gòu)面向CPU的雙總線結(jié)構(gòu)面向主存的雙總線結(jié)構(gòu)雙總線結(jié)構(gòu)多總線結(jié)構(gòu)157面向CPU的雙總線結(jié)構(gòu)存儲(chǔ)總線:CPU與存儲(chǔ)器之間的總線。存儲(chǔ)器與I/O接口間無直接通道CPU

M

I/O

I/O

I/O158●優(yōu)點(diǎn)提高了微機(jī)系統(tǒng)信息傳送的效率和傳送的速度。(雙總線)●缺點(diǎn)由于外設(shè)與主存儲(chǔ)器之間沒有直接的通路,它們之間的信息交換都必須通過CPU才能進(jìn)行中轉(zhuǎn),要求CPU化大量的時(shí)間來進(jìn)行信息的輸入輸出處理,降低了CPU的工作效率。159面向存儲(chǔ)器的雙總線結(jié)構(gòu)在單總線結(jié)構(gòu)基礎(chǔ)上增加一條CPU到存儲(chǔ)器的高速總線CPUMI/O

I/OI/O160●優(yōu)點(diǎn)提高微機(jī)系統(tǒng)信息傳送的效率,減輕了總線的負(fù)擔(dān)?!袢秉c(diǎn)硬件造價(jià)高。多總線結(jié)構(gòu):相見教材161總線的主要性能指標(biāo)總線帶寬(B/S):單位時(shí)間內(nèi)總線上可傳送的數(shù)據(jù)量總線位寬(bit):能同時(shí)傳送的數(shù)據(jù)位數(shù)總線的工作頻率(MHz),也稱總線時(shí)鐘頻率總線帶寬=(總線位寬/8)(工作頻率/每個(gè)存取周期的時(shí)鐘數(shù))162總線技術(shù)1、總線的基本功能總線上部件的工作方式:

主控方式:部件工作于主控方式時(shí)可控制總線并啟動(dòng)信息傳送。

從方式:部件工作于從方式時(shí)只能按主控部件的要求工作。

163總線傳輸需要解決的問題總線傳輸同步總線仲裁控制出錯(cuò)處理總線驅(qū)動(dòng)1642、總線數(shù)據(jù)傳輸?shù)耐椒绞皆床考?、目的部件?shù)據(jù)在總線上傳輸時(shí),送出數(shù)據(jù)的部件叫源部件,接受數(shù)據(jù)的部件叫目的部件。定時(shí)信號(hào)總線上的數(shù)據(jù)傳送必須由定時(shí)信號(hào)控制,定時(shí)信號(hào)使源部件和目的部件之間的操作同步。定時(shí)方式同步定時(shí)方式、異步定時(shí)方式、半同步定時(shí)方式。165(1)同步定時(shí)方式總線上的數(shù)據(jù)傳送用一個(gè)共同的時(shí)鐘來同步雙方的操作,發(fā)送和接收信號(hào)都在固定的時(shí)刻發(fā)出。數(shù)據(jù)源READY

ACK目的

t1

t2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論