當前位置:編程學習大全網 - 熱門推薦 - cpu是如何在內存中尋址的

cpu是如何在內存中尋址的

各種內存概念

這裏需要明確的是,我們討論的不同內存的概念是建立在尋址空間上的。

IBM推出的第壹臺PC機采用的CPU是8088芯片,它只有20根地址線,也就是說,它的地址空間是1MB。

PC機的設計師將1MB中的低端640KB用作RAM,供DOS及應用程序使用,高端的384KB則保留給ROM、視頻適配卡等系統使用。從此,這個界限便被確定了下來並且沿用至今。低端的640KB就被稱為常規內存即PC機的基本RAM區。保留內存中的低128KB是顯示緩沖區,高64KB是系統 BIOS(基本輸入/輸出系統)空間,其余192KB空間留用。從對應的物理存儲器來看,基本內存區只使用了512KB芯片,占用0000至80000這 512KB地址。顯示內存區雖有128KB空間,但對單色顯示器(MDA卡)只需4KB就足夠了,因此只安裝4KB的物理存儲器芯片,占用了B0000至 B10000這4KB的空間,如果使用彩色顯示器(CGA卡)需要安裝16KB的物理存儲器,占用B8000至BC000這16KB的空間,可見實際使用的地址範圍都小於允許使用的地址空間。

在當時(1980年末至1981年初)這麽“大”容量的內存對PC機使用者來說似乎已經足夠了,但是隨著程序的不斷增大,圖象和聲音的不斷豐富,以及能訪問更大內存空間的新型CPU相繼出現,最初的PC機和MS-DOS設計的局限性變得越來越明顯。

●1.什麽是擴充內存?

到1984年,即286被普遍接受不久,人們越來越認識到640KB的限制已成為大型程序的障礙,這時,Intel和Lotus,這兩家硬、軟件的傑出代表,聯手制定了壹個由硬件和軟件相結合的方案,此方法使所有PC機存取640KB以上RAM成為可能。而Microsoft剛推出Windows不久,對內存空間的要求也很高,因此它也及時加入了該行列。

在1985年初,Lotus、Intel和Microsoft三家***同定義了LIM-EMS,即擴充內存規範,通常稱EMS為擴充內存。當時,EMS需要壹個安裝在I/O槽口的內存擴充卡和壹個稱為EMS的擴充內存管理程序方可使用。但是I/O插槽的地址線只有24位(ISA總線),這對於386以上檔次的32位機是不能適應的。所以,現在已很少使用內存擴充卡。現在微機中的擴充內存通常是用軟件如DOS中的EMM386把擴展內存模擬或擴充內存來使用。所以,擴充內存和擴展內存的區別並不在於其物理存儲器的位置,而在於使用什麽方法來讀寫它。下面將作進壹步介紹。

前面已經說過擴充存儲器也可以由擴展存儲器模擬轉換而成。EMS的原理和XMS不同,它采用了頁幀方式。頁幀是在1MB空間中指定壹塊64KB空間(通常在保留內存區內,但其物理存儲器來自擴展存儲器),分為4頁,每頁16KB。EMS存儲器也按16KB分頁,每次可交換4頁內容,以此方式可訪問全部 EMS存儲器。符合EMS的驅動程序很多,常用的有EMM386.EXE、QEMM、TurboEMS、386MAX等。DOS和Windows中都提供了EMM386.EXE。

●2.什麽是擴展內存?

我們知道,286有24位地址線,它可尋址16MB的地址空間,而386有32位地址線,它可尋址高達4GB的地址空間,為了區別起見,我們把1MB以上的地址空間稱為擴展內存XMS(eXtend memory)。

在386以上檔次的微機中,有兩種存儲器工作方式,壹種稱為實地址方式或實方式,另壹種稱為保護方式。在實方式下,物理地址仍使用20位,所以最大尋址空間為1MB,以便與8086兼容。保護方式采用32位物理地址,尋址範圍可達4GB。DOS系統在實方式下工作,它管理的內存空間仍為1MB,因此它不能直接使用擴展存儲器。為此,Lotus、Intel、AST及Microsoft公司建立了MS-DOS下擴展內存的使用標準,即擴展內存規範XMS。我們常在Config.sys文件中看到的Himem.sys就是管理擴展內存的驅動程序。

擴展內存管理規範的出現遲於擴充內存管理規範。

●3.什麽是高端內存區?

在實方式下,內存單元的地址可記為:

段地址:段內偏移

通常用十六進制寫為XXXX:XXXX。實際的物理地址由段地址左移4位再和段內偏移相加而成。若地址各位均為1時,即為FFFF:FFFF。其實際物理地址為:FFF0+FFFF=10FFEF,約為1088KB(少16字節),這已超過1MB範圍進入擴展內存了。這個進入擴展內存的區域約為64KB,是1MB以上空間的第壹個64KB。我們把它稱為高端內存區HMA(High Memory Area)。HMA的物理存儲器是由擴展存儲器取得的。因此要使用HMA,必須要有物理的擴展存儲器存在。此外HMA的建立和使用還需要XMS驅動程序 HIMEM.SYS的支持,因此只有裝入了HIMEM.SYS之後才能使用HMA。

●4.什麽是上位內存?

為了解釋上位內存的概念,我們還得回過頭看看保留內存區。保留內存區是指640KB~1024KB(***384KB)區域。這部分區域在PC誕生之初就明確是保留給系統使用的,用戶程序無法插足。但這部分空間並沒有充分使用,因此大家都想對剩余的部分打主意,分壹塊地址空間(註意:是地址空間,而不是物理存儲器)來使用。於是就得到了又壹塊內存區域UMB。

