Jump to content

Зилог Z80

(Перенаправлено с Z-80 )

Зилог Z80
Крупный план серебряного компьютерного чипа с золотым квадратом на белом фоне. На чипе есть текст: «ZILOG Z80 CPU DALLAS 7623».
Судя по дате, Z80 изготовлен в июне 1976 года.
Общая информация
Запущен июль 1976 г.
Снято с производства июнь 2024 г.
Продается через Зилог
Разработано Федерико Фаггин , Масатоши Сима
Общий производитель
Производительность
Макс. процессора Тактовая частота от 2,5 МГц до 8 МГц [б]
Ширина данных 8 бит [1]
Ширина адреса 16 бит [1]
Архитектура и классификация
Приложение Встроенный, настольный, портативный
Технологический узел 4 мкм процесс
Набор инструкций Z80 [с]
Физические характеристики
Транзисторы
  • 8,500
Пакеты
История
Предшественник Интел 8080
Преемники

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

Первоначально предназначенный для использования во встраиваемых системах , таких как 8080, сочетание совместимости, доступности и превосходной производительности Z80 привело к его широкому распространению в системах видеоигр и домашних компьютерах в конце 1970-х и начале 1980-х годов, что способствовало революции в области персональных компьютеров .

Z80 был детищем Федерико Фаггина , ключевой фигуры в создании Intel 8080. После ухода из Intel в 1974 году Фаггин вместе с Ральфом Унгерманном основал компанию Zilog . Z80 был выпущен в июле 1976 года. На доходы от Z80 компания построила собственные заводы по производству микросхем . [2] Zilog передал лицензию на Z80 американским компаниям Synertek и Mostek а также европейскому производителю , которые помогли им с начальным производством , SGS . Дизайн . также копировали несколько японских, восточноевропейских и советских производителей [д] Это завоевало признание Z80 на мировом рынке, поскольку крупные компании, такие как NEC , Toshiba , Sharp и Hitachi, начали производить устройство (или свои собственные Z80-совместимые клоны или разработки).

Z80 продолжал использоваться во встраиваемых системах в течение десятилетий после его появления, и его развитие постоянно совершенствовалось. Последним дополнением к семейству Z80 является eZ80 , который предлагается вместе с чипами-преемниками. Zilog объявил о прекращении производства Z80 в апреле 2024 года после почти пяти десятилетий производства.

В рекламе Z80, опубликованной в мае 1976 года, описаны его основные преимущества перед 8080.
Фотография оригинального микропроцессора Zilog Z80 на nMOS с истощаемой нагрузкой . Общий размер кристалла составляет 3545×3350 мкм. Синие квадраты снаружи — это площадки, которые подключаются к внешним контактам. Этот чип был изготовлен в 1990 году.
CMOS Z80 в 44 -контактном четырехплоскостном корпусе .

Ранняя история

[ редактировать ]

В Fairchild Semiconductor , а затем в Intel , физик и инженер Федерико Фаггин работал над фундаментальными технологиями производства транзисторов и полупроводников . Он также разработал базовую методологию проектирования памяти и микропроцессоров Intel и руководил работой над Intel 4004 , Intel 8080 и несколькими другими микросхемами. Масатоши Сима был главным разработчиком логики и транзисторов 4004 и 8080 под руководством Фаггина, а Ральф Унгерманн отвечал за разработку индивидуальных интегральных схем . [3]

В начале 1974 года Intel рассматривала свои микропроцессоры не столько как продукты, которые можно продавать отдельно, сколько как способ продавать больше своих основных продуктов — статической оперативной памяти и ПЗУ . В результате реорганизации многие из ранее независимых подразделений оказались под руководством Леса Вадаса, что еще больше ослабило место микропроцессоров в компании. В том же году рецессия 1973–1975 годов достигла пика, и Intel уволила ряд сотрудников. [3] Все это привело к тому, что Феггин забеспокоился, он пригласил Унгерманна выпить и спросил, не будет ли он заинтересован в создании собственной компании. Унгерманн немедленно согласился, и, поскольку у него было меньше дел в Intel, он ушел в августе или сентябре, за ним последовал Фаггин, чьим последним днем ​​в Intel был Хэллоуин 1974 года. [4] Когда Шима услышал об этом, он попросил тоже прийти в новую компанию, но, не имея ни дизайна продукта, ни денег, ему сказали подождать. [5]

Вновь созданная и неназванная компания первоначально приступила к разработке однокристального микроконтроллера под названием 2001. Они встретились с Synertek , чтобы обсудить производство на их линиях, и когда Faggin начал понимать связанные с этим затраты, стало ясно, что такой недорогой продукт будет не сможет конкурировать с разработкой компании с собственными производственными линиями, такой как Intel. Затем они начали рассматривать вместо этого более сложный микропроцессор, первоначально известный как Super 80, основной особенностью которого было использование шины +5 В. [5] вместо более распространенных -5, +5 и 12 В, используемых в таких конструкциях, как 8080. Новая конструкция была предназначена для совместимости с 8080, но добавляла многие приятные функции Motorola 6800 , включая индексные регистры и улучшенные прерывания. . [6]

Инвестиции Exxon, начало детальной разработки

[ редактировать ]

Еще во время создания отраслевой информационный бюллетень Electronic News услышал о них и опубликовал статью о недавно созданной компании. Это привлекло внимание Exxon Enterprises, инвестиционного подразделения Exxon в сфере высоких технологий. В то время, в разгар рецессии, доступного венчурного капитала было очень мало : за весь 1975 год на всю отрасль было потрачено в общей сложности 10 миллионов долларов (что эквивалентно 57 миллионам долларов в 2023 году). Кто-то из Exxon связался с пока неназванной компанией. [5] и организовал встречу, которая в конечном итоге привела к тому, что в июне 1975 года они предоставили первоначальное финансирование в размере 500 000 долларов США (что эквивалентно 2,8 миллионам долларов США в 2023 году). [7]

Когда обсуждалось финансирование и планировался проект, Сима присоединился к компании в феврале 1975 года. [6] Шима немедленно приступил к созданию проекта высокого уровня, добавив несколько собственных концепций. В частности, он использовал свой опыт работы с NEC миникомпьютерами , чтобы добавить концепцию двух наборов регистров процессора , чтобы они могли быстро реагировать на прерывания . [4] [и] Унгерман начал разработку серии сопутствующих контроллеров и периферийных микросхем, которые дополняли бы конструкцию. [8]

За этот период Шима заработал легендарную репутацию человека, способного преобразовывать логические концепции в физический дизайн в реальном времени; Обсуждая предлагаемую функцию, он часто прерывал и заявлял, сколько места займет чип, и накладывал вето на его добавление, если он был слишком большим. [9] Первый этап проектирования был завершен к апрелю 1975 года. К началу мая Сима завершил логический макет. Вторая версия логического проекта была выпущена 7 августа, а детали шины - к 16 сентября. Запись на пленку была завершена в ноябре, а преобразование ленты в производственную маску потребовало еще два месяца. [10]

Фаггин уже начал искать партнера по производству. К этому времени Synertek и Mostek уже создали производственные линии, работающие в режиме истощения, которые можно было использовать для производства конструкции. Поговорив ранее с Synertek, Фаггин первым подошел к ним. Однако президент Synertek потребовал предоставить компании вторую лицензию, позволяющую продавать разработку напрямую. Феггин подумал, что это будет означать, что они никогда не смогут конкурировать, даже если создадут свои собственные линии, и соглашение сорвалось. Затем он обратился к Мостеку, который согласился на условия эксклюзивности, пока Zilog настраивал свои линии, и в конечном итоге получил соглашение о втором источнике. [11]

Пересмотрев множество названий новой компании и обнаружив их настолько незабываемыми, что они не смогли вспомнить их даже день спустя, Фаггин и Унгерманн обдумывали идеи, основанные на «интегрированной логике», когда Унгерманн спросил: «А как насчет Zilog?» Фаггин сразу согласился, заявив, что они могут сказать, что это «последнее слово в интегрированной логике». Когда они встретились на следующий день и оба сразу вспомнили об этом, у компании было свое название. [12]

В производство

[ редактировать ]

Первые образцы были возвращены из Мостека 9 марта 1976 года. [8] К концу месяца они также завершили разработку ассемблера на основе системы разработки . Некоторые из вспомогательных и периферийных микросхем Z80 на тот момент находились в стадии разработки, и многие из них были выпущены в следующем году. Среди них были Z80 CTC (счетчик/таймер), Z80 DMA. [13] (прямой доступ к памяти), Z80 DART (двойной асинхронный приемник-передатчик), Z80 SIO (контроллер синхронной связи) и Z80 PIO (параллельный ввод/вывод).

Z80 был официально представлен в июле 1976 года. [14] Одним из первых клиентов был покупатель, который, неизвестный Зилогу, работал в NEC. В то время японские компании по производству электроники были хорошо известны тем, что брали американские разработки микросхем и производили их без лицензии. Команда Zilog беспокоилась по этому поводу, и Фаггину пришла в голову идея добавить транзисторы, которые можно было бы слегка модифицировать, чтобы они работали иначе, чем можно было бы предположить при визуальном осмотре. Шима добавил в дизайн шесть таких «ловушек». Некоторое время спустя инженер NEC сообщил Шиме, что ловушки задержали работу по копированию на шесть месяцев. [15]

Успешный запуск позволил Фаггину и Унгерманну обратиться к Exxon в поисках финансирования для строительства собственного завода. Компания согласилась, и Zilog очень быстро построила производственную линию. Это позволило им занять от 60 до 70% общего рынка продаж Z80. [16] Имея собственную линию, компания Mostek получила добро на начало продаж собственной версии MK3880, которая предоставила клиентам второй источник, которого не хватало Intel. В то время второй источник считался чрезвычайно важным, поскольку такой стартап, как Zilog, мог обанкротиться и оставить потенциальных клиентов в затруднительном положении. [6] [ф]

Сравнение с 8080

[ редактировать ]

Фаггин разработал набор команд с , двоично совместимый 8080. [17] [18] так что большая часть кода 8080, особенно CP/M операционная система и компилятор Intel PL/M для 8080 (а также его сгенерированный код), будет работать без изменений на новом процессоре Z80. Масатоши Шима спроектировал большую часть микроархитектуры , а также уровни затворов и транзисторов процессора Z80 при помощи небольшого числа инженеров и специалистов по компоновке . [19] [20] Генеральный директор Федерико Фаггин на самом деле активно участвовал в работе по компоновке микросхем вместе с двумя специалистами по компоновке. По словам Феггина, он работал 80 часов в неделю, чтобы уложиться в плотный график, заданный финансовыми инвесторами. [2]

