Как работает компьютер шины адреса управления и данных

Обновлено: 30.06.2024

Шиной (Bus) называется вся совокупность линий (проводников на материнской плате), по которым обмениваются информацией компоненты и устройства ПК. Шина предназначена для обмена информацией между двумя и более устройствами. Шина, связывающая только два устройства, называется портом.

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

Шины в ПК различаются по своему функциональному назначению:

  • системная шина (или шина CPU) используется микросхемами Chipset для пересылки информации к CPU и обратно;
  • шина кэш-памяти предназначена для обмена информацией между CPU и кэш-памятью;
  • шина памяти используется для обмена информацией между оперативной памятью RAM и CPU;
  • шины ввода/вывода информации подразделяются на стандартные и локальные.

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

  • линии для обмена данными (шина данных);
  • линии для адресации данных (шина адреса);
  • линии управления данными (шина управления);
  • контроллер шины.

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

Шина данных обеспечивает обмен данными между CPU, картами расширения, установленными в слоты, и памятью RAM. Чем выше разрядность шины, тем больше данных может быть передано за один такт и тем выше производительность ПК. Компьютеры с процессором 80286 имеют 16-разрядную шину данных, CPU 80386 и 80486 — 32-разрядную, а компьютеры с CPU семейства Pentium — 64-разрядную шину данных.

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

Шина управления передает ряд служебных сигналов: записи/считывания, готовности к приему/передаче данных, подтверждения приема данных, аппаратного прерывания, управления и других, чтобы обеспечить передачу данных.

Часть 2. Основы вычислительных систем

21. Устройство персонального компьютера. Архитектура, шины, порты.

Архитектура персонального компьютера — компоновка его основных частей, таких как процессор, ОЗУ, видеоподсистема, дисковая система, периферийные устройства и устройства ввода-вывода.Компьютерная шина — в архитектуре компьютера подсистема, которая передаёт данные между функциональными блоками компьютера. Обычно шина управляется драйвером. В отличие от связи точка-точка, к шине можно подключить несколько устройств по одному набору проводников. Каждая шина определяет свой набор коннекторов (соединений) для физического подключения устройств, карт и кабелей.

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

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

Последовательный порт (СОМ). Присутствует в компьютерах вот уже более двух десятков лет, однако в последнее время применяется не очень часто. Изначально в компьютерах присутствовали два последовательных порта COMI и COM2, однако во многих современных платах есть разъем только для COMI, а в некоторых новых платах последовательный порт отсутствует, как устаревший.




Параллельный порт ( LPT). К нему подключаются некоторые модели принтеров, сканеров и другие устройства. Стандартный параллельный порт имеет не очень' высокое быстродействие, поэтому используются его ускоренные режимы работы ЕСР или ЕРР. Этот порт также является устаревшим и может отсутствовать на некоторых новых платах.

Порт PS/2. В большинстве компьютеров есть два таких специализированных порта: первый для подключения клавиатуры, второй — для мыши. Если же их нет, тогда клавиатуру и мышь следует подключать к разъему USB.

USB. Наиболее популярный интерфейс для самых разнообразных периферийных устройств. На задней панели обычно присутствует от 2 до 8 разъемов USB, кроме того, несколько разъемов может присутствовать на передней панели компьютера

VGA. Служит для подключения монитора. При наличии интегрированного видеоадаптера данный разъем будет присутствовать на задней стенке системной платы.

Наверняка многие и вас знают или даже видели, каким образом управляются большие автоматизированные объекты, например, атомная станция или завод со множеством технологических линий: основное действо часто происходит в большой комнате, с кучей экранов, лампочек и пультов. Это комплекс управления обычно называется ГЩУ — главный щит управления для контроля за производственным объектом.

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

Нижний уровень или полевая шина — то, с чего всё начинается

Этот неясный для непосвященных набор слов используется, когда нужно описать средства общения устройств управления с подведомственным оборудованием, например, модулями ввода-вывода или измерительными устройствами.

Под устройствами управления мы подразумеваем ПЛК, т.е. программируемые логические контроллеры (англ. PLC), или ПКА, т.е. программируемые контроллеры автоматизации (англ. PAC). Между ПЛК и ПКА есть некоторые различия, однако, в рамках данной статьи они не существенны, поэтому для упрощения будем использовать общий термин «контроллер».

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

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

Тут следует отметить, что в Европе и США полевым уровнем считаются только сами устройства, расположенные «в поле», но не среда передачи данных. В российских реалиях термин «полевая шина» или «шина нижнего уровня», пожалуй, слегка размыт и обозначает способ передачи данных от модулей ввода-вывода к контроллеру и наоборот.



Общая схема автоматизации промышленного объекта

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

Верхний уровень: от гирлянды до целой рабочей станции

Верхним уровнем называют все то, к чему может прикасаться обычный смертный оператор, который управляет технологическим процессом. В простейшем случае верхний уровень представляет собой набор лампочек и кнопочек. Лампочки сигнализируют оператору о неких происходящих событиях в системе, кнопочки служат для подачи команд контроллеру. Такую систему часто называют «гирлянда» или «ёлка», потому что выглядит очень похоже (как можно убедиться по фотографии в начале статьи).

Если оператору повезло больше, то в качестве верхнего уровня ему достанется панель оператора — некий плоскопанельный компьютер, который тем или иным образом получает данные для отображения от контроллера и выводит их на экран. Такая панель обычно монтируется на сам шкаф автоматики, поэтому взаимодействовать с ней приходится, как правило, стоя, что вызывает неудобства, плюс качество и размер изображения — если это малоформатная панелm — оставляет желать лучшего.


Ну и, наконец, аттракцион невиданной щедрости — рабочая станция (а то и несколько дублирующих), представляющая собой обычный персональный компьютер.

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

Оборудование верхнего уровня обязано взаимодействовать неким образом с контроллером (иначе зачем оно нужно?). Для такого взаимодействия используются протоколы верхнего уровня и некая технология передачи, например, Ethernet или UART. В случае с «ёлкой» таких изощрений, конечно, не нужно, лампочки зажигаются с использованием обычных физических линий, никаких мудреных интерфейсов и протоколов там нет.

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

«Древние» протоколы передачи данных: Modbus и HART

Мало кто знает, но на седьмой день создания мира Бог не отдыхал, а создавал Modbus. Наравне с HART-протоколом, Modbus, пожалуй, самый старый промышленный протокол передачи данных, он появился аж в 1979 году.

В качестве среды для передачи изначально использовался последовательный интерфейс, затем Modbus реализовали поверх TCP/IP. Это синхронный протокол по схеме «мастер-слейв» (главный-подчиненный), в котором используется принцип «запрос-ответ». Протокол довольно тяжеловесный и медленный, скорость обмена зависит от характеристик приемника и передатчика, но обычно счет идет чуть ли не на сотни миллисекунд, особенно в реализации через последовательный интерфейс.

Более того, регистр передачи данных Modbus является 16-битным, что сразу же накладывает ограничения на передачу типов real и double. Они передаются либо по частям, либо с потерей точности. Хотя Modbus до сих пор повсеместно используется в случаях, когда не нужна высокая скорость обмена и потеря передаваемых данных не критична. Многие производители различных устройств любят расширять протокол Modbus своим исключительным и очень оригинальным образом, добавляя нестандартные функции. Поэтому данный протокол имеет множество мутаций и отклонений от нормы, но все же до сих пор успешно живет в современном мире.
Протокол HART тоже существует с восьмидесятых годов, это промышленный протокол обмена поверх двухпроводной линии токовой петли, в которую напрямую включаются датчики 4-20 мА и другие приборы с поддержкой протокола HART.

Для коммутации линий HART используются специальные устройства, так называемые HART-модемы. Также существуют преобразователи, которые на выходе предоставляют пользователю уже, допустим, протокол Modbus.

Примечателен HART, пожалуй, тем, что помимо аналоговых сигналов датчиков 4-20 мА в цепи передается и цифровой сигнал самого протокола, это позволяет соединить цифровую и аналоговую часть в одной кабельной линии. Современные HART-модемы могут подключаться в USB-порт контроллера, соединяться по Bluetooth, либо же старинным способом через последовательный порт. Десяток лет назад по аналогии с Wi-Fi появился и беспроводной стандарт WirelessHART, работающий в диапазоне ISM.

Второе поколение протоколов или не совсем промышленные шины ISA, PCI(e) и VME

На смену протоколам Modbus и HART пришли не совсем промышленные шины, такие как ISA (MicroPC, PC/104) или PCI/PCIe (CompactPCI, CompactPCI Serial, StacPC), а также VME.

Настала эра вычислителей, имеющих в своем распоряжении универсальную шину передачи данных, куда можно подключать различные платы (модули) для обработки некоего унифицированного сигнала. Как правило, в этом случае процессорный модуль (вычислитель) вставляется в так называемый каркас, который обеспечивает взаимодействие по шине с другими устройствами. Каркас, или, как его любят называть трушные автоматизаторы, «крейт», дополняется необходимыми платами ввода-вывода: аналоговыми, дискретными, интерфейсными и т.д., либо все это слепливается в виде бутерброда без каркаса — одна плата над другой. После чего это многообразие на шине (ISA, PCI, etc.) обменивается данными с процессорным модулем, который таким образом получает информацию с датчиков и реализовывает некую логику.



Контроллер и модули ввода-вывода в каркасе PXI на шине PCI. Источник: National Instruments Corporation

Все бы ничего с этими шинами ISA, PCI(e) и VME, особенно для тех времен: и скорость обмена не огорчает, и расположены компоненты системы в едином каркасе, компактно и удобно, горячей замены плат ввода-вывода может и не быть, но пока еще и не очень хочется.

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



Промежуточные модули преобразования сигнала с гальванической развязкой. Источник: DataForth Corporation

«А что с протоколом обмена по промышленной шине?» — спросите вы. А ничего. Нет его в такой реализации. По кабельным линиям сигнал попадает с датчиков на преобразователи сигналов, преобразователи выдают напряжение на дискретную или аналоговую плату ввода-вывода, а данные с платы уже читаются через порты ввода/вывода, средствами ОС. И никаких специализированных протоколов.

Как работают современные промышленные шины и протоколы

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

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

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

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

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

Популярные поставщики оборудования предлагают собственные реализации промышленных протоколов: например, всем известная компания Siemens разрабатывает свою серию протоколов Profinet и Profibus, компании B&R — протокол Powerlink, Rockwell Automation — протокол EtherNet/IP. Отечественное решение в этом списке примеров: версия протокола FBUS от российской компании Fastwel.

Есть и более универсальные решения, которые не привязаны к конкретному производителю, такие как EtherCAT и CAN. Мы подробно разберем эти протоколы в продолжении статьи и разберемся, какие из них лучше подходят для конкретных применений: автомобильной и аэрокосмической промышленности, производства электроники, систем позиционирования и робототехники. Оставайтесь на связи!

Шиной (Bus) называется вся совокупность линий (проводников на материнской плате), по которым обмениваются информацией компоненты и устройства ПК. Шины предназначены для обмена информацией между двумя и более устройствами. Шина, связывающая только два устройства, называется портом. На рис. 1 дана структура шины.

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

схема шины персонального компьютера cpu контроллеры памяти и контроллеры шины

Рис. 1. Структура шины

Шины в ПК различаются по своему функциональному назначению:

  • системная шина (или шина CPU) используется микросхемами Cipset для пересылки информации к CPU и обратно (см. также рис. 1);
  • шина кэш-памяти предназначена для обмена информацией между CPU и кэш-памятью (см. также рис. 1);
  • шина памяти используется для обмена информацией между оперативной памятью RAM и CPU;
  • шины ввода/вывода информации подразделяются на стандартные и локальные.

Локальная шина ввода/вывода – это скоростная шина, предназначенная для обмена информацией между быстродействующими периферийными устройствами (видеоадаптерами, сетевыми картами, картами сканера и др.) и системной шиной под управлением CPU. В настоящее время в качестве локальной шины используется шина PCI. Для ускорения ввода/вывода видеоданных и повышения производительности ПК при обработке трехмерных изображений корпорацией Intel была разработана шина AGP (Accelerated Graphics Port).

Стандартная шина ввода/вывода используется для подключения к перечисленным выше шинам более медленных устройств (например, мыши, клавиатуры, модемов, старых звуковых карт). До недавнего времени в качестве этой шины использовалась шина стандарта ISA. В настоящее время – шина USB.

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

  • линии для обмена данными (шина данных);
  • линии для адресации данных (шина адреса);
  • линии управления данными (шина управления);
  • контролер шины.

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

Шина данных обеспечивает обмен данными между CPU, картами расширения, установленными в слоты, и памятью RAM. Чем выше разрядность шины, тем больше данных может быть передано за один такт и тем выше производительность ПК. Компьютеры с процессором 80286 имеют 16-разрядную шину данных, с CPU 80386 и 80486 – 32-разрядную, а компьютеры с CPU семейства Pentium – 64-разрядную шину данных.

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

Для ускорения обмена данными используется устройство промежуточного хранения данных – оперативная памятьRAM. При этом решающую роль играет объем данных, которые могут временно храниться в ней. Объем зависит от разрядности адресной шины (числа линий) и тем самым от максимально возможного числа адресов, генерируемых процессором на адресной шине, т.е. от количества ячеек RAM, которым может быть присвоен адрес. Количество ячеек RAM не должно превышать 2 n , где n – разрядность адресной шины. В противном случае часть ячеек не будет использоваться, поскольку процессор не сможет адресоваться к ним.

В двоичной системе счисления максимально адресуемый объем памяти равен 2 n , где n – число линий шины адреса.

Процессор 8088, например, имел 20 адресных линий и мог, таким образом, адресовать память объемом 1 Мбайт (2 20 =1 048 576 байт=1024 Кбайт). В ПК с процессором 80286 разрядность адресной шины была увеличена до 24 бит, а процессоры 80486, Pentium, Pentium MMX и Pentium II имеют уже 32-разрядную шину адреса, с помощью которой можно адресовать 4 Гбайт памяти.

Шина управления передает ряд служебных сигналов: записи/считывания, готовности к приему/передаче данных, подтверждения приема данных, аппаратного прерывания, управления и других, чтобы обеспечить передачу данных.

Основные характеристики шины

Разрядность шины определяется числом параллельных проводников, входящих в нее. Первая шина ISA для IBM PC была восьмиразрядной, т.е. по ней можно было одновременно передавать 8 бит. Системные шины современных ПК, например, Pentium IV – 64-разрядные.

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

При расчете пропускной способности, например шины AGP, следует учитывать режим ее работы: благодаря увеличению в два раза тактовой частоты видеопроцессора и изменению протокола передачи данных удалось повысить пропускную способность шины в два (режим 2 х ) или четыре (режим 4 х ) раза, что эквивалентно увеличению тактовой частоты шины в соответствующее число раз (до 133 и 266 МГц соответственно).

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

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

Стандарты шин ПК

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

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

  • GTL, имеющая разрядность 64 бит, тактовую частоту 66, 100 и 133 МГц;
  • EV6, спецификация которой позволяет повысить ее тактовую частоту до 377 МГц.

Шины ввода/вывода совершенствуются в соответствии с развитием периферийных устройств ПК. В табл. 2 представлены характеристики некоторых шин ввода/вывода.

Шина ISA в течение многих лет считалась стандартом ПК, однако и до сих пор сохраняется в некоторых ПК наряду с современной шиной PCI. Корпорация Intel совместно с Microsoft разработала стратегию постепенного отказа от шины ISA. В начале планируется исключить ISA-разъемы на материнской плате, а впоследствии исключить слоты ISA и подключить дисководы, мыши, клавиатуры, сканеры к шине USB, а винчестеры, приводы CD-ROM – к шине IEEE 1394. Однако наличие огромного парка ПК с шиной ISA будет востребована еще на протяжении некоторого времени.

Шина EISA стала дальнейшим развитием шины ISA в направлении повышения производительности системы и совместимости ее компонентов. Шина не получила широкого распространения в связи с ее высокой стоимостью и пропускной способностью, уступающей пропускной способности появившейся на рынке шины VESA.

