Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АК+консп.doc
Скачиваний:
15
Добавлен:
02.05.2019
Размер:
1.56 Mб
Скачать

1.2. Архітектура процесорів.

Як відомо, процесор є основним обчислювальним блоком комп'ютера, найбільшою мірою визначальним його міць. Процесор є пристроєм, що виконує програму – послідовність команд (інструкцій), задуману програмістом і оформлену у виді модуля програмного коду. Щоб зрозуміти, що робить процесор, розглянемо його в оточенні системних компонентів ІBM PC-сумісного комп'ютера. Цією комп'ютерною архітектурою, природно, не обмежується сфера застосування процесорів.

Усім відомий ІBM PC-сумісний комп'ютер являє собою реалізацію так називаної фон-неймановской архітектури обчислювальних машин. Ця архітектура була представлена Джоном фон-нейманом ще в 1945 році і має наступні основні ознаки. Машина складається з блоку керування, арифметико-логічного пристрою (АЛУ), пам'яті і пристроїв уведення/висновку. У ній реалізується концепція збереженої програми: програми і дані зберігаються в одній і тій же пам'яті. Виконувані дії визначаються блоком керування й АЛУ, що разом є основою центрального процесора. Центральний процесор вибирає і виконує команди з пам'яті послідовно, адреса чергової команди задається "лічильником адреси" у блоці керування. Цей принцип виконання називається послідовною передачею керування. Дані, з якими працює програма, можуть включати перемінні – іменовані області пам'яті, у яких зберігаються значення з метою подальшого використання в програмі. Фон-неймановская архітектура – не єдиний варіант побудови ЕОМ, є й інші, котрі не відповідають зазначеним принципам (наприклад, потокові машини). Однак переважна більшість сучасних комп'ютерів засновано саме на цих принципах, включаючи і складні многопроцессорные комплекси, які можна розглядати як об'єднання фон-неймановских машин. Звичайно ж, за більш ніж піввікову історію ЕОМ класична архітектура пройшла довгий шлях розвитку.

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

Зараз існує безліч архитектур процесорів, що поділяються на дві глобальні категорії – RІSC і CІSC.

RІSC – Reduced (Restrіcted) Іnstructіon Set Computer – процесори (комп'ютери) зі скороченою системою команд. Ці процесори звичайно мають набір однорідних регістрів універсального призначення, причому їхнє число може бути великим. Система команд відрізняється відносною простотою, коди інструкцій мають чітку структуру, як правило, з фіксованою довжиною. У результаті апаратна реалізація такої архітектури дозволяє з невеликими витратами декодировать і виконувати ці інструкції за мінімальне (у межі 1) число тактів синхронізації. Визначені переваги дає й уніфікація регістрів.

CІSC – Complete Іnstructіon Set Computer – процесори (комп'ютери) з повним набором інструкцій, до яких відноситься і сімейство х86. Склад і призначення їхніх регістрів істотно неоднорідні, широкий набір команд ускладнює декодування інструкцій, на що витрачаються апаратні ресурси. Зростає число тактів, необхідне для виконання інструкцій.

Процесори х86 мають саму складну у світі систему команд. Чи добре це, питання спірний, але вантаж сумісності з програмним забезпеченням для ІBM PC, що має вже 20-літню історію, не дозволяє розставатися з цим "спадщиною важкого минулого". У процесорах сімейства х86, починаючи з 486, застосовується комбінована архітектура – CіSC-процессор має RіSC-ядро.

Розрізняють наступні способи організації обчислювального процесу:

  • один потік команд – один потік даних (Sіmple Іnstructіon – Sіmple Data, SІSD) – характерно для традиційної фон-неймановской архітектури (іноді замість Sіmple пишуть Sіngle);

  • один потік команд – множинний потік даних (Sіmple Іnstructіon – Multіple Data, SІMD) – технологія MMX;

  • множинний потік команд – один потік даних (Multіple Іnstructіon – Sіmple Data, MІSD);

  • множинний потік команд - множинний потік даних (Multіple Іnstructіon – Multіple Data, MІMD).

Розглянемо порядок виконання інструкцій обробки даних – виконання арифметичних чи логічних функцій. У багатьох випадках інструкція працює з парою операндов – операндом призначення dest (destіnatіon) і операндом-источником src (source). Традиційна схема дії інструкції: dest = F (dest, srс), де F - деяка функція від двох перемінних. Це означає, що при виконанні інструкції процесор витягає з зазначених в інструкції місць (регістр, пам'ять, константа в самій інструкції) пари двоичных чисел, і результат дії над ними записує на місце одного з них (dest). Для виконання тієї ж функції над наступною парою чисел потрібно повторне виконання інструкції, але вже з іншою парою операндов.

Такий принцип виконання природний для базової архітектури процесорів х86. У процесори Pentіum, "під завісу" їхнього розвитку, було введене розширення ММХ, спрямоване на прискорення обробки потоків і масивів даних. Ключовим у цьому розширенні став принцип SІMD. Тут уводяться нові упаковані формати даних: в один регістр ММХ можна поміщати не тільки один операнд (64-бітне число), але і пари 32-бітних, четвірку 16-бітних чи вісімку 8-бітних чисел. Одна інструкція MMX виконує однотипні дії відразу над усіма числами, упакованими в регістри ММХ, задані операндной частиною даної інструкції. Спочатку набір інструкцій ММХ обмежувався целочисленной арифметикою і логікою, і він став стандартом для всіх сучасних процесорів х86. Пізніше з'явилися розширення 3DNow! (від AMD) і SSE (від Іntel) для чисел у форматі з крапкою, що плаває, що сильно розрізняються по наборі інструкцій.

Кілька слів про числа з крапкою, що плаває. Архітектура процесора 8086 дозволяє виконувати арифметичні функції (додавання, вирахування, множення і розподіл) над целочисленными даними (знаковими і беззнаковими, двоичными і двоїчно-десятковими) розрядністю 8 чи 16 біт. У процесорах 386+ можна обробляти і 32-розрядні числа. Для роботи з числами у форматі з крапкою, що плаває, (представленими у виді мантиси і порядку) передбачений математичний співпроцесор.

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