slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組 PowerPoint Presentation
Download Presentation
電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組

Loading in 2 Seconds...

play fullscreen
1 / 83

電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組 - PowerPoint PPT Presentation


  • 321 Views
  • Uploaded on

電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組. 主機板上的元件 中央處理器( CPU )是電腦的心臟 主記憶體( Main memory )是存放程式的地方 匯流排( Bus )是連結 CPU 與主記憶體的橋樑 晶片組是用來協調匯流排速度的 IC 。. 電腦系統單元: 中央處理器、主記憶體、匯流排 、晶片組. 電腦硬體的 5 大單元中,最核心部分(系統單元)是 中央處理器 與 主記憶體 ,而連結這兩者的橋樑是 匯流排 ,. 電腦系統單元: 中央處理器、主記憶體、匯流排 、晶片組. 中央處理器是電腦執行運算的單元

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '電腦系統單元: 中央處理器、主記憶體、匯流排、晶片組' - meira


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

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

主機板上的元件

中央處理器(CPU)是電腦的心臟

主記憶體(Main memory)是存放程式的地方

匯流排(Bus)是連結CPU與主記憶體的橋樑

晶片組是用來協調匯流排速度的IC。

slide2
電腦系統單元:中央處理器、主記憶體、匯流排、晶片組電腦系統單元:中央處理器、主記憶體、匯流排、晶片組
  • 電腦硬體的5大單元中,最核心部分(系統單元)是中央處理器與主記憶體,而連結這兩者的橋樑是匯流排,
slide3
電腦系統單元:中央處理器、主記憶體、匯流排、晶片組電腦系統單元:中央處理器、主記憶體、匯流排、晶片組
  • 中央處理器是電腦執行運算的單元
    • 當資料由輸入單元輸入後,主記憶體可用來暫時存放運算時所需要的資料
    • 當中央處理器運算完畢之後,也會先暫時將運算結果存放在主記憶體中,然後再輸出到輸出單元。
    • 由於主記憶體會因失去電源而喪失資料,因此還需要儲存裝置(次要記憶體)來保存資料。
  • 主機板又稱母板(motherboard) 是電腦主機內部的一片由玻璃纖維製成的板子
    • 上有許多電路與多種插槽
      • CPU插槽、主記憶體插槽、介面卡插槽。
    • 所有的電腦組件都必須直接或間接地連結到主機板,並根據主機板的設計使電腦正常運作
slide4
電腦系統單元:中央處理器、主記憶體、匯流排、晶片組電腦系統單元:中央處理器、主記憶體、匯流排、晶片組

主機板上有各式插槽

拆開機殼後就可以看到主機板

slide5
大綱
  • 3.5 程式的執行流程
  • 3.6 電腦結構的最新設計
    • 3.6.1 階層式記憶體3.6.2 管線
    • 3.6.3 超純量處理器3.6.4 平行處理
    • 3.6.5 RISC與CISC
  • 3.7 重點回顧
  • 本章習題
  • 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)
slide6
中央處理器(CPU)
  • 中央處理器
    • CPU(Central Processing Unit)
    • 處理器(Processor)或微處理器(MicroProcessor)
    • 電腦最重要的一個元件
    • 其功能有如人類的大腦,主要負責算術邏輯運算及執行程式。
  • CPU的組織單元
    • CPU的組織元件
      • 暫存器
      • 控制單元
      • 算術邏輯單元

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

slide7
CPU的組織單元
  • 暫存器(Register)
    • 在CPU中的記憶體為暫存器(Register)。
    • 暫存器可以用來存放將要進行運算或運算完畢的資料。
    • ALU只針對暫存器內的資料進行運算,並且將結果存放在暫存器中。
    • 暫存器的種類有很多,我們可以依照特性及功能來加以分類。

暫存器依特性分類表

slide10
CPU的組織單元
  • 控制單元( Control Unit;簡稱CU )
    • 功能是控制流程及協調輸入、輸出、記憶、算術邏輯等4大單元的運作。
      • 讀取指令、解釋指令、產生控制訊號控制ALU及暫存器完成指令工作。
    • 當指令進入CPU之後,控制元件就會先進行指令解碼(Decode),並按照指令種類執行對應的微程式,發出不同的訊號完成該指令所需要完成的各項功能,最後執行邏輯電路以便取得下一個指令。
    • 控制單元通常包含
      • (1)記錄指令運作順序的微程式(microprogram)
      • (2)取得下一指令的邏輯電路
      • (3)驅動元件的解碼器(decoder)
      • (4)眾多選擇器(multiplexer)。
slide11
CPU的組織單元
  • 控制單元的製作方式分為兩種
    • 硬體線路控制(hardwired control)
    • 微程式控制(microprogrammed control)
      • ,目前大多數使用的是微程式控制技術。
