Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Взаимодействие с внешним устройством





Взаимодействие с периферийным устройством подразумевает передачу информации в устройство, прием информации из устройства, настройка устройства или считывание состояния устройства. Для организации такого взаимодействия каждое устройство оснащено своими регистрами входных данных, выходных данных, состояния устройства и управления устройством.

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

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

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

Способы взаимодействия устройств

Обмен информацией вычислительной системе происходит по следующей схеме:

  • одно устройство выполняет активную роль: чаще всего этим устройством является процессор;
  • второе устройство является исполнителем
  • используется принцип квитирования (запроса - ответа): каждый управляющий сигнал активного устройства, подтверждается сигналом исполнителя.

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

Программно-управляемый ввод-вывод

Ввод-вывод по прерываниям

Прямой доступ к памяти

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

Программно-управляемый ввод-вывод

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

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

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

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

Сами внешние устройства в данном способе, просигнализировав о своем состоянии, в дальнейшем играют пассивную роль, принимая или отдавая данные процессору.

Плюсом данного способа является простота реализации. Недостатком - потери времени процессора на регулярное проведение опроса.

В современных системах данный способ не применяется.

Ввод-вывод по прерываниям

Ввод/вывод по прерываниям пришел на смену программно-управляемому вводу/выводу, который нерационально тратил время на опрос устройств, которые не готовы к обмену. Ввод/вывод по прерываниям предполагает, что процессор приостанавливает выполнение своей основной задачи только в том случае, если возникает запрос от самого внешнего устройства на обмен данными.

Алгоритм ввода/вывода по прерыванию заключается в следующем:

  • Ввод/вывод инициируется внешним устройством, генерирующим сигнал прерывания.
  • Процессор останавливает выполнение выполняемой программы и начинает обработку прерывания:
    • Сохраняет адрес текущей выполняемой команды программы в стеке
    • Сохранить в стеке текущее значение регистра состояния процессора (флагов)
    • Определяет начальный адрес программы обработки прерывания по таблице векторов прерываний (Interrupt Descriptor Table, IDT)
    • Выполняет программу обработки прерывания
    • Восстанавливает прежнее состояние процессора, возвращая из стека регистр состояния процессора и адрес выполняемой команды прерванной программы.

Возможна ситуация, когда несколько устройств одновременно заявляют о намерении обмена с процессором (то есть инициируют прерывания). Для регулирования таких ситуаций прерываниям присваивается определённый приоритет; при одновременной подаче сигнала прерывания процессор будет обслуживать прерывание с более высоким уровнем приоритета. Одновременно обрабатывается одно прерывание.

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

Контроллер прерываний принимает запросы на прерывания от различных устройств (на рисунке IRQ - Interrupt Request) и сохраняет факт запроса в специальном регистре – регистре запросов прерываний.

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

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

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

Ранее функции контроллера прерываний выполняли специализированные микросхемы на материнской плате; в настоящее время контроллер прерывания вынесен на Южный мост.

Для определения адреса программы, обрабатывающей прерывание, используется таблица векторов прерываний (Interrupt Descriptor Table, IDT). В таблице представлены номера некоторых (таблица приводится не полностью) прерываний.

Номер Описание
  Ошибка деления. Вызывается автоматически после выполнения команд DIV, если в результате деления происходит переполнение (например, при делении на 0).
  Прерывание пошагового режима. Вырабатывается после выполнения каждой машинной команды, если в слове флагов установлен бит пошаговой трассировки TF. Используется для отладки программ.
  Печать копии экрана. Генерируется, если пользователь нажал клавишу <PrtSc>. В программах MS-DOS обычно используется для печати образа экрана.
  IRQ1 - прерывание от клавиатуры. Генерируется, когда пользователь нажимает и отжимает клавиши. Используется для чтения данных из клавиатуры
C IRQ4 - прерывание асинхронного порта COM1
E IRQ6 - прерывание генерируется контроллером НГМД после завершения операции ввода/вывода
  Перезагрузка операционной системы
1B Обработчик прерывания, возникающего, если пользователь нажал комбинацию клавиш <Ctrl+Break>

 

Как видно из таблицы, некоторые прерывания генерируются самим процессором при определенных обстоятельства, например, ошибка деления на ноль. Прерывания от внешних устройств – это IRQ (Interrupt ReQuest) - аппаратные прерывания, которые генерируются устройствами, подключенными к компьютеру. К примеру, IRQ №0 генерируется PIT (таймер с программируемым интервалом), IRQ 1 генерируется при нажатии клавиши на клавиатуре.

