Cortex-A系列:这个系列主要是应用(Application)处理器,这类处理器的特点是高性能,一般支持高速缓存,乱序执行,分支预测,指令多发射等等技术。 Cortex-R系列:这个系列主要是实时(Real-time)处理器,这类处理器的特点是对于外部事件的响应时间在可控范围,这里的实时并不是说处理器的速度快,而是对外部事件的响应时间可预测。
我们知道,在ARMv8之前,处理器可以工作在多种处理器模式(称作processor mode)下,包括User、FIQ、IRQ、Abort、Undefined、System等,之所以存在不同的模式,主要有2个方面的考虑:安全性和高效性。以ARMv7以前为例: 安全性的角度:不同的处理器模式,有不同的硬件访问权限,称作privilege level。主要有2个level,privilege和...
Cortex-R系列:这个系列主要是实时(Real-time)处理器,这类处理器的特点是对于外部事件的响应时间在可控范围,这里的实时并不是说处理器的速度快,而是对外部事件的响应时间可预测。 Cortex-M系列:这个系列主要是微控制(Micro-controller)处理器,这类处理器一般设计相对简单,芯片规模小,功耗值低,一般作为低成本芯片的控...
系统计数器的数值转换成格雷码,以格雷码的形式在芯片中传播;在处理器端,先做跨时钟域采样,这样会保证采样不会采错,然后格雷码转换成二进制。 第二个问题,是多核处理器芯片中要面临的。系统计数器的值要传播给所有的处理器。这时,需要一定的机制保证该值同一时刻(此处不是绝对意义的分毫不差)到达每个处理器端。否...
第2章 ARMv8-A架构和处理器 ARM架构可以追溯到1985年,但它并不是一成不变的。相反,自早期ARM核心以来,它已经进行了大规模的开发,在每一步都增加了新特性和功能: ARMv4 and earlier这些早期的处理器只使用ARM 32位指令集。 ARMv4TARMv4T架构为ARM增加了Thumb 16位指令集到32位指令集中。这是第一个得到广泛...
1)首先需要注意的是,AArch64中,已经没有User、SVC、ABT等处理器模式的概念,但ARMv8需要向前兼容,在AArch32中,就把这些处理器模式map到了4个Exception level。 2)Application位于特权等级最低的EL0,Guest OS(Linux kernel、window等)位于EL1,提供虚拟化支持的Hypervisor位于EL2(可以不实现),提供Security支持的Seuri...
ARMv8是ARM版本升级以来最大的一次改变,ARMv8的架构继承以往ARMv7与之前处理器技术的基础,除了现有的16/32bit的Thumb2指令支持外,也向前兼容现有的A32(ARM 32bit)指令集,扩充了基于64bit的AArch64架构,除了新增A64(ARM 64bit)指令集外,也扩充了现有的A32(ARM 32bit)和T32(Thumb2 32bit)指令集; ...
1)ARMv8-A支持64位模式和32位模式。但在AArch64中,已经没有User、SVC、ABT等处理器模式的概念,为了向下兼容,在AArch32里,就把这些处理器模式map到了4个Exception level。 2)Application位于特权等级最低的EL0,Guest OS(Linux kernel、window等)位于EL1,提供虚拟化支持的Hypervisor位于EL2(可以不实现),提供Secur...
本节来详细描述下ARMv8-A下的异常处理。 异常的概述: 当设备正在愉快的执行时候,此时发生了一个异常,处理器就必须暂停当前的任务,转而去处理发生的异常。当异常处理完毕后,处理就会发回到被打断的程序继续执行。 此图就是描述异常的处理流程。 异常的分类: ...