2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 计算机组成原理学习笔记:计算机的性能指标

计算机组成原理学习笔记:计算机的性能指标

时间:2019-02-28 10:11:40

相关推荐

计算机组成原理学习笔记:计算机的性能指标

存储器的性能指标

容量

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操作, 操作系统开销等时间)

动态测试

以上都是静态指标,但静态指标有时很难反映出一个计算机的综合能力很多时候,我们会用一个基准程序来测量计算机实际处理速度基准程序,也就是跑分软件 已经设计好的程序代码,在代码中包含各种各样的指令各种指令出现的频率是不一样的 会根据你电脑运行程序的耗时来给定综合的评分

思考

1 ) 主频高的CPU一定比主频低的CPU快么? 不一定:如两个CPU,A的主频为2GHz, 平均CPI=10;B的主频1GHz, 平均CPI=1…对于B来说1s可执行1G条指令,对A来说,1s只能执行 210\frac{2}{10}102​ = 0.2G条指令强调一下:描述CPU主频的时候,是用10进制来描述的,1G = 10910^9109, 而不是2302^30230所以,主频高的CPU未必比主频低的CPU快 2 ) 对于A、B两个CPU的平均CPI相同,那么A一定更快么? 看起来好像是,但是对比,一定要保持其他变量全都相同不同的CPU指令系统可能也不一样,若A不支持乘法指令,只能用多次的加法实现乘法,而B支持乘法指令这样的话,B的整体表现可能会比A更好 3 ) 基准程序执行得越快和说明机器性能越好么? 基准程序中的语句存在频度差异,运行结果也不能完全说明问题计算机多是用于浮点科学计算,但是用测试显卡的基准程序来测试,这样肯定不科学所以, 不能盲目相信跑分软件,要结合实际的场景来测试

总结

计算机的性能指标 存储器的容量 MAR的位数反应存储单元数量MDR反映每个存储单元大小 CPU 时钟周期:CPU中最小的时间单位,每个动作至少要1个时钟周期主频(时钟频率):1时钟周期\frac{1}{时钟周期}时钟周期1​,单位 HzCPI:执行一条指令所需要的时钟周期数CPU执行时间 运行一个程序所花费的时间= 指令条数∗CPI主频\frac{指令条数*CPI}{主频}主频指令条数∗CPI​ IPS:每秒执行多少条指令 = 主频平均CPI\frac{主频}{平均CPI}平均CPI主频​FLOPS:每秒执行多少次浮点运算 其他:数据通路带宽、吞吐量、响应时间、基准程序常用数量单位 描述存储容量、文件大小时:K=210K=2^{10}K=210, M=220M=2^{20}M=220, G=230G=2^{30}G=230, T=240T=2^{40}T=240描述频率,速率时:K=103K=10^3K=103, M=106M=10^6M=106, G=109G=10^9G=109, T=1012T=10^{12}T=1012

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。