Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовой проект / дала ГРИцюк

.doc
Скачиваний:
36
Добавлен:
21.02.2014
Размер:
108.54 Кб
Скачать

4 ОПИСАНИЕ МИКРОПРОЦЕССОРА

Восьмиразрядный микропроцессор Z80 был создан специалистами, участвовавшими в разработке всем известного микропроцессора 8080 фирмы «Intel» и имевшими определенные идеи по его усовершенствованию. Они уволились с фирмы «Intel» и основали компанию «Zilog Corporation», где и воплотили свои идеи в новом микропроцессоре — Z80. Как известно, суще­ствуют несколько модификаций микропроцессора Z80 различающихся пре­дельными значениями тактовой частоты Z80 (2,5 МГц), Z80A (4 МГц), г80В(6МГц) и г80Н(8МГц).

4.1 Структурная схема МП и её описание

Организация МП Z80 отмечена следующими основными особенностями:

  • трехшинной структурой с шинами адреса, данных и управления;

  • наличием регистровой памяти, образованной программно доступными общими и специализированными регистрами, а также регистрами вре­менного хранения;

  • наличием двух (главного и вспомогательного) аккумуляторов, флаговых регистров и наборов РОН;

  • магистральным принципом связей, реализованным в виде связываю­щей основные узлы МП двунаправленной шины данных, имеющей ширину, равную длине слов, обрабатываемых микропроцессором (8 разрядов);

  • наличием 16-разрядной шины адреса обеспечивающей возможность прямой адресации любого байта в памяти емкостью 64 Кбайт; Z80 имеет два набора восьмиразрядных регистров (А — L) и столько же флаговых регистров (F). В каждый момент активен и программно доступен только один набор. Переключаются они программным путем,

при этом содержимое регистров сохраняется. Кроме того, Z80 имеет 16-разрядные регистры: счетчик команд (PC) и указатель стека (SP). Обычно ЭВМ имеет различные адресные пространства памяти и регистров МП, а иногда -отдельные адресные пространства регистров устройств ввода-вывода и внутренней памяти. Кроме того, память хранит как данные, так и команды. Поэтому для ЭВМ разработано множество способов обращения к памяти, называемых режимами адресации. Режим адресации памяти - это процедура или схема преобразования адресной информация об операнде в его исполнительный адрес. Все способы адресации памяти можно разделить на:

  1. прямой, когда исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения, указанного в команде, и содержимого какого-либо регистра (прямая адресация, регистровая, базо­вая, индексная и т.д.);

  2. косвенный, который предполагает, что в команде содержится значе­ние косвенного адреса, т.е. адреса ячейки памяти, в которой находится окон­чательный исполнительный адрес (косвенная адресация). Z80 применялся в машинах Sinclair ZX, Sinclair Spectrum, Tandy TRS80.

В состав Z80 входят: устройство управления, регистр команд, про­граммный счетчик, 24 регистра пользователя и арифметико-логическое уст­ройство.

- Устройство управления: В Z80 управляющее устройство выдает ог­ромное число внутренних управляющих сигналов, а также обеспечивает формирование внешних управляющих сигналов.

- Регистр команд; Термин "регистр" используется для описания простой ячейки памяти внутри Z80. Регистр содержит 8 бит (1 байт). В Z80 имеется большой блок регистров, и пересылка байтов данных к регистрам и от них является простейшей и наиболее важной чертой программирования в машинных кодах.

Рисунок 1- Микропроцессор Z80 фирмы Zilog.

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

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

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

Действие программного счетчика очень похоже на переменную РРС интерпретатора бэйсик, которая содержит номер текущей строки бэйсик и также наращивается.

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

Регистр F - это флаговый регистр. Он часто рассматривается как набор восьми флаговых битов, связанных вместе, а не как отдельный регистр. Ус­тановление флага соответствует 1, сброс -0. Программист обычно имеет дело с 4-мя основными флагами. Это флаг нуля, флаг знака, флаг переноса и флаг четности-переполнения. Дополнительные флаги используются управляющим устройством и не могут быть использованы программистом непосредственно.

