您当前的位置:首页 > 电脑百科 > 硬件技术 > CPU

一个故事讲完CPU的工作原理

时间:2021-05-25 10:25:41  来源:今日头条  作者:Java识堂

上二年级的小明正坐在教室里。现在是数学课,下午第一节,窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时,刘老师在黑板上写下一个问题:

 

6324 + 244675 = ?

 

小明抬头看了一眼,觉得这两个数字挺眼熟。他昨天翘课去网吧了,因此错过了刘老师讲的竖式计算加法。

 

“同学们算一算这道题。”刘老师和蔼可亲地说道。

 

小明盯着黑板懵逼。

 

小学二年级的他面对这样一道世界级难题,束手无策。小明伸出了自己的左手,打算用一个古老而深邃的方法--掰手指--尝试一下。

 

小明发现他的每只手只能输入0-5中的正整数,和的范围仅限于0-10,离6324还十分遥远。

 

“慢着!”小明看向了自己的左手。他发现,事情有一点不对劲。

 

我们也来看看小明的左手。这只左手有5根手指,我们把5根手指都伸开来记为11111,5根手指握拳记为00000,手背面向我们,左手小指是第一个1/0。

 

小明紧紧地握拳,然后伸出大拇指,此时的左手为00001。“如果,”小明想,“这样是1”。

 

他缩回拇指,伸出食指,此时的左手为00010;“这样是2”。

 

他又伸出拇指,此时的左手为00011;“那么这样是3”。

 

他缩回拇指和食指,伸出中指,此时的左手为对着自己竖中指00100;“这样就是4!”

 

.....小明的左手飞速运动着,直到五根手指都伸直,像是钢铁侠射了一发掌心炮11111;“这样就是31!一只手可以表示0-31中的任意正整数!”

 

小明为自己的发现感到激动。可他不知道怎么表示加法。

 

小明的同桌,英语课代表小红,看他摆弄了半天左手,忍不住问他在干什么。小明解释了他的发现。小红听了小明的一番高论,若有所思,提笔在数学书的封底画了一个表格:

一个故事讲完CPU的工作原理

 

小红画的表格

 

“如果我们能造一个机器,给它三个输入,它能返回两个结果,那我们就能算出这道题!”小红激动地说。

 

“啥叫进位啊美女?”小明问道。

 

“就是你列竖式的时候画的一小撇”,小红回答。

 

“猎术士是什么,我知道猎魔人和古尔丹。”

 

小红于是讲解了一下怎么列竖式计算十进制加法。“我懂了。”

 

小明说着,拿过小红的数学书,补全了表格:

一个故事讲完CPU的工作原理

 

小明试着补全表格

 

“是这样吗?”小明问小红。

 

小红拿过来看了看,说:“最后一行写错了,输出结果应该是1。你想啊,1+1+1应该等于11,左边这一位是输出进位,右边这一位是输出结果,都是1,所以输出结果应该是1。”

 

“噢。”小明又拿过书来,拿起橡皮铅笔改正:

一个故事讲完CPU的工作原理

 

小明改好了

 

“那为什么这个机器能算加法?我还是不懂。”小明问。

 

“假设我们已经造出来了这么个机器,长这样”小红继续在封底上画着:

一个故事讲完CPU的工作原理

 

小红画的机器

 

“等会等会,怎么变成英文了,我英语不好。”小明叫道。

 

“hmmm看来你没读双语幼儿园。左边这三个是输入,右边是输出,C是进位,C-in是输入进位,C-out是输出进位,Sum是和的意思,明白了么?”小红解释道。

 

“噢好。”

 

“假设我们已经造出来了这么个机器,造了好几个,我们这么连起来...诶纸不够大,我写不下了。”

 

小明一听,赶紧从书桌膛里翻出来一本草稿纸,生怕同桌变成费马。

 

“谢谢。先这么连起来:”

一个故事讲完CPU的工作原理

 

小红画图中

 

“哦哦哦我懂了,A和B就是两只手,最右边这个one-bit-adder计算的是最小位数的和!”小明说道。

 

“正确!”

 

