- 博客(47)
- 收藏
- 关注
原创 [V-13][A-36]ARMv8/v9-GIC-虚拟中断直接注入VM的路由机制(Doorbell)
本文详细介绍了虚拟中断直接注入VM的路由机制,以及Doorbell机制。
2025-03-31 07:30:00
676
原创 [V-12][A-35]ARMv8/v9-GIC-虚拟中断直接注入系统架构(Direct Injection of Virtual Interrupts)
本文介绍了基于GIC架构的虚拟中断直接注入VM的系统架构。
2025-03-28 08:00:00
662
原创 [V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)
本文简要介绍了CPU虚拟化架构的基础知识。
2025-03-07 07:30:00
908
原创 [A-29]ARMv8/v9-GIC-中断子系统的安全架构设计(Security/FIQ/IRQ)
本文介绍了ARM安全架构下的中断子系统设计。
2025-01-29 00:00:00
2010
原创 [A-27]ARMv8/v9-GIC的核心组件(中断编程的基础组件)
本文介绍了GIC的核心组件,Distributor,ReDistributor,CPU-Interfaces。
2025-01-17 10:54:16
896
原创 [A-24][V-09]ARMv8/v9-SMMU工作场景与SMMU的虚拟化架构
本文基于SMMUv3介绍了其在两级地址翻译中的使用场景,最后介绍了SMMUv3的虚拟化框架。
2024-12-28 22:00:00
1374
1
原创 [A-20][V-07]ARMv8/v9-内存虚拟化(Stage-2 Translation)
本文介绍了ARM的内存虚拟化技术的Stage-2阶段的相关课题。
2024-12-01 09:30:00
1167
原创 [A-19][V06]ARMv8/v9-内存虚拟化原理
前一篇文章,我们介绍了ARM内存的属性,算是一个小小的里程碑点,接下来我们会把注意力重新拉回虚拟化的赛道。我们从[V-05] 虚拟化基础-异常模型(Exception model)之后,花了很多笔墨介绍了ARM体系的Cache和内存相关的机制作为我们进一步研究虚拟化的基础知识,今天终于回归到我们的虚拟化主线继续小马奔腾。内存空间的管理也是虚拟化技术体系中的核心课题之一,下面我们就进入内存虚拟化的世界。
2024-11-24 10:28:41
1006
原创 [A-18]ARMv8/ARMv9-Memory-内存空间的属性(Attributes & Properties)
在宏伟的ARM的内存世界中VMSA中,属性这个议题算不上最亮的星,就和屏幕前的你和我一样,平凡的活在这个茫茫然的人世间。纵使“丈夫贫践应未足,今日相逢无酒钱。”,也不要灰心面对生活,因为“山重水复疑无路,柳暗花明又一村”。这个时代磨炼着每一个人,考验着每一个人的意志力,只要坚持走下去,“莫愁前路无知己,天下谁人不识君”。本文成文的早晨,发生了一些遗憾的事情,谨以此文激励一下每一个屏幕前奋斗的码农,每一个为家庭默默付出的人。
2024-11-16 17:14:29
1383
原创 [A-16]ARMv8/ARMv9-Memory-内存共享属性和内存一致性(Memory Shareability & Consistency)
本文介绍了ARM体系下的内存共享属性和内存一致性课题。
2024-11-03 08:30:00
1172
原创 [A-15]ARMv8/ARMv9-Memory-弱排序内存模型(效率至上)
前文中我们用了一篇文章对内存做了分类,ARMv8和ARMv9只支持两种类型的内存,Device类型和Normal类型。而且这两种类型的内存是mutually-exclusive(互斥的),任何一段内存只能被赋予一种类型属性。我们在介绍Normal类型的时候简要的介绍过,Normal类型的内存属于Weakly-Ordered(弱排序),目的是为了最大成都加快编程指令流的执行,提高整个硬件平台的性能。正所谓甘蔗没有两头甜,有好的一面,自然伴随着一些课题,本文先来讨论ARM的弱排序内存模型。
2024-10-28 10:41:07
1294
原创 [A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device & Normal)
本文着重介绍了ARM架构下的内存的分类。
2024-10-26 15:44:05
1191
1
原创 [A-12]ARMv8/ARMv9-Memory-页表描述符(Translation table descriptor)
本文着重介绍了ARM体系的页表描述符的具体格式。
2024-09-30 07:00:00
1891
原创 [A-09]ARMv8/ARMv9-Memory-内存空间(Address Spaces and Translation Regimes)
本文着重介绍了ARM体系下,虚拟地址空间和物理地址空间的内部的具体空间类型。
2024-09-09 18:30:00
1276
原创 [A-08]ARMv8/ARMv9-Memory-内存空间(动态内存控制器与物理内存设备)
描述基于ARM架构的DDR Controller / DDR PHY 相关内容。
2024-09-02 22:30:00
1017
原创 [A-06] ARMv8/ARMv9-Cache的一致性机制(Cache系列完结篇)
书接上文 ,前序的文章我们介绍了Cache一致性的一些基础知识,为我们继续探讨ARM的一致性机制做了必要的铺垫。看过前文的我们应该清楚,ARM会提供两种方式维护Cache的一致性,这两种方式分别是:通过可以直接操作Cache的软件管理方式和直接通过在CPU内部的微架构内部和总线内部的一致性硬件管理单元的硬件方式。当然,为了提高处理器的性能和解放底层软件码农的双手,大部分的场景都是硬件在处理和维护Cache的一致性,自然我们要对这种方式做重点介绍。
2024-08-08 09:18:02
2081
2
原创 [A-02] ARMv8/ARMv9-Cache的结构设计(VIVT-PIPT-VIPT)
本文着重介绍了Cache的类型,VIVT、VIPT、PIPT。
2024-06-27 13:31:15
1194
4
原创 [V-05] 虚拟化基础-异常模型(Exception model)(基于AArch64)
前文的叙述中反复提到了ARM的异常模型,很多地方也留下了伏笔。异常模型对于ARM的架构来说是非常重要的,可以说是AArch64的很多设计思想的基础,对于虚拟化来说那就更加的意义非凡,因此我们需要篇文章专门的阐述清楚AArch64的异常模型的概念、分类、以及处理机制。一位伟大的人说过:这个世界唯一不变的真理就是这个世界永远处在不断的变化当中。
2024-06-13 20:16:28
743
原创 [V-04] 虚拟化基础-寄存器集(Register set)(基于AArch64)
本文只聚焦AArch64的状态,实际上在介绍指令集架构ISA的时候提到过ARMv8实际上是有AArch64和AArch32两种状态,而且两种状态还可以按照一定的规则做交替执行。那么对于寄存器这块是如何做映射转换的自然也有一套规则,例如图4-1所示。图4-1 AArch64 to AArch32 register mapping本文我们从寄存器的硬件电路开始讲起只到介绍了AArch64的寄存器体系,为进一步研究虚拟化技术打下了基础。
2024-05-23 20:22:45
1087
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人