Центральний процесор (ЦП) (), також званий головним процесором або просто процесором, є основним процесором у певному комп'ютері. Його електронні схеми виконують інструкції комп'ютерної програми, такі як арифметичні, логічні, керувальні операції та операції введення/виведення (I/O). Ця роль відрізняється від ролі зовнішніх компонентів, таких як основна пам'ять і схеми вводу-виводу, та спеціалізованих співпроцесорів, таких як графічні процесори (GPU).

Форма, дизайн і реалізація процесорів змінювалися з часом, але їхня фундаментальна робота залишається майже незмінною. Основними компонентами процесора є арифметико-логічний блок (АЛБ), який виконує арифметичні та логічні операції, процесорні регістри, які подають операнди до АЛБ і зберігають результати операцій АЛБ, і блок керування, який організовує вибірку (з пам'яті), декодування і виконання (інструкцій), керуючи скоординованою роботою АЛБ, регістрів та інших компонентів. Сучасні процесори відводять багато напівпровідникової площі під кеш-пам'ять і паралелізм на рівні інструкцій для підвищення продуктивності, а також під режими роботи процесора для підтримки операційних систем і віртуалізації.

Більшість сучасних ЦП реалізовані на мікропроцесорах з інтегральною схемою (ІС), з одним або декількома ЦП на одній мікросхемі ІС. Мікропроцесорні мікросхеми з декількома процесорами називаються багатоядерними процесорами. Окремі фізичні процесори, які називаються ядрами процесора, також можуть бути багатопотоковими для підтримки багатопоточності на рівні ЦП.

IC, що містить центральний процесор, також може містити пам'ять, периферійні інтерфейси та інші компоненти комп'ютера; такі інтегровані пристрої по-іншому називають мікроконтролерами або системами на кристалі (SoC).

Функції

обробка даних по заданій програмі шляхом виконання арифметичних і логічних операцій; програмне керування роботою пристроїв комп'ютера.

Архітектура процесора

Архітектура системи команд

З погляду програмістів, під архітектурою процесора мається на увазі його здатність виконувати певний набір машинних кодів. Більшість сучасних десктопних процесорів відносяться до сімейства x86, або Intel-сумісних процесорів архітектури IA32 (архітектура 32-бітових процесорів Intel). Її основа була закладена компанією Intel в процесорі i80386, проте в подальших поколіннях процесорів вона була доповнена і розширена як самою Intel (введені нові набори команд MMX, SSE, SSE2 і SSE3), так і сторонніми виробниками (набори команд EMMX, 3DNow! і Extended 3DNow!, розроблені компанією AMD).

Мікроархітектура

Розробники комп'ютерного устаткування вкладають в поняття «Архітектура процесора» основні принципи внутрішньої організації конкретних сімейств процесорів. Наприклад, архітектура процесорів Intel Pentium позначалася як Р5, процесорів Pentium II і Pentium III — Р6, а Pentium 4 відносилися до архітектури NetBurst. Після того, як компанія Intel закрила архітектуру Р5 для сторонніх виробників, її основний конкурент — компанія AMD розробляла власні архітектури — K5, K6, K7 (для процесорів Athlon і Athlon XP), і К8 (для Athlon 64).

Ядро

В рамках однієї й тієї ж архітектури різні процесори можуть досить сильно відрізнятися один від одного. І відмінності ці утілюються в різноманітних процесорних ядрах, що мають певний набір суворо обумовлених характеристик. Найчастіше ці відмінності втілюються в різних частотах системної шини (FSB), розмірах кешу другого рівня, підтримці тих або інших нових систем команд або технологічних процесах, за якими виготовляються процесори. Нерідко зміна ядра в одному і тому ж сімействі процесорів призводити до заміни процесорного роз'єму (сокет, ), з чого витікають питання подальшої сумісності материнських плат. Проте в процесі вдосконалення ядра виробникам доводиться вносити до нього незначні зміни, які не можуть претендувати на «власне ім'я». Такі зміни називаються ревізіями () ядра і, найчастіше, позначаються цифро-буквеними комбінаціями. Проте в нових ревізіях одного і того ж ядра можуть зустрічатися досить помітні нововведення. Так, компанія Intel ввела підтримку 64-бітової архітектури EM64T в окремі процесори сімейства Pentium 4 саме в процесі зміни ревізії.

32-бітові та 64-бітові процесори

64-бітові процесори простіше і ефективніше адресують великі обсяги пам'яті (понад 4 гігабайти), що є перевагою у разі їх використання у високопродуктивних серверах, для роботи великих баз даних, програм класу CAD/CAE, а також програм для роботи з цифровим контентом.

Паралелізм

В інформатиці, Паралелізмом (), або багатозадачністю називається властивість систем, коли декілька процесів обчислення відбуваються водночас, і можливо, взаємодіють один з одним.

Конвеєр команд

Конвеєр команд — апаратна структура в обчислювальних пристроях ЕОМ, призначена для прискорення виконання машинних команд шляхом суміщення певних стадій їх виконання в часі.

Багатоядерні процесори

Перший багатоядерний процесор створила у 1984 році, об'єднавши два ядра R6502.

В 2005 році з'явились перші двоядерні мікропроцесори архітектури x86 — Intel Pentium D та AMD Athlon 64 X2. До того часу класичні одноядерні CPU певною мірою вичерпали резерви зростання продуктивності за рахунок підвищення робочої частоти. Каменем спотикання стало не тільки дуже високе тепловиділення процесорів, що працюють на високих частотах, але і проблеми з їхньою стабільністю. Отже, екстенсивний шлях розвитку процесорів вичерпався і виробникам довелося освоювати новий, інтенсивний шлях підвищення продуктивності продукції.

Будова

Внутрішні спільно працюючі пристрої Моделі процесорів включають такі спільно працюючі пристрої: Пристрій керування (). Здійснює координацію роботи всіх інших пристроїв, виконує функції керування пристроями, керує обчисленнями в комп'ютері. Дешифратор інструкцій (команд). Аналізує інструкції з метою визначення операцій, що відповідають інструкції, виділення операндів і адрес, за якими розміщуються операнди. В системах з конвеєром команд дешифратор здійснює дешифрування наступної команди одночасно з виконанням поточної (для завантаження усіх виконавчих пристроїв) і може дешифрувати одночасно декілька інструкцій, наприклад, для готовності здійснити перехід відповідно до результату, який найближчим часом буде отриманий з конвеєра. Арифметико-логічний пристрій (АЛП). Так називається пристрій для цілочислових операцій. Арифметичні операції, такі як додавання, множення і ділення, а також логічні операції (OR, AND, ASL, ROL і ін.) обробляються за допомогою АЛП. Ці операції складають переважну більшість програмних кодів у більшості програм. Всі операції в АЛП обробляються в регістрах — спеціально відведених чарунках АЛП. У процесорі може бути декілька АЛП. Кожен здатний виконувати арифметичні або логічні операції незалежно від інших, що дозволяє виконувати декілька операцій одночасно. Арифметико-логічний пристрій виконує арифметичні й логічні дії. Логічні операції поділяються на дві прості операції: «Так» і «Ні» («1» і «0»). Звичайно, ці два пристрої виділяються суто умовно, конструктивно вони не розділені. AGU (Address Generation Unit) — пристрій генерації адрес. Це пристрій не менш важливий, ніж АЛП, тому що він відповідає за коректну адресацію при завантаженні або збереженні даних. Математичний співпроцесор (FPU). Процесор може містити декілька математичних співпроцесорів. Кожний з них здатний виконувати, щонайменше, одну операцію з рухомою комою, незалежно від того, що роблять інші АЛП. Метод конвеєрної обробки даних дозволяє одному математичному співпроцесорові виконувати декілька операцій одночасно. Співпроцесор підтримує високоточні обчислення як цілочислені, так і з рухомою комою і, крім того, містить набір корисних констант, що прискорюють обчислення. Співпроцесор працює паралельно з центральним процесором, забезпечуючи, таким чином, високу продуктивність.

Пам'ять Кеш-пам'ять. Особлива високошвидкісна пам'ять процесора. Кеш використовується як буфер для прискорення обміну даними між процесором і оперативною пам'яттю, а також для збереження копій інструкцій і даних, що недавно використовувалися процесором. Значення з кеш-пам'яті витягаються прямо, без звертання до основної пам'яті.

Кеш першого рівня (L1 cache). Кеш-пам'ять, що знаходиться усередині процесора. Вона швидша за всі інші типи пам'яті, але менша за обсягом. Зберігає нещодавно використану інформацію, яка знову може бути використана при виконанні коротких програмних циклів.

Кеш другого рівня (L2 cache). Також знаходиться усередині процесора. Інформація, що зберігається в ній, використовується рідше, ніж інформація, що зберігається в кеш-пам'яті першого рівня, проте обсяг пам'яті у ній більший. Також у наш час в процесорах використовується кеш третього рівня. Оперативна пам'ять. Набагато більша за обсягом, ніж кеш-пам'ять, і значно менш швидкодіюча. Регістри — це внутрішня пам'ять процесора. Являють собою ряд спеціалізованих додаткових комірок пам'яті, а також є внутрішніми носіями інформації мікропроцесора. Регістр є пристроєм тимчасового зберігання даних, числа або команди та використовується з метою полегшення арифметичних, логічних і пересильних операцій. Основним елементом регістра є електронна схема, яку називають тригером, що здатна зберігати одну двійкову цифру (розряд).

Деякі важливі регістри мають свої назви, наприклад: суматор — регістр АЛП, що бере участь у виконанні кожної операції; лічильник команд — регістр УП, вміст якого відповідає адресі чергової виконуваної команди, служить для автоматичної вибірки програми з послідовних комірок пам'яті; регістр команд — регістр УП для збереження коду команди на період часу, що необхідний для її виконання. Частина його розрядів використовується для збереження коду операції, інші — для збереження кодів адрес операндів.

Шини Шина — це канал пересилання даних, який використовується спільно різними блоками системи. Шина може являти собою набір провідних ліній у друкованій платі, проводи, припаяні до виводів роз'ємів, у які вставляються друковані плати, або плоский кабель. Інформація передається по шині у виді груп бітів. До складу шини для кожного біта слова може бути передбачена окрема лінія (паралельна шина), або всі біти слова можуть послідовно в часі використовувати одну лінію (послідовна шина).

За функціональним призначенням можуть бути виділені шини: Шина даних. Служить для пересилання даних між процесором і пам'яттю або процесором і пристроями введення-виведення. Ці дані можуть являти собою як команди процесора, так і інформацію, що він посилає в порти введення-виведення або приймає звідти. Шина адрес. Використовується ЦП для вибору необхідної комірки пам'яті або пристрою введення-виведення шляхом установки на шині конкретної адреси, що відповідає одній з комірок пам'яті або одному з елементів введення-виведення, що входять у систему. Шина керування. По ній передаються сигнали керування, призначені пам'яті та пристроям введення-виведення. Ці сигнали вказують напрямок передачі даних (у процесор або з нього).

Буфер цілей розгалуження BTB (Branch Target Buffer). Це таблиця, в якій знаходяться всі адреси, куди буде або може бути зроблений перехід.

Обчислювальна система

Виконання того чи іншого алгоритму можливо при наявності процесора та пристроїв, в яких зберігається програма — сукупність команд (правил), що виконуються в послідовності, заданій алгоритмом. Команди вибираються з пам'яті в послідовності, що задається процесором. Процесор визначає адреси елементів пам'яті, в яких зберігаються необхідні дані. Дані передаються в процесор, де перетворюються згідно з командами, і результати операції передаються знову в пам'ять.