“你这样连的话,是说最小位的输出进位就是下一位的输入进位,下一位的输出又是下下一位的输入!天啊,这跟列竖式好像。”小明惊叫。

 

“Absolutely!”小红回答道。

 

小明又拿过草稿纸,接着画起来:

一个故事讲完CPU的工作原理

 

小明画图中

 

“把对应的每一位连到每一个adder里...”小明念念有词,“...再汇总一下输出”:

一个故事讲完CPU的工作原理

 

小明画的加法器

 

“成了!这个东西可以算两只手加法的结果!”小明高兴极了。

 

“可是离6324和244675还是太远了,输入5位远远不够呀。”小红皱了皱眉头。

 

“不不不!你在掰手指的时候有没有发现,每多一根指头,能表示的数就会多出来一大堆,我觉得只要加那么十几个就够了!1根指头能表示2个数(0,1),2根指头四个数(0,1,2,3),3根8个...”

 

“是2的倍数!”小红接道,“小明,我觉得你的这个记数方法很有意思,要不叫小明式吧!”小红凝望小明的目光中有了一丝羞涩。

 

“二进制。”

 

身后忽然传来低沉的声音。两人同时回头,发现数学课代表小刚正直勾勾地盯着那张草稿纸。他好像已聆听多时了。

 

“叫二进制吧,我看蓝猫淘气三千问讲过这个,一模一样,蓝猫说这是二进制。”小刚补充道。

 

小刚的数学成绩是班里最好的,一进学而思就上的超常班。小红只能上尖子班,小明一般去网吧。

 

“那就叫二进制吧。”小明说。

 

他和小红转过身来,老师让小组讨论的时候他们就这么坐。

 

小刚又道:“可是,怎么造出这个one-bit-adder呢?”他的眉头皱成一团,眼镜片看起来更厚了。

 

小明和小红也陷入了沉默,三人一筹莫展,陷入僵局。这时,小刚的同桌,物理课代表小兰入局。

 

她忽然说道:“我听物理办公室的陈老师吹牛,他当年在大学里读电子工程,GPA一直是4.3,用实验室的导线开关和小灯泡就能造一个32位的加法器,不知道是怎么做到的。他还说什么与门是and,或门是or,再加一个非门not,用它们表示逻辑,就能造出世间千千万万的计算机。”

 

小明听迷糊了,“等会等会,什么门?金拱门?”另两人也露出迷茫的表情。

 

小兰从桌子里掏出一个黑盒子。“这是下节课要用的教具,陈老师让我先拿着。”

 

她打开盒子,取出三个零件和一个说明书。

 

“喏,你们看看这个”,她拿起第一个零件,“这个叫与门,有两个输入和一个输出。如果我们把输出连上小灯泡,接上电源,两个输入分别连上开关,那么是这么个情况:”

一个故事讲完CPU的工作原理

 

小兰画的表格

 

“就是说,只有两个开关都闭合了,小灯泡才亮,有点像串联电路。”小兰补充道。

 

“诶,有意思了...”小刚扶了扶眼镜,似乎打算说什么,大家都看向他。

 

“没,没什么,我还在想,小兰你接着说。”

 

“那好。”小兰接着拿起第二块零件。“这个叫或门,有一个开关开着灯泡就会亮...”

 

“等下!”小刚忽然打断,拿起笔在自己的白纸上画起来:

一个故事讲完CPU的工作原理

 

小刚画的表格

 

“是不是这样!”小刚激动地说,“如果0是关1是开,0是灭1是亮的话,或门的输入输出是不是这样?”

 

小兰看了看道:“正是”。

 

她拿起第三个零件,“最后这个叫非门,只有一个输入,一个输出。它会输出一个相反的结果:输入有电流,输出就没有;输入没有电流,输出就有电流。用小刚的话来说,输入0输出则为1,输入1输出则为0。太简单了,懒得画表了。”

 

小兰把非门放在桌上。小刚说道:“这三个门可以表示三种逻辑。如果A、B是输入, A or B 就是经过或门的结果, A and B就是经过与门的结果, not A 则是A经过非门的结果。”

 

三人纷纷点头。“可是,这和加法有什么关系呢?”小明问道。

 

