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

Фізично процесор являє собою металеву пластинку з безліччю ніжок (висновків), що встановлюється в так званий сокет (роз'єм). Всередині пластини знаходиться кристал напівпровідника, що містить до 2 млрд. Логічних елементів - транзисторів. Їх розмір настільки малий, що вони вміщаються на кристалі площею 4-6 см2.

Основними виробниками процесорів є конкурують одна з одною компанії Intel і AMD. Незалежно від виробника процесор володіє характеристиками, від яких залежить його швидкодію.

Основні характеристики процесора

Процесор має цілу низку характеристик, але ми розглянемо найголовніші, які потрібно знати комп'ютерного чайнику. Як правило, їх вказують в характеристиках комп'ютера в магазині.

Тактова частота. Один з найголовніших параметрів процесора, що позначає кількість тактів в секунду і в залежності від моделі процесора може доходити до 3ГГц і вище.

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

Сучасного споживача електроніки дуже складно здивувати. Ми вже звикли до того, що наш кишеню законно займає смартфон, в сумці лежить ноутбук, на руці слухняно відраховують кроки «розумні» годинник, а слух пестять навушники з активною системою шумозаглушення.

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

Чому ми підняли тему процесорів? Все просто. За останні десять років відбулася справжня революція в світі мобільних пристроїв.

Між цими пристроями всього 10 років різниці. Але Nokia N95 тоді нам здавалася космічним девайсом, а на ARKit сьогодні ми дивимося з певною недовірою

Але ж все могло б скластися інакше і пошарпаний Pentium IV так би й залишився межею мрій рядового покупця.

Ми постаралися обійтися без складних технічних термінів і розповісти, як працює процесор, і з'ясувати, за який архітектурою майбутнє.

1. З чого все почалося

Перші процесори були абсолютно не схожі на те, що ви можете бачити, відкривши кришку системного блоку вашого ПК.

Замість мікросхем в 40-і роки XX століття використовувалися електромеханічні реле, Доповнені вакуумними лампами. Лампи виконували роль діода, регулювати стан якого можна було за рахунок зниження або підвищення напруги в ланцюзі. Виглядали такі конструкції так:

Для роботи одного велетенського комп'ютера потрібні були сотні, іноді тисячі процесорів. Але, при цьому, ви не змогли б запустити на такому комп'ютері навіть простенький редактор, як NotePad або TextEdit з штатного набору Windows і macOS. Комп'ютера банально не вистачило б потужності.

2. Поява транзисторів

перші польові транзистори з'явилися ще в 1928 році. Але світ змінився лише після появи так званих біполярних транзисторів, Відкритих в 1947-му.

В кінці 40-х фізик-експериментатор Уолтер Браттейн і теоретик Джон Бардін розробили перший точковий транзистор. У 1950 його замінив перший площинний транзистор, а в 1954 році відомий виробник Texas Instruments анонсував вже кремнієвий транзистор.

Але справжня революція настала в 1959 році, коли вчений Жан Енрі розробив перший кремнієвий планарний (плоский) транзистор, який став основою для монолітних інтегральних схем.

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

3. Як працює транзистор

Отже, завдання такого електричного компонента як транзистор полягає в управлінні струмом. Простіше кажучи, цей трохи хитрий перемикач, контролює подачу електрики.

Основна перевага транзистора перед звичайним перемикачем в тому, що він не вимагає присутності людини. Тобто керувати струмом такий елемент здатний самостійно. До того ж, він працює набагато швидше, ніж ви б самостійно включали або відключали електричний ланцюг.

Зі шкільного курсу інформатики ви, напевно, пам'ятаєте, що комп'ютер «розуміє» людську мову за рахунок комбінацій всього двох станів: «включено» і «вимкнено». У розумінні машини це стан "0" або "1".

Завдання комп'ютера полягає в тому, щоб представити електричний струм у вигляді чисел.

І якщо раніше завдання перемикання станів виконували неповороткі, громіздкі і малоефективні електричні реле, то тепер цю рутинну роботу взяв на себе транзистор.

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

Але спочатку розберемося з діодом

кремній (Він же Si - "silicium" в таблиці Менделєєва) відноситься до категорії напівпровідників, а значить він, з одного боку, пропускає струм краще діелектрика, з іншого, - робить це гірше, ніж метал.

Хочеться нам того чи ні, але для розуміння роботи і подальшої історія розвитку процесорів доведеться зануритися в будову одного атома кремнію. Не бійтеся, зробимо це коротко і дуже зрозуміло.

Завдання транзистора полягає в посиленні слабкого сигналу за рахунок додаткового джерела живлення.

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

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

Так стали використовувати 5-валентну домішка фосфору, за рахунок чого отримали транзистори n-типу. Наявність додаткового електрона дозволило прискорити їх рух, підвищивши пропуск струму.

При легуванні транзисторів p-типу таким каталізатором став бор, в який входять три електрона. Через відсутність одного електрона, в кристалічній решітці виникають дірки (виконують роль позитивного заряду), але за рахунок того, що електрони здатні заповнювати ці дірки, провідність кремнію підвищується в рази.

Припустимо, ми взяли кремнієву пластину і легованих одну її частину за допомогою домішки p-типу, а іншу - за допомогою n-типу. Так ми отримали діод - базовий елемент транзистора.

Тепер електрони, що знаходяться в n-частини, будуть прагне перейти в дірки, розташовані в p-частини. При цьому n-сторона матиме незначний негативний, а p-сторона - позитивний заряди. Утворене в результаті цього «тяжіння» електричне поле -бар'єр, буде перешкоджати подальшому переміщенню електронів.

Якщо до діода підключити джерело живлення таким чином, щоб "-" стосувався p-сторони пластини, а "+" - n-сторони, протікання струму буде неможливо через те, що дірки притягнуться в мінусової контакту джерела живлення, а електрони - до плюсового, і зв'язок між електронами p і n боку буде загублена за рахунок розширення об'єднаного шару.

Але якщо підключити харчування з достатнім напругою навпаки, тобто "+" Від джерела до p-стороні, а "-" - до n-стороні, розміщені на n-стороні електрони будуть відштовхуватися негативним полюсом і виштовхувати на p-сторону, займаючи дірки в p-області.

Але тепер електрони притягує до позитивного полюса джерела живлення і вони тривають переміщатися по p-діркам. Це явище назвали прямим зміщенням діода.

Діод + діод \u003d транзистор

Сам по собі транзистор можна представити як два, зістикованих один до одного діода. При цьому p-область (та, де розміщені дірки) у них стає загальною і іменується «базою».

У N-P-N транзистора дві n-області з додатковими електронами - вони ж «емітер» і «колектор» і одна, слабка область з дірками - p-область, іменована «базою».

Якщо підключити джерело живлення (назвемо його V1) до n-областях транзистора (незалежно від полюса), один діод отримає зворотний зсув і транзистор буде знаходитися в закритому стані.

Але, як тільки ми підключимо ще одне джерело живлення (назвемо його V2), встановивши "+" контакт на «центральну» p-область (базу), а "-" контакт на n-область (емітер), частина електронів потече по знову утвореної ланцюга (V2), а частина буде притягатися позитивної n-областю. В результаті, електрони потечуть в область колектора, а слабкий електричний струм буде посилений.

Видихаємо!

4. Так як все-таки працює комп'ютер?

А тепер найголовніше.

Залежно від напруги, що подається, транзистор може бути або відкритий, або закритий. Якщо напруга недостатнє для подолання потенційного бар'єру (того самого на стику p і n пластин) - транзистор буде знаходиться в закритому стані - в стані «вимкнений» або, кажучи мовою двійковій системи - "0".

При досить напрузі транзистор відкривається, а ми отримуємо значення «включено» або «1» в двійковій системі.

Такий стан, 0 або 1, в комп'ютерній індустрії назвали «битому».

Тобто ми отримуємо головна властивість того самого перемикача, який відкрив людству шлях до комп'ютерів!

У першому електронному цифровому обчислювачі ЕНІАК, а простіше кажучи - першому комп'ютері, використовувалося близько 18 тисяч ламп-тріодів. Розмір комп'ютера був порівнянний з тенісним кортом, а його вага становила 30 тонн.

Для розуміння роботи процесора потрібно зрозуміти ще два ключових моменти.

момент 1. Отже, ми визначилися з тим, що таке біт. Але з його допомогою ми можемо лише отримати дві характеристики чого-небудь: або «так» або «ні». Для того, щоб комп'ютер навчився розуміти нас краще, придумали комбінацію з 8 бітів (0 або 1), яку прозвали байтом.

Використовуючи байт можна закодувати число від нуля до 255. Використовуючи ці 255 чисел - комбінацій нулів і одиниць, можна закодувати все що завгодно.

Момент 2. Наявність чисел і букв без будь-якої логіки нам би нічого не дало. Саме тому з'явилося поняття логічних операторів.

Підключивши всього два транзистора певним чином, можна домогтися виконання відразу декількох логічних дій: «і», «або». Комбінація величини напруги на кожному транзисторі і тип їх підключення дозволяє отримати різні комбінації нулів і одиниць.

Стараннями програмістів значення нулів і одиниць, двійковій системи, стали переводити в десяткову для того, щоб ми могли зрозуміти, що саме «говорить» комп'ютер. А для введення команд звичні нами дії, на кшталт введення букв з клавіатури, представляти у вигляді двійковій ланцюга команд.

Простіше кажучи, уявіть, що є таблиця відповідності, скажімо, ASCII, в якій кожній літері відповідає комбінація 0 і 1. Ви натиснули кнопку на клавіатурі, і в цей момент на процесорі, завдяки програмі, транзистори переключилися таким чином, щоб на екрані з'явилася та сама, написана на клавіші буква.

Це досить примітивне пояснення принципу роботи процесора і комп'ютера, але саме розуміння цього дозволяє нам рухатися далі.

5. І почалася транзисторная гонка

Після того, як в 1952 році британський радіотехнік Джеффрі Дамер запропонував розміщувати найпростіші електронні компоненти в монолітному кристалі напівпровідника, комп'ютерна індустрія зробив семимильний крок вперед.

Від інтегральних схем, запропонованих Дамер, інженери швидко перейшли на мікрочіпи, В основі яких використовувалися транзистори. У свою чергу, кількох таких чіпів вже утворювали сам процесор.

Зрозуміло, що розміри таких процесорів мало чим схожі з сучасними. До того ж, аж до 1964 року у всіх процесорів була одна проблема. Вони вимагали індивідуального підходу - свою мову програмування для кожного процесора.

  • 1964 рік IBM System / 360. Комп'ютер, сумісний з універсальним програмним кодом. Набір інструкцій для однієї моделі процесора міг використовуватися і для іншої.
  • 70-e роки. Поява перших мікропроцесорів. Однокристальний процесор від Intel. Intel 4004 - 10 мкм ТП 2 300 транзисторів, 740 КГц.
  • 1973 рік Intel 4040 і Intel 8008. 3 000 транзисторів, 740 КГц у Intel 4040 і 3 500 транзисторів при 500 кГц у Intel 8008.
  • 1974 рік Intel 8080. 6 мкм ТП і 6000 транзисторів. Тактова частота близько 5 000 кГц. Саме цей процесор використовувався в комп'ютер Altair-8800. Отечетсвенного копія Intel 8080 - процесор КР580ВМ80А, розроблений Київським НДІ мікроприладів. 8 біт.
  • 1976 рік Intel 8080. 3 мкм ТП і 6500 транзисторів. Тактова частота 6 МГц. 8 біт.
  • 1976 рік Zilog Z80. 3 мкм ТП і 8500 транзисторів. Тактова частота до 8 МГц. 8 біт.
  • 1978 рік Intel 8086. 3 мкм ТП і 29 000 транзисторів. Тактова частота близько 25 МГц. Система команд x86, яка використовується і сьогодні. 16 біт.
  • 1980 рік Intel 80186. 3 мкм ТП та 134 000 транзисторів. Тактова частота - до 25 МГц. 16 біт.
  • 1982 рік Intel 80286. 1,5 мкм ТП та 134 000 транзисторів. Частота - до 12,5 МГц. 16 біт.
  • 1982 рік Motorola 68000. 3 мкм і 84 000 транзисторів. Цей процесор використовувався в комп'ютері Apple Lisa.
  • 1985 рік Intel 80386. 1,5 мкм тп і 275 000 транзісторов.Частота - до 33 МГц у версії 386SX.

Здавалося б, продовжувати список можна було б до нескінченності, але тут інженери Intel зіткнулися з серйозною проблемою.

6. Закон Мура або як Чіпмейкер жити далі

На дворі кінець 80-х. Ще на початку 60-х один із засновників компанії Intel Гордон Мур формулював так званий «Закон Мура». Звучить він так:

Кожні 24 місяці кількість транзисторів, розміщених на кристалі інтегральної схеми, подвоюється.

Назвати цей закон законом складно. Вірніше буде охрестити його емпіричним спостереженням. Зіставивши темпи розвитку технологій, Мур зробив висновок, що може сформуватися подібна тенденція.

Але вже під час розробки четвертого покоління процесорів Intel i486 інженери зіткнулися з тим, що вже досягли стелі продуктивності і більше не можуть розмістити більшу кількість процесорів на тій же площі. На той момент технології не дозволяли цього.

В якості вирішення був знайдений варіант з використанням додаткових елементів:

  • кеш-пам'яті;
  • конвеєра;
  • вбудованого співпроцесора;
  • множника.

Частина обчислювального навантаження лягала на плечі цих чотирьох вузлів. В результаті, поява кеш-пам'яті з одного боку ускладнило конструкцію процесора, з іншого - він став значно потужнішим.

Процесор Intel i486 складався вже з 1,2 млн транзисторів, а максимальна частота його роботи досягла 50 МГц.

У 1995 році до розробки приєднується компанія AMD і випускає найшвидший на той момент i486-сумісний процесор Am5x86 на 32-бітної архітектури. Виготовлявся він уже по 350 нанометровим техпроцесом, а кількість встановлених процесорів досягло 1,6 млн штук. Тактова частота підвищилася до 133 МГц.

Але гнатися за подальшим нарощуванням кількості встановлених на кристалі процесорів і розвитку вже утопічною архітектури CISC (Complex Instruction Set Computing) чипмейкери не наважилися. Замість цього американський інженер Девід Паттерсон запропонував оптимізувати роботу процесорів, залишивши лише найнеобхідніші обчислювальні інструкції.

Так виробники процесорів перейшли на платформу RISC (Reduced Instruction Set Computing]. Але і цього виявилося мало.

У 1991 році виходить 64-бітний процесор R4000, що працює на частоті 100 МГц. Через три роки з'являється процесор R8000, а ще через два роки - R10000 з тактовою частотою аж до 195 МГц. Паралельно розвивався ринок SPARC-процесорів, особливістю архітектури яких стала відсутність інструкцій множення і ділення.

Замість боротьби за кількість транзисторів, виробники чіпів стали переглядати архітектуру їх роботи. Відмова від «непотрібних» команд, виконання інструкцій в один такт, наявність регістрів загального значення і конвейеризация дозволили оперативно нарощувати тактову частоту і потужність процесорів, які не перекручуючи з кількістю транзисторів.

Ось лише деякі з що з'явилися з період з 1980 по 1995 рік архітектур:

  • SPARC;
  • ARM;
  • PowerPC;
  • Intel P5;
  • AMD K5;
  • Intel P6.

В їх основі лежала платформа RISC, а в деяких випадках і часткове, поєднане використання CISC-платформи. Але розвиток технологій знову підштовхувало чипмейкеров продовжити нарощування процесорів.

У серпні 1999 року на ринок виході AMD K7 Athlon, виготовлений по 250 нанометровим техпроцесом і включає 22 млн транзисторів. Пізніше планку підняли до 38 млн процесорів. Потім до 250 млн.

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

7. Кінець транзисторних змагань близько

У 2007 році Гордон Мур виступив з вельми різкою заявою:

Закон Мура скоро перестане діяти. Встановлювати необмежену кількість процесорів до нескінченності неможливо. Причина тому - атомарна природа речовини.

Неозброєним оком помітно, що два провідних виробників чіпів AMD і Intel останні кілька років явно уповільнили темпи розвитку процесорів. Точність технологічного процесу зросла лише до кількох нанометрів, але розміщувати ще більше процесорів неможливо.

І поки виробники напівпровідників погрожують запустити багатошарові транзистори, проводячи паралель з 3DNand пам'яттю, у упершись в стіну архітектури x86 ще 30 років тому з'явився серйозний конкурент.

8. Що чекає «звичайні» процесори

«Закон Мура» визнаний недійсним ще з 2016 року. Про це офіційно заявив найбільший виробник процесорів Intel. Подвоювати обчислювальну потужність на 100% кожні два роки чипмейкери більше не стані.

І тепер у виробників процесорів є кілька малоперспективних варіантів.

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

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

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

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

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

Сьогодні ж, розуміючи стрімкий розвиток ARM-архітектури, Intel провела неголосний анонс чіпів сімейства Ice Lake. Процесори будуть виготовлятися по 10-нанометровим технологічним процесом і стануть основою для смартфонів, планшетів і мобільних пристроїв. Але станеться це в 2019 році.

9. Майбутнє за ARM

Отже, архітектура x86 з'явилася в 1978 році і відноситься до типу платформи CISC. Тобто сама по собі вона передбачає наявність інструкцій на всі випадки життя. Універсальність - головний коник x86.

Але, в той же час, універсальність зіграла з цими процесорами і злий жарт. У x86 є кілька ключових недоліків:

  • складність команд і відверта їх заплутаність;
  • високе споживання енергії і виділення теплоти.

За високу продуктивність довелося попрощатися з енергоефективністю. Більш того, над архітектурою x86 зараз трудяться дві компанії, яких можна сміливо віднести до монополістам. Це Intel і AMD. Виробляти x86-процесори можуть тільки вони, а значить і правлять розвитком технологій тільки вони.

У той же час розробкою ARM (Arcon Risk Machine) займаються відразу кілька компанія. Ще в 1985 році в якості основи для подальшого розвитку архітектури розробники вибрали платформу RISC.

На відміну від CISC, RISC передбачає розробку процесора з мінімально необхідною кількістю команд, але максимальної оптимізацією. Процесори RISC набагато менше CISC, більш енергоефективні та прості.

Більш того, ARM спочатку створювався виключно як конкурент x86. Розробники ставили завдання побудувати архітектуру, більш ефективну ніж x86.

Ще з 40-х років інженери розуміли, що одним із пріоритетних завдань залишається робота над зменшенням габаритів комп'ютерів, а, в першу чергу - самих процесорів. Але навряд чи майже 80 років тому будь-хто міг припустити, що повноцінний комп'ютер буде менше сірникової коробки.

Архітектуру ARM свого часу підтримала компанія Apple, запустивши виробництво планшетів Newton на базі сімейства ARM-процесорів ARM6.

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

  • мобільність;
  • автономність.

x86 архітектура сильна в продуктивності, але варто вам відмовитися від активного охолодження, як потужний процесор здасться жалюгідним на тлі архітектури ARM.

10. Чому ARM - незаперечний лідер

Навряд чи ви будете здивовані, що ваш смартфон, будь то простенький Android або флагман Apple 2016 року в десятки разів могутніше повноцінних комп'ютерів епохи кінця 90-х.

Але у скільки могутніше той же айфон?

Саме по собі порівняння двох різних архітектур - штука дуже складна. Заміри тут можна виконати лише приблизно, але зрозуміти те колосальну перевагу, що дає побудовані на ARM-архітектурі процесори смартфона, можна.

Універсальний помічник в такому питанні - штучний тест продуктивності Geekbench. Утиліта доступна як на стаціонарних комп'ютерах, так і на Android і iOS платформах.

Середній і початковий клас ноутбуків явно відстає від продуктивності iPhone 7. У топовом сегменті все трохи складніше, але в 2017 році Apple випускає iPhone X на новому чіпі A11 Bionic.

Там, вже знайома вам архітектура ARM, але показники в Geekbench виросли майже вдвічі. Ноутбуки з «вищого ешелону» напружилися.

А адже пройшов всього один рік.

Розвиток ARM йде семимильними кроками. Поки Intel і AMD рік за роком демонструють 5 - 10% приріст продуктивності, за той же період виробники смартфонів примудряються підвищити потужність процесорів в два - два з половиною рази.

Скептично налаштованим користувачам, які пройдуться по топовим рядках Geekbench лише хочеться нагадати: в мобільних технологіях розмір - це те, що перш за все має значення.

Встановіть на стіл моноблок з потужним 18-ядерний процесор, який «на шматки розриває ARM-архітектуру», а потім покладіть поруч iPhone. Відчуваєте різницю?

11. Замість висновку

Осягнути 80-річну історію розвитку комп'ютерів в одному матеріалі неможливо. Але, прочитавши цю статтю, ви зможете зрозуміти як влаштований головний елемент будь-якого комп'ютера - процесор, і чого варто чекати від ринку в наступні роки.

Безумовно, Intel і AMD буду працювати над подальшим нарощуванням кількості транзисторів на одному кристалі і просувати ідею багатошарових елементів.

Але чи потрібна вам як покупцеві така потужність?

Навряд чи вас не влаштовує продуктивність iPad Pro або флагманського iPhone X. Не думаю, що ви незадоволені продуктивністю розташувалася на кухні мультиварки або якістю картинки на 65-дюймовому 4K-телевізорі. Але ж у всіх цих пристроях використовуються процесори на ARM-архітектурі.

Windows вже офіційно заявила, що з цікавістю дивиться в бік ARM. Підтримку цієї архітектури компанія включила ще в Windows 8.1, а нині активно працює над тандемом з провідним ARM-Чіпмейкер Qualcomm.

На ARM встигла подивитися і Google - операційна система Chrome OS підтримує цю архітектуру. З'явилися відразу кілька дистрибутивів Linux, які також сумісні з даною архітектурою. І це лише початок.

І лише спробуйте на хвилинку уявити, яким приємним буде поєднання енергоефективного ARM-процесора з графенових акумулятором. Саме ця архітектура дозволить отримати мобільні ергономічні гаджети, які зможуть диктувати майбутнє.

4.50 з 5, оцінили: 24 )

сайт Велика стаття, наливайте чай.

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

Отже, що ж виявиться усередині мікропроцесора, якщо його розібрати:

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

Під номером 2 - знаходиться сам кристал, за фактом є найважливішою і дорогою у виготовленні частиною мікропроцесора. Саме завдяки цьому кристалу відбуваються всі обчислення (а це і є найголовніша функція процесора) і чим він складніше, ніж досконаліший - тим потужніше виходить процесор і тим дорожче відповідно. Кристал виготовляється з кремнію. Насправді процес виготовлення дуже складний і містить в собі десятки кроків, докладніше в цьому відео:

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

Кришка (1) кріпиться до підкладки (3) за допомогою клею-герметика, стійкого до високих температур. Між кристалом (2) і кришкою немає повітряного зазору, його місце займає термопаста, при застиганні з неї виходить "місток" між кристалом процесора і кришкою, завдяки чому забезпечується дуже хороший відтік тепла.

Кристал з'єднується з підкладкою з допомогою пайки і герметика, контакти підкладки з'єднуються з контактами кристала. На цьому малюнку наочно показано як з'єднуються контакти кристала з контактами підкладки за допомогою дуже тонких дротів (на фото 170-кратне збільшення):

Взагалі пристрій процесорів різних виробників і навіть моделей одного виробника може сильно різнитися. Однак принципова схема роботи залишається колишньою - у всіх є контактна підкладка, кристал (або кілька, розташованих в одному корпусі) і металева кришка для відводу тепла.

