本系列文章仅作为我个人学习笔记的概要,所有资源来自慕课网,请勿用作商业用途,如需转载请注明出处。
往期文章链接。
计算机原理-计算机发展史简述
计算机原理-计算机的总线与IO设备
计算机原理-计算机的存储器
本文主要概述计算机组成中的计算机的CPU相关内容。
计算机的指令系统
机器指令的形式
机器指令主要由两部分组成:操作码、地址码
名称 | 概念 |
---|---|
操作码 | 操作码指明指令所要完成的操作 操作码的位数反映了机器的操作种类,比如操作码有8位,则共有$2^8=256$种操作 |
地址码 | 地址码直接给出操作数或者操作数地址 分三地址指令、二地址指令和一地址指令 |
三地址指令
三地址指令,通常会(addr1)OP(addr2)->(addr3),假设现在OP为加法操作,则addr1和addr2的加法操作后,存在地址三。
二地址指令
(addr1)OP(addr2)->(addr1)或(addr2)
一地址指令
(addr1)OP->(addr1)或(addr1)OP(ACC)->(addr1),可认为是对自己的操作,不如自增。
计算机中还有一种零地址指令,在机器指令中无地址码,比如空操作、停机操作、终断返回操作等。
机器指令的操作类型
操作类型 | 概念 |
---|---|
数据传输类型 | 寄存器之间、寄存器与存储单元、存储单元之间传送 数据读写、交换地址数据、清零置一等操作 |
算数逻辑操作 | 操作数之间的加减乘除运算 操作数的与或非等逻辑位运算 |
移位操作 | 数据左移(乘2)、数据右移(除2) 完成数据在算数逻辑单元的必要操作 |
控制指令 | 等待指令、停机指令、空操作指令、中断指令等 |
机器指令的寻址方式
机器指令的寻址方式,其实就是,指令如何找到相关的数据的。寻址方式有:指令寻址和数据寻址。
指令寻址
指令寻址包含:顺序寻址和跳跃寻址。
顺序寻址:就是从地址101开始顺次到105
跳跃寻址:到105的时候,JMP到102
数据寻址
数据寻址包括:立即寻址、直接寻址、间接寻址。
立即寻址
- 指令直接获得操作数
- 无需访问存储器
比如上图,操作数6就直接放在地址码中。
直接寻址
- 直接给出操作数在主存的地址
- 寻找操作数简单,无需计算数据地址
间接寻址
- 指令地址码给出的是操作数地址的地址
- 需要访问一次或多次主存来获取操作数
计算机的控制器
计算机的控制器是协调和控制计算机运行的设备
设备 | 功能 |
---|---|
程序计数器 | 序计数器用来存储下一条指令的地址 环从程序计数器中拿出指令 当指令被拿出时,指向下一条指令 |
时序发生器 | 电器工程领域,用于发送时序脉冲 CPU依据不同的时序脉冲有节奏的进行工作,可理解为时序发生器就是CPU的节拍器 |
指令译码器 | 指令译码器是控制器的主要部件之一 计算机指令由操作码和地址组成 翻译操作码对应的操作以及控制传输地址码对应的数据 |
指令寄存器 | 指令寄存器也是控制器的主要部件之一 从主存或高速缓存取计算机指令 |
主存地址寄存器 | 保存当前CPU正要访问的内存单元的地址 |
主存数据寄存器 | 保存当前CPU正要读或写的主存数据 |
通用寄存器 | 用于暂时存放或传送数据或指令 可保存ALU的运算中间结果 容量比一般专用寄存器要大 |
计算机的运算器
主要用于数据的运算和加工
设备 | 功能 |
---|---|
数据缓冲器 | 分为输入缓冲和输出缓冲 输入缓冲暂时存放外设送过来的数据 输出缓冲暂时存放送往外设的数据 |
ALU | 全名:算数逻辑单元,是运算器的主要组成 完成常见的位运算(左右移、与或非) 完成算数运算(加减乘除等) |
状态字寄存器 | 存放运算状态(条件码、进位、溢出、结果正负等) 存放运算控制信息(调试跟踪标记位、允许中断位等) |
通用寄存器 | 用于暂时存放或传送数据或指令 可保存ALU的运算中间结果 容量比一般专用寄存器要大 |
ALU结构如下,A、B为输入,F为输出,k是各种控制线。
计算机指令执行的过程
指令执行的过程
CPU的流水线设计
- 类似工厂的装配线
- 工厂的装配线使得多个产品可以同时被加工
- 在同一个时刻,不同产品均位于不同的加工阶段