电脑内存

存储器（memory）是计算机中能接收和存储数据，并能根据控制命令提供所存数据的基本硬件。现代的计算机系统以存储器为中心，故存储器的特性是影响整个计算机系统最大吞吐量的决定性因素。

存储器又分为主存储器（main memory，简称“主存”、“内存”，又称“内存储器”）和辅助存储器（auxiliary memory，简称“存储”、“辅存”、“外存”，又称“外存储器”）。主存储器与中央处理器（CPU）一起构成主机，用来存放计算机运行时随时需要使用的程序和数据，一切数据要被CPU操作都必须先装入主存。主存的工作速度较快，存储容量较小，主要采用半导体存储器。目前大部分计算机系统的主存储器主体为动态随机存储器（DRAM），“主存储器”乃至“存储器”一词有时特指DRAM；另外，静态随机存储器（SRAM）与只读存储器（ROM）等也可作主存储器的一部分。辅助存储器和输入输出设备都属于外设，用来存放CPU运行时暂时不用的各种程序和数据，一般在断电后仍能保存。辅助存储器的存储容量大，工作速度慢，例子如硬盘、U盘、光盘、磁带等。

除了可分为主存储器和辅助存储器外，存储器还可按存储介质分为半导体存储器、磁表面存储器、磁芯存储器和光盘存储器等，按存取方式分为随机存储器、只读存储器、串行访问存储器等。

传统上，一部电脑最重要的元件是中央处理器（CPU），因为他负责处理资料，进行所有计算，并且控制电脑内其他所有元件。中央处理器包含两个部分: 控制单元 以及算术逻辑单元（ALU）。前者控制资料在中央处理器及内存之间的流动。后者处理资料的逻辑运算。如果没有足够的内存，电脑将只能进行固定的工作而且立刻将结果输出。这在计算机及数字信号处理是可接受的。冯·诺伊曼结构机器拥有足够的内存去储存正在执行的指令集以及资料。结果使电脑不用为了执行一个新的程式而改变硬件的配置，使程式设计变得简单，大部分的电脑都是范纽曼型架构。

## 内存的特性

<image>

所有的内存都可以用其核心的特性以及可以用测量而得知的效能，容量来区分。核心的特性有挥发性，读写性，存取法，以及定址法。测量得知的特性有效能跟容量。

### 容量

<image>

电脑使用二进制来处理数据。文件，数字，图形，影音，或是其他资料都可以用一串位元来表示，每一个位元的值不是一就是零。最常见的储存单位是字节，一字节等于八位元。一份资料可以被任何具有足够容量去容纳该资料大小的电脑所处理。

根据电气电子工程师协会（IEEE 1541）和欧洲联盟（HD 60027-2:2003-03）的标准，二进制乘数词头的缩写为“Ki”、“Mi”、“Gi”，以避免与国际单位制混淆。但二进制乘数词头没有广泛被制造业和个人采用，标示为4GB的内存实际上已经是4GiB，但标示为4.7GB的DVD实际上是4.37GiB。

对于32位元的操作系统，最多可使用232个地址，即是4GiB。物理地址扩展可以让处理器在32位元操作系统存取超过4GiB内存，发展64位元处理器则是根本的解决方法，但操作系统、驱动程式和应用程序都会有相容性问题。

### 挥发性

非挥发性内存: 资料在电源不供电的状态下仍能保存。这适用于须长期使用的资料。

挥发性内存: 资料需要有持续不断的电力才能保持。目前存取速度最快的内存是属于挥发性的。因为第一级内存需要极快的速度，所以采用挥发性内存。

动态随机存取内存（DRAM）:一种挥发性内存，资料需要每隔一段时间就重新读取或重新写入，否则资料将会消失。eDRAM

静态随机存取内存（SRAM）:一种类似DRAM的内存。不同的是在电力持续供应的状态下，它不用被重新写入或是读取资料（如果没有电力来支持，资料还是会消失）。

### 读写性

可读写的内存:它允许资料在任一时间被覆写。如果一台电脑的第一级内存不是可读写的，那这台电脑将无法执行各种任务（至少要有一定数量的第一级内存是可读写的）。而第二级内存也有许多是可读写的。

只读内存:内存内的资料通常不会变，但有时允许资料写入（Write once read many）这种内存也被叫做不可变内存，主要备用在第三级跟离线内存上，例如CD-ROM以及CD-R。