Z80 предлагал множество улучшений по сравнению с 8080: [18]

  • Расширенный набор инструкций, включающий:
    • инструкций ассемблера более логичная, понятная и читаемая система мнемоники
    • более гибкие 16-битные инструкции перемещения данных (загрузки или LD), включая указатель стека SP
    • более гибкие режимы адресации для ввода/вывода на внешние периферийные порты
    • однобитовая адресация всех регистров и памяти, включая побитовое тестирование
    • сдвигает/вращает память и регистры, отличные от аккумулятора
    • улучшенная и более точная (по сравнению с предыдущим 8080) BCD арифметика
    • инструкции по повороту строк чисел BCD в памяти
    • 16-битное вычитание и 8-битное отрицание
    • цикл программы
    • относительные переходы счетчика программ (ПК)
    • копирование блока , инструкции блока ввода/вывода (I/O) и поиска байтов. [21]
  • Флаг переполнения с улучшенной поддержкой знаковых 8- и 16-битных арифметических операций. [г]
  • IX и IY Новые индексные регистры с инструкциями для прямой по основанию + смещению . адресации
  • Улучшенная система прерываний :
    • Более автоматическая и общая система векторизованных прерываний , режим 2 , в первую очередь предназначенная для линейки счетчиков/таймеров Zilog, DMA и контроллеров связи, а также система прерываний с фиксированным вектором, режим 1 , для простых систем с минимальным оборудованием (при режим 0 этом режим совместимости с 8080). [22]
    • Немаскируемое прерывание (NMI), которое можно использовать для реагирования на ситуации отключения питания или другие события с высоким приоритетом (и позволяет минималистической системе Z80 легко реализовать двухуровневую схему прерываний в режиме 1 ).
  • Полный дубликат регистрационного файла , [23] которые можно было бы быстро переключать, чтобы ускорить реакцию на прерывания, например, быстрые асинхронные обработчики событий или многозадачности диспетчер . Хотя они не предназначались в качестве дополнительных регистров для общего кода, тем не менее, в некоторых приложениях они использовались таким образом. [час]
  • Меньше аппаратного обеспечения, необходимого для электропитания , генерации тактовой частоты и интерфейса с памятью и вводом/выводом.
  • Одиночный источник питания на 5 В (для 8080 требовалось −5 В, +5 В и +12 В).
  • Однофазный 5-вольтовый тактовый сигнал (для 8080 требовался неперекрывающийся двухфазный тактовый сигнал с высокой амплитудой (от 9 до 12 В) .
  • Встроенное DRAM обновление , для которого в противном случае потребовалась бы внешняя схема, если бы не использовалась SRAM, более дорогая и менее плотная (но более быстрая). [я]
  • Немультиплексированные шины (у 8080 сигналы состояния мультиплексировались на шину данных).
  • Специальный сброс, который обнуляет только счетчик программ, чтобы один ЦП Z80 можно было использовать в системе разработки, такой как внутрисхемный эмулятор . [24]

Успех на рынке

[ редактировать ]

Z80 заменил 8080 и его потомка 8085 на рынке процессоров. [25] и стал одним из самых популярных и широко используемых 8-битных процессоров. [26] [27] Некоторые организации, такие как British Telecom, остались верны 8085 для встроенных приложений из-за того, что они были знакомы с ним, а также с его встроенным последовательным интерфейсом и архитектурой прерываний. Аналогичным образом компания Zenith Data Systems объединила 8085 с 16-битным процессором Intel 8088 в своем первом компьютере под управлением MS-DOS, Zenith Z-100 , несмотря на предыдущий опыт работы с новаторскими продуктами Heathkit H89 и Zenith Z-89 на базе Z80 . Однако другие компьютеры были созданы с интеграцией Z80 с другими процессорами: Radio Shack TRS-80 Model 16 с Motorola 68000 , DEC Rainbow с 8088 и Commodore 128 с MOS Technology 8502 .

Позднее Zilog производил маломощный Z80, подходящий для растущего рынка портативных компьютеров начала 1980-х годов. Intel произвела CMOS 8085 (80C85), используемую в портативных компьютерах с батарейным питанием, таких как ноутбук, разработанный Kyocera в апреле 1983 года, также продаваемый Tandy (как TRS-80 Model 100 ), Olivetti и NEC. Однако в последующие годы версии CMOS Z80 (как от Zilog, так и от японских производителей) также будут доминировать на этом рынке в таких продуктах, как Amstrad NC100 , Cambridge Z88 и собственной WP-2 от Tandy.

Возможно, ключом к первоначальному успеху Z80 стало обновление встроенной памяти DRAM, по крайней мере, на таких рынках, как CP/M и других офисных и домашних компьютерах. Z80 (Большинство встроенных систем используют статическое ОЗУ , не требующее обновления.) Это также могла быть минималистичная двухуровневая система прерываний или, наоборот, общая многоуровневая система прерываний с последовательным подключением, полезная для обслуживания нескольких микросхем ввода-вывода Z80. Эти функции позволили создавать системы с меньшим количеством вспомогательного оборудования и более простой компоновкой печатных плат.

Однако другие утверждают, что его популярность была связана с дублированием регистров, которое позволяло быстро переключать контекст или более эффективно обрабатывать такие вещи, как математика с плавающей запятой, по сравнению с 8-битными процессорами с меньшим количеством регистров. (Z80 может хранить несколько таких чисел внутри себя, используя HL'HL, DE'DE и BC'BC в качестве 32-битных регистров, что позволяет избежать необходимости доступа к ним из более медленной оперативной памяти во время вычислений.) [28]

Для исходной конструкции NMOS указанный верхний предел тактовой частоты последовательно увеличивался с вводных 2,5 МГц через хорошо известные 4 МГц (Z80A), до 6 МГц (Z80B) и 8 МГц (Z80H). [29] [30] Версия NMOS производится с частотой 10 МГц с конца 1980-х годов. Версии КМОП были разработаны с указанным верхним пределом частоты в диапазоне от 4 до 20 МГц для версии, продаваемой сегодня. Версии CMOS позволяли переходить в режим ожидания с низким энергопотреблением с сохранением внутреннего состояния без нижнего предела частоты. [Дж] Полностью совместимые производные HD64180 / Z180 [31] [32] и eZ80 в настоящее время рассчитаны на частоту до 33 МГц и 50 МГц соответственно.

Модель программирования и набор регистров

[ редактировать ]
Приблизительная блок-схема Z80: нет специального сумматора для смещений или отдельного инкрементера для R, и нет необходимости использовать более одного 16-битного временного регистра WZ (хотя защелки инкремента также используются в качестве 16-битного временного регистра). в других контекстах). Именно регистры PC и IR вынесены в отдельную группу, с отделяемым сегментом шины, чтобы обеспечить возможность обновления этих регистров параллельно с основным банком регистров. [33]

Модель программирования и набор регистров Z80 довольно традиционны и в конечном итоге основаны на структуре регистров Datapoint 2200 . Z80 был разработан как расширение процессора Intel 8080, созданного теми же инженерами, который, в свою очередь, был расширением 8008 . По сути, 8008 представлял собой PMOS -реализацию ЦП на базе TTL Datapoint 2200. [к]

Конструкция 2200 позволяла объединять 8-битные регистры H и L (высокий и низкий) в 16-битный адресный регистр HL. [л] В 8080 это соединение было также добавлено к парам BC и DE, а HL был обобщен, чтобы его можно было использовать в качестве 16-битного аккумулятора, а не просто адресного регистра. 8080 также представил немедленные 16-битные данные для нагрузок BC, DE, HL и SP. Более того, теперь стало возможным прямое 16-битное копирование между HL и памятью с использованием прямого адреса.

Z80 еще больше ортогонализировал это, сделав все 16-битные пары регистров, включая IX и IY, более универсальными, а также разрешив 16-битное копирование непосредственно в память и из памяти для всех этих пар. 16-битные регистры IX и IY в Z80 в первую очередь предназначены как регистры базового адреса, где конкретная инструкция предоставляет постоянное смещение, которое добавляется к предыдущим значениям, но они также могут использоваться, среди прочего, как 16-битные аккумуляторы. . Ограничением является то, что все ссылки на операнды, включающие IX или IY, требуют дополнительного байта префикса инструкции, добавляя как минимум четыре тактовых цикла к времени выполнения инструкции, использующей вместо этого HL; иногда это делает использование IX или IY менее эффективным, чем метод, использующий только регистры модели 8080. Z80 также представил новый флаг переполнения со знаком и дополнил довольно простую 16-битную арифметику 8080 специальными инструкциями для 16-битной арифметики со знаком .

Z80 DIP40 Распиновка оригинального корпуса микросхемы

Совместимые с 8080 регистры AF, BC, DE, HL дублируются в Z80 в виде отдельного файла регистров. [34] где процессор может быстро (четыре t-состояния, минимально возможное время выполнения любой инструкции Z80) переключаться с одного банка на другой; [35] функция, полезная для ускорения реакции на одноуровневые прерывания с высоким приоритетом. Похожая функция присутствовала в 2200, но так и не была реализована в Intel. Двойной набор регистров очень полезен во встроенных функциях, поскольку он улучшает производительность обработки прерываний, но нашел широкое применение в роли персонального компьютера в качестве дополнительного набора общих регистров для сложного кода, такого как арифметика с плавающей запятой или домашние компьютерные игры.

Дубликат файла регистров часто называют «альтернативным набором регистров» (некоторые называют «штрихованным» файлом регистров, поскольку для их обозначения в исходном коде ассемблера и документации Zilog используется символ апострофа). Это подчеркивает, что в любой момент времени доступен только один набор. Однако 8-битный аккумулятор A с его флаговым регистром F отделен от пар регистров «общего назначения» HL, DE и BC. Это достигается с помощью двух отдельных инструкций, используемых для замены их возможностей доступа: EX AF,AF' обменивается только регистровой парой AF с AF', тогда как EXX Инструкция заменяет три пары регистров общего назначения HL, DE и BC их альтернативами HL', DE' и BC'. Таким образом, аккумулятор A может независимо взаимодействовать с любым из 8-битных регистров общего назначения в альтернативном (или первичном) файле регистров, или, если HL' содержит указатель на память, некоторые байты туда (DE' и BC' также могут передаваться). 8-битные данные между памятью и аккумулятором А).

Это может сбить с толку программистов, поскольку после выполнения EX AF,AF' или EXX то, что раньше было альтернативными (заполненными) регистрами, теперь является основными регистрами, и наоборот. Единственный способ для программиста определить, какой набор(ы) находится в контексте (во время «игры в компьютер», внимательно изучая исходный текст ассемблера или, что еще хуже, изучая код с помощью отладчика) — это проследить, где каждый раз происходит перестановка регистров. пункт в программе. Очевидно, что если в этих сегментах кода выполняется много переходов и вызовов, может быстро стать трудно определить, какой файл регистров находится в контексте, если его тщательно не прокомментировать. Таким образом, желательно, чтобы команды обмена использовались непосредственно и в коротких дискретных сегментах кода. Набор команд Zilog Z280 включает в себя JAF и JAR инструкции, которые переходят к адресу назначения, если альтернативные регистры находятся в контексте (таким образом, официально признавая эту сложность программирования).

Регистры

[ редактировать ]
Регистры Zilog Z80
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 (битовая позиция)
Основные регистры
Аккумулятор (А) Флаги (Ф) ИЗ
Б С до нашей эры
Д И ИЗ
ЧАС л ХЛ
Альтернативные (теневые) регистры
Аккумулятор' (А') Флаги '(F') ИЗ '
Б' С' до нашей эры '
Д' И' ИЗ '
ЧАС' Л' ХЛ '
Индексные регистры
Индекс Х IX
Индекс Y я
Указатель стека СП
Другие регистры
  Вектор прерывания я
  Обновить счетчик Р
Счетчик программ
Счетчик программ ПК
Регистр состояния
  С С - ЧАС - P / V Н С флаги Отметить

Как и в 8080, 8-битные регистры обычно объединены в пары для создания 16-битных версий. Регистры, совместимые с 8080 [36] являются:

  • AF: 8-битный аккумулятор (A) и биты флага (F) переносят, ноль, минус, четность/переполнение, полуперенос (используется для BCD ), а также флаг сложения/вычитания (обычно называемый N) также для BCD.
  • BC: 16-битный регистр данных/адреса или два 8-битных регистра.
  • DE: 16-битный регистр данных/адреса или два 8-битных регистра.
  • HL: 16-битный аккумулятор/регистр адреса или два 8-битных регистра.
  • SP: указатель стека , 16 бит
  • PC: счетчик программ, 16 бит

Новые регистры, представленные в Z80:

  • IX: 16-битный индекс или базовый регистр для 8-битных немедленных смещений.
  • IY: 16-битный индекс или базовый регистр для 8-битных немедленных смещений.
  • I: базовый регистр вектора прерывания, 8 бит
  • R: счетчик обновления DRAM, 8 бит ( старший бит не учитывается)
  • AF': альтернативный (или теневой) аккумулятор и флаги ( включаются и выключаются с помощью EX AF,AF' )
  • BC', DE' и HL': альтернативные (или теневые) регистры ( включаются и выключаются с помощью EXX )
  • Четыре бита статуса прерывания и статуса режима прерывания

реестра Обновление , R, увеличивается каждый раз, когда ЦП извлекает код операции (или префикс кода операции, который внутренне выполняется как 1-байтовая инструкция) и не имеет простой связи с выполнением программы. Иногда это использовалось для генерации псевдослучайных чисел в играх, а также в схемах защиты программного обеспечения. [ нужна ссылка ] В некоторых конструкциях он также использовался в качестве «аппаратного» счетчика; примером этого является ZX81 , который позволяет отслеживать позиции символов на экране телевизора, вызывая прерывание при циклическом перемещении (путем подключения INT к A6).

Регистр вектора прерывания , I, используется для прерываний режима 2, специфичных для Z80 (выбираемых IM 2 инструкция). Он предоставляет старший байт базового адреса для таблицы из 128 записей адресов служебных программ , которые выбираются с помощью индекса, отправляемого в ЦП во время цикла подтверждения прерывания ; этот индекс представляет собой просто младшую часть указателя на табличный косвенный адрес, указывающий на служебную процедуру. [22] Указатель идентифицирует конкретную периферийную микросхему или периферийную функцию или событие, при этом микросхемы обычно подключаются в так называемую шлейфовую цепь для разрешения приоритета. Как и регистр обновления, этот регистр иногда использовался творчески; в режимах прерываний 0 и 1 (или в системе, не использующей прерывания) его можно использовать просто как еще один 8-битный регистр данных.

Инструкции LD A,R и LD A,I влияют на регистр флагов Z80, в отличие от всех остальных LD (загрузить) инструкции. Флаги «Знак» (бит 7) и «Ноль» (бит 6) устанавливаются в соответствии с данными, загруженными из регистров источника обновления или прерывания. Для обеих инструкций флаг четности/переполнения (бит 2) устанавливается в соответствии с текущим состоянием триггера IFF2. [37]

Микроархитектура

[ редактировать ]

Хотя Z80 обычно считается восьмибитным процессором, он имеет четырехбитный ALU , поэтому вычисления выполняются в два этапа для 8-битных величин и в четыре шага для 16-битных величин (таких как ADD HL,DE, ADC HL). ,ДЭ и др.). [38]

Язык ассемблера Z80

[ редактировать ]

Датапойнт 2200 и Intel 8008

[ редактировать ]

Первый язык ассемблера Intel 8008 был основан на очень простом (но систематическом) синтаксисе, унаследованном от конструкции Datapoint 2200. Этот исходный синтаксис позже был преобразован в новую, несколько более традиционную форму языка ассемблера для того же исходного чипа 8008. Примерно в то же время новый язык ассемблера был также расширен для включения дополнительных режимов адресации в более совершенном чипе Intel 8080 (8008 и 8080 использовали одно языковое подмножество, но не были двоично совместимыми ; однако 8008 был двоично совместим с Datapoint 2200).

В этом процессе мнемоническая L, вместо LOAD , было заменено различными сокращениями слов LOAD , STORE и MOVE , смешанными с другими символическими буквами. Мнемоническое письмо M, для памяти (на которую ссылается HL), был извлечен из мнемоники инструкций и стал синтаксически автономным операндом , в то время как регистры и комбинации регистров стали обозначаться очень непоследовательно; либо с помощью сокращенных операндов (MVI D, LXI H и т. д.), внутри самой мнемоники инструкции (LDA, LHLD и т. д.), либо и тем, и другим одновременно (LDAX B, STAX D и т. д.).

Интел 8008
Датапойнт 2200
Интел 8080
Интел 8085
Зилог Z80 Интел 8086/
Интел 8088
до ок. 1973 год что. 1974 год 1976 1978
LBC MOV B,C LD B,C MOV CH,CL
-- LDAX B LD A,(BC) --
LAM MOV A,M LD A,(HL) MOV AL,[BX]
LBM MOV B,M LD B,(HL) MOV CH,[BX]
-- STAX D LD (DE),A --
LMA MOV M,A LD (HL),A MOV [BX],AL
LMC MOV M,C LD (HL),C MOV [BX],CL
LDI 56 MVI D,56 LD D,56 MOV DL,56
LMI 56 MVI M,56 LD (HL),56 MOV byte ptr [BX],56
-- LDA 1234 LD A,(1234) MOV AL,[1234]
-- STA 1234 LD (1234),A MOV [1234],AL
-- -- LD B,(IX+56) MOV CH,[SI+56]
-- -- LD (IX+56),C MOV [SI+56],CL
-- -- LD (IY+56),78 MOV byte ptr [DI+56],78
-- LXI B,1234 LD BC,1234 MOV CX,1234
-- LXI H,1234 LD HL,1234 MOV BX,1234
-- SHLD 1234 LD (1234),HL MOV [1234],BX
-- LHLD 1234 LD HL,(1234) MOV BX,[1234]
-- -- LD BC,(1234) MOV CX,[1234]
-- -- LD IX,(1234) MOV SI,[1234]

Иллюстрация четырех синтаксисов с использованием образцов эквивалентных или (для 8086) очень похожих инструкций загрузки и сохранения. [39] Синтаксис Z80 использует круглые скобки вокруг выражения, чтобы указать, что значение должно использоваться в качестве адреса памяти (как указано ниже), тогда как синтаксис 8086 использует для этой цели скобки вместо обычных круглых скобок. И Z80, и 8086 используют знак +, чтобы указать, что константа добавляется в базовый регистр для формирования адреса. Обратите внимание, что 8086 не является полной версией Z80. BX — единственная пара регистров 8086, которую можно использовать в качестве указателя.

Новый синтаксис

[ редактировать ]

Поскольку Intel заявила об авторских правах на свою мнемонику сборки, [40] для Z80 пришлось разработать новый синтаксис ассемблера. На этот раз был использован более системный подход:

  • Все регистры и пары регистров явно обозначаются своими полными именами.
  • Круглые скобки постоянно используются для обозначения «содержимого памяти в» (разыменование указателя постоянного адреса или переменной), за исключением одной инструкции перехода JP (HL). JP (XY) — это просто вариант JP (HL), загружающий новый адрес ПК. [м]
  • Все инструкции загрузки и сохранения используют одно и то же мнемоническое имя LD для LOAD (возврат к упрощенному словарю Datapoint 2200); другие общие инструкции, такие как ADD и INC, используют одну и ту же мнемонику независимо от режима адресации или размера операнда. Это возможно, поскольку сами операнды несут достаточно информации.

Эти принципы упростили поиск названий и форм для всех новых инструкций Z80, а также ортогонализаций старых, таких как LD BC,1234.

Помимо различий в именах и несмотря на определенное несоответствие в базовой структуре регистров, синтаксисы Z80 и 8086 практически изоморфны для большой части инструкций. Между языками ассемблера 8080 и 8086 существуют лишь весьма поверхностные сходства (например, слово MOV или буква X для расширенного регистра), хотя программы 8080 могут быть переведены на язык ассемблера 8086 с помощью программ-переводчиков . [42] [43]

Набор инструкций и кодировка

[ редактировать ]

Z80 использует 252 из доступных 256 кодов в виде однобайтовых кодов операций («корневая инструкция», большая часть которой унаследована от 8080); четыре оставшихся кода широко используются в качестве префиксов кодов операций : [44] CB и ED включают дополнительные инструкции, а DD или FD выбирают IX+d или IY+d соответственно (в некоторых случаях без смещения d) вместо HL. Эта схема дает Z80 большое количество перестановок инструкций и регистров; Zilog разделяет их на 158 различных «типов инструкций», 78 из которых такие же, как у Intel 8080. [44] (позволяет работать со всеми программами 8080 на Z80). Документация Зилога [45] дальнейшие инструкции группируются по следующим категориям (большинство из 8080, другие совершенно новые, такие как блочные и битовые инструкции, а также другие инструкции 8080 с более универсальными режимами адресации, такими как 16-битная загрузка, ввод-вывод, вращение/сдвиг и относительные переходы). ):

  • Загрузка и обмен
  • Блокировать передачу и поиск
  • Арифметические и логические
  • Поворот и сдвиг
  • Манипулирование битами (установка, сброс, проверка)
  • Прыгай, звони и возвращайся
  • Ввод/вывод
  • Базовое управление процессором

В оригинальном Z80 нет явных инструкций умножения. [46] хотя регистры A и HL можно умножить на степени двойки с помощью инструкций ADD A,A и ADD HL,HL (аналогично также IX и IY). Инструкции сдвига также могут умножать или делить на степени двойки.

Различные размеры и варианты дополнений, сдвигов и поворотов несколько по-разному влияют на флаги, поскольку большинство свойств изменения флагов 8080 были скопированы. Тем не менее, бит P флага четности 8080 (бит 2) в Z80 называется P/V (четность/переполнение), поскольку он служит дополнительной цели индикатора переполнения двоичного кода, функция, отсутствующая в 8080. Арифметические инструкции на Z80 установил его для обозначения переполнения, а не четности, в то время как побитовые инструкции по-прежнему используют его в качестве флага четности. (Это приводит к тонкой несовместимости Z80 с кодом, написанным для 8080, поскольку Z80 иногда указывает на знаковое переполнение там, где 8080 указывает на четность, что может привести к сбою логики некоторого практического программного обеспечения 8080 на Z80. [н] ) Этот новый флаг переполнения используется для всех новых 16-битных операций, специфичных для Z80 ( ADC, SBC), а также для 8-битных арифметических операций, тогда как 16-битные операции, унаследованные от 8080 ( ADD, INC, DEC) не влияет на это. Кроме того, бит 1 регистра флагов (запасной бит в 8080) используется в качестве флага N, который указывает, была ли последняя выполненная арифметическая инструкция вычитанием или сложением. Версия Z80 DAA Инструкция (десятичный корректирующий аккумулятор для арифметики BCD) проверяет флаг N и ведет себя соответствующим образом, поэтому (гипотетическое) вычитание, за которым позже следует DAA на старом 8080 даст другой результат, чем на Z80. Однако на 8080 это, скорее всего, будет ошибочный код, поскольку DAA был определен для добавления только на этом процессоре.

У Z80 шесть новых LD инструкции, которые могут загружать пары регистров DE, BC и SP из памяти и загружать память из этих трех пар регистров — в отличие от 8080. [39] Как и в 8080, инструкции загрузки не влияют на флаги (за исключением загрузки регистров I и R специального назначения). Результатом обычного кодирования (обычного для 8080) является то, что каждый из 8-битных регистров может быть загружен сам по себе (например, LD A,A). Это эффективно NOP.

