2.1 Computer Architecture
-
CPU和Main Memory
执行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联合出品)
- CISC(Complex Instruction Set Computer):使用复杂指令集,例如Intel处理器
- ARM(Advanced RISC):低功耗的RISC,例如Qualcomm、Texas Instructions出品的处理器
-
三类指令
- 数据转移(实际是拷贝):LOAD(从memory到寄存器),STORE(从寄存器到memory)
- 数值/逻辑:ROTATE(循环移位)
- 控制:JUMP, BRANCH, STOP
An Illustrative Machine Language
-
指令包括:Op-code(指令名称)+ Operand(指令的“参数”),长度为2字节。
- 程序由一个接一个的2字节指令构成
2.3 Program Execution
- 程序存储在memory中,其中的指令被拷贝到CPU中,之后执行
- 两个特殊寄存器保证程序运行:
- instruction register:存储当前执行的指令
- program counter:存储下一条指令的地址
- machine cycles三步骤:
- fetch:根据program counter地址从memory中载入指令,放入instruction register;program counter增2字节
- decode:根据instruction register中指令的op-code进行解读
- execute:激活电路执行指令
An Example of Program Execution
Programs Versus Data
2.4 Arithmetic/Logic Instructions
Logic Operations
- AND:1保留,0置零;OR:0保留,1置一;XOR:1翻转,0保留。
Rotation and Shift Operations
Arithmetic Operations
- 浮点型做加法,要先移位对齐
2.5 Communicating with Other Devices
The Role of Controllers
- 把CPU的指令转化成外设(键盘、显示器、光驱)能理解的格式
- 自己有memroy,有的就是一台小电脑
- 外设有不同通信标准,例如USB、 FireWire、SATA
Direct Memory Access
- controller可以自己访问main memory
- 例:CPU发指令“从硬盘中载入数据到主存”->硬盘的controller读数据->硬盘的controller写数据到主存
Handshaking
- 计算机和外设之间要交换信息,沟通设备状态,协调行动
Popular Communication Media
- 并行通讯:总线
- 串行通讯:USB, FireWire,modem
Communication Rates
- 传统电话:57.6 Kbps
- 播放MP3:64 Kbps
- 播放低清视频:若干 Mbps
- USB, FireWire:几百 Mbps
2.6 Programming Data Manipulation
python编程基础
2.7 Other Architectures
Pipelining
- 允许machine cycle的步骤相互重叠:执行第1条指令,读取第2条指令
Multiprocessor Machines
- 多个processor,连接到一个main memory上
- SIMD(Single Instruction, Multiple Data):相同指令,执行在不同数据上
- MIMD(Multiple Instruction, Multiple Data):不同指令,执行在不同数据上