教學(xué)課件:《微型計(jì)算機(jī)接口技術(shù)》桂小林_第1頁(yè)
教學(xué)課件:《微型計(jì)算機(jī)接口技術(shù)》桂小林_第2頁(yè)
教學(xué)課件:《微型計(jì)算機(jī)接口技術(shù)》桂小林_第3頁(yè)
教學(xué)課件:《微型計(jì)算機(jī)接口技術(shù)》桂小林_第4頁(yè)
教學(xué)課件:《微型計(jì)算機(jī)接口技術(shù)》桂小林_第5頁(yè)
已閱讀5頁(yè),還剩637頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)

專業(yè)課程

微機(jī)接口技術(shù)課程的目的與意義軟件熱:軟件更有用???軟件熱:軟件更容易???硬件還值得做嗎?硬件之上、“軟件”之下,需要什么?誰(shuí)來(lái)完成二者的結(jié)合?計(jì)算機(jī)專業(yè)需要培養(yǎng)什么人才?人機(jī)接口、單片機(jī)、嵌入式系統(tǒng)?軟件系統(tǒng)固件系統(tǒng)硬件系統(tǒng)課程的目的與意義(2)我們經(jīng)??匆?jiàn)的,需要深入了解鍵盤鼠標(biāo)接口串行通信接口音頻接口USB接口調(diào)制解調(diào)器電話線接口網(wǎng)絡(luò)接口并行行通信接口課程的目的與意義(3)北橋接口芯片CPU芯片存儲(chǔ)器接口南橋接口芯片接口插座(物理形態(tài))PCI總線AGPIDE本課程的基本任務(wù)了解微型計(jì)算機(jī)系統(tǒng)的基本組成及發(fā)展史(2學(xué)時(shí))以Intel的8086/8088為主,兼顧80X86,掌握微處理器的內(nèi)部結(jié)構(gòu)、編程結(jié)構(gòu)、引腳及時(shí)序(先修)(4學(xué)時(shí))掌握80x86的尋址方式及I/O指令的工作方法(先修)(不講)學(xué)會(huì)80386的內(nèi)存管理機(jī)制(次重點(diǎn))(2學(xué)時(shí))掌握內(nèi)存譯碼方法、存儲(chǔ)芯片與CPU的連接方法(重點(diǎn))(6)掌握常用接口芯片(8255/8253/8251)的工作原理及簡(jiǎn)單應(yīng)用方法(重點(diǎn))(16-18學(xué)時(shí))掌握接口控制方法(中斷和DMA)的芯片級(jí)原理與應(yīng)用(8237/8259)的原理,了解二者在PC計(jì)算機(jī)的應(yīng)用方法(次重點(diǎn))(6)掌握模擬數(shù)字轉(zhuǎn)換原理及其簡(jiǎn)單D/A和A/D接口芯片的使用(重點(diǎn))(6)了解幾種典型總線及其驅(qū)動(dòng)技術(shù)(次重點(diǎn))(4)課程的基本目標(biāo)《微機(jī)接口技術(shù)》是學(xué)習(xí)和掌握微機(jī)硬件知識(shí)、接口芯片、固件和利用他們進(jìn)行硬件系統(tǒng)設(shè)計(jì)的主干課程。包括如下三方面的內(nèi)容:微型計(jì)算機(jī)的基本工作原理匯編語(yǔ)言程序設(shè)計(jì)(先修《匯編語(yǔ)言程序設(shè)計(jì)》)微型計(jì)算機(jī)接口技術(shù)通過(guò)學(xué)習(xí),學(xué)生必須建立微型計(jì)算機(jī)系統(tǒng)的整體概念,形成微機(jī)系統(tǒng)軟硬件開(kāi)發(fā)的初步能力,達(dá)到:會(huì)看芯片手冊(cè)(DataSheet)(簡(jiǎn)單芯片實(shí)例,復(fù)雜芯片實(shí)例)會(huì)看芯片時(shí)序圖會(huì)設(shè)根據(jù)芯片手冊(cè)和應(yīng)用需要計(jì)基本應(yīng)用電路(使用Protel軟件)主要參考書桂小林,微型計(jì)算機(jī)接口技術(shù),高等教育出版社,2010Intel微處理器——從8086到Pentium系列體系結(jié)構(gòu)、編程與接口技術(shù),高等教育出版社(中英文版)李保紅、繆相林、桂小林,微型計(jì)算機(jī)機(jī)組織與接口技術(shù),清華大學(xué)出版社,2005考核要求作業(yè):10%實(shí)驗(yàn)上機(jī):10%實(shí)驗(yàn)報(bào)告交任課教師考試:80%===========================聯(lián)系:xlgui@課件:52/gxl/

教學(xué)綱要微機(jī)系統(tǒng)概論80x86微處理器結(jié)構(gòu)、時(shí)序與存儲(chǔ)器組織總線接口及技術(shù)ISA、PCIUSB(了解原理、后續(xù)第9章應(yīng)用)、RS232、485I2C、SPI、JTAG8、16、32位存儲(chǔ)器系統(tǒng)接口設(shè)計(jì)(16位重點(diǎn))輸入/輸出接口控制方法/譯碼設(shè)計(jì)并行接口芯片-8255A及其應(yīng)用(重點(diǎn)應(yīng)用)LED鍵盤打印機(jī)24教學(xué)綱要串行接口芯片-8251ARS-232應(yīng)用可編程定時(shí)/計(jì)數(shù)器芯片:8253A精確定時(shí),計(jì)算機(jī)日時(shí)鐘脈沖計(jì)數(shù),編碼盤可編程DMA控制芯片8237原理(一般掌握)中斷系統(tǒng)與可編程中斷控制芯片8259原理(一般掌握)模數(shù)轉(zhuǎn)換和數(shù)碼轉(zhuǎn)換接口A/D應(yīng)用D/A應(yīng)用第1章:微機(jī)系統(tǒng)概論1.1計(jì)算機(jī)發(fā)展概論1.2微處理器與單片機(jī)1.3微型計(jì)算機(jī)1.4微型計(jì)算機(jī)應(yīng)用1.1計(jì)算機(jī)發(fā)展概論圖靈機(jī)模型1936年,英國(guó)數(shù)學(xué)家阿倫?圖靈(A.M.Turring)從計(jì)算一個(gè)數(shù)的一般過(guò)程著手對(duì)計(jì)算的本質(zhì)進(jìn)行了研究,提出了一種理想的計(jì)算機(jī)的數(shù)學(xué)模型:圖靈機(jī)(TurringMachine,TM)。圖靈機(jī)并不是具體的機(jī)器,而是一個(gè)通用的計(jì)算機(jī)模型。馮·諾依曼計(jì)算機(jī)馮?諾依曼提出了3個(gè)重要的設(shè)計(jì)思想(EDVAC):(1)計(jì)算機(jī)由5個(gè)基本部分組成:運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備;(2)采用二進(jìn)制形式表示計(jì)算機(jī)的指令和數(shù)據(jù);(3)將程序(由一系列指令組成)和數(shù)據(jù)存放在存儲(chǔ)器中,并讓計(jì)算機(jī)自動(dòng)地執(zhí)行程序。這就是“存儲(chǔ)程序和程序控制”思想的基本含義。該思想奠定了現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)的根基。第一臺(tái)計(jì)算機(jī)-ENIAC(1946年)1.2微處理器與單片機(jī)1.2.1微處理器1.2.2單片計(jì)算機(jī)1.2.1微處理器微處理器的發(fā)展史正是微型計(jì)算機(jī)發(fā)展史的一個(gè)真實(shí)縮影。微處理器是指由一片或幾片大規(guī)模集成電路組成的具有運(yùn)算器和控制器功能的中央處理器部件(CPU),又稱為微處理機(jī)(MicroProcessor,MP)。在微型計(jì)算機(jī)中直接用CPU來(lái)表示微處理器,它除算術(shù)邏輯部件和控制部件以外,還包含一組寄存器(Registers)和高速緩沖存儲(chǔ)器(Cache)等特殊的存儲(chǔ)器。微處理器的發(fā)展大體上分為8個(gè)階段1、第一階段:4位或8位微處理器2、第二階段:8位微處理器3、第三階段:16位微處理器4、第四階段:16位高性能微處理器5、第五階段:32位微處理器6、第六階段:32位Pentium微處理器7、第七階段:64位Itanium處理器8、第八階段:雙核和多核處理器1、第一階段:4位或8位微處理器1971年10月,Intel公司推出了第一片微處理器4004,它的字長(zhǎng)為4位,后來(lái),Intel公司又推出了8位微處理器8008,集成了2000個(gè)晶體管,工藝水平是10μm。這是微處理器發(fā)展的第一階段。2、第二階段:8位微處理器Zilog公司在于1976年推出了8位微處理器Z80,Motorola公司也推出了8位微處理器MC6800。Intel公司也相繼推出了8位微處理器8080和8085世界上第一臺(tái)微型計(jì)算機(jī)Altair8800是1975年4月由一家名為Altair的公司推出的,采用了Z80芯片做微處理器。沒(méi)有顯示器,沒(méi)有鍵盤,面板上只有指示燈和開(kāi)關(guān),給人的感覺(jué)更像是一臺(tái)儀器箱。3、第三階段:16位微處理器1978年,Intel公司推出了8位微處理器8086,Zilog公司推出了Z8000,Motorola公司推出了MC68000。IBM公司利用8088生產(chǎn)的個(gè)人計(jì)算機(jī)IBMPC/XT,在市場(chǎng)上獲得巨大成功,也幫助Intel公司確立了在微處理器市場(chǎng)上的主導(dǎo)地位,幫助Microsoft公司確立了在操作系統(tǒng)市場(chǎng)上的主導(dǎo)地位。4、第四階段:16位高性能微處理器1982年,Intel發(fā)布了80286處理器,也就是俗稱的286。80286芯片上集成了14.3萬(wàn)只晶體管,處理器16位字長(zhǎng),時(shí)鐘頻率由最初的6MHz逐步提高到20MHz。其內(nèi)部和外部數(shù)據(jù)總線皆為16位,地址總線24位。與8086相比,80286尋址能力達(dá)到了16MB,其速度比8086提高了5倍甚至更多。80286處理器出現(xiàn)標(biāo)志微處理器的發(fā)展進(jìn)入第四個(gè)階段。IBM公司將80286用在技術(shù)更為先進(jìn)IBMPCAT機(jī)中,AT機(jī)的外部總線為16位(IBMPC機(jī)為8位),內(nèi)存容量可擴(kuò)展到16MB,可使用更大的硬盤來(lái)存儲(chǔ)數(shù)據(jù),支持VGA彩色顯示系統(tǒng),在性能上有了重大的進(jìn)步。第一臺(tái)IBMPC機(jī)5、第五階段:32位微處理器1985年,Intel公司推出了32位的微處理器80386,集成度達(dá)到100萬(wàn)個(gè)晶體管,主頻為25~200MHz。與80286相比,80386不僅字長(zhǎng)、尋址空間和主頻有較大提高,而且也擴(kuò)充了保護(hù)模式,并且提供了實(shí)地址模式和虛擬8086模式來(lái)實(shí)現(xiàn)向上兼容,此外80386在片內(nèi)增加了16位的高速緩存器(Cache),使運(yùn)行更加流暢。1989年Intel公司又發(fā)布了80486,其主要特點(diǎn)是將80386和協(xié)處理器80387集成在一起。Intel使用了一種叫“倍頻”的技術(shù)。6、第六階段:32位Pentium微處理器從1993年開(kāi)始,Intel公司相繼發(fā)布了Pentium、PentiumPro、PentiumMMX、PentiumⅡ、PentiumIII和PentiumIV等微處理器,成為市場(chǎng)主流。在同一時(shí)期,AMD公司也先后發(fā)布了K6、K6-2、K7,以及Thunderbird(雷鳥(niǎo))、Atnlon(速龍)、Duron(鉆龍)等。Pentium處理器集成了310萬(wàn)個(gè)晶體管,最初的工作頻率是60MHz、66MHz,后來(lái)又提升到200MHz以上。7、第七階段:64位Itanium處理器

