ПОД (пособие) (1184372), страница 8
Текст из файла (страница 8)
Адресные регистры 24-разрядные, их всего восемь; 64-разрядных5-регистров также восемь и восемь 64-элементных V-регистров, причем каждый элементвектора содержит 64-разрядное слово. Время обращения к регистру всего лишь 6 нc. Всистеме имеется еще две группы промежуточных регистров (между ОЗУ и А-, S- и Vрегистрами): 24-разрядные В-регистры и 64-разрядные Т-регистры, на рисунке непоказанные. Все эти регистры позволяют конвейерным устройствам работать смаксимальной скоростью без непосредственного обращения к ОЗУ: все операндыполучаются из регистров и результаты отправляются также в регистры. Благодарярегистрам конвейерные устройства связываются в цепочки, т. е, поток результатовзасылаемых в векторный регистр одним устройством, одновременно служит входнымпотоком операндов для другого устройства; исключаются промежуточные обращения кпамяти.
Это является еще одной отличительной особенностью системы CRAY,повышающей ее производительность.Состав операций универсальный, только вместо деления используется операциявычисления обратной величины. Общее число операций 128. Команды двух форматов – 16и 32 разряда. Арифметические и логические команды имеют 16-разрядный формат 7разрядов – код операции и по 3 разряда для адресов регистров операндов и результата,причем 6 разрядов адресов регистров операндов в совокупности с дополнительными 16разрядами используются для обращения к основной памяти и командам перехода.Зацепление конвейеров.По версии ТомилинаСколько здесь можно разогнать? Конечно, в основном разгонка идёт здесь.
Частота у Crayбыла 80 МГц, это приблизительно 80 миллионов операций в секунду с плавающей запятойпри выполнении векторных операций. Сколько операций можно запустить параллельно?Одна операция требует 3 векторных регистра, всего их 8, значит 2 операции.
Такимобразом, до 160 MFlops можно было раскрутить Cray-1. Это, конечно, очень серьёзное былоприобретение в мировом вычислительном хозяйстве, и потому и названа была«супермашина».На самом деле можно было больше. И это «больше» достигалось вот каким способом:25Результат сложителя попадает не на регистр, а на умножитель. Туда же приходят ci. Отсюдаэто идёт на делитель, куда подсовываются di. И отсюда выскакивает на векторный регистрQ.
Итого, сколько нам нужно векторных регистров: 1 — вектор A, 2 — вектор B, 3 — векторC, 4 — вектор D и 5 — вектор Q. Даже пяти хватает, чтобы сколько получить операций всекунду? Через 12 тактов появится q1 и плюс ещё 63. Таким образом, через 75 тактов у васпоявится результат скольких операции? 64 на 3 = 192 операций. Таким образом разогналипочти до 240 MFlops (чуть меньше). Но это ещё не предел. На Cray’е можно было вопределённых случаях получать существенно больший результат. Вот это называется«зацепление работы векторных функциональных конвейерных устройств» или«супервекторная производительность», за счёт вот такой работы.
Чуть сложнее, конечно,оборудование работает. Но вот это очень важный момент векторно-конвейерных машин ион тут реВалоит зэотвиа нд. в а новых уровня параллелизма (вертикальный — количествофункциональных устройств, и горизонтальный — конвейер) и привело к высокойпроизводительности машины, которую изобрёл Крэй, и это всё было почтительнопоказано, мировое достижение, и появилось слово «суперкомпьютер».Из интернетаВекторная обработка увеличивает скорость и эффективность обработки за счет того, чтообработка целого набора (вектора) данных выполняется одной командой.
Скоростьвыполнения операций в векторном режиме приблизительно в 10 раз выше скоростискалярной обработки. Для фрагмента типаDo i = 1, nA(i) = B(i)+C(i)End Doв скалярном режиме потребуется сгенерировать целую последовательность команд:прочитать элемент B(I), прочитать элемент C(I), выполнить сложение, записать результат вA(I), увеличить параметр цикла, проверить условие цикла. В векторном режиме этотфрагмент преобразуется в: загрузить порцию массива B, загрузить порцию массива C (этидве операции будут выполняться со сдвигом в один такт, т.е. практически одновременно),векторное сложение, запись порции массива в память, если размер массивов больше длинывекторных регистров, то повторить эту последовательность некоторое число раз.Перед тем, как векторная операция начнет выдавать результаты, проходит некоторое время(startup), связанное с заполнением конвейера и подкачкой аргументов. Чем больше длина26векторов, тем менее заметным оказывается влияние данного начального промежуткавремени на все время выполнения программы.Векторные операции, использующие различные ФУ и регистры, могут выполнятьсяпараллельно.Зацепление функциональных устройствАрхитектура CRAY Y-MP C90 позволяет использовать регистр результатов векторнойоперации в качестве входного регистра для последующей векторной операции, т.е.
выходсразу подается на вход. Это называется зацеплением векторных операций. Вообще говоря,глубина зацепления может быть любой, например, чтение векторов, выполнение операциисложения, выполнение операции умножения, запись векторов.Векторно-конвейерные вычислители.Реализация команд организации цикла (счетчик и переход) при регулярной работе сданными - накладные расходы и препятствие опережающему просмотру на обычных,скалярных вычислителях, показывает, что такие вычисления эффективнее выполнять наспециализированном векторно-конвейерном вычислителе.Если вместо цикла:DO L=1,N A(I) = B(I)+C(I) ENDDOиспользовать запись алгоритма в виде векторной команды сложения вида:VADD(B,C,A,N), то векторный вычислитель, выполняющий такие команды, будетвырабатовать результаты на каждом такте. В таком вычислителе имеется один (илинебольшое число) конвейерный процессор, выполняющий векторные команды путемзасылки элементов векторов в конвейер с интервалом, равным длительности прохожденияодной стадии обработки.
Скорость вычислений зависит только от длительности стадии и независит от задержек в процессоре в целом.Так как конвейер для однотипных операций дешевле и быстрее чем длямногофукциональных,товыгодноихделатьспециализированнымиоднофункциональным: например, только для + или только для *. Для их совместногоработы используется принцип зацепления конвейеров. Так, в ЭВМ Крей-1 имеется 12конвейеров, из них 8 могут быть зацеплены, то есть результаты вычисления конвейерамогут входными аргументами для другого. Операнды (результаты) находятся в памятиверхнего уровня или на регистрах.
Для операндов задается: базовый адрес вектора, числоэлементов, тип данных в каждом элементе, схема хранения вектора в памяти. Некоторыевекторные машины могут работать с двух-трех мерными массивами.Производительность конвейерных вычислителейВремя выполнения отдельной скалярной операции на конвейерном вычислителе равно: Т =S + K, где K - время работы, за которое конвейер выдает очередной результат, а S - времязапуска конвейера, время заполнения конвейера, которое без учета времени подготовкиоперандов, равно: S = K*(m-1), где m - число ступеней конвейера. Производительностьконвейерного вычислителя на скалярных операциях (число результатов, выдаваемых заединицу времени) равна: R = 1/(S + K).Время выполнения векторной операции на конвейерном вычислителе равно: Т = S + K*N,где N - длина вектора.
Производительность конвейерного вычислителя при векторнойработе (число результатов, выдаваемых за единицу времени) равна: R = N/(S + K*N),асимптотическая производительность Rб = 1/K.Например, при К = 10 нс, Rб = 10**8 результатов/сек, т.е. 100 мегафлопов. Графикидостижения такой производительности для S = 100 нс. и S= 1000 нс. показывают, что они27имеют различное расстояние до асимптоты. Для оценки этого эффекта используетсявеличина N1/2, определяемая как длина вектора, для которой достигается половинаасимптотыческой зависимости. Для приведенного выше примера N1/2 = 100 для S =1000 иN1/2 = 10 для S = 100.ДополнениеПо мере освоения средств сверхскоростной обработки данных разрыв междусовершенствованием методов векторизации программ, т.е.
автоматического преобразованияв процессе компиляции последовательных языковых конструкций в векторную форму, ичрезвычайной сложностью программирования коммутации и распределения данных междупроцессорными элементами привел к достаточно жесткой реакции пользователей вотношении матричных суперЭВМ - широкому кругу программистов требовалась болеепростая и "прозрачная" архитектура векторной обработки с возможностью использованиястандартных языков высокого уровня типа FORTRAN. Решение было найдено в конце 60-хгодов, когда фирма Control Data, с которой в то время сотрудничал Крей, представиламашину STAR-100, основанную на векторно-конвейерном принципе обработки данных.Отличие векторно-конвейерной технологии от архитектуры матричных ЭВМ заключается втом, что вместо множества процессорных элементов, выполняющих одну и ту же командунад разными элементами вектора, применяется единственный конвейер операций, принципдействия которого полностью соответствует классическому конвейеру автомобильныхзаводов Форда.
Даже такая архаичная по современным понятиям суперЭВМ, как STAR-100,показала предельную производительность на уровне 50 MFLOPS. При этом существенно,что векторно-конвейерные суперЭВМ значительно дешевле своих матричных"родственников". К примеру, разработка и производство ILLIAC IV обошлись в 40 млн.долл.
при расходах на эксплуатацию порядка 2 млн. долл. в год, тогда как рыночнаястоимость первых суперкомпьютеров фирм CRAY и Control Data находилась в пределах 10- 15 млн. долл., в зависимости от объема памяти, состава периферийных устройств и другихособенностей конфигурации системы.Второй существенной особенностью векторно-конвейерной архитектуры является то, чтоконвейер операций имеет всего один вход, по которому поступают операнды, и один выходрезультата, тогда как в матричных системах существует множество входов по данным впроцессорные элементы и множество выходов из них.