Новые команды передачи блоков могут перемещать до 64 килобайт из памяти в память или между памятью и периферийными портами ввода-вывода. Блокировать инструкции LDIR и LDDR ( загрузка ) используйте HL для указания адреса источника, DE для , увеличение / уменьшение , повторение адреса назначения и BC в качестве счетчика байтов. Байты копируются из источника в пункт назначения, указатели увеличиваются или уменьшаются, а счетчик байтов уменьшается до тех пор, пока BC не достигнет нуля. Неповторяющиеся версии LDI и LDD переместите один байт и поднимите указатели и счетчик байтов, который, если он станет нулевым, сбрасывает флаг P/V. Соответствующие инструкции обмена памятью и вводом/выводом INIR, INDR, OTIR, OTDR, INI, IND, OUTI и OUTD работают аналогично, за исключением того, что в качестве счетчика байтов используется B, а не BC. [47] [48] Z80 может вводить и выводить любой регистр в порт ввода-вывода, используя регистр C для обозначения порта. (8080 выполняет ввод-вывод только через аккумулятор A, используя прямой адрес порта, указанный в инструкции; для использования переменного адреса порта 8080 требуется метод самомодифицирующегося кода.)

Последняя группа инструкций блока выполняет CP операция сравнения между байтом (HL) и аккумулятором A. Пара регистров DE не используется. Повторяющиеся версии CPIR и CPDR завершается только в том случае, если BC становится равным нулю или найдено совпадение. HL остается указывающим на байт после ( CPIR) или до ( CPDR) соответствующий байт. Если совпадение не найдено, флаг Z сбрасывается. Есть неповторяющиеся версии CPI и CPD.

В отличие от 8080, Z80 может перейти по относительному адресу ( JR вместо JP) с использованием знакового 8-битного смещения. Для этих новых двухбайтовых символов можно проверять только флаги нуля и переноса. JR инструкции. (Все переходы и вызовы 8080, условные или нет, представляют собой трехбайтовые инструкции.) Двухбайтовая инструкция, предназначенная для выполнения программных циклов, также является новой для Z80: DJNZ ( d decrement jump if n on -zero ) принимает 8-битное смещение со знаком в качестве непосредственного операнда. Регистр B уменьшается, и если результат ненулевой, то выполнение программы переходит относительно ПК; флаги остаются неизменными. Для выполнения эквивалентного цикла на 8080 требуется отдельный DEC инструкции условного перехода (на двухбайтовый абсолютный адрес) (всего четыре байта), а также DEC изменяет регистр флагов.

Инструкции индексного регистра (IX/IY, часто сокращенно XY) могут быть полезны для доступа к данным, организованным в фиксированные гетерогенные структуры (например, записи ) или с фиксированными смещениями относительно переменного базового адреса (как в рекурсивных кадрах стека ), а также могут сократить объем кода. размер за счет устранения необходимости использования нескольких коротких инструкций с использованием неиндексированных регистров. Однако, хотя они могут сэкономить скорость в некоторых контекстах по сравнению с длинными/сложными «эквивалентными» последовательностями более простых операций, они требуют много дополнительного времени ЦП (например, 19 T-состояний для доступа к одной индексированной ячейке памяти по сравнению с всего лишь несколькими 11 для доступа к той же памяти с помощью HL и INC чтобы указать на следующее). Таким образом, для простого или линейного доступа к данным использование IX и IY обычно происходит медленнее и занимает больше памяти. Тем не менее, они могут быть полезны в случаях, когда все «основные» регистры заняты, устраняя необходимость сохранения/восстановления регистров. Их официально недокументированные 8-битные половины (см. ниже) могут быть особенно полезны в этом контексте, поскольку они подвергаются меньшему замедлению, чем их 16-битные родители. Точно так же инструкции для 16-битного сложения не особенно быстры (11 тактов) в исходном Z80 (на 1 такт медленнее, чем в 8080/8085); тем не менее, они примерно в два раза быстрее, чем выполнение тех же вычислений с использованием 8-битных операций, и, что не менее важно, они сокращают использование регистров. Программисты нередко «втыкали» различные байты смещения смещения (которые обычно вычислялись динамически) в индексированные инструкции; это пример самомодифицирующегося кода , который был обычной практикой практически на всех ранних 8-битных процессорах с неконвейерными исполнительными блоками.

Индексные регистры имеют параллельную инструкцию для JP (HL), что JP (XY). Это часто можно увидеть в стек-ориентированных языках, таких как Forth , которые в конце каждого слова Forth (атомарных подпрограмм, составляющих язык) должны безоговорочно возвращаться к своим процедурам интерпретатора потока. Обычно эта инструкция перехода встречается в приложении много сотен раз, и при использовании JP (XY) скорее, чем JP THREAD сохраняет байт и два T-состояния для каждого случая. Это, естественно, делает индексный регистр недоступным для любого другого использования, иначе необходимость постоянной его перезагрузки сведет на нет его эффективность.

10-летняя новая конструкция Z180 с микрокодом изначально могла позволить себе большую «площадь кристалла», что позволяло немного более эффективную реализацию ( с использованием более широкого ALU среди прочего, ); то же самое можно сказать и о Z800 , Z280 и Z380 . Однако только после того, как в 2001 году был запущен полностью конвейерный eZ80 , эти инструкции, наконец, стали примерно настолько эффективными в цикле, насколько это технически возможно, т. е. благодаря кодировкам Z80 в сочетании с возможностью выполнять 8-битное чтение или записывайте каждый такт. [ нужна ссылка ]

Недокументированные инструкции

[ редактировать ]

Индексные регистры IX и IY были задуманы как гибкие 16-битные указатели, расширяющие возможности манипулирования памятью, кадрами стека и структурами данных. Официально они считались только 16-битными. На самом деле они были реализованы как пара 8-битных регистров. [49] таким же образом, как и регистр HL, который доступен либо как 16-битный, либо отдельно как регистры верхнего и нижнего уровня. Двоичные коды операций (машинный язык) были идентичны, но им предшествовал новый префикс кода операции. [50] Zilog опубликовал коды операций и соответствующие мнемоники для предполагаемых функций, но не задокументировал тот факт, что каждый код операции, позволяющий манипулировать регистрами H и L, был одинаково действителен для 8-битных частей регистров IX и IY. Например, код операции 26h, за которым следует непосредственное значение байта. (LD H,n) загрузит это значение в регистр H. Если предшествовать этой двухбайтовой инструкции префиксу кода операции регистра IX, DD, вместо этого старшие 8 бит регистра IX будут загружены тем же значением. Заметным исключением из этого правила могут быть инструкции, подобные LD H,(IX+d) которые используют регистры HL и IX или IY в одной инструкции; [50] в этом случае префикс DD применяется только к части (IX+d) инструкции. Половинки регистров XY также могут содержать операнды для 8-битных арифметических, логических инструкций и инструкций сравнения, оставляя обычные 8-битные регистры для других целей. Недокументированная возможность увеличивать и уменьшать верхнюю половину индексного регистра позволяла легко расширить диапазон обычных индексированных инструкций без необходимости прибегать к документированным ADD/SBC XY,DE или ADD/SBC XY,BC.

Есть также несколько других недокументированных инструкций. [51] Недокументированные или недопустимые коды операций не обнаруживаются Z80 и имеют различные эффекты, некоторые из которых полезны. Однако, поскольку они не являются частью формального определения набора команд, различные реализации Z80 не гарантируют (или не особенно вероятны) работать одинаково для каждого недокументированного кода операции.

The OTDR Инструкция не соответствует документации Z80. Оба OTDR и OTIR инструкции должны оставлять флаг переноса (C) неизмененным. OTIR инструкция работает правильно; однако в ходе исполнения OTDR флаг переноса принимает результаты ложного сравнения между аккумулятором (A) и последним выходом команды. OTDR инструкция. [52]

Пример кода

[ редактировать ]

Следующий исходный код сборки Z80 предназначен для подпрограммы с именем memcpy который копирует блок байтов данных заданного размера из одного места в другое. Важно: код примера не обрабатывает случай, когда целевой блок перекрывает исходный; серьезное ограничение, но оно не имеет значения для некоторых приложений, например, когда источник находится в ПЗУ, а назначение - в ОЗУ, поэтому они никогда не могут перекрываться. Блок данных копируется по одному байту за раз, а логика перемещения данных и цикла использует 16-битные операции. Он демонстрирует множество инструкций, но на практике он не будет закодирован таким образом, поскольку в Z80 есть одна инструкция, которая заменит всю эту подпрограмму: LDIR. Пример кода будет перемещать один байт каждые 46 T-состояний. Подставляя LDIR инструкция переместит каждый байт только в 21 Т-состояние. Обратите внимание, что собранный код двоично совместим с процессорами Intel 8080 и 8085.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 1000
 1000
 1000 F5
 1001 7E
 1002 12
 1003 23
 1004 13
 1005 0B
 1006 78
 1007 B1
 1008 C2 01 10
 100B F1
 100C C9
 100D
 ; memcpy --
 ; Copy a block of memory from one location to another.
 ; This routine is the equivalent of LDIR
 ;
 ; Entry registers
 ; HL - Address of source data block
 ; DE - Address of destination data block
 ; BC - Number of bytes to copy
 ;
 ; Return registers
 ; HL - First byte after source data block
 ; DE - First byte after destination data block
 ; BC - Zero
 ; (LDIR does not fully save AF. H, P/V, and N are reset.)

             org     1000h       ;Origin at 1000h
 memcpy      public
             push    af          ;Save AF like LDIR
 loop        ld      a,(hl)      ;Load source byte
             ld      (de),a      ;save it
             inc     hl          ;Bump source pointer
             inc     de          ;Bump dest pointer
             dec     bc          ;Bump counter
             ld      a,b         ;Test BC for zero
             or      c           ;If BC = 0,
             jp      nz,loop     ;Repeat the loop
             pop     af
             ret
             end

Выполнение инструкций

[ редактировать ]

Каждая инструкция выполняется шагами, которые обычно называются машинными циклами (М-циклами), каждый из которых может занимать от трех до шести тактовых периодов (Т-состояний). [53] Каждый M-цикл примерно соответствует одному обращению к памяти или внутренней операции. Многие инструкции фактически заканчиваются во время M1 следующей инструкции, что известно как перекрытие выборки/выполнения .

Примеры типичных инструкций (R=чтение, W=запись)
Общий

М-циклы

Т-состояния инструкция М1 М2 M3 М4 М5 М6
1 [54] 4 [1] INC B код операции
2 [55] 7 ADD A,n код операции н
3 [56] 11 ADD HL,DE код операции внутренний внутренний
4 [57] 15 SET b,(HL) префикс код операции R(HL), набор Ж(ХЛ)
5 [58] 19 LD (IX+d),n префикс код операции д н, добавь Вт(IX+д)
6 [59] 23 INC (IY+d) префикс код операции д добавлять Р(IY+d),вкл. W(IY+д)

