主存储器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).