
- •Вычислительные машины (конспект лекций) однопроцессорные эвм
- •Часть 3
- •8. Принципы организации ввода / вывода информации в микроэвм 5
- •8.1. Общие принципы организации вв
- •8.2. Программный вв
- •8.3. Вв по прерываниям
- •8.4. Вв в режиме пдп
- •8.4.1. Пдп с захватом цикла
- •8.4.2. Пдп с блокировкой процессора
- •8.5. Адаптер последовательного интерфейса
- •8.6. Адаптер параллельного интерфейса
- •Вопросы для самопроверки
- •Контрольные задания
- •9. Некоторые вопросы развития архитектуры эвм
- •9.1. Теги и дескрипторы. Самоопределяемые данные
- •9.2. Эвм risc-архитектуры
- •9.3. Методы оптимизации обмена процессор-память
- •9.3.1. Конвейер команд
- •9.3.2. Расслоение памяти
- •9.3.3. Буферизация памяти
- •9.4. Динамическое распределение памяти. Виртуальная память
- •9.4.1. Виртуальная память
- •9.4.2. Сегментно-страничная организация памяти
- •9.5. Защита памяти
- •9.5.1. Защита отдельных ячеек памяти
- •9.5.2. Метод граничных регистров
- •9.5.3. Метод ключей защиты
- •9.6. Алгоритмы управления многоуровневой памятью
- •9.7. Сопроцессоры
- •Вопросы для самопроверки
- •Контрольные задания
- •10. Эволюция шинной архитектурыibmpc
- •10.1. Локальная системная шина
- •10.2. Шина расширения
- •10.2.1. Шина расширенияisa
- •10.2.2. Шина расширения мса
- •10.2.3. Шина расширенияeisa
- •10.3. Локальные шины расширения
- •10.3.1. Локальная шинаvesa(vlb)
- •10.3.2. Локальная шинаpci
- •Компоненты материнской платы
- •Разновидности слотов
- •Типы разъемов оперативной памяти
- •Разъемы для подключения внешних устройств
- •Разъемы для подключения дисковых устройств
- •Разъемы процессоров
- •Вопросы для самопроверки
- •Контрольные задания
- •11. Принципы организации систем прямого доступа к памяти
- •11.1. Способы организации доступа к системной магистрали
- •11.2. Возможные структуры систем пдп
- •11.3. Организация обмена в режиме пдп
- •11.3.1. Инициализация средств пдп
- •11.3.2. Радиальная структура (slave dma)
- •11.3.3. Радиальная структура (bus master dma)
- •11.3.4. Цепочечная структура (bus master dma)
- •11.4. Принципы организации арбитража магистрали
- •Вопросы для самопроверки
- •Контрольные задания
11. Принципы организации систем прямого доступа к памяти
Материал, изложенный в предыдущих разделах, предполагал, что передача данных между ОП и ПУ, как правило, осуществляется с помощью процессора. Это так называемая программно-управляемая передача данных (программно-управляемый ввод/вывод), которая осуществляется при непосредственном участии и под управлением процессора. В англоязычной литературе – Programmed Input/Output (PIO). Процессор при этом выполняет соответствующую процедуру ввода/вывода (ВВ), являющуюся либо частью основной программы, либо оформленную как подпрограмма. Данные между ОП и ПУ пересылаются через процессор. Операции ВВ инициируются текущей командой программы или запросом прерывания от ПУ. Это соответствует принципам функционирования классической неймановской машины, описание которой приведено в гл.1. Более подробно процедура программно-управляемой передачи данных (программно-управляемого ВВ) рассмотрена в гл. 9.
Между тем такой вариант обмена между ОП и ПУ во многих случаях является далеко не самым оптимальным, а иногда вообще невозможным. Причин тому несколько. Рассмотрим очень коротко основные из них.
При программно-управляемом ВВ процессор "отвлекается" от выполнения основной программы решения задачи. Операции ВВ достаточно просты, чтобы эффективно загружать логически сложную быстродействующую аппаратуру процессора. В результате при использовании программно-управляемого ВВ снижается производительность ЭВМ в целом.
При пересылке любой единицы данных (байт, слово) процессор выполняет достаточно много команд, чтобы обеспечить буферизацию данных, преобразование форматов, подсчет количества переданных единиц данных, формирование адресов памяти и регистров ПУ. В результате скорость передачи данных при программно-управляемом ВВ (т.е. через процессор) может оказаться недостаточной для работы с высокоскоростными ПУ, например с накопителями на жестких дисках, видеосистемами, быстродействующими аналого-цифровыми и цифро-аналоговыми преобразователями различного назначения, и т.д.
Большинство современных сложных ПУ, таких как видеосистемы, сетевые карты, жесткие диски и т.д., осуществляют обмен с ОП целыми блоками информации. В этом случае перечисленные выше непроизводительные временные затраты процессора становятся особенно существенными.
Обмен в режиме прерывания, несмотря на все свои достоинства (см. гл. 6), требует еще помимо перечисленных выше непроизводительных временных затрат время на сохранение вектора состояния текущей программы в стеке и его последующего восстановления. Кроме того, прерывание в большинстве случаев возможно только после завершения текущей команды.
Несмотря на широкое использование программно-управляемого ВВ, для ускорения операций обмена данными между ОП и ПУ и разгрузки процессора от управления этими операциями в современных ЭВМ используется специальный режим обмена, получивший название режим прямого доступакпамятиили простопрямой доступ к памяти (ПДП). В англоязычной литературе –Direct Memory Access (DMA). Ниже, в зависимости от контекста излагаемого материала, будут употребляться обе аббревиатуры – ПДП и DMA.
Прямым доступом к памяти называется режим, при котором обмен данными между ОП и регистрами ПУ осуществляется без участия центрального процессора за счет специальных, внешних по отношению к нему, электронных схем. Простейший вариант такого обмена рассмотрен в гл. 9.
Введение режима ПДП (реализация каналов ПДП) всегда усложняет аппаратную часть ЭВМ, однако позволяет повысить скорость выполнения операций обмена ОП-ПУ, разгружает центральный процессор от обслуживания операций ВВ, повышает общую производительность ЭВМ. При наличии кэш-памяти достаточного объема режим ПДП в ряде случаев позволяет реализовать параллельное выполнение операций обмена и обработку команд текущей программы процессором, что также повышает общую производительность ЭВМ. Более того, наличие механизма прямого доступа к памяти позволяет поддерживать многопроцессорность вычислительной системы. На последнем моменте необходимо остановиться более подробно.
Дело в том, что термин ПДП (как и DMA), используемый при изложении материала настоящего раздела, в общем случае не совсем точно отражает суть процессов, происходящих в ЭВМ. Точнее, прямой доступ к памяти (к ОП) является только частным случаем организации процедур доступа к системной магистрали со стороны множества устройств, в том числе и процессоров. Под доступом к системной магистрали понимается возможность какого-либо устройства, имеющего соответствующее аппаратно-программное обеспечение (ведущее устройство, интеллектуальное устройство магистрали), занимать на какое-то время системную магистраль и полностью управлять ею, вырабатывая все необходимые управляющие сигналы. При этом могут осуществляться связи не только ОП-ПУ, но и ПУ-ПУ. Между тем смысл понятия "память" можно расширить и понимать под памятью не только ОП, но и адресуемые регистры ПУ. В этом случае использование термина ПДП (как и DMA) будет вполне корректно.
Следует иметь в виду, что термин "периферийное устройство (ПУ)" здесь используется достаточно условно. В англоязычной литературе ведущее устройство магистрали, инициирующее обмен, принято называть master. Устройство, к которому обращается master, является подчиненным, и его принято называтьslave. Таким образом, более правильно говорить о реализации связей master-slave (M-S), а не ПУ-ПУ или ОП-ПУ. Мастером может быть только интеллектуальное устройство, имеющее средства управления магистралью (СУМ), которые, как минимум, должны "уметь" формировать и модифицировать адреса обращения, вести контроль за размером переданного блока информации и генерировать управляющие сигналы магистрали. Между тем в зависимости от текущего состояния вычислительного процесса одно и то же интеллектуальное устройство магистрали может выступать и как master, и как slave. Устройства магистрали, не имеющие СУМ, всегда являются подчиненными, т.е. slave.
Естественно, что предоставление магистрали в распоряжение того или иного устройства (захват магистрали) может происходить только на приоритетной основе. Эта процедура получила название арбитраж магистрали, а устройство, ее реализующее, –арбитр магистрали. В ряде случаев арбитр может строиться как отдельное устройство, размещенное на системной магистрали. В других случаях арбитраж магистрали выполняет сам процессор. Наличие процедуры арбитража позволяет размещать на системной магистрали несколько интеллектуальных устройств, в том числе и процессоров. В соответствии с принятой дисциплиной обслуживания (арбитража) каждое из них будет получать в свое распоряжение системную магистраль и устанавливать связи как с ОП, так и с регистрами других устройств магистрали. Следует отметить при этом, что в процедуре арбитража всегда предусматриваются средства, предотвращающие монопольный захват магистрали одним устройством. Часть этих средств может быть сосредоточена в арбитре, другая часть может быть распределена между устройствами магистрали, использующими режим ПДП.