102
1 第第第 第第第第第第第第第第第 第第第第 第 第第第第 第第第 、體、、 第第第第第第第第 第第第第第第第 第第第第第第第第第第第 第第第第第 體,, 第第CPU 第第第第 第 )、體( Main memory 第第第 )、 Bus 第第第 )、 (Chipset) CPU 第第第第第第第第 第第第第 第第第第第第第第第 第第第第第第第 ,體, CPU 第第第第 第第 第第第第第第第第第第第第第第第第 IC

第三章 電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

  • Upload
    oliana

  • View
    76

  • Download
    5

Embed Size (px)

DESCRIPTION

第三章 電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組. 本章將介紹電腦硬體的最核心部分,也就是主機板上的元件,包含中央處理器( CPU )、主記憶體( Main memory )、匯流排( Bus )、晶片組 (Chipset) 。 CPU 可以說是電腦的心臟,主記憶體是存放程式的地方,匯流排則是連結 CPU 與主記憶體的橋樑,而晶片組則是用來協調匯流排速度的 IC 。. 第三章 電腦系統單元: 中央處理器、主記憶體、匯流排 、晶片組. - PowerPoint PPT Presentation

Citation preview

Page 1: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

1

第三章 電腦系統單元:中央處理器、主記憶體、匯流排、晶片組

本章將介紹電腦硬體的最核心部分,也就是主機板上的元件,包含中央處理器( CPU )、主記憶體( Main memory )、匯流排( Bus )、晶片組 (Chipset)。 CPU 可以說是電腦的心臟,主記憶體是存放程式的地方,匯流排則是連結 CPU 與主記憶體的橋樑,而晶片組則是用來協調匯流排速度的 IC 。

Page 2: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

2

第三章 電腦系統單元:中央處理器、主記憶體、匯流排、晶片組

• 回顧電腦硬體的 5 大單元(如下圖),其中核心部分(系統單元)(主機板及主機板上的各類 IC 插槽)就是中央處理器與主記憶體,而連結這兩者的橋樑是匯流排,在本章中,我們將詳細說明此三項硬體的相關技術,除此之外,我們還將介紹現代電腦常見的設計技術。

Page 3: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

3

第三章 電腦系統單元:中央處理器、主記憶體、匯流排、晶片組

• 中央處理器是電腦執行運算的單元,當資料由輸入單元輸入後,主記憶體可用來暫時存放運算時所需要的資料,而當中央處理器運算完畢之後,也會先暫時將運算結果存放在主記憶體中,然後再輸出到輸出單元。由於主記憶體會因失去電源而喪失資料,因此還需要儲存裝置(次要記憶體)來保存資料。

– 舉例來說,有一個計算成績的程式• 使用者透過鍵盤(輸入單元)輸入資料後• 這些資料將會存放到主記憶體中• 接著透過中央處理器裡面的算術邏輯單元 (ALU) 計算平均成績,• 再將計算結果存回到主記憶體中,最後可以透過印表機(輸出單元)將資訊印出,• 最後也可以存放到硬碟(次要記憶體)中,以便保存下來。這整個過程中,

– 這整個過程中,中央處理器裡面的控制單元 (CU) 則是負責協調其他各單元的運作,以完成程式的運作。

• 事實上,這個計算成績的程式原本應該存放在次要記憶體,而使用者可以在作業系統環境中,透過鍵盤或滑鼠要求執行該程式,然後程式將被載入到主記憶體中,之後才能夠被執行

• 所有要被執行的程式都必須先被載入到主記憶體中,才能夠被執行,因為 CPU 只能夠直接存取到主記憶體的資料

Page 4: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

4

第三章 電腦系統單元:中央處理器、主記憶體、匯流排、晶片組

• 主機板又稱母板 (motherboard) 是電腦主機內部的一片由玻璃纖維製成的板子– 上有許多電路與多種插槽,例如: CPU 插槽、主記憶體插槽、介面卡插槽

等等。– 所有的電腦組件都必須直接或間接地連結到主機板,並根據主機板的設計使

電腦正常運作。拆開機殼後就可以看到主機板

主機板上有各式插槽

Page 5: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

5

大綱• 3.1 中央處理器( CPU)

– 3.1.1 CPU的組織單元– 3.1.2 CPU的種類– 3.1.3 CPU及主機板規格

• 3.2 主記憶體(Main Memory)– 3.2.1 動態隨機存取記憶體 (DRAM)– 3.2.2 靜態隨機存取記憶體 (SRAM)– 3.2.3 唯讀記憶體 (ROM)

• 3.3 電腦的速度表示方法• 3.4 匯流排 (Bus) 與晶片組 (Chipset)

– 3.4.1 系統匯流排– 3.4.2 I/O 匯流排– 3.4.3 晶片組 (Chipset)

Page 6: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

6

大綱

• 3.5 程式的執行流程• 3.6 電腦結構的最新設計

– 3.6.1 階層式記憶體( Hierarchical Memory)– 3.6.2 管線( pipelining)– 3.6.3 超純量處理器( Superscalar Processor)– 3.6.4 平行處理 (Parallel Processing)– 3.6.5 RISC與 CISC

• 3.7 重點回顧• 本章習題

Page 7: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

7

• 中央處理器– CPU( Central Processing Unit)– 處理器( Processor)或微處理器(MicroProcessor)– 電腦最重要的一個元件– 其功能有如人類的大腦,主要負責算術邏輯運算及執行程式。

3.1 中央處理器( CPU)

Page 8: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

8

3.1.1 CPU的組織單元

• CPU是由控制單元、算術邏輯單元、及暫存器所組成(如下圖),本節中,我們將分別介紹這三個 CPU內部單元所負責的工作以及使用的技術。

中央處理器(左半部為 CPU 的組織元件)、記憶體與匯流排

Page 9: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

9

3.1.1 CPU的組織單元

• 暫存器 (Register)– 記憶體 (Memory) 其實分為很多種,分布在電腦的各個部分。而在 CPU 中的

記憶體為暫存器 (Register) 。– 暫存器可以用來存放將要進行運算的資料或運算完畢的資料。在 ALU 要執行

運算時(擷取並解碼指令後), ALU 將只針對暫存器內的資料進行運算,並且將結果存放在暫存器中。

– 暫存器的種類也有很多,我們可以依照特性及功能來加以分類如表 3-1、 3-2所列。控制與狀態暫存器 使用者可見暫存器

讀寫無法被使用者(程式設計人員)更改其內容,它的內容是由系統所設定。

可以由使用者(程式設計人員)依照需要來設定內容,以便完成某些程式功能。

功能 此類暫存器的功能通常是提供控制程式及記錄程式執行狀態之用。

用來暫時存放特定資料,或無特定用途。

暫存器依特性分類表

Page 10: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

10

暫存器功能名稱 分類 功能指令暫存器(instruction register)

控制與狀態暫存器

存放最近從記憶體取出的指令。通常不是目前正在執行的指令就是下一次可能被執行的指令。

程式計數暫存器(program counter; PC)

控制與狀態暫存器

存放下一個準備要被執行的指令在記憶體中的位址。

ALU緩衝暫存器(ALU buffer register)

控制與狀態暫存器 暫時存放 ALU 的運算結果。

記憶體緩衝暫存器(memory buffer register)

控制與狀態暫存器

暫時存放由記憶體讀出的資料,或 CPU準備把資料寫入記憶體之前也會先將資料暫存於此處。

程式狀態字組(program status word;PSW)

控制與狀態暫存器

存放程式的狀態資訊,通常字組中的每一個位元都有其特別功能(有些可能保留不用),例如正負符號 (Sign) 、溢位 (Overflow) 、遮罩位元(Mask bit) 、保護鑰匙 (Protected key) 、中斷代碼 (Interrupt code) 、中斷有效/失效控制(Interrupt enable/disable) 、使用者模式/監督模式 (user mode/supervisor mode) 等等。

中斷向量暫存器(interrupt vector register)

使用者可見暫存器 (讀 )

記錄系統的中斷向量。

條件碼暫存器(condition code register)

使用者可見暫存器 (讀 )

用來存放指令的執行狀態,該狀態將由 CPU 負責寫入,但程式設計師仍可讀取暫存器內容。

暫存器依功能分類表

Page 11: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

11

暫存器功能名稱 分類 功能資料暫存器(data register)

使用者可見暫存器 用來存放資料的暫存器。

記憶體位址暫存器(memory address register)

使用者可見暫存器 存放準備要存取的主記憶體位址。

位址暫存器(address register)

使用者可見暫存器

也是用來存放記憶體位址,但通常用於某個連續記憶體空間的起始位址,例如:做為記錄堆疊頂端的指標暫存器 (stack pointer register) 、做為記錄程式或資料在記憶體起始位址的基底暫存器(base register) 、做為記錄陣列索引的暫存器(index register) 。

通用暫存器(general purpose register)

使用者可見暫存器

沒有特定用途的暫存器,可以用來存放資料、指令或位址,程式設計師可以善用這些暫存器,加快程式執行的速度,多數編譯器亦充分利用此類暫存器,對高階語言程式進行最佳化。因此,此類暫存器數量越多, CPU 的執行效率越高,但成本也就越高(記憶體速度越快者,價格越貴,而暫存器是最快速的記憶體)。

暫存器依功能分類表 (續 )

Page 12: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

12

3.1.1 CPU的組織單元

• 控制單元( CU)– 控制單元( Control Unit;簡稱 CU )的功能是控制流程及協調輸入、

輸出、記憶、算術邏輯等 4 大單元的運作• 它可以讀取指令、解釋指令、產生控制訊號控制算術邏輯單元及暫存器來完成指令所代表的工作。

– 當指令進入 CPU 之後,控制元件就會先進行指令解碼 (Decode) ,並按照指令種類執行對應的微程式,發出不同的訊號完成該指令所需要完成的各項功能,最後執行邏輯電路以便取得下一個指令。

– 控制單元通常包含• 記錄指令運作順序的微程式( microprogram )• 取得下一指令的邏輯電路• 驅動元件的解碼器( decoder )• 眾多選擇器( multiplexer )。

Page 13: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

13

3.1.1 CPU的組織單元

– 控制單元的製作方式分為兩種,兩種製作方式各有所長,目前大多數的控制單元使用的是微程式控制技術。

– 而控制單元的製作方式分為兩種:• 硬體線路控制( hardwired control )• 微程式控制( microprogrammed control )

硬體線路控制 微程式控制

製作原理

將每個指令透過有限狀態自動機加以設計,然後再用邏輯電路來實作。每一個指令將會有一組相對應的邏輯電路。

每個指令加以分解為許多步驟,並使用微指令來描述這些步驟的動作,每一個指令實際上將會對應到一組微程式。

優點執行速度快 指令數量或內容可改變(只要重新設計

微程式即可,不需要更改邏輯電路)。

缺點 指令集被固定不可改變 執行速度較慢

Page 14: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

14

3.1.1 CPU的組織單元