快速读取低速写入内存:例如CD-RW和闪存。

### 存取法

随机存取:在任何的时间，任何的位置都可以被存取。这适合第一级与第二级内存。

循序存取:要存取的资讯依照顺序来存取，一个接着一个; 存取时间长短取决于哪一项资料是最后存取的，这是离线内存的特征。

### 定址法

区块定址:根据内存区块的物理地址来存取资料。在今日的电脑，区块定址通常只出现在第一级内存，由计算机程序来存取，而且存取的效率很高，不过对人而言这是个负担。

档案定址:资料被分割成档案，档案依照人类可读的名称或档案名称而被选择，其实这也是一种区块定址，不过操作系统会将档案抽象化，从而让工作更容易被理解。在今日的电脑，第二级，第三级，离线内存采用这种方法来定址。

内容定址:资料依据本身的内容被存取。内容定址被使用于软件或硬件，这让硬件变得有效率，但也变得比较昂贵。硬件内容定址内存通常被用于CPU快取。

### 效能

迟滞时间: 存取储存器内部特定区域资料所花的时间。在第一级内存中，以奈秒作为合理的计量单位，第二级内存以毫秒作为计量单位，以秒作为第三级内存的计量单位或是。迟滞时间可以合理的分为读取的迟滞时间和写入的迟滞时间，以循序存取储存器来说，有最短、最长与平均迟滞时间。

吞吐量:将资料读取到或是写出内存的速度。吞吐量通常表示为百万字节/秒或是MB/s，位元率也被使用着。就跟迟滞时间一样，读和写的速度算做两笔不同资料。存取资料的速度取决于最大吞吐量。

粒度: 能以单独一个单位被有效率的存取的最大片资料的大小, 例如, 没有引发更多的迟滞时间。

可靠度:在不同的条件下，非自发性的位元值改变, 或整体故障率。

## 分类

直至2008年，最常用的数据储存技术是半导体、磁性、光学，同时还看到一些使用纸张作储存。也有一些曾于过去使用或是在将来会使用的数据储存技术。市场上存在多种不同形态、不同材质的存储器。到目前为止，任何一种储存装置都有其缺点，因此一台电脑通常都有好几种不同种类的储存装置，每一种都有其特别的功能。

电脑内存可以根据储存能力与电源的关系可以分为以下两类：

### 挥发性内存

挥发性内存（Volatile memory）是指当电源供应中断后，内存所储存的资料便会消失的内存。主要有以下的类型：

- 随机存取内存
- 动态随机存取内存，英文缩写写作DRAM，一般每个单元由一个晶体管和一个电容组成（后者在集成电路上可以用两个晶体管模拟）。特点是单元占用资源和空间小，速度比SRAM慢，需要刷新。一般计算机主内存即由DRAM组成。在PC上，DRAM以内存条的方式出现，DRAM颗粒多为4位或8位位宽，而载有多个颗粒的单根内存条的位宽为64位。
- 静态随机存取存储器，英文缩写写作SRAM，一般每个单元由6个晶体管组成，但近来也出现由8个晶体管构成的SRAM单元。特点是速度快，但单元占用资源比DRAM多。一般CPU的CPU缓存即由SRAM构成。

### 非挥发性内存

非挥发性内存（Non-volatile memory）是指即使电源供应中断，内存所储存的资料并不会消失，重新供电后，就能够读取内存中的资料。

主要种类如下：

- 只读内存（ROM）
- 可规化式只读内存（PROM）
- 可擦除可规划式只读内存（EPROM）
- 电子抹除式可复写只读内存（EEPROM）
- Flash ROM
- 磁储存
- 硬盘
- 软碟
- 磁带
- 3D XPoint
- 固态硬盘
- 光储存
- 光碟

## 内存阶层

实际上，几乎所有电脑都有各种不同的内存，这些内存在中央处理器旁边，构筑成内存阶层，在效率和花费两者之间的拉锯中，在阶层中较低层的内存，带宽较低，而且资料到中央处理器的时间也较久，迟滞时间较长。传统上分第一级，第二级，第三级，离线内存。

### 第一级内存

第一级内存（又称主内存或内部内存），通常简称为内存，这层的内存与中央处理器直接连通，中央处理器会不断读取储存在这里的指令集，并在需要时执行这些指令集。

