重點(diǎn)知識(shí)
- 存儲(chǔ)器的內(nèi)部結(jié)構(gòu)及訪問(wèn)方法
- 存儲(chǔ)器分段以及存儲(chǔ)器中的邏輯地址和物理地址
- I/O端口組織及編址方式
- 時(shí)序和總線操作以及系統(tǒng)的工作方式和特點(diǎn)。
存儲(chǔ)器組織
- 8086有20根地址線,可尋址的存儲(chǔ)器空間為1MB,地址范圍為0220-1(00000HFFFFFH)。
- 存儲(chǔ)器內(nèi)部按字節(jié)進(jìn)行組織,兩個(gè)相鄰的字節(jié)被稱(chēng)為一個(gè)“字”;存儲(chǔ)數(shù)據(jù)以字節(jié)為單位,將在存儲(chǔ)器中順序存放。
- 若按字存放,一個(gè)字的低字節(jié)放在低地址,高字節(jié)放高地址。并以低地址,做該字地址。
- 若一個(gè)字從偶地址開(kāi)始存放,稱(chēng)規(guī)則存放或?qū)?zhǔn)存放,這樣存放的字稱(chēng)為規(guī)則字或?qū)?zhǔn)字。 對(duì)規(guī)則字的存取可在一個(gè)總線周期完成,非規(guī)則字的存取需要兩個(gè)總線周期。
1M字節(jié)的存儲(chǔ)器,存儲(chǔ)空間被分成兩個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體512K字節(jié)。 兩個(gè)存儲(chǔ)體之間采用字節(jié)交叉編址方式。
與數(shù)據(jù)總線D15~D8相連的存儲(chǔ)體由奇地址單元組成。稱(chēng)高字節(jié)存儲(chǔ)體或奇地址存儲(chǔ)體。 用BHE信號(hào)作為選擇信號(hào);
存儲(chǔ)器分段
- 采用20位地址線來(lái)尋址。最大可直接尋址的內(nèi)存物理地址空間220=1MB 。CPU內(nèi)寄存器都只有16位,只能尋址64KB(216字節(jié))
- 把整個(gè)存儲(chǔ)空間1MB,分成若干邏輯段, 每個(gè)邏輯段的容量最大為64KB,可分為16個(gè)互不重疊的邏輯段。
- 邏輯段分為代碼段、數(shù)據(jù)段、堆棧段和附加段四種類(lèi)型;
- 各個(gè)邏輯段在整個(gè)存儲(chǔ)空間中浮動(dòng),可相連,可重疊,可分開(kāi)一段距離。
允許各個(gè)邏輯段在整個(gè)存儲(chǔ)空間浮動(dòng),可以相連,也可以重疊,可以分開(kāi)一段距離
存儲(chǔ)器地址
- 段地址:一般存放在段寄存器中(CS、SS、DS和ES)。是指一個(gè)段的起始地址,最低4位為零, (2000H)
- 偏移地址(有效地址):要尋址的內(nèi)存單元距本段段首的偏移量。同一個(gè)段內(nèi),各個(gè)存儲(chǔ)單元的段地址是相同的,偏移地址是不同的。(0202H)
- 邏輯地址:在程序中使用的地址,由段地址和偏移地址兩部分組成。表示形式為“段地址:偏移地址”。(2000:0202H)
- 物理地址:存儲(chǔ)單元的實(shí)際地址(20位)。物理地址與存儲(chǔ)單元是一一對(duì)應(yīng)關(guān)系。(20202H)
物理地址的計(jì)算方法:
物理地址
=段寄存器內(nèi)容×10H + 偏移地址
=段寄存器內(nèi)容左移4位+偏移地址
- 取指令物理地址=(CS)×10H+(IP)
- 堆棧操作物理地址=(SS)×10H+(SP)/(BP的表達(dá)式)
- 存儲(chǔ)器操作數(shù)物理地址=(DS)/(ES)×10H+偏移地址
例:內(nèi)存有由10個(gè)字節(jié)組成的數(shù)據(jù)區(qū),起始地址1100H:0020H。計(jì)算該數(shù)據(jù)區(qū)在內(nèi)存的首末單元實(shí)際地址。
解:內(nèi)存數(shù)據(jù)區(qū)邏輯地址1100H:0020H,可知該數(shù)據(jù)段地址:(DS)=1100H,偏移地址為0020H,對(duì)應(yīng)物理地址:
PA=(DS)×10H+0020H
=1100H×10H+0020H
= 11020H
即該數(shù)據(jù)區(qū)在內(nèi)存中首單元的物理地址(實(shí)際地址)為11020H。
存儲(chǔ)空間中10個(gè)字節(jié)對(duì)應(yīng)10個(gè)地址,應(yīng)占用從起始地址0單元到9號(hào)單元的位置,該數(shù)據(jù)區(qū)在內(nèi)存中末單元物理地址(實(shí)際地址):
PA = 11020H+0009H
= 11029H
所以:本題中10個(gè)字節(jié)組成的數(shù)據(jù)區(qū),在內(nèi)存首單元實(shí)際地址是11020H,內(nèi)存末單元實(shí)際地址是11029H。
專(zhuān)用和保留的存儲(chǔ)器單元
8086系統(tǒng)規(guī)定:
1)00000H~003FFH(共1KB):存放中斷向量表,中斷服務(wù)程序的入口地址。每個(gè)中斷向量占4字節(jié),前2字節(jié)存放中斷服務(wù)程序的入口偏移地址(IP),后2字節(jié)存放中斷服務(wù)程序的入口段地址(CS)。1KB區(qū)域可存放256個(gè)中斷服務(wù)入口地址。當(dāng)系統(tǒng)啟動(dòng)、引導(dǎo)后,這個(gè)區(qū)域的中斷向量就被建立起來(lái)。
2)FFFF0H~FFFFFH(共16B):存放一條無(wú)條件轉(zhuǎn)移指令,使系統(tǒng)在上電或復(fù)位時(shí),自動(dòng)跳轉(zhuǎn)到系統(tǒng)的初始化程序。
系統(tǒng)啟動(dòng)后,CS=0FFFFH,IP=0000H,初始指令的物理地址為0FFFF0H,存放一條無(wú)條件轉(zhuǎn)移指令,即轉(zhuǎn)移到系統(tǒng)初始化程序部分。
FFFF:0000H:是BIOS(Basic Input Output System) ROM的起始地址,但不是有效指令開(kāi)始地址。Jmp指令跳轉(zhuǎn)的START是真正進(jìn)行BIOS程序起始地址
I/O端口組織
8086微處理器用地址總線的低16位作為對(duì)8位I/O端口的尋址線,所以8086可訪問(wèn)的8位I/O端口有216(65536)個(gè)。兩個(gè)編號(hào)相鄰的8位端口可以組成一個(gè)16位的端口。一個(gè)8位的I/O設(shè)備可以連接在數(shù)據(jù)總線的高8位,也可連接低8位。
1、統(tǒng)一編址: 把I/O端口看作存儲(chǔ)器單元,每個(gè)端口占用一個(gè)存儲(chǔ)單元的地址。CPU訪問(wèn)存儲(chǔ)器的指令和各種尋址方式都可用于尋址I/O端口。
2、獨(dú)立編址: 端口單獨(dú)編址構(gòu)成一個(gè)I/O空間,不占用存儲(chǔ)器地址。有專(zhuān)門(mén)輸入/輸出指令(IN和OUT)。使用16條地址線A15~A0來(lái)訪問(wèn)I/O端口,可訪問(wèn)最多64K容量的8位端口或32K容量的16位端口。
8086CPU的操作是在時(shí)鐘CLK統(tǒng)一控制下進(jìn)行的。 8086CPU由外部的一片8284A時(shí)鐘信號(hào)發(fā)生器提供主頻為5MHz的時(shí)鐘信號(hào)。
- 8284A能產(chǎn)生8086所需的系統(tǒng)時(shí)鐘信號(hào),即系統(tǒng)主頻。
- 8284A還可對(duì)外界輸入準(zhǔn)備就緒信號(hào)RDY和RES進(jìn)行同步操作。
- 輸出READY信號(hào)作為8086的就緒信號(hào)READY;輸出RESET信號(hào)作為8086的復(fù)位信號(hào)RESET。
8086CPU的總線周期和工作方式
8086CPU經(jīng)外部總線對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次信息的輸入或輸出過(guò)程,稱(chēng)為總線操作,執(zhí)行該操作所需要的時(shí)間,稱(chēng)為總線周期。
1個(gè)總線周期,包含4個(gè)T時(shí)態(tài)。T1,T2,T3,T4。
不同的總線操作需要不同的總線信號(hào),對(duì)這些信號(hào)的變化進(jìn)行時(shí)間順序的描述稱(chēng)為“總線時(shí)序”。
CPU的操作是在時(shí)鐘統(tǒng)一控制下進(jìn)行。描述總線操作的微處理器時(shí)序有三級(jí)
指令周期 → 總線周期 → 時(shí)鐘周期
- 指令周期:計(jì)算機(jī)完成對(duì)一條指令的讀取并執(zhí)行所需的時(shí)間。
- 總線周期:CPU經(jīng)外部總線對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次信息的輸入或輸出過(guò)程所需要的時(shí)間。
- 時(shí)鐘周期 T: CPU的基本時(shí)間計(jì)量單位,由主頻決定。
- 等待周期TW:當(dāng)慢速的存儲(chǔ)器或I/O接口,無(wú)法在3個(gè)時(shí)鐘周期內(nèi)完成數(shù)據(jù)讀寫(xiě)操作時(shí),在總線周期中插入等待周期。
- 空閑周期 TI:是指在二個(gè)總線周期之間的時(shí)間間隔(總線處在空閑狀態(tài))。無(wú)總線操作時(shí)進(jìn)入空閑周期。
8086CPU由外部的一片8284A時(shí)鐘信號(hào)發(fā)生器提供主頻為5MHz的時(shí)鐘信號(hào)。
- 基本總線周期:由4個(gè)T狀態(tài)組成:T1、T2、T3、T4。
- 等待時(shí)鐘周期Tw:在總線周期的T3和T4之間插入。
- 空閑時(shí)鐘周期Ti:在兩個(gè)總線周期之間插入。
8086CPU采用總線復(fù)用操作方式,16位數(shù)據(jù)總線和地址總線的低16位是共用的,典型的總線周期如圖
在沒(méi)有插入等待時(shí)鐘周期TW的情況下,總線周期由4個(gè)時(shí)鐘周期組成,即圖中T1、T2、T3、T4
- 在T1期間:CPU把存儲(chǔ)器或外設(shè)的地址放到總線上。
- T2期間:分時(shí)復(fù)用的地址/數(shù)據(jù)總線處于高阻態(tài),以便為讀入或?qū)懗鰯?shù)據(jù)作準(zhǔn)備。
- 在T3和T4期間:讀或?qū)懙臄?shù)據(jù)出現(xiàn)在總線上,以使完成讀或?qū)懙牟僮鳌?/li>
等待周期TW:
如果在T3周期結(jié)束之前,存儲(chǔ)器或外設(shè)未準(zhǔn)備好數(shù)據(jù)傳送,就要輸入CPU的READY線使之變低電平,從而在T3和T4之間插入一個(gè)或多個(gè)TW等待周期,直到READY變高,轉(zhuǎn)入T4周期,完成讀寫(xiě)操作。
- 任何指令的取指階段都需要存儲(chǔ)器讀總線周期,讀取的內(nèi)容是指令代碼
- 任何一條以存儲(chǔ)單元為源操作數(shù)的指令都將引起存儲(chǔ)器讀總線周期,任何一條以存儲(chǔ)單元為目的操作數(shù)的指令都將引起存儲(chǔ)器寫(xiě)總線周期
- 只有執(zhí)行IN指令才出現(xiàn)I/O讀總線周期,執(zhí)行OUT指令才出現(xiàn)I/O寫(xiě)總線周期
- CPU響應(yīng)可屏蔽中斷時(shí)生成中斷響應(yīng)總線周期
為了適應(yīng)各種場(chǎng)合的要求,8086CPU在設(shè)計(jì)中提供了兩種工作模式,即最小模式和最大模式。
通過(guò)CPU的第33條引腳 MN/MX 來(lái)控制。
(1)最小工作模式(MN/MX =1):適用于單微處理器組成的小系統(tǒng),系統(tǒng)中通常只有一個(gè)微處理器,所有的總線控制信號(hào)都直接由8086CPU產(chǎn)生,系統(tǒng)中的總線控制邏輯電路被減到最少。
(2)最大工作模式(MN/MX=0):此時(shí),系統(tǒng)中存在兩個(gè)或兩個(gè)以上的微處理器,其中有一個(gè)主處理器8086,其他處理器稱(chēng)為協(xié)處理器。
舉例:8086最小模式基本時(shí)序
- 總線讀周期 8086CPU進(jìn)行存儲(chǔ)器或I/O端口讀操作時(shí),總線進(jìn)入讀周期;
- 總線寫(xiě)周期 8086CPU進(jìn)行存儲(chǔ)器或I/O接口寫(xiě)操作時(shí),總線進(jìn)入寫(xiě)周期。
- 中斷響應(yīng)周期 當(dāng)8086的INTR引腳上有高電平信號(hào),且中斷標(biāo)志IF=1時(shí),8086CPU在執(zhí)行完當(dāng)前指令后,進(jìn)入中斷響應(yīng)周期。響應(yīng)中斷時(shí)CPU將執(zhí)行兩個(gè)中斷響應(yīng)周期。
- 總線響應(yīng)周期 當(dāng)系統(tǒng)中有其它的總線主設(shè)備請(qǐng)求總線控制時(shí), CPU進(jìn)入總線響應(yīng)周期。
- 系統(tǒng)復(fù)位周期 8086CPU的RESET引腳,可以用來(lái)啟動(dòng)或再啟動(dòng)系統(tǒng)
8086在最大與最小模式下的主要區(qū)別是增加了一個(gè)8288總線控制器。8288接受8086CPU的狀態(tài)信號(hào)S2、S1和S0,經(jīng)過(guò)變換和組合,由8288發(fā)出對(duì)存儲(chǔ)器和I/O端口的讀/寫(xiě)信號(hào),對(duì)鎖存器8282及對(duì)總線收發(fā)器8286的控制信號(hào)。
32位微處理器
80386的主要特點(diǎn)
- 80386微處理器擁有32位數(shù)據(jù)總線和32位地址總線,可直接尋址4GB(232)的物理存儲(chǔ)空間,同時(shí)具有虛擬存儲(chǔ)的能力,虛擬存儲(chǔ)空間達(dá)64TB。存儲(chǔ)器采用分段結(jié)構(gòu),一個(gè)段最大可為4G字節(jié)。
- 系統(tǒng)采用了流水線和指令重疊技術(shù)、虛擬存儲(chǔ)技術(shù)、片內(nèi)存儲(chǔ)器管理技術(shù)、存儲(chǔ)器管理分段分頁(yè)保護(hù)技術(shù)等,使80386系統(tǒng)實(shí)現(xiàn)了多用戶(hù)多任務(wù)操作,功能得到大大加強(qiáng)。
- 提供32位的指令,可支持8位、16位、32位的數(shù)據(jù)類(lèi)型,具有8個(gè)通用的32位寄存器,具有片內(nèi)地址轉(zhuǎn)換的高速緩沖存儲(chǔ)器Cache。
- 提供32位外部總線接口,最大數(shù)據(jù)傳輸速率為32Mbps。系統(tǒng)可同高速的DRAM芯片接口,支持動(dòng)態(tài)總線寬度控制,能動(dòng)態(tài)地切換32位/16位數(shù)據(jù)總線。
- 具有片內(nèi)集成的存儲(chǔ)器管理部件MMU,可支持虛擬存儲(chǔ)和特權(quán)保護(hù),可選擇片內(nèi)分頁(yè)單元。片內(nèi)具有多任務(wù)機(jī)構(gòu),能快速完成任務(wù)的切換。
- 通過(guò)配置浮點(diǎn)協(xié)處理器80387實(shí)現(xiàn)數(shù)據(jù)高速處理,加快了浮點(diǎn)運(yùn)算速度。
- 80386系統(tǒng)能在時(shí)鐘頻率為12.5 MHz或16 MHz下可靠工作,指令的執(zhí)行速度可達(dá)3~4MIPS以上。
80486的主要特性
- 80486是在復(fù)雜指令集計(jì)算機(jī)CISC技術(shù)的基礎(chǔ)上,首次采用了精簡(jiǎn)指令集計(jì)算機(jī)RISC技術(shù)的80X86系列微處理器。
- 把浮點(diǎn)運(yùn)算部件和高速緩沖存儲(chǔ)器Cache集成在芯片內(nèi),使運(yùn)算速度和數(shù)據(jù)存取速度得到大大提高
- 80486增加了多處理器指令,增強(qiáng)了多重處理系統(tǒng),片上硬件確保了超高速緩存一致性協(xié)議,并支持多級(jí)超高速緩存結(jié)構(gòu)。
- 80486具有機(jī)內(nèi)自測(cè)試功能,可以廣泛地測(cè)試片上邏輯電路、超高速緩存和片上分頁(yè)轉(zhuǎn)換高速緩存,支持硬件測(cè)試、Intel軟件和擴(kuò)展的第三者軟件。
80486的基本結(jié)構(gòu)
80486CPU的內(nèi)部結(jié)構(gòu)如圖所示,它包括總線接口部件、片內(nèi)高速緩沖存儲(chǔ)器Cache、指令預(yù)取、指令譯碼、控制/保護(hù)、整數(shù)、浮點(diǎn)運(yùn)算、分段和分頁(yè)等功能部件。80486將這些部件集成在一塊芯片上,既可以減少主板空間,還可以提高CPU的執(zhí)行速度。
Pentium系列微處理器
Pentium系列微型計(jì)算機(jī)的主要特點(diǎn)
- 高集成度,片內(nèi)集成有310萬(wàn)個(gè)晶體管。
- 時(shí)鐘頻率高,從60MHz或66MHz發(fā)展到500MHz,700MHz和1500MHz。
- 數(shù)據(jù)總線帶寬增加,內(nèi)部總線為32位,外部數(shù)據(jù)總線寬度為64位。
- 內(nèi)采用分立的指令Cache和數(shù)據(jù)Cache結(jié)構(gòu),可無(wú)沖突地同時(shí)完成指令預(yù)取和數(shù)據(jù)讀寫(xiě)。
- 采用RISC型超標(biāo)量結(jié)構(gòu)。超標(biāo)量是指微處理器內(nèi)具有多條指令執(zhí)行流水線,以增加每個(gè)時(shí)鐘周期內(nèi)可以執(zhí)行的指令數(shù),從而使微處理器的運(yùn)行速度成倍提高。
- 高性能的浮點(diǎn)運(yùn)算器。Pentium采用全新設(shè)計(jì)的增強(qiáng)型浮點(diǎn)運(yùn)算器(FPU),使得它的浮點(diǎn)運(yùn)算速度比80486DX要快3~5倍
- 雙重分離式高速緩存。將指令高速緩存與數(shù)據(jù)高速緩存分離,各自擁有獨(dú)立的8KB高速緩存。
- 增強(qiáng)了錯(cuò)誤檢測(cè)與報(bào)告功能。內(nèi)部增強(qiáng)了錯(cuò)誤檢測(cè)與報(bào)告功能,特別引進(jìn)了片功能冗余檢測(cè)(FRC)。
- 64位數(shù)據(jù)總線。Pentium為了大幅度提高數(shù)據(jù)傳輸速度而使用64位的數(shù)據(jù)總線。
- 分支指令預(yù)測(cè)。處理器內(nèi)部采用了分支預(yù)測(cè)技術(shù),大大提高了流水線執(zhí)行效率。
- 常用指令固化及微代碼改進(jìn)。把一些常用的指令改用硬件實(shí)現(xiàn),不再使用微代碼操作。
- 系統(tǒng)管理方式。具有實(shí)地址方式、保護(hù)方式、虛擬8086方式及具有特色的SMM(系統(tǒng)管理方式)。
- 軟件向上兼容 80386/80486,可以在MS-DOS,Windows 95,Windows NT,OS/2,UNIX和Solaris等操作系統(tǒng)下運(yùn)行。
Pentium微處理器的內(nèi)部結(jié)構(gòu)
Pentium微處理器的主要部件包括總線接口部件、指令高速緩存器、數(shù)據(jù)高速緩存器、指令預(yù)取部件(指令預(yù)取緩沖器)與轉(zhuǎn)移目標(biāo)緩沖器、寄存器組、指令譯碼部件、具有兩條流水線的整數(shù)處理部件(U流水線和V流水線)、擁有加乘除運(yùn)算且具有多用途電路的流水浮點(diǎn)處理部件FPU等。
本文摘自 :https://www.cnblogs.com/