跳转至

2025 香山入门指南

【2025 香山入门指南 · 我在 827 做访存】(八)再探内存访问

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文作为 《我在 827 做访存》 系列连载的最终章,深入剖析了访存子系统的微架构设计细节与优化权衡。本文首先深入介绍了香山昆明湖 V2 访存单元中一些前面文章没有介绍的内容,主要包括指令微操作 (uop) 的作用、访存流水线与访存队列联合性能优化机制;然后我们探讨了一些现代处理器中常见的访存优化机制并分析了其中的取舍关系;最后,本文介绍了若干访存相关的 RISC-V 扩展,以对技术迭代的展望完成了对整个访存体系的系统性总结。

最后,感谢大家一路的支持,希望我们可以一起谱写新的篇章!

【2025 香山入门指南 · 我在 827 做访存】(七)关于访存队列你所需要知道的一切

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第七部分,主要介绍访存队列。本文主要分析了香山昆明湖 V2 处理器的访存队列(LSQ)设计,阐述了其如何在保障乱序访存正确性的同时提升执行效率。主要介绍下述内容:利用 StoreQueue 进行 Store 指令顺序维护与 Load 数据前递,通过 LoadQueueRAR 处理多核一致性问题,结合 Svpbmt 扩展管理 Main Memory、I/O 及 NC(Non-Cacheable)等不同内存属性,以及使用具备复杂仲裁逻辑的 LoadQueueReplay 模块来处理各类 Load 重发需求。本文并没有将 LSQ 的所有细节全部给出,但是介绍了 LSQ 的大部分关键功能以此抛砖引玉。

【2025 香山入门指南 · 我在 827 做访存】(六)并行计算的诱惑

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第六部分,主要介绍向量访存。计算机硬件的发展史本质上是对运算速度的追求,随着传统串行计算在功耗与散热方面触及物理瓶颈,并行计算成为提升性能的必然路径。文中介绍了 SISD、SIMD、MISD 及 MIMD 四种体系结构,并重点阐述了现代处理器中关键的向量计算技术。不同于传统固定位宽的 SIMD 指令集,RISC-V Vector(RVV)通过引入可变矢量长度的概念,允许硬件根据实际场景调整寄存器长度,实现了软件代码与硬件实现的解耦。文章还以香山昆明湖 V2 处理器为例,简要解析了其紧耦合向量单元的向量访存单元的实现机制,包括利用拆分与合并模块处理向量访存指令,以及针对不同访存模式的优化策略。

【2025 香山入门指南 · 我在 827 做访存】(五)原子不可分

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第五部分,主要介绍了原子操作相关内容。本文系统阐述了计算机系统中多线程并发中的数据竞争问题与 RISC-V 原子指令集的基础概念,简要解析了香山昆明湖 V2 的原子内存操作指令的硬件实现机制并给出了一些硬件实现原子内存操作指令加速的可能的选项。

【2025 香山入门指南 · 我在 827 做访存】(四)超越容量的界限

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第四部分,主要介绍了内存管理单元相关内容。本文将以现代计算机系统中的内存管理为起点,探讨操作系统如何利用虚拟内存与分页机制实现高效的内存管理,解析 RISC-V CPU 中的 MMU 如何通过页表遍历自动完成地址翻译。同时,针对地址翻译带来的性能挑战,文章将详细解读 TLB 的加速原理,并结合香山昆明湖架构的实例进行分析介绍。

【2025 香山入门指南 · 我在 827 做访存】(三)更大更快更强的缓存

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第三部分,主要介绍了缓存相关内容。缓存是位于 CPU 与内存之间的高速存储器,已成为现代处理器不可或缺的核心组件,其作用主要在于提升 CPU 的数据访问效率。本章主要阐述了缓存的基本原理,介绍了现代处理器中多核多级缓存所面临的缓存一致性问题,并简要分析了缓存性能的优化策略。

【2025 香山入门指南 · 我在 827 做访存】(二)访存流水线

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第二部分,主要介绍了访存流水线相关内容。访存流水线是处理器实现访存的重要机制。通过将访存操作分解为多个阶段,访存流水线能够提高内存访问的并行度和效率,从而提升整体系统性能。

【2025 香山入门指南 · 我在 827 做访存】(一)乱序访存

在“2025 香山入门指南”系列文章中,我们希望构建一个基于 2025 年 6 月昆明湖 V2 版本的香山(XiangShan,提交哈希为 6318236)上手指南,通过一系列引导性的入门指南,来引导新同学们学习、了解并最终掌握香山。

827 是昆明湖项目访存组的主要办公室,“我在 827 做访存”系列以此为题介绍香山访存部分的设计。本文是本专题的第一部分,主要介绍了现代处理器中访存的概念,简要分析了高性能处理器乱序访存的情况与基础的内存一致性规范。