Presentation is loading. Please wait.

Presentation is loading. Please wait.

電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性

Similar presentations


Presentation on theme: "電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性"— Presentation transcript:

1

2 電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性
Chap 1 基本概述 電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性

3 基本概述 1.1 電腦的發明和演進 1.2 電腦的基本架構 1.3 馮紐曼架構 1.4 電腦內部的資料表達方式 1.5 軟體
1.1 電腦的發明和演進 1.2 電腦的基本架構 1.3 馮紐曼架構 1.4 電腦內部的資料表達方式 1.5 軟體 1.6 程式語言 1.7 C++ 程式語言 程式語言的演進

4 1.1 電腦的發明和演進 最早的計算機 十七世紀法國Blaise Pascal在1642年發明的齒輪式加法計算器。
英國的Charles Babbage於1830年進一步開發差分機,以進行多項式的計算。

5 電腦的演進 名稱 時間 特徵 第一代電腦 1945~1950 使用真空管 機器語言 第二代電腦 1950~1965 電晶體 磁蕊記憶體
Assembler和compiler出現 第三代電腦 1965~1975 IC 作業系統出現 迷你電腦 第四代電腦 1975~現在 微處理機發明 工作站電腦 超級電腦

6 現代計算機構造的起源 在英國Charles Babbage的構想裏,計算機 分為四個部份協調運作: 1. 輸入與輸出單元
1. 輸入與輸出單元 2. 處理與計算單元 3. 控制單元 4. 儲存單元

7 Intel公司對於電腦科技的三項重大貢獻
微處理機 (microprocessor) DRAM EPROM (電壓可抹寫式唯讀記憶體,Electrically Programmable Read-Only Memory)。

