附:关键词

MIPS

MIPS是比较典型的RISC微处理器架构,相应产品众多,实际应用广泛。经过多年发展,MIPS指令集也由最初的MIPS1发展到如今的MIPS32与MIPS64。新的指令系统在保证向下兼容的前提下,拓展出了许多新功能,更加符合实际需要。龙芯2F处理器完全兼容MIPS3指令集,能够直接运行任何针对MIPS编译的二进制代码;另有部分SIMD指令,用于同时处理多组相互独立的数据,可以以较小的代价获取某一类应用模型下较大的性能提高。

ABI

ABI是应用程序二进制接口的简称,用于标识处理器的工作模式及规范目标文件的编码格式。MIPS指令集架构自MIPS3起正式支持64位工作模式,故编码可以遵从o32、n32与n64等ABI。o32与n64即纯粹的32位与64位模式,二者除指针与变量类型的长度差异外,n64还用寄存器来传递更多的参数,性能有所提高。n32则是32位数据结构和64位指令的结合体,重点在于仅将long long与double类型编译为64位,其余指针与变量类型设定与o32相同。
性能方面,64位环境并不一定优于32位环境。前者在带来更大地址空间的同时,也带来了成倍增长的系统开销。例如,指针与变量类型的长度变化几乎等同于去掉了处理器上一半的缓存,这对某些运算模型的影响是致命的。

抢占模式

抢占模式是内核编译时需要设定的重要参数之一,决定了是否以及如何进行内核级别的抢占。该功能如被启用,意味着调度模块可以在安全的前提下随时抢占内核执行中的任务,而不必等待其执行完毕。虽然这可以有效提高系统的响应速度,但也会对系统的整体处理能力造成影响。
2.6版的Linux内核提供3个编译选项,分别是禁止内核抢占的Server模式、允许自愿内核抢占的Desktop模式以及允许主动内核抢占的Low-Latency Desktop模式,用户可根据系统用途选择相应的编译参数。为保证图形界面下的操作流畅性,通常会采用Low-Latency Desktop模式对内核进行编译。

编译器优化

编译器优化是指在源代码不变的前提下,单纯依靠编译器对源代码进行分析,并在编译时根据参数设定进行不同程度的优化,从而改善程序的执行性能。GCC使用-Ox这一参数来指定优化的程度,常见选项包括O1、O2、O3等。
O2通常被认为是比较合适的优化级别,GCC除完成O1级别的所有优化工作外,还将根据处理器指令调度等特性进行优化,这与编译时-march选项声名的指令集架构或处理器型号息息相关。O3要做的工作比起O2又多一些,编译所需时间也长得多,并且像函数内嵌、展开可预见循环等工作有点空间换性能的意思。

相关文章】


相关内容