СИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ ДАННЫХ
SYSTEM TO CONTROL DATA INPUT-OUTPUT

Изобретение относится к вычислительной технике и может быть использовано при проектировании систем управления исследовательскими процессами, в частности, при разработке автоматизированного комплекса, предназначенного для определения физико-механических свойств материалов методом кинетического индентирования.
Известно устройство для управления выводом данных в старт-стопном режиме [1]. Известно также устройство для управления выводом данных в старт-стопном режиме, представляющее собой наиболее близкое техническое решение к заявленному предлагаемому изобретению [2].
Недостатком этого устройства является ограничение числа циклов индентирования в исследовательских процессах, когда необходимый объем данных для всего числа циклов превышает физический объем блока памяти.
Целью предлагаемого изобретения является устранение зависимости объема данных, необходимого для проведения исследования, от физического объема блока памяти.
Поставленная цель достигается тем, что в систему управления вводом-выводом данных, содержащую первый блок 3 сопряжения, второй блок 2 сопряжения, регистр 5 и блок 7 памяти, причем первый вход регистра 5 подключен к первому выходу первого блока 3 сопряжения, а выход - к первому входу блока 7 памяти, второй выход второго блока 2 сопряжения и вход первого блока 3 сопряжения связаны между собой, дополнительно подключены ЭВМ 1, первый и второй дополнительные регистры 10 и 12, соответственно. В систему управления вводом-выводом данных также подключены селектор 8, первый и второй счетчики 6 и 11, соответственно, реверсивный счетчик 9, арбитр 4 шины, входная и выходная шины 13 и 14, соответственно. Двунаправленный вход/выход ЭВМ 1 объединен с двунаправленным входом/выходом второго блока 2 сопряжения, первый вход второго блока 2 сопряжения подключен к инверсному выходу второго дополнительного регистра 12, второй вход второго блока 2 сопряжения соединен с третьим выходом первого блока 3 сопряжения. Вход первого блока 3 сопряжения объединен с вторым выходом второго блока 2 сопряжения, первый выход первого блока 3 сопряжения подключен к первому входу регистра 5, второй выход первого блока 3 сопряжения соединен с вторым входом регистра 5 и первым входом арбитра 4 шины. Выход регистра 5 объединен с первым входом блока 7 памяти, выход блока 7 памяти подключен к первому входу первого дополнительного регистра 10. Первый выход арбитра 4 шины соединен с вторым входом первого дополнительного регистра 10 и входом второго счетчика 11, выход второго счетчика 11 объединен с первым входом селектора 8, второй вход селектора 8 подключен к выходу первого счетчика 6, третий вход селектора 8 соединен с третьим выходом арбитра 4 шины, выход селектора 8 объединен с вторым входом блока 7 памяти. Второй вход арбитра 4 шины подключен к второму выходу второго блока 2 сопряжения, второй выход арбитра 4 шины соединен с входом первого счетчика 6, четвертый выход арбитра 4 шины объединен с первым входом реверсивного счетчика 9, пятый выход арбитра 4 шины подключен к второму входу реверсивного счетчика 9. Выход реверсивного счетчика 9 соединен с первым входом второго дополнительного регистра 12, третий выход второго блока 2 сопряжения объединен с вторым входом второго дополнительного регистра 12. Выход первого дополнительного регистра 10 подключен к выходной шине 14, шестой выход арбитра 4 шины соединен с третьим входом блока 7 памяти, третий вход арбитра 4 шины объединен с входной шиной 13.
Рассмотрим работу системы управления вводом-выводом данных на ее конкретном применении в составе автоматизированного комплекса, предназначенного для определения физико-механических свойств материалов методом кинетического индентирования.
В качестве ЭВМ 1 применена персональная ЭВМ, совместимая с IBM PC и имеющая слот расширения PCI. Аппаратные средства второго блока 2 сопряжения обеспечивают обмен данными с ЭВМ 1 по протоколу обмена PCI через двунаправленный вход/выход и представляют собой область портов ввода-вывода. По шине, связывающей двунаправленные входы/выходы ЭВМ 1 и второго блока 2 сопряжения, передаются коды адреса, данных и команд, а также сигналы управления.
В начале цикла индентирования управляющая этим циклом программа, запущенная в ЭВМ 1, выдает в порт вывода, логический номер которого аппаратно присвоен блоку 7 памяти, первый байт (слово). Принятые код данных первого байта (слова) и код номера порта вывода вторым блоком 2 сопряжения поступают на вход первого блока 3 сопряжения в сопровождении синхронизирующего сигнала, сформированного вторым блоком 2 сопряжения. После дешифрации кода номера порта вывода первым блоком 3 сопряжения последний устанавливает на первом входе регистра 5 код данных первого байта (слова) и выдает на второй вход второго блока 3 сопряжения подтверждающий завершение операции передачи кода данных сигнал. После этого первый блок 3 сопряжения формирует на своем втором выходе сигнал, который записывает код данных первого байта (слова) в регистр 5, а также устанавливает на первом входе арбитра 4 шины запрос на запись этого кода данных с выхода регистра 5 в блок 7 памяти. С первого выхода второго блока 2 сопряжения на второй вход арбитра 4 поступают импульсы частоты синхронизации шины PCI, необходимые для функционирования арбитра 4 шины. Арбитр 4 шины, получив запрос на запись кода данных первого байта (слова) в блок 7 памяти, устанавливает такой логический уровень на третьем входе селектора 8, при котором код с выхода первого счетчика 6 поступит на второй вход (адресный) блока 7 памяти. Далее арбитр 4 шины установит на третьем входе блока 7 памяти сигнал, который обеспечит запись кода данных первого байта (слова) с первого входа (вход данных) блока 7 памяти по адресу, код которого находится на втором входе этого же блока. По окончании записи кода данных первого байта (слова) в блок 7 памяти арбитр 4 шины формирует на своем втором выходе импульс, который увеличит величину выходного кода первого счетчика 6 на "единицу", т.е. по каждому циклу записи выполняется автоинкремент кода адреса записи. Также арбитр 4 шины на своем четвертом выходе сформирует импульс, который увеличит величину выходного кода реверсивного счетчика 9 на "единицу". Все последующие циклы записи аналогичны описанному выше. После завершения записи всего массива кодов данных, не превышающего по величине максимальной емкости блока 7 памяти, выходной код первого счетчика 6 будет равен коду адреса последней записи в блок 7 памяти плюс "единица", а выходной код реверсивного счетчика 9 будет равен коду величины количества записанных в блок 7 байт (слов) кодов данных.
Во время процесса индентирования с входной шины 13 на третий вход арбитра 4 шины поступают метки времени как запросы на чтение кодов данных из блока 7 памяти. Получив такой запрос, арбитр 4 шины устанавливает на третьем входе селектора 8 такой логический уровень, при котором код с выхода второго счетчика 11 поступит на второй вход блока 7 памяти. Отсутствие сигнала на третьем входе блока 7 памяти предполагает режим чтения памяти и на выходе будет установлен считанный из выбранной ячейки памяти предварительно записанный туда код данных байта (слова). Далее арбитр 4 шины формирует на своем первом выходе сигнал, который записывает код данных с выхода блока 7 памяти в первый дополнительный регистр 10, а также увеличивает на "единицу" выходной код второго счетчика 11, т.е. по каждому циклу чтения выполняется автоинкремент кода адреса чтения. Также арбитр 4 шины формирует на своем пятом выходе сигнал, который уменьшает выходной код реверсивного счетчика 9 на "единицу". Последующие циклы чтения памяти аналогичны описанному выше. Коды данных по выходной шине 14 в конкретном применении подаются на цифровые входы цифроаналогового преобразователя, входящего в состав генератора силы (на чертеже не показан).
Если для проведения цикла индентирования требуется количество данных, превышающее емкость блока 7 памяти, обмен данными происходит следующим образом. Начальная запись кодов данных в блок 7 памяти аналогична описанной выше, при этом в блок 7 памяти записывается часть общего количества кодов данных, численно не превышающая максимальной емкости блока 7 памяти. В процессе индентирования и соответственно чтении кодов данных из блока 7 памяти по меткам времени величина кода на выходе реверсивного счетчика 9 уменьшается на "единицу" по каждой метке времени. Управляющая программа в ЭВМ 1 периодически обращается в режиме чтения к порту ввода, адрес которого аппаратно присвоен второму дополнительному регистру 12, при этом второй блок 2 сопряжения формирует на своем третьем выходе сигнал, который разрешает передачу кода с инверсного выхода второго дополнительного регистра 12 через второй блок 2 сопряжения в ЭВМ 1. Этот код представляет собой код количества свободных ячеек памяти в блоке 7 памяти. Управляющая программа в ЭВМ 1, получив этот код, организует запись следующей части массива данных, численно равной (или меньше) количеству свободных ячеек памяти в блоке 7 памяти. Периодическая запись в блок 7 памяти продолжается до полного завершения процесса индентирования. Таким образом, максимальный объем кодов данных, необходимых для цикла индентирования, не зависит от емкости блока 7 памяти, т.е. время циклов индентирования не ограничено.
Источники информации
[1] Патент Великобритании, G4A, №1264096, 1972.
[2] Авторское свидетельство СССР, кл. G06F 3/04, №583423, 1976.