Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VPKS_v2_UKR_new.doc
Скачиваний:
21
Добавлен:
11.09.2019
Размер:
2.31 Mб
Скачать

Процесори pa-risc компанії Hewlett-Packard

Основою розробки сучасних виробів Hewlett-Packard є архітектура PA-RISC. Вона була розроблена компанією в 1986 році й з тих пір пройшла кілька стадій свого розвитку завдяки успіхам інтегральної технології від багатокристального до однокристального виконання. У вересні 1992 року компанія Hewlett-Packard оголосила про створення свого суперскалярного процесора PA-7100, який з тих пір став основою побудови сімейства робочих станцій HP 9000 Series 700 і сімейства бізнесів-серверів HP 9000 Series 800. У цей час є 33-, 50- і 99 Мгц реалізації кристала PA-7100. Крім того випущені модифіковані, поліпшені по багатьом параметрам кристали PA-7100LC з тактовою частотою 64, 80 і 100 Мгц, і PA-7150 з тактовою частотою 125 Мгц, а також PA-7200 з тактовою частотою 90 і 100 Мгц. Компанія активно розробляє процесор наступного покоління HP 8000, який буде працювати з тактовою частотою 200 Мгц і забезпечувати рівень 360 одиниць SPECint92 і 550 одиниць SPECfp92. Поява цього кристала очікується в 1996 році. Крім того, Hewlett-Packard у співробітництві з Intel планують створити новий процесор з дуже довгим командним словом (VLIW-архітектура), що буде сумісний як із сімейством Intel x86, так і сімейством PA-RISC. Випуск цього процесора планується на 1998 рік.

PA 7100

Особливістю архітектури PA-RISC є позакристальна реалізація кеша, що дозволяє реалізувати різні обсяги кеш-пам'яті й оптимізувати конструкцію залежно від умов застосування (Рис.6). Зберігання команд і даних здійснюється в роздільних кешах, причому процесор з'єднується з ними за допомогою високошвидкісних 64-бітових шин. Кеш-пам'ять реалізується на високошвидкісних кристалах статичної пам'яті (SRAM), синхронізація яких здійснюється безпосередньо на тактовій частоті процесора. При тактовій частоті 100 Мгц кожний кеш має смугу пропущення 800 Мбайт/із при виконанні операцій зчитування й 400 Мбайт/із при виконанні операцій запису. Мікропроцесор апаратно підтримує різний обсяг кеш-пам'яті: кеш команд може мати обсяг від 4 Кбайт до 1 Мбайт, кеш даних - від 4 Кбайт до 2 Мбайт. Щоб знизити коефіцієнт промахів застосовується механізм хешування адреси. В обох кешах для підвищення надійності застосовуються додаткові контрольні розряди, причому помилки кеша команд корегуються апаратними засобами.

Рис.6. Блок-схема процесора PA 7100

Процесор приєднується до пам'яті й підсистеми введення/виводу за допомогою синхронної шини. Процесор може працювати із трьома різними відносинами внутрішньої й зовнішньої тактової частоти залежно від частоти зовнішньої шини: 1:1, 3:2 і 2:1. Це дозволяє використовувати в системах різні по швидкості мікросхеми пам'яті.

Конструктивно на кристалі PA-7100 розміщені цілочислений процесор, процесор для обробки чисел із плаваючою крапкою, пристрій керування кешем, уніфікований буфер TLB, пристрій керування, а також ряд інтерфейсних схем. Цілочислений процесор включає АЛП, пристрій зсуву, суматор команд переходу, схеми перевірки кодів умов, схеми обходу, універсальний регістровий файл, регістри керування й регістри адресного конвеєра. Пристрій керування кеш-пам'яттю містить регістри, що забезпечують перезавантаження кеш-пам'яті при виникненні промахів і контроль когерентного стану пам'яті. Цей пристрій містить також адресні регістри сегментів, буфер перетворення адреси TLB і апаратури хешування, що управляє перезавантаженням TLB. До складу процесора плаваючої крапки входять пристрій множення, арифметико-логічний пристрій, пристрій розподілу й добування квадратного кореня, регістровий файл і схеми "закоротки" результату. Інтерфейсні пристрої включають всі необхідні схеми для зв'язку з кеш-пам'яттю команд і даних, а також із шиною даних. Узагальнений буфер TLB містить 120 рядків асоціативної пам'яті фіксованого розміру й 16 рядків змінного розміру.

