zoukankan      html  css  js  c++  java
  • CPU结构与指令执行过程简介

    CPU(Central Processing Unit)是计算机中进行算术和逻辑计算处理指令的主要部件.

    CPU结构

    CPU由通用寄存器组,运算器,控制器和数据通路等部件组成.

    寄存器包括

    • 数据寄存器: AX,BX,CX,DX;

    • 指针与变址寄存器:SP, BP, SI,DI

    • 栈寄存器: CS,DS,SS,ES

    详情参见寄存器与寻址方式的介绍

    运算器主要是指算术逻辑单元(arithmetic and logic unit, ALU).

    上图所示的CPU采用单总线结构, ALU通过两个暂存器T,S与总线相连.

    控制器的主要组成部分是微命令形成电路, 以及3个控制寄存器和时序逻辑部件.

    • 程序状态字(Program Status Word,PSW): 存放结果状态和标志

    • 程序计数器(Program Counter,PC): 记录下一条指令的内存地址

    • 指令寄存器(Instruction Register,IR): 寄存正在执行的指令

    为了与系统总线交互设置单向地址寄存器AR和双向数据寄存器DR.

    CPU为了IO等功能还设置了外部中断INT,直接内存访问(Direct Memory Access,DMA)等部件.

    现代CPU通常还集成了高速缓存(Cache)和流水线等组件.

    CPU时钟

    时钟周期由时钟部件提供,是CPU中原子计时单位.

    一般把CPU对内存的一次访问当作一个机器周期.

    CPU执行一条指令的时间为一个指令周期,不同指令的指令周期不一样.

    指令执行过程

    机器指令: 是CPU能直接识别并执行的指令,为二进制编码的形式, 汇编指令是二进制机器指令的助记符.

    微指令: 在微程序控制的计算机中,微指令是同时发出的控制信号的组合.

    一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令.水平型微指令的一般格式为:
    控制字段 判别测试字段 下地址字段

    垂直型微指令的结构类似于机器指令的结构.它有操作码,在一条微指令中只有l-2个微操作命令,每条微指令的功能简单.

    微操作是CPU的原子操作,以一个寄存器的数据读写操作为标志.

    每一个微操作是控制器向相应部件发送控制信号(微命令)而触发的.

    一般在微操作的层面上研究指令的执行过程.

    一般机器指令执行过程分为取指令(Fetch Instruction), 取数据(Fetch Data), 执行(Execute)等操作

    FIC微操作

    PC->AR
    AR->MainMemory
    Read ;将Memory中的数据传到系统总线上
    PC+1
    M->DataBus
    DastaBus->DR
    DR->IR
    

    FDC微操作

    在进行取操作数之前先进行译码操作,首先根据16位指令编码的形式分析指令类型:

    • 双操作数指令: 0000 xxxx

    • 单操作数指令: 0000 1110 xxxx

    • 转移指令: 0000 1111 xxxx

    • 无操作数指令: 0000 1111 1111 xxxx

    EXEC微操作

    转移指令执行过程

    PC->ALU
    ADD PC Disp->T
    T->PC
    

    INC指令:

    ALU: S+1->T
    BX->MainMemory
    T->DB
    Write ;结果写入内存
    

    微程序控制器与硬布线控制器

    微程序控制器

    微程序控制器设计简单,规范化;功能可编程,成本低,错误少但是速度较慢.

    硬布线控制器

    硬布线控制器用与或逻辑阵列将微指令转换为控制信号,设计复杂,无法编程修改功能但是速度较快.

  • 相关阅读:
    Android之输入框光标和Hint的位置
    Android之TextView密码输入变星号时间
    Android之布局onClick属性写法规则
    Android对话框之dismiss和cancel和hide区别
    Android Studio开发第四篇版本管理Git(下)
    Android对话框之Context
    [知识库:python-tornado]异步调用中的上下文控制Tornado stack context
    在 CentOS 下手工安装 Docker v1.1x
    Docker: 如何修改 Docker 的镜像存储位置
    Docker学习记录3: 搭建 Private Registry
  • 原文地址:https://www.cnblogs.com/Finley/p/5641806.html
Copyright © 2011-2022 走看看