slide12
CPU的組織單元
  • 算術邏輯單元( Arithmetic and Logic Unit;簡稱ALU)
    • 執行程式中各類運算的實體單位
    • 運算可以分為兩大類:
      • 算術運算:加、減、乘、除等等的數值運算,
      • 邏輯運算:AND、OR、NOT、Exclusive OR、Shift(位元平移)、Rotate(位元旋轉)等的邏輯運算。
        • 其中AND、OR、NOT是三種基本的邏輯運算子,這三種邏輯運算可以組合出所有的邏輯運算。
    • 不同種類的CPU提供的指令也不相同
      • 所有的CPU都會提供AND、OR、NOT等運算,但對運算元位元數的規定則不一定相同(與暫存器長度有關)
      • 大多數的CPU都會提供1、8、16、32、64位元的AND、OR、NOT運算。
slide13
CPU的組織單元
  • AND邏輯運算子
    • 只有在兩個運算元同時為真(true)時,結果才會為真。

真值表: A AND B

真值表: A B

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

slide14
CPU的組織單元
  • OR邏輯運算子
    • 只有在兩個運算元同時為假(false)時,結果才會為假。

真值表: A OR B

真值表: A + B

slide15
CPU的組織單元

【遮罩】:

遮罩(mask)代表透過某些運算,使得某些位元保留,而其他位元(稱之為遮罩位元)統一為某種特定遮罩格式,意即遮罩有過濾的意涵。AND與OR運算都可以當作遮罩運算

例如,我們希望將某個位元組11100100的左半邊4個位元都變為0(右半邊的位元保留),則可以透過11100100 AND 00001111來加以完成,其結果為00000100。

如果我們希望將某個位元組11100100的左半邊4個位元都變為1(右半邊的位元保留),則可以透過11100100 OR 11110000來完成,其結果為11110100。

  • NOT邏輯運算子
    • 只有一個運算元,並且會將運算元反相(inverse)做為輸出結果。

真值表:NOT A

真值表:~ A

slide16
CPU的組織單元

真值表: A XOR B

  • Exclusive OR(XOR)邏輯運算子
    • 大多數的CPU也都提供了XOR運算的指令
      • 設計XOR的邏輯電路非常簡單且不會耗費過多的資源
      • 並且XOR可以變化出許多樣的指令效果。
    • 只有在兩個來源運算元的值不同時,結果才會為真,因此稱之為Exclusive OR(互斥或)。

真值表: A ⊕ B

slide17
CPU的組織單元

邏輯表示符號:

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

  • Shift與Rotate運算
    • Shift(位元平移)與Rotate(位元旋轉)運算必須考慮暫存器長度,同時又分為向左及向右兩類Shift與Rotate。
    • Shift移出的位元將被丟棄,而由0補上空位。因此,向左位移n個位元,代表原本的值*2n
    • Rotate移出的位元則會進入另一端,構成循環式移動。
slide18
CPU的組織單元
  • 範例(向左shift 2位元):
  • 範例(向右rotate3位元):
slide19
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

slide20
CPU的種類
  • 隨著電腦系統及主機板的種類不同,所使用的CPU種類也不一樣
    • 個人電腦(IBM-PC)常採用Intel公司的Pentium系列、Celeron或AMD公司及VIA公司所開發的相容CPU。
    • 早期Mac電腦則必須採用PowerPC做為中央處理器
    • 下表為各類系統適用的CPU
slide22
CPU及主機板規格
  • 對於某一個特定的主機板而言,它只能插上某些規格的CPU與主記憶體。
  • CPU及主機板的規格
    • 主機板規格範例(GA-8KNXP):【圖片與規格取自技嘉網站】
    • 規格請見課本

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

slide23
CPU及主機板規格
  • CPU『工作頻率』
    • 指的是CPU內部執行運算的工作頻率,也稱為『內頻』
    • 例如Pentium 4 3.06G的3.06G就是『工作頻率』。
  • 主機板的FSB(Front Side Bus;前端匯流排)頻率
    • FSB其實就是『外頻』,它代表CPU之外的外部設備工作頻率。
    • 由於外部設備是透過匯流排連結到CPU,因此外頻也就是匯流排速率(Bus speed),單位一般以MHz來表示。
  • 外頻與內頻的倍數關係稱之為『倍頻』
    • 『CPU工作頻率 = 內頻 = 外頻 × 倍頻』
      • 倍頻通常以0.5的倍率成長,也就是1,1.5,2,2.5,….等等
    • 以往調整主機板外頻與倍頻是透過主機板上的開關(jumper),目前則改採在BIOS中直接設定。
  • 『封裝』
    • 將晶片給包裝起來,所有的晶片都需要經過封裝的程序建立接腳與外界溝通,並且保護其內部元件。
    • CPU的封裝方式有許多種,例如OPGA、mPGA、CPGA、FC-PGA、FC-PGA、OOI、PPGA、S.E.C.C、S.E.C.C.2、S.E.P. 封裝等等。
slide24
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。

CPU Pentium II,採用SECC封裝

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

slide25
CPU及主機板規格

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

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

slide26
CPU及主機板規格

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

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

