stringtranslate.com

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

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

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

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

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

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

Учитывая технологические изменения, классические термины «система», «расширение» и «периферия» больше не имеют тех же коннотаций. Другие общие системы категоризации основаны на основной роли шины, соединяющей устройства внутри или снаружи. Однако многие общие современные системы шин могут использоваться для обоих. 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 являются примерами этого. Многоточечные соединения не работают хорошо для быстрых последовательных шин, поэтому большинство современных последовательных шин используют конструкции с последовательным соединением или концентратором.

Переход от параллельных к последовательным шинам был разрешен законом Мура , который позволил включить SerDes в интегральные схемы, используемые в компьютерах. [4]

Сетевые соединения, такие как Ethernet, обычно не считаются шинами, хотя разница в основном концептуальная, а не практическая. Атрибутом, обычно используемым для характеристики шины, является то, что питание предоставляется шиной для подключенного оборудования. Это подчеркивает шинное происхождение архитектуры шины как подачи коммутируемого или распределенного питания. Это исключает, как шины, такие схемы, как последовательный RS-232 , параллельный Centronics , интерфейсы IEEE 1284 и Ethernet, поскольку этим устройствам также требовались отдельные источники питания. Устройства Universal Serial Bus могут использовать питание, подаваемое шиной, но часто используют отдельный источник питания. Это различие иллюстрируется телефонной системой с подключенным модемом , где соединение 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 действовать в разное время ( полудуплекс ), как передатчики и приемники данных. [5]

Частота или скорость шины измеряется в Гц, например, МГц, и определяет, сколько тактовых циклов в секунду; за такт может быть одна или несколько передач данных. Если за такт происходит одна передача, это называется одинарной скоростью передачи данных (SDR), а если за такт происходит две передачи, это называется двойной скоростью передачи данных (DDR), хотя использование сигнализации, отличной от SDR, за пределами ОЗУ встречается редко. Примером этого является PCIe, который использует SDR. [6] В каждой передаче данных может быть несколько бит данных. Это описывается как ширина шины, которая представляет собой количество бит, которые шина может передать за такт, и может быть синонимом количества физических электрических проводников, которые есть у шины, если каждый проводник передает один бит за раз. [7] [8] [9] Скорость передачи данных в битах в секунду можно получить, умножив количество бит за такт, на частоту, на количество передач за такт. [10] [11] В качестве альтернативы шина, такая как PCIe, может использовать модуляцию или кодирование, например PAM4 [12] [13] [14] , которое группирует 2 бита в символы, которые затем передаются вместо самих битов, и позволяет увеличить скорость передачи данных без увеличения частоты шины. Эффективная или реальная скорость/скорость передачи данных может быть ниже из-за использования кодирования, которое также позволяет исправлять ошибки, например, кодирование 128/130b (b для бита). [15] [16] [17] Скорость передачи данных также известна как пропускная способность. [18] [19]

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

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

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

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

История

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

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

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

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

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

Единая системная шина

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

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

Мини и микро

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

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

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

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

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

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

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

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

Системы шин «второго поколения», такие как 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) — это открытое стандартное соединение для высокоскоростного обмена данными между ЦП и устройством и между ЦП и памятью, разработанное для ускорения производительности центров обработки данных следующего поколения . [25]

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

Параллельный

Серийный

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

Параллельный

Серийный

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

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

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

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

