计算机组成原理 — 存储器

Memory is the mother of all wisdom!

Posted by luobr on August 22, 2024

存储器

概述

存储器是计算机系统中的记忆设备,用来存放程序和数据

存储器分类

存储器分类主要按照存储介质、存储方式以及计算机中的作用来进行分类

存储器分类

存储器的层次结构

从速度、容量以及价格三个性能指标来分析存储器

image-20230701164422221

主存储器

概述

主存储器简称主存,是计算机硬件的一个重要部件。它的主要作用是存放指令和数据,并能由中央处理器(CPU)直接随机存取

主存储器的组成

MAR 寻址操作

根据 MAR 中的地址访问某个存储单元时,还需经过地址译码、驱动等电路,才能找到所需访问的单元

MDR 数据读入写出操作

  • 读出时,需经过读出放大器,才能将被选中单元的存储字送到 MDR
  • 写入时,MDR 中的数据也必须经过写入电路才能真正写入到被选中的单元中

image-20230701144921253

主存和cpu之间的联系

image-20230701145349731

主存中存储单元地址的分配

主存储器被划分为许多存储单元,每个存储单元都有一个唯一的地址

主存中存储单元地址的分配还涉及到字节顺序的问题,即大端模式和小端模式;现在假设用每个存储字32位来存储 12345678H 数据

大端大尾方式:高位字节地址为字地址

字地址 字节地址(8位) 字节地址 字节地址 字节地址
0 12 34 56 78
4        
8        

小端小尾方式:低位字节地址为字地址

字地址 字节地址 字节地址 字节地址 字节地址
0 78 56 34 12
4        
8        
主存中的技术指标

主存的主要技术指标是存储容量存储速度

image-20240203154827366

半导体存储芯片

基本结构

译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作

image-20230701154234737

地址线是单向输入的,数据线是双向的,他们的位数与芯片容量有关

地址线(单向) 数据线(双向) 芯片容量
10 4 2^10 * 4位
14 1 2^14 * 1位
13 8 2^13 * 8位
译码驱动方式

译码驱动方式有两种:线选法和重合法

线选法

线选法是一种直接寻址方式,其中每个存储单元由一个独特的地址线组合直接选中。在这种方法中,每个存储单元或者其对应的存储位都有一个专用的选择线

image-20240204123850680

重合法

重合法是一种寻址技术,它通过减少地址线的数量来实现更高效的存储器寻址。在这种方法中,地址线被复用,即同一组地址线在不同的时间阶段用于传递不同的地址信息

image-20240204123916776

在实际的存储器设计中,通常会根据存储器的容量、性能要求、成本和功耗等因素来选择合适的寻址方法。重合法在较高密度的存储器设计中更为常见,因为它可以更有效地利用地址线资源。而线选法则在一些对速度要求较高或者存储容量较小的应用中更为合适

随机存取存储器(RAM)

静态RAM(SRAM)

存储器中用于寄存“0”和“1”代码的电路称为存储器的基本单元电路

静态RAM基本电路
  • 存储器:T1-T4 ;行开关:T5 - T6 ; 列开关:T7 - T8 (T5 - T8 都属于晶体管)
  • 位线 A 为触发器原端、位线 A`为触发器非端(A 取反)

读写操作

  • 读操作:置行地址、列地址有效,触发器 A 电平会通过 T6、T8 最后通过读出放大器进行读出
  • 写操作:置行地址、列地址有效,电平会从 Din 写入,会先取反,然后通过 T5 - T8,将数据保存到触发器中

image-20240204184814323

动态RAM(DRAM)
动态RAM 基本单元电路

概述:靠电容存储电荷的原理来寄存信息。若电容上存在足够多的电荷表示存“1”,电容上无电荷表示存“0”

  • 三管 MOS

    • 读出时,先对预充电管T4置一预充电信号,使读数据线达到高电平VDD。然后由读选择线打开T2,若T1的极间电容Cg存有足够电荷(被认为原存“1”),使T1导通,则因T2、T1接地,使读数据线降为零电平,读出“0”信息;若Cg没有足够电荷(原存“0”),则T1截止,读数据线为高电平不变,读出“1”信息。可见,读出线的高低电平可以区分“1”和“0”,且读出与原存信息相反
    • 写入时,将写信号加到写数据线上,然后由写数据线打开T3,这样,Cg便能随输入信息充电(写“1”)或放电(写“2”),且写入与输入信息相同

    image-20230708100116477

  • 单管 MOS

    • 读出时,字线上的高电平使T接通,若Cs有电荷,视为“1”;若Cs无电荷,视为“0”。(读出结束时,Cs中电荷释放完毕,所以为破坏性读出,必须再生)
    • 写入时,字线上的高电平使T接通,若数据线为高电平,经过T对Cs充电,使其存“1”;若数据线为低电平,Cs经T放电,使其存“0”

    image-20230708100421878

动态RAM刷新(刷新与行地址有关)

刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程;再生周期就是在一定的时间内,对动态 RAM 的全部基本单元电路作一次刷新操作

  • 集中式刷新(存取周期为 0.5 微秒,刷新周期为 2 毫秒)

    以128 × 128为例:

    image-20230708104909430

    死区:0.5μs×128=64μs0.5μs×128 = 64μs (死区就是不能进行读写操作的时间)

    死时间率:为= 128/4000×100 = 3.2%

  • 分散刷新(存取周期为 1 微秒,刷新周期为 2 毫秒)

    以128 × 128为例:

    image-20230708104959905

    优点:没有死区

  • 异步刷新(分散刷新与集中刷新相结合)

    以128 × 128为例(若每隔约15.6μs刷新一行):

    image-20230708105454013

    每行每隔 2ms 刷新一次 ;死区为 0.5μs

    优点:将刷新安排在指令译码阶段,不会出现“死区”问题

静态RAM VS 动态RAM

DRAM(动态RAM)常用于做主存;SRAM(静态RAM)常用于做缓存

  DRAM SRAM
存储原理 电容 触发器
集成度
芯片引脚
功耗
价格
速度
刷新

只读存储器(ROM)

初衷是一旦注入原始信息就不能再改变了,但是随着市场的需要,希望能改变原来的数据,便出现了后续可以修改数据的只读存储器

发展历程
  • 早期的只读存储器——由厂家写内容 MROM
  • 改进1——用户可以自己写(一次性) PROM
  • 改进2——可以多次写(要能对信息进行擦除) EPROM
  • 改进3——电可擦写(特定设备)
  • 改进4——电可擦写(直接连接到计算机)
掩模ROM(MROM)

一种只读存储器,它在制造过程中被编程,并且一旦编程完毕,其内容就无法再次修改

实现原理:通过行地址以及列地址来确定输出哪个位置的数据,然后通过是否存在 MOS 管来决定输出的数据是 0 还是 1,最后通过放大器输出

  • 行列选择交叉处有MOS管为 “1”
  • 行列选择交叉处无MOS管为 “0”

image-20240205124938265

PROM(一次性编程)

PROM是可以实现一次性编程的只读存储器

实现原理:通过熔丝是否熔断来进行判断 0 还是 1,但是熔断之后无法再恢复,所以只能让用户实现一次编程

  • 熔丝断:“0”
  • 熔丝未断:“1”

image-20240205125529757image-20240205125205796

EPROM(多次性编程)

EPROM是一种可擦除可编程只读存储器

N型沟道浮动栅MOS电路(利用紫外线进行擦除)

  • D端加正电压 —— 形成浮动栅 —— S与D不导通为 “0”
  • D端不加正电压 —— 不形成浮动栅 —— S与D导通为 “1”

image-20230708111429530

注意:如果需要重置数据,可用紫外线照射的方式驱散浮动栅

EEPROM(多次性编程)

一种可以在电子设备中使用多次的存储器芯片。它允许数据被多次编程和擦除,而不需要从电路板上移除芯片

  • 多次编程:EEPROM可以被重新编程多次,这使得它非常适合存储需要定期更新的数据,如配置设置或设备固件
  • 非易失性:EEPROM在断电后仍能保留数据,这是因为它使用浮栅晶体管技术来存储电荷,从而保持数据状态
  • 擦除和编程速度:EEPROM的擦除和编程速度相对较慢,通常比EPROM慢,但比Flash存储器快
  • 有限的生命周期:尽管EEPROM可以多次编程和擦除,但它有一个有限的擦除/编程周期。通常,一个EEPROM芯片可以承受数十万到数百万次的编程
Flash Memory(闪速型存储器)

一种非易失性存储技术,它可以在电力供应的情况下快速擦除和编程

EPROM、EEPROM 、Flash Memory 三者区别
  • EPROM —— 价格便宜,集成度高,可编程只读存储器,需要紫外线照射来擦除,不支持多次编程
  • EEPROM —— 电可擦洗重写,允许数据被多次编程和擦除
  • Flash Memory —— 支持更快速的擦除和编程操作,通常用于更大的存储容量,如USB驱动器和固态硬盘

存储器与CPU的连接

存储器容量的扩展
  • 位扩展

    用 **2片 **1K × 4位存储芯片组成1K × 8位的存储器

    地址线 A0 - A9 ;数据线拼接成 D0 - D7

    image-20240205142329938

  • 字扩展

    用 **2片 **1K × 8位存储芯片组成2K × 8位的存储器

    A10 决定是存储在哪个存储芯片里

    image-20240205143356978

  • 字、位扩展

    8片 1K × 4位存储芯片组成4K × 8位的存储器

    image-20240205144000499

存储器与CPU的连接
  • 地址线的连接:通常总是将CPU地址线的低位与存储芯片的地址线相连。CPU地址线的高位或在存储芯片扩充时用或做其他用途
  • 数据线的连接:存在线数量不同的情况,此时必须对存储芯片扩位,使其数据位数和 CPU 的数据线数相同
  • 读/写命令线的连接:一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写
  • 片选线的连接
  • 合理选择存储芯片:主要是指存储芯片类型(RAM或ROM)和数量的选择。通常选用ROM存放系统程序、标准子程序等等;RAM则是为用户编程而设置的
  • 其他(时序、负载等)

存储器的校验

在计算机运行过程中,由于种种原因致使数据在存储过程中可能出现差错。为了能及时发现错误并及时纠正错误,通常可将原数据配成汉明编码。

合法代码集合

img

任意两组合法代码之间二进制位数的最小差异编码的纠错、检错能力与编码的最小距离有关

L - 1 = D + C (D >= C)

  • L:编码的最小距离
  • D:检错的位数
  • C:纠错的位数

具体编码实例 - 海明码

码距:又叫海明距离,是在信息编码中,两个编码之间对应位上编码不同的位数。例如编码100110和010101,第1、2、5、6位都不相同,所以这两个编码的码距就是4,并且可以通过异或的方式求出(异或后计算零的个数)

两个合法编码(码字)

工作流程

  1. 确定校验码位数 r

    • 数据/信息位数为 m
    • 校验码位数为 r
    • 2 ^ r >= m + r + 1 (已知 m + r 的和,可以通过整个公式分别求出 m、r)
  2. 确定校验码和数据的位置

    假设需要校验数据为 1100,意味着 m = 4,可以通过公式求得,r 的最小值为 3

  3. 求出校验码的值

    根据偶校验可以得出如下(分三组,分别是:xx1、x1x、1xx)

    7 6 5 4 3 2 1
    1 1 0 x4 0 x2 x1
          0   0 1

    海明码就是 1100001

  4. 检错并纠错

    假设最后传入的参数为 1100000

    计算该海明码的三组校验是否正确

    x1 0 0 0 1

    x2 0 0 1 1 => 可知 x1 校验错误 0 0 1 说明最小位出错了,但是恰好是校验码出错,可以不用纠错

    x4 0 0 1 1

提高访存速度的措施

不仅可以采用高速器件、层次结构 Cache - 主存,还可以调整主存结构的方式来提高访存的速度,如下就是调整主存结构的方式

  • 单体多字系统

    前提:程序和数据在存储体内是连续存放的,这样就可以在一个存取周期内从同一地址中取出4条指令,然后逐条送至 CPU 中执行image-20230716134022603

    存在的问题:

    • 若只需向存储体写入16位数据(单字长),而数据寄存器却多读出了48位,若想让这48位不存入存储体,会增加寄存器的复杂性
    • 若需要取出的数据(或指令)不是连续的,必然会使数据寄存器取出无用的数据
  • 多体并行系统(顺序编址)

    采用多体模块组成的存储器,主要应用于存储器容量的扩展(高位地址可表示体号,低位地址为体内地址)image-20230716133951483

    存在的问题:

    • 某个存储体可能会非常繁忙,其余存储体空闲
    • 这种方式主要适用于存储器容量的扩展,并不适合提高存储器的带宽
  • 低位交叉(各个体轮流编址)

    主要应用于存储器的带宽和访问速度的提高(低位地址可表示体号,高位地址为体内地址)image-20230716134241076

    低位交叉的特点:

    • 在不改变存储周期的前提下,增加存储器的带宽

    注意对体号和体内地址的理解

    • 物理地址:物理地址也称为”体号”,是指在计算机系统中实际存在的存储器单元的地址。物理地址是硬件直接访问主存储器的地址,它对应于存储器芯片或者其他存储介质上的真实地址
    • 虚拟地址:虚拟地址也称为”体内地址”,是指程序中使用的地址,它由程序生成并由操作系统进行地址转换。虚拟地址空间是程序员能够访问的抽象地址空间,程序中的变量和数据都是相对于虚拟地址空间来说的
  • 高性能存储芯片(了解)

    • SDRAM
    • RDRAM
    • 带 Cache 的 DRAM

高速缓冲存储器

概述

目的:避免CPU空等现象

原理:程序访问的局部性原理(指令和数据在主存地址分布不是随机的,而是相对的簇聚,也就是说程序大部分访问都是少数的指令和数据)

image-20230722101550637


Cache 工作原理

主存和缓存的编址

  • 主存和缓存按块存储,块的大小相同(B 就是块的大小)
  • Cache 内的块内地址不仅大小和主存一样,而且取值也是一样的
  • Cache 内的标记就是来记录主存的主存块号

image-20230722101645431

命中与未命中

缓存共有 C 块,主存共有 M 块(M » C)

  • 命中:CPU 所要访问的数据已经从主存储器映射到了 Cache 缓存中(用标记建立起与主存的关系)
  • 未命中:CPU 所要访问的数据没有在 Cache 缓存中找到
  • 命中率 h:CPU欲访问的信息在 Cache 中的比率(与 Cache 的容量和块长有关)
  • 访问效率 e:tc / (h * tc + (1-h) * (tm + tc)) * 100% (区间:[tc / tm ,1]) (访问 Cache 的时间 tc ; 访问主存的时间 tm)

示例详解

假设 CPU 执行某段程序时,共访问 Cache 命中3000次,访问主存 20 次。已知 Cache的存取周期为50ns,主存的存取周期为200ns,求Cache-主存系统的命中率、访问效率和平均访问时间?

  • 命中率 = 命中 Cache 的次数 / 总次数 = 3000 / (3000+20)
  • 平均访问时间 = Cache的存取周期 * 命中率 + (1 - 命中率) * 主存的存取周期 = 50ns * h + (1-h) * 200ns
  • 访问效率 e = 访问 Cache 的时间 / 平均访问时间 * 100% = 50ns / 50ns * h + (1-h) * 200ns

Cache 的基本结构

Cache 的基本结构原理框图

CPU(通过地址总线)给出地址,这个地址包括(主存)块号块内地址。块内地址直接传给Cache,使用块号在主存Cache地址映像机构中确认是否命中。如果发生命中,得到Cache的块号;如果未命中,查看Cache中是否有空间可装入主存块。若有,访问主存装入Cache;若没有,启用Cache替换机构,根据替换算法,决定Cache中哪块可以被替换,然后访问主存替换Cache即可

它主要由Cache存储体、地址映射变换机构、Cache替换机构几大模块组成

  • Cache存储体

    Cache存储体以块为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用多体结构,且Cache访存的优先级最高

  • 地址映射变换机构

    地址映射变换机构是将CPU送来的主存地址转换为Cache地址

  • Cache替换机构

    当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache内移出哪个块返回主存,而把新的主存块调入Cache

  • Cache的读写操作

    • 读操作

      image-20240220124748964

    • 写操作

      • 写直达

        写操作数据既写入Cache 又写入主存;写操作时间就是访问主存的时间

      • 写回法

        写操作只把数据写入到 Cache 缓存而不写入主存;当 Cache 写入的数据要被替换的时候才写入主存

注意:Cache 对用户来说是透明的


Cache 的改进

Cache 的改进框图

image-20230722112226441

片内缓存:也称单一缓存,是指在CPU和主存之间只设一个缓存

  • 片内缓存与CPU之间的数据通路很短,大大提高了存取速度,外部总线又可更多地支持I/O设备与主存的信息传输,增强了系统的整体效率
  • 可是,由于片内缓存在芯片内,其容量不可能很大,这就可能致使CPU欲访问的信息不在缓存内,势必通过系统总线访问主存,访问次数多了,整机速度就会下降

片外缓存:也称二级缓存,由比主存动态RAM和ROM存取速度更快的静态RAM组成

统一缓存和分立缓存的选取主要考虑两个因素:

  • 与主存结构有关。如果计算机的主存是统一的(指令和数据存储在统一主存中),则相应的Cache采用统一缓存;如果主存采用指令、数据分开存储的方案,则相应的Cache采用分立缓存
  • 与指令执行的控制方式有关。当采用超前控制或流水线控制方式时,一般采用分立缓存(所谓超前控制,是指在当前指令执行过程尚未结束时就提前将下一条准备执行的指令取出)

Cache - 主存的地址映射

由主存地址映射到Cache地址称为地址映射。地址映射方式很多,有直接映射、全相联映射、组相联映射三种

直接映射
  • 每个缓存块 i 可以和若干个主存块对应
  • 每个主存块 j 只能和一个缓存块对应

image-20240220223000655

说明

  • 主存字块标记(区号):将主存分成 2 的 t 次方倍的 Cache 大小,也就是 t 的位数取决于 主存 / Cache 的大小

  • Cache 字块地址(块号):主存每个区都会对应字块 2 的 c 次方块数,Cache中也会有对应的块号与之一一对应,只要区号和块号都一致,就可以知道Cache中是否有该数据

    image-20230722132835714

优点:实现简单,只需利用主存地址的某些位直接判断,就可确定所需字块是否在缓存中

缺点:不够灵活,因每个内存块只能固定地对应某个缓存块,即使缓存内还空着许多位置也不能占用,使缓存的存储空间得不到充分的利用。此外,如果程序恰好要重复访问对应同一缓存位置的不同主存块,就要不停地进行替换,从而降低命中率

全相联映射

允许主存中每一字块映射到Cache中的任何一块位置上

image-20240220223725460

优点:灵活,命中率高,缩短了块冲突率。

缺点

  • 主存字块标记需要与Cache的所有标记进行同时比较,电路会非常复杂。
  • 主存字块标记从t位增加到t+c位,这就使Cache”标记“的位数增多,比较器的长度就会增长。
组相联映射

组相联映射是对直接映射和全相联映射的一种折中

i = j mod Q (某一主存块 j 按模 Q 映射到缓存的第 i 组中的任一块)

image-20240220224232200

说明:主存的字块号对应了 Cache 的组数,Cache 的组数决定可以主存相同块号同时放入 Cache 中的数量

优点

  1. 减少了冲突失效:与直接映射相比,组相联映射通过将主存块映射到一组而不是单一的缓存块,减少了因为多个频繁访问的内存块映射到同一个缓存块而产生的冲突失效(冲突失效是指不同的内存块需要映射到同一个缓存块)
  2. 简化了替换策略:由于一个组内有多个块可供选择替换,因此替换策略(如最少使用替换或随机替换)的实施比全相联映射简单,因为它只需在组内进行选择,而不是在整个缓存中进行选择
  3. 灵活性和适应性:组相联映射可以根据缓存的大小和设计,调整组的大小,从而提供更好的性能和适应性
  4. 成本适中:与全相联映射相比,组相联映射在硬件实现上的成本更低,因为它不需要在整个缓存中搜索可替换的块

缺点

  1. 硬件复杂性:尽管组相联映射的硬件复杂性低于全相联映射,但它仍然比直接映射复杂,因为它需要额外的硬件来识别和选择组内的缓存块
  2. 有限的并行度:组相联映射的并行度低于全相联映射,因为它仍然存在一定程度的冲突失效,这限制了并行访问缓存的能力
例题详集

例题 1:直接映射

假设有一个Cache,容量为16KB,块大小为4字节,使用直接映射技术。主存地址为32位。求:

  1. Cache中有多少个块?
  2. Cache的索引位数是多少?
  3. 主存中的一个特定地址0x0000A5F8会被映射到Cache的哪个块?

解答

  1. Cache的总块数 = Cache容量 / 块大小 = 16KB / 4B = 4096个块
  2. Cache的索引位数 = log2(总块数) = log2(4096) = 12位
  3. 对于直接映射,Cache的索引部分直接由主存地址的中间部分给出(忽略最低的块偏移量和最高的主存标记位)。假设Cache的起始地址为0,那么地址0x0000A5F8的索引部分是A5F8的后12位,即0xA5F8的最低12位,所以索引是0x5F8。这个索引值将指定Cache中的相应块

例题 2:组相联映射

假设有一个Cache,容量为32KB,块大小为8字节,使用2路组相联映射技术。主存地址为32位。求:

  1. Cache中有多少个块?
  2. Cache的组数是多少?
  3. 主存地址0x00012345会被映射到Cache的哪个组?

解答

  1. Cache的总块数 = Cache容量 / 块大小 = 32KB / 8B = 4096个块
  2. 由于是2路组相联映射,每个组包含2个块,所以组数 = 总块数 / 每组的块数 = 4096 / 2 = 2048组
  3. 对于组相联映射,Cache的索引位数 = log2(组数) = log2(2048) = 11位。地址0x00012345的索引部分是中间的11位,即0x12345的最低11位,所以索引是0x345。这个索引值将指定Cache中的相应组

例题 3:全相联映射

假设有一个Cache,容量为8KB,块大小为16字节,使用全相联映射技术。主存地址为32位。求:

  1. Cache中有多少个块?
  2. 主存地址0x00005678会被映射到Cache中的哪个块(假设使用最少使用替换策略)?

解答

  1. Cache的总块数 = Cache容量 / 块大小 = 8KB / 16B = 512个块
  2. 对于全相联映射,不需要索引位,因为Cache中的任何块都可以映射到任何一个地址。但是,替换策略(在这个例子中最少使用)决定了哪个块将被替换。地址0x00005678映射到Cache中的哪个块取决于当前的Cache状态和替换策略。全相联映射没有固定的映射规则,需要额外的硬件来跟踪每个块的使用情况

替换算法

先进先出(FIFO)算法

选择最早调入Cache的字块进行替换,它不需要记录各字块的使用情况

  • 优点:比较容易实现,开销小
  • 缺点:没有根据访存的局部性原理,故不能提高 Cache 的命中率
近期最少使用(LRU)算法

LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块。它需要随时记录 Cache中各字块的使用情况,以便确定哪个字块是近期最少使用的字块。

优点:它实际是一种推测的方法,比较复杂,一般采用简化的方法,只记录每个块最近一次使用的时间,LRU算法的平均命中率比FIFO的高

辅助存储器(了解)

概述

辅助存储器,也称为外部存储器或第二存储器,是计算机系统中用于长期存储大量数据和程序的设备,与主存储器(RAM)相对。辅助存储器不像主存储器那样直接由CPU访问,但其存储容量通常要大得多,而且数据在断电后仍然可以保持

image-20230722135011004

  • 记录密度:它决定了磁盘上可以存储多少数据位(磁带存储器则用位密度表示;磁盘沿半径方向单位长度的磁道数为道密度)
  • 存储容量:硬盘的存储容量主要由磁盘的数量、磁盘的尺寸以及存储密度决定
  • 平均寻址时间:包括寻道时间和等待时间。寻道时间是磁头移动到正确磁道的时间,等待时间是磁头等待所需数据旋转到磁头下方的时间
  • 数据传输速率:受限于磁盘的旋转速度和磁头的读写能力(记录密度 Db;记录介质的运动速度 V)
  • 误码率:通常与存储介质的品质、磁头的技术以及读写过程的准确性有关

磁记录原理

概述

磁记录原理是利用磁性的变化来存储和读取数据的技术。在磁记录中,信息被转换成电信号,这些电信号通过磁头产生变化的磁场,进而改变磁记录介质(如磁带或硬盘)上的磁化方向,以此来记录数据

本质就是利用磁体的南北极来对应二进制的 0 和 1

写入(记录)过程
  • 输入信息首先被转换成电信号
  • 这些电信号通过磁头线圈产生磁场
  • 当磁场强度足够大,能够克服磁介质的矫顽力时,磁介质表面会产生磁化区域
  • 磁化区域的方向(北极指向南极)代表二进制信息中的一个位(0或1)

image-20240221182502228

读取(再现)过程
  • 磁头移动到磁化区域上方,磁介质的磁化状态会影响磁头的磁场
  • 这种变化被转换成电信号,通过放大和处理,恢复成原始的输入信息

image-20240221182522647

总的来说,磁记录是一种成熟且广泛应用的存储技术,它通过改变磁性材料表面的磁化方向来存储和读取数字信息


硬磁盘存储器

概述

硬磁盘存储器是一种利用磁记录技术进行数据存储的辅助存储设备。它由一个或多个快速旋转的磁盘(盘片)组成,每个磁盘表面都涂有一层磁性材料。硬磁盘存储器通过磁头在磁盘表面读写数据,这些磁头悬浮在磁盘表面非常小的距离上,不会与磁盘表面直接接触

硬磁盘存储器的类型
  • 固定磁头和移动磁头

    image-20240221183158043

  • 可换盘和固定盘(可换盘片指盘片可以脱机保存;固定盘磁盘存储器是指磁盘不能从驱动器中取下,更换时要把整个头盘组合体一起更换)

硬磁盘储存器的结构

硬磁盘存储器由磁盘驱动器、磁盘控制器和盘片3大部分组成

image-20240221183435766

  • 磁盘驱动器:这是硬磁盘存储器的核心部件,负责控制磁头的移动以及磁盘的旋转。它通常包括磁头组件、盘片组件、电机和控制器等
  • 磁盘:磁盘是硬磁盘存储器的数据存储介质,通常由一个或多个铝或玻璃制成的盘片组成。每个盘片都涂有一层磁性材料,用于存储数据
  • 磁头:磁头是硬磁盘存储器中读取和写入数据的关键部件。它通常安装在磁头臂上,可以精确地移动到磁盘的指定位置进行读写操作
  • 硬盘控制器:硬盘控制器是硬盘存储器和计算机主板之间的接口,负责管理数据传输和磁盘操作。常见的硬盘控制器标准有IDE、SCSI、SATA等

磁盘驱动器

磁盘驱动器是主机外的一个独立装置,又称磁盘机,主要包括主轴、定位驱动及数据控制等3部分

image-20240221183604478

磁盘控制器

磁盘控制器通常制作成一块电路板,插在主机总线插槽中

作用:接收由主机发来的命令,将它转换成磁盘驱动器的控制命令,实现主机和驱动器之间的数据格式转换和数据传送,并控制驱动器的读/写

image-20240221183954078

磁盘控制器是主机与磁盘驱动器之间的接口

  • 接收主机发来的命令,转换成磁盘驱动器的控制命令
  • 实现主机和驱动器之间的数据格式转换
  • 控制磁盘驱动器读写

盘片

由硬质铝合金材料制成


软磁盘存储器

概述

软磁盘存储器与硬磁盘存储器的存储原理和记录方式是相同的,但在结构上有较大的区别

  硬盘 软盘
速度
磁头 固定、活动(浮动) 活动(接触盘片)
盘片 固定盘、盘组大部分不可换 可换盘片
价格
环境 苛刻 不苛刻
软盘片

是一种已经较为过时的存储介质,它由一个柔软的磁性圆盘封装在一个方形或圆形的保护套中。软盘片在个人电脑和计算机历史上曾广泛使用,但因其有限的存储容量和相对较慢的数据传输速度,已经被更高效的大容量存储设备所取代

软盘片的工作原理

软盘片的工作原理与硬磁盘驱动器类似,都是利用磁性材料记录数据。软盘片的数据存储在磁盘的磁性涂层上,通过改变磁性的方向来表示二进制数据(0和1)。读写数据时,软盘驱动器中的磁头会接触(或非常接近)磁盘表面的磁性涂层,进行数据的读取或写入。


光盘存储器

概述

是一种使用光学技术来读取和写入数据的存储设备。光盘存储器利用激光束在光盘表面形成的小凹槽(即“坑”)来存储信息。这些凹槽代表二进制数据,通过激光读取凹槽的反射差异来识别数据

  • 采用光存储技术 —- 利用激光写入和读出
  • 第一代光存储技术 —- 采用非磁性介质 — 不可擦写
  • 第二代光存储技术 —- 采用磁性介质 — 可擦写
光盘存储器的工作原理
  • 写入数据:在可写或可重写光盘上,激光束会加热光盘表面的特殊染料或相变材料,使其融化或改变相位,形成凹槽
  • 读取数据:读取数据时,激光束照射在光盘表面,当激光遇到凹槽时,反射率会发生变化,光传感器检测到这些变化并将其转换为电信号,进而解码为数字数据
光盘的存储原理
  • 只读型和只写一次型 — 热作用(物理或化学)
  • 可擦写光盘 — 热磁效应