计算机组成原理8-主存储器—存储器的校验和访存速度提高措施
一、存储器的校验概述为什么要对存储器的信息进行校验?以内存为例,内存是电子设备,信息保存在电容当中,若采用静态RAM,则是保存在四管的触发器当中。若内存所处的电磁环境比较复杂,或在空间环境下受到带电粒子的打击,可能造成电容的充放电或触发器的翻转,存在在存储器的信息可能会出错。1、编码的最小距离编码的检测能力和纠错能力与任意两组合法代码之间二进制位的最少差异数有关。解释:合法集合{000,001,0
目录
一、存储器的校验概述
1、编码的最小距离
解释:合法集合 {000 , 001 , 010 , 011 , 100 , 101 , 110 , 111} ,在此集合中,改变任意一个代码,比如改为001,001在合法集合中,所以不论改哪一个代码,总能在集合中找到对应的合法代码,因此这组合法代码,最少差异数为1,不能检测出错误,即 检0位错,纠0位错。合法集合 {000 , 011 , 101 ,110},在此集合中,改变任意一个代码,比如改为001,001不在合法集合中,那么可以检测出错误,但是不能确定是集合中哪一个代码发生了错误,因为所有的合法代码改变一位后,都可以变成001,所有两组合法代码之间二进制位的最少差异数为2时, 检1位错,纠0位错。合法集合 {000 , 111} ,在合法集合中,改变任意一个代码,比如改为001,001不在合法集合中,那么可以检测出错误,而且根据错误率错一位的机率为90%的统计,我们认为是代码000错误了一位,因此,两组合法代码之间二进制位的最少差异数为3时, 检1位错,纠1位错 。
L - 1 = D + C (D>=C,检测错误的位数总是大于等于纠正错误的位数)
- L ——> 编码的最小距离
- D ——> 检测错误的位数
- C ——> 纠正错误的位数
2、汉明码校验
(1)奇偶校验
所谓的奇偶校验,就是在原校验数据上添加一位1或者0,使数据中的1的个数为奇数个或者偶数个。为奇数个为奇校验,为偶数为偶校验。
(2)汉明码计算
2^r >= n + r + 1信息码 n 位,汉明码 r 位,总共码长 n + r 位
汉明码的位置
汉明码的校验码的位置必须是在2^n位置(n从0开始,分别代表从右边数起的第1,2,4,8,16...),信息码也就是在非2^n位置。
(3)习题
∵ n = 4根据 2^r ≥ n + r + 1得 r = 3
(3)汉明码的纠错
(4)汉明码的纠错过程
二、提高访存速度的措施
原因:CPU的运行效率提升比存储器的访问速度提升要快,发展趋势成剪刀差形式。
1、单字体系统
原假设存储字长等于机器字长,也就是说CPU一次从存储器当中只能取出一条指令(与机器字长相等的数据)
单体多字系统:把存储器的存储字长加长(增加存储器的带宽),比如,CPU为16位,存储字长我们可以设计成64位,CPU每一次访问存储器,都可以访问出4个机器字(4条指令),下一次再取指令时,就可以从数据寄存器当中读取指令。
单体多字系统的缺陷:
(1)CPU如果需要存储16位数据,需要先把数据放在单字长寄存器中,再放入数据寄存器中,然后再存储到存储体中,如果想要避免无关的48位数据被修改,还要设计更复杂的硬件逻辑。
(2)如果CPU读取的指令不是连续的存储的指令,那么取出的多余指令就是用不到的指令。
2、单体改进——>多体并行系统
(1)高位交叉——用于存储容量拓展
顺序对存储体进行编码(编完第一个存储体,再编第二个存储体),前两位00为存储体的编号,后四位为存储体中的地址的编号,每一个存储体都有单独的数据寄存器和地址寄存器,能独立处理读写信号,从而达到4个存储体并行工作的效果。
不足:如果按序存储和按序读取,那么4个存储体中,可能存在有一个存储体非常繁忙,而其他几个存储体非常空闲的情况。
(2)低位交叉——用于带宽访问速度提高
对高位交叉进行改进,横向对存储体进行编码(第一个存储体和第二个存储体轮流进行编码),前四位为存储体中的地址的编号,后两位为存储体的地址。
上图显示了,在一个访存周期内,可分为4个小访存时间,每个小的访存时间可以分别控制一个存储体进行读写。
3、高性能存储芯片
(1)SDRAM (同步 DRAM)
(2)RDRAM
(3)带 Cache 的 DRAM
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)