cpu性能怎么算出来的(计算机是如何读懂0和1的)
cpu性能怎么算出来的(计算机是如何读懂0和1的)
2024-11-06 02:58:51  作者:青菜哥  网址:https://m.xinb2b.cn/sport/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-06茄盒怎么做好吃简介挪红1.肉末里加入葱、姜、盐、糖、老抽、生抽、胡椒、鸡蛋搅拌均匀2.面粉里加入冷水调成稀面糊备用注可以加点点盐3.茄子切成厚片,中间剖开,但略相连4.将调好的肉馅酿入,依次酿好全部5.将酿好肉的茄。
  • 屈菁菁长相复原图(大赢家里真正最大的赢家)
  • 2024-11-06大赢家里真正最大的赢家先说个好消息,今日头条和西瓜视频又请咱免费看电影了,这次是大鹏和柳岩主演的《大赢家》看看电影海报我们今天要说的主角是美女屈菁菁,由于不是主演,所以只能在海报的角落里找到她,但是请相信我,这一点都不能掩。
  • 小龙虾幼苗期间可不可以用生石灰(小龙虾的养殖神器)
  • 2024-11-06小龙虾的养殖神器“关注水产行情,聚焦龙虾价格”,大家好,我是虾宝,欢迎收看今天的小龙虾价格网十月末,现在正是大闸蟹味道最好卖的最火爆的时候然而对于虾农们来讲,现在外界的一切事情都和自己没关系,现在的重中之重就是自家小。
  • 玻璃杯可以装开水吗
  • 2024-11-06玻璃杯可以装开水吗将玻璃杯进行去应力后可以装开水一般普通玻璃杯不能直接装入滾开的热水,需要先进行去应力操作,最简单的方法是把杯子放入凉水锅中,用小火慢慢把水烧开10分钟,缓慢自然放凉至室温后拿出杯子即可使用虽然这样处理。
  • 每日微语早安语录(正能量鸡汤每日分享)
  • 2024-11-06正能量鸡汤每日分享欢迎您又来吸收正能量,20条精选正能量鸡汤早安说说,带你轻松过好每一天2021年11月14日星期日农历:辛丑年【牛年】十月初十节气:立冬第8天(距下一个节气“小雪”,还有8天)1、时光荏苒,流年匆匆总。
  • 坐长途车的经历(长途车)
  • 2024-11-06长途车李晓重庆长途车,呼哧呼哧地穿过海浪一样涌动群山的盘山公路,驶向神秘的远方长途车对于一个敏感、幻想、内向的少年来说,它打破了平时沉闷的生活,山风一般抚平着少年躁动的心童年时在山村,我对开长途车的司机有一。
  • 中式建筑空间美学(中式建筑东方意境)
  • 2024-11-06中式建筑东方意境黑瓦百墙,飞檐翘角,高低错落,层叠有致,风格独特,雕镂精湛,规划严正,排列井然,构思精巧,自然得体客家文化建筑,是一直以来被建筑大师所推崇建筑风格中海汤泉酒店以淳朴的客家文化建筑,依山傍水,营造出独一。
  • 什么是净现值 其评价准则是什么
  • 2024-11-06什么是净现值 其评价准则是什么净现值(NPV)是指一个项目预期实现的现金流入的现值与实施该项计划的现金支出的现值的差额净现值为正值的项目可以为股东创造价值,净现值为负值的项目会损害股东价值评价准则——净现值指标净现值指标是反映项目。
  • 我们是余生最美好的伴侣(致灵魂伴侣你虽身在远方)
  • 2024-11-06致灵魂伴侣你虽身在远方你是否知道,每当夜幕低垂的时候,我总是不能自已地想着你?你是否知道,每当街角独行的时候,我总是情不自禁地寻觅着你的身影?一场别离,铸就了一生不能自已的相思,一世错过,让我只能在你的彼岸天涯守望你千山红。
  • 八种职业技能(13个职业有了新技能标准)
  • 2024-11-0613个职业有了新技能标准来源:工人日报本报北京2月10日电(记者李丹青)人社部等部门近期颁布了13个国家职业技能标准其中,行政办事员(政务服务综合窗口办事员)、连锁经营管理师、企业人力资源管理师(劳务派遣管理员)、电子竞技员。
  • 姚笛任重吴卓羲电视剧(结婚为什么开播发布会)
  • 2024-11-06结婚为什么开播发布会都市轻喜情感剧《结婚为什么》于8月10日在北京举行了一场甜蜜与欢乐齐飞的开播发布会,导演苏万聪带领众主演姚笛、吴卓羲、任重、郑雅文、种丹妮甜蜜亮相,分别讲述剧中三对相处模式迥异的情侣之间的爱情故事现场。