Сравнение векторных и скалярных инструкций

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

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

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

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

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

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

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

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

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий