You are on page 1of 77

計算機系統

計算機硬體架構,一般為輸入、儲存、處理、輸出四部份
,而系統流程:
一、輸入:將指令、資料,透過鍵盤、滑鼠、磁碟等輸入
裝置,用來書寫、編輯、下命令、載入檔案。
二、儲存:實際的指令、資料會載入至儲存裝置,如記憶
體,使用者在其內部編輯、設定後,再下達執行命令。
三、處理:這些指令、資料會逐一處理,即在中央處理單
元內做運算,再將結果在寫回儲存裝置。
四、輸出:如果有需要,再將結果存入磁碟、列表機等輸
出裝置。
計算機系統

01 計算機的硬體結構圖。
我們使用輸入裝置,做載入、編輯,整個程式放置於儲存系統中
修改。然後要求處理系統加以讀取、執行,最後將結果輸出。
電腦結構
計算機
組織 computer organization : 設計硬體
結構 computer architecture : 設計硬體 + 運作系
統 + 執行指令
結構與組織的分野
Architecture

 電腦結構:設計者可以看到的系統屬性
 指令集、資料型態〈數字、字元〉、I/O機制、記
憶體定址等技術
 比如:電腦是否應該有乘法指令?
Organization

 電腦組織:實現結構設計的運作實體和互連方式
 控制訊號、電腦與週邊的介面、記憶體技術等
 比如:需要一個乘法硬體?還是一個重覆加法的
軟體?
組織與結構
• 電腦結構意指程 • 指令集、表示不同
式設計者所可以 資料型態 ( 比如:
看到的系統屬性
數字、字元 ) 的
• 這些系統屬性會
直接影響程式的 電腦結 結構屬 位元數目、I/O
邏輯執行 構 性包含 機制,和記憶體定
址技術等等

組織屬
電腦結
• 硬體細節 ( 對程 性則包
構 • 經由內部元件的交
式設計者而言 ), 括
互運作可以了解結
比如:控制訊號、
構的特性
電腦與週邊的介面,
以及記憶體技術。
Architecture & Organization (1/2)
 Computer organization
 Encompasses all physical aspects of computer systems.
 E.g., circuit design, control signals, memory types 電路設
計、控制信號、記憶體型態。Int x y z 為什麼要宣告 x 是整數
32 bit 4 byte
 How does a computer work?
 Computer architecture
 Logical aspects of system implementation as seen by
the programmer.
 E.g., instruction sets, instruction formats, data types,
addressing modes.作業系統管電腦資源
 How do I design a computer?
Architecture & Organization (2/2)
 All Intel x86 286 486 586 mcs 51 family share the same basic architecture computer family 允許不同 hard ware system
architecture 共享相同 instruction set architecture 具有 back wards compatibility
 The IBM System/370 family share the same basic architecture
 This gives code compatibility
 At least back wards 至少是 向下相容性
 Organization differs between different versions
結構與組織的特性差異
 相同的基本結構衍生出家族觀念
 IBM 360家族都具有相同的基本結構
 Intel x86家族都具有相同的基本結構

 相同的基本結構衍生出指令相容觀念
 最好能世代相容
 至少能回溯相容

 相同的基本結構可以有不同的組織
 不同版本的家族電腦容許不同的組織
電腦體系結構的定義
過去的定義:
程式師可見的計算系統的屬性。包括:概念性的結構和功能行
為。不包括:資料流程和控制流的組織、邏輯設計以及物理實現。

– Amdahl, Blaauw, and Brooks, 1964

Instruction-Set Architecture

廣義的定義:
電腦體系結構研究如何 設計、組織,以及使用可用的生
產技術實現一個計算系統,該計算系統可有效地執行軟體應用,
滿足價格、功耗和性能約束
電腦體系結構的定義(續)
 過去的觀點:
 Instruction Set Architecture (ISA) 設計
 即系統結構設計需要關注並確定:
 暫存器組織、如何存取記憶體、定址方式、指令運算元、硬體支
援的操作種類、指令編碼方式

 目前的觀點:
 根據目的機器的特定需求,在成本、功耗、可用性等約束
下最大化機器性能
 包括 ISA, 電腦組織(微系統結構), 硬體實現
計算機系統
 早期的自動控制機器並沒有儲存系統,所有自動化的工作
必需用輸入系統,直接操縱處理裝置,經由控制然後產生
輸出。由於沒有儲存系統,相同的工作仍然必須重新的,
透過輸入系統控制,進行指揮、調度,所以儘管是相同的
工作,每一次的輸入控制都必須重新做過,而不得有誤。
若是換個新的工作程序,就必須把整個輸入的操作,全面
更改,非常麻煩。所以當電腦自動化時,儲存系統的設立
是非常重要的;它不僅提供一個可以反覆的去做相同工作
的能力,並提供了一個可以編輯、修改或開啟新的控制程
式的能力。這樣大大的提供了自動化的控制與處理效能,
同時也具備了基本電腦的雛型。
計算應用的種類與它們的特性
大體而言,計算機被運用在三個不同種類的應用:
 個人型計算機(Personal computers, PCs)
 以低成本提供單一使用者不錯的效能並能執行其他公司的軟體

 伺服器(servers)是昔日大型主機、迷你計算機及超級電腦的現代版,通常經
由網路來使用
 提供計算及輸出入容量上更大的擴充性,也強調可靠度
 在成本與容量的範圍最廣
 嵌入式計算機(embedded computers)在應用與效能的範圍最廣
 設計來執行單一應用或一組相關的應用,該應用多與硬體整合在一起,以單一系統
型態呈現
 大部分使用者從不知道他們正在使用這類計算機
 通常有其獨特的應用需求以及最低效能和嚴格的成本與功耗限制
 通常更不能容忍失效
 經由簡單化或冗餘技術來達成
歡迎進入後個人電腦時代
 個人行動裝置(personal mobile device, PMD)由電池驅動、
無線聯線至網際網路且一般售價為數百美元
 和個人電腦一樣,使用者可於其上執行可下載的軟體(“APPs”)
 可能使用觸控螢幕甚或語言輸入

 庫房規模計算機(Warehouse Scale Computers, WSCs)


與雲端計算(Cloud Computing)
 軟體寫作者常常會將他們的應用程式一部分執行於個人行動裝置上而
一部分執行於雲端
第一節 輸入與輸出系統
 輸出入系統包含著,輸出入裝置(Input / Output Devices)
與各部份連接的匯流排(Bus),以及配合信號轉換與傳送速率
調整的介面裝置(Interface Devices)。
 一般而言,輸出入裝置多為機械或電磁控制信號與計算機的
二進制碼,是迥然不同的。所以在資料或控制狀態轉換與傳
遞時,需要介面裝置,一方面針對儲存系統與輸出入裝置的
資料格式做轉換;另一方面緩衝雙方速度上的差異。
 而匯流排是短距離的並列傳輸(Parallel Transfer)設計,若
輸出入裝置屬遠距設備,則與介面的連接應為串列式單線傳
送(Series Transfer)。然而資料在傳送時都必須是同步的,
所以在設計上必須考量傳送速率、資料格式等問題。
輸入與輸出系統

圖1-2 輸出入系統與儲存系統連結圖。
一般輸入裝置有滑鼠和鍵盤,而輸出裝置有螢幕和列表機等等
,也有一些像磁碟、光磁或磁帶;它們既是輸入裝置也是輸出
裝置。而這些產品在設計與計算機連線時,廠商必須為它們設
計其介面與驅動程式,以供硬體與系統的切實連結。
I/O介面
 什麼是介面
 什麼是周邊裝置(Peripheral
device)
 以CPU的角度來定義
 什麼是I/O介面
 以CPU的運作來定義
 CPU與周邊之溝通方法
 匯流排系統
 位址匯流排
 資料匯流排
 控制匯流排
I/O定址法
 I/O mapped I/O io
對應 io 應用: 8051
 MOV AX, [10] 存取記
憶體
 IN AX, [10] reg
 Memory mapped I/O
 MOV AX, [10]
 MOV AX, [1024]
C 8000 h 32 位元 disk
應用: arduino
CPU 與I/O 的運作方式
 Polling I/O (詢問式I/O)
 Interrupt I/O (中斷式I/O)
 DMA (Direct Memory Access)
