Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции!!!.doc
Скачиваний:
9
Добавлен:
27.09.2019
Размер:
1.76 Mб
Скачать
  1. Традиционные архитектуры эвм на примере 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-команда:

R 1, 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)

Арифметические команды

A R, addr //слож

S R, A //вычит

M R, A //умн

D R, A //дел

В R заложены два рег-ра: R всегда чётно, операнд в R+1, множ-ль в A, рез-т – в R и R+1.

16-и разрядные команды

AH R, A

SH R, A

MH R, A // Команды DH R, A НЕТ!!!

Вещественные

AE, SE, ME, DE R, A – для полуслова

AD, SD, MD, DD R, A – для слова (word)

Логические

N R, A – and

OR R, A

XOR R, A

Пример.

c:=a<b

L R1, a

S R1, b //a-b

L R2, =F'1' //c:=1

BC 2, M //2 – маска перехода (<)

L R2, =F'0' //c:=0

Организация цикла

M: … BXLE R1, R2, M // переход по <=, R1 – счетчик, в R2 – шаг, в следующем за R2 – верхний предел.

M: … BXH R1, R2, M //переход по > (шаг вычитается)

Итого

1) Память тратится впустую

2) IBM сделали машины от больших и до маленьких с одинаков. Сист. Команд

3) У-ва I/O отделены, процессор заказывает файл(бывет нескольких типов), котор мож. быть на неважно какой технике

  1. Risc, cisc – компьютеры

RISC (reduced instruction set computer)

«Суперскалярная архитектура», много исполнительных блоков, способных работать параллельно над различными инструкциями (MIMD). (все команды в одном кристале)

Машина, в которой только однотактные команды (сложение, вычитание, логические, регистровые пересылки – всего около 30 команд). Все такие команды зашиты в один кристалл (раньше в кристаллах не умели делать много вентилей (триггеры, элементы Шеффера…)). Умножение, переходы – отдельно (из простых команд). Эти команды редкие  не сильно замедляют работу.

Итак, принципы RISC:

1. все команды за один такт

2. все команды одинаковой длины (32 бита) (водопроводу всё равно, он может работать и с командами разной длины);

3. много регистров;

4. программировать для RISC можно только на языке высокого уровня (high-level language).

Программа длиннее, чем на обычных машинах примерно в 2-2.5 раза. RISC программа в 4-5 раз быстрее, чем CISC.

CISC (complicated instruction set computer)

«Скалярная архитектура», за один такт – только одна команда (SIMD).

Предусмотрены команды для всех возможных действий. Выигрыш в памяти, программа проще. Раньше в один кристалл помещалось мало команд

Сейчас в RISC много команд (порядка 256) и нек. Команды не обяз. за один такт

  1. ITANIUM

Itanium 1,2 (1 – в 2000г)– представители EPIC архитектуры, она же IA64.

Основные посылки Epic:

    1. Основана на идеях VLIW

    2. Минимизация предсказаний переходов

    3. Явное указание //’но исполняемых команд (компилятор объедин.в сязки)

    4. Минимизация задержек при доступе к данным, путем обеспечения их равномерной подкачки

Итак рассмотрим отличия Itanium от традиционной x86 архитектуры:

-простые команды одинаковой длины

  • Порты :

    • 3B – Branch

    • 2M – работа с memory

    • 2I – c integer

    • 2F – c float

-команды идут в связке - шаблон + двумя блоками по 3 команды T,I1,I2,I3 каждая по 40 бит, сотоит из

полей opcode - 14(или 16) B -6, R –7(6),R –7(6),R –7(6)

  • тег связки .

Научная MFI MFI, 12 за такт (М-читает(или записыв), F- float I- записывает B-вертится)

Бизнес MII MBB, 8 за такт

-кроме предсказания переходов используется предикатный метод (заводятся однобитовые предикатные регистры и просчитываем несколько веток сразу). То, надо ли условный переход обрабатывать предикатным методом, решает компилятор. ( 6 бит предикат => 64 парных предикатных регистра. Команды с if else считываются водопровдом без проблем, условию соотв. предикатн. переменная, если ветка if else не нужна, то вместо команды ничего не делаем)

- загрузка данных осуществляется не только по требованию, но и по заявке. Если exception то проверяем не была ли эта data случайно загружена(выполнена) раньше – (?)

Архитектура: [Кеш+TLB(//отвечает за переадресацию страниц)]=>[буфер распределения]=>[3 порта для инструкций ветвления, 2 порта для инструкций работы с памятью, 2 порта для целочисленных инструкций, 2 порта для float инструкций]=>[блок отображения регистров]=>[3 исполнителя переходов (работают с предикатными регистрами – 64шт), 4 целочисленных исполнителя (работают с 128 рег. целых), 2 float исполнителя (+128 float рег.)].

Если результат команды используется непосредственно в качестве операнда для следующей, то он помещается в спец. Быструю память – scouboard.

В Itanium есть конвейер (10 стадий):

1. – фронтальная часть [IPG-генерация счетчика команд][FET-выборка][ROT-вращение(переименование) регистров]

2. – доставка команд [EXP-доп. декодирование][REN-переименов-е рег-ров]

3. – доставка операнда [WLD-декод-е оп-дов][REG-чтение р-ров]

4. – выполнение [EXE-вып-е][DET-опред-е исключ-й][WRB-запись(обратная)]

В Itanium есть не только обычной счетчик переходов, но и счетчик множественного перехода. Используется несколько уровней кеша (16кб + 16кб, 96кб, 4Мб). Используется WriteBack – отложенная запись (сначала пишем в кеш, а потом уже по мере возможности сгружаем в память).

  1. HLL-компьютеры

В HLL-компьютерах команда if, вызов процедуры, вырезка a[i] осуществляются за одну команду. Правда, это усложняет машину.

Первая такая машина была сделана в СССР Мир-1

1965 – "Мир-1" (академик Глушков). Для "Мир-1" – специальный символьный язык "Аналитик".

1968 – "Мир-3": 100 тыс. опер./сек. Выделена фаза предварительного анализа программы(бинарное дерево)

1970-е – США: "Борроуз", поддерживала Алгол-68, тестирование (к каждому слову – 2 бита, по которым можно было определить, инициализирована переменная или нет).

1970 – СССР: "Эльбрус", тестирование (8 бит), общая архитектура, команды отличались от "Борроуза". В ПВО, первая сбила ракету. (1982 рассекретили) Автокод, Ф32,Ф64; сложение на 16-ти схемах, потом выбирали р-т, но были и команды “+”, ”+цел”, ”+вещ”

iAPX423: должна была делать 10 млн. опер./сек., делала 100 тыс. Семиуровневая адресация, короткая/длинная база/смещение. Все проверки выполнялись, где только можно  тормозила.

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

Можно взять одну предметную область и для неё сделать HLL-компьютер. Специализированная машина должна быть сначала хорошей, а потом специализированной.