嵌入式开发过程中离不开arm开发,很多初学者在学习arm开发的时候往往会忽视一些基本的知识。嵌入式ARM的体系结构采用若干Berkely RISC处理器设计中的特征,但也放弃了其他若干特征。这些采用的特征有:Load/Store体系结构;固定的32位格式;3地址指令格式。那么在Berkeley RISC设计采用的特征中被ARM设计者放弃的RISC的技术特征有哪些呢?
(1)寄存器窗口
在早期的RISC中,由于Berkeley原型机中包含了寄存器窗口,使得寄存器窗口的机制密切地伴随着RISCD 的概念,成为一般RISC的一大特征,Berkeley RISC处理器的寄存器堆中使用寄存器窗口,使得任何时候总有32个寄存器是可见的。进程进入和退出都访问新的一组寄存器,因此减少了因寄存器的保存和恢复导致的处理器和存储器之间的数据拥堵和时间开销。这是拥有寄存器窗口的优点。但寄存器窗口的存在以大量寄存器占用较多的芯片资源为代价,使得芯片成本增加,因此在ARM处理器设计时未采用寄存器窗口。尽管在嵌入式开发培训-ARM中用来处理异常的影子寄存器和窗口寄存器在概念上基本相同,但在异常模式下对进程进行处理时,影子寄存器的数量是很少的。
(2)延迟转移
由于转移中断了指令流水线的平滑流动而造成了流水线的“断流”问题,多数RISC处理器采用延迟转移来改善这一问题,即在后续指令执行后才进行转移。在原来的ARM中延迟转移没有采用,因为它使异常处理过程更加复杂。
(3)多有指令单周期执行
ARM被设计为使用最少的时钟周期来访问存储器,但不是所有指令都是单周期执行。如在低成本的ARM应用领域中普遍使用的ARM7TDMI,数据和指令占有同一总线,使用同一个存储器时,即便是最简单的Load和Store指令也最少需呀访问2次存储器。当访问存储器需要经过一个周期时,就多用一个周期。因此,并不是所有ARM指令都是在单一时钟周期内执行的,少数指令需要多个时钟周期。高性能的ARM9TDMI使用分开的数据和指令存储器,才有可能把Load和Store指令的指令访问存储器和数据访问存储器操作单周期执行。
把简单的硬件和指令集结合起来,这是RISC体系的思想基础;但ARM仍然保留一些CISC的特征,并且因此达到了比纯粹RISC更高的代码密度,使得ARM在开始设计时就获得其功耗效率和较小的核面积的优势。
想要了解更多的arm开发相关知识,可以登录华清远见嵌入式开发培训官网进行了解。