分类: 嵌入式
2011-04-14 17:32:02
ARM_ARCH之基本架构
之前也学过一点点ARM体系架构的知识,但是没有深入学习过,好像也有大半年了,也忘得差不多了, 现在有机会和时间重新补习一下这方面的知识了,嘿嘿!
我参考的资料放在 liaoye163@sina.com 密码 123456
这是我和群友共同维护的。
ARM BASED SYSTEM
ARM BASED SOC
APB advanced peripheral bus 外围总线,挂在一些低速外围设备;
AHB advanced high performance bus 高性能系统总线,挂载一些高速总线;
AMBA advanced microcontroller bus architecture 高级微控制总线架构
更多的详细信息请参考:
http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94307
Harvard: 有两根总线来进行对指令和数据的读取,ARM采用的此体系。
Von Neuman: 只有一个根总线对指令和数据进行读取,所以效率相对低些。
DATA SIZES AND INSTRUCTION
ARM是RISC体系,许多指令的执行在一个时钟周期内完成。
半字(haltword): 16bits
字(word): 32bits
许多ARM实现了双指令集ARM(32bits)和thumb(16bit);
PROCESSOR MODES
ARM有七中基本操作模式:
每种模式都有自己的堆栈所以进行模式切换时不需要保护堆栈。
开机时,缺省处于ARM mode,和SVR状态。
ARM REGISTER
一共有37个寄存器。
介绍一些特殊的寄存器:
PROGRAM STATUS REGISTER
CPSR和SPSR是相同结构的寄存器,CPSR是保存当前程序状态的寄存器,SPSR是进行状态切换时,保存CPSR的值,以便恢复时用到。
PROGRAM COUNTER(R15)
PC的作用是指向CPU将要执行的指令。
STARCK POINTER(R13)
SP是堆栈寄存器。
LINKER REGISTER(R14)
1当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。
2异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要返回的地址
DATE ALIGNED
ARM采用的是字对齐存储,非对齐地址将会产生不可预测的结果。V6结构可以支持非对齐的数据访问。
LITTLE-ENDIAN BIG-ENDIAN
小端存储系统
LSB存储在低地址。
大端存储系统
MSB存储在低地址。
大小端存储解决了寄存器存储到内存的字节顺序问题。
PIPELINE
流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法,目的是提高数据吞吐量(提高处理速度)。但是系统延时(latency)同样也增加了,这是因为在内核执行一条指令前,需要更多的周期来填充流水线。
PC指向的是FETCHED,而不是EXECUTED,但是调试工具隐藏这些。
参考网站:http://hi.baidu.com/a843538946/blog/item/e57cf5f98b2e5f93b901a0cf.html
http://blog.21ic.com/user1/3794/archives/2007/36358.html
水平有限,如果有错误的地方,请指正,thanks
cjok.liao@gmail.com