自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CodingCos的博客

且将新火试新茶,诗酒趁年华

  • 博客(748)
  • 收藏
  • 关注

原创 【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】

嵌入式学习必备专栏: ARM Core 的详细介绍, Cache 与 MMU/MPU专栏,Coresight 专栏,劳德巴赫 trace32 专栏, AXI/APB/AHB/ACE/CHI总线专栏、CoreLink 专栏,CSH/BASH/TCL专栏,芯片设计入门专栏、ARM GCC 编译专栏,VIM工具专栏

2023-12-30 12:25:07 2913 1

原创 【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏2. ARMv8/v9 CPU/Cache 专栏3. Linux ARM AMBA 总线 专栏4. Trace32/DS-5 专栏。。。

2023-10-17 10:26:34 4571

原创 【芯片设计- RTL 数字逻辑设计入门 9.4 -- Power Gating 在SoC 芯片电源完整性中的详细介绍】

电源完整性(Power Integrity, PI)是指在系统级设计中,确保电源分配网络(Power Distribution Network, PDN)中的电压和电流保持稳定和可靠的过程。电源完整性对于系统芯片(System on Chip, SoC)设计至关重要,因为它直接影响芯片和整个系统的性能、可靠性和电源效率。随着移动设备和高性能电路的普及,如何在保证性能的同时降低功耗,已成为芯片设计中的一大挑战。是一种通过关闭非使用电路的电源或地线来降低泄漏电流的技术。它通常应用于手机SoC中,以延长电池寿命。

2024-08-24 11:16:33 433

原创 【ARM 芯片 安全与攻击 5.2.1 -- 侧信道与隐蔽信道的区别】

侧信道攻击是一种利用计算设备在执行某些操作时泄漏的物理信息(如时间、功耗、电磁辐射、声音等)来推测内部状态或敏感数据的攻击方法。这种攻击方式不依赖于传统的密码学分析,而是通过观察和分析设备的物理实施。隐蔽信道是一种通过非预期的通信路径在计算系统中传递信息的技术。它不依赖于正常的协议和通信路径,而是利用系统中的其他资源或特性进行信息传递。隐蔽信道主要用于在系统中创建未授权的通信路径,通常用于数据泄露或隐蔽通信。

2024-08-20 21:54:22 461

原创 【ARM Hypervisor And SMMU 系列 5 -- SMMU 和 IOMMU技术】

大家应该都知道,ARM公司主要是依靠出售core的license来赚钱的,它给予了具体的芯片厂商一些自由发挥的空间,比如SMMUv3只规定了StreamID的大小是0-32个bits,但具体采用多少个bits,以及StreamID是怎样构成的,则都属于implementation defined。不同的是,多级页表中每级页表的大小是相同的,而第二级Stream table的大小可以是不同的,比如下图中A就是占满了的,有255个entries,而B和C分别只有4个entries和1个entry。

2024-08-20 19:50:10 852

原创 【ARM Hypervisor And SMMU 系列 4 -- 虚拟化技术 - 内存虚拟化】

大型操作系统(比如Linux)的内存管理的内容是很丰富的,而内存的虚拟化技术在OS内存管理的基础上又叠加了一层复杂性,比如我们常说的虚拟内存(virtual memory),如果使用虚拟内存的OS是运行在虚拟机中的,那么需要对虚拟内存再进行虚拟化,也就是vitualizing virtualized memory。但这里的TLB存储的并不是一个GVA->GPA的映射关系,也不是一个GPA->HPA的映射关系,而是最终的转换结果,也就是GVA->HPA的映射。64位的x86_64支持2MB和1GB的。

2024-08-20 19:48:50 571

原创 【ARM Hypervisor And SMMU 系列 3 -- 虚拟化技术 - I/O虚拟化】

