1 / 46

TI 大学计划 —— 青年教师培训

TI 大学计划 —— 青年教师培训. 章节分析 —— CPU. 上海交通大学 电子工程系 胡剑凌. 教学内容. 总线结构 存储器配置 CPU 结构 数据运算单元 指令处理单元 指令流水线 数据寻址. 课时安排. 鉴于面向的对象和课程性质的不同,课时设置可考虑下列三种情况: 54学时 研究生学位课(或专业选修课) 36学时 研究生非专业选修课(或本科选修课) 12-20学时 专题系列讲座. 课时安排. 以54学时为例,总共安排12学时 数据运算单元 6学时 指令处理单元 1学时 指令流水线 2学时 数据寻址 3学时. 课时安排.

ace
Download Presentation

TI 大学计划 —— 青年教师培训

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TI大学计划 —— 青年教师培训 章节分析——CPU 上海交通大学 电子工程系 胡剑凌

  2. 教学内容 • 总线结构 • 存储器配置 • CPU结构 • 数据运算单元 • 指令处理单元 • 指令流水线 • 数据寻址

  3. 课时安排 鉴于面向的对象和课程性质的不同,课时设置可考虑下列三种情况: • 54学时 研究生学位课(或专业选修课) • 36学时 研究生非专业选修课(或本科选修课) • 12-20学时 专题系列讲座

  4. 课时安排 以54学时为例,总共安排12学时 • 数据运算单元 6学时 • 指令处理单元 1学时 • 指令流水线 2学时 • 数据寻址 3学时

  5. 课时安排 以36学时为例,总共安排9学时 • 数据运算单元 5学时 • 指令处理单元 1学时 • 指令流水线 1学时 • 数据寻址 2学时

  6. 课时安排 以12-24学时为例,安排3学时——6学时 • 数据运算单元 1学时—— 3学时 • 指令处理单元 0.5学时——0.5学时 • 指令流水线 0.5学时——0.5学时 • 数据寻址 1学时—— 2学时

  7. 总线结构 总线结构(数据总线和程序总线) • 冯诺依曼结构 • 哈佛结构 • 改进的哈佛结构

  8. C P U AB DB 存储器 总线结构 • 冯.诺依曼结构

  9. 序 存 储 器 CPU 数 据 存 储 器 PAB DAB PB DB 总线结构 • 哈佛结构

  10. C P U PB DB PAB DAB 程序存储器 数据存储器 总线结构 • 改进的哈佛结构

  11. DSP ——结构 TMS320C5400系列图

  12. 总线结构 • 程序总线PB,负责读取指令和数据表格 • 数据总线CB、DB和EB,CB和DB读取数据,EB存储数据 • 地址总线PAB、CAB、DAB和EAB • 外设总线

  13. 访问类型 数据总线 PAB CAB DAB EAB PB CB DB EB 读程序   地址总线 写程序   读单数据   读双数据     读长数据(32bit)     写单数据   并行读/写数据     Dual Read/Coeff Read       读外设   写外设   总线结构

  14. 存储器配置 • 程序空间: 程序代码、常系数表格 • 程序空间: 程序代码、常系数表格 • 数据空间:程序处理时的数据和结果 • 数据空间:程序处理时的数据和结果 • I/O空间 :映射为外部设备、扩展外 部数据存储器等 • I/O空间 :映射为外部设备、扩展外 部数据存储器等

  15. 存储器配置 存储器配置 • 片内:访问速度快,容量小 • 片外:访问速度慢,容量大 片内存储器 • SRAM(固定地址映射):内容和地址一一对应 • Cache:内容和地址不是一一对应

  16. 存储器配置 片内存储器 • SARAM:每个时钟周期只能访问一次,适合存放程序 • DARAM:每个时钟周期可以访问两次,适合存放数据,利于并行地访问数据

  17. 存储器配置 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 存储器空间 配置

  18. 存储器配置 C5402扩展程序空间(OVLY=0)

  19. 存储器配置 C5402扩展程序空间(OVLY=1)

  20. CPU运算单元 数据运算单元 • 加减的实现 • 乘法的实现 • 移位的实现 • 逻辑操作的实现 • 求指数的实现 • 特殊运算

  21. DSP ——结构 TMS320C5400系列图

  22. CPU运算单元

  23. 序号 指 令 字数 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运算单元

  24. CPU运算单元

  25. 序号 指 令 类 型 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运算单元

  26. 操作 载入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的修改)

  27. 程序寻址 • 硬件支持的重复 • RPTB和RPTBD语句 • BRAF、BRC、RSA和REA • BRC在块重复的最后一条指令的译码阶段减1 • 多重循环可用RPTB(D)和BANZ(D)实现 • RPT语句

  28. 程序寻址 (IFR) "Latch" (IMR) "Switch" (INTM) "Big Switch" 0 INTx 2 1 C54x core 1 3 INTy • 中断

  29. 程序寻址 • 中断处理 • 接受中断请求 • 响应中断 • 执行中断服务程序(ISR)

  30. 程序寻址 • 中断操作流程图

  31. 指令流水线

  32. 指令流水线 • 六级指令流水线

  33. 指令流水线

  34. 指令流水线

  35. 指令流水线

  36. 数据寻址 • 立即寻址 • 绝对寻址 • 累加器寻址 • 直接寻址 • 间接寻址 • 存储器映射寄存器寻址

  37. 数据寻址

  38. 数据寻址 • 间接寻址 • 利用辅助寄存器中数值作为绝对地址 • 主要用于按某种固定方式对数据空间的连续访问 • 修改方式可以为后加、后减、特定步长 • 寻址方式最为灵活

  39. 数据寻址

  40. 操作数句法 功能 说明 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。 数据寻址

  41. *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。 操作数句法 功能 说明 数据寻址

  42. 数据寻址 • 循环寻址

  43. 实验设计 数据运算单元 • 常规算术运算 • 特殊的算术运算(饱和、移位乘等) • 多种语法的尝试(移位加等)

  44. 实验设计 指令处理单元和指令流水线 • C55 借助CCS工具观察指令流水线 • 指令流水线(影响运算结果,结合汇编指令) • 中断仿真(观察堆栈)

  45. 实验设计 数据寻址 • 各种不同寻址方式的尝试 • 字长和运行时间的比较 • 地址修改和指令流水线

  46. Q & A

More Related