В.А. Фисун - Прикладное программирование в задачах математической физики. Архитектурные принципы построения ЭВМ (pdf) (1127762), страница 12
Текст из файла (страница 12)
Обработка длинных векторов при этом производится квантами, сообразно размеру векторных конвейеров. Вычислительный векторныйблок ЭВМ может содержать несколько конвейеров.Пособие 17.09.0943Для их совместной работы используется “принцип зацепления конвейеров”, когда выход одного из них является входом для другого. В вычислениях зацепление операций производится методом образования цепочек из последовательных арифметических операций.Примером одной из первой векторно–конвейерной ЭВМ может служить“матричный процессор” АР-120В фирмы Floating Point System, выпущенныйв 1976 г.
(отечественный аналог – ЕС 2706, Изот). Так как он был в десятьраз медленнее и в пятнадцать раз дешевле машины Cray-1, то получил прозвище “Cray для бедных”. Этот процессор имел большой коммерческий успех, к 1980 г было установлено 1000 машин. Данная ЭВМ имела двух - стадийный конвейер для сложения и трех - стадийный конвейер для умножениячисел с плавающей запятой. ЭВМ подключалась к главной – хост-машине как периферийное оборудование и использовалась для выполнения программ с массовыми векторными операциями. Её производительность равна12 Мегафлопс, что по тем временам было недоступно универсальным ЭВМ.Одной из особенностей этого процессора была система команд – это былаVLIW машина.
Для неё было создано разнообразное программное обеспечение: автокод, транслятор с Фортрана, векторная библиотека.Некоторое время на принципах матричного сателлита использовалисьвекторные ускорители для ПК, например, плата RORTEX.Векторными блоками дополнялось оборудование традиционных, скалярных ЭВМ. Программы таких ЭВМ могли содержать как скалярные, так ивекторные команды (С-120, ЕС-1095, ПС-3000).В 1976 г. начала работать ЭВМ Cray-1 (конструктор Саймур Крей) с революционной для того времени векторной архитектурой.
Вычислители данного класса (PVP, parallel vector processing) в настоящее время являютсяосновой мультипроцессорных систем, характеристики которых неоднократно находились на вершине рейтинга супер-ЭВМ.Основой Cray архитектуры являются две идеи:- функциональные устройства (ФУ, АЛУ) являются специализированными однофункциональными векторными конвейерами;- аргументами вычислений являются специальные векторные регистры,хранящих массивы (векторы) данных.ЭВМ Крей-1 имеет 12 ФУ, восемь из которых могут работать в режимезацепления конвейеров и кроме, обычных регистров, имеет восемь 64разрядных V регистра по 64 слова.
Память содержит 1 млн. 64 разрядныхслов, расслоение по 16 банкам. Время такта ЭВМ 12.5 нс., цикл памяти – 50нс. Производительность ЭВМ 20 – 60 млн. операций в секунду.В настоящее время только на вычислителях этой архитектуры можнодобиваться сверхвысокую производительность векторных программ, работыв данном направлении проводятся в фирмах Cray и NEC. Архитектура NECSX-6 (35.86 Тflop) интересна тем, что одна модель этой системы некотороевремя возглавляла рейтинг самых высокопроизводительных вычислительных систем - ТОР500.Пособие 17.09.0944Данная ЭВМ - Earth Simulator состоит из 640 процессорных узлов, которые соединены между собой переключателем (12.3 Gв/s * 2).
Процессорный узел состоит из 8 арифметических процессоров и оперативной памятиобъемом в 16 Гбайт, разделенной на 2048 банков (SMP-архитектура). Арифметический процессор (производительность 8 Гфлопс) имеет суперскалярный вычислитель с кэш-памятью 2*64 Кбайт и 8 векторных вычислителей.Каждый векторный вычислитель имеет 72 векторных регистра по 256 элементов каждый и 6 конвейерных устройств (для сложения, умножения, деления, логических операций, операций маскирования, чтения/записи). Форматы чисел с плавающей запятой 32, 64, 128 (только для скалярного процессора) бит. Система имеет дисковые массивы на 250 Тбайт и ленточную библиотеку на 1.5 Пбайт (1 Пбайт = 1015 байт).По такой же архитектуре выполнена супер-ЭВМ SX-8, которая на октябрь 2004 г. являлась самой мощной ЭВМ в мире. Ее производительность –65 триллионов операций в секунду (Тflops).Достоинствами векторно-конвейерных вычислителей является высокая исверхвысокая производительность, однако эта производительность достигается только на регулярных вычислениях, так как эти вычислители есть специализированные машины.4.4.
Конвейеризация командВ конвейерных архитектурах ЭВМ устройство обработки команд УУявляется таким же конвейером, как и другие функциональные устройства.Работа устройства управления, так же как и АЛУ, разбивается на независимые этапы выполнения. Грубая схема разделения процесса выполнения команды на независимые конвейерные этапы такова.1. Выборка команды.2. Декодирование и выборка аргументов команды.3. Исполнение команды.4. Запись результатов.В такой схеме при отсутствии конвейерных конфликтов время исполнения программы будет ускорено в четыре раза относительно одноэтапногоУУ.Большинство конвейеров выполняет работу каждого этапа за минимальное время, причем одинаковое на всех этапах оборудования, обычно замашинный такт синхронизации.
Однако замечено, что выполнение некоторых конвейерных операций занимает менее половины машинного такта. Тогда при удвоении частоты внутренних тактовых импульсов можно было бывыполнить две работы за один машинный такт. Такая схема конвейера называется “суперконвейерной” (superpipelined), примером её реализации можетслужить микропроцессор MIPS R4000. Конвейеры процессоров с суперконвейерной архитектурой имеют еще большее число ступеней, что позволяетупростить каждую из них и, следовательно, сократить время пребывания вних инструкций. Считается, что в таком оборудовании каждый этап конвей-Пособие 17.09.0945ера разбивается еще на внутренние микроэтапы, Каждый микроэтап исполняется за время этих внутриэтапных временных интервалов. Так как времяконвейерной работы должно быть одинаково на всех этапах конвейера,включая и микроэтапы, то тогда все этапы конвейера должны содержатьодинаковое число микроэтапов и, следовательно, можно принять внутиэтапную частоты за единую меру.
Когда предлагается в суперконвейерной схеме сохранить две тактовой частоты: машинный такт и внутриэтапный такт,то это напоминает преодоление пропасти двумя прыжками. Эту не оченьубедительную схему (а почему бы не выставить в единую конвейерную цепочку и микроэтапы?) часто показывают в схемах конвейеров векторныхмашин. Длина конвейера команд различна и определяется архитектуройЭВМ. В процессоре Pentium 4 применена так называемая “гиперконвейерная” архитектура: конвейер, по которому проходят инструкции от моментасчитывания кода инструкции из памяти до ее завершения, состоит из оченьбольшого числа ступеней. Гиперконвейер Pentium 4 состоит из 20 ступеней;для сравнения – “суперконвейер” процессоров P6 имеет 10 ступеней, а конвейер Pentium - всего 5. Здесь "супер" и "гипер" - определения, используемые фирмой изготовителя оборудования.
Наверное, следует называть гиперконвейерной архитектурой мега-конвейер всего мультипроцессора сумму всех исполняемых при выполнении программы ступеней УУ и АЛУ.А термин “суперконвейерная архитектура” оставить только для обозначениямикропроцессоров с умножением частоты работы внутри конвейерных этапов.Увеличение числа ступеней – этапов конвейера команд приводит к увеличению числа конвейерных конфликтов. Конвейерные конфликты УУимеют те же свойства, что и для АЛУ, и они разрешаются одинаковыми методами, например, исполнением с изменением последовательности инструкций (out-of-order execution).
Однако имеется и ряд особенностей. Например,при конвейерной обработке команд код операции декодируется на второй(по крайней мере, не на первой) стадии, поэтому команда безусловного перехода будет идентифицирована после того, как на первую стадию конвейера будет выбрана команда, текстуально следующая после команды перехода.Для оптимизации программы здесь применяется техника отсрочки ветвления – после команды перехода в программу помещается пустая команда.Естественно, оптимизирующие алгоритмы компиляторов ищут для этойпозиции полезные команды программы, которые могут быть выполнены, ненарушая правильность программы, то есть они включаются в схему переупорядочивания последовательности команд.Положение усложняется для команд условного перехода. Так, для условного оператора:IF (A<B) GO TO L; S1; L:S2;еще до вычисления значения условного выражения (А<В) необходимо решать задачу о выборе ветки исполнения программы: заполнении конвейераПособие 17.09.0946команд кодами операторов S1 или S2.
В процессорах прежних поколенийинструкция перехода приостанавливала конвейер (выборку инструкций) доисполнения собственно команды перехода. При этом, естественно, теряласьпроизводительность. Банальная схема ускорения - вычисление условия перенести, по возможности, на ранние стадии выполнения программы. Статистика показывает, что такое переупорядочение порядка выполнения командвозможно не часто. Следующее простое решение – начать обработку однойиз ветвей (любой) не дожидаясь окончания вычисления условия.