四人再度陷入沉默。

 

沉默。

 

忽然,小明拿起笔,一边画一边说道:“如果我们回去看小红画的表格,”

一个故事讲完CPU的工作原理

 

左三列是输入,右二列是输出

 

“Sum可以写成A、B、Cin的逻辑关系!”

一个故事讲完CPU的工作原理

 

“你们看,把 A and B 记作 AB,A or B 记作 A + B,not A 记作 A 上面画个横线。Sum 输出为1只出现在表格的2、3、5、8行,也就是三个输入中1的个数为奇数的时候。我们把这4种情况记下来,那么这个式子...”

 

“可以拿逻辑门实现!!!”四人异口同声的叫道。

 

小红抢过草稿纸,又看了看物理教具的说明书,边画边说了起来:“说明书上写,这个火车头形状的符号表示 and gate;这个B2轰炸机形状的是or gate;这个小人形状的是not gate...”

一个故事讲完CPU的工作原理

 

小红画的与门,或门,非门

 

她又看了一眼小明的式子,说道:“这个式子的第一项可以这样...”

 

一个故事讲完CPU的工作原理

 

小红画的输出和的第一项

 

"你们看你们看,这个不就是

一个故事讲完CPU的工作原理

 

嘛!"小红自豪地说。

 

小明补全了电路:

一个故事讲完CPU的工作原理

 

“先把与门都画了”

一个故事讲完CPU的工作原理

 

“再把或门都加上,搞定。这东西可以算出Sum了,接下来用一样的办法把C-out弄出来。”小明准备继续画。

 

“你们看,这里还有几个零件。”小兰指着说明书说道:

一个故事讲完CPU的工作原理

 

与非,或非,异或,同或

 

“与非门:一个与门的输出和一个非门相连,英文是not and,NAND gate。那个小圈圈代表一个非门。

 

或非门是或门 + 非门,not or,NOR gate。

 

第三个叫异或门,只有两个输入中一个为1一个不为1时,才会输出1,exclusive-or,XOR gate。

 

第四个是同或门,也就是一个异或门加上一个非门。”

 

“啊哈!”小刚灵机一动,抓起笔来道:“我有一个绝妙的点子。”

一个故事讲完CPU的工作原理

 

小刚简化后的电路

 

“小明的方案,要用17个门。我只要2个异或门就搞定了,牛逼吧?”

 

三人瞪大了眼睛,仔细思考后纷纷点头道:“牛逼,牛逼。”

 

小刚随即画出了完整的one-bit-adder电路:

一个故事讲完CPU的工作原理

 

小刚的one-bit-adder

 

小明从教具盒里拿出电源、小灯泡、开关和逻辑门,按照设计图制作出了全加器:

 

看到小刚的设计被完整的实现,小明欣喜:“啊哈哈哈,吾有上将小刚,则霸业可成,汉室可兴啊!”

 

他把黑盒子里的零件全拿了出来,四人忙碌地工作着。很快,他们拥有了5个全加器,基于小红的设计连了起来:

一个故事讲完CPU的工作原理

 

小红设计实现

 

“二进制的01100等于十进制的12,01010等于10,12+10=22,等于16+4+2,也就是二进制的10110...”

 

四人人往代表输出结果的5个小灯泡望去:亮,灭,亮,亮,灭;正是10110!

 

“成了!!!”

 

大家激动的拍打课桌为了计算黑板上那道题,四人一共制作了32个一位全加器,将它们连接后,一个三十二位加法器便诞生了。

 

他们历经艰辛,踩着自然规律和人类智慧的肩膀,把自己从枯燥的加法计算中解放出来!

 

窗外的蝉鸣渐渐平息,头顶的吊扇不再转动。

 

“刘老师,答案是250999!”小明站了起来,声若洪钟大吕,震慑天地。

 

他和小红、小刚、小兰分别对视了一眼,收获了坚定的目光。

 

这目光,连同面前的32位加法器,如同新的转机和闪闪星斗,正在缀满没有遮拦的天空。

 

刘老师点了点头,欣慰的说道:“很好,看来四位同学对这部分知识掌握的不错!我们再来看几道题!”

 