由于DMA是直接在设备和物理内存之间传输数据,必须使用实际的物理地址(也就是HPA),但DMA本身是为了减轻CPU的处理负担而存在的,其传输过程并不经过CPU。),如果直接用guest OS中的驱动程序去操作I/O设备的话(这里的I/O限定于和内存统一编址的MMIO),那么设备使用的地址也是GPA。可以采用的方法是在拥有设备的guest VM加载驱动程序前,先给要分配出去的设备加载一个伪驱动作为占位符,由于没有真正的驱动程序,这个设备对于其他的guest VM来说就相当于是“隐藏”了。

2024-08-20 19:47:57 627

原创 【ARM Hypervisor And SMMU 系列 2 -- VT-d DMA Remapping 】

VT-d DMA Remapping的硬件能力主要是由 IOMMU 来提供,通过引入根和等机制来实现直通设备隔离和 DMA 地址转换的目的。那么具体是怎样实现的呢?下面将对其进行介绍。根据: 不含地址空间标志的 DMA Request,这种一般是 endpoint devices 的普通请求,请求内容仅包含请求的类型(read/write/atomics),DMA请求的 address/size 以及请求设备的标志符等。

2024-08-20 19:46:42 965

原创 【ARM Hypervisor And SMMU 系列 1 -- Virtualization Technology for Directed I/O(VT-d)】

Intel VT-d(Virtualization Technology for Directed I/O)是一项技术,用于增强虚拟化环境中 I/O 设备的安全性和性能。VT-d 的 DMA 重映射机制是其核心功能之一,旨在对设备的 DMA 访问进行控制和管理,以确保内存安全性和隔离。

2024-08-20 19:45:35 984

原创 【嵌入式开发 Linux 常用命令系列 4.6 -- git rebase -i 的使用】

对应的 comment 改成 edit 模式, 重新修改 patch(修改甚至可以是。之後如下显示,这个时候如果想修改 test2.c 这个文件。git rebase -i 的使用。第二步:將上面内容的一行。:也即去除该patch)

2024-08-20 10:09:20 327

原创 【git 常用命名与常见问题 5 -- 错误:LF will be replaced by CRLF the next time Git touches it 】

这条警告消息的意思是:在你当前工作区的文件中,换行符(LF)将会在 Git 下次处理该文件时被替换为回车换行符(CRLF)。

2024-08-19 23:23:00 115

原创 【git 常用命名与常见问题 3 -- git config 中的 core.filemode 与 core.bare 作用】

Git 配置选项和core.bare是两个非常重要的设置,它们分别控制 Git 如何处理文件权限和仓库类型。以下是对这两个配置项的详细介绍以及使用举例。

2024-08-19 23:21:58 518

原创 【芯片设计- RTL 数字逻辑设计入门 9.3 -- 为什么 FPGA 的效率低于 ASIC?】

FPGA是一种可重构逻辑器件,用于在硬件级别实现各种逻辑功能。可重构性:FPGA 能够在现场(即部署后)通过编程多次重新配置。这意味着设计人员可以根据需要多次修改其逻辑功能。灵活性:FPGA 提供了高度的设计灵活性,适用于原型设计和需要频繁更新的产品。快速开发周期:由于其可编程性,FPGA 设计的开发周期通常比 ASIC 短,适合快速迭代和测试。应用广泛:广泛应用于通信、军事、工业控制、消费电子等领域,尤其适合需要高性能并行处理的任务。FPGA。

2024-08-18 20:55:36 152

原创 【ARM 芯片 安全与攻击 5.7 -- 栈溢出攻击】

栈溢出攻击是一种通过向程序输入超出其栈缓冲区(stack buffer)容量的数据,从而覆盖内存中的其他数据或控制结构,进而执行任意代码的攻击方法。栈溢出攻击通常利用编程中的不安全函数(如strcpygets等)以及缺乏边界检查的代码。

2024-08-18 10:51:09 42

原创 【ARM 芯片 安全与攻击 5.7 -- 码重用攻击】

