• Latest Articles
  • Computer Science
  • Books Reading
  • CPP
  • OS
  • Graph
  • Big Data

从零开始造一颗 RISC-V CPU(六):微架构验证体系与 IPC 性能评估

从零开始造一颗 RISC-V CPU(六):微架构验证体系与 IPC 性能评估报告 系列博客第 6 篇(最终篇) —— 在现代 CPU 设计中,验证(Verification)往往占据了流片前 70% 的工作量。本文将全面解析我们如何通过 Python 构建指令集模拟器(ISS)、约束随机验证(CRV)以及端到端的状态机快照比对,验证这套复杂的双发乱序引擎,并给出最终的微架构 IPC 性能跑分。

从零开始造一颗 RISC-V CPU(五):乱序执行的来龙去脉与微架构实现

从零开始造一颗 RISC-V CPU(五):乱序执行的来龙去脉与微架构实现 系列博客第 5 篇 —— 深入探讨乱序执行(Out-of-Order Execution)的底层硬件机制。本文将从体系结构历史出发,讲解 Tomasulo 算法的演进,并结合完整的微架构全景图(Mermaid 框图)与核心 Verilog 源码,解析我们在 1000 多行代码内构建的这套乱序执行引擎。 1. 乱序执行的来龙

从零开始造一颗 RISC-V CPU(四):Cache 微架构演进与组相联设计

从零开始造一颗 RISC-V CPU(四):Cache 微架构演进与组相联设计深度解析 系列博客第 4 篇 —— 深入探讨存储器层级(Memory Hierarchy)的底层硬件机制。本文将从早期的“存储墙”问题出发,讲解从直接映射(Direct Mapped)到 2路组相联(2-Way Set-Associative)的架构演进,并结合完整的微架构数据通路(Mermaid 框图)与 Verilo

从零开始造一颗 RISC-V CPU(三):TAGE分支预测微架构

从零开始造一颗 RISC-V CPU(三):分支预测微架构 — 从 Bimodal 到 TAGE 引擎的硬核解析 系列博客第 3 篇 —— 深入探讨影响深级流水线性能的核心命题:分支预测(Branch Prediction)。本文将通过微架构层面的演进逻辑,讲解从基础的 Bimodal 到目前工业界最先进的 TAGE(TAgged GEometric History Length)预测器的算法本质

从零开始造一颗 RISC-V CPU(二):顺序双发射(In-Order Dual-Issue)

从零开始造一颗 RISC-V CPU(二):顺序双发射(In-Order Dual-Issue)基线架构与冒险黑洞 系列博客第 2 篇 —— 这是一个非常有意思的工程伏笔:为什么我们最终走向了“乱序执行(OoO)”?本文将解剖我们的基线版本(main 分支)—— 顺序双发射(In-Order Dual-Issue)架构。我们将看看在这套初代架构中,为了保证两条指令同时无碰撞地在深浅管线中平行飞奔,

从零开始造一颗 RISC-V CPU(一):项目总览与流水线基础

从零开始造一颗 RISC-V CPU(一):项目总览与流水线基础 系列博客第 1 篇 —— 介绍整个项目的动机、架构全貌、8 级流水线设计以及关键的 hazard 处理。 项目地址:https://github.com/HaibinLai/simple-CPU/tree/main/docs 为什么要自己造 CPU? 每年的计算机组成原理课,都有一个调bug到想死的大作业:用 Verilog 实现一

没有人类了

人之所以为人,是由许多部分组合而成。要成为一个真正的自己,需要的条件会多到让人吓一跳。别于他人的面容、属于自己的声音、睡醒时注视的那双手、童年的回忆、对未来的猜想,还不止这些,还有我的电子脑所触及的咨询海洋,是这所有的一切造就了我,让我意识到自我。但同时,也将我拘束在自我当中。——《攻壳机动队》 我们认为,LLM将取代人类。 人类的复杂度似乎还是超乎了我们于AI的想象。我们认为AI将取代人类,因为

Computer Arch 102

项目 从计算机课堂的5级流水线进一步进阶,制作更强大的CPU。 github: https://github.com/HaibinLai/simple-CPU.git 使用指令集:RISC-V 多发射(Superscalar) Superscalar(超标量)是指 CPU 在一个时钟周期里,不再只发射(issue)一条指令,而是同时发射多条彼此独立的指令到不同执行单元。例如一个现代 CPU 可能同

最近一个月的复盘

