计组第四章 存储器

第四章 存储器

4.1 概述

4.1.1. 分类

(1) 按存储介质分类

存储器 (按存储介质分)

(2) 按存储方式分类

存储器 (按存储方式分)

(3) 按在计算机中的作用分类

存储器 (按作用分)

4.1.2. 存储器的层次结构

image-20221128191525000

寄存器的价格最贵

  1. 单一的存储器都无法满足用户的要求,用户的要求很多,因此采用层次结构,形成一种存储体系
  2. 存储体系:用软件 硬件 或者软硬件结合的方式,连接成一个整体,从程序员的角度来看,是一个存储整体,不需要考虑存储器的层次结构,最终只能看到整个存储体系的特点

计算机有两个主要的存储乘次

image-20221128192021304

  1. 缓存——主存 解决速度的问题

    缓存主存采用硬件的方式连接,因为这个层次我们要解决速度问题,要求其速度非常快,硬件最快

    缓存—主存采用的是主存储器的地址,是实地址,物理地址

    因为内容还是从主存中查找

    主存按照地址查找,缓存是按照内容查找的

  2. 主存——缓存 解决容量的问题

    主存辅存采用软硬件结合的方式,解决的是容量的问题,速度不是最快的

    一般将 主存—辅存 层次看做一个虚拟存储器(对于程序员来说,这是一个整体,不需要考虑内部的连接)

    这时就需要考虑地址问题了,因为实际上二者的物理空间是分开的

    因此定义了新的地址——虚地址,使用的是逻辑地址

4.2 主存储器(重点)

4.2.1. 概述

(1) 主存的具体结构

image-20221129110744261

  1. MAR的地址得经过译码器的转换,因为MAR里面是二进制代码,译码器转换
  2. MDR与存储体之间通过读写电路传输数据或者指令
  3. 但是读还是写要通过中间的 读写控制电路来控制

(2) 主存和CPU的联系

image-20221129111005469

CPU和主存之间有三种信号:

  1. 数据信号:通过MDR与主存连接,双向的
  2. 地址信号:CPU想主存传递,通过MAR,是单向的
  3. 控制信号:这里是读写信号,CPU中的CU来进行控制的,传递给主存,当然以后还有其他控制信号

(3) 主存中存储单元地址的分配

我们假设存储器中的存储字长为32位,在计算机中,地址是按照字节来设置的,不会为每个子设置一个地址,而会为每个字节设置地址,因此子的地址是间断的

比如32位字长,一个字有4个字节,那么一个字地址就有四个字节地址,子地址的间隔就为4

12345678H 这个数据如何在主存储器中进行存储,有两种方式

大端、大尾方式 小端、小尾方式
image-20221129111517715 image-20221129111525001

大端就是顺序,小端就是倒序,两种方式的数据传输的时候要进行转化

x86系列采用小尾方式

image-20221129111802528

MB中的B是 byte的意思,表8位,MW的W是word的意思,就是字长数

