---
# System prepended metadata

title: 成大 105 硬體
tags: [NCKU, 硬體, '105']

---

# 成大 105 硬體
###### tags: `NCKU` `105` `硬體`
1. - load: 存取指令 2ns, 存取暫存器 1ns, 地址計算 2ns, 存取記憶體 2ns, 寫回暫存器 1ns，總共 8ns
   - store: 跟 load 差不多，不過不用寫回暫存器，7ns
   - R-format: 不用存取記憶體, 6ns
   - branch: 不用存取記憶體和寫回暫存器，不過還是需要計算地址, 5ns
   - jump: 如果是 direct jump without link 的話，存取指令 + 存取暫存器 (program counter) + 地址計算 (pc + offset)，5ns
:::info
direct jump 有兩種: branch / branch with link
後者還會把 pc + 4 壓進 link register 中
:::
2. 要判斷 EX/MEM 需不需要回授，如果不需要，再從 MEM/WB 回授
3. - $0.9375=1.111*2^{-1}$, $-1 + 127 = 126$
    - 我猜是為了方便比大小
4. (b) \(c\)
5. 不會
6. (a) paging level 增加，會增加記憶體存取的頻率，反而會加大 TLB 的壓力
(b) pre-paging 只能降低 page fault rate
\(c\) decrease page size 會讓需要翻譯的 virtual address 增加 (page size 砍半就會增加兩倍, 以此類推)，反而增加 TLB 的壓力
三個都不行 reduce TLB misses
7. semaphore 會讓 process sleep，在 sleep 的時候抓著 spinlock 不放，輕則降低效能，重則 deadlock
8. 因為同時用了 direct block addressing 和 indirect block addressing
:::info
https://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf
:::
