---
# System prepended metadata

title: 計組 - Ch1
tags: [Computer Organization]

---

# 計組 - Ch1 
###### tags: `Computer Organization`

## 一 . 計概複習
### (一) . 基本概念
- 摩爾law : 每18-24個月，積體電路的大小可以增加一倍。
![](https://i.imgur.com/qecwBSH.png =440x)

- 電腦的分類 ：
  1. ```Personal Compter``` : 個人電腦
  2. ```Server``` : 伺服器。
  3. ```Embedded computers``` : 鑲入式電腦。
  4.  ```PMD``` : 代表，personal moblie device。
  5.  ```Cloud Computing``` : 雲端計算。
- 位元組 ： 
  1. 10進位為計算 ： 每$10^3$一次轉換單位。
  2. 2進位為計算 ： 每$2^{10}$一次轉換單位。
 
![](https://i.imgur.com/ZVOdPNt.png)

- 8個設計電腦的重點 ： 

---

### (二) . 基本電腦架構

- 軟硬體的架構和關係 ： 
  1. 硬體 ： 電腦中可視的一切機器都是屬於『硬體』。
  2. 軟體 ： 電腦中不是硬體的，都是軟體。
  3. 軟硬體的關係 ： 作業系統操作硬體，為上層的應用程式提供介面。
        ![](https://i.imgur.com/G7w7xAe.png =300x)
 

- 程式語言的組成 ： 
  1. 高階語言 ： 直接和開發者互動的。
  2. 組合語言 ： 高階語言經過編譯器(Complier)產生。
  3. 機器語言 ： 組合語言經過(組繹器)產生。 


- 電腦的組成元件 ： 
  1. ```CPU``` : 中央處理單元，又可以再分成DataPath和Contoller。
  2. ```Memory``` : 記憶體。
  3. ```I/O``` : 輸出入單元，可以在分成Input、Output。
![](https://i.imgur.com/OtNWB3p.png =400x)

- CPU的組成元件 ：
  1. ```ALU``` : 算數邏輯單元。
  2. ```Register``` : 儲存單元。
  3. ```Controller``` : 控制單元。

---

## 二 . CMOS
### (一) . COMS的基礎概念
- **CMOS** :  互補式金屬氧化物半導體。
  1. CMOS : 半導體的製程，一個邏輯閘為一個CMOS，CMOS又由PMOS和NMOS組成。
  2. PMOS : ```p-type```的半導體，低電壓時導通。
  3. NMOS : ```n-type```的半導體，高電壓時導通。

- ```Pull-down```和```Pull-down``` ： 保持電路的基準電壓。
  1. 基準值 ： 電路沒有通路下，仍會受環境影響而有雜訊，因此需要一個基準值(應該類似偏壓的存在)。因為設定為0電壓為false，非0為true，很容易因為雜訊而有true的跳動。
  2. pull-up : 當電路為false時，仍可以通過一個低電壓的訊號。
  3. push-down : 同理，但位置不一樣。
  - 注意： pull-down和pull-up的電路應為低電流(就是下面的```PullDown Resistor```和```PullUP Resistor```需要高電組)，因為低電流保持基本值即可。
  ![](https://i.imgur.com/AMkIJzf.png)   ![](https://i.imgur.com/cHpq6yz.png)

---
  
### (二) . CMOS的基本電路  
- 設計CMOS電路的基本概念 ： 
  1. 使用```NMOS```為主要電路 : 因為CMOS符合通電為0，不通為1的概念。
  2. ```Parallel``` : 並連下的NMOS可以當作NOR的邏輯(不是OR，下面會說)。
  3. ```Series``` : 串連下的NMOS可以當作NAND的邏輯(不是NAND，下面會說)。
- 接地線和接輸出的邏輯思考 ： 
  1. 因為 ： 真正設計電路時的，我們會一邊接地，一邊接輸出。
  2. 所以 ： 當NMOS都為通路時，會輸出0。
![](https://i.imgur.com/MSmTxTR.png =330x)![](https://i.imgur.com/qxDcOKD.png =330x)

- ```Conduction Complement```的概念 ： 即pull-up和pull-down。
  1. ```pull-down```和```pull-up```的目的 ： 在電路為斷路時，要輸出低電流。
  2. ```CMOS```的應用 ： 原本的電路應該要在串連上一段電路，在原本電路為斷路時，輸出低電流。即需要一個**真值表為原電路NOT**的電路負責。
  4. ```Conduction Complement```  : 原本電路的**CMOS和PMOS互換，Parellel和Series互換**。所成的電路，即為當前電路的NOT，再串連這個電路，即可成為pull-up和pull-down電路。
    ![](https://i.imgur.com/aQDdPPh.png =300x)

---

### (三) . 晶片的良率和成本計算
- 晶片計算的專有名詞 ： 
  1. ```die``` : 晶圓
  3. ```wafer``` : 晶圓片。
  4. ```yield``` : 良率。

---

## 三 . 電腦執行效率

### (一) . 基本名詞
- ```Respone Time``` :
  1. 定義 ： 對一個```task```，開始到結束的時間間。 
  2. 原文 : ```The time between the start and completion of a task```
-  ```Throughput``` :  
   1. 定義 ：  給定一段時間，可以完成的task數。 
   2. 原文 ： ```Total amount of work done in a given time```
- ```Performance ``` : 為處理時間的倒數。
$$
Performance=\frac{1}{Execution\ Time}
$$
- ```Relation Perform``` :  兩個機器的執行效率的關係。

$$
\frac{Performance\ A}{Performance\ B} = n = \frac{Execution\ Time B}{Execution\ Time A} 
$$

---

### (二) . 執行分析
- ```CPU time``` : 
  1. 一般的```respone time``` : 包含了CPU的處理時間，I/O時間等等。
  2. ```CPU time``` : ```Time spent processing a given job。```
    ![](https://i.imgur.com/92jb4Od.png =400x)
- ```CPU time```的公式 ： 
  1. ```Clock Cycle``` : 用去的震盪cycle次數。
  2. ```Clock period``` : 一次震盪的時間(sec/cycle)，即週期。
  3. ```Clock Rate``` : 週期的倒數，代表一秒內的震盪次數(cycle/s)。
$$
CPU\ time =Clock\  Cycle*Clock\ Period=\frac{Clock\  Cycle}{Clock\ Rate}
$$

- ```CPI``` : **Cycle per Instruction**  
  1. 定義 ： 執行一個指令需要的cycle數。
  2. Instruction Count : 受ISA或Complier等等的影響。
  3. 多個class的ISA : 
$$
CPI = \frac{Cycle\ Count}{Instrcution\ Count}
$$

- 總結公式 ： 
  1. CPU公式和CPI定義 ： 
$$
CPU\  time = Cycle\ Clock * Clock\ Period =\frac{Cycle\ Clock}{Cycle Rate} =  (CPI * Instruction)  * (Clock\ Period)
$$
  2. More Hight Level  : 
$$
CPU\ Time = \frac{Instruction}{Program} * \frac{Clock\  Cyle}{Instruction} *\frac{Secnod}{Clock \ Cycle}
$$

---

### (三) . 消耗功率
- IC計算功率的方式 ： C為容量，Ｖ為電壓，f為clock rate。
  1. ```Energy``` : $\frac{1}{2} *C*V^2$。
  2. ```Power``` : $\frac{1}{2}*C*V^2*f$。

- ```Power wall``` : 功率極限。
  1. 成因 ： ```CPU```有限的散熱能力。
  2. 後果 ： ```CPU```功率無法提升超過某個門檻。 
  3. 解決方法 ： 使用多核心、平行處理的技術，

---

### (四) . 測量標準 - Benchmark
- ```Benchmark``` : 標準測量CPU的方式，用同樣的一些程式，對同樣的機器作出比較。
- ```SPEC Ratio ``` : 
  1. 經由執行同樣的程式比較時間。
  2. 經由和同樣的『reference』機器比較。
  3. 經由幾何平均決定。
- 公式 ： 和同樣的參考機器比較值的幾何平均。
![](https://i.imgur.com/45TzpZ7.png =500x)

- 範例 ：
![](https://i.imgur.com/Fza37m5.png =700x)

## 四 . PitFall
### (一) . PitFall
- ```PitFall``` : 直翻為『錯誤』，指的是一些思考上的錯誤，算是邏輯錯誤。
   1.  電腦效能上的```PitFall``` : 以為增加部分的效能值，就是同時增加整體的效能值。
   2. 例子 ： 如果步驟A只占去整個步驟的10%，則即使讓步驟A的效能變兩倍，整體的速率也不會兩倍。
- ```Amdahl’s Law``` : 
  1. 定義 ： 對指定步驟增加的效率有最高值，取決於這個步驟在整個步驟的占比。
  2. 公式 ：
     - ```improvement factor``` : 受引響的部分快了幾倍。
![](https://i.imgur.com/UckHOax.png)
### (二) . MIPS
- ```MISP``` : 為『```Millions of Instructions Per Second ```』，用這個測量電腦的效率，避免陷入```PitFall```的問題。
- 公式 ： 
![](https://i.imgur.com/lXjTmqx.png)



## 後記 ： 英超的考試重點，應該是他認為重要的東西
- ```Throught\ out```和```response time```的定義。
- 為什麼```response time```不適合用於測量一個```cpu```的效率。 
- CPU的公式中，只要搞清楚下面四個定義，其他都用單位關係求出即可：
  - CPI、CPU time、CPU rate、CPU cycle。   
  $$
  CPI= \frac{Cycle}{Instruction}  執行一個inst需要的cycle數
  $$ 