• 算術邏輯單元( ALU )– 算術邏輯單元( Arithmetic and Logic Unit;簡稱 ALU ),是執行程式中各

類運算的實體單位,這些運算則可以分為兩大類:算術運算與邏輯運算。• 算術運算包含加、減、乘、除等等的數值運算• 邏輯運算則包含 AND、 OR、 NOT、 Exclusive OR、 Shift (位元平移)、 Rotate (位元旋轉)等的邏輯運算。

– 其中 AND、 OR、 NOT 是三種基本的邏輯運算子 (operator) ,這三種邏輯運算可以組合出所有的邏輯運算。

– 在第二章中,我們曾介紹單一位元的 AND、 OR、 NOT、 XOR 邏輯運算,不同種類的 CPU提供的指令也不相同

• 所有的 CPU 都會提供 AND、 OR、 NOT 等運算,但對運算元位元數的規定則不一定相同(與暫存器長度有關)

• 大多數的 CPU 都會提供 1、 8、 16、 32、 64位元的AND、 OR、 NOT 運算。以下我們透過範例來說明多位元的邏輯運算。

Page 15: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

15

– AND 邏輯運算子• AND邏輯運算只有在兩個運算元同時為真 (true)時,結果才會為真。其真值表如下:

3.1.1 CPU的組織單元

A B A AND B

False False False

False True False

True False False

True True True

A B A B

0 0 0

0 1 0

1 0 0

1 1 1

【註】:在二進制系統中,常常使用 1 來代表真 (true), 0 代表假 (false) 。

真值表: A AND B 真值表: A B

Page 16: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

16

3.1.1 CPU的組織單元

– OR 邏輯運算子• OR邏輯運算只有在兩個運算元同時為假 (false)時,結果才會為假。其真值表如下:

A B A OR B

False False False

False True True

True False True

True True True

A B A+ B

0 0 0

0 1 1

1 0 1

1 1 1

真值表: A OR B 真值表: A + B

Page 17: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

17

– NOT 邏輯運算子• NOT邏輯運算只有一個運算元,並且會將運算元反相( inverse)做為輸出結果。也就是當輸入為真 (true),結果將為假 (false),當輸入為假 (false),則結果為真 (true)。其真值表如下所列:

3.1.1 CPU的組織單元

【遮罩】:遮罩 (mask) 代表透過某些運算,使得某些位元保留,而其他位元(稱之為遮罩位元)統一為某種特定遮罩格式,意即遮罩有過濾的意涵。 AND與 OR 運算都可以當作遮罩運算,例如,我們希望將某個位元組 11100100 的左半邊 4 個位元都變為 0 (右半邊的位元保留),則可以透過 11100100 AND 00001111 來加以完成,其結果為00000100 。如果我們希望將某個位元組 11100100 的左半邊 4 個位元都變為 1 (右半邊的位元保留),則可以透過 11100100 OR 11110000 來完成,其結果為 11110100 。

A NOT A

False True

True False

A ~A

0 1

1 0

真值表: NOT A 真值表: ~ A

Page 18: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

18

3.1.1 CPU的組織單元

– Exclusive OR(XOR) 邏輯運算子• Exclusive OR(XOR) 也是常見的運算,大多數的 CPU 也都提供了XOR 運算的指令,原因是因為設計XOR 的邏輯電路非常簡單且不會耗費過多的資源,並且 XOR 可以變化出許多樣的指令效果。

• XOR 邏輯運算的運算元有兩個,只有在兩個來源運算元的值不同時,結果才會為真,因此稱之為Exclusive OR (互斥或)。其真值表如下所列:

A B A XOR B

False False False

False True True

True False True

True True False

A B A B⊕

0 0 0

0 1 1

1 0 1

1 1 0

真值表: A XOR B

真值表: A B⊕

Page 19: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

19

3.1.1 CPU的組織單元

– Shift與 Rotate 運算• Shift (位元平移)與 Rotate (位元旋轉)運算必須考慮暫存器長度,同時又分為向左及向右兩類 Shift與 Rotate 。

• Shift移出的位元將被丟棄,而由 0補上空位。因此,向左位移 n個位元,代表原本的值 *2n

• Rotate移出的位元則會進入另一端,構成循環式移動。

邏輯表示符號:AND、 OR、 NOT、 XOR 的表示符號通常如下

Page 20: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

20

3.1.1 CPU的組織單元

• 範例(向左 shift 2位元):

• 範例(向右 rotate3位元):

Page 21: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

21

3.1.2 CPU的種類

• 由不同公司開發的 CPU 種類非常多– 最有名的當然是 Intel公司的 x86 系列、 Pentium (奔騰)系列、 Core

2 系列、 Celeron、 Xeon 等– AMD公司的 K6、 Athlon XP/64/64 X2/64 FX、 Duron– VIA公司的 Cyrix III– Compaq公司的 Alpha( 21x64 系列)– Sun公司的 SPARC– Motorola公司的 680x0– Apple/Motorola/IBM公司合作開發的 PowerPC 等等

各家廠牌的 CPU

Page 22: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

22

3.1.2 CPU的種類

– 主機板通常不會內附CPU ,必須另外購買CPU 然後插在主機板的 CPU 插槽,隨著電腦系統及主機板的種類不同,所使用的 CPU 種類也不一樣,例如個人電腦( IBM-PC )常採用 Intel公司的 Pentium 系列、 Celeron或 AMD公司及 VIA公司所開發的相容CPU 。但早期Mac 電腦則必須採用 PowerPC做為中央處理器(表3-4 為各類系統適用的 CPU )。

系統 電腦 使用的 CPU 生產公司及 CPU 晶片

386/486/Pentium systems

IBM PC x86 系列

Intel

8086、 8088、 80286、 80386、 80486、 Pentium(奔騰)、 Pentium Pro、 Pentium II、 Pentium III、 Pentium 4、 Pentium D/EE、 Celeron、 Xeon…

AMDK5、 K6、 K6III、 Athlon、 Athlon XP、 Athlon 64、 Duron…

VIA Cyrix III( C3)…

多核心 systems

多核心 IBM PC

多核心 iMacx86-64 系列

IntelPentium D/EE雙核心、 Core 2 Duo、 Core 2 Extreme、 Core 2 Quad

AMD Athlon 64 X2、 Phenom

Page 23: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

23

系統 電腦 使用的 CPU 生產公司及 CPU 晶片

Motorola systems

Atari …

Amiga …

Mac …

680x0 系列 Motorola68030、 68040、 68060…

PowerPC systems

Mac …

iBook

G4

PowerPC 系列Apple/

Motorola/

IBM合作PowerPC

Sparc systems

Ultra …

hSparc …

IPX …

SS5 …

Sparc 系列 Sun Sparc

Alpha systems

AS400 …

AS1000 …

Cabriolet …

Jensen …

UDB …

AlphaServer …

21x64 系列 Compaq

21064、 21064A、 21066、 21066A、 21164、21164A、 21264、 21264A、 21264DP…

Other CPU systems

RM9000 …

ELKS …

S390 …

Crusoe …

Mips

Intel x86

IBM

Crusoe

Mips

Intel

IBM

Transmeta

Mips

Intel 8088/286 ELKS

IBM

Crusoe

Page 24: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

24

3.1.3 CPU 及主機板規格

• CPU 、主記憶體與主機板關係密切,對於某一個特定的主機板而言,它只能插上某些規格的 CPU 與主記憶體。在本小節中,我們先釐清一些關於 CPU 及主機板的規格。– 主機板規格範例( GA-8KNXP ):【圖片與規格取自技嘉網站】

– 規格請見課本

技嘉的 GA-965P-DQ6 主機板

Page 25: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

25

3.1.3 CPU 及主機板規格• CPU 的工作頻率與內頻:

– 一般俗稱的 CPU『工作頻率』,事實上指的是 CPU 內部執行運算的工作頻率,通常也稱之為『內頻』 ( Internal Frequency ) ,例如 Pentium 4 3.06G的 3.06G 就是『工作頻率』。

• 主機板記載之外頻、倍頻:– 相對於 CPU 內頻,另外一個主機板上的名詞『外頻 』 ( External Frequency ) 則是代表 CPU 之外的外部設備工作頻率

• 這些外部設備如晶片組、記憶體、第二層快取記憶體 ( L2 Cache ) 等等。 CPU 必須由這些外部設備取得資料,也必須將資料存回到這些外部設備,而外頻則可以說是這些外部設備傳輸資料到 CPU 的速率,由於外部設備是透過匯流排連結到 CPU ,因此外頻也就是匯流排速率 (Bus speed) ,單位一般以 MHz 來表示。

– 外頻是由主機板的時脈產生器所提供,因此在主機板與 CPU 的規格書內都會註明所支援的外頻是多少

• 而一般在主機板的規格書中,以 FSB(Front Side Bus;前端匯流排 ) 來代表外頻• FSB 的演變從早期的 66/100/133/150/200/266MHz ,乃至於目前的

333/400/533/800/1066/1333MHz 。– 外頻與內頻的倍數關係稱之為『倍頻』,如下公式:

• 『 CPU工作頻率 = 內頻 = 外頻 × 倍頻』

Page 26: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

26

3.1.3 CPU 及主機板規格– 以往在 486 時代之前, CPU 的內頻與外頻是一樣的,之後 CPU 的運算速率不斷的提昇,但晶片組、記憶體等外部設備的效能卻無法跟上腳步,因此,為了不讓這些外部設備拖累 CPU 的速度,故而開始採用倍頻技術來解決此一問題。

– 倍頻通常以 0.5 的倍率成長,也就是 1,1.5,2,2.5,…. 等等• 例如 1.6GHz的 CPU 可以使用 100MHz( 外頻 )*16(倍頻 ) ,也可以使用

133MHz( 外頻 )*12(倍頻 )– 主機板之所以要支援更高的外頻,通常主要的考量並不是 CPU ,而是其他元

件的效能已經獲得提昇• 例如:目前最流行的主記憶體已經由過去 66/100/133/150 MHz 的

SDRAM提升為 333/400/533/667/800MHz的 DDR II SDRAM• 因此,外頻主要是隨著主記憶體的速度而改變規格,因為 CPU 的內頻可以透過倍頻方式取得。

– 調整主機板上的外頻與倍頻方式,在過去,通常必須調整主機板上的開關(jumper) ,但目前則大多可以在 BIOS 中直接設定。

Page 27: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

27

3.1.3 CPU 及主機板規格• CPU封裝:

– 封裝就是將晶片給包裝起來,所有的晶片都需要經過封裝的程序建立接腳與外界溝通,並且保護其內部元件。

– CPU 也是一種晶片,因此也需要封裝,而封裝方式也有許多種,例如 OPGA、mPGA、CPGA、 FC-PGA、 FC-PGA、 OOI、 PPGA、 S.E.C.C、 S.E.C.C.2、 S.E.P. 封裝等等