Таблица 2. Характеристики шин ввода/вывода

Шина VESA, или VLB, предназначена для связи CPU с быстрыми периферийными устройствами и представляет собой расширение шины ISA для обмена видеоданными.

Шина PCI была разработана фирмой Intel для процессора Pentium и представляет собой совершено новую шину. Основополагающим принципом, положенным в основу шины PCI, является применение так называемых мостов (Bridges), которые осуществляют связь между шиной PCI и другими типами шин. В шине PCI реализован принцип Bus Mastering, который подразумевает способность внешнего устройства при пересылке данных управлять шиной (без участия CPU). Во время передачи информации устройство, поддерживающее Bus Mastering, захватывает шину и становится главным. В этом случае центральный процессор освобождается для решения других задач, пока происходит передача данных. В современных

материнских платах тактовая частота шины PCI задается как половина тактовой частоты системной шины, т.е. при тактовой частоте системной шины 66 МГц шина PCI будет работать на частоте 33 МГц. В настоящее время шина PCI стала фактическим стандартом среди шин ввода/вывода.

Шина AGP – высокоскоростная локальная шина ввода/вывода, предназначенная исключительно для нужд видеосистемы. Она связывает видеоадаптер (3D-акселератор) с системой памятью ПК. Шина AGP была разработана на основе архитектуры шины PCI, поэтому она также является 32-разрядной. Однако при этом у нее есть дополнительные возможности увеличения пропускной способности, в частности, за счет использования более высоких тактовых частот.

Шина USB была разработана лидерами компьютерной и телекоммуникационной промышленности Compaq, DEC, IBM, Intel, Microsoft для подключения периферийных устройств вне корпуса PC. Скорость обмена информацией по шине USB составляет 12 Мбит/с или 15 Мбайт/с. К компьютерам, оборудованным шиной USB, можно подключать такие периферийные устройства, как клавиатура, мышь, джойстик, принтер, не выключая питания. Все периферийные устройства должны быть оборудованы разъемами USB и подключаться к ПК через отдельный выносной блок, называемый USB-хабом, или концентратором, с помощью которого к ПК можно подключить до 127 периферийных устройств. Архитектура шины USB представлена на рис. 4.

Шина SCSI (Small Computer System Interface) обеспечивает скорость передачи данных до 320 Мбайт/с и предусматривает подключение к одному адаптеру до восьми устройств: винчестеры, приводы CD-ROM, сканеры, фото- и видеокамеры. Отличительной особенностью шины SCSI является то, что она представляет собой кабельный шлейф. С шинами PC (ISA или PCI) шина SCSI связана через хост-адаптер (Host Adapter). Каждое устройство, подключенное к шине SCSI, может инициировать обмен с другими устройством.

Шина IEEE 1394 это стандарт высокоскоростной локальной последовательной шины, разработанный фирмами Apple и Texas Instruments. Шина IEEE 1394 предназначена для обмена цифровой информацией между

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

Подключить к компьютеру через интерфейс IEEE 1394 можно практически любые устройств, способные работать с SCSI. К ним относятся все виды накопителей на дисках, включая жесткие, оптические, CD-ROM, DVD, цифровые видеокамеры, устройства. Благодаря таким широким возможностям, эта шина стала наиболее перспективной для объединения компьютера с бытовой электроникой. В настоящее время уже выпускаются адаптеры IEEE 1394 для шины PCI.

Я обещал не просто писать статьи, а корректировать ход изложения с учетом комментариев читателей. Выполняю свое обещание. Эта статья является внеплановой , внеочередной. Причиной ее появления стало то, что у некоторых читателей вызвала затруднения статья "Микроконтроллеры для начинающих. Часть 5. Архитектура. Адресные пространства и память". А точнее шина ввода-вывода .