(4) 主存的技术指标

  1. 存储容量:主存 存放二进制代码的总位数

  2. 存储速度

    1. 存取时间:存储器的访问时间(发出请求到任务完成的时间)

      1. 读出时间
      2. 响应时间
    2. 存取周期:连续两次独立的存储器操作((读或写)所需的 最小间隔时间

      1. 读周期
      2. 写周期

      一般来说,周期 > 时间 why?

  3. 存储器的带宽:位/秒,单位时间内写的数据的位数

4.2.2. 半导体存储芯片简介

(1) 半导体存储芯片的基本结构

① 示意图

image-20221129112414907

  1. 内部有存储矩阵,译码驱动,读写电路

  2. 外部的线有地址线,数据线,片选线,读写控制线(一条或者两条)

    1. 片选线,半导体有两种表示方法

      image-20221129112747223

      C:芯片,S:select,E:enable(使能信号)

    2. 读写控制线

      1. 一根线 image-20221129112834409
      2. 两根线 image-20221129112841155
② 根据数据线计算芯片容量

如何计算容量

地址线 数据线 芯片容量
10 4 1K×4位
14 1 16K×1位
13 8 8K×8位

210 = 1K

③ 片选线实现存储芯片级联

这个多想想

用 16K × 1位 的存储芯片组成 64K × 8位 的存储器

  1. 首先位级联

    原来是1位,即片选信号一次选择1位

    现在是8位,那么可以让8个芯片并联使用一个片选信号,这样一下可以选中八位

    image-20221129113418117

    将这个看做一个芯片,一个存储单元有8位,8位数据线,地址是0~16K-1

  2. 然后字级联

    原来是16K的地址,现在要64K,就可以让4个16K串联,就实现了64K

    image-20221129113559551

    1~16K-1的地址分给第一列,16K-32K-1的地址分给第二列,以此类推

    16K,64K指的是容量,在尽心字的地址选择的时候考虑,8位是一个字长

    要分清楚什么时候考虑什么

当地址为 65 535 (64K - 1) 时,最后 8 片的片选有效,在最后8片的相同位置都读取一位

  1. 事实上,片选信号就是用来实现级联的,因为芯片的地址线是固定的,如果要扩展的话,那就得多出地址线,而片选信号就能成为这多出来的线

  2. 片选信号和原来的地址线共同组成了新的逻辑地址

    像65535这个地址,其所在的区间就是片选信号,然后一部分内容就是地址线的内容

(2) 半导体存储芯片的译码驱动方式

给定地址之后,如何找到给定的存储单元

① 线选法

线性的矩阵

image-20221129114139193

首先分析芯片

  1. 4位地址线——24 = 16个字,8根数据线——每个字有8位
  2. 地址线经过译码器之后形成16根子线,每根字线同时选中8位存储单元
  3. 这样地址线过来,经过译码器译码,字线有效,选中位,位将数据通过位线传到读写控制电路

以读写0000地址为例子

image-20221129114607266

缺点

  1. 图中的容量是不存在的
  2. 实际上,假设有1M的容量,1M = 220,那么地址线就有20根,译码器转过来的就有220根字线
  3. 字线太多了,集成度很难做高
② 重合法

image-20221129115008243

芯片分析

  1. 地址线分开,译码后分别形成X坐标和Y坐标
  2. X和Y都选中的存储单元才会输出信号
  3. 一个Y只选中一列:这个芯片的意思是一个字只有1位

举例

image-20221129144818662

  1. A5-A0选择了第一行,然后A9-A5打开了第一列的开关
  2. 因此第一行,第一列的存储单元的内容会被选中
  3. 当然,第一行的所有的存储单元都会输出,但是只有第一列的开关打开了

比较

  1. 假设还是1M的字,20根地址线,假设分成了10 + 10,那么横着的是 210 = 1K条线,纵着1K条线,合计2K条线,比线选发的1M条线少了很多
  2. 因此使用这个比较多

4.2.3. 随机存取存储器 ( RAM )

对于SRAM和DRAM我们主要研究以下的问题

  1. 保存0和1的原理是什么?
  2. 基本单元电路的构成是什么?
  3. 对单元电路如何读出和写入?
  4. 典型芯片的结构是很么样子的?
  5. 静/动 态RAM芯片的如何进行读出和写入操作?
  6. 动态RAM为什么要刷新,刷新方法

(1) 静态RAM(SRAM)

① 基本存储单元电路

静态RAM采用双稳态触发器保存01,稳定性强

image-20221129145955446

a. 结构
  1. T1—T4的是4个触发器,就用来存储01

  2. A是原端,A'是非端

  3. T5 T6两个晶体管的打开由行地址选择控制

  4. T7 T8两个晶体管的打开由列地址线的选择

    T1 ~ T6是晶体管,这种也成为6管的静态RAM

b. 选择
  1. 行地址线控制T5 T6的选择,并且可以横向扩展

  2. 行地址线控制T7 T8的选择,并且可以纵向扩展

    采用的是重合法的译码驱动方式

  3. 当行地址线都选择了这个存储单元的时候,这个存储单元被选中

c. 读写
  1. 当数据线选择之后,开关都打开了

  2. 如果要写:DIN进入,通过放大器和取反分别给A和A'的写

  3. 如果要读:A从DOUT出去了,但是A'也会输出,但是会被下面的截止

    读操作 写操作
    image-20221129150733591 image-20221129150744388
② 静态RAM芯片举例
a. Intel2114外特性

image-20221129151102676

1K × 4位 = 4K存储单元,可以设计成 64 × 64 矩阵,注意,4位数据线,表示存储字长是4,意味着要同时选中4位存储单元

b. Intel 2114 RAM 矩阵 (64 × 64)

理论分析

  1. 64 × 64 矩阵,这个是存储单元的矩阵,每个单元只保存1位,但是4位数据线

  2. 可以改成64 × (16 × 4)

    横向6根地址线,译码后有64行

    纵向4根抵制吸纳,译码后有16个,每个同时选中4个存储单元

实际结构如下

image-20221129151819591

芯片结构分析

  1. 就和上面的理论一致,不过将纵向的分成了四组(因为有4位)
  2. 然后列地址译码能同时选中每一组的相同的列

操作图如下

读操作 写操作
image-20221129152804071 image-20221129152819453

只分析读操作

  1. 行地址选中了第一行
  2. 列地址选中了每一组的第一列
  3. 然后4个存储单元都将数据通过右边的那根线传到了读写电路

写操作是两边都会写,与基本存储单元的读写一致

(2) 动态RAM(DRAM)

动态RAM采用电容来保存01

① 动态RAM基本单元电路
a. 结构
三管 单管
image-20221129153428508 image-20221129153537327
  1. 三管:

    1. Cg会存储信息

    2. 读选择线会打开T2,然后Cg输出

    3. 写选择线会打开T3,输入

    4. 基本单元仅仅包括读数据线,T4那边不包括了,因此是三管

      三管的读写选择线是分开的,有两条

  2. 单管:

    1. 字线就是选择的
b. 读写

先看看晶体管的逻辑吧

image-20221129182224824

  1. 如果1为高电平,那么2 3连通
  2. 如果1位低电平,2 3 不连通

三管

image-20221129181122856

三管读操作

  1. 如果要读信号,先通过预充电信号,使得T4晶体管导通

  2. VDD通过T4晶体管给读数据线充电,读数据线高电平,为1

  3. 如果是读信号,那么T2被导通,读数据线通过T2到达T1

  4. 如果Cg为1,那么T1导通,则读数据线与地相接,放电,读数据线低电平

    如果Cg为0,那么T1不导通,则读数据线不会与地相接,读数据线保持高电平

    Cg充电,表示数据为0;Cg不充电,表示数据为1

    即读出与原存信息相反

三管写操作

  1. 写选择线为高电平,则T3导通

  2. 此时写数据线为1,那么Cg充电;如果写数据线为0,那么Cg放电

    写入与输入信息相同

单管动态RAM

image-20221129182621790

单管读数据

  1. 字线高电平,T导通
  2. CS高电平,则数据线有电流,为1;反之无电流,为0

单管写信号

  1. 写入时Cs充电为1,放电为0
② 动态RAM芯片举例
a. 三管动态RAM1103(1K × 1位)

image-20221129183046395

芯片分析

  1. 每个单元电路都连接一条读选择线和写选择线
  2. 这个芯片是1K × 1位的芯片
  3. 刷新放大器:电容过一段时间可能漏电,因此要用刷新放大器进行重写
读操作 写操作
image-20221129183311124 image-20221129183338368
b. 单管动态 RAM 4116 (16K × 1位)

结构

image-20221129183510893

  1. 这个是16K,应该有14根地址线
  2. 但是4116只有7根地址线,因为它是分两次取址的
  3. 第一次取行地址,第二次取列地址
  4. 然后通过I/O缓存器尽心输入输出
  5. 芯片有自己的控制器,产生行时钟,列时钟,写时钟

image-20221129184451186

这里的行与列颠倒过来了

读放大器

image-20221129184619225

  1. 这是一个跷跷板电路
  2. 一端为1,另一端为0

读写

  1. 读原理

image-20221129184530513

  1. 加入行选择先选择第63行

  2. 则63行的所有晶体管导通,所有的电容的电平都传到了横的数据线

  3. 列选择线选中第0列,那么第0列的晶体管导通

  4. 则交叉处的电容与I/O缓冲相连

  5. 假设电容充电,读放大器左侧为1,通过读放大器输出的就是0,即输出为0

    反之,输出为1

    输出的信息与电容是相反的

  6. 写原理

image-20221129185029799

  1. 选择的原理一致

  2. IO缓冲与电容相连,中间是读放大器

  3. 写信号为1,则电容不充电;写信号为0,电容充电

    写入的信息与电容是相反的

读出与写入时候一致的,写入的是1,读出的是1,只是内部存储的电容是0

③ 动态RAM刷新
  1. 动态RAM是用电容的,容易漏电,保存的1会变成0,因此要进行刷新
  2. 刷新与行地址有关,每次会刷新一行所有的内容,而不会刷新一列的内容或者某一个存储单元的刷新

以下是刷新方式

以128 × 128 矩阵为例

我们假设

  1. 存取周期为0.5μs
  2. 刷新时间间隔为2ms,也就是动态RAM芯片的所有电容都要在2ms内刷新,
a. 集中刷新

将刷新时间集中到某一时间段

image-20221129211358880

  1. 刷新时间间隔为2ms,不是指2ms全用来刷新了
  2. 一行的刷新时间等于存取周期
  3. 是指在这个周期内,前一部分全用来读写或者维持,后面腾出一部分时间,这一段时间不允许使用,称为死区,这一段时间全用来刷新,128行全部在这一段时间内刷新

死区为:0.5 μs ×128 = 64 μs

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

b. 分散刷新

image-20221129211857314

  1. 也就是读写时间和刷新时间合道一块算一个周期
  2. 没有死区,因为读写周期是1μs,所有的时间都是读写周期
  3. 128μs就会刷新完全部的,但是2ms每行刷新15.6次左右,没必要刷新这么多
c. 分散刷新与集中刷新相结合(异步刷新)

分散刷新中2ms每行刷新15.6s,异步刷新就每15.6次刷新一次

对于 128 ×128 的存储芯片(存取周期为 0.5 μs ),若每隔 15.6 s 刷新一行

image-20221129212402186

相对于一个15.6μs的时间段是集中刷新,相对于整个2ms是分散刷新

  1. 一行每隔 2 ms 刷新一次,2ms刷新完所有的行
  2. 注意,不一定要在最后才刷新,刷新时间可以放在15.6行的任意时间
  3. “死区” 为 0.5 μs
  4. 将刷新安排在CPU不访问存储器,比如指令译码阶段,不会出现 “死区”

(3) SRAM 与 DRAM 的比较

特点 DRAM SRAM
存储原理 电容 触发器
集成度 高(DRAM里面有1或3个晶体管以及电容) 低(SRAM复杂,每个单元包含6个晶体管)
芯片引脚 少(DRAM的行地址和列地址可以分别进行传送,地址线条数减少为一半) 多(速度比较快,一般使用SRAM是要发挥速度优势,因此不会将地址分两次传送)
芯片封装体积 小(芯片引脚少) 大(芯片引脚多)
功耗 小(只要对电容充放电) 大(T1—T6在通电过程中,三个一直在导通,也就是一直在漏电)
价格 低(结构简单)
速度 慢(读写要对电容进行充放电)
刷新
适用 主存(计算机内存条上放的就是DRAM) 缓存(做Cache,价格贵,无法大规模使用)

4.2.4. 只读存储器(ROM)

一般用于保存系统程序或系统配置程序

(1) 发展历程

ROM的发展历程可以很好的体现人类探索不断进步的过程

改进 特点 缺点
早期 在厂家就写好了内容 用户无法配置自己的机器
改进1 用户可以自己写 只能写一次,一次性进行破坏性编程,一次写完就不能写了
改进2 可以多次写,要能对信息进行擦除 擦除设备单独买,不好擦除
改进3 电可擦写 需要特定设备
改进4 电可擦写 直接连接到计算机上
① 掩模 ROM ( MROM )

就是厂家写好内容,用户无法修改的

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

② PROM (一次性编程)

image-20221129214853500

编程后有错误只能重新购买编写

③ EPROM (多次性编程 )

image-20221129215031154

  1. 如果要重新编程的话,可以驱动浮动栅
  2. 浮动栅的驱动用紫外线照烧
  3. 芯片上面的石英窗口就是透过紫外线的
  4. 但是信息的擦除比较麻烦
④ EEPROM (多次性电可擦写编程 )

电可擦写,局部擦写,全部擦写

⑤ Flash Memory (闪速型存储器)

比 EEPROM快,具备RAM功能

4.2.5. 存储器与 CPU 的连接(重点)

  1. CPU需要的指令和数据都在主存储器中,因此必须有正确的连接
  2. 而且CPU的地址线是要比存储器多的,如何设置存储器也是问题

(1) 存储器容量的扩展

① 位扩展(增加存储字长)

用 ?个1K × 4位 存储芯片组成 1K × 8位 的存储器,以及用CPU的多少根线

  1. 用2个1K × 4位
  2. 地址线1K = 10条,数据线8位 = 8条
  1. 为两个芯片连接相同的片选信号,使其同时被选中
  2. 为两个芯片连接相同的地址线,使其相同地址的字被选中,两个芯片的字构成最终芯片的一个字
  3. 每个芯片的数据线都与CPU的四条数据线相连,总共连接CPU的8条数据线
  4. 控制信号也是相同的,因为读还是写是相同的
  5. 使用时,将两个芯片当做一个芯片,取一个字就是从两个芯片同时取一个字合起来

image-20221129220939663

② 字扩展(增加存储字的数量)

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

  1. 2片1K × 8位
  2. 11根地址线,8根数据线
  1. 地址线要一致,因为地址线是选择片内字的

  2. 数据线都连接CPU的8位数据线

  3. 片选信号不一样,因为两个芯片不是同时使用

    片选信号也是CPU的地址信号产生的,比如A11作为片选信号 0xxxxx选择第一个芯片,1xxxxx选择第二个芯片

  4. 读写控制信号也不一样,因为是分开操作的。一样,虽然分开操作,但是只操作被片选信号选中的,而且CPU也就只有一个读写信号

image-20221129221517187

③ 字、位同时扩展

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

  1. 用8片,很好计算
  2. CPU的12根地址线,8根数据线
  3. 8片中两两位级联,得到4片 1K×8位 的芯片,然后将4片进行字级联,得到最终的存储器

image-20221129222038059

image-20221129222248748

A11和A10产生片选信号

地址分配

组号 地址区间(A11A10 A9A8A7A6A5A4A3A2A1A0)
第一组 00 0000000000 ~ 00 1111111111
第二组 01 0000000000 ~ 01 1111111111
第三组 10 0000000000 ~ 10 1111111111
第四组 11 0000000000 ~ 11 1111111111

(2) 存储器与 CPU 的连接

注意点
连接 说明
地址线的连接 就是CPU的地址线连接芯片的地址线
数据线的连接 同上
读/写命令线的连接 CPU只有一个控制信号,但是注意连接ROM,ROM只可读
片选线的连接 这个是重点,如何生成片选信号,每次访问落在哪个地址区间以及哪几个芯片上
注意
1. CPU访问的是存储器而不是IO,因此对存储器的访问信号要在片选信号中体现
2. CPU的地址线都要用到,有的作为芯片的内部地址信号,有的作为片选信号,保证CPU的访问地址都能有效落到芯片中,防止访问的时候在芯片中找不到
合理选择存储芯片 1. ROM和RAM要合理选择(保存系统程序和配置信息选择ROM,系统程序区域或者用户可读可写的区域用RAM)
2. 芯片的容量参数是不一样的,芯片数量尽可能少,片选逻辑尽可能简单
其他 时序、负载
例题
例题1

image-20221129224344105

  1. 写出对应的二进制地址码

    地址(写的时候建议每4位分开写) 区域
    0110 0000 0000 0000 ~ 0110 0111 1111 1111 系统程序区
    0110 1000 0000 0000 ~ 0110 1011 1111 1111 用户程序区
  2. 根据地址码得到芯片的容量

    系统程序区有11位是 000 - 111,那么是2K

    用户程序区有10位是 000 - 111,那么是1K

    建议这样竖着写

    image-20221129225529697

    CPU就是8位数据线,就是8位

    确定芯片的数量及类型

    区域 大小 芯片种类 芯片选择
    系统程序区 2K×8位 ROM 1片 2K×8位 ROM
    用户程序区 1K×8位 RAN 2片 1K×4位 RAM(位级联)
  3. 分配地址线

    image-20221129225948159

  4. 确定片选信号

    题中使用的是 38译码器,因此有3根输入,而A12A11不一样,用A13A12A11这三个正好做CBA,然后Y4选择ROM,Y5选择RAM

    其余的A15A14也必须使用,可以作为使能端

    MREQ一定不能忘,一定要使用,这个用来区别是对存储器操作还是IO操作(只有MREQ是低电平的时候是访问存储器)

答案如下

image-20221130082555238

分析:

  1. 片选信号
    1. A13A12A11作为CBA生成片选信号,A15A14虽然一样,但也要使用,作为使能端
  2. MREQ,这是区分CPU使用的是存储器还是IO的标志,低电平使用存储器,因此也要使用,作为译码器的使能端
  3. A10两个功能:
    1. 对于ROM,其是地址线,因此要连载ROM的地址线上
    2. 对于RAM,其没有意义,但是RAM对应的地址中,A10为0,因此要将其作为片选信号
  4. Y5与A10两个一起使用,作为RAM的片选信号,只有两个都为低电平时,RAM被选中
  5. 两个RAM的芯片是位扩展,片选信号要一致
  6. A9-A0,RAM和ROM都需要的地址线,每个芯片都需要连,中间的可以省略
  7. D7—D08根数据线
    1. 对于ROM,是8位的,有8根数据线,因此可以直接连上
    2. 对于RAM,是两个4位的,每个各有4根数据线,要将8根数据线分两段连在两个芯片上
  8. 读写控制信号
    1. 对于ROM,只能读,不能写,因此其控制信号接地,就是那个PD信号
    2. RAM就直接接上WR
例题2

还是上面的例题

image-20221129224344105

假设同前,要求最小 4K为系统程序区,相邻 8K为用户程序区。

注意CPU还是16根地址线,做题步骤同上

  1. 写出对应的二进制地址码

    最小 4K为系统程序区:

    1. 最小:开始是从16个0开始的
    2. 4K:12个0到12个1,因为4K是12位,所以这么变化

    RAM的同理

    image-20221130084038144

    1. CPU有16根地址线,先写出A15—A0在上面
    2. 然后写出系统程序区的地址
      1. 首地址是全0,然后4K是12位0变成1
    3. 用户程序区的地址
      1. 相邻:其首地址是 系统程序区 末地址+1,得到了
      2. 理应是8K的地址,但是没有8K的芯片,因此只能选择4K × 8位的芯片
        1. 然后写出地址,还是12个0变成1
      3. 再拿一个4K × 8位
        1. 首地址是上一个的末地址+1
        2. 末地址就是12个0变成1
    4. 芯片为啥都选成 8位,因为CPU的数据线是8位
  2. 确定芯片的数量及类型

    图上已经确定了

    1. 1片4K×8位 ROM 作为 系统程序区
    2. 2片4K×8位 RAM 作为 用户程序区,这两片不是位级联,片选信号不一样
  3. 分配地址线

    image-20221130085040717

  4. 确定片选信号

    A14A13A12是CBA,0连ROM, 1 2分别连两个RAM

  5. 确定片选逻辑

    image-20221130085155065

    译码器的高电平,可以写个Vcc,也可以MREQ取反

步骤总结:

  1. 写出对应的二进制地址码
  2. 确定芯片的数量及类型
  3. 分配地址线
  4. 确定片选信号确定片选逻辑

4.2.6. 存储器的校验

  1. 为什么要对存储器的信息进行校验?

    以电脑的内存为例,使用的是静态RAM,存储单元是4晶体管的触发器,所处的电磁环境比较复杂,或者在空间环境下收到带电粒子的打击,就可能造成电容的充放电或者触发器的翻转

    如果不对信息进行校验的话,会导致程序错误

    笔记本,手机等都采用了校验技术

(1) 合法代码集合

  1. 什么是合法代码是有准确的集合的
  2. 意思就是在这个集合里面的代码是合法的,不在这个里面的就是错误的
  3. 对于错误的代码
    1. 检测出这是错误的代码
    2. 还要能根据合法代码集合进行纠错(也就是知道是哪几位出错了,进行取反纠错)

我们看看下面的例子

合法代码集合 错误代码 分析 结论
100,110 无论什么代码,即使是错误的也是在集合中,无法检测出错误 检0位错、纠0位错
100(实际上错了1位) 可以确定这是出错了,并且1位错的可能性更大,但是无法纠错,因为000, 101, 110错1位都可能得到100 检1位错,纠0位错
100(实际上原来是000,错了1位) 可以检测出这是1位错,应该改成000
110(实际上原来是000,错了2位) 认为是111 检1位错,纠1位错
1000(原0000,错1位) 可以检测出是0000,可以修改
1100(可以检测出来,但是无法纠错) 无法检测了 检2位错,纠1位错
11000(原00000,错2位) 可知是00000
11100(原00000) 会被认为是11111并纠错 检2位错,纠2位错

检错时,一般认为都只出一两位错

检m位错,纠n位错

检m位错,纠n位错

  1. 这个几位错是只实际上有几位出错了

  2. 比如在{00000,11111}合法集合下,得到了11000,而实际上,这个是00000错误得到的,这个就叫做2位错

  3. 检2位错,纠2位错的意思是:可以检测出错误是两位错,可以纠正两位错的错误

    (检m位错,不仅要检测出错误,还要能检测出是2位错,并且是正确的,但是检测不出来是哪几位出错,因此检测不代表就能纠错)

  4. 00000->11000这个两位错可以检测出来是两位错,并且纠正为00000,两位错可以纠正

  5. 00000->11100,这个是3位错,这个错误检测不出来是3位错,会认为是两位错,纠正为11111,即三位错无法纠正

  6. 00000->11110,这个是4位错,检测结果为1位错,检不出来

编码的检测能力和纠错能力和什么有关呢

分析

集合 一组变成另外一组需要改变几位代码 检错位数 纠错位数
1 0 0
2 1 0
3 1 1
4 2 1
5 2 2

任意两组合法代码之间 二进制位 的 最少差异数 有关

(2) 编码的最小距离

任意两组合法代码之间 二进制位数 的 最少差异

① 最小距离与检错纠错能力的关系

最小距离与检错纠错能力的关系:

  1. L(length) —— 编码的最小距离
  2. D(detect) —— 检测错误的位数
  3. C(correct) —— 纠正错误的位数

image-20221130095648315

如果要有1位纠错能力,至少编码长度得为3, 3-1 = 1 + 1

汉明码是具有一位纠错能力的编码

(3) 汉明码

① 检错原理
  1. 汉明码采用奇偶校验

    在原来的代码基础上,添加一位校验位,校验位与代码的1加起来判断奇偶

    image-20221130100549521

  2. 汉明码采用分组校验

    就是将源代码分组,然后每组设置一个校验位,一个校验位只检测改组的错误

    image-20221130100623162

    上面的分组方式是划分分组,组与组之间没有重叠

  3. 汉明码采用非划分分组方式

② 划分方式

image-20221130100804560

分成3组,每组有1位校验位, 共包括4位数据位

image-20221130100824525

  1. 上面的为例,每个圈圈为一个组,一个组有4位数

  2. 这样的划分有个特点,就是每组独有的位数是2的幂次,1 2 4 8等

  3. 组之间重合了,有些位属于一个组,比如1 2 4,有些位属于多个组

  4. 每组各有一个独有的位,1 2 4,重合的部分是独有位的和

  5. 设含有1 2 4 的组为第一组,第二组,第三组,其校验位为 P1P2P3,0表示无错,则检错结果如下

    P3P2P1 错误位 分析
    0 0 0 无错
    0 0 1 1 因为只有P1为1,说明1组独有的错了
    0 1 0 2 只有P2为1
    1 0 1 5 3 1组都错了,即重合位错了
    1 1 0 6
    1 1 1 7 三组都有错
  6. 巧妙的地方就是P3P2P1转为10进制就是出错的位数

    校验位只对一组进行校验但是一个位可以属于多个组

③ 校验位的位置

image-20221130100824525

  1. 因为校验位只对一组进行校验,因此只能是独有位作为校验位,独有位是2的幂次

  2. 即1 2 4 8 16位等作为校验位

    image-20221130103544938

④ 如何分组

就是某一位如何考虑分到第几组呢?比如说第5位,如何判断分到第二组和第三组呢?

组号 位的二进制特征 举例 校验位
1 XXXX1(二进制末尾是1的位) 1(001) 3(011) 5(101) 7(111) 1(001)
2 XXX1X 2 3 6(110) 7(111) 2(010)
3 XX1XX 4 5 6 7 4(100)
4 X1XXX
5 1XXXX
  1. 对于5,二进制是101,第一位和第三位是1,那么就是1组合三组的
  2. 校验位是每组特有的,所以其他位是0,比如第一组,就是001,只有第一位是1,其余为0,即不是其他组的
⑤ 检测位的数目

检测位 就是分成几组

假设有n位信息位,k位检测位

  1. 可以表达的校验结果数目是2k

  2. 实际上可能出错的地方是 n(n位信息位中有错误) + k(k位检测位中有错) + 1(没有错),因此实际结果为

    image-20221130103518545

⑥ 检测位承担的小组

image-20221130104509749

这个有技巧划分的

image-20221130105537593

就是第几个检测位就直接话几行,中间隔着几位

例题类型一:求校验位

解决的问题

  1. 有几位检验位
  2. 检验位放在哪几位
  3. 求校验位是什么

例1

image-20221130104731431

0101是信息位,n = 4,校验位是另外算的

  1. 计算校验位的个数

    image-20221130105613857

  2. 进行排序

    image-20221130105638282

  3. 计算校验位的值

    image-20221130105649546

    C1同组的有1 3 5 7,其中5 7已经是1,偶数个1了,C1为0,

    注意,Ci也是要加进组中的1的个数的,不要任务其是计算在外的

  4. 结果 0101 的汉明码为 0100101

例2

问:按配偶原则(偶校验)配置 0011 的汉明码

image-20221130105830109

异或的方式

例3:按配奇原则配置 0011 的汉明码

自己做

image-20221130111716334

就是在得到Ci的时候取反,也可以使用同或

答案:配置的汉明码为 0101011

⑦ 汉明码的纠错过程

Ci仅仅是校验位,但是生成的是检测位是Pi

  1. 形成新的检测位 Pi,其位数与增添的检测位有关

  2. 如增添 3 位 (k = 3),新的检测位为 P4P2P1(直接出来 22, 21, 20)

  3. 以 k = 3 为例,Pi 的取值为

    image-20221130110502320

  4. 对于按 “偶校验” 配置的汉明码不出错时 P1= 0,P2 = 0,P4 = 0

例题类型二:汉明码校验

例1:已知接收到的汉明码为 0100111,(按配偶原则配置)试问要求传送的信息是什么?

image-20221130110701485

例2:写出按偶校验配置的汉明码0101101 的纠错过程

image-20221130110732741

第四位是校验位的位置,可以不去纠错

⑧ 最小汉明距离

最小汉明举例是3,因为汉明码的纠错位是1,那么根据L-1=D+C,可得,最小汉明距离是3

⑨ 奇偶校验的纠错区别
  1. 在配置的时候采用同或,或者异或结果取反得到Ci
  2. 但是纠错的时候方法一致,如果是P4P2P1= 100,那就是第四位出错了(应该是这样)

4.2.7. 提高访存速度的措施

提升存储器的带宽

(1) 概念:存储墙

存储墙

前面所说,85年到10年,采用了risk技术?CPU的速度每年提升52%,但是内存的速度是10年访问延迟才能减少一半,所以内存速度就为了瓶颈,这就叫做存储墙

常用的方法是

  1. 采用高速器件
  2. 采用层次结构 Cache –主存
  3. 调整主存结构

第3个是这节课的内容

(2) 调整主存结构的方式

我们假设

  1. 存储字长 = 指令字长,即一次取出或写入一条指令
  2. CPU的字长(数据线数)为16,存储器的字长为16
① 单体多字系统

顾名思义,一个存储体,一次多个机器字

image-20221130112830529

工作原理

  1. 设置存储体的长度为64位,大于CPU的16位
  2. 设置了一个数据寄存器,由4个单字长寄存器组成,还有一个单字长寄存区
  3. CPU每次访问存储体,都可以取出4个机器字(每一个都是一个长度为16的指令或者数据),放到数据寄存器中
  4. 下次再用的时候从数据寄存器中取出

优点

  1. 增加存储器的带宽

缺点

  1. 如果CPU要向存储器中写入16位的信息,要先写到单字长寄存器当中,再写到数据寄存器中,那么其余的48位也会被写入,这个可能是错误的

    如果要解决这个问题,那么存储器要另添加硬件来解决,存储器结构复杂

  2. 如果要取出的数据不是连续的,那么也会一次性取出4个机器字,而这4个中只有1个是有效的,其他三个都是没用的

② 多体并行系统
  1. 这个的特点就是并行
  2. 多个存储器可以同时工作
a. 高位交叉(各个体并行工作)

image-20221130113721715

分析

  1. 在编制的时候就将地址划分
  2. 比如现在有4个存储体,那么就前两位作为存储体的体号后面的四位作为存储体内部查找的地址

image-20221130114208724

缺点

  1. 程序一般是连续存储的,假如一个程序全都存在了M0,那么在运行这个程序的时候,只有M0被访问,非常繁忙,其他三个存储器空闲

    并行的优势没有发挥出来

这种方式与存储器容量的扩展一致,但也仅仅适用于此,不适用于存储器带宽的提升

b. 低位交叉(各个体轮流编址)

image-20221130114622058

可以看到,编址的时候就是轮流的编址了

一个存储体在取数的过程中,CPU可以下达命令给另外一个存储体工作

image-20221130114817880

这就是总线章讲过的,分离式通讯

特点:在不改变存取周期的前提下,增加存储器的带宽

image-20221130114943153

  1. 可以看到,启动了存储体0后,存储体0在取数的过程中,又可以启动存储体1
  2. 一个单体访存周期可以访问四个存储体,而不是1个

设四体低位交叉存储器,存取周期为T,总线传输周期为τ,为实现流水线方式存取,应满足 T = 4τ。

image-20221130115114757

连续读取 4 个字所需的时间为 T+(4 -1)τ

高位交叉用于存储器容量的扩展,低位交叉用于存储体带宽的增加和访问速度的提高

③ 高性能存储芯片
a. SDRAM (同步 DRAM)
  1. 一般DRAM都是采用异步方式的
  2. 同步方式要求CPU和存储体,在给定时间点必须完成操作
  3. CPU不需要等待,但是需要存储器速度很快
b. RDRAM

由 Rambus 开发,主要解决 存储器带宽 问题(自己查查),也是一个DRAM)