Машинные циклы Z80 упорядочиваются внутренним автоматом , который строит каждый M-цикл из 3, 4, 5 или 6 T-состояний в зависимости от контекста. Это позволяет избежать громоздкой асинхронной логики и обеспечивает стабильное поведение сигналов управления в широком диапазоне тактовых частот. Это также означает, что необходимо использовать кристалл более высокой частоты, чем без такого разделения машинных циклов (примерно в 2–3 раза выше). Это не предполагает более жестких требований к времени доступа к памяти , поскольку тактовая частота с высоким разрешением позволяет более точно контролировать тайминги памяти и, следовательно, память может в большей степени быть активной параллельно с ЦП, что позволяет более эффективно использовать доступную пропускную способность памяти. [ нужна ссылка ]

Одним из центральных примеров этого является то, что для выборки кода операции Z80 объединяет два полных тактовых цикла в период доступа к памяти (сигнал M1). В Z80 этот сигнал длится относительно большую часть типичного времени выполнения инструкции, чем в таких конструкциях, как 6800 , 6502 или аналогичных, где этот период обычно длится 30-40% тактового цикла. [ нужна ссылка ] Благодаря доступности чипов памяти (т. е. времени доступа около 450–250 нс в 1980-х гг.) [ нужна ссылка ] ), как правило, определяющее максимально возможное время доступа, это означало, что такие конструкции были привязаны к значительно более длинному тактовому циклу (т. е. более низкой внутренней тактовой частоте), чем Z80.

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

Содержимое регистра обновления R отправляется в нижнюю половину адресной шины вместе с сигналом управления обновлением, пока ЦП декодирует и выполняет полученную инструкцию. Во время обновления содержимое регистра прерываний I отправляется в верхнюю половину адресной шины. [60]

Совместимая периферия

[ редактировать ]

Zilog представил ряд периферийных компонентов для Z80, все из которых поддерживают систему обработки прерываний Z80 и адресное пространство ввода-вывода. К ним относятся канал счетчика/таймера (CTC), [61] SIO (последовательный ввод/вывод), DMA (прямой доступ к памяти), PIO (параллельный ввод/вывод) и DART (двойной асинхронный приемник-передатчик). По мере развития линейки продуктов были представлены маломощные, высокоскоростные и CMOS- версии этих чипов.

Подобно процессорам 8080, 8085 и 8086, но в отличие от таких процессоров, как Motorola 6800 и MOS Technology 6502, Z80 и 8080 имеют отдельную линию управления и адресное пространство для инструкций ввода-вывода. В то время как некоторые компьютеры на базе Z80, такие как Osborne 1, в стиле Motorola использовали устройства ввода-вывода с отображением памяти , обычно пространство ввода-вывода использовалось для адресации одного из многих периферийных чипов Zilog, совместимых с Z80. Во время синхронизации операций чтения ввода-вывода или записи ввода-вывода Z80 автоматически вставляет один цикл ожидания. [62] Чипы ввода-вывода Zilog поддерживали новый режим прерываний Z80 2, что упрощало обработку прерываний для большого количества периферийных устройств.

Официально Z80 был описан как поддерживающий 16-битную (64 КБ) адресацию памяти и 8-битную (256 портов) адресацию ввода-вывода. Все инструкции ввода-вывода фактически используют всю 16-битную адресную шину. OUT (C),reg и IN reg,(C) помещают содержимое всего 16-битного регистра BC на адресную шину; [52] OUT (n),A и IN A,(n) помещают содержимое регистра A в b8–b15 адресной шины, а n – в b0–b7 адресной шины. Разработчик может выбрать декодирование всей 16-битной адресной шины при операциях ввода-вывода, чтобы воспользоваться этой функцией, или использовать старшую половину адресной шины для выбора подфункций устройства ввода-вывода. Эта функция также использовалась для минимизации требований к аппаратному обеспечению декодирования, например, в Amstrad CPC / PCW и ZX81 .

Вторые источники и производные

[ редактировать ]

Вторые источники

[ редактировать ]

Компания Mostek, которая выпустила первый Z80 для Zilog, предложила его в качестве второго производителя как MK3880. SGS-Thomson (теперь STMicroelectronics ) также была вторым поставщиком со своим Z8400. Sharp и NEC разработали вторые источники для NMOS Z80 — LH0080 и μPD780C соответственно. LH0080 использовался в различных домашних и персональных компьютерах Sharp и других японских производителей, включая компьютеры Sony MSX и ряд компьютеров серии Sharp MZ . [63] Sharp разработала LH0080A и LH0080B для работы на частотах 4 МГц и 6 МГц соответственно. [64] Sharp также разработала LH0083. [65] совместим с Z80 DMA.

Toshiba выпустила версию CMOS TMPZ84C00, которая, как полагают, [ кем? ] (но не проверено), что это та же конструкция, что и Zilog для своей собственной CMOS Z84C00. Также существовали чипы Z8400, Z80 производства GoldStar (теперь LG ) и серия BU18400 клонов Z80 (включая DMA, PIO, CTC, DART и SIO) в NMOS и CMOS производства ROHM Electronics . LH5080, [66] ЛХ5081, [67] и LH5082, [68] которые представляют собой CMOS-версии Z80, PIO и CTC соответственно, производятся Sharp.

В Восточной Германии нелицензионный клон Z80, известный как U880 производился . Он широко использовался в компьютерных системах Robotron и VEB Mikroelektronik Mühlhausen (таких как серия KC85 ), а также во многих самодельных компьютерных системах. В Румынии можно найти еще один нелицензионный клон под названием MMN80CPU , произведенный Microelectronica и используемый в домашних компьютерах, таких как TIM-S, HC, COBRA.

было создано несколько клонов Z80 Кроме того, в Советском Союзе , примечательным из которых является Т34БМ1 , также называемый КР1858ВМ1 (параллельно советскому 8080-клону КР580ВМ80А ). Первая маркировка использовалась в предсерийной серии, а вторую пришлось использовать для более крупного производства. Однако из-за развала советской микроэлектроники в конце 1980-х годов Т34БМ1 стало намного больше, чем КР1858ВМ1. [ нужна ссылка ]

Производные

[ редактировать ]
Совместим с оригинальным Z80.
  • Hitachi разработала HD64180 , частично динамический Z80 с микрокодом и CMOS, со встроенными периферийными устройствами и простым MMU, обеспечивающим адресное пространство размером 1 МБ . Позже он был вторым поставщиком Zilog, сначала как Z64180, а затем в виде слегка модифицированного Zilog Z180. [69] протокол шины и тайминги которого лучше адаптированы к периферийным чипам Z80. Z180 поддерживается и развивается под именем Zilog, новейшие версии основаны на полностью статическом ядре S180/L180 с очень низким энергопотреблением и электромагнитными помехами (шумом).
  • Toshiba разработала 84-контактную серию Z84013/Z84C13 и 100-контактную серию Z84015/Z84C15 «интеллектуальных периферийных контроллеров», в основном обычные ядра NMOS и CMOS Z80 с периферийными устройствами Z80, сторожевым таймером , сбросом при включении питания и генератором состояния ожидания на одном и том же чипе. . Производство Sharp и Toshiba. Эти продукты сегодня являются вторым поставщиком Zilog. [70]
  • 32-битный Z80-совместимый процессор Zilog Z380 , представленный в 1994 году, используется в телекоммуникационном оборудовании. [71]
  • совместимый с Z80, от Zilog Полностью конвейерный eZ80, [72] с длиной слова 8/16/24 бита и линейным адресным пространством 16 МБ был представлен в 2001 году. Он существует в версиях со встроенной SRAM или флэш-памятью , а также со встроенной периферией. Один вариант имеет встроенный контроллер доступа к среде передачи (MAC), а доступное программное обеспечение включает стек TCP/IP . В отличие от Z800 и Z280, здесь добавлено лишь несколько инструкций (в основном загрузка эффективного адреса (LEA), передача эффективного адреса (PEA) и 16/24-битная загрузка с переменным адресом), но вместо этого инструкции выполняются между 2 и в 11 раз эффективнее тактового цикла, чем на оригинальном Z80, при среднем значении примерно в 3-5 раз. В настоящее время указана тактовая частота до 50 МГц.
  • Kawasaki разработала двоично-совместимый KL5C8400, который примерно в 1,2–1,3 раза эффективнее тактового цикла, чем оригинальный Z80, и может работать на тактовой частоте до 33 МГц. Kawasaki также производит семейство KL5C80A1x, которое имеет периферийные устройства, а также небольшую оперативную память на кристалле; он примерно так же эффективен, как и eZ80, и может работать на частоте до 10 МГц (2006 г.). [73]
  • NEC μPD9002 представлял собой гибридный процессор, совместимый с семействами Z80 и x86 .
  • Семейство микросхем аудиопроцессоров китайской Actions Semiconductor (ATJ2085 и другие) содержит Z80-совместимые микроконтроллеры вместе с 24-битным выделенным процессором DSP. [74] Эти чипы используются во многих MP3- и медиаплеерах.
  • Синтезируемые программные ядра T80 (VHDL) и TV80 (Verilog) доступны на OpenCores.org. [75]
  • National Semiconductor NSC800 анонсирован в 1980 году. [76] используется во многих электронных шифровальных машинах TeleSecurity Timmann (TST). [77] и Кэнон Х-07 . NSC800 полностью совместим с набором команд Z-80. [78] NSC800 использует мультиплексированную шину, как и 8085, но имеет другую распиновку, чем Z80. [79]
Несовместимо
  • Серия микроконтроллеров Toshiba TLCS крупных одноразовых программируемых 900 основана на Z80. Они имеют одну и ту же базовую структуру регистров BC, DE, HL, IX, IY и в основном одни и те же инструкции, но не совместимы на двоичном уровне, в то время как предыдущий TLCS 90 совместим с Z80. [80]
  • Микроконтроллеры серии NEC 78K основаны на Z80. Они имеют одну и ту же базовую структуру регистров BC, DE, HL и имеют схожие, но по-разному названные инструкции; не двоично совместим.
Частично совместим
Больше не производится
  • ASCII Corporation R800 — быстрый 16-битный процессор, используемый в MSX TurboR компьютерах ; он был программно, но не аппаратно совместим с Z80 (синхронизация сигнала, распиновка и функции контактов отличаются от Z80).
  • NMOS Z800 и CMOS Z280 от Zilog представляли собой 16-битные реализации Z80 (до HD64180/Z180) с страничным адресным пространством MMU размером 16 МБ; они добавили в набор инструкций Z80 множество режимов ортогонализации и адресации. Функции миникомпьютера, такие как пользовательский и системный режимы, поддержка мультипроцессора, встроенный MMU, встроенный кэш инструкций и данных и т. д., рассматривались скорее как более сложные, чем как функциональность и поддержка для разработчиков встраиваемых систем (обычно ориентированных на электронику). ; это также затрудняло прогнозирование времени выполнения инструкций. [ нужна ссылка ]
  • В некоторых аркадных играх , таких как Pang / Buster Bros. , используется зашифрованный процессор Kabuki Z80 производства VLSI Technology , где ключи дешифрования хранятся во внутренней памяти с батарейным питанием , чтобы избежать пиратства и незаконных контрафактных игр. [83]

Известные применения

[ редактировать ]

Настольные компьютеры

[ редактировать ]
Z80A использовался в качестве процессора в ряде игровых консолей, таких как ColecoVision .

