ZX Power
#02
24 мая 1997 |
|
Железо - Микропроцессоры Zilog: Z80, 80,Z8000,Z80000.
Микропроцессоры семейства Zilog Z80,Z8000,Z80000. (P) Fisherman ________________________________ Микропроцессор Z80. Разработка микропроцессора Z80 фирмы Zilog базировалась на мик- ропроцессоры 8080/8085, но в не- го введено несколько дополни- тельных возможностей. Микропро- цессор Z80 применяется в домаш- них компьютерах и промышленных контроллерах. Этот микропроцессор совместим вверх с микропроцессором 8085 по системе комманд и машинному ко- ду, т.е. он может выполнять программы, написанные для микро- процессора 8085. Однако совмес- тимость в другом направлении достигается не всегда из-за на- личия в Z80 дополнительных ком- манд. Микропроцессор Z80A работает на частоте синхронизации 4МГц, а микропроцессор Z80B - на частоте до 6МГц. Функции контактов Z80. Функции контактов микропроцес- сора Z80 показаны на рис.1. Шина данных у него не мультиплексиру- ется с половиной шины адреса, как это сделано в микропроцессо- ре 8085. В связи с этим сокраще- но число линий шины управления, в частности имеются только три прерывания: RESET, INT, NMI (не- маскируемое). Однако такое сок- ращение не ведет к серьезным ог- раничениям, поскольку сигнал INT может разделяться множеством прерывающих устройств фирмы ZILOG. У микропроцессора Z80 нет вну- треннего генератора синхрониза- ции, поэтому требуется внешняя микросхема генератора синхрони- зации. Микропроцессор Z80. ┌────#────┐ A11 <-│1 40│-> А10 A12 <-│2 39│-> A9 A13 <-│3 38│-> A8 A14 <-│4 37│-> A7 A15 <-│5 36│-> A6 CLK ->│6 35│-> A5 D4 <->│7 34│-> A4 D3 <->│8 33│-> A3 D5 <->│9 32│-> A2 D6 <->│10 31│-> A1 5V ->│11 30│-> A0 D2 <->│12 29│<- GND D7 <->│13 28│-> RFSH D0 <->│14 27│-> M1 D1 <->│15 26│<- RESET INT ->│16 25│<- BUSRQ NMI ->│17 24│<- WAIT HALT <-│18 23│-> BUSAK MREQ <-│19 22│-> WR IORQ <-│20 21│-> RD └─────────┘ Рис.1 Смысл большинства сигналов очевиден из их мнемоник, напри- мер BUSRQ (запрос шины) и BUSAK (подтверждение запроса шины), но сигнал RFSH (регенерация уника- лен для ЦП фирмы Zilog. Он ста- новится активным между командами и помогает в регенерации динами- ческого ЗУПВ, которые подключа- ются к шинам ЦП. Архитектура микропроцессора. Внутренние регистры ЦП Z80: основные альтернативные A,F A',F' B,C B',C' D,E D',E' H,L H',L' вектор прерывания I регенерация памяти R индексный регистр IX индексный регистр IY указатель стека SP Рабочие регистры аналогичны соответствующим регистрам 8085, но в Z80 существуют дополнитель- но второй набор регистров(A'-L') и второй регистр состояния (F'). Наличие второго набора регистров значительно облегчает работу при вызове подпрограммы или ISR, по- тому что программист может ис- пользовать для них альтернатив- ный набор,избегая сохранения со- держимого регистра основной про- граммы, например командами PUSH исключения в стек. 8-битный ре- гистр вектора прерывания I ис- пользуется ЦП для локализации начального адреса ISR когда ЦП работает в одном из трех режимов прерывания. Начальными адресами ISR явля- ются следующие: RESET - в PC загружается 0000h; NMI - в PC загружается 0066h в режиме 0 ЦП учитывает содержимое вектора пре- рывания I; INT - в режиме 1 в PC загру- жается 0038h; в режиме 2 ЦП обращается за на- чальным адресом в ячей- ку XXYY (здесь XX бе- рется из вектора преры- вания I,а YY вводится с шины данных от прерыва- ющего устройства). Для перевода ЦП в режим пре- рывания 0,1 или 2 в программе требуется специальная комманда, например IM 2. При задании режи- ма 2 прерывающее устройство (на- пример, PIO или CTC) должно ини- циализироваться на 8-битное зна- чение YY, которое возвращается в ЦП при генерировании прерывания. Регистр R регенерации памяти действует совместно с сигналом RFSH при регенерации динамичес- ких ЗУПВ. После каждой команды производится инкремент регистра R и его содержимое выдается на младшую половину шины адреса между командами. Два 16-битных индексных ре- гистра IX и IY обеспечивают в командах индексный режим адреса- ции. Вспомогательные микросхемы. Параллельный ввод-вывод PIO - микросхема предназначена для пе- редачи данных через 8-битные порты во внешние устройства. Последовательный ввод-вывод - универсальный асинхронный прие- мопередатчик UART применяется вместо микросхемы PIO,когда тре- буется передать 8 бит данных по одной последовательной, а не по восьми параллельным линиям. При- меняется для подключения к ком- пьютерам дисплеев, в линиях свя- зи между компьютерами, а также для некоторых принтеров. Таймер/счетчик CTC - представ- ляет собой программируемый счет- чик,в который ЦП может загружать и считывать информацию. Обычно в микросхеме CTC имеется от 1 до 4 счетчиков. Иногда один счетчик может быть включен в микросхему PIO. Для работы с ЦП Z80 фирма Zi- log выпускает микросхемы PIO,CTC и сдвоенную микросхему UART (на- зываемую DART). Применение Z80. Микропроцессор Z80 исполь- зуется во многих персональных домаш них (SinclairZX81,Sinclair ZX-SPECTRUM, Tandy TRS80) и кон- торских (Sharp MZ80,Research Ma- chines RML380L, Icarus Super- brain) компьютерах. Однокристальные микрокомпьютеры. В семейство однокристальных микрокомпьютеров Z8 фирмы Zilog входят несколько быстродействую- щих и мощных процессоров. Типич- ный микрокомпьютер состоит из ПЗУ/СППЗУ 2 или 4 Кбайт,ЗУПВ 144 байт,UART, двух счетчиков/тайме- ров и четырех портов (32 вход- ных-выходных сигналов). Семейство включает в себя: Z8601 -ПЗУ 2 Кбайт и приведенные устройства; Z8611 - ПЗУ 4 Кбайт -/-; Z8602 - без ПЗУ,корпус с 64 кон- тактами и шина памяти; Z8612 - ПЗУ 4 Кбайт -/-; Z8603 - ПЗУ 2 Кбайт, СППЗУ 2 Кбайт и приведенные выше уст- ройства; Z8613 - ПЗУ 4 Кбайт -/-; Z8671 - ПЗУ 2 Кбайт, приведенные выше устройства и интерпрета- тор tiny-BASIC. Система команд микропроцессо- ров Z8 полностью отличается от системы команд микропроцессора Z80. Каждый процессор Z8 содер- жит 144 байт внутреннего регист- рового ЗУПВ.Эти регистры включа- ют в себя адреса ввода-вывода (например, портов, таймеров или UART),а также 124 рабочих регис- тра общего назначения,все из ко- торых могут работать как аккуму- ляторы или индексные регистры, причем порты 0,1 можно использо- вать для доступа к шинам адреса и данных, если требуется расши- рить память или ввод-вывод. Микропроцессор Z80 попал в книгу рикордов Гинеса, как самый широкоиспользуемый процессор! МИКРОПРОЦЕССОРНОЕ СЕМЕЙСТВО Z8000. В семейство Z8000 фирмы Zilog входят несколько 16-битных ЦП, отличающихся друг от друга лишь адресуемой памятью (включая вир- туальную память), и несколько вспомогательных микросхем,напри- мер управления вводом-выводом и сопроцессоров.Основными ЦП явля- ются: Z8001, адресующий память 8 Мбайт (16+7 адресных линий) с 16-бит- ной шиной данных (48-контактный корпус типа DIP); Z8002,адресующий память 64 Кило- байт (16 адресных линий) с 16- битной шиной данных (40-кон- тактный корпус типа DIP). Устройство управления памятью Z8010 применяется вместе с ЦП Z8001 для управления адресным пространством 8 Мбайт, обеспечи- вая таким образом перемещение сегментов и защиту памяти.Микро- процессоры Z8003 и Z8004 почти идентичны Z8001, но в них не до- пускается организация виртуаль- ной памяти. Функции контактов Z8001. Микропроцессор Z8001 ┌─────═─────┐ AD0 <->│1 48│<->AD8 AD9 <->│2 47│<->SN6 AD10<->│3 46│-> SN5 AD11<->│4 45│<->AD7 AD12<->│5 44│<->AD6 AD13<->│6 43│<->AD4 STOP ->│7 42│-> SN4 M1 ->│8 41│<->AD5 AD15<->│9 40│<->AD3 AD14<->│10 39│<->AD2 Vcc ---│11 38│<->AD1 VI ->│12 37│-> SN1 NVI ->│13 36│-- GND SEGT ->│14 35│<- CLOCK NMI ->│15 34│-> AS RESET->│16 33│-> DECOUPLE MO <-│17 32│-> B/W MREQ <-│18 31│-> N/S DS <-│19 30│-> R/W ST3 <-│20 29│-> BUSAK ST2 <-│21 28│<- WAIT ST1 <-│22 27│<- BUSRQ ST0 <-│23 26│-> SNO SN3 <-│24 25│-> SNI └───────────┘ Рис.2 На рис.2 показаны функции контактов Z8001, 40-контактный Z8002 не имеет сигналов номера сегмента (SN0-SN6) и прерывания при нарушении сегмента (SEGT). Каждый ЦП семейства Z8000 обра- зует Z-шину, состоящую из сигна- лов адреса, данных и управления, по которой осуществляются пере- дачи данных между ЦП и памятью или вводом-выводом. Все ЦП обладают мультиплек- сной шиной адреса/данных,а сиг- нал строба адреса AS сигнализи- рует о наличии на шине адресной информации. Сигналы номера сег- мента SN0-SN6 в ЦП Z8001 дейст- вуют как дополнительные адресные линии; за счет увеличения двоич- ного кода на этих линиях осуще- ствляется переключение на другие сегменты по 64 Кбайт.Четыре сиг- нала состояния ST0-ST3 дешифри- руются в 16 дискретных сигналов, помогающих в распределении от- дельных пространств памяти для программ,данных и стека.Это осо- бенно удобно в ЦП Z8002,посколь- ку позволяет расширить адресный диапазон 64 Кбайт. Отметим наличие в микропроцес- сорах семейства Z8000 следующих дополнительных сигналов: a) кроме сигнала сброса RESET имеются четыре сигнала прерыва- ния: NMI (немаскируемое), NVI (невекторное), VI (векторное) и SEGT (нарушение сегментации). Последнее прерывание использу- ется при подключении к ЦП Z8001 устройства управления памятью; b) BUSREQ и BUSAK для организа- ции прямого доступа к памяти; c) сигналы состояния B/W (байт/ слово), N/S (обычный/системный режим) и R/W(считывание/запись) d) управляющие сигналы M1 и M0, расчитанные на последовательное включение, которые обеспечивают одному ЦП доступ к разделенному устройству в мультипроцессорной среде. АРХИТЕКТУРА МИКРОПРОЦЕССОРА. Имеется: 16 разрядные регистры: R0, R1, R2,R3,R4,R5,R6,R7,R8,R9, R10,R11,R12,R13, R14, R15 - блок рабочих регистров, которые можно использовать в качестве аккуму- ляторов и индексных регистров (кроме R0). Регистры R0...R7 рассчитаны на обработку байт и слов. Допус- каются обьединение 16 регистров в 32-битные регистровые пары и ограниченная обработка 64-битных данных. Програмный счетчик сос- тоит из 16-битного смещения и 7- битного номера сегмента.Указате- ли обычного (R14) и системного (R15) стеков, аккумуляторы и ин- дексные регистры.Слова флажков и управления. Програмный счетчик. Указатель новой области состоя- ния программы. Счетчик регенера- ции. ЦП может работать в системном и обычном режимах (они аналогич- ны режимам супервизора и пользо- вателя в ЦП MC68000).Текущий ре- жим определяется битом в регист- ре состояния. Для каждого режима предусмотрены отдельные указате- ли стека, представленные двумя регистрами R15(плюс 7 бит в двух регистрах R14).В системном режи- ме имеется доступ к дополнитель- ным командам, например командам ввода-вывода. Поэтому в мульти- программной среде программа пользователя (работающая в обыч- ном режиме) для выполнения задач ввода-вывода должна запрашивать операционную систему (работающую в системном режиме).От микропро- цессора Z80 в архитектуре сохра- нен счетчик регенерации для ди- намических ЗУПВ. Конвейеризации с помощью "оче- реди" комманд,как в микропроцес- сорах 8086/8088, здесь нет, но зато в ЦП Z8000 введена система раннего дешифрирования команд. Она позволяет производить дешиф- рирование независимо от выбран- ного режима адресации. Память адресуемая байтами, и бит A0 выбирает один из двух 8-битных банков с четными или нечетными адресами. Длина каждо- го кода операции равна слову.Ко- ды операции и слова данных всег- да начинаются по четным адресам памяти. СИСТЕМА КОММАНД. 9 режимов адресации: Регистровая: LD R4,R7; Непосредственная: LD R4,5; Косвенная регистровая:LD R4,(R2) (загрузить в R4 содержимое ячейки памяти, адрес которой находится в R2); Прямая: LD R4,%1800 (загрузить в R4 содержимое ячейки памяти 1800h); Индексная: LD R4,%4000(R1) (заг- рузить в R4 содержимое ячейки памяти, адрес которой равен сумме 4000h и содержимого R1) Базовая: LD R4,(R6)(4) (загру- зить в R4 содержимое ячейки памяти, адрес которой равен сумме смещения 4 и содержимо- го регистра R6); Базово-индексная:LD R4,(R5)(R12) (загрузить в R4 содержимое ячейки памяти, адрес которой равен сумме индекса из R12 и базы из R5); Относительная: JR +17 (перейти к PC+17); Неявная адресация:LDCTLB FLG,%31 (загрузить 31 байт регистров управления). Система комманд ЦП семейства Z8000 приведена ниже. Мнемоники команд напоминают мнемоники мик- ропроцессора Z80, что видно из следующего примера программы: LD R1,#%643 LD R2,<<3>>%5000 ADD R2,R1 OUT 3,RL2 1.Загрузить в R1 десятичное чис- ло 643. 2.Загрузить в R2 содержимое ячейки памяти из сегмента 3 со- смещением 5000h. 3.Прибавить R1 к R2; 4.Вывести младшую половину R2 в порт ввода-вывода с адресом 3; УПРАВЛЕНИЕ И ВИРТУАЛЬНАЯ ПАМЯТЬ. Для управления адресным диа- пазоном 8 Мбайт в ЦП Z8001 ис- пользуется микросхема Z8010 уп- равления памятью.Она преобразует 23-битный логический адрес от ЦП в 24-битный физический адрес,по- даваемый в память.Для преобразо- вания адреса привлекаются стар- шие 7 бит с SN6 по SN0, которые с помощью таблицы формируют 16- битный идентификатор блока (раз- мер блока 256 байт). Младшие 8 бит адреса подаются в память без преобразования. Физические адреса обеспечи- вают доступ к 64 сегментам памя- ти, размер которых составляет от 256 до 64 Кбайт. Благодаря нали- чию устройства управления памя- тью MMU Z8001 обладает следуещи- ми преимуществами: 1.Обьем физической памяти в системе может быть меньше, чем требуемая для всех программ ло- гическая память. Устройство MMU может управлять двумя различны- ми программами с одним и тем же диапазоном логических адресов, направляя их к разным областям физической памяти. В мультипрог- раммной среде операционная сис- тема может перепланировать физи- ческую память, чтобы выполнять программу в свободной области памяти. 2.В MMU допускается назначать каждому сегменту несколько атри- бутов для защиты памяти,например только считываемый,с запрещенным доступом DMA или только для сис- темного режима. Система управления памятью позволяет также реализовать удобную для мультипрограмной среды виртуальную память,в кото- рой внешняя память считается расширением основной памяти.Вир- туальная память обычно приме- няется в больших и средних ком- пьютерах. Операционная система, устройство управления памятью и диск совместно обеспечивают для пользовательских программ боль- шую физическую адресуемую па- мять. Для конкретных программы/сег- мента в MMU имеется флажок,изве- щающий ЦП (прерыванием) и вызы- вающий репрограммирование MMU для передачи дополнительного сегмента с диска в память. Уст- ройство MMU должно освободить место в памяти для этого допол- нительного сегмента,временно пе- ремещая другой сегмент на диск. Такие операции в памяти "невиди- мы" для пользовательских прог- рамм.Чтобы реализовать виртуаль- ную память фирма Zilog предала- гает ЦП Z8003 и Z8004. ВСПОМОГАТЕЛЬНЫЕ МИКРОСХЕМЫ. С микропроцессорами Z8000 мож- но использовать 8-битные вспомо- гательные микросхемы ЦП Z80(PIO, SIO и STC), если демультиплекси- ровать шину адреса/данных. Одна- ко для 16-битных ЦП фирма Zilog выпускает два новых семейства вспомогательных микросхем: - устойства Z-шины с номерами Z80XX, которые подключаются к шинам Z8000, включая и мульти- плексную шину адреса/данных; - универсальные устройства с но- мерами Z85XX, которые подклю- чаются к ЦП без мультиплексной шины адреса/данных. Переферийные микросхемы: для │ унив-е│ Z-шины│ │ функция │ │ Z8016 │ Z8516 │контроллер DMA Z8030 │ Z8530 │-/- послед.связи Z8031 │ Z8531 │-/- асинхр-й -/- Z8036 │ Z8536 │счетчик/таймер и Параллельный ввод-вывод Z8038 │ Z8538 │интерфейсное Устройство ввода-вывода [FIFO] Z8060 │ Z8560 │буффер FIFO и Расширитель Z-FIO Z8068 │ ----- │процессор шифро- │ │вания данных Z8070 │ ----- │процессор с пла- │ │вающей точкой Z8090/4, Z8590/4 - универсальный переферийный контроллер. Процессор с плавающей точкой Z8070 (FPU) фирма Zilog относит к так называемой расширенной процессорной архитектуре и назы- вает EPU (процессор расширения). Он подключается к шинам ЦП и вы- полняет арифметические операции над числами с плавающей точкой, работая параллельно с ЦП.Процес- сор с плавающей точкой контроли- рует командный поток совместно с ЦП,идентифицируя и выполняя свои комманды. Хотя внутренний формат FPU соответствует 80-битным чис- лам с плавающей точкой, передачи данных между ними в ЦП осуществ- ляется байтами и словами. МИКРОПРОЦЕССОРНОЕ СЕМЕЙСТВО Z80000. 32-битный ЦП Z80000 совместим вверх с 16-битным микропроцессо- рами семейства Z8000 (Z8001 и Z8002).По-видимому,в части внут- ренних возможностей он является наиболее мощным 32-битным микро- процессором, поскольку обладает внутренней кэш-памятью и устрой- ством управления памятью, а час- тота его синхронизации 25 МГц. В рассматриваемом приборе имеет- ся 6-каскадный конвейер,а произ- водительность ЦП соответствует 4-5 млн. операций в секунду. ЦП состоит из: - 64 разрядные регистры: RQ0, RQ4, RQ8, RQ12, RQ16,RQ20, RQ24, RQ28; - 32 разрядные регистры: RR0, RR2, RR4, RR6, RR8, RR10, RR12, RR14, RR16, RR18, RR20, RR22, RR24, RR26, RR28, RR30, причем пары, например,RR28,RR30 образуют 64-битный регистр RQ28 и т.д. - Регистры состояния программы; - Обычный указатель стека; - Регистры дескрипторов таблицы преобразования; - Указатель стека переполнения; - Регистр управления аппаратным интерфейсом; - Длинное слово управления сис- темной конфигурацией. Как и в предыдущих микропро- цессорах, здесь операции выпол- няются над байтами (8 бит), сло- вами (16 бит),длинными (32 бита) и очень длинными (64 бита) сло- вами. Один из бит в слове флаж- ков управления (т.е. в регистр состояния) определяет работу ЦП в обычном или системном режиме. Некоторые команды, например вво- да вывода, выполняются только в системном режиме (когда работает операционная система). Содержимое регистра состояния программы - это адрес памяти,от- куда при возникновении прерыва- ния загружаются значения в прог- рамный счетчик и в слово флажков и управления. Один из четырех регистров дескрипторов таблицы преобразования устройство управ- ления памятью использует для ад- ресации памяти. Указатель стека переполнения привлекается, когда возникает ошибка вычисления ад- реса при установленном прерыва- нии. Длинное слово управления системной конфигурацией содержит биты, определяющие функции внут- ренних кэш-памяти и устройства управления памятью. В системе команд ЦП Z80000 сохранены сложные команды ранее рассмотренных микропроцессоров, например команды блоковых пере- дач и поиска цепочек. У прибора имеются девять режимов адреса- ции, причем в вычислении адреса могут участвовать базовый ре- гистр, индексный регистр, и ре- гистр смещения. Определяемый в команде адрес памяти интерпрети- руется одним из следующих трех способов в зависимости от сос- тояния двух бит в слове флажков и управления: 1) компактное представление - 16 бит (обеспечивает адресацию 64 Кбайт); 2) сегментное представление - 32 бита (15 битный сегмент с 16 битным смещением для первых 2 Гбайт или 7-битный с 24-битным смещением для следующих 2 Гбайт); 3) линейное представление - 32 бита (адресация 4 Гбайт). В сегментном представлении адресные вычисления влияют толь- ко на поле смещения. Адрес,определенный в команде, называется логическим адресом, а устройство управления памятью преобразует его в физический ад- рес.Преобразование осуществляет- ся следующим образом: 1) с привлечением внутреннего буфера преобразования, где хра- нятся тэговые адреса и информа- ция о 16 последних страницах, к которым производились обраще- ния, аналогично кэш-памяти ко- манд/данных; 2) если буфер преобразования не фиксирует соответствия тэга, то ЦП обращается к таблицам преоб- разования в памяти, используя для этого один из четырех ре- гистров таблиц дескрипторов, а затем передает нужную информа- цию в тот элемент буфера преоб- разования, к которому дольше всего не было обращения. Кроме того, устройство управ- ления памятью обеспечивает сред- ства защиты, например обращение только для выполнения,разрешение считывания и записи. Внутренняя кэш-память состоит из 16 элементов по 16 байт каж- дый. Она регистрирует информацию о 16 ячейках памяти, к которым происходили последние обращения Когда в кэш-памяти получается "промах" при выборке команды, из смежных ячеек памяти передается целый пакет, что оптимизирует процесс считывания из памяти. Микропроцессор Z80000, как и его 16-битные предшедственники, работает с процессорами расшире- ния EPU (т.е. сопроцессорами). Сопроцессор с плавающей точкой Z8070 функционирует с 16- и 32- битными ЦП. К Z80000 можно под- ключать и другие вспомогательные микросхемы, например контроллер DMA Z8016. Для соединения компо- нентов в большие конфигурации фирма Zilog использует свой стандарт, называемый Z-шиной. Фирмой Zilog ведется разработ- ка новых 64 битных микропроцес- соров совместимых вверх с их предшедственниками. Также ведется работа по разра- ботке RISC процессоров. Словарь. DIP - корпус с двухсторонним расположением выводов: стан- дартный корпус микросхем. DMA (Direct Memory Access)- пря- мой доступ к памяти: передача данных между памятью и вво- дом-выводом без участия ЦП. ISR (Interrupt Service Routine)- процедура обслуживания преры- вания: программа,выполняющая- ся как реакция на прерывание. PC (Program Counter)- програмный счетчик: регистр ЦП, содержа- щий адрес следующей выполняе- мой команды. MMU (Memory Management Unit) - устойство управления памятью, диспетчер памяти: внутренние средства процессора, предназ- наченные для управления дос- тупом к физической памяти. Литература. Холленд Р. "Микропроцессоры и операционные системы: Краткое справочное пособие" Пер.с англ. ________________________________
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября