Микропроцессор Intel Itanium 9300

Функциональные особенности и архитектура Intel Itanium. Работа вычислительной среды и инструкции перехода. Параллелизм уровня инструкций. Поддержка в операционных системах модели множественного адресного пространства. Состав прикладных регистров.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык русский
Дата добавления 09.11.2014
Размер файла 429,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Таблица 2.8 - Взаимосвязь между типом инструкции и типом исполнительного модуля

Тип инструкции

Описание

Тип исполнительного устройства

A

Целочисленная, АЛУ

I-unit или M-unit

I

Целочисленная, не АЛУ

I-unit

M

Память

M-unit

F

С плавающей точкой

F-unit

B

Ветвление (Branch)

B-unit

L+X

Расширенная (extended)

I-unit или B-unit

Инструкции объединяются по три в 128-битные, выровненные контейнеры называемые связками (bundle). Каждая связка содержит три 41-битных слота (slot) и 5-битное поле шаблона.

В процессе выполнения, архитектурные остановки (stops - стопы) в программе показывают, что одна или несколько инструкций перед стопом могут иметь определенные типы ресурсных зависимостей с одной или несколькими инструкциями после стопа. В табл. 2.9, стоп показан в виде двойной линии справа от слота, после которого делается стоп. Например, шаблон 00 не имеет стопов, а шаблон 03 имеет стоп после первого слота и перед вторым слотом.

Дополнительно, для локализации стопов, поле шаблона задает схему слотов инструкций для типов исполнительных устройств. Не все возможные схемы инструкций для устройств являются допустимыми.

Расширенные инструкции, использующиеся для длинных целочисленных инструкций и инструкций дальних переходов, занимают два слота инструкций. В зависимости от основного кода операции, расширенные инструкции выполняются в устройстве B (длинные branch/call) или в устройстве I (все другие L+X инструкции).

2.4 Рассмотрение последовательности инструкций

Код Itanium состоит из последовательности инструкций и остановок упакованных в связки. Исполнение инструкций упорядочено так:

· Связки упорядочены от меньших адресов памяти к большим. Инструкции в связках с меньшими адресами памяти рассматриваются как предшествующие инструкциям в связках с большими адресами. Байты каждой связки упорядочены в памяти по убыванию (поле шаблона содержится в нулевом байте связки).

· Внутри связки (как это видно на рис. 2.11), инструкции упорядочены от слота инструкции 0 к слоту инструкции 2.

Выполнение инструкций состоит из четырех фаз:

1. Чтение инструкций из памяти (фаза fetch - выборка)

2. Чтение архитектурного состояния, если необходимо (фаза read)

3. Исполнение заданной операции (фаза execute)

4. Обновление архитектурного состояния, если необходимо (фаза 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 всех предшествующих инструкций в этой группе инструкций.

· В пределах группы инструкций, каждая инструкция будет вести себя так, как если бы ее чтение состояния регистра произошло до обновления состояния регистра любой другой инструкцией (предыдущей или последующей) в этой группе инструкций, кроме случаев, отмеченных в Зависимостях по регистрам и Зависимостях по памяти описанных ниже.

Правила упорядочивания сначала формируют контекст для ограничений зависимости регистра, ограничений зависимости памяти и порядка сообщения исключений. Эти ограничения зависимости применяются только между инструкциями, чей ресурс чтения и записи не является динамически заблокированным с помощью предикации.

· Зависимости по регистрам. В группах инструкций, регистровые зависимости типа RAW (чтение после записи) и WAW. Регистровые зависимости WAR (запись после чтения) разрешены.

Эти ограничения зависимости применяются и для явных регистровых обращений (из операндов инструкций), и для неявных регистровых обращений (некоторые инструкции неявно обращаются к прикладным и управляющим регистрам). Предикатный регистр PR0 является исключением для этого ограничения регистровой зависимости, поскольку запись в PR0 игнорируется, а чтение всегда возвращает 1.

Некоторые обновления системных состояний требуют более строгих требований, чем описано здесь. Зависимости по памяти. В группах инструкций, разрешены зависимости по памяти RAW, WAW, WAR, а также зависимости ALAT. Загрузка будет наблюдать результаты самого последнего сохранения по тому же адресу памяти. Если многократные сохранения присутствуют в одной и той же группе инструкций, то память будет содержать результат самого последнего запоминания после выполнения группы инструкций. Сохранение после загрузки по тому же самому адресу не будет затрагивать данные, загруженные загрузкой. Инструкции предварительной загрузки, проверки загрузки, проверки предварительной загрузки, запоминания и семафор памяти неявно обращаются к ALAT. Зависимости RAW, WAW, WAR и ALAT разрешены в пределах группы инструкций и ведут себя точно также, как это было описано для зависимостей по памяти.

Результирующий эффект ограничений зависимости описанных выше сводится к тому, что процессор может выполнять все (или любое подмножество) инструкций в пределах правильной группы инструкций одновременно или последовательно с одним и тем же конечным результатом. Если эти ограничения зависимости не выполняются, то поведение программы не определено.

Исключения сообщаются в порядке инструкций. Ограничения зависимости применяются независимо от присутствия или отсутствия исключений, то есть ограничения должны быть удовлетворены, не зависимо от того случится ли исключение в пределах группы инструкций. Для правильно сформированной группы инструкций, в точке возникновения исключения все предшествующие инструкции завершат свою модификацию архитектурного состояния. Все последующие инструкции не будут модифицировать архитектурное состояние. Если группа инструкций нарушает требование зависимости, то модификация архитектурного состояния до и после исключения не гарантируется (обработчик ошибки увидит неопределенное значение в регистрах вовлеченных в нарушение зависимости, даже если исключение произойдет между первой и второй инструкциями в нарушении). В случае многократных исключений происходящих при выполнении инструкций той же самой группы инструкций, будет сообщено исключение, встреченное в самой ранней инструкции.

Последовательность инструкций, вытекающая из правил заявленных выше называется последовательным выполнением (“sequential execution”).

Правила упорядочивания и ограничений зависимости позволяют процессору динамически переупорядочивать инструкции, выполнять инструкции со скрытым временем затрачиваемым устройством, или даже одновременно выполнять инструкции по разные стороны стопа или выполненного перехода при условии, что предписана корректная последовательность, а формирование последовательности выполнения предоставлено программисту.

IP - это специальный ресурс. Чтение и запись в IP выполняется последовательно, а не параллельно. Для IP разрешены зависимости RAW, а чтение получит IP связки, который его (чтение) содержит. Так, каждая связка, выполняемая параллельно, логически читает IP, увеличивает его и записывает обратно. Кроме того, разрешена зависимость WAW.

Игнорируемые прикладные регистры не является исключением для целей проверки зависимости. Зависимости RAW и WAW не разрешены для игнорируемых прикладных регистров.

Специальные случаи зависимости RAW

Есть четыре разрешенных специальных случая зависимости RAW по регистрам в пределах группы инструкций. Это такие специальные случаи: инструкция alloc, инструкции проверки загрузки, инструкции затрагивающие ветвления и инструкции id8.fill и st8.spill.

Инструкция alloc неявно записывает маркер текущего окна (CFM), который неявно читается всеми инструкциями обращающимися к стековому подмножеству файла основных регистров. Инструкции, которые обращающимися к стековому подмножеству файла основных регистров могут появляться в той же самой группе инструкций, что и alloc и будут видеть стековое окно, заданное с помощью alloc.

Примечание. Некоторые инструкции имеют RAW или WAW зависимости от ресурсов не похожие на то как alloc влияет на CFM, и таким образом, не позволеные в той же самой группе инструкций после alloc: flusrs, loadrs, пересылки из AR[BSPSTORE], пересылки из AR[RNAT], br.cexit, br.ctop, br.wtop, br.call, brl.call, br.ia, br.ret, clrrrb, cover, rfi. См. главу 5 «Ресурсы и семантики зависимости» в третьем томе. Также заметим, что alloc требуется для первой инструкции в группе инструкций.

Инструкция проверки загрузки может, либо не может выполнить загрузку, поскольку это зависит от передачи ей предварительной загрузки. Если проверка загрузки промахнется в ALAT, то это вызовет загрузку из памяти. Проверка загрузки и последующая инструкция, которая читает приемник проверки загрузки, могут существовать в той же самой группе инструкций. Зависимая инструкция загрузит новое значение, загруженное проверкой загрузки.

Переход может читать регистры переходов и может неявно читать предикатные регистры, прикладные регистры LC, EC и PFS, а также CFM. Кроме регистров LC, EC и предикатных регистров, запись в любой из этих регистров с помощью инструкции не являющейся переходом, будет видна для последующего перехода в той же самой группе инструкций. Запись в предикатные регистры с помощью любой инструкции, не являющейся инструкцией с плавающей точкой, будет видна для последующего перехода в той же самой группе инструкций. Регистровая зависимость RAW не разрешена в той же самой группе инструкций для LC и EC. Динамические RAW зависимости, где предикат пишется инструкцией с плавающей точкой, а читается переходом, тоже не разрешены в той же самой группе инструкций. С точки зрения регистровой зависимости, переходы br.cond, br.call, brl.cond, brl.call, br.ret и br.ia работают как другие инструкции, то есть, если их квалификационный предикат есть 0, то они не рассматриваются считывателями или записывателями других ресурсов. Переходы br.cloop, br.cexit, br.ctop, br.wexit и br.wtop являются исключениями из этого правила - они всегда читают и пишут свои ресурсы не зависимо от значения своего квалификационного предиката. Косвенный переход brp считается считывателем указанного регистра BR.

Инструкции id8.fill и st8.spill неявно обращаются к прикладному регистру UNAT (коллекции NaT пользователя). Для этих инструкций ограничение на динамические регистровые зависимости типа RAW по отношению к UNAT применяется на уровне битов. Эти инструкции могут появляться в той же самой группе инструкций, если они не обращаются к одному и тому же биту UNAT. Зависимости UNAT типа RAW между инструкциями id8.fill или st8.spill и инструкциями mov ar= или mov =ar обращающимися к UNAT не должны происходить в пределах одной и той же группы инструкций.

Для целей ресурсных зависимостей CFM обрабатывается как отдельный ресурс.

Специальные случаи зависимости WAW

Есть три разрешенных специальных случая зависимости WAW по регистрам в пределах группы инструкций. Это такие специальные случаи: инструкции типа сравнения, инструкции с плавающей точкой и инструкция st8.spill.

Набор инструкций типа сравнения включает: cmp, cmp4, tbit, tnat, fcmp, frsqrta, frcpa и fclass. Инструкции типа сравнения в одной группе инструкций, могут иметь адресатом один и тот же предикатный регистр:

· Инструкциями типа сравнения являются и все сравнения типа И, и все сравнения типа ИЛИ (сравнения типа И связаны с окончаниями.and и.andcm; сравнения типа ИЛИ связаны с окончаниями.or и.orcm), либо это

· Все инструкции типа сравнения указывают на PR0. Все зависимости типа WAW разрешены для PR0; сравнения могут быть некоторого типа, и могут быть различных типов.

Все другие зависимости типа WAW в группах инструкций запрещены, включая регистровые WAW зависимости с инструкциями переноса в PR, которые обращаются к тем же самым предикатным регистрам, что и другие записыватели.

Примечание. Инструкции переноса в PR записывают только те PR, которые указаны в их (инструкций) маске, но инструкциями переноса из PR всегда читают все регистры.

Инструкции с плавающей точкой неявно записывают регистр состояния с плавающей точкой (FPSR) и регистр состояния процессора (PSR). В той же самой группе инструкций могут появляться несколько инструкций с плавающей точкой, поскольку ограничение на регистровую зависимость типа WAW в отношении FPSR и PSR не применяется. После выполнения группы инструкций, состоянием FPSR и PSR будет являться логическое ИЛИ от всех записей.

Инструкция st8.spill неявно записывает регистр UNAT. Для этой инструкции ограничение на регистровую зависимость типа WAW относительно UNAT, применяется на уровне битов. В той же самой группе инструкций могут появляться несколько инструкций st8.spill если они не записывают один и тот же бит UNAT. Регистровые зависимости типа WAW между инструкциями st8.spill и инструкций mov ar= нацеленные на UNAT не должны встречаться в пределах одной и той же группы инструкций.

Специальные случаи зависимости WAR

Зависимость типа WAR между чтением 63-х предикатных регистров с помощью любой инструкции типа B и частичной записью 63-х предикатных регистров с помощью перехода типа модульно планируемого цикла (br.ctop, br.cexit, br.wtop, br.wexit) без вмешательства остановок, является запрещенной. Иные зависимости типа WAR, разрешены в группе инструкций.

Поведение процессора при нарушениях зависимости

Если программа нарушает правила ресурсных зависимостей типа RAW, WAW или WAR внутри группы инструкций, то поведение процессора не предсказуемо. Для помощи в отладке кода, который нарушает правила зависимости архитектурных ресурсов, некоторыми процессорами обеспечиваются аппаратные средства обнаружения нарушений зависимости при выполнении. Это может явиться причиной того, что группа инструкций, которая содержит нелегальную зависимость, вызовет ошибку «Нелегальная зависимость». Однако, даже в реализациях, которые обеспечивают такую проверку, программное обеспечение не может надеяться, что процессор перехватит все нарушения зависимости или даже перехватит то же самое нарушение каждый раз, когда оно будет происходить.

Однако все модели процессора, которые обеспечивают аппаратные средства обнаружения нарушения зависимости, требуются для удовлетворения следующих сообщенных ограничений нарушения зависимости:

· Все обнаруженные нарушения зависимости должны быть сообщены как ошибки типа «Нелегальная зависимость» (описанные в главе 5 «Прерывания» во втором томе). Когда вызвана ошибка «Нелегальная зависимость», значение субъекта для нарушения зависимости - не определено. Необнаруженные нарушения зависимости являются причиной неопределенного поведения программы, как это описано в разделе 3.5 «Неопределенное поведение».

· Все обнаруженные нарушения зависимости типа RAW и WAW должны быть переданы как ошибки типа «Нелегальная зависимость» на вторую операцию, т.е. в случае RAW - на чтение, а в случае WAW - на запись второго ресурса.

· Все обнаруженные нарушения зависимости типа WAR (в 63-х предикатных регистрах) должны быть переданы как ошибки типа «Нелегальная зависимость» на вторую операцию - запись предиката.

· Ошибки типа «Нелегальная зависимость» передаются строго в программном порядке. Если прерывание, переход или спекулятивная проверка сделаны между первой и второй операциями нарушения зависимости, то ошибка типа «Нелегальная зависимость» не делается.

Примечание. Если группа инструкций начинается в заданной точке входа (на стопе или на адресате переключения потока управления), то инструкции предшествующие точке входа не рассматриваются как часть группы инструкций и не должны принимать участие в проверке нарушения любой зависимости. Например, если rfi сделана на слот 1 связки, то инструкция в слоте 0 и инструкции с меньшими адресами памяти не являются частью новой группы инструкций и не должны принимать участие в проверке нарушения любой зависимости.

2.5 Неопределенное поведение

Архитектурно неопределенное поведение, которое применяется к одной или более инструкций перечислено ниже:

· Регистровые зависимости RAW и WAW внутри одной и той же группы инструкций отвергаются, кроме тех, что были отмечены в разделе 2.4. Их поведение в группе инструкций не определено. Неопределенное поведение включает возможность ошибки «Неопределенная операция».

· Чтение регистра вне заданных границ стекового окна основных регистров (которое заданно последним alloc, return или call) вернет неопределенный результат. В этой ситуации все процессоры не будут вызывать прерывание.

Неопределенный сценарий - это событие или последовательность событий, чей исход не определен в архитектуре. Поэтому, результат неопределенного сценария зависит от нюансов выполнения. Пользователь не должен полагаться на это неопределенное поведение, даже если сейчас поведение программы корректно, то в будущем это может быть не так.

архитектура операционный адресный регистр

Заключение

Микропроцессоры серии Itanium применяются в серверном сегменте рынка IT.

Архитектура Itanium поддерживается мировыми лидерами в производстве серверов: Fujitsu, Hitachi, HP, NEC. Разработчики программного обеспечения вместе работали над созданием Itanium Solution Alliance с целью продвижения архитектуры и ускорения темпов развития ПО.

IBM и Dell прекратили поддержку Itanium, сконцентрировав внимание на платформах SPARC и AMD64 Sun.

На текущий момент Itanium поддерживается 10 операционными системами, включая Windows, различные дистрибутивы Linux и UNIX.

Список использованной литературы

1. Intel Itanium Processor 9300 Series Datasheet: Intel, 2012. - 172 с.

2. Intel Itanium Architecture Software Developers Manual Revision 2.3 Volume 1-4: Intel, 2010. - 1898 с.

3. Intel Corp. Intel Itanium 9300 Series [Электронный ресурс]. - Электрон. текстовые дан. - 2012. - Режим доступа: http://ark.intel.com/ru/products/series/42794/Intel-Itanium-Processor-9300-Series, свободный.

Размещено на Allbest.ru


Подобные документы

  • Общая характеристика и применение микроконтроллеров FUJITSU MB-90 и MCS-196 фирмы Intel. Основные особенности микроконтроллеров серии MCS-96 и MB90385. Внутренняя архитектура процессоров. Система команд, работа с внутренними и внешними устройствами.

    курсовая работа [768,0 K], добавлен 01.12.2010

  • Программа взаимодействия процессора со специализированной микросхемой ОЗУ в рамках адресного пространства меньше 12 Кбайт. Описание работы принципиальной схемы. Расчет задержек, создаваемых микросхемами и тока потребления. Временные диаграммы работы.

    курсовая работа [812,3 K], добавлен 26.12.2012

  • Семейство 16-разрядных микроконтроллеров Motorola 68HC12, их структура и функционирование. Модуль формирования ШИМ-сигналов. Средства отладки и программирования микроконтроллеров 68НС12. Особенности микроконтроллеров семейства MCS-196 фирмы INTEL.

    курсовая работа [239,6 K], добавлен 04.01.2015

  • Разработка программы непрерывного вычисления заданного логического выражения с использованием команды микропроцессора Intel 8080/8085; размещение ее в памяти, начиная с нулевой ячейки. Программная реализация временной задержки длительностью 100 мкс.

    контрольная работа [59,3 K], добавлен 09.04.2014

  • Начало использования полупроводников 1940-50-е годы. Появление и использование первых интегральных схем. Появление БИС микропроцессоров в 1970-е годы. Распространение архитектуры intel. Развитие технологий литорафии. Усложнение техпроцесса в 2000-е годы.

    реферат [84,0 K], добавлен 22.03.2015

  • Базовые типы и масштабы сетевых операционных систем. Программные и аппаратные средства вычислительной сети. Характеристика коаксиального кабеля, преимущества "витой пары", методы их подключения. Топология и архитектура сети; обеспечение совместной работы.

    презентация [1,2 M], добавлен 31.01.2014

  • Рассмотрение аппаратных принципов построения устройств микропроцессорной техники и их программного обеспечения. Структурная схема микропроцессора К1821ВМ85А. Карта распределения адресного пространства памяти. Расчет потребляемой устройством мощности.

    курсовая работа [2,4 M], добавлен 26.11.2012

  • Микропроцессор К580. Прямая, непосредственная и косвенная адресация. Команды перемещения данных, загрузки аккумулятора, запоминания данных, непосредственной загрузки пары регистров, обмена содержимого пар регистров. Команды операции со стеком.

    лабораторная работа [14,7 K], добавлен 03.03.2009

  • Разработка прибора "Термостат" на однокристальном микроконтроллере INTEL 8051. Работа с восьмью температурными датчиками, подключенными через многоканальный аналого-цифровой преобразователь, автоматическое поддерживание температуры в диапазоне 19°С-21°С.

    курсовая работа [137,6 K], добавлен 29.07.2009

  • Выбор типа микросхем памяти и расчет их количества в модулях. Выбор дешифратора адреса. Распределение адресного пространства. Распределение модулей программ. Расчет нагрузочной способности модуля памяти. Генератор тактовых импульсов микропроцессора.

    дипломная работа [1,7 M], добавлен 08.01.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.