3.1 CPU内部结构与时钟与指令

本文详细介绍了CPU的内部结构,包括内部数据总线、CPU执行流程、指令相关部分如取指令、译码和执行。通过手动模拟CPU操作,阐述了内存地址寄存器、内存缓存寄存器和指令寄存器的作用,以及它们如何协同工作以完成指令执行。同时,文章强调了时钟在同步整个系统中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU内部结构

内部数据总线

  • 使用到的有8位寄存器(用于输入),4位寄存器(用于内存地址,只能寻址16个内存单元[2^4]),简化版加法ALU
  • 寄存器带了时钟, 由时钟统一控制操作
  • ALU不需要时钟, 输入端的寄存器由时钟控制
  • 总线就是一根根传送电信号的线 -_-
  • 内部的意思就是封装在CPU内部的 -_-
  • 外部总线就是主板上的 _
  • 反正总线,就是一堆线
  • 但在任意时刻,只能由一个部件对其读/写,因此下面的所有部件都增加了 可写(WriteEnable) / 可读 (OutEnable,也可以叫可输出)
  • 在下面的图中有数据总线和地址总线,见名知意, 数据总线传送数据, 地址总线传送地址 ;- )
  • 注意,数据包含指令,都是二进制, 是数据还是指令由CPU本身去识别(x86,arm …) 下面的汇编指令是我自己模拟的

下面有CPU整个执行流程,由于没有控制单元,因此纯手工操作

一些CPU内部需要用到的部件

简化版加法ALU

  • 图上的C是进位,目前恒为零即可
    在这里插入图片描述

4位寄存器,用于内存地址

在这里插入图片描述

8位寄存器,用于输入

在这里插入图片描述

总线图

  • 时钟使用按钮代替
  • 时钟用于让所有的电路自动工作,每触发一次,所有的相连的寄存器就工作一次
  • 总的来说时钟是一切电路自动化工作的源头
  • 古代碾磨需要一头牛来转圈,牛跑的越快碾磨速度越快, 振荡器速度越快,频率越高
  • 而时钟的取名我猜就是类似 , 下一时刻时钟吼了一句"大家一起干活!"(脉冲信号),让所有的相连的电路一起干活
  • 时钟的另一个作用是编程中的术语来说就是同步
  • 例如:
  • mov 寄存器B,0x99;
  • mov 寄存器A, 寄存器B
  • 寄存器B中的值有没有准备好? 什么时候能执行mov操作?
  • ip/Eip什么时候往下移动?
  • 一旦有了时钟,就容易同步操作

在这里插入图片描述

从内存中读取指令

  • 为简化汇编指令, 这里只使用4条指令来演示, 自己模拟的汇编指令
  • 汇编指令一般都有 操作码 ,操作数 2个部分组成
  • 操作码对应要做什么, 操作数对应要对这个数做什么操作,在这里操作数只能对内存地址寻址
操作码 操作码二进制 解释
MOV_A 1000 复制数据到寄存器A
MOV_B 1001 复制数据到寄存器B
MOV_TO_ADDR 1010 复制寄存器C的数据到内存地址
ADD 1011 把寄存器A,B相加存放到寄存器C

指令相关

  • 为简化指令,每个操作码固定占用4位,操作数也占用4位, 一个字节即可存放
  • 操作码放高4位,操作数放低4位
  • 当前的寻址寄存器是4位,只能寻址16个地址线,因此对应操作数来说正好
  • 注意这里的操作数只能是内存地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值