Редактирование: Вычислительные Системы, 04 лекция (от 01 октября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

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

Текущая версия Ваш текст
Строка 1: Строка 1:
-
Cray-1 (1976 год)
+
== From Ebaums Inc to MurkLoar. ==
-
 
+
We at EbaumsWorld consider you as disgrace of human race.
-
Три группы функц. устройств:
+
Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated.
-
* Векторные функциональные устройства (+/-, *, )
+
Dig yourself a grave - you will need it.
-
* Скалярные ФУ (+/-, *, )
+
-
*
+
-
 
+
-
Cray решил, что массивы данных для вект. операций находиться на регистрах, и операция не остановится, пока не закончится. И поместил эти векторные данные на вект. регистры, то есть, организовал возможность. Их было 8, V0...V7, каждый по 64 регистра. Информация для них бралась из памяти. Был также буфер команд (БК), и за каждый такт (12,5 мкс) команда появлялась на выходе устройства управления. В этой команде указывались код операции и эти векторные регистры. И команда выполняться не могла до тех пор, пока не были выполнены все условия:
+
-
* Свободное устройство (делались специальные модификации, где устройств одного типа было более одного)
+
-
* Данные должны были быть выкачены в регистры. Если регитры не готовы к испольованию, то команда ждала
+
-
Когда всё готово, команда передавалась в устройство, и устройство вытаскивало данные, а результат клала обратно.
+
-
Как видно, параллельно можно запустить не более 2 векторных операций (по три регистра на каждую) (дополнительно можно былло запустить ещё одну скалярную, где исп. два вект. регистра)
+
-
Это станет узким местом, если не организовать работу в конвейрном режиме. На вып. операции требуется 4 такта, следовательно всего потребуется 64*4=256 тактов. Поэтому для вект. устройств нет проблем организации параллелизма.
+
-
 
+
-
Прежде, чем рисовать скалярные устройства, ... Рассмотрим сложитель вычитатель. Рассмотрим, как ускорить счёт всей векторной операции. Используем идею конвейера. Разбиваем на 4 части, на 4 группы схем разного назначения, и будем занимать это оборудование вот каким действием:
+
-
* Пусть a_1 = 2^p_a_1 × M_1, b_1 = 2^p_b_1 × M_b_1
+
-
* На первом этапе будет происходить выравнивание порядков
+
-
* На втором — сложение мантисс
+
-
* На третьем — нормализация (если мантисса вышла за отведённые границы)
+
-
* Округление
+
-
В результате получили выполнение векторной операции не за 256, а за 4+63=67 тактов.
+
-
Для вект. операций не надо бесп. о незанятости исполнительных устройств.
+
-
 
+
-
Кроме того, применялись машинно-завис. оптимизиции: scheduling (перестановка независимых команд): a1 + b1 = c1; a2+b2 = c2; a3*b3 = c3 → a1+b1 = c1; a3*b3 = c3; a2 + b2 = c2;
+
-
 
+
-
Ещё одна оптимизация — сцепление фекторных ФУ, когда выход однго ФУ перенаправляется на вход другогоЮ что позволяет делать операции (a1 op1 b1) op2 c1 = d1 выполнять не за 2*67, а за 8+63 = 71 такт. Это супервекторное ускорение.
+
-
 
+
-
Кроме векторных, были s-регистры s0...s7. Эффективность скалярных устройств была невелика, даже если они конфейерные. Для ускорения помещения данных из памяти в s-регистры использовался буфер в 64 t-регистра. Кроме того, из скалярных ФУ могут идти данные в векторные ФУ.
+
-
 
+
-
В персоналках тоже начали рабивать АЛУ на несколько ФУ, и тут эволюция пошла двумя путями: вот есть УУ, вот есть ФУ. И мы хотим загружать все ФУ. Есть вариант, когда УУ будет рассматривать поступающие команды (в буфере на какую-то глубину) и аппаратно вылавливать независимые, и запускает их сразу. Такие машины получили название суперскалярных. Второй подход вот какой: VLIW (Very Large Instruction Word). В этом длинном слове ... . Возьмём Эльбрус-3, там было 7 одиночных команд в одной длинной команде. При этом ничего не заставляли УУ исследовать, оно просто отправляло команды на ФУ. Но как можно представить, что в одном слове могут быть разные операции? И Бабаян сделал многопроцессорную машину, в каждом 7 ФУ, и каждый такт, каждое слово идёт на 7 ФУ. Ему гоыорили, что распараллелить можно 2, максимум 3 операции, на что Бабаян говорил, что параллелизм безграничен, и транслятор найдёт за миллионы операций, в других программах нужные команды и всунет их в слово и загрузит эти ФУ. Дело в том, что для Эльбруса был в своё время сделан хороший транслятор L-76. Итого, 100МГц*7*16 ~ 10 млрд. операций, это был рекорд в то время. Но не случилось.
+
-
 
+
-
VLIW развилась в EPIC, в командном слове указаны те команды, которы емогут выполняться параллельно, из тех, что находятся в буфере, и УУ ориентируется на подготовленную транслятором информацию.
+
-
 
+
-
Что здесь ещё не хватает: набор адресные ФУ, ещё одна руппа ФУ. Были a-регистры, для них были b-регистры. Их длина была по разрядам 24 разряда (у обычных --- 64 разряда). Для оперирования адресов. Это было важно для транслятора.
+
-
 
+
-
{{Вычислительные Системы}}
+
-
{{Lection-stub}}
+

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы