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