二十七.关闭MMU

1.计算机存储体系

越往上,越快越贵容量越小
越往下容量越大越慢

2.cache有无对比

没有cache的时候,cpu直接和主存储器进行数据传输,很慢。
有了cache以后,现在cache查找有无cpu需要的数据,有的话直接使用,没有再到主存储器去寻找,找到以后,把数据存到cache里面,以便下次再用到该数据会快很多,cache是比主存储器快很多但是容量小,分为指令cache和数据cache的。

3.虚拟地址:程序中使用的地址

物理地址:实实在在的物理存储设备在系统中的地址。
最终我们应用程序是要访问物理地址,但是鉴于物理地址小,且有可能多个应用程序会同时访问同一个物理地址引起冲突,所以引入虚拟地址,通过映射以后对存储机制进行扩充范围和避免冲突。而重点是如何实现映射机制。


4.MMU作用:把虚拟地址转换成物理地址

(1)上面的图是ARM11之前的结构,要访问cache直接就可以。
(2)下面的图则是ARM11之后包括arm11,要访问cache就要先将地址进行映射,才能到物理地址访问cache。
(3)MMU和cache都是由协处理器cp15控制的

5.代码:

(1)使得I/D cache已有的数据失效


(2)直接关闭cache和MMU







(3)具体实现
主要是MMU和Dcache,至于Icache很宽松。主要是怕在下载和启动内核的过程中,使用到的数据存在Dcache而不放到内存。
@关闭MMU和Cache	
disable_mmu:
	mcr	p15,0,r0,c7,c7,0
	mrc	p15,0,r0,c1,c0,0
	bic	r0,r0,#0x07
	mcr 	p15,0,r0,c1,c0,0
	mov 	pc,	lr


各种平台的CP15的操作是一样的。

(4)思考:
使得之前的数据失效的Rd参数和关闭MMU的Rd是不是要一样???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值