- •Архітектура комп’ютерів методичний посібник для проведення лабораторних робіт
- •Лабораторна робота № 1 перетворення чисел в машинних кодах
- •Теоретичні відомості
- •1. Формати даних
- •1.1 Природна форма числа
- •1.2 Нормальна форма числа
- •2. Машинні коди чисел
- •2.1 Дії над числами в природній формі
- •2.2 Дії над числами в нормальній формі
- •Методичні вказівки
- •Література
- •Завдання
- •Лабораторна робота № 2 цеом нейманівської архітектури
- •Теоретичні відомості
- •1. Структура еом
- •2. Елементарні машинні операції
- •3. Формати команд та кодування операцій еом
- •Методичні вказівки
- •Література
- •Завдання
- •1. Схема алгоритма розв’язку задачі
- •2. Програма в змістовній формі
- •3. Система операцій еом
- •4. Кодування операцій еом
- •5. Адресна інформація в 16-й системі числення
- •6. Розподіл пам’яті
- •7. Програма в машинних кодах
- •1. Загальні відомості про системи прямого доступу до пам’яті
- •2. Прямий доступ до пам’яті в пеом
- •3. Призначення та формати регістрів кпдп
- •3.1 Регістр станів (stat)
- •3.2 Регістр команд (cr)
- •3.3 Регістр режиму (mod)
- •3.4 Регістр маски (mask)
- •3.5 Регістр запиту (req)
- •3.6 Регістр поточної адреси
- •3.7 Регістр поточного лічильника слів (ccr)
- •3.8 Базові регістри адрес та лічильника (bar та car)
- •3.9 Тимчасовий регістр (tr)
- •3.10 Канали системи пдп пеом
- •4. Ініціалізація кпдп
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •1. Принципи організації системи переривань
- •2. Стани програмованого контролера переривань.
- •3. Призначення та формати операційних слів пкп
- •3.1 Операційне слово ocw1
- •3.2 Операційне слово ocw2
- •3.3 Операційне слово ocw3
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •Лабораторна робота № 5
- •Генерації звуку та випадкових чисел
- •Теоретичні відомості
- •1. Призначення таймера
- •2. Архітектура та принципи функціонування таймера
- •3. Програмування таймера
- •4. Засоби bios для роботи з таймером
- •5. Генерація звукових сигналів
- •6. Генерація випадкових чисел
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 6 вивчення та дослідження методів програмного керування годинником реального часу
- •Теоретичні відомості
- •1. Призначення годинника реального часу
- •2. Призначення та формати регістрів кмон-пам’яті
- •3. Засоби bios для роботи з годинником реального часу
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 7 дослідження режимів роботи послідовних інтерфейсів пеом
- •Теоретичні відомості
- •1. Загальні відомості про інтерфейс
- •2. Використання порту rs232c
- •3. Функції апаратних засобів інтерфейса rs232c
- •4. Формати портів уапп
- •5. Ініціалізація уапп
- •6. Підтримка асинхронного адаптера в bios
- •7. Підтримка асинхронного адаптера в dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •1. Призначення та характеристики інтерфейса Centronics
- •2. Опис портів інтерфейса Centronics
- •3. Засоби bios для роботи з принтером
- •Методичні вказівки
- •Література
- •5. Гук м. Аппаратные средства ibm pc. Энциклопедия. – сПб.: “Издательс-тво
- •Завдання
- •Тексти програм
- •Лабораторна робота № 9 дослідження методів програмного керування контролером клавіатури
- •Теоретичні відомості
- •1. Контролер клавіатури pc/at i8042
- •2. Порти контролера клавіатури
- •3. Методи програмного керування клавіатурою
- •4. Коди відповідей клавіатури
- •5. Засоби bios та ms dos для роботи з клавіатурою
- •5.1 Засоби bios
- •5.2 Засоби ms dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 10 дослідження методів програмного керування контролером нгмд
- •Теоретичні відомості
- •1. Основні відомості про контролер нгмд
- •2. Програмування контролера нгмд
- •Методичні вказівки
- •Література
- •Завдання
- •2) Записати введений користувачем рядок у сектор s на доріжку t;
- •Контрольні запитання
- •Література
- •1. Гук м. Аппаратные средства ibm pc. – сПб.: “Питер”, 1999. – 816 с.
2. Програмування контролера нгмд
Регістр 3F2h використовується для управління НГМД. Бітові комбінації, які
використовують третій і четвертий накопичувачі (таблиця 2) в AT системах
85
ігноруються. Біт 2, що дорівнює нулю, припиняє виконання поточної команди в момент виводу в порт.
Таблиця 2 – Формат регістра 3F2h
Біт |
Значення |
D1, D0 |
Вибір накопичувача: 00 – перший 01 – другий 10 – третій 11 – четвертий |
D2 |
0 – скинути контролер 1 – розблокувати контролер |
D3 |
1 – дозволити роботу з ПДП і переривання контролера |
D7 – D4 |
Увімкнути мотор: 0001 – перший накопичувач 0010 – другий накопичувач 0100 – третій накопичувач 1000 – четвертий накопичувач |
Через порт 3F4h здійснюється читання регістра основного стану FDC. Біт 7, що дорівнює одиниці, говорить про те, що контролер при вводі команди готовий до прийому чергового байта команди, при обміні даними в режимі без ПДП готовий до прийому/передачі чергового байта даних, при прийомі результату виконання команди готовий до передачі чергового байта результату.
Таблиця 3 – Формат регістра 3F4h
Біт |
Значення |
D3 – D0 |
Накопичувач зайнятий в режимі пошуку: 0001 – перший 0010 – другий 0100 – третій 1000 – четвертий |
D4 |
0 – контролер вільний 1 – зайнятий виконанням команди читання або запису |
D5 |
Режим роботи контролера: 0 – з використанням ПДП 1 – без ПДП |
D6 |
Напрямок обміну: 0 – процесор – контролер 1 – контролер – процесор |
D7 |
Готовність до обміну: 0 – не готовий 1 – готовий |
Порт 3F7h дозволяє здійснити доступ до регістра вибору швидкості обміну
86
даними (Data Rate Select Register, DSR).
Таблиця 4 – Формат регістра 3F7h (запис)
Біт |
Значення |
D1, D0 |
Вибір швидкості обміну: 11 – 1 Мбіт/с 00 – 500 кбіт/с 01 – 300 кбіт/с 10 – 250 кбіт/с |
D4 – D2 |
Вибір часу предкомпенсації: 111 – недопустима комбінація 001 – 41,67 нс 010 – 83,34 нс 011 – 125,00 нс 100 – 166,00 нс 101 – 208,33 нс 110 – 250,00 нс 000 – значення за замовчуванням |
D5 |
1 – дозволити режим зовнішньої фільтрації даних |
D6 |
1 – вимкнути живлення дисковода |
D7 |
1 – програмне скидання контролера |
Таблиця 5 – Формат регістра 3F7h (читання)
Біт |
Значення |
D0 |
Вибір приводу 0 |
D1 |
Вибір приводу 1 |
D5 – D2 |
Вибір головки (позиційний код) |
D6 |
1 – запис |
D7 |
1 – зміна носія |
Виконання кожної команди має три фази:
1) фаза вводу команди;
2) фаза виконання;
3) фаза результату.
У фазі виконання контролер побайтно приймає і накопичує команду. Фаза команди завершується запуском мотора на відповідному накопичувачі (крім команд задання режимів і читання стану).
У фазі виконання здійснюється обмін даними між ОЗП і накопичувачем. В
режимі з використанням ПДП перед прийомом/передачею байта даних генеру-
ється сигнал “запит на ПДП”. Контролер ПДП відповідає на нього сигналом підтвердження і командою прийому/передачі. В режимі роботи без ПДП при готовності до прийому/передачі кожного байта генерується переривання.
Після завершення виконання команди генерується переривання, яке означає початок фази результату. У фазі результату контролер передає результати
виконання команди. Всі байти результату повинні бути зчитані, або треба
87
здійснити скидання контролера.
Таблиця 6 – Деякі команди контролера НГМД
Команда |
Регістр даних |
Читання даних |
1) 11100110 2) HD US1 US0 3) номер циліндра 4) номер головки 5) номер сектора 6) байт у секторі 7) останній сектор на доріжці 8) довжина міжзонного проміжка (2Ah) 9) довжина запису (якщо байт 5 дорівнює 0) |
Запис даних |
1) 11000101 Інші байти аналогічні команді “Читання даних” |
Форматування доріжки |
1) 01001101 2) HD US1 US0 3) байт у секторі 4) секторів на доріжці 5) довжина міжзонного проміжка (50h) 6) символ-заповнювач для розмітки (звичайно F6h) |
Позиціювання головки |
1) 00001111 2) HD US1 US0 3) номер циліндра |
Читання стану НГМД |
1) 00000100 2) HD US1 US0 |
В таблиці 6 HD – номер головки; US1, US0 – номер носія.
Перші 3 байти, які повертають команди “Читання даних”, “Запис даних”, “Форматування доріжки” є байтами стану ST0, ST1, ST2. Команда “Читання стану НГМД” повертає байт стану ST3.
Таблиця 7 – Формат байта стану ST0
Біт |
Значення |
D1, D0 |
Номер накопичувача |
D2 |
Номер головки |
D3 |
НГМД не готовий при обміні |
D4 |
Сигнал “Помилка” НГМД або доріжка 0 не знайдена після 77 кроків рекалібрування |
D5 |
Команда пошуку завершена |
D7, D6 |
Код переривання: 00 – нормальне завершення команди 01 – ненормальне завершення 10 – недійсна команда 11 – у фазі виконання змінилася готовність дисковода |
88
Таблиця 8 – Формат байта стану ST1
Біт |
Значення |
D0 |
1 – не знайдено маркер ідентифікатора сектора |
D1 |
1 – дискета захищена від запису |
D2 |
1 – шуканий сектор не знайдено |
D3 |
0 |
D4 |
1 – таймаут запитів на передачу даних |
D5 |
1 – помилка CRC в полі ідентифікації або даних |
D6 |
0 |
D7 |
1 – кінець циліндра |
Таблиця 9 – Формат байта стану ST2
Біт |
Значення |
D0 |
1 – не знайдений маркер даних |
D1 |
1 – збойний циліндр |
D2 |
1 – сканування виконано незадоволено |
D3 |
1 – при скануванні виконана умова “дорівнює” |
D4 |
1 – невірний номер циліндра в ідентифікаторі сектора |
D5 |
1 – помилка CRC в полі даних |
D6 |
1 – в ідентифікаторі сектора виявлено адресний маркер видалених даних |
D7 |
0 |
Таблиця 10 – Формат байта стану ST3
Біт |
Значення |
D1, D0 |
Номер накопичувача |
D2 |
Номер головки |
D3 |
1 – сигнал “Двохбічний” від НГМД |
D4 |
1 – сигнал “Доріжка 0” від НГМД |
D5 |
1 – сигнал “Готовність” від НГМД |
D6 |
1 – сигнал “Захист від запису” від НГМД |
D7 |
1 – сигнал “Помилка” від НГМД |
