计算机组成原理 总结 图说 COD llxx@ustc.edu.cn
计算科学 (Computing)
计算机组成 :how computers work 硬盘 电源导线和电缆 软驱 内存 扩展槽 扩展卡 主板 微处理器 (CPU)
各种外设接口, 包括 : 键盘 鼠标 显示器 USB 声卡 网卡 并行口等 CPU 风扇支架 PCI 扩展槽 IDE 内存 CPU 硬条插盘接插槽槽口 华硕 P4S533-MX 主板
现代计算机系统
PC 机中的总线
PC 机中的存储器
计算机系统的虚拟机
课程内容 外围部件 系统总线 ( 总线性能 总线结构 总线控制 ) 存储器 ( 主存储器 高速缓存 辅助存储器 ) 输入输出系统 (I/O 接口 I/O 控制方式 外设 peripheral device) 中央处理器 (CPU) 计算机的运算方法 指令系统 CPU 的结构 控制单元设计
计算机组成原理 总线 共享, 竞争, 同步
三总线
同步通信方式 通信双方由统一时标控制数据传送称为同步通信 时标通常由 CPU 的总线控制部件发出, 送到总线上的所有部件 ; 也可以由每个部件各自的时序发生器发出, 但是必须有总线控制部件发出的时钟信号对它们进行同步 对于读命令, 其传输周期为 : T 1 : 主模块发地址 T 2 : 主模块发读命令 T 3 : 从模块提供数据 T 4 : 主模块撤销读命令 时钟 地址 读命令 总线读周期 T 1 T 2 T 3 T 4 数据 data
计算机组成原理 存储系统 内存,Cache, 辅存 组织, 地址空间, 与 CPU 通信
存储系统
访存过程
Set-Associative Mapping 作用 映射关系 读写过程 替换策略
外存 : 硬盘
虚存 : 地址空间映射
计算机组成原理 I/O 接口 ( 端口 ) 程序控制, 中断,DMA
程序中断方式接口电路的基本组成 ( 分布式 ) 23
编码键盘原理图 启动 6 位计数器 时钟发生器 暂停 3-8 译码器 8 8 键盘 单稳 清 0 3-8 译码器 中断触发器 ROM /CS 延时 /RD 地址译码输出 中断请求 CPU 要点 : ROM 中存储各个按键的字符码 (ASCII) 计数器循环计数扫描键盘得到当前按键的位置码 按键按下时停止计数, 并产生中断请求,CPU 读字符码 24
计算机组成原理 指令系统 ISA 程序员可见的计算机属性指令字格式, 寻址方式, 指令类型 CISC,RISC,VLIW
MIPS 指令格式 100 余条指令 (Hennessy 中 33 条 ), 共 32 个通用寄存器 指令格式 : 定长 32 位 R-type:arithmetic instruction I-type:data transfer, arithmetic instruction( 如 addi) J-type:branch instruction(conditional & unconditional) R-type op(6 bits) rs(5 bits) rt(5 bits) rd(5 bits) shamt(5 bits) funct(6 bits) I-type op(6 bits) rs(5 bits) rt(5 bits) addr/immediate(16 bits) J-type op(6 bits) rs(5 bits) rt(5 bits) op(6 bits) addr(26 bits) addr(16 bits) llxx@ustc.edu.cn 26
MIPS 寻址模式 addressing mode 1. I m m e d i a t e a d d r e s s i n g o p r s r t I m m e d i a t e 立即寻址 寄存器寻址 :R-type 2. R e g i s t e r a d d r e s s i n g o p r s r t r d... f u n c t R e g i s t e r s R e g i s t e r 基址寻址 :I-type PC 相对寻址 3. B a s e a d d r e s s i n g o p r s r t R e g i s t e r A d d r e s s + M e m o r y B y t e H a l f w o r d W o r d 伪直接寻址 (pseudodirect addressing) 注意 : 字长 32 位 4. P C - r e l a t i v e a d d r e s s i n g o p r s r t P C A d d r e s s + M e m o r y W o r d 26 位形式地址左移 2 位 ( 字对准 ), 与 PC 的高 4 位拼接 5. P s e u d o d i r e c t a d d r e s s i n g o p A d d r e s s P C M e m o r y W o r d llxx@ustc.edu.cn 27
ISA:RISC 的理论基础 ( Rules of thumb )
计算机组成原理 CPU 数据通路, 控制器,ALU 指令周期, 机器周期微操作
CPU 的组成 按功能部件划分 运算器 (ALU) 寄存器 ( 寄存器堆 ) 控制器 ( 含中断控制 ) 系统总线接口 MMU L1 CACHE 等 按数据流 数据通路 (datapath) : 各种寄存器和运算器 控制器 : 组合电路控制逻辑 微程序控制器 ALU REG CTRL BUS INTERFACE MEMORY CONTROLER llxx@ustc.edu.cn 30
CPU 设计
控制单元 (CU) 的功能 ($9.2) 在时钟控制下, 产生完成各个微操作所需的控制信号 CU 的外特性 输入 输出 时钟节拍 指令寄存器 (IR) 的 op 域 标志 : 指示 CPU 的当前状态 中断 DMA 等外部控制信号 微操作控制信号 总线控制信号 ( 访存 I/O 控制等 ) 控制单元的外特性 llxx@ustc.edu.cn 32
A 模型 :ADD @X 的控制 C 13 C 2 C 1 M D R M A R C 5 C 9 C 10 PC C 0 clk IR CU C 3 C 4 flag C C 11 12 C 7 ACC C C 6 8 ALU ALUop C 0~13 ALUop 因为 IR=MDR, 故省略了 IR->MAR 的路径 llxx@ustc.edu.cn 33
时序 : 同步 异步 工作时钟频率
多级时序系统 指令周期 =n 个机器周期 机器周期 =n 个节拍 ( 状态 ) 节拍 =n 个时钟周期 (clk) llxx@ustc.edu.cn 35
( O p = ' L W ') ( O p = ' J ') 多周期实现的控制逻辑 2 3 M e m o r y a d d r e s s c o m p u t a t i o n 4 A L U S r c A = 1 A L U S r c B = 0 0 A L U O p = 0 0 M e m R e a d I o r D = 1 M e m o r y a c c e s s R e g W r i t e M e m t o R e g = 1 R e g D s t = 0 5 W r i t e - b a c k s t e p S t a r t M e m W r i t e I o r D = 1 M e m o r y a c c e s s I n s t r u c t i o n f e t c h 0 M e m R e a d A L U S r c A = 0 I o r D = 0 I R W r i t e A L U S r c B = 01 A L U O p = 00 P C W r i t e P C S o u r c e = 00 6 E x e c u t i o n A L U S r c A = 1 A L U S r c B = 0 0 A L U O p = 1 0 O v e r f l o w B r a n c h c o m p l e t i o n 8 A L U S r c A = 1 A L U S r c B = 00 A L U O p = 01 P C W r i t e C o n d P C S o u r c e = 01 I n s t r u c t i o n d e c o d e / R e g i s t e r f e t c h 1 9 A L U S r c A = 0 A L U S r c B = 1 1 A L U O p = 0 0 J u m p c o m p l e t i o n P C W r i t e P C S o u r c e = 1 0 7 R - t y p e c o m p l e t i o n I n t C a u s e = 1 11 C a u s e W r i t e 10 R e g D s t = 1 R e g W r i t e M e m t o R e g = 0 O v e r f l o w A L U S r c A = 0 A L U S r c B = 01 A L U O p = 01 E P C W r i t e P C W r i t e P C S o u r c e = 11 I n t C a u s e = 0 C a u s e W r i t e A L U S r c A = 0 A L U S r c B = 0 1 A L U O p = 0 1 E P C W r i t e P C W r i t e P C S o u r c e = 1 1 llxx@ustc.edu.cn 36
MEM/WB 数据存储器通用寄存器组符号位扩展 ALU PC =0? ADD 16 32 4 存储器分之结果 M U X 1 M U X 2 M U X 3 M U X 4 IR A B Imm IR[rs] IR[rt] MEM/WB.IR NPC NPC IR cond ALUo B IR LMD ALUo IR EX/MEM ID/EX IF/ID 指令指令流水线
data hazard(raw) 2003.6.1 llxx@ustc.edu.cn 38
数据定向技术 (forwarding,bypassing) C1 C2 C3 C4 C5 C6 C7 C8 ADD MEM REG ALU MEM REG SUB MEM REG ALU MEM REG AND MEM REG ALU MEM REG 指令 MEM REG ALU MEM REG 消除 RAW 方法一 : 检测数据相关 ( 互锁,INTERLOCK), 前推 方法二 : 禁止生成此类指令序列 编译器 ( 静态指令调度 ), 动态调度 llxx@ustc.edu.cn 39
各段产生的异常及处理 :MIPS 的策略 保持流水线的异常标记直到提交点 (M 段 ) 早期流水段的异常抑制后来的异常 提交点处引入外部异常 ( 抑制其他异常 ) 如果提交点有异常, 则更新 cause 和 EPC, 清除所有流水段, 回复 PC 值到 fetch 段
I n s t r u c t i o n M e m t o R e g R e g W r i t e M e m W r i t e The final datapath & control B r a n c h I F. F l u s h I D. F l u s h E X. F l u s h H a z a r d d e t e c t i o n u n i t 4 0 0 0 0 0 4 0 M u x I D / E X W B 0 M u x E X / M E M I F / I D C o n t r o l 0 M u x M E X C a u s e 0 M u x W B M M E M / W B W B P C 4 I n s t r u c t i o n m e m o r y A d d r e s s R e a d d a t a 1 6 S h i f t l e f t 2 S i g n e x t e n d R e a d R e a d d a t a 1 r e g i s t e r 1 R e a d r e g i s t e r 2 R e g i s t e r s W r i t e r e g i s t e r W r i t e d a t a R e a d d a t a 2 3 2 = E x c e p t P C M u x M u x A L U S r c M u x A L U O p A L U A L U c o n t r o l D a t a m e m o r y A d d r e s s W r i t e d a t a R e a d d a t a M e m R e a d M u x I n s t r u c t i o n [ 2 5 2 1 ] R e g D s t I n s t r u c t i o n [ 2 0 1 6 ] I n s t r u c t i o n [ 20 16 ] I n s t r u c t i o n [ 15 11 ] M u x F o r w a r d i n g u n i t 2003.6.1 llxx@ustc.edu.cn 41
MIPS R4000 pipeline
计算机组成原理 ALU
算术逻辑运算单元 ALU
计算机组成原理 Big Picture
计算机部件 读 / 写 地址 数据 存储器 状态 读 / 写 地址 数据 I/O 接口 状态 中断 DMA 读 / 写 地址 数据 CPU 状态 中断 DMA 读写控制信号 地址线 数据线 握手信号 状态 中断 DMA 时钟 电源 地线
Big Picture 主机 processor I/O Interface (adapter) memory I/O Interface (adapter) I/O device I/O device 地址总线 数据总线 HLDA INTA Hold Clk CPU Reset MEM I/O NMI 中断设备 RD/WT INTR I/O DMA 设备 48
中断周期 :Instruction Cycle with Interrupts 与中断控制器通信 : 识别中断源, 获得中断向量 保存断点, 关中断, 转 ISR
控制流程 ( 工作周期转换 ) 单 SR FT 双 SR ST DR DT ET DR 转 DMA 请求? Y DMAT N 中断请求? Y IT N
非典型问题 最小的计算机系统? 需要哪几条指令? 需要哪几种寻址方式? C 语言的计算机模型? int i 在哪儿? 全局变量与局部变量差异? getchar() 的执行过程? C 语言 编译器 OS Computer 的关系? 计算机现在在干啥? 总线的副作用? RAM 如何与 CPU 同步? Cache 的副作用? 中断的副作用? DMA 的副作用? 过程调用与中断的异同? 如何确定一个程序的执行时间?
C 程序何处会出现中断? 有何影响? 可重入性 : Reentrant Procedures
Most Common Mistakes with Real-Time Software Development
系统运行时的 IPC 变化?
Intel Performance Monitor UMask and Event Select Encodings for Pre-Defined Architectural Performance Events
IBM 神经突触计算机芯片 架 构 在 2011 年开发出 让下一代应用在感知 行为和认知方面的效率堪比人脑 具备对空间 时间和多模态化环境的识记 感知, 甚至是做出行动的能力 必须开发出全新的编程模式 包括多线程软件模拟器 支持广泛神经计算的神经元模式, 以及代表神经突出网络蓝图的模块等
llxx@ustc.edu.cn 57/94