You are on page 1of 30

計算機概論(NTU)


Ch1 資料儲存 Data Storage

Binary ⼆進制 world

Bi Vse
binary digit ⽂字 /
:
1
-

原因 Simple logical unambiguous 不會模稜兩可 batcloselo


:
ex seto 10 7 to 7 F 0
habiguous
: ~
.
.
, ,

可應⽤於 Boolean
operations & gates
:

Logical Gae
$ 每個 Gate 都有接地 ( 圖中省略 )

AND : 兩者皆才特真真 OR :
其⼀為真即特真 X OR :
其⼀⼀真即真
VOT :
其⼀為真即厚真
exclusiveOR

pm ⼆
) Oltput "
Imp-
u Imput = Outpat utpu
Inps -
_

… - o

!
0 0 0 0 0 0 00 0

1 1
! ” !
0 0 0

1
1 0 0 1 0 0
_”

” , ” 1 ” 0
=
) -

)
- =

Flip Flop -

反器正

⽬的 To keep the of 激活
sfate
outportumtil the Mext exaitement
:

λ Y Z
,

SRFlip -lop ; wo
ast input lines : set and rese
-

λ
0 0
unchanged
One
impout its sfored value to 1 ,
Flip Flop _

是 0 1 0

Y 1 1
The other ifs sfored value to O
0
ionput sets .

Whie both inputs stored value / 1 undefimed


are 0 ,
the most
recently is
preserved

A simple SRFlip -lop Circuit : Another SR Flip Flop -

Circuit :

0 1
Inputx Imput λ
Outputo
0
— ⼀


。 Oi 0

Inputy
0


, '
0

Imput y Outpet
, 0

0
0 1 0
1 0 1
.

0 ,
O 0
0 .
0 !

1 .
0 1
0 .
1 0

0 0 1
,
0 ,
O 0
texadecima
Coding tex ⼗ 六 進制 編碼

Bitpattern Hexadecimarepresentation
oooo o Binaryisusuallytoolongtorhumantoremember ,

00 01 1
Binarytotexi 0010111 01011010 1

00 1 0 2 2 E B 5

00 1 1 3

0 100 4

Main
Memorycell
01 0 1 5

01 10 6
01 11 7
Celli
1000 8 Aunitofmainmemory Ilelk 8
bitstypicag ⼆

Ibyte
10 0 1 q
Hghorderend 0100 1111 Loworderend
1010 A
10 11 13
1100 C
Mostsignificantbit Leastsignificantbit
1101 D
eg suchas 10 9872
1110 E

11 1 1 F

Main
Memory 每個 Address 对應 ⼀個 Cell
全部 組成 ⼀個 Main
Memg
I Dimensional
00101110 00100010 10101010 01001101 ⼀、 ,

Randomaccessible 隨機 存取 1, 1 02 113 1004


可以 隨機 針對 ⼀個 位址 直接 讀取裡⾯ 的 資本 Cell

Recallthepointerincktt Address

Memory Techniques
Randomaccessible
Random Access
Memory RAM i
Memoryinwhichindividualcells canbeeasilyaccessedinanyorder ,

Static ilikefliptlop
Memory SRAM 每個
logicalgate 都 需 持續的 供電 ,

但 停⽌ 則 資料 消失 但 其 速度 快且穩定 不過容量 ⼩ 價格⾼
,

gnamic Memory DRAM :

Tinycapacitorsreplenishedregularybyrefreshcircuit
補充
,

因 其電容極 ⼩ 故漏電量極 ⾼ 當 電 压 漸漸 降低後每 隔 段時間補充 ⼀次電量 優桌為 密度⾼ 故体積⼩ 且成本低 但儲存速度慢且耗電量⾼
,

, ,
, ,

Synchronous 同步
DRMSDRAM i
Allcapacitorsreplenishedbyrefreshcircuitatthesametime ,

Dualīriplechannel 双 三通道
Capacity
Kilobyteki Biibytes ⼆ 1024 bytes ≈ 10
bytes KB = 10 0 0 B

Mgabyte Mi Bi Ebytes ⼆ 1048576


bytes ≈ 106
bytes MB =
1 0 0 0 KB

Gigabyte Gi B Ebytes : ⼆ 1 073741824


bytes ≈ 109
bytes GB ⼆ 1 0 0 0 MB

Massstorage
Propertiescomparedwithmainmemory :
gpesi
Largcapacity Magneticsystemsharddisk ,
tape

Lessvolatiity短暫 1揮發
資料 可以保存 很久且 容易 救資料
Opticalystems CD ,
DVD

Slower Flashdrives

Ontineoroffline eg 裝在 电 腦 內 需通电的 硬碟1不需通电的 CD


,

Mgnetic Diskstorage System


每 圈 為 ⼀個

track 分成 好幾 ⼩ 段 sector
,

資料 存放於每個 sector 中
Accesstime
找到 所 需 資料的 sector
=

seektimetrotationdelg latengtime
readhead 走到 該track
disk 轉 到 該sector所在處花的 時間
所 需 的 時間 ,
的 時間 ,

CD 與 之不同 的 点在於 其 track 為 螺紋 spiras ⽽ 班 同 啯

Physical Recordsvslgicalrecord
⼀個 資料 不會 存 在同 ⼀個 sector ⽽是分散於 不同 track 的 sector 中 ,

即 i
Frgmentationproblem

Buffer

Tosynchronize ortomakecompatibe different Read Writemechanismsandrates


Amemoryareausedforthetemporarystorageofdata usuayasastepintransferringthedata 。

Blocksofdatacompatiblewithphysicalrecordscanbetransferredbetweenbuttersandthemassstoragesystem
Datainbuffercanbereferencedintermsoflogicalrecords ,
Text
Representing
ASC 7 bitsor 8
bitswithaleadingo
:

Unicode : 1 6 bits

standardi 32 bits

Binaryvs Decima ⼗ 進制

Decimai

Binaryqol_Representationfii-iio.ii.nl
1 02 1 01 10
Positionisquantity 1

bpsibitspersecond
Representing Sound

Bitrate
Samplingratex Bitresolution

Samplingratei 每⼈ 秒 記 1 次 收據 Amplitudes )
Bitresolutioni 每 次記錄的 解析度 振幅 分成 多少
種尺度 ( eglbyte ⼆ 8 bit 有 2 56種
Oorl 的 組合 故振幅 最⼩美 ,

只有 火56 byte 的 差距 )

樂譜
MIDI 把每個 ⾳ (e.gl?o/Re/Mi …
) 所 对應的 ⼀個 爛 組 記錄下來 ,
之後再利⽤ 組合 的 ⽅式把 段 ⼀

鷹 每個⾳ ) 所对 的 檔 叫 出來
2 010

⼗) 3
⼀般加法 可直接 相加
→ 011
:
eg 。

Bingsystem
5← 。

減法 須 先定義 魠⽂後⽤ 正 正
: ⼆ 正 + 䱓⽂求解 ,

3bit.JO/l3To'scomplementnotation " "


~
2 1 1 1 1 1 7
範圍
-
-

-
4 ~ 3 3 bits 1 1 0 -
2 6 0 1 0 2

1 0 1 -
3 5 0 0 1 1
特 桌 1 正 政部分 開頭均 為 0 負 政 部分 開頭均 為 1
:
. ,
1 o o
-
4 4 0 0 0 0
2 正 政部 分 之 編碼 與原本
,
相同 01 1 3 1 1 1 -

1
3 負 政均 為 原本的 -8k 233
我"
.
o 1 0 2 1 1 0 -2
六 %9 3
6%
優桌 加法可 直接 使⽤ 不必 調整
:

f%

'
⼗) 之
-1 111
o o 1 1 1 0 1 3
-

缺点 無法直接 比 ⼤⼩
,
0 0 0 0 1 0 0 -4
nonoio.no ! > 00 1
0110 10 10
求 負 攻 編碼 ⽅法 :
eg 6 -6

法 li

因 正攻部分 均 不 改变 故直接找 該正 政之对應 編碼 然後由 右 , 左看 ⼀個 ⼀個 攻字

照抄 直到 抄 下第 1個 ⼯ 後 開始抄相反的 攻字
, ,
1 → 0/ 0 → 1) , 所得 編碼 即 為原
正 政之 負 号 編碼
1:10 6
,

eg.co
i
法⼆ :
iǒǐǒ go.jo
:
-6

將 欲求之 負 政 +2 設原本是3 bit 碼 則 最多 只能 記到 22 的 位 政 後可 得 正 政


"

直接 將 該正 政 对 照 原 表即可 得 原 負 政在 变換後的 編碼
" "

3bitstxc.es -1
②_ -2 ~
2
snotation 範圍 1 1 7
:
1 1 1 1 3
33in -4 ~

1 1 0 6 1 1 0 2