Так наприклад виглядає контактна підкладка процесора Intel Pentium 4 (процесор перевернуть):

Форма контактів і структура їх розташування залежить від процесора і материнської плати комп'ютера (сокети повинні збігатися). Наприклад на малюнку трохи вище контакти у процесора без "штирьків", оскільки штирі знаходяться прямо в сокеті материнської плати.

А буває інша ситуація, де "штирі" контактів стирчать прямо з контактної підкладки. Ця особливість характерна в основному для процесорів AMD:

Як уже згадувалося вище, пристрій різних моделей процесорів одного виробника може відрізнятися, перед нами яскравий тому приклад - чотирьохядерний процесор Intel Core 2 Quad, який по суті являє собою 2 двоядерних процесора лінійки core 2 duo, суміщених в одному корпусі:

Важливо! Кількість кристалів усередині процесора і кількість ядер процесора - не одне й те саме.

У сучасних моделях процесорів Intel уміщається відразу 2 кристала (чіпа). Другий чіп - графічне ядро \u200b\u200bпроцесора, по-суті грає роль вбудованої в процесор відеокарти, тобто навіть якщо в системі відсутній, графічне ядро \u200b\u200bвізьме на себе роль відеокарти, причому досить потужною (в деяких моделях процесорів обчислювальна потужність графічних ядер дозволяє грати в сучасні ігри на середніх налаштуваннях графіки).

