In computing and computer science, a processor or processing unit is an electrical component (digital circuit) that performs operations on an external data source, usually memory or some other data stream. The term is frequently used to refer to the central processing unit (CPU), the main processor in a system. It can also refer to other specialized processors such as graphics processing units (GPU), quantum processing units (QPU), and digital signal processors (DSP). The design and development of a processor is intricate and time-consuming because it requires defining both its functional requirements (operations it must perform) and its non-functional requirements (the physical and performance constraints).