特 点 I. 正 政部分 開頭均 為 1 負 政 部分 開頭均 為 0 ,


1 0 1 5 皆 -4 1 01 1
2 相 对 ⼤⼩ 不变
, 1 0 0 4 1 0 0 0

3 每 項 -4 後平移 原 → 後)
.
0 1 1 3 0 1 1 -1
1
優桌 可直接 比 ⼤⼩
:
0 1 0 2 0 0 -2

0 0 1 1 0 0 1 3
缺桌 相加 後還要 +2 的 處理 後 → 原 )
" -

0 0 0 0 0 0 0 -4
求 負 收 編碼 ⽅法 :
-3 +22=1 → ooi
不变

將 欲求 其編碼 之負 政 +2 得 正攻後 直接 將 該正 政 对 照 原 表即可 得 原 負 政在 变換後的 編碼


"

Overflow
發⽣原因 當 原 編碼 為了 ⽤ 負 攻⽽ 轉換成 Twóscomplement
:
Excess 時 新 編碼 所 包含的 正 址 偵 ⼗ 負
,

結果有 可 得 超出 新 列表所 能表達的 範圍 之外 即 Overflow , .


e
-
2 0 1 0 -
2 1 1 0
發⽣ 條件 正 ⼗ 負 :
結果必 介於 2 坆之間 故不 可能 Overflow . t 3 0 1 1 ⼗ ⼀
3 1 01

正+正 可能超過 也 可能 在 列表內 -3 1 0 1 3 1 0 1


×
1

負⼗ 負 可能超過 也 可能 在 列表內 +8 zn
5 -8 zn
-5

指收
izizo8bityz-z.pt
-85
'
(i I
Binaryfloatingpoint
⼆ (⼀ x 1 1 0 1 0 1 0 1
.

i # +6
2
-

+ 1 5 -
2 )
假玫

規定 : 1 -

,
0 ⼗ ,
且 中間 不會標上 桌 ⽽ 判斷 為 整 攻或 ,
假攻

浮 桌 玫的 唯⼀ ⽅式取決於 前⾯ 宣告 為 intltloat ⼗ ⼈ 指玫

每個 指 收可以使後⾯ 的1叚攻進 ⼯位 g. 範例 北 ) 以
"" " ""
gbit 下 之 量值 Maxi gx 23
⽬前 主流的 64 bit 系統分配 為
lb.tt/miniixz-411bit
-

指 收
52 bit 假玫
Truncation Errors & Normalizationform

發⽣原因 原假玫太長導致記憶体不夠 記錄⽽捨 掉 多 出 幾位的 誤差


:

解決⽅式 Normalization
:
假收的
significantbit 進位⾄到 变成 I
22
0

0110001 1 1 1 0 ) (0 0 1 1 ) 0011 11 00 2 ) (1 0 0 ) ( 1 1 0 0 0 1001100


g.
0 x ⼆ x 0
.
,

問題 假坎 Mantissa 的 significantbit 在 normdization 後必為 1 那 乾脆把 它 移到 ⼩ 玫 前 讓电腦 忘 掉 ,

即 假收最左边的 I 進位直到 ⼩ 玫桌 前 g. 10,5=23+2'+2


" 3
= 10 10 1 .
=
1 .
0 10 1 × 2

-4
⽽ 當 全部 為 0 時 定義 為 0 , 即 犧牲 了 tlx 2

Lossofdigits 3

3
_

3
,

!
_

3
,

3 I'
k
i 記不住 : 忘記
發⽣原因 當 : 2 政相 運算 時 ,
為了 讓指 救擠 可能 , nizii-4

會 因⽽ 使假故超出所 能表⽰的 範圍 ,
3 -
1 -
1

3 0

右边的 例⼦ 來說 電腦 記不住
'
4 , 但 ⾕ 可以 , 3
t.no t.no
= 1 .
00 0 0

i. 在 計算機 上 算 1099 +0.123 -1 9=0 32-2-4 ooxi

G q 本
3
= x 2 = = 4

htalompression
種類 Lossy 失針压縮 班 失⾦ 压 縮

Runlenghencoding 當 串代硒 中 有 段 110 的 連續 政字 時 只要 寫有 多少 牡 10 就好



1111111 州 "
g. ⽵

Frequengdependentencodingi Huttmanencoding
Relativeencoding Differenceencoding 影像压 縮 只 記會 动 的 物件 ,
不會 動 的 則 定格

Dictionaryencodingi LZW encoding


A 0

Huffmanencoding sēi AAABBBAABCAAAABD


165
C
B 1
1
0

1 0

Iaditionencodingi Huffmanencoding : D 1 1 1

洪 有 4種代碼 : ⽤ 2 bits 即 可 記錄 先依照每個 代碼的 收量 多寡 由 ⼤ ⼩ 列 出來

A 9 Bi 5 Cil Dil 比較多分 岔的 ⽤ 1 少 則 ⽤ 0


每個 代碼 变2 bits
:

A
, , ,
0
,
0

從末端走回去並沿路記下 改字
0
1
B 0 1 0
i # 2 × 16 = 32 bits 2
C 1 優缺点 雖然可以減少 所 需 記憶
0
0
'

17 1 1 總共 要 花 32 bits 來記錄此串 收據 : 7
体 但 对 ⽅ 需要 Huffmantree 編碼表
,

'
0 0 00 00 0 1 0 1 01 00 00 1 1 0 00 0 0 00 00 0 1 1 1 16
0
才能 解讀 ,
不過 不可能產⽣ 與 原 碼 不同 的 結果
末端
对 ⽅ 不 須有 此表 即可 解碼 00010101 00010110 0000101 1 1 25 bits
space

✗ 1
LIW encodingsexyxxyxxyxxyx y 2
12134343 4 i 9 bit
space 3

Iaditionencodingi LZW
encodingi xyx 4
✗ 1
共 3×4+3=15 个 bits 應⽤ 情況 ⽤於 同 個 單詞 經常 出現的 情況 eg 段⽂章 中 的 the
" "
:

y

2
,

1213121 31213121 space 3 編碼 ⽅式 先 照著 字⺟ ⽵ 編碼 遇到 space 則 把 該space ⾄ 前 space


: -

,

之間 的 組字⺟ 視為 ⼀個 單詞 並 編 上新 的 碼

往後接著 編

|
MP 3 Compression 優桌 不但 編碼 結果之位元 收 比 traditionencoding 少 ,
且 解碼者 不必

得到 該表 只要 有原本 traditionencoding 的 幾 个 基本 編碼 即可 反推
,
,

I. Temporamaskingi ⽽通常 會 ⽤ ASC 11 表來作為 traditionencoding 因此 不⽤額外的 字典 ,

在 段⾳檔 中 某⼀瞬間 有 ⼀個 響度

極 ⼤的 聲⾳ 則 可以把 除了 該聲⾳ 以外的 其它 背景 ⾳ 全 拿掉 ⼈耳聽不 出來


, g. 交響樂 中 的鈸
2.
Frequencymaskingi
將 段⾳檔 中 頻率 < 2 0

or ) 2 0 0 0 0 的 部分 全拿掉 ⼈耳 聽不 出來

Comunicationerrors 除錯 ⽅式通常 分為 2種

I. Errordetection 可以知道接收端 得到 的 收據中 有 誤


: ,
但 不 知道哪裡錯

ID numbers ⾝份 証字 号

ISBI book

奇偶校驗碼
Paritycode
2、
Errorcorrectingi 可以知道接收端 得到 的 收據中 有 誤 ,
也 知道哪裡錯 並修正

Dnumbers ISBN

i
3.

2、

3.

4. 4

Paritycode
1 0 使整 串 攻字
⽅式 在每 : ⼀

byte 的 位元碼 最前⾯ 多 加 上 1 個 1 ,

中 的 1 共 有 奇 攻個 當 任何 1個 1 10 出錯 則 必 能發現 但

如果
。 ,

出錯
同時 有 2個 或 以上 則 沒辦法發現
A 磁碟中 的⼩段 資料
,

11010 …

應⽤ 磁碟的 RAID 陣 不⽤ XOR將 資料 恢復 當 其中


:
,

顆壞
xnoiooi 13 磁碟中 的⼩段 資料
掉 時 可 以及推回 原本的 資料 C 磁碟中 的⼩段 資料
,

10011 …
Errorlorrecting Code ECC

IX. y -

repetitioncode : 2 .

Hammingdistancei
原理 傳 入 次相同的 資料 當 其中 有 資料 不同時 即代表有
,

原理 先把每個 字符 編 上 ⼀旦 代碼 當接收端 發 ,

出 錯 出錯 則 選出現 比較 多 次的 當作 正確碼
,
現找 不到 相 对應的 字符 時 把每個 字符 原本 对
,

⽣ 則 代表最多 能修正ybits 的錯誤 超過則 無法 ,


應的 編碼 與 得到 的 編碼 相 对 照 找 出 得到
,

判斷 是否 有 錯 的 和原本 的 每 項分別 美 了 多少 bits


Hamming
g. (3 1 )
.
-

repetitioncodei distance ,
⽽ distance 最⼩ 的 即視為其 解 ,

eg 010100 D

Ch2 資料操作 Data Manipulation

Computerarchitecture
CPU Central Unit
:
Processing
暫存器 ⽤於 暫時 存放 資料 比 共有 1 6 個 Hex的 1 6 位元 資料 暫存 區
Controllhit
Register :
,

Arithmetic Logic Unit ALU 算術 邏輯 單元 :


負責處理如 邏輯閘 運算 轉移 旋轉

Program Counter PC 程式計 玫器 :


負責追縱下 ⼀個 要 執⾏ 的 指令 每 經過 ⼀個 機器 ,

週期 後會 增加 1 以 執⾏ 下 個 指令 只能 保存 8 bits ,
,

Instruction IR 指令 暫存器 負責保存 化在 ⼀個 機器 週期 中 編碼 過的 指令


Register
:
,

只能 保存 16 bits ,

運算 流程 :

1 將 第⼀個 改值從memg 存進其中 ⼀個 register ,

2
將 第⼆ 個 改值從memory 存進 另 ⼀個 register ,

3 啟 动 運算 單元 的 电 流 eg 相加 ,
,
將 12
register 內 的 收
值進⾏ 運算 後 把結果存入再 另 ⼀個 ,
register ,

4 將 該 register 內 的 資料 存 回 memg
5 停⽌ ,
RISC vs CISC

RISC Reduced Instruction Set


Computiug vs CISC Complex Instruction Setlomputing
在 早期 晶片 都是 以 CISC設計 但 隨著 時間 推進 越樾多 新 指令加入 然⽽真正常⽤ 到 的 指令 只占 20%
, , ,

因此 RISC的 設計邏輯就是使CPU 專 - 加速常⽤ 的 指令 比較複雜 的 則 ⽤ 常⾒的 指令 去做組合 , ,

採⽤ RISC設計 晶片 的 第⼀ 家⼯司 為 Acorn ,


故 ARM 架構 全名為 Acorn RISC Machine

⽽ Intel 則 是 ⽤ CISC設計 其 ✗ 86 架構 晶片

RIS《優桌 i 1 指令 長度固定 ⽅便 CPU 解碼 ,


,
簡化 解碼器 設計 ,
且 因⽽ 受益 於 執⾏ 線路管線化 Pipeline
後所 帶來的 效率提升
2 ,
盡量 在 CPU的 register 內 操作 ,
以 減少 資料的 額外 讀取/載入 時間

3處理器 簡化 电 晶 体 玫量 減少 易於 提升 運作 時脈 dock
, , ,
比起 同 時脈的 LISC處理器

耗电 量 較低 ,

RIS 《 缺点 I.複雜的 指令 由 ⼤量⼩指令 組合 完成 使程式更 ⼤ 占⽤ 更多 記憶体 資 三原 , ,

2 程式变 ⼤ 使讀取⼯作 需 耗費 更多 時間 把指令 從記憶体載入 CPU 內


, 。

⽬前 就 算是 ✗ 86 處理器 內部 執⾏ 的 其實是 類 RISC」 指令 集 為了 能做86處理器 順利 執⾏ 會利⽤


, , ,

解碼器 將 原本 複雜的 指令 翻譯 成 類 RISC指令 。


⽽ 就 算是ARM 架構 ,
其使⽤ 的 仍是類 RISC⽽ 非原 RISL
因 些 仍 需要 有 解碼器 但 因 ARM 先天上 與 類 12比較接近 因此 解碼相比於 86 更加 容易 些 此 即 ARM 能耗
, ,

,

能夠 低於 ✗ 86 的原因 之⼀ 。

Re Order Buffer ( ROB


-
重排序 緩衝區

假設有 ⼀
條指令 集 由 2 個 指令 組成 但 第 2個 指令 能夠 執⾏的 前提是要 得到 指令
, ,
1 的 執⾏ 結果

指 令 I 指令 2

分⽀預測 先猜 ⼀個 指令 1 可能的 執⾏ 結果

亂 序 執⾏ 在執⾏ 指令 ⼯ 的 同時 把 前⾯ 猜的 結果直接 先 丟給 指令 2 使其 能 同時 和指令 1 執⾏


, ,

ROB 若 指令 2 執⾏ 完 時 指令 1還在 執⾏ 就會把指令 2 的 結果先 丟到 ROB 內 當 最後指令


, , ,
1

執⾏ 完畢 時 如果結果同 猜 的 則直接 輸出 12013存 的 結果 若 不同 則 重新 執⾏ 指令 2


,
,
, ,

結論 若處理器 的 12013 越⾼ 代表其寬度越 ⼤且 能 容忍的 产


:
,

Iscomplement 2 進制 轉換為 1 0進制 讀 法

規則 第 1 個 攻字 均 代表其 正 偩 号
: ,
0 為正 (

昨 1,1 為 負 ( 1):-| ⼀

ceg 8 bit -1 )
,

若 為 正 玫 則 後⾯ 的 7個 坆字直接加起來即 為 1 0進制 之表⽰ 法


,
-

第 1 個 是 0 其實 也 可以8個 加起來
若為負收 則 由右 ,
左看 ⼀個 ⼀個 ⽑⽂字 照抄 直到 抄 下第 1個 ⼯ 後 開始抄相反的 攻字
, ,
1 → 0/ 0 → 1) ,

所得 編碼 8個 坆字 加起來再加 負 号 即為 10進制 之表⽰ 法


(eg 8 bit )
,

eg.li
6
0 1 1 1 1 1 1 1 = 2 +25+2 +22 +2'+20=1 2 7
'
0 0 0 0 0 0 1 0 = 2 = 2
0
0 0 0 0 0 0 0 1 = 2 = 1
0 0 0 0 0 0 0 0 = 0
8
1 1 1 1 1 1 1 1 o o o o o o o 1=-20=-1 ( 2 -
2 55 ) = 1 → -

1
'
8
1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 = -
2 = -
2 (2 -
25 4 ) = 2 → -
2
8
/ o o o o O O 1 0 1 1 1 1 1 1 1 = -
1 27 (2 -

1 29 ) = 12 7 → -
12 7
1 28 8
1 o o o o o o o 1 0 0 0 0 0 0 0 ⼆ -

(2 -
1 28 ) = 128 → -128

( 記得 加 負 号 )
快速 算法 設為 8 bits 則 若 為 負 号 直接 8 個 收字 相加 再 將 ,
, ,
28相加 結果 該2進制 的 10進制 表⽰法

Machinelnstruction
指令 之代碼 執⾏ 动 作 之位址資料

2
bytes

对 應之指 ⾦ 資料 所在 將 存在 rgstern 0,5的 資料 儲存 ⾄


:
資料 ⽬的地 :

memcgcell 的 A7位址
"
" " "

store 5
registerno ,

nmemgcenmi ( A7 ⼆
10100111

以 此 範例 為 8 bits 來說 為 28
⽽ CPU ⽀援的 最⼤ 記憶体 的 ⼤⼩ 即 以 memgcell 的 位元 玫 決定 256
bytes

,

fetch :
指令 集例⼦ :

1
Program Execution

dock 時脈 每 秒 可以執⾏ 下 圖 的 機械週期 多少 次 ⽬前 主流电 腦 clock ≈ 3


:

1 次 s

Fetch Decode Execute

從記憶体 中取出 下 ⼀個 要 在 IR中進⾏ 解碼 執⾏ 攻中 所 要求的指令


執⾏的指令 並 將 ,
比 增加 I.

把 1变成 0 把 0 变成 I 把 1 变成 0
or

Logic
原始 变成 I
Bit Operations
0

加入

產⽣結果

Shift Rotation Contrdler

可 ⽤於 進 健位 eg 叫⼼
,

在進 健位的 同時 不使其正負 号 改变

⽤途 負責 把 外接 的 資料 集中 後再 ⼀次回傳 CPU
ormemory

Othercommunication
Memorymapped V0
DMA 只要 經過授權
Direct
Memory Access :
,
controller
V0 as Load store :

可以直接 從memory 讀取 資料⽽ 不必 經過 CPU 同意


,

Handshakingi 其他設備 在進⾏ 寫入 得 出 時都要通知 CPU


且 為 双 向 溝通

Trans.ferrateibitpersecondbps.kbps.Mbps.i
Pipelining 線路管線化

⽬的 使电腦 能夠 同時 進⾏ 多 條指令 不停 下來等待 ⼀個 機械週期 結束後再 对 下 ⼀個 指令 進⾏ ⼀個 機械週期 , ,

⽅式 當 电 腦 在進⾏ 指令 1的 其中 ⼀個機械週期 三 步驟之⼀ 時 同時 執⾏ 下 ⼀個指令 2 的 機械週期 三 步驟之⼀


:
,

問題 當 指令 2 之執⾏ 與 指令 1 的 執⾏ 結果有 關 時 指令 2會 因此⽽ 停⽌ 並 等待 指令 1 執⾏ 完成後再 執⾏ ,


.

因此 雖然就 理論 上執⾏ 效率會達八 倍 n 為

pipeline 玫量 ,
如右 圖 n= 3 ,
但 實際上 不會 , 指令 I 指令 1之執⾏ 結果

egconditionaljumb 條件 跳位 ⼀

; 在 滿⾜某 指令 2

指令3
個 指令 的 執⾏ 結果下才 會 跳位 .

A B

hrallelize
⽅式 利⽤ 把原本 會受前 程式執⾏ 結果影 响 的程式進⾏
:

不同
調整 後拆 成 多 條 互不影 响 的 程式 分別 交給 ,

執⾏ pipeline
的 CPU 核 可 ,
以達到 的 ⽬的 ,

問題 : 不 是所有 程式都 恰好 能拆解 執⾏ 且 ⽬前 的 电 腦 ,

還 沒聰明 到 會 ⾃⾏ 改变執⾏ 程式以加速執⾏ ,

A 原 : : A的 ⼆
Alllx 2 後 A 13 ] =
A [1 1 × 4 A 1 4 1 A 12 1 4
= ×

Set 仙⼦ 友 A [ 5 ] A [3 7 4 A [ 6 ] A [⼩ 4
A [ 3] Alzjxz = × =
=

X2 x 2
X2

A [81⼆⽉ 161 ✗ 4
✗2

A 17 ] A [5 7 4 ×

A [3 ] × 2
=

A 14 了 =
i. 友 2 友 4友 8 友 16k ,
-
i :
, , ,
i
1 2 3 4 5
拆 出的 2種程式 互不 影响 故 雖然 仍
A[ i) =
A [i -
1 1 × 2 ,

4 4
受到 前 ⾏ 執⾏ 結果牽制 但 拆 成 2
✗ ✗

種能夠 提升 2倍 的 執⾏ 效率 ,

B :
原 A [4 ] : =
A 12 ] t A [1 ] 後 A 14] A [ 2 ] + A 1 1 ] :
A 15 ] A [3 ]= t A 12 ]
A 1 5 1 A [3 ]
= t A 12 1 A [ 6 ] A [ 4 了 ⼗ ABI =
Al 71⼆⽉ 1 5 ] t A [4]
A [ 6 ] A [ 4 7 t A 13 ]
=
A [8 ] A [ 6] = t A [5 ] A 19 ] A 17 ] + A [ 6 ]
:

: ˇ

A [1 0 ] =
A [8 ] t A [ 7 7 A [ 1 1 ] A [9 了 吼 81
=

Ali ] =
Ǎlizlt Ali -31 i i

: 每 列 左右 2種程式會 同時 執⾏

,
: ,
雖然 1 種程式仍 會 需要 另 1種的 執⾏ 結果
⼀ ,
但當 它 需要 時

該結果 因 位於 前 列 所以已經執⾏ 完成 了 故能夠達到 ⼀

,
,
2 倍 之執⾏ 效率 ,

'
Speedup Amdahsaw : Gain =

p
+5
a 執⾏ 效率
s

Piparallelizable 能夠 parallelize 的程式 比例 0 ≤ P≤ 1

Siserialonly 不能 parallelize 的 程式 比例 0 ≤ Sfl ,


St P =
1

M CPU之執⾏緒 攻量 set P 0.8.5


:
,
= ⼆ 0,2 ,
溜M → 的 時 G之極限 5
另外 ⼀種版本的 公式為 : Gain :
jpc ,
其中 化為 ⼤量 parallelize 上的 資料 溝通 導致 Gain 反⽽ 會 因此 下降 ,
⼀些

最後的 趨勢 圖 反⽽ 會 下降 ,
Ch3 作業系統 Operating Systems

Operating System 05 ⽬的 :
盡 可能的 使⽤ 硬体 的 性能

Batch Processing
運作 ⽅式 資料 進 出 FIFOFirst-In.First.at
: ⼀

, 不同 的 任務 全 丟 給 电 腦 項 項 慢慢執⾏ ⼀ ⼀

, 电 腦完成 項並產⽣ 結果時再 讀取下 項 任務


⼀ ⼀

(佇列 )

發展背景 尚未有 螢幕 出現 通常 是軟体⼯程師 將 寫好


;
,

的 程式碼送到 电 腦 商 其再 把結果打 在紙 上寄 回 , ,

Interactive Processing
運作 ⽅式 : 电 腦 會 ⾃⾏ 依先後順序 執⾏ .mn Computer
通常 結果 出來就能使⼯程師 收到 ⼀

onlywithscreen
andkeyboard
發展背景 ;
已有 螢幕及鍵盤 但 变成 ,
:

多使⽤者 1 台 主機 ditterentusers

Othergpesof 05

Realtimeiresponsetime 反應 時間 ⾄關重要 故通常 ⽤於 軍事 1醫療 其中 responsetime 為 ⼈把程式 輸入


, 。

电腦 經執⾏ 後把 結果傳回 ⼈ 所 花 的 總 時間
, ,

t.iii.in
Tmesharing 將 時間 軸 分成好幾段 每 ,

⼩ 段 只 執⾏ ⼀
項 任務 但 因為 ,

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
time
每 ⼀
⼩ 段 的 時間 t 对 ⼈類來說 極 ⼩ 因此會 以為 电 腦 同時 , ditterenttasks

執⾏ 了 好幾 項 任務 .

Ontextbook :

Software Classification

由於
utiliy 的 分類界線模糊 , 因此 可以直接 ⼤略 分成

Application 和 Operatingsystem 兩 ⼤ 類別 ,

Shell
功⽤ 主要 ⽬的 為 电 腦 與使⽤者 溝通的橋樑 使⽤者 接觸 到 的 ⼀切
:
,

均 為 Shell 如 ⽂字 圖像介⾯ Graphics User Interface GUI


,
:
Kemal
應⽤ 部分 通常 應 ⽤於 檔案管理 裝置 驅 动 資源 調度 」 等 其中 內存 管理 ⽅式有 虛擬記憶 体
' 「
:


內 存 管理 ,

虛擬記憶体 :
利⽤ 種稱作 ( Paping 的 ⽅式 即將 當 前 內存尚未⽤ 到 的 資料 先 丟到 SSD 等硬碟內 使內存 能空出

,
,

Linux
簡介 : Linux 系統其實 只 是 Kemal 的 部分 其作業系統的 圖形介⾯ 設計 則 是 GNUCGNU Not Unix ) ,

⽽ Android 的 Kemal 是基於 Linux 設計的 , Apple 則 是基於 BSD (Berkelgsoftware Distribution)

Bootstrapping ( Booting) 可以在 BIOS Basic


Inputloutputsystem ) 設定
Volatilememory :
易 失性儲存 器 g 如果把主機板的 电 池拿掉
,

,
BIOS會 回復原廠設定

① ②

Step : ⼀
開始 Bootloader存在 內存裡 ,
05存在硬碟內 ,
當 电 腦 啟动 時 Bootloader 會 將 05
,

傳 進 內存裡 然後把控制權交給 05 ,

Process
Schedulei 負責 安排 指令 的 執⾏ 順序 包括 每個 指令 當前 應處於 的 狀態 為 等待 中 1正在 執⾏ 1已執⾏ ,

Dispatch 負責把控制權 表給 CPU Scheduling 所指定的 指令


:
, 即 執⾏ Schedule 所 排之指令 ,

以及 負責 contextswitchlprocessswith ) 的 執⾏ 通常 在 多⼯ / 中斷 處理 時會 使⽤ ,
,

Contextswitch 每 執⾏ :

⼩ 段程式片段後會 切 到
另 ⼀
个程式片段執⾏ ,
當程式有 在執⾏ 的 Imeslice
相比 於 Contextswith的 時間 ⼤很多 ,
2條 Process AIB

的 執⾏ 效率就 會⾼ 然⽽ 此時 如果突然 有 ⼀個 新 ,

的 Process 要 中斷 (interrupt ) 進來 就 會 需要 等 比較 ,

久 ⼼ 要把當前 的 Timeslice 執⾏ 完 才 能 switch )


反之亦然 .
,
Semaphores
⼀種機制 / ⽅法 , 當存取共享資源無法同時被多個執⾏緒存取時 便會使⽤此機制 , 。

該機制⼤致如蹭有⼀條單向的軌道次只有⼀台火⾞能通過台火⾞後進入 就要改变号誌燈 , ,
使
下⼀台火⾞看到後要在外⾯先等待 ⽽當原本的火⾞通過後 就要再把該易誌燈改回來 讓下⼀些火⾞知道可以進, , ,

當中 該單向軌道即好
,

Criticalregion ,
⽽在程式語⾔當中 , 亦有類似的機制 Mutualexlution ( Mutex )

Deadlock ( 死結 ) Starvation (飢餓 )

定義 : 當 2
個以上的運算單元同時想取得同⼀資源 然⽽双⽅都在等待对⽅停⽌執⾏ ,
,
故卡住

條件 :
只有當下列了個條件都滿⾜的情況下才有可能發 兩者為必要⽽非充分關係⽣
( 不是⼀定 ,
1 競爭的是不可共享的資源源
2
資源可以部分擁有 即双⽅分別擁有部分資源
,

3 -

但資源被分配 就無法被強⾏取回
,

例⼦
Dining philosophers problem 哲學家就餐問題 ) / 火⾞問題
:

競爭的資源即為筷⼦競爭的資源即為交叉点

⼀但有執⾏單元等了非常久卻仍然等不到所需資源時 便會 成为的情況 Starvation (飢餓 ) 解決的 ,


,

⽅法是加入 Aging 老化 ) 因⼦來調控執⾏的優先級別 , 等待越久的執⾏單元便能獲得較前⾯的優先順序


(

Virus 為被动攻擊 , 不執⾏就沒有事 , 不會⾃⾏擴散攻擊


Virus / Worms 差異 :

Worms 則為主动 就算不執⾏也會在後台⾃⾏攻擊


,
Ch4 網際網路 Networking and the Internet

Networkdassification
LAN Local Area Network : 即 區域網路 通常 涵蓋 較 ⼩ 的 範圍 且 分配到 的 功通常 為
,
,

虛擬 IP 因此外部 ( Router之外 ) 的 設備 無法得知 其 確切 IP 位置


,

WAMW.de/treaNetwork): 即 廣域網路 涵蓋的 範圍 極廣 , ,


但 其 Router 所 分配的 IP 為 實 体
位置 故 其 IP 為 確切 位置
, 、

Network
Topology 網路拓 撲 結構 & Protocds 協定 )

常⾒的 Topology 有 Ring 对腐 協定為


Tokenring
:

Bus 对 應 協定 為 CSMAKDKA )

Star

Tkenringi 特 桌為 環狀 結構 但 資料 只 可 單向 固定 為 順使 時針)傳送 , ,

整個 環 只有 1個 Eken ,
當 ⼀個 結 桌拿 到 Token 後才能 發送 訊息 傳送 的 ⽅向 固定 為 順使 時針 每個 結 桌 , ,

拿 到 訊息 後 ,
如果是給 ⾃⼰ 的 就 收下來 如果不是就 往下 ⼀個 傳 依此類推直到 傳 到 ⽬標 ⽽ Token 同理 ,
, , ,

拿到 後如果沒有 要 發送 訊息 就 再 往 下 個 結 桌傳送 ,
以此 來避免 同時 有 收個 訊息在 傳送⽽ 卡住 ,

CSMAKD Carriersense Multiple Access 載波偵聽 多 路存取 withldlision Detection 碰撞檢測

特 桌 為 資料 傳送的 ⽅式 是 ⽤ 廣播 的 在 同 ⼀個 ,
Bus 上的 ⼈ 全部 都 會 收到 多 路存取 ,
且 此 協定⽤於 有線

⼄太網路 , 每次要 發出 訊息前 會 先確定整個 Bus 上 沒有 其他 ⼈要 發⾔ 載波偵聽 ,


如果沒有 ⼈ 則 直接 發送
⼀旦 遇到 剛好 還有 其他 ⼈也要 發⾔ 時 就 所有 要 發⾔的 ⼈⼀起 等待 隨機秒 收 每個 ⼈⾃⼰ 決定⼀個秒 坆等待 後
, ,

時間 到 就再 載波偵聽 ⼀次 如果沒有 ⼈ 就 能 發⾔

, ,
⼜ 碰到 的 話就再來 ⼀次 碰撞檢測 通常 ⼜撞 到 (即 2 ⼈
,

的 隨機秒 坟 恰好相同 的機率 其實 不⾼ ,

CSMAKA Carriersense Multiple Access 載波偵聽 多 路存取 withldlision Awidance 碰撞避免

⼤致上 與 ⼼ 雷同 ,
不同 的 奌在於 此 協定應 ⽤於 無線 ⼄太網路 ,
也 因此在載波偵聽上 可能有 訊号 延遲 問題 誤 ,

以為 ⽬前 沒有 其他⼈要 發⾔ 結果 發⾔ 剛好 就 跟別⼈撞 到 因此 當 它 載波
偵聽 沒有 其它 ⼈要 發⾔ 時 不能立⾺ 發送

, , , ,

⽽是要 再 隨机 等 段時間 後再 載波偵聽 ⼀次 如果仍然 沒有 ⼈要 發⾔ 便能直接


發送訊息 亦 即 多 了 ⼀次等待 以

, , ,

降低 碰撞之机率 .

恰好 同時 發送⽽ 碰撞 時 :

資料 會 因此⽽ 產⽣全⾃ 誤 ,
即會 ⽤ 到 前⾯ Chl 說 的
Error-lorrectinglode.ECC)
Wireless Access
Point LWAP
無繳線存取点
定義 為⼀種連接無線網路⾄有繳線網路的裝置, ⼜稱為無繳線基地台
:

通常為⼀個單獨裝置 並透過有繳線網路連接⾄路由器 亦能與路由器 , ,

整合在⼀超
無線網路的通訊協定為 IEEE 制定的 80211 b ,

g ,
i ,
n ,
ac .

雖然右圖的 Wi Fi 没有辦法直接彼此連接
_

, 但只要能連接到相同的
AP 位置 ,
資料便能透過 AP 來傳送

Connecting Compatible Networks Repeater Bridge Switch

Repeater ,
bridge ,
Switch 三者均只能連結同個協定下的網路結構 , 且均有加強訊号再傳送的特点

E F A ㄢ E F A 召

G H C p
G H H c P

J
Repeafer &
Bridge :

I
端的資訊只其中
連結 2 Repeater 的功能 :

當 A 要發送訊息給 PBCDEFGH 都收的到 K

A 的訊息 但 ,

Bridge 的功能則是 :
當 A 要發送

訊息給 D 只有 ,
BCD 收得到亦即 Bridge 不會 Switch :

將不必要的訊息傳過去另⼀個 Bus 如此的 ,


類似於可以同時連接 3 個以上 Bus 的 Bridge 當 A 要發 ,

好處是如果同時 E 想傳給 H 時 ,
2 個發送 送訊息給 D 只有 BCD 收到
要發送訊息給的
⽽當 A ,
,

任務可以同時進⾏ 因此可以提⾼傳送效率 ,
,
K , 只有 BCDHIJK 收的到

Connecting Networks
Inc ompatible Router

Router 負責連結改個不同協定的網路結構 如有線連接無線 ,


Interprocess Communication

1
Sever client -

: Peer -
to -

peer
P2 P :

架構 :
由⼯ 個对應多個
Sever Client 架構 :
為同不皆邱的互相設備連接
溝通⽅式 由 : Client 端發送請求給 Sever 端後 Sever 溝通⽅式最常⾒的其中⼀個應⽤為 bifforrent 協定 當越多
,

執⾏後傳在給 Client 類似於以前的⽅式 ,


,

使⽤者下載過 ( 不⼀定要同時 ) 下載速度越快 ,


,

假設 B 從 A 下載⼀個檔案 ,
該檔案分成數分( 10 ]
當 B 載了 20 份 ,
還有 8 份沒載
,
則 B 已載完的
20
份同時要成為⼀個新的檔案原 ,
使 C 能夠從 B
下載該檔案⽽不會占掉 A 的頻寬 ,

Internet Architecture
由⼀組織 ICANN 負責把 Domain 分到各地志再由各地的 ISP ( InternetServiceProvider ) 負則播給各使⽤者 ,

其中 台灣的如
ISP 中華电信 台灣⼤哥⼤ ⽽各個 由藉
Domain
Gateway ⼀走連接⾄ Internetcloud
:
, …

IPA dressd
IP ( Intermet Protocol ] : IPv 4 32 bits ,
IPv 6 [ 128 bits ) ,
因 IPv 4 不使夠购⽤了所以新定了 IPV 6

Domain Name & Host Name

Domain Name 域名 :

為了使網址更容易記 因此使⽤ ,

DNSDomainNameSystem 域名系統的命名⽅式 由域名的第⼀級 (頂級域名 ) ,

e .

gcom ! . met . us / tw , 再往下第⼆級的⼆或名 等

Host Name 主機名稱 :

為⼀台裝置了設備在網路中⽤來給其它裝置設備識別之⽤途
HTTP Hypertexttransferprotocal
定義 :
中⽂名稱為超 ⽂本 傳輸 協定 為 種使⽤者 和 伺服器 之間 請求和應答 的 標準 通常 使⽤ TCP 協定
,

, ,

溝通過程 ⾸先 由 客⼾ 端 usergent 向 伺服器 端 (originsever) 發送 HTTP 請求 ⾄伺服器 端 指定的 Port


:

(預設 Port 為 8 0 ) ⽽ 應答伺服器 再把其 資源 ( HTMT檔 個 像 ) 回覆給 客⼾ 端


,
. ,

與 HTTPS 之不同 :
HTTP 傳輸 的 過程 中 ,
其 資訊 均 為 明 ⽂ 公開 任何⼈ 從中 攔截修改內 ⽂ 客⼾ 端和 伺服端
, ,

均 無法察覺 ⽽ HTTPS 則 是會將 資料 ⽤ SSLITSL 去做 道 安全 鎖


,

URLN niform Resourcelocater 中⽂ 為 統⼀ 資源 定位器 ,


即 俗稱的 網址

HTML Hypertext Markup Language


定義 為 種撰寫 網⾴ 所 使⽤ 的程式語⾔ 主要 為 骨架的 部分

, ,
⽽ CSS 則 為 外觀 JS 則 為 動畫 ,

XML extensible Markup Language


定義 為 種 將 資料 轉換成⽂字 的 標記 式語⾔
: ⼀

與 HTML不同 的 奌在於 XML 主要 設計 來傳送1攜帶 訊息 ,

⽽ HTML 主要 則 在於 表現 1展⽰ 收據 ,

IPS Intemet Protocal Suite

定義 : 中⽂ 為 網際網路 協 議長 組 將 網路結構 區分 成 玫層 ( Lger) , ,


也 因為 其中 網路層 的 IP 與 傳輸層
的 TCP 協定 為 該套組 中 最 早通過的 協定 因此 ⼜能稱作 TCPIIP Suite TLPIIP 協定 套組) ,

分層 i
應⽤ 層 Application :
負責將 欲傳送的 訊息 附 加上 其 ⽬的地之位址 ,
此層 通常直接 與應⽤程式介⾯ 結合 n_n

傳輸層 ( Transport ) 將 訊息 切 成 收個 封包後繼續傳送 ,


亦 具有 將 得到 的 封包拼起來的 功能 nn

網路層 ( Network ) 在收個 封包上再 附加 ⼀個 中繼站 位址 由 其猜測 ⼀個 可能連得到 ⽬的 的 另 ⼀個 中繼 器 以 此


, ,

⽅式 間接 傳 到 ⽬的地 即 決定最佳路徑 亦 具有 ⼀定的 流量控制 功能 以及確認


, , ,

收到 封包 的 ⽬的地 確實正確 (IP )


第⼀層 (最低 層 )

連接層 ( Link ) 照著 Network 給 的 中繼站 位址 (Intermediateaddress ) 進⾏ 傳送 .vn


:
TCP ( Tra
ns.missionlontrolProtocolvsUDPUserl?atagramProtocolTCP:
在每次要 發送 1 個 封包 前 會 先通知 另 端 , ,
等 到 另 端 回覆 0k 才 會 發送此 封包 當 另 端 收到

, ,

並 確認 沒有 內容 或 順序 上 的 錯誤後 會 回傳 ,
0K , 並接續 下個 封包 但如果出現 內容 或 順序 上 的
,

錯誤 就不會 回傳 任何 訊息 發送端 段 時間 都 沒有 收到 回覆 便會再 重新 傳送 ⼀次 封包


, ,

, ,

UDP 與 TCP的 不同 :
UDP 不會 做任何 確認 的 溝通动作 就 ⼀直 不斷 發送封包 好處是效率 ⾼ 但 出錯 率 ,
,
,

⾼ 適合 串 流 等 較注重效率 的 部分
, ,
TCP 則 是效率 差 但 正確率 ⾼ ,
適合 長距離運輸 ,

SSL Secure Sockets Layer


定義 中⽂名稱為 安全通訊 協定 利⽤ 公 ( Public) /私 ( Private) 鑰 來進⾏ 訊息 的 加密 公鑰 公開 於 網上 任何⼈
, , ,

都 能 知道 ⽽私鑰 只有 ⾃⼰ 知道
, ,
2鑰 互為 及函 收
,
因此可以⽤ 公加密後再 ⽤ 私解密 亦 可 ⽤私加 密 公 解密 ,

A 希望 傳送 則 只有 13看 得到 的 訊息 : 1 A 先利⽤ 13的 公鑰 对 其 內 ⽂進⾏ 加密

13 公加密 ,
13私解密 2A 將 加密後的 訊息傳 給 13

3 13 收到 後再 ⽤ ⾃⼰的 私鑰 進⾏ 解密⽽取得 內 ⽂ ,
就算 有 ⼈ 中途攔截
A加密後的 密⽂ 沒有 13的 私鑰 也 解 不 開 原⽂
, ,

13希望確定收到 的 密⽂是八 傳 的 ⼀
: 1 A 先利⽤ ⾃⼰的 私鑰 对 其 內 ⽂進⾏ 加密

A私加 密 忪 解密 ,
2A 將 加密後的 訊息傳 給 13

3 13 收到 後再 ⽤ A 的 公鑰 進⾏ 解密⽽取得 內 ⽂ 確保是㤓 ⼈傳來的 但 , ,

因為 任何⼈都有 A的 公鑰 因此攔截的 ⼈可以⾃⾏ ⽤ A的 公鑰 讀到 其 內 ⽂


,

兩 個 ⽅法可以結合 以 解決這些 缺桌 : 公鑰 有 可能是假的1被修改 ;


iertiticate Authorig
A 先 ⽤ A私加 密 再 ⽤ 13公加密 13再 ⽤ 13私解密 再 ⽤ 昖解密
, , ,
由 ⼀個 具 公信⼒ 的 第 三 ⽅ 組織 ⼭ 認証該 公鑰 是否正確 .

內 外 外 內
RSA 加密演算法
⽅法 : 1 先⾃⼰定 2 個質改極⼤的 ≈ 21024 P .

2
可以得到 N 8
利⽤ pxGP

3 ⽤歐拉承數可以得到 ≤N ~p
且與互質的正整改有必個 =
[P -

1 ) (8 -

1 )

4 再⾃⼰找⼀個與互質的改 e [通常偏⼩ ,
從 2 ,
35 由⼩漸⼤逐⼀檢查 找到⼯個即可當 e ) ,

5 先將 e .

中⽤輾轉相除法列出 (最後應得到 l ) 然後由 ,


1 = 逆推 寫成 1 ,
=
axptbxe
其中 b 即為所求的 d 其滿⾜ dxe ,
≡ 1 ( mod ψ )

將原先定的
G
6 P 丟掉 ( 、

權摧毀⽽不能被別⼈知道 )

7 (N ,
e ) 即為公鑰 ,
(γ d ) 即為私鑰 ,

8 設 A 要傳給 B 訊息 m
,
則 A 就⽤ B 的公鑰 (γ , e ) 加密 : me ≡ S ( mod γ ) S ,
即好加密後的密⽂

9 B 收到密⽂ S 後 ⽤其私鑰 ( N , d ,
) 解密 : Sdm
) ( modN 即可得到原⽂ m

範例 " P = 3 ,
q =
11 ∴γ= 3 11 × = 33 , φ= (3 -

1 ) ( 11 -

1 ) = 2)

1 = - 2 3 ( 20 18 )
I
3 20 3 = - -

⽽ e : 2 3 5 7 . … e =
3

, , , ,

2
=
3 -

[ 20 -

6 ×
3 : d = 7

驗証 exd =
21 ≡ 1 ( mod 20 ) v
( )
:
(7)
30
=1 +
x 20 -

∴ 公鑰 : ( 33 ,
3) ,
私鑰 : ( 33 77 ⽉ ,

範例 ) P = 5 ,
q 19 =
: N 5 = ^ 19 = 95 , P =
(5 -

1 ) ( 19 - 1 72

3 R
52 2 14 ∴ 1 5 4 =
5 2 ×
2
11
2 =
=

⽽ 5 7 5
-


-

e : … e


, , ,


,


- 2 72 70 ( -

) -
5 29
驗: = 1 ( mod ) 72
045
exd
5 ( 72 14 5 )
=
= -
2 -

私鑰 ( 9529 ) # [ ) 72 ( 29 ) 5
( 955 )
+ ×
2
公鑰
= -
×
:
∴ :
, ,
/

"
,

11
歐拉函數公式証明 ψ= [
P- 1

) [ ε- 1 ) :
杉 "
"
剩下的個数即好中的
,

∵γ= p .

q 且 p q 均为質数 .
: EN 的⾃然数中 ,
只要扣掉服 q 的倍玫 ,
"
A =γ= q ,
B
=☆= P ,
C
== 1
∴①= N - - A B

+ C =γ - q

- P

+ 1 = Pq - - + 1 q P

=
(
P ) ( q 17
-

#
-

費⾺⼩定理 ( Fermat '

s liftle theorem ) :

法 P 多質攻 ,
a 為任意正整改 ,
則 : aP ≡ a (modP )
⼀般化後
α
i 系質改且
)f
modP , a 互質 , : " ≡ 1
"
則 (
証明 加1解密 時 之算式 關 像 北 三 Slmod N ) 及 5 些 mlmod N ) 互通且 正確

⽬標 即 証明 m 些 三 mlmod N ) āblmod P ) blmod E)


証明 ablmodpq) →
,
⽒三

ak.htb-kq.tn?kP.qtli edEl(modd)edEl(mod(p-D):seted=ltkcp-D
medcmod N )

由 解密 時 的 開始 ; 三

mlmk)竺 mlmod P )

mtmlmk)
"
mk 必和 P互質 ⼜由 費 ⾺ ⼩ 定理 (兆)竺 1 (modp
tm ,
P 互質 ,
:
,
:

imtmcmodp ) ,
同理 可 得 mhnlmod E)

ifm , P 不互 質 令 ,
mhp ( 河 為 質 玫 : 不互 質 則必 為信 玫 關係 )

imdchpf.ch P )些 0 (modp) ilhp烂 0 三 ( hp ) (modp)


imtmlmod P) 同理 可 得 mhnlmod E) ,

imtmcmodpq ) mhncmod N ) 由 第⼀ 式 可 得 med※ 三 mlmod N )


, ,

Ch5 演算法 Algorithm


定義:解決問題的邏輯思維(e.g.如何把蘋果做成⼀杯果汁)可以列出下列規則:

1 輸入 : 必 有 0 個 或 以上個 輸入 資料 由 Donald Ervinkunth

2 輸出 : 必 有 1個 或 以上個 輸出 該輸出 即 為 演算法計算 的 結果 ,


在 其著作 〈 The Artoflomputer

3 明確 性 (確定性) 演算法的 敘述 必須明確⽽ 不模糊


:
Progamming ) 中 列出 之定義
4 有限性 演算法在執⾏ 有限的 步驟後會 ⾃ 动 結束⽽ 沒有 無窮 迴圈 且每個 步驟在 可 接受的 時間 完成 ,

5 有效性 (可⾏性 ) : 指 在 現實 中 其每個 步驟 均 是能夠 實現 的 。

表⽰ ⽅式 常⾒的 ⽅法有 流程圖 ( Flowchart ) 或 Beudocode


:

Flowchart 通常 在步驟比較少 的 時候比較適合 ⽤ (≈ 5 0


: ~ 比個 ) 再 多 則 不適合
, .

Beudocode 比較不 正式的 語法 類似和 英⽂結合 後比較⽩話 的 程式語⾔


:
, ,
Insertion Sort 插入排序 法 )
⽅法 將 第 i個 物件 插入 到 前⾯ 叫 個 已經排序好」 的 組合 中 得到 前 嗰 排 序 完成的 組合
,
,

當前 2 個 已經排序 完 , 第 3個 依照 排序 插入 前 2 個 中 ,
得到 前 3個 排序 完的 組合 再 往 下個 進⾏
, ,

依此類推 即可 得到 排序 完畢 的 組合 ,

Beudocode 表⽰ :

由 2 → 不 不斷 迴圈 作

找到 其欲移⾄的 位置
Binary Search 時間 複雜度 ( Timecomplexity ) :
gn ↓
嘩 資料

問題 欲從 ⼀
堆 政列 中 找到 1個 收 1欲把 ⼀個
1 政按照 ⼤⼩ 順序 插入 ⼀

串 排好 的 坎 列

⽅法 ; 每 次 只要 找到 中 位攻 並與 其 比較 ⼤ ⼩ 即 可 少 去 ⼀半 收量 的 檢查 ⼯作 依此類推再分成兩 堆
, , , …

Divideand Conquer 17 & ( 中⽂為 分治 法

⽅法 將 ⼀個 原本 非常 複雜的 問題 逐⼀ 分解 成 簡單 的 問題 直到 化 簡 成 能夠直接 算 出 結果的 問題


:
, ,

然後便能 ⽤ 該⼦ 問題 及推算 回去原本的 複雜 問題 ,

應⽤ :
Binarysearchl Mergesort ,

gnamic Programming DP

⽅法 為 7
1 & (分治 法的 延伸 可以說 ,
ynamic Programming Dividandlonquert Memorization

因為當⼝ 比 把 ⼤ 問題 拆 成 改個 ⼩ 問題 時 很有 可能 改個 ⼩ 問題 中 有 不少 是相同 的 問題
, ,
但 ⼝ &(

卻 仍 會 对 所有 ⼩ 問題 都 重新 運算 ⼀次 以得到 結果 ⽽ 叩 則 解決 了 這個 問題 , ,
每當 出現 重複的

⼩ 問題 , 便會 分配 ⼀個 記憶体 空間 存放 該問題 的 对 應 答案 电 腦 就不必再重 算 ⼀次 , ,

應⽤ hortestpathlMatrix-chainmultiplic.ation ,
Shortesthth
Sh…有 Shortestnxtshortestxē
⽬的 求 出 A : → E 的 最 短路程及 ⽅式

⽅法 核⼼ 概念 即 當 A → ✗ → E 為 最佳 解 時 A
:
,
→ ✗ 與 ✗ → E 均 必 為 最佳解 依此 ⽅式逐步 分解 即可
,

1 ⾸先 由 起 点向 外連 連到 的 結 桌記錄下 前 ⼀個 結 桌(此為起点)的 編 号 以及起 点⾄此 桌的 總 路徑長


,

2 再 由 剛剛 的 結 桌向 四周 連 同樣記錄下 前 ⼀個 結 桌的 編 号 以及起 点經 指定路徑⾄此 奌的 總 路徑長


,

3 依此 ⽅式重覆進⾏ ,
直到 結 桌剩 ⼀ ⼀
條 出路 時 比較結 点上 累積的路徑長 , ,
刪 去長的 保留 最 短的

4 結 桌找 出 最短的 路徑後 即 可 將 該結 桌打 叉 不必再看 , ,

5 最後得到 的 即為 最短 路徑 ,
⽽ 依照 編 号 往 回 推 即可 得到 該路徑之走法 .

-
17
: 17 : 7 ( 4 1 3)
-

A 3 1
3 : 8 (3+5)

.ee/t:5--
:

Bilt
Bi 4 (3+1) C : 9 ( 7 +2 )
#

Matrix -

chaiumultiplication 矩陣 鍵相乘
C =
AB
矩陣 相乘之運算 次 政 設 A 矩陣 尺⼨ Pxq ,
B 矩陣 尺⼨ ir ,
兩 矩陣相乘後得 ㄥ 矩陣 (尺⼨ Pxr)

⼆点 Aieihr A B ㄥ
當中 ( 矩陣 中的 任⼀ 元素 Cij
p .
q = p

( 矩陣 中的 每 ⼀

元素 均 為 A . 13 矩陣 的 各9 個 元素 彼此相乘之和 配 矩陣 內 共有 , q r r

Pr 個 元素 故 AB 矩陣 相乘共要 運算 (不合加法 只看 乘法) 8 Pr 次 ⽽ 其實 不同 的 相乘順序 運算 次玫不同


, ,

eg
兩 ⽅式差 了 1 0 倍
⽬的 設有 N個 矩陣 要連續 相乘 希望找 出 ⼀個 相乘順序 使得 運算 (不合加法 只看 乘法) 的 次 攻最 少 , ,

⽅法 : 假設N個 矩陣 最佳 解 時 的 最後⼀次相乘 是由 切 在 1 ,
~ 友和 (友 +1 ) ~ ⼼的 矩陣 相乘⽽ 得 ,
則 (1 友) 及
~

g) 们 的 兩 個 矩陣 ~
,
必定 也是 ⽤ 最佳 解 順序 運算 ⽽ 得 類似於 前⾯ 的 Shortesth ,

列 式 設有 胭 編 号 分別 為 Ai
: ~
名的 矩陣 為了 ⽅便設 ii 為 ,

組連續 攻字 即 ⼼ 的 ≤ N.AiAi-iA.in ,

當中 任⼀ 矩陣 因為 必須能和 前後的 矩陣相乘 故其 尺⼨ 必 有 其相似處才 能夠 相乘 , ,


故我們 可以定尺⼨ :

相乘後的 新 矩陣 尺⼨ (1不 候 ) : 相乘後的 新 矩陣 尺⼨ (是 你 ) :

Aii RMR ,
A.it?xl?n,Ai+zi1?,xl?iAklik,Ak+ikxhiAj-iP-iP-i,Aj:liB
⽽ mii 函式的 義意 為 Ai 名的 矩陣鏈在最佳 解 的 相乘順序 時 共 要 運算的 總 次 玫 : ~
,

miifmin.miktmktl.it/?iliB,ii
0 i (Ai 乘到 Ai 故不必乘 運算 次政為 0)
列 式可 得
, ,

, j j

切 在 友 , 友+1 Ai 服矩陣 鏈
~
A - Aj 矩陣 鏈相乘 最後 2 個 ⼤ 矩陣
時 為 最佳解 相乘為 最佳解 時 的 為 最佳解 時 的 運算 次 坆 相乘時 所 需 的 運算 次 政
運 算 次政

例⼦ .
最下⾯ 的 4格分別 為 mll.IJ.mn 2 ] ,

⼆ 0
有 4 個 矩陣 鍵 mb.37.nl4,4 了
A. 7 × 3
: ˙
⽽ 第 3層 因 只有 1 個 切 法 (中間 ) 故只有 1 個 ⽅式 ,

A. : 3x 1
m [ 1,2 ] = m [ 1,1 Jtml2,2] +7×3×1=21
A. : 1 x 2

m [2,3 ] =
m [2,2 ] + m (3,33 +3×1×2=6
Aizx 4
m [3,4 ] = m [3,3] tml 4,4 ] +1×2×4=8

第 2層 因為 有 3個 矩陣 要 相乘 因此 有 2種 切 法 故列出 2 種 後記下 比較⼩ 的 那組 , ,


:

m[ 1 3 ] .
= m [ 1,1 Jtm [ 2,37 +7×3×2=0 +6 +42 ⼆ 48 X
如 mll , 271mL2,37 在 前⾯ 已經 算過 了 故 可以直接 拿 來⽤ ,
,

此即 叭 动 態 規劃 ) 之 特性
m[ 1 .
3] = m [ 1,2J tml 3,37 +7×1×2=21 +0 +14 = 35 ˇ

m[ 2 . 4] = m [ 2,2J tm [3,47 +3×1×4=0 +8 +12 = 20 U

m[ 2 . 4] = m [ 2,3J tml 4,47 +3×2×4=6 +0 +24 = 30 X

·
第 1 層 因為 有 4 個 矩陣 要 相乘 因此 有 3種 切 法 故 同樣列出 3種 後記下 比較⼩ 的 那組 , ,
:

m[ 1 . 4] = m [ 1,1 Jtm [ 2,47 +7×3×4=0 +20 +84 = 10 4 x

m[ 1 . 4] = m [ 1,2J tm [3,47 +7×1×4=21 +8 +28 ⼆


57 ˇ

m[ 1 . 4] = m [ 1,3J tml 4,47 +7×2×4=35 +0 ⼗ 56 =


9 1 X

故 AAA 3A 4 之 矩陣 全連 其最佳 解 次 政 即 57 次 由 (Ai A) (Ai A) ⽽ 得 , , ,


| 把所有的加法常规項超学⼠ :
β x =+ 3 x +↑ dx ^+③ x + 1

AlgorithmEfficiency 3 只保留最⾼項 其餘志掉 ,


:
βλ^+ 3 x + 1 dx
3
把最⾼次項的像改志掉 dx ^
x

f(
:

Big -

O : n ) =
O (g ( n
) ( 上界 )

雪 c > 0 ,
n .
> 0 st .
n ≥ 20 ,
O ≤ f( r ) ≤ [ g(n )

定義 :
O ( g (n ) )
= {β ( n ) : 存在正整改 c
, no , 且对於所有 n > no
}
, 滿⾜ 0 ≤h ( n ) ≤
cgn )
即 找出⼀個函式 g ( n ) 以及常數 C 使得當輸入的資料量 n 超過 n 時
:
, 。
Cg
( n ) 為 f ( ) 之上限 n

最糟的情況下 lgu ] 會達到 則必⼤於實際指令執⾏次地旦


的成長率最多不會超過它 ⽽ εg( ) ,
,
n

表⽰此演算法之效率與
n : 輸入資料⼤⼩ 範例 % ( : n ) =
3 = O (1 ) -

量多寡無關 ,

φ( 程式在电腦中實際執⾏次改 f( 6n
3 3
n ) : u ) =
+ 5 n == O (n )

f(
10
∞= O
^

g ( ) 執⾏時間的成長率 n : n ) =
h (2 ) →
指攻增長極快

在最糟糕情況下 程式的執⾏次改 ( 上限 ) φ( (n )
=

c .

g( n ) :
,
n ) =
{ oon =
O v ? )

Big - Omega : fln )


= 2( g ( n ) (下
雪 C > 0 ,
n 0
> 0 s . t
, n ≥ no , g[ n )
0 ) ≤ fin
定義 :
>
(g ( ) ) { β ( ) 存在正整改 且对於所有 滿⾜ ≤ cgcn ) < f ( )
n =
n : C n
, 0 ,
n >n 0
,
o n

:
fln
即 找出⼀個函式 g ( n ) 以及常數 C 使得當輸入的資料量 n 超過n 。 cg)
u )原 之上限 , 時
(

最的情況下批會達到
的 則必⼤於實際指令執⾏次改好到會趨近於
成長
gcn g( ) ⼀g) n

n : 輸入資料⼤⼩ 範例 f表⽰此演算法之效率與資资
( ) 3 O (1 )
量寡無關 ,
: n = = →

f( 程式在电腦中實際執⾏次改 φ( 6n
3 3
) ) (n )
2

n : n =
+ 5n = O

f(
0
(n )
n

φ (n) :
執⾏時間的成長率 n ) =
2 = 0 →
指攻增長極快

cg ( n )
: 程式的執⾏次攻上限⾄少會超過的基準 fln ) = 01 "
n =
o (n ) )

Big heta :
f( n ) =
(g ( )) n
雪 "
coo n 30 s . t . n ≥ no , 1 . O≤ :
fingtn cgcn )

定義 :
( g (n ) ) =
{ φ (n ) : 存在正整改 , Cno 且对於所有 nn 滿⾜ o ≤
: ) >≤ cg ( n ) , fin
cgcn 。
3
即 找出⼀個函式 g ( n ) 以及常數 f
:
lu
,使得當輸入的資料量 n 超過 n 時 — 最糟的 〈 0

情況下會達到 C g ( n ) 的次改 但⾄少都會超過 . ,


C ,
g( n
)

範例 φ( 6n
3 3
: n ) =
+ 5 n == (n )

fln )
01
= n
= (" n )

f( n ) =
ntlogn =
(n )

※ 即只有在 φ( n >= 0 (g ( ) ) n
且f ( n )
=
r (g (n ) ) 時 , φ( n ) =
( gcn ) )
Ch6 程式語⾔ Programming Language
Ianslation Process 1 2 3 4

程式寫好 後compile 的過程

1
Lexicalanalyzeri 使物件 能被識別 ,
如 ⽔ at 1000 中 的 ✗ ,

.
a, t.no (能 知道是1000 ⽽ 非 1,0 , 0,0 )

2 hrser : 了解每個 物件之語法 (syntax ) 及語意 (semantics) e.g.X.a.no 為 int , ,



,
⼗ 為 運算⼦
t.ir 元
3
Codegenerator : 將程式的 code 轉譯 成 Obectprogam ao x

4
Objectprgrami 再 把程式語⾔ ⼀些 內建的 函式/語法引入⾃⼰的 code ,

stdio.hn/stdlib.h/stringh
即 可 成為 可執⾏檔 ,

Lexical
Analyzer
⽅法 :
藉由 層 ⼀ ⼀
層 的 辨識 式⼦ 以 了解 物件 其 類別 為何
, ,

Expression Term Termt Expression Erm -

Expression (⼀個 Expression中 可能由 該三情況 組成)


Erm Factor Factor * Erm htorlīerm (⼀個 Term 中 可能由 該三情況 組成)

ltor xgz 範例 xtjz


:

x 拉

Rdarativeprogramming Resolution

定義 : 由 2 個 以上 的 statements 組成的 新 statement (為 邏暹 關係 ) ⼀

組成的 新 statement稱為 Resolvent ⽽ 若 組成的 舊 statemet ,

是由 0 及聯結 , 則 稱 其 為 Clauseform

範例 ( PORQ ) ANDIRORǗQ )
:
( PORR)

証明 :
( PORQ ) ANDIRORTNANDTR之 17 為真

利⽤反証 法 証明 ,
KBlknowl.ge/3ase)AND7P 為 否定 ( 即
1仍 為 新 statement 之集合代 号 運算過程 中 當 兩邊
emptydause ) , , ,

⼀個 有 A ⼀個 有 7A 則 可以相 消 去 但 兩者 不可能同時 為真 )
, ,

You might also like