嵌入式学习规划
12年老程序,驱动工程师/系统工程师/安全工程师/全栈工程师,从事手机研发、SOC芯片研发、汽车芯片研发、安全操作系统等方向
展开
-
《Armv8/armv9架构入门指南》-【第十章】- AArch64异常处理
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、Non-cacheable,原创 2023-09-08 16:44:02 · 106 阅读 · 1 评论 -
《Armv8/armv9架构入门指南》-【第九章】- ARM 64 位架构的 ABI
>**引流关键词**:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、N原创 2023-09-08 16:43:31 · 115 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第八章】- 移植到 A64
>**引流关键词**:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、N原创 2023-09-08 16:42:59 · 66 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第七章】- AArch64浮点数和NEON
>**引流关键词**:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、N原创 2023-09-08 16:42:27 · 122 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第六章】- A64指令集
>**引流关键词**:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、N原创 2023-09-08 16:41:55 · 99 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第五章】- ARMv8 指令集简介
>**引流关键词**:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、N原创 2023-09-08 16:41:24 · 71 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第四章】- ARMv8 寄存器
>**引流关键词**:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表、N原创 2023-09-08 16:40:53 · 120 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第三章】- ARMv8 基础知识
要在相同的异常级别之间切换执行状态,您必须切换到更高的异常级别,然后返回到原始的异常级别。对于最高实现的异常级别(Cortex‑A53 和 Cortex‑A57 处理器上的 EL3),在接受异常时用于每个异常级别的执行状态是固定的。与在 ARMv7 (AArch32) 中一样,当发生异常时,处理器将更改为支持处理异常的异常级别(模式)。在 AArch32 状态下,Trusted OS 软件在 Secure EL3 中执行,而在 AArch64 状态下,它主要在Secure EL1 中执行。原创 2023-09-08 16:40:21 · 90 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第二章】ARMv8‑A 架构和处理器
Cortex‑A57 处理器具有与其他处理器的高速缓存一致性互操作性,包括用于 GPU 计算的 ARM Mali™系列图形处理单元(GPU),并为高性能企业应用程序提供可选的可靠性和可扩展性功能。它可以与 Cortex‑A53 处理器一起使用到 ARM big.LITTLE 配置中,以实现可扩展的性能和更高效的能源使用。Cortex‑A53 处理器是一款中档、低功耗处理器,在单个集群中具有一到四个内核,每个内核都有一个L1 缓存子系统、一个可选的集成 GICv3/4 接口和一个可选的 L2 缓存控制器。原创 2023-09-08 16:39:49 · 59 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十九章】ARMv8模型
命令行参数提供所有模型配置。使用‑‑help运行模型以获取可用命令的摘要。表 19‑1显示了这些选项。如果提供了多个‑‑image、 ‑‑data或‑‑nsdata选项,则图像和数据按照它们在命令行中出现的顺序加载,并从最后一个 ELF 的入口点开始模拟指定,如果没有提供 ELF 图像,则为地址 0。您可以指定多个‑‑image、 ‑‑ data或‑‑nsdata选项。原创 2023-09-08 16:39:19 · 86 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十八章】调试技术
调试器提供了控制程序执行的能力,使您能够将代码运行到某个点、暂停内核、单步执行代码并恢复执行。可以在特定指令上设置断点,使调试器在内核到达该指令时进行控制。这些工作使用两种不同方法之一。软件断点通过将指令替换为HLT或BRK指令的操作码来工作。如果连接了外部调试器并且相关的安全权限允许进入调试状态,则HLT指令使内核进入调试状态。AArch64 中的BRK指令会产生同步调试异常,但不会导致内核进入调试状态。有关调试状态的详细信息,请参阅第 18‑4 页的调试事件。原创 2023-09-08 16:38:47 · 78 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十七章】安全
普通世界只能生成非安全访问,所以只能命中标记为非安全的缓存行,而安全世界可以生成安全的和非安全的访问。安全世界需要访问普通世界使用的内存,安全世界可以在它的转换表描述符中使用NS位,以确保它使用非安全访问来读取数据。支持TrustZone的体系结构使单个物理核心可以以时间分片的方式同时执行普通世界和安全世界的代码,尽管这取决于产生中断的外设的可用性,这些外设可以被配置为仅供安全世界访问。如果你是普通世界的程序员,一般来说,可以忽略安全世界中发生的事情,因为它的操作对你是隐藏的。原创 2023-09-08 16:38:17 · 51 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十六章】big.LITTLE 技术
通常,假设任务在相同的集群上恢复前。因此,当调度程序在唤醒时检查任务的负载指标时,在选择执行它的集群之前,该指标具有任务上次运行时的值。HMP 与非对称多处理(AMP) (第14-7页的非对称处理) 的不同之处在于,HMP 系统中的所有处理器都是完全一致的,并且运行相同的操作系统映像。当大内核没有任务要运行时,会检查所有小内核,以查看小内核上当前正在运行的任务是否具有高于向上迁移阈值的负载指标。为了获得最佳的功率和性能效率,软件堆栈主要在节能的 LITTLE 集群上运行,而在大集群上只运行很短的时间。原创 2023-09-08 16:37:47 · 107 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十五章】电源管理
尽管空闲电源源管理是由内核上的线程行为驱动的,但OSPM可以将平台置于影响内核本身之外的许多其他组件的状态。同样,如果SoC中的最后一个内核空闲,OSPM可以针对影响整个SoC的电源状态。这会影响在给定状态下关闭的所有组件,包括内核,以及在更深的状态下系统的其他组件,例如GIC或特定于平台的IP。但是,从外部调试器的角度来看,状态不同,因为外部调试请求调试事件保持未决状态,并且无法访问内核电源域中的调试寄存器。在允许集群中的各个内核进入休眠模式的多核系统中,在内核断电时,没有保持一致性的余地。原创 2023-09-08 16:37:12 · 69 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十四章】多核处理器
例如,对于某些类型的工作负载,如果将构成工作负载的任务安排在更少的内核上,则可以实现节能。集群内的多核缓存一致性显示了硬件如何保持在同一集群中的多个处理器缓存之间共享的数据之间的一致性。CoreLink CCI-400 Cache Coherent Interface 是 AMBA 4 ACE 的首批实现之一,支持多达两个 ACE 集群,使多达 8 个内核能够看到相同的内存视图并运行 SMP 操作系统,例如 big.小组合,例如 Cortex-A57 处理器和 Cortex-A53 处理器,如图所示。原创 2023-09-08 16:36:41 · 133 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十三章】内存排序
ARMv8 架构将上下文定义为系统寄存器的状态,将上下文更改操作定义为缓存、TLB 和分支预测器维护操作,或对系统控制寄存器的更改,例如 SCTLR_EL1、TCR_EL1 和 TTBRn_EL1。只有在上下文同步事件之后才能保证看到这种上下文改变操作的效果。ISB刷新流水线,并从缓存或内存中重新获取指令,并确保在 ISB 之前完成的任何上下文更改操作的效果对ISB之后的任何指令都是可见的。它还确保在ISB之后的任何上下文更改操作指令只在ISB执行后生效,在ISB之前的指令看不到。原创 2023-09-08 16:36:11 · 62 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十二章】内存管理单元
48位的地址每一级映射有11个地址位,即每一级有2048个条目,最后的14位在4KB内选择一个字节,直接来自原始地址。有通常的大小和有符号和无符号的变体作为正常的加载和存储指令,但有一个较小的偏移量和受限制的索引选项。这些都是对处理器的提示,在一个特定的实现中是否支持所有的缓存策略,以及哪些缓存数据被认为是连贯的,这都是实施定义的。除了拥有一个指向对象的指针外,可能还有必要保留一个引用计数,以跟踪指向对象的引用或指针或句柄的数量,例如,这样,自动垃圾收集代码就可以取消分配不再被引用的对象了。原创 2023-09-08 16:35:36 · 25 阅读 · 0 评论 -
《Armv8/armv9架构入门指南》-【第十一章】缓存cache
当核心从特定地址请求指令或数据,但与缓存标签不匹配或标签无效时,会导致缓存未命中,请求必须传递到内存层次结构的下一层,即 L2缓存或外部存储器。它还可能导致缓存行填充。Cortex‑A53 和 Cortex‑A57 处理器通常使用两级或多级缓存实现,即小型 L1指令和数据缓存和更大的统一 L2 缓存,在集群中的多个内核之间共享。外部 L3 缓存实现,例如 ARM CCN‑504 缓存一致性网络(请参阅第 14‑18 页的计算子系统和移动应用程序),可以有更多的方式,即更高的关联性,因为它们的大小要大得多。原创 2023-09-08 16:35:02 · 113 阅读 · 0 评论 -
2023年Arm最新处理器架构分析——X4、A720和A520
从Arm的宣传数据可以看出,今年的三款处理机架构侧重点有所不同,Cortex-X4主打性能提升,相比上一代Cortex-X3提升15%的性能,A720和A520则偏重能效改善,相比上一代A715和A520分别改善20%和22%的能效。值得注意的是今年的处理器没有升级工艺,这些数据应该是基于相同工艺计算而来的(例如TSMC 4nm)。原创 2023-09-01 04:00:09 · 517 阅读 · 0 评论