slide27
CPU及主機板規格

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

slide28
CPU及主機板規格
  • 主機板規格書中會記載該主機板所使用的主記憶體類型
    • 前一世代為168 pin的SDRAM
    • 目前最流行的則是184 pin的DDR SDRAM或240 pin的DDR II SDRAM。(詳見3.2.1節)
main memory
主記憶體(Main Memory)
  • 主要記憶體簡稱主記憶體(又稱為內部記憶體),目前以半導體元件製成,特性為存取速度快、成本高。
    • 主記憶體依照存取特性又可以分為隨機存取記憶體(Random Access Memory;簡稱RAM)及唯讀記憶體(Read Only Memory;簡稱ROM)。

RAM與ROM比較表

main memory1
主記憶體(Main Memory)
  • RAM分為動態隨機存取記憶體(DRAM)與靜態隨機存取記憶體(SRAM)兩種。
    • DRAM也就是一般購買電腦時常聽到的RAM(一般未特別說明主記憶體時,通常指的就是DRAM)
    • SRAM速度較快,一般是用在需要快速記憶體的場合,例如快取記憶體(Cache) 。

SRAM與DRAM比較表

main memory2
主記憶體(Main Memory)

【註】:

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

slide32
動態隨機存取記憶體(DRAM)
  • DRAM的全名為Dynamic Random Access Memory,中文可譯為『動態隨機存取記憶體』,通常充當電腦系統的主記憶體元件(也就是一般俗稱的RAM)。
    • 所有準備要執行的程式都必須存放在主記憶體中,CPU才能夠執行程式。
    • DRAM無法在電腦的電源消失時保持資料
  • DRAM從過去到現在,隨著技術的進步,也出現了許多種類:
    • Conventional DRAM
      • 非常早期使用的DRAM
      • 整個記憶體被切割成陣列

記憶體的陣列配置方式

slide33
動態隨機存取記憶體(DRAM)
    • 在上圖中,記憶體的大小受到位址匯流排與資料匯流排的影響,由於位址匯流排經過解碼器解碼,因此記憶體大小的如下:
    • 16位元的位址匯流排與16位元的資料匯流排(字組為16位元),則記憶體大小為216×16bits,也就是128KBytes。
  • FPM DRAM (Fast Page Mode DRAM)
    • 486/Pentium時代常見的DRAM。
    • 內部以分頁(page)為單位,供CPU存取資料,具有快速切換分頁的效果。
    • 一般為30-Pin或72-Pin記憶體模組。
    • FPM之所以稱為Fast Page,是因為它以更快的速度存取位於同一列的資料(也就是同一分頁)。
    • 存取速度約為70ns~60ns(ns為10-9秒)。

記憶體大小 = 2位址匯流排寬度× 字組寬度 = 2位址匯流排寬度×資料匯流排寬度

slide34
動態隨機存取記憶體(DRAM)
  • EDO RAM (Extended Data Out RAM)
    • Pentium等級電腦必備的主記憶體元件。
    • EDO與FPM技術的差別在於
      • (1)EDO不採用分頁方式,而是將資料放在連續的記憶體位置內。
      • (2)EDO延長了資料輸出的時間,使得下一次讀取記憶體的動作可以在這一次資料傳送尚未完成時就開始
      • (3)記憶體控制器能夠在下達指令的過程中省略數個步驟,以便節省時間。
    • EDO技術只比FPM技術快了15%~20%左右
    • EDO RAM的市場需求較大,因此平均售價得以降低,而取代了FPM的市場。
    • 由於EDO RAM無法支援高速的系統時脈(超過66MHz),因此後來又被SDRAM取代。

EDO RAM

BEDO RAM 是Burst EDO RAM的簡稱,它將原有的EDO RAM改良,在EDO RAM中加入管線技術,使得記憶體的存取時間更快,Burst EDO RAM可以適用於更高速的系統時脈,在效能上,和後來出現的第一代SDRAM差不多,不過由於價格較高,被SDRAM擊敗。

slide35
動態隨機存取記憶體(DRAM)
  • SDRAM (Synchronous DRAM)
    • 在1996年底,出現了一種新的DRAM技術-『Synchronous DRAM;同步動態存取記憶體;簡稱SDRAM』。
    • 為了因應更高時脈的高效能CPU,SDRAM最採用『同步』特性(早期的DRAM為非同步),『同步』代表記憶體的時脈與電腦時脈相同,使得記憶體控制器能夠掌握準確的時鐘週期,如此一來,CPU就不需要延後下一次的資料存取。
    • 透過Interleaving與Bursting技術,加快記憶的讀取速度,並且SDRAM擁有多種不同的速度,以便和系統時鐘同步。
      • 市面上曾經出現的SDRAM有PC66/100/133/150等等,恰好搭配主機板的66/100/133/150等外頻,而外頻又可以透過倍頻方式獲得CPU所需的內部頻率,因此,整個系統的效能得以完全發揮。
    • 資料傳輸寬度為64位元,一般採用DIMM記憶體模組,且分為buffered與unbuffered兩種,工作電壓有3.3及5伏特等規格。但市面上常見的SDRAM則通常採用unbuffered及3.3伏特電壓的規格,封裝則採用TSOP。
