0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU的计算能力是怎么来的?开关如何变成的CPU?

STM32嵌入式开发 来源:码农的荒岛求生 作者:码农的荒岛求生 2022-11-14 16:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

几乎每天都会开灯关灯,但这简单的开关却是组成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,这就是异或啊! 如下图,用一个与门和一个异或门就可以实现二进制加法:

ff096e1e-6269-11ed-8abf-dac502259ad0.png

上述电路就是一个简单的加法器,加法可以用与或非门实现。

除了加法,我们也可以根据需要将不同的算数运算设计出来,负责计算的电路有一个统称,这就是所谓的算术逻辑单元ALU(arithmetic/logic unit),是CPU 中专门负责运算的模块,本质上和上面的简单电路没什么区别,就是更加复杂而已。相关文章:CPU如何进行数字加法。

现在,通过与或非门的组合我们获得了计算能力,计算能力就是这么来的。

但,只有计算能力是不够的,电路需要能记得住信息。存储 到目前为止,你设计的组合电路比如加法器天生是没有办法存储信息的,它们只是简单的根据输入得出输出,但输入输出总的有个地方能够保存起来,这就是需要电路能保存信息。

电路怎么能保存信息呢?有一天一位英国物理学家,给出了这样一个神奇电路:

ff2f467a-6269-11ed-8abf-dac502259ad0.png

这是两个与非门的组合。 比较独特的是该电路的组合方式,一个与非门的输出是另一个与非门的输入。该电路的组合方式会自带一种很有趣的特性,只要给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位嘛),为此你对电路进行了改造:

ff4c6912-6269-11ed-8abf-dac502259ad0.png

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

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

ff79d870-6269-11ed-8abf-dac502259ad0.png

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

构建CPU硬件平台通过上文讲解知道,电路可以实现数据计算、信息存储的通用功能。但现在还有一个问题,真的有必要把所有的逻辑运算都用与或非门实现出来吗?这显然是不现实的。 没有必要为所有的计算逻辑实现出对应的硬件,硬件只需要提供最通用的功能。 接下来看下硬件是怎么提供所谓的通用功能。

让我们来思考一个问题,CPU怎么能知道自己要去对两个数进行加法计算,以及哪两个数进行加法计算呢? 很显然,你得告诉CPU,该怎么告诉呢? CPU也需要机器指令告诉自己该接下来该干什么,而指令通过我们上述实现的组合电路来执行。相关文章:CPU怎么识别我们写的代码?

指令集指令集告诉我们 CPU 可以执行什么指令,每种指令需要提供什么样的操作数。不同类型的CPU会有不同的指令集。 指令集中的指令其实都非常简单,画风大体上是这样的:

从内存中读一个数,地址是abc

对两个数加和

检查一个数是不是大于6

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

等等

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

ff9c75ce-6269-11ed-8abf-dac502259ad0.png

这条指令占据16比特,其中前四个比特告诉CPU这是加法指令,这意味着该CPU的指令集中可以包含2^4也就是16个机器指令,这四个比特位告诉CPU该做什么,剩下的bit告诉CPU该怎么做,也就是把寄存器R6和寄存器R2中的值相加然后写到寄存器R6中。 可以看到,机器指令是非常繁琐的,现代程序员都使用高级语言来编写程序。相关视频推荐:CPU如何进行数字加法。时钟信号现在我们的电路有了计算功能、存储功能,还可以通过指令告诉该电路执行什么操作,还有一个问题没有解决。

靠什么来协调或者说靠什么来同步电路各个部分让它们协同工作呢? 时钟信号就像指挥家手里拿的指挥棒,指挥棒挥动一下整个乐队会整齐划一的有个相应动作,同样的,时钟信号每一次电压改变,整个电路中的各个寄存器(也就是整个电路的状态)会更新一下,这样我们就能确保整个电路协同工作不会这里提到的问题。

现在你应该知道CPU的主频是什么意思了吧,主频是说一秒钟指挥棒挥动了多少次,显然主频越高CPU在一秒内完成的操作也就越多。

大功告成现在我们有了可以完成各种计算的ALU、可以存储信息的寄存器以及控制它们协同工作的时钟信号,这些统称 Central Processing Unit,简称就是 CPU。

一个小小的开关竟然能构造出功能强大的 CPU ,这背后理论和制造工艺的突破是人类史上的里程碑时刻,说 CPU 是智慧的结晶简直再正确不过。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222933
  • 晶体管
    +关注

    关注

    78

    文章

    10250

    浏览量

    146266
  • 或非门
    +关注

    关注

    0

    文章

    37

    浏览量

    15805

