内存储器
计算机中的存储器分为内存和外存两大类。
- 内存的存取速度快而容量相对较小,它与CPU直接相连,用来存放等待CPU运行的程序和处理的数据;
- 外存的速度较慢而容量相对很大,它与CPU并不直接连接,用于永久性地存放计算机中几乎所有的信息。
寄存器
CPU内部的存储器就叫做寄存器,运算器中的通用寄存器、专用寄存器;控制器中的指令寄存器等都属于寄存器。寄存器的存取速度最快(和CPU的速度一样快),价格最高,容量最小。一般有十几个甚至上百个寄存器。
内存储器由称为存储器芯片的半导体集成电路组成。按照是否能随机地进行读写,半导体存储器芯片分为只读存储器(Read Only Memory,ROM)和随机存取存储器(Random Access Memory,RAM)两大类
只读存储器(ROM)
ROM是英文Read Only Memory的缩写,其中文名称为只读存储器。
ROM只读存储器里的信息只能被反复地读出而不能随便写入,当断开电源后,ROM中的信息不会丢失。在ROM中一般存放重要的、经常使用的程序或其他信息。
按照ROM的内容是否能被改写,ROM可分为以下几类:
- Mask ROM(掩膜ROM):存储的数据由工厂在生产过程中一次形成,此后无法进行修改
- PROM(Programmable ROM,可编程只读存储器):这种ROM允许用户或制造商在产品制造后写入数据一次。这些数据写入后即无法更改,但可以读取。
- EPROM(Erasable Programmable ROM,可擦除可编程只读存储器):这种ROM在写入数据后可以被擦除,然后重新编程。因此,它可以被多次重新编程,但每次都需要通过紫外线照射来擦除数据。
- Flash ROM(快擦型存储器,简称闪存):它是一种新型的非易失性存储器,在低电压下,存储的信息可读不可写;而在较高电压下,所存储的信息可以更改和删除。在PC中用于存储BIOS程序,还可在数码相机和U盘中使用
随机存取存储器(RAM)
RAM是英文Random Access Memory的缩写,其中文名称为随机存取存储器。
RAM存储器可随机地向指定的存储单元读写信息,但计算机断电后,这种存储器中的信息将完全丢失,这一特点被称为数据的易失性。
RAM的优点是存取速度快、读写方便,缺点是数据不能长久保存、断电自行消失。
根据工作原理和结构的不同可分为SRAM(静态随机存取存储器)和DRAM(动态随机存取存储器)
SRAM
SRAM(静态随机存取存储器)是一种利用双稳态触发器来存储数据的存储器。每个存储单元由6个晶体管组成,具有高速、稳定、无需刷新等优点。由于其结构复杂,SRAM的集成度较低,功耗也相对较大,通常用于高速缓存存储器或CPU的一级、二级缓存。
SRAM芯片用于构造Cache,它的速度几乎与CPU一样快。计算机在执行程序时,CPU将预测可能会使用那些数据和指令,并将这些数据和指令预先送入Cache。当CPU需要从内存读取数据或指令时,先检查Cache中是否存有,若有,就直接从Cache中读取,而不用访问主存;若没有,CPU再直接访问主存。所以,Cache中的数据只是主存很小一部分内容的副本。与DRAM相比,SRAM电路较复杂,集成度低、功耗较大、制造成本高、价格贵、速度快。
说明:Cache用于匹配CPU和内存两者的工作速度,发挥CPU的高速性能
DRAM
DRAM(动态随机存取存储器)利用电容存储电荷的原理保存信息,电路简单,集成度高。DRAM的基本存储单元是一个电容和一个晶体管,通过电容存储电荷的数量来表示存储数据的状态。由于任何电容都存在漏电,因此需要定期刷新电路来补充丢失的电荷,以保持数据稳定。DRAM常用于大容量存储器,如计算机的主内存、手机的RAM等。
与SRAM相比,DRAM电路相对简单,集成度高,功耗较低,制造成本较低,速度较慢等特点
主存储器主要是由DRAM芯片组成的。它含有大量的存储单元,每个存储单元可以存放1个字节(8个二进制位)。存储器的存储容量就是指它所包含的存储单元的总和。单位是MB(1MB=220字节)或GB(1GB=230字节)。为了区分不同的存储单元,必须给每一个存储单元分配一个编号(这些编号从0开始),被称为存储单元地址。CPU按地址访问存储单元。每个存储单元都有一个地址,CPU就按地址对存储器进行访问。
存储器的存取时间是指从CPU给出存储器地址开始到存储器读出数据并送到CPU(或者是把CPU数据写入存储器)所需要的时间。主存储器存取时间的单位是纳秒(ns,1 ns=10-9s)
随着CPU前端总线工作效率的进一步提高,近几年来,大多数的PC已经改用DDR SDRAM(双倍数据速率同步DRAM)和性能上更优越的DDR2 SDRAM、DDR3 SDRAM。
主存储器在物理结构上由若干内存条组成。内存条必须插入主板中相应的内存条插槽中才能使用。DDR2和DDR3均采用双列直插式内存条(DIMM内存条)。PC主板中一般都各配有2个或4个DIMM插槽
半导体存取器分类
Cache
Cache内存是一种高速缓冲存储器,其原始意义是指存取速度比一般随机存取存储器(RAM)来得快的一种RAM。它通常使用昂贵但较快速的SRAM技术,并且是存在于主存与CPU之间的一级存储器。高速缓冲存储器的容量较小,但速度比主存高得多,接近于CPU的速度。在计算机存储系统的层次结构中,高速缓冲存储器和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的,其最重要的技术指标是命中率。为了提高Cache的命中率,Cache分为L1Cache(一级高速缓冲存储器)、L2Cache(二级高速缓冲存储器)。
高速缓冲存储器作为CPU和主存之间的桥梁,可以提高整个系统的性能。由于寄存器和DDR之间速度差异太大,DDR的速度远不能满足寄存器的需要,因此需要使用高速缓冲存储器来缓存指令和数据,以减少对主存的访问,提高系统的整体速度。
根据cache中存储的是指令还是数据,可以分为I-cache和D-cache。I-cache用于缓存指令,D-cache用于缓存数据。CPU的寄存器是L1的高速缓存,L1是L2的高速缓存,以此类推。高速缓存存储器的级别越高,容量越小,速度越快。
现在一般在CPU中都固化了Cache,另外硬盘也有自己的Cache,用于数据交换的进行
计算机存储器的层次结构
操作数是指等待CPU处理的数据,也是指等待处理的数据所在的内存地址。操作数包括标识符和标识参数,标识符分为主标识符和辅助标识符。
CPU访问程序和数据时,采取如下流程
- 寄存器访问:CPU首先查看需要的操作数是否已经在寄存器中。这是最快的访问方式,因为寄存器是与CPU核心紧密耦合的,可以以极快的速度访问。
- Cache访问:如果操作数不在寄存器中,CPU会查看高速缓存(Cache)中是否有该数据,如在,取自Cache。Cache是主存和CPU之间的一个高速存储层次,用于存储经常访问的数据,以减少对主存的访问。
- 主存访问:如果操作数不在Cache中,CPU将直接访问主存储器(RAM),如在RAM中,则取自RAM。主存是计算机系统中的一个主要存储区域,其速度比硬盘快,但比Cache慢。
- 硬盘访问:如果操作数不在主存中,CPU会发出磁盘I/O请求。这意味着数据可能位于硬盘上。硬盘是计算机中的一种低速存储设备,但可以存储大量的数据。从硬盘读取数据通常是一个相对较慢的过程。
- 数据传输:一旦确定了数据的来源(例如硬盘),系统将开始数据传输过程。数据首先从硬盘传输到RAM,然后可能从RAM传输到Cache,最后可能从Cache传输到寄存器。顺序是硬盘——>RAM——>Cache——>寄存器。
- 预取和缓存管理:许多现代CPU还使用所谓的预取技术,这涉及预测未来的数据和指令访问模式,并将这些数据提前加载到Cache或更高级别的存储中。此外,CPU还有专门的缓存管理单元(CMU),负责维护和更新Cache的内容。
- 内存管理单元(MMU):在某些情况下,特别是涉及虚拟内存时,CPU还会与内存管理单元(MMU)交互。MMU负责将虚拟地址转换为物理地址,并管理页表和其他内存相关的功能。
原文链接:https://juejin.cn/post/7328753414725369856 作者:小明的Fire计划