slide36
動態隨機存取記憶體(DRAM)
    • 值得注意的是,SDRAM和SRAM完全不同,SDRAM仍舊屬於DRAM的架構,因此必須充電,充電則將產生時間延遲的問題。
  • 【記憶體模組設計】
    • 常見的記憶體模組可分為SIMM、DIMM、RIMM三大類。

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

SDRAM

slide37
動態隨機存取記憶體(DRAM)
  • DRDRAM (Direct Rambus DRAM)
    • DRDRAM是Intel與RAMBus公司合作開發的一種記憶體規格,使用的記憶體模組為RIMM,封裝方式使用的是μBGA。與主機板的接觸點為184 pin,工作頻率可達800MHz。
    • Direct Rambus與傳統DRAM的結構及介面皆不相同。早期記憶體的資料傳輸寬度大多為64位元,而Direct Rambus卻只有16位元(最新技術為32位元)。
      • Direct Rambus去除了傳統SDRAM所存在的時間延遲問題,因此使得整體速度更為驚人。
      • 它以800MHz的速度透過狹窄的16位元匯流排來傳輸資料(此匯流排稱為Direct Rambus Channel),並在時鐘週期波峰及波谷都可執行作業(稱為double clocked),使得每個RDRAM模組上的記憶體能夠提供每秒1.6GB的高速頻寬。
