Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архітектура методичка.doc
Скачиваний:
3
Добавлен:
01.12.2019
Размер:
20.71 Mб
Скачать

88. Ігровий адаптер Game-порт

Інтерфейс ігрового адаптера займає дозволяє вводити значення дискретних (4 біти) і аналогових сигналів (величини опір 4 резисторів). Спочатку порт був призначений для підключення джойстиків і інших ігрових пристроїв введення, але він може застосовуватися і для підключення інших датчиків. Метод вимірювання опору заснований на програмному визначенні тривалості імпульсу, пропорційній величині опору. Перетворення починається з виведення будь-якого байта в регістр адаптера (201Ь), при цьому біти 0-3 встановлюються в одиничні значення. Час вимірюється до повернення в нульове стан біт 0-3, відповідних чотирьом аналоговим каналам. Якщо аналоговий вхід закорочений на шину ВМ) або ланцюг вимірюваного опору розірвана, відповідний біт не обнулиться ніколи (до апаратного скидання комп'ютера). Тому щоб уникнути зависання в програмі перетворення повинен бути передбачений механізм тайм-ауту. Для вимірюваних опорів в діапазоні 0-100 кОм час визначається за формулою

Т (мкс) = 24,24-11 * И (кОм).

Звичайно, точність і лінійність перетворення невисока, перетворення виконується не швидко (до 1,12 мс) і сильно завантажує процесор. Однак, на відміну від «справжніх» аналого-цифрових перетворювачів, цей перетворювач дістається даром - ігровий адаптер входить до складу практично всіх комбінованих плат послідовних і паралельних портів (Мультикарта) і звукових карт.

Порт має роз'єм-розетку ОВ-158, призначення висновків і відповідність сигналів бітам регістру наведено в табл. 3.13.

Замикання кнопок відповідають нулі в бітах 5-7. При необхідності аналогові канали можна використовувати і для дискретного вводу, якщо їх входи підключити до кнопок, що замикає їх на щіну GND, і до резисторам, «підтягує» їх до рівня + 5 В. Два джойстика (А і В) підключаються через Y-подібний перехідник-разветвитель. На звукових картах через роз'єм «Game» разом з джойстиками можуть підключатися і зовнішні MIDI-пристрої через спеціальний кабель-адаптер, що забезпечує гальванічну розв'язку вхідного сигналу і обмеження вихідного струму (див. рис. 3.11). Для інтерфейсу MIDI використовуються контакти 12 і 15, раніше призначалися для шин GND і +5 V. Таке призначення робить безпечним підключення адаптера MIDI до "чистого" ​​ігровому порту і звичайного джойстика до ігрового порту з сигналами MIDI.

89. Відеоадаптери

При розвитку відеосистем ПК використовувалися наступні види відеоадаптерів.

Монохромний MDA. Адаптер монітора розроблений на базі контролера дисплея Motorola 6845. Забезпечував роботу монохромного дисплея в текстовому режимі, використовував відеобуфер обсягом 4К статичної ОЗУ і вбудований генератор символів. Параметри розгортки задаються через 18 програмно доступних в просторі введення / виводу регістрів (індекс-порт 3B4h, запис / читання даних - порт 3B5h).

Кольоровий графічний адаптер CGA. У CGA адаптері контролер також реалізований на мікросхемі 6845, тому способи програмування регістрів МДА і CGA однакові, проте при установці відеорежиму змінюються адреси портів (для монохромного 3B4h/3B5h для кольорового 3D4h/3D5h).

Розширений графічний адаптер EGA. В адаптері EGA сформувалася архітектура (набір блоків та їх відображення на адресний простір введення / виводу) яка з невеликими доповненнями (див. нижче) є стандартною для сучасних відеоадаптерів. Адаптер EGA фірми IBM забезпечує можливість роботи в різних відеорежимах спільно з кольоровими або монохромними моніторами з цифровими входами. В архітектурі EGA виділилися такі блоки:

I) Блок управління електронно-променевою трубкою (CRTC - CRT Controller) управляє сигналами горизонтальної та вертикальної

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

2) Блок синхронізації (SEQ - Sequencer) генерує тактові сигнали і сигнали для синхронізації доступу до відеопам'яті. Блок забезпечує доступ до відеопам'яті з боку процесора у спеціально виділені проміжки часу, вільні від процесу регенерації зображення на екрані дисплея. У цьому ж блоці містяться регістри управління записом даних у бітові площині.

3) Графічний контролер (CRAPH - Graphics Controller) в графічних режимах направляє дані з пам'яті в контролер атрибутів і в процесор. Для швидкої зміни зображення на екрані дисплея апаратурою забезпечується можливість запису 32 біт даних за один цикл пам'яті (8 біт для кожної площини), а додаткова логіка дозволяє процесору записувати дані в відеопам'ять не дотримуючись меж байтів.