c. 带 Cache 的 DRAM

在 DRAM 的芯片内 集成 了一个由 SRAM 组成的 Cache ,有利于 猝发式读取

4.3 高速缓冲存储器(Cache)

4.3.1. 概述

(1) 为什么用Cache

  1. CPU与存储器的速度差别很大

  2. Cache是为了 避免 CPU “空等” 现象

    image-20221130160202996

  3. 程序访问的局部性原理

    1. 时间的局部性:当前执行的指令在不久的将来还会使用到
    2. 空间的局部性:当前正在使用的指令和数据在将来,相邻的指令和数据也会使用到

    因此Cache和主存数据交换的单位是 “

    这个块包含了正在使用的指令和数据,还包括相邻的指令和数据

    块的大小要通过实验获得

(2) Cache的工作原理

① 主存和缓存的编址

image-20221130160918305

  1. 主存和Cache都分成分成相同大小(就是上面所说的块),主存有M块,Cache有C块,C << M

  2. CPU给出的地址可以分成两个部分

    • 一部分是块内偏移地址,其位数决定了块的大小,比如一个块包含16个字节,那么块内偏移地址就是4位
    • 另一部分就是块号

    实际应用中,Cache地址应用并不大

  3. 块在内存和Cache传送是整体传送,块内的数据不会变化,因此内存与Cache的块内地址部分是完全相同的

  4. Cache的标记 标记了主存快和Cache块的对应关系,就是对应的主存块的块号

② 命中与未命中

缓存共有 C 块,主存共有 M 块,M >> C,因此主存中不是所有块都在Cache中的

  1. 命中:主存块 调入 缓存,主存块与缓存块 建立 了对应关系

    就是CPU在访存的时候,要的内容已经在Cache中了

  2. 未命中:主存块 未调入 缓存,主存块与缓存块 未建立 对应关系

  3. 标记记录 与某缓存块建立了对应关系的 主存块号

评价 主存-cache ,Cache的命中率是一个重要指标

③ Cache 的命中率
  1. 命中率:CPU 欲访问的信息在 Cache 中的 比率

  2. 命中率 与 Cache 的 容量块长 有关,一般每块可取 4 ~ 8 个字

    块太大的话,Cache的容量就比较小,一个块中的信息不一定全都要的

  3. 块长取一个存取周期内从主存调出的信息长度

    块的大小和交叉关系(就是上面提到的提高存储体的访存效率的多体并行系统中的交叉)有直接关系,以下举例

    存储体 交叉方式 块长
    CRAY_1 16体交叉 块长取 16 个存储字
    IBM 370/168 4体交叉 块长取 4 个存储字(64位×4 = 256位)
④ Cache –主存系统的效率

效率 e 与 命中率 有关

image-20221130163041362

  1. Cache 命中率 为 h
  2. 访问 Cache 的时间为 tc
  3. 访问 主存 的时间为 tm

image-20221130163107766

  1. 最大值,命中率为1,e = 1
  2. 最小值,命中率为0,e = tc/tm

这个公式有个前提,就是Cache是同时访问的

如果先访问Cache,再访问主存,那么公式结果为

image-20221130163423375

  1. 最大值:h = 1, 结果是 e = 1
  2. 最小值:h = 0,结果是 e = tc/(tm + tc)

(3) Cache 的基本结构及使用流程

image-20221130164232298

将主存和CPU给画出来了,红色部分就是Cache的部分

大致说一下流程

  1. CPU通过地址总线发出地址

  2. 地址分为两部分,块号和块内地址

    由于主存和Cache块内的部分完全一致,因此块内地址可以直接作为Cache地址的块内地址

    而块号要交给 主存Cache地址映射变换机构

  3. 机构的变换功能将主存块号转换为Cache块号,同时检测出是否命中

    如果命中,将主存块号对应的Cache块号送给Cache地址,从Cache存储体中找出数据,通过数据总线传给CPU

  4. 如果未命中,也就是要取的数据不在Cache中,看是否可装进,也就是Cache中是否还有空间能够装入块

  5. 如果有空间,访问主存装入Cache

  6. 如果没有,启用Cache替换机构,根据替换算法,将要替换的块写入主存或者消去,并且访问主存替换Cache

  1. 主存Cache地址映射变换机构:

    1. 地址映射:主存中的块号与Cache块号的映射

    2. 变换:把主存的块号转换成响应的Cache的地址

  2. 主存和Cache之间有信息通路:

    1. 通过这个通路实现主存和Cache之间的信息交换
  3. 有些计算机发生了无命中,先将主存中的数据通过数据总线 传给CPU,同时传给Cache

