DATA



Autor: Alexander Eichhorn


Processors

Processors are the central processing unit (CPU) inside computers.

They do all the heavy lifting of image processing, handling user commands, moving, formating and encrypting data and controlling access permissions. To do this, a processor needs two things (1) instructions and (2) data which will be transformed by instructions. Instructions are stored in a binary format inside software packages you install. Data is everything you as a user download online, enter via keyboard or mouse or generate when recording video or audio.

Modern processors are fast, in fact they are most of the time so fast in processing data that memory links and network connections become bottlenecks for delivering data and instructions fast enough. In many cases it is beneficial for execution speed to buffer often used data in faster but more expensive memory closer to the CPU. Such memory is called `cache` and it is usually co-located on the same silicon as the processor. Today, caches take up more than half of the space of a CPU with a total capacity of up to 12-16 MB.

Types of Processors

General purpose CPUs: for desktop, servers and mobile devices

Graphics operations, that is rendering 3D objects and managing display pixels at display refresh rates of 60 - 120 Hz have always required special purpose processors, so called graphics processung units (GPU). Besides 3D rendering based on OpenGL or DirectX many other specialized functions such as video decoding and color space conversions are directly implemented in GPU hardware today. GPU vendors like NVidia, Intel and AMD have opened up their GPUs for general purpose computing. Professional 3D, post-production, effects and compositing software is using such features extensively. Without GPUs real-time effects on 4k and 8k video material would no be possible.

In mobile computing (smartphones, tablets) and embedded devices (DSL and WLAN routers, media players, Smart TVs, etc) the functions of CPU, GPU, memory controllers and networking connections are combined in a single chip, a so called Systems-on-a-Chip (SoC). SoC's are custom-made for each particular purpose and cannot be re-programmed or upgraded.

In highly specialized applications where top speed, size and power consumption are more important than programmability (e.g. video switches, digital cameras, sound and voice processors) we find digital signal processors (DSP) and application-specific integrated circuits (ASIC) that are customized for their particular use.

Performance of Processors
Performance of processors is measured in clock-speed, number of cores, cache size and energy consumption.

Clock-speed is measured in GHz which means a CPU can execute N billion simple instructions, i.e. adding two numbers, per second. More complex instructions, i.e. dividing two numbers, take multiple clock cycles. Clock-speeds have grown slowly over the past years due to mobile computing which has shifted focus towards reducing energy consumption and miniaturization.

All recent speed improvements originate in parallel execution with so called multi-core CPUs. A `core` is a single execution unit inside a processor that can perform one independent task at a time. Multiple cores can perform different tasks in parallel. Modern CPU's contain 4-12 cores and GPUs around 1000 - 2000 cores. GPU cores are much less powerful, but their large number makes GPU computing very attractive.

Software that has been specifically designed to leverage multiple cores or GPUs can generally perform better when more cores are available. Video compression and image processing software are good examples since parallel work can be performed on multiple pixels or blocks of pixels at once. However, not all software benefits from parallelization. Office and email programs, for example, wait most their time for user input and process data mostly sequentially which does not require more than a single core.


different CPU types - overview

Related Articles: