RUSH
#01
29 мая 1999 |
|
Развитие Spectrum - Потомки процессора Z80.
Copyright 1992, Jack G. Ganssle Перевод:1997 (c) Савичев Андрей Викторович E-mail: master@satan.spb.su Об авторе: Jack Ganssle, Oсновной консуль- тант TGG RUSH> Невероятно ! Все мы так привыкли к старому-доброму Z-80 - сердцу наших Spectrum' ов и даже не знаем, что фирма Zilog, его создатель, не остановилась на данной модели своего процессора и продолжает выпуск гораздо более совершенных его потомков. Сложно сказать, какое это будет иметь значение для дальнейшего развития Speccy, кто знает, возможно в ближайшем будущем новые модели Spectrum'ов будут оснащаться и процессорами нового поколения... От переводчика: Некоторые термины замещены русскими эквивалентами,другие оставлены без Перевода. Опущены некоторые "лирические" отступления автора.Оставлено без перевода Резюме и одно "темное" для меня ;-) место в тексте. Аннотация. Z80 и его потомки продолжают быть чрезвычайно популярными.Вот современное состояние данной архитектуры. Предисловие. Я просто бешусь, читая рекламу в прессе. Журналы хотят уверить нас в том, что единственный жизнеспособный процессор, даже для самых простых приложений - это 50 Mhz 486 или RISC процессор. Но сколько проектировщиков реально исполь зуют эти CPU во встроенных системах? На конференции по встроенным системам Andy Rappaport привел убедительный аргумент,что до тех пор пока мы имеем соотношение между производительностью процессора и его ценой,во многих приложениях, чувствительных к стоимостному фактору,smaller CPUs будут доминировать над новыми архитектурами. Лично я предпочитаю 8 и 16 битные CPU.Они дешевы,к ним имеются более дешевые инструментальные средства и с ними проще работать. Фактически, 8 р. процессор имеет ту же ширину шины,что и большинство распространненых периферийных устройств и может быть использована более простая схема с меньшим числом компонентов за счет интеграции на кристалле. 16 и 32 р. шины часто используются для ускорения пересылок больших массивов информации.Большая длина команд используется для выполнения более сложных действий за один машинный цикл.Выигрыш в производительности оборачивается проигрышем в стоимости. Я думаю,что четыре архитектуры наиболее отвечают запросам проектировщиков встроенных систем.Не учитывая 4-р. архитектур,которые часто являются оптимальным решением при массовом производстве,я могу рекомендовать семейства 8051, 80186,Z80 и 6800 и их потомков. Время от времени я буду писать статьи об экземплярах этих семейств.В этот раз мой выбор пал на z80. Современная Z80 Technology Z80 по существу ничем не отличается от первоначальной версии, представленной еще в середине 70-х. Все современные СMOS версии имеют космические скорости. Самое новое предложение от Zilog-а содержит 20 MHz процессор.Но рост быстродействия процессора вызывает столь же космический рост стоимости ROM и RAM в системе.Поэтому 6 и 8 MHz Z80 все еще остаются респектабельными (написано в 92г!: прим.пер.) Хотя индексные инструкции z80 слабы,это все же несомненно лучший С компьютер, по сравнению с тем же 8051. Изолированный z80 был бы dead-end line,если бы не высокоинтегрированные процессоры 64180 Hitachi и z180 Zilog ,которые содержат ядро процессора z80. 64180/Z180 микропроцессоры включают в себя функции, традиционно относящиеся к периферийным схемам . Проектировщики выбрали архитектуру,совместимую с Z80, дающую пользователям Z80 возможность использовать доступное им прежде программное обеспечение.Старая Z80 архитектура может быть преобразована без финансовых затрат на инструментальные системы и без каких либо потерь совместимости. Новый дизайн более привлекателен за счет умощнения системы команд,меньшего потребления энергии и более высокого уровня интеграции. Описание 64180. Периферия 64180 включает в себя: два 16 битных счетчика/таймера; программируемый контроллер регенерации и циклов ожидания; два контроллера DMA (ПДП); три последовательных порта с программируемой скоростью передачи. Добавьте сюда немного памяти и параллельного ввода-вывода и Вы будете иметь готовый компьютер. Like the Z80, the 64180 supports 16 bit I/O addresses. Whenever an IN A,(C) or OUT (C),A instruction is executed, both the Z80 and 64180 issue the contents of C as the low order port address, and the contents of B as the high 8 bits of the address. Unlike the Z80, for which few users ever needed more than an 8 bit address, 16 bit port addresses are crucial to the chip's operation. Вся внутренние периферийные устройства 64180 для программиста являются портами ввода/вывода. Каждое устройство имеет уникальный адрес ,старшие 8 разрядов которых - нулевые. Зарезервированы 64 адреса,при сбросе они находятся в диапазоне от 0000 до 003F.Возможно инициализировать начало блока регистров внутренних устройств на адреса: 0000,0040,0080,00C0. Это особенно полезно для предотвращения конфликтов с адресами внешних портов ввода-вывода. Программирование шины CPU. 64180 разрешает динамический выбор нескольких параметров шины, включая количество циклов ожидания памяти и устройств ввода-вывода(для согласования с медленной памятью и внешними устройствами ввода/вывода) и скорости регенерации. Подобно Z80, 64180 автоматически производит циклы регенерации, чтобы сохранить данные в динамической памяти.Когда динамическая память отсутствует,циклы регенерации снижают производительность процессора,поэтому в 64180 имеется возможность их запретить. Регистр управления регенерацией позволяет установить частоту регенерации, добавляет циклы ожидания для медленно работающей памяти.При сбросе устанавливается максимально быстрая регенерация(режим совместимости с Z80). Небольшое отличие состоит в том,что 64180 генерирует 8р. адрес в цикле регенерации,в то время как Z80 7р. К сожалению,1 Mbit динамические ОЗУ требуют при регенерации 9р. адрес, поэтому необходимо применять дополнительную внешнюю микросхему. Таймеры. 64180 имеет два независимых 16 разрядных таймера, которые тактируются CPU's clock. Каждый может быть запрограммирован, чтобы произвести прерывание, при переходе содержимого через ноль. Таймеры автоматически перезагружаются значением из специального регистра.Каждый таймер имеет 16р. регистр данных,который читается и записывается в произвольный момент и 16р. регистр, значение из которого перезагружается в момент перехода содержимого регистра данных через 0. Режим таймера устанавливается с помощью специального регистра управления. Последовательные порты. 64180 содержит три последовательных устройства. Два из них - традиционные асинхронные UARTs (ASCI 0 и ASCI 1 ). Третий - специальный порт для синхронного обмена.Интерфейс поддерживает полный дуплекс,7 или 8 битов данных, 1 или 2 стоп-бита,все типы паритета(четн./нечетн.),некоторые сигналы управления модемом и программируемую скорость передачи данных.Прерывание возникает при получении символа,возникновении ошибки или пустом буфере передачи. Тактируемый синхронный порт (CSI/O) - простой синхронный 8 р. полудуплексный порт.Он не поддерживает SDLC и другие синхронные соединения, но обеспечивает связь с синхронным портом 8051 и аналогичными в других процессорах. Система прерываний. Подобно Z80, 64180 может поддерживать один из трех режимов прерывания ( 0, 1 и 2 ),в зависимости от выбора,сделанного программистом с помощью IM инструкций.Кроме того,он поддерживает новые источники прерываний, как внутренние,так и внешние(2 новых,а всего 4).Новые внешние источники прерываний доступные через входы INT1 и INT2,всегда обрабатываются в режиме 2 (векторном),независимо от выбранного для остальных входов режима.При обслуживании прерывания CPU обращается к таблице в памяти для выборки адреса процедуры обработки прерывания(таблице векторов прерываний).Подобным же образом обрабатываются прерывания внутренних устройств (в режиме 2).В Z80,все вектора режима 2 формируются за счет содержимого регистра I(инициализируемого командой LD I,A -ст.байт адреса) и 8 бит выставляемых внешним устройством в цикле (interrupt acknowledge cycle) -мл.байт адреса.Такой же механизм сохраняется в 64180 для входа INT0.Однако прерывания на входах INT1,INT2 и от внутренних устройств обрабатываются по-другому. Новый регистр IL содержит биты 5,6 и 7 таблицы векторов прерываний для INT1,INT2 и внутренних устройств.Старшие 8 бит берутся из регистра I ,как и в Z80. Входы INT1,INT2 и внутренние источники имеют фиксированное смещение от начала таблицы векторов прерываний,поэтому биты 4,3,2,1,0 не изменяются программистом,а начальный адрес таблицы может быть задан в регистрах I и IL. Система команд. 64180 в точности выполняет каждую команду Z80,однако быстрее. Идентичны Z80 все регистры,флаги,способы адресации.Это делает для програмистов переход от Z80 к 64180 очень простым. Несколько новых команд очень полезны в некоторых приложениях. Команда SLP переводит 64180 в режим крайне низкого потребления. Выход из SLEEP mode возможен только по прерыванию или reset. Команда 8 битного беззнакового умножения с получением 16 битного результата выполняется в течение 17 периодов тактовой частоты(17 T-states) и дает повышение общей производительности процессора при вычислениях(на основе этой инструкции можно увеличить производительность процессора как на целочисленной арифметике,так и на арифметике с плав.запятой :прим.перев.) Работает с регистровыми парами BC,DE,HL или SP,причем входные операнды содержатся в мл. и ст. байте,результат в этой же регистровой паре. Четыре типа TST инструкции выполняют неразрушающее И между аргументом и аккумулятором. TSTIO берет в качестве аргумента 8 бит порта ввода/вывода.Старшие 8 бит 16р. порта автоматически сбрасываются в 0. Управление памятью. Важным преимуществом 16р. процессоров была возможность адресовать большие объемы памяти.Если большинство 8р. микропроцессоров,включая Z80, адресовали 64 Кбайт памяти,то 16р. адресовали как правило 1-16 Мбайт. Больший объем памяти обеспечивает размещение большего количества данных и более сложных,а следовательно и с большими возможностями,программ. MMU - механизм,с помощью которого 64180 может иметь доступ к памяти более 64 Кбайт,но сохранять при этом совместимость по системе команд с Z80. Все инструкции выполняются по-прежнему как бы в 16р. адресном пространстве, а MMU преобразует 16р. адреса в 20р. Пространство "логических"адресов преобразуется в пространство адресов "физических". Все пространство "логических" адресов разбивается на 3 части: 0-3FFFH преобразуется в любой 16к сегмент 1Mb,например 0-3FFFH 4000H-7FFFH преобразуется в любой 16к сегмент 1Mb,например 10000H-13FFFH 8000H-FFFFH преобразуется в любой 32к сегмент 1Mb,например 40000H-407FFH Возможна фактически любая конфигурация виртуальной("логической") памяти. Полное обсуждение MMU в рамках данной статьи невозможно,укажем лишь на то ,что некоторые компиляторы поддерживают данный механизм автоматически, для разработки программ,код которых превышает 64K. Другие Z80 совместимые CPU. 64180/Z180 не единственные высокоинтегрированные потомки Z80. И Zilog и Toshiba продают ряд процессоров с различным сочетанием периферийных устройств и памяти на одном кристалле и номенклатура этого ряда расширяется ежедневно.Обе фирмы продают 84013 и 84015,которые включают в себя один SIO(Z80 специфичный последовательный порт ввода/вывода),один CTC(снова специфичный Z80 таймер).SIO и CTC в составе этих чипов полностью идентичны своим предкам в дискретном исполнении.Кроме того в составе 84013 и 84015 Watchdog timer (устройство для перезапуска при сбоях и зависании программы: прим.перев.) и тактовый генератор. 84015 попадает в наши руки (к моему великому сожалению) в виде 100 ножечного QFP,что связано с наличием PIO, которому требуется 20 дополнительных выводов. Продаются и другие чипы,перечисление которых интересно скорее "железячникам" нежели программистам.Это 84с50 с 2K внутренней RAM и 84с01(Z80,с встроенной схемой часов). Резюме Does anyone really know what processors most designers use? I believe this is a mystery. Chip vendors track volume sales of CPUs to determine which ones outsell the others. They're happy to sell 100 million CPUs to one customer. This tells us nothing about the number of designers working with a chip. A thousand applications being produced in hundred quantities amounts to few chip sales, but lots of engineering. What processors do you use? Why? Let me know and I'll pass the information on to your fellow readers. Softaid - Extraordinary Emulators for 8 and 16 bit CPUs 8310 Guilford Road, Columbia, MD USA. Phone: (410) 290-7760, Fax: (410) 381-3253 Email info@softaid.com
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября