Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Повышение уникальности твоей работе
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си

Ввод и вывод

2021-03-09СтудИзба

Ввод/вывод. (Лекция 11)

Любая ЭВМ представляет собой сложную систему, включающую в себя большое количество различных устройств. Связь устройств ЭВМ между собой осуществляется с помощью сопряжений, называемых интерфейсами.

Интерфейс – это совокупность программных и аппаратных средств, предназначенных для передачи информации между компонентами ЭВМ и включающих в себя электронные схемы, линии, шины и сигналы адресов, данных и управления, алгоритмы передачи сигналов и правила интерпретации сигналов устройствами.

Интерфейсы характеризуются следующими параметрами:

· пропускная способность – количество информации, которая может быть передана через интерфейс в единицу времени;

· максимальная частота передачи информационных сигналов через интерфейс;

· максимально допустимое расстояние между соединяемыми устройствами;

· общее число проводов (линий) в интерфейсе;

· информационная ширина интерфейса – число бит или байт данных, передаваемых параллельно через интерфейс.

Рекомендуемые материалы

К динамическим параметрам интерфейса относится время передачи отдельного слова и блока данных с учетом продолжительности процедур подготовки и завершения передачи.

Разработка систем ввода-вывода требует решения целого ряда проблем, среди которых выделим следующие:

1. Необходимо обеспечить возможность реализации ЭВМ с переменным составом оборудования, в первую очередь, с различным набором устройств ввода-вывода, чтобы пользователь мог выбирать конфигурацию в соответствии с ее желаемым назначением, легко добавлять новые устройства и отключать те, в использовании которых он не нуждается.

2. Для эффективного и высокопроизводительного использования оборудования компьютера следует реализовать параллельную во времени работу процессора над вычислительной частью программы и выполнение периферийными устройствами процедур ввода-вывода.

3. Необходимо упростить для пользователя и стандартизовать программирование операций ввода-вывода, обеспечить независимость программирования ввода-вывода от особенностей того или иного периферийного устройства.

4. В ЭВМ должно быть обеспечено автоматическое распознавание и реакция процессора на многообразие ситуаций, возникающих в устройствах (готовность, отсутствие носителя, различные нарушения нормальной работы и др.).

Главным направлением решения указанных проблем является магистрально-модульный способ построения ЭВМ: все устройства, составляющие компьютер, включая и микропроцессор, организуются в виде модулей, которые соединяются между собой общей магистралью. Обмен информацией по магистрали удовлетворяет требованиям некоторого общего интерфейса, установленного для магистрали данного типа. Каждый модуль подключается к магистрали посредством специальных интерфейсных схем (Иi).

Рис. 12.  Магистрально-модульный принцип построения ЭВМ

На интерфейсные схемы модулей возлагаются следующие задачи:

· обеспечение функциональной и электрической совместимости сигналов и протоколов обмена модуля и системной магистрали;

· преобразование внутреннего формата данных модуля в формат данных системной магистрали и обратно;

· обеспечение восприятия единых команд обмена информацией и преобразование их в последовательность внутренних управляющих сигналов.

Эти интерфейсные схемы могут быть достаточно сложными и по своим возможностям соответствовать универсальным микропроцессорам. Такие схемы принято называть контроллерами: они обладают высокой степенью автономности, что позволяет обеспечить параллельную во времени работу периферийных устройств и выполнение программы обработки данных микропроцессором.

Недостатком магистрально-модульного способа организации ЭВМ является невозможность одновременного взаимодействия более двух модулей, что ставит ограничение на производительность компьютера, вследствие чего этот способ, в основном, используется в ЭВМ, к характеристикам которых не предъявляется очень высоких требований, например, в персональных ЭВМ.

Особенности PIO и DMA

В современных компьютерах используются два основных способа организации передачи данных между памятью и периферийными устройствами: программно-управляемая передача (PIO, Programmed Input-Output) и прямой доступ к памяти (DMA, Direct Memory Access).

Программно-управляемая передача данных осуществляется при непосредственном участии и под управлением процессора. Например, при пересылке блока данных из периферийного устройства в оперативную память процессор должен выполнить следующую последовательность шагов:

1. сформировать начальный адрес области обмена в оперативной памяти;

2. занести длину передаваемого массива данных в один из внутренних регистров, который будет играть роль счетчика;

3. выдать команду чтения информации с устройства; при этом на шину адреса от процессора выдается адрес устройства, на шину управления – сигнал чтения данных, а считанные данные заносятся во внутренний регистр процессора;

4. выдать команду записи информации в оперативную память; при этом на шину адреса от процессора выдается адрес ячейки оперативной памяти, на шину управления – сигнал записи данных в память, а на шину данных выставляются данные из регистра процессора, в который они были помещены при чтении с устройства;

5. модифицировать регистр, содержащий адрес оперативной памяти;

6. уменьшить счетчик длины массива на длину переданных данных;

7. если переданы не все данные, то повторить шаги 3-6, в противном случае закончить обмен.

Как видно, программно-управляемый обмен ведет к нерациональному использованию мощности микропроцессора, который вынужден выполнять большое количество относительно простых операций, приостанавливая работу над основной программой. При этом действия, связанные с обращением к оперативной памяти и к периферийному устройству, обычно требуют удлиненного цикла работы микропроцессора из-за их более медленной по сравнению с микропроцессором работы, что приводит к еще более существенным потерям производительности.

Альтернативой программно-управляемому обмену служит прямой доступ к памяти – способ быстродействующего подключения внешнего устройства, при котором оно обращается к оперативной памяти, не прерывая работы процессора. Такой обмен происходит под управлением отдельного устройства – контроллера DMA (или КПДП).

Рис. 13.  Обмен данными в режиме прямого доступа к памяти

Перед началом работы контроллер DMA необходимо инициализировать: занести начальный адрес области памяти, с которой производится обмен, и длину передаваемого массива данных. В дальнейшем по сигналу запроса прямого доступа контроллер фактически является посредником между устройством и памятью – выполняет все те действия, которые обеспечивал микропроцессор при программно-управляемой передаче.

Последовательность действий контроллера DMA при запросе на прямой доступ к памяти со стороны устройства ввода-вывода следующая:

1. Принять запрос на DMA (сигнал DRQ) от устройства.

2. Сформировать запрос к процессору на захват шин (сигнал HRQ).

3. Принять сигнал от процессора (HLDA), подтверждающий факт перевода микропроцессором своих шин в третье состояние.

4. Сформировать сигнал, сообщающий устройству ввода-вывода о начале выполнения циклов прямого доступа к памяти (DACK).

5. Сформировать на шине адреса компьютера адрес ячейки памяти, предназначенной для обмена.

6. Выработать сигналы, обеспечивающие управление обменом (IOR, MW для передачи данных из устройства в оперативную память и IOW, MR для передачи данных из оперативной памяти на устройство).

7. Уменьшить значение в счетчике данных на длину переданных данных.

8. Проверить условие окончания сеанса прямого доступа (обнуление счетчика данных, снятие сигнала запроса на DMA). Если условие окончания не выполнено, изменить адрес в регистре текущего адреса на длину переданных данных и повторить шаги 5-8.

Прямой доступ к памяти позволяет осуществлять параллельно во времени выполнение процессором программы и обмен данными между периферийным устройством и оперативной памятью.

Режим DMA для шины ISA.

DMA-контроллер шины ISA имеет 16 каналов DMA, из которых 7 могут использоваться процессором. Каждому каналу DMA присвоен 16-битный регистр адреса и 16-битный регистр счётчика. Для начала передачи данных на контроллере выставляются значения адреса в памяти и счётчика данных, а также действие (чтение/запись). Затем контроллер передает устройству сигнал начала процедуры передачи, по окончании которой посылает на процессор прерывание. Контроллер исполняет роль посредника при передаче.

Режим DMA для шины PCI.

В отличие от шины ISA, архитектура шины PCI не предусматривает отдельного контроллера DMA, и при этом любое устройство, подключённое к шине PCI, может послать запрос на получение статуса «мастера шины» (Bus Master) и возможности считывать/записывать значения в память напрямую.

Когда PCI-устройство запрашивает у контроллера шины данных полный доступ, контроллер (обычно это южный мост в системных платах) проверит возможность предоставления доступа (только одно устройство может иметь статус Bus Master). Когда устройство получает доступ, оно передает команды считывания/записи на шину PCI, а контроллер в свою очередь переводит поток данных на контроллер доступа к памяти.

PIO обычно используется в ЭВМ для операций ввода-вывода отдельных байт (слов), которые выполняются быстрее, чем при DMA, так как исключаются потери времени на инициализацию контроллера DMA, а в качестве основного способа осуществления операций ввода-вывода используют DMA. Например, в современных компьютерах обмен между накопителями на магнитных дисках и оперативной памятью происходит в режиме прямого доступа.

Организация ЭВМ на основе общей шины является сдерживающим фактором для повышения производительности компьютера. Следует отметить, что даже при использовании прямого доступа к памяти процессор полностью не освобождается от управления операциями ввода-вывода. Он обеспечивает инициализацию контроллера ПДП, а также взаимодействует с ним по некоторым управляющим линиям. Более того, во время операции передачи данных интерфейс оказывается занятым, а связь процессора с оперативной памятью – блокированной.

Это существенно сказывается на эффективности работы ЭВМ, особенно в тех случаях, когда в вычислительной системе используется большое количество высокоскоростных внешних устройств. Для решения этой проблемы в состав высокопроизводительных компьютеров иногда включают специализированные процессоры ввода-вывода, способные полностью разгрузить основной процессор от управления операциями обмена с внешними устройствами.

Доступ к последовательному порту.

При асинхронной связи машина посылает или принимает байты информации по одному биту. Временные интервалы между байтами при этом несущественны, но времена между отдельными битами байта очень важны. Сигнал на линии может быть высокого или низкого уровня, что соответствует логическим нулю и единице, и говорят, что линия отмечена (marking), когда уровень высокий, и пустая (spacing), когда уровень низкий.

Линия поддерживается в отмеченном состоянии, когда по ней нет передачи данных. При начале передачи байта данных сигнал падает в 0, отмечая стартовый бит. Затем следуют восемь битов данных (иногда меньше) в виде набора высоких и низких уровней. Последний бит данных может сопровождаться битом четности, используемым для обнаружения ошибок, а затем в последовательность включаются 1 или более стоп-битов, которым соответствует высокий уровень. Эти стоп-биты начинают отмеченное состояние, которое будет сохраняться до тех пор, пока не начнется передача следующего байта данных; число используемых стоп-битов существенно, поскольку они устанавливают минимальное время, которое должно пройти перед следующим стартовым битом. Передающая и приемная станции должны использовать один и тот же протокол для этих цепочек битов, и они должны работать с одной и той же скоростью обмена (измеряемой в битах в секунду, называемых также бодами). При обмене могут легко возникать ошибки, поэтому коммуникационное оборудование предоставляет разнообразную информацию о статусе как самого порта, так и присоединенного к нему модема. Задачей модема является преобразование сигнала, генерируемого портом коммуникации, в акустический сигнал, который может затем быть передан по телефонному каналу. Большинство модемов предоставляют так же дополнительные коммуникационные возможности, такие как автоматический вызов и ответ, которые не поддерживаются самим портом коммуникации.

Программирование микросхемы UART 8250.

