Назад...   К оглавлению раздела   Далее...

 

Трансляция внешних устройств с помощью протокола DS

При трансляции адресов внешних устройств (ВУ) с помощью сегментной трансляции (реализация протокола DS) биты дескриптора сегмента в регистре Sri имеют следующее назначение (см. рисунок E.15):

  • T=1 -- определяет вид трансляции;
  • Ks, Kp -- адресные ключи, которые выдаются на шину адреса при адресации внешних устройств;
  • BUID -- 9-ти битовый код идентификации внешнего устройства, к которому произошло обращение.

Этот вид трансляции адреса реализуется только при передаче данных с помощью команд загрузки-сохранения содержимого регистров GPR, или FPR.

Данный вид трансляции адреса реализуется, если из регистра SRi выбирается дескриптор памяти, имеющий установленный бит T=1. При этом реализуется специальный протокол DS (Direct Store -- прямая запись) прямого обмена данными между процессором и внешними устройствами. По этому протоколу организуются пара циклов обмена, каждый из которых занимает 3 такта. В первой части цикла на адресную шину выдается адресный пакет P0, а во второй части -- P1. При реализации пакета на внешние выводы микропроцессора выдается 8-ми разрядный код XATC, определяющий тип и параметры цикла.

Пакет P0

Рис. E.18. Формат адресного пакета P0.

Пакет P0 (см. рисунок E.18.), выдаваемый DMMU в начале обмена данными, содержит ключевой бит Ks или Kp, код BUID, являющийся идентификатором внешнего устройства, и служебную информацию, которая может быть записана в разрядах 12-27 сегментного регистра SRi. Таким образом, биты PA2-27 физического адреса соответствуют битам выбранного регистра SRi, причем значение PA2=Ks, если микропроцессор работает в режиме супервизора, и PA2=Kp -- в режиме пользователя. В разрядах PA28-31 указывается код идентификации (номер) процессора, выбираемого из регистра PIR. Пакет P0 определяет источник и приемник данных -- процессор с номером PID и внешнее устройство с номером BUID.

Пакет P1

Рис. E.19. Формат адресного пакета P1.

После цикла P0 DMMU выдает пакет P1 (см. рисунок E.19.), содержащий разряды 0-3 регистра SRi и разряды EA4-31. Этот пакет позволяет выбрать различные адресаты (регистры) в составе внешнего устройства, к которым выполняется обращение (запись или считывание) в данном цикле.

В соответствии с протоколом DS обмен начинается одним циклом инициализации (начальной установки) и завершается циклом подтверждения. Между этими циклами выполняется необходимое число циклов пересылки данных.

В цикле инициализации пересылка данных не производится, а выдаются только пакеты P0, P1 и коды XATC, определяющие вид обмена и его участников. Код XATC, сопровождающий пакет P1, указывает число байтов, которые будут переданы при выполнении команды пересылки. Максимальное число передаваемых байтов равно 128. Это число достигается при выполнении команд групповых пересылок или пересылки строк символов.

Передача данных производится в последующих парных циклах обмена. В первой части цикла на шину адреса выдается пакет P0, а шина данных -- свободна. Затем выдается пакет P1, а пересылаемые данные поступают на выводы DH0-31 (старшее слово) шины данных. Код XATC при этом указывает общее число байтов (1, 2 или 4), переданных в этом цикле. Общее число циклов обмена, например, при передаче 128 байт составит 33.

Пакет Pr

Рис. E.20. Формат адресного пакета Pr.

Обмен данными завершается циклом подтверждения, при котором передачи данных не происходит, а из внешнего устройства передается на шину адреса пакет Pr. (см. рисунок E.20.) Он содержит коды источника и приемника PID, BUID, полученные от процессора в процессе инициализации в пакете P0, и бит ошибки EB. При этом, если EB=1, то внешнее устройство обнаружило какое-либо нарушение во время обмена данными. Если полученные коды PID, BUID не совпадают с аналогичными кодами в регистрах PIR, SRi, а также при значении бита EB=1 реализуется исключение типа "ошибка выбора данных" (Av=$00300).

Следует отметить, что данный тип обмена реализуется только при наличии специального контроллера, реализующий протокол DS, а по скорости обмена он существенно уступает пакетному циклу обмена данными, использующего 64-х разрядную шину данных.

 

Назад...   К оглавлению раздела   Далее...

 

Гостевая книга Обсуждение в блоге. Отправить E-mail Автору проекта.

=== *** === *** === *** ===

В настоящее время проект закрыт (в версии 1.3.0 beta). Автор приносит извинения за прекрашение разработки.

Hosted by uCoz