2001年,Intel公司推出了64位的安騰處理器,采用0.18微米的CMOS制造工藝,獲得了業(yè)界的廣泛支持,開(kāi)始了安騰家族的發(fā)展史。2002年,Intel又推出了安騰家族的第二代產(chǎn)品—安騰2處理器。安騰處理器是構(gòu)建在IA-64(IntelArchitecture64)上,IA-64突破了傳統(tǒng)IA-32架構(gòu)的許多限制,在數(shù)據(jù)的處理能力,系統(tǒng)的穩(wěn)定性、安全性、可用性等方面獲得了突破性的提高。2006年,Intel推出了雙核安騰2處理器9000系列,其性能與IBMPower5(4核)處理器相當(dāng),與安騰2處理器相比,性能則提高了一倍。雙核安騰2提供近三級(jí)高速緩存(24MB),支持超線程(HT)技術(shù)和改進(jìn)的英特爾虛擬化技術(shù),功耗降低了20%。8、第八階段:雙核和多核處理器

目前,Intel公司和AMD公司都推出了自己的多核處理器,而且雙核和4核處理器目前已經(jīng)投入市場(chǎng)。從公司市場(chǎng)導(dǎo)向來(lái)看,他們計(jì)劃在2010年左右推出8核處理器。雙核處理器就是在一塊CPU基板上集成兩個(gè)處理器核心,并通過(guò)并行總線將各處理器核心連接起來(lái)。雙核只是單芯片多處理器(ChipMultiProcessors,CMP)中最基本、最簡(jiǎn)單、最容易實(shí)現(xiàn)的一種類型。CMP最早是由美國(guó)斯坦福大學(xué)提出的,其思想是在一塊芯片內(nèi)實(shí)現(xiàn)對(duì)稱多處理(SymmetricalMulti-Processing,SMP)架構(gòu),可并行執(zhí)行不同進(jìn)程??傊?,從微處理器的發(fā)展歷程可以看出,隨著新的半導(dǎo)體工藝、新的計(jì)算機(jī)技術(shù)的涌現(xiàn),微處理器的性能不斷提高,而成本不斷降低,這使得微型計(jì)算機(jī)在科學(xué)計(jì)算、信息處理、工業(yè)控制、儀器儀表和家用電器等領(lǐng)域的應(yīng)用日趨廣泛,在國(guó)民經(jīng)濟(jì)和日常生活中扮演著愈來(lái)愈重要的角色。單核與多核比較微處理器的發(fā)展規(guī)律摩爾定律微型計(jì)算機(jī)的發(fā)展是以微處理器的發(fā)展來(lái)表征的;微處理器的集成度每隔18個(gè)月就會(huì)翻一番,芯片的性能也隨之提高一倍GordonE.Moore,Intel公司的創(chuàng)始人之一處理器發(fā)展曲線性能功能197219741976197819801982198519891993

199520014004800880808085808680286803868048680586808880186804880228049805180968098Intel公司微處理器單片機(jī)奔騰AVRPICARM1.2.2單片計(jì)算機(jī)單片機(jī)即單片機(jī)微型計(jì)算機(jī),是將計(jì)算機(jī)主要功能(CPU、內(nèi)存和I/O接口等)集成在一小塊硅片上的微型計(jì)算機(jī)單片機(jī)目前發(fā)展非常迅速,種類也很多,用途非常廣泛。Intel的8031/8051/8052等普通8位單片機(jī)Atmel的AVR系列增強(qiáng)型8位單片機(jī)PIC系列增強(qiáng)型16位單片機(jī)ARM公司等的ARM7/9等32位單片機(jī)單片機(jī)為工業(yè)測(cè)控而設(shè)計(jì),具有三高優(yōu)勢(shì)(集成度高、可靠性高、性價(jià)比高)。主要應(yīng)用于工業(yè)檢測(cè)與控制、計(jì)算機(jī)外設(shè)、智能儀器儀表、通訊設(shè)備家用電器等。特別適合于嵌入式微型機(jī)應(yīng)用系統(tǒng)。MCS-51系列MCS-51系列基本產(chǎn)品型號(hào):8051、8031、8751稱為51子系列。不同型號(hào)MCS-51單片機(jī)CPU處理能力和指令系統(tǒng)完全兼容,只是存儲(chǔ)器和I/O接口的配置有所不同。MCS-96系列1983-16位單片機(jī)IntelMCS-96系列8098/8096、80C198/80C19632位單片機(jī)8096032位新一代通用單片機(jī)新一代通用單片機(jī)AVR、PIC、ARM新一代專用單片機(jī)DSP、MPEG4、VOIP、IPTV、RF如,ATmega128是一種增強(qiáng)型外8位/內(nèi)32位AVR微處理器(內(nèi)部32位總線),具有128K字節(jié)的系統(tǒng)內(nèi)可編程FlashAVR單片機(jī)外設(shè)接口豐富兩個(gè)具有獨(dú)立的預(yù)分頻器和比較器功能的8位定時(shí)器/計(jì)數(shù)器兩個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16位定時(shí)器/計(jì)數(shù)器具有獨(dú)立預(yù)分頻器的實(shí)時(shí)時(shí)鐘計(jì)數(shù)器兩路8位PWM,6路分辨率可編程(2到16位)的PWM輸出比較調(diào)制器8路10位ADC面向字節(jié)的兩線接口-TWI兩個(gè)可編程的串行同步異步接口-USART異步RS-232C可工作于主機(jī)/從機(jī)模式的SPI串行接口具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定時(shí)器片內(nèi)模擬比較器JTAG調(diào)試接口(與IEEE1149.1標(biāo)準(zhǔn)兼容)工作電壓:2.7-5.5V1.3微型計(jì)算機(jī)1981年8月12日,IBM公司在紐約宣布IBMPC機(jī)面世,計(jì)算機(jī)從此進(jìn)入了個(gè)人電腦的新紀(jì)元。第一臺(tái)IBMPC采用Intel的8088微處理器芯片,主頻4.77MHz,有64KB內(nèi)存,采用低分辨率單色顯示器,使用單面160K軟盤存儲(chǔ)文件和操作系統(tǒng),配備了微軟公司編寫的MS-DOS1.0操作系統(tǒng)軟件。微型計(jì)算機(jī)的基本組成如圖1.2所示。它也由硬件和軟件兩大部分構(gòu)成。其中,硬件部分由主機(jī)和外設(shè)構(gòu)成;軟件由系統(tǒng)軟件(如操作系統(tǒng))、應(yīng)用軟件(如稅務(wù)管理軟件)和程序設(shè)計(jì)語(yǔ)言(如VisualBasic)等構(gòu)成。主機(jī)由微處理器、存儲(chǔ)器、輸入輸出接口(I/O接口)和總線等構(gòu)成;外設(shè)由顯示器、鍵盤、鼠標(biāo)、音箱等部分組成。這些硬件的功能各異,各自完成相應(yīng)的工作,如輸入、輸出、運(yùn)算和存儲(chǔ)。微型計(jì)算機(jī)組成微型計(jì)算機(jī)硬件主機(jī)微處理器(CPU)存儲(chǔ)器(RAM、ROM)輸入/輸出接口(并行、串行、CTC、ADC、DAC等)總線(AB、DB、CB)軟件外設(shè)

