В чем заключается векторно-конвейерная обработка?
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

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

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

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

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

Векторно-конвейерная вычислительная система организована так, как показано на рис.3.2. В такой системе имеется один (или небольшое количество) процессор, в котором обработка производится по принципу конвейера.

Скалярный

процессор

Рис.3.2. Структура векторной вычислительной системы.

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

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

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

Рис.3.3. Обработка векторной команды.

На первом уровнеисполнение команды делится на две стадии (ступени):подготовка иисполнение (рис.3.4).При наличии такого конвейера одна команда исполняется, а другая готовится к исполнению.

Рис.3.4. Конвейеризация I уровня.

Рис.3.5. Конвейеризация II уровня:

а - устройство подготовки команд; б -устройство исполнения команд.

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

Некоторые из перечисленных операций являются достаточно сложными и требуют дальнейшего разбиения. Так образуется третий уровеньконвейеризации. Особенно важна конвейеризация доступа к памяти и арифметических операций (рис.3.6).

Рис.3.6. Конвейеризация III уровня: арифметическое устройство.

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

o межстадийная буферизация и

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

Метод буферизации предназначен для тех машин, в которых времена задержек на каждой ступени различны. Благодаря данному методу пропускная способность конвейера определяется не максимальной, а средней задержкой (рис.3.7). Буферизация оказывается полезной во многих местах конвейера, но особенно - в интерфейсе памяти, поскольку, во-первых, ее быстродействие относительно невелико, а, во-вторых, запросы к памяти могут носить разный характер (вызов команды, формирование адреса, вызов операндов, запись результатов). Применение метода дублирования медленных стадий (к которым относятся, например, стадия обращения к памяти и стадия выполнения операций в устройстве обработки) позволяет увеличить пропускную способность. Так, память обычно выполняется в виде набора модулей, а для разных арифметических операций используются отдельные устройства (универсальные или специализированные).

Рис.3.7. Конвейер с буферизацией между ступенями.

Основным показателем производительности такой идеализированной векторной машины является максимальная пропускная способность(Rmax). Она равная пропускной способности самой медленной ступени, которая в свою очередь, определяется как результат деления числа однотипных устройств этой ступени на величину времени прохождения:

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

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

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

1. Арифметические конвейерные устройства.

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

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

Рис.3.8. Типы конвейерных устройств:

а - линейный конвейер; б - нелинейный конвейер.

Конвейерные устройства могут быть линейными илинелинейными. В линейных конвейерах данные могут следовать строго по порядку ступеней: от ступениiк ступениi+1, как показано на рис.3.8. В нелинейных устройствах допускаются какопережающие,так иобратныесвязи. Линейные конвейерные устройства отличаются простотой конструкции и управления, однако нелинейные конвейеры позволяют исполнять, например, рекурсивные операции или вычислять скалярное произведение.

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

Дата: 2019-07-25, просмотров: 268.