当前位置: 首页 > news >正文

计算机组成原理(海明码效验)(3)-软件设计(二十四)

计算机组成原理(2)-软件设计(二十三)icon-default.png?t=N176https://blog.csdn.net/ke1ying/article/details/129394115

一、总线

分为 内部总线、系统总线、外部总线。

内部总线:指芯片级别的总线,连接各个芯片。

系统总线:插件板层级的。

外部总线:则是微机线。

系统总线分为:数据总线、地址总线、控制总线

系统可靠性分析-串联系统与并联系统

串联的时候只要有一个子系统出现异常,整个流程全部异常。

R = R1 * R2 * R3...

并联只要有一个 正常运行,就可以运转,除非所有的系统全部都失效,才会导致整个流程试下。

R = 1-(1-R1)*(1-R2)*...*(1-Rn)

例子:一个系统可考虑是0.9

串联R = 0.9*0.9*0.9

并联R = 1- (0.1)*(0.1)*(0.1)

可见串联可靠率系统越多,可靠率越低,并联反之。

混合系统则是把串联和并联混合在一起,然后通过表决模式,选择正确的答案,宕机的错误答案剔除。

 

问:图上可靠度

整体讲还是串行,所以可以先算两个并联 可靠度,再把两个并联可靠度和R相乘。

  • CRC

循环校验码CRC可以检错但不能纠错

 

右边是普通除法过程。

左边是模2除法,并不是用减法,而是用异或操作。

1和1异或操作得到0

0和1异或操作得到1

1和0异或操作得到1。

 

问:如图,如果我们要对原始报文“11001010101”做CRC编码?

第一步:我们先把多项式转成二进制形式,11011

代表x的四次方 + x的三次方+(因为是0,所以没有x的平方 + x的一次方 + 1

所以转成二进制就是11011

第二步:用原始报文先补0,补的0就是除数的长度-1个0,所以5-1=4

第三步:用补0后的原始报文11001010101 0000 除以11011

第四步:用模二除法的余数 代替最后的0000.

所以最后CRC编码后的结果是:11001010101 0011

当这个结果与11011模二运算后,结果是0,则代表我们CRC编码正确。

  • 海明校验码

问:信息1011的海明码

2的r次方>=4+r+1

确定效验码是3位,分别在2的0次方,2的1次方,2的二次方位子

所以2的3次方 = 8 >= 4+3+1 = 8

7653很好填入,直接把1011填进去。

 

由上图可以见到:

7由这三个数组成,所以他会影响到 三个校验位,也就是r2,r1,r0。

6 会影响两个校验位,r2和r1。

5会影响2个校验位 r2和r0。

3会影响r1和r0

所以r2 在属于7和6和5,所以

R2 = I4异或I3异或I2

1  0   1  异或操作算出  0

R1 = 1  0 1异或操作算出 0

R0 = 1  1  1异或操作算出 1

所以校验位算出来分别为  0  0  1

海明码与CRC不同的是,海明码还支持纠错,当发现错误位的时候,直接取反就好。

http://www.lryc.cn/news/35301.html

相关文章:

  • Linux2.2网络驱动程序编写
  • 像素密度提升33%,Quest Pro动态注视点渲染原理详解
  • 【Linux实战篇】二、在Linux上部署各类软件
  • 基于SpringBoot的学生会管理系统 源码
  • [league/glide]两行代码实现一套强大的图片处理HTTP服务
  • Kafka 消费者组
  • 高效学 C++|组合类的构造函数
  • Java使用Springboot+Mybatis构建第一个项目
  • L2-007 家庭房产 L1-007 念数字
  • 1/4、1/2、整车悬架天棚主动控制仿真分析合集
  • 【微信小程序项目实战】TodoList-项目主体搭设(2)
  • 23种设计模式-迭代器模式(安卓应用场景介绍)
  • 面试 - 软件工程体系
  • 05-CSS
  • 华为OD机试题,用 Java 解【分奖金】问题
  • Multisim 14.3 安装教程
  • 06-Oracle表空间与用户管理(表空间,用户,备份与恢复,导入导出数据)
  • XSS攻击防御
  • 敏捷开发还需要PRD吗
  • 完整教程:使用Spring Boot实现大文件断点续传及文件校验
  • 数位dp-- 数字游戏
  • Linux脚本 启动、重启、停止、授权
  • Pytorch深度学习实战3-8:详解数据可视化组件TensorBoard安装与使用
  • 华为OD机试 - 旋转骰子(C 语言解题)【独家】
  • 如何做SpringBoot单元测试?
  • ZZULI训练: 数组和字符串专题
  • ElasticSearch如何解决深分页问题?
  • JDK8新特性宝典
  • 【C++】关于C++模板的分离编译问题
  • 小应用记账本-第2章-数据库设计