计算机硬件组成 - 编码 - 浮点数 - 校检码 - 体系结构 - 指令 - 流水线

185 阅读7分钟

1、计算机基本硬件系统组成:运算器、控制器、存储器、输入设备、输出设备

运算器、控制器组成中央处理单元(cpu)

存储器是计算机的记忆设备,分为内存存储器和外部存储器,前者速度快容量小,后者相反

输入设备和输出设备称为外部设备,输入设备用于输入原始数据和各种指令,输出设备用于输出计算结果

2、cpu功能

程序控制:通过执行指令来控制程序操作顺序

操作控制:将操作信号传递给外部设备

时间控制:严格控制指令执行时间以及所需时间段和时间顺序

数据处理:处理算术、逻辑的运算

注:cpu还需要对内部中断、异常作出响应,并作出相应处理
    寄存器也属于存储器(容量更小,速度更快)

3、cpu组成

cpu组成由运算器、控制器、寄存器组和内部总线等部件组成

运算器:处理算术、逻辑运算

运算器包括:
算术逻辑单元ALU(实现对算术、逻辑的运算)
累加寄存器AC(原数据和运算结果存放区)
数据缓冲寄存器DR(暂时存放内存中的指令或者数据)
状态条件寄存器PSW(保存指令运行结果的条件码内容)

控制器:控制整个cpu进行工作

控制器包括:
指令寄存器IR(暂存cpu执行指令)
程序计数器PC(存放下一条执行指令所在的地址)
地址寄存器AR(保存当前cpu所访问的内存地址)
指令译码器ID(分析指令操作码)

4、数据表示

进制的表示:十六进制(0x150、150H),二进制(0b150,150)

源码:

反码:

补码:

移码:用作浮点运算的阶码,无论正数、负数都是该原码的补码的首位数取反得到移码。-45对应的移码为01010011

浮点数:

5、校检码

码距:在两个编码中,从A码改变到B码所需要改变的位数,称为码距,如A(11)->B(00),码距为2

奇偶校验码:在编码后加一位,使得编码中1的个数达到奇(偶)数个。

奇校检码:编码中含有奇数个1,发送给接收方,接收方接收后,计算是否有奇数个1,如果有则校验正确,否则错误

偶校检码:同理

原理(奇):1010 -> 10101 -发送> 计算1的个数为奇数 -> 无误 

奇偶校验码只能检一位错,并且不能纠错

CRC校检码(Cyclic Redundancy Check)(又称循环冗余校验码):通过确定一组算法规则进行运算,最终在原数据尾部添加校验码,发送给接收方,接收方通过相同的规则进行校验。

步骤:

1、确定原数据,如1101

2、确定规则 Q(x),如 x^3 + x + 1

3、求Q(x)的阶,如2Q(x)的阶为3

4、确定被除数,在原数据后补n个0,n为Q(x)的阶数,即被除数为1101000

5、确定除数,依次判断Q(x)的0次幂项、1次幂项、2次幂项...t次幂项(t为Q的最高次幂)是否存在,存在为
    1,不存在为0Q0次幂项有,即11次幂项有,即12次幂项没有,即03次幂项有,即1),通过Q(x)
    确定除数为1011

6、通过模二除法算出45的余数,最终得到1

7、余数补充,因为Q的最高阶是3,所以6中的余数应该写成 001 (填充到n位)

8、补充原数据,将余数补充到原数据中,即 1101001

注意:CRC能检错,但是不能纠错

海明码校验:海明码跟前面的校验码不同之处在于,前面的校验码是添加在原数据尾部,而海明码是在数据中穿插校验码,具有检错和纠错能力。海明码是在 2^0 , 2^1 , 2^2 , ... , 2^n 位置中插入校验码,在其他位置中插入原数据内容

步骤:(以0110为例)

1、列表格,3行n列,第一行索引值,第二行原数据存放区,第三行校验码存放区

2、存放原数据,在第二行中非 2^0,2^1,2^2,...,2^n 位置存放原数据

3、计算校验码,如2^2位置存放校验码,可以知道 2^0,2^1,2^2,...,2^n 中5、6、7位置都包含2^2,所以这三个位置的原码进行异或运算即可。
    
注意:海明码能检错和纠错

附图:(图为偶校验,如果为奇校验的话,校验码应该算出来后取反,0取1,1取0)

066dd06852e3a6b950a952c6b39c6cb.jpg

6、体系结构分类

按处理机数量分类:单处理系统、并行处理系统、分布式处理系统

Flynn分类法:分类有指令流和数据流两个因素。指令流由控制部分处理,数据流由处理器处理,主存模块用来存储指令流或者数据流的。

Flynn分类:

    单指令单数据(SISD):一个控制部分,一个处理器,一个主存模块
    
    单指令多数据(SIMD):一个控制部分,多个处理器,多个主存模块
    
    多指令单数据(MISD):多个控制部分,一个处理器,多个主存模块(不实际)
    
    多指令多数据(MIMD):多个控制部分,多个处理器,多个注册模块

7、指令系统

指令组成:操作码、操作数(地址码)

操作码:需要执行的操作
操作数:执行操作所需要的数据或数据所存在的地址

指令执行过程:取指令-分析指令-执行指令

指令寻址方式:顺序寻址方式、跳跃寻址方式

顺序寻址:是指一条指令接着一条指令顺序执行
跳跃寻址:是指新的地址码由当前指令给出,跳跃后在新的指令开始顺序执行(顺序执行期间,程序计数器会改变,以便记录)

指令操作数的寻址方式:立即寻址方式、直接寻址方式、间接寻址方式

立即寻址方式:指令的地址码存的是数据本身
直接寻址方式:指令的地址码存的是数据在存储单元中的地址
间接寻址方式:指令的地址码存的是数据在存储单元中的地址所在的地址

指令体系分类:复杂指令系统(CISC)、精简指令系统(RISC)

复杂指令系统(CISC):兼容性强、指令多、长度可变;
精简指令系统(RISC):指令少、使用频率接近、主要依靠硬件实现

指令流水线原理:将指令分为不同段,每一段由不同部分去处理

如果不使用指令流水线,则每次执行指令都是 取指令-分析指令-执行指令 ,之后再执行下一条指令的 取指令-分析指令-执行指令;
指令流水线,可以将执行的步骤拆分多段出来,每个部分去处理每段步骤,如果该部分处理完上一条指令的步骤段,就会继续执行下一个步骤段

RISC中的流水线技术:超流水线技术、超标量技术、超长指令字技术

超流水线技术:以时间换空间
超标量技术:以空间换时间(硬件)
超长指令字技术:以空间换时间(软件)

流水线时间计算:

流水线周期:指令分为不同执行段,执行时间最长的为流水线周期
流水线执行时间:1条指令(多个执行段)总共执行时间 + (总指令条数 - 1)* 流水线周期
流水线吞吐率计算:单位时间内执行的指令条数,即 指令条数 / 流水线执行时间
流水线加速比计算:不使用流水线执行时间 / 使用流水线执行时间 ,结果越大,加速比越高