1 / 89

嵌入式微处理器系统

嵌入式微处理器系统. 第二章 处理器技术( 1 ). 相关技术. 本章参考书: 《 计算机系统结构 》 郑纬民等译,电子工业出版社, 2004. 7 《 高性能微处理器:技术与结构 》 张民选,王永文,国防科技大学出版社, 2004. 3. 技术与结构. 除了处理器主频外,还有哪些处理器特征 影响程序执行的速度?. 相关技术. 指令集 流水线技术 小结. 指令集( 1 ). 指令? 汇编语句 = 指令?. 指令集( 2 ). 指令形式 机器语言 由 CPU 理解和执行的二进制代码 机器指令的格式(助记符). 指令集( 3 ). 指令集

seoras
Télécharger la présentation

嵌入式微处理器系统

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. 嵌入式微处理器系统 第二章 处理器技术(1) 北京大学软件与微电子学院

  2. 相关技术 本章参考书: 《计算机系统结构》郑纬民等译,电子工业出版社,2004. 7 《高性能微处理器:技术与结构》张民选,王永文,国防科技大学出版社,2004. 3 北京大学软件与微电子学院

  3. 技术与结构 除了处理器主频外,还有哪些处理器特征 影响程序执行的速度? 北京大学软件与微电子学院

  4. 相关技术 • 指令集 • 流水线技术 • 小结 北京大学软件与微电子学院

  5. 指令集(1) 指令? 汇编语句=指令? 北京大学软件与微电子学院

  6. 指令集(2) • 指令形式 • 机器语言 由CPU理解和执行的二进制代码 • 机器指令的格式(助记符) 北京大学软件与微电子学院

  7. 指令集(3) • 指令集 • 所有在处理器上可以执行的指令 • 在处理器上运行的程序由指令组成 • 面向程序员以及编译器开发者 • 因处理器的而异 北京大学软件与微电子学院

  8. 指令集(4) • 指令集结构 • 按CPU内部存储类型 • 使用堆栈 隐含的操作数在堆栈的栈顶 • 使用累加器 一个隐含的操作数是累加器 (C51,X86) • 使用寄存器 必须明确操作数(寄存器或内存地址) 北京大学软件与微电子学院

  9. 指令集(5) • 指令集结构 • 按CPU内部存储类型 • 使用寄存器 • 寄存器-寄存器:ALU指令通常有三个操作数 (ARM, MIPS) • 寄存器-存储器(register-memory):ALU指令通常有两个操作数,一个为寄存器,另一个为存储器。任何一条指令都可以访问内存(X86, 68000, C54X) • 存储器-存储器:ALU指令通常有三个操作数,且都是存储器操作。 载入-存储(load/store)常用于哪种指令结构? 北京大学软件与微电子学院

  10. 指令集(6) • 指令集系统结构(续) • 例:c=a+b 不同指令类型的实现 • 堆栈 Push a Push b Add Pop c a,b,c 三个变量存放在哪儿? 北京大学软件与微电子学院

  11. 指令集(7) • 指令集系统结构(续) • 累加器 Load a add b store c 北京大学软件与微电子学院

  12. 指令集(8) • 指令集系统结构(续) • Register-Memory Load R1, a add R3, R1, b store R3, c 北京大学软件与微电子学院

  13. 指令集(9) • 指令集系统结构(续) • Register-Register Load R1, a Load R2, b add R3, R1, R2 store R3, c 北京大学软件与微电子学院

  14. 指令集(10) • 指令集系统结构(续) • Register-Register vs Register-Memory 北京大学软件与微电子学院

  15. 指令集(11) • 寻址技术 • 定义 寻找数据地址的技术 • 编址单元宽度 • 字节(8bit,0x86) • 半字 (C54) • 字 (C30) • 双字 北京大学软件与微电子学院

  16. 指令集(12) • 寻址方式(续) • 地址空间(独立编址) • 三个地址空间 • 通用寄存器 • 主存储器 • I/O设备 • 两个地址空间 • 通用存储器 • 主存储器与IO设备 • 一个地址空间 • 所有存储设备统一编址 • 隐含编址方式 如果有多个地址空间,在指令中如何体现? 北京大学软件与微电子学院

  17. 指令集(13) • 寻址技术(续) • 寻址方式 • 定义:获取访问对象地址的方法 • 立即数寻址 • 直接在指令的地址码部分给出操作数 • 用于程序中的常数 • 优点:不需要数据存储单元,执行速度快 • 缺点:只能作为源操作数,数据长度有限 • 例: ADD R4,#5 ; reg(R4)〈- reg(R4)+5 北京大学软件与微电子学院

  18. 指令集(14) • 寻址技术(续) • 寻址方式(续) • 寄存器寻址 • 操作数来源于寄存器,结果也保存在寄存器中 • 指令格式 • 一地址:OPC R • 二地址:OPC R,R OPC R,M • 三地址:OPC R,R,R • 例: ADD R4,R3 ; reg(R4)〈- reg(R4)+reg(R3) 北京大学软件与微电子学院

  19. 指令集(15) • 寻址技术(续) • 寻址方式(续) • 直接寻址(绝对) • 直接给出参加运算的操作数及运算结果所存放的地址 • 指令格式 • 一地址:OPC M • 二地址:OPC M,M 三地址:OPC M,M,M • 例: ADD R1,(1001); reg(R1)〈- reg(R1)+ Mem(1001) 北京大学软件与微电子学院

  20. 指令集(16) • 寻址技术(续) • 寻址方式(续) • 间接寻址 • 出参加运算的操作数地址的地址 • 寄存器间接寻址 ADD R4,(R1);reg(R4)〈- reg(R4)+ Mem(reg(R1)); • 存储器间接寻址 ADD R1,@(R2); reg(R1)〈- reg(R1)+ Mem[Mem[reg(R2)]] 北京大学软件与微电子学院

  21. 指令集(17) • 寻址技术(续) • 寻址方式(续) • 自动递增寻址 • 执行指令后,地址寄存器中的值自动增加 • 例: ADD R1,(R2)+ • 自动递减寻址 • 执行指令后,抵制寄存器中的值自动减少 • 例: ADD R1,-(R2) 北京大学软件与微电子学院

  22. 指令集(18) • 寻址技术(续) • 寻址方式(续) • 堆栈寻址 • 隐含操作数的地址 • 一般格式 • OPC • OPC M • 例: PUSH R1 POP R1 北京大学软件与微电子学院

  23. 指令集(19) • 寻址技术(续) • 寻址方式(续) • 偏移量寻址 • 带偏移量的间接寻址 • 例: ADD R4,100(R1); reg(R4)〈- reg(R4)+ Mem(100+reg(R1)) 北京大学软件与微电子学院

  24. 指令集(20) • 寻址技术(续) • 寻址方式(续) • 索引寻址 • reg(R4)〈- reg(R4)+ Mem(reg(R2)+reg(R1)) • 缩放寻址 • reg[R1]<-reg[R1]+Mem[100+reg[R2]+reg[r3]*d] 这两种寻址方式有什么特别用途? 北京大学软件与微电子学院

  25. 指令集(21) • 寻址技术(续) • 寻址方式(续) • 最常用的寻址方式 • 偏移量寻址 • 立即数寻址 • 寄存器间接寻址 三种寻址方式的使用率之和占 75%以上 北京大学软件与微电子学院

  26. 指令集(22) • 如设计指令集? • 根据指令行为权衡指令设计 • 指令使用频率 • 数据类型的访问频率 • 寻址方式的分析 • 立即数的范围 • 偏移量的统计 北京大学软件与微电子学院

  27. 指令集(23) • 如设计指令集? • 指令兼容 • 二进制兼容技术 • 软件解释器 用程序每次读入旧体系结构的一条指令,在软件维护的就体系结构上依次执行每个操作. (Dos 虚拟机) • 微代码仿真器 在软件解释基础上,在一些硬件辅助下快速译码旧指令。 (VAX中的 PDP-11兼容模式) 北京大学软件与微电子学院

  28. 指令集(24) • 如设计指令集? • 指令兼容 • 二进制兼容技术 • 二进制编译 把旧体系的程序行为用新体系结构指令序列再现 (转换程序,难度在哪里? ) • 多媒体指令扩展 • 例 • MAX -Multimedia Acceleration eXtension (PA-RISC, HP) • VIS-Visual Instruction Set (UltraSPARC, SUN) • MMX-MultiMedia eXtension (Pentium, Intel) 北京大学软件与微电子学院

  29. 指令集(25) • 如设计指令集? • 多媒体指令扩展 • 子字算术指令 • 数据重整指令 • 格式化指令 • 条件指令 • 存储指令 • 复杂指令 北京大学软件与微电子学院

  30. 指令集(26) • 指令格式的设计 • 指令组成 • 操作码 • 操作种类 • 操作数的数据类型 • 操作数 • 地址 • 地址附加信息 • 寻址方式 北京大学软件与微电子学院

  31. 指令集(27) • 指令格式的设计 • 操作码表示方法 • 固定长度 • 规整 • 硬件译码简单 • 多数RISC采用 • Huffman编码 • 不同的操作码长度不同 • 使用频率高的码长小 • 空间利用率高 • 扩展编码 • 部分固定长度,部分Huffman编码 北京大学软件与微电子学院

  32. 指令集(28) • 指令格式的设计 • 操作码类型 • 运算 • 数据传送 • 移位 • 转移 • I/O 北京大学软件与微电子学院

  33. 指令集(29) • 指令集的功能设计 • 功能的基本要求 • 完整性 包括所有的操作类型和方式 • 规整性 • 对称性:各种与指令系统有关的数据存储设备的使用、操作码的设置都要对称。 例:C30中R0-R7功能完全一致 A-B和 B-A • 均匀性:对于不同的数据类型、字长、操作种类和数据存储设备,指令的设置要同等对待 例:有5种数据表示,4种字长,8种存储设备的两地址加法指令数有 5 X 4 X 8=160种 北京大学软件与微电子学院

  34. 指令集(30) • 指令集的功能设计(续) • 功能的基本要求(续) • 高效率 指令执行速度快,使用频度高(RISC) • 兼容性 • 新的指令集对旧指令的兼容 • 指令集兼容实现执行程序(目标码)在不同平台上运行 例: X86系列处理器 TC55与C54 北京大学软件与微电子学院

  35. 指令集(31) • 指令集的功能设计(续) • 指令类型 • 数据传送指令考虑的因素 • 存储设别种类 • 寄存器 • 主存 • I/O • 数据传送单位 • 字 • 字节 • 数据块 • 寻址方式 北京大学软件与微电子学院

  36. 指令集(32) • 指令集的功能设计(续) • 指令类型 • 常用数据传送指令种类 • Register -〉Register • Register -〉Memory • Register -〉Stack • Memory -〉Register • Memory -〉Memory • Memory -〉Stack • Stack -〉Memory 北京大学软件与微电子学院

  37. 指令集(33) • 指令集的功能设计(续) • 指令类型 • 运算指令考虑的因素 • 操作种类 • 算术 • 逻辑 • 移位 • 数据表示 • 定点 • 浮点 • 逻辑 • 数据长度 • 数据存储设备 北京大学软件与微电子学院

  38. 指令集(34) • 指令集的功能设计(续) • 指令类型 • 常用运算指令种类 • R-R,w,fixed (float) • R-R,D,fixed (float) • R-R,H,fixed • R-R,B,fixed • R-M,w,fixed (float) • R-M,D,fixed (float) • R-M,H,fixed • R-M,B,fixed 北京大学软件与微电子学院

  39. 指令集(35) • 指令集的功能设计(续) • 指令类型 • 移位指令的三个因素 • 移位方向 • Left • Right • 移位种类 • 算术(A) • 逻辑(L) • 循环(R) • 移位长度 • 单字(W) • 双字(D) 北京大学软件与微电子学院

  40. 指令集(36) • 指令集的功能设计(续) • 指令类型 • 常用移位种类 • SLAW(D) • SRAW(D) • SLLW(D) • SLAW(D) • SLRW(D) • SRRW(D) 例 RL A (MSC51) LSR Rd,Rs (Thumb) 北京大学软件与微电子学院

  41. 指令集(37) • 指令集的功能设计(续) • 指令类型 • 程序控制指令 • 类型 • 转移指令(无条件、有条件) 例:JMP (MSC51),B(ARM) • 程序调用和返回 例:CALL,RET, RETI (C30) • 循环控制 例:RPTB • 转移条件(状态寄存器中的位) • Z • N • C • V 北京大学软件与微电子学院

  42. 指令集(38) • 指令集的功能设计(续) • 指令类型 • I/O • 内存访问 • 专用指令 例:Portw add portr add (C54) 北京大学软件与微电子学院

  43. 指令集(39) • RISC • 历史 • RISC I, David A Patterson, 1981 (Berkeley) • MIPS, Hennessy, 1981 (Stanford) • MIPS2000, Moussouris, 1986 • SPARC, Sun Microsystem,1987 • HP Precision, HP, 1989 • RS 6000, IBM, 1990 • ARM, ARM Limited, 1990 北京大学软件与微电子学院

  44. 指令集(40) • RISC • 特点 • 大多数指令在单周期内完成 • 采用LOAD/STORE结构 • 硬布线控制逻辑 • 减少指令和寻址方式 • 固定的指令格式 • 面向寄存器结构 • 采用流水线技术 • 重视优化技术 北京大学软件与微电子学院

  45. 指令集(41) • RISC • 与CISC的比较(典型应用) 北京大学软件与微电子学院

  46. 指令集(42) • 指令技术发展 • CISC -> RISC -> (?) ISC ? • Instruction accelerating for special application? • Reconfigurable Instruction Set ? 自定义指令集? 北京大学软件与微电子学院

  47. 指令集(43) • 小结 • 指令格式 • 指令系统结构 • 寻址技术 • 指令设计 • RISC指令 • 指令技术发展方向 北京大学软件与微电子学院

  48. 指令集(44) • 问题(作业) • 假设a,b,c,d,e都是内存中的值,操作码的长度为8位,内存地址32位,寄存器地址6位。 • 针对三种不同存储类型的指令集,为了计算c=a+b,每条指令长度是多少,总代码长度是多少? • 某些指令在计算过程中会修改操作数的值,针对三种指令结构中的情况,写出计算c=a+b, d=a-e的代码序列。标出运算过程中每个被改写的操作数。总代码大小是多少,从内存中读出和存入的指令和数据的总字节数是多少? 北京大学软件与微电子学院

  49. 相关技术 • 指令集 • 流水线技术 • 小结 北京大学软件与微电子学院

  50. 相关技术 什么是流水线? 为什么要用流水线? 实现流水线需要硬件资源吗? 北京大学软件与微电子学院

More Related