• 半導體產業是一個非常龐大且精密分工的產業,一個 VLSI(超大型積體電路 ) 的製作流程被分為許多步驟,而封裝也是其中的一個步驟,並且是非常接近完成的步驟(其後仍有測試與驗證步驟),國內也有不少公司專門提供封裝服務。

– 封裝就是將晶片給包裝起來,所有的晶片都需要經過封裝的程序建立接腳與外界溝通,並且保護其內部元件。

CPU (AMD Athlon 64) 的正反面,採用 PGA封裝

CPU Pentium II ,採用 SECC封裝

Page 28: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

28

3.1.3 CPU 及主機板規格

• 主機板之 CPU 插槽腳座:– 主機板上的 CPU 插槽腳座恰好對應於 CPU 的接腳,由於封裝決定了 CPU 的

接腳數,所以不同腳座必須使用不同的插槽,其接腳數也都不同。– 常見的 CPU 插槽腳座有 Socket 7、 Socket 379、 Slot 1、 Slot 2、 Slot A、

Socket A、 Socket 423、 Socket 478、 Socket 754、 Socket 775/T、 Socket 939、 Socket 940 。

• Slot 1、 Slot 2、 Slot A的 CPU 為卡夾式(使用 S.E.C.C.封裝的Pentium II、 III、 Xeon )

• 大部分 Celeron 與後來 Pentium III 則為 Socket 370• 至於 Pentium 4 的插槽腳座則是 Socket 423與 Socket 478• 而多核心 Core 2 系列的插槽腳座則是 Socket 775 (又稱為 Socket T )• 早期 Athlon 的插槽腳座為 Slot A• 後來的 Athlon與 Duron 插槽腳座都是 Socket A• Athlon 64/Athlon 64 X2/Athlon 64 FX採用 Socket 754、 Socket

939、 Socket 940 。

Page 29: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

29

3.1.3 CPU 及主機板規格

主機板上的 CPU 插槽 (Slot 1)

插在主機板上面的 CPU( slot 1 與 Intel Pentium II )

Page 30: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

30

3.1.3 CPU 及主機板規格

主機板上的 CPU 插槽 (Socket 775)

主機板上的 CPU 插槽 (Socket 940)

Page 31: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

31

3.1.3 CPU 及主機板規格

插在主機板上面的 CPU( Socket A與 AMD Athlon )

Page 32: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

32

3.1.3 CPU 及主機板規格• 主機板之 DRAM 插槽:

– 主機板規格書中也會記載該主機板所使用的主記憶體類型– 在早期這些插槽通常是 30 pin的 FPM RAM與 72 pin的 EDO RAM– 後來則改為 168 pin的 SDRAM– 至於目前最流行的則是 184 pin的 DDR SDRAM或 240 pin的 DDR II SDRAM 。(詳見 3.2.1節)

Page 33: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

33

3.2 主記憶體( Main Memory )

• 除了在 CPU 內的暫存器之外,電腦的記憶體可以分為主要記憶體 (main memory) 與次要記憶體 (secondary memory);通常分別由半導體與磁性元件構成;最常見的例子就是 RAM和硬碟( HardDisk )。而本節所要介紹記憶體的則是屬於主要記憶體的部分(次要記憶體則於資料的儲存裝置一章中再行介紹)。– 主要記憶體簡稱主記憶體(又稱為內部記憶體),目前以半導體元件製成,

特性為存取速度快、成本高。– 主記憶體依照存取特性又可以分為隨機存取記憶體 (Random Access Memory;簡稱 RAM) 及唯讀記憶體 (Read Only Memory;簡稱 ROM) 。

• RAM 的成本較低,但是無法於電力消失時保存資料,故為揮發性記憶體的一種。

• ROM 成本較高,但卻可以在無電力的狀況下保存資料,屬於非揮發性記憶體的一種

• 傳統的 ROM 只能寫入資料一次,因此通常只會把啟動電腦所需要的小程式儲存在 ROM 裡面,例如 BIOS 就是使用 ROM做為儲存處的常見應用。

Page 34: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

34

3.2 主記憶體( Main Memory )

– RAM也分為動態隨機存取記憶體 (DRAM)與靜態隨機存取記憶體 (SRAM)兩種。• DRAM也就是一般購買電腦時常聽到的 RAM• SRAM由於速度較快,一般是用在需要快速記憶體的場合,例如快取記憶體

(Cache),其特性如表 3-7所列。

RAM與 ROM比較表

RAM ROM

揮發性 揮發性 非揮發性讀取 可讀取資料 可讀取資料

寫入 可寫入資料傳統的 ROM 只能寫入資料一次。

EPROM 、 EEPOM等可程式化的ROM可透過特殊方式重新寫入資料。

容量 較大 非常小擴充 通常可擴充至數百MB 以上 無法擴充功能 儲存電腦運作中的各類一般程式與資料。 儲存固定不變的程式,例如開機程式。

Page 35: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

35

3.2 主記憶體( Main Memory )

SRAM與 DRAM比較表SRAM DRAM

揮發性 揮發性(無法在電源消失時保存資料)充電 不需要 需要

成本及價格 高 低容量 較小 較大速度 較快 較慢

【註】:主要記憶體包含RAM(DRAM、 SRAM)與 ROM ,但一般我們所謂的主記憶體若未特別提及,則通常指的是 RAM ,而且是 DRAM 。

Page 36: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

36

3.2.1動態隨機存取記憶體 (DRAM)

• DRAM 的全名為 Dynamic Random Access Memory ,中文可譯為『動態隨機存取記憶體』,通常充當電腦系統的主記憶體元件(也就是一般俗稱的 RAM )。– 使用 DRAM 作為主記憶體時,將可以暫時儲存指令及資料,以供 CPU 執行

程式之用。事實上,所有準備要執行的程式都必須存放在主記憶體中, CPU才能夠執行程式。

• DRAM 無法在電腦的電源消失時保持資料,因此,資料若在電源消失前,尚未從主記憶體搬移到磁碟中,在電源消失後(例如關機或重新開機),將會遺失這些資料。

• DRAM從過去到現在,隨著技術的進步,也出現了許多種類,如:Conventional RAM、 FPM DRAM、 EDO RAM、 Burst EDO RAM、 SDRAM、 DRDRAM、 DDR SDRAM 等等。

Page 37: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

37

3.2.1動態隨機存取記憶體 (DRAM)

– Conventional DRAM

• Conventional DRAM 是非常早期使用的 DRAM ,運作原理如下:• 整個記憶體被切割成陣列(類似大表格),每一個陣列元素(小格)的位元數是匯流排一次可以傳輸的最大值,而此陣列(大表格)可以由列 (Row) 與行(Column) 來標記每個陣列元素(小格)(即某記憶體區塊),以示區別,如圖所示。

記憶體的陣列配置方式

Page 38: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

38

3.2.1動態隨機存取記憶體 (DRAM)

• 在讀取記憶體區塊的內容前,首先要送出該區塊的位址(透過列與行來標示) Conventional DRAM 的做法是,首先送出區塊的列位址訊號,稱之為RAS 訊號 (row address select 訊號 ) ,然後再送出區塊的行位址訊號,稱之為CAS 訊號 (column address select 訊號 ) ,這樣才能選取到所需要的記憶體區塊。雖然這種記憶體存取方式簡單,但 Conventional DRAM未能在存取速度上有大幅度改進,因此, Conventional DRAM已經被淘汰了。

– 值得注意的是,在圖 3-18 中位址匯流排與資料匯流排將連到 CPU 的位址接腳與資料接腳,記憶體的大小受到位址匯流排與資料匯流排的影響,由於位址匯流排經過解碼器解碼(以 2 的次方增長),因此記憶體大小的計算公式如下:

• 記憶體大小 = 2 位址匯流排寬度 × 字組寬度 = 2 位址匯流排寬度 × 資料匯流排寬度 • 舉例來說,有 16位元的位址匯流排與 16位元的資料匯流排(字組為 16位元),則記憶體大小為 216×16bits ,也就是 64K個Word或 128KBytes 。

【註】:有些書籍,將 RAS與 CAS 的原文稱為 row address Strobe與 column address Strobe 。

Page 39: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

39

3.2.1動態隨機存取記憶體 (DRAM)– FPM DRAM (Fast Page Mode DRAM)

• FPM RAM在 486/Pentium 時代,一度是個人電腦最常見的DRAM 。

• 內部以分頁 (page) 為單位,供 CPU 存取資料,每個分頁從 512位元組到數 K位元組,具有快速切換分頁的效果。

• 一般為 30-Pin或 72-Pin 記憶體模組。在屬於它的年代,由於全名過長且無其他競爭對手,因此,許多人將 FPM省略,直接簡稱為 DRAM 。

• FPM 之所以稱為 Fast Page ,是因為它以更快的速度存取位於同一列的資料(也就是同一分頁),因此, FRM改善了更早期的記憶體存取速度。它的存取速度約為 70ns~60ns(ns為 10-9秒 ) 。

Page 40: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

40

3.2.1動態隨機存取記憶體 (DRAM)

– EDO RAM (Extended Data Out RAM)• 在 1995年,一項新的 EDO 技術取代了 FPM

RAM ,並且 EDO RAM在 Pentium 等級的電腦中,成為必備的主記憶體元件。

• EDO與 FPM 技術其實大同小異,主要的差別在於

– (1)EDO不採用分頁方式,而是將資料放在連續的記憶體位置內。

– (2)EDO延長了資料輸出的時間,使得下一次讀取記憶體的動作可以在這一次資料傳送尚未完成時就開始

– (3) 記憶體控制器能夠在下達指令的過程中省略數個步驟,以便節省時間。

• 實際上, EDO 技術只比 FPM 技術快了15%~20% 左右,差距並不大,不過由於 EDO RAM 的市場需求較大,因此平均售價得以降低,而取代了 FPM 的市場。不過,由於 EDO RAM 無法支援高速的系統時脈(超過 66MHz ),因此後來又被 SDRAM 取代。

EDO RAM

Page 41: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

41

3.2.1動態隨機存取記憶體 (DRAM)

– 【 BEDO RAM】• BEDO RAM 是 Burst EDO RAM的簡稱,它只是將原有的 EDO

RAM加以改良,在 EDO RAM中加入管線技術,使得記憶體的存取時間更快, Burst EDO RAM可以適用於更高速的系統時脈,在效能上,和後來出現的第一代 SDRAM差不多,不過由於價格較高,在主機板支援不夠普遍的環境下,被 SDRAM擊敗。

Page 42: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

42

3.2.1動態隨機存取記憶體 (DRAM)– SDRAM (Synchronous DRAM)

• 在 1996年底,出現了一種新的 DRAM 技術-『 Synchronous DRAM;同步動態存取記憶體;簡稱 SDRAM』

• 為了因應更高時脈的高效能 CPU ,主記憶體勢必須要改變 EDO RAM的非同步特性。 SDRAM 最重要的變化就是『同步』(早期的 DRAM為非同步),『同步』代表記憶體的時脈與電腦時脈相同,使得記憶體控制器能夠掌握準確的時鐘週期,如此一來, CPU 就不需要延後下一次的資料存取。

