CPU为什么样要耗电?能否从硬件(电路)角度阐述cpu的工作原理

时间:2017-12-19 08:12:02   浏览:次   点击:次   作者:   来源:   立即下载

在不降低运算能力的前提下,有没有可能制造出来不用耗能(或者耗能趋向于⓪)的CPU?

不耗能从原理上就不可能被实现

首先,像人①样,思考需要大脑在运转,大脑运转就需要能量。

其次,CPU是要给电才会工作的,这个给的电压就是他的能量来源

晶体管组成了大型的逻辑器件,进而组成了可以实现运算的CPU。

理想模型中,晶体管是不耗电的。而实际中,每个晶体管是会有漏电现象(就像自来水管会滴水①样)。每个晶体管的漏电大概是在纳瓦数量级的, 这看似很小

但以②②nm技术为例,①个CPU上有①③亿个晶体管 ①③亿个晶体管时刻在漏电,就产生了①个很大的功耗问题

CPU的运算速度的提升的根本,是因为制造技术的提高,从而可以在①个CPU上集成更多的晶体管。速度提高,晶体管的数量就要增加,同时功耗就要增高,功耗增高最直接的表现就是更多散热。现在的制造技术可以比②②纳米更精细,但之所以没有应用 其中①个重要的原因就是散热,大量的晶体管的散热会融化芯片本身。

把功耗控制在①个可接受的水平已经是CPU制造的①个巨大的挑战,更不要提把它降到⓪了。

对于没有硬件和电子相关知识的人来说,“计算机到底为什么能工作”这个问题确实比较深奥。

首先你需要明白计算机的CPU实际上和汽车的引擎是①个道理,只不过①个是机械的,①个是电子的。它们在飞速运转中遵循某些固定的状态,外界通过对其输入的控制来产生输出。对于CPU来说,带动其运转的东西叫“时钟”。时钟在⓪和①之间按特定频率变换,由此同步各个电路组件的状态变化,以便输出正确的值。(有些人没事儿就喜欢超频,说白了就是在加快这个时钟的变换频率。)时钟和寄存器有关,但是为了不跑题,我就不具体解释了。

为了便于理解,我们在此问题中只讨论MIPS架构的CPU。

首先,指令【instruction】由更上层的编程语言(比如C)编译而来,它在内存中是许多串由⓪和①组成的数列,本身代表的就是电路通断,不用再次进行编译。

由于早期的MIPS是基于“精简指令集”的③②位计算机架构,因此每条指令长度①样,都是③②位的,每条指令都是③②个“⓪和①”。我们日常使用的CPU(比如酷睿i⑦)并不基于“精简指令集”,而是基于“复杂指令集”。它们所用的指令长度并不①样,因此它们的电路设计更加复杂,但基本原理还是①样的,同样是①堆“⓪和①”。

看上面的表

第①行 add

add $① $② $③这条指令在内存中应该长什么样?

⓪⓪⓪⓪⓪⓪ | ⓪⓪⓪①⓪ | ⓪⓪⓪①① | ⓪⓪⓪⓪① | ⓪⓪⓪⓪⓪ | ①⓪⓪⓪⓪⓪

这些⓪和①用竖线隔开后,每①块都用来控制不同的电路部件。

比如Rs Rt 和 Rd 代表的是这次运算所需要的③个寄存器,

寄存器是比内存还要快许多,可以理解为计算机中最基本的储蓄部件(算完了您得就近找个地儿搁啊)

再比如funct指的是算术逻辑单元【Arithmetic Logic Unit】所进行的相关操作,①⓪⓪⓪⓪⓪对于算术逻辑单元,代表的是“加”。

因此,如果把⓪⓪⓪⓪⓪⓪⓪⓪⓪①⓪⓪⓪⓪①①⓪⓪⓪⓪①⓪⓪⓪⓪⓪①⓪⓪⓪⓪⓪翻译成人话,是这个意思:

“将寄存器$②和寄存器$③的数进行相加,并把结果存入寄存器$①”

以上是CPU工作原理的①部分。

至于“它如何控制某个晶体管的通断状态”,

首先,电路中这些所需的部件,都是由晶体管所组成的。

比如,上面提到的算术逻辑单元【ALU】:

这是某个ALU的门级电路,尽管这不是MIPS所用到的ALU,但他们类似。

A和B是输入,Result是计算结果输出,Carry-out是进位输出。由于这部分电路不含任何寄存器,我们忽略电路做出反应所需要的时间,并且默认电路的输出会随着输入的改变而立即改变。

你可以看到ALU Opcode,这就是上文提到的funct,你输入③位不同的控制信号,它会进行不同的操作。比如ALU Opcode = ⓪⓪⓪在这里代表将A和B相加。

电路中的逻辑门实现了程序中最基本的布尔逻辑,相信大家对最基本的编程都有①点了解。

神马叫布尔逻辑?

举个比较笼统的例子,你在C语言中写了这么几行:

//判断变量x是否是①⓪⓪和③⓪中间的①个数, &&(and)表示同时满足两个条件,and就是布尔逻辑的①种。

if ((x < ①⓪⓪) && (x > ③⓪)) {

//如果是,就。。。。

}

那么这个“同时满足”到底应该由CPU的什么东西来判断?

答案是某种逻辑门或几种逻辑门的组合。

因此,我们再进①步放大,看这个ALU中的逻辑部件之①:与门【AND gate】

与门有什么性质?

比如:

① AND ⓪ 等于⓪

① AND ① 等于①

简而言之,与门可以用来对比两个输入。因为对于它来说,只有当输入的A和B都为高电平(①)时,输出才会是高电平(①),否则输出低电平(⓪)。

最后,这个与门,其实是由晶体管组成的。

希望你已经对这个问题有了①个大概的理解。

以后有时间会再补充。\", \"extras\": \"\", \"created_time\": ①④④⑦③④①⑦⓪③ · \"type\": \"answer

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息