Слайд 2Трёхадресная машина.
R1 := ; R2 := ; S := R1
⊗ R2; := S; {⊗ – операция}
Слайд 3Двухадресная машина.
R1 : = ; R2 := ; S :=
R1 ⊗ R2; := S;
Результат операции по умолчанию помещается
на место первого операнда, уничтожая его.
Слайд 4Одноадресная машина.
Нужны команды :
СЧ A1
S :=
и
ЗП A1
:= S
Слайд 5Безадресная машина.
команды:
ВСТЕК A1
R1 := ; ИЗСТЕКА A1
:= R1
Слайд 6Стековые ЭВМ
R1 := ИЗСТЕКА; R2 := ИЗСТЕКА; S :=
R1 ⊗ R2; ВСТЕК(S)
Слайд 7Безадресное кодирование команд ((a + b) * c - d)
/ e
Буферные регистры
Слайд 8Четырёхадресные, в четвёртом адресе которых дополнительно хранится ещё и адрес
следующей выполняемой команды. Собственно, адресов может быть и больше, с
помощью таких команд можно, например, реализовать функции от многих переменных
Слайд 9 Четырехадресная система кодирования практического применения не получила. Основной причиной
этого является существенное увеличение размера каждой команды и, соответственно, увеличение
объема ЗУ, необходимого для размещения программы.
Слайд 10VLIW – very large instruction word
Наличие в команде нескольких
кодов операций
Указанные команды могут реализовывать оператор присваивания вида z:=k*(x+y)
по схеме:
R1 := ; R2 := ; S := R1+R2;
R1 := ; S := S*R1; := S
Слайд 11VLIW – very large instruction word
В компьютерах с такой архитектурой
команда содержит два кода операции и четыре адреса аргументов:
Слайд 12Сравнительный анализ ЭВМ различной адресности
Какая архитектура лучше ?
Пусть необходимо
вычислить
x := a/(a+b)2
Слайд 15 Дробно-адресная архитектура
Память состоит из двух частей, каждая со
своей независимой нумерацией ячеек:
адресуемая регистровая память и основная(оперативная) память.
Слайд 16Адреса регистров - R1 и R2
Адрес основной памяти A1 или
A2.
Первый вид команд будем называть командами формата регистр-регистр (обозначается
RR),
а вторые – формата регистр-память (обозначается RX).
Слайд 17Получим команды двух форматов длины 2 и 4 байта соответственно:
Слайд 18x:=a/(a+b) 2
СЧ R1,a; R1 := a
СЧ R2,b; R2 := b
СЛ
R2,R1; R2 := b+a=a+b
УМН R2,R2; R2 := (a+b)2
ДЕЛ R1,R2; R1
:= a/(a+b)2
ЗП x,R1; x := R1= a/(a+b)2
...
Длина этого фрагмента программы равна 3*4+3*2 = 18 байт
Слайд 19Многообразием форматов команд
Современные ЭВМ обладают многообразием форматов команд. Например, на
тех компьютерах, на которых Вы сейчас выполняете свои практические работы,
реализованы около десяти форматов, а длина команд составляет от 1 до 6 байт.
Слайд 20Способы адресации
Способ адресации – это способ задания операндов
внутри машинной команды.
Мнемоника кодов операций будет указывать на способ
адресации
Слайд 22Непосредственный способ адресации.
Слайд 24Пример с разными способами адресации
Слайд 25Многообразие форматов данных
регистр – регистр (RR);
регистр – память, память
– регистр (RX);
регистр – непосредственный операнд в команде (RI);
память –
непосредственный операнд в команде (SI);
память – память, т.е. оба операнда в основной памяти (SS)
Слайд 26Базирование адресов
Пусть в программе на одноадресной машине необходимо реализовать
арифметический оператор присваивания X:=(A+B)2....
СЧ A; S:=A
СЛ B; S:=A+B
ЗП R; R:=A+B
– запись в рабочую переменную
УМ R; S:=(A+B)2
ЗП X; X:=(A+B)2
Слайд 27Базирование адресов
Пусть, например, наши переменные располагаются соответственно в следующих ячейках
памяти:
A – в ячейке с адресом 10 000 000
B –
в ячейке с адресом 10 000 001
X – в ячейке с адресом 10 000 002
R – в ячейке с адресом 10 000 003
Слайд 28Базирование адресов
Тогда приведённый выше фрагмент программы будут выглядеть следующим образом:
...
СЧ
10 000 000; S:=A
СЛ 10 000 001; S:=A+B
ЗП 10 000
003; R:=A+B
УМ 10 000 003; S:=(A+B)2
ЗП 10 000 002; X:=(A+B)2
...
Слайд 29Базирование адресов
Большинство адресов в нашей программе имеют вид B+Δ, где
число B назовём базовым адресом программы или просто базой (в
нашем случае B=10 000 000), а Δ – смещением адреса относительно этой базы.
Слайд 30
команда загрузки базы (длина этой команды 4 байта):
Слайд 31Осталось выбрать длину смещения Δ. Вернёмся к рассмотрению дробноадресной ЭВМ,
для которой реализовано базирование адресов. Например, пусть под запись смещения
выделим в команде поле длиной в 12 бит. Тогда все команды, которые обращаются за операндом в основную память, будут в нашей дробноадресной ЭВМ более короткими:
Слайд 32Область, в которой находятся вычисляемые относительно базы ячейки основной памяти,
обычно называется сегментом памяти – это сплошной участок памяти, начало
которого задаётся в некотором регистре, называемом базовым, или сегментным. Такой приём – сегментирование памяти
Слайд 33Практически все современные ЭВМ производят сегментирование памяти
Современные ЭВМ обеспечивают одновременную
работу с несколькими сегментами памяти и, соответственно, имеют несколько сегментных
регистров.
Во многих архитектурах используются специализированные регистры, т.е. определённые регистры являются сегментными, на других могут производиться операции и т.д.