Главная страница
Навигация по странице:

  • 2.3.

  • 2.4.

  • 4. Временные диаграммы машинных циклов

  • 4.1.

  • 4.2.

  • 4.3.

  • 4.4.

  • 4.5.

  • 4.6.

  • 4.7.

  • Pppdddff


    Скачать 1.31 Mb.
    НазваниеPppdddff
    Дата05.09.2022
    Размер1.31 Mb.
    Формат файлаpdf
    Имя файлаZ80-Central-Processor-Unit.pdf
    ТипДокументы
    #663609
    страница2 из 7
    1   2   3   4   5   6   7
    2.2.
    Арифметическо-логическое
    устройство (АЛУ)
    В АЛУ выполняются арифметические и логические действия над 8-разрядными операндами. Внутренне АЛУ связано с регистрами и через внутреннюю шину данных с внешней шиной. В АЛУ выполняются следующие операции:
    ü сложение;
    ü вычитание
    ü логическое И;
    ü логическое ИЛИ;
    ü логическое исключающее ИЛИ;
    ü сравнение;
    ü увеличение на единицу;
    ü уменьшение на единицу;
    ü установка и сброс бита;
    ü анализ значения бита;
    ü сдвиг влево и вправо (арифметический и логический);
    ü вращение влево и вправо (циклический сдвиг).
    2.3.
    Регистр команд и устройство
    управление процессором
    После извлечения команды из памяти, она загружается и регистр команд. Дешифратор команд, входящий е устройство управления, преобразует код команды в управляющие сигналы:
    ü внутренние, необходимые для считывания/записи данных в регистры и управления
    АЛУ,
    ü внешние, подаваемые на шину управления.
    Кроме того, устройство управления реагирует на внешние управляющие сигналы.
    2.4.
    Управление шинами адреса и
    данных
    Блок управления ША состоит из регистра адреса и буфера адреса. Буфер адреса представляет собой выходные формирователи с тремя устойчивыми состояниями. Он предназначен для выдачи 16-разрядного адреса из регистра адреса на шину.
    Блок управления ШД представляет собой бинаправленную трёхстабильную схему, применяемую для обмена информацией ЦП с внешними устройствами. При выводе информации содержимое внутренней ШД запоминается в 8-разрядном регистре и через выходные формирователи выдается на внешнюю вину данных.

    3. Описание выводов
    Микросхема Z80 выпускается в стандартном 40 выводном корпусе с двухрядным расположением выводов типа DIP.
    Рис. 3.1. Распределение выводов и условное графическое изображение
    A0…A15
    Address Bus - Адресная шина
    Трёхстабильный выход. Активный уровень - высокий A0-A15 образуют 16 разрядную адресную шину, которая выдает адреса для обмена данными с памятью (64К максимум) и с устройствами ввода-вывода (65536 каналов максимум). A0 является самим младшим адресным битом. Во время регенерации ОЗУ 7 младших битов содержат действительный адрес регенерации.
    D0…D7
    Data Bus - Шина данных
    Трёхстабильный вход-выход. Активный уровень - высокий. D0-D7 образуют 8- разрядную двунаправленную шину данных, по которой осуществляется обмен данными между ЦП и памятью, либо между ЦП и устройствами ввода-вывода.
    M1
    Machine Cycle 1 - Машинный цикл 1
    Трёхстабильный выход. Активный уровень - низкий. /M1 указывает, что в текущей машинном цикле происходит чтение кода операции из памяти. При считывании кода операции вида CB, ED, DD, FD вырабатывается ещё один цикл M1 для считывания второго байта кода операции, т.е. сигнал /M1 активизируется дважды.
    /M1 также активизируется вместе с сигналом /IORQ в цикле подтверждения прерывания.
    MREQ
    Memory Request - Запрос памяти
    Трехстабильный выход Активный уровень - низкий. Сигнал запроса памяти указывает системе, что на адресной шине установлен адрес для операции чтения памяти или записи в память.
    IORQ
    Input/Output Request - Запрос ввода-вывода
    Трехстабильный выход. Активный уровень - низкий. Сигнал /IORQ указывает, что пика адреса содержит адрес внешнего устройства для операции ввода или вывода. Кроме того, сигнал IORQ генерируется также совместно с сигналом /M1 в цикле подтверждения прерывания. Тем самым устройству, запросившему прерывание, указывается, что вектор прерывания может быть помещен на шину данных.

    RD
    Reed - Чтение
    Трехстабильный выход. Активный уровень - низкий. Сигнал /RD указывает, что ЦП выполняет цикл чтения данных из памяти или устройства ввода-вывода. Адресованное устройство ввода-вывода или память должны использовать этот сигнал для стробирования подачи данных на шину данных.
    WR
    Write - Запись
    Трехстабильный выход. Активный уровень – низкий. Сигнал /WR указывает, что процессор выдает на ШД данные, предназначенные для записи в адресованную ячейку памяти или устройство вывода.
    RFSH
    Refresh - Регенерация
    Выход. Активный уровень - низкий. Сигнал /RFSH указывает, что младшие 7 разрядов шины адреса содержат адрес регенерации для динамической памяти и текущий сигнал /MREQ может использоваться для восстановления информации. Примеры использования сигнала /RFSH см. в книге 7 "Построение систем".
    HALT
    Halt State - Состояние останова
    Выход. Активный уровень - низкий. Сигнал /HALT указывает, что ЦП выполняет команду останова программы и ожидает маскируемое либо немаскируемое прерывание, чтобы завершить эту команду и начать обработку подпрограммы прерывания. В состоянии останова ЦП выполняет холостые команды для обеспечения процесса регенерации памяти.
    WAIT
    Halt - Запрос ожидания
    Вход. Активный уровень - низкий. Сигнал /WAIT указывает ЦП, что адресованная ячейка памяти или устройство ввода-вывода ещё не готово к передаче данных. ЦП генерирует состояние ожидания (холостые такты, в которых не происходит никаких изменений с ЦП) до тех пор, пока активен этот сигнал. С помощью этого сигнала с ЦП могут синхронизироваться ЗУ и устройства ввода-вывода практически любого быстродействия. /WAIT также может использоваться при отладке для реализации пошагового режима.
    INT
    Interrupt Bequest - Запрос прерывания
    Вход. Активный уровень - низкий. Сигнал /INT, формируемый устройством ввода- вывода, анализируется в конце выполнения текущей команды. Запрос учитывается, если триггер прерываний (IFF1), управляемый программно, установлен в состояние "разрешить прерывании", и не активен сигнал /ВUSRQ
    NMI
    Non Maskable Interrupt - Немаскируемый запрос прерывания
    Вход, запускаемый отрицательным фронтом. Фронт запуска активизирует внутренний триггер NMI. Линия /NMI имеет более высокий приоритет, чем /INT и всегда распознается в конце выполнения текущей команды, независимо от состояния триггера разрешения прерываний. /NMI автоматически производит перезапуск (рестарт) ЦП с адрес
    66H. Содержимое счётчика команд (адрес возврата) автоматически сохраняется во внешнем стеке. Т.о. пользователь может возвратиться к прерванной программе.
    RESET
    Reset - Сброс
    Вход. Активный уровень – низкий. Сигнал /RESET имеет самый высокий приоритет и приводит ЦП в начальное состояние:
    ü сброс счетчика команд PC=0000H;
    ü сброс триггера разрешения прерываний
    ü очистка регистров I и R;
    ü установка режима прерываний IM0.
    Для корректного сброса сигнал /RESET должен быть активен не менее 3-х периодов тактовой частоты. В это время адресная шина и шина данных находятся в высокоомном состоянии, а все выходы сигналов управления неактивны.
    BUSRQ
    Bun Request - Запрос доступа к шине
    Вход. Активный уровень - низкий. Сигнал /BUSRQ имеет более высокий приоритет, чем /NMI и анализируется в конце каждого машинного цикла. Он делает запрос ЦП на перевод всех его шин в высокоомное состояние для того, чтобы другие устройства смогли управлять этими шинами (например, при прямом доступе к памяти). Если активизирован
    сигнал /BUSRQ то ЦП переводит шины в высокоомное состояние как только завершен текущий машинный цикл.
    BUSAK
    Bus Acknowledge - Предоставление доступа к шине
    Выход. Активный уровень - низкий. Бели был активизирован сигнал BUSRQ, то ЦП переводит свои шины в высокоомное состояние, как только завершен текущий машинный цикл. После этого ЦП активизирует сигнал /BUSAK, который сообщает запрашивающему устройству, что шины адреса и данных, а также трехстабильные сигналы управления находятся в высокоомном состоянии, и внешнее устройство может ими управлять.
    C
    Clock - Такт
    Вход для однофазной тактовой синхронизации. При управлении от ТТЛ-схемы вход
    C дополнительно подключается к линии +5В через внешнее сопротивление 330 Ом.
    U
    CC
    Плюс источника питания
    U
    SS
    Потенциал "земли"

    4. Временные диаграммы
    машинных циклов
    Обработка команд программы микропроцессором Z80 представляет собой поэтапное выполнение следующих машинных циклов:
    ü извлечение кода операции (цикл M1);
    ü цикл чтения/записи памяти;
    ü цикл ввода/вывода;
    ü цикл предоставления доступа к шине;
    ü цикл подтверждения маскируемого прерывания;
    ü цикл подтверждения немаскируемого прерывания;
    ü выполнение команды останова.
    Все команды состоят из последовательности машинных циклов. Каждый из этих машинных циклов продолжается от 3 до 6 тактов и может быть удлинён путём введения дополнительных тактов T
    W
    (время ожидания), если скорость ЦП ограничивается быстродействием внешнего устройства.
    Рис. 4.1 показывает, что команды, как правило, состоят из 3 машинных циклов. Первый машинный цикл каждой команды - это цикл извлечения кода операции, который длится 4, 5 или 6 тактов синхронизации (если он не продлевается сигналом /WAIT), в цикле M1 из памяти извлекается код команды, которая потом выполняется. В последующих машинных циклах осуществляется передача данных между ЦП и памятью или устройством ввода-вывода. Эти цикли продолжаются от 3 до 6 тактов и также могут быть продлены сигналом /WAIT, если ЦП должен синхронизироваться с внешним устройством.
    Далее рассматриваются временные диаграммы базовых машинных циклов. Очередность их выполнения, а также точное время выполнения команд (в тактах) приведены в 5.4.
    Рис. 4.1. Пример выполнения команды
    4.1.
    Извлечение кода операции
    На рис.4.2 отражены временные процессы цикла M1. Содержимое счётчика команд PC
    (адрес кода операции в памяти) подается на шину адреса непосредственно в начале машинного цикла. Через полтакта (когда адрес памяти стабилизируется на шине) активизируется сигнал
    /MREQ. Его спадающий фронт прямо используется для выбора микросхемы запоминающего устройства. Одновременно с этим включается сигнал /RD и позволяет передать данные из памяти на шину данных ЦП. По нарастающему фронту такта T3 данные вводятся в ЦП. Этот же фронт используется и для выключения сигналов /MREQ и /RD
    Во время тактов T3 и T4 происходит дешифрация и выполнение извлеченной команды внутри МП. Одновременно с этим производится регенерация динамической памяти: на 7 младших битов шины адреса подается адрес регенерации, и активизируется сигнал /RFSH указывая на то, что ША содержит адрес регенерации. Само восстановление происходит по сигналу /MREQ; сигнал RFSH нельзя использовать для этого, т.к. Устойчивость адреса регенерации обеспечивается только ко времени включения /MREQ. Во время регенерации сигнал /RD не формируется, чтобы избежать передачи данный из различных областей памяти на шину данных.

    Рис. 4.2. Извлечение кода операции (цикл M1)
    На рис.4.3 показано, как продлевается цикл извлечения кода операции, если память активизирует линию /WAIT. Во время спадающего фронта такта T2 и каждого последующего такта T
    w
    ЦП анализирует линию /WAIT. Если она активна, то микропроцессор вырабатывает дополнительный такт ожидания T
    w
    . Т.о. цикл считывания продолжается сколь угодно долго и приводится в соответствие со временем доступа к любой памяти.
    Рис. 4.3. Извлечение кода операции (цикл M1) с тактами ожидания
    4.2.
    Цикл чтения памяти и цикл
    записи в память
    На рис. 4.4 показаны временные процессы циклов чтения из памяти и записи в память.
    Длительность этик циклов 3 такта, если не активизирована линия /WAIT. Сигналы /MREQ и /RD используются так же, как в цикле M1. В обоих циклах сигнал /MREQ активизируется, когда уровни сигналов на шине адреса стабилизировались, поэтому его спадающий фронт используется для выбора микросхемы ЗУ. В цикле записи линия /WR активизируется, когда данные на шине данных уже стабилизировались, т.о. этот сигнал непосредственно используется как импульс записи для всех типов полупроводниковой памяти. Он выключается на полтакта до изменения содержимого ША и ШД, что удовлетворяет параметрам всех типов полупроводниковых ОЗУ.

    Рис. 4.4. Цикл чтения из памяти и цикл записи в память
    На рис.4.5 показано, как запрос /WAIT продлевает операцию чтения или записи в память.
    Это происходит так же, как в цикле M1.
    Рис. 4.6. Цикл чтения из памяти и цикл записи в память с тактами ожидания
    4.3.
    Циклы ввода/вывода
    На рис. 4.6 изображены временные диаграммы циклов ввода-вывода.
    При вводе/выводе содержимое шины адреса различно для двух случаев.
    1). Команды IN А,(n) и OUT (n),A:
    A0-A7 - содержит адрес канала (n).
    A8-A15 - содержимое аккумулятора.
    2)
    Команды IN r,(C), INI, INIR, IND, INDR и OUT (C),r, OUTI, OTIR, OUTD, OTDR:
    A0-A7 - Содержимое регистра C.
    A8-A15 - содержимое регистра B
    1
    Важно отметить, что в операциях ввода-вывода автоматически вводится такт ожидания
    T
    w
    *, потому что время от включения сигнала /IORQ до момента опроса линии ожидания центральным процессором недостаточно для декодирования адреса устройства ввода-вывода и активизации им линии /WAIT. Во время этого такта также опрашивается линия ожидания, что
    1 1. Т.е. МП Z80 может адресовать 64К устройств ввода/вывода (в отличие от I8080, где А8-А15 дублируют А0-А7).
    дает возможность согласовать работу ЦП с работой любых медленно действующих устройств. В операции ввода сигнал /RD используется для передачи данных адресованного канала на шину данных ЦП, как и при чтении памяти. В операциях вывода сигнал /WR используется как строб записи. Он выключается за полтакта до изменения состояния ША и ШД. что обеспечивает надежность записи в канал.
    Рис. 4.6. Цикл ввода и цикл вывода
    На рис. 4.7 изображены циклы ввода/вывода с дополнительными тактами ожидания.
    Рис. 4.7. Цикл ввода и цикл вывода с тактами ожидания
    4.4.
    Цикл предоставления доступа к
    шине
    Рис.4.8 отражает временные диаграммы запроса на доступ к шине и цикла подтверждения запроса. Сигнал /BUSRQ воспринимается ЦП во время нарастающего фронта последнего такта каждого машинного цикла. Если он имеет активный низкий уровень, то во время нарастающего фронта следующего тактового импульса (т.е. по окончании цикла) ЦП переводит шины адреса и данных, а также трехстабильные Сигналы управления в высокоомное состояние и активизирует сигнал подтверждения /BUSAK. Т.о. максимальное время до предоставления шины равно длительности машинного цикла (если запрос поступил в начале этого- цикла).

    Теперь внешнее устройство, запросившее доступ, может управлять шинами и передавать данные между памятью и УВВ. Этот режим называется прямым доступом к памяти (ПДП - DMA -
    Direct Memory Access). Его нельзя прервать ни сигналом /INT, ни /NMI.
    Внешнее устройство поддерживает сигнал /BUSRQ в активном состоянии столько времени, сколько необходимо ему для прямого доступа. Состояние /BUSRQ анализируется процессором по нарастающему фронту каждого тактового импульса. Как только зафиксирован неактивный уровень /BUSRQ, со следующего такта управление шинами возвращается ЦП, и он возобновляет нормальную обработку команд.
    Следует помнить, что во время длительных циклов ПДП (например, в случае пересылки больших блоков данных) и при использовании динамического ЗУ регенерацию должно осуществлять внешнее устройство.
    Рис. 4.6. Цикл предоставления доступа к шине
    4.5.
    Цикл подтверждения
    маскируемого прерывания
    На рис.4.9 показаны временные процессы при запросе и подтверждении прерывания.
    Сигнал прерывания /INT опрашивается ЦП во время нарастающего фронта последнего такта в конце каждой команды. Запрос игнорируется, если триггер разрешения прерывания сброшен или активен сигнал /BUSRQ. Если запрос воспринимается, то ЦП вырабатывает специальный цикл
    M1, в котором активизируется сигнал /IORQ (вместо /MREQ). Низкий уровень сигнала /IORQ указывает устройству, запросившему прерывание, что оно может подать на шину данных 8 разрядный вектор прерывания. В этот цикл автоматически включаются два такта ожидания T
    w
    *
    (это позволяет сравнительно легко реализовать схему приоритетных прерываний), которые дают необходимое время для определения запросившего устройства и стабилизации вектора прерывания на шине данных.

    Рис. 4.9. Цикл подтверждения маскируемого прерывания
    Кроме двух обязательных тактов ожидания активным сигналом /WAIT могут быть введены дополнительные такты ожидания, что отражено на рис. 4.10.
    Рис. 4.10. Цикл подтверждения маскируемого прерывания с тактами ожидания

    4.6.
    Цикл подтверждения
    немаскируемого прерывания
    На рис. 4.11 показан цикл запроса/подтверждения немаскируемого прерывания.
    Информация о запросе /NMI анализируется одновременно с сигналом /INT (подробнее см. 6.2), но
    /NMI имеет более высокий приоритет и его нельзя запретить программно. Назначение /NMI - немедленное реагирование ЦП на внешние события (например, отказ питания). Ответ ЦП сходен с обычным циклом M1, с той лишь разницей, что шина данных игнорируется, т.к. при NMI ЦП выполняет повторный запуск с адреса 66H и вектор прерывания не нужен.
    В цикле подтверждения NMI сигнал /WAIT не воспринимается.
    Рис. 4.11. Цикл подтверждения немаскируемого прерывания
    4.7.
    Выполнение команды останова
    Команда HALT вводит МП в состояние останова. Каждый цикл в состоянии останова представляет собой обычный цикл M1 с той лишь разницей, что извлекаемые из памяти данные игнорируются, и внутренне процессор формирует команду NOP. Холостые команды выполняются в целях полдержания процесса регенерации.
    Сигнал /HALT своим активным уровнем сообщает, что ЦП находится в состоянии останова. Выход из этого состояния возможен только по прерыванию (маскируемому, если оно разрешено, или немаскируемому). Обе линии прерывания опрашиваются во время нарастающего фронта такта T4. как показано на рис. 4.12. Если прерывание воспринято, то следующий цикл будет циклом подтверждения прерывания.
    Рис. 4.12. Выполнение команды останова

    1   2   3   4   5   6   7


    написать администратору сайта