От і все пристрій центрального мікропроцесора, Коротко звичайно ж.

Пристрій і принцип роботи процесора

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

1. Введення.

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

Більшість сучасних процесорів складається з:

  • одного або декількох ядер, які здійснюють виконання всіх інструкцій;
  • декількох рівнів КЕШ-пам'яті (зазвичай, 2 або три рівня), що прискорюють взаємодія процесора з ОЗУ;
  • контролера ОЗУ;
  • контролера системної шини (DMI, QPI, HT і т.д.);

І характеризується наступними параметрами:

  • типом мікроархітектури;
  • тактовою частотою;
  • набором виконуваних команд;
  • кількістю рівнів КЕШ-пам'яті і їх обсягом;
  • типом і швидкістю системної шини;
  • розмірами оброблюваних слів;
  • наявністю або відсутністю вбудованого контролера пам'яті;
  • типом підтримуваної оперативної пам'яті;
  • об'ємом пам'яті, що адресується;
  • наявністю або відсутністю вбудованого графічного ядра;
  • енергоспоживанням.

Спрощена структурна схема сучасного многоядерного процесора представлена \u200b\u200bна малюнку 1.

Почнемо огляд пристрою процесора з його основної частини - ядра.

2. Ядро процесора.

Ядро процесора - це його основна частина, яка містить всі функціональні блоки і здійснює виконання всіх логічних і арифметичних операцій.

На малюнку 1 наведена структурна схема пристрою ядра процесора. Як видно на малюнку, кожне ядро \u200b\u200bпроцесора складається з декількох функціональних блоків:

  • блоку вибірки інструкцій;
  • блоків декодування інструкцій;
  • блоків вибірки даних;
  • керуючого блоку;
  • блоків виконання інструкцій;
  • блоків збереження результатів;
  • блоки роботи з перериваннями;
  • ПЗУ, що містить мікрокод;
  • набору регістрів;
  • лічильника команд.

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

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

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

Часто окремі складні команди доводиться замінювати микрокодом - серією простих інструкцій, в сукупності виконують ту саму дію, що і одна складна інструкція. Набір микрокода прошитий в ПЗУ, вбудованому в процесорі. До того ж мікрокод спрощує розробку процесора, так як відпадає потреба в створенні сложноустроенная блоків ядра для виконання окремих команд, так і виправити мікрокод набагато простіше, ніж усунути помилку в функціонуванні блоку.

У сучасних процесорах, зазвичай, буває 2-4 блоку декодування інструкцій, наприклад, в процесорах Intel Core 2 кожне ядро \u200b\u200bмістить по два таких блоку.

Блоки вибірки даних здійснюють вибірку даних з КЕШ-пам'яті або ОЗУ, необхідних для виконання поточних інструкцій. Зазвичай, кожне процесорний ядро \u200b\u200bмістить кілька блоків вибірки даних. Наприклад, в процесорах Intel Core використовується по два блоки вибірки даних для кожного ядра.

керуючий блок на підставі декодованих інструкцій управляє роботою блоків виконання інструкцій, розподіляє навантаження між ними, забезпечує своєчасне і правильне виконання інструкцій. Це один з найбільш важливих блоків ядра процесора.

Блоки виконання інструкцій включають в себе кілька різнотипних блоків:

ALU - арифметичне логічний пристрій;

FPU - пристрій з виконання операцій з плаваючою точкою;

Блоки для обробки розширення наборів інструкцій. Додаткові інструкції використовуються для прискорення обробки потоків даних, шифрування і дешифрування, кодування відео і так далі. Для цього в ядро \u200b\u200bпроцесора вводять додаткові регістри та набори логіки. На даний момент найбільш популярними розширеннями наборів інструкція є:

MMX (Multimedia Extensions) - набір інструкцій, розроблений компанією Intel, для прискорення кодування і декодування потокових аудіо і відео-даних;

SSE (Streaming SIMD Extensions) - набір інструкцій, розроблений компанією Intel, для виконання однієї і тієї ж послідовності операцій над безліччю даних з розпаралелюванням обчислювального процесу. Набори команд постійно вдосконалюються, і на даний момент є ревізії: SSE, SSE2, SSE3, SSSE3, SSE4;

ATA (Application Targeted Accelerator) - набір інструкцій, розроблений компанією Intel, для прискорення роботи спеціалізованого програмного забезпечення і зниження енергоспоживання при роботі з такими програмами. Ці інструкції можуть використовуватися, наприклад, при розрахунку контрольних сум або пошуку даних;

3DNow - набір інструкцій, розроблений компанією AMD, для розширення можливостей набору інструкцій MMX;

AES (Advanced Encryption Standard) - набір інструкцій, розроблений компанією Intel, для прискорення роботи додатків, що використовують шифрування даних за однойменним алгоритму.

