riscv-boom's bim bimThis module implements a Bimodal Branch Predictor using 2-bit saturating counters. The prediction is based on the MSB of the counter: Counter = 0 (00): Strongly Not Taken Counter = 1 (01 2025-12-02 计算机体系结构 #分支预测
riscv-boom's ubtb ubtbThis is the set-associative variant of the Micro BTB, as opposed to the fully-associative FAMicroBTB. It uses indexed addressing like a cache. Structure: 256 sets by default (configurable) Each e 2025-12-02 计算机体系结构 #分支预测
Branch Prediction for riscv-boom Branch PredictionBOOM uses two levels of branch prediction: a fast Next-Line Predictor (NLP) a slower but more complex Backing Predictor (BPD) In this case, the NLP is a Branch Target Buffer and the 2025-11-27 计算机体系结构 #分支预测
预测器关键参数 分支预测器的性能指标上一篇文章研究了一个供学习研究的分支预测器 biriscv_npc,顺便量化了这个分支预测器的性能(唯一指标就是分支准确率,已经包含各个分支指令执行次数的权重,想想为什么)。 这篇文章来研究各个参数对于分支预测器的影响,以及为什么影响。 BTB 容量处理器的 BTB 大小是有限的(比如 512 个条目)。当需要存入第 513 个分支指令的预测信息时,必须覆盖掉某一个旧条目。选择 2025-11-26 计算机体系结构 #分支预测
biriscv_npc 性能分析 分支预测器性能统计基本信息当 branch_request_i 拉高: RAS 学习如果 BTB 命中或者不命中: btb_pc_q 更新:btb_pc_q[btb_wr_entry_r] <= branch_source_i btb_is_call_q 更新:btb_is_call_q[btb_wr_entry_r]<= branch_is_call_i btb_is_re 2025-11-18 计算机体系结构 #分支预测
biriscv_npc 分析 biriscv bp这是 bp 的 IO 信息: 1234567891011121314151617181920212223242526272829303132333435363738394041module biriscv_npc//-----------------------------------------------------------------// Params//------ 2025-11-17 计算机体系结构 #分支预测
分支预测技术 基于 2 bit 饱和计数器原理就是利用 PC 中 k 位来查找 PHT,若查到了一个表项,那么就可以由 PHT 中的一个表项的 2bit 饱和计数器给出跳转建议。这个 2bit 饱和计数器其实就是一个跳转意愿强度:00、01、11、10(格雷码)。而从指令提交阶段的跳转指令的反馈信息(比如是否发生了跳转)可以更新这个饱和计数器。 PHT(Pattern History Table)PHT 存放 2025-11-15 计算机体系结构 #分支预测
毕业设计大纲 项目文档描述:基于 LoongArch32R 的轻量级 SoC 及嵌入式系统实现1. 题目简述本项目设计并实现了一个完整的、基于国产 LoongArch32R 精简指令集架构的嵌入式片上系统。核心内容包括: 定制化 LoongArch32R CPU 核心: 包含双缓存(Cache)结构(指令缓存 I-Cache 和数据缓存 D-Cache)以及动态分支预测器,提升执行效率。 完整 SoC 集成: 2025-10-30 计算机系统结构 #CPU #OS #SPI #loongarch32r #SoC #软件设计 #VGA
编译和链接:以 qemu 上的裸机程序为例 前言昨天面试,有一个问题问到了链接脚本以及 elf 文件结构。感觉回答得不怎么样,很多概念的细节都想不起来了,面试官也没深问。于是我立即决定做一个实验好好回顾一下这一块儿的知识: 写一个比较复杂的测试程序,最好能包含各个段; 写一个简单的启动代码; 写一个简单的链接脚本; 写一个简单的库,包含类似于 printf、memcopy; 然后编译、链接,放在裸机上执行。 项目结构1234567891 2025-10-27 计算机系统结构 #riscv32 #编译 #链接 #qemu
Linux 驱动开发学习日记:分离的思想和总线设备驱动模型 总线驱动模型这种架构将设备(硬件描述)和驱动(操作逻辑)分离,实现了解耦和灵活性。内核中的平台总线(platform bus)负责将它们连接起来。 这种分离将驱动与驱动对硬件操作分成了两部分:驱动和设备。这就引来了一些问题,比如: 驱动怎么匹配设备 设备怎么匹配驱动 匹配上了后,probe 要做什么 删除设备后,remove 要做什么 一个驱动带多个设备 等等 以下通过例子来阐述这种分离,以及 2025-10-22 Linux #Linux 驱动