ARM appears to be tolerating a number of freely available processor core clones, as long as they are based on older versions of the ARM architecture.
One wonders if it will different this time around. Or will ARM litigate into extinction any free, open-source, or rival commercial implementations of the ARM instruction set architecture, just as the company did a decade ago?
Nonetheless ARM clones are coming, but given ARM's previous determination to wipe out clones, the creators are being wary.
Professor David May, of Bristol University and XMOS, has created a compiler that will compile X programming language software for a processor based on just the 37-most useful Thumb instructions. But he has said he may move on to something simpler that will better support parallelism. If Professor May had just wanted an open-source ARM core Professor May could have saved himself some trouble by just downloading one from www.opencores.org.
However, most of these royalty-free ARM cores are based on out-of-use instruction set variants from the early days of ARM. There are two reasons for this: they are simpler and easier to develop and, by not being fully compatible with ARM's Cortex range of processors, have so far avoided hostile legal action.
OpenCores, a community site for the development of open-source IP cores, plays host to the downloadable synthesizable Amber processor.
The Amber processor core is compatible with the ARMv2a instruction set architecture (ISA) and is therefore supported by the GNU toolset. The Amber project includes the Amber core, in two variants and a number of peripherals, including a UART, a timer and an Ethernet MAC.
The Amber 23 has a 3-stage pipeline, a unified instruction and data cache and is capable of 0.75-DMIPS per MHz. The Amber 25 has a 5-stage pipeline, separate data and instruction caches and is capable of 1.05 DMIPS per MHz. The cores do not contain a memory management unit (MMU) so they can only run the non-virtual memory variant of Linux.
According to the Amber page at opencores.org the older v2a version of the ARM instruction set has been used because it is supported by the GNU tool chain and is "not covered by patents so can be implemented without a license from ARM."
It is the case that patents usually have a 20 year life and therefore those that were in force in 1990 have now expired. However, modern implementations of old instruction sets could infringe on techniques that have been patented more recently by ARM or other companies – so I don't think the age of the instruction set is a water-tight defense.
The most likely explanation of the lack of legal action is that ARM has chosen not to prosecute individuals and organizations producing ARM-compatible cores that do not compete directly with ARM's contemporary portfolio. Indeed there is an argument that the availability of simple ARM clones for use by students would improve the ARM ecosystem.