Процессор

## Пояснение

На листе 3 показана схема процессора. Процессор имеет шестнадцатиразрядную шину адреса, двунаправленную восьмиразрядную шину данных и несколько входных и выходных управляющих сигналов. На входы F1 и F2 процессора поступают из синхронизатора синхроимпульсы. Эти синхроимпульсы мы уже знаем, они задают тактовую частоту процессора.

Микропроцессор выполняет команды по машинным циклам. Число циклов, необходимое для выполнения команды, зависит от ее типа и может быть от одного до пяти. Машинные циклы выполняются по машинным тактам. Число тактов в цикле также определяется кодом выполняемой команды и может быть от трех до пяти. Длительность такта равна периоду тактовой частоты сигналов F1 и F2, т.е. 400 нсек. Начало такта определяется положительным фронтом импульса F1.

Работа микропроцессора управляется входными и выходными сигналами. Входные сигналы следующие:

* READY - готовность
* HLD - захват
* INT - запрос прерывания
* RESET - установка в исходное состояние

Выходные сигналы:

* WAIT - ожидание
* HLDA - подтверждение захвата
* SYNC - сигнал синхронизации
* DBIN - сигнал чтения
* WR - сигнал записи (активн. уровень низк.)

Дотошный читатель уже сообразил, что некоторые управляющие сигналы идут в "никуда", т.е. только на разъем XS3. Разъем XS3 введен в схему для возможности подключения ПЭВМ к тестирующему оборудованию. При нормальной работе ПЭВМ он не используется (к нему ничего не подключается).

Для того, чтобы управляющие сигналы не терялись и "КОРВЕТ" мог нормально работать, на разъеме XS3 должны быть установлены пять перемычек, замыкающие попарно следующие сигналы:

* 1SYNC - SYNC
* 1WR - WR
* 1READY - RADY
* 1DBIN - DBIN
* 1CSROM1 - CSROM1

Перед тем, как перейти к дальнейшему анализу схемы, сделаем несколько общих замечаний о работе процессора.

В начале каждого машинного цикла процессор вырабатывает сигнал SYNC длительностью равной периоду тактовой частоты (в нашем случае 400 нсек.). Точное время появления сигнала SYNC зависит от конкретной микросхемы. Оговаривается, что SYNC может появиться не позже, чем через 120 нсек. после переднего фронта сигнала F2.

Сигнал RESET переводит процессор в исходное состояние, снятие сигнала запускает процессор из исходного состояния, т.е. процессор начинает выполнение первой команды с первого цикла и первого такта (Т1) в первом цикле. Длительность сигнала RESET должна быть не менее трех периодов тактовой частоты.

В такте Т1 каждого машинного цикла процессор выдает на адресную шину адрес ячейки памяти, к которой он хочет обратиться (после сигнала RESET адрес ячейки будет 0000H). В этом же такте процессор выдает на шину данных слово состояния, которое "говорит" о том, что собирается делать процессор в данном цикле.

В такте Т2 процессор принимает информацию по шине данных и анализирует состояние сигнала READY. Если READY = "1", то процессор продолжает работу и переходит к такту Т3, если READY = "0", то процессор переходит в режим "Ожидание" и формирует сигнал WAIT высого уровня (WAIT = "1").

В такте Т3 при условии, что READY = "1", процессор передает информацию по шине данных и анализирует сигнал HOLD. Если HOLD = "1", то по окончанию Т3 процессор переходит в состояние захвата и подтверждает это высоким уровнем сигнала HLDA (HLDA = "1"). При этом процессор "отключается" (переходит в высокоомное состояние) от шин данных/адреса и переводит выходные управляющие сигналы, кроме HLDA и WR, в состояние низкого уровня.

Если процессор смог благополучно выполнить такт Т3 первого цикла команды, то он переходит ко второму машинному циклу. И так такт за тактом, цикл за циклом, команда за командой процессор выполняет программу.

У читающего должен возникнуть естественный вопрос, как разобраться в такой путанице, поскольку произвольная команда может выполняться и за один цикл и за пять, а цикл может занимать от трех до пяти тактов. Правда есть сигнал SYNC, привязанный к началу каждого цикла, но этого, конечно, мало.

Выше мы упомянули о том, что в первом такте каждого машинного цикла процессор выдает на шину данных слово состояния, которое кодирует тип цикла. Число типов машинных циклов десять (М1 - М10):

* М1 - прием кода команды в регистр команд.
* М2 - цикл чтения ЗУ по содержимому программного счетчика или содержимому одного из регистров BC, DE, HL.
* М3 - цикл записи в ЗУ по содержимому программного счетчика или содержимому одного из регистров BC, DE, HL.
* М4 - цикл чтения стека по содержимому указателя стека.
* М5 - цикл записи в стек по содержимому указат. стека.
* М6 - цикл ввода информации в аккумулятор из внешнего устройства.
* М7 - цикл ввода информации в аккумулятор из внешнего устройства.
* М8 - цикл прерывания (прием кода команды RST или CALL из контроллера прерываний).
* М9 - цикл останова
* М10 - цикл прерывания при останове (прием кода команды RST или CALL при выводе микропроцессора из режима "Останов" по прерыванию).

Таким образом в такте Т1 каждого машинного цикла сообщается о типе выполняемого цикла. Мы приводим наименования сигналов слова состояния и соответствие их машинным циклам:

```

```

Вот теперь мы достаточно подготовлены, чтобы обратить свой взор на лист 3 альбома схем.

Прежде всего отметим, что в формировании управляющих сигналов участвуют разряды D0, D1, и D5 шины данных. Как вы уже знаете, в "Корвете" обращение к устройствам ввода/вывода (УВВ) происходит как к ячейкам памяти. Поэтому команды IN и OUT не используются, и связанные с их выполнением циклы М6 и М7 нас интересовать не будут. Нас так же не будут интересовать циклы, связанные с разрядами D2, D3, D4, D6 и D7.

Внимательно посмотрев на таблицу выше, мы можем сказать, что нам нужно рассмотреть циклы М1-М5, М8 и М10. Причем, с точки зрения схемотехники "Корвета", М2 совпадает с М4, а М3 с М5. На рис. 5 приведены временные диаграммы управляющих сигналов для циклов М1, М2 и М3. Прокомментируем коротко эти сигналы.

Сигналы SINC, DBIN и WR формируются по фронту F2 в тактах Т1, Т2, Т3 соответственно и имеют длительность 400 нсек. Слово состояния на шине данных сопровождается сигналом SINC. Адрес на шине адреса сохраняется до следующего цикла.

Сигнал ACCESS формируется с помощью сдвигового регистра D27, который работает следующим образом. Если на входе EWR сигнал высокого уровня, то данные загружаются в регистр с параллельных входов 0, 1, 2, 3 по отрицательному перепаду на входе С. Низкий уровень сигнала на входе EWR вызывает загрузку данных с последовательного входа 0 --> (1 ножка) синхронно с каждым отрицательным перепадом на входе С. При этом на выходе О (13 ножка) появляется сигнал, соответствующий последовательному входу, на выходе 1 (12 ножка) появляется сигнал, сдвинутый с выхода О, на выходе 2 сигнал, сдвинутый с выхода 1, а на выходе 3 с выхода 2. Таким образом данные, загружаемые с последовательного входа, сдвигаются относительно выходов регистра. Этой информации достаточно, чтобы построить все временные диаграммы на рисунке 5.

Обратите внимание, что сигнал доступа к памяти ACCESS при чтении формируется в такте Т2, а при записи в такте Т3 и практически совпадает по времени с сигналом WR.