Ссылки

  1. ^ Клифтон, Карл (1986-09-19). Что каждый инженер должен знать о передаче данных. CRC Press. стр. 27. ISBN 9780824775667. Архивировано из оригинала 2018-01-17. Внутренняя компьютерная шина представляет собой параллельную схему передачи; внутри компьютера....
  2. ^ Холлингдейл, Стюарт Х. (1958-09-19). Сессия 14. Обработка данных. Применение компьютеров, Ноттингемский университет, 15–19 сентября 1958 г.
  3. ^ "Определение шины из энциклопедии журнала PC Magazine". pcmag.com. 2014-05-29. Архивировано из оригинала 2015-02-07 . Получено 2014-06-21 .
  4. ^ Граница — Справочник сканирования. Springer. 2003-06-30. ISBN 978-1-4020-7496-7.
  5. ^ Комитет по стандартизации авиационных систем, Руководство по стандартам цифрового интерфейса для военных авиационных приложений , ASSC/110/6/2, выпуск 2, сентябрь 2003 г.
  6. ^ Техническое руководство IBM z15 (8561). IBM Redbooks. 2022-07-13. ISBN 978-0-7384-5812-0.
  7. ^ Основы компьютерных технологий. CRC Press. 2020-10-25. ISBN 978-1-000-11716-5.
  8. ^ Beales, RP (2006-08-11). Системы ПК, Установка и обслуживание. Routledge. ISBN 978-1-136-37442-5.
  9. ^ "Как работают материнские платы". 2005-07-20.
  10. ^ Бьюкенен, Билл (2000-04-25). Компьютерные шины. CRC Press. ISBN 978-1-4200-4168-2.
  11. ^ Оклобджия, Воин Г. (2019-07-05). Справочник по компьютерной инженерии. CRC Press. ISBN 978-1-4398-3316-2.
  12. ^ https://www.theregister.com/2022/01/12/final_pcie_60_specs_released/
  13. ^ «Доступна спецификация PCIe 7.0 Draft 0.5: 512 ГБ/с по PCIe x16 на подходе к 2025 году».
  14. ^ «PCIe 5.0 только начинает появляться на новых PCS, но версия 6.0 уже здесь». 2022-01-12.
  15. ^ «PCIe 6.0: все, что вам нужно знать о грядущем стандарте». 2024-06-30.
  16. ^ "Сигнализация PAM-4".
  17. ^ Техническое руководство IBM z15 (8561). IBM Redbooks. 2022-07-13. ISBN 978-0-7384-5812-0.
  18. ^ Модернизация и ремонт ПК. Вопрос. 2003. ISBN 978-0-7897-2745-9.
  19. ^ «Доступна спецификация PCIe 7.0 Draft 0.5: 512 ГБ/с по PCIe x16 на подходе к 2025 году».
  20. ^ ab Дон Ланкастер. "Кулинарная книга по использованию телевизионной пишущей машинки". ( TV Typewriter ). Раздел "Организация автобусов". стр. 82.
  21. ^ Макканн, Дуг; Торн, Питер (2000). Последний из первых, CSIRAC: Первый компьютер в Австралии. Университет Мельбурна, вычислительная наука. стр. 8–11, 13, 91. ISBN 0-7340-2024-4.
  22. ^ Линда Налл; Джулия Лобур (2006). Основы организации и архитектуры компьютера (2-е изд.). Jones & Bartlett Learning. стр. 33, 179–181. ISBN 978-0-7637-3769-6. Архивировано из оригинала 2018-01-17.
  23. ^ C. Gordon Bell; R. Cady; H. McFarland; B. Delagi; J. O'Laughlin; R. Noonan; W. Wulf (1970). Новая архитектура для мини-компьютеров — DEC PDP-11 (PDF) . Весенняя совместная компьютерная конференция. стр. 657–675. Архивировано (PDF) из оригинала 27.11.2011.
  24. ^ Брей, Эндрю К.; Диккенс, Адриан К.; Холмс, Марк А. (1983). "28. Шина One Megahertz". Расширенное руководство пользователя для микрокомпьютера BBC. Кембридж, Великобритания: Кембриджский микрокомпьютерный центр. стр. 442–443. ISBN 0-946827-00-1. Архивировано из оригинала (сжатый PDF) 2006-01-14 . Получено 2008-03-28 .
  25. ^ "О CXL". Ссылка на Compute Express . Получено 09.08.2019 .
  26. ^ "Всякая всячина: Opti Local Bus, звуковые карты Aria". 2015-07-21 . Получено 2021-02-19 .

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