Шини і розрядність мікропроцесора
Шина на материнській платі комп'ютера і в корпусі мікропроцесора - це безліч плоских провідників. До шин підключені спеціальні буферні мікросхеми. Умовно прийнято ділити системну шину на три шини, зазначені нижче.
Шина даних-двунаправленная шина, по якій дані від різних периферійних пристроїв подаються в процесор або, навпаки, надсилаються від процесора в ці пристрої.
Керуюча шіна- двунаправленная шина, по якій передаються керуючі сигнали, що забезпечують задану послідовність роботи мікропроцесора і різних периферійних пристроїв комп'ютера.
Крім зовнішніх шин, мікропроцесор зазвичай має свої вбудовані шини, які формуються на його чіпі або друкованої плати в корпусі мікропроцесора. Розміри чіпа (кристала мікропроцесора) малі, а тому такі шини можуть мати більш високі частоти роботи. Вони зазвичай робляться кратними тактовій частоті роботи мікропроцесора. Наявність вбудованої і зовнішньої шин у процесорів Pentium нових поколінь послужило приводом назвати їх архітектуру архітектурою процесорів з подвійною шиною.
Для усунення головного недоліку мікропроцесора - різкого зниження швидкості обчислень для даних, представлених числами з плаваючою точкою (а такі дані повсюдно зустрічаються при графічних побудовах або при роботі з мультимедіа) починаючи, з процесорів 486 до складу мікропроцесора включається математичний співпроцесор. Він бере на себе всі функції швидких обчислень, як тільки виявляється, що дані представлені в формі чисел з плаваючою точкою. Математичний співпроцесор - це «машина», мало поступається самого процесора за складністю схеми і числу компонентів. Крім того, математичний співпроцесор реалізує досить складні алгоритми точного (близько 20 вірних знаків) обчислення різних математичних функцій, наприклад квадратного кореня, логарифма, синуса, косинуса і так далі. Безліч таких команд використовується при реалізації тривимірної графіки і можливостей мультимедіа.
Арифметико-логічний пристрій, безсумнівно, найважливіший вузол мікропроцесора. Воно виконує безліч арифметичних і логічних операцій, з яких, в основному, складається будь-який алгоритм обчислень.
АЛУ побудовано на безлічі логічних схем. Завдяки АЛУ процесор дозволяє в межах своєї розрядності складати, віднімати, множити і ділити цілі числа. Він дозволяє також виконувати різні операції (наприклад, зсуву або переміщення) для роботи з числами підвищеної розрядності і ін.
Сучасні процесори підтримують і виконання операцій з числами з плаваючою точкою. Всі необхідні операції з переказу десяткових чисел (цілих і з плаваючою точкою) в двійкові числа і навпаки сучасні процесори виконують автоматично. Так що особливої необхідності в умінні виконувати такі перетворення «вручну» просто немає.
Блок команд. У процесор «зашито» безліч команд, які виконуються програмно за допомогою АЛП. Їх небагато чим більше 200. Це команди попередніх поколінь мікропроцесорів 8086, 8088, що 286, 386 і 486. Проте в нові процесори включено цілий ряд нових команд. Зберігання всіх команд мікропроцесора і виконання частини з них і покладено на блок команд.
Конвеєр. В сучасних мікропроцесорах передбачені структурні методи підвищення швидкості роботи. Один з таких методів - конвеєрна обробка інформації. Це означає, що процесор має пристрій - конвеєр, в яке надходить відразу ряд команд. Поки в кінці конвеєра завершується виконання першої надійшла в конвеєр команди, в нього надходять нові команди, і починається їх обробка. Таким чином, в конвеєрі йде одночасне (або, як кажуть, паралельне) виконання ряду команд.
Конвеєр зазвичай розрахований на виконання декількох команд, число яких визначається довжиною конвеєра. При виконанні декількох команд час виконання визначається часом виконання найтривалішою команди, тоді як процесор без конвеєра зажадає часу, що дорівнює сумі часів виконання всіх команд. Процесор Pentium має два 5-стадійних конвеєра. Надалі число стадій і число конвеєрів зростала. Треба враховувати, що операції з конвеєром вимагають невеликих додаткових витрат часу, а тому робити конвеєр занадто великим нераціонально.
У процесорі Pentium Pro і в його спадкоємців був використаний новий принцип попереджувального виконання команд. Для цього в процесорі використаний спеціальний пул команд. Образно кажучи, цей принцип подібний до того, що ми робимо, прихопивши про запас потрібний інструмент або потрібний одяг і застосовуючи їх тоді, коли це треба.
Регістри мікропроцесора. Для виконання більшості операцій потрібно десь тимчасово зберігати вхідні дані, проміжні і підсумкові результати обчислень. Для цього процесор має свої швидкодіючі пристрої пам'яті, звані регістрами (registers), які схожі на осередки оперативної пам'яті. Вони поділяються на регістри загального призначення (general-purpose registers) і спеціальні регістри (special-purpose registers). Ми познайомимося з деякими спеціальними регістрами пізніше, а зараз зосередимо нашу увагу на ролі регістрів загального призначення.
Числа в них розкладаються як би по поличках - розрядами. Мікропроцесор має безліч реєстрових операцій, наприклад очищення регістрів, переміщення чисел з одного регістра в інший і так далі.
Було б корисно розглянути регістри загального призначення, що знаходяться в процесорі в рамках всієї пам'яті комп'ютера. Регістри використовуються для того, щоб зберігати під рукою дані, які в даний момент піддаються обробці. Призначення оперативної пам'яті - зберігання даних, які можуть знадобитися в найближчому майбутньому. Пристрої зберігання даних - це пам'ять для зберігання даних які, швидше за все, не будуть потрібні в найближчому майбутньому. Багато машин забезпечені додатковою надшвидкої пам'яттю, званої кеш - пам'яттю. час відгуку якої приблизно дорівнює часу відгуку регістрів. Це пам'ять, що зберігає найбільш часто використовувані в найближчим часом команди мікропроцесора. Кеш - пам'ять частково усуває невідповідність між високою швидкістю роботи мікропроцесора і набагато меншою швидкістю доступу до оперативної пам'яті ПК. Якщо процесор повторно повинен виконати якусь ланцюжок команд, то він бере їх вже з швидкого кеша, а не з повільної пам'яті. Це забезпечує підвищення швидкості роботи мікропроцесора.
У так званої гарвардської архітектурі кеш-пам'яті вона розбивається на дві частини. В одній частині зберігаються команди, а в іншій дані. Пристонському архітектура такого поділу не має, і в цій кеш-пам'яті зберігаються як дані, так і команди.
За характером взаємодії з ОЗУ кеш-пам'ять ділиться на два типи:
• зі зворотним записом;
• з наскрізною записом.
У кеш-пам'яті зі зворотним записом результати операцій спочатку записуються в кеш-пам'ять, а потім вже контролером пам'яті переносяться в ОЗУ. У кеш-пам'яті з наскрізним доступом результати операцій заносяться одночасно в кеш-пам'ять і в ОЗУ.
У комп'ютері кеш-пам'ять має ряд рівнів (Levels). Як уже зазначалося, кеш-пам'ять першого рівня LI розташована на тому ж кристалі, що і сам процесор, а тому працює на частоті процесора (іноді на половинній частоті). Це дуже швидка пам'ять. Але вона займає багато місця на кристалі процесора, тому її обсяг обмежений - зазвичай 16, 32 або 64 Кбайта. Лише процесори AMD Athlon мають кеш-пам'ять рівня L1 на 128 кбайт.
Кеш-пам'ять другого рівня L2 може бути розташована або в процесорі, або на системній платі. Її обсяг лежить в межах від 128 кбайт у дешевих процесорів (наприклад, Celeron) до декількох мегабайт у процесорів для серверів, які обслуговують локальні мережі (Intel Itanium). У сучасних процесорів ця пам'ять розташовується найчастіше в корпусі процесора і підключається до нього через окрему високошвидкісну шину - архітектура комп'ютерів з подвійною шиною.
Кеш-пам'ять третього рівня L3 зазвичай розташовується на системній платі ПК. Вона виконується на високошвидкісних мікросхемах статичної пам'яті. До цієї пам'яті, а іноді і кеш-пам'яті четвертого рівня L4 відносять і кеш-пам'ять, располагаемую за межами системної плати, наприклад на платах дискових накопичувачів. Призначення цієї пам'яті полягає в зменшенні часу доступу до командам і даних, що зберігаються на дисках. Іноді для цього використовується частина ОЗУ ПК.
Блок управління пам'яттю. Під час роботи процесор постійно взаємодіє з пам'яттю. Він отримує з пам'яті коди команд і дані для обчислень і направляє в задані комірки пам'яті результати обчислень. Для забезпечення цього процесор містить блок управління пам'яттю. Блок управління пам'яттю полегшує роботу АЛП і дозволяє використовувати АЛУ для обробки основних даних.

