2.1 Computer Architecture
-
CPU和Main Memory
Untitled.png 執(zhí)行x+y=z:從memory中讀x,放入reg1;從memory中讀y,放入reg2;啟動加法,以reg, reg2為輸入,輸出到reg3;向memory的z中寫入reg3;終止。
memory級別:CPU中的寄存器 -> CPU中的cache -> main memory -> mass storage
2.2 Machine Language
The Instruction Repertoire
-
兩類CPU
- RISC(Reduced Instruction Set Computer):使用精簡指令集,例如PowerPC處理器(Apple、IBM、Motorola聯(lián)合出品)
- CISC(Complex Instruction Set Computer):使用復雜指令集,例如Intel處理器
- ARM(Advanced RISC):低功耗的RISC,例如Qualcomm、Texas Instructions出品的處理器
-
三類指令
- 數(shù)據(jù)轉(zhuǎn)移(實際是拷貝):LOAD(從memory到寄存器),STORE(從寄存器到memory)
- 數(shù)值/邏輯:ROTATE(循環(huán)移位)
- 控制:JUMP, BRANCH, STOP
An Illustrative Machine Language
-
指令包括:Op-code(指令名稱)+ Operand(指令的“參數(shù)”),長度為2字節(jié)。
Untitled.png - 程序由一個接一個的2字節(jié)指令構(gòu)成
2.3 Program Execution
- 程序存儲在memory中,其中的指令被拷貝到CPU中,之后執(zhí)行
- 兩個特殊寄存器保證程序運行:
- instruction register:存儲當前執(zhí)行的指令
- program counter:存儲下一條指令的地址
- machine cycles三步驟:
- fetch:根據(jù)program counter地址從memory中載入指令,放入instruction register;program counter增2字節(jié)
- decode:根據(jù)instruction register中指令的op-code進行解讀
- execute:激活電路執(zhí)行指令
An Example of Program Execution
Programs Versus Data
2.4 Arithmetic/Logic Instructions
Logic Operations
- AND:1保留,0置零;OR:0保留,1置一;XOR:1翻轉(zhuǎn),0保留。
Rotation and Shift Operations
Arithmetic Operations
- 浮點型做加法,要先移位對齊
2.5 Communicating with Other Devices
The Role of Controllers
- 把CPU的指令轉(zhuǎn)化成外設(shè)(鍵盤、顯示器、光驅(qū))能理解的格式
- 自己有memroy,有的就是一臺小電腦
- 外設(shè)有不同通信標準,例如USB、 FireWire、SATA
Direct Memory Access
- controller可以自己訪問main memory
- 例:CPU發(fā)指令“從硬盤中載入數(shù)據(jù)到主存”->硬盤的controller讀數(shù)據(jù)->硬盤的controller寫數(shù)據(jù)到主存
Handshaking
- 計算機和外設(shè)之間要交換信息,溝通設(shè)備狀態(tài),協(xié)調(diào)行動
Popular Communication Media
- 并行通訊:總線
- 串行通訊:USB, FireWire,modem
Communication Rates
- 傳統(tǒng)電話:57.6 Kbps
- 播放MP3:64 Kbps
- 播放低清視頻:若干 Mbps
- USB, FireWire:幾百 Mbps
2.6 Programming Data Manipulation
python編程基礎(chǔ)
2.7 Other Architectures
Pipelining
- 允許machine cycle的步驟相互重疊:執(zhí)行第1條指令,讀取第2條指令
Multiprocessor Machines
- 多個processor,連接到一個main memory上
- SIMD(Single Instruction, Multiple Data):相同指令,執(zhí)行在不同數(shù)據(jù)上
- MIMD(Multiple Instruction, Multiple Data):不同指令,執(zhí)行在不同數(shù)據(jù)上

