- •Устройство эвм
- •Процессорор
- •Микропрограммирование
- •Способы ускорения традиционных эвм
- •Нетрадиционные архитектуры эвм
- •//Архитектура бесперспективна, ибо запрограммировать задачу для такой машины по-видимому невозможно.
- •Матричные
- •Векторные
- •Конвейерные
- •Торовые (Grid)
- •История эвм
- •Традиционные архитектуры эвм на примере ibm/360
- •Risc, cisc – компьютеры
- •Основные принципы построения hll-машины «Самсон»
- •Организация памяти
- •Команды чтения-записи
- •Арифметические команды
- •Логические команды
- •Передача управления
- •Организация циклов
- •Работа с вырезками
- •Реализация виртуальной памяти
- •Реализация вызовов процедур
- •Сoroutine - сопрограмма
- •Парал. Процессы
- •Понятие технологии программирования
- •Жизненный цикл программы
- •Реализация
- •Постановка задачи, оценка осуществимости
- •Планирование
- •Управление
- •Проектирование, этапы проектирования
- •Вопрос 20(7). Технология Real. Статическая модель.
- •Конвертер из sdl в объектный программный код
- •Качество разработки по
- •Стандарт качества iso
- •Стандарт cmm
- •29. Организация коллектива разработчиков
- •30.Тестирование программ
- •31.Психология программирования
- •32.Документирование
- •33. Case-технологии
- •34.Сопровождение
- •35.Системы реального времени
- •36.Понятия сбоев и отказов
- •37.Инструментальная и целевая эвм
- •38.Комплекс вычислительных средств
- •39.Параллельные процессы, работа с временными интервалами
- •40.Организация вычислительных процессов
- •1.Процессы.
- •2. Данные.
- •41.Технология rtst
- •42.Технология real. Статическая модель
- •43.Технология real. Динамическая модель
Традиционные архитектуры эвм на примере 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 отделены, процессор заказывает файл(бывет нескольких типов), котор мож. быть на неважно какой технике
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) и нек. Команды не обяз. за один такт
ITANIUM
Itanium 1,2 (1 – в 2000г)– представители EPIC архитектуры, она же IA64.
Основные посылки Epic:
Основана на идеях VLIW
Минимизация предсказаний переходов
Явное указание //’но исполняемых команд (компилятор объедин.в сязки)
Минимизация задержек при доступе к данным, путем обеспечения их равномерной подкачки
Итак рассмотрим отличия 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 – отложенная запись (сначала пишем в кеш, а потом уже по мере возможности сгружаем в память).
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-компьютер. Специализированная машина должна быть сначала хорошей, а потом специализированной.