В конце 1970-х и начале 1980-х годов Z80 использовался в большом количестве довольно анонимных бизнес-ориентированных машин с операционной системой CP/M — комбинации, которая доминировала на рынке в то время. [84] [85] Четыре хорошо известных примера бизнес-компьютеров Z80, работающих под управлением CP/M, — это Heathkit H89 , портативный Osborne 1 , серия Kaypro и Epson QX-10 . Менее известной была дорогая высококлассная модель Otrona Attache. [86] В некоторых системах использовалось многозадачное программное обеспечение операционной системы (например, MP/M или Micronix компании Morrow ), позволяющее совместно использовать один процессор нескольким одновременно работающим пользователям .

Sinclair , ZX Spectrum в котором используется Z80 с тактовой частотой 3,5 МГц.

Было представлено несколько домашних компьютеров, которые использовали Z80 в качестве основного процессора или в качестве подключаемого модуля, обеспечивающего доступ к программному обеспечению, написанному для Z80. Примечательны серии TRS-80 , включая оригинальную модель (позже названную «Модель I»), Модель II , Модель III и Модель 4 , которые были оснащены Z80 в качестве основного процессора, а также некоторые (но не все) другие. Модели TRS-80, в которых Z80 использовался в качестве основного или дополнительного процессора. Другими известными машинами были DEC Rainbow 100 и Seequa Chameleon , обе из которых имели процессор Intel 8088 и Z80 и поддерживали либо 8-битные приложения CP/M-80, работающие на Z80, либо специальную MS-DOS. это не было полностью совместимо с приложениями DOS для ПК, работающими на 8088.

В 1981 году компания Multitech (позже ставшая Acer ) представила Microprofessor I , простую и недорогую систему обучения для микропроцессора Z80. В настоящее время он по-прежнему производится и продается компанией Flite Electronics International Limited в Саутгемптоне, Англия .

В 1984 году Toshiba представила Toshiba MSX HX-10 в Японии и Австралии.

В 1985 году Sharp представила Hotbit , а Gradiente представила Expert стали доминирующими 8-битными домашними компьютерами в Бразилии , которые до конца 1980-х годов .

Портативные и карманные компьютеры

[ редактировать ]

Использование Z80 в более легких устройствах с батарейным питанием стало более распространенным с появлением CMOS-версий процессора. Это также вдохновило на разработку других процессоров на базе КМОП, таких как LH5801. [87] от Шарпа. Sharp PC-1500 , языке BASIC, программируемый на карманный компьютер, был выпущен в 1981 году, за ним последовали улучшенный Sharp PC-1600 в 1986 году и Sharp PC-E220 в 1991 году. Более поздние модели персональных органайзеров Sharp Wizard также были основаны на Z80. . Ноутбуки , которые могли работать под управлением операционной системы CP/M, как и настольные машины, последовали за Epson PX-8 Женева в 1984 году, а в 1985 году - Epson PX-4 и Bondwell-2 . В то время как рынок ноутбуков в последующие годы перешел на более мощные процессоры Intel 8086 и операционную систему MS-DOS, все еще появлялись легкие системы на базе Z80 с более длительным временем автономной работы, такие как Cambridge Z88 в 1988 году и Amstrad NC100. , производный от Z80, в 1992 году. Z8S180 также нашел применение в одном из первых с перьевым управлением персональных цифровых помощников Amstrad PenPad PDA600 в 1993 году. Гонконгская компания VTech выпустила линейку небольших портативных компьютеров под названием «Lasers» на базе Z80. [88] [89] Последние два были Laser PC5. [90] и ПК6. [91] Cidco MailStation Mivo 100, впервые выпущенная в 1999 году, представляла собой автономное портативное устройство электронной почты с микроконтроллером на базе Z80. [92] Texas Instruments выпустила линейку карманных органайзеров (завершившаяся в 2000 году) с использованием процессоров Toshiba, построенных на ядре Z80; первым из них был TI PS-6200 [93] и после длительного производства нескольких десятков моделей кульминацией стала серия PocketMate. [94]

Встраиваемые системы и бытовая электроника

[ редактировать ]
на базе Z80 АТС . Z80 находится справа от чипа с рукописной белой этикеткой.

Zilog Z80 уже давно стал популярным микропроцессором во встраиваемых системах и микроконтроллеров . ядрах [36] где он широко используется и сегодня. [26] [95] Область применения Z80 включает использование в бытовой электронике , промышленной продукции и электронных музыкальных инструментах. Например, Z80 использовался в новаторском музыкальном синтезаторе Prophet-5 . [96] а также в первом MIDI-синтезаторе Prophet 600 . [97] Casio использовала Z80A в своей PV-1000 игровой консоли .

Многие аркадные видеоигры начала 1980-х годов, включая аркадную игру Pac-Man , содержат процессоры Z80.

Z80 использовался в консолях Sega Master System и Game Gear . Sega Genesis содержит Z80 с собственной 8 КБ оперативной памяти, которая работает параллельно с основным процессором MC68000, имеет прямой доступ к звуковым чипам системы и портам ввода-вывода (контроллера), а также имеет коммутируемый путь данных к шина основной памяти 68000 (обеспечивающая доступ к основной оперативной памяти объемом 64 КБ, картриджу с программным обеспечением и всему видеочипу); Помимо обеспечения обратной совместимости с играми Master System, Z80 часто используется для управления и воспроизведения звука в программном обеспечении Genesis. [the]

