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

1.3 Постановка завдання

  1. Розробити алгоритми організації роботи систем з різними типами підсистем пам’яті .

  2. Написати програму для організації роботи з різними типами підсистем пам’яті.

  3. Провести тестування написаної програми.

  4. На основі проведеного дослідження зробити висновки щодо ефективності того чи іншого виду пам’яті.

1.4 Зміст звіту

  • мета роботи;

  • теоретичні відомості;

  • тексти програм та відповідне програмне відображення;

  • результати обчислень на ЕОМ;

  • висновок.

1.5 Контрольні запитання

  1. Яка пам'ять в ПК є найшвидшою?

  2. В чому полягає принцип тимчасової і просторової локальності програми.

  3. Які способи існують для узгодження вмісту кеш-пам'яті і основної пам'яті?

  4. Перелічіть типи кеш-пам'яті.

  5. Які рішення схемотехніки використовуються для підвищення швидкодії DRAM?

  6. У яких мікросхемах динамічної пам'яті використовується включення деякої кількості статичної пам'яті?

  7. У яких мікросхемах динамічної пам'яті використовується внутрішня конвеєрна архітектура?

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

  9. У яких мікросхемах динамічної пам'яті передача даних відбувається по обох рівнях сигналу системного таймера?

ЛАБОРАТОРНА РОБОТА №2

КОНВЕЄРИЗАЦІЯ. НОВІ МОЖЛИВОСТІ МІКРОПРОЦЕСОРІВ IA-32

    1. Мета роботи

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

Триваліть роботи – 2 години

2.2 Теоретичні відомості

Конвеєризація команд

Істотне підвищення продуктивності МП 80286 в порівнянні з базовою моделлю сімейства стало можливим завдяки впровадженню в архітектуру сімейства IA32 конвеєрної обробки. Конвеєризація дозволяє декільком внутрішнім блокам МП працювати одночасно (таблиця. 2.1), поєднуючи дешифровку команди, операції АЛП, обчислення ефективної адреси і цикли шини декількох команд. У складі МП 80286 є 4 конвеєрних пристрої:

  • BU (Bus Unit) - шинний блок (прочитування з пам'яті і портів ввода/вывода);

  • IU (Instruction Unit) - командний блок (дешифрування команд);

  • EU (Executive Unit) - виконавчий блок (виконання команд);

  • AU (Address Unit) - адресний блок (обчислює всі адреси, формує фізичну адресу).

Таблиця 2.1 - Конвеєризація команд в МП 80286

Мікрооперації

Цикли шини

Вибірка B

команди U

N+1

N+2

N-1

Дешифр. I

команди U

N+1

N+2

N-2

N-1

Форм. адр. A

операнда U

N+1

N+2

N-2

N-1

Вибірка B

операнда U

N+1

N+2

N-2

N-1

Виконання E

команди U

N+1

N-2

N-1

Запис B

результату U

Ідея конвеєризації була розвинена в наступних моделях цього сімейства. У МП Intel-486 реалізований п'ятиступінчастий конвеєр для обробки команд:

  • PF (Prefetch) - передвибірка команд;

  • D1 (Instruction Decode) - декодування команди;

  • D2 (Address Generate) - формування адреси;

  • EX (Execute) - виконання команди в АЛП і доступі до кеш-пам'яті;

  • WB (Write Back) - зворотний запис.

Нова мікроархітектура процесорів Pentium і пізніших базується на ідеї суперскалярної обробки. Під суперскалярностью мається на увазі наявність більш за один конвеєр для обробки команд (на відміну від скалярної - одинконвеєрної архітектури). У МП Pentium команди розподіляються по двох незалежних виконавчих конвеєрах (U і V). Конвеєр U може виконувати будь-які команди сімейства IA-32, включаючи цілочисельні команди і команди з плаваючою крапкою. Конвеєр V призначений для виконання простих цілочисельних команд і деяких команд з плаваючою крапкою. Команди можуть прямувати в кожен з цих пристроїв одночасно, причому при видачі пристроєм управління в одному такті пари команд складніша команда поступає в конвеєр U, а менш складна - в конвеєр V (таблиця. 2.2). Проте, така попарна обробка команд (спаровування) можлива лише для обмеженої підмножини цілочисельних команд. Команди речової арифметики не можуть запускатися в парі з цілочисельними командами. Одночасна видача двох команд можлива лише за відсутності залежностей по регістрах.

Таблиця 2.2 - Конвеєризація команд в МП Pentium

Етапи конвеєрів

Цикли шини

1

2

PF

К1

К3

К5

К7

К2

К4

К6

К8

D1

К1

К3

К5

К7

К2

К4

К6

К8

D2

К1

К3

К5

К7

К2

К4

К6

К8

Продовження таблиці 2.2

1

2

EX

К1

К3

К5

К7

К2

К4

К6

К8

WB

К1

К3

К5

К7

К2

К4

К6

К8

Динамічне (спекулятивне) виконання

Однією з головних особливостей шостого покоління мікропроцесорів архітектури IA32 є динамічного (спекулятивне) виконання. Під цим терміном мається на увазі наступна сукупність можливостей:

  • Глибоке передбачення галужень (з вірогідністю > 90 % можна передбачити 10-15 найближчих переходів).

  • Аналіз потоку даних (на 20-30 кроків вперед проглянути програму і визначити залежність команд за даними або ресурсами).

  • Випереджаючого виконання команд (МП P6 може виконувати команди в порядку, відмінному від їх дотримання в програмі).

Внутрішня організація МП P6 відповідає архітектурі RISC, тому блок вибірки команд, прочитавши потік інструкцій IA-32 з L1 кеша інструкцій, декодує їх в серію мікрооперацій. Потік мікрооперацій потрапляє в буфер переупорядковування (пул інструкцій). У нім містяться як не виконані доки мікрооперації, так і вже виконані, але такі, що ще не вплинули на стан процесора. Для декодування інструкцій призначено три паралельні дешифратори: два для простих і один для складних інструкцій. Кожна інструкція IA-32 декодується в 1-4 мікрооперації. Мікрооперації виконуються п'ятьма паралельними виконавчими пристроями: два для цілочисельної арифметики, два для речової арифметики і блок інтерфейсу з пам'яттю. Таким чином, можливе виконання до п'яти мікрооперацій за такт.

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

Взаємна залежність команд від значення регістрів архітектури IA-32 може вимагати чекання звільнення регістрів. Для вирішення цієї проблеми призначено 40 внутрішніх регістрів загального призначення, використовуваних в реальних обчисленнях.

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