(4) Cache的读写操作

① 读操作

image-20221130165315457

Cache满并不是说Cache真的满了,而是指允许内存放的块是否真的满了

② 写操作

写操作中要解决Cache和主存的一致性问题

Cache中的数据和主存中的数据一致,如果一个数据只在Cache中写了而不在主存中写,就会造成数据不一致

a. 写直达法
  1. 写操作时数据既写入Cache又写入主存
  2. 写操作时间就是访问主存的时间
  3. Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现

优点

  1. 时刻保持Cache和主存的信息一致

缺点

  1. 可能导致对一块内存重复的写

    比如计算累加求和,会对一个区域反复的写,导致内存和Cache的交换频繁

b. 写回法
  1. 写操作时只把数据写入 Cache 而不写入主存
  2. 写操作时间就是访问 Cache 的时间
  3. 当 Cache 数据被替换出去时才写回主存

缺点

  1. 增加了 Cache 的复杂性

  2. 保证不了Cache和主存的复杂性

  3. 多处理器,每个处理器都有一个Cache,内存的块在各个处理器Cache之间都有一个副本,这几个Cache的一致性有问题

    这个也是一个并行体系结构的研究领域

(5) Cache的改进

  1. 增加Cache的级数

    1. 片载(片内)Cache,就是在处理器内部加两级Cache
    2. 片外 Cache,即处理器外部也有一个Cache

    现在的多处理器结构,内部有两个Cache,外部一个大容量的公用的Cache,至少有三级Cache

  2. 统一缓存和分立缓存

    在冯诺依曼结构中,指令和数据在存储器中地位一致,一起存储的

    但是有的时候需要分开,与指令执行的控制方式有关,比如是否流水

    分为指令 Cache 和 数据 Cache

    下面是几个例子

    处理器 指令Cache 数据Cache
    Pentium 8K 指令 Cache 8K 数据 Cache
    PowerPC620 32K 指令 Cache 32K 数据 Cache

