Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ВНУТРЕННЯЯ АРХИТЕКТУРА МИКРОПРОЦЕССОРОВ



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

Типичная внутренняя организация МП приведена на рис. 7 2. Ос­новными внутренними компонентами МП являются арифметико-логи­ческое устройство (АЛУ), реализующее множество арифметических и логических функций МП, узел синхронизации и управления, воспринима­ющий и генерирующий внешние управляющие сигналы; набор регист­ров для временного хранения кодов команд, данных, адресов и инфор­мации о внутреннем состоянии МП. Содержимое некоторых из внутрен­них регистров МП может быть изменено программным путем, другая их часть недоступна программисту. Безусловно, общее число внутренних регистров МП разных семейств различно, как различны конкретные функции, выполняемые ими, и обозначения доступных программисту ре­гистров. Тем не менее для всего многообразия внутренних регистров МП характерны следующие наиболее важные их виды.

Регистр команды воспринимает код текущей команды с шины дан­ных и осуществляет его хранение в течение всего времени ее исполнения. Регистр команды не доступен программисту.

Для хранения данных и промежуточных результатов в МП использу­ются программно доступные рабочие регистры. Если все рабочие регистры в составе МП позволяют непосредственно записывать в них результаты вычислений, выполненных АЛУ, их обычно называют регис­трами общего назначения (РОН). Если в МП имеется всего лишь один такой специализированный регистр, его называют аккумулятором.

 

Рис. 7.2 Типичная внутренняя организация микропроцессора

 

Регистры для хранения адресов (указательные регистры) также про­граммно доступны. К указательным регистрам относятся програм­мный счетчик (другое наименование — указатель команды), а также регистры — указатели стека. Программный счетчик (PC) обеспечивает хранение двоичного кода адреса ячейки памяти, где помещена команда, которую предстоит выполнить процессору вслед за исполняемой им в данный момент командой. Новый цикл выбора команды МП всегда начинается с того, что на его шине адреса появляется содержимое PC, и очередная команда по этому адресу переписывается с шины данных в регистр команд, после чего она поступает на дешифратор команды. Выхо­ды дешифратора подключены к узлу синхронизации и управления, определяющему требуемое для выполнения этой команды направление передач данных и реагирующему на внешние сигналы, поступающие по шине управления от других устройств. В процессе исполнения коман­ды содержимое PC автоматически увеличивается; таким образом, в лю­бой момент времени его содержимое представляет собой адрес очеред­ной ячейки памяти, где может храниться либо следующая команда, либо дополнительные данные, привлекаемые МП для исполнения данной команды.

Регистр — указатель стека ( SP ) используется для хранения адреса последней использованной ячейки стека ( области памяти, размер которой изменяется в процессе обработки). Работа стека организована по принципу «последним пришел — первым вышел". При записи данных в стек содержимое регистра SP автоматически уменьшается, и по этому адресу данные заносятся в память. При удалении данных из стека они переписываются из ячейки, адрес которой хранится в SP, после чего его содержимое автоматически увеличивается. Таким образом этот регистр всегда следит за положением вершины стека (наиболее удаленной от начала стека ячейки памяти).

Информация об особенностях результата последней операции, выпол­ненной АЛУ ( информация о внутреннем состоянии МП ), хранится в регистре флажков ( другие его названия — регистр состояния, регистр кода условия ). В МП-технике так обычно называют простой набор триггеров, состояния которых зависят от результатов операции АЛУ (строго говоря, простой набор отдельных триггеров нельзя называть регистром, но применительно к МП это не вызывает особых недоразуме­ний ). Каждый триггер в составе регистра состояния устанавливается (или сбрасывается) при какой-то своей особенности результата в АЛУ (например, триггер нуля Z, переполнения V, отрицательного результата N, переноса С и др.). Регистры состояния программно доступны, причем программист может установить (или сбросить) каждый триггер в отдельности или одновременно весь регистр.

Рассмотренные выше основные компоненты в составе МП связа­ны между собой быстродействующей внутренней шиной данных, а его внешние шины отделены от нее буферными каскадами, повы­шающими нагрузочную способность внешних шин. Отметим, что разрядность МП определяется числом бит данных, которое обраба­тывается в одной операции АЛУ, и всегда равна числу проводников внешней шины данных. Объем адресуемой памяти МП зависит от числа проводников внешней адресной шины. Нетрудно убедиться в том, что с помощью адресной шины из N проводников МП может передать 2N различных двоичных адресов ячеек памяти. Вся­кому внешнему устройству ввода — вывода также присваивается определенный адрес, что позволяет МП осуществлять операции вво­да — вывода подобно обращению к обычной ячейке памяти.

Все операции в МП инициируются импульсами синхронизации от внешнего (реже встроенного) генератора тактовых импульсов, стабили­зированного кварцевым резонатором. По значению частоты следования импульсов синхронизации в первом приближении можно судить о быстродействии МП. При прочих равных условиях оно тем больше, чем выше частота синхронизации. Первые образцы МП работали при частотах тактового генератора 2 — 4 мГц, для современных МП типич­ны значения частоты порядка 60 — 200 мГц и выше.

8-разрядные МП ( например, такие широко распространенные МП, как Intel 8080 и разработанный примерно в то же время не менее популярный МП МС6800 фирмы " Motorola"; отечественный КР580ВМ80А; более совершенные Intel 8085, MCS6502, Z80, МС6809 и другие) выпускаются в виде ИС с 40 контактами при двухстороннем рас­положении выводов. Их шина адреса содержит 16 проводников, поэто­му они непосредственно могут адресоваться к 65536 ячейкам (64 кбайт) памяти. Все эти микропроцессоры при одинаковой внутренней архитек­туре, как на рис. 7.2, различаются некоторыми конструктивными особен­ностями, функциями и количеством программно доступных внутренних регистров и, как следствие этого, наборами используемых команд. Например, МП Intel 8085 отличается от своего предшественника (Intel 8080) наличием встроенного генератора тактовых импульсов, а также мультип­лексированием (использованием одних и тех же выводов) шины данных с половиной шины адреса. Разработанный на основе семейства Intel 8080/8085 более совершенный МП Z80 может выполнять все про­граммы, записанные в машинных кодах МП Intel 8085. Обратное же до­стигается не всегда, так как МП Z80 имеет больше программно доступных внутренних регистров, поэтому не все его команды могут быть исполнены МП Intel 8085. Как правило, все последующие расширения набора команд МП одного семейства выполняются совместимыми на уров­не машинных кодов, чтобы для последующих разработок можно было использовать все наработанное ранее программное обеспече­ние (совместимость снизу вверх).

8-разрядные МП, в основном, предназначены для создания на их основе микроконтроллеров — относительно несложных МС, широко применяемых в промышленности и в быту в качестве различных сис­тем управления, воспринимающих сигналы ( например, контактных ) датчиков и выдающих исполнительным механизмам несколько управляющих сигналов ( типа включить / выключить).

16-разрядные МП обычно имеют 64-контактный корпус также с двухрядным расположением выводов. По сравнению с 8-разрядными ос­новные преимущества этих МП заключаются в расширении набора команд, более быстром их исполнении и увеличенном объеме адресуемой памяти (обычно 1 Мбайт и более). Общепризнанным лиде­ром на рынке 16-разрядных микропроцессоров считается фирма " Intel”. Популярные 16-разрядные МП (например, открывшие эру ПЭВМ МП семейства Intel 8086 / 8088 и более мощные 80186, 80286; отечествен­ный МП КМ1810ВМ86 и другие) представляли собой не просто усовершенствование раннее описанных МП (Intel 8080 / 8085), а содер­жали некоторые принципиальные решения в области разработки новых конфигураций центральных и специализированных микропроцессоров, позволяющих значительно повысить их быстродействие. Увеличение быстродействия в 16-разрядных МП достигается путем улучшения орга­низации процесса вычислений и применения дополнительных аппарат­ных средств.

Среди архитектурных особенностей 16-разрядных МП отметим несо­мненную находку, связанную с применением для более быстрого испол­нения команд принципа конвейеризации. Так называют специальную ор­ганизацию работы МП, при которой каждая очередная команда заносит­ся в регистр команд не из памяти, а выбирается из очереди команд. Для этого перед регистром команды дополнительно включается сверхбыстро­действующий блок памяти, в который предварительно из памяти перепи­сываются несколько очередных команд (очередь команд). Длина очере­ди составляет 6 байт (для МП 8086) и 4 байта (для МП 8088). Такой подход позволяет существенно повысить скорость выполнения про­граммы за счет сокращения простоев быстродействующего процессо­ра в промежутках времени, когда производится относительно более медленное обращение к памяти.

К дополнительным аппаратным средствам относят разработанный фирмой " Intel” специализированный процессор 8087 (более совершенный его вариант i80287) для ускоренного выполнения арифметических опера­ций (с большими числами). Он подключается к шинам адреса/данных, а также к некоторым линиям шины управления и действует как вспомогательный процессор (арифметический сопроцессор). Сопроцес­сор 8087 контролирует командный поток, и в случае обнаружения специ­ально зарезервированного кода команды он выполняет, а основной МП игнорирует ее. Сопроцессор может с повышенной точностью выпол­нять все арифметические операции и вычислять значения таких сложных математических функций, как логарифмические, тригонометрические и обратные тригонометрические функции; возведение в степень; извлече­ние корня и др. Следует особо подчеркнуть, что сопроцессор не может работать изолированно от центрального МП, но вместе они образуют мощный тандем, обеспечивающий в задачах численной обработки в 10 — 50 раз более высокую производительность. Отметим также, что и в 16-разрядных МП в целях экономии числа внешних выводов НС часто применяется описанное ранее мультиплексирование шин данных и адреса.

32-разрядные МП имеют от 60 до нескольких сотен контактов (МП Pentium —- 296, Pentium Pro — 387 контактов ), расположенных либо по всем четырем сторонам корпуса, либо в узлах прямоугольной сетки, условно нанесенной на его поверхность ( матричное размещение выво­дов). Как правило, шина адреса таких МП также состоит из 32 проводни­ков, поэтому современные 32-разрядные МП обладают весьма боль­шим диапазоном адресации памяти (4 Гбайт). Об их исключительно высокой производительности можно судить, хотя бы по типичным значе­ниям частоты тактового генератора 100; 133; 166 и даже 200 мГц (вмес­то 10 мГц для лучших образцов 16-разрядных МП). При разработке 32- ра зрядных МП описанные выше тенденции по дальнейшему совершен­ствованию организации вычислительного процесса получили свое даль­нейшее развитие и привели к использованию в них так называемой кэш-памяти и других дополнительных средсгв управления памятью.

Кэш-памятью называют сверхбыстродействующую память для хранения в ней наиболее часто адресуемых команд и данных. Дело в том, что для большинства используемых программ характерна тенден­ция более частого обращения к одним и тем же адресам памяти, и содер­жимое по этим адресам ( вместе с самими адресами) заносится в кэш­память, которая либо встраивается в сам МП, либо помещается между МП и основной памятью. При выполнении программы кэш-память оп­ределяет, не совпадает ли запрашиваемый МП адрес с ее содержимым. В случае совпадения (удачного " попадания" ) команда считывается из быстродействующей кэш-памяти без обращения к относительно медлен­ной основной памяти. При достаточно высоком проценте удачных попа­даний достигается заметное увеличение быстродействия всей системы. Очевидно, чем больше кэш-память, тем больше и удачных попаданий (объем кэш-памяти современных МП может достигать сотен кбайт ).

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

К наиболее популярным 32-разрядным МП относятся уже упоминав­шийся ранее МП Intel 80386 и его последующие модификации (i80386DX; более дешевый i80386SX; экономичный i80386SL), Intel 80486 и его модификации, Intel Pentium и описанные ранее все его модификации вплоть до Pentium Pro; Motorola MC68020; NS32032 фир­мы " National Semiconductor"; Z80000 фирмы " Zilog" и др. Все 32-разряд- ные МП могут работать с сопроцессорами ( например, использовать ука­занный ранее Intel 80287 или более совершенный арифметический сопроцессор 80387), а микропроцессоры i486 ( кроме i486SX ) даже имеют встроенный арифметический сопроцессор

Относительно недавно семейство специализированных микропроцес­соров пополнилось еще одним новым видом — графическим сопроцес­сором, предназначенным для широкого применения в видеомониторах (дисплеях ) ПЭВМ, издательских системах, а также системах компьютер­ного моделирования и обработки изображений. Графические сопроцессо­ры оптимизированы на выполнение операций, связанных, например, с получением перемещающихся изображений и трехмерной графикой. Ес­тественно, что такие графические операции они выполняют намного быстрее основного МП. Основной МП посылает графическому сопроцес­сор) специальные команды или даже подпрограммы, которые тот выпол­няет, работая с ним параллельно, что существенно увеличивает быстро­действие всей системы. Одним из первых графических сопроцессоров была ИС 182786. предназначенная для работы с 32-разрядным МП i80386. Наиболее популярным графическим сопроцессором, используе­мым в современных IBM-совместимых компьютерах, является И С TMS34020 фирмы Texas Instruments. Она имеет в своем составе 32-раз- рядное АЛУ, тридцать один 32-разрядный регистр, сумматор, локаль­ную память и кэш-память команд емкостью 512 байт. Конвейерный принцип обработки команд позволяет совместить в сопроцессоре обра­щения к локальной памяти, необходимые вычисления и выполнение графических команд. ИС TMS34020 работает с тактовой частотой 40 МГц. При работе с интенсивными вычислениями при цифровой обработке изображений, трехмерной графикой и т.п. в ней предус­мотрена возможность подключения до четырех дополнительных арифметических графических сопроцессоров TMS34082. При под­ключении арифметического сопроцессора TMS34082 производительность ИС TMS34020 увеличивается примерно в 4 раза.

 

Вопрос 7.3. Чем определяется разрядность МП?

Варианты ответа.

7.3.1. Числом проводников его внешней шины данных.

7.3.2. Числом проводников его внешней шины адреса.

7.3.3. Числом проводников его внешней шины управления.

Вопрос 7.4. Чем определяется предельно возможный объем памя­ти, к которой может адресоваться МП?

Варианты ответа:

7.4.1. Числом ячеек памяти ЗУ.

7.4.2. Сложностью программ, которые МП должен выполнять.

7.4.3. Разрядностью его шины данных.

7.4.4. Разрядностью его шины адреса.

Вопрос 7.5. Каково назначение рабочих регистров МП?

Варианты ответа:

7.5.1. Рабочие регистры служат для расширения памяти МС.

7.5.2. Рабочие регистры хранят коды команд, которые должен вы­полнять МП.

7.5.3. Рабочие регистры хранят адреса команд, которые должен выполнять МП.

7.5.4. Рабочие регистры содержат элементы данных, обрабатыва­емые МП.

7.3 БАЗОВЫЕ КОМАНДЫ МИКРОПРОЦЕССОРОВ

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

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

Поскольку МП способен воспринимать только длинные цепочки би­тов, работать с которыми утомительно, для удобства используют более компактную запись команд в виде кода с основанием 8 или 16. Чаще всего ( например, для МП семейства Intel ) применяют 16 - ричный код позволяющий для каждого байта записывать всего лишь две 16-ричные цифры. 16-ричное кодирование имеет очевидное преимущество перед двоичным, однако для сложных и длинных программ и оно неудобно Написание, чтение и отладка программ еще более упрощается при ис­пользовании записи команд в мнемокоде, когда каждой команде при­сваивается определенный набор букв, напоминающий действие этой команды ( например, мнемоника MOV*[10] соответствует команде пересыл­ки данных ). Такие машинно-ориентированные языки программиро­вания МП называют ассемблерами (для разных семейств МП могут быть свои ассемблеры) При помощи специальной программы цепочка команд затем автоматически переводится в двоичные коды, причем этот процесс очень напоминает обычный перевод со словарем иностранно­го текста. Безусловно, набор команд конкретного МП всегда отражает индивидуальные особенности его архитектуры, тем не менее для всех МП можно выделить базовый набор команд, состав и число которых необхо­димы и достаточны для написания программы любой сложности.

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

команды передачи данных (из памяти в регистр и наоборот, пересыл­ка из регистра в регистр );

арифметические и логические команды (сложение и вычитание, для более совершенных МП — умножение и деление, сравнение, сдвиг раз­рядов влево или вправо, логические операции И, ИЛИ, НЕ и др.),

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

команды управления (работой МП; вводом — выводом, работа со сте­ком и др)

