- 博客(1064)
- 资源 (37)
- 收藏
- 关注

原创 我的CSDN文章
指令集架构篇ARMv7&ARMv6ARMv8RISCV32+RISCV64SOCsoc架构原理篇u-boot- 基于arm32linuxbuildrootexternal debug - 基于 jtag工程篇cortex-m单片机硬件接口及驱动linux驱动框架裸机存储管理linux内存管理 第一刷KVM篇QEMU-KVM复杂协议篇蓝牙协议以太网协议.........
2022-04-19 17:06:25
1090
1

原创 ARMv6 ARMv7 架构 整体介绍
文章目录市场应用领域市占率常见产品架构编程模型运行状态指令集寄存器非特权级别(usr模式)下不建议访问的指令与寄存器ABI异常模型特权级异常种类内存模型VMSA&MMU内存顺序模型cache默认内存一致性模型debug模型External DebugSelf-hosted DebugTraceboot模型虚拟化模型安全模型开发工具gcc toolchain & gdbqemu常见开发环境(除qemu外)软件开发裸机(baremetal)RTOSLinuxboot架构相关代码通用知识:如何新增
2022-04-16 14:36:11
4460

原创 ARMv8 ARM64 架构 整体介绍
这里整理一些 arm64(aarch64是armv8下面的一个工作状态,一般我们将其称为arm64?)
2022-02-10 10:43:29
8227
2

原创 基于JTAG的 芯片DEBUG 文章整理
基于JTAG的 芯片DEBUG 架构CROSS_GDB <-> GDB SERVER(openocd) <-> USB转JTAG小板(openjtag) <-> core(riscv&arm)jtagJTAG (一)杂谈JTAG (二) 协议JTAG (三) jtag实例 riscvJTAG(四)jtag实例arm cortex-m4&方法arm-debugriscv-debugopenjtagopenocdgdb...
2021-11-07 16:00:05
1798

