从指令系统对MAXQ和其它RISC微控制器作出比较与评测
发布时间:2007/8/28 0:00:00 访问次数:567
鲁维德
本文从指令系统上对MAXQ与其它RISC(精简指令集电脑运算)竞争微控制器(包括PICl6CXXX、AVR和MSP430)作出比较与评测。
前言
由于将高级模拟功能与前沿微控制器整合在一起,因而MAXQ架构成为当今微控制器业界中的一个真正创新。MAXQ开拓性地采用了一种传送-触发架构,实现了高带宽、高效率和高正交性的设计。而MAXQ系统和外设资源的模块化组织结构也导致了编译器的最优化,模块的可移植性加速了新的MAXQ衍生产品的诞生。这些MAXQ架构的内部特性为新一代产品的指令集扩展创造了条件。这些引人瞩目的优点使MAXQ架构成为当前和未来项目的理想方案,无论以何种标准来衡量,它将都是—个名列前茅的选择。
为了更好的、方便的、灵活的应用好该全新的微控制器-MAXQ RISC架构,值此很有必要从指令系统上对MAXQ与其它RISC(精简指令集电脑运算)竞争微控制器(包括PICl6CXXX、AVR和MSP430)作出比较与评测,并以表格的方式列出了各种指令系统和架构的优势和弱点。将利用选定的算法和操作代码来判断不同系统的代码密度和代码性能,并在最后重点介绍各实例代码的MIPS(每秒百万指令)/mA比率。
MAXQ指令系统概览
MAXQ指令系统建立在传送-触发概念之上。指令字简单地由源和目的操作数构成。这些源和目的操作数能够表示物理寄存器,通过编码还可以间接访问数据存储器、堆栈存储器和工作累加器或用于隐含地触发硬件操作。有关MAXQ的传送-触发架构早己有过介绍。特定MAXQ器件的源和目的编码在该器件相关的MAXQ用户指南中有详细说明。尽管有些源和目的编码只适用于特定器件,例如用于外围硬件功能的编码,还是有一些固定的编码为不同器件所共有,它们构成了基本的MAXQ指令系统。表1给出了MAXQ指令字和指令系统助记符。
表1.为MAXQ指令字和指令系统助记符
而MAXQ指令字所表达的源-目的传送概念产生了一个小巧且强有力的指令集。见图1的MAXQ指令字格式。
图1:独特的MAXQ指令字
从MAXQ指令字非常独特,因为只有一条传统意义上的指令,即“MOVE” 指令。将16位MAXQ指令分解后,得到的只有两部分:7位(ddddddd)目的域,以及带有1位源格式位的8位(ssssssss)源域。当源格式位编码为0时,表示以立即数或文本字节(即#00h-#FFh)作为源操作数。在单个指令字中对于立即数源的无限支持则对寄存器的初始化例程和ALU操作非常有价值。当源格式位编码为1时,非文本源和目的操作数又细分为更小的组或模块。从而可看出MAXQ指令字很简单,但功能却很强大。
MAXQ对比其它指令系统
有人可能会试图拿MAXQ的指令助记符来和其他系统作对比,但应该强调,这种分析会十分困难且不公平,因为每种指令系统都是基于特定的器件资源和寻址模式而建止的。基于这个原冈,指令系统和器件架构(指令周期、存储器模型,寄存器组、寻址模式等等)是密不可分的,必须统一考虑。表2归纳了几种指令系统在强项和弱项上的比较。
代码实例
比较不同指令系统的最佳方法是定义一系列任务,并在不同指令体系下编写代码来执行这些任务。随后介绍这些用于执行的任务,并归纳各指令系统的代码密度和性能表现。第—个例程的实例代码包含在下文程序中,但后面的例程(从第4节存储器拷贝开始到第9节)仅用图表和正文中对其性能加以归纳。
;===========================AVR ==================================
; ramsize=r16 ;Size of block to be copied
; Z-pointer=r30:r3l ;Src pointer
; Y-pointer=r28:r29 ;dst pointer
; USES:
; ramtemp=r1 ;temporary
鲁维德
本文从指令系统上对MAXQ与其它RISC(精简指令集电脑运算)竞争微控制器(包括PICl6CXXX、AVR和MSP430)作出比较与评测。
前言
由于将高级模拟功能与前沿微控制器整合在一起,因而MAXQ架构成为当今微控制器业界中的一个真正创新。MAXQ开拓性地采用了一种传送-触发架构,实现了高带宽、高效率和高正交性的设计。而MAXQ系统和外设资源的模块化组织结构也导致了编译器的最优化,模块的可移植性加速了新的MAXQ衍生产品的诞生。这些MAXQ架构的内部特性为新一代产品的指令集扩展创造了条件。这些引人瞩目的优点使MAXQ架构成为当前和未来项目的理想方案,无论以何种标准来衡量,它将都是—个名列前茅的选择。
为了更好的、方便的、灵活的应用好该全新的微控制器-MAXQ RISC架构,值此很有必要从指令系统上对MAXQ与其它RISC(精简指令集电脑运算)竞争微控制器(包括PICl6CXXX、AVR和MSP430)作出比较与评测,并以表格的方式列出了各种指令系统和架构的优势和弱点。将利用选定的算法和操作代码来判断不同系统的代码密度和代码性能,并在最后重点介绍各实例代码的MIPS(每秒百万指令)/mA比率。
MAXQ指令系统概览
MAXQ指令系统建立在传送-触发概念之上。指令字简单地由源和目的操作数构成。这些源和目的操作数能够表示物理寄存器,通过编码还可以间接访问数据存储器、堆栈存储器和工作累加器或用于隐含地触发硬件操作。有关MAXQ的传送-触发架构早己有过介绍。特定MAXQ器件的源和目的编码在该器件相关的MAXQ用户指南中有详细说明。尽管有些源和目的编码只适用于特定器件,例如用于外围硬件功能的编码,还是有一些固定的编码为不同器件所共有,它们构成了基本的MAXQ指令系统。表1给出了MAXQ指令字和指令系统助记符。
表1.为MAXQ指令字和指令系统助记符
而MAXQ指令字所表达的源-目的传送概念产生了一个小巧且强有力的指令集。见图1的MAXQ指令字格式。
图1:独特的MAXQ指令字
从MAXQ指令字非常独特,因为只有一条传统意义上的指令,即“MOVE” 指令。将16位MAXQ指令分解后,得到的只有两部分:7位(ddddddd)目的域,以及带有1位源格式位的8位(ssssssss)源域。当源格式位编码为0时,表示以立即数或文本字节(即#00h-#FFh)作为源操作数。在单个指令字中对于立即数源的无限支持则对寄存器的初始化例程和ALU操作非常有价值。当源格式位编码为1时,非文本源和目的操作数又细分为更小的组或模块。从而可看出MAXQ指令字很简单,但功能却很强大。
MAXQ对比其它指令系统
有人可能会试图拿MAXQ的指令助记符来和其他系统作对比,但应该强调,这种分析会十分困难且不公平,因为每种指令系统都是基于特定的器件资源和寻址模式而建止的。基于这个原冈,指令系统和器件架构(指令周期、存储器模型,寄存器组、寻址模式等等)是密不可分的,必须统一考虑。表2归纳了几种指令系统在强项和弱项上的比较。
代码实例
比较不同指令系统的最佳方法是定义一系列任务,并在不同指令体系下编写代码来执行这些任务。随后介绍这些用于执行的任务,并归纳各指令系统的代码密度和性能表现。第—个例程的实例代码包含在下文程序中,但后面的例程(从第4节存储器拷贝开始到第9节)仅用图表和正文中对其性能加以归纳。
;===========================AVR ==================================
; ramsize=r16 ;Size of block to be copied
; Z-pointer=r30:r3l ;Src pointer
; Y-pointer=r28:r29 ;dst pointer
; USES:
; ramtemp=r1 ;temporary