Реферат: Вначале 70-х годов появилась первая большая инте­гральная микросхема, выполнявшая функции центрального процессора (ЦП) вычислительной машины



ПРЕДИСЛОВИЕ


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

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

Выбор в качестве объекта изучения микропроцессора К580ИК80 (зарубежный аналог—микропроцессор 8080 фирмы Intel) объясняется тем, что он выполнен по классической структуре, в течение продолжительного времени он был и остается весьма популярным до сих пор. Достаточно напомнить, что 8080 в течение ряда лет оставался самым распространенным зарубежным микропроцессором и в последующих разработках фирмы Intel (микропроцессоры 8080А, 8085) сохранена программная совместимость с 8080. Кроме того, наличие у этого микропроцессора фиксированной системы команд облегчает составление прикладных программ.

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


^ 1 МИКРОПРОЦЕССОР К580ИК80


Микропроцессор К580ИК80 (далее сокращенно К580) представляет собой монолитный параллельный 8-битный процессор, имеющий фиксированную систему команд и классическую архитектуру с отдельными шинами адреса и данных. Он рассчитан на самые разнообразные применения в качестве ядра микропроцессорной системы (МП системы), выполняющего функции преобразования цифровых данных. Основная область его применения — специализированные системы (контроллеры), работающие по фиксированной программе. Микропроцессор выполнен по NMOП-технологии и выпускается в 48-контактном керамическом корпусе с двусторонним расположением выводов (типа DIP). На кристалле микропроцессора размещено около 5000 транзисторов.


^ 1.1 АРХИТЕКТУРА МП СИСТЕМЫ НА БАЗЕ К580


Общий вид системы на базе микропроцессора К580 показан на рисунке 1.1. В ней выделяют три основных компонента — центральный процессор, функции которого выполняет микропроцессор, память и средства ввода-вывода.




Рисунок 1.1 - Основные компоненты МП системы


Микропроцессор является единственным активным компонентом системы и реализует следующие функции:

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

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

- реагирует на разнообразные внешние сигналы.

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

В функциональном отношении память состоит из однотипных ячеек, длина (разрядность) которых совпадает с длиной слова микропроцессора, т. е. составляет 8 бит (1 байт). Ячейки пронумерованы, номера их называются адресами, и для обращения к ячейке достаточно указать ее адрес. Совокупность ячеек, к которым потенциально может адресоваться микропроцессор, называется адресным пространством (полем) памяти, а фактически имеющиеся ячейки образуют рабочее (физическое) пространство памяти МП системы.

Адресное пространство микропроцессора К580 составляет 64 Кбайт (65536 ячеек). Адресное пространство графически изображается в виде столбца из 64 Кстрок (ячеек) с шестнадцатиразрядными двоичными адресами от 00...00 до 11...11. В последнее время в современной зарубежной и отечественной литературе адреса представляются в шестнадцатеричной системе счисления, как 0000…FFFF. В МП системе различные области адресного пространства группируются в блоки, образующие так называемую карту памяти. Блоки могут относиться к аппаратным устройствам, например блоки ПЗУ и ЗУПВ, или к программным образованьям, например основная программа, подпрограммы, стандартные программы ввода-вывода и др. Нумерация ячеек обычно производится сверху вниз и реже — снизу вверх.

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

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

Функциональное назначение:

линии адреса, образующие шину адреса A15 – А0;

линии данных, образующие шину данных D7 – D0;

линии управления, образующие шину управления;

линии синхронизации и питания.

Направление передачи информации:

- линии, направленные в микропроцессор;

- линии, направленные от микропроцессора;

- двунаправленные линии, по которым сигналы пере­даются в обоих направлениях.

В микропроцессоре К580 двунаправленными являются только линии шины данных D7 – D0, а все остальные— однонаправленными.

Протокол обмена информацией по системной шине.

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

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

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

Рассмотрим функциональное назначение линий.

На рисунке 1.2 приведена системная шина МП систем на базе микропроцессора К580.

^ Шина адреса (адресная шина, адресная магистраль, адресный канал), состоящая из 16 линий (A15 – А0), предназначена для передачи адресов от микропроцессора в память и порты ввода-вывода. Другими словами, сигналы адреса идентифицируют внешние регистр-источник или регистр-получатель, участвующие в обмене данными с одним из внутренних регистров микропроцессора.







Рисунок 1.2 - Линии системной шины


