外文翻译---微处理器报告
AVR还有令人感兴趣的
“跳跃”指令(SBRC,SBRS,SBIC和SBIS),如果在任意寄存器里设置得话,它们能漏过下一个指令。如果跳跃指令为长跳转,它们就能作产生有效的长偏移条件转移。同时,它们也能在一串操作中跳过单一算法或逻辑操作,这种条件操作与ARM的方法有些类似。
AVR芯片没有相乘操作,尽管其中的一种已经被定义。MUL(相乘)任意两个8位寄存器,这个16位的结果存放在R0和R1中。操作时,MUL在两个时钟周期中执行,这比68HC11的10时钟快5倍,连摩托罗拉最新的68HC12也需要3个时钟。Atmel希望在在未来的AVR芯片上生产时钟速度增加、信号处理任务简单化的乘法器。
二进制处理指令。
对于大多数微控制器,AVR有许多二进制选择,包括16个在位寄存器中这支或删除的外在指令。这看起来像工作编码的不平衡运用,常规逻辑操作也能达到相同的结果。然而,为了深入运用,这也许是正确的选择。伪操作用到很珍贵的地址指示字和一个或更多的寄存器。SEx/CLx不用寄存器。
芯片也能在普通目的或输入/输出寄存器中设置或清除任意位,SER
和CLR能立刻擦除整个寄存器。SBR和CBR,分别又称为ORI和ANDI,能设置或清除多位。包括五部分的初始发行。
Atmel发行的AVR生产线包括四个基本芯片:90S1200,2313,4414和8515。后三种比较相似,主要的区别在于内存的大小:2K,4K或8K,同时,芯片上的SRAM和
E2PROM数量也一直在增加。
最初的1200仅有1K的快闪存储器,没有静态存储器和外部设备以及一个受限的指令系统。既没有SRAM,也没有内部设备,1200必须依靠芯片的快闪或数据存储。除非程序员可以通过寄存器组得到,否则这会大大减慢运行速度。1200是当前产品中唯一的芯片。在1000个单元中,20片90S1200只卖1.65美元。
数据位多于片数是很不经常的事,但是Atmel设法使它更接近于1220,这是1200的一种8片变形。在经过激励、搁浅和晶体连接以后,只有4片对于输入/输出设备是可用的。多数AVR芯片来自20片DIP或SOIC包,这可以用在更多I/O线。只有在40片包中,芯片才能联合它们的地址和数据与外部存储器结合。
所有部分都在Colorado
Springs和Rousset
(法国)的四个0.8微米双层金属线上生产。这使用一个相同的存储过程。Atmel把E2PROM,快闪设备以及8051用作结合的快闪设备。1200只有24,如图2照片所示。存储过程没有十分紧凑(或者快速)的逻辑性,但是多数AVR芯片会受到内存、外围设备以及时钟速度不快的限制。
RISC技术提高了编码速度
有时8位处理机很难让人满意,尽管Atmel的AVR设计与十年前最初来自大系统的RISC设备不同。在大寄存器文件和正交指令系统上,AVR比它的对手先进很多。
Atmel的新一代CPU非常吸引那些试图把微控制器从32位或16位降低以及习惯灵活寄存器组的程序员们。可以说,对于从8051提升的程序员,AVR将是让人吃惊的产品。例如,8051,6805和PIC都只有一块电池,68HC11和HC12页仅有两个。这使AVR较容易的在汇编基础上编程和使编译器最优化。大寄存器减小了对内存的依赖,这提高了速度,降低了数据存储要求。
相反地,AVR的类RISC指令系统也帮助提高了编码速度。它的CPI指令避免了在6805和PIC上相对笨拙的操作:装载、减法以及校验。在8051,6805或PIC上相加两个数包括找出两个数和存储结果,而AVR只需用一条指令相加两个寄存器。
AVR并不是纯粹的RISC—一些指令比另外的稍长—也不是有大寄存器文件的8位微控制器。Zilog曾经流行的Z8有16个寄存器和一个正交指令系统。但是在每个指令的5-15时钟,Z8比不上AVR的速度。
6805,8051和68HC11是世界上出售的很好8位产品,每月有数百万的产品运出。尽管AVR不能立刻推翻这种趋势,但是它仍然有很多优势。
尽管
“高性能”在这里也许有些不妥,但AVR应该胜过其他8位微控制器和16位芯片。在20兆赫兹,它的最高时钟速度很容易就超过同系的其他芯片,甚至可以加倍。更重要的是,几乎所有指令在1或2个时钟周期内执行,相对地,8051,6805,68HC11和PIC需要5—10个时钟周期。
8位应用者也可以找到更快的速度。摩托罗拉的68HC12是HC11的改进,Philips和Intel正在吸引使用者用8051XA或251。不仅如此,Intel通过完成8051
and和251的二进制兼容,为我们提供了更流畅的提升路径。Philips和Motorola都向试图重新编码的使用者吹捧它们的尺寸和速度优势。
HC12,8051XA和251是带有16位内部数据路径和16位算法操作的更精确的16位设计,但是对于最简单的计算和最基本的寄存器操作,它们仍然需要3个或更多时钟。此外,时钟速度比起Atmel的也不够快,并且不能胜任固有指令。
简而言之,AVR在8位价格上提供了16位性能。对于那些想要芯片存储而不需要16位数据类型或二进制兼容的使用者,Atmel提供了更优良的价格/性能比。