第三章 计算机核心部件及其 工作原理
第一节 中央处理器(CPU)
冯•诺伊曼计算机的特点 冯•诺伊曼计算机的特点 计算机由运算器、存储器、控制器和输入/输出设备组成 指令和数据一起以同等地位存放于存储器内,并可按地址访问 指令和数据均用二进制代码表示 指令由操作码和地址码组成,操作码用于表示操作的性质,地址码用来表示操作数在存储器中的位置
冯•诺伊曼计算机的特点 指令在存储器内按顺序存放 机器以运算器为中心,输入输出设备与存储器间的数据传送都通过运算器来完成。
典型的冯•诺伊曼计算机结构框图 存储器 输入设备 运算器 输出设备 控制器 典型的冯•诺伊曼计算机结构框图
冯•诺伊曼计算机结构的演化 控制部件多样化 现代计算机系统采用了总线结构 总线:连接计算机各部件的一组公共信号线,它是计算机中传送信号代码的公共通道。 内部总线:把微处理机内部各个逻辑功能单元互相连接起来的线路 外部总线:把计算机各个功能部件互相连接起来的总线 数据总线、控制总线、地址总线
数据总线 地址总线 控制总线 实现CPU、存储器和输入输出设备三者之间的数据交换 双向总线 用来输出指定的存储器或I/O设备地址的总线 单向总线 地址总线的数目决定了所能访问的存储单元的数目 控制总线
三态门缓冲器 输入 输出 启动/禁止 控制端 输入 输出 1 高阻抗
1 D3 D2 D1 D0 来自CPU 来自存储器 C1 C2
存储器成为计算机的中心 控制器 输入设备 存储器 输出设备 运算器 以存储器为中心的计算机结构框图
存储器读操作 地 址 译 码 器 将数据传送给CPU 来自CPU的地址寄存器 00010000 00000010 ……………… 控制
输入/输出系统的功能加强 采用了中断技术、DMA的方式的高速总线技术
指令系统 基本概念 指令:计算机执行某种操作的命令 指令系统:计算机各种操作的集合 指令系统是完备的 指令系统支持最高效率的执行 指令编码是合理的 指令系统须采取系列设计
指令字长和指令格式 机器字长:计算机能直接处理的二进制数据的位数 指令字长:指令中包含的二进制代码的位数。 操作码 操作数/操作数地址 单字长指令:指令字长和机器字长相等 双子长指令:指令子长度是机器子长的两倍 指令格式:由操作码和操作数组成 操作码 操作数/操作数地址
操作码:决定了操作的类型 操作(助记符) 操作码编码(二进制) 加法 000 减法 001 乘法 010 除法 011 逻辑与 100 取数 101 存数 110 停机 111
操作数码 无操作数指令 由操作数指令 操作码 操作码 操作数1/操作数地址1 …… 操作数n/操作数地址n
计算机的工作过程(简要介绍) 计算机的工作过程(简要介绍) 例:计算 ax2+bx+c 化简(ax+b)*x+c 运算步骤: 乘以a,得ax,存于运算器中 加b,得ax+b,存于运算器中 乘以x,得(ax+b)x,存于运算器中 加c,得(ax+b)x+c,存于运算器中
计算机的工作过程(简要介绍) 设某机器的指令字长为16位,其中操作码占6位,地址码占10位,如下图所示 操作码 操作数 6位 10位
指 令 注释 操作码 地址 000001 0000001000 取x送至ACC 1 000100 0000001001 乘a得ax-〉ACC 指令和数据存于主存单元的地址 指 令 注释 操作码 地址 000001 0000001000 取x送至ACC 1 000100 0000001001 乘a得ax-〉ACC 2 000011 0000001010 加b得ax+b->ACC 3 乘x得(ax+b)x->A 4 0000001011 加c得(ax+b)x+c- 5 000010 0000001100 存数 6 000101 打印 7 000110 停机 8 x 9 a 10 b 11 c 12
使用系统总线的CPU CPU ALU 寄存器 控制总线 数据总线 地址总线 中断系统 CU 使用系统总线的CPU
CPU的寄存器 CPU的寄存器 用户可见的寄存器 通用寄存器 数据寄存器 地址寄存器 条件代码寄存器
CPU的寄存器 控制和状态寄存器 MAR 存储器地址寄存器 MDR 存储器数据寄存器 PC 程序计数器 IR 指令寄存器
通用寄存器 指针和变址 8086微处理器寄存器的组织 段 程序状态 AX BX CX DX SP BP SI DI CS DS SS ES IP F
细化的计算机组成框图 I/O ACC MQ 存储体 CU 控制单元 IR ALU PC MDR X 运算器 控制器 MAR CPU 主存储器 … ACC MQ 存储体 CU 控制单元 IR ALU PC MDR X 运算器 控制器 MAR CPU 主存储器
CPU的功能(控制器的功能) CPU的功能(控制器的功能) 取指令 分析指令 执行指令
CPU的控制单元 CPU的控制单元 指令周期的基本概念 CPU每取出并执行一条指令所需的全部时间叫指令周期 取指阶段 执行阶段 取指周期 (取指、分析) 执行周期 执行指令 指令周期
CPU的控制单元 指令周期的比较 取指周期 无条件转移指令 JMP X 指令周期 取指周期 执行周期 加法指令 指令周期 取指周期 执行周期 乘法指令 指令周期
CPU的控制单元 机器周期:完成一个基本的操作如读或写等所需要的时间 时钟周期(节拍、状态) 在一个机器周期里可以完成若干个微操作,每个微操作都需要一定的时间,可以用时钟信号来控制产生每一个微操作命令。这样一个机器周期内就包含了若干个时钟周期,又称节拍或状态。
CPU的控制单元 Φ 指 令 周 期 (包括1~n个机器周期) 机 器 周 期 M1 机 器 周 期 M2 机器周期T T1 T2 … Tn
CPU的控制单元 微操作信号的产生电路设计方法 数字逻辑设计方法 微程序设计方法
流水线技术 如何提高整机的处理能力 提高器件的性能 改进系统的结构,开发系统的并行性
流水线技术 流水线结构 取指令,微处理器从高速缓存或内存中取一条指令 指令译码,分析指令 操作数地址生成,针对访存指令,要访问存储器中的操作数,需形成操作数的地址 取操作数,针对形成的存储器的地址,指令取操作数 执行指令,由ALU执行指令规定的操作
流水线技术 写回运算结果,最后运算结果存放至某一内存单元或某一通用寄存器 修改指令指针,指向下一条指令
流水线技术 取指令1 执行指令1 取指令2 执行指令2 …… CPU 总线 时间 指令的串行执行 取指1 执行1 写数1 取指2 执行2 取指3 总线 忙 忙 忙 忙 时间 总线的使用情况
流水线技术 取指令1 执行指令1 取指令2 执行指令2 取指令3 执行指令3 指令的二级流水
流水线技术 二级流水不能使执行效率加倍 指令的执行时间一般大于取指时间,因此,取指阶段可能要等待一段时间。 遇到转移指令,下一条指令是不可知的,因为必须要等到执行阶段结束之后,才能知道条件是否成立,从而决定下一条指令的地址,造成了时间上的浪费。
流水线技术 1 2 3 4 5 6 7 8 指令1 FI DI CO FO EI WO 指令2 指令3
流水线技术 流水线种类 指令流水线结构 取 指 令 指 令 译 码 地 址 形 成 取 操 作 数 操 作 执 行 写 操 作 数 改指令指针
流水线技术 数据(运算)流水线 尾 数 相 加 规 格 化 锁存器 对 阶 锁存器 锁存器
流水线技术 影响流水线性能的因素 访存冲突 相关问题 控制相关 数据相关
流水线技术 流水线中的多发技术 超标量技术(Super Scalar) 超流水线技术(Super pipe lining) 每个时钟周期可同时并发多条指令,即以并行操作的方式将两条或两条以上的指令编译并执行 超流水线技术(Super pipe lining) 超长指令字技术(VLIW) 假设一条指令分为四个阶段: 取指(FI)、译码(ID)、执行(EI)、回写(WR)
流水线技术 RISC技术 CISC RISC P=N*C*S P:计算机执行程序所需要的时间 N:高级语言程序编译后在机器上运行的机器指令数
流水线技术 RISC与CISC的统计比较 N C S RISC 1.2~1.4 1.3~1.7 <1 CISC 1 4~10