slide38
動態隨機存取記憶體(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 與主機板

slide39
動態隨機存取記憶體(DRAM)
  • 雖然DRDRAM的速度非常快,但仍可能被淘汰,原因大致有下列幾點:
    • (1)工作時脈過高,因此通常必須搭配散熱片。
    • (2)DRDRAM的技術門檻較高,因此在記憶體顆粒的良率上,表現並不理想。
    • (3)DRDRAM採用不同的製程,因此必須使用新的設備製作。
    • (4)最重要的一點,DRDRAM並非開放的標準,每一家製造DRDRAM的廠商都必須支付RAMBus公司2%權利金。
  • 由於DRDRAM價格較為昂貴,因此,在PC中使用DRDRAM相對來說屬於少數,但DRDRAM確常見於某些電視遊樂器的設計中,主要的原因仍然在於其速度上的優勢。
slide40
動態隨機存取記憶體(DRAM)
  • DDR SDRAM (Double Data Rate SDRAM)
    • DDR SDRAM(又稱DDR RAM)是目前最新的SDRAM。
    • 與主機板接觸點是184 pin(DDRII為240pin),能夠在時鐘周期的波峰及波谷傳送資料。
    • DDR是開放標準,並且延續SDRAM的設計,採用TSOP封裝,因此相對於DRDRAM,DDR SDRAM更容易獲得製造商的喜愛。
    • DDR SDRAM是目前個人電腦主記憶體的主流,其規格發展非常快,計有DDR、DDRII、DDRIII三種規格
      • 其中,DDR、DDRII都已有產品問世,而DDRIII暫時僅限於高速繪圖卡使用
    • DDR之所以稱為Double Data Rate,是因為它可以達到雙倍資料傳輸速率的緣故
      • 舉例來說,DDR-266與PC133都是在同樣的133MHz頻率下工作,但DDR-266的傳輸速率是266MHz,為PC133的兩倍,這是因為它在一個時鐘週期中,可以傳送兩次資料(分別在波峰及波谷)。
slide41
動態隨機存取記憶體(DRAM)

184 Pin的DDR RAM 與主機板

slide43
動態隨機存取記憶體(DRAM)
  • Dual-Channel Memory(雙通道記憶體)
    • 在主機板上插入DRAM時,是否有特殊規定呢?
      • 486PC時代使用32bit記憶體匯流排,如果使用8bit 的30Pin DRAM,一次須插上4隻。
      • Pentium PC時代使用64bit記憶體匯流排,如果使用32bit的72PinDRAM,一次須插上2隻。
      • 這種限制直到168Pin SDRAM的產生之後,就解除了。使用SDRAM或DDR SDRAM,只需要插上一隻就可以運作。
    • 之前為何必須要同時使用多隻記憶體才能夠讓電腦正常運作?
      • 因為資料在記憶體與CPU之間的傳送頻寬必須達到一定目標,因此預先以多通道方式建立在主機板上,須同時插上多隻記憶體,才能填滿每個通道的資料傳送目標。
    • 到了SDRAM及DDR SDRAM之後,只需要插入一隻記憶體,電腦就可以正常運作
      • 由於CPU效能提升迅速,光靠記憶體技術本身來提升傳輸頻寬是來不及跟上的,因此,廠商們透過同時使用多隻記憶體以提升頻寬,這個方法就是雙通道記憶體(Dual-Channel Memory)技術。
slide44
動態隨機存取記憶體(DRAM)
  • 在雙通道記憶體推出時,當時最快速也最普及的前端匯流排為FSB 800,傳輸速率理論可達6.4GB/s,但當時DDR 800 SDRAM價格非常昂貴,因此大多數人使用的是DDR 400或DDR 533 SDRAM。
    • 如果使用支援雙通道技術的主機板,可以採用插上兩隻DDR 400 SDRAM的方式,將頻寬達到6.4GB/s的水準,加快了記憶體與CPU的資料傳送效率。
    • 必須主機板上的北橋晶片組也支援的狀況下才能成行。
    • 支援雙通道技術的主機板上仍舊可以只插入單一隻DDR SDRAM,不過速度也就侷限在該DDR SDRAM的速度。
  • 雙通道技術的主導權在於主機板設計廠商
    • 目前DRDRAM與DDRII SDRAM都可以使用雙通道技術
    • 前提是主機板必須提供此功能。
slide45
靜態隨機存取記憶體(SRAM)
  • SRAM(Static Random Access Memory),中文稱為靜態隨機存取記憶體。名稱中的『靜態』是它與動態隨機存取記憶體(Dynamic RAM)最大的不同。
    • DRAM儲存每一個位元都必須使用1個電晶體和1個電容,電容是維持電壓的來源,由於電容會慢慢放電,因此必須充電。
      • 由於DRAM實際上運作時,一直在重複著充電、放電的過程,故稱之為『動態』隨機存取記憶體。
    • SRAM使用4~6個電晶體來儲存1個位元,不需要反覆充電(所以速度較快),因此稱之為『靜態』隨機存取記憶體。
      • 由於SRAM使用的電晶體較多,因此價格較貴,通常只應用於需要高速小量記憶體的場合。
      • Pentium主機板上面的外部快取記憶體(L2 Cache)、Pentium II/III的L2 Cache on die通常採用SRAM。
      • 快取記憶體的觀念也被應用於硬碟中,所以有些附有快取記憶體的硬碟也使用SRAM做為磁碟快取(disk cache)。
slide46
靜態隨機存取記憶體(SRAM)

Maxtox硬碟上面使用Samsung出廠的SRAM(disk cache)

Pentium III 450的SRAM(L2 Cache on die)

slide47
唯讀記憶體(ROM)
  • ROM (Read Only Memory;唯讀記憶體)和前兩小節介紹的RAM有著完全不同的特性
  • ROM (Read Only Memory;唯讀記憶體)
    • 可以在無電力的狀況下保存資料。
    • 傳統的ROM只能寫入資料一次,爾後就只能夠讀取資料而無法寫入資料。後來的可程式化ROM可以更新其內的資料,例如:EPROM、EEPROM
      • 清除此類ROM裡面原有資料的方式有所不同,例如使用紫外線清除資料以及較高電壓清除資料。
  • BIOS與CMOS
    • BIOS(Basic Input/Output System;基本輸入輸出系統)是一套程式,儲存在主機板上的ROM裡面,這套程式包含了電腦系統最重要的基本輸入輸出程序、系統開機時的檢查程序等等。當透過它來開機時,它會對系統各項硬體進行測試和初始化,以保證系統能夠正常運作。
    • 透過BIOS的設定程式,可以對於CMOS儲存的參數進行讀取與修改。
slide48
唯讀記憶體(ROM)
  • 快閃記憶體(Flash Memory或Flash ROM)
    • 一種固態,不易揮發,而且可以重複寫入的記憶體。
    • 由於目前的電腦都支援隨插即用的特性,BIOS的更新頻率也大為增加,因此目前的BIOS通常是存放在快閃記憶體以加快更新資料的速度。
    • 關於快閃記憶體,我們將在第四章作更深入的說明。

【韌體】

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

BIOS設定畫面

slide49
電腦的速度表示方法
  • CPU的工作頻率常常被拿來當做簡述一部電腦速度的指標,例如Pentium 4 3.06GHz
  • 時脈(timer或clock speed)
    • 是類似一種時鐘的裝置,單位通常以『頻率』來表示,它可以表示晶片的執行效率,一般為MHz或GHz(Hz是Second的倒數)。
    • 主機板上的時脈產生器(clock generator)是用來產生時脈,供給CPU、晶片組,做為運作速度的參考。
  • 除了使用CPU的工作頻率來描述一台電腦的速度之外,也可以使用MIPS、MFLOPS、TPS等來描述一台電腦的速度(或稱之為電腦的產能則更恰當)
    • MIPS(Million Instructions Per Second)代表一秒鐘可以完成多少百萬個指令
    • MFLOPS(Million Floating Operations Per Second)代表一秒鐘可以完成多少百萬個浮點運算
    • TPS(Transactions Per Second)代表一秒鐘可以完成多少個交易。
slide50
電腦的速度表示方法

【時脈的迷思】

現今的CPU效能比較已經不能單單以時脈做為單一指標,同時脈的Intel Pentium 4效能明顯不及同時脈的AMD Athlon XP。例如:一顆Pentium 4 2GHz與實際時脈1.6 GHz的Athlon XP 2000+ 一樣快(這與實際執行的軟體種類有關)。

例如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效能常見的計算單位。

bus chipset
匯流排(Bus) 與晶片組(Chipset)
  • 匯流排(Bus)連接電腦各個子系統,它的功能是用來傳送指令、資料或控制訊號。
  • 匯流排分為內部匯流排與外部匯流排兩類。
    • 內部匯流排的功能是CPU內部元件(例如算術邏輯單元、控制單元、暫存器等等)的連結。
    • 外部匯流排的功能則是連結CPU與主記憶體、I/O元件。
      • 外部匯流排分為CPU-Memory匯流排(亦稱為Memory Bus或系統匯流排)與I/O匯流排(I/O Bus)兩種。前者傳輸速率較快,後者則遷就於I/O裝置,因此傳輸速率較慢。

匯流排的分類

bus chipset1
匯流排(Bus) 與晶片組(Chipset)
  • 所謂的匯流排(Bus)結構是一種資料傳輸線路,它透過不同的介面卡插槽或接點,讓多個設備共用相同的傳輸管道
    • 在匯流排的每一個端點都可以在某個時間內佔據匯流排以便傳輸資料
    • 當有其他裝置正在使用匯流排時,其他匯流排就必須等待。
    • 下圖是I/O匯流排常見的示意圖。
slide53
系統匯流排
  • 系統匯流排的用途是傳送主記憶體的資料,因此又稱為記憶體匯流排,而系統匯流排的傳輸速率也就是前面提及的FSB(Front Side Bus)速率。
    • 事實上,CPU在存取主記憶體資料時,必須透過位址線與資料線來完成,首先CPU將要存取的記憶體位置透過位址線傳送出去並鎖定位址後,再透過資料線讀取或寫入資料,最後再將位址線的鎖定解除(請參考圖3-18)。
    • 位址線與資料線都不是單一條線,而是由多條線路組合而成,因此也分別稱之為位址匯流排與資料匯流排
      • 而一般所謂的系統匯流排(記憶體匯流排)指的就是傳送記憶體資料的資料匯流排。

【字組大小與系統匯流排的關係】

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

slide54
I/O匯流排
  • 與外部介面卡連結的I/O匯流排常見的標準有下列幾種:
    • ISA(Industry Standard Architecture;工業標準架構)與EISA(Extended ISA;延伸工業標準架構):
      • ISA最大資料寬度為16位元,由於首度使用在AT(286)系統,ISA匯流排亦稱之為AT匯流排(AT Bus)。
      • 通常ISA插槽顏色為黑色,時脈為8MHz,可以插上許多的介面卡,例如網路卡、音效卡等
        • ISA只適合用於低速的介面卡,目前ISA匯流排已經很少使用並且逐漸被PCI匯流排所取代。
      • 在1993年,Intel與Microsoft曾合作提出支援隨插即用的EISA,最大資料寬度可達32位元,通常插槽為咖啡色,但時脈仍為8MHz。
        • EISA在硬碟的資料傳輸上,表現較為突出,但在顯示卡等其他方面的資料傳輸上,則並無明顯的改善,因此已經不再使用(目前看到的咖啡色插槽多為AGP而非EISA)。
slide55
I/O匯流排
  • PCI(Peripheral Component Interconnect):
    • PCI是Intel發展的高速匯流排規格,目前市面上的主機板都配有此種匯流排插槽,一般為白色插槽
    • PCI本身是32位元的匯流排,不過也支援64位元CPU所需要的64位元資料傳輸。
    • PCI可使用33或66MHz時脈,在64位元傳輸時,採用66MHz時脈,傳輸速率可以達到533MBps,如下表所列,充分顯示了PCI的高效能傳輸速度。

PCI的效能表

slide56
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。

slide57
I/O匯流排
  • AGP(Accelerated Graphics Port):
    • 功能特定,是Intel為了提高顯示卡的3D繪圖功能所發展的匯流排標準
    • AGP是以PCI標準為基礎所建立的高效能界面,其效率為PCI的四倍。
    • AGP又分為1x、2x、4x、8x等時脈週期,而8x可提供的頻寬高達2.1GB/s。
    • AGP提供了獨立插槽
      • 由於AGP是針對3D繪圖功能所設計,因此3D繪圖卡可以不必和音效卡、SCSI卡、網路卡等共享PCI的頻寬與插槽。
    • 最近由於PCI-E匯流排的高速特性,3D高速繪圖卡也漸漸改採PCI-E匯流排,新主機板有些已不提供AGP插槽。

同時支援3種匯流排的Petium II主機板

slide58
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)的概念,以解決多個裝置訊號衝突的問題。
slide59
I/O匯流排

PCI-Express的效能表

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

slide60
I/O匯流排

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

chipset
晶片組(Chipset)
  • 晶片組(Chipset)是提供各項功能的一組晶片,在主機板上用來管理資料流,例如:管理DMA、處理中斷、管理輸出入匯流排間的資料傳輸等等。
    • 目前市面上的主機板晶片組具有整合功能,並以單純的兩片晶片為主,也就是北橋晶片與南橋晶片。
      • 北橋晶片通常負責CPU-記憶體及CPU-AGP或CPU-PCI Express 16x之間的訊號處理,因此速度較快。
      • 南橋晶片一般處理與I/O有關的動作。
    • 目前也有一些廠商將南北橋晶片做在一起,成為單一整合型晶片。
chipset1
晶片組(Chipset)

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

各式各樣的晶片組

chipset2
晶片組(Chipset)

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

chipset3
晶片組(Chipset)

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

chipset4
晶片組(Chipset)

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

chipset5
晶片組(Chipset)

含PCI-Expess匯流排的

晶片組與匯流排連結圖

slide67
程式的執行流程
  • 電腦的運作其實就是程式的執行,程式由是由許多指令(instruction)組成,這些指令將被循序地執行。
    • CPU執行一個指令的過程稱之為機器週期(machine cycle)。
  • 通常指令的執行被分為許多階段,以DLX機器而言,一個指令將被分為5個步驟
    • 指令擷取(IF)
    • 指令解碼(ID)
    • 指令執行(EX)
    • 記憶體存取(MEM)
    • 結果回存(WB)
      • 其中指令擷取與指令解碼所花費的時間合稱為指令時間(I-Time;Instruction-Time)。
      • 指令執行、記憶體存取、結果回存所花費的時間合稱為執行時間(E-Time;Execution-Time)。
      • 機器循環週期=I-Time+E-Time。