代码重用攻击(Code Reuse Attack, CRA)是一种利用现有的合法代码片段来执行恶意行为的攻击方法。由于现代操作系统和处理器通常会采用数据执行保护(DEP)等安全机制,直接在堆栈或堆上执行注入的恶意代码变得困难。代码重用攻击通过拼接或链接现有的代码片段来实现恶意目的,从而绕过这些安全机制。返回导向编程(Return-Oriented Programming, ROP)

2024-08-18 10:50:07 38

原创 【ARM 芯片 安全与攻击 6.1 -- PAC 与 BTI 的区别】

是在 ARMv8.3-A 架构中引入的一种硬件安全特性。PAC 通过对指针生成和验证加密签名,确保指针的完整性和真实性,从而防止代码重用攻击(如 ROP 和 JOP)。是在 ARMv8.5-A 架构中引入的一种硬件安全特性。BTI 旨在防止间接分支目标被滥用,从而防御控制流篡改攻击(如 ROP 和 JOP)。目的PAC旨在保护指针的完整性,防止指针被篡改。BTI旨在保护代码的控制流完整性,防止非法跳转到未授权的代码位置。工作原理PAC通过生成和验证指针的签名(PAC)来确保指针的有效性。BTI。

2024-08-17 15:17:17 126

原创 【ARM 芯片 安全与攻击 6 -- ARM 中的 PAC 是什么?】

Pointer Authentication (PAC) 是 ARMv8.3-A 架构引入的一种硬件安全特性,旨在防止代码重用攻击(如返回导向编程(ROP)和跳转导向编程(JOP))。PAC 通过对指针(函数指针、数据指针等)生成和验证加密签名,确保指针的完整性和真实性,从而增强系统的安全性。

2024-08-17 15:15:59 138

原创 【ARM 芯片 安全与攻击 5.6 -- 侧信道与隐蔽信道的区别】

侧信道攻击是一种利用计算设备在执行某些操作时泄漏的物理信息(如时间、功耗、电磁辐射、声音等)来推测内部状态或敏感数据的攻击方法。这种攻击方式不依赖于传统的密码学分析,而是通过观察和分析设备的物理实施。隐蔽信道是一种通过非预期的通信路径在计算系统中传递信息的技术。它不依赖于正常的协议和通信路径,而是利用系统中的其他资源或特性进行信息传递。隐蔽信道主要用于在系统中创建未授权的通信路径,通常用于数据泄露或隐蔽通信。

2024-08-17 14:47:14 213

原创 【ARM 芯片 安全与攻击 5.4 -- Meltdown 攻击与防御介绍】

Meltdown 攻击是一种利用处理器乱序执行(out-of-order execution)机制的侧信道攻击。它允许非特权用户访问被保护的内存区域,例如内核空间内存。Meltdown 攻击主要影响了许多现代的高性能处理器,包括 Intel 和部分 ARM 处理器。

2024-08-17 14:23:14 217

原创 【ARM 芯片 安全与攻击 5.3 -- Spectre 攻击与防御介绍】

Spectre 攻击是一种基于推测执行(speculative execution)机制的侧信道攻击。现代处理器为了提高性能,会在分支预测时提前执行一些指令,这些指令可能在将来被证明是不必要的。Spectre 攻击利用这一推测执行的特性,诱导处理器执行不应执行的代码路径,并通过侧信道泄漏敏感数据。

2024-08-17 14:07:09 213

原创 【ARM 芯片 安全与攻击 5.1 -- 瞬态攻击(Transient Execution Attack)】

瞬态攻击,包括推测执行攻击和乱序执行攻击,利用现代处理器的优化机制来窃取敏感数据。通过了解这些攻击的原理和示例,尤其是它们在 ARM 处理器中的应用,开发者和安全研究人员可以采取适当的防御措施来保护系统和数据的安全。瞬态攻击(Transient Execution Attack)是一种利用现代处理器中瞬态执行(transient execution)机制的漏洞进行攻击的方法。Spectre 攻击利用推测执行来读取不应访问的数据。推测执行攻击是瞬态攻击的一种,通过利用处理器的推测执行特性来泄漏数据。

