Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 3 варіант.docx
Скачиваний:
1
Добавлен:
20.07.2019
Размер:
119.4 Кб
Скачать
  1. Поясніть як здійснюється прогнозування переходів (галужень)

Простоювання по три або чотири цикли при кожному умовному переході, особливо якщо 20% команд є умовними переходами, сильно знижує продуктивність. Тому більшість машин прогнозують, буде проводитися умовні перехід, який зустрівся на шляху, чи ні. Для цього, наприклад, можна припускати, що це умовні переходи тому будуть здійснюватися, а всі умовні переходи вперед не будуть. Що стосується першої частини припущення, причина такого вибору полягає в тому, що переходи тому часто поміщаються в кінці циклу. Більшість циклів виконується багато разів, тому перехід до початку циклу буде зустрічатися дуже часто.З другою частиною даного припущення справа йде складніше. Деякі переходи вперед здійснюються у разі виявлення помилки в програмному забезпеченні (наприклад, файл не може бути відкритий). Помилки трапляються рідко, тому в більшості випадків подібні переходи не відбуваються. Природно, існує безліч переходів вперед, не пов'язаних з помилками, тому відсоток успіху тут не такий високий, як у переходах тому. Однак це правило принаймні краще, ніж нічого.

Прогнозування переходів буває статичним і динамічним. Динамічні прогнозування переходів – те яке відбувається в ході виконання програми (побудова спеціальної таблиці де зберігаються умовні переходи, і відносно записів в даній таблиці здійснюється прогнозування) .Вони також пристосовуються до поточного поведінки програми, і це їх позитивна якість. Негативною стороною цих технологій є те, що вони вимагають спеціалізованого і дорогого апаратного забезпечення, а також наявності дуже складних мікросхем. Статичне прогнозування переходів – те яке відбувається під час компіляції програми.Є різні технології реалізації таких переходів наприклад профілювання, в данному випадку програма не змушує компілятор обчислювати, які переходи потрібно здійснювати, а які ні. У даному випадку програма дійсно виконується, а розгалуження фіксуються. Ця інформація надходить в компілятор, який потім використовує спеціальні команди умовного переходу для того, щоб повідомити апаратного забезпечення, що потрібно робити.

  1. Опишіть типи команд віртуальної машини Java

Типи команд:

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

з регістра в пам'ять, команду MOVE - регістр в інший регістр, але не мають ніякої команди для копіювання з однієї частини пам'яті в іншу

Бінарні операції: це такі операції, які беруть два операнда і отримують з них результат. Всі архітектури команд містять команди для додавання і віднімання цілих чисел. Сюди відносять також логічні операції «і», «не», «заперечення» і т.д. В віртуальній машині java це наприклад IADD, IAND, ISUB, та інші

Унарні операції: використовують один операнд і виробляють один результат, наприклад операції логічного зсуву(швидке ділення і множення на 2) або операції інкременту чи декрименту – INEG,IINC і т.д.

Порівняння та умовні переходи: - команди порівняння ICMP, IFLT, IFEQ, IF_CMPEQ і т.д. Команди переходу (стрибків) goto і т.д.

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

Управління циклом: Часто потрібно виконати визначену групу комнад фіксовану к-сть разів, для цього існує дана група команд

Команди вводу-виводу: Команди які управляють зчитування даних та запису даних на фіксовані пристрої (монітор, клавіатура і т.д.)