CPU與I/O之溝通
 Polling(詢問式)
 又稱可程式化I/O(Programmable I/O)
polling()
{
while (is device A not ready?);
讀取device A資料;
}

 Interrupt(中斷式)
main()
{ Device_A_ISR()
while(1) {
{ 讀取device A資料;
中斷訊號 做主程式正常做的事情; }
}
}
DMA (Direct Memory Access)直接記憶體存取
 DMA Controller負責Memory 與I/O Device之間的資
料傳輸, 傳輸過程中不需CPU的參與或監督,故
可再增加CPU Utilization (利用度)與Throughput (產
能)
 (∵CPU有更多的時間投入在Process的執行上)。

 通常用在高速的Block-Transfer I/O Device (e.g.,


Disk)。
 DMA也會發出中斷,只是發出的時間點與
Interrupt I/O不同。
CPU設定 DMA Controller 的運作有哪些

 I/O Command (e.g., R/W)


 Physical Device Location (e.g., Track, Sector)
 Memory Location
 Counter (表示:傳輸量的大小)
 傳輸量到達了之後才會發出中斷。
有無DMA Controller 的區別
資料搬移
 CPU-based 資料搬移

 DMA-based資料搬移
第二節 處理系統
 計算機的處理樞紐是中央處理單元(Central Processing
Unit, CPU),而在硬體電路上,它本身是一個電路晶片
(Chip),又稱為處理器(Processor),但是處理器除了
中央處理單元外,有的內含快取記憶體(Cache
Memory);其負責指令的運算與執行,所有的指令與資
料在儲存系統內。程式執行時,處理器逐一讀入指令,
並予以解碼,瞭解指令所要求的命令動作後,切實去控
制執行。
 中央處理單元有三個主要部分,第一是暫存器群
(Registers),其次是算術與邏輯運算單元(Arithmetic
and Logic Operation Unit, ALU),以及控制單元
(Control Unit, C.U)。
處理系統
 暫存器群主要是讀取儲存系統內指令和資料,做臨時儲存的
地方;或者為運算結果的臨時儲存處,而最後會將結果值回
寫入儲存系統。一般暫存器有四種,分別為儲存或處理程式資料的「資料暫
存器」;以及選取在記憶體的指令或資料的「位址暫存器」;還有執行指令解
碼動作、資料的傳送、同步處理等的「控制暫存器」;最後是顯示系統狀態
、通訊狀態及運算狀態的「狀態暫存器」。
 算術邏輯運算單元,其主要的功能是依指令的要求,計算暫存器內的資料
;其內部分別有算術、邏輯、移位與比較等電路。而控制單元是計算機的
控制中心,它的主要目的有:1.使所有裝置的動作同步,2.完成指令的整
個執行要求。
 簡單的說,中央處理單元為了要執行每個指令的動作,所以必須控制儲存
系統與輸出入系統,其資料的傳送與讀取,並切實的執行每個指令的運算

處理系統

圖1-3 處理系統的內部圖。
處理系統主要是中央處理單元,它分成
三個部分。首先是暫存器群,它是讀寫
儲存系統內資料或指令,做臨時存放處
;其次算術與邏輯運算單元,它主要是
處理資料的計算;最後是控制單元,它
主要的功能是控制各系統間的同步,包
括資料的傳送、指令的執行。
第三節 儲存系統
 當資料是來自於磁碟檔案或系統,或者是來自於使用
者透過鍵盤與滑鼠所做的輸入;他們都會進入主記憶
體。一般而言,儲存系統包括主記憶體(Main
Memory),快取記憶體(Cache Memory)以及外部
儲存體(External Storages),也就是磁碟機、光碟
機等;但是系統的運作與指令的編輯、執行,都是以
主記憶體為主。所以遇到我們在討論儲存系統時,其
實都是以主記憶體與輸出入裝置,以及處理系統之間
的關係來考量的。但若是在整體作業系統的運作,以
及指令如何快速進入處理系統探討時,就必須配合外
部儲存體與快取記憶體,做整體的討論。
第三節 儲存系統

