1. 只读存储器
只读存储器中一般用于保存系统程序或者系统的配置信息;
- 早期的只读存储器, 在厂家就写好了内容
- 改进1, 用户可以自己写, 一次性
- 改进2, 可以多次写-- 要能对信息进行擦除;
- 改进3, 电可擦写, 特定设备
- 改进4, 电可擦写, 直接连接到计算机上
1.1 只读存储器ROM
-
掩模rom, (MROM)
行列选择线交叉处有MOS管为’‘1’';
行列选择线交叉处无Mos管为 ‘‘0’’;
-
PROM (一次性编程)
行线
存储器与cpu的连接1. 只读存储器2. 存储器与cpu 的连接3. 存储器的校验 - eprom 多次性编程
-
E2prom 多次性编程
电可擦写
局部擦写
全部擦写
-
flash Memory 闪速型存储器
eprom 价格便宜, 集成度高
e2prom 电可擦写,重写
flash memory 快, 具备RAM功能
2. 存储器与cpu 的连接
cpu 执行的指令和数据都保存在主存储器中,
2.1 存储器容量的扩展
通常情况下,cpu的地址线数目较多,寻址空间范围较大,
一个存储器需要多个存储芯片共同组成。
2.1.1 位扩展
位扩展,
扩展的是数据线的个数
.
扩展的是数据的位数, 即增加了存储字长;
位扩展时, 将芯片同时进行工作,同时读和写操作。
通过将 cs 片选信号线连接在一起, 使得两个芯片同时进行工作,
每个2114是4位的数据线, 两个便构成8位的数据线;
2.1.2 字扩展
字扩展,
扩展的是数据线的个数
.
由于 数据的位数满足条件,
所以两个芯片不可以同时进行工作, 同时进行工作,造成两个8位的数据线会混乱。
增加存储字的数量,
2k 一共11根地址线, a10地址线作为芯片选择线。
第一个芯片使用 a0-a9的地址线, 提供了前1k的地址空间。
第二个芯片同样使用a0-a9 的地址线, 提供了后1k的地址空间。
每个芯片构成1k的地址空间,
2.1.3 字,位扩展
每两个芯片构成一组1k * 8位数据线,
此时每一组中,使用的是同一个片选信号,
每一组都是10根地址线, a0-a9提供1k的地址线;
4组则提供4k的地址线;
a10-a11 构成片选译码,
00-代表第一个1k的地址空间;
01-代表第2个1k的地址空间;
10-代表第3个1k的地址空间;
11-代表第4个1k的地址空间;
2.2 存储器与cpu的连接
- 1. 地址线的连接: 存储器需要根据cpu给出的地址,找到相应的存储单元, 将cpu的低位地址线作为地址信号输入到信号中,高位作为芯片选择信号,
- 2. 数据线的连接:cpu的线数比存储器的数据线数多, 此时需要使用位扩展, 使得存储器输入输出的数据满足cpu的要求,
- 3. 读写命令线的连接: cpu给出读写命令,连接到存储器中,rom 只能读,不可写。
- 4. 片选线的连接: 片选线负责控制选中哪些存储芯片上,片选线负责确认访问的是存储器,不是io.
存储器的访问信号,一定要在片选信号中体现,每个内存芯片都有自己的地址范围,与cpu构成的系统当中,是给他分配的指定范围, 该指定范围必须满足cpu的要求。 存储器的每一根地址都需要使用, 某些地址作为存储芯片的内部地址输入每一个芯片当中,其他一些地址作为片选信号, 来保证对某一个芯片的访问是在给定的地址范围内进行访问的。
-
- 合理选择存储芯片: 保存系统程序的地方和系统配置信息的地方, 使用rom; 而运行系统程序时,或者用户程序这些区域则占用的是 RAM, 这些区域都是可读 可写的。
-
- 其他时序,负载, cpu的时序和存储器的时序需要相互配合,才能读出和写入。 cpu可以带动多少个存储芯片。
3. 存储器的校验
- 为什么要对存储器的信息进行校验?
内存是电子设备, 信息保存在电容当中,
采用静态RAM时, 保存在一个4个晶体管的触发器当中,
如果内存所处环境复杂, 或者在空间环境中受到带电离子的打击,
可能会造成电容的充放电, 或者触发器的翻转,
存放在存储器中的信息会出错,所以需要对存储器的信息进行校验。
从而导致,程序运行时出错。
- 为了能够校验出信息是否正确, 如何进行编码?
以下的编码方式,指的是使用三个0 代表数字0, 三个1代表数字1;
- 纠错或检错能力与什么因素有关?
任意两组合法代码之间二进制位的最少差异数, 定义为编码的最小距离。
所以编码的纠错,检错能力与编码的最小距离有关。
- 校验出信息出错后是如何进行纠错?
- 除了上述的校验码? 还有哪些容错编码, 原理是什么?
3.1 合法代码集合
以下的编码方式,指的是使用三个0 代表数字0, 三个1代表数字1;
四倍冗余的方式指的是: 四个0 代表数字0, 四个1代表数字1
以下的情况当中: 当出现出错码时,通常认为出错1位码的概率是 大于出错2位码
所以通常情况下,
一位出错的概率是最大的, 超百分之九十
- 当出错码属于合法码中的集合中时,此时检0位错,纠0位错;
- 当出错码不在合法代码的集合中时,此时可以检测出错码1一位, 但是没有能力纠错。
即合法代码之间的差异位数,
- 当任意两个合法代码之间的差异位数是三时, 检一位,纠一位;
- 当任意两个合法代码之间的差异位数是四时, 检两位,纠一位;
- 当任意两个合法代码之间的差异位数是五时, 检两位,纠两位
存储器与cpu的连接1. 只读存储器2. 存储器与cpu 的连接3. 存储器的校验
3.2 编码的最小距离
编码的最小距离: 任意两组合法代码之间二进制位数的最少差异。
L − 1 = D + C , ( D > = C ) L-1 = D +C ,(D>= C) L−1=D+C,(D>=C)
L: 编码的最小距离 L=3,
D: 检测错误的位数, 具有一位纠错能力
C: 纠正错误的位数
汉明码是具有一位纠错能力的编码。
编码的纠错,检测能力与编码的最小距离有关。
3.3 汉明码的组成
- 汉明码采用奇偶校验, 与分组校验;
偶校验:加上一位偶校验, 使得整个编码当中,一的个数是偶数个,
如果出现1的个数是奇数个, 则表明信息出错;
分组校验: 此时,如果采用两位奇偶校验位, 进行分组, 前一个奇偶检验位检测前一组中的一的个数, 后一个奇偶校验位检测后一组中一的个数。
-
汉明码采用 一种非划分的方式:
组和组之间是有交叉的,即某些位 属于多个组, 某些位只属于一个组;