Шина (комп’ютер)

Роз'єми шини PCI Express (зверху вниз: x4, x16, x1 і x16). Нижче - звичайний 32-бітний роз'єм шини PCI.

Цей термін має також інші значення див. Шина.

Комп'ютерна шина (англ. Computer bus) в архітектурі комп'ютера - підсистема. служить для передачі даних між функціональними блоками комп'ютера. У пристрої шини можна розрізнити механічний, електричний (фізичний) і логічний (управитель) рівні.

На відміну від з'єднання точка-точка, до шини зазвичай можна підключити декілька пристроїв по одному набору провідників. Кожна шина визначає свій набір конекторів (з'єднань) для фізичного підключення, карт і кабелів.

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

Сучасні комп'ютерні шини використовують як паралельні, так і послідовні з'єднання і можуть мати паралельні (англ. Multidrop) і ланцюгові (англ. Daisy chain) топології. У разі USB і деяких інших шин можуть також використовуватися хаби (концентратори).

Прісоедінітелі до шини, різноманітні роз'єми, як правило, уніфіковані і дозволяють підключити різні пристрої до шини.

Шини бувають паралельними (дані переносяться за словами, розподілені між кількома провідниками) і послідовними (дані переносяться побитово).

Більшість комп'ютерів має як внутрішні, так і зовнішні шини. Внутрішня шина підключає всі внутрішні компоненти комп'ютера до материнської плати (і, отже, до процесора і пам'яті). Такий тип шин також називають локальною шиною, оскільки вона служить для підключення локальних пристроїв. Зовнішня шина підключає зовнішню периферію до материнської плати.

Мережеві з'єднання, такі, як Ethernet. зазвичай не розглядаються як шини, хоча різниця більше концептуальна, ніж практична. Поява технологій InfiniBand і HyperTransport ще більше розмило кордон між мережами і шинами.

перше покоління

Ранні комп'ютерні шини були групою провідників, що включає комп'ютерну пам'ять і периферію до процесора. У більшості випадків для пам'яті і периферії використовувалися різні шини, з різними способами доступу, затримками, протоколами.

Одним з перших удосконалень стало використання переривань. До їх впровадження комп'ютери виконували операції введення-виведення в циклі очікування готовності периферійного пристрою. Це було марною тратою часу для програм, які могли робити інші завдання. Також, якщо програма намагалася виконати інші завдання, вона могла перевірити стан пристрою занадто пізно і втратити дані. Тому інженери дали можливість периферії переривати процесор. Переривання мали пріоритет, так як процесор може виконувати код тільки для одного переривання в один момент часу, а також деякі пристрої вимагали менших затримок, ніж інші.

Деякий час по тому комп'ютери стали розподіляти пам'ять між процесорами. На них доступ до шини також отримав пріоритети.

Класичний і простий спосіб забезпечити пріоритети переривань або доступу до шини полягав в ланцюговому підключенні пристроїв.

DEC відзначала, що дві різні шини можуть бути зайвими і дорогими для малих, серійних комп'ютерів, і запропонувала відображати периферійні пристрої на шину пам'яті, так, що вони виглядали як області пам'яті. У той час це було дуже сміливим рішенням, і критики пророкували йому провал.

У багатьох мікроконтролерах і вбудованих системах шини введення-виведення до сих пір не існує. Процес передачі контролюється ЦПУ, який в більшості випадків Новомосковскет і пише інформацію в пристрої, так, як ніби вони є блоками пам'яті. Всі пристрої використовують спільне джерело тактового сигналу. Периферія може запросити обробку інформації шляхом подачі сигналів на спеціальні контакти ЦПУ, використовуючи будь-які форми переривань. Наприклад, контролер жорсткого диска повідомить процесор про готовність нової порції даних для читання, після чого процесор повинен вважати їх з області пам'яті, що відповідає контролеру. Майже всі ранні комп'ютери були побудовані за такими принципами, починаючи від Altair з шиною S-100. закінчуючи IBM PC в 1980-х.

Такі прості шини мали серйозний недолік для універсальних комп'ютерів. Все обладнання на шині мало передавати інформацію з однаковою швидкістю і використовувати одне джерело синхросигналу. Збільшення швидкості процесора було непростим, оскільки вимагало такого ж прискорення всіх пристроїв. Це часто призводило до ситуації, коли дуже швидким процесорам доводилося сповільнюватися для можливості передачі інформації деяких пристроїв. Хоча це допустимо для вбудованих систем, дана проблема не можна дозволити для комерційних комп'ютерів. Інша проблема полягає в тому, що процесор потрібно для будь-яких операцій, і коли він зайнятий іншими операціями, реальна пропускна здатність шини може значно страждати.

друге покоління

Комп'ютерні шини «другого покоління», наприклад, NuBus вирішували деякі з перерахованих вище проблем. Вони зазвичай розділяли комп'ютер на дві «частини», процесор і пам'ять в одній і різні пристрої в інший. Між частинами встановлювався спеціальний контролер шин (bus controller). Така архітектура дозволила збільшувати швидкість процесора без впливу на шину, розвантажити процесор від завдань управління шиною. За допомогою контролера пристрою на шині могли взаємодіяти один з одним без втручання центрального процесора. Нові шини мали кращу продуктивність, але також вимагали більш складних карт розширення. Проблеми швидкості часто вирішувалися збільшенням розрядності шини даних. з 8-бітних шин першого покоління до 16- або 32-х бітних шин у другому поколінні. Також з'явилася програмна настройка пристроїв для спрощення підключення нових пристроїв, нині стандартизована як Plug-n-play.

третє покоління

Сучасні інтегральні схеми часто розробляються з заздалегідь створених частин. Розроблено шини (наприклад, Wishbone) для більш простої інтеграції різних частин інтегральних схем.

топології шин

Приклади внутрішніх комп'ютерних шин