8 摩爾定律 (Moore's law) 不管是記憶單元的容量,CPU內的元件數量,或是CPU的運算速度,都以每一年半增加一倍的驚人速度快速成長。

9 電腦的分類 超級電腦 (supercomputer) 大型電腦 (mainframe) 迷你電腦 (minicomputer)
工作站 (workstation) 微電腦 (microcomputer) 聰明隨身裝置 (smart handhold devices)

10 數位電腦和類比電腦 數位式 (digital) 和類比式 (analog)。
在 TTL 的標準裏,0.0 V ~ 0.4 V代表 0,而2.4 V ~ 5.0 V代表 1;在 EIA 的標準下,-15 V ~ -3 V 代表 0,而3 V ~ 15 V代表 1。 「電腦」通常指的是數位式電腦。

11 電腦的硬體和軟體 硬體 (hardware): 用來構成電腦系統的組成部份,具有體積和質量。
軟體 (software): 能在電腦上執行的程式或是能被電腦取用的資料,不具有體積或質量。

12 電腦的架構 可以區分為下列五個主要的部份: 1. CPU (中央處理器,Central Processing Unit)
2. 主記憶體 (main memory) 3. 儲存裝置 (storage devices) 4. I/O裝置 (輸入/輸出裝置,input-output devices) 5. 匯流排 (bus)

13 電腦基本組成的關聯圖

14 CPU(中央處理器) 用來執行從記憶體取得的指令,是電腦的 運算核心。 包括:
算術/邏輯單元 (arithmetic/logic unit,簡寫為ALU) 控制單元 (control unit,簡寫為CU) Registers

15 主記憶體(main memory) 唯一能由CPU直接存取資料的大型記憶裝置,運算時所需要的指令和資料必需先存放在主記憶體中才能執行。通常由DRAM (動態隨機存取記憶體,Dynamic Random Access Memory) 構成。

16 DRAM 是RAM (Random Access Memory,隨機存取記憶體) 的一種。
RAM有DRAM和SRAM (Static Random Access Memory,靜態隨機存取記憶體) 兩大類。相較於SRAM,DRAM具有以下的幾個特性: 1. 儲存單元所需的面積較小。 2. 用電較省。 3. 存取速度較慢。 4. 必需不斷地重新記憶(refresh),否則資料會 消失。

17 SRAM 存取速度快,容量較小且價格昂貴的SRAM經常做為快取記憶體 (cache) 以擔任DRAM與CPU之間指令和資料的緩衝。
如下圖所示:

18 儲存裝置(storage device) 又稱為次記憶體 (secondary memory) 或是輔助記憶裝置 (auxiliary memory device)。 有FDD、HDD、CD-ROM Drive、CD-R、CD-RW、DVD-ROM Drive、DVD-R/RW、DVD+R/+RW、magnetic tape drive、USB隨身碟,和 Magneto-Optic drive 等數種形式。

19 唯讀記憶體 (ROM,Read-Only Memory)
只能讀取,無法隨時修改內容的記憶體,常用的是EPROM (Erasable Programmable Read-Only Memory) 和光碟 (CD-ROM,DVD-ROM)。

20 EEPROM (電壓式可抹寫唯讀記憶體,Electrically Erasable Programmable Read-Only Memory)
在沒有電源供應的時候仍然能夠保有內部儲存資訊。 EPROM需要施加紫外線 (UV) 才能清除原有資料以備重寫,而EEPROM只要調高其中一支腳位的電壓即可清除原有資料。

21 混合式記憶體 (hybrid memory)
EEPROM和快閃記憶體 (flash memory) 都是混合式記憶體 (hybrid memory) 的主要成員,兼具RAM可以多次修改內容,以及ROM可以在電源供應消失時仍然保有內部資料特性。 快閃記憶體只能以sector (扇形區段) 為單位來清除資料,而EEPROM清除資料的單位是位元組 (byte)。

22 記憶卡的形式 Compact Flash Card (CF卡) Smart Media (SM卡)
Multi Media Card (MMC卡) xD Picture Card (xD卡) Secured Digital Card (SD卡) Reduced MM卡 Sony的Memory Stick (包括衍生的Magic Gate、Memory Stick Pro,和Memory Stick Duo) IBM的Micro Drive卡 SanDisk的MiniSD卡。

23 I/O裝置(輸入/輸出裝置,input-output device)
電腦與外界溝通的管道,包括顯示器 (monitor)、鍵盤 (keyboard)、滑鼠、搖桿 (joy stick)、數位板 (digitizer,graphic tablet)、麥克風、喇叭、掃描機 (scanner)、印表機、MODEM、網路卡等裝置。

24 匯流排(bus) 連接裝置的單元。匯流排所代表的不只是一些訊號線和控制裝置,還包括讓裝置之間能夠有效溝通的通訊協訂 (protocol)。
例如ISA (Industry Standard Architecture) 匯流排的時脈是8 MHz,PCI (Peripheral Component Interconnect) 匯流排已提昇至66 MHz,達到524 MBps。

25 橋接器 (bridge) 銜接各種不同時脈的匯流排

26 DMA 直接記憶體存取 (Direct Memory Access) 的資料傳遞模式。
在DMA控制器獲得CPU的授權後,I/O裝置與記憶體之間,甚至兩個I/O裝置之間能夠直接傳遞資料。

27 1.3 馮紐曼架構與哈佛架構

28 指令週期 1. 擷取 (fetch) 2. 解碼 (decode) 3. 執行 (execute)

29 程式記數器 (Program Counter) 與主記憶體之間的關係

30 各型記憶裝置的階層關係

31 數字系統 十進位數字系統 (decimal number system) 二進位數字系統 (binary number system)
八進位數字系統 (octal number system) 十六進位數字系統 (hexadecimal number system)

32 例如,365的值是 36510 = (3×102) + (6×101) + (5×100) 每個數位的位值 (positional value) 都比它右邊的數位多了10倍,如下圖所示:

33 二進位數字系統 以2為基底 (base),它的數位符號只有0和1兩種。 例如,11012的值是
11012 = (1×23)+(1×22)+(0×21)+(1×20) = 1310

34 每個數位都比它右邊的數位多了兩倍,如下圖所示:
4個二進位數字的組合可以代表從00002到11112總共16種不同的值。

35 位元和位元組 位元(bit)是兩個英文字binary和digit的組合。 8 bits = 1 byte
一個位元組可以用來表示28,亦即256種不同的值。 16位元 (2 bytes) 可以有65,536種變化。

36 八進位(octal)和十六進位(hexadecimal)數字系統
= (3×83) + (2×82) + (7×81) + (6×80) = 6BE16 = (6×162) + (11×161) + (14×160) = 都是代表1726這個數字。

37 數字系統對應表 十進位數字 二進位數字 八進位數字 十六進位數字 00 1 01 2 10 3 11 4 100 5 101 6 110 7
00 1 01 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 1010 12 A 1011 13 B 1100 14 C 1101 15 D 1110 16 E 1111 17 F 10000 20

38 八進位和二進位數字系統之間的轉換 假設有個二進位數值 011010111110 我們先將它從右至左,每3個位元為一組劃分開來
再使用二進位數字與八進位數字的對照關係,就可以得到:

39 十六進位和二進位數字系統之間的轉換 以4個位元一組的方式劃分,再逐一對照二進位和十六進位的表示法,就可以得到: 0110 1011 1110
B E 也就是68E16的結果。

40 二的補數表示法 (two's complement representation)。
最左邊的位元代表正負號。將一個正數變為負數要經由兩個步驟: 1. 將原有二進位數字做補數運算。原 來的所有1改為0,原有0以取1取代。 2. 加1。

41 將–5寫成二的補數 52 = 只要下述兩個步驟: 1. 寫出5的補數 2. 加1

42 以硬體的方式進行二的補數處理 1. 將原有的二進位數字從右至左搜尋第一個「1」出現的位置。
2. 將上步驟找出的位置左邊的所有位元進行補數處理。 再以上述–5的二的補數運算為例: 圖示如下:

43 使用二的補數法表示數值可以簡化CPU內部所需的電路
例如: 5 – 4 = 5 + (-4) : (-5) + (-4) : 答案 是–9的二的補數表示式。

44 從–5到+5的二的補數表示式 數值 二的補數 5 4 3 2 1 -1 -2 -3 -4 -5

45 非整數的二進位表示法 把十進位系統的小數點 (decimal point) 沿用到二進位系統,稱為基點 (radix point)。
= (1 ×22) + (0 ×21) + (1 ×20) + (1 ×2-1) + (0 ×2-2) + (1 ×2-3) =

46 浮點數(floating point number)在電腦內部的表示法
在二進位系統中,以32位元 (4-byte) 為例,實數被分割成兩個部份: 24位元的尾數(mantissa)部份和8位元的指數(exponent)部份。 尾數的值介於 –1.0和 +1.0之間,而指數介於 –128到 +127之間。

47 精確度(precision)和範圍(range)
浮點數的精確度受尾數部份限制,而範圍則受限於指數。 在32位元的表示法中尾數只用了24位元,所以32位元的浮點數精確度只有七個十進位數位,簡稱「有七位數的精確度」。 而8位元的指數代表的是2-128到2-127的指數範圍,所以32位元浮點數的範圍在10-38到1038之間。

48 文字資料 文字資料包括字母和符號,典型的西方文字系統包括下列幾種組成: 1. 26個大寫英文字母,從 'A' 到 'Z'。
3. 10個阿拉伯數字,從 '0' 到 '9'。 4. 其它符號。例如 ( ),{ },[ ],#,% 等。 5. 無法印出的特殊字元。例如鍵盤上的Tab鍵。 儲存一個字元只需要使用一個位元組 (byte)。

49 ASCII字元碼系統 除了IBM大型電腦以外,早期幾乎所有的電腦在儲存字元 (characters) 時,都採用ASCII字元碼系統 (ASCII Character Codes),ASCII 是美國標準資訊交換碼 (American Standard Code for Information Interchange) 的縮寫,一般採用的是1977年訂定,編號ANSI X3.4的版本。

50 ASCII字元碼系統

51 資料型態 (data type) 記憶空間範圍內的資料種類。 資料的組成順序

52 前置修飾符號 (prefix) 例如4.8×109可以寫成4.8 G,而2.07×107寫成20.7 M。
代表符號 意義 前置修飾詞 K 103 kilo M 106 mega G 109 giga T 1012 tera 例如4.8×109可以寫成4.8 G,而2.07×107寫成20.7 M。 64 Mb代表6.4×107 bits,相當於8 MB,也寫成8 Mbyte。

53 二進位數字系統和十進位數字系統間的關係式
210 = 1, ≡ 1 K 220 = 1,048, ≡ 1,024 K ≡ 1 M 230 = 210× ≡ 1,024 M ≡ 1 G 240 = 210× ≡ 1,024 G ≡ 1 T 在這些關係中,為了尋求十進位系統和二進位系統的一致,我們把1024 定義成1K。例如: 232 = 22×230 = 4,096 M = 4 G 236 = 26×230 = 64 G 242 = 22×240 = 4 T

54 二進位數字系統在表達效率上的優越性 例如下面儲存狀態代表 628 (總共用了30個儲存位置) :
但是,同樣的30個位元在二進位數字系統中卻可以代表 230 = 1G ≒ 109種數值變化! 百位 十位 個位 1 2 3 4 5 6 7 8 9

55 1.5 軟體 程式通常可以分為以下數類: 作業系統 (operating system) 應用軟體 (applications)
development environment) 應用程式開發環境又稱為原生應用軟體快 速開發工具 (Rapid Application Developer), 簡稱RAD。

56 1.6 程式語言(Programming languages)
機器語言(machine language) 組合語言(assembly language) 編譯式語言(the compiled languages) 直譯式語言(interpreted languages, interpretive languages) 混合式語言(hybrid languages) 網頁描述語言(web page script languages) 特殊的專用程式語言(第四代程式語言)

57 1.7 C++程式語言 C++ 是以C程式語言為藍本而增修的程式語言。 C又沿自兩種更老的程式語言:BCPL和B。
AT&T貝爾實驗室的Bjarne Stroustrup在1980年發展了C++。 C++ 是一個兼容並蓄的多功能的程式語言,我們可以使用類似於C的程序式 (procedural) 語法完成程式,也可以應用物件導向 (object-oriented) 的語法來開發程式,完全取決於程式設計者的能力和習慣。 目前幾乎所有的PC-based特用儀器裝置都是以C++ 或C寫成。

58 C++ 的歷史-標準化的過程 最近的修定歷時將近十年,從1989年開始,一直到1997年年底。其集結修定的結果就是ISO (國際標準組織,the International Standards Organization) 在1998年9月出版,編號ISO/IEC 的文件:“Information Technology-Programming Languages - C++”,其篇輻將近750頁。在美國國內,此標準被納入ANSI (美國國家標準局,American National Standards Institute) 的官方文獻內,因此,符合這個標準的C++ 程式語言又稱為ANSI/ISO C++。

59 程式語言的演進 Niklaus Wirth在1971年發表了結構化的程式語言Pascal。
1970到1980間,美國國防部贊助了Ada程式語言的發展。Ada可以用來表達許多同時進行的運算,也就是多工 (multitasking) 的功能。 物件導向程式設計 (object-oriented programming,簡稱OOP) 技術是提高程式再利用率的有效方式之一。 除了C語言之外,Bjarne Stroustrup創造C++ 時還引用了歐洲在1967年發表的語言Simala 67。

60 程序式程式設計語言 (procedural programming language) 和物件導向程式設計語言 (object-oriented programming language)
FORTRAN、Pascal、BASIC和C等高階程式語言處理問題的方式著重處理的詳細步驟 (也就是演算法,algorithms),類似於工廠內原物料與加工機械的關係,統稱為程序式程式設計語言。相對於程序式程式設計語言,物件導向程式設計語言對於問題的表達比較接近於實際的對應關係,而不是被演算法所區隔,因此程式較容易理解,結構較自然,也因此比較容易維護。

61 物件導向程式設計的三個相關技術 1. 封裝 (encapsulation) 2. 繼承 (inheritance)
3. 多型 (polymorphism)

62 抽象(abstraction) 以程式語言來說,包括以下幾種抽象: 1. 副程式 (subroutine又稱為次常式)
2. 抽象資料型態 (abstract data type) 3. 物件導向程式設計 (object-oriented programming,簡寫為OOP) 4. 泛型演算法 (generic programming)


Download ppt "電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性"

Similar presentations


Ads by Google