двійної лінії праворуч від слота, після якого робиться стоп. Наприклад, шаблон 00 не має стопів, а шаблон 03 має стоп після першого слота і перед другим слотом.
Додатково, для локалізації стопів, поле шаблону задає схему слотів інструкцій для типів виконавчих пристроїв. Не всі можливі схеми інструкцій для пристроїв є допустимими.
Розширені інструкції, що використовуються для довгих цілочисельних інструкцій та інструкцій далеких переходів, займають два слоти інструкцій. Залежно від основного коду операції, розширені інструкції виконуються в пристрої B (довгі branch/call) або в пристрої I (всі інші L + X інструкції).
2.4 Розгляд послідовності інструкцій
Код Itanium складається з послідовності інструкцій і зупинок упакованих в зв'язки. Виконання інструкцій упорядковано так:
· Зв'язки впорядковані від менших адрес пам'яті до великих. Інструкції в зв'язках з меншими адресами пам'яті розглядаються як попередні інструкціям в зв'язках з великими адресами. Байти кожної зв'язки впорядковані в пам'яті по убуванню (поле шаблону міститься в нульовому байті зв'язки).
· Всередині зв'язки (як це видно на рис. 2.11), інструкції впорядковані від слота інструкції 0 до слоту інструкції 2.
Виконання інструкцій складається з чотирьох фаз:
1. Читання інструкцій з пам'яті (фаза fetch - вибірка)
2. Читання архітектурного стану, якщо необхідно (фаза read)
. Виконання заданої операції (фаза execute)
. Оновлення архітектурного стану, якщо необхідно (фаза update)
Група інструкцій - це послідовність інструкцій починається від заданого адреси зв'язки і номера слота і включає всі інструкції з послідовно збільшенням номерів слотів і адрес зв'язок до першої зупинки, зробленого переходу, помилки Break Instruction трапилась при break.b або помилки «Заборонена операція» трапилась при резервуванні, або якщо в коді операції типу «B» закодовано PR [qp]=1. Для інструкцій у групі інструкцій мається ясно певне правило: вони повинні зустрічатися в порядку і залежно від вимог описаних далі.
З метою ясності не слід закінчувати групи інструкцій:
· Інструкціями переходу відмінними від break.b (break.f, break.i, break.m, break.x)
· Інструкціями перевірки (chk.s, chk.a, fchkf)
· Інструкціями rfi не стежити за зупинкою
· Інструкціями brl не стежити за зупинкою
· переривання відмінними від помилки Break Instruction трапилась при break.b або помилки Illegal Operation трапилась при резервуванні, або якщо PR [qp]=1 закодовано в коді операції типу «B».
Таким чином, навіть якщо відбулася одна з вищенаведених причин зміни потоку управління, виконуються вказівки з послідовно увеличивающимися адресами за місцем зміни потоку управління до наступного істинного кінця групи інструкцій, який змінить потік управління. Тим не менш, можна побачити невизначені значення для адресата зміни потоку управління, якщо вони викликають порушення залежності. Однак ніколи немає ніякої залежності між інструкціями в адресатові зміни потоку управління і попереднім йому зміною потоку управління, навіть для вищенаведених випадків.
Якщо інструкції в групі інструкцій зустрічають вимоги, які залежать від ресурсів, то поведінка програми буде полягати в тому, як якби кожна індивідуальна інструкція слідувала через ці фази в порядку перерахованому вище. Порядок фаз даної інструкції щодо будь фази попередньої інструкції наказаний правилами слідування інструкції описаними нижче.
· Немає жодних пріоритетних відносин між фазою fetch (вибірки інструкції) і фазами read, execute, update відносяться до будь попередньої інструкції. Інструкції sync.i і srlz.i можуть бути використані для примусових послідовних відносин між фазою вибірки всіх динамічно завершених інструкцій і фазою оновлення всіх динамічно попередніх інструкцій.
· Між групами інструкцій, кожна інструкція в даній групі інструкцій буде вести себе так, як якби її читання відбулося після оновлення всіх інструкцій попередньої групи інструкцій. Всі інструкції затрачають час виконавчого пристрою. Інструкції по різні сторони від стопа, будуть розділені принаймні одним циклом роботи виконавчого пристрою.
· У межах групи інструкцій, кожна інструкція буде вести себе так, як якби її читання пам'яті і стану ALAT, відбулися б після модифікації пам'яті і стану ALAT всіх попередніх інструкцій в цій групі інструкцій.
· У межах групи інструкцій, кожна інструкція буде вести себе так, як якби її читан...