Блок збереження результатів забезпечує запис результату виконання інструкції в ОЗУ за адресою, вказаною в оброблюваної інструкції.

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

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

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

регістри - надшвидка оперативна пам'ять (доступ до регістрів в кілька разів швидше доступу до КЕШ-пам'яті) невеликого обсягу (кілька сотень байт), що входить до складу процесора, для тимчасового зберігання проміжних результатів виконання інструкцій. Регістри процесора діляться на два типи: регістри загального призначення і спеціальні регістри.

Регістри загального призначення використовуються при виконанні арифметичних і логічних операцій, або специфічних операцій додаткових наборів інструкцій (MMX, SSE і т.д.).

Регістри спеціального призначення містять системні дані, необхідні для роботи процесора. До таких регістрів належать, наприклад, регістри управління, регістри системних адрес, регістри налагодження і т.д. Доступ до цих регістрів жорстко регламентований.

Лічильник команд - регістр, що містить адресу команди, яку процесор почне виконувати на наступному такті роботи.

2.1 Принцип роботи ядра процесора.

Принцип роботи ядра процесора заснований на циклі, описаному ще Джоном фон Нейманом в 1946 році. У спрощеному вигляді етапи циклу роботи ядра процесора можна представити таким чином:

1. Блок вибірки інструкцій перевіряє наявність переривань. Якщо переривання є, то дані регістрів і лічильника команд заносяться в стек, а в лічильник команд заноситься адреса команди обробника переривань. По закінченню роботи функції обробки переривань, дані з стека будуть відновлені;

2. Блок вибірки інструкцій з лічильника команд зчитує адресу команди, призначеної для виконання. За цією адресою з КЕШ-пам'яті або ОЗУ зчитується команда. Отримані дані передаються в блок декодування;

3. Блок декодування команд розшифровує команду, при необхідності використовуючи для інтерпретації команди записаний в ПЗП мікрокод. Якщо це команда переходу, то в лічильник команд записується адреса переходу і управління передається в блок вибірки інструкцій (пункт 1), інакше лічильник команд збільшується на розмір команди (для процесора з довгою команди 32 біта - на 4) і передає управління в блок вибірки даних ;

4. Блок вибірки даних зчитує з КЕШ-пам'яті або ОЗУ необхідні для виконання команди дані і передає управління планувальником;

5. Керуючий блок визначає, якого блоку виконання інструкцій обробити поточну задачу, і передає управління цього блоку;

6. Блоки виконання інструкцій виконують необхідні командою дії і передають управління блоку збереження результатів;

7. При необхідності збереження результатів в ОЗУ, блок збереження результатів виконує необхідні для цього дії і передає управління блоку вибірки інструкцій (пункт 1).

Описаний вище цикл називається процесом (саме тому процесор називається процесором). Послідовність виконуваних команд називається програмою.

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

2.2. Способи підвищення продуктивності ядра процесора.

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

Тому розробники процесорів застосовують різні архітектурні рішення, що дозволяють збільшити продуктивність процесорів без збільшення тактової частоти.

Розглянемо основні способи підвищення продуктивності процесорів.

2.2.1. Конвейеризация.

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

Розглянемо приклад, в якому процесор буде виконувати програму, що складається з п'яти інструкцій (К1-К5), без використання принципу конвейеризации. Для спрощення прикладу візьмемо, що кожен блок ядра процесора виконує інструкцію за 1 такт.

Так ти вибірка інструкції декодування інструкції вибірка даних виконання інструкції збереження результату
1 K1 - - - -
2 - K1 - - -
3 - - K1 - -
4 - - - K1 -
5 - - - - K1
6 K2 - - - -
7 - K2 - - -
8 - - K2 - -
9 - - - K2 -
10 - - - - K2
11 K3 - - - -
12 - K3 - - -
13 - - K3 - -
14 - - - K3 -
15 - - - - K3
16 K4 - - - -
17 - K4 - - -
18 - - K4 - -
19 - - - K4 -
20 - - - - K4
21 K5 - - - -
22 - K5 - - -
23 - - K5 - -
24 - - - K5 -
25 - - - - K5

Як видно з таблиці, для виконання п'яти інструкцій процесору знадобилося 25 тактів. При цьому в кожному такті чотири з п'яти блоків ядра процесора простоювали, тобто процесор використовував всього 20% свого потенціалу. Природно, в реальних процесорах все складніше. Різні блоки процесора вирішують різні за складністю завдання. Самі інструкції теж відрізняються один від одного за складністю. Але в загальному ситуація залишається такою ж.

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

Розглянемо приклад виконання тієї ж програми, що складається з п'яти інструкцій, але з використанням принципу конвейеризации.

Так ти вибірка інструкції декодування інструкції вибірка даних виконання інструкції збереження результату
1 K1 - - - -
2 K2 K1 - - -
3 K3 K2 K1 - -
4 K4 K3 K2 K1 -
5 K5 K4 K3 K2 K1
6 - K5 K4 K3 K2
7 - - K5 K4 K3
8 - - - K5 K4
9 - - - - K5

Та ж програма була виконана за 9 тактів, що майже 2.8 рази швидше, ніж при роботі без конвеєра. Як видно з таблиці максимальне завантаження процесора була отримана на 5 такті. У цей момент використовувалися всі блоки ядра процесора. А з першого по четвертий такт, включно, відбувалося наповнення конвеєра.

Так як процесор виконує команди безперервно, то, в ідеалі, він міг би бути зайнятий на 100%, при цьому, чим довше був би конвеєр, тим більший виграш в продуктивності був би отриманий. Але на практиці це не так.

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

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

Для зменшення впливу умовних переходів на роботу конвеєра, в ядро \u200b\u200bпроцесора вводяться блоки передбачення умовних переходів. Основне завдання цих блоків - визначити, коли буде здійснений умовний перехід і які команди будуть виконані після здійснення умовного переходу.

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

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

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

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

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

Однак все більшої популярності отримує статичну планування, коли порядок виконання програми процесором визначається на етапі компіляції програми. У цьому випадку інструкції, які можна виконати паралельно, об'єднуються компілятором в одну довгу команду, в якій всі інструкції свідомо паралельні. Процесори, що працюють з такими інструкціями, побудовані на базі архітектура VLIW (Very long instruction word).

2.2.2. Суперскалярність.

Суперскалярність - архітектура обчислювального ядра, при якій найбільш навантажені блоки можуть входити в декількох примірниках. Скажімо, в ядрі процесора блок вибірки інструкцій може навантажувати відразу кілька блоків декодування.

В цьому випадку блоки, виконують більш складні дії і працюють довше, за рахунок паралельної обробки відразу декількох інструкцій не будуть затримувати весь конвеєр.

Однак паралельне виконання інструкцій можливо, тільки якщо ці інструкції - незалежні.

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

2.2.3. Паралельна обробка даних.

Нескінченно підвищувати продуктивність процесорів, за рахунок збільшення тактової частоти, неможливо. Збільшення тактової частоти тягне за собою збільшення тепловиділення, зменшення терміну служби і надійності роботи процесорів, так і затримки від звернення до пам'яті сильно знижують ефект від збільшення тактової частоти. Дійсно, зараз практично не зустрінеш процесори з тактовою частотою вище 3.8 ГГц.

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

Переважна більшість сучасних процесорів мають два і більше ядра. Топові моделі можуть містити і 8, і навіть 12 ядер, причому з підтримкою технології hyper-threading. Переваги від введення додаткових ядер цілком зрозумілі, ми практично отримуємо кілька процесорів, здатних незалежно вирішувати кожен свої завдання, при цьому, природно, зростає продуктивність. Однак приріст продуктивності далеко не завжди виправдовує очікування.

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

