Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

存储器

复习

  1. 第二十六章:设计实现了寄存器,它可以保存少量数据
  2. 第二十九章:为了解决“线太多“的问题,引入了地址、译码器和存储矩阵,得到了能按地址取用的存储器

TL;DR

  • 存储器按地址存取数据,容量远大于寄存器
  • RAM:可读可写,但断电后数据丢失(易失)
  • ROM:只能读,断电后数据保留(非易失)
  • “内存“指 RAM,“硬盘“属于外存,二者的速度和用途都不同

正文

  上一章,我们靠着地址、译码器和矩阵,做出了能存很多数据、又能按需取用的存储器。这一章把它看仔细些。

按地址存取

  存储器的使用方式很简单:给一个地址,它就吐出(或吞进)对应单元里的数据

  • 写:把地址和要写的数据一起送进去,再拉一下写信号,数据就存好了
  • 读:把地址送进去,拉一下读信号,数据就从数据线上出来

  一个存储器能存多少个单元、每个单元多少位,都是设计时定好的。比如“1K × 8 位“,就是 1024 个单元,每个单元 8 位。

RAM:可读可写

  既能读、又能写的存储器,叫随机存取存储器(RAM,Random Access Memory)

  “随机存取“的意思是:不管访问哪个地址,花的时间都差不多,想读哪个就读哪个,不需要从头一个个找。(与之相对的是“顺序存取”,比如老式磁带,必须倒带倒到位置才能读。)

  RAM 有个要命的缺点:断电就全忘了。所以它属于“易失性存储器“。这也是为什么电脑一断电,没保存的东西就没了。

  RAM 按保存数据的方式,又分两种:

  • 静态 RAM(SRAM):用触发器保存数据,速度快,但每个 bit 要很多晶体管,贵、占地方
  • 动态 RAM(DRAM):用电容上的电荷保存数据,电容会漏电,需要不停地“刷新“,速度慢一些,但便宜、密度高

  我们平时说的“内存条“,大多是 DRAM;而 CPU 里那种又快又小的缓存,用的是 SRAM。

ROM:只能读

  另一种存储器叫只读存储器(ROM,Read-Only Memory)。顾名思义,它里面的数据是预先写好的,平时只能读、不能随便改,而且断电后数据依然保留

  你可能会问:那手机、电脑里那些能升级的系统固件是怎么回事?其实现在的 ROM 早已不是“绝对不可写“,而是发展出了可擦写、可电擦写的各种变体。但“断电不丢“这个基本特点没变。它常用来存放开机时就要用到的程序,比如主板上的 BIOS。

内存与硬盘

  日常生活中,人们常把 RAM 叫作“内存“,把硬盘叫作“硬盘“(外存)。它们的区别很关键:

内存(RAM)硬盘(外存)
速度慢很多
容量小(几 GB 到几十 GB)大(几百 GB 到几 TB)
断电数据丢失数据保留
用途存放正在运行的程序和数据长期保存文件

  这两者的速度和容量差距极大,正是下一章“存储层次结构“要处理的核心矛盾。

思考题

  为什么“内存“断电会丢数据,而“硬盘“不会?如果有一天内存也能断电不丢,电脑还需要硬盘吗?

小结

知识点

  • 存储器按地址存取
  • RAM 与 ROM 的区别
  • SRAM 与 DRAM
  • 内存与外存的区别

参考资料

  1. Wikipedia(zh):随机存取存储器:RAM 的详细介绍
  2. Wikipedia(zh):只读存储器:ROM 的详细介绍
  3. Wikipedia(zh):動態隨機存取記憶體:DRAM 的工作原理

思考题答案(仅供参考)

  内存用 DRAM(靠电容电荷)或 SRAM(靠触发器)保存数据,一旦断电,电荷消失、触发器状态也没了,所以数据丢失;硬盘把数据记录在磁性介质或闪存单元上,不依赖持续供电,所以断电也能保留。如果内存真的做到又快又大又断电不丢,那“内存“和“硬盘“的界限就会模糊,电脑也许不再需要传统意义上的硬盘——但那意味着成本和工艺的巨大突破。

协议

  本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