计算机底层:储存器的性能指标(CPU和内存等硬件的性能以及 对比标准)
内存:
MAR是存放地址的寄存器;MDR是存放数据的寄存器。
MAR是存放地址的寄存器,那么其中的二进制位一定是不能重复的,试想,如果有有两个相同的地址,当计算器从这个地址拿数据的时候就无法确定从哪个地址处拿数据了。因此,一串二进制就代表了 一个地址,因为,每个存储单元对应一个地址,MAR的二进制序列不能重复,那么如果想增加存储单元的个数,就只能增加二进制的位数。因此,MAR的位数反映了存储单元的个数。
MDR是存放数据的寄存器,一个存储单元的大小取决于存储器的位数,这是毋庸置疑的。如果位数越多,那么存入的数据量就可以越大。
由此可以得到一个计算总容量的公式:
例子:
这里算出的是4G,但是实际情况可能只有1G
可能是因为一些内存会被系统或者其他程序占用,这会影响实际内存总容量。
这里为什么是MAR是32位就是用2的32次方呢?前面说了,一种二进制的排列方式,等于一个存储单元。那么存储器的位数就是关键了,因为多一位数,就多了多种排列方式:
一位有两种排列方式:0,1(2的1次方)
二位有4种(2的2次方)
由此可以知道,存储器如果有n位,那么就有2的n次方个排列方式,也就是2的n次方个地址,即存储单元。
所以上面说的MAR有32位,就有2的32次方个存储单元,如果x上一个存储单元的大小(位数),就得到了总容量
CPU:
在我们买CPU时会看到标注了:xxx赫兹(HZ),这是CPU的主频。
CPU
即,时钟信号。 计算机底层:CPU结构与组成原理、工作原理_srhqwe的博客-CSDN博客这里面有时钟信号的组成。
如果没有时钟信号这样的脉冲的信号,CPU就停在哪里。需要有一个脉冲信号,才能让CPU动起来。就像在做广播体操是,没人含口令,就不会动起来一样。
每一个脉冲信号,CPU就会完成一个动作,比如:解析操作码、存放数据。(有些动作,一个脉冲不够,需要多个脉冲)。同样和做广播体操一样,一个节拍代表一个动作。
时钟周期就是一个脉冲所需要消耗的时间。 所以一个脉冲消耗的时间越短,执行一个动作就越快,主频就越高。
因此,CPU主频和时钟周期,互为 倒数 关系。
10HZ就是1秒钟执行10次脉冲,即:1秒钟做10个动作
如果一个CPU内部结构和操作方式以及核心数都是一样地话,那么CPU地主频越高越好。
除了主频外,还有影响CPU性能的东西,比如:CPI
执行一条指令所需要的周期数。这是什么意思呢?
每条指令在计算机内部的执行方式是不一样的,从而会影响CPU内部执行步骤以及次数,比如:两个数相加、两数相乘、CPU取数
取数操作,需要9步。而乘法操作需要11步。因此,执行一条指令所需要的周期数(时间),即:CPI,会影响CPU的性能。
CPI = 3 :有一条指令,这条指令在CPU内部有三个步骤,一个步骤需要一个脉冲
如果有100条指令,一条指令需要3个步骤,100条指令就有300脉冲
因为一个脉冲时间是1/1000(倒数关系),因此300个脉冲所消耗的时间是300x1/1000=0.3s
每秒执行的指令个数不同,那么CPU性能肯定不同
除了CPI影响CPU性能外,还有:IPS
一秒钟执行的脉冲数 / 一条指令需要的脉冲数
比如一秒钟执行10个脉冲,一条指令需5个脉冲,那么一秒钟就可以执行2条指令,即:IPS数。
还有:FLOPS
同样地,CPU每秒进行的浮点运算不一样,那么CPU性能肯定不一样
当要进行大数据计算时,很多的CPU需要进行float运算,如果用FLOPS进行比较CPU的性能是最好的。
在进行性能指标对比时,通常会在前面加上单位:K/M/G/T
比如:2KIPS,每秒可以执行2000条指令
3GFLOPS,每秒可以执行30亿的浮点运算
系统整体:
如果总线位数是8bit,如果要传16bit的数据,就需要传两次。
这里的请求可以理解成一条指令,或者一个程序都可以。举例子:就像食堂阿姨打饭,食堂阿姨在一段时间内(即:单位时间),能给学生打多少饭(即:请求的数量)。
比如:你双击桌面的某个文件夹,从双击到这个文件夹打开(显示在你的电脑屏幕上)直接间隔的时间,就是响应时间。
以上系统性能都是静态的指标,有时静态的指标很难反应处计算机的综合性能,通常我们都会用 基准程序 来测量计算机的性能,这种基准程序也叫做:跑分软件。如:鲁大师
这种软件内部有各种指令,这些指令是计算机的各项指标,通过运行这些指令的速度,给这台计算机打分。
跑分软件的评分是综合的。如果是基于显卡跑分,那么指令里面存在的图形处理之类的指令偏多。如果你的CPU很牛,你的内粗很牛,但是显卡很捞。那么跑分软件的综合评分就毫无用处。很不科学!