1、校验码
- 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换位B:11,码距是2.一般来说码距越大,越利于纠错和检错。
- 奇偶校验码:在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2.例如:
- 奇校验:编码中,含有奇数个1,发送给接收方,接受方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。
- 偶校验:同理,只要编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。
2、循环冗余校验码CRC
- CRC只能检查,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为检验位加在原始报文之后,作为发送数据发给接收方,其编码格式为:
- 由此可知,CRC由两部分组成,左边为信息吗(原始数据),右边为校验码。校验码是由信息码产生的,校验码位数越长,校验能力越强。请CRC编码时,采用的是模2运算(按位运算,不发生借位和进位)。
3、海明校验码
- 海明码:本质也是利用奇偶性来检错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验码,通过扩大码距实现检错和纠错。
- 设数据位是n位,校验位是k位,则n和k必须满足一下关系:2^k-1>=n+k
4、计算机体系结构分类
Flynn分类法:
体系结构类型 | 结构 | 关键特性 | 代表 |
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存模块:一个 |
单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块:多个 |
各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理器 超级向量处理机 |
多指令流单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 |
被知名不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据MIMD | 控制部分:多个 处理器:多个 主存模块:多个 |
能够iu实现作业、任务、指令等各级全面并行 | 多处理机系统多计算机 |
5、计算机指令
- 计算机指令的组成:一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
- 在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
- 计算机指令执行过程:取指令一一分析指令一一执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
6、指令寻址方式
- 指令寻址方式
- 顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。
- 跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也不许相应改变,以便及时跟踪新的指令地址。
- 指令操作数的寻址方式
- 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
- 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。
- 间接寻址方式:指令地址码字段所指向的存储单元中存储的时操作数的地址。
- 寄存器寻址方式:指令中的地址码是寄存器的编号。
7、指令系统
- CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;
- RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)。
- 具体区别
指令系统类型 指令 寻址方式 实现方式 其他 CISC(复杂) 数量多,使用 频率差别大,可变长格式 支持多种 微程序控制技术(微码) 研制周期长 RISC(精简) 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 支持方式少 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线 优化编译,有效支持高级语言
- 具体区别
8、指令流水线
- 指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段,如下图所示:
9、流水线相关计算
- 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。
- 流水线执行时间:1条指令总执行时间+(总执行条数-1)*流水线周期。
- 流水线吞吐率:总指令条数/流水线执行时间
- 流水线加速比:不使用流水线总执行时间/使用流水线总执行时间。
- 超标量流水线技术:常规流水线是度为1的,即每个流水线阶段只执行一个部分,当度大于1时,就是超标量技术,当度为3时,相当于3条流水线并行执行,即取指、分析、执行每个阶段都同时处理3条指令,因此,当题目提到度的概念时,计算时需要将:指令条数=指令条数/度。然后再套流水线执行时间的公式。