他转过身,拿起板擦,把黑板擦了个精光,又从黑板槽里拾起半截粉笔,写了起来:

 

1. 244675 - 6324 = ?

2. 3.14159 + 5.535897 = ?

3. 17 * 45 = ?

4. 3 / 2 = ?

 

一连四道题,让四人组陷入了深思:如何让自己的机器运算减法?乘法?除法?浮点数?

 

刘老师并没有停下,手中的粉笔运动得越来越快:

 

5. Fibonacci 数列的第103项?

6. 一圈共有N个人,开始报数,报到M的人出列,然后重新开始报数,问最后出列的人是谁?.

 

.....

 

疑惑越来越多了:如何存储?怎样实现分支?保证效率?

 

刘老师仍未停下,黑板快被写满了:

 

103. 方程ζ(s)=0的所有有意义的解都在一条直线上吗?

104. 大于2的偶数都可以写成两个质数的和吗?

 

......

 

134. 生命,宇宙及所有事物的答案?

 

刘老师放下了粉笔,半截粉笔已经变成硬币的厚度。

 

“这些问题,我们能造个机器回答么?”小明撑着头,喃喃自语。

 

作者:柳两丛

https://www.zhihu.com/question/40571490/answer/718942643



Tags:CPU   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
我们想要知道CPU之间的性能高低,只需要通过一张“CPU”天梯图,就可以快速了解。笔记本移动版CPU相比台式机CPU在型号上更加繁多,并且杂乱无章,相同的型号下,CPU分为标压和低压版,...【详细内容】
2021-12-27  Tags: CPU  点击:(4)  评论:(0)  加入收藏
# macos查看cpu支持的指令集sysctl -a | grep machdep.cpu.features # macos 查看cpu是否支持SSE 4.2sysctl -a | grep machdep.cpu.features | grep SSE # 查看cpu的所有...【详细内容】
2021-12-22  Tags: CPU  点击:(10)  评论:(0)  加入收藏
Linux下查看某一个进程所占用的内存,首先可以通过ps命令找到进程id,比如ps -ef | grep kafka ,可以看到kafka这个程序的进程id 可以看到是2913,现在可以使用如下命令查看内存:top...【详细内容】
2021-12-07  Tags: CPU  点击:(35)  评论:(0)  加入收藏
上上周生产出现问题,记录一下定位问题的方案,原创不易,欢迎关注测试代码:@RestController@RequestMapping("/test")public class TestController { private static Logger log...【详细内容】
2021-11-23  Tags: CPU  点击:(21)  评论:(0)  加入收藏
出品:科普中国制作:王智豪(中科院长春光机所)监制:中国科学院计算机网络信息中心中央处理器,简称CPU,是现在电子计算机的核心元件,也是信息时代最主要的器件之一。从小的方面说,我们...【详细内容】
2021-11-15  Tags: CPU  点击:(30)  评论:(0)  加入收藏
近年来摩尔定律“失速”,使得中央处理器(CPU)的性能增长边际成本急剧上升。有研究数据表明,现在CPU的性能年化增长率(面积归一化之后)仅有3%左右。然而,人们对计算的需求依然爆发性增长。...【详细内容】
2021-11-05  Tags: CPU  点击:(44)  评论:(0)  加入收藏
lscpu 命令显示有关 CPU 架构的信息lscpu 命令安装:-bash: lscpu: command not found #Ubuntuapt-get install util-linux#CentOSyum install util-linux #Fedoradnf install...【详细内容】
2021-09-22  Tags: CPU  点击:(70)  评论:(0)  加入收藏
虚拟机报告不同类型的使用指标,例如服务器负载、内存使用和Steal Time。客户经常询问Steal Time——它是什么,为什么会在他们的虚拟机上报告?继续阅读,我们将解释Ste...【详细内容】
2021-09-09  Tags: CPU  点击:(92)  评论:(0)  加入收藏
计算机如何执行你写的代码?知乎上有人提问:电脑怎样执行编程语言的? 很多刚刚入坑的小白可能对此完全没有概念,或者模模糊糊知道个大概,我们写下的一行行代码,计算机到底是如何在...【详细内容】
2021-09-03  Tags: CPU  点击:(100)  评论:(0)  加入收藏
Jarboot本身是一个启动Java进程的工具,同时它还附带了一些调试命令。本文介绍下当Java的服务占用了过高的CPU资源时,该如何进行排查。如果不借助工具,使用Linux和jdk自带命令的...【详细内容】
2021-08-20  Tags: CPU  点击:(142)  评论:(0)  加入收藏
▌简易百科推荐
我们想要知道CPU之间的性能高低,只需要通过一张“CPU”天梯图,就可以快速了解。笔记本移动版CPU相比台式机CPU在型号上更加繁多,并且杂乱无章,相同的型号下,CPU分为标压和低压版,...【详细内容】
2021-12-27  装机之家晓龙    Tags:笔记本CPU   点击:(4)  评论:(0)  加入收藏
CPU在访问的页面不在物理内存时,便会产生缺页中断,请求操作系统将所缺页调入到物理内存。缺页中断与其他中断的区别? 缺页中断在指令执行期间产生和处理中断信号,一般中断在一条...【详细内容】
2021-10-19  DifferentJava    Tags:内存   点击:(55)  评论:(0)  加入收藏
电脑CPU性能天梯图 手机CPU性能天梯图 电视盒子CPU性能天梯图前几天发了一张CPU性能天梯图,好多小伙伴说型号不全,没有他的CPU。这次整了个齐全的,截止到2021年8月份,不仅有台式...【详细内容】
2021-08-17  StoneM    Tags:CPU   点击:(664)  评论:(0)  加入收藏
电脑中的CPU和显卡可以说是DIY朋友最最关切的两部分了,说到买CPU大家最关注的是它是Intel的还是AMD的,或者它是第十代还是十一代,甚至它是能超频还是不超频,却很少有人关注你买...【详细内容】
2021-08-02  亿说电脑    Tags:CPU   点击:(62)  评论:(0)  加入收藏
在与CPU性能表现相关的参数中,频率大概是最直观也最明显的了,一般来说,同样的核心架构下,频率越高,性能肯定越高,相信很多小伙伴也这样选的吧。不过近期的CPU中,又有了一些变化,厂商...【详细内容】
2021-07-16  电脑爱好者    Tags:CPU频率   点击:(76)  评论:(0)  加入收藏
上二年级的小明正坐在教室里。现在是数学课,下午第一节,窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时,刘老师在黑板上写下一个问题: 6324 + 244675 = ? 小明抬头看了一眼,觉...【详细内容】
2021-05-25  Java识堂  今日头条  Tags:CPU   点击:(122)  评论:(0)  加入收藏
CPU天玑1000+和麒麟985哪个更强悍?下面对这两款芯片,做一个简单的对比,让我们可以更直观的了解,哪一款芯片更强。1.天玑1000 Plus性能如何这款芯片是2020下半年发布的,7nm制程工...【详细内容】
2021-03-26      Tags:麒麟985   点击:(2020)  评论:(0)  加入收藏
随着AMD第三代锐龙处理器的上市,整数和浮点运算又成了DIYer们谈论的热点话题。与此同时,PCIe 4.0固态硬盘在只提高顺序读写、随机读写却无长进的情况下是否具备购买价值也成为...【详细内容】
2021-03-25      Tags:CPU   点击:(240)  评论:(0)  加入收藏
我们在选购电脑的时候,经常会听到一些“几核几线程CPU”的术语,比如四核八线程,八核十六线程之类的,那么这个所谓的几个核心和线程都是什么意思呢?请看下面介绍。CPU的“几核几线...【详细内容】
2021-03-04      Tags:处理器   点击:(384)  评论:(0)  加入收藏
作者 | 小林coding来源 | 小林coding(ID:CodingLin) 前言你清楚下面这几个问题吗? 有了内存,为什么还需要 CPU Cache? CPU 是怎么读写数据的? 如何让 CPU 能读取数据更快一些? C...【详细内容】
2020-11-11      Tags:CPU   点击:(145)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条