Прямой доступ к памяти

Данный режим обмена данными предполагает взаимодействие между устройствами или между устройством и оперативной памятью без участия центрального процессора. То есть в данном режиме процессор не тратит свои ресурсы на обеспечение обмена.

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

Но для организации обмена устройствам нужно захватить шину, чтобы передавать по ней данные. При этом необходимо иметь гарантию, что в это время шина не используется процессором для решения задачи процессора, то есть надо организовать арбитраж шины. Арбитраж шины и управление обменом в режиме прямого доступа к памяти производится с помощью DMA-контроллера (Direct Memory Access).

Центральный процессор программирует контроллер прямого доступа к памяти, но не управляет обменом.

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

В настоящее время в вычислительных системах используется как прямой доступ к памяти, так и ввод/вывод по прерываниям.

Эволюция общей шины.

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

Первое поколение

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

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

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

· адреса памяти,

· адреса ввода-вывода,

· приоритетов и

  • номеров прерываний.

Усовершенствованием шин первого поколения было введение прерываний.

Примером шины первого поколения может служить шина ISA (Industry Standard Architecture), устанавливаемая на персональные компьютеры с 1981 года.

Разъем ISA состоял из 62 контактов:

· 8-разрядная шина данных,

· 20 -разрядная шина адреса,

· 6 линий прерывания,

· управляющие линии для чтения-записи памяти и устройств ввода/вывода,

· тактовые и синхронизирующие линии,

· 3 канала линий управления прямым доступом к памяти,

· линии управления регенерацией памяти,

· линия проверки канала,

  • и питание для внешних устройств

ISA работала на частоте до 8 МГц и передавала данные со скоростью до 4 МБайт/с (при частоте работы процессоров ~4,7 МГц). Инициатором обмена могли выступать только процессор и контроллер DMA.

Усовершенствованием шины ISA было

· Удвоение разрядности данных (удвоение пропускной способности)

· Добавление четырех разряда адреса;

· Увеличилось число линий запросов прерываний (IRQ) и запросов прямого доступа к памяти (DMA).

  • Любое подключенное к ней устройство могло инициировать операцию обмена данными

В 1993 году Intel и Microsoft разработали ISA PnP (Plug and Play), которая позволяла операционной системе самой определять назначаемое прерывание для устройства, тем самым исключая ручную настройку устанавливаемых устройств.

Второе поколение

Основным отличием шин второго поколения была изоляция процессора и памяти на собственной высокоскоростной шине. Между получившимися шинами был установлен специальный контроллер шин (bus controller).

Но все внешние устройства по-прежнему работали на одной скорости.

Во втором поколении шины разделили на внутренние (localbus) для подключения внутренних устройств, таких как видеоадаптеры и звуковые платы (примеры, PCI, PCI-Express), и внешние (externalbus) для подключения внешних устройств, например, сканеров (пример, USB, FireWire).

Данное разделение было несколько условно. Например, IDE является внешней шиной по своему предназначению, но почти всегда используется внутри компьютера.

Шины второго поколения увеличили скорость за счет увеличения разрядности шины данных (с 8-ми разрядов до 16 или 32 разрядов) и имели программную настройку для упрощения подключения новых устройств (Plug-n-play).

Примером шины второго поколения может служить шина PCI (Peripheral Component Interconnect), выпущенная в 1992 году. Характеристики PCI:

· Параллельная передача данных

· Введение северного и южного моста, связь между ними

· Тактовая частота 33 МГц,

· Разрядность 32 или 64 бита

  • Теоретически, пропускная способность шины 133 Мбайт/с, но пропускная способность шины делится между всеми устройствами

В то время тактовая частота процессоров составляла порядка ~ 50-60 МГц. Таким образом, PCI вполне соответствовала быстродействию системы в целом.

С увеличением частоты работы процессора и скорости работы всех прочих компонент, PCI развивалась. Основным направлением развития было увеличение пропускной способности за счет увеличения частоты шины.

В частности была реализация AGP (скоростного интерфейса видеоплаты) как частного случая PCI 2.0. при отсутствии арбитража интерфейса: к AGP допускалось подключение только одного устройства – видеоплаты.

Пределом PCI можно назвать PCI 2.1 66 МГц, обеспечивающей пропускную способность 266 Мбайт/с. Дальнейшее увеличение частоты было затруднительно в силу параллельной природы данного интерфейса. Кроме того, к этому моменту были созданы отдельные интерфейсы для процессора с памятью, для дисков внешней памяти. В настоящее время PCI используется только для модемов, сетевых и звуковых плат, но постепенно вытесняется PCI-Express.