Рассмотрим теперь сигнал 1READY, который через разъем XS3 поступает на вход RA (готовность) процессора. Он формируется на выходе микросхемы D24 (ИЛИ). На вход D24 подаются два сигнала CSDEV и WAIT. CSDEV - это сигнал обращения к УВВ (при обращении он имеет низкий уровень). Когда обращения к УВВ нет, то на выходе 1READY сигнал высокого уровня и процессор, анализируя этот сигнал в такте Т2, не переходит в режим ожидания. При обращении к УВВ низкий уровень сигнала CSOEV появляется на выходе D24 и процессор переходит в режим ожидания, устанавливая на выходе WI сигнал WAIT высокого уровня. Сигнал WAITЕ формирует сигнал 1READY высокого уровня, поэтому, пропустив после такта Т2 один такт - такт ожидания, процессор продолжает работу с выполнения такта Т3. Таким образом при обращении к УВВ процессор автоматически вставляет один такт ожидания между тактами Т2 и Т3. Эта хитрость применена для надежного обращения к УВВ. На рисунке 5 такт ожидания не показан. Заметим только, что в случае появления такта ожидания сигнал DBIN автоматически расширяется до 800 нсек.

Еще одно замечание по поводу обращения к УВВ. Связь с УВВ организована через двунаправленный буфер D21 (лист 3).
При отсутствии обращения к УВВ высокий уровень на входе EZ микросхемы D21 удерживает ее входы/выходы в состоянии высокого импеданса. В машинном цикле ввода информации (МЗ) сигнал DBIN через инвертор D26 (3.23) поступает на вход управлением передачи и переводит D21 в режим ввода информации в процессор. Если сигнал DBIN отсутствует, то при выборе микросхемы она переключается в режим вывода информации.

Нам осталось разобраться с обработкой прерываний, т.е. с сигналом INTA. При формировании контроллером прерываний D8(12.4) сигнала INT процессор заканчивает выполнение команды и начинает выполнять трехбайтную команду "CALL", которую он принимает из контроллера прерываний, при условии, что прерывания разрешены командой "EI".

Как это делается? Попробуем разобраться без наглядной иллюстрации. В первом цикле процессор выполняет цикл М10, который отличается от М1 наличием единицы в разряде D0 шины данных. Кроме этого вводится такт ожидания, потому при обращении к контроллеру прерываний вырабатывается сигнал CSDEV. Положительным фронтом сигнала на тактовом входе С триггера D15 (3.25) единица в D0 устанавливает выход триггера D15 (5 ножка) в единицу. На рисунке 5 сигнал на тактовом входе D15 показан.
Изменить состояние D15 теперь можно двумя способами. Первый: с приходом следующего положительного перепада на тактовый вход сигнал на линии D0 должен низкий уровень. Но такая ситуация может наступить после выполнения полностью команды "CALL". Второй способ: подать на вход R (RESET) сигнал низкого уровня. Из рисунка 5 видно, что это возможно при выполнении цикла записи (М3 или М5).

Итак, триггер D15 находится в состоянии единица. Сигнал высокого уровня с выхода триггера поступает на дешифратор адресов, запрещая его работу, и на микросхему D18 (3.27) - И. Поэтому сигнал INTA будет инвертированным сигналом DBIN. Сигнал INTA выбирает контроллер прерываний и в цикле М10 в процессор вводится код команды CALL из контроллера.

Команда "CALL" выполняется за пять машинных циклов, из которых первые три связаны с вводом команды в процессор, а два последних с записью в стек текущего адреса прерванной команды. Первый цикл (М10), мы уже разобрали. Затем выполняется два раза подряд цикл М8, отличающийся от М2 только единицей в разряде D0 шины данных. В первом цикле М8 читается младший байт адреса, а во втором цикле М8 - старший байт адреса перехода на программу обработки прерываний. В конце цикла М8 будет вырабатываться сигнал INTA, который и обеспечивает чтение из контроллера.

В четвертом и пятом циклах будет выполняться цикл М5, обеспечивающий запись в стек старшего и младшего байта адреса прерванной программы. Отрицательный сигнал с выхода регистра D27 (3.26) сбросит триггер D15 в нуль. Поэтому в четвертом и пятом циклах команды CALL сигнал INTA формироваться не будет.

Кажется нам удалось обойтись без временных диаграмм. Чтобы совсем закончить с листом 3, добавим несколько слов о кнопке SA1, с помощью которой формируется сигнал RESET. Главным элементом в цепи формирования сигнала RESET является микросхема D19 (3.9). Это триггер Шмидта, который обладает гистерезисными свойствами. Поэтому через 0,5 сек после включения питания, или отпускания кнопки RESET, сигнал скачком принимает значение низкого уровня и разрешает процессору работать.

## Таблица контактов процессора КР580ВМ80А

```

номер !Наимено-!Направ-    !
кон-  !вание   !ление      !   Описание сигнала
такта !сигнала !передач    !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 01   ! SYNC  ! Вход      ! Высокий уровень на выходе микропро-
 02   ! SYNC  ! Выход     ! цессора говорит о том, что на шине
      !        !           ! данных - слово состояния.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 03   ! -WR    ! Вход      ! Выход микропроцессора TF сигнализи-
 04   ! -WR    ! Выход     ! рует о передаче данных. Активный уро-
      !        !           ! вень низкий.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 05   ! READY    ! Выход     ! Вход готовности микропроцессора. Низ-
 06   ! READY    ! Вход      ! кий уровень сигнала на этом входе при-
      !        !           ! останавливает выполнение команды и
      !        !           ! вводится такт ожидания.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 07   !  DBIN    ! Вход      ! Выход микропроцессора RC сигнализи-
 08   !  DBIN    ! Выход     ! рует о приеме данных.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 09   !-CSROM1 ! Вход      ! Сигнал выборки ПЗУ. Активный уровень-
 10   !-CSROM1 ! Выход     ! низкий.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 11   !  А0    ! Выход     ! Разряд ША
 12   ! -RESET   ! Вход      ! Вход сброса устанавливает микроЭВМ в
      !        !           ! исходное состояние. Активный уровень -
      !        !           ! низкий.
 13   !  А1    ! Выход     ! Разряд ША
 14   !  HLDA  ! Выход     ! Сигнал подтверждения захвата
 15   !  А2    ! Выход     ! Разряд ША
 16   ! HOLD   ! Вход      ! Вход захвата микропроцессора
 17   !  А3    ! Выход     ! Разряд ША
 18   ! Земля  !           !
 19   !  А4    ! Выход     ! Разряд ША
 20   ! -F1T   ! Выход     ! Последовательность синхроимпульсов
      !        !           ! частотой 2,5 МГц, ТТЛ - уровень
 21   !  А5    ! Выход     ! Разряд ША
 22   ! -F2T   ! Выход     ! Последовательность синхроимпульсов
      !        !           ! частотой 2,5 МГц, ТТЛ - уровень
 23   !  А6    ! Выход     ! Разряд ША
 24   !  ДО    !Вход/Выход ! Разряд ША
 25   !  А7    ! Выход     ! Разряд ША
 26   !  Д1    !Вход/Выход ! Разряд ША
 27   !  А8    ! Выход     ! Разряд ША
 28   !  Д2    !Вход/Выход ! Разряд ША
 29   !  А9    ! Выход     ! Разряд ША
 30   !  Д3    !Вход/Выход ! Разряд ША
 31   !  А15   ! Выход     ! Разряд ША
 32   !  Д7    !Вход/Выход ! Разряд ША
 33   !  A12   ! Выход     ! Разряд ША
 34   !  Д6    !Вход/Выход ! Разряд ША
 35   !  А13   ! Выход     ! Разряд ША
 36   !  Д5    !Вход/Выход ! Разряд ША
 37   !  А14   ! Выход     ! Разряд ША
 38   !  Д4    !Вход/Выход ! Разряд ША
 39   !  А10   ! Выход     ! Разряд ША
 40   !  А11   ! Выход     ! Разряд ША
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```