Регистровая пара HL: При обращении к регистровой паре HL сначала указывается младшая часть (LOW), а затем старшая (HIGH). Память 64К может быть рассмотрена как 256 страниц по 256 адресов в каждой. В этом случае значение старшего байта указывает на используемую страницу.

В микропроцессоре регистровая пара HL является одной из трех реги­стровых пар, которые используется в качестве адресных регистров. В этом качестве регистровая пара HL является наиболее важной. Регистровая пара HL также может быть использована для хранения 16-ти разрядного числа, и существует определенный ряд арифметических операций, которые могут быть выполнены с этими числами. Н-регистр и L-регистр также могут быть

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

Регистровая пара ВС и DE. Эти пары используются главным образом как адресные регистры. Регистры могут быть использованы как одинарные. Регистр В рекомендуется использовать в качестве счетчиков циклов. Набор альтернативных регистров: Z80 имеет альтернативный набор регистров для А,Р,Н,1ДС,Д,Е. Они обозначаются A,F, и т.д. Существуют две специальные команды, которые позволяют обменивать основной и альтернативный набор регистров. После обмена для Z80 альтернативный набор становится основным, а основной - альтернативным.

Альтернативные наборы регистров часто используются для сохранения среда, когда запускается независимая задача,

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

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

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

Регистр R- регенерации памяти. Он является простым счетчиком, который увеличивается каждый раз при выполнении цикла регенерации. Значение в регистре циклически изменяется от 0 до 255.

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

4.2 Цоколевка и описание выводов

Условное графическое обозначение микропроцессора Z80 представленно на рисунке 2.

Рисунок 2- Условное графическое обозначение микропроцессора Z80.

Микропроцессор Z80 - это микросхема с 40 выводами, пронумерованными от 1 до 40. Рассмотрим функции выводов и поясним указанные на нем метки:

АО — А15 - Adress Bus — Адресная шина АО-А15 образуют 16- разрядную адресную шину — трехстабильная выходная шина адреса Выход с тремя состояниями. Активный уровень - высокий; выдает адреса для обмена с 65536

ячейками памяти (64 Кбайт) или с таким же числом ячеек устройств ввода-вывода;

DO — D7 - Data Bas - Шина данных — трехстабильная двунаправленная шина данных; осуществляет обмен (принимает или выдает данные) с памятью или устройствами ввода-вывода. Трехстабильный вход-выход. Активный уровень - высокий; DO-D7 образует 8-разрядную двунаправленную шину данных, по которой осуществляется обмен между ЦП и памятью, либо между ЦП и устройствами ввода-вывода. Для увеличения нагрузочной способности шина данных выполнена по схеме с открытым коллектором. Поэтому необходимо каждый из 8 выходов шины данных подключить через резистор 2,2-6,8 Ком к потенциалу Ucc =+5V.

Микропроцессор имеет шину управления, сигналы на которой можно условно разделить на системные (MREQ, IORQ, RD, WR, Ml, RFSH), управ­ления процессором (WAIT, INT, NMI, RESET) и управления шинами (HALT, BUSRQ, BUSAK). Все сигналы шины управления имеют низкий активный уровень

MREQ (MEMORY REQUEST — запрос памяти) — трехстабильный выход, активизирующийся при обращении микропроцессора к ячейкам памяти. Активный уровень - низкий При активизации сигнала на шине адреса уже установлен адрес требуемой ячейки памяти для ввода или вывода данных.

IORQ (INPUT/OUTPUT REQUEST — запрос ввода-вывода) — трехстабильный выход. Активный уровень - низкий. Сигнал IOREQ указывает, что шина адреса содержит адрес внешнего устройства для операции ввода или вывода. Кроме того, сигнал IOREQ генерируется также совместно с сигналом Ml в цикле подтверждения прерывания. Тем самым устройству, запросившему прерывание, указывается, что вектор прерывания может быть помещен на шину данных.

По комбинациям системных сигналов Z80 активизирует внешние уст-

ройства в зависимости от того, какая операция выполняется в текущее время. Например, при чтении данных из памяти одновременно активизируются сиг­налы MREQ и RD; при чтении кода операции к ним добавляется сигнал Ml; при записи в устройство ввода-вывода активизируются IORQ и WR и т.д. Та­ким образом, процесс управления внешними устройствами сводится к про­стому логическому объединению соответствующих сигналов.

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

WAIT (WAIT - ожидание Запрос ожидания). Этот сигнал поступает от внешнего устройства (памяти или устройства ввода-вывода), При активизации этого сигнала микропроцессор начинает выполнять «холостые» такты, т. е. не изменяет своего состояния до момента снятия сигнала.

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

INT (INTERRUPT REQUEST -запрос прерывания). Микропроцессор опрашивает состояние этой линии каждый раз после выполнения текущей команды. При обнаружении на ней сигнала с низким уровнем он переходит к выполнению программы обработки прерывания, расположенной по опреде­ленному адресу в памяти. Адрес задается программно-аппаратными средст­вами с помощью одного из трех режимов прерывания. Возврат из программы осуществляется по команде возврата RET I. Этот вид прерывания называют

маскируемым, т. е. он может быть запрещен или разрешен соответствующими командами: D1 (запрещение прерывания) и Е1 (разрешение прерывания). Вход. Активный уровень - низкий. Сигнал INT, формируемый устройством ввода-вывода, анализируется в конце выполнения текущей команды. Запрос учитывается, если триггер прерываний (IFF1), управляемый программно, ус­тановлен в состояние «разрешить прерывание», и не активен сигнал BUSRQ.

NMI (NON MASKABLE INTERRUPT — немаскируемый запрос пре­рывания) — сигнал, аналогичный INT, однако его запуск происходит не уровнем, а спадом импульса, поступающего на вход NMI; прерывание не может быть запрещено программно, возврат происходит по команде RET N и переход осуществляется на фиксированную подпрограмму, начинающуюся в ячейке памяти с адресом 102 (66Н). Сигнал NMI имеет более высокий приоритет по отношению к INT. Данное прерывание используется в Sp-компьютере при работе с накопителем на гибких магнитных дисках.

Вход, запускаемый отрицательным фронтом. Фронт запуска активизирует внутренний триггер NMI. Линия NMI имеет более высокий приоритет, чем INT и всегда распознается в конце выполнения текущей команды, независимо от состояния триггера разрешения прерываний. INT автоматически производит перезапуск (рестарт) ЦП с адреса 66Н. Содержание счетчика команд (адрес возврата) автоматически сохраняется во внешнем стеке. Таким образом, пользователь может возвратиться к прерванной программе.

RESET (RESET - сброс) — сигнал управления сбросом, имеющий самый высокий приоритет. После снятия с линии RESET сигнала низкого уровня (который должен длиться не менее трех периодов тактовой частоты) микропроцессор автоматически переходит к выполнению программы, начи­нающейся в ячейке памяти с адресом 0, При этом запрещается прерывание INT, устанавливается нулевой режим прерываний (IMO; подробнее об этом будет сказано далее), очищаются регистры регенерации (R) и вектора преры­вания (I). Во время действия низкого уровня на выводе RESET линии шин

данных, адреса, а также RD, WR, MREQ и IORQ микропроцессора перево­дятся в третье — выключенное — состояние (Z-состояние).

Вход. Активный уровень - низкий. Сигнал RESET имеет самый высокий приоритет и приводит ЦП в начальное состояние:

  • сброс счетчика команд PC = 0000H;

  • очистка регистров I и R;

  • установка режима прерываний IMO.

Для корректного сброса сигнал RESET должен быть активен не менее 3-х периодов тактовой частоты, В это время адресная шина и шина данных находятся в высокоимпедансном состоянии, а все выходы сигналов управления неактивны.

Сигналы управления шинами предназначены для передачи управления другим устройствам.

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

Выход. Активный уровень - низкий. Сигнал HALT указывает, что ЦП

*

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

BUSRQ (BUS REQUEST - запрос доступа к шине) — входной сигнал с низким активным уровнем; анализируется процессором в конце любого ма­шинного цикла, при обнаружении низкого уровня линии шин данных, адреса, а также RD, WR, MREQ и IORQ переводятся в выключенное состояние, и управление шинами передается внешнему устройству.