UMB(Upper Memory Blocks)稱為上位內存或上位內存塊。它是由擠占保留內存中剩余未用的空間而產生的,它的物理存儲器仍然取自物理的擴展存儲器,它的管理驅動程序是EMS驅動程序。

●5.什麽是SHADOW(影子)內存?

對於細心的讀者,可能還會發現壹個問題:即是對於裝有1MB或1MB以上物理存儲器的機器,其640KB~1024KB這部分物理存儲器如何使用的問題。由於這部分地址空間已分配為系統使用,所以不能再重復使用。為了利用這部分物理存儲器,在某些386系統中,提供了壹個重定位功能,即把這部分物理存儲器的地址重定位為1024KB~1408KB。這樣,這部分物理存儲器就變成了擴展存儲器,當然可以使用了。但這種重定位功能在當今高檔機器中不再使用,而把這部分物理存儲器保留作為Shadow存儲器。Shadow存儲器可以占據的地址空間與對應的ROM是相同的。Shadow由RAM組成,其速度大大高於ROM。當把ROM中的內容(各種BIOS程序)裝入相同地址的Shadow RAM中,就可以從RAM中訪問BIOS,而不必再訪問ROM。這樣將大大提高系統性能。因此在設置CMOS參數時,應將相應的Shadow區設為允許使用(Enabled)。

●6、什麽是奇/偶校驗?

奇/偶校驗(ECC)是數據傳送時采用的壹種校正數據錯誤的壹種方式,分為奇校驗和偶校驗兩種。

如果是采用奇校驗,在傳送每壹個字節的時候另外附加壹位作為校驗位,當實際數據中“1”的個數為偶數的時候,這個校驗位就是“1”,否則這個校驗位就是 “0”,這樣就可以保證傳送數據滿足奇校驗的要求。在接收方收到數據時,將按照奇校驗的要求檢測數據中“1”的個數,如果是奇數,表示傳送正確,否則表示傳送錯誤。

同理偶校驗的過程和奇校驗的過程壹樣,只是檢測數據中“1”的個數為偶數。

●1.什麽是CL延遲?

CL反應時間是衡定內存的另壹個標誌。CL是CAS Latency的縮寫,指的是內存存取數據所需的延遲時間,簡單的說,就是內存接到CPU的指令後的反應速度。壹般的參數值是2和3兩種。數字越小,代表反應所需的時間越短。在早期的PC133內存標準中,這個數值規定為3,而在Intel重新制訂的新規範中,強制要求CL的反應時間必須為2,這樣在壹定程度上,對於內存廠商的芯片及PCB的組裝工藝要求相對較高,同時也保證了更優秀的品質。因此在選購品牌內存時,這是壹個不可不察的因素。

還有另的詮釋:內存延遲基本上可以解釋成是系統進入數據進行存取操作就緒狀態前等待內存響應的時間。

打個形象的比喻,就像妳在餐館裏用餐的過程壹樣。妳首先要點菜,然後就等待服務員給妳上菜。同樣的道理,內存延遲時間設置的越短,電腦從內存中讀取數據的速度也就越快,進而電腦其他的性能也就越高。這條規則雙雙適用於基於英特爾以及AMD處理器的系統中。由於沒有比2-2-2-5更低的延遲,因此國際內存標準組織認為以現在的動態內存技術還無法實現0或者1的延遲。

通常情況下,我們用4個連著的阿拉伯數字來表示壹個內存延遲,例如2-2-2-5。其中,第壹個數字最為重要,它表示的是CAS Latency,也就是內存存取數據所需的延遲時間。第二個數字表示的是RAS-CAS延遲,接下來的兩個數字分別表示的是RAS預充電時間和Act- to-Precharge延遲。而第四個數字壹般而言是它們中間最大的壹個。

總結

經過上面分析,內存儲器的劃分可歸納如下:

●基本內存 占據0~640KB地址空間。

●保留內存 占據640KB~1024KB地址空間。分配給顯示緩沖存儲器、各適配卡上的ROM和系統ROM BIOS,剩余空間可作上位內存UMB。UMB的物理存儲器取自物理擴展存儲器。此範圍的物理RAM可作為Shadow RAM使用。

●上位內存(UMB) 利用保留內存中未分配使用的地址空間建立,其物理存儲器由物理擴展存儲器取得。UMB由EMS管理,其大小可由EMS驅動程序設定。

●高端內存(HMA) 擴展內存中的第壹個64KB區域(1024KB~1088KB)。由HIMEM.SYS建立和管理。

●XMS內存 符合XMS規範管理的擴展內存區。其驅動程序為HIMEM.SYS。

●EMS內存 符合EMS規範管理的擴充內存區。其驅動程序為EMM386.EXE等。

內存:隨機存儲器(RAM),主要存儲正在運行的程序和要處理的數據。

補充說壹下:

內存的分區就像體育場館的座位,基本內存(64K以下)為比賽場地,必須有的。

保留內存:為運動員和教練員席,也是必需的。

以上兩項加起來,為1024KB,也就是0,1兆。

以後的內存都為體育館的觀眾席。觀眾席越多,體育館賺的錢越多。但體育館的設施和管理能力是有限的,操作系統相當體育館的管理者,只能管理3.5G的內存,1G=1024兆。win7可多管壹些,32位的操作系統(xp,win7)都是3.5G。64位的多壹些。

所以,內存並不是插得越多越好。而是要匹配,獲得最佳性價比才是最好的。

還有虛擬內存的問題,相當於內存的周轉庫房,壹般由系統自動制定,了解即可。如果想學dos的話,可使用EMM386管理,具體的去找DOS教材,不是簡介的那種,是命令詳解的那種。上面都有。

  • 上一篇:將軍在上夫人掐腰結局
  • 下一篇:《靈域》大結局引起熱議,妳覺得這部劇怎麽樣?
  • copyright 2024編程學習大全網