# 計組 - 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為容量,V為電壓,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數 $$