4.3.2. Cache-主存的地址映射

前面说过,Cache满并不是说Cache真的满了,而是指允许内存放的块是否真的满了

就是因为这个,Cache和主存的地址映射是有规则的

实际上Cache的存储体是一致的,实现映射改变的是 主存Cache地址映射变换机构

(1) 直接映射

主存中的块只能装到预先指定Cache块中

image-20221130171519902

分析

  1. 主存根据Cache存储体的总大小划分成若干个

    每个区的大小和Cache存储体的大小相等,区中的字块数和Cache的字块数一致

    每个区的字块编号都可以从0开始,编号到2c - 1,任何一个区的第m块只能放到Cache存储体的第m块

  2. CPU给出的 主存地址 可以分成三份

    • 主存字块标记:也就是主存的区号,这个也用Cache存储体的标记来表示
    • Cache字块地址:就是Cache的块号,同时主存区内块的编号,两个是一致的
    • 字块内地址:就是块内的地址
  3. 访问Cache的时候

    主存块标记与Cache的标记位比较,Cache字块地址去查询Cache那块中是否有数据

    从而得到是否命中

每个缓存块 i 可以和 若干 个 主存块 对应,每个主存块 j 只能和 一 个 缓存块 对应

优点

  1. 可以通过Cache字块地址直接找到Cache对应的字块,不需要映射
  2. 结构简单

缺点

  1. Cache的利用率低,冲突率高

    举一个例子,执行Cache中字块0的指令,Cache的其余字块全部为空,要跳转到主存储体第二个区的第0块,这个时候尽管Cache有很多空,但也只能让字块0让出来

(2) 全相联映射

image-20221130172401920

主存 中的 任一块 可以映射到 缓存 中的 任一块

优点

  1. Cache的利用率高了(主存中任何一个块可以放到Cache的任何一个地址)

缺点

  1. Cache的标记位和块号要组合起来,主存地址的主存字块标记要与标记位和块号同时比较,比较速度慢
  2. 比较位数增多,比较器的位数也增多

(3) 组相联映射

这是前两种映射的折中

