460 likes | 624 Views
TI 大学计划 —— 青年教师培训. 章节分析 —— CPU. 上海交通大学 电子工程系 胡剑凌. 教学内容. 总线结构 存储器配置 CPU 结构 数据运算单元 指令处理单元 指令流水线 数据寻址. 课时安排. 鉴于面向的对象和课程性质的不同,课时设置可考虑下列三种情况: 54学时 研究生学位课(或专业选修课) 36学时 研究生非专业选修课(或本科选修课) 12-20学时 专题系列讲座. 课时安排. 以54学时为例,总共安排12学时 数据运算单元 6学时 指令处理单元 1学时 指令流水线 2学时 数据寻址 3学时. 课时安排.
E N D
TI大学计划 —— 青年教师培训 章节分析——CPU 上海交通大学 电子工程系 胡剑凌
教学内容 • 总线结构 • 存储器配置 • CPU结构 • 数据运算单元 • 指令处理单元 • 指令流水线 • 数据寻址
课时安排 鉴于面向的对象和课程性质的不同,课时设置可考虑下列三种情况: • 54学时 研究生学位课(或专业选修课) • 36学时 研究生非专业选修课(或本科选修课) • 12-20学时 专题系列讲座
课时安排 以54学时为例,总共安排12学时 • 数据运算单元 6学时 • 指令处理单元 1学时 • 指令流水线 2学时 • 数据寻址 3学时
课时安排 以36学时为例,总共安排9学时 • 数据运算单元 5学时 • 指令处理单元 1学时 • 指令流水线 1学时 • 数据寻址 2学时
课时安排 以12-24学时为例,安排3学时——6学时 • 数据运算单元 1学时—— 3学时 • 指令处理单元 0.5学时——0.5学时 • 指令流水线 0.5学时——0.5学时 • 数据寻址 1学时—— 2学时
总线结构 总线结构(数据总线和程序总线) • 冯诺依曼结构 • 哈佛结构 • 改进的哈佛结构
C P U AB DB 存储器 总线结构 • 冯.诺依曼结构
程 序 存 储 器 CPU 数 据 存 储 器 PAB DAB PB DB 总线结构 • 哈佛结构
C P U PB DB PAB DAB 程序存储器 数据存储器 总线结构 • 改进的哈佛结构
总线结构 • 程序总线PB,负责读取指令和数据表格 • 数据总线CB、DB和EB,CB和DB读取数据,EB存储数据 • 地址总线PAB、CAB、DAB和EAB • 外设总线
访问类型 数据总线 PAB CAB DAB EAB PB CB DB EB 读程序 地址总线 写程序 读单数据 读双数据 读长数据(32bit) 写单数据 并行读/写数据 Dual Read/Coeff Read 读外设 写外设 总线结构
存储器配置 • 程序空间: 程序代码、常系数表格 • 程序空间: 程序代码、常系数表格 • 数据空间:程序处理时的数据和结果 • 数据空间:程序处理时的数据和结果 • I/O空间 :映射为外部设备、扩展外 部数据存储器等 • I/O空间 :映射为外部设备、扩展外 部数据存储器等
存储器配置 存储器配置 • 片内:访问速度快,容量小 • 片外:访问速度慢,容量大 片内存储器 • SRAM(固定地址映射):内容和地址一一对应 • Cache:内容和地址不是一一对应
存储器配置 片内存储器 • SARAM:每个时钟周期只能访问一次,适合存放程序 • DARAM:每个时钟周期可以访问两次,适合存放数据,利于并行地访问数据
存储器配置 Page 0 Program Page 0 Program Page 1 Data Hex Hex Hex 0000 0000 0000 Reserved Reserved Memory (OVLY=1) (OVLY=1) Mapped or or Register 005F External External Scratch- 0060 (OVLY=0) (OVLY=0) 007F 007F Pad 0080 0080 RAM 007F On-Chip On-Chip 0080 DARAM DARAM On-Chip (OVLY=1) (OVLY=1) RAM External External 16K (OVLY=0) (OVLY=0) 3FFF 3FFF 3FFF 4000 4000 4000 External External EFFF EFFF F000 F000 ROM On-Chip External (DROM=1) ROM or External 4K (DROM=0) FEFF FEFF FF00 FF00 Reserved Reserved FF7F FF7F (DROM=1) FF80 FF80 or External Interrupts Interrupts (DROM=0) (External) (On-Chip) FFFF FFFF FFFF MP/MC=1 MP/MC=0 (Microprocessor (Microcomputer Mode) Mode) 5402 存储器空间 配置
存储器配置 C5402扩展程序空间(OVLY=0)
存储器配置 C5402扩展程序空间(OVLY=1)
CPU运算单元 数据运算单元 • 加减的实现 • 乘法的实现 • 移位的实现 • 逻辑操作的实现 • 求指数的实现 • 特殊运算
序号 指 令 字数 A B DB CB 移位器 1 add *AR1, A 1 2 add *AR3, TS, A 1 3 add *AR2, 16, B, A 1 4 add *AR1, 8, B, A 2 5 add *AR2, 8, A 1 6 add *AR2, *AR3, A 1 7 add #1234h, 6, A, B 2 8 add A, 12, B 2 9 add B, ASM, A 1 10 add *AR2, A, B 1 11 add *AR1, A 1 CPU运算单元
序号 指 令 类 型 X乘法器输入 Y乘法器输入 T DB A PB CB DB A 1 2 3 4 5 6 7 8 9 mpy #1234h,A mpy[r] *AR2,A mpya B macp *AR2, pmad, A mpy *AR2, *AR3, B squr *AR2, B mpya *AR2 firs *AR2, *AR3, pmad squr A, B CPU运算单元
操作 载入PC的地址 复位 顺序执行 跳转 从累加器跳转 块重复循环 调用子程序 从累加器调用子程序 中断 载入0xFF80 载入PC+1 载入紧接在指令后面的16位立即数。 载入累加器A或B的低16位数。 如果BRAF=1,当PC+1=(REA)+1时载入块重复起始地址寄存器RSA的值。 调用时,将PC+2压入堆栈,载入紧接在指令call后面的16位立即数。返回时,从栈顶弹出PC,返回到call指令后的代码开始执行。 调用时,将PC+1压入堆栈,载入累加器A或B的低16位数。返回时,从栈顶弹出PC,返回到call指令后的代码开始执行。 响应中断时,将PC压入堆栈,PC载入中断向量所处的地址。返回时,从栈顶弹出PC,返回到被中断的代码开始执行。 程序寻址 程序控制(PC的修改)
程序寻址 • 硬件支持的重复 • RPTB和RPTBD语句 • BRAF、BRC、RSA和REA • BRC在块重复的最后一条指令的译码阶段减1 • 多重循环可用RPTB(D)和BANZ(D)实现 • RPT语句
程序寻址 (IFR) "Latch" (IMR) "Switch" (INTM) "Big Switch" 0 INTx 2 1 C54x core 1 3 INTy • 中断
程序寻址 • 中断处理 • 接受中断请求 • 响应中断 • 执行中断服务程序(ISR)
程序寻址 • 中断操作流程图
指令流水线 • 六级指令流水线
数据寻址 • 立即寻址 • 绝对寻址 • 累加器寻址 • 直接寻址 • 间接寻址 • 存储器映射寄存器寻址
数据寻址 • 间接寻址 • 利用辅助寄存器中数值作为绝对地址 • 主要用于按某种固定方式对数据空间的连续访问 • 修改方式可以为后加、后减、特定步长 • 寻址方式最为灵活
操作数句法 功能 说明 addr=ARx addr=ARx ARx=ARx-1 addr=ARx ARx=ARx+1 addr=ARx+1 ARx=ARx+1 addr=ARx ARx=B(ARx-AR0) addr=ARx ARx=ARx-AR0 addr=ARx ARx=ARx+AR0 addr=ARx ARx=B(ARx+AR0) *ARx *ARx- *ARx+ *+ARx *ARx-0B *ARx-0 *ARx+0 *ARx+0B ARx的内容为数据存储器地址。 访问后,ARx中的地址减1个单位。 访问后,ARx中的地址加1个单位。 访问前,ARx中的地址加1个单位。 访问后,从ARx中按比特翻转寻址的方式减去AR0。 访问后,从ARx中减去AR0。 访问后,在ARx中加上AR0。 访问后,在ARx中按比特翻转寻址的方式加上AR0。 数据寻址
*ARx-% *ARx-0% *ARx+% *ARx+0% *ARx(lk) *+ARx(lk) *+ARx(lk)% addr=ARx ARx=circ(ARx-1) addr=ARx ARx=circ(ARx-AR0) addr=ARx ARx=circ(ARx+1) addr=ARx ARx=circ(ARx+AR0) addr=ARx+lk ARx=ARx addr=ARx+lk ARx=ARx+lk addr=circ(ARx+lk) ARx=circ(ARx+lk) 访问后,从ARx中按循环寻址方式减去1个单位。 访问后,从ARx中按循环寻址方式减去AR0。 访问后,在ARx中按循环寻址方式加上1个单位。 访问后,在ARx中按循环寻址方式加上AR0。 ARx加上16位长偏移量作为地址,但ARx不变。 ARx加上16位长偏移量作为地址,并将该结果作为ARx的 数值。 ARx按循环寻址方式加上16位长偏移量作为地址并用该结 果更新ARx。 操作数句法 功能 说明 数据寻址
数据寻址 • 循环寻址
实验设计 数据运算单元 • 常规算术运算 • 特殊的算术运算(饱和、移位乘等) • 多种语法的尝试(移位加等)
实验设计 指令处理单元和指令流水线 • C55 借助CCS工具观察指令流水线 • 指令流水线(影响运算结果,结合汇编指令) • 中断仿真(观察堆栈)
实验设计 数据寻址 • 各种不同寻址方式的尝试 • 字长和运行时间的比较 • 地址修改和指令流水线