Download presentation
Presentation is loading. Please wait.
1
第一章 導論
2
能夠解釋von Neumann架構和電腦組件的基本功能
第一章 課程目的 了解計算機組織與計算機結構的不同 了解一般測量電腦系統的單位 體會電腦是如何的演進 如何將電腦視為階層式的系統 能夠解釋von Neumann架構和電腦組件的基本功能
3
1.1 概觀 為什麼要學習計算機組織和結構呢? 設計更好的程式,包含系統軟體-像是編譯器、作業系統和裝置驅動程式 對程式的行為最佳化
衡量電腦系統的好壞 了解時間、空間,和價格之間的取捨
4
1.1 概觀 計算機組織 計算機架構 包含所有電腦系統的實體設備 即,電路設計、控制信號, 記憶體型態. 電腦如何運作?
程式設計師所看到邏輯層面的系統設計 即,指令集、指令格式, 資料型態, 定址模式 我如何設計電腦?
5
計算機組織和計算機結構並沒有一個名確的定義可供分辨它們 軟硬體等效原理
1.2 電腦的組件 計算機組織和計算機結構並沒有一個名確的定義可供分辨它們 軟硬體等效原理 任何體軟體能做的事硬體一定能做,任何硬體能做的事軟體也一定能做* * 不考慮速度的情況下
6
1.2 電腦的組件 基本來說,電腦是由三個部份所組成: 用來翻譯並執行程式的處理器 儲存資料和程式的記憶體 和外界傳送資料的機制.
7
1.3 系統範例 看看下面的廣告: MHz?? L1 Cache?? MB?? PCI?? USB?? 這些代表的意義是什麼??
8
1.3 系統範例 容量和速度的度量單位: Kilo- (K) = 1 thousand = 103 and 210
Mega- (M) = 1 million = 106 and 220 Giga- (G) = 1 billion = 109 and 230 Tera- (T) = 1 trillion = 1012 and 240 Peta- (P) = 1 quadrillion = 1015 and 250 單位是以十為底或是二為底是取決為所量測的東西為何
9
1.3 系統範例 Hertz = 每秒幾個週期 (頻率) Byte = 儲存的單位 1MHz = 1,000,000Hz
處理器的速度就是以MHz or GHz來計算 Byte = 儲存的單位 1KB = 210 = 1024 Bytes 1MB = 220 = 1,048,576 Bytes 主記憶體 (RAM) 是以 MB來計算 硬碟則是以GB 或 TB 來計算.
10
1.3 系統範例 時間和空間的度量: Milli- (m) = 1 thousandth = 10 -3
Micro- () = 1 millionth = 10 -6 Nano- (n) = 1 billionth = 10 -9 Pico- (p) = 1 trillionth = Femto- (f) = 1 quadrillionth =
11
1.3系統範例 Millisecond = 千分之一秒 Nanosecond = 十億分之一秒
硬碟的存取時間通常為 10 to 20 milliseconds. Nanosecond = 十億分之一秒 主記憶體的存取時間通常為 50 to 70 nanoseconds. Micron (micrometer) = 千分之一米 電路和計算機晶片的大小以microns計算.
12
1.3系統範例 133,000,000 cycles/second = 7.52ns/cycle 我們發現週期時間是時脈頻率的倒數
一個操作頻率為133MHz的匯流排,其週期為7.52 奈秒: 133,000,000 cycles/second = 7.52ns/cycle 現在回過頭來看前面的廣告 ...
13
1.3系統範例 微處理器是系統的 “大腦” 。它用來執行程式的指令。 這部電腦的處理器是 Pentium III (Intel) ,速度為667MHz. 電腦內靠系統匯流排來傳輸資料。匯流排越快越好。這邊的速度是133MHz
14
1.3系統範例 擁有較大主記憶體容量的電腦可以以較快的速度來執行較大的程式。
RAM 是 random access memory 的縮寫。 隨機存取的意思是,如果我們知道所要的資料在什麼位址時,我們就可以直接的去存取它 Cache 是一種暫時性的記憶體,其存取速度比 RAM還快
15
1.3系統範例 這個系統有 64MB的 (快速) 同步動態 RAM (SDRAM) . . .
… 並且有二層的cache記憶體, 第一層 (L1) cache 比較小且 (應該) 比 L2 cache快。請注意這些cache的大小是以KB來計算的。
16
1.3系統範例 硬碟的容量決定了你能儲存多大的程式.
這邊的容量是 30GB RPM 是硬碟的轉速。 一般來說, 轉速越快,傳送資料到 RAM的速度就越快 。 (還牽涉了許多其它的因素。)
17
1.3系統範例 EIDE 為 enhanced integrated drive electronics, 它代表硬碟和其系統元件是如何連接的。 CD-ROM 能儲存 650MB 的資料, 它很適合用來發授商用套裝軟體。 48x 是它的速度。
18
1.3系統範例 Ports 讓資料在系統和外部裝置間運作。 這個系統有四個ports
19
1.3系統範例 串列ports 將資料放在一或二條導線上以脈波方式傳送。 平行 ports將資料放在至少八條導線上以脈波方式傳送。
USB, universal serial bus, 是一種智慧型的串列介面,擁有self-configuring的特性。 (支援 “plug and play.”)
20
1.3系統範例 系統匯流排能夠藉專屬I/O匯流排來擴充。PCI, peripheral component interface, 就是這種匯流排. 此系統有二個PCI裝置: 一個是音效卡,一個是用來上Internet的modem。
21
1.3系統範例 refresh rate 是影像在螢幕上每秒能夠重畫幾次。 dot pitch則告訴我們影像會有多清晰。
這個螢幕的 dot pitch 為 0.28mm refresh rate 為85Hz. 圖型顯示卡含有支援螢幕的記憶體和程式 。
22
在接下來的內容中,你會看到這些組件如何運作, 並且如何和軟體溝通來讓電腦系統運行。
1.3系統範例 在接下來的內容中,你會看到這些組件如何運作, 並且如何和軟體溝通來讓電腦系統運行。 有二個重要的問題產生了: 我們是怎樣確保電腦組件會照我們預期的來運作呢? 而且我們是怎樣確保電腦組件之間能夠一起運作無誤呢?
23
有很多的組織在訂定電腦硬體的標準– 包含電腦組件間軟硬體的溝通
1.4 標準組織 有很多的組織在訂定電腦硬體的標準– 包含電腦組件間軟硬體的溝通 在本書中,或你往後的生涯裡,你會不斷的碰到這些東西 一些最重要的標準制定組織有 . . .
24
1.4 標準組織 國際電機電子工程學會 (IEEE) 一個促進共同利益的世界性電機工程社群
建立電腦組件、資料表示、信號協定和其它林林種種的標準
25
1.4 標準組織 國際電信協會 (ITU) 關注在電信系統的溝通,包含資料通信和電話通訊方式 各國的標準制定團體:
The American National Standards Institute (ANSI) The British Standards Institution (BSI)
26
1.4 標準組織 國際標準組織 (ISO) 建立世界上各種事物的標準,小從螺絲丁的螺紋到軟片
對電腦軟硬體的標準制訂有其影響性,包括他們的製造方法 注意: ISO 不並是縮寫。ISO 是從希臘字母而來 isos,表示 “相等.”
27
1.5 歷史發展 To fully appreciate the computers of today, it is helpful to understand how things got the way they are. The evolution of computing machinery has taken place over several centuries. In modern times computer evolution is usually classified into four generations according to the salient technology of the era. We note that many of the following dates are approximate.
28
1.5 歷史發展 第0代:機械式計算機器 ( ) 計祘式計時器 - Wilhelm Schickard ( ). Pascaline - Blaise Pascal ( ). Difference Engine - Charles Babbage ( ) ,有設計出但未被製造的 Analytical Engine. 打孔卡式的機器 - Herman Hollerith ( ). 在1970年代,用Hollerith卡片來輸入的情況非常普遍
29
1.5 歷史發展 第一代: 真空管電腦 ( ) Atanasoff Berry Computer ( ) 解線性方程式. John Atanasoff and Clifford Berry of Iowa State University.
30
1.5 歷史發展 第一代: 真空管電腦( ) Electronic Numerical Integrator and Computer (ENIAC) John Mauchly and J. Presper Eckert University of Pennsylvania, 1946 第一部通用型電腦
31
1.5 歷史發展 第一代: 真空管電腦( ) IBM 650 (1955) 在 1969停產. 第一部量產的電腦
32
1.5 歷史發展 第二代: 電晶體電腦 (1954 - 1965) IBM 7094 (科學用途) and 1401 (商用)
Digital Equipment Corporation (DEC) PDP-1 Univac 1100 . . . 還有很多其它的. DEC PDP-1
33
1.5 歷史發展 第三代: 積體電路電腦 (1965 - 1980) IBM 360 DEC PDP-8 and PDP-11
Cray-1 超級電腦 . . .還有很多其它的 IBM 360 Cray-1
34
1.5 歷史發展 第四代: 超大型積體電路電腦 (1980 - ????)
超大型積體電路 (VLSI) 在一個晶片上含有超過10,000 的元件 讓微處理器得以實現. 第一個就是 4-bit的 Intel 4004. Intel 4004 後來,像是 8080, 8086, and 8088 蘊育了 “個人計算”的概念
35
1.5 歷史發展 Moore’s Law (1965) Gordon Moore, Intel 的創辦人
“積體電路中電晶體的密度,每兩年就會倍增” 現在的版本: “矽晶片的密度每18個月就會倍增” 但是這個 “定律” 不會永遠都成立的...
36
1.5 歷史發展 Rock’s Law Arthur Rock, Intel 創辦人 “生產半導體的成本每四年就會倍增”
在1968, 一個晶片廠約要 $12,000美元. 當時, $12,000 可以在市郊買一棟不錯的房子了 一個一年能賺 $12,000美元的人可以過 “很好的生活”
37
1.5 歷史發展 Rock’s Law 在2003,蓋一座晶片廠要花費超過 $2.5 billion.
如國 Moore’s Law要成立,那Rock’s Law 就必需不成立,或是相反。 但是沒人能說出那一種情況會先出現。 $2.5 billion 比一些小國的國民生產毛額還要高了, 像貝里斯, 不丹, 獅子山共和國等
38
1.6 電腦階層 除了晶片之外,電腦是由許多其它的東西所組成的 在電腦能做些有價值的事情之前,它必須使用軟體才行
我們必須用 “分擊法” 來寫複雜的程式, 就是每個程式模組解決一小部份的問題 複雜的電腦系統也在虛擬的機器層級中使用類似的技巧
39
1.6 電腦階層 每個虛擬機器層級都是下一層的抽像化層級 每一層機器都執行它們特殊的指令,去呼叫下一層的機器來執行所需的工作
最後電腦的電路會完成所要的工作
40
1.6 電腦階層 Level 6: 使用者階層 (The User Level) 程式執行及使用者介面階層 這是我們最熟悉的
Level 5: 高階語言階層(High-Level Language Level) 我們寫一些語言,如C, Pascal, Lisp, 和 Java 時,所會接觸到的階層
41
1.6 電腦階層 Level 4: 組合語言階層(Assembly Language Level)
Level 3: 系統軟體階層(System Software Level) 控制系統中行程的執行 保護系統的資源 組合語言指令通常直接的經過這一層
42
1.6 電腦階層 Level 2: 機器階層(Machine Level) 也稱為指令集架構 (ISA)階層 由特殊機器架構的指令所組成
以機器語言所寫的程式不需要用到編譯器、直譯器,或是組譯器
43
1.6 電腦階層 Level 1: 控制階層(Control Level) 控制單元對指令解碼並執行, 並且在系統中搬運資料
控制單元可以是微程式化或是硬體接線式的 微程式是一種以低階語言寫成的程式,經由硬體來實現 硬體接線式控制單元是由直接執行硬體指令的硬體所組成
44
1.6 電腦階層 Level 0: 數位邏輯階層(Digital Logic Level) 這一層是數位電路所存在的階層 (晶片)
數位電路是由閘和線所組成 這些元件實現了其它層的數學邏輯式
45
1.7 von Neumann 模型 在 ENIAC的機器上, 寫程式必須在數位階層完成 在電腦上寫程式就是要插拔一些線
46
1.7 von Neumann 模型 ENIAC的發明者,John Mauchley 和 J. Presper Eckert,想像電腦可以儲存指令在記憶體內 這個觀念肇始於一個數學家,John von Neumann,他和Mauchley 及 Eckert是同一個時代的人 內儲程式電腦就是 von Neumann 架構系統
47
1.7 von Neumann 模型 今日的內儲程式電腦有下列特性: 三個硬體單元: 能處理一連串指令的能力
中央處理器 (CPU) 主記憶體系統 I/O系統 能處理一連串指令的能力 在CPU和主記憶比間有單一的路徑 這個單一的路徑就稱為von Neumann瓶頸.
48
1.7 von Neumann 模型 右邊是一個 von Neumann system的示意圖:
這種電腦是用 擷取-解碼-執行週期來執行程式 ,如下所示…
49
1.7 von Neumann 模型 控制單元藉著程式計數器來從記憶體擷取下一個指令
50
1.7 von Neumann 模型 指令被解碼成ALU能了解的語言
51
1.7 The von Neumann Model 所需的運算元會從記憶體擷取並放在CPU的暫存器中
52
1.7 The von Neumann Model ALU 執行指令並將結果放到暫存器或記憶體中
53
1.8 Non-von Neumann 模型 傳統的內儲程式電腦在過去幾年都一直有所改進
這些改進包括加入特殊匯流排、浮點運算單元、、以及快取記憶體等等 但是要對效能有相當的增進則需要另一種有別於傳統 von Neumann 架構的機器 增加處理器就是其中一種方法.
54
1.8 Non-von Neumann Models
在1960年代晚期,高效能電腦會裝有二顆處理器來加強計算的能力 在1970年代的超級電腦系統有 32個處理器 1980年代更做出有1,000個處理器的超級電腦 在1999年, IBM 宣布其Blue Gene 系統內有超過 一百萬個處理器
55
1.8 Non-von Neumann Models
平行處理是唯一一個增進計算能力的方法 在重新檢示計算的基本觀念後,發明了一些新的系統 這些先進的系統有基因電腦、量子電腦,以及資料流系統 到目前為止,我們還不能說誰會是下一代電腦的主流
56
結論 本章介紹了計算機架構這個主題的概觀 現在你應該擁有足夠的基本概念來進行接下來的課程. 接下來的章節會深入這些主題作更清楚的介紹
57
End of Chapter 1
Similar presentations