Но это очень важно для следующей статьи, которая будет посвящена адресации операндов. Поэтому я решил уделить дополнительное внимание адресным пространствам и шинам. Еще в статье "Микроконтроллеры для начинающих. Часть 1. Первый шаг "в незнаемое" . " я сказал, что микроконтроллеры это наследники управляющих ЭВМ и комплексов, которые существовали ранее. И микроконтроллер объединяем в одном корпусе микросхемы специализированную ЭВМ, память, некоторые внешние (по отношению к внутренней ЭВМ, но не микроконтроллеру!) устройства. Поэтому и подробнее рассматривать вопрос надо с больших универсальных ЭВМ.

Адресное пространство ввода лежит ВНЕ адресного пространства памяти

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

Упрощенная функциональная схема одной из конфигураций ЕС-1022. Иллюстрация моя Упрощенная функциональная схема одной из конфигураций ЕС-1022. Иллюстрация моя

В этой схеме нам знакомы процессор и ОЗУ (память). Эта ЭВМ архитектуры фон Неймана, так что память программ и данных общая. А вот внешние устройства, а они действительно внешние, по отношению к ЭВМ, подключались к так называемым каналам, с которыми и работал процессор. В данной модели было два селекторных канала, к которым обычно подключались внешние устройства долговременной памяти, и один мультиплексный, использовавшийся для подключения консольной пишущей машинки (да, именно так! и с такой ЭВМ я работал достаточно долго, сидел и за консолью), АЦПУ (по современному принтер), устройства чтения перфокарт (УПК) и устройства чтения перфолент (УПЛ). Были и другие устройства, на даже перечисленных для нашей цели слишком много.

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

На иллюстрации я показал, что к первому селекторному каналу подключено два устройства управления накопителями на дисках (УУ НМД). Первое имеет адрес в канале 80, а второе 90. К первому УУ НМД подключен один накопитель на магнитных дисках (НМД) с адресом, внутри УУ НМД, 0. Ко второму подключено два НМД с адресами 0 и 1. К второму селекторному каналу подключено устройство управления накопителями на магнитной ленте (УУ НМЛ) с адресом внутри канала 80. А уже к нему два накопителя на магнитной ленте (НМЛ) с адресами, внутри УУ НМЛ, 0 и 1.

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

Так у нас есть три накопителя на дисках с адресами 180, 190 и 191. И два накопителя на лентах, с адресами 280 и 281. И эти адреса устройств ввода-вывода лежат вне адресов памяти . То есть, у нас есть два независимых адресных пространства - пространство памяти и пространство ввода-вывода.

На самом деле этот пример еще сложнее, так как каждый канал, по своей сути, формирует отдельное адресное пространство ввода-вывода. Обратите внимание, что у нас два УУ в разных каналах имеют одинаковые адреса (80). А каждое УУ формирует свое адресное пространство. Но такая детализация для нас сейчас совершенно излишня.

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

Адресное пространство ввода-вывода лежит ВНУТРИ адресного пространства памяти

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

Упрощенная функциональная схема одной из конфигураций СМ-4. Иллюстрация моя Упрощенная функциональная схема одной из конфигураций СМ-4. Иллюстрация моя

Я не стал показывать накопители, это в данном случае не важно. В качестве консольного устройства тут уже использовалась не электро-механическая пишущая машинка, а алфавитно-цифровой терминал (25 строк по 80 символов, цвет - зеленый на черном). Это тоже для нас не важно, упомянул лишь для полноты картины.

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

В общем адресном пространстве под адреса устройств ввода-вывода отводился диапазон, если не изменяет память, с адреса 176000 по адрес 177777. Адреса ниже 176000 занимала оперативная память, причем не обязательно весь диапазон адресов. И каждое внешнее устройство было обязано иметь полный адресный дешифратор!

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

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

Что такое внешнее устройство с точки зрения процессора

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

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

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

Двунаправленные параллельный порт (порт ввода-вывода) общего назначения может иметь регистры: направления передачи, данных, маски прерываний, подтяжки. Можете вспомнить LPT порт (параллельный) настольных ПК, он тоже имел несколько регистров.

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

Реальный мир

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

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

IBM PC и Intel 8086

Я не буду рассматривать микропроцессор 8080 (Z80), но кратко остановлюсь на 8086, на котором был построен ПК IBM PC (да, я знаю про Mac), архитектура которого стала "де-факто" стандартом и самой популярной.

Читайте также: