620 likes | 914 Views
1. 基本概述. 電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性. 基本概述 . 1.1 電腦的發明和演進 1.2 電腦的基本架構 1.3 馮紐曼架構 1.4 電腦內部的資料表達方式 1.5 軟體 1.6 程式語言 1.7 C++ 程式語言 1.8 程式語言的演進 . 1.1 電腦的發明和演進 . 最早的計算機 十七世紀法國 Blaise Pascal 在 1642 年發明的齒輪 式加法計算器。 英國的 Charles Babbage 於 1830 年進一步開發差 分機,以進行多項式的計算。.
E N D
1 基本概述 電腦的基本架構和運作方式 C++ 有別於其它程式語言的一些特性
基本概述 • 1.1 電腦的發明和演進 • 1.2 電腦的基本架構 • 1.3 馮紐曼架構 • 1.4 電腦內部的資料表達方式 • 1.5 軟體 • 1.6 程式語言 • 1.7C++ 程式語言 • 1.8 程式語言的演進
1.1 電腦的發明和演進 最早的計算機 • 十七世紀法國Blaise Pascal在1642年發明的齒輪 式加法計算器。 • 英國的Charles Babbage於1830年進一步開發差 分機,以進行多項式的計算。
現代計算機構造的起源 在英國Charles Babbage的構想裏,計算機 分為四個部份協調運作: 1. 輸入與輸出單元 2. 處理與計算單元 3. 控制單元 4. 儲存單元
Intel公司對於電腦科技的三項重大貢獻 • 微處理機 (microprocessor) • DRAM • EPROM (電壓可抹寫式唯讀記憶體Electrically Programmable Read-Only Memory)。
摩爾定律 (Moore's law) • 不管是記憶單元的容量,CPU內的元件數量,或是CPU的運算速度,都以每一年半增加一倍的驚人速度快速成長。
電腦的分類 • 超級電腦 (supercomputer) • 大型電腦 (mainframe) • 迷你電腦 (minicomputer) • 工作站 (workstation) • 微電腦 (microcomputer) • 聰明隨身裝置 (smart handhold devices)
數位電腦和類比電腦 • 數位式 (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。 • 「電腦」通常指的是數位式電腦。
電腦的硬體和軟體 • 硬體 (hardware): 用來構成電腦系統的組成部 份,具有體積和質量。 • 軟體 (software): 能在電腦上執行的程式或是能被電腦取用的資料,不具有體積或質量。
電腦的架構 可以區分為下列五個主要的部份: 1. CPU (中央處理器,Central Processing Unit) 2. 主記憶體 (main memory) 3. 儲存裝置 (storage devices) 4. I/O裝置 (輸入/輸出裝置,input-output devices) 5. 匯流排 (bus)
CPU(中央處理器) 用來執行從記憶體取得的指令,是電腦的運算核心。 包括: • 算術/邏輯單元 (arithmetic/logic unit,簡寫為ALU) • 控制單元 (control unit,簡寫為CU) • Registers
主記憶體(main memory) • 唯一能由CPU直接存取資料的大型記憶裝置,運算時所需要的指令和資料必需先存放在主記憶體中才能執行。通常由DRAM (動態隨機存取記憶體,Dynamic Random Access Memory) 構成。
DRAM • 是RAM (Random Access Memory,隨機存取記憶體) 的一種。 • RAM有DRAM和SRAM (Static Random Access Memory,靜態隨機存取記憶體) 兩大類。相較於SRAM,DRAM具有以下的幾個特性: 1. 儲存單元所需的面積較小。 2. 用電較省。 3. 存取速度較慢。 4. 必需不斷地重新記憶(refresh),否則資料會 消失。
SRAM • 存取速度快,容量較小且價格昂貴的SRAM經常做為快取記憶體 (cache) 以擔任DRAM與CPU之間指令和資料的緩衝。 如下圖所示:
儲存裝置(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 等數種形式。
唯讀記憶體 (ROM,Read-Only Memory) • 只能讀取,無法隨時修改內容的記憶體,常用的是EPROM (Erasable Programmable Read-OnlyMemory) 和光碟 (CD-ROM,DVD-ROM)。
EEPROM (電壓式可抹寫唯讀記憶體,Electrically Erasable Programmable Read-Only Memory) • 在沒有電源供應的時候仍然能夠保有內部儲存資訊。 • EPROM需要施加紫外線 (UV) 才能清除原有資料以備重寫,而EEPROM只要調高其中一支腳位的電壓即可清除原有資料。
混合式記憶體 (hybrid memory) • EEPROM和快閃記憶體 (flash memory) 都是混合式記憶體 (hybrid memory) 的主要成員,兼具 • RAM可以多次修改內容,以及ROM可以在電源供應消失時仍然保有內部資料特性。快閃記憶體只能以sector (扇形區段) 為單位來清除資料,而EEPROM清除資料的單位是位元組 (byte)。
記憶卡的形式 • 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卡。
I/O裝置(輸入/輸出裝置,input-output device) • 電腦與外界溝通的管道,包括顯示器 (monitor)、鍵盤 (keyboard)、滑鼠、搖桿 (joy stick)、數位板(digitizer,graphic tablet)、麥克風、喇叭、掃描機 (scanner)、印表機、MODEM、網路卡等裝置。
匯流排(bus) • 連接裝置的單元。匯流排所代表的不只是一些訊號線和控制裝置,還包括讓裝置之間能夠有效溝通的通訊協訂 (protocol)。 • 例如ISA (Industry Standard Architecture) 匯流排的時脈是8 MHz,PCI (Peripheral Component Interconnect) 匯流排已提昇至66 MHz,達到524MBps。
橋接器 (bridge) • 銜接各種不同時脈的匯流排
DMA • 直接記憶體存取 (Direct Memory Access) 的資料傳遞模式。 • 在DMA控制器獲得CPU的授權後,I/O裝置與記憶體之間,甚至兩個I/O裝置之間能夠直接傳遞資料。
指令週期 1. 擷取 (fetch) 2. 解碼 (decode) 3. 執行 (execute)
程式記數器 (Program Counter) 與主記憶體之間的關係
數字系統 • 十進位數字系統 (decimal number system) • 二進位數字系統 (binary number system) • 八進位數字系統 (octal number system) • 十六進位數字系統 (hexadecimal number system) • 十進位數字系統 (decimal number system)
例如,365的值是36510 = (3×102) + (6×101) + (5×100) 每個數位的位值 (positional value) 都比它右邊的數位多了10倍,如下圖所示:
二進位數字系統 • 以2為基底 (base),它的數位符號只有0和1兩種。 例如,11012的值是 11012 = (1×23)+(1×22)+(0×21)+(1×20) = 1310
每個數位都比它右邊的數位多了兩倍,如下圖所示:每個數位都比它右邊的數位多了兩倍,如下圖所示: • 4個二進位數字的組合可以代表從00002到11112總共16種不同的值。
位元和位元組 • 位元(bit)是兩個英文字binary和digit的組合。 • 8 bits = 1 byte • 一個位元組可以用來表示28,亦即256種不同的值。 • 16位元 (2 bytes) 可以有65,536種變化。
八進位(octal)和十六進位(hexadecimal)數字系統 • 32768 = (3×83) + (2×82) + (7×81) + (6×80) = 172610 • 6BE16 = (6×162) + (11×161) + (14×160) = 172610 • 都是代表1726這個數字。
八進位和二進位數字系統之間的轉換 • 假設有個二進位數值 011010111110 • 我們先將它從右至左,每3個位元為一組劃分開來 011 010 111 110 • 再使用二進位數字與八進位數字的對照關係,就可以得到: 011 010 111 110 3 2 7 6
十六進位和二進位數字系統之間的轉換 • 以4個位元一組的方式劃分,再逐一對照二進位和十六進位的表示法,就可以得到: 0110 1011 1110 6 B E 也就是68E16的結果。
二的補數表示法 (two's complement representation)。 • 最左邊的位元代表正負號。將一個正數變為負數要經由兩個步驟: 1. 將原有二進位數字做補數運算。原 來的所有1改為0,原有0以取1取代。 2. 加1。
將–5寫成二的補數 52 = 0 0 0 0 0 1 0 1 • 只要下述兩個步驟: 1. 寫出5的補數 1 1 1 1 1 0 1 0 2. 加1 1 1 1 1 1 0 1 1
以硬體的方式進行二的補數處理 1. 將原有的二進位數字從右至左搜尋第一個「1」出現的位置。 2. 將上步驟找出的位置左邊的所有位元進行補數處理。 再以上述–5的二的補數運算為例: 圖示如下:
使用二的補數法表示數值可以簡化CPU內部所需的電路 • 例如: 5 – 4 = 5 + (-4) : (-5) + (-4) : 答案1 1 1 1 0 1 1 1是–9的二的補數表示式。
非整數的二進位表示法 • 把十進位系統的小數點 (decimal point) 沿用到二進位系統,稱為基點 (radix point)。 101.1012 = (1 ×22) + (0 ×21) + (1 ×20) + (1 ×2-1) + (0 ×2-2) + (1 ×2-3) = 5.62510
浮點數(floating point number)在電腦內部的表示法 • 在二進位系統中,以32位元 (4-byte) 為例,實數被分割成兩個部份: 24位元的尾數(mantissa)部份和8位元的指數(exponent)部份。 尾數的值介於 –1.0和 +1.0之間,而指數介於 –128到 +127之間。
精確度(precision)和範圍(range) • 浮點數的精確度受尾數部份限制,而範圍則受限於指數。 • 在32位元的表示法中尾數只用了24位元,所以32位元的浮點數精確度只有七個十進位數位,簡稱「有七位數的精確度」。 • 而8位元的指數代表的是2-128到2-127的指數範圍,所以32位元浮點數的範圍在10-38到1038之間。
文字資料 • 文字資料包括字母和符號,典型的西方文字系統包括下列幾種組成: 1. 26個大寫英文字母,從 'A' 到 'Z'。 2. 26個小寫英文字母,從 'a' 到 'z'。 3. 10個阿拉伯數字,從 '0' 到 '9'。 4. 其它符號。例如 ( ),{ },[ ],#,% 等。 5. 無法印出的特殊字元。例如鍵盤上的Tab鍵。 儲存一個字元只需要使用一個位元組 (byte)。
ASCII字元碼系統 • 除了IBM大型電腦以外,早期幾乎所有的電腦在儲存字元 (characters) 時,都採用ASCII字元碼系統 (ASCII Character Codes),ASCII 是美國標準資訊交換碼 (American Standard Code for Information Interchange) 的縮寫,一般採用的是1977年訂定,編號ANSI X3.4的版本。