輸入設(shè)備(鍵盤、掃描儀、語(yǔ)音識(shí)別儀…)

輸出設(shè)備(顯示器、打印機(jī)、繪圖儀、…)

輔助存儲(chǔ)器(磁帶、磁盤、光盤)電源電路時(shí)鐘電路系統(tǒng)軟件(操作系統(tǒng),編輯、編譯程序,故障診斷,監(jiān)控程序等)應(yīng)用軟件(科學(xué)計(jì)算軟件,工業(yè)控制軟件,數(shù)據(jù)處理軟件等)程序設(shè)計(jì)語(yǔ)言(VisualBasci、Dephi等)圖1-2微型計(jì)算機(jī)的基本組成主機(jī)結(jié)構(gòu)主機(jī)板電路結(jié)構(gòu)主機(jī)是微型計(jì)算機(jī)的核心部件,通常采用總線結(jié)構(gòu),CPU、存儲(chǔ)器、外設(shè)接口等均掛接在總線上,外設(shè)通過(guò)總線和外設(shè)接口與主機(jī)互連,完成各種輸入輸出功能。下面以IBMPC/AT為例,闡述微型計(jì)算機(jī)的主機(jī)板電路結(jié)構(gòu)。該結(jié)構(gòu)如圖1-3所示,主要由4部分組成。IBMPC/AT選用80286作CPU。80286采用實(shí)地址工作方式時(shí),與8086完全相同,但運(yùn)行速度更快。80286還可以采用功能更強(qiáng)的保護(hù)虛地址工作方式。IBMPC/AT的主存由半導(dǎo)體存儲(chǔ)芯片ROM和RAM構(gòu)成。ROM部分主要是固化ROM-BIOS(BasicInput/OutputSystem)。主板以I/O操作形式設(shè)置了中斷控制器8259A(兩個(gè)芯片)、DMA控制器8237A(兩個(gè)芯片)和定時(shí)控制器8254等I/O接口電路。IBMPC/AT的系統(tǒng)總線由數(shù)據(jù)總線(DB)、地址總線(AB)和控制總線(CB)構(gòu)成,已經(jīng)成為PC工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(IndustryStandardArchitecture,ISA),并被稱為ISA總線。微型計(jì)算機(jī)的總線功能地址總線AB:用來(lái)傳送CPU輸出的地址信號(hào),確定被訪問(wèn)的存儲(chǔ)單元、I/O端口。地址總線的條數(shù)決定微處理器的尋址能力數(shù)據(jù)總線DB:用來(lái)在CPU與存儲(chǔ)器、I/O接口之間進(jìn)行數(shù)據(jù)傳送數(shù)據(jù)總線的條數(shù)決定微處理器一次最多可以傳送的數(shù)據(jù)寬度控制總線CB:用來(lái)傳送各種控制信號(hào)1.4微型計(jì)算機(jī)應(yīng)用微型計(jì)算機(jī)的發(fā)展很大程度上是由其廣泛的應(yīng)用所推動(dòng)的,正是微機(jī)的普及將普通人與計(jì)算機(jī)聯(lián)系起來(lái),從而使人類步入信息時(shí)代。以下僅是微機(jī)應(yīng)用中的幾個(gè)主要的方面。科學(xué)計(jì)算信息處理和事務(wù)管理過(guò)程控制儀器儀表控制計(jì)算機(jī)輔助教學(xué)與設(shè)計(jì)計(jì)算機(jī)網(wǎng)絡(luò)與通信家用電器和民用產(chǎn)品控制Thanks!第2章、微處理器與單片機(jī)52第二章微型處理器與單片機(jī)

第1節(jié)CPU的內(nèi)部邏輯結(jié)構(gòu)第2節(jié)CPU的外部結(jié)構(gòu)第3節(jié)8086支持的存儲(chǔ)器結(jié)構(gòu)第4節(jié)8086系統(tǒng)配置第5節(jié)CPU的操作和時(shí)序53第1節(jié)CPU的內(nèi)部邏輯結(jié)構(gòu)一、CPU的組成和功能1、CPU的組成

CPU主要由運(yùn)算器、控制器、寄存器組和片內(nèi)總線等組成2、CPU的功能(1)指令控制(2)操作控制(3)時(shí)序控制(4)執(zhí)行指令(5)數(shù)據(jù)加工(運(yùn)算)54二、8086/8088微處理器的內(nèi)部結(jié)構(gòu)8086是16位的微處理器,有16位數(shù)據(jù)線和20位地址線,可尋址220即1MB。8088是準(zhǔn)16位微處理器,內(nèi)部為16位,外部數(shù)據(jù)線為8位。8086主要分為兩個(gè)獨(dú)立的功能模塊,總線接口模塊(BIU)和執(zhí)行部件(EU),它們可以并行工作。如圖2.1所示。55561、總線接口部件BIU

總線接口部件負(fù)責(zé)與存儲(chǔ)器、輸入/輸出端口傳送數(shù)據(jù)??偩€接口部件組成:

(1)專用寄存器組:段地址寄存器CS、DS、ES、SS和指令指針寄存器IP,均為16位。

(2)地址加法器:8086在尋址1M字節(jié)地址空間時(shí)需用20位地址,這個(gè)地址就是由地址加法器產(chǎn)生的。57

具體的說(shuō),地址加法器將段寄存器(16位)的內(nèi)容左移4位,然后與指令指針寄存器IP的內(nèi)容相加得到20位的物理地址。例如:從內(nèi)存取指令時(shí),

(CS)=5760H,(IP)=1234H,則物理地址為:

57600H+1234H=57934H。這里,先將段寄存器CS左移4位(16進(jìn)制數(shù)只需后面加一個(gè)零)。58(3)6字節(jié)的指令隊(duì)列:總線接口部件從內(nèi)存中取來(lái)的指令放在一個(gè)緩沖區(qū)中,這個(gè)緩沖區(qū)叫指令隊(duì)列。執(zhí)行部件在執(zhí)行指令過(guò)程中從指令隊(duì)列取來(lái)指令執(zhí)行。

(4)輸入/輸出控制電路:該控制電路將8086CPU的片內(nèi)總線與系統(tǒng)總線相連,是8086CPU與外部交換數(shù)據(jù)的必經(jīng)之路。592、執(zhí)行部件EU(ExecutionUnit)

執(zhí)行部件負(fù)責(zé)執(zhí)行指令。通常,從指令隊(duì)列中取得等待執(zhí)行的指令。組成如下:(1)算術(shù)邏輯單元ALU:完成各種運(yùn)算。(2)標(biāo)志寄存器FR:用來(lái)保存ALU運(yùn)算結(jié)果的一些特征信息,如運(yùn)算是否進(jìn)位。(3)通用寄存器組:數(shù)據(jù)寄存器AX,BX,CX,DX和寄存器BP,SP,SI及DI,均16位。(4)執(zhí)行部件控制電路603、BIU和EU的管理BIU和EU可以并行工作,提高CPU效率。(1)BIU監(jiān)視著指令隊(duì)列。當(dāng)指令隊(duì)列中有2個(gè)空字節(jié)時(shí),就自動(dòng)把指令取到隊(duì)列中。(2)EU執(zhí)行指令時(shí),從指令隊(duì)列頭部取指令,然后執(zhí)行。如需訪問(wèn)存儲(chǔ)器,則EU向BIU發(fā)出請(qǐng)求,由BIU訪問(wèn)存儲(chǔ)器。(3)在執(zhí)行轉(zhuǎn)移、調(diào)用、返回指令時(shí),需改變隊(duì)列中的指令,要等新指令裝入隊(duì)列中后,EU才繼續(xù)執(zhí)行指令。(4)當(dāng)指令隊(duì)列已滿,而且執(zhí)行部件對(duì)總線接口部件又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí),總線接口部件便進(jìn)入空閑狀態(tài)614、寄存器結(jié)構(gòu)(編程結(jié)構(gòu))

(1)通用寄存器組8086CPU有8個(gè)16位的通用寄存器,分2組。通用數(shù)據(jù)寄存器:AX,BX,CX,DX,用來(lái)存放數(shù)據(jù)或地址;一個(gè)16位寄存器也可以當(dāng)作兩個(gè)8位寄存器用,此時(shí)表示為AH,AL,BH,BL,CH,CL,DH,DL。基地址寄存器BP,堆棧指針寄存器SP,源變址寄存器SI和目的變址寄存器DI主要存放地址,也可以存放數(shù)據(jù)。62(2)段寄存器四個(gè)段寄存器為CS(代碼段寄存器)、DS(數(shù)據(jù)段寄存器)、ES(附加段寄存器)SS(堆棧段寄存器)。通過(guò)這四個(gè)段寄存器,CPU可=以定位4個(gè)邏輯段,分別為:當(dāng)前代碼段當(dāng)前數(shù)據(jù)段當(dāng)前附加段當(dāng)前堆棧段。63(3)指令指針寄存器IP

該寄存器的內(nèi)容用來(lái)指明將要執(zhí)行的下一條指令在代碼段中的位置??偩€接口部件BIU負(fù)責(zé)修改IP寄存器的值,使它始終指向?qū)⒁獔?zhí)行的下一條指令。64(4)標(biāo)志寄存器FR

FR主要用來(lái)標(biāo)志運(yùn)算結(jié)果的狀態(tài),以及控制CPU的操作。各標(biāo)志位定義如圖2.2所示(共有9個(gè)標(biāo)志):65標(biāo)志位共有9個(gè),6個(gè)是狀態(tài)標(biāo)志,用來(lái)表示運(yùn)算結(jié)果的特征,包括CF、PF、AF、ZF、SF和OF;3個(gè)是控制標(biāo)志,用來(lái)控制CPU的操作,包括IF、DF和TF。CF:進(jìn)位標(biāo)志,表示本次運(yùn)算中最高位(第7位或第15位)有進(jìn)位或有借位。PF:奇偶標(biāo)志。

PF=1表示本次運(yùn)算中低8位有偶數(shù)個(gè)“1”;

PF=0表示有奇數(shù)個(gè)“1”。AF:輔助進(jìn)位標(biāo)志。AF=1表示本次運(yùn)算第3位向第4位有進(jìn)位或有借位。在十進(jìn)制運(yùn)算中作為是否進(jìn)行十進(jìn)制調(diào)整的依據(jù)。ZF:零標(biāo)志。ZF=1表示本次運(yùn)算結(jié)果為零,否則ZF=0SF:符號(hào)標(biāo)志。SF=0為正數(shù);SF=1為負(fù)數(shù)。OF:溢出標(biāo)志。OF=1表示本次運(yùn)算結(jié)果產(chǎn)生溢出,否則OF=0。所謂溢出就是指運(yùn)算結(jié)果超出了相應(yīng)類型數(shù)據(jù)所能表示的范圍。66DF:方向標(biāo)志,用來(lái)控制串操作指令的執(zhí)行。

DF=0則串操作指令的地址自動(dòng)增量;若DF=1,則自動(dòng)減量。IF:中斷標(biāo)志,用來(lái)控制對(duì)可屏蔽中斷的響應(yīng)。IF=1,則允許CPU響應(yīng)可屏蔽中斷;IF=0,則CPU不能響應(yīng)可屏蔽中斷。TF:?jiǎn)尾綐?biāo)志。若TF=1,則CPU進(jìn)入單步工作方式,即CPU每執(zhí)行一條指令就自動(dòng)產(chǎn)生一次內(nèi)部中斷;TF=0,則CPU正常執(zhí)行。675、8088與8086的區(qū)別8088的指令隊(duì)列只有4個(gè)字節(jié),若出現(xiàn)1個(gè)空字節(jié),BIU就會(huì)自動(dòng)取指令補(bǔ)充。

8088BIU與外部交換數(shù)據(jù)是8位的,I/O控制電路與專用寄存器之間的數(shù)據(jù)總線寬度也是8位的。68第二節(jié)CPU的外部結(jié)構(gòu)8086/8088CPU芯片都是40條引腳的雙列直插式封裝。部分引腳采用了分時(shí)復(fù)用方式,即同一條引腳在不同的時(shí)刻具有不同的用途。如圖2.3所示。8086/8088CPU可有兩種工作模式,即最大模式和最小模式。不同模式下個(gè)別引腳的功能是不同的。698086與8088CPU外觀比較70一、8086引腳分類(1)公共引腳地址總線數(shù)據(jù)總線時(shí)鐘信號(hào)中斷信號(hào)就緒/等待信號(hào)(2)模式選擇引腳最小模式引腳最大模式引腳71最小模式和最大模式的概念所謂最小模式,就是系統(tǒng)中只有8086或8088一個(gè)微處理器。最大模式是相對(duì)最小模式而言。最大模式用在中等規(guī)模的或者大型的8086/8088系統(tǒng)中。有外圍總線控制器72(1)、公共引腳說(shuō)明地址總線數(shù)據(jù)總線時(shí)鐘信號(hào)中斷信號(hào)就緒/等待信號(hào)73地址總線Intel808812345678910111213141516171819204039383736353433323130292827262524232221獨(dú)立輸出之高8位地址:A8~A15A8A14A15AD0AD7A16/S3A19/S6分時(shí)輸出的AD0~AD7,通過(guò)鎖存器產(chǎn)生低8位地址A0~A7,Pin16~9分時(shí)輸出的A16/S3~19/S6,通過(guò)鎖存器產(chǎn)生最高4位地址A16~A19共20根地址線,尋址空間為:220=1M74數(shù)據(jù)總線Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6分時(shí)輸出的AD0~AD7,直接產(chǎn)生8位數(shù)據(jù)D0~D7Pin16~9共8根數(shù)據(jù)線,字長(zhǎng)為:8位75時(shí)鐘信號(hào)Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6時(shí)鐘輸入:CLK,Pin-19為8088提供基準(zhǔn),來(lái)自8284芯片,為4.77MHZ不可屏蔽中斷請(qǐng)求:NMI,輸入,上升沿觸發(fā)。INT2,Pin-17CLKNMI不可屏蔽中斷信號(hào)76可屏蔽中斷Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6可屏蔽中斷請(qǐng)求:INTR,輸入,高電平觸發(fā)。Pin-18中斷允許標(biāo)志可屏蔽中斷請(qǐng)求??偩€周期的最后一個(gè)時(shí)鐘周期檢測(cè)INTR。可以通過(guò)8259擴(kuò)充中斷源。CLKNMIINTR77就緒與等待Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6READY信號(hào)用來(lái)與慢速存儲(chǔ)器或外設(shè)進(jìn)行速度匹配。T2時(shí)鐘周期末檢測(cè)到READY為低時(shí),在總線周期的第3時(shí)鐘周期插入一個(gè)等待周期Tw。如此每個(gè)T后檢測(cè),重復(fù)插入Tw直到READY變高。CLKNMIINTRREADYCPU就緒信號(hào):READY,輸入,高電平有效。Pin-2278等待測(cè)試Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6TEST信號(hào)與WAIT指令聯(lián)合使用。CPU每5個(gè)時(shí)鐘時(shí)鐘周期檢測(cè)一次TEST信號(hào),如高,繼續(xù)執(zhí)行WAIT,否則,跳過(guò)WAIT指令,執(zhí)行后續(xù)指令。可用來(lái)支持實(shí)現(xiàn)多CPU協(xié)同工作。CLKNMIINTRREADYCPU測(cè)試信號(hào):TEST,輸入,低電平有效。Pin-23TEST792、模式選擇信號(hào)8086的有兩種組態(tài)模式1.兩種組態(tài)分別為:最小組態(tài)(模式)和最大組態(tài)(模式)2.兩種組態(tài)的區(qū)別:(1)8086引腳 MN/MX=1時(shí),8086工作在最小組態(tài). MN/MX=0時(shí),8086工作在最大組態(tài).(2)最小組態(tài)時(shí),系統(tǒng)中只有一個(gè)8086CPU工作,所有總線控制信號(hào)均有8086產(chǎn)生,總線控制邏輯被減小到最小;(3)最大組態(tài)時(shí),8086提供一組信號(hào),以組成多處理器/協(xié)處理器微機(jī)系統(tǒng)。即在一個(gè)系統(tǒng)中有兩個(gè)或兩個(gè)以上的微處理器,每個(gè)處理器能執(zhí)行它自己的程序。另外,系統(tǒng)中增加了總線控制器8288,許多總線控制信號(hào)由8288產(chǎn)生.80模式選擇Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6可用來(lái)選擇最大模式或最小模式工作。最大模式:存儲(chǔ)器與IO讀寫信號(hào)由總線控制器產(chǎn)生,要較多外圍芯片。最小模式:存儲(chǔ)器與I/O讀寫信號(hào)由CPU直接提供,外圍芯片較少。CLKNMIINTRREADYTESTMIN/MAXCPU模式選擇信號(hào):MIN/MAX,輸入,Pin-33813、最小模式信號(hào)Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6RD:輸出,三態(tài)。存儲(chǔ)器與IO讀信號(hào),CPU自動(dòng)產(chǎn)生。DMA時(shí)浮空。Pin-32WR:輸出,三態(tài)。存儲(chǔ)器與IO寫信號(hào)。由CPU產(chǎn)生。Pin-29IO/M:存儲(chǔ)器與IO讀寫選擇。Pin-28CLKNMIINTRREADYTESTMIN/MAX最小模式的讀寫信號(hào):RDIO/MWR82最小模式信號(hào)-2Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6DT/R:數(shù)據(jù)傳輸方向,輸出,三態(tài)。高,發(fā)送;低,接受。Pin-27DEN:輸出,三態(tài)。有效即低時(shí),表示DB上的數(shù)據(jù)有效,用作總線驅(qū)動(dòng)。Pin-26ALE:輸出,三態(tài)。分離AD0~AD7上的地址信號(hào)。Pin-25CLKNMIINTRREADYTESTMIN/MAX最小模式的控制信號(hào):RDIO/MWRDT/RDENALE83最小模式信號(hào)-3Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6INTA:中斷應(yīng)答,輸出,低有效。Pin-24HOLD:輸入,高有效。DMA請(qǐng)求。Pin-31HLDA:輸出,高有效,DMA應(yīng)答。Pin-30CLKNMIINTRREADYTESTMIN/MAX最小模式的控制信號(hào):RDIO/MWRHOLDHLDAINTAHOLD84最小模式總線周期狀態(tài)選擇IO/M,DT/R,SS0操作類型0,0,0INTA0,0,1IOR0,1,0IOW0,1,1HALT1,0,0取指令操作碼1,0,1MEMR1,1,0MEMW1,1,1NOP854、最大模式信號(hào)Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6S0~S2:總線周期狀態(tài)標(biāo)志。Pin–26,27,28經(jīng)過(guò)S0~S2譯碼產(chǎn)生存儲(chǔ)器與I/O讀寫信號(hào)CLKNMIINTRREADYTESTMIN/MAXRDIO/MWRHOLDHLDAINTAHOLDS2S1S0S2S1S0操作類型000INTA001IOR010IOW011HALT100取指令操作碼101MEMR110MEMW111NOP86最大模式信號(hào)-2Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6QS0~QS1:指令隊(duì)列狀態(tài)。Pin–24,25CLKNMIINTRREADYTESTMIN/MAX最的模式的控制信號(hào):RDIO/MWRHOLDHLDAINTAHOLDS2S1S0QS1,QS0隊(duì)列性能0,0NOP0,1隊(duì)列中操作碼的第一個(gè)字節(jié)1,0隊(duì)列空1,1隊(duì)列中非第一個(gè)操作碼字節(jié)QS0QS187最大模式信號(hào)-3Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6\RQ/GT0~RQ/GT1:總線請(qǐng)求允許。Pin–31,30\LOCK:總線鎖存信號(hào)。低有效。Pin–29CLKNMIINTRREADYTESTMIN/MAX最的模式的總線控制信號(hào):RDIO/MWRHOLDHLDAINTAHOLDS2S1S0QS0QS1RQ/FT0RQGT1LOCK88S3~S4:指示使用的段寄存器S3,S4代表的REG0,0DS0,1SS1,0CS(I/O,INT)1,1ES最大模式信號(hào)-3Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6CLKNMIINTRREADYTESTMIN/MAXRDIO/MWRHOLDHLDAINTAHOLDS2S1S0QS0QS1RQ/FT0RQGT1LOCKS3S4S5用來(lái)表示中斷標(biāo)志狀態(tài)線,當(dāng)IF為1時(shí),S5=1。

S6保持恒為0。89

:總線高位有效信號(hào)BHEAD0總線使用情況0016位數(shù)據(jù)總線上進(jìn)行字傳送01高8位數(shù)據(jù)總線上進(jìn)行字節(jié)傳送10低8位數(shù)據(jù)總線上進(jìn)行字節(jié)傳送11無(wú)效908086微處理器信號(hào)一覽1.AD15-AD0:分時(shí)復(fù)用的地址/數(shù)據(jù)總線2.A19/S6-A16/S3:分時(shí)復(fù)用的地址/狀態(tài)線3.BHE:總線高位有效信號(hào)4.:讀信號(hào),低有效5.:寫信號(hào),低有效6.:存儲(chǔ)器或I/O端口訪問(wèn)信號(hào),低I/O,高M(jìn)EM與MEMR與MEMW917.Ready:準(zhǔn)備就緒信號(hào)8.INTR:中斷請(qǐng)求信號(hào)9.:中斷響應(yīng)信號(hào)10.NMI:非屏蔽中斷請(qǐng)求信號(hào)11.:測(cè)試信號(hào)12.RESET:復(fù)位信號(hào)13.ALE:地址鎖存允許信號(hào)14.:數(shù)據(jù)發(fā)送/接收控制信號(hào)15.:數(shù)據(jù)允許信號(hào)9216.HOLD:總線請(qǐng)求信號(hào)17.HLDA:總線請(qǐng)求響應(yīng)信號(hào)18.:工作模式選擇信號(hào)19.CLK:主時(shí)鐘信號(hào)20.Vcc:CPU+5V電源21.GND:電源地最大模式系統(tǒng)時(shí)24-31引腳重定義如下:22:總線周期狀態(tài)信號(hào)23.:封鎖信號(hào)24. :請(qǐng)求/同意信號(hào)25.QS1,QS0:指令隊(duì)列狀態(tài)信號(hào)93第3節(jié)8086支持的存儲(chǔ)器結(jié)構(gòu)8086CPU有20根地址線,直接尋址內(nèi)存空間為220=1M字節(jié),按(00000H-FFFFFH)編址。直接尋址外設(shè)空間為216=64K字節(jié),按(0000H-FFFFH)編址。8086CPU連接的1M字節(jié)存儲(chǔ)器的空間實(shí)際上分成兩個(gè)512KB的存儲(chǔ)體,偶體與CPU的D0~D7相連奇體與CPU的D8~D15相連。A0和/BHE信號(hào)用于選擇兩體(之一或兩者)。如下頁(yè):94圖2.4存儲(chǔ)體與總線的連接95在訪問(wèn)一個(gè)字節(jié)時(shí),無(wú)論給出的是偶地址還是奇地址,都只需要一個(gè)總線周期就可以完成。在訪問(wèn)一個(gè)字時(shí),偶起始地址一個(gè)總線周期,奇起始地址兩個(gè)總線周期。MOVAL,[0080H]MOVAL,[0081H]MOVAX,[0080H]MOVAX,[0081H]訪問(wèn)奇起始地址需要兩個(gè)總線周期96第4節(jié)系統(tǒng)配置系統(tǒng)配置的目的是形成存儲(chǔ)器和輸入/輸出接口的公共總線,方便外設(shè)和存儲(chǔ)器與微處理器的連接。8086/8088在最小模式與最大模式下的系統(tǒng)配置有較大區(qū)別,以下以8086為例分別介紹在兩種工作模式下的系統(tǒng)配置的典型方法。由MN/MX信號(hào)控制。高小、低大。971、最小模式的系統(tǒng)配置在最小模式下,存儲(chǔ)器和外設(shè)的地址、數(shù)據(jù)與控制信號(hào)由微處理器8086自行產(chǎn)生,通過(guò)三片地址鎖存器74LS373(或Intel8282)和兩片總線收發(fā)器74LS245(或Intel8286)形成外設(shè)和存儲(chǔ)器的總線信號(hào)。圖中8284A作為時(shí)鐘發(fā)生器使用,為8086通過(guò)精確時(shí)鐘。82828286或373或245988282、8286或373、24537324599最小模式的地址與數(shù)據(jù)分離方法8088鎖存器(74LS373)AD0|AD7ALEA0~A7D0~D7ALE100最小模式的數(shù)據(jù)驅(qū)動(dòng)方法245101最小模式-讀寫電路構(gòu)成方法RDWRM/IO邏輯電路IORMEMRIOWMEMW存儲(chǔ)器讀存儲(chǔ)器寫輸入輸出寫輸入輸出讀1022、最大模式系統(tǒng)最大模式與最小模式的主要區(qū)別在于使用了總線控制器8288來(lái)產(chǎn)生地址鎖存器、總線收發(fā)器和訪問(wèn)存儲(chǔ)器、I/O接口所需要的全部控制信號(hào)。在最大模式中,系統(tǒng)通常有兩個(gè)或多個(gè)微處理器,設(shè)置總線控制器便于這些微處理器相互協(xié)調(diào)和共享控制。有關(guān)8288可以參考書上的內(nèi)容,不作要求。1032、最大模式系統(tǒng)1048288總線發(fā)生器結(jié)構(gòu)狀態(tài)譯碼器命令信號(hào)發(fā)生器控制信號(hào)發(fā)生器控制邏輯105S2S1S08088輸出8288輸出000INTA\INTA001IOR\IORC010IOW\IOWC、\AIOWC011HALT-100取指令操作碼\MRDC101MEMR\MRDC110MEMW\MWTC、\AMWTC111NOP-8288總線發(fā)生器的輸出106XTBUS形成電路ALE107第5節(jié)CPU的操作和時(shí)序一、基本概念1、時(shí)鐘周期:是CPU的基本時(shí)間計(jì)量單位,它由計(jì)算機(jī)主頻決定。8086主頻是4.77MHz,一個(gè)時(shí)鐘周期就是210ns。2、總線周期:BIU完成一次訪問(wèn)存儲(chǔ)器操作所需要的時(shí)間稱作一個(gè)總線周期。一個(gè)最基本的總線周期由4個(gè)時(shí)鐘周期組成,習(xí)慣上稱4個(gè)狀態(tài),T1,T2,T3,T4狀態(tài)。只有在CPU和內(nèi)存或I/O端口之間傳遞數(shù)據(jù)以及取指令時(shí),CPU才執(zhí)行總線周期。1083、空閑周期:如果在一個(gè)總線周期之后,不立即執(zhí)行下一個(gè)總線周期,則系統(tǒng)總線就處于空閑狀態(tài),此時(shí)執(zhí)行空閑周期Ti。4、指令周期:就是計(jì)算機(jī)完成對(duì)一條指令的讀取并執(zhí)行這一系列步驟所需要的時(shí)間。指令周期包含一個(gè)或幾個(gè)總線周期。例如,執(zhí)行一條8位寄存器乘法(MUL),這是一條兩字節(jié)指令,需70-77個(gè)時(shí)鐘周期的執(zhí)行時(shí)間。109總線操作序列機(jī)器周期指令周期總線周期110時(shí)鐘周期①在T1狀態(tài),CPU往多路復(fù)用總線上發(fā)出地址信息,以指出要尋址的存儲(chǔ)單元或外設(shè)端口的地址。②在T2狀態(tài),CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)作準(zhǔn)備??偩€的最高4位(Al9一A16)用來(lái)輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來(lái)表示中斷允許狀態(tài)、當(dāng)前正在使用的段寄存器名等。③在T3狀態(tài),多路總線的高4位繼續(xù)提供狀態(tài)信息,而多路總線的低16位(8088則為低8位)上出現(xiàn)由CPU寫出的數(shù)據(jù)或者CPU從存儲(chǔ)器或端口讀入的數(shù)據(jù)。

