cpu性能怎么算出来的(计算机是如何读懂0和1的)
cpu性能怎么算出来的(计算机是如何读懂0和1的)
2024-11-22 12:07:29  作者:青菜哥  网址:https://m.xinb2b.cn/life/gcs222315.html

本文为《BUT HOW DO IT KNOW – The Basic Principles of Computer for everyone 》笔记,文章绝大部分图片来自于这本书,用visio重新绘制,并增加不同的颜色,更便于阅读。

任何一个计算机核心都是有必不可少的部分:一个是RAM,另一个就是CPU(Central Processing Unit),如下图所示:


RAM负责数据存储,CPU负责数据处理。右侧是RAM部分,我们已经介绍过了,具体见J Pan:(1)计算机是如何读懂0和1的?- RAM ,现在开始介绍CPU如何构成。

对于CPU而言,主要的任务就是干活。那怎么样才能有效的完成这个任务?——我们也可以类比一下人类社会。原始部落的干活效率是很低的,主要靠个人的体力生活,身强力壮的就能成为头领。随着生产力的发展,后来产生了组织,对整体行为进行某种 “调度”,完成这种工作的人就是组织的“神经中枢”——比如部落的酋长等,此时,酋长不一定是最强壮的那个人,更多的需要“大脑”进行工作。到现代社会,就有了“政府”的概念,整个国家的行为进行规划和管理。可以设想一下,在现代社会一个没有“政府”或者“政府”组织混乱的国家是什么样。有了这样的概念,我们就知道了,要想有效的干活(特别是大型劳动),需要两个条件:大量干活的个体以及把这些个体连接起来的“调度”。对于CPU来说,我们把具体干活的部分称之为ALU,把起调度功能的部分称之为“Control section”,即控制单元。

CPU的基本构型如下:


首先能看到的是总线绕了一个大圈,分别连接在RAM的数据端和地址端。有六个寄存器挂在总线上,分别是:R0, R1, R2, R3, TMP, ACC。其中R0, R1, R2, R3是CPU用于短期存储数据的寄存器,他们的输入输出都是通过总线与外界连接,这四个寄存器用处很多,称得上是万金油寄存器,通用叫法是“通用寄存器”。TMP称为临时寄存器,它的输入来自总线数据,输出到一个粉色的框框,只有“写”指令,没有“读”指令,也就是说这个寄存器会一直输出。ACC称为累加器,它接受来自问号框框的数据,输出连接到总线上,所以它的输出数据可以搬运到任何总线到达的地方。

中间有一个大框,写着“Control Section”称之为控制单元,是CPU中最复杂的部分,它控制了CPU和RAM中所有“读”和“写”(s和e)使能情况,这个后面会详细讲。

左侧还有一个带“问号”的框框是什么呢?——它的名字叫ALU(Arithmetic and Logic Unit),也就是算数与逻辑单元。我们先来研究一下它。

1、逻辑门

在介绍ALU之前,我们有必要再学复习几种新的逻辑门电路,具体如下:


分别为与非门、与门、或门及异或门门。前三个都比较简单,简单说一下异或门,从真值表上可以看出,它的逻辑是通入相同为0,不同为1。为什么说它呢?——因为加法器会用到它。

2、什么是加法器

说道算数与逻辑,一个首先要解决的问题就是加法问题。我们先从最简单的1位加法开始。

对于1位加法器,我们知道:


我们把上述语法用逻辑门电路来实现,非常简单,一个与门,一个异或门:


其中,a和b为1位的输入,sum为和,carry为进位,这称之为半加器,我们可以把它抽象成:


现在难度升级,假如输入也有进位,该如何处理呢?——那就在加一个半加器呗!两个半加器只要有一个有进位,那carry out就是1,因此可以用一个或门来实现。


这称之为全加器,其真值表为:


具体实现为:


能看出来其中的逻辑吗?我们把全加器抽象为:


有了一位全加器,还会发愁8位全加器吗?


8位全加器可以抽象为:


3、什么是移位器

前面我们解决了加法问题,那乘法问题如何解决呢?——移位器。

举个例子,加入有一个二进制数是00010000,转换成10进制是16,现在左移一位,变成00100000,转换成10进制就变成了32,这说明什么?——在二进制中,左移就是乘以2,右移就是除以2,这样就把乘法和除法解决了。

我们来看看左移具体是怎么实现的?