历史上，早期的电脑使用延迟线，威廉士管作为主要的储存器。在1954年，磁芯内存被开发出来大幅取代了上述不太稳定的方法。磁芯内存维持优势至1970年代，此时积体电路技术的进步，使得半导体内存在价格上变得便宜而有竞争力。

这使得现代化的随机存取内存（RAM）被制造出来。该款内存的重量轻，尺寸小，然而十分昂贵。这种内存被用来做成第一级内存，同时它也是挥发性内存，意思就是当电力不再供应时，内存内的资料就会消失。

如同右图所示，在第一级内存的内部除了主内存，也就是随机存取内存外，还分有两个或两个以上的子层:

- 暂存器被设置在处理器内。每个暂存器都储存资料中的一个字（一个字的大小通常是32位元或64位元）。中央处理器内的指令能让 算术逻辑单元 去执行各种计算或是处理资料。暂存器传输资料的速度是所有内存中最快的。
- CPU快取，它传输资料的速度仅次于暂存器。被用来作为提升电脑的效能。大部分经常被使用的资料，会复制另一份存在快取内存内，这样可提升速度，否则速度将会大幅降低，且暂存器也容纳不下那么多资料。多层快取阶层亦经常被使用—第一层快取容量最小，速度最快且位于处理器内部；第二层快取容量较大且较慢。

主内存藉内存总线与中央处理器连接。有两种不同的总线：位址总线以及资料总线。一开始中央处理器藉位置总线传送数字，这数字就是内存位置，其指出资料的位置。然后中央处理器用资料总线将资料读出或写入。此外，内存管理单元（MMU）是一种介于中央处理器跟主内存的装置，用来重新计算内存位置，例如提供虚拟地址。

由于RAM具有挥发性，这样的话电脑就无法储存开机时需要的指令，因此，非挥发性内存储存了执行开机的程式（BIOS），为了读取较大的程式，先自第二层的非挥发性内存读取到随机存取内存，然后执行程式。一种内存因着这目的被制出，就是只读内存（只读内存也是属于随机存取）。

许多只读内存并不仅仅只能读取，虽然速度慢，但资料还是可以抹除并重新写入。一些嵌入式系统直接使用只读内存来跑程式，因为程式几乎不会变化，现在的电脑将资料存于第二层非挥发性的内存，而非只读内存，这是比较经济的做法。

### 第二级内存

<image>

第二级内存，又称外部内存或辅助内存，和第一级内存不同的是，第二级内存和中央处理器并没有直接连通，电脑经常使用内存的I/O通道来与之连接，第二级内存使用资料缓冲器来将资料传送至第一级内存。在不供应电源的情况下，第二级内存的资料仍然不会消失—这表示它是非挥发性的。

现今的电脑，硬盘被广泛地做为第二层内存，硬盘存取资料的时间大约是几千分之一秒，或是几个毫秒。然而，随机存取内存存取资料的时间仅有几十亿分之一秒，或是几个奈秒。硬盘的速度只有内存存取速度的百万分之一，光碟，例如CD和DVD，有更长的存取时间。

当资料储存于碟片时，将资料传送到区块可降低迟滞时间，提升效率，这样的话需要外部内存算法。连续存取和区块存取的速度比随机存取要快得多，所以许多尖端的内存都在开发更有效率的算法来执行连续存取或区块存取。一个突破I/O瓶颈的方法是使用多重磁盘，可以增加第一级与第二级内存之间的带宽。

这里列举一些第二级内存的例子：闪存（例如随身碟和固态硬盘）、软碟、磁带、纸带、打孔卡、RAM disk、Zip Drive。

第二级内存通常被设计成符合文件系统的格式，这使得资料可以储存在目录和电脑档案内。

大部分的操作系统使用了虚拟内存的概念，第一级内存的物理容量虽然不变，但可以藉挪用第二级内存的空间来增大第一级内存的容量。系统会将最少使用到的区块移至第二级内存（置换档案或分页档案），当这些档案被需要时再将它们取回，当愈多档案需要从第二级内存中取回，电脑的效能就愈低。

### 第三级内存

第三级储存装置或第三级内存, 这是指可直接插入或自电脑拔除的储存装置；里面的资料在被使用前通常都会复制到第二级内存内。该款内存的存取速度比第二级内存要慢得多（5–60秒，相较于1–10毫秒）。该款内存的优势在于其拥有庞大的储存空间，典型的例子包含磁带柜和光学记录库。

## 外部链接

- How Computer Memory Works , by Jeff Tyson