还能再快点DDR5来临前这些你要懂
作者 Overlord
发表于 2021年9月

很多年前,电脑装机还是标准的十三大件,而现在很多设备都已经成为板载的形式存在,装机的配件数量也大幅度减少了。除了CPU、主板、硬盘之外,仍必不可少的便是内存了——要知道即便是显卡,也有CPU核显可以替代,小小的内存却一直独立存在(部分笔记本带有板载内存,但仍是物理上的独立存在)。而且听起来都是个“存”字,很多电脑用户实际上并不是非常清楚内存和硬盘存储的区别,所以有时候会有笑话“我的内存是128TB的,硬盘是16GB”。那么,内存究竟是什么,为何如此重要?这个小小的条状物又是如何工作的呢?

“我”不是临时工!

内存究竟是什么?恐怕很多读者并没有深究过它的作用和意义吧?内存的英文是Memory,也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。 只要计算机在运行中,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成后CPU再将结果传送出来,内存的运行状态也决定了计算机的是否能稳定运行。

具体来说,我们都知道CPU处理数据、命令的能力非常出众,但是需要不停地接收新的指令和“要求”才能有的放矢。而海量的数据又都存储于硬盘之中,CPU在工作的时候就必须等待硬盘把数据“贡献”给CPU。当然受限于硬盘自身的读写能力,其提供的数据量对比CPU的处理能力少之又少,哪怕是今天我们看到的PCIe 4.0規格的NVME固态硬盘,也远远不能满足CPU的计算能力,这时就需要内存作为一个“协调者”的角色出现了。

CPU的工作流程大致分为三个步骤,第一个是读取指令,即接收指令需求;第二个是翻译指令,将发送过来的指令需求“翻译”;第三步,则是发送信号执行翻译过的这些指令。在第一步读取指令的时候,CPU并非直接读取硬盘发送过来的数据,因为那“太慢了”,CPU调取的是从硬盘发出并暂存于内存中的指令,这些指令会被写入指令寄存器(CPU)中以供后续使用。

或者我们“调过头”来看,硬盘存储着我们的程序、数据,当我们双击某个程序图标的时候,CPU首先接收到我们的命令,然后CPU就会告诉硬盘,运行你保存的程序1,并且把程序1发送到内存中。然后CPU又会和内存说,我已经“命令”硬盘把程序1送到你这里了,你要暂存一下,等程序1的必要数据命令被硬盘传送到内存后,CPU会将其调入到自己的寄存器中,然后执行程序1。

内存远没有你想得那么简单

我们刚刚了解了内存的基本作用,但是内存是不是因为是个“临时工”,它没那么重要呢?在厘清这个问题前,我们还需要了解一下内存究竟是什么。

谈到存储通常我们都会听到这样的英文简称“ROM、R AM”。所谓ROM,全称为Read Only Memor y,即只读存储器,简言之,它只能被读取,而不能被写入。但是,它在断电后依旧可以“记住”信息,不会丢失任何数据。当然了,ROM其实是一个统称,它也细分称集中不同的类型。比如PROM,这是一种可编程的ROM,它可以通过特殊方式写入数据,但是只是一次性的,写入后就不可更改。

另一种则是EPROM,即可擦除可编程ROM,它的写入原理是通过紫外光的照射擦出原先的程序。最后一种是EEPROM,它是EPROM的“升级版”,不同之处是采用电子擦写的方式而不是紫外光照射,并且写入时间很长,写入速度也很慢。另外,我们熟知的NAND FLASH——就是固态硬盘使用的存储颗粒,本质上也属于ROM的一员。

而RAM则是随机存取存储器(Random Access Memory),它的作用是负责直接与CPU交换数据,能够随时读写,而且速度非常快。但是,当电源关闭时RAM不能保留数据,如果需要保存数据,就必须把它暂存的数据写入到一个存储设备例如硬盘中。我们电脑上使用的睡眠功能,就是通过将内存暂存的数据写入硬盘,用以唤醒后快速恢复状态设计而成的。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。

同ROM有很多细分种类一样,RAM大体也分为两类,即SRAM(静态随机存储器)和D R AM(动态随机存储器)两种。SRAM(Static RandomAccess Memory,静态随机存储器),它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。优点是速度快,不必配合内存刷新电路,可提高整体的工作效率。缺点是集成度低且功耗较大,相同的容量体积较大(需要靠超大规模集成电路解决),因而成本昂贵,只能少量用于关键性系统(例如CPU缓存)以提高效率。

前面我们也说到了内存的作用,某种程度上讲它也算一种“缓存”,不过当它暂存的数据发送给CPU的时候,CPU内部也需要缓存来缓冲,这个缓存就是基于SRAM而生的。CPU的缓存和主内存之间信息的调度和传送是由硬件自动进行的,不需要操作系统的干预和“指导”。除了超高的速度,CPU缓存的重要技术指标是它的“命中率”。可以这样理解:CPU的缓存作为内存局部区域的一个副本,用来存放当前最活跃的程序和数据,它利用程序运行的局部性,把局部范围的数据从内存复制到缓存中,使CPU直接高速从缓存中读取程序和数据,从而解决CPU速度和内存速度不匹配的问题——显然,从硬盘保存的数据到CPU计算,为了协调匹配速度的一致性问题,就必须使用多重方式来缓冲保(暂)存数据、命令。

除了SRAM,RAM里的另一類就是我们的主角内存了。DRAM(DynamicRandomAccessMemory,动态随机存储器)是现今最为常见的系统内存,无论是DDR还是DDR5都属于DRAM范畴。DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间“刷新”一次,如果存储单元没有被刷新,存储的信息就会丢失,所以内存也有另一种称谓“易失性存储”。

从EDO讲起

在中国普及电脑之时,EDO内存才是主角。EDO内存全称是E x tended DateOut RAM,中文为扩展数据输出存储器,这其实是Micron公司的专利技术,而且这种内存分为72线和168线两种规格,并且带宽只有32Bit,因此必须成对使用,采用5V电压(DDR4为1.2V电压),速度为40ns(纳秒),一般容量都在4MB至16MB之间。

本文刊登于《电脑爱好者》2021年24期
龙源期刊网正版版权
更多文章来自
订阅