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

1.3.6 Вікно статистики (Statistics window)

Лишилося розглянути останнє вікно обчислення статистик програм, що симулюються. Дозволимо програмі завершити виконання натиском клавіші F5. Побачимо повідомлення "Trap #0 occurred" (OK), що свідчить про завершення виконання програми з останньою інструкцією trap 0, яка виконалася в режимі симуляції. Пастка (Trap) з номером 0 не є визначеною. Її застосовують, аби припинити виконання будь-якої програми. Зачинемо усі вікна і відчинемо вікно Statistics.

Цим вікном надано інформацію про найбільш важливі архітектурні аспекти нашої програми. Іншими словами, все симулюється заради формування вмістимого вікна статистки, де головним є число тактових імпульсів, витрачених на виконання (симулювання) програми. У вікні вказано число використаних циклів (тактових інтервалів) на виконання програми (менше циклів - менший час на виконання, значить, більша продуктивність), конфігурацію апаратної частини, пригальмування (stalls, інакше, втрати циклів)) і причини виникнення пригальмувань, питому вагу тяжких, як для конвеєризації, інструкцій умовних переходів, завантаження і збереження, а також інструкцій з операціями рухомої коми і інструкцій-пасток (traps).

Стандартно, всі характеристики подано відсотками, наприклад , "RAW stalls: 17(7.91 % of all Cycles)".

Статистичні характеристики надзвичайно корисні у дослідженнях впливів зміни конфігурації апаратної частини на ефективність (продуктивність) RISC- машини.

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

Аби зробити це, занотуємо загальне число циклів (215) і число пригальмувань (stalls) -- 17 RAW, 25 Control, 12 Trap; 54 Total. Зачинимо вікно статистики та відчинемо вікно Configuration. Заборонимо випереджування (disable forwarding) натисканням на опції Enable Forwarding (видимий "гак" або "пташка" мають зникнути). На наступне повідомлення- запитання симулятора "WARNING: OK resets automatically the processor! Disable Forwarding?" треба відповісти OK. Знищимо усі точки зупинок за допомогою розділа меню Breakpoints , де задамо опцію Delete All і завершимо знищення стандартним натисканням на OK. Далі, викличемо одноразову симуляцію всієї програми послідовністю F5, 20 Enter і натиснемо OK , коли виконається trap 0. Новий перегляд вікна статистики повідомить про те, що число призупинок конвеєра типу Control stalls і Trap stalls лишилася незмінною, але число RAW stalls зросло від 17 до 53 (це погано!), що збільшило загальне число симуляційних циклів нашої програми до 236 (було 215). Отже, заборона випередження збільшила час виконання програми на 236 / 215 = 1.098.

Загальноприйнятим в теорії конвеєрних структур є така послідовність етапів:

  • Вибірка (instruction fetch, IF) - завантаження нової команди з пам'яті

  • Декодування (instruction decode, ID) - інтерпретація та відправка команди у відповідний операційний пристрій в залежності від різновиду операції

  • Виконання (execution, EX) - виконання команд та обчислення ефективної адреси пам'яті для результату або операндів, які необхідно завантажити

  • Звертання до пам'яті (memory, MEM) - виконання операцій з пам'яттю (для команд завантаження/збереження)

  • Збереження результату (writeback, WB) - збереження результату обчислень в регістрі

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