刚投完文章,突然一阵空悲切,不知道自己应该干什么了。明明后续还有校对、实验等等工作,但是似乎目的感没有那么强烈了。 决定复盘下我目前的问题。 1.1 我会犯沟通错误,并且很严重 刚刷到个帖子,挺有意思。有网友分享自己带新人的原则,说是前三个月里,允许对方犯任何技术上的错误,但沟通上要是出了岔子,那是绝对不行。代码写崩了可以调,需求理解偏了能掰回来,可要是遇到问题闷声不响,进度延迟了也不吱一声,这在

pre-PhD: thinking & planning

来MSRA后,与很多人进行了观点交流和碰撞,真是开拓眼界了。信息密度大,可是任务紧凑,没能每一个idea都细细分析,在这里只能把他们大杂烩。如果有冲突或者重合,纯属个人臆想。 我目前最想去寻找的答案,就是未来5年的phd要做什么。时代的变动非常激烈,在AI的冲击下,传统的system以及HPC的研究方法、方向乃至思路都有可能发生翻天覆地的变革。 System 研究要追上Agent 步伐 古法编程一

S.H.I.T 中国青年虚无主义体验的形成机制与生命意义重建路径研究

paper link: https://shitjournal.org/preprints/7bce9b92-88ef-4f58-ad9b-e84850799939 文章探讨了为什么很多中国青年(初中生、高中生以及大学生)陷入迷茫与虚无主义 1. 为什么会形成虚无主义 文章章节1、2节讨论了这一问题。 作者认为,大部分中国青年最初生长在封闭环境(如学校、家庭)。其环境的封闭性体现在:对人生目标这一

(WIP) 梁漱溟 中国文化要义

认识老中国,建设新中国 梁在书的前言中介绍了为什么写这本书:为中国问题所困挠,希望从文化中找到解答。 本书一名《中国民族之前途》。内容分上下两部:上半部为认识中国 问题之部,下半部为解决中国问题之部――因要解决一个问题,必须 先认识此一问题。中国问题盖从近百年世界大交通,西洋人的势力和 西洋文化蔓延到东方来,乃发生的。要认识中国问题,即必得明白中 国社会在近百年所引起之变化及其内外形势。而明白当初

Agent + Website

WebTactix Semantic Tree-Guided Parallel Multi-Agent Planning for Web Task — 基于语义树引导的并行多代理规划框架。 将任务变成搜索树 Agent并行的BFS去决策完成最佳搜索 任务预处理 将用户请求转换成明确的约束集合,这样可以清晰地检测任务是否完成。 简化观察 (AxTree) 把原始的网页可访问性树转换为简化文本版的 A

SCA26 Trip to Japan

可能是一篇比较流水账的游记,提前磕个头说个抱歉( PS: 我插入了一些歌曲在行程中,欢迎点击来听听 🙂 时隔九年,我再次踏上关西的土地。 飞机降落在关西国际机场,摆渡车玻璃厚实,却显出深圳未曾有的清凉,混合着机场里特有的淡淡的、干燥的清洁剂味。阳光在金属扶手上跳跃,窗外运行李的小车有条不紊地卸货,更远处是静默的塔台与深蓝的大海。 九年一瞬,这些情景仿佛昨日。很多坐标没有变,但坐标系里的人与故事天翻

ISCA25 Neoscope: How Resilient Is My SoC to Workload Churn?

未来的硬件怎么应对不断演变的软件? https://dl.acm.org/doi/pdf/10.1145/3695053.3731014 这篇文章是 ISCA 2025 的论文 《Neoscope: How Resilient Is My SoC to Workload Churn?》,核心在回答一个非常系统/架构导向的问题: 当软件和工作负载不断演进(churn)时,一个 SoC 设计在整个生命

STOC81 I/O Complexity: The Red-Blue Pebble Game

STOC81 I/O Complexity: The Red-Blue Pebble Game 这是一篇理论计算机科学文章,但是描述了一个非常有趣的问题:就像时间复杂度一样,我们能不能做一个I/O复杂度,衡量一个程序最少要进行多少次I/O? 文章链接: https://www.eecs.harvard.edu/~htk/publication/1981-stoc-hong-kung.pdf Com

In-depth analysis: RetroInfer: A Vector-Storage Approach for Scalable Long-Context LLM Inference

之前用LLM看文章,后来发现同样20分钟时间,学到的东西其实不如自己认真读读+关键问题请教。 KVCache可以用上 RAG 技术吗? 这篇文章的idea是:能不能 "build KVCache as a Vector Storage System." 在长上下文情况中,KVCache经常超出显存,那么我们只能把多余的KVCache存进CPU内存里。而这样就很慢(CPU-GPU