ARM920T及其MMU,Cache学习杂记(一)

本文详细介绍了S3C2410中ARM920T内核的特性,包括其16KB指令和数据缓存、MMU功能,并解释了如何通过CP15寄存器进行缓存管理和MMU配置。文中还提供了读写协处理器寄存器的具体指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载地址:http://blog.chinaunix.net/uid-7627289-id-2047807.html


S3C2410使用ARM920T的内核,这个内核分别有16KB的指令和数据cache,并且带MMU,要使用这些功能就必须通过协议处理器CP15操作相关寄存器实现。
ARM920T是由ARM9TDMI+MMU+高速Cache三部分组成。ARM920T有两个协处理器分别是CP14及CP15,CP14用于调试,CP15则用于存储控制及测试控制。
 
通常我们使用如下命令来读写协处理器的寄存器:
MCR/MRC{cond},p15,opcode_1,Rd,CRn,CRm,opcode_2
Opcode_1, opcode_2及CRm必须为0,除非这些值被用来选择特定的操作。
 
Reg0:ID CODE 寄存器,只读32位,设备ID代码
       31:24    开发厂商       0x41
       23:20    规范版本       0x01
       19:16    架构版本(V4T)     0x02
       15:4     Part号码        0x920
       3:0       Layout版本    0x0
操作指令:MRC p15,0,Rd,C0,C0,0
Opcode_2必须为非1的数,因为为1时,访问Reg0的另一个地址。
 
Reg0:Cache类型,包含ARM缓存信息
       操作指令:MRC p15,0,Rd,C0,C0,1 
28:25 Cache type 0110
24 Harvard/Unified 1 (defines Harvard cache)
 
20:18 DCache 大小 101 ( 16KB)
17:15 DCache associativity 110 (defines 64 way)
13:12 DCache words per line 10 (defines 8 words per line)
 
8:6 ICache size 101 (defines 16KB)
5:3 ICache Associativity 110 (defines 64 way)
1:0 ICache words per line 10 (defines 8 words per line)
        
Reg1:控制寄存器
       操作指令:    MRC p15,0,Rd,C1,C0,0        读
                            MCR p15,0,Rd,C1,C0,0        写
该寄存器控制 缓存,MMU,及时钟选项,还控制系统的大小端选择,错误检测使能等。
Register Bits Name Function Value
31 iA bit Asynchronous clock select See Table 2-11 on page 2-11.
30 nF bit notFastBus select See Table 2-11 on page 2-11.
29:15 – Reserved Read = Unpredictable
Write = Should be zero
14 RR bit Round robin replacement 0 = Random replacement
1 = Round robin replacement
13 V bit Base location of exception
registers
0 = Low addresses = 0x0000 0000
1 = High addresses = 0xFFFF 0000
12 I bit Instruction cache enable 0 = Instruction cache disabled
1 = Instruction cache enabled
11:10 – Reserved Read = 00
Write = 00
9 R bit ROM protection This bit modifies the MMU protection system.
See Table 3-6 on page 3-20
8 S bit System protection This bit modifies the MMU protection system.
See Table 3-6 on page 3-20
7 B bit Big-endian/little-endian 0 = Little-endian operation
1 = Big-endian operation
6:3 – Reserved Read = 1111
Write = 1111
2 C bit Data cache enable 0 = Data cache disabled
1 = Data cache enabled
1 A bit Alignment fault enable Data address alignment fault checing.
0 = Fault checking disabled
1 = Fault checking enabled
0 M bit MMU enable 0 = MMU disabled
1 = MMU enabled
 
Reg2 转换表寄存器
       16KB字节对齐,因此低13:0位应该为0,指向一级转换表基址,MMU相关
Reg3 域访问控制寄存器,
每两个位表示一个域的访问控制,MMU相关
Reg5 错误状态寄存器(FSR)
       MMU相关
Reg6 错误地址寄存器(FAR)
       最后一次数据错误发生时的MVA(修改的虚拟地址)MMU相关
Reg7 Cache操作寄存器 只写
       管理指令cache及数据cache
Reg8 TLB操作寄存器
Reg9 Cache lockdown
Reg10 TLB lockdown
 
Reg13 ProcID  (复位后为0)
Reg15 测试使用,不允许访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值