Але це дає виграш в продуктивності до тих пір, поки не з'являється програма, яка потребує ресурсів більше, ніж може дати одне ядро. Добре, якщо вона підтримує розподіл навантаження між декількома ядрами. Але на даний момент загальнодоступних програм, здатних розподілити навантаження між 12 ядер, та ще в режимі Hyper-Threading, можна «порахувати на пальцях однієї руки». Я, звичайно, перебільшую, існують програми, оптимізовані для багатопоточних обчислень, але більшості простих користувачів вони не потрібні. А ось найбільш популярні програми, а тим більше гри, поки що «погано» адаптуються до багатоядерним процесорам, особливо, якщо кількість ядер більше чотирьох.

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

По-третє, зростає енергоспоживання, а, отже, збільшується тепловиділення і потрібна потужна система охолодження.

Ну і, по-четверте, собівартість виробництва багатоядерних процесорів - немаленька, а, відповідно, і ціна на такі процесори «кусається».

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

2.2.4. Технологія Hyper-Threading.

Технологія Intel Hyper-threading дозволяє кожному ядру процесора виконувати два завдання одночасно, по суті, роблячи з одного реального ядра два віртуальних. Це можливо через те, що в таких ядрах зберігається стан відразу двох потоків, так як у ядра є свій набір регістрів, свій лічильник команд і свій блок роботи з перериваннями для кожного потоку. В результаті, операційна система бачить таке ядро, як два окремих ядра, і буде з ними працювати так само, як працювала б з двоядерним процесором.

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

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

Більшість програм не можуть повністю навантажити процесор, так як деякі, в основному, використовують нескладні цілочисельні обчислення, практично не задіюючи блок FPU. Інші ж програми, наприклад 3D-студія, вимагають масу розрахунків з використанням чисел з плаваючою точкою, але при цьому звільняючи деякі інші виконавчі блоки і так далі.

До того ж практично у всіх програмах - багато умовних переходів і залежних змінних. В результаті, використання технології Hyper-threading може дати істотний приріст продуктивності, сприяючи максимальному завантаженні конвеєра ядра.

Але не все так просто. Природно, приріст продуктивності буде менше, ніж від використання декількох фізичних ядер, так як все-таки потоки використовують загальні блоки одного конвеєра і часто змушені чекати звільнення необхідного блоку. До того ж більшість процесорів вже мають кілька фізичних ядер, і при використанні технології Hyper-threading віртуальних ядер може стати занадто багато, особливо, якщо процесор містить чотири і більше фізичних ядра.

Так як на даний момент програм, здатних розподіляти обчислення на велику кількість ядер, - вкрай мало, то в цьому випадку результат може розчарувати користувачів.

Є ще одна серйозна проблема технології Hyper-Threading - це конфлікти, що виникають, коли інструкції різних потоків потребують однотипних блоках. Може скластися ситуація, коли паралельно працюватимуть два схожих потоку, часто використовують одні й ті ж блоки. В такому випадку приріст продуктивності буде мінімальний.

В результаті, технологія Hyper-Threading дуже залежна від типу навантаження на процесор і може дати хороший приріст продуктивності, а може бути практично даремною.

2.2.5. Технологія Turbo Boost.

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

Частота процесора розраховується, як частота системної шини, помножена на якийсь коефіцієнт, званий множником. Наприклад, процесор Core i7-970 працює з системною шиною DMI на базовій частоті - 133 МГц, і має множник - 24. Таким чином, тактова частота ядра процесора складе: 133 Мгц * 24 \u003d 3192 Мгц.

Якщо в налаштуваннях BIOS збільшити множник або підняти тактову частоту системної шини, то тактова частота процесора збільшиться, а, відповідно, збільшиться і його продуктивність. Однак процес цей - далеко небезпечний. Через розгону процесор може працювати нестабільно або взагалі вийти з ладу. Тому до розгону потрібно підходити відповідально і ретельно контролювати параметри роботи процесора.

З поява технології Turbo Boost все стало набагато простіше. Процесори з цією технологією можуть самі динамічно, на короткий проміжок часу, підвищувати тактову частоту, тим самим, збільшуючи свою продуктивність. При цьому процесор контролює всі параметри своєї роботи: напруга, силу струму, температуру і т.д., не допускаючи збоїв і тим більше виходу з ладу. Наприклад, процесор може відключити невживані ядра, тим самим, знизивши загальну температуру, а натомість збільшити тактову частоту інших ядер.

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

2.2.6. Ефективність виконання команд.

Залежно від типів оброблюваних інструкцій і способу їх виконання, процесори поділяються на кілька груп:

  • на класичні процесори CISC;
  • на процесори RISC зі скороченим набором команд;
  • на процесори MISC c мінімальним набором команд;
  • на процесори VLIW з набором наддовгих команд.

CISC (Complex instruction set computer) - це процесори зі складним набором команд. Архітектура CISC характеризується:

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

Історично, процесори з архітектурою CISC з'явилися першими, і їх поява була обумовлена \u200b\u200bзагальною тенденцією розробки перших ЕОМ. ЕОМ прагнули зробити більш функціональними і в той же час простими для програмування. Природно, для програмістів спочатку було зручніше мати широкий набір команд, ніж реалізовувати кожну функцію цілої окремої підпрограмою. В результаті, обсяг програм сильно скорочувався, а разом з ним і трудомісткість програмування.

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

В результаті, програмісти вже не мали особливої \u200b\u200bвигоди від широкого набору інструкцій, так як компіляція програм стала автоматичною, а самі процесори обробляли складні і різноманітні інструкції повільно, в основному, через проблеми з їх декодуванням.

До того ж нові складні інструкції розробники процесорів налагоджували менше, так як це був трудомісткий і складний процес. В результаті, деякі з них могли містити помилки.

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

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

Тому було прийнято компроміс, і CISC процесори, починаючи з Intel486DX, стали виробляти з використанням RISC-ядра. Тобто, безпосередньо перед виконанням, складні CISC-інструкції перетворять в більш простий набір внутрішніх інструкцій RISC. Для цього використовують записані в розміщеному всередині ядра процесора ПЗУ набори микрокоманд - серії простих інструкцій, в сукупності виконують ті ж дії, що і одна складна інструкція.

RISC (Reduced Instruction Set Computer) - процесори зі скороченим набором інструкцій.

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

Так само прості RISC-інструкції набагато простіше распараллеливать, ніж CISC-інструкції, а, отже, з'являється можливість більше завантажити конвеєр, ввести додаткові блоки обробки інструкцій і т.д.

Процесори, побудовані по архітектурі RISC, володіють наступними основними особливостями:

  • фіксована довжина інструкцій;
  • невеликий набір стандартизованих інструкцій;
  • велика кількість регістрів загального призначення;
  • відсутність микрокода;
  • менше енергоспоживання, в порівнянні з CISC-процесорами аналогічної продуктивності;
  • більш просте внутрішній устрій;
  • меншу кількість транзисторів, в порівнянні з CISC-процесорами аналогічної продуктивності;
  • відсутність складних спеціалізованих блоків в ядрі процесора.

В результаті, хоча RISC-процесори і вимагають виконання більшої кількості інструкцій для вирішення однієї і тієї ж задачі, в порівнянні з CISС-процесорами, вони, в загальному випадку, показують більш високу продуктивність. По-перше, виконання однієї RISC-інструкції займає набагато менше часу, ніж виконання CISC-інструкції. По-друге, RISC-процесори більш широко використовують можливості паралельної роботи. По-третє, RISC-процесори можуть мати більш високу тактову частоту, в порівнянні з CISC-процесорами.

