21st
Last updated
Was this helpful?
Last updated
Was this helpful?
衡量计算机性能的好坏有两个指标,一个是响应时间,一个是吞吐率。拿人来搬东西做类比的话,响应时间就好比一个人从 A 点搬东西到 B 点所用的时间,吞吐率就好比每次搬的东西的多少。
程序的响应时间包括了硬盘访问、内存访问、I/O操作和操作系统开销等一切时间,这些时间内 CPU 并没有运行我们自己的程序,所以我们真正关注的是 CPU 时间,即 CPU 真正运行我们自己的程序的时间。任何程序到了 CPU 层面都是一条条的指令,所以一个程序的 CPU 时间 = 程序包含的指令数 x 每条指令的平均时钟周期数 x 时钟周期,每条指令的平均时钟周期数简称为 CPI,时钟周期的倒数就是时钟频率,也就是我们常说的主频,所以 CPU 时间 = 指令数 x CPI / 时钟频率。
一开始,为了提高性能,计算机的设计者想法设法地提高主频,从 1978 年到 2000 年,CPU 的主频从 5 MHz 提高到 1.4 GHz,20 多年主频提升了近 300 倍。但是,随着主频的提升,功耗也越来越大,主频提升的速度慢慢降了下来,从 2000 年到 2019 年,CPU 主频只提升了 3 倍。
当 CPU 的性能在主频这里遇到瓶颈时,人们不得不另辟蹊径,在吞吐率上想办法。提高吞吐率的一个办法就是增加 CPU 的核数,以达到并行计算的目的,所以现在 4 核、8 核的处理器几乎成了标配。
但是 CPU 的核数也不可能无限制地加下去,除了上述两个方法,还有一些原则性的性能提升方法,比如加速大概率事件、通过流水线提高性能、通过预测提高性能等。
参考资料:
《计算机组成与设计:硬件/软件接口 第 5 版》1.6 节、1.7 节、1.8 节