2024-08-17 13:59:15 251

原创 【ARM 芯片 安全与攻击 5 -- 测信道攻击(Side-channel Attack)】

测信道攻击(Side-channel Attack)是一类基于从计算设备的物理实施中获取信息来破解密码系统的攻击。电磁泄漏:设备工作时产生的电磁波。电源分析:设备工作时的电源消耗变化。时间分析:设备执行操作所需的时间。声学分析:设备工作时产生的噪音。热分析:设备工作时的温度变化。测信道攻击的根本在于利用这些物理特性来推测设备的内部状态或操作,为攻击者提供超越传统密码分析方法的新途径。

2024-08-17 13:52:01 234

原创 【ARM 芯片 安全与攻击 5.2 -- 芯片中侧信道攻击与防御方法介绍】

Speculation Barriers,是一种防止处理器在投机执行中泄漏敏感信息的技术。通过使用特定的指令或编译器插桩,Speculation Barriers 可以阻止处理器在某些分支预测错误的情况下继续执行,从而防止潜在的侧信道攻击。PAN(Privileged Access Never)是一种 ARM 处理器中的安全特性,旨在防止恶意软件通过操作系统漏洞获取不该获取的数据。PAN 确保内核模式下的代码不能访问用户模式下的内存,反之亦然。

2024-08-17 13:47:38 319

原创 【嵌入式开发 Linux 常用命令系列 4.5 -- 去除 git diff 时出现的 ^M】

