當(dāng)前位置:首頁 > IT技術(shù) > 其他 > 正文

存儲器、I/O組織、微處理器
2022-05-29 22:43:02

重點(diǎn)知識

  • 存儲器的內(nèi)部結(jié)構(gòu)及訪問方法
  • 存儲器分段以及存儲器中的邏輯地址和物理地址
  • I/O端口組織及編址方式
  • 時序和總線操作以及系統(tǒng)的工作方式和特點(diǎn)。

存儲器組織

  • 8086有20根地址線,可尋址的存儲器空間為1MB,地址范圍為0220-1(00000HFFFFFH)。
  • 存儲器內(nèi)部按字節(jié)進(jìn)行組織,兩個相鄰的字節(jié)被稱為一個“字”;存儲數(shù)據(jù)以字節(jié)為單位,將在存儲器中順序存放。
  • 若按字存放,一個字的低字節(jié)放在低地址,高字節(jié)放高地址。并以低地址,做該字地址。
  • 若一個字從偶地址開始存放,稱規(guī)則存放或?qū)?zhǔn)存放,這樣存放的字稱為規(guī)則字或?qū)?zhǔn)字。 對規(guī)則字的存取可在一個總線周期完成,非規(guī)則字的存取需要兩個總線周期。

1M字節(jié)的存儲器,存儲空間被分成兩個存儲體,每個存儲體512K字節(jié)。 兩個存儲體之間采用字節(jié)交叉編址方式。

與數(shù)據(jù)總線D15~D8相連的存儲體由奇地址單元組成。稱高字節(jié)存儲體或奇地址存儲體。 用BHE信號作為選擇信號;

存儲器分段

  • 采用20位地址線來尋址。最大可直接尋址的內(nèi)存物理地址空間220=1MB 。CPU內(nèi)寄存器都只有16位,只能尋址64KB(216字節(jié))
  • 把整個存儲空間1MB,分成若干邏輯段, 每個邏輯段的容量最大為64KB,可分為16個互不重疊的邏輯段。
  • 邏輯段分為代碼段、數(shù)據(jù)段、堆棧段和附加段四種類型;
  • 各個邏輯段在整個存儲空間中浮動,可相連,可重疊,可分開一段距離。

允許各個邏輯段在整個存儲空間浮動,可以相連,也可以重疊,可以分開一段距離

存儲器地址

  • 段地址:一般存放在段寄存器中(CS、SS、DS和ES)。是指一個段的起始地址,最低4位為零, (2000H)
  • 偏移地址(有效地址):要尋址的內(nèi)存單元距本段段首的偏移量。同一個段內(nèi),各個存儲單元的段地址是相同的,偏移地址是不同的。(0202H)
  • 邏輯地址:在程序中使用的地址,由段地址和偏移地址兩部分組成。表示形式為“段地址:偏移地址”。(2000:0202H)
  • 物理地址:存儲單元的實(shí)際地址(20位)。物理地址與存儲單元是一一對應(yīng)關(guān)系。(20202H)

物理地址的計(jì)算方法:
物理地址
=段寄存器內(nèi)容×10H + 偏移地址
=段寄存器內(nèi)容左移4位+偏移地址

  • 取指令物理地址=(CS)×10H+(IP)
  • 堆棧操作物理地址=(SS)×10H+(SP)/(BP的表達(dá)式)
  • 存儲器操作數(shù)物理地址=(DS)/(ES)×10H+偏移地址