111二、系統(tǒng)的復(fù)位與啟動(dòng)操作復(fù)位與啟動(dòng)是在RESET引腳上至少維持4個(gè)時(shí)鐘周期的高電平,時(shí)序如圖2.11所示。圖2.118086/8088的復(fù)位時(shí)序112

復(fù)位時(shí)各內(nèi)部寄存器的值: 標(biāo)志寄存器FR 清零 指令指針I(yè)P 0000H CS寄存器 FFFFH DS寄存器 0000H SS寄存器 0000H ES寄存器 0000H

指令隊(duì)列 空 其他寄存器 0000H113三、最小模式系統(tǒng)中的總線操作8086CPU為了要與存儲(chǔ)器或I/O端口交換數(shù)據(jù),需要執(zhí)行一個(gè)總線周期,這就是總線操作??偩€操作可以分為總線讀操作和總線寫操作。讀操作是CPU從存儲(chǔ)器或I/O端口讀取數(shù)據(jù),寫操作是CPU將數(shù)據(jù)寫入存儲(chǔ)器或I/O端口。114最小模式系統(tǒng)中的總線讀操作如圖2.12所示。圖2.12最小模式下的讀操作時(shí)序115存儲(chǔ)器讀指令與存儲(chǔ)器讀時(shí)序的關(guān)系MOVAX,0000HMOVDS,AXMOVAL,[8000H];讀1)ALE變高,將0000:8000H放到AD0~AD19信號(hào)線上;譯碼器對(duì)其譯碼產(chǎn)生存儲(chǔ)器選擇信號(hào)2)發(fā)出M/IO信號(hào)(高),發(fā)出RD信號(hào)為低3)被選擇的存儲(chǔ)器將數(shù)據(jù)放到AD0~AD7信號(hào)線4)CPU在RD上升沿將AD0~AD7信號(hào)線的數(shù)據(jù)讀入CPU內(nèi)部AL寄存器。122341116最小模式系統(tǒng)中的總線寫操作如圖2.13所示。圖2.138086最小模式寫操作時(shí)序117四、最大模式系統(tǒng)中的總線操作圖2.148086最大模式的讀操作時(shí)序118最大模式系統(tǒng)中的總線寫操作S2~

S0有效數(shù)據(jù)地址S6~

S3A19~A16CLK一個(gè)總線周期T1T2T3T4A19/S6~A16/S3AD15~AD0BHE/S7BHEALEMWTC/IOWCDENDT/R8086最大模式的寫總線周期高阻S2~

S0AMWC/AIOWC119最小模式下的總線保持(了解)在DMA控制器8237部分解釋120中斷響應(yīng)周期