• SDRAM同時透過 Interleaving與 Bursting 技術,加快記憶的讀取速度,並且 SDRAM擁有多種不同的速度,以便和系統時鐘同步。

– 舉例來說,市面上曾經出現的 SDRAM有 PC66/100/133/150 等等,恰好搭配主機板的 66/100/133/150 等外頻,而外頻又可以透過倍頻方式獲得 CPU 所需的內部頻率,因此,整個系統的效能得以完全發揮。

Page 43: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

43

3.2.1動態隨機存取記憶體 (DRAM)

• SDRAM 的資料傳輸寬度為 64位元,一般採用 DIMM 記憶體模組,且分為buffered與 unbuffered 兩種,工作電壓有 3.3及 5伏特等規格。但市面上常見的 SDRAM 則通常採用 unbuffered及 3.3伏特電壓的規格,封裝則採用TSOP 。

• 值得注意的是, SDRAM和 SRAM 完全不同, SDRAM仍舊屬於 DRAM 的架構,因此必須充電,充電則將產生時間延遲的問題。

SDRAM

【註】:廣義的 SDRAM專指Synchronous DRAM ,也就是包含 PC XXX SDRAM及 DDR SDRAM ,但一般中古市場上所稱之 SDRAM產品,通常是狹義的SDRAM ,也就是 PC XXX SDRAM 。

Page 44: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

44

3.2.1動態隨機存取記憶體 (DRAM)

【記憶體模組設計】個人電腦的 DRAM記憶體不是將一顆顆 IC晶片直接插到電腦主機板上,為了擴充性考量,目前的 DRAM記憶體都採用記憶體模組概念來設計。記憶體模組設計是將記憶體晶片設計整合在統一規格的印刷電路板上 (Printed Circuit Board),透過公認的存取介面,組成相容的記憶體模組,如此一來,主機板廠商只要預留記憶體模組插槽及相關電路,就可以隨時擴充電腦系統的記憶體容量。

記憶體模組包含幾個主要元件(1)記憶體晶片(2)控制晶片(3)IC電路板(4)金手指傳輸介面等。而常見的記憶體模組則有: SIMM、 DIMM、 SO-DIMM、 RIMM(Rambus Module)、 C-RIMM(Continuity RIMM)、 SO-RIMM、 DDR DIMM、等等。並且可分為 SIMM、 DIMM、 RIMM三大類。

Page 45: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

45

3.2.1動態隨機存取記憶體 (DRAM)【記憶體模組設計】 (續 )SIMM (single in-line memory module;單面針腳記憶體模組 ):SIMM 的封裝方式有兩種, 30pin與 72pin, 30pin通常是在 486 以前的電腦使用,早期的FPM RAM、 EDO RAM 都是採用 30 pin SIMM 記憶體模組, SIMM 對外傳輸單位則是 8位元,由於使用在 32位元的系統,因此資料傳輸也以 32位元為單位。插入 30pin 記憶體模組時,必須 4支一組插入( 32位元 =4*8位元)。而 72pin 對外傳輸單位則是 32位元,而 Pentium 系統為 64位元,所以需要以 2隻一組方式插入( 64位元 =2*32位元)。30 pin SIMM 上面的記憶體晶片為單面晶片結構,而 72 pin SIMM 則是單面或雙面晶片的產品都曾出現過,一般來說,每一隻 SIMM DRAM 上面可能會有 8 個或 9 個(或其倍數)記憶體晶片,而 9 個中的其中一個晶片的功用則是偵錯。DIMM (dual in-line memory module;雙面針腳記憶體模組 ):DIMM 與主機板的接觸點有 168 pin ,對外傳輸單位則是 64位元,因此在 64位元的Pentium 系統中,只需要一支就可以獨立運作。最常見到的應用就是 SDRAM 。除了 168 pin的 DIMM 之外,後來又發展出 184 pin的 DDR DIMM ,目前應用於 DDR SDRAM ,是目前個人電腦的主流。RIMM(Rambus in-line memory module; Rambus專用記憶體模組 ):這是針對 Rambus DRAM 而特殊設計的規格,又稱為 Rambus module ,與主機板的接觸點也是 184 pin 。

Page 46: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

46

3.2.1動態隨機存取記憶體 (DRAM)– DRDRAM (Direct Rambus DRAM)

• DRDRAM是 Intel與 RAMBus公司合作開發的一種記憶體規格,第一代的 DRDRAM 使用的記憶體模組為 16位元 RIMM模組,封裝方式使用的是 μBGA 。與主機板的接觸點為 184 pin ,工作頻率可達 800MHz 。

• Direct Rambus 與傳統 DRAM 的結構及介面皆不相同。早期記憶體的資料傳輸寬度大多為 64位元,而 Direct Rambus卻只有 16位元

– 或許讀者覺得奇怪,如此不是降低了資料傳輸的速度嗎?答案當然是否定的,因為 Direct Rambus 去除了傳統 SDRAM 所存在的時間延遲問題,因此使得整體速度更為驚人

– 它以 800MHz 的速度透過狹窄的 16位元匯流排來傳輸資料(此匯流排稱為 Direct Rambus Channel ),並在時鐘週期波峰及波谷都可執行作業(稱為 double clocked ),使得每個DRDRAM模組上的記憶體能夠提供每秒 1.6GB 的高速頻寬。

Page 47: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

47

3.2.1動態隨機存取記憶體 (DRAM)

• 後來, RAMBus公司又推出了 32位元 RIMM模組的 DRDRAM ,包含

– 工作頻率為 800MHz 的 RIMM 3200(頻寬為 3.2GB/s )

– 工作頻率為 1066MHz 的 RIMM 4200(頻寬為 4.2GB/s )

– 工作頻率為 1200MHz的 RIMM 4800(頻寬為 4.8GB/s )

– 工作頻率為 1600MHz的 RIMM 6400 (頻寬為 6.4GB/s )。

– 其速度非常之快,同時也支援了雙通道技術,接腳則改為 242pin (雙通道技術容後說明)。並且 RAMBus公司也正在設計 64位元 RIMM模組

DRDRAM 與主機板

Page 48: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

48

3.2.1動態隨機存取記憶體 (DRAM)

• 雖然 DRDRAM 的速度非常快,但仍可能被淘汰,原因大致有下列幾點:

– (1)工作時脈過高,因此通常必須搭配散熱片。– (2)DRDRAM 的技術門檻較高,因此在記憶體顆粒的良率上,表現並不理想。

– (3)DRDRAM採用不同的製程,因此必須使用新的設備製作。– (4) 最重要的一點, DRDRAM 並非開放的標準,每一家製造

DRDRAM 的廠商都必須支付 RAMBus公司 2%權利金。• 由於 DRDRAM價格較為昂貴,因此,在 PC 中使用 DRDRAM相對來說屬於少數,但 DRDRAM確常見於某些電視遊樂器的設計中,主要的原因仍然在於其速度上的優勢。

Page 49: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

49

3.2.1動態隨機存取記憶體 (DRAM)

– DDR SDRAM (Double Data Rate SDRAM)

• DDR SDRAM (又稱 DDR RAM )是目前最新的 SDRAM• 它和 DRDRAM 有很多方面類似,例如它的主機板接觸點也是 184 pin( DDRII為 240pin ),也能夠在時鐘周期的波峰及波谷傳送資料

• 但不同的是, DDR 是開放標準,並且延續 SDRAM 的設計,採用TSOP封裝,因此相對於 DRDRAM, DDR SDRAM更容易獲得製造商的喜愛。

• DDR SDRAM 是目前個人電腦主記憶體的主流,其規格發展非常快,計有 DDR、 DDRII、 DDRIII 三種規格

– 其中, DDR、 DDRII 都已有產品問世,而 DDRIII 暫時僅限於高速繪圖卡使用

– 到目前為止出現的 DDRI SDRAM順序分別是 DDR-200( 又稱PC1600)、 DDR-266( 又稱 PC2100)、 DDR-333( 又稱 PC2700)、DDR-400( 又稱 PC3200), DDRII SDRAM 的有 DDRII-400( 又稱PC3200)、 DDRII-533( 又稱 PC4200)、 DDRII-667( 又稱PC5400)及 DDRII-800( 又稱 PC6400)

Page 50: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

50

3.2.1動態隨機存取記憶體 (DRAM)

• DDR 之所以稱為 Double Data Rate ,原因是因為,它可以達到雙倍資料傳輸速率的緣故

– 舉例來說, DDR-266與 PC133 都是在同樣的 133MHz頻率下工作,但 DDR-266 的傳輸速率是 266MHz ,為 PC133 的兩倍,這是因為它在一個時鐘週期中,可以傳送兩次資料(分別在波峰及波谷)。

184 Pin的 DDR RAM 與主機板

Page 51: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

51

3.2.1動態隨機存取記憶體 (DRAM)

DRAM 應用場合 存取速度 模組 接腳 特色

FPM DRAM主記憶體低價位顯示記憶體

慢 SIMM30 Pin

在 EDO DRAM 出現之前,大多數 DRAM, 都是 FPM DRAM 。

EDO DRAM主記憶體低價位顯示記憶體

比 FPM DRAM快約5-20%

SIMM72 Pin

取代了 FPM DRAM

下一次讀取動作可在這一次資料傳送尚未完成時就開始

PC xxx SDRAM 主記憶體 66/100/133/150 MHz DIMM168 Pin

取代了 EDO RAM

早期 Pentium 主機板支援的主流記憶體

DRDRAM主記憶體電視遊樂器記憶體

資料寬度 16/32位元,可達 800/1600 MHz

RIMM184/242Pin

必須由 Intel及 Rambus授權

DDR SDRAM 主記憶體目前最快的 DDRII-800 之內頻為 800 MHz 、外頻為400MHz

DDR DIMM

184/240pin

取代了 SDRAM

波峰與波谷都可以傳送資料,所以是 SDRAM的兩倍。是目前的主流並仍在發展中。

各類 DRAM比較表 -1

Page 52: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

52

3.2.1動態隨機存取記憶體 (DRAM)

• Dual-Channel Memory(雙通道記憶體 ) – 在主機板上插入 DRAM 時,是否有特殊規定呢?

• 在早期 486 PC 時代,使用 32bit 記憶體匯流排,因此如果要使用 8bit 的 30Pin DRAM ,一次就必須插上 4隻 DRAM 。

• 到了 Pentium 時代,使用 64bit 記憶體匯流排,因此如果要使用 32bit的72PinDRAM ,一次就必須插上 2隻 DRAM 。

• 這種限制直到 168Pin SDRAM 的產生之後,就解除了。使用 SDRAM或 DDR SDRAM ,只需要插上一隻就可以運作。

– 而之前為何必須要同時使用多隻記憶體才能夠讓電腦正常運作?• 這是因為考量到資料在記憶體與 CPU 之間的傳送頻寬必須達到一定目標,因此預

先以多通道方式建立在主機板上,必須同時插上多隻記憶體,才能夠填滿每個通道的資料傳送目標。

– 雖然到了 SDRAM及 DDR SDRAM 之後,只需要插入一隻記憶體,電腦就可以正常運作

• 但由於 CPU 的效能提升迅速,光靠記憶體技術本身來提升傳輸頻寬是來不及跟上的,因此,廠商們又將腦筋動到整個系統結構上的調整,透過同時使用多隻記憶體以提升頻寬,這個方法就是雙通道記憶體( Dual-Channel Memory )技術。

Page 53: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

53

3.2.1動態隨機存取記憶體 (DRAM)

– 在雙通道記憶體推出時,當時最快速也最普及的前端匯流排 (Front Side Bus; FSB)為 FSB 800 ,傳輸速率理論上最高可達 6.4GB/s ,但當時最快速的 DDR 800 SDRAM價格非常昂貴,尚未大量生產,因此大多數人使用的是 DDR 400 SDRAM或 DDR 533 SDRAM 。

• 如果使用支援雙通道技術的主機板,您可以採用插上兩隻 DDR 400 SDRAM 的方式,將頻寬達到 6.4GB/s 的水準,加快了記憶體與 CPU 的資料傳送效率。

• 當然這必須是主機板上的北橋晶片組也支援的狀況下才能成行。• 同時,在支援雙通道技術的主機板上,您仍舊可以只插入單一隻

DDR SDRAM ,電腦仍舊可以運作,只不過速度也就侷限在該DDR SDRAM 的速度。

– 雙通道技術的主導權在於主機板設計廠商• 目前 DRDRAM與 DDRII SDRAM 都可以使用雙通道技術• 前提是主機板必須提供此功能。

Page 54: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

54

3.2.2靜態隨機存取記憶體 (SRAM)

• SRAM(Static Random Access Memory) ,中文稱為靜態隨機存取記憶體。名稱中的『靜態』是它與動態隨機存取記憶體(Dynamic RAM) 最大的不同。– 首先,我們必須了解 DRAM 維持資料的方式,事實上, DRAM 儲存每一個位元都必須使用 1 個電晶體和 1 個電容,電晶體由於是半導體,因此可以透過電壓/電流的改變表現位元的 0與 1 ,電容是一種儲存電力的電子元件,在 IC 設計中,電容扮演的腳色是維持電壓的來源,但由於電容會慢慢放電,因此必須充電

– DRAM 之所以稱之為『動態』,是因為 DRAM 在實際上運作時,一直在重複著充電、放電的過程。(這也就是之前所提到產生時間延遲的原因)。換句話說,即使電源未曾中斷, DRAM若不經過充電的過程,其中的資料仍將消失。

Page 55: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

55

3.2.2靜態隨機存取記憶體 (SRAM)

– SRAM 使用 4~6 個電晶體來儲存 1 個位元,而且不需要反覆充電(所以速度較快),因此稱之為『靜態』,代表的就是,只要電源不中斷,SRAM 的資料就不會消失。

• 由於 SRAM 使用的電晶體較多,因此價格較貴,而且無法製作成大容量的記憶體,因此不符合主記憶體的需求

• 不過 SRAM卻非常適合充當快取記憶體,因為快取記憶體需要更快的傳輸速度,但容量卻不用很大。

– Pentium 主機板上面的外部快取記憶體 (L2 Cache)、 Pentium II/III的 L2 Cache on die通常採用 SRAM 。

– 此外,快取記憶體的觀念也被應用於硬碟中,所以有些附有快取記憶體的硬碟也使用 SRAM做為磁碟快取 (disk cache) 。

Page 56: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

56

3.2.2靜態隨機存取記憶體 (SRAM)

Maxtox硬碟上面使用Samsung出廠的 SRAM(disk cache)Pentium III 450的 SRAM(L2 Cache on die)

Page 57: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

57

3.2.3 唯讀記憶體 (ROM)

• ROM (Read Only Memory;唯讀記憶體 )和前兩小節介紹的 RAM 有著完全不同的特性– 不論是 DRAM或 SRAM 都無法在電力消失時保存資料,所以都屬於揮發性記

憶體。– ROM 可以在無電力的狀況下保存資料。 ROM 之所以被稱之為『唯讀』,是

因為傳統的 ROM (最早期的 Mask ROM )只能寫入資料一次,爾後就只能夠讀取資料而無法寫入資料。

– 由於 ROM 的成本比較高,因此通常只會把啟動電腦所需要的小程式儲存在ROM 裡面,例如 BIOS 就是使用 ROM做為記憶體的常見應用。

– 隨著演進,後來的 ROM 並非完全無法更新其內的資料,例如:後來出現的EPROM(Erasable Programmable ROM)、 EEPROM(Electrically Erasable Programmable ROM) 等都可以更新其內的資料。

• 其中的 Programmable ,使得此類的 ROM 稱之為可程式化的 ROM ,清除 ROM 裡面原有資料的方式有所不同,例如使用紫外線清除資料以及較高電壓清除資料。雖然這些 PROM 可以重複寫入資料,但成本仍比一般的 RAM高出許多,而且更新資料時,需要特殊的燒錄機,所以對一般電腦設備而言並不十分方便。

Page 58: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

58

3.2.3 唯讀記憶體 (ROM)

【 BIOS與 CMOS】:BIOS是 Basic Input/Output System的縮寫,也就是基本輸入輸出系統。 BIOS其實是一套程式,儲存在主機板上的 ROM裡面,這套程式包含了電腦系統最重要的基本輸入輸出程序、系統開機時的檢查程序等等。當透過它來開機時,它會對系統各項硬體進行測試和初始化,以保證系統能夠正常運作。早期的 BIOS功能非常簡單,但現今的 BIOS還必須支援隨插即用功能以及負責電源管理。CMOS是 Complementary Metal Oxide Semi-conductor的縮寫,中文可譯為互補金屬氧化物半導體。它其實就是一種半導體(為 PMOS與 NMOS的組合,故稱之為互補),但目前大多是指由 CMOS半導體製作而成的 IC。對於個人電腦而言, CMOS指的是主板上一塊可讀寫的晶片,它存放著許多系統的參數,例如系統時脈、系統時間、硬碟型態、軟碟規格等等。開機時,由於需要讀取 CMOS資訊,以便設定各個元件的初始狀態,因此它的資料也不可以消失,但事實上使用 CMOS製作而成的 IC並不能保持資料,因此在系統電源消失時,

仍需使用電池來保持電力。BIOS與 CMOS都跟電腦系統的初始化設定有關,因此,一般使用者很難分清楚兩者的差別,事實上, CMOS存放的是系統參數,而 BIOS儲存的則是開機的程式,這些程式包含了設定系統參數的功能。或者,我們可以這樣說,透過 BIOS的設定程式,可以對於 CMOS儲存的參數進行讀取與修改。請勿對兩者產生混淆。

Page 59: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

59

3.2.3 唯讀記憶體 (ROM)

【韌體】硬體是電腦的實際元件,軟體是某些資料的排列方式。電腦的運作是在固定不變的硬體之中執行各式各樣的軟體(例如程式),因此,可以完成各種的工作。這好比電視是硬體,而電視節目則是軟體,我們可以在電視中觀看各式各樣的節目,這是因為每次資料線(如 Cable線)傳來的資料都不同。然而如果我們將軟體程式寫死在某一個硬體內,使得該硬體不再能夠接受其他具有變化的資料,則我們將之稱為韌體 (Firmware) ,例如 BIOS 就是一種韌體,因為它雖然是一套軟體程式,但卻被寫死在 ROM 之內不再更動(或極少更動)。

BIOS 設定畫面

Page 60: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

60

3.2.3 唯讀記憶體 (ROM)

– 快閃記憶體 (Flash Memory) • 事實上,目前的 BIOS通常是存放在快閃記憶體 (Flash Memory) ,稱之為 Flash ROM ,快閃記憶體是一種固態,不易揮發,而且可以重複寫入的記憶體。由於目前的電腦都支援隨插即用的特性,因此, BIOS 的更新頻率也大為增加,而快閃記憶體在更新資料的過程則比 EPROM、 EEPROM 等方便許多。關於快閃記憶體,我們將在第四章作更深入的說明。

Page 61: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

61

3.3 電腦的速度表示方法• 常常有人會問『你的電腦有多快?』這個問題

– 通常你聽到的答案可能是 Pentium 4 3.06GHz 之類的答案,其實,這並不確切。– 因為一部電腦的速度並非只受到 CPU 速度的影響,其實包含主記憶體的速度及容量、

硬碟的轉速、其他 I/O 的速度等等都會影響整台電腦的效率– 最常見的例子是一部 1.7 GHz 的筆記型電腦與桌上型電腦,通常桌上型電腦的效能較佳,

這最主要的因素則來自硬碟的轉速不同。• 就實際面而言, CPU 的速度仍常常被拿來當做簡述一部電腦速度的指標,而就上

面的例子而言, 3.06 GHz究竟指的是什麼呢?這就必須先講解『時脈』。– 時脈 (timer或 clock speed) ,是類似一種時鐘的裝置,單位通常以『頻率』來表示,它

可以表示晶片的執行效率,一般為 MHz (百萬赫茲)或 GHz (十億赫茲),而『頻率』是『週期』的倒數,所以 Hz是 Second(秒 ) 的倒數,頻率為 1MHz 相當於週期為1μs(百萬分之一秒 ) 。

– 因此工作頻率越高代表速度越快,如 Pentium II 的工作頻率為數百MHz ,而 Pentium 4的工作頻率則可以達到 1.x~3.x GHz 。

• 上述的 CPU為 Pentium 4 3.06GHz ,代表的是該 CPU 可以在 3.06 GHz 的頻率下正常工作( 3.06 GHz 代表該 CPU 的工作頻率)

– 當超過此頻率時,稱之為『 CPU超頻』。– Intel 除非特別載明該 CPU 可以超頻,否則將不保證該 CPU 此時能夠正常運作。

Page 62: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

62

3.3 電腦的速度表示方法• 目前的主機板都允許插上多種工作頻率的 CPU ,換句話說,主機板無法完全預知

機器運作時,所插入 CPU 的工作頻率。– 因此,在主機板上面會必須透過一個稱之為時脈產生器 (clock generator) 的裝置用來產生時脈,供給 CPU 、晶片組,做為運作時的速度參考。

– 以機器週期來說,早期的 CPU 完成一個指令必須使用一個或多個機器週期,而目前所流行的機器則透過先進的技術,可以於一個機器週期內完成一個或多個指令。

• 除了使用 CPU 的工作頻率來描述一台電腦的速度之外,也可以使用MIPS、MFLOPS、 TPS 等來描述一台電腦的速度(或稱之為電腦的產能則更恰當)

– MIPS(Million Instructions Per Second) 代表一秒鐘可以完成多少百萬個指令– MFLOPS(Million Floating Operations Per Second) 代表一秒鐘可以完成多少百萬個浮點運算