Шестнадцать линий шины адреса определяют адресное пространство из 64 Кбайт. Старшие восемь линий адреса (A15 – А8) называются адресом страницы, а младшие восемь линий (A7 – А0)—адресом в странице (или строкой).

При записи адресов чаще всего используется 16-ричная система, поэтому диапазон адресов составляет от 000016 до FFFF16 (далее основание системы не указывается). Память системы организуется по круговому принципу, т. е. после ячейки с максимальным адресом FFFF следует ячейка с минимальным адресом 0000.

Применение 16-битной шины адреса в микропроцессорах с 8-битным словом данных представляется весьма логичным:

- адрес можно хранить в двух смежных ячейках памяти;

- адресного пространства из 64 Кбайт достаточно для широкого диапазона применений.

В процессе выполнения программы адреса формируются в микропроцессоре и передаются в другие компоненты системы.

Для реализации в системе специального режима обмена данными с быстродействующими периферийными устройствами, называемого прямым (непосредственным) доступом к памяти, в схеме микропроцессора на линиях шины адреса предусмотрен буфер с Z-состоянием, т. е. буфер с тремя возможными состояниями, два из которых соответствуют уровням напряжений логических 0 и 1 (при этом компонент подключен к шине адреса), а третье - это высокоимпедансное (плавающее – с большим выходным сопротивлением) состояние, когда компонент отключен от шины.

^ Шину данных (информационная магистраль, числовая магистраль, канал данных, информационная шина), являющуюся основным информационным трактом МП системы, образуют восемь двунаправленных тристабильных линий D7 – D0. По этой шине осуществляется обмен любой информацией между всеми компонентами системы, в частности, по ней передаются команды, операнды, результаты операций, вводимые и выводимые данные. Двунаправленность шины данных означает возможность передачи информации в обоих направлениях (от микропроцессора и в микропроцессор). Направление передачи определяется специальными управляющими сигналами, которые генерирует микропроцессор. Разумеется, в любой момент времени по шине данных производится одна передача в одном направлении, т. е. шина данных работает в мультиплексном режиме.

Чтобы упростить подключение компонентов МП системы к общей шине данных, на выходах линий данных (шине данных) всех компонентов обычно предусматриваются буферы с Z-состоянием. Управление состоянием буферов осуществляется внешними сигналами выбора кристалла CS (разрешения кристалла СЕ, выбора устройства DS). Обычно они формируются путем декодирования сигналов со старших линий шины адреса.

^ Шина управления (управляющая шина, управляющая магистраль, управляющий канал), состоящая из десяти линий, служит для передачи управляющих сигналов, определяющих характер и порядок функционирования компонентов МП системы. Управляющие сигналы микропроцессора К580 можно объединить в следующие группы.

1 Группа сигналов управления состоянием микропроцессора:

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

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

1.3 - выходной сигнал ожидания WAIT, свидетельствующий о том, что микропроцессор приостановлен.

2 Группа сигналов управления шинами адреса и данных:

2.1 - выходной сигнал считывания (приема) DBIN, определяющий направление передачи по шине данных в микропроцессор. Слово из адресуемого внешнего регистра, представленное уровнями напряжений на шине данных, загружается в один из внутренних регистров микропроцессора;

2,2 - выходной сигнал записи (выдачи) , определяющий направление передачи по шине данных от микропроцессора. Уровни напряжений на линиях шины данных представляют собой слово из внутреннего регистра, подлежащее записи в адресуемый внешний регистр;

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

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

3 Группа сигналов, связанных с прерываниями, т. е. с запросами периферийных устройств на обмен информацией:

3.1 - входной сигнал запроса прерывания INТ, означающий готовность периферийного устройства к обмену данными. Реагируя на этот сигнал, микропроцессор прерывает выполнение текущей программы, временно запоминает ее состояние, обслуживает периферийное устройство (обменивается с ним данными), после чего восстанавливает прежнее состояние и возобновляет выполнение прерванной программы;

3.2 - выходной сигнал разрешения прерывания INТЕ, определяющий возможность или невозможность обслуживаний микропроцессором запросов периферийных устройств.

При высоком уровне INTE микропроцессор реагирует на сигнал INT (прерывания разрешены), а при низком – не реагирует (прерывания запрещены или замаскированы). Сигнал INТЕ является выходным сигналом внутреннего триггера разрешения прерываний, состоянием которого можно управлять программно: команда EI разрешает прерывания, а команда DI — запрещает. Следовательно, программист всегда может защитить от прерываний критические участки прикладной программы.

