Студопедия Главная Случайная страница Обратная связь

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

Ввід-вивід із прямим доступом до пам'яті




Ми розглянемо кожну з цих схем по черзі.

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

Як приклад даного методу розглянемо термінал з чотирма 1-байтними регістрами, як показано на мал. 7.1. Два регістри використовуються для вводу: регістр стану пристрою і регістр даних. Два регістри використовуються для виводу: теж регістр стану пристрою і регістр даних. Кожний з них має унікальну адресу. Якщо використовується ввід-вивід з розподілом пам'яті, усі 4 регістри є частиною адресного простору, і будуть зчитуватися і записуватися за допомогою звичайних команд. У противному випадку для читання і запису регістрів використовуються спеціальні команди вводу-виводу, наприклад IN і OUT. В обох випадках ввід-вивід здійснюється шляхом передачі даних та інформації про стан пристрою між центральним процесором і цими регістрами.

Регістр стану клавіатури містить 2 біти, що використовуються, і 6 бітів, що не використовуються. Апаратне забезпечення встановлює самий лівий біт на 1 усякий раз, коли з'являється символ. Якщо програмне забезпечення раніше установило на 1 біт 6, то відбувається переривання. У противному випадку переривання не відбувається. При програмованому вводі-виводі для одержання вхідних даних центральний процесор звичайно знаходиться в циклі, періодично зчитуючи регістр стану клавіатури, поки біт 7 не прийме значення 1. Коли це відбувається, програмне забезпечення зчитує буферний регістр клавіатури, щоб одержати символ. Зчитування регістра даних викликає установку біта CHARACTER AVAILABLE (наявності символу) на 0.

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

Як приклад програмованого вводу-виводу розглянемо процедуру, написану на Java (листінг 7.1). Ця процедура викликається з двома параметрами: масивом символів, який потрібно вивести, і кількістю символів, що присутні в масиві (до 1 ДО). Тіло процедури являє собою цикл, що виводить по одному символу. Спочатку центральний процесор повинен почекати, поки пристрій буде готов, і тільки після цього він виводить символ, і ця послідовність дій повторюється для кожного символу. Процедури in і out - це звичайні процедури мови асемблера для читання і запису регістрів пристроїв, що визначаються по першому параметру, з АБО в перемінну, котра визначається по другому параметру. Розподіл на 128 забирає молодші 7 бітів, при цьому біт READY залишається в біті 0.


Поможем в написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой





Дата добавления: 2015-04-16; просмотров: 441. Нарушение авторских прав; Мы поможем в написании вашей работы!

Studopedia.info - Студопедия - 2014-2022 год . (0.023 сек.) русская версия | украинская версия
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7