Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) ( 66 ) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (66)

байт/с (интервал 16 мкс). Вместе с тем цикл полупроводниковой оперативной памяти составляет всего 0,2- 2 мкс и, следовательно, скорость передачи ограничивается только процессором. Поэтому для передач данных непосредственно между устройствами внешней памяти и оперативной (основной) памятью разработан специальный метод передачи данных без участия процессора, получивший название прямого доступа к памяти (ПДП). Аппаратные средства реализации канала ПДП называются контроллером ПДП (КПДП). Первые КПДП выполнялись на микросхемах с малой и средней степенью интеграции, а сейчас в большинстве микропроцессорных семейств выпускаются однокристальные контроллеры ПДП.

В идеальном случае ПДП совершенно не должен влиять на действия процессора, но для этого потребуется сложный и дорогой тракт в основную память. Поэтому в большинстве ЭВМ используется временное разделение (мультиплексирование) обшей системной шины между процессором и КПДП. В обычных условиях системной шиной «распоряжается» процессор, управляюший всеми передачами по шине. Когда же инициируется режим ПДП, шиной «распоряжается» КПДП, управляя передачами данных непосредственно между основной и внешней памятью, а действия процессора приостанавливаются и он отключается от системной шины (рис. 5-16). Электрическое отключение достигается переводом тристабильных буферов на шине адреса, шине данных и некоторых линиях управления памятью и вводом-выводом в состояние высокого выходного сопротивления.

Разработано две разновидности ПДП. В режиме идентификации состояния памяти передачи ПДП выполняются без информирования процессора, для чего используются те интервалы машинных циклов, когда процессор не обращается к памяти, а выполняет внутренние преобразования

Основная память

Трат ПДП

Процессор

Контроллер ПДП

Устройства внешней памяти

Рис. 5-16. Режим прямого доступа к памяти



Запрос ПйП Запрос ПЦП

Процеаор-- 1 L

КПДП -

Передача одного байта {слова) Запрос ПДП

Процессор - -------

КПДП ------

Передача блока данных

Рис. 5-17. Прямой доступ к памяти с пропуском тактов

данных. Такими интервалами в микропроцессоре КР580 являются такты Т4 и Т5. Процессор (или дополнительная схема) идентифицирует эти интервалы для КПДП специальным сигналом, означающим доступность системной шины. Производительность процессора в таком режиме не уменьшается, но для каждого процессора необходим КПДП, а сами передачи носят нерегулярный характер, что ведет к уменьшению скорости передачи данных.

В режиме с пропуском тактов (точнее, с «займом» тактов) КПДП при необходимости передачи данных сигналом запроса ПДП DMA REQ или HOLD заставляет процессор отключаться от системной шины на несколько тактов. В процессорах СМ сигнал запроса ПДП называется сигналом запроса внепроцессорной передачи NPR. После восприятия запроса ПДП процессор завершает текущую команду, а иногда фазу выборки текущего машинного цикла и приостанавливает свои действия. Микропроцессор КР580 освобождает системную щину после такта Тз текущего машинного цикла. В следующем такте или тактах системной шиной управляет КПДП и между основной и внешней памятью передается один элемент данных - байт или слово. Внутренние операции процессора обычно совмещаются во времени с передачами ПДП. За одно инициирование ПДП мо-

Запрос ПДП

Разрешение

Выдача адреса

Передача данных

Внешняя память

Профессор

Контроллер ПДП

Окончание передачи

Возобновление программы

Внешняя память

Прои,ессор

Рис. 5-18. Последовательность передачи одного элемента данных



жет передаваться также целый блок данных, например сектор гибкого диска, что характерно для пакетной передачи. Таким образом, передачи ПДП осуществляются путем пропуска тактов памяти в выполняемой программе. Иллюстрация данной разновидности ПДП приведена на рис. 5-17. При выполнении передач ПДП содержимое внутренних регистров процессора не модифицируется, поэтому его не нужно запоминать в памяти, а затем восстанавливать, как при обработке прерываний. Выполнение программы возобновляется сразу после снятия сигнала запроса ПДП. Тем не менее в условиях интенсивных передач ПДП эффективная производительность процессора уменьшается.

Аппаратная реализация каналов ПДП определяется особенностями ЭВМ и устройств внешней памяти, но можно сформулировать общие принципы работы большинства каналов ПДП. На рис. 5-18 показаны основные этапы передачи одного элемента данных в режиме ПДП, называемой также циклом ПДП. Последовательность передачи инициируется сигналом запроса от устройства внешней памяти, например накопителя на гибком диске; этот сигнал контроллер ПДП транслирует в запрос для процессора. Процессор реагирует сигналом подтверждения (разрешения) DMA АСК или HLDA, приостанавливает программу (но может продолжать внутренние операции) и отключается от системной шины. Для осуществления передачи КПДП выдает на шину адреса адрес ячейки памяти, к которой будет обращение для записи или считывания. После этого по шине данных выполняется собственно передача данных, для чего КПДП генерирует необходимые управляющие сигналы основной и внешней памяти. Затем устройство внешней памяти снимает запрос ПДП, что приводит к снятию соответствующего запроса в процессор, и он возобновляет приостановленную программу. Если в ЭВМ имеется несколько устройств внешней памяти, описанная последовательность должна в себя включать этап выборки устройства, инициировавшего запрос ПДП, и блокирования остальных устройств.

При передаче блока данных последовательность на рис. 5-18 необходимо дополнить действиями модификации адреса основной памяти и проверки окончания передачи блока. Для этого в КПДП загружаются начальный адрес области основной памяти и число передаваемы с байт или слов. После каждой передачи в КПДП прокззодится инкремент адреса, выдаваемого на шину адреса, и декремент счетчика байт или слов. Передача блока завершается, когда счет-



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) ( 66 ) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)