Arm Community
Site
Search
User
Site
Search
User
Groups
Education Hub
Distinguished Ambassadors
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello forum
Operating Systems forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Internet of Things (IoT) blog
Operating Systems blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Community Management
Archive
中文社区
Jump...
Cancel
中文社区
中文社区博客
ARM模型助力Cortex-A75和Cortex-A55的软件开发及性能分析
Blogs
视频和文件
Members
Mentions
Sub-Groups
Tags
Jump...
Cancel
New
中文社区 requires membership for participation - click to join
More blogs in 中文社区
ARM中国大学计划博客
Arm新闻
中文mbed博客
中文社区博客
恩智浦汽车电子MCU讨论区博客
Tags
models
Cortex-A55
Cortex-A75
DynamIQ
DS-5 Ultimate Edition
Fast Models
Actions
RSS
More
Cancel
Related blog posts
Related forum threads
ARM模型助力Cortex-A75和Cortex-A55的软件开发及性能分析
feng
June 15, 2017
1 minute read time.
本文翻译自Jason Andrews博客Using ARM Models for software development and performance analysis for the Cortex-A75 and Cortex-A55。原文链接:
https://community.arm.com/tools/b/blog/posts/using-arm-models-for-software-development-and-performance-analysis-for-the-cortex-a75-and-cortex-a55
关于Cortex-A75和Cortex-A55
从Computex 2017上
ARM Cortex-A75
,
ARM Cortex-A55
,及
ARM Mali-G72
发布以来,已经有
很多相关的讨论
,包括如何
使用ARM工具来进行早期软件开发
。新的ARM IP公开发布对ARM 模型而言是一个里程碑,这意味着我们可以现在讨论新IP的模型和分享一些额外的信息。
ARM
Fast Models
和
Cycle Models
使得合作伙伴在流片前使用虚拟原型对Cortex-A75和Cortex-A55进行系统架构设计与软件开发。
Fast Models
和
Cycle Models
通过仿真速度与抽象层次上的不同权衡来应用于不同使用场景。
Fast Models提供高速仿真性能与灵活编程视角,适用于流片前的各种软件开发:设备驱动,固件,操作系统与应用程序等。Fast Models同时也支持软件Profiling,调试,Trace,以及SystemC接口用于集成第三方仿真环境。
典型的Fast Models使用场景包括功能软件调试,软件Profiling与优化,软件测试及持续集成。Cortex-A75和Cortex-A55已经包含在最近发布的Fast Models 11.0版本。
Cycle models是周期精确的,使用户可以非常自信对IP选项及配置进行架构决策。Cycle models可以运行在 SoC Designer或其他任何包括EDA供应商的SystemC仿真器中。
Cycle Models典型的应用场景包括IP选型与配置,软硬件交互分析,基准测试与系统优化。Cortex-A75和Cortex-A55目前已经在
ARM IP Exchange
上支持。
本文从模型的角度探讨一些新的背景再基于示例系统给出一些如何使用新IP的例子。重点是DynamIQ多核架构与Cortex-A75和Cortex-A55模型。
新的模型feature
ARM DynamIQ technology
是目前CPU子系统最大的革新。过去十几年ARM引入了大量的支持每cluster 1-4个CPU的Cortex-A处理器,用以支持系统扩展至多个cluster。最常见的系统大致包括2个cluster共6-8个CPU。DynamIQ cluster可以包含最多8个核心的不同类型CPU。异构cluster的单一模型对Fast Models和Cycle Models都是个新的概念,因为用户习惯了包括1-4个CPU的同构cluster。
目前为止,MPIDR寄存器的CPU ID和Cluster ID定义几乎相同,bits [1:0]识别CPU,bits [11:8]识别cluster。 Cortex-A75和Cortex-A55在MPIDR affinity level上使用有所不同。
bits [23:16]的affinity level 2识别系统的不同cluster。这个比特域的值等于CLUSTERIDFAFF2信号的配置值。
bits [15:8]的affinity level 1识别cluster中的不同core。取值范围从0x00代表core 0, 到 0x07代表core 7。
bits [7:0]的affinity level 0识别多线程core中的不同线程。Cortex-A75和Cortex-A55都是单线程的,所以该值为0。
这意味着之前决定CPU运行的从0, 1, 2, and 3读取的软件现在将改为读取0, 0x100, 0x200, and 0x300。
为解释配置DynamIQ技术的额外灵活性,Fast Models和Cycle Models都做了非常大改变。 Fast Models在固定配置模型(例如ARMCortexA55x4CT_CortexA75x1CT)和可变配置配型(ARMCortexA55CT_CortexA75CT,包含设置Cortex-A75和Cortex-A55 各自sub-cluster上core数目的参数)方面都提供了大量选择。可变数目CPU的配置使得模型端口描述为数组形式,其中数组索引对应相应的core。Cycle Models通过ARM IP Exchange的自动化创建也支持大量的配置选项。更多信息参考下面Cycle Models部分。
DynamIQ技术极大扩展了可能的配置空间,ARM模型也对此进行了额外灵活性提升。
示例Fast Model系统
包含新模型的Fast Models示例系统是学习ARM新IP的一个很好方式。DynamIQ技术而言,$PVLIB_HOME/examples/LISA/FVP_Base路径下包含很多Cortex-A75和Cortex-A55的例子。
Base 平台系统示例可以对新CPU进行早期开发,分配,示例软件的演示。示例提供了不同DynamIQ配置的Base FVP。Base FVP的好处是他提供了一套供软件开发与移植的标准设备套件,支持广泛的Cortex-A系列处理器,易于系统延伸改变。
Base平台同时帮助理解DynamIQ做了哪些变化。作为一个虚拟原型创建者,要考虑以下几点:
PERIPHBASE参数,在之前的Base系统中一直存在的一个最重要部分,在Cortex-A75 和 Cortex-A55中被去掉。
上面提到的MPIDR信息同时也影响GICv3的配置。
功率管理接口不同
GICv3的影响在CPU affinities参数上可以看到:
对Cortex-A73 and Cortex-A53:
"CPU-affinities" = "0.0.0.0, 0.0.0.1, 0.0.0.2, 0.0.0.3"
对Cortex-A75 and Cortex-A55:
"CPU-affinities" = "0.0.0.0, 0.0.1.0, 0.0.2.0, 0.0.3.0"
如果需要仿真功率管理,一些旧的端口被新的P-channel端口, pchannel_core和pchannel_cluster所替代,从而简化了下电序列(power-down sequences )及相应的软件干预。
除了阅读新ARM IP的文档外,参考Base系统的端口和参数对于搭建定制化的Fast Models系统也大有帮助。
Base 平台的文档
可以在ARM Developer上找到。
裸机软件
使用新的CPU时首先参考对应点裸机软件非常有助于理解新IP的不同特性。ARM DS-5提供了该目的的裸机软件。可以在安装路径下找到 $DS5_HOME/examples/Bare-metal_examples_ARMv8.zip。
解压可以看到一些有用的路径,例如startup_Cortex-A55_Cortex-A75/和fireworks_Cortex-A55_Cortex-A75/。都可以使用DS-5 5.27.1的最新ARM Compiler 6来编译。各自的makefile可以看出 Cortex-A75和Cortex-A55都属于ARMv8.2 CPU: –march=armv8.2-a。
CPU识别部分的改变如下:
模型运行软件与调试
下面解释下ARM DS-5与Fast Models一起工作的流程。
即使Base平台是个很好的起点,大多数用户还是期望创建自己的Fast Model系统,我们先来看如何编译Base系统以及如何使用它来搭建定制系统。
首先,导入上面提到的ARMv8示例软件: File -> Import > DS-5 -> Examples and Programming Libraries:
接下来,编译运行DynamIQ的Fast Model Base平台,$PVLIB_HOME/examples/LISA/FVP_Base/Build_Cortex-A55+Cortex-A75。
因为Fast Models Linux上支持多个gcc版本,对应的配置需要设定。Ubuntu 16.10为例,sgcanvas加载FVP_Base_Cortex-A55+Cortex-A75.sgproj时可以将gcc配置为 Linux64-Release-GCC-5.4。
编译:
$ ./build.sh
$ cd Linux64-Release-GCC-5.4/
运行模型并启动CADI server:
$ ./isim_system -C bp.secure_memory=false –S
仿真便会启动:
再使用DS-5连接至Fast Model系统,详细步骤请参考
Using ARM DS-5 with custom Fast Model systems
。开始调试,下图所示为 Base平台上运行fireworks示例:
DynamIQ Cycle Model创建与使用
对于Cycle Model,ARM DynamIQ技术对
ARM IP exchange
的模型创建也带了些改变。这是首次将多个不同的CPU类型组合进单个cluster,且包含DynamIQ Shared Unit (DSU)。导致了多至8核的cluster会有成百上千的配置可能。IP Exchange提供创建Cortex-A75, Cortex-A55,及 DynamIQ各自的选项。前两个选型仅用于配置要使用的各自core本身,第三个选项用于配置CPU组合,最终生成一个单独的big.LITTLE cluster的模型。配置页面如下:
ARM System Exchange
上可以找到多个包含 Cortex-A75与Cortex-A55的CPAKs(Cycle Model Performance Analysis Kits)。下图为其中一个配置为包含两种CPU的2+4配置的CPAK示例:
仿真启动后,右键点击DynamIQ cluster可以在寄存器视图菜单看到所有的6个core。如下图:
DynamIQ Cycle Models支持了PMU事件用于性能分析,可以通过右键点击CPU模型选择Profiling菜单或GUI界面顶部的Profile按钮使能。可以是使能其中任何的PMU事件,仿真结束后选定的PMU profiling结果会写进System Analyzer数据库。总线传输活动也可以profile以帮助测量不同配置产生的数据流带宽与延迟。新的异构cluster可能需要对互连与存储系统性能进行全新的分析以确保对新设计选择最优的架构。下图示出DynamIQ cluster上性能信息的一个子集:
ARM DynamIQ Cycle Models可以同时运行于SoC Designer和SystemC环境中。SoC Designer模型提供内建的软件profiling支持,SystemC模型提供所有DynamIQ core的TARMAC输出。
SoC Designer模型也支持最新的软件调试环境ARM DS-5 5.27.1,包括memory,寄存器视窗,单步执行及其他常见的调试功能。
总结
第一个ARM DynamIQ CPU的发布代表了第一个异构cluster的设计。ARM工具套件的无缝支持使用户可以在流片前对新技术学习。ARM 模型目前可以支持用户开始系统设计,性能分析,软件开发等工作。请参考
developer.arm.com
获取更多ARM开发工具及ARM IP的最新信息。
中文社区博客
Arm A-Profile构架2022扩展
Zenon Xiu (修志龙)
原文:
Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community
作者:Martin Weidmann翻译:修志龙(Zenon Xiu) 与arm构架授权和生态伙伴一起,arm持续演进其构架,开发新功能以满足现有和新市场的要求…
October 17, 2022
深入理解 Arm A-profile的non-maskable interrupt -NMI
Zenon Xiu (修志龙)
原文:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/a-profile-non-maskable-interrupts
翻译: 修志龙 Zenon Xiu Arm A-profile构架一个长久以来的局限性是:缺乏对non-maskable interrupt (NMI…
August 24, 2022
Arm A-Profile 构架2021扩展
Zenon Xiu (修志龙)
原文:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2021
Martin Weidmann
September 8, 2021 翻译注释:Zenon Xiu Arm与arm构架授权公司及生态伙伴一起…
August 17, 2022