Малюнок 1 Центральний процесор і оперативна пам'ять, з'єднані шиною
Внаслідок такої будови комп'ютера завдання складання двох значень, що зберігаються в оперативній пам'яті, являє собою більше, ніж просте виконання операції додавання. Цей процес включає в себе і роботу пристрою управління, яке координує передачу інформації між оперативною пам'яттю і регістрами, що знаходяться в центральному процесорі, і роботу арифметико-логічного пристрою, який виконує операцію складання по команді пристрою керування.
Весь процес складання двох чисел, що зберігаються в оперативній пам'яті, можна розділити на п'ять кроків, як показано нижче. У двох словах, дані потрібно передати з оперативної пам'яті в процесор, в процесорі знайти суму двох значень і результат зберегти в комірці пам'яті.
Крок 1. Взяти одне зі значень з пам'яті і помістити його в регістр.
Крок 2. Взяти інше значення з пам'яті і помістити його в інший регістр.
Крок 3. Активувати схему складання, на вході якої будуть дані з регістрів, описаних в кроках 1 і 2.
Крок 4. Зберегти результат в пам'яті.
Прорив в цій галузі (який приписується Джону фон Нейманом) стався з усвідомленням того, що програму, так само як і дані, можна закодувати і зберегти в пам'яті. Якщо побудувати центральний процесор таким чином, щоб він витягав програму з пам'яті, декодувати інструкції і виконував їх, то послідовність дій комп'ютера можна змінити, просто помінявши вміст частини його пам'яті, не замінюючи весь центральний процесор.
Принцип збереженої в оперативній пам'яті програми (stored-program concept) сьогодні став звичайним, настільки звичайним, що він здається очевидним. Спочатку створення машини з програмою, що зберігається заважало те, що програма і дані сприймалися як різні сутності: дані зберігалися в пам'яті, а програми були частиною центрального процесора.
Однак! Перший проект механічної машини, керованої по введеної в неї з перфокарт програмі, був створений в 1834 році Чарльзом Беббідж. Для приводу машини Беббідж передбачав використовувати паровий двигун.
У своїй машині Беббідж виділяв чотири основні блоки:
• склад для зберігання чисел (за нинішньою термінологією пам'ять);
• млин для перемелювання-обробки чисел (по-нашому, це арифметичний пристрій);
Чудово, що всі ці пристрої, по суті, входять в будь-яку сучасну обчислювальну машину. Так що Беббіджа можна вважати першим архітектором обчислювальних машин - архітектура його машини зберігає своє значення і понині. Беббідж також передбачив можливість зміни алгоритму вирішення завдань у міру їх виконання.
Для запису програм Беббідж запозичив ідею застосування перфокарт, яку запропонував і реалізував в ткацьких верстатах Жаккард. Такі карти являли собою аркуш цупкого паперу з отворами. Відсутність і наявність отвору в тому чи іншому місці означало запис логічного нуля і одиниці. Ада Лавлейс (дочка поета Д. Байрона) підготувала перші програми для машини Беббіджа. У них вперше були реалізовані цикли - повторювані неодноразово операції. Її внесок як першого в історії людства програміста увічнений в назві сучасної мови програмування Ада.
Тим часом фізик і математик (за національністю угорець) Джон фон Нейман (1903-1957 рр.), Житель США, запропонував зберігати в пам'яті обчислювальних машин як дані для обчислень, так і програми. Це була основна ідея, що забезпечує обчислення під управлінням мінливих в їх ході даних, що істотно розширило класи алгоритмів обчислень, доступних обчислювальних машин. Він же запропонував класичну архітектуру обчислювальних машин, що складається з наступних вузлів:
• арифметико-логічний пристрій (АЛП);
• пристрій управління (УУ);
• пристрій (ЗУ);
• система введення інформації;
• система виведення інформації.
Ця архітектура так і названа - фон-неймановской архітектурою. Вона, зрозуміло, зі значними доповненнями, лежить в основі більшості сучасних ЕОМ (комп'ютерів).
Закон Мура. Подібно до того, як розмір будинку залежить від числа цеглинок, з яких він складається, так і міць і досконалість сучасних мікропроцесорів безпосередньо залежить від того, скільки транзисторів вдається вмістити в корпус мікропроцесора. Така ситуація і з іншими мікроелектронних виробами, наприклад математичним співпроцесором, процесорами цифрової обробки сигналів, чіпсетами, мікросхемами пам'яті і іншими НВІС.
Колись в далекому 1965 році один із засновників корпорації Intel Гордон Мур досить необережно сказав: «. число транзисторів на чіпі і продуктивність мікропроцесорів будуть подвоюватися кожні два роки ». Кажуть, що він спочатку говорив навіть про один рік. Сам Мур і не претендував на те, що ця емпірична закономірність буде суворим математичним законом.
Закон Меткалфа. названий на честь Боба Меткалфа з Массачусетського технологічного інституту. Він звучить так: цінність комп'ютерної мережі підвищується в квадратичної пропорції по відношенню до числа вузлів в цій мережі.
Саме тому Інтернет в наш час є самим важливим і цінним комунікаційним засобом. Кожен раз, коли кількість вузлів в Інтернеті подвоюється, цінність цієї мережі збільшується в чотири рази. Сьогоднішня мережа має близько 400-500 мільйонів користувачів. Протягом найближчих кількох років кількість користувачів Інтернету збільшиться до одного мільярда, і тоді цінність цієї мережі як засобу доступу до інформації, комунікації та комерції стане набагато вище.
Закон фотона. пропускну здатність волоконно-оптичного каналу передачі інформації можна подвоювати приблизно кожні 10 місяців.