However, when the application requirement is real-time, DSP is often implemented using specialized microprocessors such as the DSP56000 , the TMS320 , or the SHARC . These often process data using fixed-point arithmetic, though some more powerful versions use floating point. For faster applications FPGAs  might be used. Beginning in 2007, multicore implementations of DSPs have started to emerge from companies including Freescale and Stream Processors, Inc . For faster applications with vast usage, ASICs might be designed specifically. For slow applications, a traditional slower processor such as a microcontroller may be adequate. Also a growing number of DSP applications are now being implemented on embedded systems using powerful PCs with multi-core processors.