目录
理解微型计算机的工作原理才能更好的理解计算机、芯片、单片机等等的工作机理。本文从微机原理出发,整理相关知识并梳理,加深对计算机的理解。
计算机由集成电路构成,可以说计算机是跑在芯片上的,芯片包括CPU芯片例如Intel生产的芯片,以及外设更多的单片机芯片如ARM等,后者是将CPU和一些存储器和外设集成在一个芯片上。所有的芯片均是由基本的门电路构成的,而门电路可以由硅单质掺杂形成的二极管和三级管构成,因此芯片通电后才能实现电平逻辑的变化。
上面大概梳理了一下不同器件的组成关系,可以看出芯片最终是由无数个门电路和相连的导线构成的,这也是为什么今天的芯片设计相关的视频介绍中往往以P型或N型半导体的构造为起点,由PN结构成的二极管和三极管组成的门电路是这个庞大工程的起点。
逻辑电路是集成电路的最小单元,由3种基本门电路组成,
可进行加减法运算和逻辑运算的单元,计算机程序可以认为是程序和数据的组合,ALU即负责执行程序运算逻辑
JK触发器在JK均为低时
寄存器包括累加器,缓存器,计数器,可以知道用于缓存数据的寄存器由多个触发器连接而成,而每个触发器又是由多个门电路构成。
三态输出电路:为了能够使用一组数据线(数据线条数取决于寄存器位数)便可以使任意两个寄存器相连
E | A | B |
---|---|---|
0 | 1 | 高阻 |
0 | 0 | 高阻 |
1 | 1 | 1 |
1 | 0 | 0 |
根据寄存器位数可以得到总线的位数,同时还需要总线控制字CON确定数据的流向(从A寄存器到B寄存器还是从B寄存器到A寄存器),每次控制字中只有两位为高,其余均为低。
该计算机实现一个简单的功能,计算A和B的加减法后停止。
虚线框内可以认为是计算机的CPU,MAR和PROM构成存储器,O和D构成外设,将这些电路集成到一个芯片即为单片机。
PROM为8位,16个单元,即16个字节
CON总线控制字共12位,PROM存8位的指令字,经IR通过总线W取出后取高4位为指令,低4位为地址
操作码的定义与xx有关
程序设计:
将PROM前8个字节给程序,后8个字节给数据,可知这个计算机只能执行8条指令以内的操作,操作的数据只有8个字节
假设执行的操作为(R9表示PROM第9个字节,RA等以此类推):
LDA R9
ADD RA
ADD RB
ADD RC
SUB RD
OUT
HLT
翻译为目的程序:
;PROGRAM:16+20+24+28-32
0000 1001
0001 1010
0001 1011
0001 1100
0010 1101
1110 0000
1111 0000
0000 0000
;DATA
0001 0000;16
0001 0100;20
0001 1000;24
0001 1100;28
0010 0000;32
0000 0000
0000 0000
0000 0000
注意,这里只是将汇编翻译为操作码
假设环形计数器的位数是6位,则一个固定周期的CPU在可分为3个机器节拍的取指周期和3个节拍的执行周期,即一条指令的执行占用6个机器节拍,6个最小的时钟。不同的CPU在指令节拍个数上有所不同
以LDA R9为例,LDA的操作码被定义为0000,而将0000翻译为CON的控制字的逻辑实现则需要指令译码器。译码器将操作码翻译为指令动作,在控制部件中,一个指令动作相当于一条信号线,假设一个CPU支持100条指令,则相当于操作码需要8位,输出100条信号线,再将这100条信号线与CON字映射起来:
这个过程中,操作码首先经过译码器电路翻译出执行的指令动作信号线,指令动作与一组CON控制字对应(上面的例子中LDA对应了3条CON),控制矩阵电路将RC和指令动作组合成一系列总线控制字,实现程序执行。
计算机的功能取决于CPU部分,而CPU部分取决于控制器的功能
原文:https://www.cnblogs.com/RegressionWorldLine/p/11748452.html