Конвейерные
Векторные
Матричные
Very long instruction word (VLIW)
Машинная команда – очень длинная. В одной команде может быть 8 арифметических команд, 7 пересылок.
a*b+c/d – плохой порядок вычислений: сначала запускается 3_хтактная команда (умножение), на следующем – 4_хтактная (деление), складывать можно только через 5 тактов.
c/d+a*b – лучше: сначала запускается 4_хтактная команда, на следующем такте – 3_хтактная, складывать можно через 4 такта.
//Зам.: предполагается многопроцессорность. Расшифровка каждой команды – 1 такт.
Метод сетки: область нарезается на квадраты, вычисляются значения в вершинах квадратов, потом интерполируются значения в центре квадратов, затем квадраты уменьшаются.
Для решения задач этим методом в 1964 году в США построена машина Illiac 4: матрица 8x8, в каждой ячейке – компьютер со своей памятью и процессором.
В СССР была сделана ПС 2000.
//Замечание: на матричных архитектурах, как это ни странно, можно выполнять быстрое умножение матриц, если эту задачу распределить между процессорами. Умножение примерно n3, P процессоров n3/P + o(n2)
Удобны, когда над разной data нужно сделать одни действия
Машина ПС 3000 (Трахтенберг): восемь компьютеров, умеют складывать длинные вектора за log, скалярное произведение векторов.
Удобны, когда над разной data нужно сделать одни действия
Например 5 блоков - Выборка команды, Декодирование, Выборка операндов, Выполнение команды, возврат р-та
ATLAS - 1962
СRAY1 – 1967: 40 млн. опер. в сек. по паспорту, на специальных задачах – 100 млн. опер. в сек. Главная особенность – большое количество сумматоров.
Сложить три вектора a, b, c:
1 такт: a1+b1
2 такт: a2+b2 +c1
3 такт: a3+b3 +c3 …
Похожа на сетку, только у каждой вертикали и горизонтали соединили концы или на кольцо (?)
Язык “Окам”, ориентир. На параллельн. Вычисление, сейчас понятие transputer (только начинается)
- История ЭВМ
1832 – машина Ч. Беббиджа; механическая; программы –в памяти
1936 – релейная ЭВМ Z1, Германия, автор – Конрард Зуц
1943 – МАРК1, релейная, США, реализация идеи Бебиджа, программы – на перфолентах, для организации циклов – склеиваем перфоленту в кольцо.
1946 – ENIAC – первая электронная ЭВМ, США, в разработке принимал участие Тьюринг, построена на триггерах (триггеры изобрел проф. Бонч-Бруевич в 1918 г)
1951 – МЭСМ, Лебедев, программы – в памяти
1953 – БЭСМ, Лебедев, Москва, 5000 оп/с,
1956 –… - серия УРАЛ 1,2,4,…
1958 – M20 (на ней рассчитывали полет Гагарина)
1964 – IBM (360) + OS
1967 – БЭСМ 6, Лебедев
1982(1974) – Эльбрус
1987 – Самсон
//Ворованные машины: ЕС ЭВМ ряд 1 = IBM/360
ЕС ЭВМ ряд 2 = IBM/360
СМ 1,2 = HP
СМ 3,4,14,20 = Dell (PDP11)
Процессор: раздельная память команд и память данных. “Гарвардская схема” (Лебедев 1956)
- Традиционные архитектуры ЭВМ на примере IBM/360
IBM360 – 1964, первая серия с одинаковым набором команд для больших и мал. машин.
H – 16 – полуслово
F – 32 - слово
E – 32 float
D – 64 float
16 регистров общ. назнач (0-15), 4 Плав.регистра 0,2,4,6
L – загрузить из памяти
ST – загрузить в память
A – добавить
S – вычесть
M – умножить
D – разделить
BC – уловный переход
RX-команда:
КО – код операции
R – куда положить результат
X – если есть индексация (массивы)
B – база (регистр, в котором хранится база)
D – смещение
Формат не используется наполовину (X – используется редко, D – 12 бит, т.е. 4096 байт, что много, т.к. процедура 25 строк, переменных не более 10, в С только 2 вида видимости => можно использ 1 бит => 3 бита лишних).
RR-команда:
R1, R2 – операнды
BC M – переход на метку M
BAL R, M – передать управление на метку M, адрес следующей команды запомнить в R
BALR R1, R2 – передать управление по адресу в R1, адрес следующей команды запомнить в R2
Маска перехода: 4 бита - | = | > | < | переполнение |
A 5, 20(2,3) – берем (число по адр. баз.регистр 2 + смещение + [3]) прибавляем [5] и р-т в 5-й реистр
SR 3,3
LA 4,4
SR 1,1
M: ST 1,20(2,3)
BXLE 3,5,M //data(3) + data(4) <= data(5)