Интел 8080
Общая информация | |
---|---|
Запущен | апрель 1974 г |
Снято с производства | 1990 год [1] |
Продается через | Интел |
Разработано | Интел |
Общий производитель |
|
Производительность | |
Макс. процессора Тактовая частота | от 2 МГц до 3,125 МГц |
Ширина данных | 8 бит |
Ширина адреса | 16 бит |
Архитектура и классификация | |
Технологический узел | 6 мкм |
Набор инструкций | 8080 |
Физические характеристики | |
Транзисторы |
|
Ядра |
|
Упаковка |
|
Розетка | |
История | |
Предшественник | Интел 8008 |
Преемник | Интел 8085 |
Статус поддержки | |
Не поддерживается |
Intel 8080 ( «восемьдесят восемьдесят» ) — второй 8-битный микропроцессор, разработанный и производимый Intel . Впервые он появился в апреле 1974 года и представляет собой расширенный и улучшенный вариант более ранней конструкции 8008 , хотя и без двоичной совместимости . [3] Первоначальная указанная тактовая частота или ограничение частоты составляло 2 МГц , при этом общие инструкции использовали 4, 5, 7, 10 или 11 тактовых циклов. В результате процессор способен выполнять несколько сотен тысяч инструкций в секунду . Два более быстрых варианта, 8080A-1 и 8080A-2, стали доступны позже с пределами тактовой частоты 3,125 МГц и 2,63 МГц соответственно. [4] Для работы в большинстве приложений процессору 8080 необходимы два вспомогательных чипа: тактовый генератор/драйвер i8224 и контроллер шины i8228. 8080 реализован на основе логики металл-оксид-полупроводник N-типа (NMOS) с использованием ненасыщенных с режимом улучшения в качестве нагрузки. транзисторов [5] [6] таким образом, требуется напряжение +12 В и -5 В в дополнение к совместимому с основной транзисторно-транзисторной логикой (TTL) +5 В.
Хотя раньше микропроцессоры обычно использовались в устройствах массового производства, таких как калькуляторы , кассовые аппараты , компьютерные терминалы , промышленные роботы , [7] и других приложений, 8080 добился большего успеха в более широком наборе приложений, и ему во многом приписывают начало индустрии микрокомпьютеров . [8] Несколько факторов способствовали его популярности: его 40-контактный корпус упростил интерфейс, чем 18-контактный 8008, а также сделал шину данных более эффективной; его реализация NMOS дала ему более быстрые транзисторы, чем транзисторы с логикой металл-оксид-полупроводник P-типа (PMOS) 8008, а также упростила интерфейс, сделав его TTL-совместимым ; был доступен более широкий выбор вспомогательных чипов; его набор команд был расширен по сравнению с 8008; [9] а его полная 16-битная адресная шина (по сравнению с 14-битной у 8008) позволяла ему получить доступ к 64 КБ памяти, что в четыре раза больше, чем у 8008 в диапазоне 16 КБ. Он использовался в Altair 8800 и последующих персональных компьютерах с шиной S-100 , пока не был заменен в этой роли на Z80 , и был исходным целевым ЦП для операционных систем CP/M, разработанных Гэри Килдаллом .
8080 напрямую повлиял на более позднюю архитектуру x86 . Intel разработала ассемблер 8086 так, чтобы его язык ассемблера был достаточно похож на ассемблер 8080, при этом большинство инструкций сопоставлялись непосредственно друг с другом, чтобы транспилированный ассемблерный код 8080 мог быть выполнен на 8086. [10]
История
[ редактировать ]Потребители микропроцессоров неохотно принимали 8008 из-за таких ограничений, как режим единой адресации, низкая тактовая частота, малое количество выводов и небольшой встроенный стек, что ограничивало масштаб и сложность программного обеспечения. Было предложено несколько вариантов дизайна 8080: от простого добавления инструкций стека в 8008 до полного отказа от всех предыдущих архитектур Intel. [11] Окончательный проект представлял собой компромисс между предложениями.
Федерико Фаггин , создатель архитектуры 8080, в начале 1972 года предложил этот чип руководству Intel и настаивал на его внедрении. Наконец, шесть месяцев спустя он получил разрешение на его разработку. Фаггин нанял Масатоши Симу , который вместе с ним помогал проектировать 4004, из Японии в ноябре 1972 года. Сима выполнил детальное проектирование под руководством Фаггина. [12] используя методологию проектирования случайной логики с кремниевым затвором, которую Фаггин создал для семейства 4000.
8080 был специально разработан как микропроцессор общего назначения для большего числа клиентов. Большая часть усилий по разработке была потрачена на то, чтобы интегрировать функциональные возможности дополнительных чипов 8008 в один корпус. На ранних этапах разработки было решено, что 8080 не должен быть двоично-совместим с 8008, вместо этого был сделан выбор в пользу совместимости исходного кода после прохождения через транспилятор, чтобы новое программное обеспечение не подвергалось тем же ограничениям, что и 8008. По тем же причинам По этой причине, а также для расширения возможностей стековых подпрограмм и прерываний стек был перенесен во внешнюю память.
Отметив специализированное использование регистров общего назначения программистами в системах мэйнфреймов, Стэнли Мазор , архитектор микросхем, решил, что регистры 8080 будут специализированными, а пары регистров будут иметь различный набор применений. [13] Это также позволило инженерам более эффективно использовать транзисторы для других целей.
Шима завершил компоновку в августе 1973 года. После регулирования производства NMOS в январе 1974 года был завершен прототип 8080. У него был недостаток: управление стандартными TTL-устройствами увеличивало напряжение заземления, поскольку в узкую линию протекал большой ток. . Intel уже произвела 40 000 единиц 8080 по указанию отдела продаж, прежде чем Шима представил прототип. Он был выпущен как требующий маломощных устройств Шоттки TTL (LS TTL). В 8080A этот недостаток исправлен. [14]
Intel предложила симулятор набора команд для 8080 под названием INTERP/80 для запуска скомпилированных программ PL/M . Он был написан на FORTRAN IV Гэри Килдаллом, когда он работал консультантом в Intel. [15] [16]
Описание
[ редактировать ]Модель программирования
[ редактировать ]1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 0 9 | 0 8 | 0 7 | 0 6 | 0 5 | 0 4 | 0 3 | 0 2 | 0 1 | 0 0 | (битовая позиция) |
Основные регистры | ||||||||||||||||
А | Флаги | Слово статуса программы | ||||||||||||||
Б | С | Б | ||||||||||||||
Д | И | Д | ||||||||||||||
ЧАС | л | H (косвенный адрес) | ||||||||||||||
Индексные регистры | ||||||||||||||||
СП | Указатель стека | |||||||||||||||
Счетчик программ | ||||||||||||||||
ПК | Программный счетчик | |||||||||||||||
Регистр состояния | ||||||||||||||||
С | С | 0 | А С | 0 | П | 1 | С | Флаги [17] |
Intel 8080 является преемником 8008 . Он использует тот же базовый набор команд и модель регистров , что и 8008, хотя он не совместим ни с исходным кодом , ни с двоичным кодом со своим предшественником. Каждая инструкция в 8008 имеет эквивалентную инструкцию в 8080. 8080 также добавляет 16-битные операции в свой набор команд. В то время как 8008 требовал использования пары регистров HL для косвенного доступа к своему 14-битному пространству памяти, 8080 добавил режимы адресации, чтобы обеспечить прямой доступ ко всему 16-битному пространству памяти. Внутренний 7-уровневый стек вызовов с понижением уровня 8008 был заменен выделенным 16-битным регистром указателя стека (SP). 8080 40-контактный DIP-корпус процессора позволяет обеспечить 16-битную адресную шину и 8-битную шину данных , обеспечивая доступ к 64 КиБ (2 16 байт) памяти.
Регистры
[ редактировать ]Процессор имеет семь 8-битных регистров (A, B, C, D, E, H и L), где A — основной 8-битный аккумулятор. Остальные шесть регистров могут использоваться либо как отдельные 8-битные регистры, либо как три пары 16-битных регистров (BC, DE и HL, называемые в документах Intel B, D и H) в зависимости от конкретной инструкции. Некоторые инструкции также позволяют использовать пару регистров HL в качестве (ограниченного) 16-битного аккумулятора. Псевдорегистр M, который относится к разыменованной ячейке памяти, на которую указывает HL, может использоваться практически везде, где могут использоваться другие регистры. 8080 имеет 16-битный указатель стека 8008 на память, заменяющий внутренний стек , и 16-битный программный счетчик .
Флаги
[ редактировать ]Процессор поддерживает внутренние биты флагов ( регистр состояния ), которые указывают результаты арифметических и логических инструкций. Только определенные инструкции влияют на флаги. Флаги:
- Знак (S), устанавливается, если результат отрицательный.
- Ноль (Z), устанавливается, если результат равен нулю.
- Четность (P), устанавливается, если количество битов 1 в результате четное.
- Перенос (C), устанавливается, если последняя операция сложения привела к переносу или если последняя операция вычитания потребовала заимствования.
- Вспомогательный перенос (AC или H), используемый для двоично-десятичной арифметики (BCD).
Бит переноса может быть установлен или дополнен специальными инструкциями. Инструкции условного перехода проверяют различные биты состояния флагов. Аккумулятор и флаги вместе называются PSW или словом состояния программы. PSW можно отправить в стек или извлечь из него.
Команды, инструкции
[ редактировать ]Как и во многих других 8-битных процессорах, для простоты все инструкции кодируются одним байтом (включая номера регистров, но исключая непосредственные данные). За некоторыми могут следовать один или два байта данных, которые могут быть непосредственным операндом, адресом памяти или номером порта. Как и более продвинутые процессоры, он имеет автоматические инструкции CALL и RET для многоуровневых вызовов и возвратов процедур (которые могут даже выполняться условно, например, переходы) и инструкции для сохранения и восстановления любой 16-битной пары регистров в стеке машины. Восемь однобайтовых инструкций вызова ( RST
) для подпрограмм существуют по фиксированным адресам 00h, 08h, 10h, ..., 38h. Они предназначены для обеспечения внешним оборудованием для вызова соответствующей процедуры обслуживания прерываний , но также часто используются в качестве быстрых системных вызовов . Инструкция, которая выполняется медленнее всего: XTHL
, который используется для обмена пары регистров HL со значением, хранящимся по адресу, указанному указателем стека.
8-битные инструкции
[ редактировать ]Все 8-битные операции с двумя операндами могут выполняться только с 8-битным аккумулятором (регистр A). Другой операнд может быть либо непосредственным значением, другим 8-битным регистром, либо байтом памяти, адресуемым парой 16-битных регистров HL. Увеличение и уменьшение может выполняться для любого 8-битного регистра или байта памяти с адресацией HL. Прямое копирование поддерживается между любыми двумя 8-битными регистрами, а также между любым 8-битным регистром и байтом памяти с адресацией HL. Благодаря регулярному кодированию MOV
(используя четверть доступного пространства кода операции), существуют избыточные коды для копирования регистра в себя ( MOV B,B
, например), от которых мало пользы, кроме задержек. Однако систематический код операции для MOV M,M
вместо этого используется для кодирования остановки ( HLT
) инструкция, останавливающая выполнение до тех пор, пока не произойдет внешний сброс или прерывание.
16-битные операции
[ редактировать ]Хотя 8080 обычно является 8-битным процессором, его возможности для выполнения 16-битных операций ограничены. Любая из трех пар 16-битных регистров (BC, DE или HL, обозначаемых в документах Intel как B, D, H) или SP может быть немедленно загружена 16-битным значением (используя LXI
), увеличивается или уменьшается (с использованием INX
и DCX
) или добавлен в HL (с помощью DAD
). Добавляя к самому себе HL, можно добиться того же результата, что и 16-битный арифметический сдвиг влево с помощью одной инструкции. Единственные 16-битные инструкции, которые влияют на любой флаг, — это DAD
, который устанавливает флаг CY (переноса), чтобы разрешить запрограммированную 24-битную или 32-битную арифметику (или больше), необходимую для реализации арифметики с плавающей запятой . BC, DE, HL или PSW можно скопировать в стек и из него, используя PUSH
и POP
. Кадр стека можно выделить с помощью DAD SP
и SPHL
. Переход к вычисленному указателю может быть выполнен с помощью PCHL
. LHLD
загружает HL из памяти с прямой адресацией и SHLD
магазины HL аналогично. XCHG
[18] Инструкция меняет значения пар регистров HL и DE. XTHL
обменивает последний элемент, помещенный в стек, на HL.
Набор инструкций
[ редактировать ]Код операции | Операнды | Мнемоника | Часы | Описание | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | б2 | б3 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | — | НЕТ | 4 | Нет операции |
0 | 0 | РП | 0 | 0 | 0 | 1 | данные | дати | LXI рп, данные | 10 | РП ← данные | |
0 | 0 | РП | 0 | 0 | 1 | 0 | — | — | STAX руб. | 7 | (RP) ← A [только BC или DE] | |
0 | 0 | РП | 0 | 0 | 1 | 1 | — | — | ИНКС рп | 5 | РП ← РП + 1 | |
0 | 0 | ДДД | 1 | 0 | 0 | — | — | индийская рупия ддд | 5/10 | ДДД ← ДДД + 1 | ||
0 | 0 | ДДД | 1 | 0 | 1 | — | — | ДЦР ддд | 5/10 | ДДД ← ДДД - 1 | ||
0 | 0 | ДДД | 1 | 1 | 0 | данные | — | МВИ ддд, данные | 7/10 | DDD ← данные | ||
0 | 0 | РП | 1 | 0 | 0 | 1 | — | — | ПАПА Рп | 10 | HL ← HL + РП | |
0 | 0 | РП | 1 | 0 | 1 | 0 | — | — | LDAX рп | 7 | A ← (RP) [только BC или DE] | |
0 | 0 | РП | 1 | 0 | 1 | 1 | — | — | DCX рп | 5 | РП ← РП - 1 | |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | — | — | РЛЦ | 4 | A 1-7 ← A 0-6 ; A 0 ← Cy ← A 7 |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | — | — | РРК | 4 | A 0-6 ← A 1-7 ; A 7 ← Cy ← A 0 |
0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | — | — | РАЛ | 4 | A 1-7 ← A 0-6 ; Cy ← A 7 ; A 0 ← Cy |
0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | — | — | РАР | 4 | A 0-6 ← A 1-7 ; Cy ← A 0 ; A 7 ← Cy |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | аддло | Адди | СХЛД добавить | 16 | (добавить) ← HL |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | — | — | ДАА | 4 | Если A 0-3 > 9 ИЛИ AC = 1, то A ← A + 6;
тогда если A 4-7 > 9 ИЛИ Cy = 1, то A ← A + 0x60 |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | аддло | Адди | LHLD добавить | 16 | HL ← (добавить) |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | — | — | СМА | 4 | А ← ¬А |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | аддло | Адди | СТА добавить | 13 | (добавить) ← А |
0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | — | — | СТЦ | 4 | Сай ← 1 |
0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | аддло | Адди | LDA добавить | 13 | А ← (добавить) |
0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | — | — | КМЦ | 4 | Сай ← ¬Си |
0 | 1 | ДДД | ССС | — | — | МОВ ддд,ссс | 5/7 | ДДД ← ССС | ||||
0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | — | — | HLT | 7 | Остановиться |
1 | 0 | ИДТИ | ССС | — | — | ДОБАВИТЬ ADC SUB SBB ANA XRA ORA CMP sss | 4/7 | A ← A [Работа ALU] SSS | ||||
1 | 1 | СС | 0 | 0 | 0 | — | — | РСС | 5/11 | Если cc истинно, PC ← (SP), SP ← SP + 2 | ||
1 | 1 | РП | 0 | 0 | 0 | 1 | — | — | ПОП Рп | 10 | РП ← (СП), ИП ← СП + 2 | |
1 | 1 | СС | 0 | 1 | 0 | аддло | Адди | JCC добавить | 10 | Если cc true, PC ← добавить | ||
1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | аддло | Адди | СПМ добавить | 10 | ПК ← добавить |
1 | 1 | СС | 1 | 0 | 0 | аддло | Адди | Копия добавить | 11/17 | Если cc истинно, SP ← SP - 2, (SP) ← PC, PC ← добавить | ||
1 | 1 | РП | 0 | 1 | 0 | 1 | — | — | НАЖМИТЕ рп | 11 | ИП ← СП - 2, (СП) ← РП | |
1 | 1 | ИДТИ | 1 | 1 | 0 | данные | — | ADI ACI SUI SBI ГОДЫ XRI ИЛИ дата CPI | 7 | A ← A Данные [работа АЛУ] | ||
1 | 1 | Н | 1 | 1 | 1 | — | — | RST н | 11 | ИП ← СП - 2, (СП) ← ПК, ПК ← N x 8 | ||
1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | — | — | ВЕРНО | 10 | ПК ← (СП), ИП ← СП + 2 |
1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | аддло | Адди | ЗВОНИТЕ добавить | 17 | ИП ← СП - 2, (СП) ← ПК, ПК ← добавить |
1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | порт | — | ВЫХОДНОЙ порт | 10 | Порт ← А |
1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | порт | — | IN- порт | 10 | ← Порт |
1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | — | — | ХТХЛ | 18 | ХЛ ↔ (СП) |
1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | — | — | ПКХЛ | 5 | ПК ← ХЛ |
1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | — | — | XCHG | 4 | ХЛ ↔ DE |
1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | — | — | ОТ | 4 | Отключить прерывания |
1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | — | — | СФХЛ | 5 | СП ← ХЛ |
1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | — | — | НЕТ | 4 | Включить прерывания |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | б2 | б3 | Мнемоника | Часы | Описание |
ССС ДДД | 2 | 1 | 0 | СС | ИДТИ | РП | ||||||
Б | 0 | 0 | 0 | Новая Зеландия | ДОБАВИТЬ ADI (A ← A + arg) | до нашей эры | ||||||
С | 0 | 0 | 1 | С | АЦП ACI (A ← A + arg + Cy) | ИЗ | ||||||
Д | 0 | 1 | 0 | Северная Каролина | SUB SUI (A ← A - arg) | ХЛ | ||||||
И | 0 | 1 | 1 | С | SBB SBI (A ← A - arg - Cy) | ИП или PSW | ||||||
ЧАС | 1 | 0 | 0 | PO | ГОД ГОД (A ← A ∧ arg) | |||||||
л | 1 | 0 | 1 | НА | XRA XRI (A ← A ⊻ arg) | |||||||
М | 1 | 1 | 0 | П | ВРЕМЯ ВРЕМЯ (A ← A ∨ arg) | |||||||
А | 1 | 1 | 1 | Н | CMP CPI (A - arg) | |||||||
ССС ДДД | 2 | 1 | 0 | СС | ИДТИ |
Схема ввода/вывода
[ редактировать ]Пространство входного выходного порта
[ редактировать ]Модель 8080 поддерживает до 256 портов ввода/вывода (I/O). [19] доступ осуществляется через специальные инструкции ввода-вывода, принимающие адреса портов в качестве операндов. [20] Такая схема отображения ввода-вывода считается преимуществом, поскольку она освобождает ограниченное адресное пространство процессора. Вместо этого во многих архитектурах ЦП используется так называемый ввод-вывод с отображением в памяти (MMIO), в котором общее адресное пространство используется как для ОЗУ, так и для периферийных микросхем. Это устраняет необходимость в выделенных инструкциях ввода-вывода, хотя недостатком таких конструкций может быть то, что для вставки состояний ожидания необходимо использовать специальное оборудование, поскольку периферийные устройства часто работают медленнее, чем память. Однако в некоторых простых компьютерах 8080 ввод-вывод действительно адресуется так, как если бы они были ячейками памяти, «отображенными в память», оставляя команды ввода-вывода неиспользованными. Адресация ввода-вывода также может иногда использовать тот факт, что процессор выводит один и тот же 8-битный адрес порта как для младшего, так и для старшего байта адреса (т. е. IN 05h
поместит адрес 0505h на 16-битную адресную шину). Подобные схемы портов ввода-вывода используются в обратно совместимых процессорах Zilog Z80 и Intel 8085, а также в близкородственных семействах микропроцессоров x86.
Отдельное пространство для стека
[ редактировать ]Один из битов слова состояния процессора (см. ниже) указывает, что процессор обращается к данным из стека. Используя этот сигнал, можно реализовать отдельное пространство памяти стека. Эта функция используется редко.
Слово состояния
[ редактировать ]В более продвинутых системах в начале каждого машинного цикла процессор помещает восьмибитное слово состояния на шину данных. Этот байт содержит флаги, определяющие, осуществляется ли доступ к памяти или порту ввода-вывода и необходимо ли обрабатывать прерывание.
Состояние системы прерываний (включено или отключено) также выводится на отдельный вывод. Для простых систем, где прерывания не используются, можно встретить случаи, когда этот вывод используется как дополнительный одноразрядный выходной порт ( «Радио-86РК» популярный компьютер советского например, производства).
Пример кода
[ редактировать ]Следующий исходный код ассемблера 8080/8085 предназначен для подпрограммы с именем memcpy
который копирует блок байтов данных заданного размера из одного места в другое. Блок данных копируется по одному байту за раз, а логика перемещения данных и цикла использует 16-битные операции.
1000 1000 1000 78 1001 B1 1002 C8 1003 1A 1004 77 1005 13 1006 23 1007 0B 1008 78 1009 B1 100A C2 03 10 100D C9 |
; memcpy --
; Copy a block of memory from one location to another.
;
; Entry registers
; BC - Number of bytes to copy
; DE - Address of source data block
; HL - Address of target data block
;
; Return registers
; BC - Zero
org 1000h ;Origin at 1000h
memcpy public
mov a,b ;Copy register B to register A
ora c ;Bitwise OR of A and C into register A
rz ;Return if the zero-flag is set high.
loop: ldax d ;Load A from the address pointed by DE
mov m,a ;Store A into the address pointed by HL
inx d ;Increment DE
inx h ;Increment HL
dcx b ;Decrement BC (does not affect Flags)
mov a,b ;Copy B to A (so as to compare BC with zero)
ora c ;A = A | C (are both B and C zero?)
jnz loop ;Jump to 'loop:' if the zero-flag is not set.
ret ;Return
|
Использование контактов
[ редактировать ]Адресная шина имеет собственные 16 контактов, а шина данных — 8 контактов, которые можно использовать без какого-либо мультиплексирования. Используя два дополнительных контакта (сигналы чтения и записи), можно очень легко собрать простые микропроцессорные устройства. Только отдельное пространство ввода-вывода, прерывания и DMA требуют дополнительных микросхем для декодирования сигналов выводов процессора. Однако нагрузочная способность штифта ограничена; даже простым компьютерам часто требуются усилители шины.
Процессору необходимы три источника питания (-5, +5 и +12 В) и два непересекающихся синхронизирующих сигнала большой амплитуды. Однако, по крайней мере, поздняя советская версия КР580ВМ80А могла работать с одним источником питания +5 В, при этом вывод +12 В был подключен к +5 В, а вывод -5 В - к земле.
Таблица распиновки из сопроводительной документации чипа описывает контакты следующим образом:
Номер контакта | Сигнал | Тип | Комментарий |
---|---|---|---|
1 | А10 | Выход | Адресная шина 10 |
2 | Земля | — | Земля |
3 | Д4 | Двунаправленный | Двунаправленная шина данных. Процессор также временно устанавливает здесь «состояние процессора», предоставляя информацию о том, что процессор в данный момент делает:
|
4 | Д5 | ||
5 | Д6 | ||
6 | D7 | ||
7 | Д3 | ||
8 | Д2 | ||
9 | Д1 | ||
10 | Д0 | ||
11 | −5 V | — | Источник питания −5 В. Это должен быть первый подключенный источник питания и последний отключенный, иначе процессор будет поврежден. |
12 | ПЕРЕЗАГРУЗИТЬ | Вход | Перезагрузить. Этот активный низкий сигнал вызывает выполнение команд, расположенных по адресу 0000. Содержимое других регистров процессора не изменяется. |
13 | ДЕРЖАТЬ | Вход | Запрос прямого доступа к памяти. Процессору предлагается переключить шину данных и адрес в высокоомное («отключенное») состояние. |
14 | ИНТ. | Вход | Запрос прерывания |
15 | f2 | Вход | Вторая фаза сигнала тактового генератора |
16 | НЕТ | Выход | Процессор имеет две команды для установки уровня 0 или 1 на этом выводе. Обычно этот вывод используется для управления прерываниями. Однако в простых компьютерах он иногда использовался как одноразрядный выходной порт для различных целей. |
17 | ДБИН | Выход | Чтение (процессор читает из памяти или входного порта) |
18 | WR | Выход | Запись (процессор записывает в память или порт вывода). Это активный низкий выход. |
19 | СИНХРОНИЗАЦИЯ | Выход | Активный уровень указывает на то, что процессор поместил «слово состояния» на шину данных. Различные биты этого слова состояния предоставляют дополнительную информацию для поддержки отдельных пространств адреса и памяти, прерываний и прямого доступа к памяти. Этот сигнал должен пройти через дополнительную логику, прежде чем его можно будет использовать для записи слова состояния процессора из шины данных в какой-либо внешний регистр, например, 8238. Архивировано 18 сентября 2023 г. в Wayback Machine — системный контроллер и драйвер шины. |
20 | +5 V | — | Источник питания + 5 В |
21 | HLDA | Выход | Подтверждение прямого доступа к памяти. Процессор переключает контакты данных и адреса в состояние высокого импеданса, позволяя другому устройству манипулировать шиной. |
22 | ф1 | Вход | Первая фаза сигнала тактового генератора |
23 | ГОТОВЫЙ | Вход | Ждать. По этому сигналу можно приостановить работу процессора. Он также используется для поддержки аппаратного режима пошаговой отладки. |
24 | ЖДАТЬ | Выход | Подождите (указывает, что процессор находится в состоянии ожидания) |
25 | А0 | Выход | Адресная шина |
26 | А1 | ||
27 | А2 | ||
28 | 12 V | — | Питание +12 В. Это должен быть последний подключенный и первый отключенный источник питания. |
29 | А3 | Выход | Адресная шина; может переключаться в состояние высокого импеданса по требованию |
30 | A4 | ||
31 | А5 | ||
32 | А6 | ||
33 | A7 | ||
34 | А8 | ||
35 | А9 | ||
36 | А15 | ||
37 | А12 | ||
38 | А13 | ||
39 | А14 | ||
40 | А11 |
Поддержка чипов
[ редактировать ]Ключевым фактором успеха 8080 стал широкий спектр доступных вспомогательных микросхем, обеспечивающих последовательную связь, счетчик/тайминг, ввод/вывод, прямой доступ к памяти и программируемое управление прерываниями, среди других функций:
- 8214 - Блок управления приоритетными прерываниями [21] [22]
- 8224 — Тактовый генератор
- 8228/8238 . Архивировано 18 сентября 2023 г., в Wayback Machine - системный контроллер и водитель шины.
- 8251 – Контроллер связи
- 8253 – Программируемый интервальный таймер
- 8255 – Программируемый периферийный интерфейс
- 8257 — Контроллер DMA
- 8259 – Программируемый контроллер прерываний
Физическая реализация
[ редактировать ]8080 Интегральная схема использует ненасыщенные nMOS - затворы с улучшенной нагрузкой, требующие дополнительных напряжений (для смещения нагрузки-затвора). Он был изготовлен по технологии кремниевых затворов с минимальным размером элемента 6 мкм. Один слой металла используется для соединения примерно 4500 транзисторов. [23] в конструкции, но с более высоким сопротивлением слой поликремния , который требовал более высокого напряжения для некоторых межсоединений, реализован с помощью транзисторных затворов. Размер матрицы примерно 20 мм. 2 .
Промышленное воздействие
[ редактировать ]Приложения и преемники
[ редактировать ]8080 использовался во многих ранних микрокомпьютерах, таких как компьютер MITS Altair 8800 , с процессорной технологией терминальный компьютер SOL-20 и микрокомпьютер IMSAI 8080 , образуя основу для машин под управлением операционной системы CP / M (более поздняя, почти полностью совместимая и более В этом случае процессор Zilog Z80 мог бы извлечь из этого выгоду: Z80 и CP/M стали доминирующей комбинацией ЦП и ОС в период по 1983 год , с 1976 так же, как это произошло с x86 и DOS десятилетие спустя для ПК).
В 1979 году, даже после появления процессоров Z80 и 8085, пять производителей 8080 продавали примерно 500 000 единиц в месяц по цене от 3 до 4 долларов за штуку. [24]
Первые одноплатные микрокомпьютеры , такие как MYCRO-1 и dyna-micro /MMD-1 (см.: Одноплатный компьютер ), были основаны на Intel 8080. Одно из первых применений 8080 было сделано в конце 1970-х годов. компанией Cubic-Western Data из Сан-Диего, Калифорния, в своих автоматизированных системах сбора платы за проезд, специально разработанных для систем общественного транспорта по всему миру. Первым промышленным использованием 8080 было использование в качестве «мозга» линейки продуктов DatagraphiX Auto-COM (микрофиша компьютерного вывода), которая принимает большие объемы пользовательских данных с катушечной ленты и отображает их на микрофише. Инструменты Auto-COM также включают в себя полную автоматизированную подсистему резки, обработки, промывки и сушки пленки.
Несколько первых аркадных игр были построены на базе микропроцессора 8080. Первой коммерчески доступной аркадной видеоигрой, включающей микропроцессор, была Gun Fight , Midway Games основанная на 8080 переработка компании дискретной логики Western Gun , выпущенная в ноябре 1975 года. [25] [26] [27] [28] (Автомат для игры в пинбол, оснащенный процессором Motorola 6800 , The Spirit of '76 , уже был выпущен в прошлом месяце. [29] [30] ) Затем 8080 использовался в более поздних аркадных видеоиграх Midway. [31] Тайто 1978 года и в Space Invaders , одной из самых успешных и известных аркадных видеоигр. [32] [33]
Zilog представил Z80 , который имеет совместимый набор команд машинного языка и изначально использовал тот же язык ассемблера, что и 8080, но по юридическим причинам Zilog разработал синтаксически отличный (но совместимый по коду) альтернативный ассемблерный язык для Z80. В Intel за 8080 последовал совместимый и более элегантный с электрической точки зрения 8085 .
совместимый с языком ассемблера (но не бинарно-совместимый) Позже Intel выпустила 16-битный 8086, , а затем 8/16-битный 8088 , который был выбран IBM для своего нового ПК , который будет выпущен в 1981 году. Позже NEC создала NEC. V20 (клон 8088 с совместимостью с набором инструкций Intel 80186 ), который также поддерживает режим эмуляции 8080. Это также поддерживается NEC V30 (аналогично улучшенный клон 8086). Таким образом, 8080 благодаря своей архитектуре набора команд (ISA) оказал длительное влияние на историю компьютеров.
Ряд процессоров, совместимых с Intel 8080A, производился в Восточном блоке : КР580ВМ80А (первоначально имел обозначение КР580ИК80) в Советском Союзе , MCY7880 [34] производства Unitra CEMI в Польше , MHB8080A. [35] производства TESLA в Чехословакии , 8080APC [35] производства Tungsram /MEV в Венгрии и MMN8080. [35] Производство Microelectronica Bucharest Румыния , .
По состоянию на 2017 год [update]8080 все еще находится в производстве Lansdale Semiconductors. [36]
-
CEMI MCY7880 (Польша)
-
Kvazar Kiev K580IK80 (Soviet Union)
-
Мицубиси Электрик M5L8080
-
Национальный полупроводник INS8080
-
ОКИ MSM8080
-
Сименс SAB8080
-
Сигнетикс МП8080
-
Тесла МХБ8080
-
Техасские инструменты TMS8080
-
5G8080 (Китай)
Изменение отрасли
[ редактировать ]Возможно, этот раздел содержит оригинальные исследования . ( Август 2017 г. ) |
8080 также изменил способ создания компьютеров. Когда был представлен 8080, компьютерные системы обычно создавались такими производителями компьютеров, как Digital Equipment Corporation , Hewlett-Packard или IBM . Производитель будет производить весь компьютер, включая процессор, терминалы и системное программное обеспечение, такое как компиляторы и операционную систему. Модель 8080 была разработана практически для любого применения, за исключением полноценной компьютерной системы. Компания Hewlett-Packard разработала серию интеллектуальных терминалов HP 2640 на основе 8080. HP 2647 — это терминал, который использует язык программирования BASIC на 8080. Microsoft Основополагающий продукт , Microsoft BASIC , изначально был запрограммирован для 8080.
8080 и 8085 дали начало 8086, который был разработан как совместимое с исходным кодом , хотя и не бинарно-совместимое , расширение 8080. [37] Эта конструкция, в свою очередь, позже породила семейство чипов x86 , которые продолжают оставаться основной линейкой процессоров Intel. Многие из основных машинных инструкций и концепций 8080 сохранились на широко распространенной платформе x86. Примеры включают регистры с именами A , B , C и D , а также многие флаги, используемые для управления условными переходами. Ассемблерный код 8080 по-прежнему можно напрямую транслировать в инструкции x86. [ нечеткий ] поскольку все его основные элементы все еще присутствуют.
Культурное влияние
[ редактировать ]- Астероид 8080 Intel назвал в шутку [ нужна ссылка ] и хвала имени Intel 8080. [38]
- Опубликованный номер телефона Microsoft 425-882-8080 был выбран потому, что над этим чипом проводилось много ранних работ.
- Многие из основных телефонных номеров Intel также имеют аналогичную форму: xxx-xxx-8080.
См. также
[ редактировать ]- CP/M – операционная система
- Автобус С-100
- МПТ8080
- Интеллек 8 Мод 80
- МДС 800
Ссылки
[ редактировать ]- ^ «История процессора – Музей процессора – жизненный цикл процессора» . Архивировано из оригинала 16 января 2010 года.
- ^ Льюнес, Энн, «Архитектура Intel386 останется здесь», корпорация Intel, Microcomputer Solutions, июль/август 1989 г., стр. 2
- ^ «От процессора до программного обеспечения — микрокомпьютер 8080 уже здесь». Электронные новости . Нью-Йорк: Публикации Fairchild. 15 апреля 1974 г. стр. 44–45. Electronic News была еженедельной отраслевой газетой. Такая же реклама появилась в от 2 мая 1974 года Electronics номере журнала .
- ^ «8080A/8080A-1/8080A-2 8-битный N-канальный микропроцессор» (PDF) . Интел. Архивировано (PDF) из оригинала 15 ноября 2021 г. Проверено 16 ноября 2021 г.
- ^ аналогично подтягивающим резисторам
- ^ Тохья, Хирокадзу (2013). Анализ и проектирование схем переключения режимов: инновационная методология новой теории уединенных электромагнитных волн . Издательство Bentham Science. п. 4. ISBN 9781608054497 . Архивировано из оригинала 15 ноября 2021 года . Проверено 28 ноября 2020 г.
- ^ 8008 (1972) использовался для интерполяции и управления в первой линейке общепромышленных роботов ASEA (ныне ABB), представленной в октябре 1973 года.
- ^ Мюллер, Скотт (2006). Модернизация и ремонт компьютеров (17-е изд.). Пирсон Образование. п. 37. ИСБН 978-0-7897-3404-4 . Архивировано из оригинала 16 ноября 2021 года . Проверено 16 ноября 2021 г.
- ^ Усовершенствования были в значительной степени основаны на отзывах клиентов, а также на том, что Федерико Фаггин и другие слушали профессионалов, ориентированных на миникомпьютеры, об определенных проблемах и отсутствии функций в архитектуре 8008. (Источник: устные рассказы 8008 и 8080 годов.)
- ^ Мазор, Стэнли (июнь 1978 г.). «Микропроцессор Intel 8086: 16-битная эволюция 8080» . IEEE-компьютер . 11 (6): 18–27. дои : 10.1109/CM.1978.218219 . S2CID 16962774 . Архивировано из оригинала 19 сентября 2021 года . Проверено 18 ноября 2021 г.
- ^ Миллер, Майкл. «Создание 8080: процессор, положивший начало революции ПК» . PCMag . Зафф Дэвис. Архивировано из оригинала 14 ноября 2021 года . Проверено 14 ноября 2021 г.
- ^ Фаггин, Федерико. «Вопросы и ответы по 8008 и 8080» . Микропроцессор Intel 4004 . Архивировано из оригинала 15 ноября 2021 года . Проверено 15 ноября 2021 г.
- ^ Мазор, Стэнли (апрель – июнь 2007 г.). «Разработка процессорного чипа Intel 8080». IEEE Анналы истории вычислений . 29 (2): 70–73. дои : 10.1109/MAHC.2007.25 . S2CID 14755544 .
- ^ Сима, Масатоши Нишимура, Исида, Харухиса (1979). «Круговая дискуссия: Рождение микрокомпьютеров: Интервью с разработчиком Масатоши Сима». Бит (на японском языке) Шуппан : 4–12. ; Кёрицу -6984 .
- ^ Килдалл, Гэри Арлен (27 июня 1974 г.). «Язык высокого уровня упрощает программирование микрокомпьютеров» (PDF) . Электроника . Макгроу-Хилл Образование . С. 103–109 [108]. Архивировано (PDF) из оригинала 14 ноября 2021 г. Проверено 14 ноября 2021 г.
- ^ «Симулятор 8080 ИНТЕРП/80» (PDF) . Программное обеспечение микрокомпьютера. Корпорация Интел . Март 1975 г. Код товара 98-119А. МКС-516-0375/27,5К. Архивировано (PDF) из оригинала 25 ноября 2023 г. Проверено 25 ноября 2023 г. (2 страницы)
- ^ Руководство по программированию на ассемблере 8080 (PDF) (ред. B). Интел. 1975. с. 22 . Проверено 29 февраля 2024 г.
- ^ Кодировка инструкций 8080. Архивировано 5 марта 2018 г. на Wayback Machine . ClassicCMP.org. Проверено 23 октября 2011 г.
- ^ Примечание. В некоторых таблицах данных Intel 1970-х годов указано 512 портов ввода-вывода, поскольку порты ввода и вывода считаются отдельно.
- ^ ХЕЙС, ДЖОН П. (1978). Компьютерная архитектура и организация . МакГроу-Хилл. стр. 420–423. ISBN 0-07-027363-4 .
- ^ Корпорация Intel, «Блок управления приоритетными прерываниями 8214», Руководство пользователя микрокомпьютерных систем Intel 8080, сентябрь 1975 г., стр. 5-153. Архивировано 28 мая 2024 г. на Wayback Machine с сайта bitsaver.org в формате PDF.
- ^ Корпорация Intel, «Два недорогих программируемых устройства LSI упрощают реализацию проектов и снижают стоимость 4-битных систем MCS-40», Intel Microcomputer News, Том 3, № 1, январь 1976 г., стр. 1
- ^ «Хронология чипов Intel» (PDF) . Интел . Корпорация Интел. Архивировано (PDF) из оригинала 14 ноября 2021 г. Проверено 14 ноября 2021 г.
- ^ Либес, Соль (ноябрь 1979 г.). «Байт Ньюс». Байт . 11. Том. 4. с. 82. ISSN 0360-5280 .
- ^ «Какая была первая аркадная игра, в которой вместо дискретной логики использовался микропроцессор?» . Архивировано из оригинала 11 апреля 2023 года . Проверено 11 апреля 2023 г.
- ^ Стив Л. Кент (2001), Полная история видеоигр: от понга до покемонов и не только: история увлечения, которое коснулось нашей жизни и изменило мир , с. 64, Прима, ISBN 0-7615-3643-4
- ^ Акаги, Масуми (13 октября 2006 г.). телеигр Список аркадных : внутреннее • зарубежное издание (1971–2005 гг .) (на японском языке: Агентство новостей развлечений, стр. 124) . 978-4990251215 .
- ^ «Дэйв Нидл и Джерри Лоусон — два первых независимых дизайнера видеоигр» . 29 июля 2013. Архивировано из оригинала 11 апреля 2023 года . Проверено 11 апреля 2023 г.
- ^ «База данных автоматов для игры в пинбол в Интернете: Mirco Games, Inc. «Дух 76» » . www.ipdb.org . Архивировано из оригинала 16 апреля 2023 года . Проверено 11 апреля 2023 г.
- ^ выход440. «Продается Mirco Spirit 76 – первый полупроводниковый значок?» . Pinside.com . Архивировано из оригинала 11 апреля 2023 года . Проверено 11 апреля 2023 г.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ «Системные платы Midway 8080» . Архивировано из оригинала 11 апреля 2023 года . Проверено 11 апреля 2023 г.
- ^ «Видеоигра Space Invaders от Балли Мидуэй (1978)» . Убийственный список видеоигр . Архивировано из оригинала 25 ноября 2010 года . Проверено 11 апреля 2023 г.
- ^ Эдвардс, Бендж. «Десять вещей, которые каждый должен знать о космических захватчиках» . 1UP.com . Архивировано из оригинала 26 февраля 2009 года . Проверено 11 апреля 2023 г.
- ↑ MCY7880 — клон 8080 польского производства. Архивировано 17 августа 2016 года в Wayback Machine . Мир процессоров. Проверено 23 октября 2011 г.
- ^ Перейти обратно: а б с Советские чипы и их западные аналоги. Архивировано 9 февраля 2017 года в Wayback Machine . CPU-мир. Проверено 23 октября 2011 г.
- ^ «Intel — семейство микропроцессоров 8080A и серия 828X» . Lansdale Semiconductor Inc. Архивировано из оригинала 14 октября 2015 года . Проверено 20 июня 2017 г.
- ^ Морс, Стивен; Равенел, Брюс; Мазор, Стэнли; Полман, Уильям (октябрь 1980 г.). «Микропроцессоры Intel: от 8008 до 8086» (PDF) . IEEE-компьютер . 13 (10): 42–60. дои : 10.1109/MC.1980.1653375 . S2CID 206445851 . Архивировано (PDF) из оригинала 14 сентября 2021 г. Проверено 5 ноября 2021 г.
- ^ «(8080) Intel = 1958 QC = 1987 WU2 = 1989 AS5» . Центр малых планет . Международный астрономический союз. Архивировано из оригинала 25 сентября 2019 года . Проверено 14 ноября 2021 г.
Дальнейшее чтение
[ редактировать ]- Левенталь, Лэнс (1978). Программирование на языке ассемблера 8080A/8085 (1-е изд.). Адам Осборн и партнеры. [ мертвая ссылка ] ; 495 страниц
- Миллер, Алан (1981). Язык ассемблера 8080/Z80 – методы улучшения программирования (1-е изд.). Джон Уайли и сыновья. ISBN 978-0471081241 . ; 332 страницы
- Zaks, Rodnay; Lesea, Austin (1979). Microprocessor Interfacing Techniques (3rd ed.). Sybex. ISBN 978-0-89588-029-1 . ; 466 страниц
- Спраклен, Кэте (1979). Программирование на языке ассемблера Z80 и 8080 (1-е изд.). Хейден. ISBN 978-0810451674 . ; 180 страниц
Внешние ссылки
[ редактировать ]- Изображения и описания процессоров 8080 Intel и других производителей на сайте cpu-collection.de. Архивировано 11 октября 2006 г. на Wayback Machine.
- Скан книги данных Intel 8080 на сайте DataSheetArchive.com.
- Microcomputer Design, второе издание, 1976 г. Архивировано 11 марта 2012 г. в Wayback Machine.
- Эмулятор 8080, написанный на JavaScript. Архивировано 17 марта 2010 г. на Wayback Machine.
- Эмулятор Intel 8080/KR580VM80A в JavaScript. Архивировано 11 июня 2018 г. на Wayback Machine.
- Руководство пользователя микрокомпьютерных систем Intel 8080 (сентябрь 1975 г., 262 страницы). Архивировано 10 марта 2018 г. на Wayback Machine.
- Руководство пользователя микрокомпьютерных систем Intel 8080 (сентябрь 1975 г., 234 страницы). Архивировано 26 февраля 2013 г. на Wayback Machine.
- Справочная карта инструкций Intel 8080/8085. Архивировано 10 августа 2021 г. на Wayback Machine.
- Патент США 4010449 , Федерико Фаггин , Масатоши Шима , Стэнли Мазор, «МОП-компьютер, использующий множество отдельных микросхем», выдан 1 марта 1977 г.