– TPS(Transactions Per Second) 代表一秒鐘可以完成多少個交易。– 這三種表示法,當然都是值越大,代表電腦的效能越好,但這三種表示法卻分別適用於不同的場合,通常 MIPS適用於大型主機、工作站、個人電腦;MFLOPS 則適用於大量浮點運算的機器(例如:超級電腦);而 TPS 則適用於商業交易的特殊功能機器上。

Page 63: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

63

3.3 電腦的速度表示方法【時脈的迷思】傳統的 CPU效能比較可以只比較時脈,但現今的 CPU效能比較已經不能單單以時脈做為單一指標,同時脈的 Intel Pentium 4效能明顯不及同時脈的 AMD Athlon XP 。例如:一顆Pentium 4 2 GHz 與實際時脈 1.6 GHz的 Athlon XP 2000+ 一樣快(這與實際執行的軟體種類有關)。

對 AMD的 CPU 而言, AMD在 Athlon XP 系列中,試圖轉移使用者對於時脈的迷思,因為在相同時脈下, AMD Athlon XP CPU 可以做比 Athlon CPU更多的事。為此, AMD 設計了一種新的評比方式,它以傳統 Athlon 要達到 Athlon XP 所需的時脈來命名,例如 Athlon XP 1800+ 的時脈其實是 1.53GHz ,但傳統 Athlon 則必須在時脈 1.8GHz 下才能達到同樣的效能,因而命名為 Athlon XP 1800+ 。也有些人以 Intel Pentium 4 的時脈來做說明,例如Athlon XP 2000+ 代表的就是效能比 Pentium 4 2G 還要好一點,其中的 2000 對應的就是Intel CPU的 2G 時脈,而「 +」則是代表還要好一點(有時候您也會看到「 -」號,則代表差一點)。

在過去,大家還不了解 AMD 的命名策略時,有些不肖廠商(或無知廠商)會以 AMD Athlon XP 上標示的數值當作時脈來販賣,以誤導消費者。事實上, Athlon XP 2000+ 的工作時脈並非 2GHz ,而是 1.6GHz ,但效能卻比 2GHz的 Pentium 4 還要好一點。

由於多核心 PC 時代的來臨,代表著 Intel 也已經認知到追求 CPU 的高時脈並非提升電腦效率的唯一途徑(實際上也不可能無限制的提升 CPU 時脈,因為會產生散熱等問題),故未來MIPS 也可能是評估 PC效能常見的計算單位。

Page 64: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

64

3.4 匯流排 (Bus) 與晶片組(Chipset)

• 電腦的各個子系統之間需要彼此連接的介面,匯流排 (Bus) 就是做為連接電腦各個子系統所需要的元件,它的功能是用來傳送指令、資料或控制訊號。

• 匯流排又可以分為內部匯流排與外部匯流排兩類– 內部匯流排的功能是 CPU 內部元件(例如算術邏輯單元、控制單元、暫存器等等)的

連結– 外部匯流排的功能則是連結 CPU 與主記憶體、 I/O 元件。

• 其中外部匯流排又可以分為 CPU-Memory 匯流排(亦稱為 Memory Bus 或系統匯流排)與 I/O 匯流排( I/O Bus )兩種。前者傳輸速率較快,後者則遷就於 I/O 裝置,因此傳輸速率較慢。但為了降低成本,有些電腦的 CPU-Memory 匯流排與 I/O匯流排是同一條。

匯流排的分類

Page 65: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

65

3.4 匯流排 (Bus) 與晶片組(Chipset)

• 所謂的匯流排 (Bus) 結構是一種資料傳輸線路,我們可以將之想像為一台限載一人的電梯,理論上每個在該大樓工作的人,都可以透過該電梯的各個樓層出入口乘坐此部電梯(只要該電梯內沒有人),到達想要去的地方,達到共享的目的。在匯流排的設計也是一樣,它透過不同的介面卡插槽或接點,讓多個設備共用相同的傳輸管道,在匯流排的每一個端點都可以在某個時間內佔據匯流排以便傳輸資料,換句話說,當有其他裝置正在使用匯流排時,其他匯流排就必須等待。下圖是 I/O 匯流排常見的示意圖。

Page 66: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

66

3.4.1 系統匯流排

• 系統匯流排的用途是傳送主記憶體的資料,因此又稱為記憶體匯流排,而系統匯流排的傳輸速率也就是前面提及的 FSB(Front Side Bus) 速率。– 事實上, CPU 在存取主記憶體資料時,必須透過位址線與資料線來完成,首先 CPU 將要存取的記憶體位置透過位址線傳送出去並鎖定位址後,再透過資料線讀取或寫入資料,最後再將位址線的鎖定解除(請參考圖 3-18 )。

– 位址線與資料線都不是單一條線,而是由多條線路組合而成,因此也分別稱之為位址匯流排與資料匯流排

• 而一般所謂的系統匯流排 ( 記憶體匯流排 ) 指的就是傳送記憶體資料的資料匯流排。

【字組大小與系統匯流排的關係】我們在第二章時曾經提及字組大小 (Word Size) 並無明確定義為多少位元,事實上,字組大小代表該電腦系統一次可以存取的位元數量,許多人將之認定為電腦等級,例如 16位元電腦的字組大小為 16個 bits、 32位元電腦的字組大小為 32個 bits 。而字組大小受到系統匯流排(記憶體匯流排;資料匯流排)的影響,所以 64位元的電腦代表著使用的系統匯流排寬度為 64位元。

Page 67: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

67

3.4.2 I/O 匯流排• 對於與外部介面卡連結的 I/O 匯流排而言,歷經時代的變遷,常見的匯流

排標準有下列幾種:– ISA(Industry Standard Architecture;工業標準架構 )與 EISA(Extended ISA;延伸工業標準架構 ) :

• 早期 IBM/XT 時代(比 286更早的 8086 系統)的產物, XT 的匯流排為 8位元,到了 AT 時代( 286 系統),為了提高資料傳輸的速度,在 1984年, IBM 設計了 16位元的 ISA 匯流排( ISA 最大資料寬度為 16位元,但有時仍以 8位元來設計),由於首度使用在 AT 系統,因此 ISA 匯流排亦稱之為 AT 匯流排 (AT Bus) 。

• 通常 ISA 插槽顏色為黑色,時脈為 8MHz ,可以插上許多的介面卡,例如網路卡、音效卡等, ISA 只適合用於低速的介面卡,目前 ISA 匯流排已經很少使用已經被 PCI 匯流排所取代。

• 在 1993年, Intel與Microsoft曾合作提出支援隨插即用的新版 ISA 匯流排規格,稱之為 EISA ,其最大資料寬度可達 32位元,通常 EISA 插槽顏色為咖啡色,但時脈仍為 8MHz。 EISA 在硬碟的資料傳輸上,表現較為突出,但在顯示卡等其他方面的資料傳輸上,則並無明顯的改善,因此已經不再使用(目前看到的咖啡色插槽多為 AGP 而非 EISA )。

Page 68: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

68

3.4.2 I/O 匯流排

– PCI(Peripheral Component Interconnect) :• PCI是 Intel於 1993年發展的高速匯流排規格,目前市面上的主機板都配有此種匯流排插槽,一般為白色插槽, PCI 本身是 32位元的匯流排,不過也支援 64位元 CPU 所需要的 64位元資料傳輸。 PCI 可使用 33或66MHz 時脈,在 64位元傳輸時,採用 66MHz 時脈,傳輸速率可以達到533MBps ,如下表所列,充分顯示了 PCI 的高效能傳輸速度。

寬度 速度 效能32 bits 33 MHz 133 MBps

32 bits 66 MHz 266 MBps

64 bits 33 MHz 266 MBps

64 bits 66 MHz 533 MBps

PCI 的效能表

Page 69: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

69

3.4.2 I/O 匯流排

• PCI規格雖然是由 Intel 制定,但由於 PCI 使用晶片組控制,因此 PCI 可支援不同的 CPU (包含非 Intel 相容的 CPU );換句話說,在 PCI 匯流排上,可以掛載支援 PCI架構的各類不同功能的 IC ,例如:網路卡、 SCSI 卡、圖形加速卡等等。

– PCI僅限於低速 I/O 使用,後來又為了 Gigabit網路、高速 SCSI、 RAID 等高速要求,又推出了 64位元 133MHz的 PCI-X ,並與北橋晶片直接連結。但無論是 PCI或 PCI-X 將來都會被 PCI-Express 所取代。

【傳輸速率】:資料的傳輸速率單位,一般使用『MB/sec』或『 bps』來表示, MB/s中的 B 代表的是 Byte ,而 bps(Bits Per Second) 代表一秒鐘可以傳輸多少個位元,因此 bps值越大,傳輸速率越快。請注意,有時候即使看到的是大寫的 Bps ,但實際上指的仍是 bit 而非 byte 。

Page 70: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

70

3.4.2 I/O 匯流排– AGP(Accelerated Graphics Port) :

• AGP 匯流排的功能是特定的,它是由Intel 為了提高顯示卡的 3D繪圖功能所發展的匯流排標準, AGP標準是以 PCI標準為基礎所建立的高效能界面,其效率為 PCI 的四倍。 AGP 又分為 1x、 2x、4x、 8x 等時脈週期,而 8x 可提供的頻寬高達 2.1GB/s 。

• AGP另一項重點是它提供了獨立性,由於 AGP 是針對 3D繪圖功能所設計,因此 3D繪圖卡可以使用獨立插槽(顏色通常與 PCI不同,例如咖啡色)與 AGP匯流排(一般只提供一個連接埠;即一個插槽),而不必和音效卡、 SCSI 卡、網路卡等共享 PCI 的頻寬與插槽。

• 最近由於 PCI-E 匯流排的高速特性,漸漸地 3D高速繪圖卡也改採 PCI-E 匯流排,新出品的主機板有許多已經不提供AGP 插槽了。 同時支援 3 種匯流排的 Petium II 主機板

Page 71: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

71

3.4.2 I/O 匯流排

– PCI-E(PCI Express) :• 雖然 AGP 解決了顯示卡需要的快速傳輸問題,但畢竟 AGP僅提供一個插槽,所以無法使用在非螢幕的其他種類 I/O擴充,因此,在 1998年 Intel又基於 PCI研發新的匯流排規格,並在 2002年 7月制定出新的 PCI Express串列匯流排標準,又稱之為 3GIO 匯流排 (3 Generation I/O bus;第三代 I/O 匯流排 ) 。

• PCI-E 匯流排的工作電壓可降至 0.8V ,其主要目標在於取代 PCI/PCI-X/AGP ,因此,他提出了 1x,2x,4x,8x,16x,32x 多種規格, pin 插槽接腳也有所不同, 1x為 36-pin、 4x為 84-pin、 8x為 98-pin、 16x為 164-pin

– 1x 用來取代 PCI, 4x、 8x 用來取代 PCI-X

– 16x 用來取代 AGP 。– 以 16x 為例,它可提供 4GB/s 的頻寬,足足比 AGP 8x 多了一倍。

• 同時,在 PCI-E 16x 以外的連接上,也採用了開關 (Switch) 的概念,以解決多個裝置訊號衝突的問題。

Page 72: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

72

3.4.2 I/O 匯流排

PCI Express規格 取代目標 效能

1xPCI-X

250MB/s

2x 500MB/s

4xPCI-X

1GB/s

8x 2GB/s

16x AGP 4GB/s

32x 新型態的 I/O 8GB/sPCI-Express 的效能表

PCI-E 的插槽接腳有多種選擇

Page 73: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

73

3.4.2 I/O 匯流排

同時支援 PCI與 PCI-E 的雙核心主機板

Page 74: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

74

3.4.3 晶片組 (Chipset)

• 晶片組 (Chipset) 原本是提供各項功能的一組晶片,在主機板上則指的是用來管理資料流的晶片組,這些晶片組的各個晶片分別提供不同的功能,例如:管理 DMA 、處理中斷、管理輸出入匯流排間的資料傳輸等等。– 晶片組由於功能特殊,因此屬於 ASIC(application-specific integration

circuit) 的一種,生產晶片組的著名的廠商有 Intel、 ALi (揚智)、 VIA (威盛)、 SiS (矽統)。目前市面上的主機板晶片組都具有整合功能,並以單純的兩片晶片為主,也就是北橋晶片( North Bridge Chipset )與南橋晶片 (South Bridge Chipset) ,其中的北橋晶片通常上面已經黏貼散熱鐵片。

– 北橋晶片通常負責 CPU- 記憶體及 CPU-AGP或 CPU-PCI Express 16x 之間的訊號處理,因此速度較快。

– 南橋晶片一般處理與 I/O 有關的動作。不過目前也有一些廠商將南北橋晶片做在一起,成為單一整合型晶片。

Page 75: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

75

3.4.3 晶片組 (Chipset)

主機板的南橋晶片組( VIA8235 )

各式各樣的晶片組

Page 76: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

76

3.4.3 晶片組 (Chipset)

技嘉主機板的 PCI、 AGP 插槽與晶片組

Page 77: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

77

3.4.3 晶片組 (Chipset)

技嘉主機板的 PCI、 PCI-Expess 插槽與晶片組

Page 78: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

78

3.4.3 晶片組 (Chipset)

含 AGP 匯流排的晶片組與匯流排連結圖(線條越粗代表傳輸速率越快)

Page 79: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

79

3.4.3 晶片組 (Chipset)

含 PCI-Expess 匯流排的晶片組與匯流排連結圖

Page 80: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

80

3.5 程式的執行流程

• 電腦的運作其實就是程式的執行,在介紹過 CPU 、匯流排、主記憶體之後,我們可以解釋一個程式的執行過程。– 首先,所有的程式要被執行前,一定必須被載入到主記憶體中,並且除了記

憶體/ IO 的存取指令之外,其他指令則必須透過 CPU 的內部元件(例如ALU 、暫存器等等)來執行。

– 電腦硬體結構會自動執行儲存在主記憶體的程式 (program) ,而這些程式是由許多指令 (instruction) 組成,這些指令將被循序地執行,換句話說,這個指令執行完畢後,在一般的狀況下(除了跳躍或條件分支指令之外),會執行下一個指令。

– CPU 執行一個指令的過程稱之為機器週期 (machine cycle) ,而當一個指令被執行完畢後,下一個機器週期要擷取哪一個指令來執行,則該指令的記憶體位址會記錄在程式計數器 (PC; Program Counter) 之中。

• PC 暫存器內通常會記錄下一個指令的位址,對於固定指令長度的機器而言(例如 DLX ),硬體結構將比較簡單,因為只需要將目前指令的位址加上固定長度即可得到下一個指令的位址。

Page 81: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

81

3.5 程式的執行流程

• 在一個機器週期內,指令究竟是如何被擷取並執行的呢?通常,指令的執行,被分為許多階段,以 DLX 機器而言,一個指令將被分為下列 5 個步驟來加以執行。

機器循環週期

Page 82: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

82

3.5 程式的執行流程

– (1) 指令擷取 (IF; Instruction Fetch) :• CPU根據『程式計數器』的內容(這是一個記憶體位址),從主記憶體中取出將要執行的指令,並將該指令儲存在『指令暫存器』中,然後將程式計數器內容遞增,以記錄下一個指令的位址。

– (2) 指令解碼 (ID; Instruction Decode) :• CPU的控制單元會針對『指令暫存器』的內容(這是一個準備要被執行的指令內容)加以解碼,分析運算碼 (opcode)與運算元(operand),以便決定要執行哪些動作。

– 指令擷取與指令解碼所花費的時間合稱為指令時間 (I-Time;Instruction-Time)。

Page 83: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

83

3.5 程式的執行流程– (3) 指令執行 (EX; instruction EXecution) :

• ALU根據 ID階段的分析結果(運算碼、運算元與函數功能),實際執行運算,運算結果將放在『 ALU輸出暫存器』中。

– (4) 記憶體存取 (MEM;MEMmory access) :• 如果指令需要存取記憶體,此時會將暫存器資料寫入主記憶體中,或者將主記憶體的資料載入到暫存器。

– (5) 結果回存 (WB; result Write Back) :• 不論結果是從記憶體讀入或是 ALU 的運算結果,都會在此階段中回寫到各個可見暫存器中。

– 指令執行、記憶體存取、結果回存等階段所花費的時間合稱為執行時間 (E-Time; Execution-Time) 。

– 所以,機器循環週期 =I-Time+E-Time 。

【註】:一個指令究竟被分為幾個階段來執行,每種電腦的設計都有一些不同,有些電腦執行一個指令只需要 4 個階段 IF、 ID、 EX、WB ,有些電腦則將指令執行切割成更多階段,讀者若對其他各類電腦指令的運作有興趣,請參閱計算機結構之專書。

Page 84: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

84

3.6 電腦結構的最新設計

• 上述的電腦核心結構是早期的設計基礎,這些基礎仍然沿用至今,但也為了提昇效率而發展了一些新的設計架構,包含『階層式記憶體』、『管線』、『超純量』、『 RISC與 CISC』等等。

• 3.6.1 階層式記憶體( Hierarchical Memory )– 記憶體一向維持著速度/價格、容量成反比的原則,記憶體只要速度越快,

成本就越高,而容量通常也就越小。這說明了一件事,在成本的考量下,我們必須有效地分配各種記憶體,以達到最高效率。

– 目前大多數的電腦設計,都採用所謂『階層式記憶體』的記憶體配置方式,將『快取記憶體』、『主記憶體』、『硬碟』做階層式配置(如圖 3-38 ),達到最佳的成本效能比。

Page 85: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

85

3.6.1階層式記憶體( Hierarchical Memory )

階層式記憶體

Page 86: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

86

3.6.1階層式記憶體( Hierarchical Memory )

• 階層式記憶體的原則是,速度越快的記憶體越接近 CPU ,若將 CPU 內的暫存器也當做一個階層的記憶體,則一共有四層。反過來說,越遠離CPU 的記憶體之容量也相對越大。階層式記憶體可以分為兩大部分來討論:『 CPU-快取記憶體-主記憶體』、『 CPU/快取記憶體-主記憶體-硬碟』。– 對於前半部的『 CPU-快取記憶體-主記憶體』而言,階層式記憶體之所以

能夠有效的提昇電腦的效能,是因為大多數的程式執行時都具有區域性( locality )原則。而區域性又分為時間區域性與空間區域性兩種。

• 時間區域性 (timporal-locality) :剛剛被存取過的東西,在不久的將來很可能將再被存取。例如:程式中的迴圈。

• 空間區域性 (spatial-locality) :位址相近的東西,往往會在短時間內先後被存取。例如:程式中使用陣列資料結構。

Page 87: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

87

3.6.1階層式記憶體( Hierarchical Memory )

– 簡單的說,由於區域性原則,我們可以預測「某些東西」可能會在短時間內被存取,因此,將「這些東西」放在最快速的記憶體內,將有助於提昇整體效率。由於快取記憶體 (cache) 是由 SRAM 製作而成,而主記憶體是用DRAM 技術製作而成,所以快取記憶體比主記憶體速度更快。因此,我們將會把「這些東西」從主記憶體搬移到快取記憶體中。

• 在實作上,階層式記憶體的原理被發揮得淋漓盡致 ,快取記憶體甚至被切割為兩層式或三層式快取記憶體。

– 以兩層式快取記憶體為例,早期的「 Pentium CPU/Pentium 主機板」將第一層的快取記憶體(稱為 L1 Cache )直接嵌入在 CPU 之內(速度更快,容量較小),而第二層的快取記憶體(稱為 L2 Cache )則是建構在主機板之上(速度較慢,容量較大)。

– 而後期的「 Pentium III CPU/ Pentium III 主機板」則將 L2 Cache 也嵌入在 CPU 之內,稱之為『 L2 Cache on die』,所以在 Pentium III 主機板上是看不到 L2 Cache 的。

Page 88: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

88

3.6.1階層式記憶體( Hierarchical Memory )

– 對於後半部的『 CPU/快取記憶體-主記憶體-硬碟』而言,主要是為了提高工作量( throughput )

• 目前大多數的作業系統都屬於多工式的作業系統,也就是必須同時處理多項工作,事實上,單顆 CPU不可能同時處理超過一件以上的工作,但卻可以不斷切換工作,對於人類而言,由於切換的速度太快,有時並不會察覺到工作已經被切換。例如:您可以一面聽音樂,一面上網找資料。

• 由於不論是哪一種作業,程式若要被執行,一定必須被放置在主記憶體/快取記憶體內,但當工作太多時,主記憶體的容量將可能不夠用,此時就會透過虛擬記憶體 (Virtual Memory) 技術將硬碟中的某個空間當作是虛擬的記憶體,把暫時未執行到的工作放到虛擬記憶體(即硬碟),等到要執行該工作時,再將程式或資料載入到主記憶體中,這個切換的動作稱之為置換 (swap) 。

– 例如:有時候您會發現當您開啟多項工作時,例如聽MP3 ,上網,打Word 作業,繪圖、、、等,突然有段短暫時間,電腦似乎停頓下來,且硬碟不斷地被存取,此時可能就是電腦正在做置換的工作。

Page 89: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

89

3.6.1階層式記憶體( Hierarchical Memory )

– 上述兩種技術,都必須考量到「哪些東西」將在不久的將來被使用,這是一個預測的行為,當然,預測不可能完全準確,但經由專家們的努力,也發明了許多種不同但效率不錯的置換方法

• 這些方法將會在計算機組織與結構及作業系統的書籍與課程中,加以介紹,在此不在多說。

• 值得注意的是,快取記憶體的置換方法是由硬體來控制,而虛擬記憶體的置換方法則是由軟體(作業系統)來加以控制(詳見 7.4節)。

