存储器的性能指标
容量
MAR的位数也就是地址寄存器的位数,可以反映出这个存储体总共有多少个存储单元另外MDR数据寄存器的位数可以反映出每一个存储单元可以存放多少个二进制比特位所以我们只需要利用这样的两个信息就可以算出整个存储器,它总共可以存放多少个二进制比特位(bit)如果把比特再除以8的话就可以转换成字节(Byte), 即: 总容量 = 存储单元个数 * 存储字长 bit = 存储单元个数 * 存储字长/8 Byte1 Byte = 8 bit 例子:MAR为32位,MDR为8位 总容量 = 232∗82^{32} * 8232∗8 bit = 4 GB 备注: MAR的位数反映存储单元的个数(最多支持多少个)MDR位数 = 存储字长 = 每个存储单元的大小 n个二进制位能表示出多少种不同的状态? 1个二进制位:0, 1, 即:212^121 个2个二进制位:00, 01, 10, 11, 即:222^222 个3个二进制位:000, 001, 010, 100, 101, 110, 111, 即:232^323 个…n个二进制位:2n2^n2n 个 32位的二进制数最多可以表示2322^{32}232这么多个二进制数, 也就是这么多的地址(存储单元) 我们需要熟练记住:212102^1 ~ 2^{10}21210 的值同样,也需要熟练记住: 2102^{10}210:K2202^{20}220:M2302^{30}230:G2402^{40}240:T 1B = 8bit1KB = 1024B
CPU的性能指标
举个例子:i9-9900KF/3.6GHZ/8核/16线程 i9-9900KF 是CPU的型号3.6GHZ 是CPU的主频CPU主频
CPU主频:CPU内数字脉冲信号震荡的频率 脉冲信号:指挥CPU内部所有的部件协调工作的节奏, 类似于广播体操,有人带口号脉冲信号是有规律,有节奏的发生, 每一个信号都会去执行动作结合之前的例子,CPU在执行指令的时候,会做很多的动作, 而且动作都有先后顺序,每个动作执行完毕后才会开始下一个动作CPU的脉冲信号给这些动作的执行带来了一个节奏, 当然有的动作也可能在一个脉冲时间内完成不了
CPU时钟周期
我们把每个脉冲信号的时间称为CPU的时钟周期,通常以微秒或纳秒为单位CPU主频和时钟周期的关系:CPU主频(时钟频率) = 1CPU时钟周期\frac{1}{CPU时钟周期}CPU时钟周期1 单位是 Hz举例:主频是10Hz表示每秒钟有10个脉冲信号
CPI
除了主频外,还有其他因素影响CPU的性能, 比如CPICPI (Clock cycle Per Instruction): 执行一条指令所需的时钟周期数对于同一个CPU,执行不同的指令有可能消耗不同的时钟周期对于不同的CPU,即便执行的都是乘法指令,根据乘法指令实际实现的方式不同,两个CPU所需要的时钟周期数量也可能不一样即便同一个CPU,两次执行相同的指令,这两次的时钟周期数量也可能不一样 比如CPU要从内存取走一个数,这个指令的执行,除了和CPU本身相关,还与主存,内存,当前状态有关如果主存当前负荷比较大,CPU想要取走一个数,就要花更多的时间 所以,统计CPU执行一条指令所需的时钟周期数在微观上来看是毫无意义的, 因为可以影响这个指标的因素太多我们有公式:执行一条指令的耗时 = CPI * CPU时钟周期
例子
假设某个CPU的主频是1000Hz,某个程序包含了100条指令,平均看来指令的CPI等于3,也就是说平均每执行一条指令需要3个时钟周期, 那么这100条指令的程序在这个CPU上执行需要花多长时间呢?
分析: 这个程序总共包含100条指令,每一条指令平均需要3个时钟周期可以执行完,而一个时钟周期的长度应该是主频分之一100∗3∗11000100 * 3 * \frac{1}{1000}100∗3∗10001 = 0.3 s
得出公式:CPU执行时间(整个程序的耗时) = CPU时钟周期数/主频 = (指令条数 * CPI) / 主频
IPS
IPS (Instructions Per Second):每秒执行多少条指令公式:IPS=主频平均CPIIPS = \frac{主频}{平均CPI}IPS=平均CPI主频 主频的值反映了每秒钟多少个数字脉冲(时钟周期) 一般测试时可以加一些常见的单位,如: KIPSMIPS
FLOPS
FLOPS (Floating-point Operations Per Second):每秒执行多少次浮点运算常见的单位有: KFLOPSMFLOPSGFLOPSTFLOPS注:K,M,G,T是数量单位, 而且和之前的容量单位是有区别的 K = Kilo = 千 = 10310^3103M = Million = 百万 = 10610^6106G = Giga = 十亿 = 10910^9109T = Tera = 万亿 = 101210^{12}1012
系统整体的性能指标
数据通路带宽
是指:数据总线一次所能冰属性传递的信息的位数 (各硬件部件通过数据总线传输的数据) 比如:CPU 和 内存;内存和IO设备 之间的信息传输都是通过数据总线来进行的如果一台计算机的数据通路带宽为8bit, 要从存储体中读取16bit数据,需要传输2次 所以,读取多次一定比读取一次要慢,所以数据通路带宽会直接影响各个硬件部件之间数据传输的效率
吞吐量
是指:系统在单位时间内处理请求的数量, 这里的请求是一个比较抽象的概念 可以理解为一条指令就是一个请求也可以理解为一个完整的程序运行 举例: 淘宝服务器处理用户发起的HTTP请求,其每秒钟可以处理多少个HTTP请求
响应时间
是指:从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间举例: 右键弹出菜单,从点击触发到弹出菜单的时间 影响响应时间的因素 CPU时间(运行一个程序所花费的时间)等待时间(用于磁盘访问, 存储器访问, I/O操作, 操作系统开销等时间)
动态测试
以上都是静态指标,但静态指标有时很难反映出一个计算机的综合能力很多时候,我们会用一个基准程序来测量计算机实际处理速度基准程序,也就是跑分软件 已经设计好的程序代码,在代码中包含各种各样的指令各种指令出现的频率是不一样的 会根据你电脑运行程序的耗时来给定综合的评分