Intel 8080

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:18, 9 августа 2015.
Файл:KL Intel C8080.jpg
Рис. 1. Процессор Intel C8080A
WR — запись, формируется при записи в память или в порты.DBIN — микропроцессор формирует когда выполняет команду чтения памяти или устройств ввода-вывода.INT — запрос на прерывание, поступает от внешнего устройства, запрашивающего от микропроцессора программный обмен. При наличии запроса формируется INTE, цель которого сформировать начальный адрес обработки прерывания.HLDA — подтверждает захват шины, при этом на шине адреса устанавливается Z-состояние.HOLD — запрашивает сигнал от внешнего устройства.WAIT — выходной сигнал, который формирует микропроцессор обнаружив на входе READY — 0. В последующих версиях микропроцессоров этого сигнала нет.READY — поступает от внешнего устройства, информируя микропроцессор о том, что устройство готово к обмену. Микропроцессор во втором такте тестирует этот вход и если там 0 (not ready), то микропроцессор не формирует МТЗ, а начинает формировать машинные такты ожидания.Сигналов, формируемых микропроцессором не достаточно, поэтому в каждом машинном цикле в первом такте микропроцессор формирует сигнал SYNC, а на шину данных сбрасывает BS-байт состояния, который поступает к системному контролеру и декодируется.Тактирование генератора.Сигнал системного сброса (RESET) формируется при сбросе и при включении питания.Регистры W,Z — используются как буферные и программно не доступны. Они используются для временного хранения второго и третьего байтов команд перехода.Шесть регистров B, C, D, E, H, L образуют блок регистров общего назначения (РОН). Могут хранить как данные так и адреса. Используются как 8-разрядные регистры и как 16-разрядные регистровые пары.Регистр временного хранения — программно не доступен и служит для временного хранения второго операнда арифметических и логических операций.А — аккумулятор — предназначен для обмена с внешними устройствами. Служит при этом источником операнда и приемником результата.Указатель стека — содержит адрес памяти, начиная с которой ее можно использовать как стек.Счетчик команд — используется для хранения адреса команды. После выбора из ОЗУ текущей команды его содержимое автоматически увеличивается на 1.В качестве адреса можно использовать содержимое любой регистровой пары. При выдаче адреса содержимое соответствующей регистровой пары переходит в регистр адреса, в буфер и на шину адреса.АЛУ — 8-разрядная комбинационно-логическая схема, реализующая четыре арифметические операции, четыре логические, и четыре циклических сдвига. При выполнении операций одним из операндов служит содержимое аккумулятора. Сдвиг также выполняется над аккумулятором. Предусмотрена возможность выполнения арифметический операций над 10-ичными числами при помощи дополнительного блок десятичной коррекции. Она осуществляется при помощи специальной команды DAA.Регистр используется для хранения признаков.Дешифратор команд на ПЛМ. Для расшифровки кода команды и выработки микропроцессором в соответствии с защитой микропрограммы, вычислительной команды.Схема управления вырабатывает микрооперации необходимые для выполнения команды, и содержит регистр инструкций для приема кода команды первого байта поступающего в микропроцессор в третьем машинном такте в машинном цикле выборки кода команды и хранения этого кода на время выполнения.Микроконтроллер КР1878ВЕ1


Intel 8080 — 8-битный микропроцессор, выпущенный компанией Intel в апреле 1974 года. Представляет собой усовершенствованную версию процессора Intel 8008. По заверениям Intel, этот процессор обеспечивал десятикратный прирост производительности по сравнению с микропроцессором Intel 8008.

Описание

Новый процессор выпускался по новейшей тогда 6-микронной NMOS технологии, что позволило разместить на кристалле 4500 транзисторов. Процессор, хотя и был построен на архитектуре Intel 8008, но имел множество отличий от своего предшественника, благодаря которым и получил большую популярность. В новом процессоре была очень развита система команд — 16 команд передачи данных, 31 команда для их обработки, 28 команд для перехода (с прямой адресацией), 5 команд управления. В микропроцессоре Intel 8080 не было команд умножения, для их использования приходилось применять сопроцессор. Процессор, благодаря наличию 16-разрядной адресной шины, мог адресовать 64 Кбайт памяти, которая теперь не разделялась на память команд и данных. Хотя процессор и был 8-разрядным и содержал 7 8-битных регистров (A, B, C, D, E, H, L), он мог обрабатывать и 16-разрядные числа, для этого объединялись некоторые пары регистров (BC, DE, HL). В новом процессоре использовался стек внешней памяти (в i8008 стек был внутренним).

На базе микропроцессора Intel 8080 фирмой MITS был выпущен «первый в мире миникомпьютерный комплект, который может соперничать с промышленными образцами» (персональный компьютер) Altair-8800, который пользовался невероятно большой по тем временам популярностью (MITS не успевала даже вовремя обрабатывать заказы).

Помимо Altair-8800, микропроцессор Intel 8080 также применялся в устройствах управления уличным освещением и светофорами.

Специализированные микросхемы

Как и прежде, микропроцессор Intel 8080 поставлялся с дополнительными микросхемами. Для работы i8080 теперь требовалось только 6 специализированных микросхем, против 20 для i8008. Но Intel выпускала и множество дополнительных микросхем, которые могли использоваться с 8080. В зависимости от потребностей, процессор мог поставляться в комплекте со следующими микросхемами (чипсете):

  • 8216 — приёмопередатчик, использовался для процессора 8080 с немультиплексными линиями адреса и данных,
  • 8224 — генератор синхронизации,
  • 8228/8238 — системные контроллеры, использовались для процессора 8080 с немультиплексными линиями адреса и данных,
  • 8231 — арифметический сопроцессор,
  • 8232 — процессор чисел с плавающей запятой, с поддержкой 32- и 64-битных чисел,
  • 8251 — микросхема последовательного интерфейса,
  • 8256 — микросхема многофункционального периферийного адаптера: PCI, TIMER, PPA
  • 8253 — 3-канальный таймер/счётчик,
  • 8255 — микросхема интерфейса с периферией (без ПЗУ),
  • 8271 — контроллер накопителя на гибких магнитных дисках (НГМД),
  • 8275 — контроллер монитора,
  • 8355 — микросхема интерфейса с периферией (с 16 Кбайт ПЗУ).

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

Конкуренты

Множество фирм, видя, как развивается микропроцессорная индустрия, также пытались выпускать аналогичные продукты, практически все из которых являлись копиями процессора i8080 с небольшими изменениями. В числе таких фирм были Zilog (со своим процессором Zilog Z80), MOS Technology (со своими процессорами MOS Technology 6502|6502), AMD (со своим процессором 8080A), также копиии i8080 производили Mitsubishi, National Semiconductor, NEC, Siemens и другие. Отечественным аналогом был микропроцессорный комплект серии КР580, в частности, микропроцессор КР580ВМ80А.

Технические характеристики

Рис. 2. i8080.
  • Дата анонса: апрель 1974 года
  • Тактовая частота: 2 МГц, до 2,5 МГц (в модификации i8080А)
  • Аппаратного стека нет
  • SP (Shack P)
  • Разрядность регистров: 8 бит
  • Разрядность шина данных|шины данных: 8 бит
  • Разрядность шина адреса|шины адреса: 16 бит
  • Объём адресуемой памяти: 64 Кбайт
  • Количество транзисторов: 4500
  • Техпроцесс (нм): 6000 (6 мкм)
  • Требуемые источники питания: +5В, −5В, +12В
  • Разъём: микросхема припаивалась к плате
  • Корпус: 40-контактный керамический DIP
  • Поддерживаемые технологии: 80 инструкций

Команды для выполнения 16-ти битных операций: BC DE HL - интерпретируется как один целый или как два отдельных регистра.

Совместимость 8008 и 8080: на бинарном уровне не совместимы, НО совместимы на уровне исходных текстов на языке ассемблера.

ZiLog (часть разработки Intel) перешел в Z80(процессор) - он лучше по характеристикам, чем 8080.

Z80:

Файл:Intel21.png
Рис. 3. Z80.
  • Анонс июль 1976 года
  • Тактовая частота 8МГц (в последней версии Z80)
  • Получил развитие для встраиваемых устройств
  • Бинарная совместимость с 8080
  • Разрядность регистров: 8 бит
  • Разрядность шины данных: 8 бит
  • Разрядность шины адреса: 16 бит
  • Объём адресуемой памяти: 64 Кбайт
  • Количество транзисторов: 8500
  • Техпроцесс (нм): 3000 (3 мкм)
  • Размер кристалла: 4,6 на 4,9 мм; площадь — 22,54 мм²
  • Напряжение питания: +5 В
  • Корпус: 40-контактный керамический или пластмассовый DIP, 44-контактный PLCC и PQFP

Intel запатентовала мнемоники команд Z80 имел другие мнемоники и другой синтаксис.

Условная схема микропроцессора 8080

Рис. 4. Процессор Intel C8080A

Микропроцессор 8080 — 8-разрядные микропроцессор в котором совмещены операционное и управляющее устройство. Микропроцессор содержит 16-разрядную, трехстабильную шину адреса и 8-разрядную двунаправленную трехстабильную шину данных. Содержит: 1. Четыре входных линии (READY, INT, HOLD, RESET) 2. Шесть выходных линий (HLDA, INE, WAIT, WR, DBIN, SYNC) Тактирование микропроцессора осуществляется двумя сигналами F1, F2. Эти сигналы поступают с генератора тактирования, и на их основе образуется машинный такт. На основе машинных тактов микропроцессор формирует машинные циклы. Существует счетчик цикла, имеющий переменный коэффициент пересчета (3¸5).

Сигналы микропроцессора

Сигнал системного сброса (RESET) формируется при сбросе и при включении питания. PC¬0000h — стартовый адрес. После включения питания (PC)®ША, и делает DBIN, а (PC) увеличивается на 1. DBIN — микропроцессор формирует когда выполняет команду чтения памяти или устройств ввода-вывода. WR — запись, формируется при записи в память или в порты. READY — поступает от внешнего устройства, информируя микропроцессор о том, что устройство готово к обмену. Микропроцессор во втором такте тестирует этот вход и если там 0 (not ready), то микропроцессор не формирует МТЗ, а начинает формировать машинные такты ожидания. WAIT — выходной сигнал, который формирует микропроцессор обнаружив на входе READY — 0. В последующих версиях микропроцессоров этого сигнала нет. INT — запрос на прерывание, поступает от внешнего устройства, запрашивающего от микропроцессора программный обмен. При наличии запроса формируется INTE, цель которого сформировать начальный адрес обработки прерывания. HOLD — запрашивает сигнал от внешнего устройства. HLDA — подтверждает захват шины, при этом на шине адреса устанавливается Z-состояние. Сигналов, формируемых микропроцессором не достаточно, поэтому в каждом машинном цикле в первом такте микропроцессор формирует сигнал SYNC, а не шину данных сбрасывает BS-байт состояния, который поступает к системному контролеру и декодируется.

Типы машинных циклов

  1. М1 — машинный цикл выбора кода команды.
  2. Чтение данных ЗУ.
  3. Запись данных в ЗУ.
  4. Чтение устройства ввода-вывода (порта).
  5. Запись устройства ввода-вывода (порта).
  6. Чтение стека.
  7. Запись стека.
  8. Машинный цикл обработки прерывания.
  9. Машинный цикл обработки прерывания.
  10. Машинный цикл прерывания из состояния останова.

Состав операционного блока

Регистры

В операционный блок входит семь 8-разрядных регистров. А — аккумулятор — предназначен для обмена с внешними устройствами. Служит при этом источником операнда и приемником результата. Шесть регистров B, C, D, E, H, L образуют блок регистров общего назначения (РОН). Могут хранить как данные так и адреса. Используются как 8-разрядные регистры и как 16-разрядные регистровые пары. Регистры W,Z — используются как буферные и программно не доступны. Они используются для временного хранения второго и третьего байтов команд перехода. Регистр Т — также программно не доступен и служит для временного хранения второго операнда арифметических и логических операций. Регистр SP — указатель стека, содержит адрес памяти, начиная с которой ее можно использовать как стек. PC — счетчик команд. Используется для хранения адреса команды. После выбора из ОЗУ текущей команды его содержимое автоматически увеличивается на 1. В качестве адреса можно использовать содержимое любой регистровой пары. При выдаче адреса содержимое соответствующей регистровой пары переходит в регистр адреса, в буфер и на шину адреса.

Арифметико-логическое устройство (АЛУ)

АЛУ — 8-разрядная комбинационно-логическая схема, реализующая четыре арифметические операции, четыре логические, и четыре циклических сдвига. При выполнении операций одним из операндов служит содержимое аккумулятора. Сдвиг также выполняется над аккумулятором. Предусмотрена возможность выполнения арифметический операций над 10-ичными числами при помощи дополнительного блок десятичной коррекции. Она осуществляется при помощи специальной команды DAA.

Регистр флагов

Регистр флагов (F) используется для хранения признаков. Его содержимое:

7 6 5 4 3 2 1 0
S Z AC P CY

При этом содержимое битов: CY — бит переноса/заема. Если перенос был, то этот бит устанавливается в 1. P — признак четности количества единиц результата. Если количество четное, то он равен 1. AC — признак переноса из 3 разряда в 4. Если такой перенос имел место быть, то значение этого бита устанавливается в 1. Z — признак нулевого результата. Интересная его особенность заключается в том, что он равен 0 если результат ненулевой, и равен 1 если результат нулевой. S — признак отрицательного результата. Бит равен 1 при отрицательном результате и 0 при положительном.

Устройство управления (УУ)

УУ состоит из:

  1. Схема управления вырабатывает микрооперации необходимые для выполнения команды, и содержит регистр инструкций для приема кода команды первого байта поступающего в микропроцессор в третьем машинном такте в машинном цикле выборки кода команды и хранения этого кода на время выполнения.
  2. Дешифратор команд на ПЛМ. Для расшифровки кода команды и выработки микропроцессором в соответствии с защитой микропрограммы, вычислительной команды.
  3. Схема формирования машинных тактов (на основе счетчика с переменным коэффициентом пересчета 3¸5). Машинная команда занимает при этом от 1 до 5 машинных циклов.
  4. Схема выборки регистров — декодер. Представляет собой разряд кода команды, указывающей на номер регистра источника и приемника.
  5. Схема анализа переходов — анализирует регистр флагов F при выполнении команд условного перехода.
  6. Схема выдачи статус-байта на внешний регистр, позволяющая увеличить фактическое число управляющих сигналов в каждом машинном цикле ( за счет временного мультиплексирования на шине данных).
  7. Схема анализа запроса прерывания — работа микропроцессора в реальном масштабе времени и содержит тригер разрешения прерывания и тригер запрещения прерывания. Анализ наличия запроса происходит в последнем такте последнего машинного цикла текущей команды если прерывание разрешено командой EI.
  8. Схема анализа запроса шины. Обеспечивает режим работы ПДП - прямой доступ к памяти (DMA - Direct Memory Access).
  9. Схема анализа готовности, позволяющая микропроцессору работать с медленными устройствами. Во втором такте машинного цикла микропроцессор анализирует вход READY, если там 1 то выполняется третий машинный так, иначе микропроцессор начинает формировать такты ожидания (WAIT).


Особенности микропроцессора i8080

По сравнению с i8008 процессор i8080 позволяет адресовать больше памяти и располагает дополнительными инструкциями. Скорость выполнения инструкций возросла в десять раз. Если сложение на i8008 требует 20 мкс, что составляет 50000 оп./сек, то аналогичная операция на i8080 занимает всего 2 мкс, что соответствует 500000 оп./сек. Поскольку i8080, в отличие от i8008, является TTL-совместимым 13, интерфейсы вычислительных систем на базе i8080 становятся проще и дешевле. Адресное пространство, расширенное в четыре раза, составляет теперь 64 Кбайт. Можно считать, что эпоха микропроцессоров началась именно с i8080, благодаря предпринятым в нем улучшениям. Кстати, в 1974 г. фирмой MITS был выпущен первый персональный компьютер Альтаир 880014. Номер 8800 в названии отражает наличие процессора i8080, что не нарушало авторских прав корпорации Intel. Для этого компьютера были написаны транслятор с языка ассемблера и интерпретатор языка Basic. Ассемблер был разработан корпорацией Digital Research, которая в дальнейшем выпустила операционную систему DR-DOS, а автором интерпретатора Basic является Билл Гейтс, в будущем основатель корпорации Microsoft.


