Принципи конвеєрної технології
Вплив ММХ-команд на контекст FPU
Таблиця 4.1
Мал. 4.6.
Технологія ММХ полягає в відображенні регістрів ММХ на регістри FPU (див. рис. 4.6). Здебільшого це зроблено для збереження з існуючим програмним забезпеченням.
З рис. 4.6. видно, що ММХ-регістри відображені на поля мантиси у FPU-регістрах. Значення, що записується в ММХ-реєстр, автоматично з'являється у молодших бітах (біти 63-0) відповідних FPU-регістрів. У цьому порядку порядку (біти 78-64) і знаковий біт (біт 79) заносяться одиниці. Значення поля TOS (Top Of Stack) встановлюється нанівець після виконання кожної ММХ-команди. Значення мантиси, що записується у FPU-реєстр за допомогою FPU-команди, автоматично з'являється у відповідному ММХ-реєстрі.
Відображення ММХ-регістрів фіксоване і залежить від значення поля TOS (біти 11-13 в регістрі стану FPU). У позначенні MMn, n - вказує на фізичний номер регістру, а STn - n вказує на відносний номер регістру (щодо поля TOS).
При TOS=0: ММ0 відображається ST0, ММ1 - ST1 і т.д.
При TOS=2: ММ0 відображається ST6, ММ1 - ST6, ММ2 - ST0 і т.д.
Після виконання будь-якої ММХ-команди (крім EMMS) значення всіх полів регістру тегів встановлюється 00. Команда EMMS встановлює значення всіх полів регістра тегів 11 (див. табл.4.1.). Значення регістру тегів не впливає на ММХ-регістри чи виконання ММХ-команд.
Так як ММХ і FPU використовують фактично і ті ж регістри, для збереження та відновлення контексту ММХ використовуються команди FSAVE (Store FP state) та FRSTOR (Restore FP state). Якщо при спробі виконати ММХ-команду біт TS в регістрі CR0 встановлений в одиницю, генерується виняток Int7. Завдяки цьому фактузабезпечується прозорість керування контекстом MMX для операційної системи.
| Тип команди | Реєстр тегів | Поле TOS | Інші регістри | Поле порядку та знаковий біт ММn (79…64) | Поле мантиси ММn (63…00) |
| Читання з ММХ-регістру | Усі поля 00 | Не змінюється | Не змінюється | Не змінюється | |
| Запис із ММХ- регістру | Усі поля 00 | Не змінюється | Заповнюється одиницями | Листується | |
| EMMS | Усі поля 11 | Не змінюються | Не змінюється | Не змінюється |
Розробники архітектури комп'ютерів здавна вдавалися до методів проектування, відомих під загальною назвою "суміщення операцій", при якому апаратура комп'ютера у будь-який момент часу виконує одночасно більше однієї базової операції. Цей загальний метод включає два поняття: паралелізм та конвеєризацію. Хоча в них багато спільного та їх часто важко розрізняти на практиці, ці терміни відображають два абсолютно різні підходи. При паралелізмі поєднання операцій досягається шляхом відтворення кількох копіях апаратної структури. Висока продуктивність досягається з допомогою одночасної роботи всіх елементів структур, здійснюють рішення різних частин завдання.
Конвеєризація(абоконвеєрна обробка) у загальному випадку заснована на поділі підлягає виконанню функції на більш дрібні частини, звані ступенями, і виділення для кожної з них окремого блоку апаратури. Так обробку будь-якої машинної команди можна розділити на кілька етапів (кілька ступенів), організувавши передачу даних від одного етапу до наступного. При цьому конвеєрну обробку можна використовувати для поєднання етапіввиконання різних команд. Продуктивність при цьому зростає завдяки тому, що одночасно на різних щаблях конвеєра виконуються кілька команд. Конвеєрна обробка такого роду широко застосовується у всіх сучасних швидкодіючих процесорах.
Виконання типової команди можна поділити на такі етапи:
2. Декодування команди / вибірка операндів з регістрів – ID;
4. Звернення до пам'яті – MEM;
5. Запам'ятовування результату – WB.
Роботу конвеєра можна умовно подати у вигляді зрушених у часі схем процесора (рис. 4.7). Цей малюнок добре відбиває поєднання у часі виконання різних етапів команд.
Однак частіше для представлення роботи конвеєра використовуються часові діаграми (табл. 4.2), на яких зазвичай зображуються команди, номери тактів і етапи виконання команд.
Конвеєризація збільшує пропускну спроможність процесора (кількість команд, що завершуються в одиницю часу), але вона не скорочує час виконання окремої команди. Насправді вона навіть дещо збільшує час виконання кожної команди через накладні витрати, пов'язані з управлінням реєстровими станціями. Однак збільшення пропускної спроможності означає, що програма буде виконуватися швидше, ніж проста неконвеєрна схема.
Той факт, що час виконання кожної команди конвеєра не зменшується, накладає деякі обмеження на практичну довжину конвеєра. Крім обмежень, пов'язаних із затримкою конвеєра, є також обмеження, що виникають внаслідок незбалансованості затримки на кожному його ступені та через накладні витрати на конвеєризацію. Частота синхронізації не може бути вищою, а, отже, такт синхронізації не може бути меншим, ніжчас, необхідний роботи найбільш повільної щаблі конвеєра. Накладні витрати на організацію конвеєра виникають через затримку сигналів у конвеєрних регістрах (засувках) та через перекоси сигналів синхронізації. Конвеєрні регістри до тривалості такту додають час встановлення та затримку поширення сигналів. У граничному випадку тривалість такту можна зменшити до суми накладних витрат та перекосу сигналів синхронізації, проте при цьому в такті не залишиться часу для виконання корисної роботи з перетворення інформації.
Конвеєризація ефективна лише тоді, коли завантаження конвеєра близьке до повного, а швидкість подачі нових команд та операндів відповідає максимальній продуктивності конвеєра. Якщо відбудеться затримка, паралельно буде виконуватися менше операцій і сумарна продуктивність знизиться. Такі затримки можуть виникати внаслідок конфліктних ситуацій.