近期使用sqlsugar的过程中遇到了线程相关的问题,在这里 浅谈一下【CPU】和内部的【寄存器】以及【内存】的关系
1、CPU的构造:
1-1、硬件方面看:CPU和内存是由许多晶体管组成的电子部件,称之为 IC 【Intergrated Circuit , 集成电路】
1-2、功能方面看:CPU的内部由寄存器+控制器+运算器+时钟 组成,它们之间由电流信号互相连通
1-2-1、寄存器:暂存指令、数据 等,可以看成是 内存的 一种,单个CPU内部 通常会有 几十上百个 寄存器
1-2-2、控制器:把内存上的指令、数据放入寄存器 和 从 寄存器拿到 指令执行结果 来控制 计算机
1-2-3、运算器:把内存 执行的结果 写入 寄存器
1-2-4、时钟:负责发出CPU开始计时的时钟信号
2、CPU和寄存器的关系?【CPU是寄存器的集合体】
2-1、寄存器【常见】的种类:
2-1-1、累加寄存器:存储执行运算的数据 和运算后的数据
2-1-2、标志寄存器:存储运算处理后的CPU的状态
2-1-3、程序寄存器:存储下一条指令所在的内存地址
2-1-4、指令寄存器:存储指令,CPU内部使用,程序员无法通过程序对该寄存器进行读写操作
2-1-5、栈寄存器:存储栈区域的起始地址
注意:前面五种寄存器在CPU中都只有一个,下面的三种寄存器 会存在多个
2-1-6、基址寄存器:存储数据内存的其实地址
2-1-7、变址寄存器:存储基址寄存器的相对地址
2-1-8、通用寄存器:存储任意数据
3、决定程序执行流程的程序计数器
地址0100是程序运行的开始位置,操作系统把程序从硬盘复制到内存,会将程序计数器 设定为0100,
然后程序开始运行,CPU每执行一个命令,程序计数器的数值就会自动+1,
CPU执行0100的地址的指令后,值就变成了0101,
CPU的控制器参照程序计数器的值,从内存中读取命令并执行,所以 程序计数器决定着程序的流程