【快取記憶體的引申用法】:快取記憶體一詞最原本出現的場合是在階層式記憶體中,但電腦技術的觀念往往差不多,因此它也被應用在任何需要儲存小量且常被存取的環境,例如:大多數人們上網讀取的網頁都差不多,如 yahoo搜尋引擎常常被瀏覽,而為了減低網路資料的流量及伺服器的負載,因此,可以將這些未變動的網頁資料蒐集放置於 Proxy 內,如此一來,我們就可以先試試看 Proxy 內是否有我們需要的網頁資料,若有,就直接取用;若沒有,才到實際的網站中讀取。甚至於,瀏覽器也會把我們已經下載過的網頁存放在本地端的電腦中,如此一來,在使用【上一頁】功能時,根本就不會有網路傳輸的問題。這些檔案或 Proxy 也有人稱之為 cache ,因為原理都和階層式記憶體中的快取記憶體相同。另一個常見的快取記憶體應用則是發生在快速硬碟中,同樣的道理,硬碟內的資料也可能有小部分會常常被存取,因此,有些快速的硬碟會內建小量的磁碟快取 (disk cache) 來存放這些資料,而磁碟快取也是使用 SRAM 來製作以提高速度。

Page 90: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

90

3.6.2 管線( pipelining )

• 提昇電腦效率的方法,除了加快指令的執行速度外,另一個方向就是增加工作量 (throughput) 。– 換句話說,在無法提昇指令的執行速度時,若能夠增加指定時間內所完成的

指令總量,也同樣能夠提昇電腦整體的效率。「指令的執行速度不變,但卻增加指定時間內所完成的指令總量」,這句話看似矛盾?其實不然。

• 在非電腦產業常常使用的管線技巧恰恰可以達到上述要求,舉例來說,假設每一部汽車需要安裝 1000 個零件才算完成,您可以先安裝第一台汽車的第 1 個零件直到安裝第 1000 個零件,然後再安裝第二台汽車的第 1 個零件直到安裝第 1000 個零件,假設每次需要花費 100小時,則安裝完 10台汽車就需要 1000小時。但實際上,除了手工打造的汽車,汽車工廠絕對不是如此製作,通常汽車工廠會將每個零件分配在一個機器上,並且同步進行,換句話說,當第一台汽車正在安裝第 2 個零件時,第二台汽車也正在安裝第 1 個零件,如此一來,安裝完畢 10台汽車的時間與安裝完畢1台汽車的時間就相去不遠。

Page 91: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

91

3.6.2 管線( pipelining )

– 電腦執行指令也同樣採用管線 (pipeline) 技術就可以在指令的執行速度不變時,增加指定時間內所完成的指令總量,例如就前面介紹的DLX 機器而言,一個指令的執行過程可以分為 5 個步驟:IF、 ID、 EX、MEM、WB 。由於這 5 個步驟所使用的 CPU 元件都不相同,因此,可以同步進行, DLX 機器使用管線技術執行 10 個指令的圖示如下:

管線式 DLX 執行指令順序

Page 92: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

92

3.6.2 管線( pipelining )• 管線增速

– 對於一個使用管線技術製作的電腦系統而言,它能夠提供多少的增速(speedup)呢?在理想狀況下,管線的增速恰好等於管線的級數,例如:DLX 的管線級數為 5 ,因此,使用管線製作的 DLX 機器比未使用管線技術製作的 DLX 機器快 5倍。

– 我們很容易可以驗證上述定理,所謂理想狀況,代表管線內每一級所需要的花費時間皆相等,且每一級皆可以完全獨立不受他級影響

• 例如:每一級需要花費 10ns ,則未使用管線完成一個指令需要 50ns ,而完成 100 個指令需要 5000ns 。使用管線技術後,完成 100 個指令所需要的時間為 (100-1)*10+50=1040ns 。

• 若執行無限多個指令時,管線( 5級)所獲得的增速,如下公式計算:

完美的 Speedup 管線 =管線的級數

Page 93: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

93

3.6.2 管線( pipelining )– 如果每一級所需要花費的時間不相等時,使用管線所獲得的增速就沒有那麼理想了,假設 DLX 指令執行的 5 個階段分別需要花費 10ns、 12ns、 10ns、 15ns、 10ns ,此時,若想要管線化,就必須以花費最多的那一級( 15ns )做為每一級所需要的時間,如下圖所示。

– 在此階段中,原本未使用管線執行 10 個指令需要 (10+12+10+15+10)*10=570ns ,而使用管線執行 10 個指令則需要 (10-1)*15+75=210ns ,增速只有 570/210=2.7 ,因此,要使用管線來增加效能,必須配合指令分解動作的特性。

步驟所需時間不等

Page 94: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

94

3.6.2 管線( pipelining )

• 管線危障– 使用管線改善效能時,除了必須盡量平衡每一級所花費的時間外,另

一項更重要的考量是『每一級的獨立性』。由於管線是同步作業,換句話說,對於 5級的管線而言,每一個時間點內都有 5 個指令正在被執行且尚未完成某些步驟。使用管線可能會遇到一種狀況,使得下一個指令無法在預定的時脈週期中被執行,此種情況稱之為危障(hazard) 。

• 例如管線中的某一個指令恰好必須使用尚未完成指令的結果做為來源時,則會發生危障。

• 管線危障分為很多種類,而危障最簡單的解決方式就是暫停管線一個週期,但這將有損管線的整體效能,除此之外,專家們還發明了許多解決各種危障的方法,讀者若有興趣,可以參閱計算機結構專書。

Page 95: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

95

3.6.3超純量處理器( Superscalar Processor )

• 仔細觀察可以發現上述的管線技術,可以增加整體的工作量,但仍然是一次發出一個指令去執行,只不過將發出指令的時間縮短為 1/5 。如果我們想要一次發出多個指令,這有可能嗎?– 其實這也是可行的,只不過,我們必須在處理器中增加每個元件,當您為每

個元件增多一倍時,就可以一次發出 2 個指令,依此類推,就形成了所謂的超純量處理器。

超純量處理器的執行時間

Page 96: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

96

3.6.3超純量處理器( Superscalar Processor )

– 通常超純量處理器會搭配管線技術來實作,如此一來,效能就可以大幅提昇。下圖是超純量處理器 +管線技術執行指令的示意圖。

– 就和管線危障一樣,超純量處理器同樣會遇到同類的問題,如果和管線一起實作,則問題就更明顯了,同樣地,這必須透過其他較深入的演算法來加以解決,由於牽扯技術甚多,在此就不再多談。

超純量處理器(含管線)的執行時間

Page 97: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

97

3.6.4平行處理 (Parallel Processing)

• 平行處理是另一種提昇電腦效能的方法,對於平行處理的電腦系統而言,一台電腦內或整個系統內的 CPU不只一個,每一個 CPU 都可以獨立執行工作,而記憶體的部分則可以分為兩部分– 一部份是配置給每一個 CPU私用的記憶體,稱之為本地端記憶體 (local

memory)– 另一部份則是供給所有 CPU 使用的公用記憶體,稱之為分享記憶體 (share

memory) 。• 平行處理的電腦系統運作時,會將程式分割為許多片段(稱之為行程),

分別交由不同的 CPU 來執行,最後再將這些片段的執行結果統合在一起,完成整個工作。最顯著的平行處理系統就是超級電腦,其特性為運用大量的硬體資源,解決需要大量計算的工作。– 同樣的道理,程式中某些資料變數可能有先後關係,因此也需要一套完整的

方法來加以控制,保證最後的結果是正確的,這部分的工作通常交由作業系統來負責。

– 而一個程式即使被分配到各個 CPU 去分頭執行部分片段,有時候並不會縮短它的完成時間(因為必須等待其他行程處理完畢),這通常是由於程式特性所導致,而這部分的工作則必須由程式設計師或平行編譯器來加以控制。

Page 98: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

98

3.6.4平行處理 (Parallel Processing)

平行處理電腦的記憶體結構圖

Page 99: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

99

3.4.5 RISC與 CISC

• 每一種 CPU 的指令集都不盡相同,而指令集的設計也會影響電腦的執行效率。目前指令集的設計可以分為兩大類:RISC(Reduced Instruction Set Computing;精簡指令集 )與CISC(Complex Instruction Set Computing;複雜指令集 )。 RISC 的機器有 PowerPC(Mac 電腦的CPU )、 Sun SPARC (工作站等級)、 IBM RS/6000、 DLX 等等。而 CISC 的機器有 Intel x86、Motorola 680x0 等等。– RISC 的指令較為『精簡』,所謂較為精簡的意思,代表每個指令所

能完成的工作較少,所以電腦的硬體設計變成非常單純,可以使用硬體線路控制 (hardwired control) 來製作。並且由於每個指令的工作單純,因此可以在一個時脈週期內就完成,同時,由於單純的指令易於切割為各個階段,因此,也非常容易配合管線或超純量技術提昇整體效率。

Page 100: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

100

3.4.5 RISC與 CISC

– CISC 所提供的指令種類及功能非常多樣且豐富,有時候一個指令就可以完成許多工作(甚至可以完成一個高階語言指令的工作),由於提供的指令非常多,因此通常採用微程式控制 (microprogrammed control) 來製作,如此一來,若指令數量或指令服務內容變動時,只要修改微程式就可以解決,而不需要更改邏輯電路。但同樣地,由於指令非常複雜,當使用管線與超純量技術製作時,將很容易發生危障問題,反而會使得問題更形複雜,不容易提昇整體效率。

• 一般來說,同樣功能的程式,若使用 RISC 指令來撰寫,通常程式碼會較長,而使用 CISC 指令來撰寫,程式碼將會精簡許多,但這並不代表CISC 機器就會執行的比較快– 因為,一方面 RISC 的每個指令所需要的執行時間比較短,另一方面則是因為

RISC管線化的危障比較少的緣故。

Page 101: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

101

3.4.5 RISC與 CISC

• 究竟 RISC與 CISC ,孰優孰劣?– 至今尚無明確解答,因此兩種指令集設計都被產品化,但依據實際測試結果,

RISC 在伺服器級的電腦表現較優,因此,工作站以上的電腦通常採用 RISC指令集設計,例如 Sun SPARC;而 CISC 則通常被使用做為個人電腦的CPU 指令集,例如 Intel x86 。

RISC CISC

指令種類 少,通常低於 100道 多,通常在 2 00~ 300道以上

指令功能 簡單 複雜控制單元 硬體拉線控制 微程式控制指令格式 固定且可平行解碼,速度快 不固定,必須循序解碼指令長度 固定 不固定管線 單純 複雜應用領域 特定領域,如工作站 非特定,如個人電腦

產品 PowerPC、 Sun SPARC、 DLX

Intel x86、Motorola 680x0

Page 102: 第三章    電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

102

如有必要補充 邏輯電路 , 組合電路 , 可參閱A.4~A.6

如有必要補充 主記憶體的原理 ( 正反器記憶原理 ) , 可參閱 A.7

重點回顧

本章習題