Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

/*!елг

Заслать в стек ад РеЗ

775

253

707

Сломать

Загрузить аз стана в Pa V

РгЗХ

27Ь

538

Р*ч£

Рис. 9.7. Стековая адресация в «перевернутом стеке»: a — исходное состояние стека;б — стек после выполнения команды сЗаслать в стек изРгЗ»\ в— стек после выполнения команды сСложйть»;г стек после выполнения команды сЗагрузить из стека вРг4»

ческое выражение слева направо и последовательно друг за другом выписываем встречающиеся операнды. Как только ока­жется, что все операнды некоторой операции выписаны, за­писываем знак этой операции и продолжаем выписывать операн­ды. Если операция имеет операндом результат некоторой преды­дущей операции и знак последней выписан, то считаем этот операнд выписанным.

Например, выражение

Сk + l — m)(p—s) (9.3)

в ПОЛИЗ имеет вид

А Орес к

k — p s— X- (9.4)

Адрес I

Адрес т

Адрес р

Адрес е

Рис. 9.8. Программа вы­числения выражения (9.4) с использованием стековой

памяти

Выражение в ПОЛИЗ не содер­жит скобок, но порядок действий оп­ределяет однозначно. При использо­вании стековой памяти последова­тельность символов в выражении ПОЛИЗ, например (9.4), может рас­сматриваться как программа вычис­ления исходного арифметического вы­ражения (рис. 9.8), если под буквами понимать команды засылки, содержа­щие только адреса в ОП соответству­ющих операндов, засылаемых в стек, а под знаками операций — безадрес­ные команды,содержащие только ко­ды операций. Команда второго типа

инициирует извлечение из стека двух (или одного) слов, выпол­нение над ними указанной в команде операции и засылку резуль­тата в вершину стека.

Безадресные команды на основе стековой адресации пре­дельно сокращают формат команд, экономят память и способ­ствуют повышению производительности ЭВМ.

Однако при такой структуре команд возникают осложнения с построением команд передачи управления и работы с перифе­рийными устройствами.

В современной архитектуре процессоров и микропроцессоров стек и стековая адресация широко используются при организа­ции переходов к подпрограммам и возврате от них, а также в системах прерывания. Весьма широко стеки и безадресные команды используются в вычислительном комплексе «Эльбрус» (см. гл.* 15).

  1. Команды, процедуры и микропрограммы передачи управления в программах

Рассмотрим команды, управляющие порядком исполнения команд.

При естественном порядке после выполнения очередной ко­манды выбирается команда, расположенная в следующей по порядку ячейке памяти. Обычно адрес команд хранится в специ­альном регистре, называемом счетчиком команды (СчК), со­держимое которого после выполнения каждой команды автома­тически увеличивается на 1, а если память имеет побайтную адресацию, то оно увеличивается на столько, сколько байт со­держит текущая команда(приращение адреса команды LK).

Выборка очередной и формирование адреса следующей ко­манды (АСК), часто называемого «продвинутым адресом», про­исходит (при естественном порядке) следующим образом (рис. 9.9):

РгАОП = СчК\

Счит : РгИОП = ОП [РгАОП];

РгК = РгИ ОП;

(Выполнение текущей команды)

АСКеп'СчК =C4K+Lk; 244

БП\|А \

|5/75 Р|А

*)

»)

М 1 * I

|&/я| | А

S)

9)

\м\м\ А

в)

Рис. 9.10. Упрощенные структу­ры команд перехода безусловно­го (а), безусловного по косвен­ному адресу (б), условного j(e), безусловного с возвратом (г) и команды «Выполнение» (д)

Рис. 9.9. Формирование адреса следующей команды при есте­ственном порядке выборки команд и при его нарушении командами перехода и командой «Выполнение»

Естественный порядок выполнения команд может быть на­рушен: 1) командами перехода (командами передачи управле­ния);2) командами замещения (Выполнение); 3) сменой со­стояния программы; 4) запросами прерывания программы.

Команды перехода (передачи управления). Известны много­численные варианты команд перехода, однако общий принцип состоит в том, что адресная часть команды перехода непосред­ственно или после суммирования с содержимым базового регист­ра передается в счетчик команд, и, следовательно, после данной команды может быть выполнена команда из произвольной ячей­ки памяти, номер которой определяется адресной частью коман­ды перехода.

Для упрощения изложения материала рассмотрим процеду­ры выполнения команд переходов без относительной адресации.

Различают два основных вида команд перехода: безуслов­ныйпереход (БП) иусловный(УП). Упрощенные структуры этих команд показаны на рис. 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 (восстановление естественного по­рядка выборки команд);

  1. Индексация

Характерным для реализуемых на ЭВМ методов решения математических задач и обработки данных является циклич-

Рис. 9.12. Вычислительный цикл и автоматическая модификация адре­сов команд

ность вычислительных процессов, при которой повторяются одни и те же пррцедуры, но над различными операндами (элементами информационных массивов), расположенными упорядоченно в памяти. Поскольку операнды, обрабатываемые при повторени­ях цикла, имеют разные адреса, можно для каждого повторения составить свою последовательность команд, отличающихся ад­ресными частями. На рис. 9.12, а в качестве простого примера показан одномерный информационный массив, в котором вы­делены кружками подлежащие обработке операнды До, fli,

..., 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 (повторе­ние цикла). В противном случае выполняется следующая за командой УПИ команда (выход из цикла). Аналогично выпол­няется проверка окончания цикла командой Условный переход, если индекс больше.

  1. Теги и дескрипторы. Самоопределяемые данные

Одним из эффективных средств совершенствования архи­тектуры современных ЭВМ является теговая организация памя­ти [34], при которой каждое хранящееся в памяти (или регист­ре) слово снабжается указателем — тегом, определяющим тип данных (целое двоичное число, число с плавающей точкой, десятичное число, адрес, строка символов, дескриптор и т. д.) (рис. 9.14). В поле тега обычно указываются не только тип, но и длина (формат) и некоторые другие его параметры. Теги формируются компилятором.

Наличие тегов придает хранящимся в машине данным свой­ство самоопределяемости, вносящее принципиальные особенно­сти в архитектуру и функционирование ЭВМ.

Отметим, что ЭВМ с теговой памятью (самоопределяемыми данными) выходит за рамки модели вычислительной машины фон Неймана, исходящей из того, что тип (характер) данного, хранящегося в памяти, определяется только в контексте выпол­нения программы, точнее говоря, командой, использующей дан­ное в качестве операнда. В обычных ЭВМ, соответствующих классической модели фон Неймана, тип данных-операндов и их формат задаются кодом операции команды, а в ряде случаев размер (формат) операндов определяется специальными полями команды.

Например в ЕС ЭВМ команда сложение десятичное самим своим кодом операции определяет, что адресуемые ею операнды являются десятичными числами. Специальные четырехразряд­ные поля в этой команде задают число десятичных цифр в опе­рандах. Следует обратить внимание на то, что таким образом в ЕС ЭВМ фактически имеем 256 различных кодов только одной команды сложение десятичное.

Теговая организация памяти позволяет достигнуть инвари­антности команд относительно типов и форматов операндов, что приводит к значительному сокращению набора команд машины. Это упрощает и делает более регулярной структуру процессора, облегчает работу программиста, в том числе при отладке про­грамм, упрощает компиляторы и сокращает затраты времени на компиляцию (отпадает необходимость выбора типа команды в зависимости от типа данных), облегчает обнаружение оши­бок, связанных с некорректным заданием типа данных (напри­мер, при попытке сложить адрес с числом с плавающей точкой).

Рис. 9.14. Теговая организация I Теи I Aarfrtbtc ~1

памяти Г I . I

Теговая организация памяти способствует реализации прин­ципа независимости программ от данных.

И наконец, нечто неожиданное. Использование тегов приво­дит к экономии памяти, так как в программах обычных машин имеется большая информационная избыточность на задание типов и размеров операндов при их использовании несколькими командами.

В качестве недостатка теговой организации памяти можно указать на некоторое замедление работы процессора из-за того,

УК

У *

р

с

г

R

Т

1

В

L/X

*

А

То

иг

1111г г4

Таг дескриптора

а)

тле УК

Рис. 9.15. Дескриптор данных ЭВМ В6700 Burroughs (а) и описание двумерного массива данных древовидной структурой дескрипторов (б); ТДс и ТДн — теги дескрипторов и данных


что установление соответствия типа команды типу данных, в обычных ЭВМ выполняемое на этапе компиляции, при исполь­зовании тегов переносится на этап выполнения программы.

В архитектуре йекоторых ЭВМ используются дескрипторы — служебные слова, содержащие описания массивов данных и ко­манд, причем дескрипторы могут употребляться как в машинах с теговой организацией памяти (например, ЭВМ «Эльбрус»), так и без тегов (например, микропроцессор i АРХ 432 фирмы Intel). В последнем случае достигается ограниченная самоопре- деляемость данных.

Дескриптор содержит сведения о размере массива данных, его местоположении (в ОП или внешней памяти), адресе начала массива, типе данных, режиме защиты данных (например, за- прет записи в ячейки массива) и некоторых других параметрах данных. Отметим, что задание в дескрипторе размера массива позволяет контролировать выход за границу массива при индек­сации его элементов. На рис. 9.15, а в качестве примера пред­ставлен один из видов дескрипторов — дескриптор данных в ЭВМ В6700 фирмы Borroughs [34].

Дескриптор содержит специфический тег ТДс, указываю­щий, что данное слово является дескриптором определенного вида, группу указателей Ук и два поля: А и L/X. Поле А указы­вает адрес начала массива данных. В зависимости от значения указателя / дескриптор описывает массив данных (/ = 0), и в со­ответствующее поле помещается длина массива L, или описыва­ет элемент массива (/=1), и тогда в поле находится индекс X, указывающий смещение элемента относительно начала массива. «Указатель присутствия» Р определяет, находится массив в ос­новной или внешней памяти. В последнем случае поле А указы­вает местоположение массива во внешней памяти. Остальные указатели имеют следующий смысл: D — одинарная или двой­ная точность представления данных; Т — описывается слово или строка; при /?= 1 данные можно только читать; S — указы­вает на непрерывное или фрагментированное расположение мас­сива в памяти; С — является ли дескриптор копией другого дескриптора.

Использование в архитектуре ЭВМ дескрипторов подразуме­вает, ч^о обращения к информации в памяти производятся через дескрипторы, которые при этом можно рассматривать как даль­нейшее развитие аппарата косвенной адресации.

Адресация информации в памяти может осуществляться с помощью цепочки дескрипторов, при этом реализуется много­ступенчатая косвенная адресация. Более того, сложные много­мерные массивы данных (таблицы и т. п.) эффективно описыва­ются древовидными структурами дескрипторов (рис. 9.15, б).

  1. Сопоставление программистских моделей (регистровых структур) машин общего назначения, малых и микроЭВМ и микропроцессоров

Совокупность регистров, доступных программисту и исполь­зуемых им при составлении программ на языке АССЕМБЛЕР или другом машинно-ориентированном языке, будем называть «программистской моделью ЭВМ». На рис. 9.16 представлены три характерных варианта регистровых структур процессоров. Эти варианты охватывают широкий диапазон — от крупных ма­шин общего назначения до микропроцессоров.

Обращает на себя внимание ставший стандартным в со­временной apxHTeKtype ЭВМ прием организации сверхоператив­ной регистровой памяти в виде блока адресуемых (короткими адресами) общих регистров, допускающих многоцелевое исполь­зование,— для хранения операндов, результата операции, в ка­честве базовых, индексных регистров и указателей стеков. В ма­шинах с коротким словом, вынуждающим прибегать к одно­адресным командам, один из общих регистров выделяется в качестве аккумулятора — регистра, в котором находится один из операндов и в который помещается результат операции. Регистр-аккумулятор в явном виде в команде не адресуется — используется подразумеваемая адресация. В машинах, предна­значенных для решения сложных вычислительных задач, ре­гистровая адресуемая память включает в себя специальные регистры для операндов и результатов операций с плавающей точкой (регистры чисел с плавающей точкой) *.

В регистровой структуре процессоров ЕС ЭВМ выделяются 16 общих 32-битных регистра4 и четыре 64-битных регистра с плавающей точкой. При работе с расширенным 128-битным форматом чисел регистры с плавающей точкой 0,2 и 4,6 попарно объединяются.

Архитектура ЭВМ с коротким словом (малые и микроЭВМ) сформировались позже архитектуры машин общего назначения с достаточно длинным (обычно 32-битным) словом. Отмеченные в предыдущих параграфах трудности, обусловленные коротким словом, стимулировали появление новых архитектурных реше­ний — широкого использования стекового механизма, новых ме­тодов адресации. Это нашло отражение в том, что в отличие от машин общего назначения (ЕС ЭВМ) для регистровых структур

{ В малых ЭВМ блок регистров чисел с плавающей точкой часто поставляется по дополнительному заказу. В микропроцессорах эти ре­гистры могут входить в состав схемы отдельного кристалла (корпуса) — арифметического расширителя.

!

i

1

I

I

I

i

'C

I И | L I Регистр 7S —jr косвенного адреса

♦c


Общие Г регистры


63 О

Указатель стека

Счетчик команд

Регистр слада состояния процессора

6)


Л 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.

  1. Особенности адресации и системы команд 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

Номер

УМ

Номер

КОп

регист­

регист­

ра

ра