ВЗАИМОДЕЙСТВИЕ ЦП
С ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ*
Основная память и центральный процессор образуют центральное звено компьютера. Ниже мы рассмотрим, как это центральное звено взаимодействует с различными периферийными устройствами, такими, как дисковые накопители, прин- теры, а также другими компьютерами.
Взаимодействие через контроллеры. Взаимодействие между машиной и другими устройствами обычно осуществля- ется через промежуточное устройство, называемое контроллером (controller). Если в качестве примера взять персональный компьютер, то контроллер будет представлять собой ту монтажную плату, которая вставляется в разъем на основной мон- тажной плате компьютера (motherboard – материнской плате). С помощью кабелей платы контроллеров соединяются с периферийными устройствами, установленными в самом компьютере, а соединение с внешними устройствами осуществля- ется через промежуточные разъемы, установленные на задней стенке корпуса компьютера.
Каждый контроллер обеспечивает взаимодействие с определенным видом устройства. Некоторые из них разработаны для взаимодействия с монитором, другие отвечают за взаимодействие с дисководами, а есть контроллеры, поддерживающие взаимодействие компьютера с устройствами чтения компакт-дисков. Поэтому иногда вместе с новым периферийным уст- ройством приходится покупать и новый контроллер. Задача контроллера состоит в преобразовании сообщений и данных, которыми обмениваются компьютер и периферийное устройство, в тот формат, который будет совместим с внутренними характеристиками самого компьютера и подключенного к нему устройства. Подобные контроллеры часто представляют со- бой небольшие специализированные компьютеры с собственной основной памятью и центральным процессором, который выполняет программу, управляющую всеми действиями данного контроллера.
Когда контроллер вставляется в один из разъемов на материнской плате компьютера, он электрически подключается к шине, соединяющей ЦП компьютера и его основную память (рис. 2.8). В месте своего подключения каждый контроллер осуществляет непрерывное наблюдение за сигналами, посылаемыми из ЦП машины, и отвечает на те, которые адресованы непосредственно ему.
В частности, центральный процессор способен взаимодействовать с контроллерами, подключенными к шине, так же, как он взаимодействует с оперативной памятью. Для того чтобы послать цепочку битов контроллеру, прежде всего ее нужно поместить в один из регистров общего назначения, после чего выполнить команду, подобную команде сохранения, чтобы "сохранить" код в контроллере. Точно так же, для того чтобы получить цепочку битов от контроллера, исполняется команда, похожая на команду загрузки. В некоторых компьютерах предусмотрены дополнительные коды операции для этих действий. Команды с такими кодами называются командами ввода-вывода. Команды ввода-вывода находят контроллер с помощью системы адресации, подобной системе адресации оперативной памяти. А именно, каждому контроллеру соответствует уни- кальный набор адресов (адреса ввода–вывода), которые используются в командах ввода–вывода для указания контроллера- адресата.
Рис. 2.8. Подключение контроллеров к шине компьютера
Набор адресов, соответствующих контроллеру, называется портом (port), так как они представляют собой "место", через которое информация входит в компьютер и выходит из него. Поскольку адреса ввода–вывода могут иметь такой же вид, как адреса ячеек оперативной памяти, шины компьютеров снабжены сигналом, который показывает, передается сообщение в оперативную память или в контроллер. Следовательно, на команду ввода–вывода отослать содержимое регистра определен- ному контроллеру центральный процессор будет реагировать так же, как на команду отослать цепочку битов в определен- ную ячейку памяти, только при этом он выставит сигнал, который сообщит устройствам, подключенным к шине, что цепоч- ка битов предназначена для такого-то контроллера, а не для оперативной памяти.
Альтернативой включению в машинный язык специальных кодов операций для команд ввода–вывода является исполь- зование команд загрузки и сохранения, которые уже существуют в языке для коммуникации с оперативной памятью. В этом случае контроллер отвечает только на определенный уникальный набор адресов (который также называется портом), а опе- ративная память игнорирует эти ячейки. Таким образом, когда центральный процессор посылает сообщение шине о том, что нужно сохранить цепочку битов по адресу, приписанному к контроллеру, ее и получает контроллер, а не оперативная па- мять. Точно так же, если центральный процессор пытается прочитать данные из такого адреса, указанного в команде загруз- ки, то он получит последовательность битов из контроллера, а не из памяти. Такая система связи называется отображением вво- да/вывода в память (memory-mapped I/O), потому что устройства ввода–вывода компьютера представляются как различные ячейки памяти (рис. 2.9).
![]() |
Рис. 2.9. Концептуальная схема отображения ввода–вывода в память
Такой блок ячеек называется буфером. В общем случае буфер представляет такое местоположение, где одна система может оставить данные, к которым позднее сможет получить доступ другая система. Пока контроллер будет выполнять затребо- ванную операцию считывания данных, ЦП может продолжать обработку других заданий. Это означает, что в одно и то же время будут выполняться два разных действия. ЦП будет выполнять программу, а контроллер в это время будет обеспечи- вать передачу данных между дисковым устройством и основной памятью компьютера. Такой подход позволяет избежать простоя вычислительных ресурсов во время выполнения относительно медленного процесса передачи данных.
Однако механизм DMA оказывает и определенный отрицательный эффект, поскольку при этом увеличивается количе- ство взаимодействий, осуществляемых через шину компьютера. Битовые комбинации должны перемещаться между ЦП и основной памятью, между ЦП и каждым из контроллеров, а также между каждым из контроллеров и основной памятью ком- пьютера. Координация всей этой деятельности, осуществляемой через шину компьютера, является важнейшей задачей кон- струирования. Даже в самых лучших проектных решениях центральная шина может превратиться в источник помех в работе компьютера, возникающих из-за того, что ЦП и контроллеры соревнуются между собой за доступ к шине.
Наконец, следует заметить, что передача данных между двумя компонентами компьютера редко бывает односторонним действием. На первый взгляд может показаться, что принтер является устройством, которое способно только получать дан- ные, однако в действительности оно способно посылать данные обратно в компьютер. В самом деле, компьютер способен подготавливать символы и передавать их принтеру намного быстрее, чем принтер сможет их печатать. Если компьютер бу- дет передавать данные на принтер вслепую, то принтер быстро начнет отставать, что может привести к потере данных. По- этому такой процесс, как печать документа, предусматривает постоянный двусторонний диалог, в процессе которого компь- ютер и периферийное устройство обмениваются информацией о текущем состоянии устройства.
Такой диалог часто предусматривает использование слова состояния (status word) устройства, т.е. определенной бито- вой комбинации, которая генерируется периферийным устройством и посылается его контроллеру. Биты в слове состояния отражают текущее состояние устройства. Если вернуться к примеру с принтером, то значение младшего бита слова состоя- ния может указывать, что в принтере закончилась бумага, тогда как следующий бит в этом слове указывает, готов ли прин- тер к приему очередной порции информации. В зависимости от выбранной системы контроллер либо сам реагирует на по- добную информацию о состоянии устройства, либо передает ее на обработку в ЦП. В каждом случае либо программа в кон- троллере, либо программа, выполняемая центральным процессором, должна быть разработана так, чтобы задержать пере- сылку данных на принтер до тех пор, пока от него не будет получена соответствующая информация о состоянии.
Скорость передачи данных. Скорость, с которой биты передаются от одного вычислительного компонента к другому, измеряется в битах в секунду (бит/с). Широкое распространение также получили такие единицы измерения, как кбит/с (килобит в секунду, равный 1000 бит/с), Мбит/с (мегабит в секунду, равный миллиону бит/с) и Гбит/с (гигабит в секунду, равный милли- арду бит/с). В каждом случае максимальная скорость передачи данных зависит от типа используемой линии связи и способа передачи.
Существуют два основных способа передачи данных: параллельный и последовательный. Этими терминами обознача- ют способ передачи битов относительно друг друга. В случае параллельной связи (parallel communication) несколько битов передаются одновременно, каждый по отдельному проводнику (линии). Такая техника позволяет быстро передавать данные, но требует достаточно сложной линии связи.
В качестве примера можно привести внутреннюю шину компьютера и большинство каналов связи между компьютером и периферийными устройствами, такими как запоминающие устройства и принтеры.
В этих случаях скорость передачи данных измеряется в Мбит/с и выше.
Напротив, при последовательной связи (serial communication) за один раз передается только один бит. Такая техника пе- редачи данных медленнее, но для нее требуется более простой канал связи, поскольку все биты передаются по одной линии, один за другим. Последовательная связь обычно используется для передачи информации между компьютерами, где более простой канал связи является более экономным.
Например, существующие телефонные линии являются системами последовательной связи, так как они передают тоны один за другим.
В процессе связи между компьютерами по этим линиям последовательности битов сначала с помощью модема (сокра- щение от "модулятор-демодулятор") преобразуются в слышимые звуки, затем эти звуки последовательно передаются по те- лефонной сети и снова трансформируются в цепочки битов модемом, находящимся в месте назначения.
На практике представление цепочек битов тонами разных частот (называемое частотной модуляцией) используется только для низкоскоростной связи, не более 1200 бит/с. Чтобы добиться скорости 2400 бит/с, 9600 бит/с и выше, модем ком- бинирует изменения частоты тона, его амплитуды и фазы (степени задержки передачи сигнала).
А для достижения еще более высоких скоростей передачи данных часто применяются способы сжатия данных, что по- зволяет получить скорость передачи до 57,6 кбит/с.
Эти скорости передачи данных являются пределом для современных телефонных линий с частотным диапазоном 3 Гц. Однако они не удовлетворяют современным запросам. Передача графических изображений со скоростью 57,6 кбит/с может стать невыносимо долгой, а передавать видеоизображение с такой скоростью вообще неразумно. Поэтому развиваются но- вые технологии, которые могли бы дать пользователям, использующим телефонные линии, более высокие скорости переда- чи данных. Одна из таких технологий – цифровая абонентская линия (digital subscriber line – DSL). Она использует тот факт, что существующие телефонные линии способны пропускать более широкий диапазон частот, чем тот, что применяется для передачи речевых сигналов. Скорость передачи в таких системах обычно составляет около 1,5 Мбит/с, но может достигать 6 Мбит/с в одном направлении, если в это время передача данных в противоположном направлении ограничена. Значение ско- рости зависит от используемой версии DSL и длины линии до операционного центра телефонной компании, которая обычно не превышает трех миль. В других технологиях, составляющих конкуренцию DLS, применяется кабель, который использу- ется в системах кабельного телевидения, при этом скорость передачи данных достигает 40 Мбит/с. Также применяется опти- ческое стекловолокно, скорость передачи которого может составлять несколько гигабит в секунду.
1. Предположим, машина, описанная в приложении В, использует механизм отображения ввода/вывода в память, а ад- рес В5 определяет местоположение порта принтера, в который должны передаваться данные для вывода на печать.
а) Если регистр 7 содержит код ASCII буквы А, какая команда машинного языка может быть использована для вывода этой буквы на печать?
б) Если наша машина способна выполнять миллион операций в секунду, то сколько раз за одну секунду этот символ может быть послан принтеру для вывода на печать?
в) Если принтер может напечатать пять стандартных страниц текста в минуту, то успеет ли он вывести на печать все символы, посланные ему при условиях, указанных в предыдущем пункте?
2. Предположим, что жесткий диск персонального компьютера вращается со скоростью 3000 оборотов в минуту. Каж- дая дорожка этого диска содержит 16 секторов, а каждый сектор – 1024 байта информации. Какая приблизительно скорость передачи данных потребуется для линии связи между дисководом и контроллером диска, если контроллер будет получать с дисковода биты непосредственно после их считывания по мере вращения диска?
3. Сколько времени займет передача рассказа, занимающего 300 страниц печатного текста, представленного символами в коде ASCII, если передача данных будет осуществляться со скоростью 57 600 бит/с?
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.