随机访问存储器
随机访问存储器(英语:,缩写:)是与中央处理器直接交换数据的内部存储器。[1]它可以随时读写(刷新时除外,见下文),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
「」的各地常用译名 | |
---|---|
![]() | |
中国大陆 | |
台湾 | |
港澳 |
RAM |
---|
发展中 |
|
历史上 |
ROM |
非挥发性随机访问内存 |
早期 |
磁式 |
光学式 |
发展中 |
历史上 |
主内存(Main memory)即电脑内部最主要的内存,用来加载各式各样的程序与数据以供中央处理器直接运行与运用。由于 DRAM 的性价比很高,且扩展性也不错,是现今一般电脑主内存的最主要部分。2011 年生产电脑所用的主内存主要是 DDR3 SDRAM,而 2016 年开始 DDR4 SDRAM 逐渐普及化,笔电厂商开始在笔电以 DDR4 内存取代 DDR3L。
分类
RAM 内存可以进一步分为静态随机访问内存(SRAM)和动态随机访问内存(DRAM)两大类。SRAM 具有快速访问的优点,但生产成本较为昂贵,一个典型的应用是缓存。而 DRAM 由于具有较低的单位容量价格,所以被大量的采用作为系统的主内存。
动态随机访问内存(DRAM)的特点
随机访问
所谓「随机访问」,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对地,有串行访问存储器包括顺序访问存储器(如:磁带)和直接访问存储器(如:磁盘)。
挥发性
当电源关闭时 RAM 不能保留数据。如果需要保存数据,就必须把它们写入一个长期的保存设备中(例如硬盘)。RAM 和 ROM 相比,两者的最大区别是 RAM 在断电以后保存在上面的数据会自动消失,而 ROM 则不会。
较高的访问速度
现代的随机访问存储器几乎是所有访问设备中写入和读取速度最快的,访问延迟也和其他涉及机械运作的保存设备(如硬盘、光盘驱动器)相比,也显得微不足道。但速度仍然不如作为 CPU 缓存用的 SRAM。
需要刷新
现代的随机访问存储器依赖内存保存数据。电容器充满电后代表 1(二进制),未充电的代表 0。由于电容器或多或少有漏电的情形,若不作特别处理,电荷会渐渐随时间流失而使数据发生错误。刷新是指重新为电容器充电,弥补流失了的电荷。DRAM 的读取即有刷新的功效,但一般的定时刷新并不需要作完整的读取,只需作该芯片的一个列(Row)选择,整列的数据即可获得刷新,而同一时间内,所有相关记忆芯片均可同时作同一列选择,因此,在一段期间内逐一做完所有列的刷新,即可完成所有内存的刷新。需要刷新正好解释了随机访问存储器的易失性。
内存的使用
电脑运行时,电脑的主内存按照被使用情况可分类为:[2]
- 可利用(Available)物理内存:可立即分配给进程使用的内存。包括:
- 空闲(Free)物理内存:完全未被使用,内容为全 0
- 缓存(Cached)物理内存
- 备用(standby)物理内存:操作系统预先把可能要用到的硬盘数据加载所占用的内存,还没被用户进程所使用,因此可随时丢弃从新初始化为 0
- 已修改(modified)物理内存:已被修改过的 caching 用途的内存,可在任意时刻写回硬盘文档(不是分页文档)然后被重用。由于硬盘 I/O,已修改(modified)物理内存不能计入空闲(Free)物理内存
- 被使用(used)物理内存:已经被进程使用的内存
- 用户进程使用的物理内存,即工作集(Working set)。Working Set 包含了可能被其他进程共享的内存,例如DLL。所以所有进程的Working Set加起来有可能大于实际的被使用(used)的物理内存。Private Bytes 是只被本进程提交(commit)的虚拟地址空间,不包括其他进程共享的内存。Virtual Byte 是整个进程占用的全部虚拟地址空间。32 位 Windows 用户模式下,进程最大可以使用 2GiB,可以通过修改 Boot.ini 文档扩展为最大可以使用到 3GiB。任务管理器中的 Memory Usage 对应的是 working set,VM Size 对应的是 private bytes
- 内核进程使用的物理内存
- 分页的内核进程使用的物理内存:可以交换到分页文档中,从而可被回收的物理内存
- 未分页(Non paged)的内核进程使用的物理内存:不能交换到分页文档的内存,总是要保留在物理内存中
- 硬件保留(hardware reserved)的物理内存:被 CPU 中的 GPU 内核或者其他外设硬件占用的,不由操作系统使用的内存
内存墙
「内存墙」是指CPU与CPU芯片外的内存之间的速度差距越来越大,其中一个造成差距的重要原因是芯片边界之外的通信带宽有限,又称为带宽墙。从1986年到2000年,CPU所提升速度的年变率达55%,内存速度却只提高了10%。由此趋势可预料内存延迟将成为电脑性能的巨大瓶颈。[3]
CPU速度提升明显放缓,一部分原因是由于重大的物理屏障,一部分原因则是目前的CPU设计已经在某种意义上撞上了内存墙。英特尔在一份2005年的文档中总结了这些原因。[4]
首先,随着芯片几何尺寸缩小及时钟频率提高,晶体管漏电流会增加,导致超额的功耗和热量...其次,因为内存的访问时间无法跟上时钟频率的成长,导致更高的时脉速度所带来的优势被内存的延迟抵消。第三,对于某些应用,随着处理器速度的提高(由于所谓的冯·诺依曼瓶颈),传统的串行架构变得越来越低效,进一步削弱了频率提高可带来的收益。此外,部分原因是由于固态组件内产生电感的方法受到限制,信号传输中的电阻-电容延迟会随着特征尺寸的缩小而增加,这就额外带来了频率增加也无法解决的瓶颈。
注释
- 运行内存与运存为错误用辞,仅在特指手机内存的非专业交流中流行
参考文献
- 张广渊; 李晶皎; 王爱侠; 王彩云; 崔立民; 马骥. . 张广渊 (编). (M) . 新华书店. 2004年11月: 149. ISBN 978-7-81094-579-0 /TP·354.
- MSDN:The usable memory may be less than the installed memory on Windows 7-based computers
- The term was coined in (PDF). [2011-12-14]. (原始内容存档 (PDF)于2012-04-06)..
- (PDF). March 2, 2005. (原始内容存档 (PDF)于April 27, 2011).