- •Глава I
- •06Ласти применения эвм
- •1.6,1. СуперЭвм
- •Глава 2
- •8 Разрядов
- •11110001 11111001 11110001 11110111 А число — 6.285 запишется в память в виде слова из 6 байт:
- •Глава 3
- •Глава 4
- •Лечит узап j
- •Сверхоперативная или местная память
- •4.2. Адресная, ассоциативная и стековая организации памяти
- •Буфер входа-выхода
- •Усилители считывания-записи
- •Глава 5
- •Проклей
- •Идентификатор адреса (s байт)
- •Сектор на дискете
- •Глава 6
- •Управляющий блок автомат)
- •Глава 7
- •В цпршВляющай блок у б
- •Сумматор частичных произведений Регистр множимого
- •О vМножимое перед началом Выполнения умножения
- •Слой элементов и
- •Глава 9
- •Двойное слада па адреса о 32 бит
- •Слобо по адресу z в бит
- •Заслать в стек ад РеЗ
- •Загрузить аз стана в Pa V
- •Номер регист
- •Непосредственный операнд 1а
- •15Ю кГго 51
- •Оповещающий сив нал „Состояние
- •Блок ревастрод
- •Ветвление в макропроерамме по уело дую Акк*0
- •Макрокоманды управления последовательностью выборка микрокоманд
- •Окно процедуры
- •Регистры параметров (а) Регистры глобальных переменных |
- •1 Нуль м Знак-
- •Запоминание состояния процессора (программы)
- •Общий сигнал прерывания
- •Код приоритетного запроса
- •Маска ввоОагвывода
- •Прерывающая
- •01 23*56789 Время
- •I участка I
- •Запись льта мп
- •I Прием операндов на регистры 1
- •Умножение чисел с фиксированной точкой
- •Сложонив чисел с плавающей точкой
- •Глава 10
- •Вызов команды и модификация счетчика команд
- •Процедура тандемных пересылок
- •Однобайтная
- •16 Разрядов
- •Передача д стек а восстановление содержимого регистров
- •Команды досстаяовяения из стеки содержимого регистров
- •Блок сегментных регистров
- •Первый байт команды Второй ffaSm команды (постбайт адресации)
- •Сегментные селекторы
- •Регистры задачи и регистры дескрипторнои таблицы
- •Блок управления и контроля оп
- •Справочник страниц
- •Физическая память
- •16 Мбайт
- •Расширенная память
- •1 Мбайт
- •С каналом ес эвм
- •Связь с другой эвм
- •I Манипулятор % I Графа- I I типа „Мышь” I I построитель I
- •Глава 11
- •Интерфейс основной намята
- •Общее оборудование мультиплексного канала
- •Глава 12
- •Определения четности переносод
- •Глава 13
- •Ill:Выполнснис программы а Выполнение про ерам мы в
- •Пакеты заданий и Входные наборы данных
- •Выходные очереди разных классов в зу на дисках
- •I требует ‘'ода
- •Пользователь обдумывает | ответ системе I (новый запрос)
- •Блок управления памятью
- •Схемы совпадения
- •Шифратор номера отделения
- •Входной коммутатор
- •Коммутации
- •Сегментная таблица п-й программы
- •Векторные, средства
- •К периферийным устройством
- •К периферийным устройствам
- •Глава 15
- •Устройства Ввода- вывода
- •Процессор 2
- •Процессор 3
- •8 Векторных регистров (по 6* слова в каждом)
- •Готовности операндов
- •Глава 16
- •Комплекс абонентского пункта
- •16.2.. Классификация вычислительных сетей
- •1 Элемент
- •Время распрост- ранена*
- •Задержка сета лри коммутации пакетов[
- •Абонентская система
- •Данные пользователя
- •Сеансовый
- •Транспортный
- •Сетевой
- •Интерфейс высоког о уровня
- •Аппаратура передачи данных
- •Установление связи
- •Данные пользователя 00Длина поля и слови я обслуживания
- •Идентификатор протокола
- •7» Бшдта) Данные пользователя б вызове
- •Поток бит
- •Новый пакет (кадр)
- •Станция 1 ведет передачу
- •Передатчик Коаксиальный кйбель
- •Глава 15. Принципы организации многопроцессорных и многомашинных вычислительных систем (комплексов) и суперЭвм 489
- •1S в 7 о Слада па адресу ь
/*!елг
775
253
707
СломатьЗаслать в стек ад РеЗ
Загрузить аз стана в Pa V
РгЗХ
27Ь
538
Р*ч£
Рис. 9.7. Стековая адресация в «перевернутом стеке»: a — исходное состояние стека;б — стек после выполнения команды сЗаслать в стек изРгЗ»\ в— стек после выполнения команды сСложйть»;г —стек после выполнения команды сЗагрузить из стека вРг4»
ческое выражение слева направо и последовательно друг за другом выписываем встречающиеся операнды. Как только окажется, что все операнды некоторой операции выписаны, записываем знак этой операции и продолжаем выписывать операнды. Если операция имеет операндом результат некоторой предыдущей операции и знак последней выписан, то считаем этот операнд выписанным.
Например, выражение
Сk + l — m)(p—s) (9.3)
в ПОЛИЗ имеет вид
А
Орес к
Адрес
I
Адрес
т
Адрес
р
Адрес
е
Рис.
9.8. Программа вычисления выражения
(9.4) с использованием стековой
памяти
инициирует извлечение из стека двух (или одного) слов, выполнение над ними указанной в команде операции и засылку результата в вершину стека.
Безадресные команды на основе стековой адресации предельно сокращают формат команд, экономят память и способствуют повышению производительности ЭВМ.
Однако при такой структуре команд возникают осложнения с построением команд передачи управления и работы с периферийными устройствами.
В современной архитектуре процессоров и микропроцессоров стек и стековая адресация широко используются при организации переходов к подпрограммам и возврате от них, а также в системах прерывания. Весьма широко стеки и безадресные команды используются в вычислительном комплексе «Эльбрус» (см. гл.* 15).
Команды, процедуры и микропрограммы передачи управления в программах
Рассмотрим команды, управляющие порядком исполнения команд.
При естественном порядке после выполнения очередной команды выбирается команда, расположенная в следующей по порядку ячейке памяти. Обычно адрес команд хранится в специальном регистре, называемом счетчиком команды (СчК), содержимое которого после выполнения каждой команды автоматически увеличивается на 1, а если память имеет побайтную адресацию, то оно увеличивается на столько, сколько байт содержит текущая команда(приращение адреса команды LK).
Выборка очередной и формирование адреса следующей команды (АСК), часто называемого «продвинутым адресом», происходит (при естественном порядке) следующим образом (рис. 9.9):
РгАОП = СчК\
Счит : РгИОП = ОП [РгАОП];
РгК = РгИ ОП;
(Выполнение текущей команды)
АСКеп'СчК =C4K+Lk; 244
БП\|А
\ |5/75
Р|А *) ») М
1 * I |&/я|
| А S) 9) \м\м\
А
в)
Рис.
9.10. Упрощенные структуры команд
перехода безусловного (а), безусловного
по косвенному адресу (б), условного
j(e), безусловного с
возвратом (г) и команды «Выполнение»
(д)
Рис.
9.9. Формирование адреса следующей
команды при естественном порядке
выборки команд и при его нарушении
командами перехода и командой «Выполнение»
Команды перехода (передачи управления). Известны многочисленные варианты команд перехода, однако общий принцип состоит в том, что адресная часть команды перехода непосредственно или после суммирования с содержимым базового регистра передается в счетчик команд, и, следовательно, после данной команды может быть выполнена команда из произвольной ячейки памяти, номер которой определяется адресной частью команды перехода.
Для упрощения изложения материала рассмотрим процедуры выполнения команд переходов без относительной адресации.
Различают два основных вида команд перехода: безусловныйпереход (БП) иусловный(УП). Упрощенные структуры этих команд показаны на рис. 9.10.
Команда БП(рис. 9.10, а) совершает переход всегда независимо от каких-либо условий. Обыкновенно следующей за командой БП выполняется команда, адрес которой указан в адресной части .команды БП, т. е.
АСКвп СчК = РгК [А];
Другим вариантом команды БП является безусловный пере-ход по косвенному адресу(БПК) (рис. 9.10,б). На косвенную адресацию указывает код операции команды или специальное поле в формате команды, определяющее тип адресации. Управление передается команде, расположенной в ячейке, адрес которой указан в адресной части команды БПК. В этом случае вы
полняется следующая процедура:
РгАОП = РгК[А\\
Спит : РгИОП = ОП[РгАОП];
АСКбпк : Сч1< = РгИОП [А];
При условном переходе адрес следующей команды зависит от выполнения некоторого условия. Обычно, если условие выполняется, происходит переход к команде по адресу, указанному в адресной части команды УП. В противном случае выбирается следующая по порядку команда, адрес которой определяется, как обычно, содержимым СнК, увеличенным на приращение адреса команды LK. Так же как и при БП, в команде УП могут использоваться относительная и косвенная адресации.
Условия перехода (например, результат предыдущей команды равен, больше или меньше 0, переполнение разрядной сетки и др.) задаются кодом операции УП или в виде отдельного поля маска условия М в команде УП (рис. 9.10, в). В этом случае следующая команда определяется по правилу
если Ус [М] = 1 то АСКуп : : = И) иначе
АСКеп СчК = ChK + Lk;
Здесь Ус [М] —логическая функция (условие), заданная (заданное) маской М. Если условие перехода задается кодом операции команды, то в приведенном выражении Ус [М] надо заменить на Ус [КОп]. «
Обычно выполнение машинной команды сопровождается выработкой кода признака результата ПР, формируемого в специальном регистре РгПР. Команда УП анализирует сформированный предыдущей командой ПР. Смысл кодов ПР может быть установлен различным для разных операций. Например, в ЕС ЭВМ двухразрядный признак результата ПР при выполнении арифметических операций принимает значения, приведенные в табл. 9.1 (ПР [0] и ПР [1] — нулевой и первый разряды ПР).
С помощью двухразрядной маски можно задать в качестве условия УП любое значение ПР.
Таблица 9.1
Результат операции |
Код ЯР |
Маска условия (ЕС ЭВМ) | |||||
ПР [0] |
ПР [1] |
М [0] |
М [1] |
М [21 |
М [3] | ||
Равен 0 |
0 |
0 |
1 |
0 |
0 |
0 | |
Меньше 0 |
0 |
1 |
0 |
1 |
0 |
0 | |
Больше 0 |
1 |
0 |
0 |
0 |
1 |
0 | |
Переполнение |
1 |
1 |
0 |
0 |
0 |
1 |
В машинах ЕС ЭВМ используется четырехразрядная маска, и это дает возможность задавать в качестве условия перехода выполнение не только любого из ПР, но и их дизъюнкции (если в маске М несколько 1).
В этом случае имеем
Ус [М] =М [О]ПР (0) ПР [1] V М [1]ЯР[0] ПР[ 1] V
V М [2] ПР[0]ЯР[1] VМ[3]ПР[0]ПР[1].
Отметим, что при М= 1111 команда УП выполняет безусловный переход, а при Л1 = 0000 (пустая команда) действует естественный порядок выборки команд. Таким образом, исключа- ч ется необходимость в отдельной команде безусловного перехода.
Команды условных переходов позволяют реализовать программы с разветвлениями в зависимости от промежуточных результатов вычислений или состояния машины.
Важным случаем передачи управления являются безусловные переходы к подпрограммам. Их особенность состоит в том, что помимо перехода они должны обеспечить по окончании подпрограммы возврат к .исходной программе, к той точке ее, откуда был*совершен переход*. Обычно для переходов к подпрограммам используется специальная команда Безусловный переход с возвратом (БПВ). По этой команде (рис. 9.11) сначала адрес возврата Лвоз, т. е. содержимое СчК (увеличенное на «приращение адреса команды» ILK), запоминается по адресу Р, указанному в команде БПВII, затем в счетчик команд заносится содержимое поляА команды БПВ, т. е. адрес А начала подпрограммы. В конце подпрограммы размещается команда возврата, которая представляет собой команду БПК, указывающую путем косвенной адресации адрес ячейки (или регистра), в которой. находится адрес Авоз.
Формально всю эту процедуру после приема в РгК команды БПВ можно представить в следующем виде (см. р-ис. 9.9 и 9.11): СчК = C4K + Lk (образование адреса возврата ^воз) I
РгИОП = СчК\
РгАОП : = РгК [Я];
Запись: ОП [РгАОП] = РгИОП (запоминание адреса возврата Аеоз в ячейке Я);
СчК: = РгК [А] (передача в СчК адреса начала подпрограммы);
Команды
программы
Переход
к
Команды
подпрограммы
Возврат
к программе через косвенный адрес РРис.
9.11. Обращение к подпрограмме с помощью
команды безусловного перехода с
возвратом
(Выполнение подпрограммы)
(Считывание и передача в РгК заключающей подпрограмму команды ВПК, содержащей в поле А косвенный адрес Р) РгАОП = РгК [А];
Счит : РгИОП = ОП [РгАОП] (извлечение адреса возврата
^воз)» «
АСКбпв : СчК = РгИОП [А] (возврат к основной программе — команде в ячейке Лвоз);
Операция замещения, реализуемая командой Выполнение (Вып), состоит в том, что вместо очередной команды, соответствующей естественному порядку выборки команд, исполняется замещающая команда, указываемая адресной частью команды Вып, а затем, если только замещающая команда не оказалась командой перехода, восстанавливается приостановленный на время выполнения команды Вып естественный порядок выборки команд. Команда Вып должна сохранять неизменным содержимое СчК. Поэтому адрес замещающей команды берется не из СчК, а из РгК (см. рис. 9.10). Соответствующую процедуру после приема в РгК команды Вып можно представить в виде
РгАОП = РгК [А]; Счит РгИОП = ОП [РгАОП];
РгК = РгИОП (выборка замещающей команды);
Выполнение замещающей команды
СчК = C4K-\-LK (восстановление естественного порядка выборки команд);
Индексация
Характерным для реализуемых на ЭВМ методов решения математических задач и обработки данных является циклич-
Рис.
9.12. Вычислительный цикл и автоматическая
модификация адресов команд
..., at-1, расположенные последовательно со сдвигом на q ячеек. Программа состоит из групп команд (рис. 9.12, б), повторяющих один и тот же цикл вычислений, причем каждая последующая отличается от ‘предыдущей только приращением на q адреса операнда а,. Однако при таком подходе программа решения задачи оказывается слишком длинной, а ее составление — чрезмерно трудоемким.
Программирование вычислительных циклов существенно упростится, если после каждого выполнения цикла обеспечить автоматическое изменение в соответствующих командах их адресных частей согласно расположению в ОП обрабатываемых операндов. Такой процесс называется модификацией юманд, точнее, адресных частей команд. Модификация команд основана на возможности выполнения над кодами команд или их частями арифметических и логических операций. В рассматриваемом примере модификация команд, обрабатывающих операнд а„ состоит в увеличении их адресной части на q после каждого цикла счета.
Благодаря автоматической модификации команд длина программы существенно сокращается, так как она содержит лишь группу команд для одного прохождения цикла и команды служебных операций, связанных с модификацией команд и управлением вычислительным циклом. Управление вычислительным циклом должно обеспечить повторение цикла нужное число раз, а затем выход из него. Сказанное поясняется схемой на рис. 9.1,2, в.
Контроль окончания циклических вычислений и выход из цикла могут производиться по числу проделанных повторений цикла, т. е. по содержанию некоторого счетчика, изменяемого на единицу при каждом повторении цикла, или путем задания некоторого предела для изменения адресной части (адресного кода) в модифицируемой команде.
Автоматическая модификация команд и управление вычислительными циклами в современных ЭВМ обеспечиваются механизмом индексации, ^то понятие включает в себя специальный способ кодирования команд, командные и аппаратурные средства задания и выполнения модификации команд и управления вычислительными циклами. Упомянутые средства часто называют индексной арифметикой.
Как способ модификации команд индексация является развитием метода базирования (относительной адресации), с которым она часто используется совместно. Как средство управления вычислительными циклами индексация основана на использовании специализированных команд условного перехода.
Для выполнения индексации в машину вводятся так называемые индексные регистры \ в качестве которых используются ячейки сверхоперативной (местной) памяти или триггерные регистры. В формате команды выделяется поле X для указания номера индексного регистра. Если (Х) = 0, то это служит указанием, что данная команда не модифицируется. Исполнительный адрес при индексации формируется путем сложения адресного кода команды (смещения) с содержимым индексного регистра (индексом), а при наличии базирования ~ис базовым адресом. Именно этот характерный случай одновременного использования базирования и индексации показан на рис. 9.13. В схеме имеются общие регистры, которые программист может использовать в качестве базовых, индексных и для других целей. Пусть В и X — номера регистров, хранящих соответственно базовый адрес (В) и индекс (X).
Рис.
9.13. Формирование исполнительного
адреса при относительной адресации и
индексации
Приведенная схема показывает формирование исполнительного адреса (при ВФ0 и ХфО)
AH=(B)+(X) + D,
которое прбизводится в АЛУ процессора или в специальном сумматоре индексной арифметики. В последнем случае повышается быстродействие, но увеличивается объем оборудования ЭВМ.
При индексации код команды, хранящийся в ОП, остается неизменным. Следовательно, одна и та же команда может использоваться при соответствующих изменениях индекса для формирования различных исполнительных адресов. N
Индексация служит не только для организации вычислительных циклов, но в сочетании с базированием (иногда такое сочетание называют двухуровневой индексацией) является средством описания элементов информационных массивов, размещаемых в ОП.
Для управления индексацией используются команды, задающие операции над содержимым индексных регистров,— команды индексной арифметики. Можно отметить основные виды индексных операций: а) засылка в соответствующий индексный регистр начального значения индекса; б) изменение индекса и в) проверка окончания циклических вычислений.
Изменение индекса состоит в сложении (или вычитании) значения индекса с фиксированным приращением, производимом каждый раз после повторения цикла. Команда изменения индекса указывает номер индексного регистра, а также значение и знак (или адрес) приращения. Если, как это часто бывает, операнды располагаются в последовательных ячейках памяти,
то приращение равно 1, а при побайтной адресации — числу байт L в слове. В этом случае может использоваться команда изменения с подразумеваемым операндом, т. е. приращение в команде не указывается.
Для проверки того, что требуемое число повторений цикла произведено и следует выйти из цикла, используются или обычная команда условного перехода по условию, налагаемому в этом случае на некоторую переменную, изменяющуюся в процессе вычислений, или специальные команды Условный переход по счетчику и Условный переход по индексу.
Счетчиком обычно служит один из индексных регистров (общих регистров), в который перед началом вычислительного цикла загружается число повторений цикла. Команда Условный переход по счетчику может иметь, например, такой вид
УПСч |
Л. |
Xt |
Bi |
Dt |
Эта команда уменьшает на 1 содержимое счетчика (в данном случае регистра с номером /?|), и если оно после этого не равно О, то управление передается по указанному в команде адресу (B2) + 02+№). В противном случае управление переходит к следующей по порядку команде (выход из цикла).
Команда Условный переход по индексу (если индекс меньше или равен) имеет, например, вид
УПИ |
Ri |
Ri |
В2 |
Dt |
Здесь Ri — номер индексного регистра; /?з — номер регистра, хранящего приращение; (Z*2) + 02 — адрес начала цикла. В регистре с номером /?з+1 хранится предельное значение индекса. Команда производит суммирование (R|) с (Лз). Если новое значение индекса меньше или равно содержимому регистра /?з+ 1» это новое значение помещается в регистр с номером Ri и происходит переход к команде с адресом (Вг) + 02 (повторение цикла). В противном случае выполняется следующая за командой УПИ команда (выход из цикла). Аналогично выполняется проверка окончания цикла командой Условный переход, если индекс больше.
Теги и дескрипторы. Самоопределяемые данные
Одним из эффективных средств совершенствования архитектуры современных ЭВМ является теговая организация памяти [34], при которой каждое хранящееся в памяти (или регистре) слово снабжается указателем — тегом, определяющим тип данных (целое двоичное число, число с плавающей точкой, десятичное число, адрес, строка символов, дескриптор и т. д.) (рис. 9.14). В поле тега обычно указываются не только тип, но и длина (формат) и некоторые другие его параметры. Теги формируются компилятором.
Наличие тегов придает хранящимся в машине данным свойство самоопределяемости, вносящее принципиальные особенности в архитектуру и функционирование ЭВМ.
Отметим, что ЭВМ с теговой памятью (самоопределяемыми данными) выходит за рамки модели вычислительной машины фон Неймана, исходящей из того, что тип (характер) данного, хранящегося в памяти, определяется только в контексте выполнения программы, точнее говоря, командой, использующей данное в качестве операнда. В обычных ЭВМ, соответствующих классической модели фон Неймана, тип данных-операндов и их формат задаются кодом операции команды, а в ряде случаев размер (формат) операндов определяется специальными полями команды.
Например в ЕС ЭВМ команда сложение десятичное самим своим кодом операции определяет, что адресуемые ею операнды являются десятичными числами. Специальные четырехразрядные поля в этой команде задают число десятичных цифр в операндах. Следует обратить внимание на то, что таким образом в ЕС ЭВМ фактически имеем 256 различных кодов только одной команды сложение десятичное.
Теговая организация памяти позволяет достигнуть инвариантности команд относительно типов и форматов операндов, что приводит к значительному сокращению набора команд машины. Это упрощает и делает более регулярной структуру процессора, облегчает работу программиста, в том числе при отладке программ, упрощает компиляторы и сокращает затраты времени на компиляцию (отпадает необходимость выбора типа команды в зависимости от типа данных), облегчает обнаружение ошибок, связанных с некорректным заданием типа данных (например, при попытке сложить адрес с числом с плавающей точкой).
Рис.
9.14. Теговая организация I
Теи
I Aarfrtbtc ~1
памяти Г I . I
Теговая организация памяти способствует реализации принципа независимости программ от данных.
И наконец, нечто неожиданное. Использование тегов приводит к экономии памяти, так как в программах обычных машин имеется большая информационная избыточность на задание типов и размеров операндов при их использовании несколькими командами.
В качестве недостатка теговой организации памяти можно указать на некоторое замедление работы процессора из-за того,
УК
У * | |||||||||
|
р |
с |
г |
R |
Т 1 |
В |
L/X |
* |
А |
Тоиг
Таг
дескриптора
а)
тле УК
Рис. 9.15. Дескриптор данных ЭВМ В6700 Burroughs (а) и описание двумерного массива данных древовидной структурой дескрипторов (б); ТДс и ТДн — теги дескрипторов и данных
что установление соответствия типа команды типу данных, в обычных ЭВМ выполняемое на этапе компиляции, при использовании тегов переносится на этап выполнения программы.
В архитектуре йекоторых ЭВМ используются дескрипторы — служебные слова, содержащие описания массивов данных и команд, причем дескрипторы могут употребляться как в машинах с теговой организацией памяти (например, ЭВМ «Эльбрус»), так и без тегов (например, микропроцессор i АРХ 432 фирмы Intel). В последнем случае достигается ограниченная самоопре- деляемость данных.
Дескриптор содержит сведения о размере массива данных, его местоположении (в ОП или внешней памяти), адресе начала массива, типе данных, режиме защиты данных (например, за- прет записи в ячейки массива) и некоторых других параметрах данных. Отметим, что задание в дескрипторе размера массива позволяет контролировать выход за границу массива при индексации его элементов. На рис. 9.15, а в качестве примера представлен один из видов дескрипторов — дескриптор данных в ЭВМ В6700 фирмы Borroughs [34].
Дескриптор содержит специфический тег ТДс, указывающий, что данное слово является дескриптором определенного вида, группу указателей Ук и два поля: А и L/X. Поле А указывает адрес начала массива данных. В зависимости от значения указателя / дескриптор описывает массив данных (/ = 0), и в соответствующее поле помещается длина массива L, или описывает элемент массива (/=1), и тогда в поле находится индекс X, указывающий смещение элемента относительно начала массива. «Указатель присутствия» Р определяет, находится массив в основной или внешней памяти. В последнем случае поле А указывает местоположение массива во внешней памяти. Остальные указатели имеют следующий смысл: D — одинарная или двойная точность представления данных; Т — описывается слово или строка; при /?= 1 данные можно только читать; S — указывает на непрерывное или фрагментированное расположение массива в памяти; С — является ли дескриптор копией другого дескриптора.
Использование в архитектуре ЭВМ дескрипторов подразумевает, ч^о обращения к информации в памяти производятся через дескрипторы, которые при этом можно рассматривать как дальнейшее развитие аппарата косвенной адресации.
Адресация информации в памяти может осуществляться с помощью цепочки дескрипторов, при этом реализуется многоступенчатая косвенная адресация. Более того, сложные многомерные массивы данных (таблицы и т. п.) эффективно описываются древовидными структурами дескрипторов (рис. 9.15, б).
Сопоставление программистских моделей (регистровых структур) машин общего назначения, малых и микроЭВМ и микропроцессоров
Совокупность регистров, доступных программисту и используемых им при составлении программ на языке АССЕМБЛЕР или другом машинно-ориентированном языке, будем называть «программистской моделью ЭВМ». На рис. 9.16 представлены три характерных варианта регистровых структур процессоров. Эти варианты охватывают широкий диапазон — от крупных машин общего назначения до микропроцессоров.
Обращает на себя внимание ставший стандартным в современной apxHTeKtype ЭВМ прием организации сверхоперативной регистровой памяти в виде блока адресуемых (короткими адресами) общих регистров, допускающих многоцелевое использование,— для хранения операндов, результата операции, в качестве базовых, индексных регистров и указателей стеков. В машинах с коротким словом, вынуждающим прибегать к одноадресным командам, один из общих регистров выделяется в качестве аккумулятора — регистра, в котором находится один из операндов и в который помещается результат операции. Регистр-аккумулятор в явном виде в команде не адресуется — используется подразумеваемая адресация. В машинах, предназначенных для решения сложных вычислительных задач, регистровая адресуемая память включает в себя специальные регистры для операндов и результатов операций с плавающей точкой (регистры чисел с плавающей точкой) *.
В регистровой структуре процессоров ЕС ЭВМ выделяются 16 общих 32-битных регистра4 и четыре 64-битных регистра с плавающей точкой. При работе с расширенным 128-битным форматом чисел регистры с плавающей точкой 0,2 и 4,6 попарно объединяются.
Архитектура ЭВМ с коротким словом (малые и микроЭВМ) сформировались позже архитектуры машин общего назначения с достаточно длинным (обычно 32-битным) словом. Отмеченные в предыдущих параграфах трудности, обусловленные коротким словом, стимулировали появление новых архитектурных решений — широкого использования стекового механизма, новых методов адресации. Это нашло отражение в том, что в отличие от машин общего назначения (ЕС ЭВМ) для регистровых структур
{ В малых ЭВМ блок регистров чисел с плавающей точкой часто поставляется по дополнительному заказу. В микропроцессорах эти регистры могут входить в состав схемы отдельного кристалла (корпуса) — арифметического расширителя.
!
i
1
I
I
I
i
I
И
| L
I Регистр
7S
—jr косвенного
адреса
Общие Г регистры 63 О Указатель стека Счетчик команд Регистр слада состояния процессора
Л 7 О □ Регистр признаков (флажков)
7 О |
Общие регистры |
Регистры с плавающей точкой* |
0 |
3Z6* т |
01 646* т | |
1 |
|
|
г |
|
л I |
3 |
|
|
* |
|
П 1 |
5 |
|
|
в |
|
в\ 1 |
7 |
|
0 63 |
в |
|
Регистр слова состояния программы (ССП) |
9 |
| |
А |
|
1 64 бит | |
в |
|
0 63 |
С |
|
|
и |
|
|
£ |
|
<*) |
F |
| |
1 |
0 31 |
|
Общие Регистры регистры с плавающей точкой 8 $ИТ | ||
*\ |
J |
64 бит | | | Регистр- |
]
Счетчик
команд
].Указатель
стека
♦c
sV
of-
is
15
малых
и микроЭВМ и микропроцессоров характерно
наличие регистров — указателей стека
(аппаратурного средства реализации
стековой памяти) 1
и программно-доступного (адресуемого)
регистра счетчика команд, позволяющего
реализовывать новые виды адресаций.
Для полноты картины следует пред-
Рис. 9.16. Сопоставление программистских моделей (регистровых структур) машин различного типа:
а — машины общего назначения (ЕС ЭВМ); б — малые и микроЭВМ (СМ-1300, «Электроника-60»); в — микроЭВМ и микропроцессоры (СМ-1800, К580)
1 Стек в ЕС ЭВМ может организовываться программным путем.
ставленные на рис. 9.16 регистровые структуры рассматривать одновременно с соответствующими адресными структурами ОП на рис. 9.2.
Особенности адресации и системы команд 16-разрядных малых и микроЭВМ
Архитектура 16-разрядных малых ЭВМ СМ-1420 и микроЭВМ СМ-1300 и «Электроника-60», подобная архитектуре известной американской серии малых ЭВМ PDP-11, оценивается специалистами как высокоэффективная благодаря высокоразвитой системе адресации, использованию стекового механизма, многорегистровой структуре процессора, переменной длине команд и интерфейсу «общая шина». Она оказала определенное влияние на архитектуру микропроцессоров.
Форматы данных, адресная структура памяти и регистровая структура этих машин представлены на рис. 2.1, 9.2 и 9.16. Машина выполняет операции с 16-битными словами и байтами, которые могут быть двоичными числами со знаком (в дополнительном коде) и без знака, логическими полями, а также с 32- и 64-битными числами с плавающей точкой (при наличии дополнительной аппаратуры).
Существенной особенностью архитектуры является развитая система адресации, придающая системе команд большую гибкость и эффективность. Применяются восемь основных типов адресации, а также стековая адресация при работе с подпрограммами и рри прерываниях. Основные типы адресации представлены в табл. 9.2. Возможная в рассматриваемых машинах адресация в командах счетчика команд как общего регистра порождает дополнительные типы адресации (табл. 9.3).
Основная длина команды — одно 16-битное слово. Однако при индексной и непосредственной адресациях, как это следует из табл. 9.2 и 9.3, сразу за командой в следующей ячейке (или следующих двух ячейках) памяти помещается соответственно адресное приращение или непосредственно адресуемый операнд. Поэтому можно считать, что команды имеют три длины: одно, два и три 16-битных слова (16, 32, 48 бит).
При кодировании команд употребляется расширение кода операции. Код операции может иметь длину 4; 7, 8, 10, 12, 13, 16 бит.
На рис. 9.17 представлены основные форматы команд. В отличие от ЕС ЭВМ, где результат операции замещает всегда операнд в первом адресе, в рассматриваемых ЭВМ результат
TL
1
Номер
1
Номер
УМ
[резшгг-
г
па »
» « L—J
УМ
цюеаст-
*
| 1 Л..
6
5
б
Приемник
коп
ум
1
1
Номер регист- 15
6
5 0
Ю
б)
/
0-прямая
1-косбенная
шО-ревистробил
)о1-абтоинкрвмвнтная J
Ю-абтобекремвнтная
\71-индекснал
Смещение
КОпКоманды
передачи
дпрабления
15
87 |
Номер |
УМ |
Номер |
КОп |
регист |
регист | |
|
ра |
|
ра |