CPU简介
计算机的心脏是中央处理单元,简称“CPU” 。这篇文章就利用前几篇文章中提到过的ALU,RAM,寄存器组件做一个CPU。
CPU负责运行程序,程序是由一个个操作组成的,这些操作叫做指令,因为他们“指示”计算机要做什么.
CPU能做什么
数学计算指令:让ALU去做加减乘除或者更复杂的数学计算
内存指令:CPU会和内存(RAM)通信,然后操作内存进行读写值
组装CPU零件
16位内存条
首先把上一篇文章的RAM拿出来(只有16个地址意味着是每个内存是16位的,每个地址又可以存8位可以得出是8个内存组装在一起的;因此这个RAM可以看到是由8个16位内存组成)。
内存条的寻址空间意味着每块内存可以可以存储的位数,内存条中的每个地址可以存多少位又是由多少个内存组成。
可以看到每个地址都存储着8位,在后面讲解指令表的时候要注意这八位数字的表示方式。前四位代表操作码,后四位代表的是地址OR寄存器
四个八位的寄存器
回顾一下:
上一篇文章中讲到八位的寄存器无非是把八个锁存器链接在一起,8个数据输入线,8个数据输出线,还有一个链接着所有锁存器中的允许写入线。总共17条线
寄存器的作用:用来临时存储数据和操作数据
指令表
数据是以二进制值存储在内存里,程序也可以在内存里。
指令:所有CPU支持的指令都会分配一个指令ID也就是表中的第一个INSTRUCTION中的LOAD_A
描述:就是描述这个指令ID是用来做什么操作的
4-BIT OPCODE(操作码):这个指令要做的操作,用4位的操作码表示
ADDRESS OR REGISTERS(地址OR 寄存器):也是4位,表示的是操作码需要使用的地址或者寄存器(比如加载一个内存里的值放入寄存器中就需要指定打开的是哪个内存地址)
在之前我们拿出RAM,可以看到每个地址都存储着8位数字,前四位代表的就是操作码,后四位代表的是地址OR寄存器 .
之后我们会模拟CPU的执行过程,要执行怎样的操作以及怎么样执行就是通过RAM中存储的这八位数字来运行的。
两个八位的寄存器
指令地址寄存器:追踪程序运行到哪里了。用于通过地址定位到内存条中的哪条指令,也就是存储当前指令的内存地址ADDRESS
指令寄存器:用于存储当前运行的指令DATA。通过指令地址寄存器读取RAM中指定ADDRESS的DATA然后并写入这个寄存器
我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表