The Cortex-R4 floating point CPU has many features. ARM cores have support from many third party development environments and compilers. This way a designer has other options besides Code Composer Studio with options from Keil and IAR. There are many performance and safety features of the ARM Cortex-R4. An eight-region memory protection unit is user programmable to block out different regions of the memory space so the core cannot accidentally write to those areas. There is a fast multiply, divide and square root function built in to the core. The instruction set for this core supports older ARM instructions so ARM7, ARM9 and ARM11 are still executed. This is important to designers using legacy code or binary files that have been safety certified or been through a long certification process. Additionally, this core supports the current ARM instruction set along with the Thumb and Thumb-2 sets. The Cortex-M3, M8, A8 and A9 execute the Thumb-2 instruction set. The R4 has a built-in single and double precision IEEE 754 compliant floating point unit. The floating point and integer instructions operate in parallel and the R4 actually has a very advanced eight-stage pipeline which delivers 1.6 DMIPS per Megahertz of performance. This pipeline has an extremely advanced feature called branch prediction. Branch prediction allows for prefetching of code that is used consistently. An example of this would include a ‘for loop’ that is utilized frequently; which in the end increases performance.