原文标题:开关如何变成的CPU?

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CPU 到 GPU,渲染技术如何重塑游戏、影视与设计?

    CPU(CentralProcessingUnit)是计算机的中央处理器,它负责执行各种程序和指令。CPU渲染是指使用CPU执行渲染流程
    的头像 发表于 09-01 12:16 672次阅读
    从 <b class='flag-5'>CPU</b> 到 GPU,渲染技术如何重塑游戏、影视与设计?

    探索CPU架构的奥秘,揭秘高性能计算的隐形引擎

    的深海,揭开那些隐藏在高性能计算背后的神秘面纱。1.取指令(Fetch)程序计数器(PC):CPU通过程序计数器获取下一条指令的内存地址。指令读取:从存储器或缓存中读
    的头像 发表于 08-13 11:58 524次阅读
    探索<b class='flag-5'>CPU</b>架构的奥秘,揭秘高性能<b class='flag-5'>计算</b>的隐形引擎

    单核CPU网关和双核CPU网关有什么区别

    单核CPU网关与双核CPU网关的核心区别在于处理能力、多任务效率、性能表现及适用场景,双核CPU网关在多任务处理、复杂计算和响应速度上具有显
    的头像 发表于 07-05 14:37 733次阅读

    一片主板可以有多少路CPU

    CPU计算机的中央处理器,可以直接影响到服务器的并行处理能力CPU路数越多,服务器可以同时处理的任务数量就越多,从而提高了整体的处理效率和性能,特别是在处理大量并发任务时,多路服务
    的头像 发表于 06-13 09:14 533次阅读
    一片主板可以有多少路<b class='flag-5'>CPU</b>?

    主板和CPU是一个东西吗?有什么区别?

    在数字化浪潮席卷的时代,电脑早已成为现代生活的核心枢纽。而在计算机硬件体系中,主板与CPU堪称两大支柱,共同构筑了整台机器的运算中枢。虽然主板和CPU在功能定位上不同,但它们的协同运作,却如同精密齿轮的咬合,直接决定了电脑性能的
    的头像 发表于 06-11 09:19 2308次阅读

    CPU Socket的基本结构和工作原理

    CPU Socket是连接中央处理单元(CPU)与计算机主板之间的关键部件,它充当着传递电信号、电源和散热等多重功能的枢纽。在整个计算机系统中,CP
    的头像 发表于 05-08 17:14 1890次阅读

    国产电脑CPU性能排行榜TOP7:CPU缓存/主频/多核实测数据分析

    在科技飞速发展的今天,电脑CPU(中央处理器)无疑是计算机性能的核心部件。而长久以来,国际品牌在这一领域占据着主导地位,给人一种国产CPU性能不行的刻板印象。然而,随着技术的不断进步和研发投入的加大,国产电脑
    的头像 发表于 04-29 10:38 2370次阅读
    国产电脑<b class='flag-5'>CPU</b>性能排行榜TOP7:<b class='flag-5'>CPU</b>缓存/主频/多核实测数据分析

    信创国产CPU推荐

    cpu
    jf_10805031
    发布于 :2025年04月23日 17:20:43

    CPU的各种指令和执行流程

    在集成电路设计中,CPU的指令是指计算机中央处理单元(CPU)用来执行计算任务的基本操作指令集。这些指令是CPU能够理解并执行的二进制代码,
    的头像 发表于 04-18 11:24 1918次阅读

    【国产信创CPU全攻略】分享国产CPU品牌排行榜!从排名到避坑!

    最近收到不少粉丝留言:“想换国产电脑,但国产CPU品牌太多,完全不知道怎么选!”“信创CPU排名到底靠不靠谱?”今天咱们就来唠唠这个话题——国产CPU品牌有哪些?信创CPU怎么挑?附上
    的头像 发表于 04-14 14:34 4160次阅读
    【国产信创<b class='flag-5'>CPU</b>全攻略】分享国产<b class='flag-5'>CPU</b>品牌排行榜!从排名到避坑!

    CPU到GPU:渲染技术的演进和趋势

    和优缺点CPU(CentralProcessingUnit)是计算机的中央处理器,它负责执行各种程序和指令。CPU渲染是指使用CPU执行渲
    的头像 发表于 02-21 11:11 1375次阅读
    从<b class='flag-5'>CPU</b>到GPU:渲染技术的演进和趋势

    hyper cpu,Hyper CPU优化:提升虚拟机性能

        在当今快节奏的商业环境中,数据的高效处理能力是企业竞争力的关键因素之一。批量管理工具以其强大的批量操作功能,为企业提供了一种高效、便捷的数据处理解决方案。今天就为大家介绍HyperCPU优化
    的头像 发表于 02-06 10:25 1550次阅读
    hyper <b class='flag-5'>cpu</b>,Hyper <b class='flag-5'>CPU</b>优化:提升虚拟机性能

    CPU怎么降频 bios中如何把cpu调低频率

    CPU降频是一种有效的节能措施,同时也有助于降低设备的温度和功耗,提高系统的稳定性和使用寿命。以下将详细介绍如何在操作系统中、BIOS设置里以及使用第三方软件实现CPU降频。 一、在操作系统中降低
    的头像 发表于 02-01 15:02 3w次阅读

    fpga和cpu的区别 芯片是gpu还是CPU

    一、FPGA与CPU的区别 FPGA(Field-Programmable Gate Array,现场可编程门阵列)和CPU(Central Processing Unit,中央处理器)是两种不同类
    的头像 发表于 02-01 14:57 3000次阅读

    华为云 X 实例 CPU 性能测试详解与优化策略

    分析   3.2 CPU性能瓶颈分析   4. CPU性能优化策略   4.1 优化CPU性能的常用方法   4.2 操作系统内核调优   4.3 使用性能监控工具   5. 总结与建议   引言 随着云
    的头像 发表于 12-30 14:52 1182次阅读
    华为云 X 实例 <b class='flag-5'>CPU</b> 性能测试详解与优化策略