Другой способ разделить команды на группы — по количеству различных данных, используемых командой для выполнения ее дей­ствия. Любое необходимое для некоторой операции данное в общем случае называют операндом, различая при этом такие понятия, как операнд-источник и операнд-приемник. Операндом-источником назы­вают используемое в операции данное, значение которого в процессе выполнения операции не изменяется. Если некоторый операнд необ­ходим для данной операции и его значение изменяется в процессе ее выполнения, его называют операндом-приемником. В зависимости от числа привлекаемых операндов все команды МП могут быть отнесе­ны к трем основным типам —безадресные, одноадресные и двухад­ресные команды.

Безадресные команды выполняют свои действия без ссылок на опе­ранды. Сопоставляя эту классификацию с предыдущей, приходим к выво­ду, что к безадресным командам относится часть команд управления работой МП (например, такие команды, как HLT-останов или прекраще­ние МП всех операций; WAIT — когда МП ожидает завершения другим устройством более медленной операции и т.п.). Одноадресным командам для выполнения своих действий требуется всего один операнд-приемник. К ним относятся, например, команды очистки содержимого програм­мно доступных регистров (с мнемоникой CLC), увеличения (инкре­мента) или уменьшения (декремента) на единицу содержимого РОН (используются при организации циклов выполнения однотипных действий) и др. Наконец, двухадресные команды для выполнения сво­их действий требуют двух операндов, один из которых после опера­ции будет содержать ее результат (операнд-приемник), а другой (операнд-источник) и после операции будет хранить свое содержи­мое неизменным. Напомним, что в некоторых МП в качестве приемника может быть использован только один рабочий регистр ( аккумулятор), а в качестве источника —любой другой рабочий регистр. Другим ограничением, вводимым из соображений умень­шения длины команды, является обязательное использование в дву­хадресных командах как минимум ссылки хотя бы на один регистр (запрещены операции с содержимым двух ячеек памяти). В самом общем случае, все команды пересылки, арифметических и, частично, логических операций должны быть отнесены к двухадресным командам.

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

Аппаратные средства современных МП также поддерживают несколь­ко эффективных способов адресации, ориентированных на работу с це­почками данных, размещенных в соседних ячейках памяти. Например, при автоинкрементном способе адресации операнд выбирается по адре­су в одном из регистров, после чего его содержимое автоматически уве­личивается (инкрементируется) так, что к следующему обращению в нем содержится адрес следующей ячейки данных. При автодекрементном спо­собе до операции содержимое адресуемого регистра автоматически уменьшается (декрементируется) и операнд извлекается по этому адресу *[11].

Любой микропроцессор может быть представлен своей программной (регистровой) моделью, показывающей ресурсы МП, кото­рыми программист может распоряжаться при разработке программ. Для сравнения на рис. 7.3 показаны программные модели четырех различ­ных семейств МП. двух семейств 8-разрядных МП Intel 8080/8085 (МП КР580ВМ80А) и Z80, а также двух семейств 16-разрядных МП Intel 8086/8088 (МП KM18WBM86) и отечественного семейства К1801 (МП типов К1801ВМ1; К1801ВМ1Г: К1801ВМ2 ). Как же указывалось ранее, первые три из показанных на рис. 7 3 моделей МП совместимы снизу вверх, в то время как МП семейства К1801 имеют совсем другую систему команд. МП этого семейства были разработаны для решения инженерно-технических и экономических задач, для применения в систе­мах управления технологическими процессами, в системах связи и контрольно-измерительной аппаратуре. В частности, на их основе разработан ряд получивших весьма широкое распространение отечественных микроконтроллеров и управляющих систем семейства «Электроника».


 

Рис. 7.3. Программные модели некоторых микропроцессоров а — МП Intel 8080/8085 (КР580ВМ80А). б — МП Z80, в — МП Intel 8086/8088 (КМ1810ВМ86),

г — МП семейства К1801