圖1-4 儲存系統內部層級圖。
儲存系統包括快取記憶體、主記憶體
以及外部儲存體。通常我們是以在主
機板上的主記憶體為主。而外部儲存
體,就是一般所謂的磁碟、光碟等。
當開機後,外部儲存體內的系統與檔
案程式會被載入到主記憶體,但是這
些動作是透過輸出入控制的較慢速傳
送。而快取記憶體是提供給處理系統
,作快速讀取主記憶體資料的緩衝區

儲存系統
 當計算機尚未開機前,快取記憶體以及主記憶體內是沒
有資料的。僅於主記憶體內的唯讀記憶體(Read Only
Memory, ROM)部分,有基本的開機啟動程式(Boot)與
基本輸出入程式(Basic Input/Output System,
BIOS),所有的系統、程式、檔案與資料都存在外部儲
存體,例如磁碟或光碟中。在開機的瞬間,從唯讀記憶
體內啟動了BIOS(基本輸出入系統),而後對其基本的
主機板功能認知,進而瞭解了其硬體環境與輸出入裝置
等;而隨後的Boot(啟動程式)是從外部儲存體,載入
作業系統(Operating System,OS)至主記憶體中,並
啟動系統運作。
儲存系統
 當主記憶體載入了作業系統之後,就提供了一個使用者可
編輯程式或下達命令的環境。於是使用者即可針對主記憶
體的隨機存取記憶體(Random Access Memory,
RAM)部分,進行程式編輯和資料處理;並在下達命令後
,即要求程式執行或依指定的命令動作。這時處理系統就
必須讀取指令或命令逐一去執行。由於處理系統與主記憶
體之間的指令或資料傳送速度過慢,所以我們添加了快取
記憶體;將處理系統需要在主記憶體執行的指令和資料,
由主記憶體先存放於快取記憶體,以直接提供給處理系統
執行。故而快取記憶體是輔助處理系統,以加速執行指令
和資料傳送的緩衝區。
Memory Hierarchy

Fast, Expensive,
but Small

Cheap,
Large,
but Slow
第四節 程式的編輯與執行
 當作業系統啟動,進入了使用者可操作的環境時,我
們可利用輸入裝置書寫與編輯程式,或者是從外部儲
存體開啟舊檔。而這些檔案或程式,實際上正在主記
憶體內的程式編輯區中,供我們撰寫、修改。
第四節 程式的編輯與執行
 在程式編輯完成後,如果是高階語言,就必須要經過編
譯程式(Compiler)與鏈結程式(Linker),轉換成一個可
執行的檔案。當我們要下達程式執行的時候,作業系統
的載入程式(Loader)就開始工作了,它會將編輯區內的
程式,安排到主記憶體的執行區;這裏包含著程式區、
變數區、堆疊區等等。載入程式安置妥當以後,處理系
統就開始做指令執行的工作了,首先會從程式的第一個
指令開始,讀入中央處理單元的指令暫存器,再進入控
制單元解碼。由控制單元來操縱暫存器與算術邏輯運算
單元間的計算,並將結果回存暫存器。而這個結果值可
能依指令的要求,回寫至主記憶體,甚至送到輸出裝置
。中央處理單元會依程式中指令執行上的順序,逐一地
完成每個指令的動作,直到程式完全結束為止。
第四節 程式的編輯與執行

圖1-5 程式編輯、編譯、載
入及執行過程。
我們利用輸入裝置編輯和
載入程式,於主記憶體編
輯區中。要執行時,會將
其載入到程式的執行區、
變數區、堆疊區、緩衝區
等等。中央處理單元會分
別將指令讀入,加以執行
,然後將結果寫回到主記
憶體或輸出。
程式的編輯與執行
 中央處理單元在執行每一個指令時,是有一定的步驟的
