主記憶體(main memory)[1][2],是用來存放電腦執行時隨時需要使用的程式和數據的記憶體[3],供中央處理器(CPU)隨機存取[1],並與其一起構成主機[2]。一切數據要被CPU操作都必須先裝入主記憶體[1]。主記憶體的工作速度較快,儲存容量較小,主要採用半導體記憶體[3]。目前大部分電腦系統的主記憶體主體為動態隨機存取記憶體(DRAM)[4],「主記憶體」乃至「記憶體」一詞有時特指DRAM[5];另外,靜態隨機存取記憶體(SRAM)與唯讀記憶體(ROM)等也可作主記憶體的一部分[2][4]。如果需要,可以將主記憶體的內容傳輸到外部記憶體;一種常見的方法是通過稱為虛擬記憶體的主記憶體管理技術來實現這一點。
大多數半導體記憶體被組織成儲存單元,每個儲存單元儲存一個位元(0或1)。記憶體單元被分組為固定字長的字(word),例如1、2、4、8、16、32、64或128位元。每個字可以由N位的二進制地址訪問,從而可以在記憶體中儲存2N個字。
主記憶體類型
揮發性記憶體是需要電力來維持儲存資訊的電腦記憶體。大多數現代半導體揮發性記憶體是靜態RAM(SRAM)或動態RAM(DRAM)。 DRAM在桌上電腦系統主記憶體中佔主導地位。SRAM用於CPU快取。SRAM也存在於需要很少主記憶體的小型嵌入式系統中。
只要連接電源,SRAM就會保留其內容,並且可以使用更簡單的介面,但通常每位元使用六個電晶體。動態RAM在介面和控制方面更為複雜,需要定期重新整理周期以防止遺失內容,但每位元只使用一個電晶體和一個電容器,使其能夠達到更高的密度和更低的每位元成本。[6][7][8]
非揮發性記憶體即使在沒有通電的情況下也可以保留所儲存的資訊。唯讀記憶體可以作為非揮發性主記憶體。正在開發的非揮發性記憶體技術包括鐵電隨機存取記憶體、可程式化金屬化單元、自旋轉移矩記憶體等。
第三類主記憶體是半揮發性的。該術語用於描述在斷電後具有一些有限的非揮發性持續時間,但隨後數據最終遺失的記憶體。當使用半揮發性記憶體時,一個典型的目標是提供與揮發性儲存相關聯的高效能和耐久性,同時提供非揮發性主記憶體的一些優點。
管理
正確管理主記憶體對於電腦系統正常執行至關重要。現代作業系統有複雜的系統來正確管理主記憶體。不這樣做可能會導致錯誤或效能降低。
主記憶體管理不當是導致錯誤和安全漏洞的常見原因,包括以下類型:
- 當程式向作業系統請求主記憶體,但在處理完主記憶體後再也不會返回主記憶體時,就會發生記憶體流失。出現此錯誤的程式將逐漸需要越來越多的主記憶體,直到作業系統主記憶體耗盡。
- 當程式試圖訪問它無權訪問的主記憶體時,就會出現段錯誤。通常,這樣做的程式將被作業系統終止。
虛擬記憶體(英語:Virtual memory)是電腦系統主記憶體管理的一種技術。它使得應用程式認為它擁有連續可用的主記憶體(一個連續完整的地址空間),而實際上實體記憶體通常被分隔成多個主記憶體碎片,還有部分暫時儲存在外部磁碟記憶體上,在需要時進行數據交換。與沒有使用虛擬記憶體技術的系統相比,使用這種技術使得大型程式的編寫變得更容易,對真正的實體記憶體(例如RAM)的使用也更有效率。此外,虛擬記憶體技術可以使多個行程共用同一個執行庫,並通過分割不同行程的主記憶體空間來提高系統的安全性。
記憶體保護(英語:Memory protection)是作業系統對電腦上的記憶體進行存取權限管理的一個機制。記憶體保護的主要目的是防止某個行程去存取不是作業系統組態給它的定址空間。這個機制可以防止某個行程,因為某些程式錯誤或問題,而有意或無意地影響到其他行程或是作業系統本身的執行狀態和數據。
參見
參考資料
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.