Московский государственный университет путей сообщения
Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 2438 / 569 | Оценка: 4.07 / 4.02 | Длительность: 16:07:00
ISBN: 978-5-9556-0071-0
Специальности: Разработчик аппаратуры
Лекция 4:

Параллельная обработка стека и статическое распараллеливание в решающем поле

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

Статическое распараллеливание в АЛУ. VLIW- и EPIC-архитектуры

С развитием архитектурной сложности ВС и с проектированием больших интегральных схем появилось новое направление в развитии архитектур — использование принципа программного управления каждым тактом машины. Это значит, что программа состоит из команд, задающих в такте выполнения инструкции каждому ИУ АЛУ. Команда изображается "длинным командным словом" (отсюда название VLIW -архитектура, very long information word ). В нем предусмотрены позиции, соответствующие каждому ИУ. Они указывают, какую работу должно начать выполнять каждое ИУ. При этом учитывается состояние данного ИУ, временные соотношения для ранее инициированного поступления на него информации и т.д. Т.е. состояние всех устройств процессора планируется программно, статически, не оставляя элементов динамического планирования, как рассматривалось выше.

Так, в проекте МВК "Эльбрус-3" длина командного слова составляет 320 разрядов. В нем задано управление каждым из семи ИУ (два — сложения, два — умножения, одно — деления, два логических), их взаимодействием, считыванием операндов и записью результатов, передачей управления.

Так как управление всеми устройствами явное, то вся работа по оптимальному распараллеливанию возлагается на транслятор.

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

Тогда жесткое использование данных, считанных из ОП в регистры стека в СОЗУ (в МВК "Эльбрус-3" стек велик и распространяется на ОП, оперативно используемая его часть в СОЗУ называется буфером стека) планируется транслятором по минимальному значению количества тактов обращения к ОП. Синхронизация же с учетом большего числа тактов обращения осуществляется с помощью битов значимости.

Каждый регистр буфера стека и буфера массивов имеет бит значимости, который полагается равным нулю при выдаче заявки на считывание из ОП в этот регистр и полагается равным единице при приходе требуемого числа. Тогда, если в команде производится обращение к регистру, в который еще не поступило число, производится пропуск такта, выполнение команды NOP ( No Operation ). Операция повторяется неоднократно до завершения считывания. Транслятор должен с опережением планировать обращения к ОП, чтобы минимизировать число пустых тактов.

Широко используется непосредственная передача результатов с одних ИУ на другие. Для этого результаты операций сохраняются несколько тактов в протоколе результатов работы каждого ИУ.

Однако "длинные" команды непроизводительно расходуют память, и с развитием архитектуры заменены командами переменной длины.

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

Однако эффективность распараллеливания зависит от решения (статического или динамического) задач оптимального планирования загрузки оборудования. Поиск в этом направлении привел к целесообразности EPIC -архитектуры ( Explicitly Parallel Instruction Computing ), что для пользователя (транслятора) выражается как система команд с явным параллелизмом. Такая система команд позволяет планировать загрузку всех устройств процессора в каждом такте. Планирование производится в статическом режиме при трансляции или программировании задачи и фактически заключается в построении потактового расписания работ, т.е. формирования "длинных" командных слов ( VLIW ), в позициях которых указано, к выполнению какой работы должно приступить каждое исполнительное устройство (ИУ) в данном такте.

Важной особенностью EPIC -архитектуры является возможность параллельного ветвления в двух случаях: при выполнении команд условного перехода и при выполнении конструкций if-then-else в составе арифметических операторов. Условный переход в "традиционном" исполнении грозит остановкой конвейера. В EPIC -архитектуре предусмотрен запуск дополнительного конвейера по команде подготовки перехода за несколько тактов до ветвления. Интенсивное ветвление в выполняемой программе способно привести к лавинообразному запуску дополнительных конвейеров и необходимости статистической оценки достаточного их количества при обосновании средств аппаратной поддержки.

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

< Лекция 3 || Лекция 4: 123 || Лекция 5 >