第1章 基于ARM的嵌入式系统
1.1 RISC设计思想
RISC是一种设计思想,其目标是设计出一套能在高时钟频率下单周期执行,简单而有效的指令集。RISC的设计重点在于降低由硬件执行的指令的复杂度,这是因为软件比硬件容易提供更大的灵活性和更高的性能。因此,RISC设计对编译器有更高的要求。
RISC设计思想主要由下面四个设计准则来实现。
>> 指令集 --- RISC处理器减少了指令种类。编译器或者程序员通过几条简单指令的组合来实现一个复杂的操作(例如,除法操作)。每条指令的长度是固定的,允许流水线在当前指令译码阶段去取下一条指令;而在CISC处理器中,指令长度通常不固定,执行也需要多个周期。
>> 流水线 --- 指令的处理过程被拆分成几个更小的。能够被流水线并行执行的单元。
>> 寄存器 --- RISC处理器拥有更多的通用寄存器。寄存器可为所有数据操作提供快速的局部存储访问;而CISC处理器都是用于特殊目的的专用寄存器。
>> load-store结构 --- 处理器只处理寄存器中的数据。独立的load和store指令用来完成数据在寄存器和外部存储器之间的传送。这样有一个好处,那就是可以反复地使用保存在寄存器中的数据,避免多次访问存储器。因为,访问存储器很耗时。
这些设计准则,使得RISC结构的处理器更为简单,因此内核能够工作在更高的时钟频率。
1.2 ARM设计思想
ARM内核不是一个纯粹的RISC体系结构,这是为了使它能够更好地适应其主要应用领域---嵌入式系统。嵌入式系统往往有低功耗、高代码密度(由于成本和物理尺寸的限制,嵌入式系统的存储器是很有限的)、价格敏感等要求。
ARM的指令集和单纯的RISC定义有以下几个方面的不同。
>> 一些特定指令的周期数可变。例如,多寄存器装载/存储的load/store指令的执行周期就是不确定的,需根据被传送的寄存器个数而定。
>> 内嵌桶形移位器产生了更为复杂的指令。在一个输入寄存器被使用之前,内嵌桶形移位器可以处理该寄存器中的数据,它扩展了许多指令的功能,提高了代码密度。
>> Thumb 16位指令集。该指令集使得内核能够执行16位指令,相比32位的定长指令,代码密度可以提高约30%。
>> 条件执行。只有当某个条件满足时,指令才会被执行。这个特性可以减少分支指令的数目,从而改善性能,提高代码密度。
>> 增强指令。一些功能强大的DSP指令被加入到标准的ARM指令中。
阅读(2867) | 评论(0) | 转发(0) |