计算机的主要性能指标
字长
字长是计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。因此,字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节的整数倍。
在文章中的最后会有几种字长的关系
数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。
主存容量
主存容量是指主存储器所能存储信息的最大容量,通常以字节衡量,也可以用字数✖字长来表示存储容量。
运算速度
吞吐量和响应时间
吞吐量:指的是单位时间内处理请求的数量。
响应时间:指从用户向计算机发送一个请求,到系统对该请求发出响应并且获取所需结果的等待时间。
主频和CPU时钟
CPU时钟周期:通常为节拍脉冲或者T周期,即主频的倒数,它是CPU中最小的时间单位,执行指令的每个动作至少需要一个时钟周期。
主频:机器内部主时钟的频率,是衡量机器速度的重要参数。主频越高,执行指令的速度越快。
CPU频率高的不一定比低的快,还有架构、缓存、指令集、CPU的位数、Cache大小等因素
CPU时钟周期=1/主频,主频通常以Hz为单位,1Hz表示每秒1次
CPI
CPI:执行一条指令所需要的时钟周期数
CPU执行时间
CPU执行时间:执行一条指令所需的时钟周期。
CPU执行时间=CPU时钟周期数/主频=(指令条数✖CPI)/主频
CPU执行时间取决于三个要素:
- 主频(时钟频率)
- 每条指令执行所用的时钟周期数(CPI)
- 指令条数
MIPS
MIPS:每秒执行多少百万条指令。
MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS
MFLOPS:每秒执行多少百万次浮点运算。
GFLOPS:每秒执行多少十亿次浮点运算。
TFLOPS:每秒执行多少万亿次浮点操作。
PFLOPS:每秒执行多少百万亿次浮点操作
EFLOPS:每秒执行约10的18次方次浮点运算
ZFLOPS:每秒执行约10的21次方次浮点运算
基准程序
基准程序是专门用来进行性能评价的一组程序,能够很好地反映机器在运行实际负载时的性能,可以通过在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能。
专业术语
系列机
具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列。
兼容
只软件和硬件的通用性,即运行在某个型号的计算机系统中的软件/硬件也能应用于另一个型号的计算机系统时,称这两台计算机在软件/硬件上存在兼容性。
软件可移植性
指把使用在某个系列计算机中的软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性。
固件
将程序固化在ROM中组成的部件称为固件。固件是一种具有软件特性的硬件,吸收了软件/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬结合的产物。例如,目前操作系统已经实现了部分固化。
常见问题和易混淆知识点
- 翻译程序、解释程序、汇编程序、编译程序的区别和联系是什么?
翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,只要源程序不变,就无须重新翻译。另一种是解释程序它将源程序的一条语句翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序。
汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。
编译程序与汇编程序的区别:若源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,则这样的一个翻译程序称为编译程序。若源语言是汇编语言,而目标语言是机器语言,则这样的一个翻译程序称为汇编程序。
2.什么是透明性?透明是指什么都能看见吗?
在计算机领域中,站在某类用户的角度,若感觉不到某个事物或属性的存在,即“看”不到某个事物或属性,则称为“对该用户而言,某个事物或属性是透明的”。这与日常生活中的“透明”概念(公开、看得见)正好相反。
例如,对于高级语言程序员来说,浮点数格式,乘法指令这些指令的格式、数据如何在运算器中运算等都是透明的;而对于机器语言或汇编语言程序员来说,指令的格式、机器结构、数据格式等则不是透明的。
在CPU中,IR、MAR和MDR对各类程序员都是透明的。
3.字、字长、机器字长、指令字长、存储字长的区别和联系是什么?
在通常所说的“某16位或32位机器”中,16,32指的是字,也称机器学长,所谓字长,通常是指CPU内部用于整数运算的数据通路的宽度,因此字长等于CPU内部用于整数运算的运算器位数和通用寄存器宽度,它反映了计算机处理信息的能力。字和字长的概念不同。字用来表示被处理信息的单位,用来度量数据类型的宽度,如x86机器中将一个字定义为16位。 指令字长:一个指令字中包含的二进制代码的位数。
存储字长:一个存储单元存储的二进制代码的长度。
它们都必须是字节的整数倍。
指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2个访存周期来取出一条指令;若指令字长等于存储字长,则取指周期等于机器周期。
早期的存储字长一般与指令字长、字长相等,因此访问一次主存便可取出一条指令或一个数据。随着计算机的发展,指令字长、字长都可变,但必须都是字节的整数倍。
4.计算机体系结构和计算机组成的区别和联系是什么?
计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性,包括指令集、数据类型、存储器寻址技术等,大都属于抽象的属性。
计算机组成是指如何实现计算机体系结构所体现的属性,它包含对许多对程序员来说透明的硬件细节。
5.基准程序执行得越快说明机器的性能越好吗?
一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题。