121指令與時(shí)序的關(guān)系二、外設(shè)接口指令與I/O讀寫時(shí)序的關(guān)系MOVDX,0220HINAL,DX ;讀I/O接口時(shí)序上執(zhí)行四個(gè)動(dòng)作:(1)將0200H放到AD0~AD19信號(hào)線上;譯碼器對(duì)其譯碼產(chǎn)生外設(shè)選擇信號(hào)(2)發(fā)出M/IO信號(hào)(低),發(fā)出RD信號(hào)為低(3)被選擇的外設(shè)將數(shù)據(jù)放到AD0~AD7信號(hào)線(4)CPU在RD上升沿將AD0~AD7信號(hào)線的數(shù)據(jù)讀入CPU內(nèi)部AL寄存器122指令與時(shí)序的關(guān)系A(chǔ)B譯碼器鎖存器存儲(chǔ)器接口或外設(shè)接口DBCPU0200HM/IORDA123指令執(zhí)行與信號(hào)的關(guān)系針對(duì)上頁(yè)圖,運(yùn)行如下程序,A點(diǎn)的信號(hào)如何變化?(思考)MOVDX,200HMOVAL,00HREPT:OUTDX,ALDECALJMPREPT124作業(yè)題(下周四交,單號(hào))P90-91第1次作業(yè):2、8、11、16;1253微機(jī)386-V8.pptTHANKS!1261271281291301311321331341351361371381391401411421431441451461471482.280386微處理器149目錄2.280386微處理器2.3雙核微處理器2.480x8尋址方式2.580x86的指令系統(tǒng)2.6單片計(jì)算機(jī)1502.280386微處理器1985年10月推出了高性能的32位微處理器80386,具有32位數(shù)據(jù)總線和32位地址總線,直接尋址能力為4GB,在16MHz主頻下每秒可執(zhí)行4×106條指令。它采用了流水線和指令重疊執(zhí)行技術(shù)、虛擬存儲(chǔ)技術(shù)和存儲(chǔ)管理技術(shù)等,這些技術(shù)以后被廣泛采用,故80386是微處理器發(fā)展史上的一個(gè)里程碑。1512.2.180386的組織結(jié)構(gòu)80386的內(nèi)部結(jié)構(gòu)可以劃分為:指令預(yù)取部件、指令譯碼部件、指令執(zhí)行部件、分段部件、分頁(yè)部件和總線接口部件等6個(gè)功能部件1522.2.180386的組織結(jié)構(gòu)指令預(yù)取部件IPU(InstructionPrefetchUnit)IPU中設(shè)置了一個(gè)16字節(jié)的指令隊(duì)列,只要指令隊(duì)列有空字節(jié),IPU就向總線接口部件提出請(qǐng)求,若總線接口部件處于空閑狀態(tài),則從存儲(chǔ)器中取出指令裝入指令隊(duì)列。指令譯碼部件IDU(InstructionDecodeUnit)IDU的作用就是對(duì)指令操作碼進(jìn)行譯碼,實(shí)現(xiàn)從指令到微指令的轉(zhuǎn)換。IDU中設(shè)置了譯碼指令隊(duì)列,譯碼得到的微指令存放在該隊(duì)列中。指令執(zhí)行部件EU(ExecuteUnit)EU包括算術(shù)邏輯運(yùn)算部件ALU、8個(gè)32位通用寄存器和1個(gè)64位桶形移位寄存器和1個(gè)乘/除法器,其功能就是完成各種數(shù)據(jù)運(yùn)算和處理。此外,EU還包括保護(hù)測(cè)試部件,用于檢驗(yàn)指令執(zhí)行過(guò)程中是否符合存儲(chǔ)器分段規(guī)則。上述三個(gè)部件IPU、IDU和EU合稱為中央處理部件CPU(CentralProcessingUnit),它們實(shí)際構(gòu)成了一個(gè)指令流水線。1532.2.180386的組織結(jié)構(gòu)分段部件SU(SegmentationUnit)80386采用了分段、分頁(yè)兩級(jí)存儲(chǔ)管理機(jī)制,存儲(chǔ)器首先以段為單位進(jìn)行劃分,每個(gè)段的長(zhǎng)度最大為4GB,每個(gè)段又進(jìn)一步劃分為多個(gè)頁(yè)面,頁(yè)面長(zhǎng)度固定為4KB。分頁(yè)部件PU(PagingUnit)PU的作用是將SU生成的線性地址轉(zhuǎn)換為存儲(chǔ)器的物理地址,這種轉(zhuǎn)換是通過(guò)兩級(jí)頁(yè)表來(lái)實(shí)現(xiàn)的。PU是80386的可選部件,若不使用PU,則SU生成的線性地址就是物理地址。SU和PU合稱為存儲(chǔ)管理部件MMU(MemoryManagementUnit)??偩€接口部件BIU(BusInterfaceUnit)BIU是80386與外部之間的高速接口。當(dāng)指令預(yù)取部件取指令,或者指令執(zhí)行部件讀寫操作數(shù)和運(yùn)算結(jié)果時(shí),都會(huì)向BIU提出訪問(wèn)存儲(chǔ)器和I/O設(shè)備的請(qǐng)求,BIU根據(jù)一定的優(yōu)先級(jí)來(lái)響應(yīng)這些請(qǐng)求,產(chǎn)生所需要的地址信號(hào)和讀寫控制信號(hào),以完成有關(guān)操作。此外,BIU也實(shí)現(xiàn)了80386與其它協(xié)處理器之間的控制功能。SU、PU和BIU實(shí)際上也構(gòu)成一條地址流水線,1542.2.280386的編程結(jié)構(gòu)80386有6類寄存器,分別是通用寄存器、指令指針寄存器、標(biāo)志寄存器、控制寄存器、調(diào)試與測(cè)試寄存器、段寄存器、段描述符寄存器、系統(tǒng)地址寄存器。(1)通用寄存器(下頁(yè)圖示)80386有8個(gè)32位的通用寄存器,分別是EAX、EBX、ECX和EDX,以及ESP、EBP、ESI和EDI,(2)標(biāo)志寄存器/標(biāo)志寄存器32位的標(biāo)志寄存器EFLAGS也是由16位的標(biāo)志寄存器FLAGS擴(kuò)展而來(lái)的。原有的9個(gè)標(biāo)志含義相同,在此基礎(chǔ)上又增加了4個(gè)新的標(biāo)志。155(2)標(biāo)志寄存器/標(biāo)志寄存器32位的標(biāo)志寄存器EIP用于存放下一條指令的偏移量,當(dāng)兼容8086時(shí),其低16位就是IP寄存器。156(3)80386有4個(gè)32位的控制寄存器CR0、CR1、CR2和CR3,其中CR1未使用。這些控制寄存器主要用于對(duì)80386各種功能和運(yùn)行方式的控制。(4)調(diào)試寄存器/測(cè)試寄存器80386設(shè)置了8個(gè)32位的調(diào)試寄存器DR0~DR7,其中DR4~DR5為Intel公司保留,而其它6個(gè)寄存器用于設(shè)置斷點(diǎn)和調(diào)試功能。80386使用了兩個(gè)測(cè)試寄存器TR6和TR7,用于測(cè)試TLB(TranslationLookasideBuffer)。其中TR6存放測(cè)試控制命令,而TR7存放測(cè)試所得數(shù)據(jù)。157(5)系統(tǒng)地址寄存器系統(tǒng)地址寄存器包括全局描述符表寄存器GDTR、中斷描述符表寄存器IDTR、局部描述符表寄存器LDTR和任務(wù)狀態(tài)段寄存器TR。設(shè)置這些寄存器的目的是為了便于對(duì)各個(gè)描述符表進(jìn)行訪問(wèn),它們分別保存著對(duì)應(yīng)描述符表的存儲(chǔ)地址。系統(tǒng)地址寄存器的內(nèi)容和作用在后續(xù)章節(jié)詳細(xì)介紹。(6)段寄存器和段選擇子80386與8086一樣,段寄存器也是16位的,但增加了兩個(gè)附加數(shù)據(jù)段寄存器FS和GS。在實(shí)地址方式中,80386物理地址的計(jì)算與8086相同。但在保護(hù)方式下,段寄存器的作用則不同,其內(nèi)容和作用在后續(xù)章節(jié)詳細(xì)介紹。1582.2.380386的工作方式實(shí)地址方式(RealAddressMode)8086兼容方式(段),80386復(fù)位后就進(jìn)入實(shí)地址方式

保護(hù)方式(ProtectedVirtualAddressMode)段頁(yè)式虛擬8086方式(Virtual8086Mode)段頁(yè)式(386下執(zhí)行86代碼,某個(gè)任務(wù))15980386的工作方式實(shí)地址方式(RealAddressMode)8086工作模式,只采用分段方式,每段固定長(zhǎng)度為64KB,20位物理地址由段寄存器內(nèi)容左移4位后與偏移量相加得到。不同之處是80386可以進(jìn)行32位數(shù)據(jù)的運(yùn)算和處理。復(fù)位后進(jìn)入實(shí)地址方式,保護(hù)方式(ProtectedVirtualAddressMode)80386在保護(hù)方式下采用了段頁(yè)式的存儲(chǔ)管理機(jī)制,提供保護(hù)機(jī)制,支持虛擬存儲(chǔ)和多任務(wù)操作系統(tǒng)。保護(hù)方式是80386最常用的方式。虛擬8086方式(Virtual8086Mode)80386在虛擬8086方式同樣采用段頁(yè)式存儲(chǔ)管理機(jī)制,具有護(hù)功能,可以支持多任務(wù)。虛擬8086方式是針對(duì)多個(gè)任務(wù)中的某一個(gè)任務(wù)而言的,也就是說(shuō)在多個(gè)任務(wù)中,某一個(gè)任務(wù)是在虛擬8086方式,而另一些任務(wù)可以在保護(hù)方式。當(dāng)一個(gè)任務(wù)工作在虛擬8086方式時(shí),可以直接執(zhí)行8086的代碼。1602.2.480386的引腳和時(shí)序80386采用132條引腳的PGA(陶瓷網(wǎng)格陣列)封裝,主要包括:(1)數(shù)據(jù)總線D31~D0(2)地址總線A31~A2、/BH3~/BH0(3)時(shí)鐘信號(hào)CLK2,(4)與總線周期有關(guān)信號(hào):16180386時(shí)序修訂:BE3-BH31622.2.580386的存儲(chǔ)管理圖2.19給出了80386的存儲(chǔ)管理機(jī)制的實(shí)現(xiàn)原理。用戶程序在訪問(wèn)存儲(chǔ)器時(shí)給出的是48位虛擬地址(或稱為邏輯地址),由16位的段選擇子(SegmentSelector)和32位偏移量?jī)刹糠纸M成,段選擇子由段寄存器給出,而偏移量則根據(jù)不同的尋址方式得到。1631、基本概念與術(shù)語(yǔ)(1)虛擬存儲(chǔ)器和高速緩沖存儲(chǔ)器(2)描述符描述符又稱為段描述符,由8個(gè)字節(jié)構(gòu)成,用于對(duì)程序段進(jìn)行描述,向CPU提供虛擬地址并向?qū)嵉刂忿D(zhuǎn)換所需的數(shù)據(jù);包括段的基地址、段的大小和段的屬性(稱訪問(wèn)權(quán)字段)。圖2.21說(shuō)明了段描述符的格式。164①32位段基址:指明一個(gè)段的起始位置,可以為32位的線性地址空間中的任一地址。②20位段限:段限決定了一個(gè)段的可尋址范圍,目的是為了判斷對(duì)存儲(chǔ)段的訪問(wèn)是否越界,以免破壞其它信息。386的段限長(zhǎng)是32位,但在段描述符中只規(guī)定了20位,根據(jù)此20位限長(zhǎng)及段屬性中的G位計(jì)算出真正的段限長(zhǎng)。在不使用分頁(yè)機(jī)制時(shí)(G=0),則長(zhǎng)度單位為字節(jié),段的最大長(zhǎng)度為1B×220=1MB;在啟用分頁(yè)機(jī)制時(shí)(G=1),則長(zhǎng)度單位是頁(yè)面數(shù)(每頁(yè)4KB),因此段的最大長(zhǎng)度為4KB×220=4GB。例如,G=1時(shí)的段基址=00000000H,限長(zhǎng)=0FFFFFH,則真實(shí)的段限長(zhǎng)=0FFFFFH*1000H+0FFFH=0FFFFFFFFH。165③段的屬性包括以下字段A——訪問(wèn)位,A=1表示已經(jīng)訪問(wèn)過(guò)該段,操作系統(tǒng)利用該位統(tǒng)計(jì)段的使用情況。S——描述符類型位,若S=1,則為非系統(tǒng)描述符,所描述的段是代碼段、數(shù)據(jù)段(包括堆棧段);若S=0,則為系統(tǒng)描述符,所描述的是局部描述符表、任務(wù)狀態(tài)段和各種門。TYPE——段類型,用于說(shuō)明對(duì)應(yīng)的段的類型,包括是否為可執(zhí)行的代碼段、存儲(chǔ)地址增長(zhǎng)的方向、該段是否可以進(jìn)行寫操作等。DPL——描述符的特權(quán)級(jí)(DescriptorPrivilegelevel),用于特權(quán)檢查,以決定對(duì)該段能否訪問(wèn)。P——存在位,當(dāng)P=1時(shí),說(shuō)明對(duì)應(yīng)的存儲(chǔ)段已經(jīng)裝入內(nèi)存。D——操作數(shù)長(zhǎng)度標(biāo)志,僅用于代碼段描述符,當(dāng)D=1時(shí),說(shuō)明對(duì)應(yīng)的代碼段的代碼是32位的,而當(dāng)D=0則為16位。166(3)描述符表系統(tǒng)中有三類描述符表:全局描述符表GDT、局部描述符表LDT和中斷措述符表IDT。這些表都是可變長(zhǎng)度的存儲(chǔ)器數(shù)組,表的長(zhǎng)度從8B~64KB之間,每個(gè)表最多可容納8192個(gè)描述符(每個(gè)描述符由8B組成)。中斷描述符表IDT存放的是描述中斷服務(wù)程序入口地址等有關(guān)屬性的門描述符,包括中斷門、陷阱門和任務(wù)門。每個(gè)任務(wù)有且只有一個(gè)獨(dú)立的局部描述符表LDT,整個(gè)系統(tǒng)只有一個(gè)全局描述符表GDT,167(4)系統(tǒng)地址寄存器系統(tǒng)地址寄存器包括:全局描述符表寄存器GDTR、中斷描述符表寄存器IDTR、局部描述符表寄存器LDTR和任務(wù)狀態(tài)段寄存器TR。168系統(tǒng)地址寄存器80位的LDTR分為兩個(gè)字段,高16位稱為L(zhǎng)DT選擇子,用于在GDT中查找LDT描述符,一旦查找到LDT描述符,則由硬件自動(dòng)存放在低64位中。169段寄存器和段選擇子段寄存器選擇子16位(用戶可見(jiàn))描述符64位(用戶不可見(jiàn))170段寄存器和段選擇子高13位存放的是段選擇子,也就是段描述符在GDT或LDT中的索引號(hào)。表索引標(biāo)志TI:當(dāng)TI=1時(shí),在LDT中查找,而當(dāng)TI=0時(shí),則在GDT中進(jìn)行查找。另外2位RPL,用來(lái)作描述請(qǐng)求特權(quán)級(jí)(RequestedPrivilegeLevel),用于特權(quán)檢查。171LDTR描述符獲取過(guò)程在訪問(wèn)LDT之前,首先需要在GDT中查找到該LDT描述符。通過(guò)LDTR的選擇子查找GDT獲得LDT描述符的過(guò)程如下圖所示。Index17280386特權(quán)級(jí)80386中共規(guī)定有4個(gè)特權(quán)級(jí),由0到3。0級(jí)別權(quán)限最高,3級(jí)最小。操作系統(tǒng)核心運(yùn)行在0級(jí),80386處理器共設(shè)置4個(gè)優(yōu)先級(jí)(0級(jí)~3級(jí))。0級(jí)是最高級(jí)(特權(quán)級(jí));3級(jí)是最低級(jí)(用戶級(jí));1級(jí)和2級(jí)介于它們之間。特權(quán)級(jí)代碼一般是操作系統(tǒng)的代碼,可以訪問(wèn)全部系統(tǒng)資源;其他級(jí)別的代碼一般是用戶程序,可以訪問(wèn)的資源受到限制。

1732.特權(quán)保護(hù)80386采用保護(hù)機(jī)制主要為了檢查和防止低級(jí)別代碼的越權(quán)操作,如訪問(wèn)不該訪問(wèn)的數(shù)據(jù)、端口以及調(diào)用高優(yōu)先級(jí)的代碼等。80386中的每個(gè)段描述符號(hào)中都有DPL字段,高于該特權(quán)級(jí)別的程序才有權(quán)訪問(wèn)它。段寄存器的請(qǐng)求特權(quán)級(jí)(RPL):用于特權(quán)檢查。檢查主要是讓當(dāng)前優(yōu)先級(jí)(CPL)和DPL比大小,如果大于等于才允許訪問(wèn)。而RPL和CPL之間不作判斷,將RPL和CPL中特權(quán)更高的那個(gè)和被訪問(wèn)段的DPL比較作判斷。

1743.虛擬地址到線性地址的轉(zhuǎn)換虛擬地址通常由兩部分組成:段選擇器和偏移地址。段選擇器用來(lái)選擇一個(gè)段,偏移地址用來(lái)指出操作數(shù)在所選擇的段中的偏移量。例如:MOVFS:IOTA,AL該指令中IOTA用來(lái)指定偏移地址。該指令的功能是:將寄存器AL的內(nèi)容存入FS的選擇器字段所選擇的段中偏移量為IOTA的虛擬地址單元中。例如:MOVEAX,DS:[EBX]該指令的功能是:將DS的選擇器字段所選擇的段中由.EBX內(nèi)容代表的偏移量所確定的虛擬地址單元開(kāi)始的4個(gè)字節(jié)的內(nèi)容送人EAX。175轉(zhuǎn)換過(guò)程CPU只要將段選擇器所指向的段描述符中的32位基地址與32位偏移地址相加即可得到線性地址。將32位虛擬地址轉(zhuǎn)換到32位線性地址的過(guò)程包括:首先,CPU將邏輯地址中的段選擇子裝入段寄存器中;其次,硬件根據(jù)選擇子的TI字段自動(dòng)訪問(wèn)局部描述符表LDT或全局描述符表GDT;然后,獲取LDT或GDT中的描述符,進(jìn)行段限比較;最后,根據(jù)描述符的基地址和程序給出的偏移地址,計(jì)算得到線性地址。176轉(zhuǎn)換實(shí)例例如,80386的某指令給出的32位邏輯地址為0000000001100100,0000000100000000B,則根據(jù)圖2.26所示的結(jié)構(gòu),可以實(shí)現(xiàn)邏輯地址到線性地址的變換。具體過(guò)程如下:177轉(zhuǎn)換實(shí)例首先,32位邏輯地址的高16位裝入段寄存器。根據(jù)圖2.24的結(jié)構(gòu),得到的段寄存器的高13位為0000000001100B(00CH),TI=1B,RPL=00B,偏移地址為0100H。178轉(zhuǎn)換實(shí)例然后,硬件根據(jù)選擇子的TI字段自動(dòng)訪問(wèn)局部描述符表LDT,把段選擇子的索引值000CH乘8以后的值0060H與全局描述符寄存器(GDTR)的段限00FF進(jìn)行比較,由于該值沒(méi)有超出界限,因此,可以對(duì)局部描述符表進(jìn)行訪問(wèn)。179轉(zhuǎn)換實(shí)例其次,把0060H與局部描述符表的基地址(在LDTR中)相加得到訪問(wèn)數(shù)據(jù)段描述符的絕對(duì)地址00100060H。如果保護(hù)機(jī)構(gòu)對(duì)訪問(wèn)權(quán)檢查通過(guò),CPU就自動(dòng)地把地址為00100060H的數(shù)據(jù)段描述符(包括數(shù)據(jù)段基地址、段限和訪問(wèn)權(quán)字段)裝入DS寄存器相應(yīng)的段描述符寄存器高速緩沖器中。180轉(zhuǎn)換實(shí)例最后,用段描述符寄存器的訪

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論