文档介绍:运算部件
1. 定点运算部件
定点运算部件由算术逻辑运算部件ALU、若干个寄存器、移位电路、计数器、门电路等组成。
实现定点运算(算术运算和逻辑运算)
。考虑到最简单的情况,图中仅有三个寄存器A、B、C。
定点运算部件框图
A,B,C寄存器的作用
运算
A
寄存器
B
寄存器
C
寄存器
加法
被加数
运算结果
加数
无用
减法
被减数运算结果
减数
无用
乘法
部分积
乘积高位
被乘数
乘数
乘积低位
除法
被除数
余数
除数
被除数低位
商
A,B,C寄存器的作用
浮点运算器
根据浮点运算算法,浮点运算器一般包括阶码运算部件和尾数运算部件两个部分。
阶码运算是一个定点整数运算部件;
尾数运算是一个定点小数运算部件。
Intel 80287支持80位浮点数运算,其中阶码16位,尾数64位。关键运算部件有:
指数模块:通过指数总线从寄存器中获得运算的阶码,运算结果通过指数总线送回寄存器栈。
算术运算部件:负责尾数的四则运算。
可编程移位器:尾数的移位。
返回
通过在数据位中加入一些冗余位,从而达到在数据传输过程中能自动发现错误(检错码)和校正错误(纠错码)。
常用的数据校验码有:
奇偶校验码
Hamming校验码
CRC(循环冗余校验)码
检错和纠错实现原理
通过函数f 对数据进行计算,以产生一种代码,代码和数据都被存储,因此如果原来数据字长为M位,校验码长为K位,则实际存储的字长应该是M+K位。
当原先存储的字读出时,这个代码用于检错和纠错,在M位数据中产生一组新的K位代码,与取出的代码进行比较:
结果一致,无差错,取出的数据位传送出去;
检测到差错,并可以纠正,数据位和纠错位一起送入纠正器,然后产生一组正确的M位数据位;
检测到差错,但无法纠正,报告出错。
检错和纠错
f
存储器
比较
f
纠正器
数据输出
出错信号
数据输入
M
M
M
K
K
K
奇偶校验码
编码方法:
不管数据位长度多少,校验位只有一位。
数据位和校验位一起所含“1”的个数,只能是奇数,称为奇校验。
数据位和校验位一起所含“1”的个数,只能是偶数,称为偶校验。
例:数据奇校验的编码偶校验的编码
00000000 100000000 000000000
01010100 001010100 101010100
01111111 001111111 101111111
奇偶校验码
校验位的值取0还是1,是由数据位中1的个数决定的。
这种方法只能发现一位错(或奇数个位错),但不能确定是哪一位错,也不能发现偶数个位错。但是,一位出错的几率比多位同时出错的几率高得多,因此该方法还是有很好的实用价值。
奇偶校验码常用于存储器读写检查,或ASCII字符传送过程中的检查。
。
海明校验码
海明校验码不仅能发现出错,而且还能指出哪一位出错。
设有r位校验位,则共有0到2r-1个共2r个组合。若用0表示无差错,则剩余2r-1个值表示有差错,并指出错在第几位。由于差错可能发生在k个数据位中或r个校验位中,因此有:
2r–1 ≥ r+k