很简单,就是两个寄存器,连线的时候左移1位即可。当R1的“e”处于on时,R2的“s”先on后off,这样R1中所有数据就会传递到R2中,不过数据左移了一位。通常情况下,shift in会和shift out连接。

和左移类似,右移就是两个寄存器连线的时候右移1位。


我们可以把左移和右移抽象成如下形式:


4、什么是比较器

顾名思义,比较器的功能就是对输入的两个数据进行比较,输出两个标志位:是否相等;若不等,谁大?

相等是比较容易实现的,用异或门就可以实现:每一位输出相同,则异或门输出off,如果所有位的输出都是off,则两个输入相等。


如果是8位的话,可以将输入输出端用总线表示:


也就是说我们可用用异或门实现两个输入是否相同;要比较两个数谁大,事需要一点小技巧的。要从最开始为进行比较,开始位若不同,则为1的那个数大;若开始位不同,则比较下一位;如此往复,直至最后一位。

就需要的异或门的基础上,再增加4个逻辑门,比较器中每一位的实现逻辑如下:


每一位比较器的输入有2个:a和b;

从上一位传递过来的另外2个输入(前面位的比较结果):all bits above are equal,“a”larger。

输出是截止至当前位的比较结果:all bits equal so far,“a”larger。

下面具体分析一下:

当异或门1输出为on时,表明a和b不相同;经过非门2后,为off,意为unequal;当异或门1输出为off时,表明a和b相同;经过非门2后,为on,意为equal;

如果非门2当前位输出为on,且从之前位传过来的标志也为on,表明截止至当前位,输入a和b是相同的,这个可以通过与门3来实现;

与门4输出为on时需要满足三个条件:1)当前位a和b不同;2)a的状态为on;3)所有之前位都是相等的。当着三个条件都满足时,表示a大;

当与门4输出为on时,或门5输出为on;并且在当前位之后的所有位置,或门5都是on。

当b大的时候,equal标志位和a larger 标志位都为off。

把8个1位比较器堆积起来,就是一个8位比较器了,如下所示:


可以简单抽象成:


比较器可以和异或门共用一部分电路,同时增加两个输出标志equal和a larger。

5、什么是ALU

前面我们已经建立了4个逻辑电路:加法器、移位器(左)、移位器(右)、比较器。加上我们已经很熟悉的三个逻辑电路:与门、非门、或门,我们就可以做成一个ALU(算数与逻辑单元)了,组成如下:


仔细观察上图,所有的单元都有输入a,对于需要两个输入的单元,b也被连接。所有单元的输入端一直保持连接,输出端都增加了使能器E,使能器的控制端来自译码器,也就是说,同时只会有一个单元被使能。译码器有一位输出并未连接至任何使能器,当该位为on时,7个单元均未被选择,大家都不工作,仅有a larger和equal有输出,代表的比较运算。通过op操作码,可以选择不同的逻辑或算数单元。

可进一步抽象,如下所示:


op操作码所对应的选择为:


其中CMP(比较器)的标志位输出一直工作。

6、什么是时钟信号

在文章最开始的时候,我们已经认识了非门,如下图所示:


它的输出是0101010101…,如果我们把图画出来,会呈现出这个样子:


高低电平交互出现,周期和信号传递需要的时间相关,倘若我们信号传输电缆的长度:


就可以得到不同频率的波形:


可以将时钟信号抽象成如下样式:


假如我们将输出信号的延长,就可以得到一个 相位之后的时钟信号:


将两路信号用与门和或门处理一下:


就可以的得到如下波形:


其中clk e为“读”使能信号,clk s为“写”使能信号。抽象模型如下:


由于CPU的任务众多,我们需要用流水线的形式分成多步来实现,比如我们可以分成7步:


我们不妨称之为stepper,这个stepper是怎么实现的呢?——抽丝剥茧,一步一步来。首先是把步与步之间区分开来:


输入是一个时钟信号,通过非门产生一个相差180°的时钟信号,如下图所示:


除两个时钟信号外,还有12个1位寄存器(只有“写”控制端),交替分成了2组,其中一组的“写”控制信号为clk,另一组为not clk。最左侧第一个寄存器的输入信号为高电平。不难分析,这个电路的功能就是逐渐的将高电平信号从最左侧传递到最右侧。


