首页 理论教育 嵌入式系统存储访问操作探究

嵌入式系统存储访问操作探究

时间:2023-11-23 理论教育 版权反馈
【摘要】:在存储访问操作中,如果存储单元的地址没有遵守上述的对齐规则,则称为非对齐的存储访问操作。如果系统中指定,当发生非对齐的指令预取操作时,忽略地址值中相应的位,则由存储系统实现这种“忽略”。③忽略字单元地址中低两位的值,忽略半字单元地址的最低位的值。

嵌入式系统存储访问操作探究

在ARM 中,通常希望字单元地址是字对齐的(地址的低两位都为零),半字单元的地址是半字对齐的(地址的最低位为零)。 在存储访问操作中,如果存储单元的地址没有遵守上述的对齐规则,则称为非对齐的存储访问操作。

(1)非对齐的指令预取操作

当处理器处于ARM 状态期间,如果写入到寄存器PC 中的值是非字对齐的(低两位不都为零),要么指令执行的结果不可预知,要么地址值中最低两位被忽略;当处理器处于Thumb状态期间,如果写入到寄存器PC 中的值是非半字对齐的(最低位不为零),要么指令执行的结果不可预知,要么地址值中最低位被忽略。

如果系统中指定,当发生非对齐的指令预取操作时,忽略地址值中相应的位,则由存储系统实现这种“忽略”。 也就是说,这时该地址值原封不动地送进存储系统。

(2)非对齐的数据访问操作

对于Load/Store 操作,如果是非对齐的数据访问操作,系统定义了下面三种可能的结果:(www.xing528.com)

①执行的结果不可预知。

②忽略字单元地址低两位的值,即访问地址为(address&0xFFFFFFFC)的字单元;忽略半字单元地址的最低位的值,即访问地址为(address&0xFFFFFFFE)的半字单元。

③忽略字单元地址中低两位的值,忽略半字单元地址的最低位的值。 由存储系统实现这种“忽略”。 也就是说,这时该地址值原封不动地送到存储系统。

当发生非对齐的数据访问时,到底采用上述三种处理方法中的哪一种,是由各指令系统指定的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