菜单

作者:kaoqi

虚拟内存进程地址空间

进程地址空间(Process Address Space)指进程可寻址空间。在64位处理器中,进程地址空间直接指可寻址256TB的用户态地址空间,每个进程都可以拥有一个完全独立的进程地址空间。在这个空间中,进程可以利用虚拟地址完成程序的段代码映射、数据段映射、用户进程栈、mmap映射、堆映射的数据结

kaoqi 发布于 2026-08-12

ARMv8异常处理

在ARMv8中,异常包括中断、中止、复位、系统调用四种类型,异常本身又会根据其异常等级、同步或异步异常的属性,被核心以不同方式进行处理。当异常发生时,CPU内核能感知异常发生,而且会生成一个目标异常等级(targetr exception level)。CPU会进行一次执行状态切换(Interpro

kaoqi 发布于 2026-08-11

内存页表映射

在ARM64处理器中,MMU(Memory Management Unit)包括TLB和一个页表遍历单元(Table Walk Unit, TWU)。其中TLB是一个高速缓存,用于缓存页表转换的结果,从而缩短页表查询的时间。一个完整的页表翻译和查找过程叫做页表查询。当TLB未命中时,MMU会进行内存

kaoqi 发布于 2026-08-11

高速缓存虚实与一致性

准确的讲,应该称呼虚拟地址为CPU期待地址,称呼物理地址为内存实际地址。因为CPU所有操作全部都是基于“虚拟地址”实现的,而且在CPU内部的缓存结构中,使用的也确实就是虚拟地址的值。换言之,对CPU来说,虚拟地址一点都不虚拟,完完全全就是CPU内部实际通用的硬通货。 但对于缓存,这个夹在CPU与内存

kaoqi 发布于 2026-08-10

ARMv8体系结构

ARMv8是ARM公司发布的第一代支持64位处理器的指令集和体系结构。后续的具体版本主要由cortex更新。 ARMv8手册:https://support.arm.com/architectures/a-profile-architecture 执行状态 执行状态指处理器运行时的环境,包括寄存器的

kaoqi 发布于 2026-08-10

ARM下的core总线基本概念扫描

AXI总线 一般认为A4S为AXI4-Stream这个简称,就是指的ARM AMBA 4规范中的一种单向高速流式总线接口协议,专为无地址、无突发概念的连续传输设计。 AXI4,认为式读写某个地址的一段数据——像是你去信箱取信,需要知道信箱编号(地址)和取几封(突发长度)。 AXI4-Stream,认

kaoqi 发布于 2026-08-10

高速缓存基本结构

这里主要介绍的是缓存命中与否的机制。缓存是一个比主存小很多,但是快很多的器件。 可以从逻辑的角度上,描述缓存这个硬件为一个如下输入、如下输出的一个逻辑结构抽象: 缓存的输入: 1、输入一个地址 2、输入一个解析地址的逻辑结构 3、索引对应标记不命中时,从主存中新增该索引对应正确标记地址的数据 缓存的

kaoqi 发布于 2026-08-05

内存初始化(一)

内存在上电后,会由固件引导加载kernel,并根据kernel的描述完成内存页表的准备,进而完成初始化。注意,这里的描述都是以kernel源代码的角度进行的。 具体来说,内存初始化分为基础页表准备、早期内存分配器初始化、核心页表初始化、伙伴系统初始化四个部分。 临时页表阶段 内核的加载本身由某种Bo

kaoqi 发布于 2026-08-05

kernel链接器简介

现代软件工程中,一个大程序往往由一系列源文件组成。链接指的时把这些目标文件的代码段、数据段、符号表以及未初始化的数据段等内容收集起来并按照某种格式组合成一个可执行的二进制文件的过程。 链接器就是一个遵循AT&T格式的脚本(比如kernel的/arch/arm64/kernel/vmlinux.lds

kaoqi 发布于 2026-08-03

EFI的初始化

在GRUB2中,最开始的初始化行为是加载image handle。 参考:bootimage-example/GRUB_ARCHITECTURE_AND_INIT.md at main · liweinan/bootimage-example · GitHub Image文件的加载 在/core/k

kaoqi 发布于 2026-08-03
上一页 下一页