Микропроцессор имеет три линии синхронизации. На входы Ф1 и Ф2 подаются двухфазные неперекрывающиеся сигналы от главного генератора синхронизации («часов»). Они определяют моменты выполнения большинства действий в МП системе, т. е, создают временную базу функционирования системы. Период сигналов синхронизации определяет производительность МП системы. На рис. 1.3 показаны сигналы синхронизации микропроцессора К580. Начала тактов определяются нарастающими фронтами сигналов Ф1, а большинство действий в системе привязано к нарастающим фронтам сигналов Ф2.

Выходной сигнал синхронизации SYNC идентифицирует начало каждого машинного цикла, в течение которого микропроцессор адресуется к внешнему регистру, обменивается с ним данными и при необходимости производит внутреннее преобразование данных. Одновременно с сигналом SYNC микропроцессор выдает на шину данных байт состояния, содержащий информацию о действиях микропроцессора в текущем машинном цикле.




Рисунок 1.3 - Двухфазные сигналы синхронизации


При рассмотрении управляющих сигналов нетрудно заметить парность некоторых из них (READY—WAIT, HOLD—HLDA). Реакция на сигнал, инициировавший некоторое действие, ответным сигналом, который подтверждает выполнение этого действия, называется квитированием («рукопожатием», или согласованным обменом). С помощью квитирования вводится асинхронный режим интерфейса компонентов МП системы и обеспечивается максимальное быстродействие, поскольку на каждое действие отводится временной интервал, фактически необходимый для производства этого действия.

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

Если сигнал вызывает выполнение некоторого действия или обозначает определенное условие при высоком уровне напряжения или при переходе от низкого уровня к высокому, будем называть его активным при высоком уровне напряжения, или Н-активным. Если сигнал вызывает выполнение закрепленной за ним функции, имея низкий уровень напряжения или при переходе от высокого уровня к низкому, будем называть его активным при низком уровне, или L-активным. Согласно этим определениям в микропроцессоре К580 есть только один L-активный сигнал , а все остальные сигналы являются Н-активными. На схемах L-активные сигналы обозначаются небольшим кружком (инверсия) в месте входа или выхода соответствующих им линий. В тексте активные сигналы отмечаются чертой отрицания над наименованием сигнала. Основная причина введения L-активных сигналов скрыта в простоте объединения по ИЛИ сигналов от нескольких источников (монтажное ИЛИ). Кроме того, выходной каскад с L-активным сигналом большую часть времени находится в выключенном состоянии, т. е. потребляет минимальную энергию.

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

Одной из особенностей компонентов МП системы, обеспечивающей возможность их электрического сопряжения друг с другом и с разнообразными периферийными устройствами, является ТТЛ-совместимость. Выбop такого стандарта для интерфейса объясняется очень широким распространением приборов и устройств на ТТЛ- схемах. Все входные и выходные сигналы микропроцессора К580 совместимы с ТТЛ- схемами. Выходные сигналы микропроцессора являются маломощными—их нагрузочная способность эквивалентна одному входу ТТЛ- схемы, а емкостная нагрузка не должна превышать 100 пкФ.

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

Напряжения питания микропроцессора К580 составляют + 12 В ±5%, +5 В±5%;—5 В ±5%, потребляемая мощность не превышает 1 Вт, а рабочий температурный диапазон составляет от —10 до +70°C.


^ 1 2 ПРОГРАММНАЯ МОДЕЛЬ МП-СИСТЕМЫ


Основным элементом архитектуры МП системы обычно является регистр, т. е. некоторое физическое устройство, способное воспринимать, хранить и выдавать слово информации. Разрядность всех регистров в системе равна или кратна длине слова микропроцессора. Из всего разнообразия схем триггерных регистров наибольшее распространение в МП системах получили простейшие регистры-защелки (фиксаторы), выполненные на D-триггерах. Восьмибитный регистр-защелка имеет восемь входных линий DI7 – DI0, восемь выходных линий D7 – D0 и управляющий сигнал С (сигнал синхронизации). При высоком уровне сигнала С выходные сигналы на линиях D7 – D0 повторяют значения входных сигналов на этих линиях (с определенной задержкой распространения). Когда сигнал С изменяется от высокого уровня к низкому, на выходных линиях D7 – D0 фиксируются и сохраняются (эффект «защелкивания») те значения сигналов на входных линиях DI7 – DI0, которые действовали в момент перехода. Для правильной работы регистра-защелки необходимо, чтобы входные сигналы не изменялись в течение некоторого интервала времени до начала действия спадающего фронта сигнала С и в течение некоторого интервала времени после окончания действия этого фронта. Первый из этих интервалов называют временем установления (set-up time), второй — временем сохранения (hold time). Регистр-защелка обычно имеет асинхронный вход сброса CLR.

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

Команды состоят из двух полей: поля операции (оператор), которое определяет выполняемое действие или операцию, и поля операнда — данные, участвующие в операции. Длина оператора обычно составляет 1 байт, и содержимое его называется кодом операции. В микропроцессорах используется адресный принцип построения команд — в поле операнда содержится не значение операнда, хотя это допускается в командах с непосредственной адресацией, а адрес регистра, содержащего операнд и называемого регистром-источником, или S-регистром.




Рисунок 1.4 - Структурная схема микропроцессора

Блок регистров организован в шесть 16-битных регистров: программный счетчик PC, указатель стека SP, регистр временного хранения W, Z и три пары 8-битных регистров общего назначения В, С; D, Е; Н, L. Программный счетчик хранит адрес текущей ячейки программной памяти. Указатель стека адресует последнюю занятую ячейку (или «верхушку») стека. Перед загрузкой в стек каждого байта производится декремент (уменьшение содержимого на 1) указателя стека, а после извлечения из стека каждого байта выполняется автоматический инкремент указателя стека. Инициализация указателя стека производится специальной командой LXI SP, поэтому в качестве стека допускается использовать любую область внешнего ОЗУ. Регистр W, Z недоступен программисту и используется при выполнении команд для временного хранения слов.

В микропроцессоре К580 применяются одно- и двухадресные команды, причем двухадресными являются только команды межрегистровых передач. В таких командах приходится адресовать регистр-источник и регистр-получатель (D-регистр). Во всех бинарных командах, связанных с преобразованием данных, в качестве подразумеваемого и поэтому неадресуемого операнда используется содержимое важнейшего внутреннего регистра микропроцессора — аккумулятора, или А-регистра (накопительный регистр, накапливающий сумматор, накопитель, регистр-сумматор, регистр результата). Обычно результат операции загружается в аккумулятор. Таким образом, аккумулятор является узловой точкой всех преобразований данных и основным рабочим регистром микропроцессора. Он выполнен как регистр-защелка, вход которого связан с выходом АЛУ, а выход подключается к одному из входов АЛУ.

Арифметическо-логическое устройство представляет собой сложную двухвходовую комбинационную схему, которая сигналами от устройства управления коммутируется на выполнение определенной операции. Арифметическо-логическое устройство микропроцессора К580 рассчитано на параллельное преобразование двух 8-битных операндов.

При указании в команде полного 16-битного адреса памяти она становится 3-байтной: первым байтом <В1> всегда является код операции; вторым — байт <В2>, содержащий младшие 8 бит адреса А7-А0; а третьим—байт <В3>, содержащий старшие 8 бит адреса А15-А8. Такая команда занимает в программной памяти три смежные ячейки. Для сокращения длины программы и экономии программной памяти в микропроцессор введены такие режимы адресации, которые позволяют применять одно- и двухбайтные команды. На рисунке 1.5 показано размещение фрагмента программы в памяти. Для хранения текущего адреса программной памяти используется программный счетчик PC или Р-регистр (счетчик команд, счетчик инструкций, счетчик адреса команды, указатель команды). При каждом обращении к программной памяти производится автоматическое увеличение содержимого программного счетчика на единицу, называемое инкрементом.





Рисунок 1.5 - Размещение команд программы в памяти


Выполнение команды в МП системе, как и любой вычислительной машине, состоит из следующих крупных этапов: выборка команды, считывание операнда и собственно выполнение операции. В свою очередь каждый из этапов включает в себя несколько более мелкиx шагов. Рассмотрим выполнение 3-байтной команды, считая, что в программном счетчике содержится адрес 0500.

