-
2024-01-04 #cpu
冒险与停顿
- 结构冒险
- 每个部件每个周期只能被一条指令使用
- 数据冒险
- 前递(forwarding)或旁路: 上级已经计算出新值,下一级(以及之后)不必等待,直接拿到数据 e.g.
sub x2, x1, x3; and x12, x2, x5
,其中x2
在sub
指令的EX阶段算出来新值后可以立即前递给and
指令的EX阶段 - 停顿(stall)或气泡: 无法前递的冒险(比如载入-使用型数据冒险)只能
- 前递(forwarding)或旁路: 上级已经计算出新值,下一级(以及之后)不必等待,直接拿到数据 e.g.
- 结构冒险
-
2023-12-27 #cpu
代码都在这里
刚学完AXI-Lite,在用
valid/ready
握手在一条链上传递信息的时候,发现每传递一个消息,每一级都需要切换idle
和wait
两个状态,当时就在想能不能砍掉idle
状态,毫无停顿地发下去.学到Double Buffer FIFO的时候,才发现原来可以这样简单地就解决了.Bubble FIFO
先考虑最简单的Bubble FIFO,每个Buffer只有两种状态:空
empt
-
2023-12-24 #lan
- Tour of Scala,中文版
- Scala Online Playground
- A Compact Benchmark in C++, Java, Go, and Scala from Google(PDF)
Basic
// Types // Any is the supertype of all types, Nothing is the subtype of all types /
-
2023-12-20 #web
Commits
- 2023-07-30:
Initial commit
, 智能车比赛结束之后从济南回来,正值数据结构实习,先学了几天next.js,感觉后端和SEO还是不太妙,用回了熟悉的Django - 2023-08-08: 基本博客系统写完了,有在线MD编辑器了,初步部署
- 2023-08-14: 前端UI设计基本成形, ~~不纠结了~~
- 2023-08-23: 评论系统完成
- 2023-11-26
- 2023-07-30:
-
Types
Data
is the root of the Chisel type system.UInt
andSInt
extendBits
虽然chisel能够自动推断宽度,但是最好还是指定一下宽度(如
4.W
)UInt () UInt (8.W) 3.U(4.W) // An 4-bit constant of 3
We will need Scala vars to write
-
2023-12-07 #linux
参考Pro Git,一些vsc不方便代替的有用命令备忘
提交
自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过
git add
步骤,直接commitgit commit -a -m 'made a change'
gitignore
一个
.gitignore
文件的例子:# 忽略所有的 .a 文件 *.a # 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件 !lib.a #