学习ARM架构-A系列
文章平均质量分 96
安全有理
TLS/ATF/TrustZone/芯片安全
展开
-
使用自动矢量化编译Neon
本文介绍了如何使用中的自动矢量化功能自动生成包含指令的代码。它包含许多 Neon 代码生成的示例,并强调了如何让编译器生成最佳的性能。原创 2024-05-13 11:28:17 · 654 阅读 · 0 评论 -
使用Neon intrinsics优化C代码
本文介绍了如何在 C 或 C++ 代码中使用 Neon intrinsics,以利用 Armv8 架构中的 Advanced SIMD 技术。另外,也提供了一些使用 Neon 的示例,并介绍了他们的用途。原创 2024-03-19 18:48:29 · 911 阅读 · 0 评论 -
Neon简介
本文介绍了 Arm Neon 技术,一种⾼级 SIMD(Single Instruction Multiple Data,一条指令操作多个数据)架构扩展,Armv8‑A 和 Armv8-R 架构支持了 Neon 技术扩展。Neon 技术是指令集架构的专用扩展,其提供了额外的指令,用于对多个数据流进行并行计算。通过加速音频和视频编解码、用户接口、2D/3D 图形或游戏,SIMD架构可以改善多媒体用户体验。原创 2024-02-22 12:58:07 · 1247 阅读 · 0 评论 -
Arm通用中断控制器GICv3和GICv4
本文介绍了 Arm 通用中断控制器(GIC)v3和v4的功能,描述了 GICv3 中断控制器的相关操作,同时也介绍了如何在裸机环境中配置GICv3 中断控制器。原创 2023-12-28 19:23:29 · 1459 阅读 · 0 评论 -
AArch64 TrustZone
TrustZone 是 Arm A 系列中安全架构的名称。TrustZone 首次在 Armv6K 中引入,Armv7-A 和 Armv8-A 也是支持的。TrustZone 提供两种执行环境,它们之间是硬件强制隔离的,如下图所示。普通世界运行着丰富的软件。这些软件栈通常包括许多应用程序,操作系统如Linux,可能还有 hypervisor,它们通常庞大且复杂。虽然可以尽力保护它们,但由于攻击面太大,它们也更容易受到攻击。可信世界运行着一套小而简单的软件,通常称为可信执行环境(TEE)。原创 2023-10-19 12:06:15 · 347 阅读 · 0 评论 -
了解Armv8.x和Armv9.x扩展
Arm架构新增的功能以扩展的形式提供,这样Arm能够定期发布新功能,以响应合作伙伴的需求,而无需对主架构进行重大更改。原创 2023-09-08 11:08:27 · 432 阅读 · 0 评论 -
AArch64内存管理
内存管理描述了如何控制对系统内存的访问。每次操作系统或应用程序访问内存时,硬件都会执行内存管理。内存管理是一种向应用程序动态分配内存区域的方法。原创 2023-09-07 10:13:30 · 786 阅读 · 0 评论 -
AArch64内存模型
内存属性/特性是定义内存行为的方式。其提供了一个结构和一组规则,当配置如何访问和使用内存地址时,你需要遵守这些规则。内存属性/特性用于一个地址,并定义了与内存访问相关的规则。考虑一个简单的系统,地址空间如下。地址空间中内存区域的排列称为地址映射。内存和外设内存,代码和数据操作系统资源和用户应用程序资源处理器与外设交互的方式和与内存不同。例如,你通常想缓存内存,但是却不想缓存外设。缓存是将内存中的信息拷贝存储到一个硬件区域(称为缓存)。缓存距离内核更近,内核访问速度更快。原创 2023-08-29 09:49:58 · 523 阅读 · 0 评论 -
AArch64异常模型
AArch64 异常模型指南介绍了 Armv8‑A 和 Armv9‑A 中的异常和特权模型。它涵盖了 Arm 架构中不同类型的异常,以及与异常相关的处理器行为。原创 2023-07-27 12:33:15 · 458 阅读 · 0 评论 -
ARM架构介绍
当提及术语架构时,我们指的是功能规范。但就 Arm 架构而言,指的是处理器的功能规范。架构指定处理器的行为方式,例如它有哪些指令以及这些指令的作用。你可以认为架构是硬件和软件之间的契约。该架构描述了软件可以依赖硬件来提供哪些功能。正如我们在架构和微架构中解释的那样,某些功能是可选的。项目描述指令集每条指令的功能;指令在内存在内存中如何表示(编码)寄存器组有多少个寄存器;寄存器的大小;寄存器的功能;初始状态异常模型不同级别的特权;异常的类型;发生异常或者从异常返回会发生什么内存模型。原创 2023-07-13 12:43:13 · 4740 阅读 · 0 评论