Последовательная связь настолько сложна, что были разработаны специальные микросхемы, выполняющие работу по формированию и синхронизации строк битов, составляющих последовательные данные. Такие микросхемы называют универсальным асинхронным приемником-передатчиком (universal asynchronous receiver transmitter или UАRT). IBM РС использует UАRT 8250 фирмы Intel.

Операционная система поддерживает 2 порта коммуникации, поэтому в машине имеются 2 микросхемы. Их базовые адреса хранятся в ячейке 0040:0000 для СОM1 и 0040:0002 для СОM2. (Базовый адрес это двухбайтовый адрес порта, который является младшим из группы адресов портов, дающих доступ к UАRT.) На всех машинах СОM1 имеет базовый адрес 3F8H, а СОM2 -2F8H; Микросхема 8250 имеет 10 программируемых однобайтных регистров, с помощью которых управляется и контролируется порт коммуникации. Большинство из них занимаются инициализацией порта, процессом, который может быть очень сложным. Доступ к этим 10 регистрам осуществляется через семь адресов портов с номерами 3F8H - 3FЕH (или 2F8H - 2FЕH). B пяти случаях регистр, к которому получаем доступ через данный порт, зависит от того, как установлен бит 7 в регистре контроля линии, который является единственным регистром с адресом порта 3FBH. Вот эти регистры:

3F8H (OUT, бит 7 = 0 в 3FBH)Регистр хранения передатчика

3F8H (IN, бит 7 = 0 в 3FBH) Регистр данных приемника

3F8H (OUT, бит 7 = 1 в 3FBH)Делитель скорости обмена (младший)

3F9H (IN, бит 7 = 1 в 3FBH) Делитель скорости обмена (старший)

3F9H (OUT, бит 7 = 0 в 3FBH)Регистр разрешения прерывания

3FАH (IN) Регистр идентификации прерывания

3FBH (OUT)Регистр управления линии

3FСH (OUT)Регистр управления модемом

3FDH (IN) Регистр статуса линии

3FЕH (IN) Регистр статуса модема

Из десяти регистров только шесть необходимы для простой последовательной связи. Регистр хранения передатчика содержит байт данных, которые будут посланы, а регистр данных приемника – последний полученный байт данных. Регистры управления и статуса линии инициализируют и управляют линией связи, используя скорость обмена, содержащуюся в двух регистрах делителя скорости обмена. Из оставшихся четырех регистров регистры управления и статуса модема используются только для связи через модем, а два регистра, связанных с прерываниями, используются только в процедурах, управляемых прерываниями.

Инициализация последовательного порта.

При инициализации порта коммуникации ("открытии") устанавливаются все его параметры. Эти параметры определяют длину слова, число стоп-битов, установку четности и скорость обмена. Длина слова это число битов, которое образует основную единицу данных. Если мы работаем с привычными порциями по 8 битов, то 7 битов достаточны для стандартных файлов ASCII (в которых все символы имеют коды, не превышающие АSСII 128), в то время как для передачи численных данных достаточно порций по 4 бита.

Функция 0 прерывания 14H BIOS инициализирует порт коммуникации. B DX должен даваться номер коммуникационного канала (СОM1 = 0, СОM2 = 1). B AL должен содержаться байт инициализационных данных, значение битов которого следующее:

биты 1-0: длина слова. Значения: 10 = 7 битов, 11 = 8 битов.

Бит 2: число стоп-битов. Значения: 0 = 1, 1 = 2.

Биты 4-3: четность. Значения: 00 или 10 = нет, 01 = нечет., 11 = чет.

Биты 7-5: скорость обмена. Значения:

000 = 110 бод

001 = 150 бод

010 = 300 бод

011 = 600 бод

100 = 1200 бод

101 = 2400 бод

110 = 4800 бод

111 = 9600 бод