Как следует из рассмотрения рис. 7.3, а, 8-разрядные МП семейст­ва Intel 8080 / 8085 (КР580ВМ80А), помимо аккумулятора А, содержат шесть 8-битных рабочих регистров, обозначаемых буквами В, С, D Е И и L. 8-битный регистр флажков F, а также два 16-разрядных указа­тельных регистра PC и SP Назначение и принцип работы всех этих регистров полностью соответствует приведенному ранее классическому описанию с тем лишь небольшим дополнением, что в некоторых коман­дах возможно объединение 8-битных регистров в регистровые пары ВС, DE и HL, используемые для работы с 16-разрядными словами или для хранения 16-битных адресов данных. По сравнению с МП семейства Intel 8080/8085, МП Z80 имеет вдвое большее число рабочих регистров, два регистра состояний (F и F') и два дополнительных 16-битных индексных регистра (IX и IY ) для адресации данных. Внутренние рабочие регистры А, В, С, D, Е, Н, L и регистр флажков F в программной модели МП Z80 (см. рис.7 3, 6) аналогичны соответствующим регистрам МП Intel 8080/8085. Использование второго точно такого же набора регис­тров А’, В’, С’, D’, Е’, Н’, L’ и F') позволяет программисту значительно реже обращаться к памяти, из-за чего, в конечном счете, и достигается более высокое быстродействие MTIZ80.

Все 14 внутренних регистров МП Intel 8086/8088 ( КМ1810ВМ86 ) выполнены 16-разрядными ( см. рис. 7.3, в ), из них 4 рабочих регистра (АХ, ВХ, СХ и DX) допускают независимое обращение к своим младшим (AL, BL, CL и DL ) и старшим (АН, ВН, СН и DH) байтам. Совмести­мость снизу — вверх с более ранними 8-разрядными МП достигается на уровне машинных кодов при условии, что роль аккумулятора 8-разрядного МП выполняет младшая часть AL регистра АХ, а вместо регис­тровых пар ВС, DE и HL используются соответственно регистры ВХ, СХ и DX. В остальных же командах 16-разрддного МП все его рабочие регистры работают как регистры общего назначения (РОН) Набор ука­зательных регистров в 16-разрядных МП семейства Intel расширен до 9 регистров Помимо описанных ранее счетчика команд PC и указателя стека SP, используемого для хранения адреса вершины стека, програм­мная модель (см рис 7.3, в) включает в себя четыре дополнительных регистра CS, DS, ES и SS, обеспечивающие работу с объемом памяти до 1 Мбайт, два индексных регистра S1 и D1 для работы с цепочками данных и еще один дополнительный указательный регистр ВР, с помощью которого легко организуется простой доступ к любым данным в пределах стека. МП аппаратно поддерживает большинство из описан­ных выше способов адресации, поскольку индексные и указательные регистры, подобно обычным РОН, могут участвовать в арифметических и логических операциях