例:內(nèi)存有由10個字節(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,對應(yīng)物理地址:
PA=(DS)×10H+0020H
=1100H×10H+0020H
= 11020H
即該數(shù)據(jù)區(qū)在內(nèi)存中首單元的物理地址(實(shí)際地址)為11020H。
存儲空間中10個字節(jié)對應(yīng)10個地址,應(yīng)占用從起始地址0單元到9號單元的位置,該數(shù)據(jù)區(qū)在內(nèi)存中末單元物理地址(實(shí)際地址):
PA = 11020H+0009H
= 11029H
所以:本題中10個字節(jié)組成的數(shù)據(jù)區(qū),在內(nèi)存首單元實(shí)際地址是11020H,內(nèi)存末單元實(shí)際地址是11029H。

專用和保留的存儲器單元

8086系統(tǒng)規(guī)定:
1)00000H~003FFH(共1KB):存放中斷向量表,中斷服務(wù)程序的入口地址。每個中斷向量占4字節(jié),前2字節(jié)存放中斷服務(wù)程序的入口偏移地址(IP),后2字節(jié)存放中斷服務(wù)程序的入口段地址(CS)。1KB區(qū)域可存放256個中斷服務(wù)入口地址。當(dāng)系統(tǒng)啟動、引導(dǎo)后,這個區(qū)域的中斷向量就被建立起來。
2)FFFF0H~FFFFFH(共16B):存放一條無條件轉(zhuǎn)移指令,使系統(tǒng)在上電或復(fù)位時,自動跳轉(zhuǎn)到系統(tǒng)的初始化程序。
系統(tǒng)啟動后,CS=0FFFFH,IP=0000H,初始指令的物理地址為0FFFF0H,存放一條無條件轉(zhuǎn)移指令,即轉(zhuǎn)移到系統(tǒng)初始化程序部分。

FFFF:0000H:是BIOS(Basic Input Output System) ROM的起始地址,但不是有效指令開始地址。Jmp指令跳轉(zhuǎn)的START是真正進(jìn)行BIOS程序起始地址

I/O端口組織

8086微處理器用地址總線的低16位作為對8位I/O端口的尋址線,所以8086可訪問的8位I/O端口有216(65536)個。兩個編號相鄰的8位端口可以組成一個16位的端口。一個8位的I/O設(shè)備可以連接在數(shù)據(jù)總線的高8位,也可連接低8位。

1、統(tǒng)一編址把I/O端口看作存儲器單元,每個端口占用一個存儲單元的地址。CPU訪問存儲器的指令和各種尋址方式都可用于尋址I/O端口。

2、獨(dú)立編址端口單獨(dú)編址構(gòu)成一個I/O空間,不占用存儲器地址。有專門輸入/輸出指令(IN和OUT)。使用16條地址線A15~A0來訪問I/O端口,可訪問最多64K容量的8位端口或32K容量的16位端口。

8086CPU的操作是在時鐘CLK統(tǒng)一控制下進(jìn)行的。 8086CPU由外部的一片8284A時鐘信號發(fā)生器提供主頻為5MHz的時鐘信號。

  • 8284A能產(chǎn)生8086所需的系統(tǒng)時鐘信號,即系統(tǒng)主頻。
  • 8284A還可對外界輸入準(zhǔn)備就緒信號RDY和RES進(jìn)行同步操作。
  • 輸出READY信號作為8086的就緒信號READY;輸出RESET信號作為8086的復(fù)位信號RESET。

8086CPU的總線周期和工作方式

8086CPU經(jīng)外部總線對存儲器或I/O端口進(jìn)行一次信息的輸入或輸出過程,稱為總線操作,執(zhí)行該操作所需要的時間,稱為總線周期
1個總線周期,包含4個T時態(tài)。T1,T2,T3,T4。
不同的總線操作需要不同的總線信號,對這些信號的變化進(jìn)行時間順序的描述稱為“總線時序”。
CPU的操作是在時鐘統(tǒng)一控制下進(jìn)行。描述總線操作的微處理器時序有三級
指令周期 → 總線周期 → 時鐘周期

  • 指令周期:計(jì)算機(jī)完成對一條指令的讀取并執(zhí)行所需的時間。
  • 總線周期:CPU經(jīng)外部總線對存儲器或I/O端口進(jìn)行一次信息的輸入或輸出過程所需要的時間。
  • 時鐘周期 T: CPU的基本時間計(jì)量單位,由主頻決定。
  • 等待周期TW:當(dāng)慢速的存儲器或I/O接口,無法在3個時鐘周期內(nèi)完成數(shù)據(jù)讀寫操作時,在總線周期中插入等待周期。
  • 空閑周期 TI:是指在二個總線周期之間的時間間隔(總線處在空閑狀態(tài))。無總線操作時進(jìn)入空閑周期。

8086CPU由外部的一片8284A時鐘信號發(fā)生器提供主頻為5MHz的時鐘信號。

  • 基本總線周期:由4個T狀態(tài)組成:T1、T2、T3、T4。
  • 等待時鐘周期Tw:在總線周期的T3和T4之間插入。
  • 空閑時鐘周期Ti:在兩個總線周期之間插入。
