1.2:从芯片说起~芯片是如何工作的

您所在的位置:网站首页 ip6525t芯片的工作原理 1.2:从芯片说起~芯片是如何工作的

1.2:从芯片说起~芯片是如何工作的

2024-07-11 00:28| 来源: 网络整理| 查看: 265

前面一小节介绍了芯片是什么。我们虽然知道了芯片是个什么东西,但是仍然不知道芯片是如何工作的。我们还是要了解芯片的具体工作原理,才能真正理解编译器设计机器码、中间代码的原因。下面我们就从学习一个最简单的8位CPU的设计原理,来搞懂芯片到底是如何工作的。当前CPU设计已经很复杂了,原理也和本文的内容有很大差异,但是万变不离其宗,最基本的原理还是一致的。

注:本小节内容主要是对《But How Do It Know? - The Basic Principles of Computers for Everyone》一书的理解总结,这本书目前还没人翻译。建议英文条件好的同学都去买英文原本看下,或者网上也有电子书。

芯片内部什么样子 芯片电路图

学过数字电路的同学是不是感觉上面的电路图并不复杂?目测就一百多个门电路和封装好的译码器、移位器等拼一块儿竟然就成了一个8位CPU芯片。最右边是输入机器码的地方。红色是每个时钟电路的通路。

记住这一点:CPU芯片本质上只是在不断的重复取指令、计算、输出结果,而取值、计算、输出本质上就是芯片内部的不同通路。而不同通路的选择以及值的传递靠的是门电路。下面我们就来从头开始DIY自己的8位CPU芯片,借此理解芯片的工作原理。

一点背景知识

开始动手DIY芯片之前,我们要了解一下基础的数字电路。这些并不复杂,只要你懂基本的逻辑运算就可以。门电路只不过换了一种符号体系来表示数学运算。

与非门

c = !(a & b),其中c是输出,a、b是输入。这个计算公式表达的含义就是将a、b做与运算后再取非。注意:a和b都是一根线,换句话说都是一个bit。对应数字电路的与非门:

与非门

真值表

请各位同学记住:这是这个芯片里面最重要的基本电路。

非门

c = !(a & a)。与非门大家看懂了,这个就没啥好说的了。纯粹就是拿与非门实现了非门电路

非门电路与真值表

1bit存储单元

来了,重点来了,我们开始用基本的门电路搭建一bit的存储单元。数字电路有很多的稳定的状态(简称稳态),有的稳态输出0,有的稳态输出1。输出从0切换为1,或者从1切换为0,都只不过是外部条件触发从一个问题切换到另一个稳态。

废话不再多说,上电路图:

1bit存储电路

我们来分析下电路的输出:

1.i=0 s=1。此时a=1,b=0,c=1,o=0。

2.i=1 s=1。此时a=0,b=1,o=1,c=0。

规律1:当s=1时,o的值和i保持一致。i就是输入,o就是输出。

3.i=0, s=0。此时a=1,b=1,o和c的值既可以是0,也可以是1,或者说保持原有值。

4.i=1, s=0。此时a=1,b=1,o和c的值既可以是0,也可以是1,或者说保持原有值。

规律2:当s=0时,o的值维持自己的值不变,无论i怎么变化。

看到没!!!规律1+规律2是不是造就了一个可以保存输入值的电路,这就是1bit内存单元。支持写入,支持读取。

8bit存储单元

1bit我们做好了,8bit就是集合8个1bit单元。用一个开关位控制(如果多个开关位也可以,那就表示CPU支持位操作指令)

8bit存储单元

总线

我们先来介绍一个新的电路,由多个与门电路组成。这个电路当e关闭时,无论i输入怎么变化,输出的值都是0。当e打开时,输出和输入保持一致。

使能电路

我们把这个电路和前一个电路串联起来,得到下面这个电路,这个就是我们后面要用到的8bit寄存器了。这个电路很重要,前面的B允许我们读取输入并保存起来(无论输入后面怎么变化)。后面的E允许我们该输出的时候才输出:

寄存器电路

再来加入一个关键概念总线

我们把8bit线的连接用“=”符号替换,这就是总线了。这里也能看出一个重要概念,总线其实是有位数的概念的。

符号简化后的总线

其他表示方法

译码器

再来最后一个译码器电路。其实就是将abc的值,翻译成具体的值。

译码器

好了,我们可以继续了。有了这些背景知识,你就可以做一个CPU了。下个小节我们正式开始



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3