АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Арбітраж шини

 

До цього моменту ми неявно припускали, що існує тільки один задаючий пристрій шини — центральний процесор. Насправді мікросхеми вводу-виводу можуть ставати задаючим пристроєм при прочитуванні інформації з пам'яті і запису інформації в пам'ять. Крім того, вони можуть викликати переривання. Співпроцесори також можуть ставати задаючим пристроєм шини. Виникає питання: «Що відбувається, коли задаючим пристроєм шини можуть стати два або декілька пристроїв одночасно?» Щоб запобігти хаосу, який може при цьому виникнути, потрібен спеціальний механізм — так званий арбітраж шини.

Механізми арбітражу можуть бути централізованими або децентралізованими. Розглянемо спочатку централізований арбітраж. Простий приклад централізованого арбітражу показаний на рис. 6.5, а. У даному прикладі один арбітр шини визначає, чия черга наступна. Часто буває, що арбітр вбудований в мікросхему процесора, але іноді потрібна окрема мікросхема. Шина містить одну лінію запиту (монтажне АБО), яка може запускатися одним або декількома пристроями у будь-який час. Арбітр не може визначити, скільки пристроїв запрошують шину. Він може визначати тільки наявність або відсутність запитів.

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

Щоб обійти таку систему, в якій пріоритети залежать від відстані від арбітра, в деяких шинах влаштовується декілька рівнів пріоритету. На кожному рівні пріоритету є лінія запиту шини і лінія надання шини. На рис. 6.5, б зображено 2 рівні (хоча насправді шини звичайно містять 4, 8 або 16 рівнів). Кожен пристрій пов'язаний з одним з рівнів запиту шини, причому, чим вищий рівень пріоритету, тим більше пристроїв прив'язано до цього рівня. На рис. 6.5 б можна бачити, що пристрої 1, 2 і 4 використовують пріоритет 1, а пристрої 3 і 5 — пріоритет 2.

 

Рис. 6.5 - Однорівневий централізований арбітраж шини з використанням системи послідовного опиту (а); дворівневий централізований арбітраж (б)

Якщо одночасно запрошується декілька рівнів пріоритету, арбітр надає шину найвищому рівню. Серед пристроїв однакового пріоритету використовується система послідовного опиту. На рис. 6,5, видно, що у разі конфлікту пристрій 2 -«перемагає» пристрій 4, а пристрій 4 «перемагає» пристрій 3. Пристрій 5 має нижчий пріоритет, оскільки воно знаходиться у самому кінці самого нижнього рівня.

Лінія надання шини другого рівня необов'язково повинна послідовно зв'язувати пристрої 1 і 2, оскільки вони не можуть посилати на неї запити. Проте набагато простіше провести всі лінії надання шини через всі пристрої, чим сполучати пристрої особливим чином залежно від їх пріоритетів.

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

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

Можливий також децентралізований арбітраж шини. Наприклад, комп'ютер може містити 16 пріоритетних ліній запиту шини. Коли пристрою потрібна шина, воно запускає свою лінію запиту. Всі пристрої контролюють всі лінії запиту, тому в кінці кожного циклу шини кожен пристрій може визначити, чи володіє воно в даний момент вищим пріоритетом і, отже, чи дозволено лінії користуватися шиною в наступному циклі. Такий метод вимагає наявність більшої кількості ліній, та зате не вимагає витрат на арбітра. Він також обмежує число пристроїв числом ліній запиту.

При іншому типі децентралізованого арбітражу використовується тільки три лінії незалежно від того, скільки пристроїв є в наявності (рис. 6.6). Перша лінія — монтажне АБО. Вона використовується для запиту шини. Друга лінія називається BUSY. Вона запускається поточним задаючим пристроєм шини. Третя лінія використовується для арбітражу шини. Вона послідовно сполучає всі пристрої. Почало цілі пов'язано з джерелом живлення з напругою 5 В.

Коли шина не потрібна жодному з пристроїв, лінія арбітра передає сигнал всім пристроям. Щоб дістати доступ до шини, пристрій спочатку перевіряє, чи вільна шина, і чи встановлений сигнал арбітра IN. Якщо сигнал IN не встановлений, пристрій не може стати задаючим пристроєм

 

 

 

Рис. 6.6 – Децентралізований арбітраж шини

шини. В цьому випадку воно скидає сигнал OUT. Якщо сигнал IN встановлений, пристрій також скидає сигнал OUT, внаслідок чого наступний пристрій не одержує сигнал IN і, у свою чергу, скидає сигнал OUT. Отже, всі наступні по ланцюгу пристрої не одержують сигнал IN і скидають сигнал OUT. У результаті залишається тільки один пристрій, у якого сигнал IN встановлений, а сигнал OUT скинутий. Воно стає задаючим пристроєм шини, запускає лінію BUSY і сигнал OUT і починає передачу даних.

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)