logo search
Shpory gosy

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

Принято условно процедуру передачи данных между CPU и ОЗУ называть пересылка, а обмен данными между ОЗУ и ВУ (ввод/вывод). Проблема ввод/вывод данных стоит при разработке любого вычислителя поскольку без ВУ вычислителей не бывает. Поэтому разделяют эту процедуру ввод/вывод на 3 способа:

  1. Программный ввод/вывод. Сама процедура ввод/вывод выполняется в 2 этапа. 1-ый информация из ВУ пересылается в регистр CPU. В общем случае регистр произвольный, но без него нельзя. 2-ой этап содержимое Рг. CPU пересылается в ОЗУ. Для выполнения это процедуры следует выполнить 2 команды. Способ адресации прямой или косвенный. Поскольку ввод/вывод программный ВУ имеют адреса в интервале 1 байта, их адресное пространство не входит в общее адресное пространство т.е. распределение адресов имеет вид и нам нужно составлять 2 таблицы. Пересылать содержимое между ВУ и CPU возможно с использованием 2-х команд прямой адресации IN ADR и OUT ADR (адресная часть 1 байт). Устройство управления CPU получив команду IN вырабатывает сигнал блокировки памяти (ОЗУ и ПЗУ отключается) и по ША по младшему ее байту мы обращаемся к портам ввода/вывода для доступа к ВУ. Такой подход существовал в системе IBM360. Надежный и удобный. Вместе с тем для реализации программного ввода/вывода обязательно наличие в системе команд указанных 2-х операций. Если у CPU нет таких команд, способ не подходит. Поскольку с ВУ мы вводим/выводим не один байт данных, а чаще массив, вторая пересылка CPU ОЗУ чаще выполняется с косвенной адресацией. Для ввода одного слова нам понадобится 5 тактов (20 циклов). Команды IN и OUT имеются у CPU в системе команд IBM, но их нет у CPU с системой команд DEC.

  2. В вод/вывод с отображением в памяти. Более универсальный способ, когда адресное пространство ВУ внесено в общее адресное пространство. Например: процедура также требует 2-х команд, но первая операция – это команда прямой адресации к порту ввода/вывода c полным адресом. Вторая команда пересылка содержимого (А) в ячейку памяти (адресация косвенная).

1-4 6 циклов (1 слово за 6 циклов)

2-2

Когда CPU выставляет адрес ему все равно с какой ячейкой работать, с ячейкой ОЗУ, ПЗУ или портом ВУ. Процесс однотипный. Способ с отображением в памяти не требует специальных команд. Используются типовые пересылки. Вместе с тем адресное пространство отнимается под порты ввода/вывода. Поэтому иногда жаль памяти. В последнее время разрядность ША возросла, поэтому экономить память нет нужды и этот способ используют чаще.

  1. Способ прямого доступа к памяти. Поскольку первые два способа предусматривали минимум 2 пересылки – это длинно, и время затрачиваемое на ввод/вывод оказывается значительным. Поэтому предложили обойтись без CPU. Поскольку информация храниться во ВУ, а мы должны положить ее в память. CPU с регистрами выступают в качестве промежуточного элемента хранения. Прямой доступ к памяти подразумевает прямую связь ВУ и ОЗУ.

Передача информации между внутренними РОН называется пересылка, между процессором и памятью чтение/запись, а между памятью и внешними устройствами ввод/вывод информации. Наиболее длинными во времени процедурами считают операции ввода/вывода, поскольку внешние устройства в большинстве случаев имеют меньшее быстродействие, чем процессор или память. Доступ к внешним устройствам в большинстве случаев адресный, т. е. по структуре ввод/вывод не должен отличаться от чтения/записи. Но объем памяти значителен, значительна и шина адреса (минимум 16 разрядов). В тоже время число внешних устройств не может быть физически большим.