-
2026-02-17 #arch
传统的计算机基于晶体管的电流开关(0 和 1)进行逻辑运算。而以 PsiQuantum 为代表的光量子计算机,则利用光子(单个光粒子)的量子叠加、相位延迟与波的干涉实现量子计算。
预备知识
量子态的01
在经典计算机中,“0”和“1”是高低电压。而在 PsiQuantum 的光量子芯片中,使用双轨编码 (Dual-rail Encoding)来表示0和1,其光量子芯片内部就像一个微缩的两路高速公路
-
总述
Chisel封装了一个非常强大的
Queue,同时还建立了一个非常好的抽象模型,了解使用这个玩意可以有助于我们理解很多种类的缓冲。Queue(io.in, entries = 4, pipe = false, flow = false)参数介绍如下:
- entries (Int):队列的深度(容量)。
- pipe (Boolean):默认为false,是否允许 valid 信号的组合逻辑穿
-
2024-01-04 #arch
冒险与停顿
- 结构冒险
- 每个部件每个周期只能被一条指令使用
- 数据冒险
- 前递(forwarding)或旁路: 上级已经计算出新值,下一级(以及之后)不必等待,直接拿到数据 e.g.
sub x2, x1, x3; and x12, x2, x5,其中x2在sub指令的EX阶段算出来新值后可以立即前递给and指令的EX阶段 - 停顿(stall)或气泡: 无法前递的冒险(比如载入-使用型数据冒险)只能
- 前递(forwarding)或旁路: 上级已经计算出新值,下一级(以及之后)不必等待,直接拿到数据 e.g.
- 结构冒险
-
2023-12-27 #arch 🌟
代码都在这里
刚学完AXI-Lite,在用
valid/ready握手在一条链上传递信息的时候,发现每传递一个消息,每一级都需要切换idle和wait两个状态,当时就在想能不能砍掉idle状态,毫无停顿地发下去.学到Double Buffer FIFO的时候,才发现原来可以这样简单地就解决了.Bubble FIFO
先考虑最简单的Bubble FIFO,每个Buffer只有两种状态:空
empt -
Types
Datais the root of the Chisel type system.UIntandSIntextendBits虽然chisel能够自动推断宽度,但是最好还是指定一下宽度(如
4.W)UInt () UInt (8.W) 3.U(4.W) // An 4-bit constant of 3We will need Scala vars to write
-
2023-08-22 #arch
RV32I指令集和多周期 RV32I CPU代码的笔记,可用于RV32I指令集速查
指令格式
RISC-V指令集是模块化设计的,其中RV32I是基本的32位整数ISA,只有47种指令,但是足以提供给现代操作系统足够的基本支持以及作为编译器的编译目标。
| 助记符 | 描述 | | ------ | ------------- | | I