Смекни!
smekni.com

Шини (Industrial Standard Architecture) (стр. 1 из 7)

Шина, як відомо, представляє із себе, власне, набір проводів (ліній), що з'єднує різні компоненти комп'ютера для підведення до них живлення й обміну даними. У "мінімальній комплектації" шина має три типи ліній:

· лінії керування;

· лінії адресації;

· лінії даних.

Пристрою, підключені до шини, поділяються на двох основних категорій - bus masters і bus slaves. Bus masters - це пристрою, здатні керувати роботою шини, т. ч. ініціювати запис/читання і т.д. Bus slaves - відповідно, пристрою, що можуть тільки відповідати на запити. Правда, є ще "інтелектуальні слуги" (intelligent slaves), але ми їх поки для ясності замнемо. Ну от, власне, і усе, що потрібно знати про шини для того, щоб зрозуміти, про що піде мова далі.

Компанія IBM у 1981 представила нову шину для використання в комп'ютерах серії PC/XT. Шина була вкрай проста по дизайні, містила 53 сигнальні лінії і 8 ліній харчування і являла собою синхронну 8-бітну шину з контролем парності і дворівневих переривань (trigger-edge interrupts), при використанні яких пристрою запитують переривання, змінюючи стан лінії відповідного IRQ з 0 на 1 або назад. Така організація запитів переривань дозволяє використовувати кожне переривання тільки одному пристроєві. Крім того, шина не підтримувала додаткових bus masters, і єдиними пристроями, що керують шиною, минулого процесор і контролер DMA на материнській платі.

62-контактний слот (див. таблицю 1) уключав 8 ліній даних, 20 ліній адреси (А0-А19), 6 ліній запиту переривань (IRQ2-IRQ7). Таким чином, обсяг пам'яті, що адресується, складав 1 Мбайт, і при частоті шини 4.77 Мгц пропускна здатність досягала 1.2 Мбайта/хв.

Забавно, що IBM не опублікувала повного опису шини з тимчасовими діаграмами сигналів на лініях даних і адреси, тому першим розроблювачам плат розширення довелося неабияк потрудитися.

Недоліки шини, що випливають із простоти конструкції, очевидні. Тому для використання в комп'ютерах IBM-AT ('Advanced Technology') у 1984 році була представлена нова версія шини, згодом названої ISA. Зберігаючи сумісність зі старими 8-бітними платами розширення, нова версія шини володіла поруч істотних переваг, як то:

· додавання 8 ліній даних дозволило вести 16-бітний обмін даними;

· додавання 4 ліній адреси дозволило збільшити максимальний розмір пам'яті, що адресується, до 16 МВ;

· були додані 5 додаткових trigger-edged ліній IRQ;

· була реалізована часткова підтримка додаткових bus masters;

· частота шини була збільшена до 8 MHz;

· пропускна здатність досягла 5.3 МВ/хв.

Реалізація bus mastering не була особливо вдалої, оскільки, наприклад, запит на звільнення шини ('Bus hang-off') до поточного bus master оброблявся кілька тактів, до того ж кожен master повинний був періодично звільняти шину, щоб дати можливість провести відновлення пам'яті (memory refresh), або сам проводити відновлення. Для забезпечення зворотної сумісності з 8-бітними платами більшість нових можливостей було реалізовано шляхом додавання нових ліній (див. таблицю 2). Тому що АТ був побудований на основі процесора Intel 80286, що був істотно швидше, ніж 8088, довелося додати генератор станів чекання (wait-state generator). Для обходу цього генератора використовується вільна лінія (контакт У8 NOWS-'No Wait State') вихідної 8-бітної шини. При установці цієї лінії в 0 такти чекання пропускаються. Використання в якості NOWS лінії вихідної шини дозволяло розроблювачам робити як 16-бітні, так і 8-бітні "швидкі" плати.


Таблиця 1. Призначення контактів рознімання 8-розрядної шини ISA



Контакт
Назва сигналу Контакт Назва сигналу
B1 Ground A1 I/O Channel Check
B2 Reset Driver A2 Data7
B3 +5V A3 Data6
B4 IRQ2 A4 Data5
B5 -5V A5 Data4
B6 DMA Request 2 A6 Data3
B7 -12V A7 Data2
B8 J8/NOWS[1] A8 Data1
B9 +12V A9 Data0
B10 Ground A10 I/O Channel Ready
B11 Memory Write A11 Address Enable
B12 Memory Read A12 Address19
B13 I/O Write A13 Address18
B14 I/O Read A14 Address17
B15 DMA Acknoledge3 A15 Address16
B16 DMA Request3 A16 Address15
B17 DMA Acknoledge1 A17 Address14
B18 DMA Request1 A18 Address13
B19 Refresh A19 Address12
B20 Clock A20 Address11
B21 IRQ7 A21 Address10
B22 IRQ6 A22 Address9
B23 IRQ5 A23 Address8
B24 IRQ4 A24 Address7
B25 IRQ3 A25 Address6
B26 DMA Acknoledge2 A26 Address5
B27 Terminal Count A27 Address4
B28 Address Latch Enable A28 Address3
B29 +5V A29 Address2
B30 Oscillator A30 Address1
B31 Ground A31 Address0

Новий слот містив 4 нових адресні лінії (LA20-LA23) і копії трьох молодших адресних ліній (LA17-LA19). Необхідність у такому дублюванні виникла через те, що адресні лінії ХТ були лініями з затримкою (latched lines), і ці затримки приводили до зниження швидкодії периферійних пристроїв. Використання дублюючого набору адресних ліній дозволяло 16-бітній карті на початку циклу визначити, що до неї звертаються, і послати сигнал про те, що вона може здійснювати 16-бітний обмін. Насправді, це ключовий момент у забезпеченні зворотної сумісності. Якщо процесор намагається здійснити 16-бітний доступ до плати, він зможе це зробити тільки в тому випадку, якщо одержить від неї відповідний відгук IO16. У противному випадку чипсет ініціює замість одного 16-бітного циклу два 8-бітних. І усі б було гарно, але адресних ліній без затримки лише 7, тому плати, що використовують діапазон адрес менший, чим 128Кбайт, не могли визначити, де знаходиться передана адреса в їхньому діапазоні адрес, і, відповідно, послати відгук IO16. Таким чином, багато плат, у тому числі плати EMS, не могли використовувати 16-бітний обмін

Таблиця 2. Призначення контактів рознімання 16-розрядної шини ISA

Контакт Назва сигналу Контакт Назва сигналу
B1 Ground A1 I/O Channel Check
B2 Reset Driver A2 Data7
B3 +5V A3 Data6
B4 IRQ2 A4 Data5
B5 -5V A5 Data4
B6 DMA Request 2 A6 Data3
B7 -12V A7 Data2
B8 No Wait States A8 Data1
B9 +12V A9 Data0
B10 Ground A10 I/O Channel Ready
B11 Memory Write A11 Address Enable
B12 Memory Read A12 Address19
B13 I/O Write A13 Address18
B14 I/O Read A14 Address17
B15 DMA Acknoledge3 A15 Address16
B16 DMA Request3 A16 Address15
B17 DMA Acknoledge1 A17 Address14
B18 DMA Request1 A18 Address13
B19 Refresh A19 Address12
B20 Clock A20 Address11
B21 IRQ7 A21 Address10
B22 IRQ6 A22 Address9
B23 IRQ5 A23 Address8
B24 IRQ4 A24 Address7
B25 IRQ3 A25 Address6
B26 DMA Acknoledge2 A26 Address5
B27 Terminal Count A27 Address4
B28 Address Latch Enable A28 Address3
B29 +5V A29 Address2
B30 Oscillator A30 Address1
B31 Ground A31 Address0
Ключ Ключ
D1 Memory Access 16 bit C1 System Bus High
D2 I/O 16 bit C2 Latch Address 23
D3 IRQ10 C3 Latch Address 22
D4 IRQ11 C4 Latch Address 21
D5 IRQ12 C5 Latch Address 20
D6 IRQ15 C6 Latch Address 19
D7 IRQ14 C7 Latch Address 18
D8 DMA Acknoledge0 C8 Latch Address 17
D9 DMA Request1 C9 Memory Read
D10 DMA Acknoledge5 C10 Memory Write
D11 DMA Request5 C11 Data8
D12 DMA Acknoledge6 C12 Data9
D13 DMA Request6 C13 Data10
D14 DMA Acknoledge7 C14 Data11
D15 DMA Request7 C15 Data12
D16 +5V C16 Data13
D17 Master 16 bit C17 Data14
D18 Ground C18 Data15

Незважаючи на відсутність офіційного стандарту і технічних "ізюминок" шина ISA перевершувала потреби середнього користувача зразка 1984 року, а "засилля" IBM AT на ринку масових комп'ютерів привело до того, що виробники плат розширення і клонів AT прийняли ISA за стандарт. Така популярність шини привела до того, що слоти ISA дотепер присутні на всіх системних платах, і плати ISA до цих виробляються. Правда, Microsoft у специфікації PC99 передбачає відмовлення від ISA, але, як говориться, до цього потрібно ще дожити.

Шина EISA (Extended Industry Standard Architecture)

Шина EISA з'явилася "асиметричною відповіддю" виробників клонів РС на спробу IBM поставити ринок під свій контроль. У вересні 1988 року Compaq, підтриманий "бандою дев'яти" - Wyse, AST Research, Tandy, власне Compaq, Hewlett-Packard, Zenith, Olivetti, NEC і Epson - представив 32-розрядне розширення шини ISA з повною зворотною сумісністю. Основні характеристики нової шини були наступними:

· 32-розрядна передача даних;

· максимальна пропускна здатність - 33 МВ/хв;

· 32-розрядна адресація пам'яті дозволяла адресувати до 4 GB (як і в розширенні ISA, нові адресні лінії були без затримки);

· підтримка multiply bus master;

· можливість завдання рівня дворівневого (edge-triggered) переривання (що дозволяло декільком пристроям використовувати одне переривання, як і у випадку багаторівневого (level-triggered) переривання);

· автонастрій плат розширення;

Як і у випадку 16-розрядного розширення, нові можливості забезпечувалися шляхом додавання нових ліній. Оскільки далі подовжувати рознімання ISA було нікуди, розроблювачі знайшли оригінальне рішення: нові контакти були розміщені між контактами шини ISA і не були доведені до краю рознімання. Спеціальна система виступів на розніманні і щілин у EISA-картах дозволяла їм глибше заходити в рознімання і приєднуватися до нових контактів. (Правда, затверджують, що при великому бажанні можна запхнути і ISA-карту так, щоб вона замкнула EISA-контакти. Не знаю, не пробував, тому що великого досвіду спілкування з EISA у мене немає: маленький був ще). Оскільки на даний момент шина EISA практично вимерла, приводити значення контактів рознімання не має змісту. Варто відзначити лише дві нових сигнальних лінії - EX32 і EX16, що визначали, що bus slave підтримує відповідно 32- і 16-розрядний цикл EISA. Якщо жоден з цих сигналів не був отриманий на початку циклу шини, виконувався цикл ISA.