---
# System prepended metadata

title: 第二次掃墓

---

## 下四的control表
![image](https://hackmd.io/_uploads/SyEqZg8vT.png)
![image](https://hackmd.io/_uploads/HJsgGx8va.png)


## R-type (add) 
![image](https://hackmd.io/_uploads/B12GQAHv6.png)
![image](https://hackmd.io/_uploads/B1LfAkUwa.png)

## I-type (lw載入)
![image](https://hackmd.io/_uploads/SyPDQCrva.png)
![image](https://hackmd.io/_uploads/HyrrRJUPa.png)

## I-type (sw儲存)
![image](https://hackmd.io/_uploads/S1RdV0Bwa.png)
![image](https://hackmd.io/_uploads/rkqI1xLD6.png)

## BEQ
![image](https://hackmd.io/_uploads/rkMuSCSvT.png)
![image](https://hackmd.io/_uploads/BJLQZe8vp.png)

## Jump
![image](https://hackmd.io/_uploads/ryZoHgUwa.png)
- example ![image](https://hackmd.io/_uploads/SJJz_xLvp.png)

## pipeline
![image](https://hackmd.io/_uploads/HyzO8fLPT.png)
- pipeline的圖長這樣
 ![image](https://hackmd.io/_uploads/rJmRWnUwp.png)
- 最完整的pipeline圖
![image](https://hackmd.io/_uploads/B1JZQhUDp.png)
- with forwarding
![image](https://hackmd.io/_uploads/B1SDc2UDT.png)
- forwarding condition
![image](https://hackmd.io/_uploads/rJmvn3LPa.png)
![image](https://hackmd.io/_uploads/B1z7Tn8w6.png)
![image](https://hackmd.io/_uploads/rJODzpUP6.png)

- 最最完整的datapath和上面比加了forwarding
![image](https://hackmd.io/_uploads/S15up2Uwa.png)
- 如何加泡泡
![image](https://hackmd.io/_uploads/H1VNz68Dp.png)
- 最最最完整的datapath和上面比又加了harzard detection(可以產生bubble)
![image](https://hackmd.io/_uploads/SJ5F8aUDp.png)
- 這百分之百是最後一張圖
![image](https://hackmd.io/_uploads/HJyXlGPDa.png)


## control每條詳解
![image](https://hackmd.io/_uploads/BkD8eh8Pa.png)
![image](https://hackmd.io/_uploads/SycBf2Iva.png)
## note
- address interleaving 位址穿插 讓系統對記憶體的不同bank同時存取
- ![image](https://hackmd.io/_uploads/r19xRSPDp.png)
- write through 寫透 保持主記憶體和快取的一致性 快取一寫什麼就直接寫回主記憶體
- write buffer 存放等待寫入主記憶體的資料
- ![image](https://hackmd.io/_uploads/Sy77G8PDa.png)
- ![image](https://hackmd.io/_uploads/rk9JLvvDa.png)
- ![image](https://hackmd.io/_uploads/rynqIwDwa.png)
- ![image](https://hackmd.io/_uploads/HkxNBjPw6.png)