Процессоры Z80 также использовались в новаторской и популярной серии графических калькуляторов TI-8x от Texas Instruments , начиная с 1990 года с TI-81 , который оснащен процессором Z80 с тактовой частотой 2 МГц. Большинство калькуляторов этой серии более высокого класса, начиная с TI-82 и TI-85 , тактируют свои процессоры Z80 на частоте 6 МГц или выше. (Некоторые модели с названиями TI-8x используют другие процессоры, такие как M68000, но подавляющее большинство основаны на Z80. На них можно запускать собранные или скомпилированные пользовательские программы в форме кода машинного языка Z80. Серия TI-84 Plus , представленная в 2004 году, все еще находится в производстве по состоянию на 2023 год . Серия TI-84 Plus CE на базе Z80 , представленная в 2015 году, использует процессор Zilog eZ80 и также все еще находится в производстве по состоянию на 2024 год.

В конце 1980-х годов в серии советских стационарных телефонов под названием «АОН» был представлен Z80; Эти телефоны расширили набор функций стационарной линии с помощью идентификатора вызывающего абонента , различных мелодий звонка в зависимости от звонящего, быстрого набора и т. д. [98] Однако во второй половине 1990-х годов производители этих телефонов перешли на 8051-совместимые микроконтроллеры, чтобы снизить энергопотребление и предотвратить перегрев компактных настенных адаптеров питания.

Прекращение производства

[ редактировать ]

15 апреля 2024 года Zilog объявила о прекращении производства процессора Z80, заказы принимаются до 14 июня 2024 года. Анонс включал 13 вариантов процессора Z80, многие из которых представляют собой DIP40 варианты чипа . Zilog продолжит производство обновленной eZ80 . версии процессора [99]

См. также

[ редактировать ]
  1. ^ Только в CMOS, National не выпустила версию NMOS, согласно устной истории с Федерико Фаггином.
  2. ^ Варианты CMOS выросли до 20 МГц, а двоично-совместимые производные - до 50 МГц.
  3. ^ Обратная совместимость с Intel 8080.
  4. ^ Zilog включил в компоновку чипа несколько «ловушек», чтобы попытаться задержать это копирование. По словам Феггина, инженер NEC позже рассказал ему, что им потребовалось несколько месяцев работы, прежде чем они смогли заставить свой μPD780 работать.
  5. ^ Это была довольно распространенная особенность конструкций миникомпьютеров того времени, и она нашла свое отражение во многих ранних микропроцессорах.
  6. ^ Zilog производила Z80, а также большую часть другой своей продукции в течение многих лет, пока не продала свои производственные предприятия и не стала компанией « без басен », которой является сегодня.
  7. ^ Хотя 8080 имел 16-битные инструкции сложения и 16-битные инструкции увеличения и уменьшения , у него не было явного 16-битного вычитания и флага переполнения. Z80 дополнил это инструкциями ADC HL,rr и SBC HL,rr, которые соответственно устанавливают новый флаг переполнения. (Совместимый с 8080 ADD HL,rr этого не делает.)
  8. ^ В частности, для одновременной обработки 32-битных мантисс двух операндов в 40-битном формате с плавающей запятой, используемом в домашних компьютерах Sinclair . Они также использовались аналогичным образом в некоторых более ранних, но менее известных компьютерах на базе Z80, таких как шведские ABC 80 и ABC 800 .
  9. ^ Поскольку это обновление не требует передачи каких-либо данных, а просто выводит последовательные адреса строк, оно занимает менее 1,5 T-состояний. Выделенный сигнал M1 ( первый машинный цикл ) в Z80 может использоваться для того, чтобы предоставить микросхемам памяти такое же время доступа для выборки команд, как и для доступа к данным, т.е. почти два полных Т-состояния из цикла выборки 4Т (а также как вне цикла чтения данных 3T ). Z80 мог использовать память с тем же диапазоном времени доступа, что и 8080 (или 8086), на той же тактовой частоте. Этот длинный сигнал M1 (относительно тактовой частоты) также означал, что Z80 мог использовать внутреннюю частоту примерно в 4–5 раз большую, чем 6800, 6502 или аналогичные, используя тот же тип памяти.
  10. ^ В отличие от исходной версии nMOS, в которой использовались динамические защелки и которую нельзя было остановить более чем на несколько тысяч тактов.
  11. ^ Родственное семейство 8086 также унаследовало этот дизайн регистра.
  12. ^ Этот указатель переменной HL был фактически единственным способом доступа к памяти (для данных) в Datapoint 2200, а следовательно, и в Intel 8008. Для доступа к данным нельзя было использовать прямые адреса.
  13. ^ Прыжок ( JP) инструкции, которые загружают счетчик программ новым адресом инструкции, сами по себе не обращаются к памяти. Абсолютная и относительная формы перехода отражают это, опуская круглые скобки в своих операндах. Инструкции перехода на основе регистров, такие как " JP (HL)" включите круглые скобки в явное отклонение от этого соглашения. [41]
  14. ^ Например, на 8080 программист может проверить четность байта, ADDприравнивая к этому ноль, SUBизвлекая из него ноль, или ORили XORзапишем его нулем; все это операции с одной командой одинаковой скорости и размера как на 8080, так и на Z80. Если программист решил проверить четность с помощью ORили XORс нулем, то Z80 выполнит программу правильно, но если программист решил проверить четность, ADDили SUBизвлекая ноль, тогда Z80 всегда будет сбрасывать флаг P/V на ноль (поскольку добавление или вычитание нуля никогда не приводит к переполнению или опустошению) вместо назначения P для правильного указания четности байта (как это было бы в 8080 или 8085). ), и программа может выйти из строя. Ничто в руководствах Intel по программированию или другой документации для 8080 не препятствует использованию арифметических инструкций или не предписывает использование логических инструкций для проверки четности, поэтому нет никаких оснований ожидать, что программист 8080, применяющий рекомендуемую хорошую практику программирования, выберет один из способы, которые будут работать на Z80, вместо одного из способов, которые не будут работать.
  15. ^ Это распространенное, но необязательное и не ограничивающее использование приводит к частому, но неверному описанию Z80 в Genesis как «звукового процессора».
  1. ^ Перейти обратно: а б с Зилог (2005). Руководство пользователя процессора семейства Z80 (PDF) . Зилог. п. 5. Архивировано (PDF) из оригинала 19 июня 2009 г. Проверено 18 июля 2009 г.
  2. ^ Перейти обратно: а б Фаггин, Шима и Унгерманн, 2007 .
  3. ^ Перейти обратно: а б Фаггин, Шима и Унгерманн 2007 , с. 1.
  4. ^ Перейти обратно: а б Фаггин, Шима и Унгерманн 2007 , с. 2.
  5. ^ Перейти обратно: а б с Фаггин, Шима и Унгерманн 2007 , с. 3.
  6. ^ Перейти обратно: а б с Фаггин, Шима и Унгерманн 2007 , с. 4.
  7. ^ Фаггин, Шима и Унгерманн 2007 , с. 8.
  8. ^ Перейти обратно: а б Фаггин, Шима и Унгерманн 2007 , с. 5.
  9. ^ Фаггин, Шима и Унгерманн 2007 , с. 19.
  10. ^ Фаггин, Шима и Унгерманн 2007 , с. 6.
  11. ^ Фаггин, Шима и Унгерманн 2007 , с. 7.
  12. ^ Фаггин, Шима и Унгерманн 2007 , с. 17.
  13. ^ «Контроллер прямого доступа к памяти Z80® DMA» (PDF) . Архивировано (PDF) оригинала 5 февраля 2024 г. Проверено 8 января 2024 г.
  14. ^ Андерсон (1994) , с. 51.
  15. ^ Фаггин, Шима и Унгерманн 2007 , с. 13.
  16. ^ Фаггин, Шима и Унгерманн 2007 , с. 9.
  17. ^ Андерсон (1994) , с. 57.
  18. ^ Перейти обратно: а б Брок, Джеральд В. (2003). Вторая информационная революция . Издательство Гарвардского университета. ISBN  978-0-674-01178-6 .
  19. ^ «История 8-бит: путешествие далеко за короткое время» . Инфомир . Том. 4, нет. 47. Пало-Альто, Калифорния: Popular Computing Inc., 29 ноября 1982 г., стр. 58–60. ISSN   0199-6649 . Архивировано из оригинала 5 января 2024 года.
  20. ^ Фаггин, Федерико; Сима, Масатоши ; Унгерманн, Ральф (19 августа 1976 г.). «Набор микросхем Z-80 знаменует третье поколение микропроцессоров» (PDF) . Электроника . Том. 49, нет. 17. Нью-Йорк: МакГроу-Хилл . стр. 89–93. Архивировано (PDF) из оригинала 31 января 2023 г.
  21. ^ Чиарсия (1981) , стр. 31, 32.
  22. ^ Перейти обратно: а б Чен, Вай-Кай (2002). Справочник по схемам и фильтрам . ЦРК Пресс . п. 1943. ISBN  978-0-8493-0912-0 . обработка прерывания начинается в соответствии с методом прерывания, предусмотренным инструкцией IM i , i = 0, 1 или 2. Если i = 1, для прямого метода на ПК загружается 0038H. Если i = 0, для векторного метода прерывающее устройство имеет возможность разместить код операции на один байт. Если i = 2, для косвенного векторного метода прерывающее устройство должно затем поместить байт. Затем Z80 использует этот байт, где с помощью этого байта может быть выбран один из 128 векторов прерывания.
  23. ^ Матур (1989). Введение в микропроцессоры . Издательская компания Тата МакГроу-Хилл. п. 111. ИСБН  978-0-07-460222-5 . Архитектура регистров Z80 более инновационная, чем у 8085.
  24. ^ Брюэр, Тони. «Специальный сброс Z80» . Архивировано из оригинала 27 апреля 2024 года . Проверено 27 апреля 2024 г.
  25. ^ Адриан, Андре (4 июня 2011 г.). «Z80, 8-битный процессор чисел» . Архивировано из оригинала 26 ноября 2023 года.
  26. ^ Перейти обратно: а б Балч, Марк (18 июня 2003 г.). «Основы цифровых технологий». Полное цифровое проектирование: полное руководство по цифровой электронике и архитектуре компьютерных систем . Профессиональная инженерия. Нью-Йорк, Нью-Йорк : McGraw-Hill Professional . п. 122. ИСБН  0-07-140927-0 .
  27. ^ Отчет Сейболда о профессиональных компьютерах . Публикации Сейболда. 1983. В 8-битном мире двумя наиболее популярными микрокомпьютерами являются компьютерные чипы Z80 и 6502.
  28. ^ Адриан, Андре (4 июня 2011 г.). «Z80, 8-битный процессор чисел: 32-битное (длинное) добавление Z80» . Архивировано из оригинала 26 ноября 2023 года.
  29. ^ Популярные вычисления . МакГроу-Хилл . 1983. с. 15.
  30. ^ Маркофф, Джон (18 октября 1982 г.). «Быстрый Z80 от Zilog обеспечивает производительность от 8 до 16 бит» . Инфомир . Том. 4, нет. 41. Пало-Альто, Калифорния: Popular Computing, Inc. 1. ISSN   0199-6649 . Архивировано из оригинала 5 января 2024 года.
  31. ^ Электронный дизайн . Хейден. 1988. с. 142. Помимо поддержки всего набора команд Z80, Z180
  32. ^ Ганссл, Джек Г. (1992). «Z80 жив!» . Архивировано из оригинала 20 декабря 2023 года. Дизайнеры выбрали архитектуру, совместимую с Z80, что дает пользователям Z80 возможность обновления, полностью совместимого с программным обеспечением. Процессор 64180 выполняет каждую инструкцию Z80 точно так же, как это делает Z80.
  33. ^ Шириф, Кен. «Вплоть до кремния: как реализованы регистры Z80» . Архивировано из оригинала 5 ноября 2023 года.
  34. ^ Килобод . 1001001. 1977. с. 22.
  35. ^ Zaks, Rodnay (1982). Programming the Z80 (3rd ed.). SYBEX. p. 62. ISBN  978-0-89588-069-7 .
  36. ^ Перейти обратно: а б Хит, Стив (2003). Проектирование встраиваемых систем . Оксфорд: Ньюнс. п. 21. ISBN  978-0-7506-5546-0 .
  37. ^ Райсон, Марк. Янг, Шон (ред.). «Привязанность к флагу Z80» . z80.info . Томас Шеррер. Архивировано из оригинала 23 декабря 2023 года . Проверено 14 июня 2016 г.
  38. ^ Ширрифф, Кен. «У Z-80 4-битное АЛУ. Вот как оно работает» . Архивировано из оригинала 9 сентября 2013 года . Проверено 16 ноября 2021 г.
  39. ^ Перейти обратно: а б Дурда IV, Фрэнк (2012). «Набор инструкций 8080/Z80» . Архивировано из оригинала 11 февраля 2016 года . Проверено 22 июля 2009 г.
  40. ^ «8080A/8-битный N-канальный микропроцессор». Каталог данных компонентов Intel, 1978 год . Санта-Клара, Калифорния: Корпорация Intel. 1978. стр. 11–17. Все мнемоники принадлежат корпорации Intel Corporation, 1977 г.
  41. ^ «Руководство пользователя по перемещению макросов Z80» (PDF) . п. Б–2. Архивировано из оригинала (PDF) 20 июля 2011 года . Проверено 4 июня 2009 г.
  42. ^ Скэнлон, Лео Дж. (1988). Язык ассемблера 8086/8088/80286 . Книги Брейди . п. 12 . ISBN  978-0-13-246919-7 . [...] 8086 программно совместим с 8080 на уровне ассемблера. [...]
  43. ^ Нельсон, Росс П. (январь 1989 г.) [1988]. Книга 80386: Руководство программиста на ассемблере для 80386 . Серия программ Microsoft (1-е изд.). Майкрософт Пресс . п. 2. ISBN  978-1-55615-138-5 . [...] Программа-переводчик Intel могла конвертировать 8080 программы на ассемблере в программы на ассемблере 8086 [...]
  44. ^ Перейти обратно: а б «Введение в процессор Z80» . Зилог . 1995. Архивировано из оригинала 20 декабря 2023 года. Он имеет язык с 252 корневыми инструкциями и с зарезервированными 4 байтами в качестве префиксов обеспечивает доступ к дополнительным 308 инструкциям.
  45. ^ «Набор инструкций Z80-CPU» (PDF) . Зилог . 1976. с. 19. Архивировано из оригинала 5 ноября 2023 года . Проверено 20 июля 2021 г.
  46. ^ Санчес, Хулио; Кантон, Мария П. (2008). Программные решения для инженеров и ученых . Тейлор и Фрэнсис. п. 65. ИСБН  978-1-4200-4302-0 . 8-битные микропроцессоры, предшествовавшие семейству 80x86 (такие как Intel 8080, Zilog Z80 и Motorola), не поддерживали умножение.
  47. ^ Чиарсия (1981) , с. 86.
  48. ^ ХЕЙС, ДЖОН П. (1978). Компьютерная архитектура и организация . п. 423. ИСБН  0-07-027363-4 .
  49. ^ Фрелих, Роберт А. (1984). Каталог и каталог бесплатного программного обеспечения . Издательство Корона. п. 133. ИСБН  978-0-517-55448-7 . Недокументированные коды Z80 допускают 8-битные операции с регистрами IX и IY.
  50. ^ Перейти обратно: а б Бот, Джакко Дж.Т. «Недокументированные инструкции для Z80» . Дом процессора Z80 . Архивировано из оригинала 23 декабря 2023 года. Если код операции работает с регистрами HL, H или L, то, если этому коду операции предшествует #DD (или #FD), он работает с IX, IXH или IXL (или IY, IYH, IYL), за некоторыми исключениями. Исключением являются такие инструкции, как LD H,IXH и LD L,IYH.
  51. ^ Робин Никсон. Расширенное руководство пользователя Amstrad Notepad , Робин Никсон, 1993, ISBN   1-85058-515-6 , страницы 219–223.
  52. ^ Перейти обратно: а б Янг, Шон (октябрь 1998 г.). «Недокументированные функции Z80 (в поведении программного обеспечения)» . Архивировано из оригинала 25 декабря 2023 года. Инструкции ввода-вывода используют всю адресную шину, а не только младшие 8 бит. Фактически в системе Z80 может быть 65536 портов ввода-вывода (это используется в Spectrum). IN r,(C), OUT (C),r и все инструкции блока ввода-вывода помещают весь BC на адресную шину. IN A,(n) и OUT (n),A помещают A*256+n на адресную шину.
  53. ^ «Время». Руководство пользователя процессора семейства Z80 (PDF) . Зилог . 2016. с. 7. УМ008011-0816. Архивировано (PDF) из оригинала 26 декабря 2023 г. Проверено 5 января 2024 г.
  54. ^ Чиарсия (1981) , с. 65.
  55. ^ Zaks, Rodnay (1989). Programming the Z80 . Sybex. p. 200. ISBN  978-0-89588-069-7 . ADD A, n Добавить аккумулятор с непосредственными данными n. ПАМЯТЬ Тайминг: 2 млн циклов; 7 Т-состояний.
  56. ^ Чиарсия (1981) , с. 63.
  57. ^ Чиарсия (1981) , с. 77.
  58. ^ Чиарсия (1981) , с. 36.
  59. ^ Чиарсия (1981) , с. 58.
  60. ^ «Регистры специального назначения». Руководство пользователя процессора семейства Z80 (PDF) . Зилог . 2016. с. 3. УМ008011-0816. Архивировано (PDF) из оригинала 26 декабря 2023 г. Проверено 5 января 2024 г.
  61. ^ «Руководство пользователя периферийных устройств ЦП семейства Z80» (PDF) . Технический паспорт ЭМИРА . ЗиЛОГ. 2001. Архивировано из оригинала (PDF) 2 мая 2014 года . Проверено 30 апреля 2014 г.
  62. ^ «Справочник данных по полупроводникам Sharp за 1986 год» (PDF) . п. 218. Архивировано (PDF) из оригинала 1 января 2024 года . Проверено 1 января 2024 г.
  63. ^ «Обзор серии SHARP MZ» . SharpMZ.org . Архивировано из оригинала 27 марта 2008 года . Проверено 28 июля 2011 г. Большинство MZ используют 8-битный процессор LH0080/Z80 [...]
  64. ^ «LH0080/LH0080A/LH0080B». Справочник полупроводников 1986 г. (PDF) . Корпорация Шарп . 1986. с. 210. Архивировано (PDF) из оригинала 1 января 2024 года . Проверено 1 января 2024 г.
  65. ^ «Справочник данных по полупроводникам Sharp за 1986 год» (PDF) . стр. 255–269. Архивировано (PDF) из оригинала 20 января 2024 г. Проверено 13 января 2024 г.
  66. ^ «Справочник данных по полупроводникам Sharp за 1986 год» (PDF) . стр. 296–301. Архивировано (PDF) из оригинала 20 января 2024 г. Проверено 20 января 2024 г.
  67. ^ «Справочник данных по полупроводникам Sharp за 1986 год» (PDF) . стр. 302–306. Архивировано (PDF) из оригинала 28 января 2024 г. Проверено 28 января 2024 г.
  68. ^ «Справочник данных по полупроводникам Sharp за 1986 год» (PDF) . стр. 307–311. Архивировано (PDF) из оригинала 28 января 2024 г. Проверено 28 января 2024 г.
  69. ^ Ганссл, Джек Г. (1992). «Z80 жив!» . Архивировано из оригинала 1 мая 2009 года . Проверено 17 июля 2009 г. 64180 — это ядро ​​Z80, поставляемое Hitachi, с многочисленными встроенными «дополнениями». Версия Zilog — Z180, которая по сути является той же деталью.
  70. ^ Ганссл, Джек Г. (1992). «Z80 жив!» . Архивировано из оригинала 1 мая 2009 года . Проверено 17 июля 2009 г. И Toshiba, и Zilog продают модели 84013 и 84015, которые представляют собой процессоры Z80 с обычными встроенными периферийными устройствами Z80.
  71. ^ Гранвилл, Фрэн (1 августа 1996 г.). «EDN Access — 08.01.96 Z80 исполняется 20 лет» . ЭДН . Архивировано из оригинала 7 августа 2023 года . Проверено 7 августа 2023 г.
  72. ^ «Семейство продуктов EZ80 ACCLAIM» . Зилог. Архивировано из оригинала 20 декабря 2008 года.
  73. ^ Электронный бизнес Азии . Канерс Азия Лимитед. 1997. с. 5. KL5C80A12, KL5C80A16 и KL5C8400 от Kawasaki — это высокоскоростные 8-битные микроконтроллеры и процессоры. Код их процессора KC80 совместим с Z80 от Zilog на двоичном уровне. KC80 выполняет инструкции примерно в четыре раза быстрее, чем Z80 при той же тактовой частоте.
  74. ^ «Характеристики оборудования» . S1mp3.org . 19 октября 2005 г. Архивировано из оригинала 8 декабря 2005 г.
  75. ^ «Обзор :: Процессор T80 :: OpenCores» . opencores.org . Архивировано из оригинала 1 апреля 2024 года . Проверено 1 июля 2024 г.
  76. ^ Рада, полковник (март 1981 г.). «NSC800 — семейство маломощных высокопроизводительных микропроцессоров» . Электроника и энергетика . 27 (3). Инженерно-технологический институт : 222. doi : 10.1049/ep.1981.0107 . Архивировано из оригинала 16 октября 2021 года . Проверено 1 июня 2021 г.
  77. ^ «TST-4043: Шифратор данных с HF-модемом и FEC» . Крипто-музей . 27 февраля 2018 г. Архивировано из оригинала 5 ноября 2023 г.
  78. ^ «Высокопроизводительный маломощный КМОП-микропроцессор NSC800» (PDF) . Национальный полупроводник . Июнь 1992 г. Архивировано (PDF) из оригинала 19 ноября 2023 г.
  79. ^ «MCS-85, Zilog Z80 и платы расширения National NSC800» . ЦП Хижина . 15 февраля 2015 г. Архивировано из оригинала 30 сентября 2023 г.
  80. ^ «Раздел 6 Тенденции рынка MOS MPU, MCU и периферийных устройств» (PDF) . Корпорация по разработке интегральных схем. п. 16. Архивировано из оригинала (PDF) 14 июня 2011 года.
  81. ^ Аксельсон, Ян (2003). Встроенный Ethernet и Интернет в комплекте . Исследование Лейквью. п. 93. ИСБН  978-1-931448-00-0 . Микропроцессор Rabbit 3000 компании Rabbit Semiconductor, который является значительно улучшенной и улучшенной производной почтенного микропроцессора Z80 компании ZiLOG, Inc.
  82. ^ Хайдер, Камаль; Перрин, Боб (2004). Проектирование встраиваемых систем с использованием микропроцессора Rabbit 3000 . Ньюнес. п. 32. ISBN  978-0-7506-7872-8 . Части Rabbit тесно связаны с архитектурой Zilog Z180, хотя они не бинарно совместимы с частями Zilog.
  83. ^ Круз, Эдуардо (23 ноября 2014 г.). «ЦП Capcom Kabuki – Введение» . Аркадный хакер . Архивировано из оригинала 5 ноября 2023 года.
  84. ^ Хольц, Герман (1985). Компьютерные рабочие места . Чепмен и Холл. п. 223. ИСБН  978-0-412-00491-9 . и CP/M продолжали доминировать в мире 8-битных микрокомпьютеров.
  85. ^ Дворжак, Джон К. (10 мая 1982 г.). «После CP/M объектно-ориентированные операционные системы могут стать лидерами в этой области» . Инфомир . Том. 4, нет. 18. Медиа-группа InfoWorld. п. 20. ISSN   0199-6649 . Архивировано из оригинала 6 января 2024 года. Идея универсальной операционной системы все еще находится в зачаточном состоянии. Во многих отношениях все началось с CP/M и смеси ранних компьютеров 8080 и Z80.
  86. ^ Стенгель, Стивен. «Отрона Атташе» . Музей старых компьютеров Стива . Архивировано из оригинала 27 декабря 2023 года . Проверено 5 марта 2019 г.
  87. ^ «Техническое справочное руководство Sharp PC-1500» (PDF) . Архивировано (PDF) из оригинала 5 ноября 2023 г.
  88. ^ «Ноутбук бедняка» . Гугл Книги . Популярная механика, апрель 1991 г., стр. 120. Апрель 1991 г. Проверено 11 апреля 2018 г.
  89. ^ «Лазер ПК4» . Музей старого компьютера . Архивировано из оригинала 5 ноября 2023 года . Проверено 11 апреля 2018 г.
  90. ^ «Лазер PC5 от VTech» . larwe.com . Архивировано из оригинала 5 ноября 2023 года . Проверено 11 апреля 2018 г.
  91. ^ «Лазер ПК6» . Perfect Solutions точка com . Идеальные решения. Архивировано из оригинала 21 мая 2018 года . Проверено 11 апреля 2018 г.
  92. ^ «Развитие Почтовой станции» . Файбертех.нет . Архивировано из оригинала 6 января 2024 года . Проверено 18 апреля 2021 г.
  93. ^ Вернер, Йорг. «Техас Инструментс ПС-6200» . Музей датаматических калькуляторов . Архивировано из оригинала 5 ноября 2023 года . Проверено 18 июня 2019 г.
  94. ^ Вернер, Йорг. «Техасские инструменты PocketMate 100» . Музей датаматических калькуляторов . Архивировано из оригинала 5 ноября 2023 года . Проверено 18 июня 2019 г.
  95. ^ Ян Р. Синклер (2000). Практический справочник по электронике (5-е изд.). Оксфорд, Англетер: Ньюнес. п. 204. ИСБН  978-0-7506-4585-0 . LCCN   00502236 . ОСЛК   42701044 .
  96. ^ «Винтажные синтезаторы Гордона Рида - последовательные схемы Prophet 5 и Prophet 10» . gordonreid.co.uk . 1999. Архивировано из оригинала 5 ноября 2023 года.
  97. ^ Фабио, Адам (19 марта 2014 г.). «Prophet 600: классический синтезатор получает обновление процессора» . Архивировано из оригинала 5 ноября 2023 года.
  98. ^ "Делаем демо для старого телефона — AONDEMO" . хабр.com . 29 января 2020 г. Архивировано из оригинала 5 ноября 2023 г.
  99. ^ Эдвардс, Бендж (22 апреля 2024 г.). «Спустя 48 лет Zilog убивает классический автономный микропроцессор Z80» . Арс Техника . Архивировано из оригинала 12 мая 2024 года . Проверено 23 мая 2024 г.

Источники

Дальнейшее чтение

[ редактировать ]
Таблицы данных и руководства
Книги по аппаратному обеспечению
Книги по программному обеспечению
  • Programming the Z80 ; 3rd Ed; Rodnay Zaks; Sybex; 630 pages; 1980; ISBN   978-0895880949 . (архив)
  • Z80 Программирование на языке ассемблера ; 1-е изд; Лэнс Левенталь; Осборн/МакГроу-Хилл; 642 страницы; 1979 год; ISBN   978-0931988219 . (архив)
  • Язык ассемблера 8080/Z80 – методы улучшения программирования ; 1-е изд; Алан Миллер; Джон Уайли и сыновья; 332 страницы; 1981 год; ISBN   978-0471081241 . (архив)
  • Программирование на языке ассемблера Z80 и 8080 ; 1-е изд; Кэт Спраклен; Хайден; 180 страниц; 1979 год; ISBN   978-0810451674 . (архив)
  • Практическое программирование микрокомпьютера — Z80 — включая исходный код для резидентного ассемблера и монитора отладки ; 1-е изд; Уолтер Веллер; Северные технологии; 501 страница; 1978 год; ISBN   978-0930594053 . (архив)
  • Подпрограммы языка ассемблера Z80 ; 1-е изд; Лэнс Левенталь и Уинтроп Сэвилл; Осборн/МакГроу-Хилл; 512 страниц; 1983 год; ISBN   978-0931988912 . (архив)
  • Недокументированное Z80 Документированное ; Шон Янг; v0.91; 52 страницы; 2005. (архив)
Справочные карточки
  • Справочная карта для микропроцессора Z80 ; Ширли и Нанос; Нанос Системы; 16 страниц; 1981. (архив)
  • Мгновенная справочная карта микропроцессора Z80 ; Джеймс Льюис; Микро Логика; 2 страницы; 1981. (архив)
[ редактировать ]

Симуляторы/Эмуляторы:

Доски
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 56c9a7bea64311806679cfd3c1d54a6e__1722464460
URL1:https://arc.ask3.ru/arc/aa/56/6e/56c9a7bea64311806679cfd3c1d54a6e.html
Заголовок, (Title) документа по адресу, URL1:
Zilog Z80 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)