打印

请教memory exception的问题.

[复制链接]
1674|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

粉丝