slide68
程式的執行流程

DLX的機器循環週期

【註】:

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

slide69
電腦結構的最新設計
  • 上述的電腦核心結構是早期的設計基礎,這些基礎仍然沿用至今,但也為了提昇效率而發展了一些新的設計架構,包含『階層式記憶體』、『管線』、『超純量』、『RISC與CISC』等等。
  • 3.6.1 階層式記憶體(Hierarchical Memory)
    • 記憶體的速度越快,成本就越高,而容量也就越小。
    • 『階層式記憶體』是一種有效配置各種記憶體的方法。
      • 距離CPU越近的記憶體速度越快,容量越小。
    • 若將CPU的暫存器也當做一個階層的記憶體,則四層的記憶體分別是『CPU(暫存器) 』、『快取記憶體』、『主記憶體』、『硬碟』。
hierarchical memory1
階層式記憶體(Hierarchical Memory)
  • 前半部的『CPU-快取記憶體-主記憶體』階層式記憶體之所以能夠有效的提昇電腦的效能,是因為大多數的程式執行時都具有區域性(locality)原則。而區域性又分為時間區域性與空間區域性兩種。
    • 時間區域性:剛剛被存取過的東西,在不久的將來很可能將再被存取。例如:程式中的迴圈。
    • 空間區域性:位址相近的東西,往往會在短時間內先後被存取。例如:程式中使用陣列資料結構。
  • 簡單的說,由於區域性原則,我們可以預測「某些東西」可能會在短時間內被存取,因此,將「這些東西」放在最快速的記憶體內,將有助於提昇整體效率。
    • 由於快取記憶體(cache)是由SRAM製作而成,而主記憶體是用DRAM技術製作而成,所以快取記憶體比主記憶體速度更快。因此,我們將會把「這些東西」從主記憶體搬移到快取記憶體中。
hierarchical memory2
階層式記憶體(Hierarchical Memory)
  • 後半部的『CPU/快取記憶體-主記憶體-硬碟』階層式記憶體是為了提高工作量而設計
    • 目前大多數的作業系統都屬於多工式的作業系統,也就是必須同時處理多項工作,但當工作太多時,主記憶體的容量將可能不夠用,此時就會透過虛擬記憶體(Virtual Memory)技術將硬碟中的某個空間當作是虛擬的記憶體,把暫時未執行到的工作放到虛擬記憶體(即硬碟),等到要執行該工作時,再將程式或資料載入到主記憶體中,這個切換的動作稱之為置換(swap)。
    • 例如:有時候您會發現當您開啟多項工作時,例如聽MP3,上網,打Word作業,繪圖、、、等,突然有段短暫時間,電腦似乎停頓下來,且硬碟不斷地被存取,此時可能就是電腦正在做置換的工作。
  • 快取記憶體的置換方法是由硬體來控制,而虛擬記憶體的置換方法則是由軟體(作業系統)來加以控制。
    • 快取記憶體的觀念已經被應用在許多資訊場合
    • 瀏覽網路的Proxy
    • 高速硬碟的磁碟快取(disk cache)。
pipelining
管線(pipelining)
  • 管線(pipeline)技術是透過增加工作量(throughput)提昇電腦整體效率的一種方法。
    • 由於指令執行的各個階段所使用的元件不同,因此在前面的指令尚未完成時(但已完成某些階段的工作),就將後面的指令開始執行,如此一來,只要各個階段不衝突,就可以增加指定時間內所完成的指令總量。
    • 一個最完美(各階段指令毫不衝突)的管線增速恰為管線的級數。
    • DLX機器使用管線技術執行10個指令的圖示如下

管線式DLX執行指令順序

pipelining1
管線(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,因此,要使用管線來增加效能,必須配合指令分解動作的特性。

步驟所需時間不等

pipelining2
管線(pipelining)
  • 管線危障
    • 使用管線可能會遇到一種狀況,使得下一個指令無法在預定的時脈週期中被執行,此種情況稱之為危障(hazard)。
      • 例如管線中的某一個指令恰好必須使用尚未完成指令的結果做為來源時,則會發生危障。
      • 管線危障分為很多種類,而危障最簡單的解決方式就是暫停管線一個週期,但這將有損管線的整體效能,除此之外,專家們還發明了許多解決各種危障的方法,讀者若有興趣,可以參閱計算機結構專書。
superscalar processor
超純量處理器(Superscalar Processor)
  • 如果在處理器中增加每個元件的數量,則每個元件增多一倍時,就可以一次發出2個指令,依此類推,增加元件數量能夠提升電腦的效率,而這就是所謂的超純量處理器。

超純量處理器的執行時間

superscalar processor1
超純量處理器(Superscalar Processor)
  • 通常超純量處理器會搭配管線技術一起實作,以提高更多的電腦效能。
  • 就和管線危障一樣,超純量處理器同樣會遇到同類的問題,如果和管線一起實作,則問題就更明顯了,同樣地,這必須透過其他較深入的演算法來加以解決,由於牽扯技術甚多,在此就不再多談。

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

parallel processing
平行處理(Parallel Processing)
  • 平行處理是一種提昇電腦效能的方法,平行處理電腦系統內的CPU不只一個,每一個CPU都可以獨立執行工作,而記憶體的部分則可以分為兩部分
    • 一部份是配置給每一個CPU私用的記憶體,稱之為本地端記憶體
    • 另一部份則是供給所有CPU使用的公用記憶體,稱之為分享記憶體。
  • 平行處理系統運作時,會將程式分割為許多片段(稱之為行程),分別交由不同的CPU來執行,最後再將這些片段的執行結果統合在一起,完成整個工作。
    • 最顯著的平行處理系統就是超級電腦,其特性為運用大量的硬體資源,解決需要大量計算的工作。
parallel processing1
平行處理(Parallel Processing)
  • 同樣的道理,程式中某些資料變數可能有先後關係,因此也需要一套完整的方法來加以控制,保證最後的結果是正確的,這部分的工作通常交由作業系統來負責。而一個程式即使被分配到各個CPU去分頭執行部分片段,有時候並不會縮短它的完成時間(因為必須等待其他行程處理完畢),這通常是由於程式特性所導致,而這部分的工作則必須由程式設計師或平行編譯器來加以控制。

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

risc cisc
RISC與CISC
  • 每一種CPU的指令集都不盡相同,而指令集的設計也會影響電腦的執行效率。目前指令集的設計可以分為兩大類:RISC(Reduced Instruction Set Computing;精簡指令集)與CISC(Complex Instruction Set Computing;複雜指令集)。
    • RISC的指令較為『單純精簡』,因此可以在一個時脈週期內就完成
      • 電腦的硬體設計變成非常單純,可以使用硬體線路控制(hardwired control)來製作。
      • 比較容易配合管線或超純量技術提昇整體效率。
      • RISC的機器有PowerPC(Mac電腦的CPU)、Sun SPARC(工作站等級)、IBM RS/6000、DLX等等。
risc cisc1
RISC與CISC
    • CISC的指令種類及功能非常多樣且豐富,一個指令就可以完成許多工作
      • 由於提供的指令非常多,因此通常採用微程式控制(microprogrammed control)來製作
      • 由於指令複雜,所以使用管線與超純量技術製作容易發生危障問題,反而不容易提昇整體效率。
      • CISC的機器有Intel x86、Motorola 680x0等等。
  • 一般來說,同樣功能的程式,若使用RISC指令來撰寫,通常程式碼會較長,而使用CISC指令來撰寫,程式碼將會精簡許多,但這並不代表CISC機器就會執行的比較快
    • 因為,一方面RISC的每個指令所需要的執行時間比較短,另一方面則是因為RISC管線化的危障比較少的緣故。
  • 究竟RISC與CISC,孰優孰劣?
    • 至今尚無明確解答,因此兩種指令集設計都被產品化,但依據實際測試結果,RISC在伺服器級的電腦表現較優。
    • 工作站以上的電腦通常採用RISC指令集設計,例如Sun SPARC
    • CISC則通常被使用做為個人電腦的CPU指令集,例如Intel x86。
risc cisc2
RISC與CISC

RISC與CISC特性比較