显然,这不是我们想要的最终信号,我们想要只在当前step是高电平信号,其余为低电平。怎么办呢?再加一点逻辑:


这样我们就可以得到最终的stepper信号:


Stepper的抽象模型如下:


如果将step 7和reset连接起来:


就可以生成连续不断的控制信号:


  • 写给女人婚恋的忠告(我跟上千个女人聊过婚姻)
  • 2024-11-22我跟上千个女人聊过婚姻出自:中国经济网新媒体先生:很多男人好奇,我们女人平时凑一起都在聊什么其实也没什么,经常是“我老公真棒”这种话题比如A的老公上次做饭是11年前,B的老公记不清孩子上几年级,C坐月子时老公通宵打游戏,D。
  • 初来乍到电视剧简介(初来乍到电视剧介绍)
  • 2024-11-22初来乍到电视剧介绍《初来乍到》改编自美国华裔厨师黄颐铭的回忆录《初来乍到:回忆录》,主要描述上世纪九十年代,一个来自中国台湾的华裔家庭从美国华盛顿哥伦比亚特区唐人街搬到美国佛罗里达州奥兰多定居的故事《初来乍到》是一部于。
  • 蜘字组词语(蜘组词以及音节)
  • 2024-11-22蜘组词以及音节酶蜘[méizhī]帽翅目的蜘蛛科,于06年在韩国汉城城郊发现土蜘蛛[tǔzhīzhū]土蜘蛛为蜘蛛的一种传说,土蜘蛛就是当时与大和族朝廷不和而藏匿在深山中的原住民,死后怨灵所化作的妖怪,有个“囊蜘冢。
  • 日本旅游必买好物首选(坚决不去日本但这4个)
  • 2024-11-22坚决不去日本但这4个很多人在出门旅游的时候,不管去哪里,应该都坚决不会选择去日本,虽然我们不去日本旅游,但是日本有一些家居好物,我们还是可以买回家的日本这4个家居好物,我们买回家可以让家里的家务活减半,因为设计的即方便又。
  • 五个方法让你的肠胃越来越好(胃肠粘膜修复7分靠养)
  • 2024-11-22胃肠粘膜修复7分靠养在之前的章节中,我们向大家介绍了日常生活中伤害胃肠道的行为,总结下来无非这几种1.遗传因素2.饮食不当3.压力应激4.情绪不良因此,在养护肠胃方面,这几点同样重要,调节肠胃的方向也需要这几种1.正确饮。
  • 睡眠不好当心身体出现以下问题(需要它来找原因)
  • 2024-11-22需要它来找原因睡眠是维持人体生命的极其重要的生理功能,日出而作,日落而息的生理更替周期,保证了生命的正常运转睡眠能补充人体的足够能量,在睡眠中人体全身的基础代谢率在降低,能量消耗也在减少,睡眠时人体合成的代谢超过了。
  • 汉朝地图格式图(西汉至民国地图集)
  • 2024-11-22西汉至民国地图集中国是以华夏文明为源泉、中华文化为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中华民族”,又自称为炎黄子孙、龙的传人中国是世界四大文明古国之一,有着悠久的历史,距今约。
  • 冻荔枝如何做(冻荔枝怎样做)
  • 2024-11-22冻荔枝怎样做冻荔枝的做法是很简单的,主要就是把荔枝要准备到位,而且选择的荔枝一定要确保新鲜,将荔枝的外壳去除后,将果肉取出来切成粒状然后放入碗里面或者杯子里面,所选的碗和杯子一定要防冻裂的那种,全部取出来再将其放。
  • 春运24小时守护回乡路(温暖回家路同城版之就地过年)
  • 2024-11-22温暖回家路同城版之就地过年"此心安处是吾乡"今年,响应就地过年的倡议,成为许多人的理智选择在西安过年,你家的年货买了吗?出行需要打车吗?1月31日起,三秦都市报、秦闻APP、三秦网、公益记者公众号联合西安市出租。
  • 80岁奶奶凌晨街头寻亡夫(婆婆拿走赔偿款)
  • 2024-11-22婆婆拿走赔偿款“是你克死了我儿子,回你娘家去吧!”2019年,陈锦仪刚满18岁,就已经是孩子的妈了然而,一场飞来横祸降临到这刚成年的姑娘身上与她恩爱无比的丈夫出车祸去世了丈夫的四七还未过,婆婆却吞下巨额赔偿金,扭头。