新闻中心

EEPW首页>嵌入式系统>设计应用> ARM存储器之:存储管理单元MMU

ARM存储器之:存储管理单元MMU

作者: 时间:2013-09-30 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257009.htm

引起存储访问失效的存储访问类型如表15.32所示。

表中,对齐失效的编码可以为0b0001或0b0011。

表15.32 存储访问失效的存储访问类型

优先级

引起存储访问失效的原因

失效状态字段

域字段

失效地址寄存器c6

最高

极端异常(TerminalException)

0b0010

无效

生产商定义

中断向量访问异常(VectorException)

0b0000

无效

有效

地址对齐(Alignment)

0b00x1

无效

有效

扩展地址变换失效(页表访问失效)

一级页表

0b1100

有效

有效

二级页表

0b1110

无效

有效

地址变换失效

段失效

0b0101

无效

有效

页失效

0b0111

有效

有效

域控制失效

段失效

0b1001

有效

有效

页失效

0b1011

有效

有效

访问权限控制失效

段失效

0b1101

有效

有效

页失效

0b1111

有效

有效

基于Cache的外部存储访问系统异常

段失效

0b0100

有效

有效

页失效

0b0110

有效

有效

最低

非Cache预取时外部存储访问异常

段失效

0b1000

有效

有效

页失效

0b1010

有效

有效

在域控制字段(bits[3:0])中存在无效值,是因为无效发生在域访问之前。

当不同的存储访问类型同时引起存储访问失效时,按照优先级由高到低的次序,先保存优先级高的存储访问失效相关信息,在表中各存储访问优先级由上到下依次递减。

图15.36显示了判断存储访问失效的全过程。

下面分别介绍各种类型的存储访问失效方式。

①极端异常(terminalexception)

极端异常指的是发生了不可恢复的存储访问失效。具体属于哪种情况,有生产商定义。

②中断向量访问异常(vectorexception)

在数据访问周期,如果访问异常中断向量表(地址0x0到0x1f)时发生存储访问失效,这种存储访问失效称为中断向量访问异常。当被禁止时是否产生中断向量访问异常由生产商决定。

③地址对齐失效

在数据访问周期,如果访问字单元地址时地址bits[1:0]位不是0b00,或者访问半字单元时地址bits[0]位不是0b0,则产生的存储访问失效称为地址对齐失效。在指令预取周期不会产生地址对齐失效。在数据访问周期,如果访问字节单位,不会产生地址访问失效。

④地址变换失效

有两种类型的地址变换失效。一种是基于段的地址变换失效,它指当一级页表描述符的位bits[1:0]=0b00时,表示该一级描述符页表项无效,这时产生基于段的地址变换失效。第二种是基于页的地址变换失效。当二级描述符的位bits[1:0]=0b00时,表示该二级描述符页表项无效,这时产生基于页的地址变换失效。

图15.36判断存储访问失效的全过程。

存储器相关文章:存储器原理




评论


相关推荐

技术专区

关闭