Пристрій плаваючої крапки (Рис. 7.7) реалізує арифметику з одинарною й подвійною точністю в стандарті IEEE 754. Його пристрій множення використовується також для виконання операцій цілочисленого множення. Пристрої розподілу й обчислення квадратного кореня працюють із подвоєною частотою процесора. Арифметико-логічний пристрій виконує операції додавання, вирахування й перетворення форматів даних. Регістровий файл складається з 28 64-бітових регістрів, кожний з яких може використовуватися як два 32-бітових регістри для виконання операцій із плаваючою крапкою одинарної точності. Регістровий файл має п'ять портів читання й три порти запису, які забезпечують одночасне виконання операцій множення, додавання й завантаження/запису.

Рис. 7. Керування командами плаваючої крапки

Більшість поліпшень продуктивності процесора пов'язана зі збільшенням тактової частоти до 100 Мгц у порівнянні з 66 Мгц у його попередника.

Конвеєр цілочисленого пристрою включає шість сходинок: Читання з кеша команд (IR), Читання операндів (OR), Виконання/Читання з кеша даних (DR), Завершення читання кеша даних (DRC), Запис у регістри (RW) і Запис у кеш даних (DW). На кроці ID виконується вибірка команд. Реалізація механізму видачі двох команд вимагає невеликого буфера попередньої вибірки, що забезпечує попередню вибірку команд за два такти до початку роботи крока IR. Під час виконання на щаблі OR всі виконавчі пристрої декодують поля операндів у команді й починають обчислювати результат операції. На кроці DR цілочислений пристрій завершує свою роботу. Крім того, кеш-пам'ять даних виконує читання, але дані не надходять до моменту завершення роботи кроку DRC. Результати операцій додавання (ADD) і множення (MULTIPLY) також стають достовірними наприкінці кроку DRC. Запис в універсальні регістри й регістри плаваючої крапки відбувається на кроці RW. Запис у кеш даних командами запису (STORE) вимагає двох тактів. Найбільш раннє двотактне вікно команди STORE виникає на кроках RW і DW. Однак це вікно може зрушуватися, оскільки записи в кеш даних відбуваються тільки коли з'являється наступна команда запису. Операції розподілу й обчислення квадратного кореня для чисел із плаваючою крапкою закінчуються на багато тактів пізніше кроку DW.

Конвеєр проектувався з метою максимального збільшення часу, необхідного для виконання читання зовнішніх кристалів SRAM кеш-пам'яті даних. Це дозволяє максимізувати частоту процесора при заданій швидкості SRAM. Всі команди завантаження (LOAD) виконуються за один такт і вимагають тільки одного такту смуги пропущення кеш-пам'яті даних. Оскільки кеши команд і даних розміщені на різних шинах, у конвеєрі відсутні які-небудь втрати, пов'язані з конфліктами по обігах у кеш даних і кеш команд.

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

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