Программная модель МП семейства К1801 (см. рис. 7.3, г), помимо регистра состояния ( называемого словом состояния процессора — ССП содержит 8 РОН (их обозначения R0 — R7), каждый из которых может использоваться как для выполнения арифметических и логических команд, так и для операций с адресами. Некоторые из указанных РОН также выполняют специальные функции, например, регистр R7 выпол­няет роль указателя команд, a R6 используется в командах, связанных с операциями со стеком. В огличие от описанных ранее семейств, МП семейства К1801 отличаются более развитой и весьма гибкой системой команд. Они поддерживают все (в том числе и самые сложные — косвен­ные) способы адресации, а также допускают в одной команде непосред­ственные операции между двумя ячейками памяти. МП К1801ВМ1 поз­воляет адресоваться к 64 кбайт памяти, а вдвое более производитель­ный МП К1801ВМ2 допускает расширение адресного пространства до 128 кбайт. Последняя разработка МП этого семейства (К1801ВМЗ) отличается еще более высокой производительностью, обеспечивает воз­можность подключения арифметического сопроцессора и позволяет ра­ботать с объемом памяти до 4 Мбайт. Таким образом, при сохранении своих индивидуальных особенностей в процессе дальнейшего совершен­ствования МП различных семейств происходит взаимный обмен удачны­ми идеями и архитектурными решениями.

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

Безусловное ветвление применяется в том случае, когда очередная исполняемая команда программы по каким-либо причинам размещена в другой области памяти.

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

В виде подпрограмм обычно оформляются наиболее часто используе­мые секции программы. Это могут быть вычисления значений каких- либо функций, а также любые последовательности операций, обращение к которым в основной программе проводится несколько раз. Такой механизм позволяет более эффективно использовать память, так как вместо многократного размещения одной и той же последовательности команд в нескольких участках основной программы он позволяет один раз записать ее, например, в конце основной программы. При этом в нужных местах основной программы применяется команда обращения к подпрограмме (общая мнемоника таких команд — CALL), адресная часть которой указывает МП место размещения требуемой подпрог­раммы. В процессе выполнения подпрограммы (это, конечно, зависит от ее сложности) МП может использовать все (или почти все) его рабочие регистры, поэтому для продолжения вычислений после возврата из подпрограммы их старое содержимое (а также содержимое регистра флажков) должно быть сохранено. Для возврата к основной програм­ме также следует запомнить и адрес следующей команды (содержи­мое регистра PC) за командой обращения к подпрограмме (адрес воз­врата). Как правило, при обращении к подпрограмме вся необходимая для возврата к основной программе информация записывается в стеке. В некоторых МП (например, МС6800) такое сохранение выпол­няется автоматически, в других — организуется программно в тексте подпрограммы. В конце подпрограммы прежнее содержимое рабочих регистров восстанавливается, и по команде возврата из подпрограммы записанный в стеке адрес возврата заносится в регистр PC

Иногда возникает необходимость заставить МП автоматически выпол­нить одну из набора специальных программ, когда в программе или в вычислительной системе возникают некоторые определенные условия Такие действия называют прерыванием, а выполняемую при этом программу — процедурой прерывания. Различают внутреннее и внешне прерывания Внутреннее прерывание исполняемой программы вызывается состоянием самого МП, а внешнее — специальным сигналом, пода­ваемым в МП от обслуживаемого им внешнего устройства. Например, необходимость внутреннего прерывания возникает, когда в исполняе­мой МП программе имеет место попытка деления на нуль (ошибка в вычислениях) или когда МП выявляет, что поступивший в регистр команды двоичный код не соответствует ни одной из его команд (ошибка в программе). Внешние прерывания чаще всего используют при организации обслуживания МП нескольких параллельно работающих внешних устройств.

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

Вопрос 7.6. При выполнении некоторой двухадресной команды один из рабочих регистров МП использовался в качестве регистра-источника. Каким будет его содержимое после выполнения следующих нескольких команд, если ни в одной из них к нему не было обращения?

Варианты ответа:

7.6.1 (7.7.1). Содержимым регистра будет результат, который в нем был до исполнения указанной двухадресной команды.

7.6.2 (7.7.2). Содержимым регистра будет результат исполнения ука­занной двухадресной команды.

7.6.3 (7.7.3). Содержимым регистра будет результат исполнения сле­дующей команды после указанной двухадресной команды.

7.6.4 (7.7.4). Содержимым регистра будет результат исполнения пос­ледней из указанных нескольких команд.

Вопрос 7.7. Среди указанных выше вариантов ответа выберите пра­вильный ответ, если в условиях вопроса 7.6 речь будет идти о регистре приемнике

Вопрос 7.8. При обращении к подпрограмме содержимое всех регист­ров МП в некотором порядке поочередно записывается в стек. Каким должен быть порядок восстановления их содержимого из стека при выходе из подпрограммы с тем, чтобы можно было сразу продолжить основную программу (без дополнительных пересылок типа регистр — регистр)?

Варианты ответа:

7.8.1. Порядок может быть любым.

7.8.2. Должен быть сохранен прежний порядок.

7.8.3. Порядок должен быть обратным прежнему.

7.3. ЗАПОМИНАЮЩИЕ УСТРОЙСТВА

Современные цифровые электронные устройства (ЦЭУ) и, в частнос­ти, МС и ПЭВМ обычно используют три вида памяти: постоянную, опе­ративную и внешнюю. Постоянная память обеспечивает хранение ин­формации, которая не должна изменяться в ЦЭУ в ходе выполнения программ, в оперативной памяти хранится переменная информация, допускающая изменение своего содержимого в ходе вычислительных опе­раций. Первые два вида памяти реализуют при помощи различного рода запоминающих устройств. В бытовой технике, например, в телевизорах пятого поколения или в радиоприемниках с цифровой настройкой ЗУ применяются для хранения значении параметров, определяющих режи­мы их работы (частот каналов настройки, установленных уровней громкос­ти, яркости, контрастности и т.п.). В современной цифровой технике широко используются различные виды запоминающих устройств (ЗУ), от отдельных триггеров и наборов регистров до специальных модулей памяти.

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


Поделиться:



Последнее изменение этой страницы: 2017-05-05; Просмотров: 989; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.071 с.)
Главная | Случайная страница | Обратная связь