Центральний процесор
Центральний процесор, ЦП (англ. 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 певною мірою вичерпали резерви зростання продуктивності за рахунок підвищення робочої частоти. Каменем спотикання стало не тільки дуже високе тепловиділення процесорів, що працюють на високих частотах, але і проблеми з їхньою стабільністю. Отже, екстенсивний шлях розвитку процесорів вичерпався[джерело?] і виробникам довелося освоювати новий, інтенсивний шлях підвищення продуктивності продукції. БудоваВнутрішні спільно працюючі пристроїМоделі процесорів включають такі спільно працюючі пристрої:
Пам'ять
Кеш першого рівня (L1 cache). Кеш-пам'ять, що знаходиться усередині процесора. Вона швидша за всі інші типи пам'яті, але менша за обсягом. Зберігає нещодавно використану інформацію, яка знову може бути використана при виконанні коротких програмних циклів. Кеш другого рівня (L2 cache). Також знаходиться усередині процесора. Інформація, що зберігається в ній, використовується рідше, ніж інформація, що зберігається в кеш-пам'яті першого рівня, проте обсяг пам'яті у ній більший. Також у наш час[коли?] в процесорах використовується кеш третього рівня.
Деякі важливі регістри мають свої назви, наприклад:
ШиниШина — це канал пересилання даних, який використовується спільно різними блоками системи. Шина може являти собою набір провідних ліній у друкованій платі, проводи, припаяні до виводів роз'ємів, у які вставляються друковані плати, або плоский кабель. Інформація передається по шині у виді груп бітів. До складу шини для кожного біта слова може бути передбачена окрема лінія (паралельна шина), або всі біти слова можуть послідовно в часі використовувати одну лінію (послідовна шина). За функціональним призначенням можуть бути виділені шини:
Буфер цілей розгалуженняBTB (Branch Target Buffer). Це таблиця, в якій знаходяться всі адреси, куди буде або може бути зроблений перехід. Обчислювальна система
Виконання того чи іншого алгоритму можливо при наявності процесора та пристроїв, в яких зберігається програма — сукупність команд (правил), що виконуються в послідовності, заданій алгоритмом. Команди вибираються з пам'яті в послідовності, що задається процесором. Процесор визначає адреси елементів пам'яті, в яких зберігаються необхідні дані. Дані передаються в процесор, де перетворюються згідно з командами, і результати операції передаються знову в пам'ять. Будь-яка обчислювальна система працює разом з рядом зовнішніх пристроїв, одержуючи від них необхідну інформацію та передаючи іншу. Для зв'язку з зовнішніми пристроями існує інтерфейс (англ. interface) — комплекс пристроїв, правил та технічних засобів, що регламентують та забезпечують обмін інформацією між центральним процесором (включаючи пам'ять) та зовнішніми пристроями. Головними в інтерфейсі є шини, або, як їх ще часто називають, магістралі. Магістраль — це сукупність провідників, для яких строго нормовані логічні рівні «0» та «1». Потужність сигналів на шинах має бути достатньою для живлення необхідної кількості приєднаних до них пристроїв. Для забезпечення цієї потужності використовуються спеціальні інтегральні схеми — шинні підсилювачі (ШП). За призначенням, шини поділяються на три типи:
Інколи дві шини суміщують шляхом мультиплексування, що дещо знижує їх швидкодію, але набагато зменшує кількість виводів мікросхем. Система команд
Рівні роботиНайнижчим рівнем, який дозволяє описувати роботу цифрових пристроїв — це рівні логічних станів їх входів та виходів — таблиці станів. Наступним рівнем є спосіб описання — це мова значень вхідних та вихідних сигналів, що складають мову мікрокоманд. Сукупність адрес та керуючих сигналів називаються мікрокомандою. Третій рівень формалізації описання роботи процесора — це мова команд — тобто строга послідовність мікрокоманд, що записується в пам'яті процесора. Тобто, команда, це слово, або набір слів, які дешифруються в послідовність мікрокоманд. Звідси витікає, що будь-який процесор має строго фіксований і обмежений набір команд, який є характерним для цього процесора. Будь-яка мікрокоманда характеризується своїм форматом. Під форматом мікрокоманди розуміється її протяжність та призначення кожного біта або їх групи. Команди, також мають свій фіксований формат. (Протяжність мікрокоманди — це стандартна для цього процесора кількість біт в слові). В залежності від протяжності команди, вона може складатися з одного, двох, та трьох слів. Структура командФормат пам'яті комп'ютера також тісно пов'язаний з довжиною слова. Тому при зберіганні таких команд відповідно використовується адресний простір та пам'ять. Якщо, наприклад, команда складається з трьох слів, а використовується з послідовною адресацією, то для зберігання такої команди використовуються три послідовні адреси. Для того, щоб таку команду вибрати з пам'яті, необхідно мати спеціальні засоби, щоб забезпечити її представлення як єдине ціле. Структура команд повністю залежить від структури ЦП, але незалежно від типу процесора прийнято вважати, що однослівні команди повністю складаються з коду операції. Двослівні команди складаються з коду операції та однослівного операнда. Трислівні команди також складаються з двох частин: перша частина — код операції, а друга — адреса, або двослівний операнд. ЦиклиТипи команд, що використовуються, тісно пов'язані з внутрішньою організацією та алгоритмом функціювання мікропрограмного автомата процесора, та внутрішньою системою синхронізації. Комп'ютер функціонує синхронно з частотою тактових сигналів зовнішнього генератора. В залежності від типу центрального процесора використовується одно- або двофазна синхронізація. Незалежно від цього в мікропроцесорних системах використовуються триваліші інтервали часу, ніж тактовий інтервал зовнішнього генератора.[джерело?] Машинні циклиОдним з таких інтервалів є машинний цикл — це інтервал, протягом якого процесор звертається до пам'яті або пристрою вводу-виводу. Машинний цикл (МЦ) здебільшого складає тільки частину циклу команди. На початку кожного МЦ на одному з виходів процесора з'являється сигнал синхронізації, він передається по лінії шини керування в пам'ять або пристрої вводу-виводу і «сповіщає» про початок нового МЦ, в результаті чого досягається узгодження в часі зовнішніх пристроїв з роботою центрального процесора. Цикли командиЦикл команди — це інтервал часу, необхідний для вибірки з пам'яті команди, та її виконання. Він складається з 1-5 машинних циклів. Їхнє конкретне число залежить від складності операції, яка виконується в цій команді і дорівнює числу звернень мікропроцесора до пам'яті. Тривалість виконання команди визначається кількістю тактів в циклі команди та тривалістю такту. Протягом циклу команди, що ділиться на дві фази, робота ЦП виконується в такій послідовності. Пристрій керування задає початок чергового циклу шляхом формування сигналу, по якому число, що знаходиться в лічильнику команд, відправляється в буферний регістр адреси і через нього направляється для дешифрації особливим пристроєм - дешифратором. Після приходу від процесора сигналу керування готовий з елемента пам'яті, що знаходиться по вказаній адресі, зчитується слово команди, яке подається по шині даних в буферний регістр даних, а потім в пристрій керування, де дешифрується з допомогою кода операції. Ця послідовність операцій називається фазою вибірки. За нею слідує виконавча фаза, в якій пристрій керування формує послідовність сигналів, необхідних для виконання команди. За цей час число, що знаходиться в лічильнику команд, збільшується на 1 (якщо довжина команди є 1) і формується адреса команди, що стоїть слідом за тою, що виконується. Вона зберігається в лічильнику до приходу сигналу, що задає початок чергового циклу команди. Окрім адреси елемента в якому зберігається необхідний байт від процесора до пам'яті поступає сигнал по шині керування, який визначає характер операції — запис, або зчитування. Виконання вказаних операцій проходить протягом інтервалу часу, що називається часом доступу. По закінченні цього інтервалу від пам'яті в процесор подається сигнал готовності, який є сигналом початку прийому, або, відповідно, передачі сигналів в пам'ять. До одержання сигналу готовності процесор перебуває в стані очікування. Інтервал часу між імпульсами звернення до зовнішніх пристроїв та одержання від них відповіді називається циклом очікування.[джерело?] Якщо, наприклад, цикл команди розглядати відповідно до команди вводу даних, то перші два машинних цикли будуть відноситись до фази вибірки, а третій — до фази виконання команди. В усіх машинних циклах передається адреса, але в кожному циклі адреса належить своєму адресату, в першому — це адреса елемента, де зберігається код операції, в другому — адреса порту, що зберігає байт даних, в третьому — адреса акумулятора[джерело?] процесора, куди повинен поступити байт даних з порту. Див. такожДжерела
|