RISC-V 火箭缓存一致性

RISC-V Rocket Cache Coherence

对于RISC-V Rocket处理器,缓存采用什么样的写策略(例如回写+分配,直写+不分配)? L1 缓存如何与 RISC-V 中的 L2 缓存保持一致?

RISC-V 是一个 ISA(指令集架构),而不是处理器。因此,ISA 对高速缓存回写策略或一致性设计无话可说。这些决定留给各个处理器设计团队。事实上,他们甚至不需要缓存。

关于内存,RISC-V 唯一要说的就是 "memory consistency model"。 RISC-V 使用相当宽松的一致性模型,因此两个 RISC-V 线程可以看到两个不同的 sequences/interleavings 内存操作(与 "sequential consistency" 相反,所有线程看到相同的交错) .


编辑(现在问题澄清了,它只询问 Berkeley Rocket 处理器):

截至 2015 年 9 月 9 日,Rocket 的 L1 缓存是回写+分配。 L1 通过侦听请求保持一致。每个 Rocket 核心都位于包含 L1 的 "Rocket Tile" 上。

可选的 L2 位于火箭板块之外。 Rocket tiles 仲裁对单个 L2 的访问。 L2 包含所有 L1 数据。然而,L2 可能持有过时数据,但如果核心请求该数据,L2 将知道哪个 L1 持有数据的当前副本,并将适当地发送释放请求。