ArmCortex-R52 处理器
修订版:r1p3
技术参考手册
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
100026_0103_00_en
ArmCortex-R52 处理器
技术参考手册
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
发行信息
文档历史记录
问题
Date
保密性
改变
0000-00
12 八月 2016
机要
r0p0 的首次发布。
0100-00
30 三月 2017
非机密
r1p0 的第一个版本。
0101-00
13 九月 2017
非机密
r1p1 的第一个版本。
0101-01
16 二月 2018
非机密
r1p1 的第二个版本。
0102-00
18 一月 2019
非机密
r1p2 的第一个版本。
0103-00
28 七月 2020
非机密
r1p3 的第一个版本。
非机密所有权声明
本文档受版权和其他相关权的保护,本文档中包含的信息的实践或实施可能受到一项或多项专利或未决专利申请的保护。未经 Arm 事先明确书面许可,不得以任何方式以任何形式复制本文档的任何部分。除非特别说明,否则本文档不以禁止反言或其他方式授予任何知识产权的明示或暗示许可。
您访问本文档中的信息的条件是您接受您不会使用或允许他人使用这些信息来确定实施是否侵犯任何第三方专利。
本文档按“原样”提供。ARM 不提供任何明示、暗示或法定的陈述和保证,包括但不限于对文档的适销性、令人满意的质量、不侵权或适用于特定用途的暗示保证。为避免疑义,Arm 对第三方专利、版权、商业秘密或其他权利不作任何陈述,也未进行任何分析以识别或理解其范围和内容。
本文档可能包含技术上的不准确或印刷错误。
在法律不禁止的范围内,在任何情况下,ARM 均不对任何损害负责,包括但不限于因使用本文档而引起的任何直接、间接、特殊、偶然、惩罚性或后果性损害,无论其原因如何,也无论责任理论如何,即使 ARM 已被告知此类损害的可能性。
本文件仅包含商业项目。您应负责确保本文档的任何使用、复制或披露完全符合任何相关的出口法律和法规,以确保本文档或其任何部分不会直接或间接违反此类出口法律进行出口。使用“合作伙伴”一词来指代 Arm 的客户并不意味着与任何其他公司建立或指代任何合作伙伴关系。Arm 可随时更改本文档,恕不另行通知。
如果这些条款中包含的任何条款与与 Arm 签订的涵盖本文档的任何点击或签署的书面协议的任何条款相冲突,则点击或签署的书面协议优先于并取代这些条款的冲突条款。为方便起见,本文件可能会被翻译成其他语言,您同意,如果本文档的英文版本与任何翻译版本之间存在任何冲突,则以本协议的英文版本的条款为准。
Arm 公司徽标和文字标有 ™ Arm Limited(或其子公司)在美国和/或其他地方的注册商标或商标。保留所有权利。本文档中提及的其他品牌和名称可能是其各自所有者的商标。请遵循 Arm 的商标使用指南,http://www.arm.com/company/policies/ 商标。
版权所有 © 2016–2020 Arm Limited(或其附属公司)。保留所有权利。
ArmCortex-R52 处理器
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
2
非机密
手臂有限公司。公司02557590在英国注册。
110 Fulbourn Road, 剑桥, 英格兰 CB1 9NJ.
(LES-PRE-20349)
保密状态
本文档为非机密文件。根据 Arm 和 Arm 向其交付本文档的一方签订的协议条款,使用、复制和披露本文档的权利可能受到许可限制。
不受限制的访问是 Arm 内部分类。
产品状态
本文档中的信息是最终信息,即针对已开发产品的信息。
网址
developer.arm.com
ArmCortex-R52 处理器
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
3
非机密
内容
ArmCortex-R52 处理器技术参考手册
前言
关于本书 9
Feedback 12
第 1 章
介绍
1.1
关于 Cortex-R52 处理器 1-14
1.2
组件块 1-18
1.3
接口 1-22
1.4
支持的标准 1-24
1.5
文档 1-25
1.6
设计过程 1-26
1.7
产品修订 1-27
第 2 章
程序员模型
2.1
关于程序员模型 2-29
2.2
Armv8-R 架构概念 2-31
第 3 章
系统控制
3.1
关于系统控制 3-37
3.2
寄存器摘要 3-38
3.3
AArch32 寄存器说明 3-74
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
4
非机密
第 4 章
时钟和复位
4.1
时钟和时钟使能 4-199
4.2
复位信号 4-200
4.3
复位相关信号 4-203
第 5 章
电源管理
5.1
关于电源管理 5-205
5.2
本地和区域时钟门控 5-206
5.3
建筑时钟门控 5-207
5.4
电源门控 5-209
第 6 章
初始化
6.1
初始化 6-214
6.2
中医 6-215
6.3
进入 EL1 6-217
第7章
存储系统
7.1
关于存储器系统 7-219
7.2
中医记忆 7-221
7.3
1 级缓存 7-222
7.4
直接访问内部存储器 7-225
7.5
AXIM interface 7-228
7.6
低延迟外设端口7-233
7.7
闪存接口 7-241
7.8
AXIS 接口 7-243
7.9
错误检测和处理 7-245
7.10
独家访问 7-249
7.11
总线超时 7-250
第8章
内存保护单元
8.1
关于 MPU 8-252
8.2
MPU 区域 8-253
8.3
虚拟化支持 8-256
8.4
MPU 寄存器访问 8-258
8.5
MPU 寄存器摘要 8-259
第9章
通用中断控制器
9.1
关于GIC 9-261
9.2
GIC 功能说明 9-262
9.3
GIC 计划模型 9-266
第10章
通用定时器
10.1
关于通用定时器 10-347
10.2
通用定时器功能说明 10-348
10.3
通用定时器寄存器汇总 10-349
第11章
调试
11.1
关于Debug 11-351
11.2
调试寄存器接口 11-354
11.3
系统寄存器摘要 11-356
11.4
系统寄存器说明 11-359
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
5
非机密
11.5 内存映射寄存器摘要 11-363
11.6
存储器映射寄存器说明 11-367
11.7
外部调试接口 11-384
11.8
ROM 表 11-387
第12章
性能监控单元
12.1
关于 PMU 12-399
12.2
PMU 寄存器摘要 12-401
12.3
PMU 寄存器说明 12-403
12.4
存储器映射寄存器摘要 12-408
12.5
存储器映射寄存器说明 12-410
12.6
事件 12-419
12.7
中断 12-427
12.8
导出 PMU 事件 12-428
第13章
交叉触发
13.1
关于交叉触发器 13-430
13.2
触发输入和输出 13-432
13.3
皮质-R52 CTM 13-433
13.4
交叉触发寄存器摘要 13-434
13.5
交叉触发寄存器说明 13-436
第14章
嵌入式跟踪宏单元
14.1
关于ETM 14-448
14.2
ETM 跟踪单元生成选项和资源 14-450
14.3
ETM 事件连接 14-452
14.4
操作 14-453
14.5
操作和执行模式 14-457
14.6
寄存器摘要 14-459
14.7
寄存器说明 14-463
第15章
高级 SIMD 和浮点支持
15.1
关于高级 SIMD 和浮点支持 15-529
15.2
浮点支架 15-530
15.3
AArch32单精度浮点说明15-531
15.4
访问特征标识寄存器 15-532
15.5
寄存器摘要 15-533
15.6
寄存器说明 15-534
附录A
信号说明
A.1
时钟和时钟使能信号 Appx-A-545
A.2
重置 Appx-A-546
A.3
复位相关信号 Appx-A-547
A.4
配置输入 Appx-A-548
A.5
内存纠错报告信号 Appx-A-549
A.6
事件输出信号 Appx-A-553
A.7
MRP 信号 Appx-A-558
A.8
总线接口信号 Appx-A-560
A.9
调试和跟踪接口信号 Appx-A-576
A.10
通用定时器信号 Appx-A-580
A.11
电源管理信号 Appx-A-581
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
6
非机密
A.12 DFT 和在线 MBIST 信号 Appx-A-583
A.13
GIC 分销商外部消息端口信号 Appx-A-584
A.14
中断输入信号 Appx-A-585
A.15
DCLS 信号 Appx-A-586
A.16
分路/锁定信号 Appx-A-587
附录B
循环正时和联锁行为
B.1
关于循环正时和联锁行为 Appx-B-589
B.2
说明循环计时 Appx-B-592
B.3
管道行为 Appx-B-609
附录C
处理器不可预测的行为
C.1
通过指令 Appx-C-15 使用 R614
C.2
IT 块内不可预测的指令 Appx-C-616
C.3
从设备内存 Appx-C-617 获取指令
C.4
指令 Appx-C-618 的特定不可预测情况
C.5
跨 MPU 区域加载/存储访问 Appx-C-622
C.6
Armv8 调试不可预测的行为 Appx-C-623
C.7
其他不可预测的行为 Appx-C-628
附录D
PMC-R52型
D.1
简介 Appx-D-630
D.2
PMC-R52 的特点和优势 Appx-D-631
D.3
MBIST 使用模型 Appx-D-632
D.4
短突发软件透明算法 Appx-D-634
D.5
生产测试三月算法 Appx-D-636
D.6
示例测试代码 Appx-D-644
D.7
功能说明 Appx-D-645
D.8
编程器型号 Appx-D-648
附录E
修改
E.1
修订 Appx-E-688
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
7
非机密
前言
本前言介绍了 ArmCortex-R52 处理器技术参考手册。
它包含以下内容:
•
关于这本书,见第 9 页。
•
第 12 页的反馈。
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
8
非机密
关于本书
本书适用于 Cortex-R52 处理器。
产品修订状态
rmpn 标识符表示本书中描述的产品的修订状态,例如 r1p2,其中:
rm 标识产品的主要修订版,例如 r1。
pn 标识产品的次要修订或修改状态,例如 p2。
目标受众
本书是为设计或编程使用 Cortex-R52 处理器的片上系统 (SoC) 的系统设计人员、系统集成商和程序员编写的。
使用本书
本书分为以下几章:
第 1 章 引言
本章介绍 Cortex-R52 处理器。
第 2 章 程序员模型
本章介绍程序员模型。
第 3 章 系统控制
本章介绍系统寄存器及其结构和操作。
第 4 章 时钟和复位
本章介绍处理器中使用的时钟和复位。
第 5 章 电源管理
本章介绍 Cortex-R52 处理器提供的电源管理功能。
第 6 章 初始化
本章介绍初始化 Cortex-R52 处理器的注意事项。
第 7 章 内存系统
本章介绍内存系统。
第 8 章 内存保护单元 本章介绍 MPU。
第 9 章 通用中断控制器
本章介绍通用中断控制器 (GIC) 的 Cortex-R52 处理器实现。
第 10 章 通用计时器
本章介绍 Arm 通用定时器的 Cortex-R52 处理器实现。
第 11 章 调试
本章介绍 Cortex-R52 处理器调试寄存器,并展示如何使用它们的示例。
第 12 章 性能监视单元
本节介绍性能监控单元 (PMU) 功能及其使用的寄存器。
第13章 交叉触发
本章介绍 Cortex-R52 处理器的交叉触发逻辑。
第 14 章 嵌入式跟踪宏单元
本章介绍用于 Cortex-R52 处理器的嵌入式跟踪宏单元 (ETM)。
前言
关于本书
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
9
非机密
第 15 章 高级 SIMD 和浮点支持
本章介绍高级 SIMD 和浮点功能以及处理器使用的寄存器。
附录 A 信号说明
本附录介绍了 Cortex-R52 处理器信号。
附录 B 循环时序和联锁行为
本附录描述了 Cortex-R52 处理器上指令的循环时序和联锁行为。
附录 C 处理器不可预测的行为
本附录描述了特别感兴趣的特定 Cortex-R52 处理器行为。这些行为不同于 Arm 标准行为。
附录 D PMC-R52
本附录介绍了用于 Cortex-R52 处理器的可编程 MBIST 控制器 (PMC)。
附录 E 修订
本附录介绍了本书已发行各期之间的技术变化。
词汇表
ArmGlossary 是 Arm 文档中使用的术语列表,以及这些术语的定义。Arm 术语表不包含行业标准的术语,除非 Arm 的含义与公认的含义不同。
有关详细信息,请参阅 ArmGlossary。
排版约定
斜体的
介绍特殊术语,表示交叉引用和引用。
bold
突出显示界面元素,例如菜单名称。表示信号名称。在适当的情况下,也用于描述性列表中的术语。
面包车
表示可以在键盘上输入的文本,例如命令、文件和程序名称以及源代码。
面包车
表示命令或选项的允许缩写。您可以输入带下划线的文本,而不是完整的命令或选项名称。
斜体小型货车
表示等宽文本的参数,其中参数将替换为特定值。
等宽粗体
在示例代码之外使用时表示语言关键字。
<and>
将汇编程序语法的可替换术语括在代码或代码片段中。例如:
MRC 第 15 页, 0, <Rd>, <CRn>, <CRm>, <Opcode_2>
小资本
在正文中用于一些具有特定技术含义的术语,这些术语在
ArmGlossary。例如,IMPLEMENTATION DEFINED、IMPLEMENTATION SPECIFIC、 和 UNPREDICTABLE
.
前言
关于本书
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
10
非机密
时序图
下图说明了时序图中使用的组件。当变化发生时,它们有明确的标签。不得假定任何在关系图中未显式说明的计时信息。
着色总线和信号区域是未定义的,因此总线或信号可以假定当时着色区域内的任何值。实际液位不重要,不影响正常运行。
时钟
从高到低
短暂的
最高价/最低到最高价
巴士稳定
总线到高阻抗
巴士换乘
对稳定总线的高阻抗
图1 时序图约定的关键
信号
信号约定如下:
信号电平
置位信号的电平取决于信号是高电平有效还是低电平有效。断言的意思是:
•
HIGH表示高电平有效信号。
•
LOW 表示低电平有效信号。
小写 n
在信号名称的开头或结尾,n 表示低电平有效信号。
补充阅读
本书包含特定于此产品的信息。有关其他相关信息,请参阅以下文档。
Arm 出版物
•
AMBA3 APB 协议 v1.0 规范 (IHI 0024B)。
•
AMBA4 ATB 协议规范 ATBv1.0 和 ATBv1.1 (IHI 0032)。
•
AMBAAXI和ACE保管规范AXI3、AXI4和AXI4-Lite、ACE和ACE-Lite(IHI 0022)。
•
ArmArchitecture 参考手册补充 Armv8,用于 Armv8-R 架构配置文件 (DDI 0568)。
•
ArmArchitecture 参考手册 Armv8,用于 Armv8-A 架构配置文件 (DDI 0487)。
•
ArmCoreSightArchitecture 规范 v2.0 (IHI 0029D)。
•
ArmEmbedded 跟踪宏单元架构规范 ETMv4 (IHI 0064)。
•
ArmGeneric 中断控制器体系结构规范 GIC 体系结构版本 3.0 和版本 4.0 (IHI 0069)。
•
低功耗接口规范 ArmQ 通道和 P 通道接口 (IHI 0068)。
以下机密书籍仅供被许可人使用:
•
ArmCortex-R52 处理器配置和签核指南 (100027)。
•
ArmCortex-R52 处理器集成手册 (100028)。
•
Armv8 AArch32 行为 (PRD03-GENC-010544)。
其他出版物
•
IEEE二进制浮点运算标准,ANSI/IEEE Std 754-2008。
前言
关于本书
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
11
非机密
反馈
关于此产品的反馈
如果您对本产品有任何意见或建议,请联系您的供应商并提供:
•
产品名称。
•
产品修订版或版本。
•
提供尽可能多的信息的解释。如果合适,包括症状和诊断程序。
对内容的反馈
如果您对内容有任何意见,请发送电子邮件至 errata@arm.com。给:
•
标题为 Arm Cortex-R52 处理器技术参考手册。
•
数字100026_0103_00_en。
•
如果适用,请提供您的评论所指的页码。
•
对您的评论的简明解释。
Arm 还欢迎有关添加和改进的一般建议。
Note
Arm 仅在 Adobe Acrobat 和 Acrobat Reader 中测试 PDF,在与任何其他 PDF 阅读器一起使用时,无法保证所表示文档的质量。
前言
反馈
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
12
非机密
第 1 章
介绍
本章介绍 Cortex-R52 处理器。
它包含以下部分:
•
1.1 关于第 1-14 页的 Cortex-R52 处理器。
•
1.2 第 1-18 页的组件块。
•
1.3 第 1-22 页的接口。
•
1.4 第 1-24 页支持的标准。
•
1.5 第 1-25 页的文档。
•
1.6 第 1-26 页的设计过程。
•
1.7 第 1-27 页的产品修订。
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-13
非机密
1.1
关于 Cortex-R52 处理器
Cortex-R52 处理器是一款中等性能、有序超标量处理器,主要用于汽车和工业应用。它还适用于各种其他嵌入式应用,例如通信和存储设备。
Cortex-R52 处理器有一到四个内核,每个内核实现一个符合 Armv8-R 标准的处理元件 (PE)。在 Cortex-R52 的上下文中,PE 和内核在概念上是相同的。
多个受保护的内存系统架构 (PMSA) 上下文可以使用虚拟化技术在同一内核上执行,以包含它们。该处理器能够包含不同上下文的实时性能,从而防止一个上下文影响更关键上下文的响应时间和确定性。处理器可以具有用于双核锁步 (DCLS) 操作的逻辑和比较器实例的冗余副本。
下图显示了 Cortex-R52 处理器系统的示例。
处理器
访问
或从核心
0-2 记忆
中断
中断导出
GIC经销商
共享
外设
共享
RAM
系统总线
闪光
CoreSight调试、跟踪
和校准
MRP
调试、跟踪、
and
RAM
校准
跟踪缓冲区
ETM
调试
AXIM
interface 0
AXIM
interface 1
AXIM
interface 2
AXIS
interface
LLPP
interface 0
LLPP
interface 1
LLPP
interface 2
私人
外设
私人
外设
私人
外设
闪光
interface 0
闪光
interface 1
闪光
interface 2
DMA
核心 0
1 级缓存
紧密耦合
记忆
核心 1
1 级缓存
紧密耦合
记忆
核心 2
1 级缓存
紧密耦合
记忆
闪光
闪光
RAM
PMC-R52型
MBIST公司
interface
图1-1 Cortex-R52处理器系统示例
本节包含以下小节:
•
1.1.1 第 1-14 页的功能。
•
1.1.2 第 1-15 页的接口。
•
1.1.3 第 1-15 页上的配置选项。
1.1.1
特征
Cortex-R52 处理器的主要功能包括:
•
最多 4 个内核,每个内核都有一个 8 级有序的超标量流水线,具有分支预测功能。
•
纠错码 (ECC)、单纠错双误检测 (SECDED)、保护
所有实例化的缓存标记和数据,以及紧密耦合存储器 (TCM) RAM 以及连接的闪存。
•
对数据、地址、控制和响应有效载荷以及握手信号提供可选的信号完整性保护,并为主 AXI 主站 (AXIM) 接口、AXI 从站 (AXIS) 接口、低延迟外设端口 (LLPP) 接口和闪存接口提供可选互连保护。
•
错误报告界面。
1 简介 1.1 关于 Cortex-R52 处理器
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-14
非机密
• 电源管理。
•
Armv8-R 调试提供硬件断点和监视点、自托管和外部调试。它还支持调试目标和主机之间的通信。
•
嵌入式跟踪宏单元 (ETM),用于指令和数据跟踪。
•
用于仿真和校准的内存重建端口 (MRP)。
•
基于 PMUv3 架构的性能监控单元 (PMU) 支持。
•
交叉触发接口 (CTI) 用于多处理器调试。
•
具有虚拟化的集成式快速响应通用中断控制器 (GIC)。
•
在线内存内置自检 (MBIST) 接口,用于在启动时和启动后按计划的时间间隔测试内存。
1.1.2
接口
Cortex-R52 处理器具有多个外部接口。
下图显示了Cortex-R52处理器的外部接口。箭头表示每个接口中信号的方向。
处理器
主接口
外设端口
调试 APB
时钟
重 置
配置
电源控制
DFT
MBIST公司
AXI 从站
AXI 主控
Test
权力
管理
调试
通用定时器
PMU 事件
ETM
核心 [N-1:0]
计数器
中断
ATBI
调试
调试 APB
奴隶
GIC经销商
MRP
MRP[N]
冗余核心控制
中断导出
LLPP
ATBD
错误报告
闪光
图1-2 Cortex-R52处理器接口
1.1.3
配置选项
Cortex-R52 处理器具有可在实施和集成阶段进行配置的选项,以满足您的功能要求。
下表显示了处理器的可配置选项。
1 简介 1.1 关于 Cortex-R52 处理器
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-15
非机密
表1-1 配置选项
特征
选项
完成于
核心数
1-4 个内核。
实现
锁步
是否包含 DCLS 的冗余逻辑、浮点转换和比较器。
具有 2、4、6 或 8 个内核逻辑实例的 DCLS 配置,具体取决于配置的内核数。
实现
EL1 控制的 MPU
每个内核有 16、20 或 24 个可编程 EL2 控制的内存保护单元 (MPU) 区域。
实现
EL2 控制的 MPU
每个内核有 0、16、20 或 24 个可编程 EL2 控制的 MPU 区域。
实现
AXI 总线保护
不包括总线保护,仅包括信号完整性保护,或包括信号完整性和互连保护。
实现
RAM保护
包含所有 RAM 或不包括在内。
实现
进入中断控制器的中断 (SPI) 数
32-960 的倍数为 32,每个内核至少有 32 个中断。
实现
AXIS ID 位
任何非零数字,但首选 5-16。
实现
每个内核的高级 SIMD 和浮点功能
仅单精度浮点或单精度和双精度浮点以及高级 SIMD。
实现
每个核心上三个 TCM 中每个的大小
0KB、8KB-1MB(2 的幂)。
实现
每个核心的 TCM 等待状态
0 或 1 等待状态。
实现
每个内核的指令缓存大小为 4KB、8KB、16KB、32KB 或完全排除。
实现
每个内核的数据缓存大小
4KB、8KB、16KB、32KB 或完全排除。
实现
GIC的外部设备接口
0 或 1 个外部设备。
实现
闪存ECC方案
在 64 位 ECC 和 128 位 ECC 之间切换闪存完整性保护方案。
实现
重置所有寄存器
只有必需的寄存器或所有编程器可见的寄存器才会在硬件中复位。
集成
TCM开机
在启用ATCM并在地址0x0时启动,或在重置时禁用。
集成
闪存启动
在复位时启用或禁用闪存的情况下启动。
集成
闪存接口基址
Flash接口区域的基址。
集成
闪存区域连接
闪存区域访问AXIM接口或闪存接口。
集成
LLPP 接口基址和大小 LLPP 区域的基址和大小(2 的幂)。
集成
LLPP地区目前平局
LLPP区域访问AXIM接口或LLPP。
集成
TCM的基址
AXIS界面显示的TCM区域的基址。
集成
处理器配置
Cortex-R52 处理器可以配置为实现 DCLS 和拆分/锁定配置。
DCLS
在 DCLS 配置中,每个内核的大多数内核逻辑都有第二个冗余副本,以及共享逻辑的冗余副本。
1 简介 1.1 关于 Cortex-R52 处理器
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-16
非机密
冗余逻辑由与功能逻辑相同的输入驱动。具体而言,冗余内核逻辑与功能内核共享相同的缓存 RAM 和 TCM。因此,只需要一组缓存RAM和TCM。冗余逻辑与内核同步运行,但不会以任何方式直接影响处理器行为。处理器输出到系统的其余部分,而缓存、RAM 和 TCM 的内核输出完全由功能内核驱动。
在实现过程中,可以包括比较器逻辑,以比较冗余逻辑和功能逻辑的输出。这些比较器可以检测由于辐射或电路故障而在任一逻辑中发生的单个故障。当与RAM错误检测方案一起使用时,可以保护系统免受故障影响。
如果您要实施 DCLS 配置,请联系 Arm 了解更多信息。
拆分/锁定
在拆分/锁定配置中,每个内核必须有两个或四个完整的冗余副本。下表显示了在锁定模式和拆分模式下如何使用内核。在下表中:
•
物理内核数为 N。
•
锁定模式下使用的内核数为 LOCK_N。
•
拆分模式下使用的内核数为 SPLIT_N。
表1-2 拆分/锁定配置
N LOCK_N SPLIT_N
2
1
2
4
2
4
在锁定模式下,高阶内核充当低阶内核的冗余副本。例如,如果 N 为 4,则逻辑上只存在低阶内核,即内核 0 和内核 1。核心 2 和核心 3 是高阶内核,它们在逻辑上不存在,但用作冗余副本。尽管存在,但属于高阶内核的输入和输出、缓存 RAM 和 TCM 将被禁用,并且不得在锁定模式下使用。
在拆分模式下,与所选物理内核数关联的所有接口、缓存 RAM 和 TCM 都存在并启用,但无法进行冗余检查。
与DCLS类似,可以包括比较器逻辑,以比较锁定模式操作期间冗余逻辑和功能逻辑的输出。拆分模式操作禁用比较器逻辑。
对于拆分/锁定,必须设置新的输入信号 CFGSLSPLIT,以确定是配置了拆分模式还是锁定模式。如果选择锁定模式,则除 CFGSLSPLIT 外,还必须驱动所有 DCLS 信号。如果选择拆分模式,则除了 CFGSLSPLIT 之外,只需要驱动 CLKINDCLS。有关 DCLS 信号的详细信息,请参阅第 Appx-A-586 页上的 A.15 DCLS 信号。
如果要实现拆分/锁定配置,请联系 Arm 了解更多信息。
相关参考
1.2 第 1-18 页上的组件块
1 简介 1.1 关于 Cortex-R52 处理器
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-17
非机密
1.2
组件块
下图显示了双核配置中处理器的主要组件块。
L1
指令
缓存
L1 数据
缓存
调试
核心 0
闪光
AXIM
LLPP
AXIS
核心 0 调速器
L1
指令
缓存
L1 数据
缓存
调试
核心 1
浮点 和
高级 SIMD
核心 1 调速器
通用定时器
时钟和
重置
CTI
调试结束
关
GIC中央处理器
interface
总督
APB解码器
APB ROM的
APB
复 用
CTM
处理器
浮点 和
高级 SIMD
L1 中医
L1 中医
GIC中央处理器
interface
通用定时器
时钟和
重置
CTI
调试结束
关
GIC经销商
闪光
AXIM
LLPP
ETM
MRP
ETM
MRP
在线
MBIST公司
EL1/EL2型
MPU
EL1/EL2型
MPU
图1-3 功能框图
本节包含以下小节:
•
1.2.1 第 1-18 页的指令获取。
•
1.2.2 第 1-19 页的高级 SIMD 和浮点支持。
•
1.2.3 GIC发行商,第1-20页。
•
1.2.4 GIC CPU 接口,第 1-20 页。
•
1.2.5 第 1-20 页的内存系统。
•
1.2.6 第 1-21 页的内存管理。
•
1.2.7 调试、跟踪和测试,第 1-21 页。
1.2.1
指令获取
预取单元 (PFU) 从指令缓存、TCM 或外部存储器中获取指令,并预测指令流中分支的结果,并将指令传递给数据处理单元 (DPU) 进行处理。
PFU 每周期从内存中获取 64 位。
Cortex-R52 处理器中的指令获取始终是 little-endian。
fetch 和 decode 阶段之间的指令队列将指令执行与指令提取分离。这允许在由于预测的分支而刷新获取阶段时继续执行指令。
1 简介 1.2 组件块
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-18
非机密
Cortex-R52 分支预测机制可在管道的早期阶段检测分支。此外,它们会立即将获取的指令重定向到适当的地址,而不是等待分支到达管道的末端。但是,并非所有分支都以这种方式预测。
分支目标地址缓存
PFU 包含一个 16 个条目的分支目标地址缓存 (BTAC),用于预测间接分支的目标地址(子例程返回除外)。BTAC 实现在体系结构上是透明的,因此不必在上下文切换时刷新它。
分支预测变量
分支预测器是一种全局类型,它使用分支历史记录寄存器和 2048 个条目的模式历史记录预测表。
返回堆栈
PFU 包括一个 8 个条目的呼叫-返回堆栈,用于加速子程序呼叫的返回。对于每个子例程调用,返回地址都会推送到硬件堆栈上。当识别到子例程返回时,将弹出返回堆栈中保存的地址,PFU 将其用作预测的返回地址。返回堆栈在架构上是透明的,因此不必在上下文切换时刷新它。
异常目标地址缓存
异常目标地址缓存 (ETAC) 是一种结构,用于通过缓存这些异常的通用处理程序的地址来减少 IRQ 和 FIQ 异常的最佳情况延迟。ETAC 在复位后启用。将 1 写入系统寄存器 CPUACTLR。ETACDIS,禁用 ETAC。
ETAC 仅支持缓存中断 (IRQ) 和快速中断 (FIQ) 向量条目。其他类型的例外不会将条目分配到 ETAC 中。这是因为在实时系统中,对 IRQ 和 FIQ 异常的快速响应最为关键。仅当载体位于 TCM 中时,该载体才会缓存在 ETAC 中。位于任何其他类型的内存中的向量永远不会在 ETAC 中分配或命中。这是因为中医是唯一具有完美反应的记忆。其他内存可能会受到缓存未命中的影响,在这些情况下,与缓存未命中的延迟相比,ETAC 提供的节省是最小的。如果向量表中的指令是兼容指令,则 ETAC 仅缓存与 IRQ 或 FIQ 异常对应的向量。兼容指令均为B #immed 编码。如果异常向量不是兼容指令,则 ETAC 不会缓存该异常。IRQ 和 FIQ 异常可以设置为异常级别 EL1 或 EL2,具体取决于中断时的异常级别和 HCR 的值。国际海事组织和HCR。FMO的。ETAC 独立支持对 EL1 和 EL2 采取的 IRQ 和 FIQ 例外,这意味着每种情况都有四个独立的条目。有关以下内容的更多信息:
•
CPUACTLR,参见第 3-90 页的 3.3.19 CPU 辅助控制寄存器。
•
HCR,参见第 3-111 页的 3.3.39 Hyp 配置寄存器。
1.2.2
高级 SIMD 和浮点支持
每个内核支持的高级 SIMD 和浮点使用 NEON 技术,这是一种 SIMD 架构。
高级 SIMD 和浮点功能提供:
•
单精度(C 编程语言浮点类型)数据处理操作的说明。
•
双精度(C 双精度)数据处理操作的可选说明。
•
组合乘法和累加指令以提高精度(融合 MAC)。
•
硬件支持转换、加法、减法、乘法,可选累加、除法和平方根。
•
硬件支持非正态和所有 IEEE 标准 754-2008 舍入模式。
•
对于单精度浮点,有 32 个 32 位单精度寄存器或 16 个 64 位双精度寄存器。如果包含双精度和高级 SIMD 的可选指令,则总共有 32 个 64 位双精度寄存器或 16 个 128 位寄存器可用。
1 简介 1.2 组件块
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-19
非机密
相关参考
第 15 章 高级 SIMD 和浮点支持,第 15-528 页
1.2.3
GIC经销商
GIC 分发服务器接收物理中断,确定其优先级,并将其路由到适当的中断目标。
GIC 分配器的输出是每个中断目标的最高优先级挂起中断。中断目标是内核的 GIC CPU 接口或用于连接到外部设备(如直接内存访问 (DMA) 控制器)的导出端口。
相关参考
第 9 章 通用中断控制器,第 9-260 页
1.2.4
GIC CPU接口
GIC CPU 接口处理每个内核的物理和虚拟中断的中断抢占。
每个 GIC CPU 接口的虚拟部分分为虚拟机管理程序寄存器和客户机操作系统寄存器。
虚拟机监控程序使用 GIC CPU 接口生成对客户机操作系统的中断。
相关参考
第 9 章 通用中断控制器,第 9-260 页
1.2.5
内存系统
Cortex-R52 内存系统根据您的实现提供不同的存储器和接口。
每个Cortex-R52内核都有一个专用的128位AXIM接口,用于存储器、指令和数据以及外设访问,供没有强烈实时要求的环境使用。
此外,为了供实时上下文使用,每个 Cortex-R52 内核可以具有:
•
三个统一的 TCM,每个 8KB-1MB 为指令和数据提供最低延迟的访问。
•
(可选)32 位 AXI4 LLPP 接口,用于对专用外设进行设备数据访问。
•
128位只读闪存接口。
•
ECC保护所有TCM和闪存,提供SECDED保护。
•
通过 AXIS 接口对 DMA 进行 TCM 访问。
•
使用MBIST接口进行TCM测试。
Note
实时上下文也能够访问AXIM,尽管根据系统设计,这种访问可能并不可取。
每个Cortex-R52内核都有可选的哈佛缓存,可用于缓存来自闪存接口和AXIM接口的数据。缓存行为取决于内存属性。
每个内核都具有:
•
存储缓冲区,用于存储的合并和转发(视情况而定)。
•
4-32KB 的 4 路指令缓存。
•
指令行填充缓冲。
•
4-32KB 的 4 路数据缓存,具有直写行为。
•
数据读取缓冲区。
•
所有缓存存储器(包括标记 RAM)的 ECC 保护。
•
用于加载和存储到缓存的 64 位数据路径。
•
根据 Arm 架构进行缓存维护操作。
•
使用 MBIST 接口进行缓存内存测试。
1 简介 1.2 组件块
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-20
非机密
相关参考
第 7 章 第 7-218 页的记忆系统
1.2.6
内存管理
内存保护单元 (MPU) 确定每个内存位置的属性,包括权限、类型和可缓存性。提供两个可编程 MPU,分别由 EL1 和 EL2 控制。
访问权限决定了允许哪些权限级别访问某个位置,以及是否允许写入访问或指令执行。内存类型和可缓存性会影响处理器处理特定访问的方式,例如,如果处理器允许将两个存储合并为单个写入访问。这些属性及其含义由 Arm 体系结构定义。
相关参考
第 8 章 内存保护单元,第 8-251 页
1.2.7
调试、跟踪和测试
该处理器具有制造测试设施,处理器中的每个内核都具有侵入式调试和非侵入式调试功能,以支持软件调试。
侵入性调试功能包括硬件异常捕获、断点和监视点、通过调试通信通道传输数据以及单步执行。侵入式调试模式是自托管(或监控)调试和外部(或停止)调试。侵入性调试会影响处理器的性能,但如果时间允许,您可以安排自托管调试。
非侵入式调试功能包括跟踪指令执行和跟踪数据传输。每个内核都有自己的 ETM,允许在可用跟踪带宽的范围内同时跟踪所有内核。跟踪信息导出到 ATB 跟踪总线上,这些总线可连接到 CoreSight 系统,用于组合跟踪源、缓冲和导出它们。
该处理器包括一个 PMU,该 PMU 生成并可以计算内核中发生的事件,例如缓存行填充、管道停滞和 ECC 故障。这些事件也会根据需要导出以供外部硬件使用。
制造测试包括 MBIST。
相关参考
第 11 章 调试 第 11-350 页 第 13 章 交叉触发 第 13-429 页 第 14 章 嵌入式跟踪宏单元 第 14-447 页
1 简介 1.2 组件块
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-21
非机密
1.3
接口
Cortex-R52 处理器具有多个外部接口。
本节包含以下小节:
•
1.3.1 高级微控制器总线架构 (AMBA) 接口,第 1-22 页。
•
1.3.2 第 1-22 页的 Flash 界面。
•
1.3.3 第 1-23 页的内存重建端口。
•
1.3.4 第 1-23 页的中断接口。
•
1.3.5 MBIST界面,第1-23页。
•
1.3.6 第 1-23 页的低功耗接口。
1.3.1
高级微控制器总线架构 (AMBA) 接口
处理器实现以下 AMBA 接口。
AXIM
Cortex-R52处理器的每个内核都有一个128位AXIM接口,可提供对外部存储器和外设的高性能访问。
相关参考
7.5 第 7-228 页的 AXIM 接口 A.8.1 Appx-A-560 页上的 AXIM 接口信号
AXIS
Cortex-R52 处理器中的每个内核都连接到一个通用的 128 位 AXIS 接口。这提供了对 TCM 的外部访问。AXIS 接口支持外部控制器和内部存储器之间的 DMA 访问。
相关参考
7.8 第 7-243 页的 AXIS 接口 A.8.2 Appx-A-564 页上的 AXIS 接口信号
高级外设总线 (APB) 调试接口
AMBA APBv3 接口用于调试目的。
相关参考
调试 Appx-A-576 页面上的 APB 接口信号
LLPP
Cortex-R52 处理器中的每个内核都有一个与专用 32 位 LLPP 主接口的接口。
这些端口旨在用于需要低延迟访问的专用外围设备。
相关参考
7.6 第 7-233 页上的低延迟外设端口 A.8.3 Appx-A-568 上的 LLPP 接口信号
1.3.2
闪存接口
Cortex-R52 处理器中的每个内核都有一个专用的 128 位只读闪存主接口,可用作 AXI4 接口。此接口旨在提供对连接到处理器的闪存的低延迟访问,使处理器能够从具有缓存功能的闪存 ROM 执行实时任务。
1 引言
1.3 接口
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-22
非机密
相关参考
7.7 第7-241页的Flash界面
1.3.3
内存重建端口
Cortex-R52 处理器的每个内核都提供用于报告写入访问的 MRP,以便可以重建内存映像。
每个内核的MRP接口的主要特点是:
•
来自 MRP 的跟踪信息未压缩。
•
物料需求计划不包括任何筛选。
相关参考
A.7 Appx-A-558 页面上的 MRP 信号
1.3.4
中断接口
Cortex-R52 处理器的中断接口有一个输入端口,用于可配置数量的共享外设中断 (SPI),从 32 到 960(32 的倍数),每个内核至少 32 个。所有SPI均可配置为上升沿触发或电平敏感高电平有效。
中断分配器具有可选的中断导出端口,用于将中断路由到外部设备(如 DMA 引擎)。中断控制器选择此端口来路由 SPI,其方式与将中断路由到内核的方式相同。
中断控制器还提供专用外设中断 (PPI) 和软件生成中断 (SGI),它们对每个内核都是私有的。某些 PPI 作为主要输入公开。
相关参考
第 9 章 通用中断控制器,第 9-260 页
1.3.5
MBIST接口
MBIST 接口用于在生产测试期间测试 RAM。
Cortex-R52 处理器允许在正常执行期间使用 MBIST 接口测试 RAM。这被称为在线 MBIST。
现有的生产测试MBIST控制器不支持在线MBIST的要求,因此,有必要使用专门为此目的开发的PMC-R52。PMC-R52 是 Cortex-R52 RTL 的一部分。它是一种集成选项,可能并非每个实现都存在。有关 PMC-R52 的更多信息,请参阅第 Appx-D-529 页上的附录 D PMC-R629。
请与您的实施团队联系,了解有关 MBIST 接口和在线 MBIST 的更多信息。
1.3.6
低功耗接口
P 沟道接口用于向外部电源控制器发出电源状态信息信号。
相关参考
第 5 章电源管理,第 5-204 页
1 引言
1.3 接口
100026_0103_00_en
版权所有 © 2016–2020 Arm Limited 或其附属公司。保留所有权利。
1-23
非机密