What is a microprocessor?