這兩天心血來潮想給我的工作筆記本升級內存
於是乎找個些關於內存的資料
給大家分享一下
有關
位操作系統內存
G地址空間的局限
GB地址空間的局限首先我們還必須要先了解兩個概念其一是
物理內存
大家常說的物理內存就是指安裝在主板上的內存條
其實不然
在計算機的系統中
物理內存不僅包括裝在主板上的內存條(RAM)
還應該包括主板BIOS芯片的ROM
顯卡上的顯存(RAM)和BIOS(ROM)
以及各種PCI
PCI
E設備上的RAM和ROM
其二是
地址空間
地址空間就是對物理內存編碼(地址編碼)的范圍
所謂編碼就是對每一個物理存儲單元(一個字節)分配一個唯一的地址號碼
這個過程又叫做
編址
或者
地址映射
這個過程就好像在日常生活中我們給每家每戶分配 一個地址門牌號
與編碼相對應的是
尋址
過程
分配一個地址號碼給一個存儲單元的目的是為了便於找到它
完成數據的讀寫
這就是
尋址
因 此地址空間有時候又被稱作
尋址空間
系統不僅要給主板上的內存條編址
還要給上述的其它物理內存編址
它們都被編在同一個地址空間內
編址後的物理內存就可以被系統資源使用或占用
從Pentium Pro處理器開始
CPU的地址總線已經升級到
位
尋址能力達到
GB
按理說CPU支持
GB的內存是沒有問題的
因此
芯片組(北橋
MCH) 地址總線的數量就成了決定物理內存地址空間大小的決定性因素
在Intel
系列和
以前的芯片組
nForce
系列和
以前的芯片組都只有
條地址線
為系統提供
GB的地址空間
即最高可以安裝
GB的內存條
雖然可以安裝
GB內存條
但這
GB的內存空間不能全部紛配給內存
因為從
GB空間的頂端地址(FFFF_FFFFh)開始向下要有
MB
GB的地址空間要分配給主板上的其他物理內存
我們可以看到
GB的地址空間可以分為兩大部分
MB~物理內存頂端的地址分配給主板上安裝的物理內存
GB到物理內存頂端的地址分配給 BIOS(ROM)和PCI/PCI
E設備的存儲器
由於這些存儲器基本上是用於系統的輸入和輸出
所以Intel又把這段地址空間稱之為
MMIO
(Memory
Mapped I/O
I/O存儲器映射)
當系統安裝
GB以下的內存時
MMIO區域不會與物理內存條的地址空間相重疊
操作系統可以訪問幾乎全部的物理內存
而操作系統屬性裡顯示的物理內存基本接近實際內存的容量
!
而當系統安裝上
GB內存時
問題出現了
由於位於
GB下面的部分地址空間要優先分配給MMIO
內存條上對應的這段區間就得不到編址
所以操作系統就不能使用
嚴格意義上來說
即使安裝
GB內存時操作系統也不可能使用到全部的內存容量
諸如傳統DOS的UMA區就有部分被占用的地址空間
但因為被占用的容量相 比之下實在太少
所以就被很多讀者忽略了
MMIO占用的地址空間在
MB~
GB之間
這麼大的
浪費
大家肯定不能
熟視無睹
因為受
GB芯片組地址空間的限制(
條地址線的限制)
Intel
系列及以前的芯片組
NVIDIA nForce
及以前的芯片組都沒有辦法繞過這個限制
具體原因有三方面
其一是芯片組沒有剩余空間分配來供操作系統來調配
其二是物理內存的編址必須是連續的
不能被割斷
其三是系統開機時必需先從
GB的頂端地址(FFFF_FFFFh)讀取BIOS數據
這是IA
架構和
GB地址空間的局限
所以建議使用這些芯片組主板的用戶不要安裝
GB的內存
這樣會有部分內存容量不能被操作系統所使用
而解決
GB內存限制的唯一辦法就是擴展地址空間
二支持大於GB內存的芯片組和內存重映射技術
面對原有芯片組
GB內存的局限
Intel和NVIDIA早就開始未雨綢缪
他們對傳統的
位地址總線進行了調整
將其升級到
位
並推出了一系列 可以突破
GB內存限制的芯片組
這就是Intel的
系列以及
系列
NVIDIA的nForce
/
以及
系列
注
AMD的
位Socket AM
CPU把內存控制器放到CPU中
提供
bit的物理地址總線
地址空間可達到
GB
具體支持的地址空間和內存量取決於芯片組及主板的總線設計
從上面的芯片組參數來看
地址總線從
位提升到
位
地址空間達到
GB
支持安裝
GB的物理內存
但由於IA
架構的規則是開機時必須從
GB的FFFF_FFFFh地址讀取BIOS信息
盡管芯片組支持的地址空間變大了
且最大支持的物理內存容量也達到了
GB(或以上)
但從本質上來 說仍然不能解決MMIO地址占用
GB內存編址的問題
這要怎麼辦呢?
位地址總線最大可以支持
GB的地址空間
這就為移動MMIO地址區提供了條件
現在解決這個問題的辦法就是
內存重映射
技術
就是在IA
架構的基礎上
把BIOS(ROM)和PCI/PCI
E設備占用的MMIO地址區段重新映射到內存條頂端地址以上(例如
GB以上)的地址空間
從而把IA
架構規定的這一段操作系統不可使用的
位於
GB下面的MMIO地址空間回收給物理內存使用
保證物理內存編址的連續性
三BIOS必須支持內存重映射
內存重映射
技術必須通過BIOS完成
所以BIOS必須具有支持內存重映射的功能模塊
以便根據用戶安裝的內存容量來確定是否需要啟用內存重映射功能
同時
在BIOS的設置選單中也要有
Memory Re
Mapping
的設置選項
使用
GB或者
GB以上內存的用戶一定要將此項設置設為
Enable
四解決GB內存問題還需要操作系統支持
我們常使用的桌面操作系統是
位的
支持
GB的地址空間
前面我們介紹了解決
GB問題的芯片組是支持
GB地址空間的
在這樣的芯片組主板上安裝
位的操作系統
就只能使用
GB的地址空間
因此安裝
GB內存不能使用僅支持
GB地址空間的
位的操作系統
應該使用支持大於
GB地址空間的
位操作系統或
位的操作系統
五小結
由於iA
架構要求BIOS(ROM)芯片的地址
PCI
PCI
E存儲器地址
APCI中斷路由地址等必須占用從
GB開始以下的
M
GB空間
這段MMIO地址區不能分配給內存條
GB的內存條有
MB
GB的容量不能編址而浪費
使用
GB或者以上的內存條
必須使用地址(編址)空間
GB的芯片組主板
內存重映射就是把被MMIO占用的地址移到內存條容量以上的地址空間
)
BIOS應具有支持
內存重映射
功能
設置項裡有 Memory Remap Feature 選項
並設置為Enable
必須安裝尋址空間大於
GB的操作系統
比如Windows
高級服務器版
以及
位操作系統
所有地址空間為
GB的芯片組(Intel
和nForce
之前的)
和
位操作系統均不能利用
內存重映射
技術解決
GB內存問題
From:http://tw.wingwit.com/Article/os/youhua/201311/10850.html