image-20221130172807827

  1. 先把Cache分成,然后将这些块进行分,一组中有若干个(2, 4, 8, 16)块(这个成为数,即组中的块数),图中一个组有两块,总共有2c-r个组

    主存储器也分每个区的大小和组数是相同的

    Cache有多少个组,主存储器一个区就有多少个块,标号就是0~2c-r-1,与组号相同

  2. 主存中的块,其在区里面的编号就是其在Cache中的组号,这个块可以在这个组的任意一块

  3. CPU在查找的过程中,只需要知道 这个块在主存中某个区的编号,不需要知道是哪个区,然后这个编号就是组号

    比较的时候,就是比较组中的标记以及块号,不需要和Cache中的每个块进行比较

    图中的组地址就是 主存中块在区的编号

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

  • 直接映射:一个块只能放到给定的组中
  • 全相联映射:这个块可以放到这个组的任意一块

组相连映射中,将所有的块分到一组,就变成了直接映射;将一个块分到一组,就成为了全相联映射

优点

  1. 结构比直接映射复杂,但是可以接受
  2. 速度比全相联映射块
  3. Cache利用率也比较高

所以这是常用的方法

(4) 比较

特点

连接方式 特点 优势
直接 某一 主存块 只能固定 映射到 某一 缓存块 不灵活,利用率低,速度快
全相联 某一 主存块 能 映射到 任一 缓存块 成本高,速度慢,利用率高
组相联 某一 主存块 只能 映射到 某一 缓存 组 中的 任一块 折中

三个方法都有用到,但是用途不一致

用途 需求 选择
靠近CPU的Cache 高速 直接相连 或者 路数比较少(一个组含有块数比较少)的组相连
中间的Cache 需求折中 组相连
离CPU越远的Cache 速度要求小,利用率要求高 全映射相连

4.3.3. 替换算法

应用替换算法的是Cache替换机构

当Cache中没有位置可以装内存块,必须有一个块替换出来

  1. 先进先出 ( FIFO )算法,最先放入的块出来

    问题:有些东西可能需要一直常用

  2. 近期最少使用( LRU)算法

    替换出的块是近期使用少的

4.4 辅助存储器(不重要)

4.4.1. 概述

  1. 特点:不直接与CPU交换信息

    必须传输到主存才能传输到CPU中

磁表面存储器-技术指标

最常用的就是磁表面存储器,其技术指标如下

  1. 记录密度

    • 道密度Dt:磁盘中磁道的密度

    • 位密度Db:单位长度的磁道保存的二进制信息

      每个磁道都是同心圆,越往外,位密度越低

  2. 存储容量 C = n × k × s

    n:盘面个数,k:磁道个数,s:每个磁道的信息量

  3. 平均寻址时间

    硬盘或者软盘的时间:寻道时间 + 等待时间

    • 寻道时间读写头(磁头)磁盘表面移动找到指定的磁道的时间
    • 等待时间:读写头停止,磁盘旋转,等待指定的扇区旋转到磁头下面的时间
  4. 数据传输(速)率:Dr = Db × V

    • Db位密度

    • V:磁盘旋转速度

      传输率指的就是磁头指到扇区上,扇区旋转到磁头离开的那个过程中,数据传输的速率

  5. 误码率:出错信息位数与读出信息的总位数之比

4.4.2. 磁记录原理和记录方式

记录方式(略)

这部分没讲,老师让自己看

磁记录读写原理

:使用了电生磁效应

image-20221130190156784

原理:写线圈通上不同方向的电流,会在下面生成不同方向的磁场,最终磁化磁层,磁化的方向不同,保存的数据也不同

:使用了 磁生电 的原理

image-20221130190403797

  1. 就是磁芯会运动,然后切割磁感线,产生不同方向的电流,表示不同的信息

4.4.3. 硬磁盘存储器

(1) 分类

  1. 根据磁头是否固定:

    • 固定磁头:磁盘旋转不平移,每个磁道有一个磁头,磁头不需要移动,只需等待扇区旋转到磁头底下

      特点:速度快,但是结构复杂

    • 移动磁头:磁头可以径向移动,磁盘旋转

  2. 硬盘盘片是否可换

    • 可换盘
    • 固定盘:现在多用,因为盘片从硬盘驱动器取出后,站上灰尘,盘片会报废

(2) 结构

image-20221130191010444

  1. 磁盘控制器是主机和驱动器之间的接口
  2. 磁盘驱动器控制 磁盘的旋转,磁头的移动,数据的读写
① 磁盘驱动器

image-20221130191610027

这里只讲解定位驱动

  1. 多个磁盘组成磁盘组,有共同的主轴
  2. 主轴底部由传动机构传动机构带动主轴,带动磁盘组旋转
  3. 磁盘旋转的时候,磁头悬浮在磁盘表面
  4. 磁头可以沿着磁盘径向移动,这个移动由小车的移动推动
  5. 小车音圈电机控制
  6. 磁盘控制器送来目标磁道的信号,表示磁头要移动到哪个磁道
  7. 根据磁道的信息,由音圈电机控制磁头移动
  8. 这个移动很精确,音圈电机还会测量小车移动的速度,送回到控制端
  9. 形成一个有反馈的闭环自动控制系统

数据控制完成数据的转换和读写控制,图中未写出

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

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

  • 对主机 通过总线

    辅存就是外部存储器,不在主机体系内,我们所说的C盘,D盘就是硬盘

  • 对磁盘(设备)

③ 盘片(材质)

硬质铝合金材料制成

4.4.4. 软磁盘存储器

软盘现在已经淘汰了,因为软磁盘比较容易损坏,市场上也看不到软盘了

(1) 软盘 vs 硬盘

指标 硬盘 软盘
速度
磁头 固定/活动 活动
浮动(磁盘和磁头之间有高速空气流隔开) 接触盘片
盘片 固定盘、盘组大部分不可换 可换盘片
价格
环境 苛刻(盘片上落一粒灰尘都可能让磁头损坏)

(2) 软盘片(图)

image-20221130193113885

聚脂薄膜就是一种塑料

4.4.5. 光盘存储器

(1) 概述

  1. 采用光存储技术,利用激光写入和读出

  2. 现有两代存储技术

    代数 介质 可否擦写
    第一代光存储技术 采用非磁性介质 不可擦写
    第二代光存储技术 采用磁性介质 可擦写

(2) 光盘的存储原理

  1. 只读型和只写一次型:热作用(激光对盘的表面进行烧灼)(物理或化学变化)
  2. 可擦写光盘:热磁效应
posted @ 2023-09-13 16:31  Crispy·Candy  阅读(201)  评论(0编辑  收藏  举报