请教memory exception的问题.

[复制链接]
2263|2
 楼主| ttxs 发表于 2009-2-15 21:39 | 显示全部楼层 |阅读模式
在一个有TLB,两级页表的存储系统中.以如下4种情况来说
1,TLB各项与虚页号逐一比较,无一匹配.
2,TLB有效位valid=0表示:这项不可用.
3,第一级页表valid=0表示:这段页表不在内存中.
4,第二级页表valid=0表示:这个页面不在内存中.

CPU上只有MEXC一个接受memory exception的中断信号,所以它不可能知道详细的memoryexception种类.
这种中断时cpu一定是被锁住了的(不然再取指可能再异常),那么处理这种中断的是ISR,或os吗?还是硬件自动处理?是不是mmu 的工作?


 楼主| ttxs 发表于 2009-2-15 21:46 | 显示全部楼层

TBR,ISR

我看sparc的cpu中有TBR(trap base register),其中的tt域在等于不同的值时TBR指向不同的ISR入口地址。其中竟然也给memoryexception留了一个入口。
那么,请问ISR是如何判断4种异常的种类,还有替换缺失的页的呢?我计算机体系结构学的相当滥,请高手们不要嫌这个问题可笑啊,呵呵。
 楼主| ttxs 发表于 2009-2-15 23:15 | 显示全部楼层

难道说是system mode vs user mode的问题?

我听说CPU有至少2种模式:管理模式,用户模式.
管理模式给操作系统用,用户模式给普通进程用.管理模式可以切换到用户模式,但是用户模式只能通过异常机制跳回操作系统.
在我看来:管理模式,用户模式,差别无非前者被允许控制某些特殊寄存器.     此外操作系统和用户进程的差别还有什么?操作系统的指令不也得通过虚实地址转换才取到cpu里的吗,它自己的页表是什么时候写好的? 操作系统取指时也发生缺页,谁又来处理这次异常?
         
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部