На первом шаге содержимое программного счетчика по шине адреса передается в память и сигналом считывания DBIN производится выборка первого байта команды — им всегда является код операции. По шине данных код операции передается в микропроцессор, загружается в регистр команд и хранится в нем в течение всего последующего времени выполнения команды. Одновременно с этим производится инкремент программного счетчика, который указывает на следующую ячейку программной памяти с адресом 0501.

Регистр команд связан со сложной схемой дешифрирования и синхронизации, из которой информация о коде операции поступившей из памяти команды передается в устройство управления. На это же устройство подаются сигналы синхронизации и внешние управляющие сигналы. Устройство управления генерирует необходимые последовательности сигналов, коммутирующих схемы самого микропроцессора и поступающих в другие компоненты системы. Основу устройства управления микропроцессора К580 составляют программируемые логические матрицы.

По коду операции устройство управления распознает 3-байтную команду и осуществляет необходимые действия по выборке второго и третьего байтов команды. Для этого содержимое PC (в данном случае 0501) по шине адреса передается в память, осуществляется считывание второго байта <В2> команды и передача его по шине данных в младшие биты регистра адреса памяти (регистр Z). Одновременно производится инкремент PC, который указывает на следующую ячейку программной памяти с адресом 0502. Аналогично в старшие биты регистра адреса памяти (регистр W) считывается третий байт <ВЗ> данной команды. Выборка команды завершена, a PC содержит адрес 0503.

На этапе считывания операнда содержимое регистра адреса памяти по шине адреса передается в память, сигнал DBIN производит считывание, байт операнда по шине данных передается в микропроцессор и загружается в один из регистров для временного хранения. Теперь микропроцессор готов к собственно выполнению операции. Устройство управления подключает на входы АЛУ регистр с операндом и аккумулятор и коммутирует схему АЛУ на выполнение операции, определяемой кодом операции, хранящимся в регистре команд. Арифметическо-логическое устройство выполняет операцию, и формируемый на его выходах результат загружается в аккумулятор. (Трехбайтные команды в микропроцессоре К580 связаны только с передачами слов, поэтому третий этап описан здесь для некоторой гипотетической команды).

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

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

Рассмотренный пример выполнения 3-байтной команды показывает, что собственно ее выполнение занимает небольшую долю цикла команды, а значительная часть его приходится на подготовительные действия — выборку команды и считывание операнда. Для сокращения длины программы и увеличения производительности микропроцессора в его состав необходимо ввести дополнительные внутренние регистры.

Одну из групп образуют регистры адреса, рассчитанные на хранение 16-битных адресов и называемые указателями памяти. В микропроцессоре К580 таким особым указателем памяти является указатель стека SP, используемый при организации вложенных подпрограмм и обработке многоуровневых прерываний. Кроме того, в качестве указателей памяти используются регистровые пары В-(В, С), D-(D, E), Н-(Н, L). Наличие указателей памяти позволяет с помощью косвенной адресации обращаться к памяти 1-байтными командами. Важно подчеркнуть, что все указатели памяти являются программно доступными, т. е. их содержимое можно модифицировать с помощью специальных команд.

Вторую группу образуют регистры общего назначения (РОН), разрядность которых равна длине слова микропроцессора и которые могут хранить любые данные. (Синонимы: сверхоперативная, локальная, внутренняя или «блокнотная» память микропроцессора, общие регистры, универсальные регистры). Специальными командами можно загрузить в любой РОН данные из памяти, передать данные из одного РОН в другой и запомнить содержимое любого РОН в памяти. Гораздо важнее то, что содержимое любого РОН может быть операндом в разнообразных операциях. Команды, оперирующие содержимым РОН, оказываются короткими и выполняются за минимальное время, так как этап считывания операнда из памяти в них отсутствует. В микропроцессоре К580 есть шесть РОН: В, С, D, E, H, L с 3-битными внутренними адресами от 000 до 101. Аккумулятор А можно использовать как РОН с адресом 111. При составлении прикладных программ приходится избирать то или иное направление их выполнения в зависимости от особенностей (признаков) текущих результатов, т. е. принимать решения в соответствии со складывающейся ситуацией. Для этого при выполнении многих команд микропроцессор формирует двоичные признаки (флажки), отражающие особенности результата выполненной команды. Значение каждого признака фиксируется в специальном триггере. Если какая-либо особенность имеет место, то в соответствующем триггере записывается 1 (флажок установлен); в противном случае триггер фиксирует 0 (флажок сброшен). Совокупность триггеров флажков образует регистр флажков, или F-регистр, называемый также регистром кода условия. Содержимое аккумулятора и F-регистра будем называть в дальнейшем словом состояния программы. Для его обозначения будем использовать аббревиатуру PSW (processor status word). Входы F-регистра через комбинационную схему связаны с выходом АЛУ, и вместе с формированием результата операции производится установка или сброс флажков.

