Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 11.doc
Скачиваний:
10
Добавлен:
11.02.2016
Размер:
2.73 Mб
Скачать

Структурна схема мп Pentium 4

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

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

Рис.5.7

5.6. Кэш-память процессора

КЕШ-пам'ять є буфером між оперативною RAM-пам’яттю і процесором. Розрізняють декілька видів такої пам'яті: першого рівня (L-1), другого рівня (L-2) та іноді третього(L-3). Пам'ять рівня L-1 вмонтована в процесор і працює на частоті процесора. Її об’єм в більшості комп’ютерів 8-64 Кбайта. Пам'ять другого і третього рівнів може знаходитись на системній платі і працювати на частоті системної шини. Об’єм такої памьяти здебільшого дорівнює 128-1024Кбайт. В деяких процесорах КЕШ другого рівня також вмонтована в корпус процесора і працює на частотах вищих ніж частоти системної шини.

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

У всіх процесорах, починаючи з 486-го, є вбудований (першого рівня) кеш-контроллер з кеш-пам'яттю об'ємом 8 Кбайт в процесорах 486DX, а також 32, 64 Кбайт і більш в сучасних моделях. Кеш — це швидкодійна пам'ять, призначена для тимчасового зберігання програмного коду і даних. Звернення до вбудованої кеш-пам'яті відбуваються без станів очікування, оскільки її швидкодія відповідає можливостям процесора, тобто кеш-пам'ять першого рівня працює на частоті процесора.

У сучасних процесорах вбудований кеш виконує ще важливішу роль, тому що він часто є єдиним типом пам'яті у всій системі, який може працювати синхронно з процесором. У більшості сучасних процесорів використовується множник тактової частоти, отже, вони працюють на частоті, у декілька разів перевищуючої тактову частоту системної платі, до якої вони підключені. Наприклад, тактова частота (1 ГГц), на якій працює процесор Pentium ІІІ, в сім з половиною разів перевищує тактову частоту системної платі, рівну 133 Мгц. Оскільки оперативна пам'ять підключена до системної платі, вона також може працювати тільки на тактовій частоті, що не перевищує 133 Мгц. У такій системі зі всіх видів пам'яті тільки вбудований кеш може працювати на тактовій частоті 1 ГГц. Розглянутий в даному прикладі процесор Pentium Ш на 1 ГГц має вбудований кеш загальним об'ємом 32 Кбайт (у двох окремих блоках по 16 Кбайт).

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

.

Кэш-память первого уровня большей части процессоров Intel имеет коэффициент совпадения, равный примерно 90%. Это означает, что кэш-память содержит корректные данные 90% времени, а следовательно процессор работает на полной скорости (в данном случае с частотой 233 МГц) примерно 90% всего времени. Оставшиеся 10% времени кэш_контроллер обращается к более медленной основной памяти, во время чего процессор находится в состоянии ожидания. Фактически происходит снижение быстродействия системы до уровня оперативной памяти, скорость которой равна 60 нс, или 16 МГц.

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

Коефіцієнт збігу кеш-пам'яті як першого, так і другого рівнів складає 90%. Таким чином, розглядаючи систему в цілому, можна сказати, що 90% часу вона працює з повною тактовою частотою (у нашому прикладі 233 Мгц), одержуючи дані з кеш-пам'яті першого рівня; 10% часу дані витягуються з кеш-пам'яті другого рівня. Процесор працює з кеш-пам'яттю другого рівня тільки 90 % цього часу, що залишилися від 10% через промахи кеша першого рівня. Таким чином, об'єднуючи кеш-пам’ять першого і другого рівнів, одержуємо, що звична система працює з частотою процесора 90% часу (у нашому випадку 233 Мгц), з частотою системної платі 9% часу (тобто 90% від 10% при частоті 66 Мгц) і з тактовою частотою основної пам'яті приблизно 1% часу (10% від 10% при частоті 16 Мгц). Це наочно демонструє важливість кеш-пам’яті першого і другого рівнів; за відсутності кеш-пам'яті система часто звертається до ОЗУ, швидкість якого значно нижче за швидкість процесора.

Якісний стрибок в технології відбувся з появою процесорів Celeron 300A і вище. У цих процесорах зовнішні мікросхеми кеш-пам'яті другого рівня не використовуються. Натомість кеш-пам'ять як першого, так і другого рівнів інтегрована безпосередньо в ядро процесора. Таким чином, кеш-пам'ять обох рівнів працює з повною тактовою частотою процесора, що дозволяє підвищувати її швидкодію при можливому збільшенні швидкості процесора. У останніх моделях Pentium Ш, а також у всіх процесорах Хеоп і Celeron кеш-пам'ять другого рівня як і раніше працює з тактовою частотою ядра процесора, а значить, при невдалому обігу в кеш-пам'ять першого рівня очікування або уповільнення операцій не відбувається.

Параметри кеш-пам'яті другого рівня сучасних процесорів

Процесор

Частота, Мгц

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

Тип кеш-пам'яті

Робоча частота

Pentium Pro

150-200

256 Кбайт-1 Мбайт

Зовнішній

Частота ядра

К6-3

350-450

256 Кбайт

На пластині

Частота ядра

Duron

550-700+

64 Кбайт

На пластині

Частота ядра

Celeron

300-600+

128 Кбайт

На пластині

Частота ядра

Pentium II Хеоп

400-450

512Кбайт-2Мбайт

Зовнішній

Частота ядра

Athlon

650-1 000+

256 Кбайт

На пластині

Частота ядра

Pentium III

500-1 000+

256 Кбайт

На пластині

Частота ядра

Pentium III Xeon

500-1 000+

256 Кбайт-2 Мбайт

На пластині

Частота ядра

Pentium 4

1300-2000

256 Кбайт

На пластині

Частота ядра

Xeon

1400-2000

256 Кбайт-1 Мбайт

На пластині

Частота ядра

Поскольку в кэше невозможно одновременно хранить копии данных из всех адресных областей, необходим такой метод определения адресов, данные которых скопированы в кэш, чтобы необходимые данные считывались непосредственно из кэша, а не из основной оперативной памяти. Для этого применяется ОЗУ тегов — дополнительная область памяти кэша, в которой содержится индекс адресов, скопированных в кэш. Каждая строка памяти кэша имеет соответствующий адресный тег, который хранит адрес данных основной памяти, скопированных в текущий момент времени в отдельную строку кэша. Для получения данных с конкретного адреса основной памяти кэш_контроллер просматривает содержимое ОЗУ тегов, чтобы определить наличие адреса, содержащегося в кэше (совпадение), или его отсутствие (промах). Обнаруженные данные могут быть эффективно считаны из кэша; в противном случае процессор считывает данные из гораздо более медленной оперативной памяти.Работа кэша зависит от методов упорядочения или отображения тегов.

. 5.6 Уровень архитектуры набора команд

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

Для того, щоб на комп’ютері можливо було ставити програми, написані на різних мовах, більшість розробників вважають найкращим шляхом трансляцію програми, написаної на мові високого рівня в загальну для всіх мав проміжку фору – рівень архітектури команд даної машини (Рис.5.8 ). Цей процес називається компіляцією.

.

Рис. 5.8

Головні вимоги до набору команд машини такі:

  • скорочення прикладних програм

  • швидкодія програмного забезпечення

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

  • набір команд повинен надавати максимальну зручність для створення компіляторів (регулярність та повнота варіантів).

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

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

Класичні (перші) моделі пам’яті являли собою лінійну послідовність байтів. В сучасних машинах байти групуються в слова по 4 (32-розрядні) або по 8 (64-розрядні) байтів. Наприклад в Pentium-4 слова в пам’яті містять 4 байта. Якщо необхідно звертатися до окремого байту (вони нумеруються починаючи з молодших розрядів), то на рівні регістрів загального призначення існує поле з трьох розрядів для вибору конкретного байту.

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

В усіх машинах існує досить велика кількість регістрів (16-32) загального і спеціального призначення. Всі ці регістри доступні на рівні мікро архітектури і частково на рівні архітектури команд. В останньому випадку вони дозволяють контролювати виконання програм і зберігати тимчасові результати. До таких регістрів спеціального призначення відносяться, наприклад, лічильник команд та вказівник стека. Функція регістрів спеціального призначення полягає в тому, щоб забезпечити швидкий доступ до інформації, яка часто використовується (без звертання до оперативної пам’яті).

Головною особливістю рівня архітектури команд є сам набір команд. Вони управляють всіма процесами в машині. В цьому наборі завжди в той чи іншій формі присутні команди типу LOAD і STORE призначені для переміщення даних між пам’яттю і регістрами і команд, MOVE, що служить для копіювання даних з одного регістра в другий. Обов’язково присутні команди арифметичні і логічні, команди порівняння даних, а також команди переходу в залежності від результатів. В Pentium 4 всього біля 250 команд і їх модифікацій.

Pentium 4 розвивався на протязі багатьох років. Його історія починається з самих перших мікропроцесорів. Основна архітектура команд забезпечує виконання програм, написаних ще для процесорів 8086 і 8088. Pentium 4 може працювати в реальному режимі процесора 8086, а також в повній якості – в режимі Pentium 4.

С точки зрения архитектуры команд все микропроцессоры можно разделить на группы:

    1. микропроцессоры типа CISC с полным набором системы команд;

    2. микропроцессоры типа RISC с усеченным набором системы команд;

    3. микропроцессоры типа VLIW со сверхбольшим командным словом;

    4. микропроцессоры типа MISC с минимальным набором системы команд и весьма высоким быстродействием и др.

