Центральний процесор

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з CPU)
Перейти до навігації Перейти до пошуку
Центральний процесор
Зображення
Коротка назва CPU і ЦП
З'єднується з роз'єм процесора (socket)
Іконка
3D модель
CMNS: Центральний процесор у Вікісховищі
Сучасний мікропроцесор Intel Core i7 2600K Socket LGA1155, вигляд зверху
Стійка центрального процесора EDVAC
Вид з середини на стійку центрального процесора PDP-8-1
Плата з процесорами SPARC64, на платі також змонтовані банки оперативної пам'яті та система охолодження
Внутрішня будова мікропроцесора 80486dx2

Центральний процесор, ЦП (англ. Central processing unit, CPU) — функціональна частина комп'ютера, що призначена для інтерпретації команд.

Функції

[ред. | ред. код]

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

[ред. | ред. код]

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

[ред. | ред. код]

З погляду програмістів, під архітектурою процесора мається на увазі його здатність виконувати певний набір машинних кодів. Більшість сучасних десктопних процесорів відносяться до сімейства 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), розмірах кешу другого рівня, підтримці тих або інших нових систем команд або технологічних процесах, за якими виготовляються процесори. Нерідко зміна ядра в одному і тому ж сімействі процесорів спричиняє за собою заміну процесорного роз'єму (сокет, англ. socket), з чого витікають питання подальшої сумісності материнських плат. Проте в процесі вдосконалення ядра виробникам доводиться вносити до нього незначні зміни, які не можуть претендувати на «власне ім'я». Такі зміни називаються ревізіями (англ. stepping) ядра і, найчастіше, позначаються цифро-буквеними комбінаціями. Проте в нових ревізіях одного і того ж ядра можуть зустрічатися досить помітні нововведення. Так, компанія Intel ввела підтримку 64-бітової архітектури EM64T в окремі процесори сімейства Pentium 4 саме в процесі зміни ревізії.

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

[ред. | ред. код]

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

Паралелізм

[ред. | ред. код]

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

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

[ред. | ред. код]
Докладніше: Конвеєр команд

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

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

[ред. | ред. код]

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

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

Будова

[ред. | ред. код]
Intel Core i7 2600K Socket LGA1155, вигляд знизу

Внутрішні спільно працюючі пристрої

[ред. | ред. код]

Моделі процесорів включають такі спільно працюючі пристрої:

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

Пам'ять

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

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

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

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

Деякі важливі регістри мають свої назви, наприклад:

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

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

За функціональним призначенням можуть бути виділені шини:

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

Буфер цілей розгалуження

[ред. | ред. код]

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

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

[ред. | ред. код]

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

Будь-яка обчислювальна система працює разом з рядом зовнішніх пристроїв, одержуючи від них необхідну інформацію та передаючи іншу. Для зв'язку з зовнішніми пристроями існує інтерфейс (англ. interface) — комплекс пристроїв, правил та технічних засобів, що регламентують та забезпечують обмін інформацією між центральним процесором (включаючи пам'ять) та зовнішніми пристроями. Головними в інтерфейсі є шини, або, як їх ще часто називають, магістралі. Магістраль — це сукупність провідників, для яких строго нормовані логічні рівні «0» та «1». Потужність сигналів на шинах має бути достатньою для живлення необхідної кількості приєднаних до них пристроїв. Для забезпечення цієї потужності використовуються спеціальні інтегральні схеми — шинні підсилювачі (ШП).

За призначенням, шини поділяються на три типи:

  • адресні;
  • даних;
  • керування.

Інколи дві шини суміщують шляхом мультиплексування, що дещо знижує їх швидкодію, але набагато зменшує кількість виводів мікросхем.

Система команд

[ред. | ред. код]

Рівні роботи

[ред. | ред. код]

Найнижчим рівнем, який дозволяє описувати роботу цифрових пристроїв — це рівні логічних станів їх входів та виходів — таблиці станів.

Наступним рівнем є спосіб описання — це мова значень вхідних та вихідних сигналів, що складають мову мікрокоманд. Сукупність адрес та керуючих сигналів називаються мікрокомандою.

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

Структура команд

[ред. | ред. код]

Формат пам'яті комп'ютера також тісно пов'язаний з довжиною слова. Тому при зберіганні таких команд відповідно використовується адресний простір та пам'ять. Якщо, наприклад, команда складається з трьох слів, а використовується з послідовною адресацією, то для зберігання такої команди використовуються три послідовні адреси. Для того, щоб таку команду вибрати з пам'яті, необхідно мати спеціальні засоби, щоб забезпечити її представлення як єдине ціле.

Структура команд повністю залежить від структури ЦП, але незалежно від типу процесора прийнято вважати, що однослівні команди повністю складаються з коду операції. Двослівні команди складаються з коду операції та однослівного операнда. Трислівні команди також складаються з двох частин: перша частина — код операції, а друга — адреса, або двослівний операнд.

Цикли

[ред. | ред. код]

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

Машинні цикли

[ред. | ред. код]

Одним з таких інтервалів є машинний цикл — це інтервал, протягом якого процесор звертається до пам'яті або пристрою вводу-виводу. Машинний цикл (МЦ) здебільшого складає тільки частину циклу команди. На початку кожного МЦ на одному з виходів процесора з'являється сигнал синхронізації, він передається по лінії шини керування в пам'ять або пристрої вводу-виводу і «сповіщає» про початок нового МЦ, в результаті чого досягається узгодження в часі зовнішніх пристроїв з роботою центрального процесора.

Цикли команди

[ред. | ред. код]

Цикл команди — це інтервал часу, необхідний для вибірки з пам'яті команди, та її виконання. Він складається з 1-5 машинних циклів. Їхнє конкретне число залежить від складності операції, яка виконується в цій команді і дорівнює числу звернень мікропроцесора до пам'яті. Тривалість виконання команди визначається кількістю тактів в циклі команди та тривалістю такту.

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

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

Якщо, наприклад, цикл команди розглядати відповідно до команди вводу даних, то перші два машинних цикли будуть відноситись до фази вибірки, а третій — до фази виконання команди. В усіх машинних циклах передається адреса, але в кожному циклі адреса належить своєму адресату, в першому — це адреса елемента, де зберігається код операції, в другому — адреса порту, що зберігає байт даних, в третьому — адреса акумулятора[джерело?] процесора, куди повинен поступити байт даних з порту.

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]
  1. Rockwell R65C00/21 DUAL CMOS MICROCOMPUTER AND R65C29 DUAL CMOS MICROPROCESSOR (PDF) (англ.). Архів оригіналу (PDF) за 11 червня 2016. Процитовано 3 січня 2017.