Выполнение команд в МП КР580ВМ80А 08080)

Каждая команда в МП выполняется на протяжении командного цикла. Командный цикл состоит из цикла выборки команды и цикла выполнения команды (рис. 5)

Рис. 5. Пример командного цикла 8-разрядного МП

Продолжительность цикла выборки команды зависит от формата команды (количества байт в машинном коде команды). Команды занимают от одного до трех байт в программной памяти. Многобайтные команды хранятся в соседних ячейках памяти. Для выборки однобайтной команды (например, сложения содержимого аккумулятора А и регистра В-АDD В) необходимо одно обращение к памяти, для выборки трехбайтной команды (например, вызова подпрограммы по адресу АDDR - САLL АDDR) - три обращения. Продолжительность цикла исполнения команды зависит от способа адресации операндов. Так, при выполнении коман д с регистровой адресацией не нужно дополнительное обращение к памяти для чтения операнда, в командах с косвенной адресацией такое обращение необходимо. В связи с этим продолжительность командного цикла в МП i8080 различна для различных команд и определяется количеством обращений к памяти или к внешнему устройству. Интервал, на протяжении которого осуществляется одно обращение процессора к памяти или к внешнему устройству, определяется как машинный цикл М. Итак, командный цикл процессора состоит из некоторого количества машинных циклов (в зависимости от типа команды). В приведенном на рис. 5 примере цикл выборки состоит из двух машинных циклов (М1 и М2), а цикл исполнения - из одного машинного цикла (МЗ). В команде может быть от одного (для однобайтных команд с регистровой адресацией) до пяти (для трехбайтных сложных команд) машинных циклов.

Рис. 6. Последовательности импульсов

Машинный цикл, в свою очередь, разбивается на некоторое количество машинных тактов T, на протяжении каждого из которых выполняется элементарное действие (микрооперация) в процессоре. Количество тактов в цикле определяется кодом команды и лежит в пределах от 3 до 5. Продолжительность такта задается периодом импульсов синхронизации и определяется как интервал времени между фронтами двух соседних импульсов последовательности F1 (рис. 6). Таким образом, командный цикл МП i8080 состоит из некоторого количества машинных циклов, а каждый машинный цикл - из определенного количества тактов, на протяжении которых выполняются те или иные элементарные действия в процессоре. В зависимости от действий, выполняемых МП, различают следующие типы машинных циклов:

  1. ВЫБОРКА (чтение первого байта команды);
  2. ЧТЕНИЕ ПАМЯТИ (чтение второго и третьего байтов команды, чтение операнда);
  3. ЗАПИСЬ В ПАМЯТЬ;
  4. ЧТЕНИЕ СТЕКА;
  5. ЗАПИСЬ В СТЕК;
  6. ВВОД данных из внешнего устройства;
  7. ВЫВОД данных на внешнее устройство;
  8. ПРЕРЫВАНИЕ;
  9. ОСТАНОВ;
  10. ПРЕРЫВАНИЕ ПРИ ОСТАНОВЕ.

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

Временная диаграмма машинного цикла ВЫБОРКА (ЧТЕНИЕ ПАМЯТИ) для процессора i8080 показана на рис. 7, а цикл ЗАПИСЬ В ПАМЯТЬ - на рис. 8. Такты отсчитываются по передним фронтам последовательности F1, а микрооперации в каждом такте определяются передним фронтом последовательности F2. При тактовой частоте 2 МГц продолжительность такта равна 0,5 мкс.