В микропроцессоре К580 имеются следующие флажки:

С — флажок переноса. Устанавливается при наличии переноса из старшего бита результата (в операциях вычитания флажок С становится флажком заема);

S — флажок знака. Совпадает со значением старшего бита результата;

Z — флажок нуля. Устанавливается при нулевом результате;

Р — флажок паритета. Устанавливается при наличии в результате четного числа единиц. Используется термин «паритет» вместо обычного термина, «четность», так как иногда приходится подчеркивать четный паритет (even parity) и нечетный паритет (odd parity).

AC — флажок вспомогательного переноса (полупереноса). Устанавливается при возникновении переноса из третьего бита в четвертый, т. е. из младшей тетрады в старшую.

В F-регистре флажки распределены следующим образом: бит 7 — флажок S, бит 6 — флажок Z, бит 4 — флажок АС, бит 2 — флажок Р, бит 0 — флажок С. Биты 5 и 4 содержат нули, а бит 1 — единицу. Важнейшим из флажков является флажок С, называемый иногда битом связи. Наличие его позволяет организовать на малоразрядном микропроцессоре обработку данных любой длины путем последовательной обработки байтов oпeрандов.

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

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

Обмен 8-битными словами между внутренней шиной данных и блоком регистров производится через мультиплексор выбора регистра. Имеются также линии передачи 16-битных слов между блоком регистров и схемой инкремента/декремента (инкрементор/декрементор). Эта схема представляет собой быстродействующую комбинационную схему, выходное слово которой в зависимости управляющих сигналов представляет собой увеличенное или уменьшенное на 1 значение входного слова, Шестнадцатибитные слова из любой пары регистров можно загрузить в регистр-защелку адреса, который управляет буферами шины адреса и схемой инкремента/декремента. Последняя преобразует слова в соответствии с заданной операцией и возвращает их в блок регистров. Введение схемы инкремента/декремента обеспечивает совмещение инкремента программного счетчика с другими действиями микропроцессора. В состав узла АЛУ входят аккумулятор, регистр-защелка аккумулятора, регистр временного хранения данных, регистр флажков и параллельное 8-битное АЛУ. Предусмотрена также схема десятичной коррекции, которая позволяет обрабатывать двоично-кодированные десятичные числа (ДКД-числа, или BCD-числа). Результат операции с выхода АЛУ можно передать на внутреннюю шину или загрузить в аккумулятор. Регистр временного хранения принимает информацию с внутренней шины и может выдавать ее в АЛУ, регистр флажков или на внутреннюю шину.

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

В технической документации обычно приводятся более подробные структурные схемы микропроцессоров. Однако для подавляющего большинства пользователей анализировать внутреннее устройство (микроархитектуру) микропроцессора совсем не обязательно, тем более что по мере роста степени интеграции оно неизбежно будет становиться все более сложным. Достаточную для практического использования микропроцессоров информацию дает программная Реакция микропроцессора на сигнал READY. Когда быстродействия внешней подсистемы, например памяти, недостаточно для синхронного обмена данными с микропроцессором, она может приостановить действия микропроцессора установкой L-уровня на линии READY, т. е. «растянуть» машинный цикл на целое число периодов синхронизации. Чтобы микропроцессор отреагировал на L-ypoвень READY в текущем машинном цикле, этот уровень должен стабилизироваться минимум за 180 нc до спадающего фронта сигнала Ф2 и сохраняться стабильным до окончания импульса Ф2. При соблюдении данного условия микропроцессор не переходит к такту Т3 и вводит состояние ожидания Tw (рисунок 1.11). В состояниях на шине адреса сохраняется выданный в такте Т1 адрес внешнего регистра, а также сигнал DBIN, если текущий цикл Mi связан передачей данных в микропроцессор. Для квитирования (подтверждения) перехода в состояние Tw микропроцессор по нарастающему фронту сигнала Ф1 формирует Н-уровень на линии WAIT.




Рисунок 1.11 - Введение состояний ожидания


Продолжительность состояний ожидания определяется д
еще рефераты
Еще работы по разное