编辑: 丶蓶一 | 2019-07-05 |
edu.cn 计算科学(Computing) Layers and Views of a Computer System 计算机在干啥 ? 程序是如何执行的? #include int main(void) { int ch;
printf( Input a character: );
/* read a character from /* read a character from the standard input stream */ ch = getchar();
putchar(ch);
return 0;
} 最小的计算机? ABC 课程内容 ? 中央处理器(CPU) C 计算机的运算方法 C 指令系统 C CPU的结构 C 控制单元设计 ? 外围部件 ? 外围部件 C 存储器(主存储器、高速 缓存、辅助存储器) C 系统总线(总线性能、总 线结构、总线控制) C 输入输出系统(I/O接口、 I/O控制方式、外设 peripheral device) 计算机组成原理 指令系统ISA 程序员可见的计算机属性 指令字格式,寻址方式,指令类型 CISC,RISC,VLIW MIPS指令类型与格式 ? 100余条指令(Hennessy中33条),共32个通用寄存器 ? 指令格式:定长32位CR-type:arithmetic instruction C I-type:data transfer, arithmetic instruction(如addi) C J-type:branch instruction(conditional &
unconditional) [email protected]
9 op(6 bits) rs(5 bits) rt(5 bits) rd(5 bits) shamt(5 bits) funct(6 bits) op(6 bits) rs(5 bits) rt(5 bits) addr/immediate(16 bits) R-type I-type op(6 bits) rs(5 bits) rt(5 bits) addr(16 bits) J-type op(6 bits) addr(26 bits) MIPS寻址模式addressing mode ? 立即寻址 ? 寄存器寻址:R-type ? 基址寻址:I-type ? PC相对寻址 伪直接寻址 Byte Halfword Word Registers Memory Register Register 1. Immediate addressing 2. Register addressing 3. Base addressing op rs rt op rs rt op rs rt Address rd . . . funct Immediate + [email protected]
10 ? 伪直接寻址 (pseudodirect addressing) C 注意:字长32位C26位形式地址左移2位 (字对准),与PC的高 4位拼接 Memory Word Memory Word 4. PC-relative addressing 5. Pseudodirect addressing op op rs rt Address Address PC PC + DLX CPU设计:单周期、多周期、流水线 多周期实现的控制逻辑 [email protected]
12 MEM/WB =0? ADD
4 分之 结果 M U X
1 IR[rs] NPC NPC cond EX/MEM ID/EX IF/ID DLX指令流水线 数据 存储器 通用寄存器组符号 位 扩展 ALU PC
16 32 存储器 M U X
2 M U X
3 M U X
4 IR A B Imm IR[rs] IR[rt] MEM/WB.IR IR ALUo B IR LMD ALUo IR 指令 data hazard(RAW) 三有四无 2003.6.1 [email protected]
14 消除RAW MEM REG REG MEM ALU MEM REG REG MEM ALU MEM REG REG MEM ALU C1 C2 C3 C4 C5 C6 C7 C8 ADD SUB AND [email protected]
15 ? 方法一: 检测数据相关(互锁interlock,Stall),前推 ? 方法二:避免生成RAW序列(编译器静态调度,动态调度) ? 三个特例:累加依赖、MEM-Copy、Load-use MEM REG REG MEM ALU AND 指令 branch hazard(延迟槽、投机) C C
1 T im e (in c lo c k c y c le s )
4 0 b e q $
1 , $
3 ,
72 P ro g ra m e x e c u tio n o rd e r (in in s tru c tio n s ) IM R e g D M R e g C C
2 C C
3 C C
4 C C
5 C C
6 C C
7 C C
8 C C
9 Stall? Flush? 2003.6.1 [email protected]
16 R e g R e g IM D M IM D M IM D M D M R e g R e g R e g R e g R e g IM
4 4 a n d $
1 2 , $
2 , $
5 4
8 o r $
1 3 , $
6 , $
2 5
2 a d d $
1 4 , $
2 , $
2 7
2 lw $
4 ,
5 0 ($
7 ) R e g Beq:reducing the delay penalty &
flush IF EX M WB M WB WB ID/EX
0 EX/MEM MEM/WB Hazard detection unit IF.Flush IF/ID Control M u x M u x [email protected]
17 PC Instruction memory
4 Registers M u x M u x M u x ALU Data memory M u x Forwarding unit Sign extend = Shift left
2 图4-65 各段产生的异常及中断处理:MIPS的策略 ? 保持流水线的异常标记直到提交点(M段) ? 早期流水段的异常抑制后来的异常 ? 提交点处引入外部异常(抑制其他异常) ? 如果提交点有异常,则更新cause和EPC,清除所有流水段, 回复PC值到fetch段 计算机组成原理 存储系统 内存,Cache,辅存 组织,地址空间,与CPU通信 PC机中的存储器 存储系统:缓存、主存、虚存、外存 Cache: Set-Associative Mapping ? Q1: Where can a block be placed in cache? Block placement C Mapping: address is modulo the number of blocks ? Q2: How is a block found if it is in cache? Block identification ? Q3: Which block should be replaced on a miss? Block replacement ? Q4: What happens on a write? Write strategy ? The three C s of cache misses 物理内存组织结构 物理内存访存过程 ? Async SRAM/DRAM ? SSRAM/SDRAM ? 单字模式,突发模式 虚存:MMU结构与过程 虚存:慢表/快表 外存:硬盘 计算机组成原理 总线 共享,竞争,同步 系统拓扑结构:基于总线 ? 结构(单总线、多总线),传输过程(同步、仲裁),总线标准 总线通信的同步方式 总线使用权分配 计算机组成原理 I/O 接口(端口) 程序控制,中断,DMA I/O Interface I/O Port Addressing:MMIO,PMIO Three Techniques for Input of a Block of Data Instruction Cycle with Interrupts DMA控制I/O:CPU暂停 ? I/O类型 C 内存与外设 C 内存与内存 C 外设与外设 ? 例:设备->