在ARM体系结构中,字节是存储的基本单位。但是,在一些情况下,多个字节需要被组合在一起作为一个单元来处理。此时,就需要根据操作数的大小将地址对齐到操作数的大小,这就是ARM字对齐。
ARM处理器每次读取数据都是以总线宽度的整数倍为单位的,如果未对齐,就需要访问两次总线,这将会影响处理器的性能。此外,未对齐的访问还会导致总线错误,影响系统的稳定性。
对于arm处理器而言,最常用的字节对齐方式是4字节对齐。
在ARM体系结构中,每个指令占用4个字节,因此,如果数据满足4字节对齐,就可以同时处理指令和数据。
此外,在ARM处理器中,访问一个未对齐的内存单元将会导致一个axi总线事务,如果对于32位的处理器不是4字节对齐,则需要2个axi总线事务才能完成读写操作,这将大大降低处理器的性能。
字对齐的实现可以通过填充偏移量的方式,即将数据填充到满足对齐要求的位置,也可以通过截断偏移量的方式,即直接读写所需的字节,忽略不满足对齐要求的部分。
在ARM体系结构中,最常用的方法是填充偏移量的方式。