# 積體電路製程 ![](https://hackmd.io/_uploads/BJOF92QzT.png) # IC cost ![](https://hackmd.io/_uploads/rk5qn3QMa.png) - Wafer cost跟area是固定的 - Defect rate會提供 - Die area看製成跟電路設計(總之越大越難做) # CPU Time ![](https://hackmd.io/_uploads/SJiRfamMp.png) ![](https://hackmd.io/_uploads/HyNt_WNGa.png) improve by - 讓事情做的次數減少(減少clock cycles) - 讓指令簡單 工作做更快(減少clock rate) - 要在兩個中做取捨(寫簡單的指令做多次、寫複雜的指令做少次) - 例題: ![](https://hackmd.io/_uploads/BJMXUaQf6.png) # Instruction Count & CPI ![](https://hackmd.io/_uploads/SJx3UaXMp.png) ![](https://hackmd.io/_uploads/BJgPdamMa.png) # Memory-Memory ISAs & Accumulator Machines - MMI較慢 缺點是會用到很多記憶體 - AM雖然快一點 但還是會用到一些不需的暫存 優點是在某些一連串的計算有機會可以直接只存答案就好 # Addressing Modes ![image.png](https://hackmd.io/_uploads/SJ5mqv8mp.png) - Direct: M[40]這個記憶體位置的東西給R1, Immediate: 把40這個值直接塞進R1 ![image.png](https://hackmd.io/_uploads/HJ9FsDUQ6.png) ![image.png](https://hackmd.io/_uploads/SJ4j2PUma.png) # RISC 標準 ![image.png](https://hackmd.io/_uploads/Skce4uIQ6.png) # MIPS ![image.png](https://hackmd.io/_uploads/B1k7a58ma.png) Shift Operations ![image.png](https://hackmd.io/_uploads/Bksv298m6.png) NOT Operations ![image.png](https://hackmd.io/_uploads/BJd0a9IX6.png) # 載32位元常數 ![image.png](https://hackmd.io/_uploads/H1Bmyn8QT.png) # 小筆記 - Response time 做task的速度 (個人關心) - Throughput 單位時間能做的總工作量 tasks/hour (數據中心管理員) - ![](https://hackmd.io/_uploads/SJdwpZNGa.png) - MIPS million instructions per second= ${IC\over time*10^6}={clock\ rate\over CPI*10^6 }$ 不看指令架構、複雜度 所以不是一個好的效能評估依據 - halfwords 存在偶數的addresses - MIPS 支援不對齊和特殊指示雖然很慢 但大多數processors根本不允許 - big-endian 從大的往後放(MIPS, Sparc, 68000) little-endian 從小的往前放(most Intel processors, Alpha, VAX) - LSB: least significant bit(最右邊的位元, MSB: most significant bit(最左邊的位元) - ![image.png](https://hackmd.io/_uploads/H1SxLoUmT.png) - ![image.png](https://hackmd.io/_uploads/rkOWwoLm6.png) - lui(load upper immediate)載一個16位元的東東塞到32位元的前16位元 - ![image.png](https://hackmd.io/_uploads/BJR4HeDQp.png) - ![image.png](https://hackmd.io/_uploads/rynBSlvmT.png) - ![image.png](https://hackmd.io/_uploads/rJAlhgDXa.png) ![image.png](https://hackmd.io/_uploads/Hk0W2lw7T.png) frac{(3x^3+5)(x+3)(x+1)}{(x-5)(x-3)(x-1)}}