image-20220529160604219

8086CPU采用總線復(fù)用操作方式,16位數(shù)據(jù)總線和地址總線的低16位是共用的,典型的總線周期如圖
在沒有插入等待時鐘周期TW的情況下,總線周期由4個時鐘周期組成,即圖中T1、T2、T3、T4

  • 在T1期間:CPU把存儲器或外設(shè)的地址放到總線上。
  • T2期間:分時復(fù)用的地址/數(shù)據(jù)總線處于高阻態(tài),以便為讀入或?qū)懗鰯?shù)據(jù)作準(zhǔn)備。
  • 在T3和T4期間:讀或?qū)懙臄?shù)據(jù)出現(xiàn)在總線上,以使完成讀或?qū)懙牟僮鳌?/li>

等待周期TW:

如果在T3周期結(jié)束之前,存儲器或外設(shè)未準(zhǔn)備好數(shù)據(jù)傳送,就要輸入CPU的READY線使之變低電平,從而在T3和T4之間插入一個或多個TW等待周期,直到READY變高,轉(zhuǎn)入T4周期,完成讀寫操作。

  • 任何指令的取指階段都需要存儲器讀總線周期,讀取的內(nèi)容是指令代碼
  • 任何一條以存儲單元為源操作數(shù)的指令都將引起存儲器讀總線周期,任何一條以存儲單元為目的操作數(shù)的指令都將引起存儲器寫總線周期
  • 只有執(zhí)行IN指令才出現(xiàn)I/O讀總線周期,執(zhí)行OUT指令才出現(xiàn)I/O寫總線周期
  • CPU響應(yīng)可屏蔽中斷時生成中斷響應(yīng)總線周期

為了適應(yīng)各種場合的要求,8086CPU在設(shè)計(jì)中提供了兩種工作模式,即最小模式和最大模式。
通過CPU的第33條引腳 MN/MX 來控制。
(1)最小工作模式(MN/MX =1):適用于單微處理器組成的小系統(tǒng),系統(tǒng)中通常只有一個微處理器,所有的總線控制信號都直接由8086CPU產(chǎn)生,系統(tǒng)中的總線控制邏輯電路被減到最少。
(2)最大工作模式(MN/MX=0):此時,系統(tǒng)中存在兩個或兩個以上的微處理器,其中有一個主處理器8086,其他處理器稱為協(xié)處理器。

舉例:8086最小模式基本時序

  • 總線讀周期 8086CPU進(jìn)行存儲器或I/O端口讀操作時,總線進(jìn)入讀周期;
  • 總線寫周期 8086CPU進(jìn)行存儲器或I/O接口寫操作時,總線進(jìn)入寫周期。
  • 中斷響應(yīng)周期 當(dāng)8086的INTR引腳上有高電平信號,且中斷標(biāo)志IF=1時,8086CPU在執(zhí)行完當(dāng)前指令后,進(jìn)入中斷響應(yīng)周期。響應(yīng)中斷時CPU將執(zhí)行兩個中斷響應(yīng)周期。
  • 總線響應(yīng)周期 當(dāng)系統(tǒng)中有其它的總線主設(shè)備請求總線控制時, CPU進(jìn)入總線響應(yīng)周期。
  • 系統(tǒng)復(fù)位周期 8086CPU的RESET引腳,可以用來啟動或再啟動系統(tǒng)

8086在最大與最小模式下的主要區(qū)別是增加了一個8288總線控制器。8288接受8086CPU的狀態(tài)信號S2、S1和S0,經(jīng)過變換和組合,由8288發(fā)出對存儲器和I/O端口的讀/寫信號,對鎖存器8282及對總線收發(fā)器8286的控制信號。

32位微處理器