4) Контролер атрибутів (ATTR1B - Attribute controller) встановлює колірну палітру з 16 кольорів, кожен з яких може бути визначений незалежно від інших кольорів. На вхід монітора подається 6-ти бітовий код кольору. Цією ж мікросхемою виконуються дії з управління мерехтінням і підкресленням. Контролер отримує дані з відеобуфера і перетворює їх в сигнали, що подаються на вхід монітора.

Призначення регістрів перерахованих модулів адаптера разом з їх відображеннями на адресні порти і порти даних наведені в Додатку В.

Починаючи з адаптера EGA, дня доступу до відеопам'яті з боку процесора виділено два сегменти адресного простору (BOOOOh - AFFFFh). З метою сумісності з більш ранніми моделями відеоадаптерів, адреси відеобуфера можуть змінюватися в залежності від встановленого водеорежіма (початковий адресу BOOOOh - монохромний текстовий режим, початкова адреса B8000h ~ кольоровий текстовий режим і початкова адреса AOOOOh - графічний режим).

Адаптер VGA. В адаптері VGA є всі перераховані вище блоки адаптера EGA, програмування яких аналогічно EGA. Для растрів 400 рядків і вище в регістри додано кілька полів зберігання десяти розрядів (див. П.2). Проте в адаптері VGA збільшено колірне дозвіл (до 256 кольорів в графічному режимі і до 218 кольорів при індексації кольорів за допомогою регістрів PEL). Збільшення колірного дозволу призвело до переходу на аналогове управлінні відеотерміналом (сигнал по кожній колірної складової R, G і В передається по одній лінії, а інформацію про інтенсивності складової несе амплітуда сигналу). Для реалізації аналогового управління (попередні адаптери MDA, CGA і EGA формують для управління монітором лише цифрові ТТЛ-сигнали) в адаптер VGA доданий вихідний блок цифро-аналогового перетворювача (Digital Analog Converter - DAC), зі своїми 256 восемнадцатьюразряднимі регістрами PEL. Адреси портів і особливості програмування регістрів PEL викладені в Додатку В.

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

Адаптери мають об'єм відеопам'яті, що перевищує виділене адресний простір, тому вони містять спеціальні регістри перемикання банків (що ускладнює програмне формування зображення). Сучасні адаптери SVGA мають можливість переадресації відеопам'яті в область старших адрес (вище кордону 16 Мбайт), що дозволяє в захищеному режимі працювати з цільними образами екранів. Крім апаратно-виділеної відеопам'яті, встановлюваної на графічних адаптерах, існує і архітектура уніфікованої пам'яті UMA (Unified Memory Architecture). При такому підході під відеобуфер виділяється область системного ОЗУ, що дозволяє дещо здешевити комп'ютер.

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

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

Виходів із цієї скрути є декілька. По-перше, підвищують швидкодію відеопам'яті. По-друге, розширюють розрядність шин графічного адаптера, причому як внутрішньої (шини відеопам'яті), так і інтерфейсної, і застосовують високопродуктивні шини (локальну УЬВ, РС1 або АВР). Розширення розрядності дозволяє за один цикл обігу передати більшу кількість біт даних - підвищити продуктивність. По-третє, підвищити швидкість відеопостроеній можна застосуванням кешування відеопам'яті або створення тіньової відеопам'яті. У цьому випадку при запису в область відеопам'яті дані будуть записані як у відеопам'ять, так і в ОЗУ (або навіть в кеш), а при зчитуванні з цієї області звернення буде тільки до швидкодіючому ОЗУ. І по-четверте, можна принципово скоротити обсяг інформації, переданої графічному адаптеру, але для цього графічний адаптер повинен містити графічний співпроцесор. У сучасних відеосистемах використовуються всі ці рішення.

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

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

Копіювання блоку з одного місця на інше екрана застосовується для "прокручування" зображення екрану в різних напрямках. Ця операція інтелектуальним адаптером може бути сильно прискорена.

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

Апаратна підтримка вікон (Hardware Windowing) спрощує і прискорює роботу з екраном в багатозадачних (багатовіконних) системах. На традиційному графічному адаптері при наявності декількох, можливо перекривають один одного вікон програмі доводиться відслідковувати координати оброблюваних точок з тим, щоб не вийти за межі свого вікна.

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

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

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

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

внутрішньої шини даних адаптера. У сучасних графічних адаптерах широко застосовується двопортова відеопам'ять УКАМ і \ VRAM, а розрядність внутрішньої шини 64 біт (при 32-бітної зовнішньої шини) вважається нормою. На підході і адаптери з 128-розрядної внутрішньої шиною. Архітектура сучасних відеоадаптерів представлена ​​на рис. 2.4

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

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

Графічний акселератор працює автономно і при вирішенні своєї задачі зі своїм великим обсягом даних може і не виходити на системну шину. Акселератори є вже традиційною складовою частиною практично всіх сучасних графічних адаптерів. Спеціально для потужних графічних адаптерів в 1996 році з'явився новий канал зв'язку з оперативною пам'яттю комп'ютера-АВР. Графічний акселератор є майстром шини АВР і може користуватися основною пам'яттю комп'ютера для своїх потреб при тривимірних побудовах.