。首先是依照程式計數器(Program Counter, PC)所指
定的記憶體位址,讀取指令放入暫存器群的指令暫存器
(Instruction Register, IR)中,然後再將指令讀入控制
單元中,予以解碼。瞭解指令的要求後,並即予執行。
一般的組合(低階)語言指令分成三類:第一類是記憶
體存取指令,第二類是運算指令,第三類是跳躍指令。
而指令的執行是透過算術與邏輯運算單元與暫存器配合
完成的,最後將結果寫回至暫存器或主記憶體。因此我
們稱指令的讀取、指令的解碼、指令的執行以及結果的
寫回等四個步驟為指令週期(Instruction Cycle);每一
個指令都是依照這四個動作所完成的。
程式的編輯與執行
圖1-6 指令週期。

1.指令讀取:由程式計數
器指示目前要執行的指令
,其在主記憶體的位址;
而後由指令暫存器讀取指
令(z=x+y)。
2.指令解碼:指令暫存器
內的指令進入控制單元解
碼,控制單元得知指令要
求(要將x加y存入z中)。
3.指令執行:控制單元操
控有x與y值的暫存器,進
入算術邏輯運算單元做加
法計算。
4.結果寫回:算術邏輯運
算單元將計算結果寫至暫
存器或主記憶體中。
第五節 指令的執行
 指令的格式,主要分成兩個部分:一個是運算碼(Operation
Code)又稱為運算子(Operator);一個是資料(Data)又稱為運算
元(Operand),為主記憶體或暫存器內的資料。對任一指令的執行
,我們必須先對指令的運算碼做解碼,先瞭解這個指令要做什麼事
?然後取得其資料,去完成這個指令的動作。
 然而執行指令的順序,就必須從程式計數器開始,由程式計數器得
知目前所要執行的指令位址,將這個指令讀到指令暫存器,進入控
制單元解碼。然後由算術邏輯運算單元與暫存器配合執行,最後將
結果資料寫回暫存器和主記憶體。我們用以下的簡易通用暫存器為
主的計算機做範例,來說指令的執行,以及對指令的格式與主記憶
體、暫存器之間的資料變化,加以闡述整個系統的運作過程。
簡易通用暫存器為主的計算機
 指令格式:暫存器計算指令(12位元)
運算碼 來源暫存器1 來源暫存器2 目的暫存器

OPC Rs1 Rs2 Rd

運算碼3個位元,其編碼如下: 暫存器有7個,其編碼如下:
編碼 暫存器
編碼 運算動作
000 R d =R s 1 + R s2 000 無
001 R d =R s 1 - R s2 001 R1
010 R d =N O T R s1 010 R2
011 R d =R s 1 A ND R s 2 011 R3
100 R d =R s 1 O R R s 2 100 R4
101 R5
110 R6
111 R7
簡易通用暫存器為主的計算機
 記憶體存取指令:指令12位元,記憶體為64*12,
即有64個位址用6位元表示,而每個位址內有12個
位元為指令或資料。

運算碼 來源暫存器1 記憶體位址


OPC Rs1 Ad d r e ss ( AR )

運算碼3個位元,其編碼如下:(M[AR]表示記憶體,
AR為位址)
編碼 運算動作
110 Rs1=M[AR] 讀取
111 M[AR]=Rs1 寫入
範例一
若目前暫存器與主記憶體內容如下:
範例一
由000101至001000位址內共有四個指令,我們分別討論
其執行結果:
1.依PC所指的第一個指令是110011110000,由IR讀入,
控制單元解碼得知為:
結果:
IR=110011110000(運算碼110,指令是R3=M[AR])
AR=110000
R3=000000000010
PC=000110(指令執行後會自動加1,指到下一指令位址)
範例一
2. 依PC所指的第二個指令是110101110001,由IR
讀入,控制單元解碼得知為:
R5=M[110001]
結果:
IR=110101110001(運算碼110,指令是R5=M[AR])
AR=110001
R5=000000000110
PC=000111
範例一
3. 依PC所指的第三個指令是001101011001,由IR
讀入,控制單元解碼得知為:
R1=R5-R3
結果:
IR=001101011001(運算碼是001,指令是R1=R5R3)
AR=011001(計算指令AR無意義)
R1=000000000100
PC=001000
範例一
4. 依PC所指的第四個指令是111001110010,由IR
讀入,控制單元解碼得知為:
M[110010]=R1
結果:
IR=111001110010(運算碼是111,指令是M[AR]=R1)
AR=110010
M[AR]=000000000100
PC=001001
我們查看,最後的暫存器與主記憶體結果圖:

Main Memory Registers


000000
R1 000000000100
R2
PC 001001 R3 000000000010
000101 110011110000 R4
000110 110101110001
001101011001
R5 000000000110
000111
001000 111001110010 R6
001001 R7

IR 111001110010
110000 000000000010
110001 000000000110
AR 110010 000000000100
110010

111111
範例二
若目前暫存器與主記憶體內容如下:
Main Memory Registers
0 0 0 00 0
R1
R2
PC 0 1 0 10 1 R3
R4
0 1 0 10 1 1 1 0 11 1 1 1 1 0 00 R5
0 1 0 11 0 0 1 0 11 1 0 0 0 0 11
IR 0 1 0 11 1 1 1 1 01 1 1 1 1 0 01
R6
0 1 1 00 0 R7

AR

1 1 1 00 0 0 0 0 11 1 1 0 0 1 10
1 1 1 00 1 0 0 0 00 0 0 0 0 0 00
1 1 1 01 0

1 1 1 11 1
範例二

由010101至010111位址內共有三個指令,我們分別
討論其執行結果:
1. 依PC所指的第一個指令是110111111000,由IR
讀入,控制單元解碼得知為:
R7=M[111000]
結果:
IR=110111111000(運算碼是110,指令是R7=M[AR])
AR=111000
R7=000111100110
PC=010110
範例二
2. 依PC所指的第二個指令是010111000011,由IR
讀入,控制單元解碼得知為:
R3=NOT R7(運算碼是010,指令是R3=NOT R7)
結果:
IR=010111000011
AR=000011
R3=111000011001
PC=010111
範例二
3. 依PC所指的第三個指令是111011111001,由IR
讀入,控制單元解碼得知為:
M[111001]=R3(運算碼是111,指令是M[AR]=R3)
結果:
IR=111011111001
AR=111001
M[AR]=111000011001
PC=011000
我們查看,最後的暫存器與主記憶體結果圖:

Main Memory Registers


000000
R1
R2
PC 011000 R3 111000011001
010101 110111111000 R4
010110 010111000011 R5
010111 111011111001
011000
R6
R7 000111100110

IR 111011111001

111000 000111100110
AR 111001 111001 111000011001
111010

111111
 載入程式(Loader)會將程式的第一個指令位址,放
入程式計數器(PC)中開始執行程式時,每執行一個
指令,程式計時器會自動加一或依指令的要求指到下
一個要執行的指令位址,一直做到程式結束的指令為
止。
Digital Computer Subsystems

 數位電腦的(三、四、五、或)六個主要單元。通常連結單元(簡單的
匯流排或是更複雜的網路)並不會明確地被包含在這種示意圖中
范紐曼(Von Neumann)架構
 范紐曼架構的產生:
 最早的計算機中僅包含固定用途的程式。這
些程式可能是用硬體直接架構出來的,除非
重新設計,否則無法更改程式的功能。
 范紐曼首先提出把程式「內儲」在計算機中的
構想。
 經由一套指令集的設計,讓程式變成一連串
指令執行的過程。同時這些連串指令都和資
料都一起儲存在計算機的記憶體中,於是程
式也可以跟資料一樣輕易地修改,並在現有
的硬體架構下執行 。
 將指令當成資料的概念,促使了組合語言及
其他更高階語言的誕生,而程式運用的彈性
也相對的提高。
Von-Neumann Machine Concept

 范紐曼機器(VonNeumann Machine),主要的四個
特徵為:
 提出「內儲程式(Store program)」的觀念
 指令採取「循序執行(Sequential execution)」或「控制流程電
腦(Control-Flow Machine)」的方式
 「內部記憶體(Internal memory)」的設置
 採用「二進制系統(Binary system)」的資料表示法
Von-Neumann Machine
 組成特性為:
(A) 三個基本硬體子系統(Hardware Subsystems)
 中央處理單元(C.P.U.)
 主記憶體系統(Main Memory System)
 輸出入系統(Input / Output System)
(B) 具內存程式的結構(Stored Program Concept)
即欲執行的程式與處理的資料需先載入主記憶體(Main memory)中。
(C) 循序性(Sequentially)的執行指令
僅有一個程式計數器(Program counter)以自動增量的方式執行程式。
(D) 藉由記憶體位址來存取指令碼或資料。
主記憶體中儲存程式指令碼與一般資料,而存取主記憶體時需判斷為一
指令碼或一般資料。
范紐曼(Von Neumann)架構 – 示意圖
范紐曼(Von Neumann)架構
處理器 (CPU)

ALU 暫存器
R0
算術邏輯單元

RK
記憶體

Control Unit IR
SW
控制單元
PC

內部匯流排 Bus 輸出入單元

控制匯流排
資料匯流排
位址匯流排

輸出入
輸出裝置 輸入裝置
控制器
哈佛架構-Harvard Architecture
哈佛架構 v.s. 馮紐曼架構 (示意圖)

程式與資料共用匯流排 程式與資料匯流排分開
哈佛架構 v.s. 馮紐曼架構 (說明)
 The name Harvard Architecture comes from the Harvard
Mark I relay-based computer. The most obvious characteristic
of the Harvard Architecture is that it has physically separate
signals and storage for code and data memory. It is possible to
access program memory and data memory simultaneously.
Typically, code (or program) memory is read-only and data
memory is read-write. Therefore, it is impossible for program
contents to be modified by the program itself.
 The von Neumann Architecture is named after the
mathematician and early computer scientist John von
Neumann. von Neumann machines have shared signals and
memory for code and data. Thus, the program can be easily
modified by itself since it is stored in read-write memory.
資料來源:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka11516.html
范紐曼(Von Neumann)架構

 范紐曼架構的問題與瓶頸:
 由於電腦所有的軟體與資料都儲存在記憶體中,萬一設
計、修改程式時不小心犯了錯,很可能會導致本身的作
業系統、程式、資料受到傷害 。
 此外,因為范紐曼架構將CPU與記憶體分開 ,造成了所
謂的范紐曼瓶頸(Von Neumann bottleneck)。
 從記憶體取得資料或指令的速度通常較CPU處理的速度
慢 ,所以當程式在執行過程中必須從記憶體去擷取資料
時,便可能會影響到程式執行的整體效能。
Modern Computer specification
 使用超大型積體電路元件(VLSI Components)
 固態記憶體(Solid - State Memories)
 分時作業系統(Time - Sharing Operating
System)
 虛擬記憶體的組識(Virtual Memory)
 能執行多種高階程式語言
VLSI Trends: Moore’s Law
 In 1965, Gordon Moore predicted that
transistors would continue to shrink,
allowing:
 Doubled transistor density every 24 months
 Doubled performance every 18 months I’mBUT…
smiling
No because I
exponential
 History has proven Moore right iswas right!
forever!

 But, is the end in sight?


 Physical limitations
 Economic limitations

Gordon Moore
Intel Co-Founder and Chairmain Emeritus
Image source: Intel Corporation www.intel.com
Technology Trends: Microprocessor Capacity
Moore’s Law (1965)
 Gordon Moore, Intel founder
 “The density of transistors in an integrated circuit will double every year.”
Reality
“The density of silicon chips doubles every 18 months.”
2X transistors/chip
every 1.5 years
Called
Trends in Technology
 A successful new ISA may last decades, for example,
IBM mainframe.
 Four critical technologies
 Integrated circuit logic technology: transistor density
increased by about 35% per year, quadrupling in somewhat
over four years;
 Semiconductor DRAM (Dynamic Random-Access Memory):
capacity increases by about 40% per year, doubling roughly
every two years;
 Magnetic disk technology: roller coaster of rates, disk are
50-100 times cheaper per bit than DRAM (chapter 6).
 Network technology: network performance depends both on
the performance of switches and transmission.
Processor Limit: DRAM Gap
Storage Trends
 記憶體的容量和性能的提高差別較大
 Capacity increased by 1000x from 1980-95, speed only 2x
 Gigabit DRAM in 2008, but gap with processor speed is
widening
 處理器與記憶體之間的Gap在增大
 Need to transfer more data in parallel
 Need cache hierarchies, but how to organize caches?
 儲存系統需關注並行和局部性問題
 Fetch more bits in parallel
 Pipelined transfer of data
 採用緩衝和並行技術提高磁碟記憶體的性能
 Using parallel disks to improve performance
 Caching recently accessed data
Performance Trends: Bandwidth over Latency
 Bandwidth or
throughput: the total
amount of work done in
a given time.
 Such as megabyte per
second for a disk transfer.
 Latency or response
time: the time between
the start and the
completion of an event.
 Such as milliseconds for a
disk access.
指令集電腦的概念

 指令集電腦(Instruction Set Computer)可分為:


 精簡指令集電腦(Reduced Instruction Set Computer,
簡稱為RISC)

 複雜指令集電腦(Complex Instruction Set Computer,


簡稱為CISC)
精簡指令集電腦(RISC)

 微處理器僅提供具有一些簡單基本運作功能的指令。
 指令長度短、最佳化設計、高時脈頻率運作。

 高階程式語言的每個指令都必須由許多簡單的機器指令
組合而成 ,因此:
 考驗著廠商及系統程式設計師的軟體(如編繹器)設計能
力。
 挑戰每個簡單指令的執行速度能比複雜指令提高多少倍 。

 MIPS、ARM 、IBM RS系列電腦 、PowerPC 。


複雜指令集電腦(CISC)

 微處理器硬體本身就提供具有強大運算功能的指令。
 指令集豐富、複雜度各有不同 、不易最佳化設計 。

 微處理器能提供豐富的指令集讓作業系統及應用程式使
用,因此編譯程式的設計較為單純。

 Intel Pentium家族 CPU 、IBM現代的大型主機 。


CISC and RISC
 複雜指令集(CISC,Complex Instruction Set Computer):屬於
較傳統的處理器的架構(如Intel公司的80X86系列的電腦),複
雜指令集所提供的指令格式比較多、指令的格式也比較長,然
缺點是執行步驟太多,閒置電路等待時間較長,導致整體執行
效能較差,所以不適合做平行處理,此外,複雜指令集架構也
比較不適合程式開發和學習。
 精簡指令集(RISC,Reduced Instruction Set Computer):早
期主要使用在超級電腦(如Intel公司在1990年代推出的Paragon
超級電腦),精簡指令集的指令格式較統一,種類較少,因此
在執行程式設計時,可以獲得簡單易學的優點,此外,精簡指
令集的浮點數運算能力也大於整數運算能力,集合多項優點,
所以目前的微處理器大多使用精簡指令集的架構。
CISC and RISC
 精簡指令集和複雜指令集效能比較:
1. 兩個指令集架構最大的差異是儲存在中央處理單元的指令集
的數目不同。因為精簡指令集的指令相對比較精簡,所以具
備較高的處理效能,但是它需要複雜的外部編程來支援。一
般說來,精簡指令集架構近90%的指令都可以交付給硬體完
成,但其餘的10%指令卻需透過軟體程式執行。
2. 傳統電腦執行複雜的指令可能需要多次疊代或迴圈式的循環
處理才能完成,然而精簡指令集架構的電腦卻可在單一處理
的環境下,更快速、更有效率的來執行很多複雜的指令,這
也是目前高效能電腦都配備精簡指令集架構的原因。
3. 精簡指令集架構的定址方式比複雜指令集的定址方式少。
嵌入式系統和ARM
 另一種處理器的設計方向則為RISC(精簡指
令)電腦。
 ARM不但廣泛地運用於嵌入式系統(
embedded system),也是市場上功能最
強大、設計最好的RISC系統之一。
嵌入式系統
結合電腦硬體和相關軟體,將其附加於機械設
備或其他產品上,以執行某種特定的專屬功能

大部分的案例中,嵌入式系統通常只是系統或
產品的一小部分,比如:汽車的ABS(煞車反
鎖死系統)。
Automotive Embedded Computers
Impact sensors

Brakes
Airbags

Engine Cent ral


controller

Navigation &
entert ainment

Embedded computers are ubiquitous, yet invisible. They are found in


our automobiles, appliances, and many other places.

You might also like