深入解析MC68882浮点协处理器:高性能计算的理想之选
在当今的电子设计领域,浮点协处理器对于提升系统的计算能力起着至关重要的作用。MC68882作为一款经典的浮点协处理器,以其卓越的性能和广泛的兼容性,成为了众多工程师的首选。本文将深入剖析MC68882的技术细节,为电子工程师们提供全面的参考。
文件下载:MC68882CEI16A.pdf
一、MC68882概述
MC68882是飞思卡尔半导体公司推出的一款HCMOS增强型浮点协处理器,它完全实现了IEEE二进制浮点算术标准(ANSI - IEEE Standard 754 - 1985),可与摩托罗拉M68000系列处理器配合使用。作为MC68881的升级版,MC68882在引脚和软件上与MC68881兼容,并且优化了接口,性能比MC68881提高了1.5倍以上。它采用VLSI技术,为系统设计师提供了功能强大且体积小巧的解决方案。
二、主要特性
2.1 数据寄存器与精度
- 浮点数据寄存器:拥有八个通用浮点数据寄存器(FP0 - FP7),支持80位扩展精度实数数据格式(64位尾数加1位,15位有符号指数),确保了高精度的计算。
- 算术单元:配备67位算术单元,能够进行快速计算,中间精度高于扩展精度格式,大大提高了计算效率。
- 移位器:67位桶形移位器可实现高速移位操作,用于数据归一化等操作。
2.2 数据转换与指令集
- 数据转换硬件:具备特殊用途的硬件,可实现二进制实数内存操作数与内部扩展格式之间的高速转换。
- 指令集:拥有46条指令,包括各种算术运算,完全符合IEEE 754标准,支持IEEE标准定义的所有函数,如三角函数和超越函数等。
2.3 数据类型与常量
- 数据类型:支持七种数据类型,包括字节、字和长字整数,单精度、双精度和扩展精度实数,以及压缩二进制编码十进制字符串实数。
- 常量:片上ROM中提供24个常量,如π、e和10的幂等,方便用户进行计算。
2.4 其他特性
- 虚拟内存/机器操作:支持虚拟内存/虚拟机操作,通过FSAVE和FRESTORE指令实现状态的保存和恢复。
- 高效机制:具备高效的过程调用、上下文切换和中断处理机制,与主处理器协同执行指令,支持多条浮点指令的并发执行。
- 总线兼容性:可与任何主机处理器配合使用,支持8位、16位或32位数据总线。
三、协处理器概念与接口
3.1 协处理器角色
MC68882在以MC68020或MC68030为主处理器的系统中作为协处理器,通过M68000协处理器接口提供逻辑扩展;在以MC68000、MC68008或MC68010为主处理器的系统中作为外围处理器。
3.2 接口特性
- 通信方式:主处理器与MC68882通过标准M68000总线周期进行通信,通信不依赖于单个设备的架构。
- 时钟独立性:主处理器和MC68882可以以不同的时钟速度运行,提高了系统的灵活性。
- 地址计算:所有有效地址计算由主处理器完成,数据传输也由主处理器根据MC68882的请求进行。
- 并发执行:支持指令的并发执行,提高了系统的吞吐量,同时保持程序员的顺序执行模型。
- 异常处理:主处理器根据MC68882的请求处理异常,通过FSAVE和FRESTORE指令支持虚拟内存/虚拟机系统。
四、硬件概述
4.1 整体架构
MC68882采用HCMOS工艺,支持MC68020或MC68030的虚拟机架构。其架构对用户而言是M68000系列架构的逻辑扩展,与MC68020或MC68030配合使用时,可视为一个拥有八个整数数据寄存器、八个地址寄存器和八个浮点数据寄存器的处理器。
4.2 编程模型
- 浮点数据寄存器:八个80位浮点数据寄存器(FP0 - FP7),类似于整数数据寄存器,可用于任何指令。
- 控制寄存器:32位控制寄存器,包含异常陷阱使能位和用户可选择的舍入和精度模式位。
- 状态寄存器:32位状态寄存器,包含浮点条件码、商位和异常状态信息。
- 指令地址寄存器:32位指令地址寄存器,记录最后执行的浮点指令的主处理器内存地址,用于异常处理。
4.3 内部处理单元
- 总线接口单元(BIU):负责与MC68020或MC68030通信,包含协处理器接口寄存器、寄存器选择和DSACK时序控制逻辑,以及用于监控与主处理器通信状态的状态标志。
- 转换单元(CU):包含特殊用途硬件,用于二进制实数数据格式与内部扩展格式之间的转换,减轻了算术处理单元(APU)的工作负载。
- 算术处理单元(APU):包含八个80位浮点数据寄存器和32位控制、状态和指令地址寄存器,还拥有高速67位算术单元、桶形移位器和ROM常量。控制部分包含时钟发生器、两级微码序列器、微码ROM和自测试电路。
五、性能优势
5.1 并发执行
MC68882能够并发执行多条浮点指令,充分利用算术处理单元(APU),减少其空闲时间,提高了计算效率。
5.2 优化指令
优化的FMOVE指令执行速度比MC68881快两倍,进一步提升了性能。
六、数据格式
6.1 浮点数据格式
- 单精度和双精度:符合IEEE标准,是主要的浮点格式,用于大多数实数计算。
- 扩展精度:同样符合IEEE标准,用于临时变量、中间值或需要额外精度的场景。
6.2 压缩十进制字符串实数数据格式
支持压缩BCD字符串的传输和转换,可自动将其转换为扩展精度实数,方便进行各种操作。
七、指令集
7.1 指令分类
MC68882的指令集分为六类:移动指令、多寄存器移动指令、单目操作、双目操作、条件分支/设置/陷阱指令和杂项指令。
7.2 具体指令
- 移动指令:实现数据在MC68882与内存或MC68020/MC68030数据寄存器之间的转换和移动。
- 多寄存器移动指令:可一次性移动多个浮点寄存器,用于上下文切换和中断时的状态保存和恢复。
- 单目操作:对一个操作数进行操作,结果存储在浮点数据寄存器中,如平方根、绝对值等。
- 双目操作:对两个操作数进行操作,结果存储在第二个操作数所在的浮点数据寄存器中,如加法、减法等。
- 条件分支/设置/陷阱指令:根据条件进行分支、设置或陷阱操作,类似于M68000系列处理器的整数指令。
- 杂项指令:包括与状态、控制和指令地址寄存器的移动操作,以及虚拟内存/机器状态的保存和恢复指令。
八、寻址模式
MC68882不进行地址计算,由主处理器根据指令要求进行寻址模式计算。它支持M68000系列的各种寻址模式,如立即寻址、后增量寻址、前减量寻址、数据或地址寄存器直接寻址,以及MC68020和MC68030的索引/间接寻址模式。
九、兼容性
9.1 与MC68881的兼容性
使用MC68882替换MC68881无需硬件更改和用户软件修改,但为保证浮点异常模型符合顺序执行模型,需要对系统级软件进行一些修改。
9.2 异常处理要求
在处理浮点异常时,需要执行FSAVE指令,设置BIU标志字,并在RTE指令之前执行FRESTORE指令。
十、信号描述
10.1 输入输出信号
MC68882的输入输出信号包括地址总线、数据总线、SIZE信号、地址选通信号、芯片选择信号、读写信号、数据选通信号、数据传输和大小确认信号、复位信号、时钟信号、感测设备信号、电源输入和接地信号等。
10.2 信号功能
- 地址总线(A0 - A4):用于主处理器选择协处理器接口寄存器的位置。
- 数据总线(D0 - D31):作为MC68020/MC68030与MC68882之间的通用数据传输总线。
- SIZE信号:与A0引脚配合,配置MC68882在8位、16位或32位系统数据总线上的操作。
- 其他信号:各信号在不同的操作中发挥着特定的作用,如地址选通信号指示地址有效,芯片选择信号使能主处理器对MC68882的访问等。
十一、接口方法
11.1 与MC68020/MC68030的接口
根据数据总线的位数(8位、16位或32位),MC68882与MC68020/MC68030的连接方式不同,通过不同的引脚配置和数据连接实现。
11.2 与MC68000/MC68008/MC68010的接口
作为外围处理器,MC68882与MC68000、MC68008或MC68010的连接也根据数据总线位数(8位或16位)进行不同的配置,同时芯片选择解码与系统相关。
十二、电气规格
12.1 最大额定值
包括电源电压、输入电压、工作温度和存储温度等参数,确保设备在安全范围内工作。
12.2 热特性
介绍了热阻的相关参数,如结到环境的热阻(θJA)和结到外壳的热阻(θJC),并提供了计算芯片结温的公式,强调了良好的热管理对降低结温的重要性。
12.3 直流电气特性
包括输入电压、输入泄漏电流、输出高电压、输出低电压、输出低电流、功耗、电容等参数,为电路设计提供了参考。
12.4 交流电气特性
针对时钟输入和读写周期的时序要求进行了详细说明,包括频率、周期时间、时钟脉冲宽度、上升和下降时间等参数,确保设备在不同时钟频率下的正常工作。
十三、引脚分配与机械数据
13.1 引脚分配
提供了MC68882在引脚网格阵列(PGA)和塑料引脚芯片载体(PLCC)两种封装下的引脚分配图,方便工程师进行硬件设计。
13.2 机械数据
给出了两种封装的尺寸和公差等机械数据,为产品的机械设计提供了依据。
MC68882浮点协处理器以其丰富的功能、卓越的性能和广泛的兼容性,为电子工程师在设计高性能计算系统时提供了强大的支持。通过深入了解其技术细节,工程师们可以更好地发挥MC68882的优势,设计出更加优秀的产品。你在实际设计中是否使用过MC68882呢?遇到过哪些问题?欢迎在评论区分享你的经验和见解。