半导体存储器

半导体存储器（semiconductor memory）是一种用于数字数据存储的数字电路半导体器件，例如电脑内存。数据会存储在硅集成电路存储芯片上的金属氧化物半导体（MOS）存储单元内。目前有许多不同的类型的半导体技术。两种常见的随机存取存储器（RAM）中其中一个是静态RAM（SRAM），它在每个存储单元使用多个MOS晶体管，另一个是动态RAM（DRAM），每个单元使用一个MOS晶体管和一个MOS电容。非易失性存储器（如EPROM、EEPROM和闪存）使用浮栅存储单元，每个单元由一个浮栅MOS 晶体管组成。大多数类型的半导体存储器都具有随机访问的特性，也就是说访问任何存储位置所需时间相同，因此数据可以以任意顺序高效访问。这与如光盘等顺序访问的存储介质形成对比，后者按写入顺序读取和写入数据。半导体存储器还具有远快于其他类型存储设备的读取时间；访问一个字节的数据只需几纳秒，而如硬盘等旋转存储设备的访问时间通常为毫秒级。由于这些原因，半导体存储器被用于主存储器，用于保存计算机当前处理的程序和数据等用途。

全球半导体存储芯片销售额每年达1240亿美元，占半导体产业的%。诸如移位寄存器、处理器寄存器、数据缓冲器等不具备地址解码器的较小数字寄存器，尽管也存储数字数据，通常不称为“存储器”。

## 描述

在半导体存储芯片中，每一位二进制数据存储在一个被称为“存储单元”的小型电路中，通常由一个或多个晶体管组成。这些存储单元以矩形阵列方式布局在芯片表面。单比特存储单元组合为较小单元，称为“字”（word），作为一个地址单元整体访问。存储器通常按2的幂作为“字长”（N=1、2、4、8位）制造。

通过施加一个称为内存地址的二进制数字到芯片的地址引脚，可访问特定字。如果地址为M位，则芯片包含2M个地址，每个地址存有一个N位字，因此每片芯片的容量为N2M位。存储容量通常以2的幂来表示：2、4、8、16、32、64、128、256、512等，以千位（Kb）、兆位（Mb）、吉位（Gb）或太位（Tb）为单位。最大容量的半导体存储芯片可存储数吉位数据，但更高容量的芯片正在不断开发中。多个集成电路可以组合使用，以扩展字长和/或地址空间，通常但不必然是2的幂。

存储芯片的两种基本操作是“读取”（read）和“写入”（write）。读取是非破坏性地读取某个地址中的数据内容，写入则是将新数据写入某地址，替换原有数据。为了提高数据传输速率，某些最新型的存储器如DDR SDRAM在每次读写操作中可以访问多个字。

除独立的存储芯片外，半导体存储块也是许多计算机和数据处理集成电路（如微处理器）的组成部分，例如微处理器中通常集成缓存以存储等待执行的指令。

## 类型

### 易失性存储器

<image>

易失性存储器在电源关闭时会丢失其存储的数据，但其速度更快且成本较低，因此被广泛用于计算机的主存储器，数据在计算机关机时保存在硬盘上。主要类型包括：

RAM（Random-access memory）这个术语如今已经成为对任何可以被读取和写入的半导体存储器的通用称呼，与只能读取的ROM（见下文）相对。事实上，所有半导体存储器，不仅限于RAM，都具备随机访问的特性。

- DRAM（Dynamic random-access memory）使用由一个MOSFET（金属氧化物场效应晶体管）和一个MOS电容组成的存储单元来存储每一位数据。这种类型的RAM价格最低、密度最高，因此被广泛用于计算机的主存。然而，存储单元中保存数据的电荷会逐渐泄漏，因此需要定期进行存储器刷新（即重写），这需要额外的电路。刷新过程由计算机自动处理，对用户是透明的。
- 快速页模式DRAM（FPM DRAM）是一种较早的异步DRAM类型，相较更早期的DRAM，它允许对同一“页”内存的重复访问以更快速率进行。广泛用于1990年代中期。
- 扩展数据输出DRAM（EDO DRAM）是一种具有更快访问时间的旧型异步DRAM，它可以在前一次数据仍在传输的同时发起新的访问请求。主要用于1990年代后期。
- VRAM（Video random-access memory）– 一种旧式的双端口RAM，曾用于显示卡的帧缓冲区中。
- SDRAM（Synchronous DRAM）是在DRAM芯片中加入了用于与计算机内存总线时钟信号同步的电路。这使芯片能通过流水线处理同时处理多个内存请求，提高了访问速度。芯片中的数据还被划分为多个“内存块”，可并行执行操作。该类型约自2000年起成为主流计算机内存。
- DDR SDRAM（双倍数据率SDRAM）是通过双倍数据速率传输技术，每个时钟周期可传输两个连续数据字，提升带宽。这一理念的多代扩展仍是当前（截至2012年）提升内存访问速率与吞吐量的主流方案。由于进一步提高内存芯片内部时钟频率已变得困难，芯片转而通过每个时钟周期传输更多数据字以提升性能：
- DDR2 SDRAM – 每个内部时钟周期传输4个连续数据字。
- DDR3 SDRAM – 每个内部时钟周期传输8个连续数据字。
- DDR4 SDRAM – 每个内部时钟周期传输16个连续数据字。
- RDRAM（Rambus DRAM）是一种替代性双倍数据率内存标准，曾用于部分Intel系统，但最终未能与DDR SDRAM竞争成功。
- XDR DRAM（Extreme data rate DRAM）
- SGRAM（Synchronous graphics RAM）是一种专为显示卡设计的SDRAM。它可以执行如位掩码和块写等图形操作，且能同时打开两个内存页。
- GDDR SDRAM（Graphics DDR SDRAM）
- GDDR2
- GDDR3 SDRAM
- GDDR4 SDRAM
- GDDR5 SDRAM
- GDDR6 SDRAM
- HBM（High Bandwidth Memory）是SDRAM的一种发展形式，常用于显卡中以实现更高的数据传输率。其结构为多个内存芯片的垂直堆叠，并配有更宽的数据总线。
- PSRAM（Pseudostatic RAM）是一种集成有存储器刷新电路的DRAM，因此可表现为SRAM，允许关闭外部内存控制器以节能。应用于部分游戏机，如Wii。
- SRAM（Static RAM）的每个位由一个触发器（由4至6个晶体管构成）进行存储。与DRAM相比，SRAM密度低、价格高，但速度更快且无需刷新。常用于计算机的缓存中。
- CAM（Content-addressable memory）是一种特殊内存，不通过地址访问数据，而是输入一个数据字，如果该数据存在，内存会返回其所在地址。主要用于嵌入微处理器的芯片中，例如用于缓存存储器。

### 非易失性存储器

<image>

非易失性存储器（Non-volatile memory，NVM）是一种在断电时仍能保留所存数据的存储器。因此，它常用于无需磁盘的便携式设备中的内存，以及可移动的存储卡等用途。主要类型包括：

- ROM（Read-only memory）用于保存永久性数据，在正常操作中只能读取，不能写入。尽管许多类型的ROM都可以写入，但写入过程通常缓慢，并且往往需要一次性重写整块芯片的数据。ROM通常用于存储计算机需立即访问的系统软件，例如启动计算机的BIOS程序，以及便携式设备和嵌入式计算机（如微控制器）的微码。
- MROM（Mask programmed ROM或Mask ROM），在此类型中，数据在芯片制造阶段即被写入，因此仅用于大规模生产。该类型ROM无法被重新写入。
- PROM（Programmable read-only memory），此类型的芯片在安装前即可被写入一次，但只能写入一次。写入过程需将芯片插入专用设备，即PROM编程器中。
- EPROM（Erasable programmable read-only memory，或UVEPROM），该类型的ROM可通过紫外线擦除数据，并重新编程。需要将芯片从电路板上取出，暴露于紫外线下以清除原有数据，然后插入PROM编程器进行重写。芯片封装顶部通常有一个透明“小窗”，用于透光。EPROM常用于原型开发和小批量生产设备中，以便在工厂更换或更新程序。
- EEPROM（Electrically erasable programmable read-only memory），此类型芯片可在电路板上电擦写，但写入速度较慢。EEPROM通常用于保存固件，即控制硬件设备运行的底层微代码，如多数计算机中的BIOS程序，以便后续更新。
- NVRAM（Non-volatile random-access memory）
- FRAM（Ferroelectric RAM）是一种非易失性RAM类型。
- 闪存（Flash memory）的写入速度介于EEPROM与RAM之间，可写入但不够快，无法作为主内存使用。它常被用作硬盘驱动器的半导体替代方案，用于文件存储。广泛应用于诸如PDA、USB闪存驱动器、以及用于数码相机和手机的可移动存储卡等便携式设备中。