80386的主要特點(diǎn)

  • 80386微處理器擁有32位數(shù)據(jù)總線和32位地址總線,可直接尋址4GB(232)的物理存儲空間,同時具有虛擬存儲的能力,虛擬存儲空間達(dá)64TB。存儲器采用分段結(jié)構(gòu),一個段最大可為4G字節(jié)。
  • 系統(tǒng)采用了流水線和指令重疊技術(shù)、虛擬存儲技術(shù)、片內(nèi)存儲器管理技術(shù)、存儲器管理分段分頁保護(hù)技術(shù)等,使80386系統(tǒng)實(shí)現(xiàn)了多用戶多任務(wù)操作,功能得到大大加強(qiáng)。
  • 提供32位的指令,可支持8位、16位、32位的數(shù)據(jù)類型,具有8個通用的32位寄存器,具有片內(nèi)地址轉(zhuǎn)換的高速緩沖存儲器Cache。
  • 提供32位外部總線接口,最大數(shù)據(jù)傳輸速率為32Mbps。系統(tǒng)可同高速的DRAM芯片接口,支持動態(tài)總線寬度控制,能動態(tài)地切換32位/16位數(shù)據(jù)總線。
  • 具有片內(nèi)集成的存儲器管理部件MMU,可支持虛擬存儲和特權(quán)保護(hù),可選擇片內(nèi)分頁單元。片內(nèi)具有多任務(wù)機(jī)構(gòu),能快速完成任務(wù)的切換。
  • 通過配置浮點(diǎn)協(xié)處理器80387實(shí)現(xiàn)數(shù)據(jù)高速處理,加快了浮點(diǎn)運(yùn)算速度。
  • 80386系統(tǒng)能在時鐘頻率為12.5 MHz或16 MHz下可靠工作,指令的執(zhí)行速度可達(dá)3~4MIPS以上。

80486的主要特性

  • 80486是在復(fù)雜指令集計(jì)算機(jī)CISC技術(shù)的基礎(chǔ)上,首次采用了精簡指令集計(jì)算機(jī)RISC技術(shù)的80X86系列微處理器。
  • 把浮點(diǎn)運(yùn)算部件和高速緩沖存儲器Cache集成在芯片內(nèi),使運(yùn)算速度和數(shù)據(jù)存取速度得到大大提高
  • 80486增加了多處理器指令,增強(qiáng)了多重處理系統(tǒng),片上硬件確保了超高速緩存一致性協(xié)議,并支持多級超高速緩存結(jié)構(gòu)。
  • 80486具有機(jī)內(nèi)自測試功能,可以廣泛地測試片上邏輯電路、超高速緩存和片上分頁轉(zhuǎn)換高速緩存,支持硬件測試、Intel軟件和擴(kuò)展的第三者軟件。

80486的基本結(jié)構(gòu)
80486CPU的內(nèi)部結(jié)構(gòu)如圖所示,它包括總線接口部件、片內(nèi)高速緩沖存儲器Cache、指令預(yù)取、指令譯碼、控制/保護(hù)、整數(shù)、浮點(diǎn)運(yùn)算、分段和分頁等功能部件。80486將這些部件集成在一塊芯片上,既可以減少主板空間,還可以提高CPU的執(zhí)行速度。

Pentium系列微處理器

Pentium系列微型計(jì)算機(jī)的主要特點(diǎn)

  • 高集成度,片內(nèi)集成有310萬個晶體管。
  • 時鐘頻率高,從60MHz或66MHz發(fā)展到500MHz,700MHz和1500MHz。
  • 數(shù)據(jù)總線帶寬增加,內(nèi)部總線為32位,外部數(shù)據(jù)總線寬度為64位。
  • 內(nèi)采用分立的指令Cache和數(shù)據(jù)Cache結(jié)構(gòu),可無沖突地同時完成指令預(yù)取和數(shù)據(jù)讀寫。
  • 采用RISC型超標(biāo)量結(jié)構(gòu)。超標(biāo)量是指微處理器內(nèi)具有多條指令執(zhí)行流水線,以增加每個時鐘周期內(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)了錯誤檢測與報告功能。內(nèi)部增強(qiáng)了錯誤檢測與報告功能,特別引進(jìn)了片功能冗余檢測(FRC)。
  • 64位數(shù)據(jù)總線。Pentium為了大幅度提高數(shù)據(jù)傳輸速度而使用64位的數(shù)據(jù)總線。
  • 分支指令預(yù)測。處理器內(nèi)部采用了分支預(yù)測技術(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/

開通會員,享受整站包年服務(wù)立即開通 >