如何一个构建CPU
ARM与嵌入式 2024-06-21

几乎每天都会开灯关灯,但这简单的开关却是组成CPU的基本单元。 分享本文,来看下怎么构建CPU这个非0即1的开关世界。


从晶体管到门电路


上世纪出现了晶体管这个小而伟大的发明。 有了晶体管,也就是开关,在此基础之上就可以搭建与、或、非门电路。 任何一个逻辑函数最终都可以通过与、或、非表达出来。也就是说,计算机最终可以通过简单的与、或、非门构造出来。


与或非门实现计算、存储电路


计算


以加法为例。 由于CPU只认知 0 和 1,也就是二进制,那么二进制的加法有哪些组合呢:

  • 0 + 0,结果为0,进位为0

  • 0 + 1,结果为1,进位为0

  • 1 + 0,结果为1,进位为0

  • 1 + 1,结果为0,进位为1

注意进位这一列,只有当两路输入的值都是 1 时,进位才是 1 ,这就是与门啊! 再看下结果一列,当两路输入的值不同时结果为1,输入结果相同时结果为0,这就是异或啊! 如下图,用一个与门和一个异或门就可以实现二进制加法:

 

上述电路就是一个简单的加法器,加法可以用与或非门实现。 除了加法,我们也可以根据需要将不同的算数运算设计出来,负责计算的电路有一个统称,这就是所谓的算术逻辑单元ALUarithmetic/logic unit),是CPU 中专门负责运算的模块,本质上和上面的简单电路没什么区别,就是更加复杂而已。 现在,通过与或非门的组合我们获得了计算能力,计算能力就是这么来的。 但,只有计算能力是不够的,电路需要能记得住信息。


存储


到目前为止,你设计的组合电路比如加法器天生是没有办法存储信息的,它们只是简单的根据输入得出输出,但输入输出总的有个地方能够保存起来,这就是需要电路能保存信息。 电路怎么能保存信息呢?有一天一位英国物理学家,给出了这样一个神奇电路:

 

这是两个与非门的组合。 比较独特的是该电路的组合方式,一个与非门的输出是另一个与非门的输入。该电路的组合方式会自带一种很有趣的特性,只要给S和R端输入1,那么这个电路只会有两种状态:

  • a端为1,此时B=0、A=1、b=0;

  • a端为0,此时B=1、A=0、b=1;

不会再有其他可能了,我们把a端的值作为电路的输出。 此后,你把S端置为0的话(R保持为1),那么电路的输出也就是a端永远为1,这时就可以说我们把1存到电路中了;而如果你把R段置为0的话(S保持为1),那么此时电路的输出也就是a端永远为0,此时我们可以说把0存到电路中了。 就这样,电路具备存储信息的能力了。 现在为保存信息你需要同时设置S端和R端,但你的输入是有一个(存储一个bit位嘛),为此你对电路进行了改造: 

这样,当D为0时,整个电路保存的就是0,否则就是1。


寄存器与内存


现在你的电路能存储一个比特位了,想存储多个比特位还不简单,复制粘贴就可以了: 

我们管这个组合电路就叫寄存器。 如果继续搭建更加复杂的电路以存储更多信息,同时提供寻址功能,就这样内存也诞生了。 寄存器及内存都离不开上文那个简单电路,只要通电,这个电路中就保存信息,但是断电后很显然保存的信息就丢掉了,现在你应该明白为什么内存在断电后就不能保存数据了吧。


构建CPU


硬件平台


通过上文讲解知道,电路可以实现数据计算、信息存储的通用功能。但现在还有一个问题,真的有必要把所有的逻辑运算都用与或非门实现出来吗?这显然是不现实的。 没有必要为所有的计算逻辑实现出对应的硬件,硬件只需要提供最通用的功能。 接下来看下硬件是怎么提供所谓的通用功能。 让我们来思考一个问题,CPU怎么能知道自己要去对两个数进行加法计算,以及哪两个数进行加法计算呢? 很显然,你得告诉CPU,该怎么告诉呢? CPU也需要机器指令告诉自己该接下来该干什么,而指令通过我们上述实现的组合电路来执行。
指令集
指令集告诉我们 CPU 可以执行什么指令,每种指令需要提供什么样的操作数。不同类型的CPU会有不同的指令集。 指令集中的指令其实都非常简单,画风大体上是这样的:
  • 从内存中读一个数,地址是abc

  • 对两个数加和

  • 检查一个数是不是大于6

  • 把这数存储到内存,地址是abc

  • 等等


看上去很像碎碎念有没有,这就是机器指令,我们用高级语言编写的程序,比如对一个数组进行排序,最终都会等价转换为上面的碎碎念指令,然后 CPU 一条一条的去执行。 接下来看一条可能的机器指令:


 


条指令占据16比特,其中前四个比特告诉CPU这是加法指令,这意味着该CPU的指令集中可以包含2^4也就是16个机器指令,这四个比特位告诉CPU该做什么,剩下的bit告诉CPU该怎么做,也就是把寄存器R6和寄存器R2中的值相加然后写到寄存器R6中。


可以看到,机器指令是非常繁琐的,现代程序员都使用高级语言来编写程序。


时钟信号


现在我们的电路有了计算功能、存储功能,还可以通过指令告诉该电路执行什么操作,还有一个问题没有解决。 靠什么来协调或者说靠什么来同步电路各个部分让它们协同工作呢? 时钟信号就像指挥家手里拿的指挥棒,指挥棒挥动一下整个乐队会整齐划一的有个相应动作,同样的,时钟信号每一次电压改变,整个电路中的各个寄存器(也就是整个电路的状态)会更新一下,这样我们就能确保整个电路协同工作不会这里提到的问题。 现在你应该知道CPU的主频是什么意思了吧,主频是说一秒钟指挥棒挥动了多少次,显然主频越高CPU在一秒内完成的操作也就越多。
大功告成
现在我们有了可以完成各种计算的ALU、可以存储信息的寄存器以及控制它们协同工作的时钟信号,这些统称 Central Processing Unit,简称就是 CPU。 一个小小的开关竟然能构造出功能强大的 CPU ,这背后理论和制造工艺的突破是人类史上的里程碑时刻,说 CPU 是智慧的结晶简直再正确不过。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 处理器
  • DSP
  • CPU
  • GPU
  • 显示芯片的价格差异主要取决于什么因素?

    显示芯片(Display chip)是提供显示功能的芯片。显示芯片一般有两种:一种是主板板载的显示芯片,有显示芯片的主板不需要独立显卡,也是平时说的集成显卡;另一种是独立显卡的核心芯片,独立显卡通过插槽连接到主板上...

    昨天
  • 双通道内存技术的未来发展方向是什么?

    内存双通道,就是在北桥(又称之为MCH)芯片级里设计两个内存控制器,这两个内存控制器可相互独立工作,每个控制器控制一个内存通道。在这两个内存通CPU可分别寻址、读取数据,从而使内存的带宽增加一倍,数据存取速度...

    昨天
  • 芯片组在计算机中的作用是什么?

    芯片组(英语:Chipset)是一组共同工作的集成电路“芯片”,并作为一个产品销售。它负责将计算机的核心——微处理器和机器的其它部分相连接,是决定主板级别的重要部件。以往,芯片组由多颗芯片组成,慢慢的简化为两颗芯...

    昨天
  • 单片机控制系统搭建:详细步骤和注意事项

    单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示...

    昨天
  • 微处理器与传统中央处理器有何不同?

    模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。模块化用来分割,组织和打包软件。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个...

    昨天
  • 单片机寄存器:通用寄存器和特殊功能寄存器详解

    单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显...

    07-08
  • MMX、SIMD、SSE2指令集分别适用于哪些应用场景?

    MMX(Multimedia Extensions,多媒体扩展指令集)是Intel在1996年推出的一项多媒体指令增强技术,是 Intel公司第一次对x86 指令集进行的多媒体指令扩展,它增加了4个新的数据类型、8个64位寄存器和57条指令,并且采用...

    06-27
  • 图形协处理器如何提高系统显示速度?

    图形协处理器是专门设计用来加快高分辨视频图像的处理和显示速度的微处理器。含有图形协处理器的图形加速板可以加快图形用户界面的显示速度,通过将图形处理任务从CPU上转移到协处理器上,图形加速板可极大的提高系...

    06-27
  • 如何配置协处理器来提高系统性能?

    协处理器(coprocessor),一种芯片,用于减轻系统微处理器的特定处理任务。协处理器,这是一种协助中央处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器。这种中央处理器无法执行的工作有很...

    06-27
  • 如何设计一个算术逻辑单元(ALU)?

    算术逻辑单元(arithmetic logic unit,缩写ALU)是进行整数运算的结构。现阶段是用电路来实现,应用在电脑芯片中。在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重...

    06-27
  • 定时器的工作原理和使用方法

    中断装置和中断处理程序统称为中断系统。中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。不同的计算机其硬件结构...

    06-27
  • 四核处理器和八核处理器的区别一览

    不论在电脑中还是在手机中,都有处理器的身影。由此可见,处理器是十分重要的器件。为增进大家对处理器的认识,本文将对四核处理器和八核处理器的区别进行详细的探讨。如果你对处理器具有兴趣,不妨继续往下阅读哦...

    06-21
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告