A quick comparison of 32-bit RISC CPUs.
davidsaunders
Posts: 1,559
A quick comparison of the Propeller, ARM, and AVR32 CPUs. First a list of the features of each:
ARM:
+Conditional execution of any instruction.
+Fixed instruction size.
+Somewhat deterministic execution times for a given ARM.
+Simple external bus.
+Has many integrated peripherals (varies from ARM to ARM).
+Many development tools.
+A wide range of OSes.
AVR32:
+Good MPU.
+Has a reasonable set of integrated peripherals (varies from AVR32 to AVR32).
+Deterministic instruction execution times (most ops).
+Good external bus.
Propeller:
+Highly deterministic execution times.
+Highly deterministic IO behavior.
+Multicore by design.
+Nearly infinite software peripherals.
+No HW external memory bus.
The ARM is best in applications where processing power is of paramount importance, having multi BIPS cores available at very low prices. Also there are many manufactures of the ARM core.The AVR32 is a great MCU for low end applications that require an external bus and DRAM.The Propeller is a universal peripheral, or a great low to mid range system where you do not need the high speed DRAM bus, and 32 GPIOs are enough.Put simply a system may use all three of these beautiful RISC 32 bit CPUs together to great advantage.
ARM:
+Conditional execution of any instruction.
+Fixed instruction size.
+Somewhat deterministic execution times for a given ARM.
+Simple external bus.
+Has many integrated peripherals (varies from ARM to ARM).
+Many development tools.
+A wide range of OSes.
AVR32:
+Good MPU.
+Has a reasonable set of integrated peripherals (varies from AVR32 to AVR32).
+Deterministic instruction execution times (most ops).
+Good external bus.
Propeller:
+Highly deterministic execution times.
+Highly deterministic IO behavior.
+Multicore by design.
+Nearly infinite software peripherals.
+No HW external memory bus.
The ARM is best in applications where processing power is of paramount importance, having multi BIPS cores available at very low prices. Also there are many manufactures of the ARM core.The AVR32 is a great MCU for low end applications that require an external bus and DRAM.The Propeller is a universal peripheral, or a great low to mid range system where you do not need the high speed DRAM bus, and 32 GPIOs are enough.Put simply a system may use all three of these beautiful RISC 32 bit CPUs together to great advantage.
Comments
Yes this does mean that the execution timings do have to be calculated based on the core currently being used.
On the face of it a cog is simpler and slower than many other CPUs. No pipelines or caches to speed things up. No stack ops or pointer indexing etc, etc.
But...put 8 of those together with the HUB and the direct connection to I/O pins and the magic starts to happen....
Though While a cog is kind of useless by itself, it does have some things going for it, such as the counters, and high speed shifter used in video output. If you were to make a system based on a single cog it would be usable, for on thing there would be no waiting for a hub access, though rather just do the memory reads and writes when ever. And if you add a simple SRAM based MMU it would be a simple mater to use the hub ops to access many MB or even GB of RAM.