Сигналы на линиях шин А15-А0 (D7-D0) изображены на рис. 7 на одной временной диаграмме в виде линий - L- и Н- уровень одновременно. Таким образом, на диаграмме указан лишь тип информации на шине, например присутствие на ней адреса или данных. Пунктирной линией обозначено высокоимпедансное состояние линий шин (2-состояние).

В первом машинном такте T1 на шину адреса (линии А15-А0) выдается адрес - содержимое указателя команд IР, если выполняется цикл ВЫБОРКА, или содержимое регистра-указателя адреса - если выполняется цикл ЧТЕНИЕ ПАМЯТИ. Вместе с тем на шину данных (линии D7-D0) выдается байт состояния, а также формируется сигнал SYNС на одноименном выводе БИС МП.

Во втором такте Т2 заканчивается поступление байта состояния и сигнала SYNC, продолжительность которых равняется одному такту. В машинном цикле ВЫБОРКА содержимое IР увеличивается для адресации следующего байта команды или следующей команды. В этом же такте устройство управления МП производит анализ сигналов на входах READY и HOLD, а также контроль выполнения команды останова HLT. Если память или внешнее устройство не готовы к обмену (READY = 0) вследствие того, что поступил запрос ПДП (HOLD = 1) или выполняется команда останова HLT, то обмен данными осуществляться не может, и процессор переходит в один из режимов - ожидание, захват шин или останов. В этих режимах осуществляется ожидание сигнала на протяжении нескольких тактов ожидания Tи количество которых определяется внешними сигналами. На рис. 7 в такте Т2 сигнал READY равняется логическому нулю, а в такте Tи - логической единице.

В такте ТЗ в зависимости от типа машинного цикла осуществляется обращение к памяти, стеку или внешнему устройству. В результате в МП вводится (см. рис. 7) или из него выводится (см. рис. 8) байт команды, адреса или данных. В зависимости от типа команды машинный цикл может содержать такты Т4 и Т5 (например, если для выполнения команды нужна обработка операндов). В последнем такте команды (ТЗ, Т4 или Т5) анализируется наличие сигнала запроса прерывания INT.

Если прерывание разрешено, то процессор переходит к машинному Циклу ПРЕРЫВАНИЕ.

Рис. 7. Цикл ВЫБОРКА (ЧТЕНИЕ ПАМЯТИ)
Рис. 8. Цикл ЗАПИСЬ В ПАМЯТЬ
Рис. 9. Схема индикации

На рис. 9 приведена схема индикации, являющаяся портом ввода, который загружается данными из аккумулятора по команде OUT.

Рис. 10 Временная диаграмма работы порта вывода
Рис. 11 Временная диаграмма работы порта ввода

Cхема индикации микроЭВМ подключается к линиям DB0-DВ7 шины данных, линиям АВ0-АВ7 шины адреса и линиям IN и OUT шины управления. Схема индикации выполнена на базе трех 8-разрядных регистров (микросхемы D16-D21). Каждый из этих регистров выполнен из двух микросхем К155ТМ7. Эта микросхема представляет собой четыре D-триггера с прямыми и инверсными выходами. Входы триггеров подключены к линиям шины данных. Светодиоды подключены к инверсным выходам триггеров, поэтому они зажигаются, если в соответствующий триггер записывается 1, и гаснут, если записывается 0.

Микросхема D24 вместе с микросхемой D25 составляют схему дешифрации адреса для выбора внешних устройств ввода и вывода.

При выполнении одной из команд OUT во время ее третьего цикла на шинах данных, адреса и управления вырабатываются сигналы, изображенные на рис. 10. При этом вырабатывается сигнал на соответствующем выходе дешифратора D24. Сигнал с выхода дешифратора подается вместе с сигналом OUT на входы микросхемы D26 и формирует на ее выходе положительный импульс. Этот импульс, поступая на входы синхронизации одного из регистров, своим фронтом (переход из 0 в 1) переписывает код с шины данных в триггеры, а своим срезом фиксирует его там. Таким образом, 8 бит кода, содержащегося в аккумуляторе перед выполнением команды OUT, высвечиваются на индикаторах одного из регистров. Временная диаграмма работы порта ввода приведена на рис. 11.

Документация