Функции исходят из необходимости реализации параллельной работы МП и КВВ, т.е. необходимость возложить все функции управления ПУ на КВВ, а МП должен только настраивать КВВ на определенные операции ввода-вывода с определенным ПУ. КВВ должен реализовывать обмен информацией в режиме ПДП. Поэтому КВВ должен выполнять следующие функции:
1. задание размера массива данных и области ОП, участвующей в обмене;
2. формирование адресов ячеек ОП;
3. подсчет единиц данных, прошедших через канал;
4. определение момента окончания передачи;
5. осуществлять буферизацию и преобразование форматов данных для согласованной работы ОП и ПУ;
6. организация цепочки данных;
7. организация пропуска информации;
8. организация цепочки операций;
9. блокировка контроля неправильной длины считанного массива;
10. формирование запросов прерывания от ввода-вывода.
6) если массив не располагается в памяти в последовательных ячейках, а разбит на подмассивы, необходимо, чтобы это фиксировалось в КВВ и не требовало привлечения Пр.
|
|
7) если необходимо перенести информацию из ПУ не целиком, а пропуская ненужные данные без вмешательства МП. (пропуск информации в цепочке данных).
8) если необходимо перед чтением / записью единицы данных в ПУ выполнить некоторую последовательность команд. (Например: установить головку на цилиндр, прочитать информацию....).
9) операции ввода-вывода сопровождается автоматическим контролем (в т.ч. длины массива (считываемого и записываемого). При несовпадении формируется запрос на прерывание. Но имеются случаи, когда формировать прерывание не нужно (т.е блокировать контроль)).
10) по окончанию ввода-вывода необходимо формировать запрос на прерывание, а также при ошибках.
Должна иметься возможность задания прерывания после выполнения некоторых действий (пример: в середине обмена), чтобы процессор мог начать обработку уже поступивших данных.