stringtranslate.com

Автобус (вычислительный)

Четыре слота для карт шины PCI Express (сверху вниз: ×4, ×16, ×1 и ×16) по сравнению с 32-битным обычным слотом для карт шины PCI (самый нижний)

В компьютерной архитектуре шина [ 1] (исторически также называемая магистралью данных [2] или шиной данных ) — это система связи, которая передает данные между компонентами внутри компьютера или между компьютерами. Это выражение охватывает все сопутствующие аппаратные компоненты (провода, оптоволокно и т. д.) и программное обеспечение , включая протоколы связи . [3]

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

Предыстория и номенклатура

Компьютерные системы обычно состоят из трех основных частей:

Ранний компьютер мог содержать подключенный вручную процессор на электронных лампах , магнитный барабан для основной памяти, а также перфоленту и принтер для чтения и записи данных соответственно. Современная система может иметь многоядерный процессор , DDR4 SDRAM для памяти, твердотельный накопитель в качестве вторичного хранилища , видеокарту и ЖК-дисплей в качестве системы отображения, мышь и клавиатуру для взаимодействия, а также соединение Wi-Fi для работы в сети. . В обоих примерах компьютерные шины той или иной формы передают данные между всеми этими устройствами.

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

Таким же образом можно разрешить периферийным устройствам взаимодействовать с памятью, подключив адаптеры либо на материнской плате , либо в виде карт расширения непосредственно к системной шине. Обычно это достигается с помощью какого-либо стандартизированного электрического разъема, некоторые из которых образуют шину расширения или локальную шину . Однако, поскольку различия в производительности между ЦП и периферийными устройствами сильно различаются, обычно требуется какое-то решение, гарантирующее, что периферийные устройства не замедляют общую производительность системы. Многие процессоры имеют второй набор контактов, аналогичный тем, которые предназначены для связи с памятью, но могут работать на очень разных скоростях и с использованием разных протоколов (например, UART , SPI и Ethernet ). [ оспаривается (по поводу: Какие процессоры имеют эти контакты и что эти контакты делают?)  ] Другие используют интеллектуальные контроллеры для размещения данных непосредственно в памяти, концепция, известная как прямой доступ к памяти . Большинство современных систем сочетают в себе оба решения, где это возможно.

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

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

Учитывая эти изменения, классические термины «система», «расширение» и «периферийное устройство» больше не имеют прежнего значения. Другие распространенные системы категоризации основаны на основной роли шины, соединяющей устройства внутри или снаружи, например , PCI или SCSI . Однако многие распространенные современные шинные системы можно использовать и для того, и для другого; SATA и связанный с ним eSATA являются одним из примеров системы, которая раньше описывалась как внутренняя, в то время как некоторые автомобильные приложения используют преимущественно внешний IEEE 1394 , более похожий на системную шину. Другие примеры, такие как InfiniBand и I²C , с самого начала разрабатывались для использования как внутри, так и снаружи.

Внутренние автобусы

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

Внешние шины

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

Адресная шина

Адресная шина — это шина, которая используется для указания физического адреса . Когда процессору или устройству с поддержкой DMA необходимо прочитать или записать ячейку памяти, он указывает эту ячейку памяти на адресной шине (значение, которое нужно прочитать или записать, отправляется на шину данных). Ширина адресной шины определяет объем памяти, к которой может обращаться система. Например, система с 32-битной адресной шиной может адресовать 2 32 (4 294 967 296) ячеек памяти. Если каждая ячейка памяти содержит один байт, адресное пространство памяти составляет 4 ГиБ.

Мультиплексирование адресов

Ранние процессоры использовали провод для каждого бита ширины адреса. Например, 16-битная адресная шина имела 16 физических проводов, составляющих шину. Поскольку шины стали шире и длиннее, этот подход стал дорогостоящим с точки зрения количества выводов микросхемы и дорожек на плате. Начиная с Mostek 4096 DRAM , мультиплексирование адресов, реализованное с помощью мультиплексоров , стало обычным явлением. В схеме мультиплексной адресации адрес отправляется двумя равными частями в чередующихся циклах шины. Это вдвое уменьшает количество сигналов адресной шины, необходимых для подключения к памяти. Например, 32-битную адресную шину можно реализовать, используя 16 строк и отправляя первую половину адреса памяти, за которой сразу следует вторая половина адреса памяти.

Обычно два дополнительных контакта на шине управления — строб адреса строки (RAS) и строб адреса столбца (CAS) — используются для того, чтобы сообщить DRAM, отправляет ли адресная шина в данный момент первую половину адреса памяти или вторая половина.

Выполнение

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

Исторически существовало также несколько примеров компьютеров, которые могли обрабатывать только слова – текстовые машины .

Шина памяти

Шина памяти — это шина, которая соединяет основную память с контроллером памяти в компьютерных системах . Первоначально использовались шины общего назначения, такие как VMEbus и шина S-100 , но для уменьшения задержки современные шины памяти предназначены для прямого подключения к микросхемам DRAM и, таким образом, разрабатываются организациями по стандартизации микросхем, такими как JEDEC . Примерами являются различные поколения SDRAM и последовательные шины типа «точка-точка», такие как SLDRAM и RDRAM . Исключением является модуль DIMM с полной буферизацией , который, несмотря на то, что он был тщательно разработан для минимизации эффекта, подвергался критике за более высокую задержку.

Детали реализации

Шины могут быть параллельными шинами , которые передают слова данных параллельно по нескольким проводам, или последовательными шинами , которые передают данные в последовательной битовой форме. Добавление дополнительных силовых и управляющих соединений, дифференциальных драйверов и соединений для передачи данных в каждом направлении обычно означает, что большинство последовательных шин имеют больше проводников, чем минимум один, используемый в 1-Wire и UNI/O . По мере увеличения скорости передачи данных становится все труднее обойти проблемы временных перекосов , энергопотребления, электромагнитных помех и перекрестных помех между параллельными шинами. Одним из частичных решений этой проблемы было двойное прокачивание автобуса. Часто последовательная шина может работать с более высокими общими скоростями передачи данных, чем параллельная шина, несмотря на меньшее количество электрических соединений, поскольку последовательная шина по своей сути не имеет временных перекосов или перекрестных помех. USB , FireWire и Serial ATA являются примерами этого. Многоточечные соединения не подходят для быстрых последовательных шин, поэтому в большинстве современных последовательных шин используются шлейфовые соединения или концентраторы.

Сетевые соединения, такие как Ethernet , обычно не рассматриваются как шины, хотя разница в основном концептуальная, а не практическая. Атрибут, обычно используемый для характеристики шины, заключается в том, что шина обеспечивает питание подключенного оборудования. Это подчеркивает шинное происхождение архитектуры шины как источника коммутируемой или распределенной мощности. Это исключает в качестве шин такие схемы, как последовательный RS-232 , параллельный Centronics , интерфейсы IEEE 1284 и Ethernet, поскольку эти устройства также нуждались в отдельных источниках питания. Устройства универсальной последовательной шины могут использовать питание от шины, но часто используют отдельный источник питания. Это различие иллюстрируется телефонной системой с подключенным модемом , где соединение RJ11 и связанная с ним схема модулированной сигнализации не считаются шиной и аналогичны соединению Ethernet . Схема подключения телефонной линии не считается шиной по отношению к сигналам, но для соединения между телефонами в Центральном аппарате используются шины с перекрестными переключателями .

Однако это различие — то, что питание подается по шине — не имеет место во многих авиационных системах , где соединения данных, такие как ARINC 429 , ARINC 629 , MIL-STD-1553B (STANAG 3838) и EFABus ( STANAG 3910 ), являются обычно называемые «шинами данных» или иногда «шинами данных». Такие шины бортовых данных обычно характеризуются наличием нескольких устройств или линейных заменяемых элементов/блоков (LRI/LRU), подключенных к общей общей среде передачи данных . Они могут, как ARINC 429, быть симплексными , т.е. иметь один источник LRI/LRU, или, как ARINC 629, MIL-STD-1553B и STANAG 3910, быть дуплексными , позволяя всем подключенным LRI/LRU действовать одновременно. разное время ( полудуплекс ) как передатчики и приемники данных. [4]

Мультиплексирование шин

Простейшая системная шина имеет полностью отдельные линии входных данных, линии выходных данных и строки адреса. Чтобы снизить стоимость, большинство микрокомпьютеров имеют двунаправленную шину данных, в которой одни и те же провода повторно используются для ввода и вывода в разное время. [5]

Некоторые процессоры используют выделенный провод для каждого бита адресной шины, шины данных и шины управления. Например, 64-контактная шина STEbus состоит из 8 физических проводов, предназначенных для 8-битной шины данных, 20 физических проводов, предназначенных для 20-битной адресной шины, 21 физического провода, предназначенного для шины управления, и 15 физических проводов, предназначенных для шины управления. различные силовые шины.

Для мультиплексирования шин требуется меньше проводов, что снижает стоимость многих ранних микропроцессоров и микросхем DRAM. Одна распространенная схема мультиплексирования — мультиплексирование адресов — уже упоминалась. Другая схема мультиплексирования повторно использует контакты адресной шины в качестве контактов шины данных [5] — подход, используемый обычным PCI и 8086 . Различные «последовательные шины» можно рассматривать как предел мультиплексирования, при котором каждый бит адреса и каждый бит данных передаются по одному через один вывод (или одну дифференциальную пару).

История

Со временем несколько групп людей работали над различными стандартами компьютерных шин, в том числе Комитет по стандартам архитектуры автобусов IEEE (BASC), исследовательская группа IEEE «Superbus», инициатива открытых микропроцессоров (OMI), инициатива открытых микросистем (OMI), «Банда девяти», разработавшая EISA и т . д .

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

Ранние компьютерные шины представляли собой пучки проводов, к которым подключались компьютерная память и периферийные устройства. В первом австралийском компьютере CSIRAC они были названы « цифровыми магистралями » [6] в честь шин электропитания или шин . Почти всегда была одна шина для памяти и одна или несколько отдельных шин для периферии. Доступ к ним осуществлялся с помощью отдельных инструкций с совершенно разными таймингами и протоколами.

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

Высокопроизводительные системы представили идею контроллеров каналов , которые, по сути, представляли собой небольшие компьютеры, предназначенные для обработки входных и выходных данных данной шины. IBM представила их на IBM 709 в 1958 году, и они стали общей чертой их платформ. Другие высокопроизводительные поставщики, такие как Control Data Corporation, реализовали аналогичные конструкции. Как правило, контроллеры каналов делают все возможное, чтобы выполнять все операции шины внутри себя, перемещая данные, когда известно, что ЦП занят в другом месте, если это возможно, и используя прерывания только при необходимости. Это значительно снизило нагрузку на процессор и повысило общую производительность системы.

Одиночная системная шина

Для обеспечения модульности шины памяти и ввода-вывода могут быть объединены в единую системную шину . [7] В этом случае одна механическая и электрическая система может использоваться для соединения многих компонентов системы, а в некоторых случаях и всех их.

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

Мини и микро

Digital Equipment Corporation (DEC) еще больше снизила стоимость серийных миникомпьютеров и подключила периферийные устройства к шине памяти, так что устройства ввода и вывода выглядели как ячейки памяти. Это было реализовано в юнибусе PDP -11 примерно в 1969 году. [8]

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

Например, контроллер дисковода сигнализирует ЦП о том, что новые данные готовы к чтению, после чего ЦП перемещает данные, читая «ячейку памяти», соответствующую диску. Почти все ранние микрокомпьютеры были построены таким образом, начиная с шины S-100 в компьютерной системе «Альтаир 8800» .

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

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

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

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

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

Автобусные системы «второго поколения», такие как NuBus, решили некоторые из этих проблем. Обычно они разделяли компьютер на два «мира»: процессор и память с одной стороны и различные устройства с другой. Контроллер шины принимает данные со стороны ЦП для передачи на сторону периферийных устройств, тем самым снимая нагрузку с протокола связи с самого ЦП. Это позволило процессору и памяти развиваться отдельно от шины устройства или просто «шины». Устройства на шине могли общаться друг с другом без вмешательства процессора. Это привело к гораздо лучшей производительности в «реальном мире», но также потребовало, чтобы карты были намного более сложными. Эти шины также часто решали проблемы со скоростью, будучи «большими» с точки зрения размера пути данных, переходя от 8-битных параллельных шин в первом поколении к 16 или 32-битным во втором, а также добавляя настройку программного обеспечения. (теперь стандартизированный как Plug-n-play ) для замены или замены перемычек.

Однако эти новые системы разделяли одно качество со своими более ранними собратьями: все в автобусе должны были говорить с одинаковой скоростью. Хотя ЦП теперь был изолирован и мог увеличивать скорость, скорость ЦП и памяти продолжала увеличиваться гораздо быстрее, чем шины, с которыми они общались. В результате скорость шины стала намного ниже, чем требовалось современной системе, и машины остались без данных. Особенно распространенным примером этой проблемы было то, что видеокарты быстро обогнали даже новые системы шин, такие как PCI , и компьютеры начали включать AGP только для управления видеокартой. К 2004 году AGP снова переросла высококлассные видеокарты и другую периферию, и на смену ему пришла новая шина PCI Express .

Все большее число внешних устройств также начало использовать свои собственные системы шин. Когда впервые появились дисководы, их добавляли к машине с картой, подключаемой к шине, поэтому компьютеры имеют так много слотов на шине. Но в 1980-х и 1990-х годах для удовлетворения этой потребности были представлены новые системы, такие как SCSI и IDE , в результате чего большинство слотов в современных системах осталось пустыми. Сегодня в типичной машине, вероятно, имеется около пяти различных шин, поддерживающих различные устройства. [ нужна цитата ]

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

Автобусы «третьего поколения» появляются на рынке примерно с 2001 года, включая HyperTransport и InfiniBand . Они также имеют тенденцию быть очень гибкими с точки зрения физических соединений, что позволяет использовать их как в качестве внутренних шин, так и для соединения различных машин вместе. Это может привести к сложным проблемам при попытке обслуживания различных запросов, поэтому большая часть работы над этими системами связана с разработкой программного обеспечения, а не самого аппаратного обеспечения. В целом, эти шины третьего поколения, как правило, больше похожи на сеть , чем на первоначальную концепцию шины, с более высокими требованиями к протоколу, чем в ранних системах, а также позволяют нескольким устройствам использовать шину одновременно.

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

Compute Express Link (CXL) — это соединение открытого стандарта для высокоскоростного соединения ЦП с устройством и ЦП с памятью, предназначенное для повышения производительности центров обработки данных следующего поколения . [10]

Примеры внутренних компьютерных шин

Параллельно

Серийный

Примеры внешних компьютерных шин

Параллельно

Серийный

Многие полевые шины представляют собой последовательные шины данных (не путать с параллельной секцией «шины данных» системной шины или карты расширения ), некоторые из которых используют электрические характеристики RS-485 , а затем определяют свой собственный протокол и разъем:

Другие серийные автобусы включают:

Примеры внутренних/внешних компьютерных шин

Смотрите также

Рекомендации

  1. ^ Клифтон, Карл (19 сентября 1986). Что каждый инженер должен знать о передаче данных. ЦРК Пресс. п. 27. ISBN 9780824775667. Архивировано из оригинала 17 января 2018 г. Внутренняя компьютерная шина представляет собой параллельную схему передачи; внутри компьютера....
  2. ^ Холлингдейл, Стюарт Х. (19 сентября 1958). Сессия 14. Обработка данных. Приложения компьютеров, Ноттингемский университет, 15–19 сентября 1958 г.
  3. ^ «Определение автобуса из энциклопедии журнала PC Magazine» . pcmag.com. 29 мая 2014 г. Архивировано из оригинала 7 февраля 2015 г. Проверено 21 июня 2014 г.
  4. ^ Комитет по стандартизации авионики, Руководство по стандартам цифрового интерфейса для военной авионики , ASSC/110/6/2, выпуск 2, сентябрь 2003 г.
  5. ^ аб Дон Ланкастер. «Поваренная книга для телевизионной пишущей машинки». ( ТВ-пишущая машинка ). Раздел «Организация автобусов». п. 82.
  6. ^ Макканн, Дуг; Торн, Питер (2000). Последний из первых, CSIRAC: первый компьютер в Австралии. Мельбурнский университет компьютерных наук. стр. 8–11, 13, 91. ISBN. 0-7340-2024-4.
  7. ^ Линда Налл; Юлия Лобур (2006). Основы компьютерной организации и архитектуры (2-е изд.). Джонс и Бартлетт Обучение. стр. 33, 179–181. ISBN 978-0-7637-3769-6. Архивировано из оригинала 17 января 2018 г.
  8. ^ К. Гордон Белл; Р. Кэди; Х. МакФарланд; Б. Делаги; Дж. О'Лафлин; Р. Нунан; В. Вульф (1970). Новая архитектура для мини-компьютеров — DEC PDP-11 (PDF) . Весенняя совместная компьютерная конференция. стр. 657–675. Архивировано (PDF) из оригинала 27 ноября 2011 г.
  9. ^ Брэй, Эндрю С.; Диккенс, Адриан К.; Холмс, Марк А. (1983). «28. Автобус «Один мегагерц». Расширенное руководство пользователя микрокомпьютера BBC. Кембридж, Великобритания: Кембриджский микрокомпьютерный центр. стр. 442–443. ISBN 0-946827-00-1. Архивировано из оригинала (архивированный PDF) 14 января 2006 г. Проверено 28 марта 2008 г.
  10. ^ «О CXL». Вычислить Экспресс-ссылку . Проверено 9 августа 2019 г.
  11. ^ «Шансы и концы: местный автобус Opti, звуковые карты Aria» . 21 июля 2015 г. Проверено 19 февраля 2021 г.

Внешние ссылки