可以帮助你在跨平台项目中检测并处理行尾的回车符,确保代码库中的行结束符一致。这对于维护代码的可移植性和一致性非常有用。通过示例,你可以看到如何配置、检测和处理行尾回车符问题,从而提高代码质量。这个配置在处理跨平台项目时尤其有用,因为不同操作系统通常使用不同的行结束符(Windows 使用 CRLF,Unix/Linux 使用 LF)。假设你正在处理一个跨平台项目,并且你希望检测并处理所有包含行尾回车符的文件。具体地说,它用于检测行尾的回车符(CR,可以帮助你检测并处理这些差异,确保代码库的行结束符一致。

2024-08-17 12:07:50 731

原创 【芯片设计- RTL 数字逻辑设计入门 9.2 -- Xilinx(赛灵思) FPGA 常用时钟原语有哪些?】

在FPGA设计中,时钟管理是至关重要的一环,它直接影响到系统的性能和稳定性。Xilinx提供了一系列的时钟管理原语,这些原语是针对其FPGA器件特性开发的,能够高效地实现时钟的各种功能。今天来聊一聊 Xilinx 时钟管理原语,包括它们的定义、分类以及在设计中的应用。Xilinx 的时钟管理原语是一系列针对其 FPGA 器件特征开发的常用模块,它们代表了 FPGA 中实际拥有的硬件逻辑单元,如LUTD触发器、RAM等。这些原语可以直接在设计中例化使用,是实现时钟功能的最直接方式。

2024-08-16 15:05:59 86

原创 【NPU 系列专栏 2.9 -- 国产GPU公司与创始人介绍】

如有侵权,请联系删除。

2024-08-16 14:46:40 181

原创 【vim 学习系列文章 15.2 -- vim vimgrep 使用详细介绍】

vimgrep是 Vim 中的一个强大工具,用于在文件中搜索模式并将匹配项加载到快速修复列表(quickfix list)。你可以使用它来在一个或多个文件中查找特定的模式,然后快速导航到这些匹配项。以下是vimgrep的详细介绍及使用示例。

2024-08-15 23:21:22 680

原创 【vim 学习系列文章 15.1 -- vim 只显示高亮字符所在的行】

在 Vim 中,如果你想只显示包含高亮字符的行,可以使用一些 Vim 内置的命令与功能来实现。通过以上方法,你可以在 Vim 中实现只显示包含高亮字符的行。这种方法可以帮助你更专注于分析和处理匹配的行内容。命令来搜索文件并只显示包含搜索结果的行。这会高亮所有包含 “example” 的字符。

2024-08-15 23:17:15 288

原创 【ARM Coresight Debug 工具系列 -- Trace32 | ARM-DS5 | OpenOCD JLINK 关系与差】

在嵌入式系统开发和调试中,Trace32、ARM DS-5、OpenOCD 和 J-Link 是非常常用的工具。它们各自提供了不同的功能和特性。下面将详细介绍这些工具,并进行比较和举例。

2024-08-13 22:03:16 811

原创 ARM CoreLink 系列 5.1.1 -- CI-700 System Address Map 】

所有的CHI 命令都包含一个 Source ID 和 Target ID, 其中 Source ID 可以来自于 RN Node, Target ID 可以来自于HN node或者其他 SN node. 其中 Target ID 是通过 SAM解析传入的地址得到的。对于 CI-700中的所有 RN Node 中的 SAM 多会进行配置,因为RN Node 访问的是整个地址空间,不同的地址空间会有不同的属性(I/O, DRAM),所以会对RN SAM 配置多个不同属性的区域。

2024-08-13 15:10:19 199

原创 【ARM CoreLink 系列 5.3 -- CI-700 SLC memory 系统组件详细介绍】

在 CI-700 系统级缓存(SLC)内存系统中,HN-F 节点负责管理缓存一致性和数据传输。每个 HN-F 节点可以发送三种类型的 Snoop 请求,以确保系统中多核处理器和缓存之间的一致性。CI-700 中的系统级缓存(SLC)内存系统通过 HN-F 节点支持 TrustZone® 技术。以下是 CI-700 支持的 SN 类型以及配置方法的简要介绍。ARM CI-700 系统级缓存(SLC)是一个分布式、主要排他性(mostly exclusive) 的最后一级缓存,集成在 HN-F 节点内。

2024-08-12 23:15:56 123

原创 【ARM CoreLink 系列 5.2 -- CI-700 SLC memory system】

CI-700 中的 SLC(System Level Cache)内存系统主要由 HN-F 协议节点组成,具有以下特性和功能:内存容量选项:PoC 和 PoS:SF 大小选项:每个 HN-F 节点负责管理总地址空间的特定部分,并执行以下任务:缓存数据:管理 PoC 和 PoS:跟踪 RN-F 缓存:物理索引和标签:一致性粒度:组相联性:替换策略:标签数组:数据数组:单端口访问:ECC 保护:改进的 PCMO 流程:条件 CMO 传播:显式编程:

2024-08-12 22:47:41 161

原创 【ARM CoreLink 系列 6.1 -- ARM 网路互联 NIC 与 CCI 与 CMN 应用场景】

ARM 的网络互连(NIC)系列主要包括以下几种型号,每种型号都有其特定的功能和应用场景。:支持服务质量管理(QoS)和虚拟网络(QVN)功能,优化系统性能和延迟。:由多个可配置的功能模块组成,适用于各种复杂的系统设计。:包括 AXI4、AXI3、AHB 和 APB。:支持时钟域跨越、数据宽度跨越等高级传输功能。:通过分层时钟门控减少空闲功耗。

2024-08-12 19:25:20 637

原创 【ARM CoreLink 系列 5.6 -- CI-700 DTM watchpoint】

也可以组合 WP0 和 WP1 为一组来监控更复杂的场景,WP2和 WP3可以配置为一组。WP2和 WP3 用来监控 flit downloads(数据接收)。XP device port 口的 flit 发送和 flit 接收可以通过DTM 中的4 个 WP(watchpoint point) 来监控。此外可以通过比较器来设置具体的监控条件,也即只有到条件满足之后才会触发trace的抓取,比如CPU连续写一段只地址,但是由于地址范围太大,那么可以配置只监控某个范围的地址,比如。

2024-08-12 19:24:19 58

原创 【ARM CoreLink 系列 5.5 -- CI-700 Debug trace and PMU 】

CI-700 的 Debug Trace 系统由分布于CI-700互联中的 Debug Trace Controllers (DTCs) 和 Debug Trace Monitors(DTMs) 组成。其中 DTCs 位于 HN-Ds, HN-Ts中,而DTMs 位于 XPs中,如下图 1-1 所示:图 1-1 Example DT system with two DTC domainsINTREQPMUNIDENSPNIDEN。

2024-08-12 19:23:16 658

原创 【ARM Coresight Trace 系列文章 2.3 -- 简单介绍 ITM 比 Uart 的优点】

在嵌入式系统中,ARM CoreSight 的 ITM(Instrumentation Trace Macrocell,仪器跟踪宏单元)和 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是广泛用于调试和数据传输的两种机制。尽管两者都能实现数据传输,但 ITM 在某些方面具有明显的优点。在高带宽、低延迟、低 CPU 负载、多通道支持和与 CoreSight 的集成方面具有显著优势,这使其成为嵌入式系统中实时调试和性能分析的理想选择。

2024-08-11 21:45:42 144

原创 【芯片设计- RTL 数字逻辑设计入门 1.3 -- verdi 波形查看快捷键】

左键:用于选择信号右键:调出菜单中间:单击移动黄线,拖动信号可移动位置排列顺序滑轮:上下滚屏,按住shift键可实现左右滚屏左键圈定波形范围:按选定缩放双击信号波形: 跳转到代码,并用绿色高亮该信号双击信号:按位展开(expand),Struct展开下一层。再双击折叠(collapse)右键信号名可以按指定位宽展开,比如512bits的信号分成4个128;菜单栏中的By: 可以选择Search不同的值:Any Change, Rising Edge, Falling Edge, Bus Value等。

2024-08-11 21:02:55 81

原创 【ARM CoreLink 系列 5.1 -- CI-700 各种 Node 组件详细介绍】

对于 CI-700中的所有 RN Node 中的 SAM 多会进行配置,因为RN Node 访问的是整个地址空间,不同的地址空间会有不同的属性(I/O, DRAM),所以会对RN SAM 配置多个不同属性的区域。CI-700 不会发送 snoop transaction 给 RN-I 和 RN-D nodes, 但是连接到 RN-I 和 RN-D上不带 hardware-coherent cache 的 Master 可以通过 RN-I 和 RN-D来发送 snoop transaction。

2024-08-11 17:23:53 199

原创 【ARM CoreLink 系列 4.2 -- NIC-400 控制器详细介绍】

ASIB中还包含一些 buf, 由于存取transaction 命令和数据一组部分,如果内部没有buf, 一个请求下来,且这个请求没有被仲裁到,那一定就会stop 这个master,如果有buf,那么即使前面Switch 上没有给这个transaction上仲裁到,这个master发出的一些请求,仍然可以临时放到buf中,这样masater就不会被stop住,仍然可以做自己的运算。

2024-08-07 21:52:45 192

原创 【ARM CoreLink 系列 4.1 -- NIC-400 控制器详细介绍】

它本质上是一种 Virtual 的 Network,从一个master 到一个slave,它中间走的实际路线叫做 physical 的 network,在physical network上根据需要还可以设置多个virtual 的 network,通过类似于token这种机制 (只有一个master获得了token,它才有资格去往下发它的一些传输的请求)。QoS 机制可认为是一种资源分配的机制,比如根据 outstanding的能力,去限制某一个端口一些发送数据的能力。QVN 功能允许配置最多八个虚拟网络。

2024-08-07 21:50:09 531

寄存器 bits 查看小工具, 可以用于查看及修改 32bit,64bit, 128bit, 256bit

寄存器 bits 查看小工具, 可以用于查看及修改 32bit,64bit, 128bit, 256bit

2023-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除