主記憶體

主記憶體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]

非揮發性記憶體

非揮發性記憶體即使在沒有通電的情況下也可以保留所儲存的資訊。唯讀記憶體可以作為非揮發性主記憶體。正在開發的非揮發性記憶體技術包括鐵電隨機存取記憶體可程式化金屬化單元自旋轉移矩記憶體等。

半揮發性記憶體

第三類主記憶體是半揮發性的。該術語用於描述在斷電後具有一些有限的非揮發性持續時間,但隨後數據最終遺失的記憶體。當使用半揮發性記憶體時,一個典型的目標是提供與揮發性儲存相關聯的高效能和耐久性,同時提供非揮發性主記憶體的一些優點。

管理

正確管理主記憶體對於電腦系統正常執行至關重要。現代作業系統有複雜的系統來正確管理主記憶體。不這樣做可能會導致錯誤或效能降低。

主記憶體錯誤

主記憶體管理不當是導致錯誤和安全漏洞的常見原因,包括以下類型:

  • 當程式向作業系統請求主記憶體,但在處理完主記憶體後再也不會返回主記憶體時,就會發生記憶體流失。出現此錯誤的程式將逐漸需要越來越多的主記憶體,直到作業系統主記憶體耗盡。
  • 當程式試圖訪問它無權訪問的主記憶體時,就會出現段錯誤。通常,這樣做的程式將被作業系統終止。
  • 當程式將數據寫入其分配空間的末尾,然後繼續將超出該末尾的數據寫入已分配用於其他目的的主記憶體時,就會發生緩衝區溢位。這可能會導致程式行為不穩定,包括主記憶體訪問錯誤、執行結果錯誤、崩潰或造成系統安全漏洞。緩衝區溢位是許多軟件漏洞的基礎,可以被惡意利用。[9]

虛擬記憶體

虛擬記憶體(英語:Virtual memory)是電腦系統主記憶體管理的一種技術。它使得應用程式認為它擁有連續可用的主記憶體(一個連續完整的地址空間),而實際上實體記憶體通常被分隔成多個主記憶體碎片,還有部分暫時儲存在外部磁碟記憶體上,在需要時進行數據交換。與沒有使用虛擬記憶體技術的系統相比,使用這種技術使得大型程式的編寫變得更容易,對真正的實體記憶體(例如RAM)的使用也更有效率。此外,虛擬記憶體技術可以使多個行程共用同一個執行庫,並通過分割不同行程的主記憶體空間來提高系統的安全性。

記憶體保護

記憶體保護(英語:Memory protection)是作業系統電腦上的記憶體進行存取權限管理的一個機制。記憶體保護的主要目的是防止某個行程去存取不是作業系統組態給它的定址空間。這個機制可以防止某個行程,因為某些程式錯誤或問題,而有意或無意地影響到其他行程或是作業系統本身的執行狀態和數據。

參見

參考資料

  1. ^ 1.0 1.1 1.2 全國科學技術名詞審定委員會,審定.電腦科學技術名詞 [M]. 3版.北京:科學出版社, 2018: 121. 科學文庫.
  2. ^ 2.0 2.1 2.2 教育部教育考試院.全國電腦等級考試二級教程:公共基礎知識 [M].北京:高等教育出版社, 2022 (2023): 3-9.
  3. ^ 3.0 3.1 主記憶體 [DB/OL] [2024] // 陳至立辭海. 7版網絡版.上海:上海辭書出版社, 2020.
  4. ^ 4.0 4.1 蔡尚銘.主記憶體 [DB/OL].胡偉武,安虹,肖利民,等編 (2022-12-23) [2024] // 陳奎元中國大百科全書. 3版網絡版.北京:中國大百科全書出版社.
  5. ^ 邱鵬飛.記憶體 [DB/OL].胡偉武,安虹,肖利民,等編 (2022-12-23) [2024] // 陳奎元中國大百科全書. 3版網絡版.北京:中國大百科全書出版社.
  6. ^ Hemmendinger, David. Computer memory. Encyclopedia Britannica. February 15, 2016 [16 October 2019]. 
  7. ^ The DRAM memory of Robert Dennard history-computer.com
  8. ^ Stanek, William R. Windows Server 2008 Inside Out. O'Reilly Media, Inc. 2009: 1520 [2012-08-20]. ISBN 978-0-7356-3806-8. (原始內容存檔於2013-01-27). [...] Windows Server Enterprise supports clustering with up to eight-node clusters and very large memory (VLM) configurations of up to 32 GB on 32-bit systems and 2 TB on 64-bit systems. 
  9. ^ An Overview and Example of the Buffer-Overflow Exploit. (PDF).