Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
4 октября 2013 г. состоялись соревнования по шахматам в зачет спартакиады на приз «Первокурсник – 2013». В соревнованиях приняли участие студенты перв...полностью>>
'Документ'
Подбор материалов в пакет изделия. Разработка конфекционной карты: Метод. указания к лаб. работе / Казан. гос. технол. ун-т; Сост.: Л.Г. Хисамиева. Ка...полностью>>
'Рабочая программа'
Ц2: научно-исследовательской и аналитической деятельности по исследованию и прогнозированию основных тенденций развития отечественной и мировой эконом...полностью>>
'Документ'
магнитного поля в электромагнитной волне и вектор c скорости ее распространения. Направление вектора напряженности электрического поля E в волне совпа...полностью>>

Главная > Документ

Сохрани ссылку в одной из сетей:
Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

VLIW процессоры

Архитектура с командными словами сверхбольшой длины или со сверхдлинными командами (VLIW, Very Long Instruction Word) известна с начала 80-х. VLIW - это набор команд, организованных наподобие горизонтальной микрокоманды в микропрограммном устройстве управления.

Идея VLIW базируется на том, что задача эффективного планирования параллельного выполнения нескольких команд возлагается на «разумный» компилятор. Такой компилятор вначале исследует исходную программу с целью обнаружить все команды, которые могут быть выполнены одновременно, причем так, чтобы это не приводило к возникновению конфликтов. В процессе анализа компилятор может даже частично имитировать выполнение рассматриваемой программы. Наследующем этапе компилятор пытается объединить такие команды в пакеты, каждый из которых рассматривается так одна сверхдлинная команда. Объединение нескольких простых команд в одну сверхдлинную производится по следующим правилам:

  • количество простых команд, объединяемых в одну команду сверхбольшой длины, равно числу имеющихся в процессоре функциональных (исполнительных) блоков (ФБ);

  • в сверхдлинную команду входят только такие простые команды, которые исполняются разными ФБ, то есть обеспечивается одновременное исполнение всех составляющих сверхдлинной команды

Длина сверхдлинной команды обычно составляет от 256 до 1024 бит. Такая метакоманда содержит несколько полей (по числу образующих ее простых команд), каждое из которых описывает операцию для конкретного функционального блока. Сказанное иллюстрирует рис, 13,26, где показан возможный формат сверхдлинной команды и взаимосвязь между ее полями и ФБ, реализующими отдельные операции.

Как видно из рисунка, каждое поле сверхдлинной команды отображается на свой функциональный блок, что позволяет получить максимальную отдачу от аппаратуры блока исполнения команд. VLIW-архитектуру можно рассматривать как статическую суперскалярную архитектуру. Имеется в виду, что распараллеливание кода производится на этапе компиляции, а не динамически во время исполнения. То, что в выполняемой сверхдлинной команде исключена возможность конфликтов, позволяет предельно упростить аппаратуру VLIW-процессора и, как следствие, добиться более высокого быстродействия.

В качестве простых команд, образующих сверхдлинную, обычно используются команды RISC-типа, поэтому архитектуру VLIW иногда называют пocтRISC-apхитектурой. Максимальное число полей в сверхдлинной команде равно числу вычислительных устройств и обычно колеблется в диапазоне от 3 до 20. Все вычислительные устройства имеют доступ к данным, хранящимся в едином многопортовом регистровом файле. Отсутствие сложных аппаратных механизмов, характерных для суперскалярных процессоров (предсказание переходов, внеочередное исполнение и т. д.), дает значительный выигрыш в быстродействии и возможность более эффективно использовать площадь кристалла. Подавляющее большинство цифровых сигнальных процессоров и мультимедийных процессоров с производительностью более 1 млрд операций/с базируется на VLIW-архитектуре. Серьезная проблема VLIW - усложнение регистрового файла и связей этого файла с вычислительными устройствами.

Преимущества.

  1. Использование компилятора позволяет устранить зависимости между командами до того, как они будут реально выполняться, в отличие от суперскалярных процессоров, где такие зависимости приходится обнаруживать и устранять "на лету".

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

  3. Наличие множества функциональных блоков дает возможность выполнять несколько команд параллельно.

Недостатки.

  1. Требуется новое поколение компиляторов, способных проанализировать программу, найти в ней независимые команды, связать такие команды в строки длиной от 256 до 1024 бит, обеспечить их параллельное выполнение.

  2. Компилятор должен учитывать конкретные детали аппаратных средств.

  3. При определенных ситуациях программа оказывается недостаточно гибкой

Основные сферы применения.

VLIW-процессоры пока еще распространены относительно мало. Основными сферами применения технологии VLIW-являются цифровые сигнальные процессоры и вычислительные системы, ориентированные на архитектуру IA-64. Наиболее известной была VLIW-система фирмы Multiflow Computer, Inc. (Уже не существующей.) В России VLIW-концепция была реализована в суперкомпьютере Эльбрус 3-1 и получила дальнейшее развитие в его последователе - Эльбрус-2000 (Е2к). К VLIW можно причислить семейство сигнальных процессоров TMS320C6x фирмы Texas Instruments. С 1986 года ведутся исследования VLIW-архитектуры в IBM. В начале 2000 года фирма Transmeta заявила процессор Crusoe, представляющий собой программно-аппаратный комплекс. В нем команды микропроцессоров серии х86 транслируются в слова VLIW длиной 64 или 128 бит. Оттранслированные команды хранятся в кэш-памяти, а трансляция при многократном их использовании производится только один раз. Ядро процессора исполняет элементы кода в строгой последовательности.

EPIC архитектуры

Дальнейшим развитием идеи VLIW стала новая архитектура IA-64 — совместная разработка фирм Intel и Hewlett-Packard (IA - это аббревиатура от Intel Architecture). В IA-64 реализован новый подход, известный как вычисления с явным параллелизмом команд (EPIC, Explicitly Parallel Instruction Computing) и являющийся усовершенствованным вариантом технологии VLIW. Первым представителем данной стратегии стал микропроцессор Itanium компании Intel. Корпорация HewlettPackard также реализует данный подход в своих разработках.

В архитектуре IA-64 предполагается наличие в процессоре 128 64-разрядных регистров общего назначения (РОН) и 128 80-разрядных регистров с плавающей запятой. Кроме того, процессор IA-64 содержит 64 однобитовых регистра предикатов.

Формат команд в архитектуре IA-64 показан на рис. 13.27.

Команды упаковываются (группируются) компилятором в сверхдлинную команду — связку (bundle) длиною в 128 разрядов. Связка содержит три команды и шаблон, в котором указываются зависимости между командами (можно ли с командой I0 запустить параллельно I1 или же I1 должна выполниться только после Iо), а также между другими связками (можно ли с командой I2 из связки So запустить параллельно команду I3 из связки S1).

Перечислим все варианты составления связки из трех команд:

- I0 || I1 || 12 — все команды исполняются параллельно;

- Iо & I1 || I г — сначала I0, затем исполняются параллельно I1 и I2;

- I0 || I 1 & I2 - параллельно обрабатываются I0 и I1 после них - I2;

- I0& I1 & I2 — команды исполняются в последовательности I0,I1, I2.

Одна связка, состоящая из трех команд, соответствует набору из трех функциональных блоков процессора. Процессоры IA-64 могут содержать разное количество таких блоков, оставаясь при этом совместимыми по коду. Благодаря тому что в шаблоне указана зависимость и между связками, процессору с N одинаковыми блоками из трех ФБ будет соответствовать сверхдлинная команда из N х 3 команд (Nсвязок). Тем самым обеспечивается масштабируемость IA-64.

Поле каждой из трех команд в связке, в свою очередь, состоит из пяти полей:

- 13-разрядного поля кода операции;

- 6-разрядного поля предикатов, хранящего номер одного из 64 регистров предиката;

- 7-разрядного поля первого операнда (первого источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится первый операнд;

- 7-разрядного поля второго операнда (второго источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится второй операнд;

- 7-разрядного поля результата (приемника), где указывается номер регистра общего назначения или регистра с плавающей запятой, куда должен быть занесен результат выполнения команды

Следует пояснить роль подполя предикатов. Предикация - это способ обработки условных ветвлений. Суть в том, что еще компилятор указывает, что обе ветви выполняются на процессоре параллельно, ведь EPIC-процессоры должны иметь много функциональных блоков. Если в исходной программе встречается условное ветвление (по статистике — через каждые шесть команд), то команды из разных ветвей помечаются разными регистрами предиката (команды имеют для этого соответствующие поля), далее они выполняются совместно, но их результаты не записываются, пока значения регистров предиката (РП) не определены. Когда, наконец, вычисляется условие ветвления, РП, соответствующий «правильной» ветви, устанавливается в 1, а другой - в 0. Перед записью результатов процессор проверяет поле предиката и записывает результаты только тех команд, поле предиката которых указывает на РП с единичным значением. Предикаты формируются как результат сравнения значений, хранящихся в двух регистрах. Результат сравнения («Истина» или «Ложь») заносится в один из РП, но одновременно с этим во второй РП записывается инверсное значение полученного результата. Такой механизм позволяет процессору более эффективно выполнять конструкции типа I F - T H E N-E L S E . Логика выдачи команд на исполнение сложнее, чем в традиционных процессорах типа VLIW, но намного проще, чем у суперскалярных процессоров с неупорядоченной выдачей. По мнению специалистов Intel и HP, концепция EPIC, сохраняя все достоинства архитектурной организации VLIW, свободна от большинства ее недостатков. Особенностями архитектуры EPIC являются:

- большое количество регистров;

- масштабируемость архитектуры до большого количества функциональных блоков. Это свойство представители компаний Intel и HP называют наследственно масштабируемой системой команд (Inherently Scaleable Instruction Set);

- явный параллелизм в машинном коде. Поиск зависимостей между командами осуществляет не процессор, а компилятор;

- предикация — команды из разных ветвей условного предложения снабжаются полями предикатов (полями условий) и запускаются параллельно;

- предварительная загрузка — данные из медленной основной памяти загружаются заранее.

Первые процессоры Intel 80 86

Корпорация Intel разработала три типа ISA, которые ориентируются на различные секторы рынка. Для их именования часто используется акроним из выражения IntelArchitecture, IA

  • Архитектура IA-32 предназначена для выполнения массовых 32-разрядных приложения на ПК начального уровня и реализована в следующих семействах процессоров:

    • Intel Celeron и Intel Pentium (в корпусе FC-PGA2);

    • процессорах Intel, использующих технологии ультранизкого напряжения питания;

    • Intel Core Duo.

  • Архитектура набора команд IA-64 реализована в семействе процессоров Intel Itanium.

  • Архитектура Intel 64 предназначена для современных ПК и серверов среднего уровня, оптимизированных для выполнения 64-разрядных приложений. Эта архитектура реализована в следующих семействах процессоров:

    • Intel Xeon;

    • Intel Core 2 Duo.

Intel архитектура 64

Знание архитектуры процессора, или в более узком смысле, его системы команд, необходимо не только для программирующих на языке ассемблера данного процессора. В учебные курсы в области информатики традиционно входят дисциплины, в которых рассматривается программирование на ассемблере. В период доминирования больших универсальных ЭВМ большинство специалистов знали ассемблер мэйнфреймов IBM S/360-370 (соответственно ЕС ЭВМ). Затем доминирующим стал, вероятно, ассемблер x86. Современные специалисты по компьютерным архитектурам хорошо знают и системы команд RISC-процессоров.

Системы команд современных RISC-процессоров во многом похожи друг на друга. Например, говорят, что в этом смысле MIPS и Alpha близки друг к другу. Однако появление архитектуры IA-64, которая претендует на монополию на рынке микропроцессоров, разработчики из HP и Intel характеризуют как наступление эры "пост-RISC". Доступная информация свидетельствует, что IA-64 революционным образом отличается от предшественников, даже от своих прямых предков таких, как HP PA-RISC. Процессоры с архитектурой IA-64 (Merced, McKinley и т.д.) могут обойти RISC-процессоры по производительности.

Со временем архитектура IA-64 способна вытеснить в будущем x86 (IA-32) не только на рынке, но и в качестве багажа "базовых знаний" специалистов по информатике. Однако необходимость разработки для IA-64 весьма сложных компиляторов и трудности с созданием оптимизированных машинных кодов может вызвать дефицит специалистов, пишущих на ассемблере IA-64, особенно на начальных этапах. Это делает актуальным анализ IA-64.

На момент подготовки статьи детали микроархитектуры процессора Merced, получившего официальное название Itanium, все еще не раскрыты. Официальная информация [1,2] позволяет сделать определенные предположения о характеристиках Itanium. Укажем также на публикацию по микроархитектуре E2K [3] отечественной разработки, имеющей близкие к IA-64 архитектурные особенности.

Основным источником данных для данной статьи послужили, естественно, публикации [1,2]. Мы остановимся в первую очередь на концептуально новых особенностях IA-64 и общем описании. Более традиционные части системы команд IA-64 напоминают обычный набор команд RISC, в первую очередь архитектуры PA-RISC. Cовместимость с PA-RISC в IA-64 обеспечивается за счет динамической трансляции команд (т.е. подобно Compaq/DEC FX!32). Применительно к прикладным программам такой подход оказывается вполне эффективным благодаря близости части команд PA-RISC к соответствующим командам IA-64.

Что касается аппаратно поддерживаемой совместимости с архитектурой IA-32, то, с точки зрения автора, это тема для отдельного разговора; основной интерес представляет собой в первую очередь принципиально новые черты IA-64. По мнению автора, аппаратная совместимость с IA-32 препятствует эффективному развитию IA-64 и росту производительности. Косвенным подтверждением этому служат неофициальные "приватные" данные о том, что McKinley, производительность которого должна быть гораздо выше Merced, якобы не имеет столь развитых средств аппаратной поддержки IA-32, как у Merced.

Наиболее кардинальным нововведением IA-64 по сравнению с RISC является "явный параллелизм команд (EPIC - Explicitly Parallel Instruction Computing), привносящий в IA-64 некоторые элементы, напоминающие архитектуру "сверхбольшого командного слова" (VLIW - Very Large Instruction Word). В обеих архитектурах явный параллелизм представлен уже на уровне команд, управляющих одновременной работой функциональных исполнительных устройств (ФИУ). Соответствующие "широкие команды" HP/Intel назвали связками (bundle).

Рис. 1. Формат связки команд IA-64

Связка имеет длину 128 разрядов (рис. 1). Она включает 3 поля - "слота" для команд длиной 41 разрядов каждая, и 5-разрядное поле шаблона. Предполагается, что команды связки могут выполняться параллельно разными ФИУ. Возможные взаимозависимости, препятствующие параллельному выполнению команд связки, отражаются в поле шаблона. Не утверждается, впрочем, что параллельно не могут выполняться и команды разных связок.

Шаблон указывает, какого типа команды находятся в слотах связки. В общем случае команды одного типа могут выполняться в более чем одном типе ФИУ (табл.1). Шаблоном задаются так называемые остановки, определяющие слот, после начала выполнения команд которого команды последующих слотов должны ждать завершения. Порядок слотов в связке (возрастание справа налево) отвечает и порядку байт - little endian. Однако данные в памяти могут располагаться и в режиме big endian. Режим устанавливается специальным разрядом в регистре маски пользователя.

Таблица 1. Типы команд и исполнительных устройств

Тип команд

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

Описание команд

A

I или M

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

I

I

Целочисленные неарифметические

M

M

Обращение в память

F

F

C плавающей запятой

B

B

Переходы

L+X

I

Расширенные

При использовании ассемблера остановки отмечаются двумя подряд знаками "точка с запятой" - ";;". Места, в которых необходимо указывать остановку выглядят интуитивно понятными, по крайней мере, в приведенных в [1,2] примерах.

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

Процессоры Itanium

64-разрядные процессоры семейства Itanium созданы на базе архитектуры EPIC. Архитектура EPIC позволяет проводить программно достаточно серьезные оптимизации, при этом задействуя и ILP на аппаратном уровне, за счет чего существенно растет эффективность работы системы в целом. 

Семейство процессоров Itanium разрабатывалось совместно Intel и HP. Следует отметить обратную совместимость процессоров Itanium с процессорами Intel x86 и HP PA-RISC.

В процессорах Itanium 2 применяются 64-разрядные инструкции непосредственно на аппаратном уровне, чего не было на процессорах Itanium.

В целом, в Itanium 2 стало больше функциональных устройств, чем было у Itanium:

  • Всего в Itanium 2 есть 6 АЛУ, в то время как Itanium может использовать лишь 4 за такт.

  • В Itanium 2 есть 4 порта памяти, позволяющие по 2 целочисленных загрузки и сохранения за такт, в то время как в Itanium есть только 2 порта.

  • Itanium 2 может выполнить одну SIMD инструкцию с плавающей точкой за такт, в то время как Itanium - две.

  • При определенных условиях Itanium 2 может перенаправлять выполнение инструкций на непрофильные функциональные элементы.

  • При обработке операций Itanium 2 учитывает многократно повторяющиеся операции.

Основы многопоточной (мультитредовой) архитектуры



Похожие документы:

  1. Организация однопроцессорных ЭВМ 2 > общие вопросы истории развития и построения ЭВМ 2

    Документ
    ... с машиной, вопросы логической организации представления, хранения и преобразования ... И. Информатика: Системы счисления и компьютерная арифметика. – М.: Лаборатория Базовых Знаний ... цифровой информации имеют многоуровневую структуру, т.е. построены ...
  2. #организация производства и управление предприятием учебник

    Учебник
    ... предприятия. Структура КС УКП предусматривает многоуровневую организацию управления: на уровне объединения (предприятия ... регулирование технологических процессов, статистический анализ, компьютерная технология и др. Отраслевая наука практически ...
  3. «Компьютерная лингвистика и интеллектуальные технологии» (1)

    Документ
    ... работы в компьютерной лексикографии Сфера компьютерной лексикографии довольно широка ... лексическими элементами; многоуровневые лексико-синтаксические конструкции ... интеграционный organization <интеграционная> организация 0 integration интеграция economic ...
  4. Организация образовательного процесса на основе требований СанПиН. Директор Халимова Г. К. зам директора по икт халиуллина Г. С. зам директора по увр бадретдинова А. М

    Документ
    ... десятилетия. Это сложный многоуровневый процесс, который нельзя ... информационной базы данных, использование компьютерных технологий, хранение и обработки ... технологий в преподавании и организации жизнедеятельности школьников. Информатизация образования ...
  5. «Компьютерная лингвистика и интеллектуальные технологии» (3)

    Документ
    ... экспериментальная лингвистика» Профиль: «Компьютерная лингвистика и интеллектуальные технологии» Кластеризация ... . 1988] обсуждается многоуровневый анализ лексической конструкции ... статистического анализа структурной организации конструкций. Основными ...

Другие похожие документы..