文章目录
- 一,存储器
- (一)存储器的分类
- 1) 根据功能和特性分类
- 2) 根据存储容量和所在位置分类
- 二,寄存器
- (一)寄存器的类别
- 三,高速缓冲存储器
- (一)高速缓存的类别
- 1) 一级高速缓存
- 2) 二级高速缓存
- 3) 三级高速存储
- (二)高速缓存的工作流程
- 四,主存储器
- (一)RAM(随机存取存储器)
- ① RAM的类型
- 1) SRAM
- 2) DRAM
- (二)ROM(只读存储器)
- ① ROM的类型
- 五,外存储器
- (一)硬盘
- 1) 机械硬盘
- 2) 固态硬盘
- (二)U盘
- (三)SD卡
- (四)光盘
- (五)DVD
- 六,存储单位
一,存储器
所谓存储器,是指用来存储指令或者数据的部件。发展至今,计算机内部往往包含多种不同容量、不同用途的存储器。
所谓存储容量,指的是存储器拥有的字节数。存储器的存储空间会被分成很多个存储单元,每个存储单元的大小通常为 8 个二进制位(也就是 1 个字节,单位用 B 表示),每个单元都有一个唯一的地址。因此,一个存储器中各存储单元的地址范围为0~存储容量-1
。
假设某存储器的存储容量为 64KB,则意味着它有 64 x 1024 = 65536 个存储单元,这些单元的存储地址从 0 到 65535。其中,存储器容量的单位有很多(比如 B、KB、MB 等),后续会给大家做详细讲解。
(一)存储器的分类
计算机中各存储器的分类标准通常有以下 2 种。
1) 根据功能和特性分类
首先,根据 CPU 能否直接访问,可将所有存储器分为内部存储器和外部存储器,CPU 可以直接访问所有的内部存储器,但无法直接访问外部存储器。例如,我们常说的内存条,就是一种内部存储器;而诸如硬盘、U 盘、光盘等,则属于外部存储器。
位于外部存储器中的数据,必须先移动至内部存储器,才能为 CPU 所用。
而根据能否永久地存储数据,又可以将所有存储器细分为以下 2 种类型:
- 易失性存储器:无法永久地存储数据,一旦突然断电或者关闭计算机,内部存储的数据就会丢失;
- 非易失性存储器:可以永久地存储数据,即便断电或者关闭计算机,存储的数据也不会丢失。
2) 根据存储容量和所在位置分类
计算机包含的所有存储器中,根据各自存储容量和所在位置的不同,可以将它们分为寄存器、高速缓存、主存储器以及外部存储器这 4 类。
寄存器是计算机中存储容量最小(通常为 4~8 个字节)、读写速率最快的存储器,位于 CPU 内部。寄存器用于临时保存 CPU 运行所需要的数据或者当前 CPU 正在处理的指令。更重要的是,所有需 CPU 处理的数据,都必须经过寄存器。
高速缓存全称高速缓冲存储器,是一种存储容量较小、读写效率介于寄存器和主存储器之间的存储器,因此它主要用于协调高速的 CPU 和读写效率低的主存储器之间的数据传输问题。高速缓存可以保存 CPU 经常使用的数据和指令,确保 CPU 使用这些数据时可以直接从高速缓存中找到,而无需再访问主存储器,从而提高 CPU 处理数据的效率。
主存储器,简称主存,它有 2 种类型,即 RAM 类型主存和 ROM 类型主存。根据实际场景的需要,不同用途的计算机可以选择配备 RAM 或者 ROM 主存,甚至两种都用。比如,我们现在使用的笔记本电脑中,内存条其实就是集成多个 RAM 存储芯片的电路板;计算机内部还含有多个 ROM 芯片,用于存储 BIOS 系统、某些硬件的驱动程序等等。
外部存储器,支持永久性地存储数据,同时还支持用户对其内部的数据做修改、删除等操作。注意,CPU 无法直接访问外部存储器,其内部的数据需先传输到 RAM 主存中,CPU 才能访问它。
下表给大家梳理了计算机中各个类别的存储器。
二,寄存器
在上面中提到,计算机中的内部存储器主要包含寄存器、高速缓存以及主存储器,带领大家系统地了解一下什么是寄存器。
所谓内部存储器,是指 CPU 可以直接访问的存储器。换句话说,位于内部存储器中的数据,CPU 可以直接使用。
寄存器是计算机中尺寸最小、存储容量也最小(通常 4~8 个字节)、但读写效率最高的存储器,位于 CPU 内部。
寄存器无法永久性地存储数据(属于易失性存储器),它的主要工作是暂时存储当前 CPU 正在处理的指令以及 CPU 将要使用的数据或者指令。
在 CPU 处理数据的过程中,寄存器扮演着非常重要的角色。原因很简单,无论什么类型的数据,都必须经由寄存器才能得到 CPU 的处理。因此,CPU 内部拥有寄存器的数量以及各寄存器存储容量的大小,一定程序上会直接影响 CPU 的运行效率。
(一)寄存器的类别
CPU 的内部往往包含多个寄存器,根据不同的任务分工,可以将它们细分为多个类别,表 1 罗列了常见的一些寄存器以及它们各自的用途。
三,高速缓冲存储器
高速缓冲存储器,简称高速缓存或者 Cache,是一种尺寸较小、读写效率介于寄存器和 RAM 型主存储器之间的易失性存储器(即无法永久性存储数据)。目前,计算机中的高速缓存通常集成在 CPU 内部,但也有将高速缓存置于 CPU 外部的情况。
在上面中提到,CPU 可直接访问的计算机存储部件主要有 3 种,分别为寄存器、高速缓存和主存储器,高速缓存的读写效率不如寄存器,但比主存储器高。
高速缓存常用于临时保存 CPU 经常使用的数据和指令,每当 CPU 需要使用这部分数据时,它可以直接从高速存储中获取,而无需访问读取效率更低的主存储器。并且,存储于高速缓存中的数据只能由 CPU 访问。因此,高速缓存扮演着 CPU 和 主存储器之间的缓冲区的角色,从而提高 CPU 处理数据的效率,进而提高计算机的整体性能。
(一)高速缓存的类别
根据 CPU 的访问顺序,计算机中的高速缓存又可细分为一级高速缓存、二级高速缓存和三级高速缓存。
也就是说,当 CPU 要读取数据时,首先会去一级缓存中查找,没有找到的话会再去二级缓存中查找,如果还没有找到,则去三级缓存或者主存储器中查找。通常,每级缓存的命中率大概都在 80% 左右。
所谓缓存命中率,是指 CPU 要查找的数据或指令恰好位于高速缓存中的概率。
1) 一级高速缓存
又称为 L1 高速缓存,位于 CPU 内核附近,并且如果 CPU 有 4 个内核,则每个内核都配有自己的一级高速缓存。
相比其他类型的高速缓存,一级高速缓存最贴近 CPU,实现它的技术难度和制造成本是最高的,它的读取效率最高,但存储容器最小(通常在 2KB~64KB 之间)。
一级高速缓存还可分为 2 种类型,分别为指令高速缓存和数据高速缓存。显然,指令高速缓存主要用来存储 CPU 经常使用的指令,而数据高速缓主要用来存储 CPU 经常使用的数据。
2) 二级高速缓存
又称为 L2 高速缓存,最初和 CPU 一块集成在电路板或主板上,如今通常集成在 CPU 内部。
和 L1 高速缓存一样,CPU 所有的内核都可以单独拥有自己的 L2 高速缓存,当然也可以共享一个 L2 高速缓存。但和前者相比,L2 高速缓存的读取效率较低,但存储容量更大,通常在 256KB ~ 512 KB 之间。
3) 三级高速存储
又称为 L3 高速缓存,通常集成在 CPU 内部,但也有一些老旧计算机将其放置在 CPU 外部。
L3 高速缓存的读取效率虽然不及 L1、L2 高速缓存,但比 RAM 主存储器的效率高。此外,L3 的存储容量比 L1、L2 高速缓存都大,通常在 1MB ~ 8MB 之间。
对于拥有 L3 高速缓存的计算机,当 CPU 在 L2 高速缓存中找不到需要的数据或指令时,它会前往 L3 高速缓存中查找。因此,L3 高速缓存的存在可以提高高速缓存的命中率,进一步提高 CPU 的工作效率。
(二)高速缓存的工作流程
当 CPU 需要某些数据时,它首先会去 L1 高速缓存中查找;如果未命中,则再去 L2 高速缓存中查找;如果还未命中,再去 L3 高速缓存中查找。
如果所有级别的高速缓存都未命中,CPU 会到 RAM 主存储器(也就是内存)中查找。如果 RAM 主存储器也没有,则尝试从外部存储器中获取这部分数据(注意,CPU 无法直接访问外部存储器)。
显然,当计算机第一次启动,或者某应用程序被第一次打开时,相关数据是不可能位于高速缓存或者 RAM 主存储器中的。但是,当我们后续再打开此应用程序时,所需数据就可能存在高速缓存或者 RAM 主存储器中。
四,主存储器
我们知道,CPU 能够直接访问的计算机存储器有 3 种,分别为寄存器、高速缓冲存储器以及主存储器。前面章节已经分别对寄存器和高速缓冲存储器做了详细的介绍,本节继续讲解计算机中的主存储器。
主存储器(简称主存)是组成计算机的重要部件之一,主要用于存储当前计算机运行所需要使用的数据和指令。
主存储器通常采用半导体材料制作而成,因此读/写效率不如寄存器和高速缓存,但比外部存储器(例如硬盘)快。
我们知道,寄存器和高速缓存都只能临时存储数据,一旦关闭计算机或者断电,它们存储的数据就会丢失。而计算机中的主存储器有 2 种,即随机存取存储器(RAM)和只读存储器(ROM),前者也只能临时存储数据,后者则具备永久存储数据的能力。
(一)RAM(随机存取存储器)
RAM,Random Access Memory 的缩写,中文可译为随机存取存储器,它最大的特点是只能临时性地存储数据或指令,一旦计算机关闭或者意外断电,RAM 存储的数据将全部丢失,它通常以一个单独的存储芯片,或者几个存储芯片集成在一个电路板上(例如内存条)的形式,安装在计算机的主板上。
计算机中的内存条就是典型的 RAM 类型存储器,基于 RAM 无法永久存储数据的这一特性,它又被归为“易失性存储器”一类。
因此,对于处在关闭状态的计算机来说,内部的 RAM 不会存储任何数据。当您按下计算机电源打开计算机时,那些位于外部存储器中、当前计算机运行所需要的数据或指令,就会被拷贝到 RAM 中。
对于个人计算机来说,我们平常所说的计算机内存,指的仅是内存条的容量(并非所有内部存储器容量的加和),而 RAM 习惯上指代的就是计算机内存。
RAM 属于计算机的内部存储器,即 CPU 可以直接访问并使用 RAM 的存储空间,比如将一些数据、指令或者运行结果存储到 RAM 里。而对于存储的数据,RAM 不仅允许计算机读取,还支持计算机对数据做修改或者写入新的数据。
从另一个角度看,RAM 还是一个易失性存储器,它无法永久地存储数据或指令。当您启动计算机(或者打开某一个应用程序)后,原本位于外部存储器的操作系统(或者应用程序)会加载到 RAM 中,CPU 会利用这些数据执行任务,而一旦计算机关闭或者突然断电,位于 RAM 的数据就会全部丢失。
将数据由外部存储器加载到 RAM 中,可以大大提高计算机的整体性能。一方面,RAM 的读写效率本身就比外部存储器(如硬盘、U盘、光盘等)高;另一方面, CPU 是无法直接访问外部存储器的,如果要使用其中的数据,则必须先拷贝到 RAM 中。
如果将 RAM 中存储的数据看做是我们的短期记忆,那么外部存储器中的数据就可以看作是我们的长期记忆。短期记忆仅能存留较短的时间,而长期记忆可以长期保留,必要时我们还可以利用长期记忆更新短期记忆。计算机使用 RAM 的过程也是如此,当 RAM 被填满时,计算机会用从外部存储器读取到的新数据覆盖掉 RAM 中不紧要的旧数据。
由此不难理解,RAM 的数量和存储容量会直接影响计算机的性能。也就是说,如果计算机没有足够的 RAM 存储空间来支撑它运行操作系统和应用程序,那么计算机的性能肯定会下降;反之,计算机可用的 RAM 空间越多,它的运行效率就越高。
① RAM的类型
根据实现存储机制的不同,RAM 又分为 SRAM 和 DRAM 两类。值得一提得是,这两种 RAM 都属于易失性存储器,当计算机关闭时,它们存储的数据都会全部丢失。
1) SRAM
SRAM 全称 Static Random-Access Memory,中文译为静态随机存取存储器。所谓“静态”,即只要保持通电(计算机处于开启状态),SRAM 就可以保证每个比特位的数值(0 或者 1)不发生变化,从而一直存储这些数据。
SRAM 主要由晶体管构成,SRAM 中的每 1 个比特位都通常要用 6 个 CMOS 晶体管(再配以其它一些零件,但没有电容器)组合实现。这样的六晶体管配置,使得 SRAM 具备以下的特点:
和 DRAM 相比,SRAM 存储 1 比特位所需的部件更多,因此它的体积更大。和具备等量存储空间的 DRAM 相比,SRAM 需要占用更大的电路板空间;而同体积的 DRAM 和 SRAM 相比,SRAM 提供的内存空间也就更少。
同样和 DRAM 比,SRAM 读写效率更高,因为 SRAM 支持立即对每个比特位做读、写操作,而无需等待电容器充满电或者完全释放后再做对应的操作。同时,CPU 访问 SRAM 的时间更快(可以低至 10 纳秒),而且两次访问操作可以连续执行,中间不需要暂停。
基于这样的特性,SRAM 通常用来做计算机的寄存器、高速缓存以及显卡上的帧缓存区。
2) DRAM
DRAM,全称 Dynamic Random Access Memory,中文译为动态随机存取存储器。
该存储器本质是一个集成电路,内部包含数百万个尺寸非常小的晶体管和电容器。在电路板上,每个晶体管都和一个电容器对齐摆放,整体构成 1 个比特位,其中电容器充满电表示存储 1,无电表示存储 0;晶体管则充当开关的角色,它允许电路板读取或者修改当前电容器的状态。
DRAM 这种组织结构存在的最大问题是,即便晶体管处于关闭状态,它也会存在漏电的现象,从而导致相连电容器中的电量减少,存储的数据也相继丢失。因此,DRAM 必须定时刷新各电容器中的电量,才能保证存储的数据不会丢失,这也是它称为“动态 RAM”的原因。
电容器的刷新,通常由专门的刷新电路完成,该电路每秒会对电容器进行数百次的刷新。
读者可以将构成 DRAM 的电容器视为一个能存储电量的盒子,充满电表示存储 1,空盒子表示存储 0。盒子最大的缺点就是会漏电,往往只需几毫秒,盒子中的电就会全部漏光。因此要想使 DRAM 正常工作,CPU 或者存储控制器必须在电容器放完电之前再将其充满电,具体的实现方法是:由 CPU 或者存储控制器先读取 DRAM 中存储的数据,然后再将数据写回到 DRAM 中,整个过程每秒会自动持续数千次。
相比 SRAM,DRAM 具有以下的优点和不足:
- 相比 SRAM 的六晶体管配置,DRAM 只需“1 个晶体管+1 个电容器”,因此组成结构更加简单。这也就意味着,同体积的 SRAM 和 DRAM,DRAM 拥有更大的存储容量;
- CPU 访问 DRAM 的效率不如 SRAM,访问一次大约需要 60 纳秒;
- 由于 DRAM 必须定义进行刷新,因此耗电量更多。
为了方便读者更好地对比 SRAM 和 DRAM,下表对它们之间的区别做了一个简单的总结。
(二)ROM(只读存储器)
ROM,Read-Only Memory 的缩写,中文可译为只读存储器。所谓“只读”,即 CPU 只能读取存储在 ROM 中的数据或指令,无法对存储的数据做修改,更无法写入新的数据。
和 RAM 正好相反,ROM 属于非易失性存储器,即该类存储器支持永久性地存储数据或指令,即便计算机关机或者意外断电,ROM 存储的数据也不会丢失。
为了满足实际场景的需要,ROM 还可以细分为很多类型,例如 MROM、PROM、EPROM、EEPROM 等。
ROM 的内部含有一种特殊的电子熔丝元件(可以简单的理解为保险丝或者熔断器),当制作 ROM 时,制作商会将设计人员指定的信息以编程的方式嵌入到 ROM 中,即便计算机关闭或者突然断电,写入的数据也不会丢失。因此,ROM 不但是一种可编程逻辑部件(简称 PLD),还是一种非易失性存储器。
【扩展】:电熔丝编程的过程,其实就是在电熔丝的两端施加不同电位,使直流电通过电熔丝进而将电熔丝熔断(切割)的过程。现有的电熔丝都是以金属的电迁移现象为原理实现的,它们都具有这样的特点:如果一次编程未能将电熔丝切割,那么金属材质的电熔丝的电阻将会显著增大,在其后编程时再施加以往的编程电流已无法达到金属电迁移的要求,因而无法进行二次编程或多次编程。
ROM 的应用很广泛,例如给 90 后童年带来欢乐的游戏卡带(如下图所示),它使用 ROM 存储数据,这些数据可以使计算机运行很多游戏。
除此之外,个人计算机、智能手机、平板电脑、电视的内部都用到了 ROM。以个人计算机为例,当我们按下启动键后,操作系统桌面并不会立即显现在屏幕上,而是需要等待一段时间。原因很简单,计算机启动时,会首先加载位于 ROM 中的 BIOS 系统,该系统会对 CPU、内存、硬盘等硬件状态进行检查,待确定没有问题之后,计算机会相继启动屏幕(显示器)、硬盘等,并将操作系统加载到 RAM 中,最终启动计算机。
ROM 还经常用于存储某些硬件(如键盘、硬盘、显卡)的驱动程序,以使该硬件可以成功和其他硬件进行通信。
① ROM的类型
在 ROM 的基础上,为满足实际场景的需要,后续衍生出了很多具备不同特性的 ROM。
如下表所示,给大家罗列了 5 种常用的只读存储器,以及它们各自的特性和应用场景。
五,外存储器
计算机中除了内部存储器,还有一些可供利用的存储器,这些存储器有的内嵌在计算机内部,有的则通过导线和计算机相连。这类存储器统称为外部存储器(简称外存储器或者外存)。
外存储器拥有一个共同的特性,即它们都属于非易失性存储器。也就是说,即便计算机关闭或者突然断电,外存储器中存储的数据也不会丢失。
外存储器允许用户通过输入或输出操作间接访问存储的数据,但需要注意的是,CPU 是无法直接访问外存储器的,只有将外存储器中的数据拷贝到内部存储器,才能为 CPU 所用。
接下来,给大家列举了一些常用的计算机外存储器。
(一)硬盘
1) 机械硬盘
作为外存储器的一种,机械硬盘(后续简称硬盘)支持永久地存储数据。所以从另一个角度讲,硬盘又是一种非易失性存储器。
注意,我们通常所说的硬盘驱动器,指的就是硬盘。所谓硬盘驱动器(用 HDD 表示),是计算机中控制硬盘寻址以及存取数据的装置。只有借助硬盘驱动器,计算机才能将数据存储到硬盘中。尽管硬盘驱动器和硬盘是两个概念,但由于两者通常封装在一起使用,我们通常认为它们表达的是同一个意思。
硬盘通常位于计算机主板上的硬盘驱动器内,其内部往往封装有多个覆有铁磁性材料的碟片(又称磁盘)。当硬盘工作时,磁盘会旋转,通过在磁盘上移动磁头,可以将指定数据写入硬盘,也可以读取硬盘中已存储的数据。
计算机硬盘通常用于存储操作系统、已安装的应用程序以及一些用户文件,包括文档、图片、音乐、视频等。
2) 固态硬盘
固态硬盘(简称 SSD)也属于非易失性存储器,即此类硬盘也支持永久性地存储数据。
和机械硬盘不同,固态硬盘内部没有磁头和旋转的磁盘,它主要由多个固态电子存储芯片(例如 FLASH 闪存芯片)组合而成。相比前者,固态硬盘具有读写效率更高、运行无噪音、功耗更低等优点。
随着制作固态硬盘成本的不断下降,它已经替代机械硬盘,逐渐成为了台式机和笔记本电脑中的标准硬盘。不仅如此,固态硬盘还应用在了不需要大量存储的平板电脑等平台。
(二)U盘
U 盘又称为 USB 闪存盘,也属于外存储器,它通过计算机主板预留的 USB 接口和计算机相连。
如图所示,U 盘内部也没有类似可旋转磁盘的可活动的部件,在其塑料或铝制外壳内部,主要包含一个嵌有存储芯片的集成电路。因此,U 盘的存储容量通常不是很大(2 GB~128GB)。
U 盘可以永久地存储数据,并且支持用户对内部数据做修改甚至删除,它常用于在多台计算机之间传输数据。例如,您可以将文档、图片、音频以及视频等资源存储到 U 盘中,必要时可以查看甚至修改它们,您还可以将它们传输到其他的计算机上。
此外,U 盘是一种即插即用的存储设备,它不需要借助任何额外的驱动器或者软件就可以使用。
(三)SD卡
SD 存储卡(简称 SD 卡)是一种体积小,支持带电插拔的外存储器,广泛应用在便携式设备和移动设备上,例如手机、数码相机、MP3播放器等。
所谓带电插拔,也称热插拔,是指在机器运行中,SD 卡就可以插入到对应的位置与机器相连,同样可以直接将 SD 卡从机器中拔出,而无需先关闭机器。
SD 卡内部由很多存储芯片构成,受到不同制造工艺的影响,不同 SD 卡的读写效率、存储容量都各不相同,甚至尺寸也不相同。而根据 SD 卡不同的尺寸,可以细分为标准型 SD 卡、迷你型 SD 卡以及微型 SD 卡这 3 种类型。
(四)光盘
光盘(简称 CD)是一种由聚碳酸酯塑料制成、外形呈圆形状(类似机械硬盘内部的磁盘)的便携式存储设备。
光盘是飞利浦和索尼与 1982 年共同研发的。1982 年 8 月 17 日,世界上第一张 CD 诞生在德国的飞利浦工厂。
早期的光盘,主要用于录音的存储和播放,后来广泛应用于各种场景,例如存储文档、音频、视频以及其他数据。
(五)DVD
DVD 早期是“Digital Video Disc”的缩写,被译为高密度数字视频光盘,后来则被称为“Digital Versatile Disc”,可译为数字通用光盘或者数字多功能光盘。
注意,虽然 DVD 具有和 CD 相同的大小和外形,但它的存储容量远大于后者。因此,DVD 广泛用于存储电影或者应用程序。
DVD 还可以细分为 DVD-ROM、DVD-R 和 DVD-RW 这 3 种类型,每种 DVD 都有不同的特性和应用场景,但由于不是本节重点,这里不再对它们做详细的介绍。
六,存储单位
存储单位用于衡量数据量的多少,常用于表示某一个存储器最多可以存储多少数据,即该存储器的存储容量。比如,某一 U 盘的存储容量为 8GB,其中 GB 就是一种存储单位。
实际场景中,常用的存储单位如下表所示:
结合上表,那么 5 KB 可以存储多少个二进制数呢?很简单,一个二进制数需要用 1 bit 来存储,5 KB 包含5 * 1024 * 8
个比特位,最终结果为 40960 bit,因此 5KB 可以存储 40960 个二进制数。