Однак, незважаючи на явну перевагу RISC, процесори не отримали такого серйозного поширення, як CISC. Правда, пов'язано це в основному не з тим, що вони з якихось параметрах могли бути гірше CISC-процесорів. Вони не гірше. Справа в тому, що СISC-процесори з'явилися першими, а програмне забезпечення для CISC -Процесор - несумісне з RISC-процесорами.

В результаті, економічно вкрай невигідно переписувати все програми, які вже розроблені, налагоджені і використовуються величезною кількістю користувачів. Ось так і вийшло, що тепер ми змушені використовувати CISC-процесори. Правда, як я вже говорив, розробники знайшли компромісне рішення даної проблеми, і вже дуже давно в CISC-процесорах використовують RISC-ядро і заміну складних команд на прошивки. Це дозволило дещо згладити ситуацію. Але все ж RISC-процесори за більшістю параметрів виграють навіть у CISC-процесорів з RISC-ядром.

MISC (Minimal Instruction Set Computer) - подальший розвиток архітектури RISС, засноване на ще більшому спрощення інструкцій і зменшенні їх кількості. Так, в середньому, в MISC-процесорах використовується 20-30 простих інструкцій. Такий підхід дозволив ще більше спростити пристрій процесора, знизити енергоспоживання і максимально використовувати можливості паралельної обробки даних.

VLIW (Very long instruction word) - архітектура процесорів, що використовує інструкції великої довжини, що містять відразу кілька операцій, об'єднаних компілятором для паралельної обробки. У деяких реалізаціях процесорів довжина інструкцій може досягати 128 або навіть 256 біт.

Архітектура VLIW є подальшим удосконаленням архітектури RISC і MISC з поглибленим паралелізмом.

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

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

Крім цього спрощувалася конструкція процесора, так як упрощались або зовсім скасовувалися деякі блоки, які відповідають за аналіз залежностей і організацію розпаралелювання обробки інструкцій, а це, в свою чергу, вело до зниження енергоспоживання і собівартості процесорів.

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

Перші VLIW-процесори з'явилися в кінці 1980-х років і були розроблені компанією Cydrome. Так само до процесорів з цієї архітектурою відносяться процесори TriMedia фірми Philips, сімейство DSP C6000 фірми Texas Instruments, Ельбру? З 2000 - процесор російського виробництва, розроблений компанією МЦСТ за участю студентів МФТІ та ін. Підтримка довгих інструкцій з явним паралелізмом є і в процесорах сімейства Itanium.

2.3. Способи зниження енергоспоживання процесора.

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

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

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

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

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

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

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

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

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

Наприклад, технологія EIST (Enhanced Intel SpeedStep Technology) дозволяє динамічно змінювати енергоспоживання процесора, за рахунок зміни тактової частоти процесора і напруги. Зміна тактової частоти відбувається, за рахунок зменшення або збільшення коефіцієнта множення.

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

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

Аналогічна технологія для зменшення енергоспоживання, заснована на динамічній зміні напруги і тактової частоти, в залежності від навантаження на процесор, використовується і компанією AMD, називається вона - Cool'n'Quiet.

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

Параметри роботи технології EIST можна налаштовувати, використовуючи BIOS і програмне забезпечення операційної системи, і встановлювати необхідні для конкретного випадку профілі управління енергоспоживанням, тим самим балансуючи продуктивність процесора і його енергоспоживання.

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

3. Кеш-пам'ять.

Незважаючи на всі технології та прийоми розробників, продуктивність процесора все-таки безпосередньо залежить від швидкості вибірки команд і даних з пам'яті. І навіть, якщо процесор має збалансований і продуманий конвеєр, використовує технологію Hyper-Threading і так далі, але не забезпечує належну швидкість вибірки даних і команд з пам'яті, то, в результаті, загальна продуктивність ЕОМ не виправдає ваших очікувань.

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

Кеш-пам'ять будується на базі дорогий SRAM-пам'яті (static random access memory), що забезпечує доступ до осередків пам'яті набагато швидший, ніж до осередків DRAM-пам'яті (dynamic random access memory), на базі якої побудована оперативна пам'ять. До того ж SRAM-пам'ять не вимагає постійної регенерації, що так само збільшує її швидкодію. Однак більш детально пристрій SRAM, DRAM і інших типів пам'яті розглянемо в наступній статті, а зараз більш детально розглянемо принцип роботи і пристрої КЕШ-пам'яті.

Кеш-пам'ять ділиться на кілька рівнів. У сучасних процесорах, зазвичай, буває три рівня, а в деяких топових моделях процесорів іноді зустрічається і чотири рівні КЕШ-пам'яті.

Кеш-пам'ять більш високого рівня завжди більше за розміром і повільніше КЕШ-пам'яті нижчого рівня.

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

Кеш-пам'ять другого рівня - більш повільна (час доступу, в середньому, 8-20 тактів процесора), але зате має обсяг кілька мегабайт.

Кеш-пам'ять третього рівня - ще повільніше, але має порівняно великий обсяг. Зустрічаються процесори з КЕШ-пам'яттю третього рівня більше 24 Мб.

У багатоядерних процесорах, зазвичай, останній рівень КЕШ-пам'яті роблять загальним для всіх ядер. Причому, в залежності від навантаження на ядра, може динамічно змінюватися відведений ядру обсяг КЕШ-пам'яті останнього рівня. Якщо ядро \u200b\u200bмає високе навантаження, то йому виділяється більше КЕШ-пам'яті, за рахунок зменшення обсягу КЕШ-пам'яті для менш навантажених ядер. Не всі процесори мають таку можливість, а тільки підтримують технологію Smart Cache (наприклад, Intel Smart Cache або AMD Balanced Smart Cache).

Кеш-пам'ять нижчого рівня - зазвичай, індивідуальна для кожного ядра процесора.

Ми розглянули, як влаштована Кеш-пам'ять, давайте тепер розберемося, як вона працює.

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

Наступного разу, коли процесору знадобляться ці ж дані, вони будуть прочитані вже не з основної оперативної пам'яті, а з КЕШ-пам'яті першого рівня, що значно швидше. Якщо до цих даних процесор довго не буде звертатися, то вони будуть поступово витіснені з усіх рівнів КЕШ-пам'яті, спочатку з першого, так як він найменший за обсягом, потім з другого і так далі. Але, навіть якщо ці дані залишаться тільки в третьому рівні КЕШ-пам'яті, все одно звернення до них буде швидше, ніж до основної пам'яті.

Однак, чим більше рівнів КЕШ-пам'яті, тим складніше алгоритм заміщення застарілих даних і тим більше часу витрачається на узгодження даних у всіх рівнях КЕШ-пам'яті. В результаті, виграш від швидкості роботи КЕШ-пам'яті швидко сходить нанівець. До того ж SRAM-пам'ять - дуже дорога, і при великих обсягах, а, як пам'ятаєте, кожен новий рівень КЕШ-пам'яті повинен бути більше попереднього, швидко знижується показник ціна-якість, що вкрай негативно позначається на конкурентоспроможності процесора. Тому на практиці більше чотирьох рівнів КЕШ-пам'яті не роблять.

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

