Тема 1.4 Системные шины
Компьютерная ши́на (англ. computer bus) — в архитектуре компьютераподсистема, которая передаёт данные между функциональными блоками компьютера. В связи с этим разделяется механический, электрический (физический) и логический (управляющий) уровни.
Компьютерные шины ранних вычислительных машин представляли собой жгуты (пучки соединительных проводов — сигнальных и питания, для компактности и удобства обслуживания увязанных вместе) реализующие параллельные электрические шины с несколькими подключениями. В современных вычислительных системах данный термин используется для любых физических механизмов, предоставляющих такую же логическую функциональность, как параллельные компьютерные шины.
Современные компьютерные шины используют как параллельные, так и последовательные соединения и могут иметь параллельные (англ. multidrop) и цепные (англ. daisy chain) топологии. В случае USB и некоторых других шин могут также использоваться хабы (концентраторы).
Управление передачей по шине реализуется как на уровне прохождения сигнала (мультиплексоры, демультиплексоры,буферы, регистры, шинные формирователи), так и со стороны ядра операционной системы — в таком случае в его состав входит соответствующий драйвер.
Шины бывают параллельными (данные переносятся по словам, распределенные между несколькими проводниками) и последовательными (данные переносятся побитово).
Большинство компьютеров имеет как внутренние, так и внешние шины. Внутренняя шина подключает все внутренние компоненты компьютера к материнской плате (и, следовательно, к процессору и памяти). Такой тип шин также называют локальной шиной, поскольку она служит для подключения локальных устройств. Внешняя шина подключает внешнюю периферию к материнской плате.
Сетевые соединения, такие как Ethernet обычно не рассматриваются как шины, хотя разница больше концептуальная, чем практическая. Появление технологий InfiniBand и HyperTransport ещё больше размыло границу между сетями и шинами.
Первое поколение
Ранние компьютерные шины были группой проводников, подключающей компьютерную память и периферию к процессору. Почти всегда для памяти и периферии использовались разные шины, с разным способом доступа, задержками, протоколами.
Во многих микроконтроллерах и встраиваемых системах шины ввода-вывода до сих пор не существует. Процесс передачи контролируется ЦПУ, который в большинстве случаев читает и пишет информацию в устройства, так, как будто они являются блоками памяти. Все устройства используют общий источник тактового сигнала. Периферия может запросить обработку информации путём подачи сигналов на специальные контакты ЦПУ, используя какие-либо формы прерываний. Например, контроллер жёсткого диска уведомит процессор о готовности новой порции данных для чтения, после чего процессор должен считать их из области памяти, соответствующей контроллеру. Почти все ранние компьютеры были построены по таким принципам, начиная от Altair с шиной S-100, заканчивая IBM PC в 1980‑х.
Второе поколение
Компьютерные шины «второго поколения», например NuBus решали некоторые из вышеперечисленных проблем. Они обычно разделяли компьютер на две «части», процессор и память в одной и различные устройства в другой. Между частями устанавливался специальный контроллер шин (bus controller).
Однако новые шины, так же как и предыдущее поколение, требовали одинаковых скоростей от устройств на одной шине. Процессор и память теперь были изолированы на собственной шине и их скорость росла быстрее, чем скорость периферийной шины. Один из примеров данной проблемы: видеокарты быстро совершенствовались, и им не хватало пропускной способности даже новых шин Peripheral Component Interconneсt (PCI). Компьютеры стали включать в себя Accelerated Graphics Port (AGP) только для работы с видеоадаптерами. В 2004 году AGP снова стало недостаточно быстрым для мощных видеокарт и AGP стал замещаться новой шиной PCI Express
Увеличивающееся число внешних устройств стало применять собственные шины. Когда были изобретены приводы дисков, они присоединялись к машине при помощи карты, подключаемой к шине. Из-за этого компьютеры имели много слотов расширения. Но в 1980‑х и 1990‑х были изобретены новые шины SCSI и IDE решившие эту проблему и оставив большую часть разъёмов расширения в новых системах пустыми. В наше время типичная машина поддерживает около пяти различных шин.
Третье поколение
Шины «третьего поколения» (например, PCI-Express) обычно позволяют использовать как большие скорости, необходимые для памяти, видеокарт и межпроцессорного взаимодействия, так и небольшие при работе с медленными устройствами, например, приводами дисков. Также они стремятся к большей гибкости в терминах физических подключений, позволяя использовать себя и как внутренние и как внешние шины, например для объединения компьютеров.
Разработаны шины (напримерWishbone) для более простой интеграции различных частей интегральных схем.