Digital signal processors (DSPs) are optimized for signal processing applications like mobile phones. DSPs have architectures designed for operations common in signal processing like multiply-accumulate. Key differences from general purpose processors include separate memory and buses for instructions and data, hardware multipliers, and instructions that can perform multiply-accumulate in one clock cycle. DSPs also often have multiple arithmetic logic units that can perform operations in parallel and fixed-point arithmetic to reduce power consumption. Pipeline parallelism is another optimization employed in DSPs to improve performance.