開啟主選單

求真百科

內存尋址

計算機管理內存的基本方式有兩種:段式管理和頁式管理。而在使用80x86微處理器時,內存地址分為三個不同的地址:邏輯地址,線性地址,物理地址。

目錄

簡介

內存尋址是指CPU允許支持的內存大小。雙通道內存技術其實是一種內存控制和管理技術,它依賴於芯片組的內存控制器發生作用,在理論上能夠使兩條同等規格內存所提供的帶寬增長一倍。當計算機面臨大量的數據流時,32位的寄存器和指令集不能及時進行相應的處理運算。32位處理器一次只能處理32位,也就是4個字節的數據;而64位處理器一次就能處理64位,即8個字節的數據。舉例來說,32位好像是單車道,當車流過大的時候,就會無法承載,而64位好比高速公路,在多任務,多程序處理的情況下,64位計算平台能隨意加速、把電腦性能發揮到極致。有了上述的基本概念後,很顯然,CPU將一個虛擬內存空間中的地址轉換為物理地址,需要進行兩步:首先將給定一個邏輯地址,CPU要利用其段式內存管理單元,先將每個邏輯地址轉換成一個線程地址,再利用其頁式內存管理單元,轉換為最終物理地址。這就是我們所知道的段頁式管理,這樣兩次轉換的好處可以克服段式管理和頁式管理的缺點。

評價

段式管理的基本原理是指把一個程序分成若干個段(segment)進行存儲,每個段都是一個邏輯實體(logical entity)。一個用戶作業或進程所包含的段對應一個二維線形虛擬空間,程序通過分段(segmentation)劃分為多個模塊,故可以對程序的各個模塊分別編寫和編譯。段式管理程序以段為單位分配內存,然後通過地址影射機構把段式虛擬地址轉換為虛擬地址。頁式管理的基本原理將各進程的虛擬空間劃分成若干個長度相等的頁(一般為4K),頁式管理把內存空間按頁的大小劃分成片或者頁面(page frame),然後把頁式虛擬地址與內存地址建立一一對應頁表,並用相應的硬件地址變換機構,來解決離散地址變換問題。包含在機器語言指令中用來指定一個操作數或一條指令的地址,每個邏輯地址都由一個段和偏移量組成,表示為[段標識符:段內偏移量]。例如,在C/C++程序中我們使用指針對變量地址操作,該地址就是邏輯地址(準確的應該說是邏輯地址的段內偏移量)。對應上述段式管理,邏輯地址是段式管理轉換前的程序地址。 [1]

參考文獻