1.了解虚拟地址和物理地址的关系
2.掌握如何控制MMU来控制虚拟地址到物理地址的转化
3.了解MMU内存方位权限
4.了解TLB、Cache、Write buffer的原理,使用时的注意事项
在2440芯片里面除了CPU之外, Instruction MMU 指令MMU;
Data MMU 数据MMU;
InstructionC ACHE(16KB) 指令cache;
Data CACHE (16KB) 数据cache
全都通过CP15协处理器来进行操作这些
协处理器的含义作用 coprocessor协助主处理器做某些事情, 比如在ARM系统中有cp0 – cp15一共16个协处理器,其中cp15负责管理mmu icache
1 int sum() 2 { 3 int I; 4 int sum = 0; 5 for(I = 0; I <= 100; I++ ) 6 { 7 sum += I; 8 } 9 return sum; 10 }
1 不断的读写地址A和B
2 不断的执行for循环里面代码
2.1 取指令
2.2 执行指令
问SDRAM非常慢,那么怎么提高程序执行效率? 先引入一个感念,程序局部性原理
- 时间局部性:在同一段时间里,有极大的概率访问同一地址的指令或数据
- 空间局部性: 有极大概率访问到相邻空间的指令/数据
我们在一个比较慢的SDRAM上能不能在CPU上开一个高速缓存,把这些指令放进高速缓存icache
指令cache只有16KB 数据cache也只有16KB 而我们的SDRAM有64MB空间,显然不可能存储SDRAM中所有的内容,它只能存储一部分
cache的示意图
以数据开始为例
- 1 程序要读地址A的数据
ldr r0, [A的数据]