Частина тексту файла (без зображень, графіків і формул):
Класифікація залежностей даних. Скасування залежностей даних.
Нехай програма складається з наступних інструкцій:
(початок)...i...k...j...(кінець)
Тоді:
1. RAW (read after write) - читання після запису. Інструкція j намагається прочитати ще не оновлений інструкцією k операнд.
2. WAR (write after read) - запис після читання. Інструкція j намагається записати до регістра
призначення ще до того, як попереднє вмістиме цього регістра прочитає інструкція k.
3. WAW (write after write) -запис після запису. Інструкція j намагається записати результат до регістра призначення ще до того, як цей запис провела інструкція i. В результаті регістр тимчасово отримує некоректне вмістиме, чим може “скористатися” проміжна k-та команда.
4. RAR (read after read) - небезпеки не створює і тому не розглядається.
Означення, класифікацію та перші методи скасування залежності даних (в оригіналі – data hazards) запропонував Роберт Келлер (1975 рік).
Скасування залежностей даних
Відомі наступні типи залежності даних:
1. RAW (read after write) - читання після запису.
2. WAR (write after read) - запис після читання.
3. WAW (write after write) - запис після запису.
4. RAR (read after read) - небезпеки не утворює і тому не розглядається.
Застосовують наступні методи скасування зазначених залежностей:
1. Затримка перед випуском (Stalls before issue) інструкції із сходинки ID (instruction decoding) на сходинку EX (Execute) конвеєра доти, доки залежність даних не вичерпується плином часу.
2. Випереджувальне пересилання результатів з внутрішніх сходинок конвеєра попередньої
інструкції до потрібної сходинки конвеєра наступної інструкції (платня - додаткові апаратні
витрати).
3. Статична диспетчеризація послідовності інструкцій у програмі під час compile-time (час
компіляції) з використанням слоту затриманої інструкції (delay slot).
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!