arm内核采用 RISC 设计思想 目标是设计出一套能在高时钟频率下单时钟周期执行的指令集。
RISC思想的体现:
指令集:减少指令种类,是一个指令能在一个时钟周期执行完。程序员可以通过多条指令组合实现复杂功能。CISC则需微程序 要多个周期 流水线:指令通过处理器被分为多个更小的单元,提高吞吐率。 寄存器:RISC 可以使用更多通用寄存器,而CISC则需要更多专用寄存器 load-store结构:处理器只处理寄存器中数据,通过load - store 指令完成数据在寄存器和外部储存的传送。
现在CISC 也引入许多RISC思想
arm指令集相对RISC的区别
一些指令的周期数可变:并不是所有指令都是单周期,比如load/store 指令执行的周期有传送的寄存器个数决定 内嵌桶形移位器产生更为复杂的指令:桶形移位器是一个硬件,在输入寄存器数据被使用之前,桶形移位器可以处理该数据, Thumb 16位指令集 : 能够是处理器既能处理32位指令集也能处理16位指令集。 条件执行:只有但条件满足时才执行指令,减少分支指令执行 增强指令:增加一些数字信号处理指令
存储器层次
几乎所有系统的存储器都是分层的,cache-主存-辅存
存储器数据宽度
即访问一次存储器返回的数据位数,通常有8、16、32、64 如果一个没有cache的系统使用arm32位指令,用16位宽度的存储器,那读取一条指令则需要访问两次存储器
存储器类型
ROM:出厂固定,不可读写,常用来存储启动代码 Flash ROM:可读可写,速度慢,用来存固件 DRAM:可读可写,相比其他RAM价格低,需要毫秒级刷新存储单元,因此在使用时要设置DRAM控制器 SRAM:可读可写,速度比DRAM快,不需要刷新。价格贵,常用做cache SDRAM:百度
存储控制器:
各类不同的存储器被连接到总线上,存储控制器可以由硬件控制,使上电时部分存储器工作,其他存储器则需要软件配置存储控制器,如DRAM
中断控制器:
arm处理器有标准中断控制器和向量中断控制器(VIC) 标题标准中断控制器:
向量中断控制器:区分中断优先级,简化中断源判断。每个中断都有优先级和处理程序。只有在优先级比当前高时,向处理器发出中断信号
存储器重映射:
arm通常允许存储器重映射,目的是上电后先执行ROM里的启动代码,然后把RAM重映射到0x0000000地址空间,让异常向量表处于0x00000000。
|