Автор работы: Пользователь скрыл имя, 18 Сентября 2013 в 02:14, реферат
Архітектура комп'ютерів – це дисципліна, що вивчає апаратну частину комп'ютера (цифровий ЕОМ): процесори, пам'ять (оперативна, постійна), тверді диски, системні і локальні шини, пристрої введення-висновку. У конспекті лекцій приводиться архітектура сучасних ЕОМ, розглядаються характеристики і типи процесорів, види оперативної і постійної пам'яті, характеристики і робота нагромаджувачів на твердих дисках (вінчестери), приведені типи і різновиди системних і локальних шин, а також розглянуті пристрою вводу-виводу.
Такий принцип виконання природний
для базової архітектури
Кілька слів про числа з крапкою, що плаває. Архітектура процесора 8086 дозволяє виконувати арифметичні функції (додавання, вирахування, множення і розподіл) над целочисленными даними (знаковими і беззнаковими, двоичными і двоїчно-десятковими) розрядністю 8 чи 16 біт. У процесорах 386+ можна обробляти і 32-розрядні числа. Для роботи з числами у форматі з крапкою, що плаває, (представленими у виді мантиси і порядку) передбачений математичний співпроцесор.
Співпроцесор являє собою набір 80-бітних регістрів і спеціалізований арифметичний пристрій, що крім чотирьох арифметичних дій здатний обчислювати значення квадратного кореня, тригонометричних функцій, логарифмів і ступенів чисел. Співпроцесор може тільки перехоплювати адресовані йому інструкції з потоку команд, виконуваних центральним процесором. Усі маніпуляції з пам'яттю виконує центральний процесор. Складні функції співпроцесора вимагають досить великих витрат часу, але під час їхнього виконання центральний процесор може продовжувати виконання інструкцій, аж до моменту появи наступної інструкції, адресованої співпроцесору. Однак ця епізодична паралельність обчислень не суперечить принципу послідовної передачі керування (самостійно співпроцесор передати керування не здатний). При відсутності співпроцесора його функції можна виконувати програмно целочисленными засобами центрального процесора, але співпроцесор їхній виконує в сотні і тисячі разів швидше. Програмна эмуляция співпроцесора може включатися прозоро для прикладних програм, що звертаються до співпроцесора. Для цього використовується механізм виключень.
Перше покоління (процесори 8086 і 8088 і математичний співпроцесор 8087) задало архітектурну основу – набір нерівноправних 16-розрядних регістрів, сегментну систему адресації пам'яті в межах 1 Мбайт із великою розмаїтістю режимів, систему команд, систему переривань і деякі інші риси. У процесорах застосовувалася "мала" конвеєризація – поки одні вузли виконували поточну інструкцію, блок попередньої вибірки вибирав з пам'яті наступну. На выполнение кожної інструкції ішло в середньому по 12 тактів процесорного ядра.
Друге покоління (80286 зі співпроцесором
80287) привнесло в сімейство
Третє покоління (386/387 із суфіксами DX і SX, що визначають розрядність зовнішньої шини) ознаменувалося переходом до 32-розрядної архітектури ІA-32. Крім розширення діапазону величин, що безпосередньо представляються, (16 біт відображають цілі числа в діапазоні 0-65535 чи від -32767 до +32767, 32 біта - більш ніж 4 мільярди) збільшився й обсяг адресуемой пам'яті (до 4 Гбайт реальної, 64 Тбайт віртуальної). Для цього майже всі програмно-доступні регістри були розширені й одержали в назві приставку "Е" (ЕАХ, ЕВХ...). У систему команд увели можливість переключення розрядності адресації і даних. Захищений режим був трохи удосконалений, але залишена і зворотна сумісність з 286. На такому процесорі стала "розцвітати" система MS Wіndows – спочатку оболонка, а потім і операційна система. У плані організації виконання інструкцій істотних змін, повлекших за собою скорочення числа тактів на інструкцію, не відбулося – ті ж середні 4,5 такти, але частота вже досягла 40 Мгц.
Четверте покоління (486, знов-таки DX і SX) у видиму архітектурну модель великих змін не внесло, але зате прийнятий ряд мір для підвищення продуктивності. У цих процесорах значно ускладнений виконавчий конвеєр – основні операції виконує RіSC-ядро, "завдання" для який готують із вхідних CіSC-инструкций х86. Цей конвеєр став здатним виконувати інструкцію в середньому за два такти. Звичайно, кожна інструкція проходить через весь конвеєр процесора за набагато більшу кількість тактів, але темп виконання в потоці саме такий. Продуктивність конвеєра процесора відірвалася від можливостей доставки інструкцій і даних з оперативної пам'яті, і прямо в процесор увели швидкодіючий первинний кэш обсягом 8-16 Кбайт. У цьому ж поколінні відмовилися від зовнішнього співпроцесора: тепер він розміщається або на одному кристалі з центральним (називається FPU), або його немає взагалі. У порівнянні з попереднім поколінням і співпроцесор став працювати значно ефективніше. А тактова частота в цьому поколінні досягла 133 МГЦ (у AMD, а в Іntel - тільки 100).
П'яте покоління – процесор Pentіum в Іntel і ДО5 у AMD - привнесли суперскалярну архітектуру. Суперскалярность означає наявність більш одного конвеєра. У процесорів п'ятого покоління після блоків попередньої вибірки і першої стадії декодування інструкцій мається два конвеєри, U-конвеєр і V-конвеєр. Кожний з цих конвеєрів має ступіні остаточного декодування, виконання інструкцій і буфер запису результатів. U-конвеєр "уміє" усі, у V-конвеєра можливості небагато скромніше. Конвеєризовано і блок FPU. Процесор з такою архітектурою може одночасно "випускати" до двох виконаних інструкцій, але в середньому виходить 1 такт на інструкцію. Не всі інструкції можуть виконуватися парно, ефективність використання конвеєрів (коефіцієнт їхнього чи завантаження простою) залежить від програмного коду – є широкі можливості оптимізації. У процесорах застосовується блок пророкування розгалужень (інструкцій програми, виконуваних після чергового умовного чи переходу виклику), в обов'язку якого входить не залишати конвеєри без роботи "на поворотах" алгоритмів. Для швидкого постачання конвеєрів інструкціями і даними з пам'яті шина даних процесорів має розрядність 64 біт, через що спочатку їхній навіть помилково називали 64-розрядними процесорами. На заході цього покоління з'явилося розширення ММХ, новизна якого полягає в принципі SІMD: одна інструкція виконує дії відразу над декількома (2, 4 чи 8) комплектами операндов. У ММХ з'явився і новий тип арифметики – з насиченням (saturated): якщо результат операції не уміщається в розрядній сітці, то замість переповнення (антипереповнення) установлюється максимально (мінімально) можливе значення числа.
Шосте покоління процесорів Іntel почалося з Pentіum Pro і продовжується донині в процесорах Pentіum ІІ, Pentіum ІІІ, Celeron і Хеоn. Його лейтмотивом є динамічне виконання, під яким розуміється виконання інструкцій не в тім порядку (out of order), як це передбачається програмним кодом, а в тім, як "зручно" процесору. Інструкції, що надходять на конвеєр, розбиваються на найпростіші мікрооперації, що далі виконуються суперскалярним процесорним ядром у порядку, зручному процесору. Ядро процесора містить кілька конвеєрів, до яких підключаються виконавчі пристрої целочисленных обчислень, звертань до пам'яті, пророкування переходів і обчислень із крапкою, що плаває. Кілька різних виконавчих пристроїв можуть поєднуватися на одному конвеєрі.
Результати "безладно" виконуваних мікрооперацій збираються в буфері, що переупорядковує, і в коректному порядку записуються в пам'ять (і порти введення/висновку). Щоб можна було одночасно виконувати різні інструкції з тими самими программно-адресуемыми регістрами, усередині процесора виконується апаратне перейменування регістрів (їхній у процесора більше, ніж доступних по програмній моделі). Звичайно, при цьому враховується і зв'язок за даними, що сковує "безладні" рівнобіжні виконання, навіть користаючись додатковими регістрами. У процесорах 6-го покоління реалізоване виконання по припущенню: процесор намагається виконати інструкцію, наступну (на його думку) за переходом ще до самого переходу. У підсумку всіх цих хитрувань середнє число тактів на інструкцію в Pentіum Pro скоротилося до 0,5 такту. У систему команд були введені нові інструкції, що дозволяють писати більш ефективні коди (з погляду мінімізації розгалужень).
Полтакта на інструкцію – звучить, звичайно, дивно. Але якщо згадатити про 8-байтной шинуу данихих, що дозволяєє за один такт завантажитити "шматок" коду, що містить кілька команд, і про декільк виконавчі пристрої, що одночасно приступають до їхній виконанню, то питання розсіюються. Правда, питання доставки інструкцій і даних з пам'яті до ядра процесора стає гострим, і один первинний кэш тут не допомагае. У той час як частоти ядра процесора (і первинного кэша) неухильно ростуть у міру удосконалення технологій виготовлення мікросхем (чим тонше, тим швидше), частота системної шини, по якій процесор обмінюється даними з пам'яттю, так швидко рости не може. Тут уже сильно позначаються паразитні параметри провідників і рознімань, що залишаються відносно великими по розмірах. Крім того, і сама оперативна пам'ять не така вуж і швидка.
Проблему доставки "сировини" для роботи процесорів 6-го покоління фірма Іntel стала вирішувати, використовуючи так називану подвійну незалежну шину (DІ). Одна із шин процесора, "фасадна" (FSB – Front Sіde Bus), зв'язує його із системною платою, на якій знаходиться й оперативна пам'ять. Інша шина зв'язує процесор із вторинним кэшем, що знаходиться в одному упакуванні з процесором (для користувача вторинний кэш невіддільний від процесора). Частота FSB довгий час залишалася в межах 66 МГЦ, що забезпечувало пікову пропускну здатність 528 Мбайт/с. Лише зовсім недавно ця частота піднялася до 100 і навіть 133 Мгц. А от тактова частота другої шини пропорційна частоті ядра – або повна частота, або її половина. Пікову пропускну здатність цієї шини можна оцінити, помноживши її тактову частоту на 8 - число байт даних на шині (у нових процесорів Pentіum ІІІ розрядність цієї шини вже 32 байта). Наявність подвійної незалежної шини в Іntel є одним з атрибутів шостого покоління. Системна шина при цьому має протокол, що принципово відрізняється від протоколу шини процесорів Pentіum.
Фірма AMD у своїх процесорах шостого покоління (ДО6) реалізувала "безладне виконання", але подвійну незалежну шину застосовувати не стала. Замість цього була збільшена тактова частота тієї ж шини, який користався Pentіum – дуже ефективної в однопроцесорних конфігураціях. Подвійна шина з'явилася лише в процесорах K6-ІІІ. Завдяки такому рішенню сокет-7 (Super7) пережив цілих два покоління процесорів. По мікроархітектурі (способу реалізації "безладного виконання") процесори ДО6 помітно відрізняються від своїх Іntеl'овских побратимів.
Як п'яте покоління по ходу розвитку було "присмачене" розширенням ММХ (целочисленное), так шосте покоління одержало розширення 3DNow! (AMD) і SSE (Іntel). Однак на відміну від єдиного ММХ, ці два розширення не еквівалентні. У них загальна ідея "потокової" спрямованості і реалізації SІMD для чисел із крапкою, що плаває. Потік у даному контексті має на увазі, що з його даними повинні виконуватися однотипні операції. Крім того, дані, уже минулу обробку, надалі цим обчислювальним процесом використовуватися не будуть і ними не слід засмічувати кэш. Тепер з'явилися інструкції завантаження даних у кэш, а також запису в пам'ять, минаючи кэш. Раніше такого явного керування кэшированием не було.
Сьоме покоління (по AMD) почалося з процесора Athlon. Прирахування його до нового покоління мотивовано розвитком суперскалярности і суперконвейерности, що тепер охопила і блок FPU (у колишніх поколіннях FPU якщо і конвеєризували, те не распараллеливали).
Завершує лінію процесорів ІA-32 від фірми Іntel процесор Wіllamette (на початку 2000 року демонструвався досвідчений зразок з частотою ядра 1,5 ГГЦ). Його мікроархітектура істотно відрізняється від звичної архітектури Р6. Конвеєр цього процесора має 20 ступіней, у той час як у Pentіum ІІІ 12-східчастий целочисленный конвеєр і 17-східчастий FPU. Довгий конвеєр спрощує мікрооперації кожної стадії, що дозволяє підвищувати тактову частоту. Однак при цьому росте затримка проходження інструкції, і, що особливо критично, ростуть утрати часу при помилках у пророкуванні розгалужень. Щоб мінімізувати імовірність цих помилок, у процесорі істотно поліпшені вузли, що відповідають за завантаження конвеєрів, – блок пророкування переходів, буферы мікроінструкцій. Первинний кэш має обсяг 256 Кбайт, і в кэше застосовується упорядочивание інструкцій (щоб інструкція, що випливає за розгалуженням, завжди виявлялася в кэше). Істотно підвищена продуктивність виконавчих блоків целочисленных інструкцій, але в стандартного FPU (не SІMD) продуктивність практично та ж, що й у Pentіum ІІІ (у перерахуванні на еквівалентну тактову частоту). Для чисел із крапкою, що плаває, основний упор зроблений на інструкції SІMD. У процесорі з'явився набір інструкцій SSE2:76 нових інструкцій обробки даних і керування кэшированием. Нові інструкції обробки працюють з числами різних форматів, включаючи учетверенные слова (64 біт) і числа подвійної точності з крапкою, що плаває, (64 біт). Процесор має зовсім нову шину з тактовою частотою 100 МГЦ, але передавальну до чотирьох 64-бітних пакетів за такт (Quad Pumped) – продуктивність до 3,2 Гбайт/с. Ця шина є перехідної до шини процесорів ІA-64. Процесор встановлюється в Socket-462, природно, не сумісний ні з яким з існуючих сьогодні сокетов чи слотов. У 2001 році очікується мобільний варіант Wіllamette – Northwood, а також серверний варіант – Foster.
Фірма Іntel зараз займається 64-розрядною архітектурою – така розрядність дозволить вважати цілі числа з числом розрядів майже до 2 1019. Перший представник 64-розрядних процесорів – Іtanіum, розроблювальний під кодовою назвою Merced. Його архітектура – ІA-64 - забезпечує сумісність з існуючим програмним забезпеченням для використовуваної нині архітектури ІA-32.
Мікропроцесор Іtanіum використовує 10-уровневый конвеєр і може виконати до шести інструкцій за один такт. У новій архітектурі передбачено 128 регістрів для обчислень з коми, що плаває, і стільки ж для цілих чисел, 64 регістра для пророкування переходів і 8 регістрів розгалуження. На кристалі розташовані два блоки обчислень з коми, що плаває, що забезпечують продуктивність до 6 Гфлоп при операціях з одинарною точністю і до 3 Гфлоп – з підвищеною точністю на частоті 1Ггц. Вони істотно прискорюють і обробку графічної ЗD-информации. Уся сверхоперативная пам'ять розділена на три рівні, два з який інтегровані на самому кристалі. Кеш-пам'ять третього рівня, виконана на дискретних мікросхемах SRAM загальним обсягом до 4 Мб, розташовується в картриджі мікропроцесора.