在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2647|回复: 8

[求助] ARM中MMU问题

[复制链接]
发表于 2013-1-9 14:08:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教一下,为什么ARM中的MMU在进行页表搜索(TTW)的时候,要分两步进行呢?它的页表为什么要这样划分,为什么不一步查询呢?谢谢!

TTW

TTW
发表于 2013-1-9 17:09:46 | 显示全部楼层
最主要的原因就是工艺达不到,超短的时间内完成批量查表是很困难的
就好比我们为什么要把一条指令的操作过程分 IF ,ID,EX,MEM,WB ,如果工艺好,也完全可以在不降低clk的频率的情况下把5个操作放一个clk里执行,实际上目前还达不到这么能力
 楼主| 发表于 2013-1-9 22:38:55 | 显示全部楼层
回复 2# yp19890718


    我感觉不是这个原因吧,我看网上说是页表大小的问题,不过我也搞不懂...
发表于 2013-1-10 11:27:00 | 显示全部楼层
回复 3# ysxiliu


    你给的图应该是 带历史页表的2位分支预测,第一级是先预测一个结果,如果预测是有分支,第二级再查表输出一个结果.
 楼主| 发表于 2013-1-10 13:40:55 | 显示全部楼层
回复 4# yp19890718


   哦 这样哦 谢谢你~
发表于 2013-1-11 08:33:01 | 显示全部楼层




    我觉得也还不是这个。一楼说的工艺和速度我觉得如果是放置在片内的部分的话,倒还真有这么一点考虑的。因为一个RAM的深度不能太大。
我认为最主要的是,出于资源考虑,让一个表的entry不要太大。
举一个例子:
      假设,按照你说的用一级查表实现,那么对于32bit的地址索引,要求页表大小能支持最小页为1KB,需要的entry数目是多少呢?答案:4GB÷1KB = 4M,这个太多了,深度太多,查找也受限制。实际上系统的需求一般是,有一部分的页1KB,有一部分的4KB,有些64KB,有些1MB。因此,合理的做法就是分多级表,将页大小相同的放置在同一个表里面。
      X86-64采用64bit寻址,如果按照一级索引,是不可能实现的。因此,X86里面是按照每8bit成为一级,进行了N次寻址之后得到最终的页。
 楼主| 发表于 2013-1-11 10:19:51 | 显示全部楼层
回复 6# timyang8292


   学习了 非常谢谢你!
发表于 2015-3-27 10:04:08 | 显示全部楼层
学习下
发表于 2015-3-30 09:13:54 | 显示全部楼层
应该是页表大小限制,一个页表的大小不能夸一个内存页面。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 11:45 , Processed in 0.021462 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表