Але, незважаючи на такі труднощі в роботі з КЕШ-пам'яттю, її застосування дає явний приріст швидкості роботи без істотного збільшення вартості ЕОМ. І поки не буде придумана оперативна пам'ять, яка зможе за швидкістю змагатися з SRAM-пам'яттю, а за ціною - з DRAM-пам'яті, буде застосовуватися ієрархічна організація оперативної пам'яті з використанням декількох рівнів КЕШ-пам'яті.

Мабуть, на цьому закінчимо огляд пристрою процесора, так як огляд системних шин і принцип їх роботи приводився в статті «Пристрій і призначення материнської плати», а опис контролера основної оперативної пам'яті, часто входить до складу процесора, типів оперативної пам'яті і принципів її роботи буде в наступній статті.


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

Процесор: функції пристрою і історія появи

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

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

мікропроцесори

З розвитком комп'ютерної техніки в структуру ПК стали впроваджуватися девайси, що отримали назву «мікропроцесор». Одним з перших пристроїв такого типу стало виріб Intel 4004, випущене американською корпорацією в 1971 році. Мікропроцесори в масштабі однієї мікросхеми об'єднали в своїй структурі ті функції, що ми визначили вище. Сучасні девайси, в принципі, працюють на основі тієї ж самої концепції. Таким чином, центральний процесор ноутбука, ПК, планшета містить в своїй структурі: логічний пристрій, регістри, а також модуль управління, що відповідають за конкретні функції. Однак на практиці компоненти сучасних мікросхем найчастіше представлені в більш складній сукупності. Вивчимо дану особливість докладніше.

Структура сучасних процесорів

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

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

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

ядро процесора

Центральний процесор сучасного ПК завжди має ядро. У ньому містяться ключові функціональні блоки мікросхеми, за допомогою яких вона виконує необхідні логічні і арифметичні функції. Як правило, вони представлені в деякій сукупності елементів. Так, пристрій центрального процесора найчастіше передбачає наявність блоків, які відповідають за вирішення наступних завдань:

Вибірка і декодування інструкцій;

Вибірка даних;

Виконання інструкцій;

Збереження результатів обчислень;

Робота з перериваннями.

Також структура мікросхем відповідного типу доповнюється керуючим блоком, запам'ятовуючим пристроєм, лічильником команд, а також набором регістрів. Розглянемо специфіку роботи відповідних компонентів докладніше.

Ядро процесора: компоненти

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

У блоці декодування обробляються інструкції, що визначають алгоритм роботи мікросхеми в ході вирішення тих чи інших завдань. Забезпечення їх функціонування - складна задача, як вважають багато IT-фахівці. Це обумовлено, зокрема, тим, що довжина інструкції не завжди чітко визначена. Сучасні процесори зазвичай включають 2 або 4 блоки, в яких здійснюється відповідне декодування.

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

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

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

Є в складі ядер процесорів блоки, які контролюють обробку розширення наборів, що встановлені для інструкцій. Дані алгоритми, що доповнюють основні команди, використовуються для підвищення інтенсивності обробки даних, здійснення процедур шифрування або дешифрування файлів. Рішення подібних завдань вимагає введення в структуру ядра мікросхеми додаткових регістрів, а також наборів інструкцій. Сучасні процесори включають зазвичай такі розширення: MMX (призначені для кодування аудіо- та відеофайлів), SSE (застосовуються при розпаралелювання обчислень), ATA (задіюється з метою прискорення роботи програм і зниження рівня енергоспоживання ПК), 3DNow (розширення мультимедійних можливостей комп'ютера), AES (шифрування даних), а також багато інших стандарти.

У структурі ядер процесора зазвичай також присутні блоки, які відповідають за збереження результатів в ОЗУ відповідно до адреси, який міститься в інструкції.

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

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

У структурі ядра процесора також присутні різні допоміжні компоненти. Які Наприклад? Це може бути датчик, що відслідковує те, яка поточна температура центрального процесора. Якщо її показники вище встановлених норм, то мікросхема може направити сигнал модулів, які відповідають за роботу вентиляторів - і вони почнуть обертатися швидше. Є в структурі ядра провісник переходів - компонент, який покликаний визначати, які саме команди будуть виконуватися після завершення певних циклів операцій, що здійснюються мікросхемою. Приклад іншого важливого компонента - лічильник команд. Даний модуль фіксує адресу відповідного алгоритму, який передається мікросхемі в момент початку виконання ним того чи іншого такту.

Така структура ядра, яке входить в центральний процесор комп'ютера. Вивчимо тепер докладніше деякі ключові характеристики мікросхем відповідного типу. А саме: техпроцес, тактова частота, об'єм кеш-пам'яті, а також енергоспоживання.

Характеристики процесора: тип техпроцесу

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

Власне, до чого все це? Справа в тому, що в ході еволюції ЕОМ сформувалося неофіційне правило: чим більш технологічно пристрій, тим меншими габаритами при тій же продуктивності, а то і при більшій - воно володіє. Воно повною мірою діє і по відношенню до розглянутій характеристики центрального процесора, а саме, техпроцесу його виготовлення. В даному випадку має значення відстань між поодинокими кремнієвими кристалами, що формують структуру мікросхеми. Чим воно менше - тим більше щільність відповідних елементів, які розміщує на собі плата центрального процесора. Тим більше продуктивним він, відповідно, може вважатися. Сучасні процесори виконуються по техпроцесу 90-14 нм. Даний показник має тенденцію до поступового зменшення.

Тактова частота

Тактова частота центрального процесора - один з ключових показників його продуктивності. Вона визначає те, скільки операцій в секунду може здійснювати мікросхема. Чим їх більше - тим більш продуктивний процесор і комп'ютер в цілому. Можна відзначити, що даний параметр характеризує, перш за все, ядро \u200b\u200bяк самостійний модуль центрального процесора. Тобто, якщо відповідних компонентів на мікросхемі кілька, то кожне з них буде працювати з окремою частотою. Деякі IT-фахівці вважають допустимим підсумувати дані характеристики за всіма ядер. Що це означає? Якщо, наприклад, на процесорі встановлено 4 ядра з частотою 1 ГГц, то сумарний показник продуктивності ПК, якщо слідувати цій методології, становитиме 4 ГГц.

компоненти частоти

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

Справа в тому, що при розгоні може значно збільшитися температура центрального процесора. Якщо на ПК не буде встановлено відповідної системи охолодження, то це може привести до виходу мікросхеми з ладу.

Об'єм кеш-пам'яті

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

Головна характеристика кеш-пам'яті - обсяг. Чим він більший, тим, відповідно, вместітельнєє даний модуль з точки зору розташування тих самих інструкцій і алгоритмів, задействуемих процесором. Тим більше ймовірність, що мікросхема буде щоразу знаходити серед них потрібні для себе і працювати швидше. Кеш-пам'ять на сучасних процесорах ділиться найчастіше на три рівні. Перший працює на базі найбільш швидких і високотехнологічних мікросхем, інші - повільніше. Об'єм кеш-пам'яті першого рівня на сучасних процесорах становить близько 128-256 КБ, другого - 1-8 МБ, третього - може перевищувати 20 МБ.

енергоспоживання

Інший значущий параметр мікросхеми - енергоспоживання. Харчування центрального процесора може припускати значне витрачання електроенергії. Сучасні моделі мікросхем споживають близько 40-50 Вт. У деяких випадках цей параметр має економічне значення - наприклад, якщо мова йде про оснащення великих підприємств декількома сотнями або тисячами комп'ютерів. Але не менш значущим фактором енергоспоживання виступає в частині адаптації процесорів до використання на мобільних пристроях - ноутбуках, планшетах, смартфонах. Чим відповідний показник менше, тим довше буде автономна робота девайса.