简易计算机的搭建

发布时间 2023-12-07 10:51:29作者: 持枢丶

简易计算机的搭建

1、一些无关紧要的前置知识

​ 现代计算机类设备的主流架构一般有两种:一为冯诺依曼体系架构;一为哈弗架构。

​ 主流计算机采用的架构一般为冯诺依曼体系,是将程序和数据放在一起存储的架构;

​ 单片机设备一般采用哈弗架构,是将程序与数据分开存储的一种架构。

以下基本都是有关冯诺依曼架构的知识

​ 冯诺依曼架构提出计算机由四个子系统构成:存储器(寄存器、内存、硬盘)、计算单元(ALU)、控制单元(进行协调各个单元)、输入输出单元(外设)。

​ CPU(中央处理器)是由寄存器计算单元控制单元组成。

​ 一般64位机的系统为64bit.

​ CPU和内存、硬盘、外设等非CPU内部组件连接的中介为总线。总线分为 数据总线(两端组件可双向通信)、地址总线(单向)、控制总线(单向,用于传送指令)。

​ 一个机器周期:取指令 ----> 译码 ----> 执行。有流水线时,可以相较来说同时进行,比如可在译码时进行下一个周期的取指令。

​ CPU指令架构分为 CISC复杂指令集(一般 x86CPU 电脑)和 RISC精简指令集(一般 ARM的CPU 手机、单片机)。

2、复用器(选择器)

​ 复用器的作用是选择使用哪一个组件输入进来的数。

​ 最简单的复用器是输入两个二进制位,输出指定的一个。这个功能可以使用一个单刀双掷的继位器实现,控制继位器的触点选择和继位器的高低电平实现选择输出。

​ 多位的复用器可以使用几个单个复用组成。一个复用器分高低电平,低走下一层第一个复用器,高走下一层第二个复用器,如此反复可实现多位复用器。

​ 输入n个二进制位和一个选择数,选择数可以是十进制,十进制0即走第零个,以此类推。也可以将十进制拆成二进制来选择,拆成二进制时,把整个复用器看作好几个组合成的,最高位走最后一个小的二选一复用器进行次层两边的选择,依此类推。

n位复用器即2^n个输入和一个位数选择和一个输出

3、简易的计算单元(ALU)

​ 由加法器、减法器(实际计算机中没使用,这里直接用了)、与、或和两个复用器及一些输入输出构成。输入为两个操作数、一个进位数、一个选择数(选择输出哪个运算结果。截取一下这个选择数的低一位,作为加法器和减法器的进位/借位选择,不截取的话复位器要选择位数多的,造成浪费。)。输出为一个结果和一个进位/借位。

我们做的ALU会把所有运算都做一遍输出选择的运算,有没有办法让它只作我们选择的运算?

4、PC计数器

​ 一个加法器和一个寄存器和几个输入输出组成。寄存器的输出传给加法器的一个操作数,同时寄存器的输出作为计数器的结果,第一次寄存器的输出为0,所以计数器从0开始计数;加法器的另一个操作数为1,进位器0;加法器的输出有两个,一个相加的结果,放进寄存器的输入,进行下次加一,另一个输出为进位,溢出后,相加结果变为零,进行第二轮的计数。寄存器有一个使能开关,和一个时钟。一次时钟周期进行一次加一计数。

5、实现一块内存

​ 使用分线器和n个寄存器即可实现一个n位寻址的存储,具体细节略。

6、带内存和寄存器的ALU

​ 只说下原理。可以对PC计数器操作实现从内存的不同地址读出数据(可以通过输入往内存中输入数据),读出数据后通过ALU与寄存器中的数相加(寄存器中初始为0),即第一次相加得到第一个数放到寄存器中,如此循环,可以实现从内存中不断读数并不断相加。

todo