Суперскалярні процесори зазвичай асоціюються з RISC-архітектурами (Reduced Instruction Set Computers – спрощена система команд). Це спрощена система потужних команд (приблизно 50), які керують машинними словами великої довжини (не менше 64 біта).Враховуючи велику КЕШ-пам'ять RISC-процесори забезпечують багатократне підвищення швидкодії і використовуються в потужних комп’ютерах – серверах.

Reduced Instruction Set Computer — вычисления, построенные на основе упрощённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации.

Упрощение набора команд призвано сократить конвейер, что позволяет избежать задержек на операциях условных и безусловных переходов. Однородный набор регистров упрощает работу компилятора при оптимизации исполняемого программного кода. Кроме того, RISC-процессоры отличаются меньшим энергопотреблением и тепловыделением.

Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC

Мікропроцесори для персональних комп’ютерів відносяться до СISC-архітектур (Complex Instruction Set Computers – з повною системою команд, до 250 одиниць).

Complex Instruction Set Computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации (МОП'ы), исполняемые RISC-ядром).

VLIM – процессоры (Very Long Instruction Word )— сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора.. Ключевым отличием от суперскалярных CISC-процессоров является то, что для них загрузкой исполнительных устройств занимается часть процессора (планировщик), на что отводится достаточно малое время, в то время как загрузкой вычислительных устройств для VLIW-процессора занимается компилятор, на что отводится существенно больше времени (качество загрузки и, соответственно, производительность теоретически должны быть выше). Примером VLIW-процессора является Intel Itanium.

MISC – процессоры (Minimum Instruction Set Computer)— вычисления с минимальным набором команд. Дальнейшее развитие RISC архитектуры.. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд).

В архітектурі ММХ (мультимедійне розширення) додано 57 спеціальних команд для ефективної обробки відео, звукових і графічних даних. Ці команди часто зустрічаються при роботі з мультимедійними програмами. 8 января 1997 года - корпорация Intel анонсировала процессор Pentium с технологией MMX - первый микропроцессор, в котором реализована разработанная Intel новая технология, позволяющая повысить эффективность приложений, работающих с различными видами информации (видео, аудио и т.п.).

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

Рис.5.9

При виборі формату команд треба взяти до уваги ряд факторів. Перш за все має велике значення можливість додавати нові команди і другі елементи на

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

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

Однозначного рішення тут немає. Першим шляхом (побайтна адресація) пішли розробники машини Burroughs 1700, другим шляхом розробники машини

Cyber (фірма CDC), в якій пам'ять містить 60-розрядні слова.

Більшість сучасних обчислювальних машин (в тому числі Pentium 4) прийшли до компромісу: вони вимагають, щоб адреси були у окремих байтів і в той самий час при звертанні до пам’яті зчитують інформацію у вигляді одного, двох, а іноді чотирьох слів.

Формати команд процесора Pentium 4 не можуть служити класичним прикладом, вони дуже складні і обтяжені різними вимушеними доробками за всю історію розвитку Intel- процесорів.

5.7. Типы машинних команд.

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

Команди переміщення даних – одні з самих розповсюджених. Термін “переміщення” в комп’ютерах дещо відрізняються від звичайного побутового поняття. Команди переміщення даних краще було б назвати дублюванням, бо дані з комірки А переписуються в комірку В, але оригінал залишається і в А. Існують команди переміщення даних різного обсягу – від одного біта до всієї пам’яті.

Бінарні операції – це такі операції, які отримують результат на основі значення двох операндів. Це перш за все всі арифметичні операції. В наступну групу входять булеві команди, основні з яких “І”, “АБО”, “НЕ”. Важливим використанням цих операцій є виділення бітів із слів, та запис бітів в слово.

Унарні операції – це операції над одним операндом, наприклад зсув коду, циклічний зсув, інверсія коду.

Операції порівняння і умовні переходи.

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

Команди виклику процедур.

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

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

Команди введення-виведення.

В сучасних персональних комп’ютерах використовується три різні схеми введення-виведення:

  • програмоване введення-виведення;

  • введення-виведення з управління за перериванням;

  • введення-виведення з прямим доступом до пам’яті;

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

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

Рішення проблеми лежить в використанні контролера прямого доступу до пам’яті (ПДП), Рис5.11), який бере її на себе.

Рис.5.11

Мікросхема ПДП має в своєму складі мінімум 4 регістра, які завантажуються з центрального процесора. Перший регістр містить адресу пам’яті яку треба зчитати, або записати. Другий регістр містить кількість байтів, що треба передати. Третій – номер пристрою введення-виведення і адресу в адресному просторі пристрою введення-виведення. Четвертий регістр повідомляє, повинні дані зчитуватися чи записуватися. На рис 8.8 відображена ситуація, коли треба передати (1) на дисплей (4) блок з 32 байтів, починаючи з адреси 100.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]