Третье поколение

Шины третьего поколения (примером является внутренняя шина PCI-Express) архитектурно похожи на компьютерные сети, чем на изначальные идеи шин, что сопровождается большими накладными расходами, по сравнению с предыдущими поколениями.

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

Шины третьего поколения позволяют использовать шину нескольким устройствам одновременно.

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

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

PCI-Express является последовательным интерфейсом, что позволяет передавать данные на высокой частоте. В первой версии PCI-Express при частоте передачи 2,5 ГГц по одной линии можно передавать данные на скорости 2500 МГц / 10 * 8 = 250 * 8 Мбит/сек = 250 Мбайт/сек для каждого устройства в одном направлении. Причиной деления на 10 является избыточное кодирование для передачи 8 бит данных десятью битами информации: при этом каждый байт перекодируется в соответствии с определенной схемой во избежание передачи подряд идущих нулей или единиц.

Но PCI-Express позволяет устройствам одновременно передавать в двух направлениях. Таким образом, максимальная пропускная способность удваивается.

Число линий PCI Express Пропускная способность в одном направлении Суммарная пропускная способность
  250 Мб/сек 500 Мб/сек
  500 Мб/сек 1 Гб/сек
  1 Гб/сек 2 Гб/сек
  2 Гб/сек 4 Гб/сек
  4 Гб/сек 8 Гб/сек
  8 Гб/сек 16 Гб/сек

 

Шина PCI Express может использовать несколько таких последовательных соединений типа точка-точка, (для данного интерфейса они называются линиями), конструктивно соединенных в один интерфейс: x1 (одна линия), x2 (две линии), x4 (четыре линии), x8 (восемь линий), x12 (двенадцать линий), x16 (16 линий), x32 (32 линии). То есть соединение между картами PCI-Express может быть обеспечено как одной (1x), так и несколькими (2x, 4x, 8x, 12x, 16x, 32x) линиями.

Если слот PCI Express имеет приставку x16 (PCI Express x16), это означает, что он 16-канальный. В такой слот может быть установлена карта как PCI Express x1, так и PCI Express x16.

Шиной PCI Express поддерживается:

  • горячая замена карт;
  • гарантированная полоса пропускания (QoS);
  • управление энергопотреблением;
  • контроль целостности передаваемых данных.

Последующие версии PCI-Express удваивали частоту, и, соответственно, пропускную способность шины. В 2017 году вышла очередная версия - PCI Express 4.0.

Скорость компьютерных шин в настоящее время определяют в гигатранзакциях в секунду. За одну транзакцию передаётся один передаваемый элемент. Для расчёта реальной пропускной способности передаваемых данных (ее значение ниже скорости передачи) одной линии шины необходимо учесть кодировку передаваемой информации. Как видно из таблицы данные передаются с избыточностью: 8 бит передаются 10 битами или 128 бит передаются 130 битами. Причина избыточности – исключить передачу большого количества идущих подряд нулей и единиц, затрудняющих распознавание со стороны приемника.

Год выпуска Версия PCI-Express Кодирование Скорость передачи Пропускная способность на x линиях, Гбит/сек
x1 x2 x4 x8 x16
  1.0 8b/10b 2,5 ГТ/с          
  2.0 8b/10b 5 ГТ/с          
  3.0 128b/130b 8 ГТ/с ~7.877 ~15.754 ~31.508 ~63.015 ~126.031
  4.0 128b/130b 16 ГТ/с ~15.754 ~31.508 ~63.015 ~126.031 ~252.062

 

Чипсет

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

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

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

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

Для процессора разрабатывались высокоскоростные шины, например, FSB, DMI, HyperTransport и QPI.

Примером внутренних шин служат PCI и PCI-Express. Причем в последнее время PCI-Express все больше вытесняет шину PCI.

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

Также разработаны внешние интерфейсы для связи с периферийными устройствами, например FireWire или USB.

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

Высокоскоростные шины.

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

FSB (Front Site Bus)

FSB – параллельная шина - разрабатывалась компанией Intel для связи процессора с северным мостом. Частота шины соответствовала частоте процессора, и возрастала с 50 МГц в начале 1990-х годов, до 400 МГц в конце 2000-х. Пропускная способность шины менялась с 400 Мбит/с до 12800 Мбит/с.

Шина FSB использовалась в процессорах типа Celeron, Pentium, Core 2 до 2008 года. На данный момент вытеснена шинами QPI и Hyper Transport.







ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.