日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

當前位置:電子發(fā)燒友網(wǎng) > 圖書頻道 > 電子 > 《微計算機原理》 > 第2章 8086微處理器

第1節(jié) 概述及內(nèi)部結(jié)構(gòu)

 

  

 

  8086是Intel系列的16位微處理器,它是采用HMOS工藝技術(shù)制造的,內(nèi)部包含約29000個晶體管。

  8086有16根數(shù)據(jù)線和20根地址線,因為可用20位地址,所以可尋址的空間達220即1M字節(jié)。

  8086工作時,只要一個5V電源和一相時鐘,時鐘頻率為5MHz。后來,Intel公司推出的8086-1型微處理器時鐘頻率高達10MHz,8086-2型微處理器時鐘頻率達8MHz。

  幾乎在推出8086微處理器的同時,Intel公司還推出了一種準16位微處理器8088。推出8088的主要目的的是為了與當時已有的一套Intel外圍設(shè)備接口芯片直接兼容。8088的內(nèi)部寄存器、內(nèi)部運算部件以及內(nèi)部操作都是按16位設(shè)計的,但對外的數(shù)據(jù)總線只有8條。

  

 

  掌握8086微處理器的內(nèi)部結(jié)構(gòu),CPU的引腳功能、總線結(jié)構(gòu)和時序。

  

 

  §1 概述

  §2 8086的內(nèi)部結(jié)構(gòu)

  §3 8086寄存器組結(jié)果

  §4 8086存儲器組織

  §5 8086的引線

  §6 8086的時序

  §7 8086的總線請求和保持

  §8 8088與8086的比較

  §練習題

  §自測題

  

 

  2.1 總線接口部件BIU

  2.2 執(zhí)行部件

  2.3 BIU和EU的動作管理

  2.4 8086的寄存器結(jié)構(gòu)

  2.5 8086的存儲器接口

  2.6 8086的最小組態(tài)和最大組態(tài)

  2.7 8086地址/數(shù)據(jù)線的分時復(fù)用特性

  

 

  1、重點在8086的時序,要好好地理解和掌握;

  2、讀懂和理解8086的工作時序;

  3、逐步理解各知識點。

  

 

  寄存器  存儲器  模式  時序

  

 

  1、《微型計算機技術(shù)及應(yīng)用》,戴梅萼等編著,第二版,清華大學出版社

  2、《微型計算機原理》,季維法等編著,第一版,電子科技大學出版社

  3、《微型計算機原理—常見題型解析及模擬題》,武自芳主編,西北工業(yè)大學出版社

  4、《80X86/80X87匯編語言程序設(shè)計》,洪志全等編著,電子科技大學出版社

  §2.1 概述

  8086CPU是Intel公司1978年生產(chǎn)的,工作頻率5 ,是一種16位CPU,其內(nèi)部結(jié)構(gòu)為16位,數(shù)據(jù)總線也是16位。它可以處理BCD碼、ASCII碼、字節(jié)、字以及字節(jié)串。與8086CPU配合工作的協(xié)處理器可以有8087(專門為實數(shù)運算而設(shè)計的數(shù)學協(xié)處理器,簡稱NPX)、8089(提高輸入、輸出性能而設(shè)計的I/O協(xié)處理器)。

  8086的地址信號線為20根,可以輸出的存儲器地址為:0000,0000,0000,000,0000 ~ 1111,1111,1111,1111,1111 或00000H~FFFFFH,每個地址信號指出一個存儲器單元地址,因此,8086可以尋址1MB存儲器。8086尋址存儲器 時可以使用直接尋址、間接尋址、基址尋址、變址尋址等尋址方式。

  80286CPU也是16位CPU(內(nèi)部結(jié)構(gòu)為16位),其地址信號線為24根,可以尋址16MB存儲器。與80286配合工作的 數(shù)學協(xié)處理器是80287或8087。

  80386CPU是32位CPU(內(nèi)部結(jié)構(gòu)為32位),其地址信號線為32根,可以尋址4GB存儲器。與80386配合工作的數(shù)學協(xié)處理器是80387或80287。80386及其以后的CPU均支持多用戶、多任務(wù)操作系統(tǒng)。

  80486、Pentium、Pentium w/MMX、Pentium Pro、Pentium Ⅱ(包含Celeron和Xeon)均為32位CPU,且內(nèi)部已 包含數(shù)學協(xié)處理器(數(shù)學協(xié)處理器是CPU整體結(jié)構(gòu)的一個單元,稱為浮點處理單元,簡稱FPU)。但CPU每升級一 次,其內(nèi)部均加入了其他一些高級功能,工作頻率也不斷提高,使其運算速度大為提高。

  高檔CPU的高級功能一般包括:更大的內(nèi)部緩存(Cache)、超標量流水線、MMX、動態(tài)執(zhí)行微結(jié)構(gòu)等。除了 MMX外,這些功能對于軟件來說均是透明的。因此,從軟件來說,8086與Pentium Ⅱ差異不大。(主要差異:80386開始引入的32位保護模式、Pentium w/MMX開始開始引入的MMX指令)。

  §2.2 8086的內(nèi)部結(jié)構(gòu)(編程結(jié)構(gòu))

  本節(jié)概述

  從編程的角度看,8086的內(nèi)部結(jié)構(gòu)分成兩大部分:總線接口單元BIU和執(zhí)行單元EU。這兩部分是相互直接作用的,但它們也可以各自執(zhí)行獨立的功能而彼此無關(guān),從而可以重疊工作。

  

 

  本節(jié)內(nèi)容

  1.執(zhí)行單元EU

  2.總線接口單元BIU

  3.總線接口單元和執(zhí)行單元的動作管理

  4.8086總線周期的概念

  §2.2.1 執(zhí)行單元EU(Excution Unit)

  這部分負責指令的執(zhí)行。它包含有四個16位的數(shù)據(jù)寄存器(AX、BX、CX、DX,每個16位寄存器,均可作為兩個8位寄存器使用)和四個16位的指示器(SP、BP)、變址寄存器(SI、DI),以及執(zhí)行算術(shù)運算和邏輯運算的算術(shù)邏輯單元ALU,狀態(tài)標志寄存器等。

  執(zhí)行單元沒有連接到系統(tǒng)總線上,對于系統(tǒng)總線來說,它是外界的。執(zhí)行單元EU從總線接口單元BIU的"指令隊列緩沖器"獲得指令,同樣,當指令要求訪問存儲器或I/O接口電路時,EU向BIU發(fā)出請求,由BIU通過總線獲得存儲數(shù)據(jù)。

  §2.2.2 總線接口單元BIU(Bus Interface Unit)

  BIU負責與存儲器和I/O接口,即8086CPU與存儲器或I/O接口電路信息傳送都是通過BIU進行的。例如,當BIU從內(nèi)存的指令部分取出指令,送至指令流隊列中排隊,在執(zhí)行指令時所需的操作數(shù),也由BIU從內(nèi)部的指定區(qū)域取出,傳送給EU部分去執(zhí)行。

  按照EU的性能,在CPU和存儲器或I/O接口之間傳數(shù)時,EU提供的訪問存儲器的地址是16位的,而8086訪問1MB存儲器空間卻需要20位地址,為了形成20位地址,就必須借助與在BIU中的四個16位的段寄存器(CS,DS,SS,ES)。而偏移量則由指令指示器IP(16位的指針寄存器)提供。

  8086總線接口部件由下列各部分組成:

  4個段地址寄存器,即:

  CS-16位的代碼段寄存器,

  DS-16位的數(shù)據(jù)段寄存器,

  ES—16位的擴展段寄存器,

  SS—16位的堆棧段寄存器;

  16位的指令指針寄存器IP;

  20位的地址加法器;

  6字節(jié)的指令隊列。

  使8086CPU的處理速度得到提高的重要原因是取指令和執(zhí)行指令部分是分開的(即兩者在執(zhí)行時間上可以重跌,如圖2-2所示)

  于是在一條指令的執(zhí)行過程中,就可取出下一條(或多條)指令,送到指令流隊列中排隊。BIU具有這種預(yù)取指令的功能,就減少了CPU為取指令所需要的等待時間,提高了CPU的利用率,提高了整個運算速度。

 

  在多數(shù)情況下,指令對列機構(gòu)中至少保持一個字節(jié)指令流,EU才不需要等待指令。指令隊列中的指令,就是存放在同現(xiàn)行執(zhí)行指令相連接,而地址又比它高的那些存儲單元的指令。就是說,只要按順序執(zhí)行,在指令隊列中的指令就是緊跟其后的指令。若EU執(zhí)行轉(zhuǎn)移指令時,則BIU清除指令隊列機構(gòu),從新地址取指令,并立即送給EU,然后再從新單元開始,重新填滿隊列機構(gòu)。此外,當EU請求存儲器或I/O接口讀或?qū)憯?shù)據(jù)的時候,BIU就不取指令。

  8086CPU采用取指令和執(zhí)行指令這種重迭操作技術(shù)稱為指令的流水線結(jié)構(gòu),它不但提高CPU利用率和整機運行速度,而且降低了對與它相配的存儲器的存取速度的要求。

  對總線接口部件,作下面兩點說明:

 ?、?086的指令隊列為6個字節(jié),8088的指令隊列為4個字節(jié)。不管是8086還是8088都會在執(zhí)行指令的同時,從內(nèi)存中取下面1條指令,取來的指令就放在指令隊列中。這樣,一般情況下,8086/8088執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,而不象以往的計算機那樣,輪番那地進行取指令和執(zhí)行指令的操作,從而提高了CPU的效率。

  ②地址加法器用來產(chǎn)生20位地址。上面已經(jīng)提到,8086可用20位地址尋址1M字節(jié)的內(nèi)存空間,但8086內(nèi)部所有的寄存器都是16位的,所以需要由一個附加的機構(gòu)來根據(jù)16位寄存器提供的信息計算出20位的物理地址,這個機構(gòu)就是20位的地址加法器。

  比如,一條指令的物理地址就是根據(jù)代碼段寄存器IP的內(nèi)容得到的。具體計算時,要將段寄存器的內(nèi)容左移四位,然后再與IP的內(nèi)容相加。假設(shè)CS=FE00H,IP=0200H,此時指令的物理地址為FE200H.

  §2.2.3 總線接口單元和執(zhí)行單元的動作管理

  總線接口單元和執(zhí)行單元并不是同步工作,但是,兩者的動作管理仍然是有原則的,體現(xiàn)在下面幾個方面:

 ?、倜慨?086的指令隊列中有2個空字節(jié),或者8088的指令隊列中有一個空字節(jié)時,總線接口部件就會自動把指令取到指令隊列中。

  ②每當執(zhí)行部件準備執(zhí)行一條指令時,它會從總線揭開部件的指令隊列前部取出指令的代碼,然后用幾個時鐘周期去執(zhí)行指令。在執(zhí)行指令的過程中,如果必須訪問存儲器或者輸入/輸出設(shè)備,那么,執(zhí)行部件就會請求總線接口部件進入總線周期去訪問內(nèi)存或者輸入/輸出端口的操作;如果此時總線接口部件正好處于空閑狀態(tài),那么,會立即響應(yīng)執(zhí)行部件的總線請求。但有時會遇到這樣的情況,執(zhí)行部件請求總線部件訪問總線時,總線接口部件正在將某個指令字節(jié)取到指令隊列中,此時,總線接口部件將首先完成這個指令的總線周期,然后再去響應(yīng)執(zhí)行部件發(fā)出的訪問總線的請求。

  ③當指令隊列已滿,而且執(zhí)行部件對總線接口部件又沒有總線訪問請求時,總線接口部件便進入空閑狀態(tài)。

 ?、茉趫?zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時,下面要執(zhí)行的指令就不是在程序中緊接著排列的那條指令了,而總線接口部件往指令隊列裝入指令時,總是按順序進行的,這樣,指令隊列中已經(jīng)裝入了的字節(jié)就沒有用了。遇到這種情況,指令隊列中的原有內(nèi)容被自動清除,總線接口部件會接著往指令隊列中裝入另一個程序段中的指令。

  為了更深入了解8086和8088的工作特點,我們來比較一下8086/8088系統(tǒng)與傳統(tǒng)的計算機在工作方式上有什么不同。

  傳統(tǒng)的計算機都是按照下面這樣的步驟來工作的:

 ?、購闹噶钪羔標傅膬?nèi)存單元中取一條指令送到指令寄存器。

 ?、趯χ噶钸M行譯碼,而指令指針進行增值,以指向下一條指令。

 ?、蹐?zhí)行指令。如果所執(zhí)行的是轉(zhuǎn)移指令、調(diào)用指令或者返回指令,則重新設(shè)置指令指針的值,以指向下一條要執(zhí)行的指令。

  可見,傳統(tǒng)的計算機在執(zhí)行指令時,總是相繼地進行提取指令和執(zhí)行指令的動作,也就是說,指令的提取和執(zhí)行是串行進行的。

  相比之下,在8086/8088中,指令的提取和執(zhí)行是分別由總線接口部件和執(zhí)行部件完成的,總線控制邏輯和指令執(zhí)行邏輯之間既相互獨立又相互配合。正是這種互相配合但又非同步的工作方式,使得8086/8088可以在執(zhí)行指令的同時進行提取指令操作。在8086或8088 CPU中,執(zhí)行部件可以不停地執(zhí)行實現(xiàn)已經(jīng)進入指令隊列中的指令。只有當遇到轉(zhuǎn)移指令、調(diào)用指令或返回指令時,或者當某一條執(zhí)行過程中,需要訪問內(nèi)存的次數(shù)過于頻繁,以至于總線接口部件沒有空閑從內(nèi)存將指令提取到指令隊列中時,才需要執(zhí)行部件等待總線接口部件提取指令。而這種情況相對來說是較少發(fā)生的。

  8086/8088 CPU中,總線接口部件和執(zhí)行部件的這種工作方式,有力地提高了工作效率,這也正是8086/8088成功的原因之一,并被用在更高檔CPU的設(shè)計中。

  §2.2.4 8086的總線周期的概念

  為了取得指令或傳送數(shù)據(jù),就需要CPU的總線接口部件執(zhí)行一個總線周期。為了便于敘述后面的內(nèi)容,在此,先對總線周期的概念作一個介紹,在講完8086的基本配置一后,再詳細地講解總線操作。

  在8086/8088中,一個最基本的總線周期由4個時鐘周期組成,時鐘周期是CPU的基本時間計量單位,它由計算機主頻決定。比如,8086的主頻為50MHz,1個時鐘周期就是200ns;8086-1的主頻為10MHz,一個時鐘周期為100ns。在1個最基本的總線周期中,習慣上將4個時鐘周期分別稱為4個狀態(tài),即T1狀態(tài)、T2狀態(tài)、T3狀態(tài)、T4狀態(tài)。

 ?、僭赥1狀態(tài),CPU往多路復(fù)用總線上發(fā)出地址信息,以指出要尋址的存儲單元或外設(shè)端口的地址。

 ?、谠赥2狀態(tài),CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)作準備??偩€的最高4位(A19~A16)用來輸出本周期狀態(tài)信息。這些狀態(tài)信息用來表示中斷允許狀態(tài)、當前正在使用的短寄存器名等。

 ?、墼赥3狀態(tài),多路總線的高4位繼續(xù)提供狀態(tài)信息,而多路總線的低16位(8088則為低8位)上出現(xiàn)由CPU寫出的數(shù)據(jù)或者CPU從存儲器或端口讀入的數(shù)據(jù)。

 ?、茉谟行┣闆r下。外設(shè)或存儲器速度較慢,不能及時地配合CPU傳送數(shù)據(jù)。這時,外設(shè)或者存儲器會通過“READY”信號線在T3狀態(tài)啟動之前向CPU發(fā)一個“數(shù)據(jù)未準備好”信號,于是CPU會在T3之后插入1個或多個附加的時鐘周期TW。TW也叫等待狀態(tài),在TW狀態(tài),總線上的信號情況和T3狀態(tài)的信息情況一樣。當指定的存儲器或外設(shè)完成數(shù)據(jù)傳送時,便在“READY”線上發(fā)出“準備好”信號,CPU接收到這一信號,會自動脫離TW狀態(tài)而進入T4狀態(tài)。

 ?、?在T4狀態(tài),總線周期結(jié)束。

  需要指出,只有在CPU和內(nèi)存或I/O接口之間傳輸數(shù)據(jù),以及填充指令隊列,CPU才執(zhí)行總線周期。可見,如果在1個總線周期之后,不立即執(zhí)行下一個總線周期,那么,系統(tǒng)總線就處在空閑狀態(tài),此時,執(zhí)行空閑周期。

  在空閑周期中,可以包含1個時鐘周期或多個時鐘周期。這期間,在高4位上,CPU仍然驅(qū)動前一個總線周期的狀態(tài)信息,而且,如果前一個總線周期為寫周期,那么,CPU會在總線低16位上繼續(xù)驅(qū)動數(shù)據(jù)信息;如果前一個總線周期為讀周期沒,則在空閑周期中,總線低16位處于高阻狀態(tài)。

  圖表示了一個典型的總線周期序列。

?
眉山市| 巨鹿县| 海盐县| 昭觉县| 高阳县| 宣化县| 灵宝市| 临颍县| 绥德县| 三原县| 汉寿县| 镇康县| 长泰县| 克东县| 临朐县| 南雄市| 临潭县| 松滋市| 饶平县| 车险| 虹口区| 河池市| 娄底市| 泸水县| 洮南市| 商丘市| 民和| 桐乡市| 儋州市| 临洮县| 和政县| 大宁县| 北安市| 嘉善县| 双流县| 河西区| 白城市| 武乡县| 安丘市| 合江县| 五台县|