Кількість тактів, необхідні для запису слова або подвійного слова командою STORE зменшена із трьох до двох тактів. У більш ранніх реалізаціях архітектури PA-RISC був необхідний один додатковий такт для читання тегу кеша, щоб гарантувати влучення, а також для того, щоб об'єднати старі дані рядки кеш-пам'яті даних із записуваними даними. PA 7100 використовує окрему шину адресного тегу, щоб сполучити за часом читання тегу із записом даних попередньої команди STORE. Крім того, наявність окремих сигналів дозволу запису для кожного слова рядка кеш-пам'яті усуває необхідність об'єднання старих даних з новими, вступниками при виконанні команд запису слова або подвійного слова. Цей алгоритм вимагає, щоб запис у мікросхеми SRAM відбувалася тільки після того, коли буде визначено, що даний запис супроводжується влученням у кеш і не викликає переривання. Це вимагає додаткового щабля конвеєра між читанням тегу й записом даних. Така конвеєризація не приводить до додаткових втрат тактів, оскільки в процесорі реалізовані спеціальні ланцюги обходу, що дозволяють направити відкладені дані команди запису наступним командам завантаження або командам STORE, що записують тільки частина слова. Для даного процесора втрати конвеєра для команд запису слова або подвійного слова зведені до нуля, якщо безпосередньо наступна команда не є командою завантаження або запису. У противному випадку втрати рівні одному такту. Втрати на запис частини слова можуть становити від нуля до двох тактів. Моделювання показує, що переважна більшість команд запису в дійсності працюють із однослівним або двослівним форматом.

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

Процесор може виконувати паралельно одну цілочислену команду й одну команду із плаваючою крапкою. При цьому "цілочисленими командами" вважаються й команди завантаження і запису регістрів плаваючої крапки, а "команди плаваючої крапки" включають команди FMPYADD і FMPYSUB. Ці останні команди поєднують операцію множення з операціями додавання або вирахування відповідно, які виконуються паралельно. Пікова продуктивність становить 200 MFLOPS для послідовності команд FMPYADD, у яких суміжні команди незалежні по регістрах.

Втрати для операцій плаваючої крапки, що використовують попереднє завантаження операнда командою LOAD, становлять один такт, якщо команди завантаження й плаваючої арифметики є суміжними, і два такти, якщо вони видаються для виконання одночасно. Для команди запису, що використовує результат операції із плаваючою крапкою, втрати відсутні, навіть якщо вони виконуються паралельно.

Втрати, що виникають при промахах у кеші даних, мінімізуються за допомогою застосування чотирьох різних методів: "влучення при промаху" для команд LOAD і STORE, потоковий режим роботи з кешем даних, спеціальне кодування команд запису, що дозволяє уникнути копіювання рядка, у якій відбувся промах, і семафорні операції в кеш-пам'яті. Перша властивість дозволяє під час обробки промаху в кеші даних виконувати будь-які типи інших команд. Для промахів, що виникають при виконанні команди LOAD, обробка наступних команд може тривати доти, поки регістр результату команди LOAD не буде потрібний як регістр операнда для іншої команди. Компілятор може використати цю властивість для попередньої вибірки в кеш необхідних даних задовго до того моменту, коли вони дійсно будуть потрібні. Для промахів, що виникають при виконанні команди STORE, обробка наступних команд завантаження або операцій запису в частині одного слова триває доти, поки не виникає звертань до рядка, у якій відбувся промах. Компілятор може використати цю властивість для виконання команд на тлі запису результатів попередніх обчислень. Під час затримки, пов'язаної з обробкою промаху, інші команди LOAD і STORE, для яких відбувається влучення в кеш даних, можуть виконуватися як і інші команди цілочисленої арифметики й плаваючої крапки. Протягом усього часу обробки промаху команди STORE, інші команди запису в той же рядок кеш-пам'яті можуть відбуватися без додаткових втрат часу. Для кожного слова в рядку кеш-пам'яті процесор має спеціальний індикаційний біт, що запобігає копіюванню з пам'яті тих слів рядка, які були записані командами STORE. Ця можливість застосовується до цілочислених і плаваючих операцій LOAD і STORE.

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

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

Останнє поліпшення керування кешем даних пов'язане з реалізацією семафорних операцій "завантаження з обнулінням" безпосередньо в кеш-пам'яті. Якщо семафорна операція виконується в кеші, то втрати часу при її виконанні не перевищують втрат звичайних операцій запису. Це не тільки скорочує конвеєрні втрати, але й знижує трафік шини пам'яті. В архітектурі PA-RISC 1.1 передбачений також інший тип спеціального кодування команд, що усуває вимогу синхронізації семафорних операцій із пристроями введення/виведення.

Керування кеш-пам'яттю команд дозволяє при промаху продовжити виконання команд відразу ж після надходження відсутньої в кеші команди з пам'яті. 64-бітова магістраль даних, використовувана для заповнення блоків кеша команд, відповідає максимальній смузі пропущення зовнішньої шини пам'яті 400 Мбайт/із при тактовій частоті 100 Мгц.

У процесорі передбачений також ряд мір по мінімізації втрат, пов'язаних з перетвореннями віртуальних адрес у фізичні.

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

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

Процесор підтримує ряд операцій, необхідних для поліпшення графічної продуктивності робочих станцій серії 700: блокові пересилання, Z-буферизацію, інтерполяцію кольорів і команди пересилання даних із плаваючою крапкою для обміну із простором введення/виводу.

Процесор побудований на базі технологічного процесу КМДП із проектними нормами 0.8 мікронів, що забезпечує тактову частоту 100 Мгц.

PA 7200

Процесор PA 7200 має ряд архітектурних удосконалень у порівнянні з PA 7100, головними з яких є додавання другого цілочисленого конвеєра, побудова внутрікристального допоміжного кеша даних і реалізація нового 64-бітового інтерфейсу із шиною пам'яті.

Процесор PA 7200, як і його попередник, забезпечує суперскалярний режим роботи з одночасною видачею до двох команд в одному такті. Всі команди процесора можна розділити на три групи: цілочислені операції, операції завантаження/запису й операції із плаваючою крапкою. PA 7200 здійснює одночасну видачу двох команд, що належать різним групам, або двох цілочислених команд (завдяки наявності другого цілочисленого конвеєра з АЛП й додаткових портів читання й запису в регістровому файлі). Команди переходу виконуються в цілочисленому конвеєрі, причому ці переходи можуть становити пару для одночасної видачі на виконання тільки з попередньою командою.

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

У процесорі PA 7200 реалізований ефективний алгоритм попередньої вибірки команд, добре працюючий і на лінійних ділянках програм.

Як і в PA 7100 у процесорі реалізований інтерфейс із зовнішньою кеш-пам'яттю даних, що працює на тактовій частоті процесора з однотактним часом очікування. Зовнішня кеш-пам'ять даних побудована за принципом прямого відображення. Крім того, для підвищення ефективності на кристалі процесора реалізований невеликий допоміжний кеш ємністю в 64 рядки. Формування, перетворення адреси й звертання до основної й допоміжної кеш-пам'яті даних виконується на двох ступенях конвеєра. Максимальна затримка при виявленні влучення дорівнює одному такту.

Допоміжний внутрішній кеш містить 64 32-байтові рядки. При звертанні до кеш-пам'яті здійснюється перевірка 65 тегів: 64-х тегів допоміжного кеша й одного тегу зовнішнього кеша даних. При виявленні збігу дані направляються в необхідний функціональний пристрій.

При відсутності необхідного рядка в кеш-пам'яті виробляється її завантаження з основної пам'яті. При цьому рядок надходить у допоміжний кеш, що в ряді випадків дозволяє скоротити кількість перезавантажень зовнішньої кеш-пам'яті, організованої за принципом прямого відображення. Архітектурою нового процесора для команд завантаження/запису передбачене кодування спеціальної ознаки локального розміщення даних ("spatial locality only"). При виконанні команд завантаження, позначених цією ознакою, відбувається звичайне заповнення рядка допоміжного кеша. Однак наступний запис рядка здійснюється безпосередньо в основну пам'ять минаючи зовнішній кеш даних, що значно підвищує ефективність роботи з більшими масивами даних, для яких розміру рядка кеш-пам'яті із прямим відображенням виявляється недостатньо.

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

Процесор PA 7200 включає інтерфейс нової 64-бітової мультиплексної системної шини Runway, що реалізує розщеплення транзакцій і підтримку протоколу когерентності пам'яті. Цей інтерфейс включає буфера транзакцій, схеми арбітражу й схеми керування співвідношеннями зовнішніх і внутрішніх тактових частот.

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