首页 > 编程知识 正文

cpu是怎样计算的(cpu进行什么运算)

时间:2023-05-06 09:47:08 阅读:104457 作者:587

关键词 科普 计算机 大学生 数学 硬件设计

10-1010电脑玩家喜欢看CPU的时钟频率。时钟频率和计算速度有什么关系?同系列的CPU,主频越高,速度越快没问题。2G的主频意味着每秒运行2X109个基本周期。对于不同的CPU,执行一个基本动作至少需要一个基本周期。在C语言中,数字加1可以用I实现,机器指令汇编的形式可以写成:

公司

指内部寄存器A加1。如果Inc A是启动后执行的第一条机器指令,至少需要两个基本周期。第一个周期是从外部存储器取指令到CPU的内部指令寄存器,第二个周期是用算术逻辑运算符给内部寄存器A加1。对于现代cpu来说,当CPU不将数据写入外部存储器时,获取指令可以由CPU存储管理器自己完成,以将指令获取到内部高速缓存(catch)中。一般来说,当指令由Inc A执行时,它已经在CPU中了,所以不需要再次获取。也就是说,一条指令大约只需要一个基本周期。

早期的CPU并行度没那么高,速度也不快。这是一条乘法指令。

穆拉阿德尔

可能需要几十或几百个基本周期。即使是简单的加法,我记得按照CPU指令需要4-10个周期。在早期,为了在尽可能少的周期内完成加法,需要花费大量的大脑来研究。接下来我就拿CPU加和人加做个类比,简单说明一下电脑加是怎么做的。这些成就大致相当于1955-1965年间最优秀的计算机研究人员和设计师的工作。事实上,所用的知识并没有超过高一学生现在所学的,优秀的ssdqt学生至少能理解50%。

00-1010人做加法时,规则是对位加法,即单位对单位的加法,十对十的加法,百对百的加法等。加法从低位到高位开始。低年级学生开始思考

很简单。原因是后者有进位。当有进位时,需要将当前位置的数字相加,加上右相邻位相加的进位。这就是加法的全部规则。也就是说,只要知道一位数的加法方法,就可以用另一种进位规则加任意位数。当然,我们需要一个十进制的一位数加法表。

计算机的算术逻辑运算符是执行各种算术和逻辑运算的基本部件,加法器是完成加法的子部件。加法器设计的复杂性与十进制和进位有关。

目前计算机实际上是用电路中两根导线之间的电压来表示数字,0大约是0v,1大约是2.5v,如果用十进制数来表示,需要十个不同的电压来表示0,1,2,3, 8, 9.电路的功耗也比0,1增加了几十到一百倍。如果初中生知道电焦耳功率p=v ^ 2/r不难得出这个结论。

计算机科学的先驱们选择二进制系统作为计算机中基本的数字基础系统。为了使人们更好地与计算机交互,输入仍然是十进制,还有0、1、2、3、9是用许多二进制数编码的。二进制编码的十进制数转换成实际的二进制数,然后进行运算,输出的结果也转换成十进制数。不仅数字是用二进制数编码的,所有的运算符号,甚至字母和汉字都是用二进制数编码的。这个编码和解码过程由软件完成。以下是二进制个位数的计算表。

0 1

0 0 1

1 0 10

十进制取决于十进制加法表中粗分割线的右下部分。对于9,这取决于相邻低位是否有进位。有进位就需要加1,没有进位就不需要加。

使用基本代数方法,n位加n位的数量如下图所示。

图1

如果你研究过数列,可以认为是四行数列。如果你是ssdqt的学生,你只需要想象0代表一个位数,1代表10位数,以此类推。理解这种加法水平模式并不难。a是加数,B是加数,R是和,C代表进位。如果当前数字I产生进位,则Ci=1,否则ci=0;框架部分是一个完整的1位加法结构。有三个输入变量,即前进位Ci-1、加数Ai和加数Bi。有两个输出,第I位的和Ri和第I位相加产生的进位Ci。加法和进位加法都是根据一位数表计算的,进位也可以根据一位数表得到。为了规则,我们有额外的C0,所以简单地认为它是0。sum=cn的最高位rn1。另一种表示这种第I位加法结构的方法也称为1位加法器。

s://p5.toutiaoimg.com/origin/pgc-image/15411180457788337366a5d?from=pc">

图2-1

图2-2

将n个这样相同1位加法器串联起来,就是一个n位加法器。现在的问题就成了怎么样做出1位加法器的问题。

3.一位加法器的实现

图3-1 图3-2 图3-3

我们得先对只有0,1这样的数的算术做多点说明。第一是乘法, 二进制乘法比较好懂,算表如图3-1.第二是模2加法,模写成 mod,任意的自然数mod 5,就是被5除,其余数只能取0,1,2,3,4。任意的自然数mod 2的话,结果就只能是0,1。在下面的说明中如果特别指出来,“+”号都是指mod 2加。这样二进制个位数mod 2的加法表如图3-2所示。第三是反码,01010的反码是10101,个位取反码算符如图3-3。用代数举一个反码的例子,

用加法器的八个不同的输入值带入上面的公式中,按规则计算结果,输出是符合输出表值的。这就是加法器依据的最基本算式了。

下面的讲解就会粗一点,可能初中高中同学理解起来会有一点麻烦。我放弃严格性,尽可能说简单。图4-1是个叫MOS管的东西,可以在硅片制作出来。从电的性能上讲,就像一个可控电阻,G,S两端加上适合的电压D,S两端的电阻就会变得很小,很容易让电流流过,如果G,S之间电压接近0,D,S端电阻就会很大。

按图4-2接好电路后,注意在D端子上串联了一个电阻R,且加上了一个固定电压VSS。如果G,S端输入了一个接近于VSS的电压,让的D,S端电阻变小了(打开),电阻大大小于R的话,DS的输出电压就很小,接近于0。如果在G,S端的电压接近于0,D,S之间的通路呈现的电阻会大大大于R,这样DS端的电压就接近于VSS。也就是说这个电路实现了式(1),通常叫非门电路。而图5则用类似的办法实现了一个相乘再取反的运算,也叫做与非运算。图5,图4-2,只考虑逻辑关系的话,也可以用图6的逻辑符号表示。

利用 (1),(2),可以将(3)改写成:

这可以用两级与非门,外加几个非门实现。同理也可以实现Ci+1。具体的电路我就不画了。这里只讲讲原理。我这里的晶体管电路与实际的现代电路还是不一样的,从数学与结构的角度没错就是了。

4.n位加法器快速进位链

至此,我们实现了任意长度的两个二进制数的加法了。但是这个电路过于低效了,原因就在进位上。

图7

考虑图7的加法,进位的情况,除去C0=0,每个Ci都为1,共计会产生n次进位,这样进位会传播经过好多个与非门电路,就会产生延迟。办法是用Ci的实际式子递归代替(4)中的右边的Ci,代数式子会变得复杂,但可以不用等待前一级电路算完,就可以算高位,并行确实使得速度加快了,但电路也随之复杂。这就是加法器设计要注意的问题了。光都会有传播时间,电路中电流的流动也是需要时间的。如果集成电路工艺使得晶体管变小了,那么传播距离变短,传播就快了。多个门串联造成的电信号延迟也随即减低,CPU基本周期就可以缩短。所以集成电路按28nm,14nm,10nm,7nm发生演化,这指的是集成电路中最窄图样的宽度。

希望高中程度较好的学生能抓住关键。其实这是大学计算机2年级课程的简化版,我们就是要尝试,将更多的新技术内容及早地传播给孩子们,让他们更早地进入创造阶段。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。