原创 RISC V (RV32+RV64) 架构 整体介绍
riscv RTOS基于rv32 的 freertos基于rv64 的 rt-thread(非官方)基于rv64 的 rt-thread(官方)[基于rv32 的 rt-thead(非官方)](-TODO
2021-09-02 15:53:53
10264

原创 CORTEX-M 单片机 文章总览
一般来说 我们学习单片机 是通过学习历程(外设) 来 学习单片机在这里,换个角度从 单片机 启动角度 调试下载角度 内存角度 工程角度 来 学习单片机ARM单片机工程的编译链arm 的交叉编译链厂商单片机makefile工程makefile-linux工程单片机的bootstm32的bootgd32的boot单片机的内存stm32的内存映射调试下载框架及工具上位机软件JLink_Windows上位机软件openocd-linux上位机软件openocd-w
2021-06-17 14:14:10
661

原创 OK6410A 开发板 (九) A buildroot-2021.02 OK6410A 文章整理
硬件环境ok6410a板子的配置及资料整体boot现状最简移植ok6410a buildroot-2021.02 最简 移植busybox启动root账户密码登陆控制台为 串口0支持 reboot poweroffX11linux-5.11 ok6410a 增加lcd支持ok6410a buildroot-2021.02 x11 移植包括 ok6410a buildroot-2021.02 最简移植 的所有功能呢支持 设备管理mdev支持 xorg支持 网络工具
2021-04-15 14:43:29
493
1

原创 OK6410A 开发板 (八) A linux-5.11 OK6410A 文章整理
硬件环境ok6410a板子的配置及资料核心移植linux-4.0的移植linux-5.11的移植分析linux-5.11的配置过程分析linux-5.11的编译链接过程分析linux-5.11运行过程简略分析
2021-04-01 18:50:28
1497
4

原创 OK6410A 开发板 (三) A u-boot-2021.01 OK6410A 文章整理
硬件环境ok6410a板子的配置核心移植移植u-boot,使其能够跑起来并加载内核外围移植lcd 裸机lcd u-bootethernet 裸机ethernet u-boot其他外围驱动的TODO list分析整体boot现状需要分析的listu-boot与spl 配置过程Makefile解析spl 编译链接过程u-boot 编译链接过程spl与u-boot 编译链接过程的区别spl 运行分析简版spl 运行分析详细版u-boot运行
2021-03-30 16:45:22
364
1
原创 基于SC内存一致性模型两个核心约束的放松维度
针对SC核心约束1的relax每种顺序还细分为:├── 相同地址(通常不允许放松)└── 不同地址(放松的主要目标)针对SC核心约束2的relax。
2025-06-12 10:20:16
481
原创 atomicity of memory accesses
操作类型开始点结束点Load发起 cache read数据拿到为止Store发起 cache write数据在所有核心可见为止。
2025-06-11 15:51:10
359
原创 simple write-through invalidation protocol 如何满足缓存一致性的形式化定义
凭借 B1 和 B3 可以 构造出一个假想全局序列, 且能 满足 A1。B3. 读写之间定义 partial order。B2. 读能读到最新写入的值。B1. 写-写顺序一致。
2025-06-10 10:26:12
162
原创 多核处理器系统中内存一致性问题举例
问题是否成立说明多核系统会 stall 直到看到一致的数据❌不会,读取会看到“当前可见的值”,不等于等待一致store buffer 是 FIFO,所以写顺序一致✅/❌顺序进入 store buffer,但何时对其他核心可见不一定顺序传播快慢是否只是影响延迟❌在弱一致模型下,传播差异导致可见顺序乱序,进而出现 assert 失败assert(data == 123) 会失败吗✅ 可能在 ARM/RISCV 等架构上,确实可能,如果没有内存屏障。
2025-06-09 23:16:51
757
原创 缓存一致性性的 实现等价
讲述了 缓存一致性的 形式化定义 . 是从 高层次 形式化定义了 缓存一致性 , 但是没提 如何实现 怎么实现.那么从实现角度 呢?
2025-06-09 21:57:49
290
原创 共享存储系统
共享存储系统”这个术语的本质含义所有执行流可以访问统一的地址空间不同执行流对同一地址的访问是有语义意义的,即存在一致性保证;并行程序中,多个执行流通过读写共享变量通信与协作;这不仅是物理上的共享(即某个地址从所有执行流都可访问),还要是语义上的共享(不同执行流看到的值具有一致性逻辑)。1型: 小规模系统如多核系统(芯片内 SMP)或者通过总线互联的少量多核芯片(主板内 SMP),硬件的复杂度相对较低.提供共享存储的代价随着处理器数量的增加而超线性地增加。
2025-06-09 15:56:46
810
原创 并行硬件环境及并行编程
第 5.7 节将从更广义的角度探讨这些架构对并行编程的影响,并综合第 2 章和第 3 章关于并行程序的知识,以及本章关于。是共享内存并行编程中性能优化的关键目标,尤其是在基于总线的系统中,总线是瓶颈资源。来减少缓存未命中率(cache miss)和共享总线上的数据通信(流量)。:访问一个地址后,很可能会访问邻近地址(→ 利用块式缓存可提高效率);:近期访问的数据未来可能还会被访问(→ 使用缓存可以提高命中率);结合,进一步分析编程层面会遇到什么样的约束与优化方向。这里将回顾前面章节介绍的。
2025-06-07 21:14:23
215
原创 多执行流系统中的可见性
多核系统的各个核心有私有缓存,多个指令/CPU对同一内存地址的访问,不一定会马上读写主内存(或一致缓存)。即使一个核心很早就写入了内存,其他核心没看到这个写入,程序表现上就像这个写入没发生。✅ 所以一致性模型定义的是“看起来像是”什么顺序,而不是“物理上”什么顺序。内存系统的“顺序”定义的不是物理时间顺序,而是“对各执行流而言的行为顺序(可见性)”,因为这才是影响程序执行结果、数据竞争、同步行为的关键。或者更精炼一句:程序不能观察“写什么时候写入了物理内存”,它只能观察“什么时候读到了那个值”。
2025-06-07 11:03:36
376
原创 Sequential Consistency的两个核心约束
SC 是一个抽象模型,为了在实际系统中“实现”它,就要让系统的行为符合它的定义要求,也就是让程序执行的效果“看起来像是”所有处理器的操作按某种顺序一个接一个地完成。SC 的定义包含两个本质要求:程序顺序(program order)和原子可见性(atomic visibility). 这两个本质需求和形式化定义完全等价一个 执行流中的 Load/Store 等操作必须对所有执行流(包括自身)看起来是按代码写的顺序发生的。但不要求被同时看到所有进程看到的“整体顺序”或交错顺序是一致的。
2025-06-07 10:55:17
757
原创 SC 内存一致性 不包含 原子性
如果我们希望在一个进程的多个内存操作之间保持原子性(互斥性),或希望在多个进程之间的操作交错中强制实施某些顺序,就必须使用同步机制。在顺序一致性模型下,来自不同进程的操作可以以单条指令为粒度进行任意交错执行。顺序一致性只是规定了所有处理器看到的操作顺序,但。因此,仍然需要锁、信号量、屏障等同步手段。
2025-06-07 10:27:25
233
原创 Sequential Consistency 的 形式化定义
问题精确回答1. “execution 的结果”指所有 CPU load 到的值、内存最终状态,必须符合某个合法的串行操作顺序。2. “所有操作” 是指哪些仅指,不包括 ALU、跳转等指令。3. “some sequential order” 是真实的吗是逻辑上的顺序,不是实际执行顺序,但实现要保证最终行为可被解释为该顺序。
2025-06-07 09:48:26
858
原创 内存一致性管理的范围
执行流 = 能独立发起指令序列、发起内存访问请求、拥有自己程序计数器(PC)的一段运行上下文简单说:只要它能独立运行代码,并访问内存,那它就可以视作一个执行流。只要一个上下文具有独立执行能力 + 可访问内存,就可以被视为一个执行流。在涉及一致性模型时,中断上下文也应作为一个潜在的执行 agent 处理。
2025-06-06 22:10:47
396
原创 缓存一致性 推导出的 概念 : write serialization
【代码】缓存一致性 推导出的 概念 : write serialization。
2025-06-06 21:36:11
94
原创 atomicity 概念
的一次写操作(store),例如 CPUA 在时刻 1 写入值。换句话说,写操作对所有处理器来说是。上面的描述换一种说法, 即。
2025-06-06 16:43:52
642
原创 内存访问指令中的顺序
Dispatch 阶段:一条指令被复制分发到两处→ IQ:负责乱序执行(不维护顺序)→ ROB:负责顺序提交(维护程序顺序)程序顺序的唯一载体是ROB,其顺序信息可以作为 tag 附在指令上供后级(如 IQ、LSQ)判断是否依赖、是否投机。模块是否维护程序顺序是否知道顺序信息(tag)ROB✅ 是✅ 有IQ❌ 不维护✅ 有(但不按它排)Dispatch✅ 发给 ROB 确保顺序✅ 有。
2025-05-27 15:41:33
598
2
原创 内存状态的更新在pipeline外完成
在 ARM 的典型流水线中,你是看不到 “内存状态更新” 这个明确阶段的。内存状态(store to memory)的更新,而是由。
2025-05-27 14:08:16
203
原创 SV 仿真的常识
的执行相当于软件世界中的“线程”。SystemVerilog 离散事件调度器在每个时间槽(time slot)内依次执行的主要。代码块各自形成一个仿真线程。若要在同一线程内并行分支,就需要使用。执行对应区域的所有就绪事件;然后仿真时间跳到下一个有事件的槽位。开始,逐层实例化与端口互联,最终形成完整的层次化结构。块就相当于在硬件世界里“显式启动一组并行线程”。在 SystemVerilog 中,模块(在仿真器中,每到一个时间槽,依次从。作为设计的基本单元,整个电路从。在默认情况下,每个模块的。
2025-04-30 11:07:41
1107
freetype2+SDL+SDL_ttf源码包及字符串转bmp图片demo
2017-03-07
linux-5.17 arm32 arm64 rv64 arch 下的 共同函数
2022-06-16
grub-build.log
2020-11-22
sdio_data_AllInOne.rar
2019-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人