Независимо от того, занимаемся ли мы вводом или выводом, как минимум 4 регистра микросхемы 8250 должны быть инициализированы для операций обмена. Это регистры делителя скорости обмена, регистр контроля линии и регистр разрешения прерывания. Делитель скорости обмена – это число, на которое надо разделить частоту системных часов, чтобы получить желаемую скорость обмена. Например, для скорости обмена 1200 бод делитель скорости обмена должен быть равен 96, поскольку 1190000/96 приближенно равно 1200. Чем больше делитель, тем меньше скорость обмена. Скорости обмена 300 и меньше требуют двухбайтного числа для делителя. Старший байт посылается в 3F9H (или 2F9H), а младший в 3F8H (2F8H). B обоих случаях бит 7 регистра управления линии должен быть установлен в 1 перед засылкой значений; в противном случае по этим двум адресам значения будут адресованы в другие регистры.

Установка текущего коммуникационного порта.

Имеются два способа, которыми программа может определить, какой из коммуникационных портов должен использоваться. Один из способов состоит в указании номера канала в операторе программы. Bторой способ состоит в написании программы для обмена через порт СОM1, но изменении коммуникационного адаптера, доступ к которому идет через СОM1.

Область данных BIОS содержит место для четырех 2-х байтных переменных, которые содержат базовые адреса коммуникационных каналов (MS DОS поддерживает только первые два из них). Базовый адрес порта – это младший из группы адресов портов, через которые можно получить доступ к данному коммуникационному каналу. Базовый адрес для СОM1 хранится в ячейке 0040:0000, а для СОM2 – в ячейке 0040:0002. Для смены коммуникационных портов надо просто поменять эти два значения. Повторная смена значений приведет к первоначальному назначению портов.

Инициализация и управление модемом.

Имеется 6 базовых линий, по которым модемы связываются с компьютером (усовершенствованные модели могут иметь добавочные линии по интерфейсу RS232). Вот их названия, сокращения и функции:

От компьютера к модему:

Data Terminal Ready (DTR): Информирует модем, что компьютер в состоянии «Готовность», включен и готов к связи.

Request To Send (RTS): Информирует модем, что компьютер в состоянии «Запрос на посылку», ожидает посылки данных.

От модема к компьютеру:

Обратите внимание на лекцию "3. Негативные факторы в техносфере, классификация, характеристика".

Data Set Ready (DSR): Информирует компьютер, что модем в состоянии «Готовность модема», включен и готов.

Clear To Send (СTS): Информирует компьютер, что модем в состоянии «Готовность к посылке», готов начать передачу данных.

Data Carrier Detect (DСD): Информирует компьютер, что модем в состоянии «Обнаружен носитель данных», связан с другим модемом.

Ring Indicator (RI), «Индикатор звонка»: Информирует компьютер, что телефонная линия, по которой присоединен модем, имеет звонок.

Сначала компьютер устанавливает сигнал DTR, а затем инструктирует модем связаться с удаленной станцией. После того, как модем установил связь, он устанавливает сигнал DSR. Этот сигнал информирует компьютер, что модем готов к связи и в этот момент компьютер может установить сигнал RTS. Когда модем ответит сигналом СTS, то передача начинается. Две стандартные линии, по которым компьютер управляет модемом, доступны через регистр контроля модема микросхемы UАRT 8250.

Передача данных проще, чем прием, поскольку программа имеет полный контроль над составом данных и скоростью, с которой они должны посылаться. Тем не менее, процедуры передачи могут быть достаточно сложными, если они обрабатывают данные по мере того, как они посылаются. Могут быть также проблемы с синхронизацией при использовании протокола XON/XOFF. Этот протокол использует коды ASCII 17(XON) и 19(XOFF), для того чтобы сигнализировать принимающей станции, что передатчик хочет продолжить передачу временно прерванного потока данных. Чтобы принять эти сигналы, программа должна непрерывно анализировать принимаемые символы при передаче (в полнодуплексном режиме, в котором обычно работают модемы, сигналы одновременно идут в обе стороны по телефонному каналу).

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее