cpu性能怎么算出来的(计算机是如何读懂0和1的)
cpu性能怎么算出来的(计算机是如何读懂0和1的)
2024-10-01 09:29:06  作者:青菜哥  网址: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连接起来:


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


  • 刘雪华演戏的(61岁刘雪华演终极笔记太美)
  • 2024-10-0161岁刘雪华演终极笔记太美最近,电视剧《终极笔记》热播,剧集完结之后,余温也没有散去,评分甚至还比开播的时候上涨了不少而在剧中,饰演霍仙姑霍老太太的正是一代琼瑶女郎的代表刘雪华尽管,现在61岁的她已经满头白发,但仍然美到让观众。
  • 未解之谜之北新桥锁龙井(北新桥锁龙井下真的镇压着一条苍龙)
  • 2024-10-01北新桥锁龙井下真的镇压着一条苍龙北京流传着这样一个故事:北新桥有一口“锁龙井”,井底下就有一个海眼何谓海眼?顾名思义,海眼就是沧海的眼睛大地上有一个孔像是一眼井,深不可测,水声潺潺,据说一直通到海底去了,这就是大海伸到陆地上的眼睛最。
  • 坦克世界-前线模式(坦克世界-前线模式)
  • 2024-10-01坦克世界-前线模式头条的网友们大家好,这里是玩坦克游戏的秀才坦克世界今天开启今年最后一次“前线模式”,前面给大家讲解了前线模式里的技能这期给大家分享前线模式地图(诺曼底)一阶段站点思路和防守思路希望能对你们在玩前线模式。
  • 广西人做腊肉的方法(桂林人餐桌上的腊肉秘方来了)
  • 2024-10-01桂林人餐桌上的腊肉秘方来了  矫二姐制作的各种腊味  袁师傅制作腊肉用的设备  梁美英展示今年做的腊肠、腊肉  如果桂林人春节餐桌上的美食有“出场率”比赛,腊肉、腊肠一定是“种子选手”今年猪肉便宜,居民阳台上的腊肉香味比。
  • 货车事故一人死亡(一货车与送葬人群相撞)
  • 2024-10-01一货车与送葬人群相撞综合@公安部交通管理局、河南信阳淮滨县人民政府新闻办消息,11月20日5时许,淮滨县境内220国道梧桐村路段发生一起交通事故据@公安部交通管理局今天(20日)上午10时许通报:11月20日5时许,河南。
  • 清远是个什么城市(初识清远了解清远)
  • 2024-10-01初识清远了解清远青山绿水好人家,每一个清远好物都是送给大家的礼物这是上级有关部门扶持强化清远旅游城市核心以及清远市的综合实力清远送的大礼包,可要亲自去看看最初知道清远,源于一个朋友,他家就在清远市郊区的一个小山村打电。
  • 古代用什么清洁牙齿(古人靠什么来清洁牙齿)
  • 2024-10-01古人靠什么来清洁牙齿爱美之心,人皆有之”——《孟子·告子上》在中国以白为美,古代认为女子应该明眉皓齿,唇红齿白,有一口洁白的牙齿笑起来令人赏心悦目大家知道古代人为什么喜欢笑不露齿吗?因为他们大笑的话就会露出一嘴的大黄牙啊。
  • 神经肌电图谁发明的(为什么说这个古老)
  • 2024-10-01为什么说这个古老患者女性,84岁,主因「间断咳嗽、咳痰8年,加重伴发热、呼吸困难3天」于2018年11月5日入我院呼吸科普通疗区,11月6日因呼吸困难进一步加重转入RICU患者8年前无明显诱因出现晨起咳嗽、咳痰,咳白。
  • 开心麻花王芸芸个人简历(田雨是开心麻花团队的成员吗)
  • 2024-10-01田雨是开心麻花团队的成员吗演员田雨并不是开心麻花团队的成员,他只是与该团队曾经有过合作而已最为引人关注的合作作品便是开心麻花出品的影片《夏洛特烦恼》,他在其中饰演爱占小便宜,对学生却是极力维护的王老师田雨出生在北京,从小就对话。
  • 还在用钢丝球刷锅吗(钢丝球铁铲都不怕)
  • 2024-10-01钢丝球铁铲都不怕经常烧菜烧饭的小伙伴应该都知道,目前很多的不粘锅是无法使用清洁球擦洗,使用金属铲子炒菜的,因为金属类锅铲很容易破坏不粘锅的涂层,涂层一旦破坏锅也就废了,所以平时我们使用这类不粘锅时,都是小心翼翼地使用。
  • 丰田海狮9座商务车价格尺寸(丰田海狮9座蓝牌)
  • 2024-10-01丰田海狮9座蓝牌五一节快到了不知道大家怎么安排的出行计划呢?现在选择自驾游出行有两个好处:1、开车很自在2、能享受到驾驶乐趣所以旅途出行就必须得配上一辆好车,今天就给大家带来一款9座商务车中的扛把子“进口丰田海狮”,。
  • 什么劝学成语(成语说出品劝人学习)
  • 2024-10-01成语说出品劝人学习【百尺竿头,更进一步】:佛家语,比喻道行、造诣虽深,仍需修炼提高比喻虽已达到很高的境地,但不能满足,还要进一步努力【跛行千里】:比喻只要努力不懈,即时条件很差,也能取得成就【不辞辛劳】:辞:推辞虽然劳。