Мир книг по микроэлектронике
Книги авторства Белова Александра
На главнуюРеквизиты автора Сайт МирМК FUSE калькулятор Сайт "Симферополь вчера и сегодня"

<< Предыдущая страница К оглавлению www.mirmk.ru Следующая страница>>

Глава 12. Прямой доступ к памяти.

Теперь рассмотрим систему прямого доступа к памяти. Как уже рассматривалось в главе 8, обычно в микропроцессорной системе именно процессор управляет всей ее работой. Он выдает на шину адреса рабочий адрес, он выдает на шину управления сигналы RD, WR, MREQ и IORQ. Режим прямого доступа к памяти – это тот случай, когда это не так. Он применяется в тех случаях, когда нужно перенести большой блок информации из одной области памяти в другую. Либо байт за байтом выдать блок информации на один из портов ввода/вывода. Либо наоборот, получить блок информации байт за байтом из порта ввода/вывода, и записать его в какую ни, будь область памяти. Под блоком информации естественно подразумевается некую последовательность байтов, хранящуюся в памяти в смежных ячейках (например, с адреса ADDR1 по адрес ADDR2). Хороший пример такой задачи – вывод текста на печать. Текстовая информация хранится в памяти компьютера следующим образом: Каждая буква, знак препинания, арифметические значки и другие символы закодированы некими числами. Существует множество таблиц кодировки. В настоящее время наиболее распространен американский стандарт ASCII. В памяти компьютера располагаются последовательно коды букв текста, как они пишутся на экране. Пробел между словами и предложениями – это тоже символ. Он также имеет свой код. Свои коды имеют и специальные символы. Например, символ перевода строки и символ перехода на новую страницу. Правда такой способ представления текста используется только в простейших случаях. Например, в формате TXT (файлы программы «Блокнот»). Современные текстовые процессоры, такие, как «Microsoft Word”, кроме кодов символов хранят огромное количество служебной информации. Это информация о размере и типе шрифта, таблицы, форматирование и еще множество прибамбасов, которые введены для получения высококачественного текста. Мы не будем рассматривать этот случай. Считайте, что это простейший текстовый редактор. А принтер - простейший матричный. Матричные принтеры исторически устроены так, что имеют в своей памяти фиксированный набор шрифтов. Для того, что бы такой принтер напечатать текст, нужно просто последовательно, выдавать на него коды символов с компьютера. Получив код очередного символа, процессор, встроенный в принтер, самостоятельно печатает этот символ на бумаге. Получив код перевода строки, принтер прокрутит бумагу на одну строку. Получив код перевода страницы, принтер прокрутит бумагу до конца и произведет загрузку нового листа. Естественно с такой задачей прекрасно может справиться и главный процессор. Нужно только написать соответствующую программу. Так раньше и делали. Но с появлением скоростных принтеров, такой способ перестал удовлетворять. Если блок информации передается программным путем, нельзя достигнуть максимальной производительности, так как для вывода одного байта процессор должен выполнить 5-6 команд программы. Нужно считать из памяти очередной код, выдать его в порт, увеличить счетчик адреса на единицу, проверить, не достигнут ли конец блока. Затем повторить все для всех остальных байтов, составляющих этот блок информации.

Для ускорения таких операций был придуман режим прямого доступа к памяти. Для осуществления этого режима были разработаны специальные микросхемы – контроллеры прямого доступа к памяти. На рисунке 30 приведена схема подключения контроллера прямого доступа к памяти (ПДП) к микропроцессору и микропроцессорной системе.

Рис. 30.

Микросхема контроллера прямого доступа к памяти выполнена по технологии программируемых микросхем. В данном случае понятие «программируемая» означает то, что микросхема имеет внутри специальные регистры, которые подключаются к системной шине, как порты ввода/вывода. Процессор может записывать в эти порты различные числа и тем самым менять режимы работы микросхемы. Так процессор записывает в контроллер прямого доступа к памяти адреса начала и конца блока памяти, подлежащего передаче. Кроме того, таким же образом в микросхему ПДП записывается режим работы (выдать блок в порт / считать блок из порта / переместить блок в памяти). Обычно команды программирования микросхем помещают в начале управляющей программы микропроцессора. Выполнив эти команды, процессор переходит к выполнению своей основной программы. А контроллер прямого доступа в это время находится в режиме ожидания. Он ждет специального сигнала: Запроса на ПДП от одного из внешних устройств. Такие запросы должны поступать на один из входов DRQ0…DRQ4 контроллера ПДП. В нашем случае сигнал запроса ПДП поступает от схемы параллельного интерфейса, который вырабатывает его при получении сигнала готовности от принтера. При получении сигнала запроса на ПДП, микросхема контроллера формирует сигнал запроса на захват (HOLD), который поступает на центральный процессор. Получив этот сигнал, процессор сначала заканчивает текущую операцию, затем переходит в специальный режим прямого доступа к памяти и сообщает об этом контроллеру ПДП при помощи сигнала подтверждения захвата (HLDA). В режиме прямого доступа процессор отключается от системной шины, и управление полностью берет на себя контроллер ПДП. Он сам вырабатывает сигналы адреса, сигналы управления (RD, WR, MREQ, IORQ). Таким образом, данные с максимальной скоростью передаются на принтер. По окончании процесса, контроллер ПДП отключается от системной шины и снимает с процессора сигнал HOLD. Процессор возобновляет свою работу.

В любом персональном компьютере имеется несколько устройств, которые пользуются системой прямого доступа к памяти. В IBM совместимых компьютерах, к которым относится славное семейство «пентиумов», существует четыре канала прямого доступа к памяти. Такой механизм работы с памятью, кроме принтеров используют сетевые и звуковые карты, а так же накопители на гибких и жестких дисках.

 

<< Предыдущая страница К оглавлению www.mirmk.ru Следующая страница>>