ARM Cortex-A7

ARM Cortex-A7

介绍

ARM Cortex-A7是一颗高性能,低电源功耗基于ARMV7-A架构得处理器,处理器单元有1-4个计算0核心,每一个核心带有一个L1级别的子缓存系统,一个可选的GIC和一个可以选的二级cache控制器单元.

        L1                                    L1 data
instruction  Cache                           data Cache
                            Processor

Optional Interrupt          Snoop Controller Unit(SCU)      Optional L2 Cache
    Controller                                                  Controller

                ACE master inteface

ARMCortex-A7设计

  • ARM架构
  • 高级微控制总线架构
  • Debug架构
  • 通用中断处理器架构
  • 通用定时器架构

ARM架构

基于SIMDv2扩展整形和浮点型的向量操作

注意: 高级SIMD架构扩展,相关联的实现,和软件支持是参考NEON技术

VFPv2(浮点向量计算)架构扩展是完全基于IEEE754标准

更高的安全性实现

地址范围提升到40bit

多处理功能

高级微控制器总线架构

ACE和Debug调试接口

Debug架构

基于ARMV7.1 Debug架构

通用中断控制架构

GIC(Generic Interrupt Controller) V 2.0 包括可视化扩展

通用定时架构

可视化扩展

特点

  • 完全的ARMV7-A架构实现
  • 流水线直接的和间接的指令预测
  • L1级内存系统和内存管理单元
  • L2级内存系统
  • APB调试接口
  • 支持调试追踪的ETM(Embedded Trace Macrocell)接口
  • 可选的VFPv4-D16 FPU,Media Processing Enging(MPE),NEON技术

接口

ACE APB ETM
Design For Test(DFT)
Memory Built-In Self Test(MBIST) controller

可配置项

处理器配置项 Floating-point Unit(FPU)或者Media Processing Enging(NEON),FPU或者FPU,NEON 默认(FPU NEON)

全局配置项

指令缓存大小 8KB,16KB,32KB or 64KB 默认32KB
数据缓存大小 8KB,16KB,32KB or 64KB 默认32KB
L2缓存控制单元 是否使用 默认使用
L2缓存大小 无,128KB,256KB,512KB,1024KB 默认256KB
L1数据读写周期 2个周期或者三个周期 默认2个周期
可共享的硬中断 0-480/32 默认0
处理器数量 1,2,3或者4个 2
集成GIC 是/否 否

功能

数据处理单元(DPU Data Processing Unit)

数据处理单元处理大部分的可视化的状态计算,如通用寄存器,状态寄存器,控制寄存器。它解码和执行指令,位于ARM架构下在寄存器之间操作数据位,
通过预取Prefetch Unit(PFU)指令单元,数据处理单元执行指令将要处理的数据在内存系统通过接口和数据处理单元之间传输,这将会管理加载数据和存储数据操作。

系统协控制器

系统协控制器提供配置和控制内存系统相关的功能

指令端的存储系统

  • 指令存储单元

指令存储单元(ICU-Instruction Cache Unit)包含指令存储控制器金和相关的填充缓存,Cortex A7的指令缓存系统是双路相关的,使用虚拟索引物理标记(VIPT)缓存行,每行最多可容纳8条AMR或Thumb 32位指令,或最多16条Thumb 16位指令。

  • 预取值单元

预取值单元( The Prefetch Unit - PFU )包含指令从指令缓存或者额外的内存储器,预测分支指令流的执行结果,接着通过指令传输到数据处理单元,在已知的指令周期内,最多有4条指令可以获取到,有两条指令可以传给数据处理单元.

  • 目的指令缓存分支

预取指也包含四步分支指令缓存,每个条目最多存储两个指令缓存取指,并使预测为已采用的B和BL指令影子能够被消除。它的实现是透明的,所以不会被刷新在切换到下一个上下文的时候。

  • 目的地址缓存分支

PFU也包含一个8层深的分支地址缓存系统,用来预测必然的间接的目的地址,实现也是透明的,同上。

  • 分支预测

分支预测是一个全类型预测用在历史寄存器和256条的匹配表里

  • 返回堆

指令预取值包含8个用来返回的堆来加速过程调用,对于每个过程调用,返回地址再插入硬件堆,当一个过程返回被识别到的时候,它的地址在返回堆中被弹出,实现也是透明的,同上.

数据端的存储系统

  • 数据存储单元

L1数据缓存控制器,会产生控制信号和关联的嵌入式标签,数据,不同源的内存请求,数据缓存是4路虚拟地址索引相关联的查找协议,从而实现系统中明确的地址管理。

读/取管道接口带有DPU和TLB功能

系统协处理单元会直接影响主存储器的数据缓存和间接的指令缓存通过指令缓存单元.

接口收到连续的请求从(Snoop Controller Unit-SCU)嗅探控制单元

数据缓存单元包含了合并本地和全局的独立的监视器,监视器可以被设置为独立的状态通过LDREX指令执行在自己的处理器上,也可以被清除开放成其他状态。

Cortex-A7使用MODESI协议,通过ACE修改同等的MODESI状态。为了主存储器的一致性,MODESI描述了L1的共享数据缓存状态.

M 修改/标记(Modified/UniqueDirty) 只用在缓存和脏数据
O 拥有/共享(Owned/SharedDirty) 可能用在一个缓存和它的脏数据上
E 独自/单独(Exclusive/UniqueClean) 只存在本缓存并且是干净的
S 共享/公共清除(Shared/SharedClean) 可能在一个或多个缓存是清除的
I 无效的 不在缓存

读分配模式

L1数据缓存只支持黑白规则

数据缓存重置为无效

ARMV7 虚拟存储系统不支持CP15动作来无效整个数据缓存.
  • 存储缓冲

    存储缓存保留了存储操作当有加载/存储管道的时候

  • 总线接口单元和SCU接口

    总线接口(BUS Inteface Unit-BIU)包括SCU接口和缓冲.

L1存储系统

处理器一级处理单元包括

拆分的指令和数据存储
存储系统的内存属性导出

处理器有如下特点

支持指令集和数据缓存的大小在8KB到64KB之间
伪随机存储替换策略
可禁用独立存储缓存
支持LDM和LDRD操作数据流
缓存未命中时关键字来填充
所有的缓存和关联的标签和有效的存储块都假设通过标准的内存编译器实现

L2存储系统

可选的通用中断控制器

调试

性能监视器