Огляд сучасних процесорів
Загальні відомості
Центральний процесор (CPU), також відомий як центральний процесор, [1] апаратних всередині комп'ютера, який здійснює інструкцій комп'ютерної програми шляхом виконання основних арифметичних, логічних і операцій введення / виводу в системи. Термін був у використанні в комп'ютерній індустрії принаймні з початку 1960-х. [2] Форма, проектування та впровадження процесорів змінилися протягом своєї історії, але їх основної операції залишається майже таким самим.
Комп'ютер може мати більше одного процесора, це називається багатопроцесорної обробки. Деякі інтегральні схеми (ІС) може містити кілька процесорів на одному чіпі, а ті, ІС називаються багатоядерними процесорами.
Два типових компонентів процесора є арифметико-логічний пристрій (АЛП), який виконує арифметичні і логічні операції, і блок управління (БУ), який витягує інструкції з пам'яті і декодує і виконує їх, звертаючись до АЛУ коли це необхідно.
Не всі обчислювальні системи спираються на центральний процесор. Процесор масиву або вектора процесор має кілька паралельних обчислювальних елементів, ні з ким не вважаються одиниці "Центр". У розподіленої моделі обчислень, проблеми вирішуються розподілена сукупність взаємопов'язаних процесорів.
Цей термін іноді неправильно використовується людьми, які не фахівці з комп'ютерів, щоб звернутися до обсаджених Основна частина настільних комп'ютерів містять материнські плати, процесори, жорсткі диски і т.д., тобто, не монітор або клавіатуру.
Історія виникнення
Першим етапом, що торкнулася період з 1940-х по кінець 1950-х років, було створення процесорів з використанням електромеханічних реле, феритових сердечників (пристроїв пам'яті) і вакуумних ламп. Вони встановлювалися в спеціальні роз'єми на модулях, зібраних в стійки. Велика кількість таких стійок, з'єднаних провідниками, в сумі представляли процесор. Відмінною особливістю була низька надійність, низька швидкодія і велике тепловиділення.
Другим етапом, з середини 1950-х до середини 1960-х, стало впровадження транзисторів. Транзистори монтувалися вже на близькі до сучасних по виду платам, встановлюваним в стійки. Як і раніше, в середньому процесор складався з декількох таких стійок. Зросла швидкодія, підвищилася надійність, зменшилося енергоспоживання.
Третім етапом, настали в середині 1960-х років, стало використання мікросхем. Спочатку використовувалися мікросхеми низького ступеня інтеграції, що містять прості транзисторні та резисторні збірки, потім у міру розвитку технології стали використовуватися мікросхеми, реалізують окремі елементи цифрової схемотехніки (спочатку елементарні ключі і логічні елементи, потім складніші елементи - елементарні регістри, лічильники, суматори), пізніше з'явилися мікросхеми, що містять функціональні блоки процесора - мікропрограмного пристрій, арифметичне-логічний пристрій, регістри, пристрої роботи з шинами даних і команд.
Четвертим етапом, на початку 1970-х років, стало створення, завдяки прориву в технології створення БІС і НВІС (великих і надвеликих інтегральних схем, відповідно), мікропроцесора - мікросхеми, на кристалі якої фізично були розташовані всі основні елементи і блоки процесора. Фірма Intel в 1971 році створила перший в світі 4-розрядний мікропроцесор 4004, призначений для використання в мікрокалькуляторах. Поступово практично всі процесори стали випускатися у форматі мікропроцесорів. Винятком довгий час залишалися тільки малосерійних процесори, апаратно оптимізовані для вирішення спеціальних завдань (наприклад, суперкомп'ютери або процесори для вирішення ряду військових завдань), або процесори, до яких висувалися особливі вимоги по надійності, швидкодії або захисту від електромагнітних імпульсів і іонізуючої радіації. Поступово, із здешевленням і поширенням сучасних технологій, ці процесори також починають виготовлятися у форматі мікропроцесора.
Зараз слова мікропроцесор і процесор практично стали синонімами, але тоді це було не так, тому що звичайні (великі) і мікропроцесорні ЕОМ мирно співіснували ще принаймні 10-15 років, і лише на початку 1980-х років мікропроцесори витіснили своїх старших побратимів. Тим не менш, центральні процесорні пристрої деяких суперкомп'ютерів навіть сьогодні представляють собою складні комплекси, побудовані на основі мікросхем великої та надвеликої ступеня інтеграції.
Перехід до мікропроцесорах дозволив потім створити персональні комп'ютери, які проникли майже в кожен будинок.
Першим загальнодоступним мікропроцесором був 4-розрядний Intel 4004, представлений 15 листопада 1971 корпорацією Intel. Він містив 2300 транзисторів, працював на тактовій частоті 92,6 кГц [1] і коштував 300 дол
Далі його змінили 8-розрядний Intel 8080 і 16-розрядний 8086, заклали основи архітектури всіх сучасних настільних процесорів. Через поширеності 8-розрядних модулів пам'яті був випущений дешевий 8088, спрощена версія 8086, з 8-розрядної шиною пам'яті.
Потім проїхала його модифікація, 80186.
У процесорі 80286 з'явився захищений режим з 24-бітної адресацією, що дозволяв використовувати до 16 Мб пам'яті.
Процесор Intel 80386 з'явився в 1985 році і привніс покращений захищений режим, 32-бітну адресацію, що дозволила використовувати до 4 Гб оперативної пам'яті і підтримку механізму віртуальної пам'яті. Ця лінійка процесорів побудована на реєстрової обчислювальної моделі.
Паралельно розвиваються мікропроцесори, які взяли за основу стекову обчислювальну модель.
За роки існування мікропроцесорів було розроблено безліч різних їх архітектур. Багато з них (у доповненому і вдосконаленому вигляді) використовуються і понині. Наприклад Intel x86, що розвинулася спочатку в 32-бітну IA-32, а пізніше в 64-бітну x86-64 (яка у Intel називається EM64T). Процесори архітектури x86 спочатку використовувалися тільки в персональних комп'ютерах компанії IBM (IBM PC), але в даний час все більш активно використовуються у всіх областях комп'ютерної індустрії, від суперкомп'ютерів до вбудованих рішень. Також можна перерахувати такі архітектури як Альфа, ВЛАДА, SPARC, PA-RISC, MIPS (RISC-архітектури) і IA-64 (EPIC-архітектура).
У сучасних комп'ютерах процесори виконані у вигляді компактного модуля (розмірами близько 5 × 5 × 0,3 см), вставляє в ZIF-сокет (AMD) або на пружної конструкцію - LGA (Intel). Особливістю роз'єму LGA є те, що висновки перенесені з корпусу процесора на сам роз'єм - роз'єм, що знаходиться на материнській платі. Велика частина сучасних процесорів реалізована у вигляді одного напівпровідникового кристала, що містить мільйони, а з недавнього часу навіть мільярди транзисторів.
Принцип роботи
Фундаментальні роботи більшості процесорів, незалежно від фізичної форми вони приймають, це виконати послідовність інструкцій, званих зберігається програма. Програма представляє собою послідовність чисел, які зберігаються в якомусь пам'яті комп'ютера. Є чотири кроки, що майже всі процесори використовують у своїй роботі: вибірка, декодування, виконання і зворотного запису.
Першим кроком вибірки, включає отримання інструкції (який представлений ряд або послідовність чисел) з пам'яті програми. Розташування в пам'яті програми визначається програмний лічильник (PC), в якому зберігається номер, що ідентифікує поточну позицію в програмі. Після того, як команда витягується, ПК збільшується на довжину командному слові з точки зору запам'ятовуючих пристроях. Часто інструкції для вибірки повинна бути отримана з відносно повільної пам'яті, в результаті чого процесор для блокування під час очікування інструкції повинні бути повернені. Це питання значною мірою розглядаються в сучасних процесорах кеші і трубопровідного архітектур (див. нижче).
Інструкція, що процесор вибирає з пам'яті використовується для визначення того, що процесор робити. На етапі декодування, інструкція розбита на частини, які мають істотне значення для інших частин процесора. Спосіб, в якому чисельне значення інструкція інтерпретується визначається інструкцій процесора набір архітектури (ISA). Часто, одна група номерів в інструкції, званий код операції, який вказує операцію виконати. Інші частини числа зазвичай містять інформацію, необхідну для цієї команди, такі як операнди для операції додавання. Такі Операнди можуть бути надані в якості постійного значення (звані безпосереднє значення), або як місце, щоб знайти певний параметр: регістр або адреса пам'яті, а визначається деяким режиму адресації. У більш ранніх конструкцій частин процесор відповідає за декодування команд були незмінні пристроїв. Проте, в більш абстрактною і складною процесорів і МСА, мікропрограму часто використовується для надання допомоги в перекладі інструкцій у різних сигналів конфігурації процесора. Це мікропрограми іноді перезаписуваний так що він може бути модифікований, щоб змінити спосіб процесор декодує інструкції навіть після того, як був проведений.
Після вибірки і декодування кроків, виконати етап виконується. Під час цього етапу різних частин процесора з'єднані таким чином вони можуть виконати потрібну операцію. Якщо, наприклад, операція складання було запропоновано, арифметико-логічний пристрій (АЛП) буде пов'язана з безліччю входів і безліччю виходів. Входи забезпечують номери, які будуть додані, а виходи будуть містити кінцеву суму. ALU містить схему для виконання простих арифметичних і логічних операцій над входами (такі як додавання і бітові операції). Якщо операція складання дає результат занадто великий для CPU у зверненні, прапор арифметичного переповнення в регістрі прапорів також можуть бути встановлені.
Останнім кроком, зворотного запису, просто "записує назад" результати виконання кроку до тієї чи іншій формі пам'яті. Дуже часто результати записуються в деяких внутрішніх регістрів процесора для швидкого доступу подальшими інструкціями. В інших випадках результати можуть бути записані повільніше, але дешевше і більше, основний пам'яті. Деякі типи інструкцій маніпулювати програмного лічильника, а не безпосередньо виробляти даних результату. Як правило, вони називаються «стрибки» і сприяти поведінці, як цикли, умовні виконання програми (за допомогою умовного переходу), а функції в програмах. Багато інструкції буде також змінити стан цифри у «прапорів» зареєструйтесь. Ці прапори можуть бути використані, щоб впливати на поведінку програми, так як вони часто показують результати різних операцій. Наприклад, один тип "порівняти" інструкції розглядаються два значення і встановлює число в регістрі прапорів відповідно до якого одна більше. Цей прапор можна було б використовувати більш пізнім оператора переходу, щоб визначити хід виконання програми.
Після виконання команди і зворотного запису отриманих даних, весь процес повторюється з наступного циклу інструкції зазвичай вибірки наступного в послідовності інструкцій через збільшене значення в лічильник команд. Якщо завершеною команди був стрибок, лічильник програми будуть модифіковані, щоб містити адресу інструкції, яка була підскочив до, і виконання програми продовжується у нормальному режимі. У складніших процесорів, ніж описаний тут, кілька команд можуть бути обрані, декодуються і виконуватися одночасно. У цьому розділі описується те, що зазвичай називають "класичним трубопроводу RISC", яка насправді є досить поширеною серед простих процесорів, використовуваних в багатьох електронних пристроях (часто званий мікроконтролера). Це в значній мірі ігнорує важливу роль кеш процесора, і, отже, доступ етап трубопроводу.
Продуктивнысть
Продуктивності або швидкості процесора залежить від тактової частоти (зазвичай дається кілька герц) та інструкцій за такт (IPC), які в сукупності є факторами для операцій в секунду (IPS), що процесор може виконувати. [20 ] Багато повідомляли IPS значення представляли «пік» виконання ставки по штучному послідовності команд з декількома філіями, а реалістичні навантаження складається з суміші інструкцій та програм, деякі з яких виконуватися довше, ніж інші. Продуктивність ієрархії пам'яті також сильно впливає продуктивність процесора, питання вважається ледь в розрахунках MIPS. Через ці проблеми, різні стандартні тести, які часто називають "критерії" для цієї мети, такі як SPECint - були розроблені, щоб спробувати виміряти реальну ефективну роботу в часто використовуваних додатків.
Обробка продуктивність комп'ютерів збільшується на використанні багатоядерних процесорів, яка по суті є підключення двох або більше окремих процесорів (ядер називають у цьому сенсі) в одну інтегральну схему. [21] В ідеалі, двоядерний процесор буде майже вдвічі потужніше один процесор. На практиці, однак, виграш в продуктивності набагато менше, тільки близько 50%, [21] через недосконалість програмні алгоритми та реалізації. Збільшення кількості ядер в процесорі (тобто двоядерні, чотириядерні процесори і т.д.) збільшує навантаження, які можуть бути оброблені. Це означає, що процесор тепер може обробляти численні асинхронних подій, переривання і т.д., які можуть позначатися на CPU (центральний процесор), коли перевантажений. Ці ядра можна розглядати як різні поверхи в завод з переробки, з кожним поверхом обробки різних завдань. Іноді, ці ядра будуть звертатися ті ж завдання, сердечників, прилеглих до них, якщо одне ядро мало для обробки інформації.