计算机组成与设计(5)-----存储器-管理

思维导图

在上一篇文章中介绍了存储器层次是如何设计的,这篇则粗浅的总结了关于存储器是如何管理的知识,包括可信性,一致性,管理硬件等.

一.存储器的可信性

存储器并不是百分百的可靠,计算机当然会也出错,所以,需要避免计算机出错的方法和出错后及时纠正的方法.

首先,对存储器的失效进行定义

1.1失效的定义

    某服务的需求会在两种状态之间进行转换,而失效就是由服务实现到服务中断的转变,可能是永久的,也可能是间歇的.可靠性则是一个系统或模块能够持续提供用户需求服务的度量.,即从开始使用到失效的时间间隔.所以平均故障时间(MTTF)是一个可靠性的度量方法.

  • 服务实现:交付的服务与需求相符
  • 服务中断:交付的服务与需求不符

由于一个器件的失效不会导致系统的失效,所以用术语故障来表示一个器件的失效,有三种方式可以用来提高器件的MTTF

  • 故障避免技术:通过合理构建系统避免故障出现
  • 故障容忍技术:采用冗余措施,当故障发生时,通过冗余设施保证系统继续工作
  • 故障预报技术:对故障进行预测,从而允许在器件失效前进行替换.

1.2汉明编码

这是理查德.汉明发明的一种应用于存储器的冗余技术.它可以纠正一个位出错,检测两个位出错.

    利用一位错误检测编码可以检测出1位的错误,其实现的原理是在一个字被写入存储器时,同时写入奇偶校验位(1为奇数,0为偶数),所以N+1位码字中1的个数永远是偶数,所以,当读出数据时,检验码也会被读出,如果计算出的校验码和保存的不符,则发生错误.

  • 一位错误检测编码:可以检测出数据有一位出错,但不能进行定位

一位错误检测编码不能定位到底是哪里发生了错误,而一位汉明纠错码可以实现这个功能.其主要原理是采用额外的校验位确定单个错误的位置,如下图:

在上图中,会在1,2,4,8.....等位置上设置额外的校验位,原理同一位的错误校验码相同,如果结果是0000,则表示没有有且仅有一位发生错误,如果是1010(8,4,2,1)即十进制的10,则表示第十位出错,此时取反即可修正错误.

    在此基础之上,可以再添加一位基偶校验码,对整个字进行校验,就可也检测出发生两个位的错误.即校验位为偶数,且纠错码为奇数的情况.

二   cache的一致性

  • 存储器一致性:一般情况下,如果一个存储器系统中读取任何一个数据项的返回结果总是最近写入的值,那么可以说该存储器具                        有一致性

因为cache一般提供共享数据的迁移和复制功能,所以处理器会引入硬件协议来维护cache的一致性.最常用的则是监听协议

三.有限状态机

一般用有限状态机来控制储存器.对于cache来说,其操作可能是一系列的步骤,所以控制非常复杂,对cache的控制既要指定在任何步骤中信号的设置,又要一次支出下一步的步骤.最常用的多步控制方法就是有限状态机了

  • 有限状态机:由一组输入和输入,以及下一状态函数和输出函数组成的时序逻辑函数,下一状态函数将根据当前状态和输入映射                     出新的状态,输出函数则将当前状态和输入映射为确定的输出
  • 下一状态函数:根据当前状态及当前输入来确定有限状态机下一状态的组合函数

如下是一个简单的cache控制器的有限状态机的示例,有4中状态,空闲,标志比较,写回,分配.

下图表示硬件实现:

下图则是四种状态的转变逻辑示意图:

这里只是简单的总结了一下有限状态机,更高深的知识只能等我以后再学习了.

 

猜你喜欢

转载自blog.csdn.net/zh328271057/article/details/83279277