• 个人理解的计算机以及指令的执行过程


    • 计算机CPU主要构成部分

        计算、控制、存储、总线四部分。计算单元一般叫ALU,负责执行运算。

        控制部分主要是指令控制器,负责指令的翻译和产生控信号。

        存储主要分为内存以及各种寄存器,内存用来存储指令和数据,寄存器则主要分程序计数、地址、指令、标志、求和等

                  所有部件之前的通过总线连接来读写数据,同一时刻仅有一个部件能输出数据到总线。

    • 计算机的本质

        读取指令并执行、可以保存信息,具备条件跳转指令。(图灵完备)

    •  一条指令(机器码)执行的过程

        预置条件: 指令被放置到内存的某个地址中,程序计数器设置为改内存地址。

                  一条的执行实质上是被分成一定数量微指令执行的,一个微指令对应一个时钟周期。

                  指令控制器获取到指令后,根据指令以及微指令的序列产生特定的控制信号,微指令执行到一定步数后,一条指令也就结束了。

        比如一条机器码为 1001 0015,其内存地址为0001,如果我们定义为该指令为将内存0010地址中的数据加载到A寄存器。假设程序计数器当前计数为0001,微指令的数量限制为5条,整个过程如下。

                  微指令计数为0时,指令控制器需要产生让程序计数器网总线输出0001,地址寄存器从总线读入的控制信号。(这样到下一步时,地址寄存器读入了地址0001)

                  微指令计数为1时,指令控制器需要产生让内存输出,指令寄存器读入的的信号,同时允许程序计数+1。(这样到下一步时,内存地址0001中的数据被读入到指令寄存器)

        前两步为取指操作,到第三步时,指令控制才获取到要执行的指令为1001 0015。

        微指令计数为2时,指令控制器需要产生让指令寄存器输出地址 0015,地址寄存器从总线读入的控制信号。(这样到下一步时,地址寄存器读入了地址0015)

        微指令计数为3时,指令控制器需要产生让指内存输出,A寄存器从总线读入的控制信号。(这样到下一步时,完成了将0015地址的数据读入到A寄存器的整个过程)

        此时虽然动作已经完成,但微指令数量限制为5,因此当微指令计数为4时,不需要产生任何控制信号,也就是不允许任何动作。

                  再往下时,微指令计数重置为0,由于之前程序计数器已经+1。这时将开始下一条指令的取值过程,一直继续下去直到执行停止指令。

     8位计算组成(参考自benblue 自制8位计算机)

  • 相关阅读:
    UVa 11991 Easy Problem from Rujia Liu?
    UVa 11995 I Can Guess the Data Structure!
    LA 3485 (积分 辛普森自适应法) Bridge
    LA 5009 (三分法求极值) Error Curves
    软帝学院:一万字的Java基础知识总结大全(实用)
    学java可以做些什么
    从零开始学习java一般需要多长时间?
    学习java需要英语很好吗?
    java的8种基本数据类型
    什么是java变量,java变量是什么
  • 原文地址:https://www.cnblogs.com/wp2ypy/p/13912481.html
Copyright © 2020-2023  润新知