## 历史

早期的计算机存储器采用的是磁芯存储器，因为当时早期的固态电子半导体（包括如双极型结型晶体管（BJT）之类的晶体管)，并不适合用作数字存储元件（存储单元）。最早的半导体存储器可追溯至20世纪60年代初，当时采用的是双极型存储器，其使用双极型晶体管。由离散器件构成的双极型半导体存储器首次由德州仪器于1961年交付给美国空军。同年，仙童半导体的应用工程师鲍勃·诺曼（Bob Norman）提出了在集成电路（IC）芯片上实现固态电子存储器的构想。第一个单芯片存储器IC是由保罗·卡斯特鲁奇（Paul Castrucci）于1965年12月研发的BJT 16位IBM SP95芯片。虽然双极型存储器在性能上优于磁芯存储器，但因价格高昂而未能与之竞争，因此磁芯存储器直到1960年代末仍占据主导地位。双极型存储器未能取代磁芯存储器的一个原因是，其触发器电路过于庞大且成本高昂。

### MOS存储器

金属氧化物半导体场效应晶体管（MOSFET）的出现，由贝尔实验室的穆罕默德·阿塔拉和姜大元于1959年发明，使得使用金属氧化物半导体晶体管作为存储单元成为可能，而这一功能此前是由磁芯存储器承担的。MOS存储器由仙童半导体的约翰·施密特（John Schmidt）于1964年开发。与磁芯存储器相比，MOS存储器性能更高、成本更低、功耗也更小。最终，MOSFET取代磁芯，成为计算机存储器的主流技术。

1965年，皇家雷达研究院的J. Wood和R. Ball提出了采用CMOS（互补型MOS）存储单元的数字存储系统概念，同时也提出了MOSFET功率器件在电源、交叉耦合、开关及延迟线存储器方面的应用。1968年，仙童半导体的佛德里克·法金开发了硅栅MOS集成电路技术，使得生产MOS存储芯片成为可能。IBM于1970年代初开始商业化NMOS逻辑存储器。到1970年代初，MOS存储器超越磁芯存储器成为主流。

在计算机领域，“内存”一词通常指易失性的随机存取存储器（RAM）。主要的两种类型为静态随机存取存储器（SRAM）与动态随机存取存储器（DRAM）。1963年，罗伯特·诺曼（Robert Norman）在仙童半导体发明了双极型SRAM，随后，约翰·施密特于1964年开发了MOS SRAM。SRAM成为磁芯存储器的替代方案，但每个比特的数据需要使用六个MOS晶体管。1965年，IBM在其System/360 Model 95中引入SP95 SRAM芯片，开启了SRAM的商业化。

东芝于1965年在其Toscal BC-1411电子计算器中引入了双极型DRAM存储单元。尽管其性能优于磁芯存储器，但因成本较高未能取代磁芯的主导地位。现代DRAM基于MOS技术。1966年，IBM Thomas J. Watson研究中心的罗伯特·丹纳德博士在研究MOS技术时，发现可以利用MOS电容储存电荷表示“1”或“0”，并由MOS晶体管控制充电，从而发明了单晶体管DRAM存储单元。1967年，丹纳德以IBM名义申请了基于MOS技术的单晶体管DRAM存储单元专利。这直接促成了世界上第一款商业化DRAM芯片——英特尔1103的诞生，发布于1970年10月。同步动态随机存储器（SDRAM）于1992年由三星电子推出，型号为KM48SL2000。

“内存”一词也常用于指代非易失性存储器，尤其是闪存。其起源可追溯至只读存储器（ROM）。可编程只读存储器（PROM）由周文俊（Wen Tsing Chow）于1956年在美国Bosch Arma公司Arma部门发明。1967年，姜大元与施敏（Simon Sze）在贝尔实验室提出可通过MOS浮栅技术制造可重写ROM单元。这促使英特尔的Dov Frohman于1971年发明了EPROM（可擦可编程只读存储器）。1972年，日本经济产业省产业技术综合研究所的Yasuo Tarui、Yutaka Hayashi与Kiyoko Naga开发了EEPROM（电擦可编程只读存储器）。东芝的舛冈富士雄于1980年代初发明闪存。舛冈及其团队于1984年推出NOR型闪存，又于1987年开发NAND型闪存。东芝于1987年将NAND闪存实现商业化。