- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •2. Надійність і відмовостійкість
- •3. Масштабованість
- •4. Сумісність і мобільність програмного забезпечення
- •5. Класифікація комп'ютерів по галузям застосування Персональні комп'ютери та робочі станції
- •Сервери
- •Мейнфрейми
- •Кластерні архітектури
- •Контрольні запитання
- •Тести tpc
- •2. Тест tpc-a
- •3. Тест tpc-b
- •4. Тест tpc-c
- •5. Майбутні тести tpc
- •2. Архітектура системи команд. Класифікація процесорів (cisc і risc)
- •3. Методи адресації та типи даних Методи адресації
- •4. Типи команд
- •5. Команди керування потоком команд
- •6. Типи й розміри операндів
- •2. Найпростіша організація конвеєра й оцінка його продуктивності
- •3. Структурні конфлікти й способи їхньої мінімізації
- •4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
- •5. Класифікація конфліктів за даними
- •6. Конфлікти за даними, що призводять до призупинки конвеєра
- •7. Методика планування компілятора для усунення конфліктів за даними
- •Контрольні запитання
- •2. Зниження втрат на виконання команд умовного переходу
- •Метод вичікування
- •Метод повернення
- •Затримані переходи
- •3. Статичне прогнозування умовних переходів: використання технології компіляторів
- •2. Обробка багатотактних операцій і механізми обходів у довгих конвеєрах
- •3. Конфлікти й прискорені пересилання в довгих конвеєрах
- •4. Підтримка точних переривань
- •Контрольні запитання
- •2. Паралелізм рівня команд: залежності й конфлікти за даними
- •Залежності
- •3. Паралелізм рівня циклу: концепції та методи
- •4. Основи планування завантаження конвеєра й розгортання циклів
- •Контрольні запитання
- •2. Динамічна оптимізація із централізованою схемою виявлення конфліктів
- •2. Подальше зменшення зупинок по керуванню: буфера цільових адрес переходів
- •Контрольні запитання
- •Процесор з архітектурою 80x86 і Pentium.
- •Особливості процесорів з архітектурою spark компанії Sun Microsystems.
- •Процесори pa-risc компанії Newlett-Packard
- •2.Особливості процесорів з архітектурою sparc компанії Sun Microsystems
- •Процесори pa-risc компанії Hewlett-Packard
- •Контрольні запитання
- •Процесор mc88110 компанії Motorola.
- •Особливості архітектури mips компанії mips Technology.
- •Особливості архітектури Alpha компанії dec.
- •Особливості архітектури power компанії ibm і power pc компанії Motorola, Apple і ibm.
- •2.Особливості архітектури mips компанії mips Technology
- •3.Особливості архітектури Alpha компанії dec
- •4.Особливості архітектури power компанії ibm і PowerPc компаній Motorola, Apple і ibm
- •Архітектура power
- •Еволюція архітектури power у напрямку архітектури PowerPc
- •Процесор PowerPc 603
- •Контрольні запитання
- •Термінологія в області паралельної обробки .
- •Питання створення програмного забезпечення.
- •Ахітектура паралельної обробки.
- •2.Питання створення програмного забезпечення.
- •1) Язикові розширення.
- •2) Розширення компіляторів.
- •3) Додавання нового язикового рівня.
- •4) Нова мова.
- •3.Архітектура паралельної обробки.
- •4.Елементи теорії конкурентних процесів. Події та процеси
- •Особливості мов конкурентного програмування
- •Моделі конкурентних процесів
- •Взаємодія процесів, синхронізація й передача даних
- •2. Внутрішня архітектура трансп’ютера
- •3. Послідовна обробка
- •Регістри трансп’ютера
- •4. Інструкції
- •Безпосередні функції
- •Непрямі функції
- •Ефективність кодування
- •5. Підтримка паралелізму
- •6. Зв'язок
- •Лінії зв'язку
- •7. Таймер
- •8. Альтернативне виконання
- •9. Інструкції із плаваючою крапкою
- •Контрольні запитання
- •2. Найпростіші процеси-примітиви
- •3. Послідовні процеси-композиції
- •4. Паралельні процеси
- •5. Канали зв'язку
- •6. Конструктор альтернативного процесу
- •7. Описи
- •8. Масиви
- •9. Оголошення процесів
- •10. Цикли і масиви процесів
- •Контрольні запитання
- •2. Структури програмування
- •Прості паралельні процеси
- •Синхронізація за допомогою керуючих сигналів
- •3. Мовні засоби для програмування в реальному масштабі часу
- •4. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
3. Методи адресації та типи даних Методи адресації
У машинах з регістрами загального призначення метод (або режим) адресації об'єктів, з якими маніпулює команда, може задавати константу, регістр або комірку пам'яті. Для звертання до комірки пам'яті процесор насамперед повинен обчислити дійсну або ефективну адресу пам'яті, що визначається заданим у команді методом адресації.
На рис.1 представлені всі основні методи адресації операндів, які реалізовані в комп'ютерах, розглянутих у дійсному огляді. Адресація безпосередніх даних і літеральних констант звичайно розглядається як один з методів адресації пам'яті (хоча значення даних, до яких у цьому випадку виробляються обіги, є частиною самої команди й обробляються в загальному потоці команд). Адресація регістрів, як правило, розглядається окремо. У даному розділі методи адресації, зв'язані з лічильником команд (адресація щодо лічильника команд) розглядаються окремо. Цей вид адресації використається головним чином для визначення програмних адрес у командах передачі керування.
На малюнку на прикладі команди додавання (Add) наведені найбільш уживані назви методів адресації, хоча при описі архітектури в документації різні виробники використають різні назви для цих методів. На цьому малюнку знак "(" використається для позначення оператора присвоювання, а буква М позначає пам'ять (Memory). Таким чином, M[R1] позначає вміст комірки пам'яті, адреса якої визначається вмістом регістра R1.
Використання складних методів адресації дозволяє істотно скоротити кількість команд у програмі, але при цьому значно збільшується складність апаратур. Виникає питання, а як часто ці методи адресації використовуються в реальних програмах? На рис. 2 представлені результати вимірів частоти використання різних методів адресації на прикладі трьох популярних програм (компілятора з мови Сі GCC, текстового редактора Te і САПР Spice), виконаних на комп'ютері VAX.
Метод адресації |
Приклад команди |
Зміст команди методаИспользование |
Регістрова |
Add R4,R3 |
R4(R4+R5Необхідне значення в регістрі |
Безпосередня або літеральна |
Add R4,#3 |
R4(R4+3 Для завдання констант |
Базова зі зсувом |
Add R4,100(R1) |
R4(R4+M[100+R1]Для звертання до локальним змінних |
Непряма регістрова |
Add R4,(R1) |
R4(R4+M[R1]Для обігу по покажчику або обчисленій адресі |
Індексна |
Add R3,(R1+R2) |
R3(R3+M[R1+R2]Іноді корисна при роботі з масивами: R1 - база, R3 - індекс |
Пряма або абсолютна |
Add R1,(1000) |
R1(R1+M[1000]Іноді корисна для звертання до статичних даних |
Непряма |
Add R1,@(R3) |
R1(R1+M[M[R3]]Якщо R3-адреса покажчика p, те вибирається значення по цьому покажчику |
Автоінкрементна |
Add R1,(R2)+ |
R1(R1+M[R2] R2(R2+d Корисна для проходу в циклі по масиву із кроком: R2 - початок масиву В кожному циклі R2 одержує збільшення d |
Автодекрементна |
Add R1,(R2)- |
R2(R2-d R1(R1+M[R2]Аналогічна попередньої Обидві можуть використовуватися для реалізації стека |
Базова індексна зі зсувом і масштабуванням |
Add R1,100(R2)[R3] |
R1( R1+M[100]+R2+R3*d Для індексації масивів |
Рис. 1. Методи адресації
Рис. 2 Частота використання різних методів адресації на програмах Te, Spice, GCC
Із цього малюнка видно, що безпосередня адресація й базова зі зсувом домінують.
При цьому основне питання, що виникає для методу базової адресації зі зсувом, пов'язаний з довжиною (розрядністю) зсуву. Вибір довжини зсуву в остаточному підсумку визначає довжину команди. Результати вимірів показали, що в переважній більшості випадків довжина зсуву не перевищує16 розрядів.
Це ж питання важливе й для безпосередньої адресації. Безпосередня адресація використовується при виконанні арифметичних операцій, операцій порівняння, а також для завантаження констант у регістри. Результати аналізу статистики показують, що в багатьох випадках 16 розрядів виявляється цілком достатньо (хоча для обчислення адрес набагато рідше використовуються й більше довгі константи).
Важливим питанням побудови будь-якої системи команд є оптимальне кодування команд. Воно визначається кількістю регістрів і застосовуваних методів адресації, а також складністю апаратури, необхідної для декодування. Саме тому в сучасних RISC-архітектурах використовуються досить прості методи адресації, що дозволяють різко спростити декодування команд. Більш складні й рідко, що зустрічаються в реальних програмах методи, адресації реалізуються за допомогою додаткових команд, що загалом кажучи приводить до збільшення розміру програмного коду. Однак таке збільшення довжини програми з лишком окупається можливістю простого збільшення тактової частоти RISC-процесорів. Цей процес ми можемо спостерігати сьогодні, коли максимальні тактові частоти практично всіх RISC-процесорів (Alpha, R4400, Hyper SPARC і Power2) перевищують тактову частоту, досягнуту процесором Pentium.