Rabbit Semiconductor
Encyclopedia
Rabbit Semiconductor is the company which designs and sells the Rabbit
family of microcontroller
s and microcontroller modules.
For development, it provides Dynamic C, a non-standard dialect of C
with proprietary structures for multitasking.
Rabbit Semiconductor was purchased in 2006 by Digi International
. Before the purchase, Rabbit Semiconductor was a division of Z-World, Inc. Z-World developed and manufactured embedded controller products as well as embedded software development environments.
processors. For example, the registers
of a Rabbit 2000/3000 processor are almost the same as the registers of a Z80/Z180 processor. The Rabbit 4000 processor expands to include the use of 32-bit registers. The instruction set
of Rabbit processors also closely resembles the instruction set of the Z80/Z180 family. While the opcodes of many instructions are the same between the Rabbit 2000/3000 processors and Z80/Z180 processors, the two families of processors are not binary compatible.
The Rabbit processor family has unique features. For example, the Z80/Z180 family disables interrupt
s once an interrupt is serviced by an interrupt service routine. However, the Rabbit processors permit interrupts to interrupt service routines according to priorities (a total of 4).
As with the Z80/Z180 family, the Rabbit processors are CISC
processors, as opposed to RISC
competitors like the Atmel AVR
processors. A comparison of clocks per instruction of the Rabbit processor against a typical RISC processor like the AVR reveals that even though the Rabbit processors can use a faster clock (up to 60MHz), the effective processing power is comparable to that of a similarly-priced AVR processor using a slower clock (up to 32MHz). For example, the "INC (IX+d)" instruction requires 12 clocks on a Rabbit processor. The equivalent instruction sequence (LDD, INC, STD) on an AVR requires 5 cycles. Another example is the CALL instruction. It requires 12 cycles on a Rabbit processor, versus 4 to 5 cycles on an AVR processor.
This difference, in part, is due to the AVR using on-chip memory for both instructions and data, whereas the Rabbit uses off-chip memory for both instructions and data.
Rabbit Semiconductor claims that the instruction set of Rabbit processors is optimized for C code. A similar claim is made by Atmel for their AVR processors. The two architectures actually have very similar addressing modes, such as literal, register, indirect and indirect plus displacement. Furthermore, both architectures have specialized 16-bit registers. The Rabbit has the IX, IY and SP, whereas the AVR has X, Y and Z.
The main difference is that the Rabbit instructions place more constraints on register usage compared to the AVR instructions. For example, the 8-bit Rabbit ADD instruction permits only the A-register be the destination. However, the ADD instruction of the AVR permits the use any one of the 32 8-bit registers as the source or destination. Generally speaking, an instruction set that is less register restrictive is more optimizable because there is less need to save-and-reload the content of a register.
Rabbit 2000
The Rabbit 2000 is a high-performance 8-bit microcontroller designed by Rabbit Semiconductor expressly to power embedded system applications. Its extensive integrated feature set and glueless architecture facilitate rapid hardware design, and its C-friendly instruction set permits efficient...
family of microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
s and microcontroller modules.
For development, it provides Dynamic C, a non-standard dialect of C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
with proprietary structures for multitasking.
Rabbit Semiconductor was purchased in 2006 by Digi International
Digi International
Digi International was founded in 1985 as DigiBoard and is headquartered in Minnetonka, Minnesota, USA. The company went public as Digi International in 1989 and is traded on the NASDAQ National Market under the symbol DGII. The company initially offered intelligent ISA/PCI boards with multiple...
. Before the purchase, Rabbit Semiconductor was a division of Z-World, Inc. Z-World developed and manufactured embedded controller products as well as embedded software development environments.
Microcontroller Architecture
The Rabbit processor family shares many features with the Zilog Z80/Z180Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...
processors. For example, the registers
Processor register
In computer architecture, a processor register is a small amount of storage available as part of a CPU or other digital processor. Such registers are addressed by mechanisms other than main memory and can be accessed more quickly...
of a Rabbit 2000/3000 processor are almost the same as the registers of a Z80/Z180 processor. The Rabbit 4000 processor expands to include the use of 32-bit registers. The instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...
of Rabbit processors also closely resembles the instruction set of the Z80/Z180 family. While the opcodes of many instructions are the same between the Rabbit 2000/3000 processors and Z80/Z180 processors, the two families of processors are not binary compatible.
The Rabbit processor family has unique features. For example, the Z80/Z180 family disables interrupt
Interrupt
In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....
s once an interrupt is serviced by an interrupt service routine. However, the Rabbit processors permit interrupts to interrupt service routines according to priorities (a total of 4).
As with the Z80/Z180 family, the Rabbit processors are CISC
Complex instruction set computer
A complex instruction set computer , is a computer where single instructions can execute several low-level operations and/or are capable of multi-step operations or addressing modes within single instructions...
processors, as opposed to RISC
Reduced instruction set computer
Reduced instruction set computing, or RISC , is a CPU design strategy based on the insight that simplified instructions can provide higher performance if this simplicity enables much faster execution of each instruction. A computer based on this strategy is a reduced instruction set computer...
competitors like the Atmel AVR
Atmel AVR
The AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
processors. A comparison of clocks per instruction of the Rabbit processor against a typical RISC processor like the AVR reveals that even though the Rabbit processors can use a faster clock (up to 60MHz), the effective processing power is comparable to that of a similarly-priced AVR processor using a slower clock (up to 32MHz). For example, the "INC (IX+d)" instruction requires 12 clocks on a Rabbit processor. The equivalent instruction sequence (LDD, INC, STD) on an AVR requires 5 cycles. Another example is the CALL instruction. It requires 12 cycles on a Rabbit processor, versus 4 to 5 cycles on an AVR processor.
This difference, in part, is due to the AVR using on-chip memory for both instructions and data, whereas the Rabbit uses off-chip memory for both instructions and data.
Rabbit Semiconductor claims that the instruction set of Rabbit processors is optimized for C code. A similar claim is made by Atmel for their AVR processors. The two architectures actually have very similar addressing modes, such as literal, register, indirect and indirect plus displacement. Furthermore, both architectures have specialized 16-bit registers. The Rabbit has the IX, IY and SP, whereas the AVR has X, Y and Z.
The main difference is that the Rabbit instructions place more constraints on register usage compared to the AVR instructions. For example, the 8-bit Rabbit ADD instruction permits only the A-register be the destination. However, the ADD instruction of the AVR permits the use any one of the 32 8-bit registers as the source or destination. Generally speaking, an instruction set that is less register restrictive is more optimizable because there is less need to save-and-reload the content of a register.