Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Принципи організації паралелізму виконання машинних команд в процесорах

Реферат Принципи організації паралелізму виконання машинних команд в процесорах





ім операційних полів, кожне з яких виконує традиційну трехоперандную інструкцію (<оп.> <рег. джерело> <рег. одержувач>). Кожне операційне поле може безпосередньо керувати специфічним функціональним блоком при мінімальному декодуванні. p> Апаратна реалізація VLIW-процесора дуже проста: кілька невеликих функціональних модулів (складання, множення, розгалуження і т.д.), підключених до шини процесора, і кілька регістрів і блоків кеш-пам'яті. VLIW-архітектура становить інтерес для напівпровідникової промисловості по двох причин. Перша причина - тепер на кристалі більше місця може бути відведено для блоків обробки, а не, скажімо, для блоку передбачення переходів. Друга причина - VLIW-процесор може бути високошвидкісним, так як гранична швидкість обробки визначається тільки внутрішніми особливостями самих функціональних модулів. p> VLIW вилучає мікрокод з процесора і переносить його в компілятор, в результаті чого емуляція інструкцій процесора 8086, таких, як STOS, здійснюється дуже ефективно, оскільки процесор отримує для виконання вже готові макроси. Але разом з тим це породжує і деякі труднощі, адже написання микрокода - неймовірно трудомісткий і тривалий процес. Архітектурі VLIW може забезпечити життєздатність тільки "Розумний" компілятор, який візьме цю роботу на себе. Саме це обмежує використання обчислювальних машин з архітектурою VLIW: поки вона знайшла своє застосування тільки у векторних (для наукових розрахунків) і сигнальних процесорах. <В 

4.3 Принцип дії VLIW-компілятора


Знову спалахнула в останній час інтерес до VLIW, як до архітектурі, яку можна використовувати для реалізації обчислень загального призначення, дав істотний поштовх розвитку техніки компіляції для VLIW. VLIW-компілятор упаковує групи незалежних операцій в дуже довгі слова інструкцій таким способом, щоб забезпечити ефективне їх виконання функціональними модулями за один машинний такт. Компілятор спочатку виявляє всі залежності між даними, а потім визначає, як їх розв'язати. Найчастіше це робиться шляхом переупорядочивания всієї програми, різні її блоки переміщуються з одного місця в інше. Цей підхід відрізняється від застосовуваного в суперскалярное процесорі, який для визначення залежностей використовує спеціальне апаратне рішення прямо під час виконання програми (Оптимізують компілятори, безумовно, покращують роботу суперскалярного процесора, але не роблять його "прив'язаним" до них). Більшість суперскалярних процесорів може виявити залежності і планувати паралельне виконання тільки всередині базових програмних блоків (група послідовних операторів програми, які містять всередині себе зупину або логічного розгалуження, допустимих тільки в кінці). p> Для забезпечення більшого паралелізму VLIW-комп'ютери повинні спостерігати за операціями з різних базових блоків, щоб помістити ці операції в одну і ту ж довгу інструкцію, їх "область огляду" повинна бути ширше, ніж у суперскалярних процесорів. Це забезпечується шляхом прокладки "Маршруту" по всій програмі (трасування). Трасування - найбільш оптимальний для деякого набору вихідних даних маршрут за програмою для забезпечення правильного результату, гарантує неперетинання цих даних. Те є маршрут, який "проходить" дільницями, придатним для паралельного виконання (ці ділянки формуються, крім усього іншого, й шляхом перенесення коду з інших місць програми), після чого залишається упакувати ці ділянки в довгі інструкції і передати на виконання. Планувальник обчислень здійснює оптимізацію на рівні всієї програми, а не її окремих базових блоків. Для VLIW, так само, як і для RISC, розгалуження в програмі є "Ворогом", що перешкоджає ефективному її виконання: типовий програмний код (той що не використовується в наукових розрахунках) містить близько шести розгалужень на інструкцію. У той час як RISC для прогнозування розгалужень використовує апаратне рішення, VLIW залишає це за компілятором. Компілятор використовує інформацію, зібрану ним шляхом профілювання програми, хоча у майбутніх VLIW-процесорів передбачається невелике апаратне розширення, забезпечує збір для компілятора статистичної інформації безпосередньо під час виконання програми. Компілятор прогнозує найбільш підходящий маршрут і планує його проходження, розглядаючи його як один великий базовий блок, а потім повторює цей процес для всіх інших виникли після цього програмних гілок, і так до самого кінця програми. Він також вміє робити при аналізі коду та інші "розумні кроки", такі, як розгортання програмного циклу і IF-перетворення, в процесі якого тимчасово видаляються всі логічні переходи з секції, що піддається трасуванні. Там, де RISC може тільки переглянути код вперед на предмет розгалужень, VLIW-компілятор переміщує його з одного місця в інше до виявленого розгалуження (згідно трасуванні), але передбачає при необхідності можливість відкату назад, до попереднього програмному станом. Відповідне апаратне забезпечення, доданий до VLIW-процесору, чи може надати певну підтримку компілят...


Назад | сторінка 13 з 23 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Штучний інтелект: чи може машина бути розумною?
  • Реферат на тему: Чого нас може навчити йога?
  • Реферат на тему: Чого не може пояснити сучасна теорія еволюції
  • Реферат на тему: Виконання розрахунків за допомогою табличного процесора Microsoft Excel
  • Реферат на тему: Розробка програми для виконання обробки двомірних масивів