Вход. Активный уровень - низкий. Сигнал BUSRQ имеет более высокий приоритет, чем NMI и анализируется в конце - каждого машинного цикла. Он делает запрос ЦП на перевод всех его шин в высокоимпедансное состояние для того, чтобы другие устройства смогли управлять этими шинами (например, при прямом доступе к памяти). Если активизирован сигнал BUSRQ, то ЦП переводит шины в высокоимпедансное состояние, как только завершен текущий машинный цикл. В данной схеме этот сигнал не используется. С помощью резистора R20 на нем задана лог. 1.

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

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

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

Трехстабильный выход. Активный уровень - низкий. Сигнал RD ука­зывает, что ЦП выполняет цикл чтения данных из памяти или устройства ввода-вывода. Адресованное устройство ввода-вывода или память должны использовать этот сигнал для стробирования подачи данных на шину данных

(ШД).

WR (WRITE - запись) -трехстабильный выход, активизирующийся при

выдаче процессором данных в память или устройство ввода-вывода.

Трехстабильный выход. Активный уровень - низкий. Сигнал WR ука­зывает, что процессор выдает на ШД данные, предназначенные для записи в адресованную ячейку памяти или устройство вывода.

Ml - (MASHINE CYCLE 1 -машинный цикл 1) — выход, ак­тивизирующийся при чтении кода операции из памяти. Кроме этого, совместно с выходом IORQ он активизируется в цикле подтверждения прерывания.

Трехстабильный выход. Активный уровень - низкий. Ml указывает, что в текущем машинном цикле происходит чтение кода операции из памяти. При считывании кода операции вида СВ, ЕД, DD, FD вырабатывается еще один Ml для считывания второго байта кода операции, т.е. сигнал Ml акти­визируется дважды.

Ml также активизируется вместе с сигналом IORQ в цикле подтвер­ждения прерывания.

RFSH (REFRESH - регенерация). В микропроцессоре Z80 имеется средство (упущенное разработчиками 8080) для регенерации динамической памяти. В состав процессора включен специальный программно доступный регистр R, называемый счетчиком регенерации памяти, содержимое которого выводится в семи младших адресах каждый раз после чтения кода операции (вслед за сигналом Ml). В этот момент одновременно активизируются только два сигнала: RFSH и MREQ. По этой комбинации сигналов устройство управления памятью определяет, что происходит регенерация памяти. После снятия сигнала RFSH значение содержимого регистра R автоматически уве­личивается на 1. (Оговоримся, что в Sp-компьютере этот режим не использу­ется; регенерация памяти в нем осуществляется дисплейным контроллером в моменты вывода информации на экран).

Выход. Активный уровень - низкий. Сигнал RFSH указывает, что младшие 7 разрядов шины адреса содержат адрес регенерации для динамиче­ской памяти и текущий сигнал MREQ может использоваться для восстановления информации. В данной схеме этот сигнал не используется.

Кроме названных, Z80 имеет вход CLC (CLOCK — такт), предназна­ченный для приема однофазной тактовой последовательности, и два вывода питания: Ucc (плюс источника питания) и Uss (минус источника питания, общий провод).

C-Clock —Такт

Вход для однофазной тактовой синхронизации. При управлении от TTL-схемы, вход С дополнительно подключается к линии +5V через внешнее сопротивление 330 Ом.

Ucc- «плюс» источника питания; GND - потенциал «земли».

4.3 Машинные циклы

Выполнение программы процессором Z80 представляет собой испол­нение одного из шести машинных циклов:

  • чтения кода операции;

  • чтения/записи данных памяти;

  • чтения/записи данных устройств ввода-вывода;

  • подтверждения прерывания;

  • предоставления доступа к памяти;

  • выполнения команды останова.

Каждый цикл занимает три или четыре такта микропроцессора, не считая

тактов ожидания.

Цикл чтения кода операции, занимающий четыре такта, микропроцессор

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

активизации сигнала Ml и выдачи адреса команды. По спаду импульса такта Т1

формируются сигналы MREQ и RD, далее по спаду импульса такта Т2

анализируется состояние линии WAIT, и если сигнал на ней имеет низкий

логический уровень, то процессор, не изменяя своего состояния, формирует

такты ожидания Tw до момента снятия сигнала WAIT. Если этот сигнал не

Соседние файлы в папке курсовой проект