Вы находитесь на странице: 1из 22

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНІЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ


«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

Інститут комп'ютерних наук та інформаційних технологій

Кафедра комп’ютерної інженерії та програмування


Спеціальність 123 Комп’ютерна інженерія
Освітня програма Сучасне програмування, мобільні пристрої та комп'ютерні ігри

КУРСОВИЙ ПРОЕКТ

з навчальної дисципліни: “Архітектура комп'ютерів”

Розробники: Тарадай С.В

Керівник:

к.т.н., доц.
/ Поворознюк О.А../

Виконав:
студент групи КН-920Є
/ Тарадай С. В./

Харків
2022
Найменування виробу, Найменування Фор- Кільк. При-
об’єкту або теми документу мат арк. мітки

Документи загальні

Курсовий проект з навчальної Завдання А4 1

дисципліни: “Архітектура комп'ютерів” Пояснювальна записка А4 18

Графічні матеріали

КН-920Є
Прізвище Підп. Дата
Розроб. Тарадай С. В. TS 04.11.2 Курсовий проект з навчальної Літ. Арку Арку
022 дисципліни: “Архітектура ш шів
Перев. Поворознюк О.А комп'ютерів” ДРБ 1 1
НТУ «ХПІ»
Н.конт. Поворознюк О.А Відомість документів Кафедра КІП
Затв. Заковоротний О.Ю.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

Інститут комп'ютерних наук та інформаційних технологій


Кафедра комп’ютерної інженерії та програмування
Спеціальність 123 Комп’ютерна інженерія
Освітня програма Сучасне програмування, мобільні пристрої та комп'ютерні ігри

ЗАТВЕРДЖУЮ
Завідувач кафедри Заковоротний О.Ю.

« » 2022 року

ЗАВДАННЯ
НА КУРСОВУ РОБОТУ СТУДЕНТУ

Тарадай Святослав Володимирович.


(прізвище, ім’я, по батькові)

1 Тема роботи Згідно індивідуального завдання


керівник роботи Поворознюк Оксана Анатоліївна, к.т.н., доц.
2 Строк подання студентом роботи 06.11.2022 р.

3 Вихідні дані до роботи індивідуальне завдання.

4 Перелік питань, які потрібно розробити у пояснювальній

записці Висвітлити наступні питання:

1. Конвеєрна обробка та асоціативний пошук. Реалізація у МП Intel.


2. Організація розширеної Extended, що відображається Expanded і тіньової
пам`яті.
3. Підсистема клавіатури.Структурна схема та призначення.
4. Відеоконтролер. Програмування недокументованих відеорежимів.
5. Розробити програму, яка забороняє на 100 тиків роботу з
клавіатурою(у цей час генерація звуку «вибуху»).
5 Перелік графічного матеріалу (з точним зазначенням обов’язкових
креслень)
6 Консультанти розділів роботи (при виконанні дипломної робота)

7 Дата видачі завдання 7 жовтня 2022 року

КАЛЕНДАРНИЙ ПЛАН
Строк
Номер
Назва етапів дипломної роботи виконання При
етапу етапів мітка
роботи
Вибір і обґрунтування теми, постановка проблем
1 7.10.20
і
завдань 22
2 Аналітичний огляд джерел, вибір методики 15.10.2
досліджень 022
3 Розробка програмного забезпечення 30.10.2
022
4 Тестування та налагодження програми 04.11.2
022
5 Підготовка і виконання пояснювальної записки 06.11.2
022
6 Захист КР 30.11.2
022

Студент T S Тарадай С. В.
(підпис) (прізвище та ініціали)

Керівник роботи Поворознюк О. А.


(підпис) (прізвище та ініціали)
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

Інститут комп'ютерних наук та інформаційних технологій

Кафедра комп’ютерної інженерії та програмування


Спеціальність 123 Комп’ютерна інженерія
Освітня програма Сучасне програмування, мобільні пристрої та комп'ютерні ігри

ПОЯСНЮВАЛЬНА ЗАПИСКА

до курсового проекту
з навчальної дисципліни: “Архітектура комп'ютерів”

Виконав студент 3 курсу, групи КН-920Є


/Тарадай С. В./
(підпис, прізвище та ініціали)

Керівник
к.т.н., доц.
/ Поворознюк О.А../
(підпис, прізвище та ініціали)

Нормоконтроль
/ Поворознюк О.А../
(підпис, прізвище та ініціали)

Харків 2022
2.
РЕФЕРАТ
Звіт про виконання КР: 11 с., 1 рис., 0 табл., 3 джерел,

Ключові слова: КОНВЕЄРНА ОБРОБКА, АСОЦІАТИВНИЙ ПОШУК,


РОЗШИРЕНА ПАМ`ЯТЬ, ТІНЬОВА ПАМ`ЯТЬ, ПІДСИСТЕМА КЛАВІАТУРИ,
ВІДЕОКОНТРОЛЕР, ВІДЕОРЕЖИМ, ПРОГРАМА

Описані призначення Конвеєрної обробки та асоціативного пошуку і


його реалізацію у МП Intel, організації розширеної, і тіньової пам`яті,
призначення підсистеми клавіатури та її структурну схему, і також призначення
відеоконтролера з програмуванням недокументованих відеорежимів
Розроблено алгоритм та програму, яка забороняє на 100 тиків роботу з
клавіатурою(у цей час генерація звуку «вибуху»)

ABSTRACT
Report on the execution of the KR: 11 pages, 1 figures, 0 tables, 3 sources

Keywords: PIPELINE PROCESSING, ASSOCIATIVE SEARCH, EX-


TENDED MEMORY, SHADOW MEMORY, KEYBOARD SUBSYSTEM,
VIDEO CONTROLLER, VIDEO MODE, PROGRAM

The purpose of Conveyor processing and associative search and its imple-
mentation in the Intel MP, the organization of extended and shadow memory, the pur -
pose of the keyboard subsystem and its structure diagram, and also the purpose of a
video controller with programming of undocumented video modes are described
An algorithm and a program were developed, which prohibits working with the
keyboard for 100 ticks (at this time, the generation of the "explosion" sound)
ЗМІСТ

Перелік умовних позначень, символів, одиниць, скорочень і


термінів……......4
Вступ……………………………………………………………………………......5
Індивідуальне завдання……………………………………………………………6
1. Конвеєрна обробка та асоціативний пошук. Реалізація у МП
Intel………….7
2. Організація розширеної Extended, що відображається Expanded і тіньової
пам'яті………………………………………………………………………………...9
3. Підсистема клавіатури. Структурна схема та призначення…………………
10
4. Відеоконтролер. Програмування недокументованих відеорежимів.………11
6. Розробка алгоритму та програми згідно індивідуального завдання……….12
6.1 Розробка алгоритму………………………………………………………….12
6.2 Обгрунтування вибору середовища та мови програмування……………..13
6.3 Розробка програми…………………………………………………………...14
Висновки………………………………………………………………………….17
Список джерел інформації…………………………………………………........28
4.
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, ОДИНИЦЬ, СКОРОЧЕНЬ І
ТЕРМІНІВ

КІ – комп’ютерна інженерія;
КІП – комп’ютерна інженерія та програмування
КН – комп’ютерні науки;
НДРC – науково - дослідна робота студента;
НТУ «ХПІ» – Національний технічний університет «ХПІ»;
ОТП – обчислювальна техніка та програмування;
СТЗВО – стандарт закладу вищої освіти.
РЗП – Регістр загального призначення
МП - Мікропроцессор
АЛП – Арифметико-логічний пристрій
БК – Блок керування
БС – Блок синхронізації
БШ – Буфер шин
FIFO – First Input First Output – Перший прийшов – перший пішов
HMA – High Memory Area
5.
ВСТУП

Персональній комп’ютер ( ПК ) став обов'язковим атрибутом в будь-


якому сучасному офісі. Особливо великий інтерес до комп’ютерів серед молоді,
що широко використовують його для своїх цілей.
Розвиток електронної промисловості здійснюється такими швидкими
темпами, що буквально через 1-2 роки, сьогоднішнє "чудо техніки" стане
морально застарілим. Проте принципи комп'ютера залишаються незмінними ще
з тієї миті як знаменитий математик Джон фон Нейман в 1945 році підготував
доповідь про пристрій і функціонування універсальних обчислювальних
пристроїв,тобто комп'ютерів. Тому хоча і розвиток електронної промисловості
дуже швидкий, але все одно у нашому світі потрібні знання азів комп`ютерних
технологій. Тому виконання курсового проекту з курсу «Архітектура
комп`ютерів» визначає отримані та закріплені знання студента з азів
комп`ютерних технологій, що надасть можливість студенту адаптуватися до
будь-яких умов сьогодення.
6.
1. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ

1.Конвеєрна обробка та асоціативний пошук. Реалізація у МП Intel


2.Організація розширеної Extended, що відображається Expanded і
тіньової пам'яті.
3.Підсистема клавіатури. Структурна схема та призначення.
4.Відеоконтролер. Програмування недокументованих відеорежимів.
5.Розробити програму, яка забороняє на 100 тиків роботу з
клавіатурою (у цей час генерація звуку «вибуху»).
7.
2. КОНВЕЄРНА ОБРОБКА ТА АСОЦІАТИВНИЙ ПОШУК. РЕАЛІЗАЦІЯ У
МП INTEL

Конвеєрна обробка – Постнейманівське архітектурне рішення, що


використовується при побудові високопродуктивних суперкомп` ютерів.
Архітектура високопродуктивних суперкомп`ютерів ґрунтується на трьох
принципах розпаралелювання процесу обробки інформації з використанням
мультипроцесорних структур, а саме конвеєрній, Матричній та Асоціативній
обробці.
Для організації конвеєрної обробки необхідний ланцюжок процесорних
елементів, кожен із яких виконує свій набір команд. Необхідний потік
однотипних елементів обробки, причому обробка кожного елемента
виконується за тим самим алгоритмом перетворення інформації A ->Z.
Асоціативний пошук(Асоціативна обробка) організована аналогічно
матричній обробці, тобто множина синхронно працюючих процесорних
елементів, але паралельний потік даних організується під час читання
інформації з асоціативної пам`яті.
При асоціативному читанні виконується порівняння ознак всіх слів
пам`яті з ознаками регістру ознак, тому можливо паралельне читання деяких
слів, які потрапляють у свох процесорні елементи
Така обробка застосовується в асоціативних суперкомп`ютерах
(STARAN), хоча застосування асоціативного читання інформації
використовується у звичайних комп`ютерах(наприклад для організації кеш-
пам`яті).
У МП i8086 застосовано конвеєрну архітектуру, що дозволяє сумістити у
часі цикли вибірки команди та вибірки з пам'яті кодів наступних команд. Це
досягається паралельною роботою двох порівняно незалежних пристроїв -
операційного пристрою та шинного інтерфейсу. Операційний пристрій виконує
команду, а шинний інтерфейс здійснює взаємодію із зовнішньою шиною:
виставляє адреси, зчитує коди команд, записує результати обчислень у пам'ять
або пристрої введення-виведення.
8.
Операційний пристрій складається з регістрів загального призначення
(РЗП), призначених для зберігання проміжних результатів - даних та адрес;
АЛП з буферними регістрами; регістра ознак; блока керування та синхронізації
(БК та С), який дешифрує коди команд і генерує сигнали керування для всіх
блоків схеми МП. Шинний інтерфейс складається з шести байтової регістрової
пам'яті, яка називається чергою команд, чотирьох сегментних регістрів: CS, DS,
ES, SS, вказівника команд IP, суматора, а також допоміжних регістрів зв'язку і
буфера шин (БШ) адреси/даних. Черга команд працює за принципом FIFO (First
Input - First Output, тобто перший прийшов - перший пішов) і зберігає на виході
порядок надходження команд. Довжина черги 6 байт.
Коли операційний пристрій зайнятий виконанням команди, шинний
інтерфейс самостійно ініціює випереджаючу вибірку кодів команд з пам'яті у
чергу команд. Вибирання з пам'яті чергового командного слова здійснюється
тоді, коли в черзі виявляється два вільні байти. Черга збільшує швидкодію
процесора у випадку послідовного виконання команд. У разі вибирання команд
переходів, викликів і повернень з підпрограм та обробленні запитів переривань
черга команд скидається і вибирання починається з нового місця програмної
пам'яті.
9.
3.ОРГАНІЗАЦІЯ РОЗШИРЕНОЇ EXTENDED, ЩО ВІДОБРАЖАЄТЬСЯ
EXPANDED І ТІНЬОВОЇ ПАМ'ЯТІ.

Розширена пам`ять – Апаратно-програмна система, специфікація


комп`ютерної платформи x86, що надає доступ DOS-программам до пам`яті,
недоступної через адресний простір основної пам`яті.
Розширена пам`ять адресується сторінково через «вікно» що знаходиться
у HMA(High Memory Area)
Розширена пам`ять(Extended memory) знаходиться в адресному просторі
та завжди більше 1 Мб. Повноцінне використання extended memory можливе
тільки у захищеному режимі. Однак у MS-DOS з`явився драйвер HIMEM.SYS,
що дозволяє підтримку розширеної пам`яті. Перші 16 байт розширеної пам`яті
утворюють HMA.
Тіньова пам`ять(Shadow RAM) – Частина оперативної пам`яті , у яку при
запуску комп`ютера переписується вміст постійної пам`яті , і яка заміняє цю
постійну пам`ять на час роботи комп`ютера. Необхідність тіньової пам`яті
пов`язана з тим, що навіть порівняно повільна динамічна оперативна пам`ять
виявляється швидшою за постійну пам`ять. Постійна пам`ять часто помітно
стримує швидкодію комп`ютера. Тому було запропоновано виділяти частину
оперативної пам`яті для виконання задач як системної постійної пам`яті ROM
BIOS, так і постійної пам`яті , що входить до складу додаткових адаптерів, які
підключаються до комп`ютера.
10.
4. ПІДСИСТЕМА КЛАВІАТУРИ.
СТРУКТУРНА СХЕМА ТА ПРИЗНАЧЕННЯ

Клавіатура – основний засіб зв`язку користувача з комп`ютером.


Підсистема Клавіатури потрібна для виконання наступних функцій:
- Визначати момент і номер натискання і відпускання окремих клавіш або
їхні комбінації;
- Виробляти переривання (INT 9h);
- Керувати індикаторами клавіатури;
- Дозволяти або забороняти лінію A20 для доступу до Extended memory;
- Читати інформацію про конфігурацію системи для процедур BIOS;
- Повертати мікропроцесор з захищеного режиму;
- Виконувати програмне скидання системи;
Структурна схема підсистеми клавіатури комп`ютера IBM PC/AT
Зображена на рис. 4.1

Рисунок 4.1. Структурна схема підсистеми клавіатури

Як видно з рисунку 4.1 Структура підсистеми клавіатури складається з


пристроїв системного блоку(контролера клавіатури Intel8042) і пристрою блоку
клавіатури, об`єднаних 4-х провідним кабелем.
Основними модулями блоку клавіатури є Матричні перемикачі клавіш,
контролер клавіатури Intel8048 і блок індикаторів клавіатури
11.
5. ВІДЕОКОНТРОЛЕР. ПРОГРАМУВАННЯ НЕДОКУМЕНТОВАНИХ
ВІДЕОРЕЖИМІВ

Відеоконтролер – спеціалізована мікросхема, яка є головним компонентом


схеми формування відеозображення в комп`ютерах. Деякі відеоконтролери
мають додаткові можливості, наприклад, генератор звуку. Мікросхеми
відеоконтролерів застосовувалися переважно в домашніх комп`ютерах та ігрових
системах 1980-х років.
Головним компонентом схеми формування зображення завжди є
відеоконтролер, а також графічний процесор, але можуть використовуватись і
додаткові мікросхеми – ОЗП(Оперативний Запам`ятовувальний пристрій) для
зберігання зображення, ПЗП(Постійний Запам`ятовувальний пристрій) для
зберігання зображень символів, і додаткова дискретна логіка (наприклад,зсувні
регістри) для побудови закінченої схеми. В будь-якому випадку, відеоконтролер
відповідає за генерування необхідних синхросигналів, таких як сигнали
вертикальної і горизонтальної синхронізації, сигнал зворотного ходу променя.
12.
6. РОЗРОБКА АЛГОРИТМУ ТА ПРОГРАМИ ЗГІДНО ІНДИВІДУАЛЬНОГО
ЗАВДАННЯ

6.1.розробка алгоритму

При розробці поставленої задачі, а саме розробити програму, що на 100


тиків забороняє роботу з клавіатурою(при цьому генерувати звук «вибуху»),
потрібно чітко розуміти, що перш за все потрібно розробити правильний
алгоритм задачі, щоб розуміти що саме потрібно використовувати задля
правильного виконання задачі. Перш за все, потрібно словесно розділити задачу
на підзадачі, та знайти технології, що допоможуть у вирішенні задачі.
Надане завдання можливо розділити на дві підзадачі, які можливо
розробити у частних випадках. Перша підзадача – відключити на 100 тиків
роботу з клавіатурою, а друга – генерувати 100 тиків звук вибуху. Поперше
потрібно розібратися з усіма змінними. Основний елемент у даній задачі – час.
Мається 100 тиків, які потрібно перевести у реальний час. Візьмемо з інтернету
визначення, що 1 секунда вміщає у себе 20 тиків. Отже, маємо, що потрібно
генерувати звук та блокувати роботу клавіатури на 5 секунд.
Наступне питання полягає у тому, як відключити роботу клавіатури. Як це
відомо, робота клавіатури визначається у комп`ютері через порти. І основним
знанням для завдання виступила наступна інформація, що саме порт 60h
виступає портом, де завдяки певним командам, можливо вимкнути або
заблокувати роботу клавіатури. І якщо занести у порт 60h команду $f5, то робота
з клавіатурою вимикається повністю, і поки не буде вставлена команда $f4 у
порт,то клавіатура буде відключена, і після розблокування уся інформація(тобто
клавіши, що були нажаті під час вимикання клавіатури) буде зтерта назавжди.
Але є ще і інша команда, що блокує роботу клавіатури. Тобто при занесенні у
порт 60h команди $ad, клавіатура
просто перестає оброблювати переривання №9 у системного блоку, а якщо
клавіатуру розблокувати, то уся інформація ,введена під час блокування, буде
13.
оброблена. Саме другий варіант буде найкращим у виборі алгоритму роботи
блокування клавіатури.
Теперь питання полягає у тому, як блокувати роботу клавіатури певний
час. Для цього існує певний модуль у середовищі Паскаль, що дозволяє додати у
код затримку роботи програм. Але потрібно використати порти для цього. Тому
краще розробити окрему процедуру що імітує роботи команди, але з
використанням комірки пам`яті 0040:006Ch. процедура постійно порівнює
задану кількість часу з тим, який можна отримати читанням значення з комірки.
Останнє завдання – генерація звуку вибуху. Для даного завдання є купа
складностей, так як у звичайному розумінні імітувати реальний звук вибуху
використовуючи технології Turbo Pascal неможливо. І також неможливо
використати технології, що дозволяють програти файл, який містить цей звук.
Тому єдиний варіант вирішення задачі – Спробувати імітувати звук вибуху тими
можливостями, що представлені середовищем. Як відомо з курсу «Архітектура
комп`ютерів», для генерації звуку без таймера треба скинути молодший біт
порту 61h (заборонивши цим роботу каналу 2 таймера) і, керуючи бітом 1 цього
порту, тобто встановлюючи цей біт то в 1, то в 0, формувати імпульси для
динаміка. Висота звуку, що генерується, буде відповідати періоду імпульсів.
Зазначимо, що цим способом можна генерувати імпульси будь-якої
шпаруватості, що дає більше можливостей для створення різних звукових
ефектів. Але також існують функції, що програють звук певної частоти. Тому
можна просто повторити функції, використовуючи порти. Тобто заносимо у
порти 61h, 43h і 42h певні команди що керують частотою звуку

6.2.обгрунтування вибору середовища та мови програмування


Тепер потрібно вибрати на якій мові програмування, і у якому середовищі
працювати задля вдалого виконання роботи. Відразу стало зрозуміло, що
потрібно використовувати середовища, що мають підтримку 16-бітних
технологій, тобто ті середовища, що мають можливість взаємодіяти з
регістрами, комірками
14.
даних, сегментами жорстких дисків і т.д. Щодо мови програмування, то на
курсі
«Архітектура комп`ютерів» під час виконання практичних робіт, краще всього
було використовувати три мови програмування: Pascal з середовищем Turbo
Pascal, Сі з середовищем Turbo C та Сі++ з середовищем Turbo C++. Так як
робота з портами краще і легче розкрита на Pascal, то саме він буде найращим
вибором для розробки програми

6.3.розробка програми
Текст програми
Program kurs;
uses dos;

var
i: integer;
tall:word;
intv:pointer;
{$F+}
procedure timer;interrupt;
begin
inc(tall);
end;

const
speaker_port = $61;
pit_control = $43;
pit_channel_2 = $42;
pit_freq = $1234dd;
15.
procedure delay (n: integer);
const t: byte = 0; { static! saves some stack space }
var timer: byte absolute $0040:$006C;
begin
while n > 0 do
begin
t := timer;
repeat
asm
hlt
end;
until timer <> t;
dec (n);
end;
end;

Procedure Vzruv;
CONST
cl = 1193180;
VAR
b : BYTE;
i, v, n : INTEGER;
BEGIN
Port[$61] := Port[$61] OR 3;
Port[$43] := $B6;
n := cl DIV 500;
v := cl DIV 1600;
getintvec($1C,intv);
16.
setintvec($1C,@timer);
tall:=0;
For i := v To n Do
begin
if tall = 100 then break;
else
Port[$42] := Lo( i );
Port[$42] := Hi( i );
delay (10);
end;
Port[$61] := Port[$61] AND $FC;
END;

begin
Port[$64]:=$ad;
writeln ('Keyboard is blocked');
vzruv;
Port[$64]:=$ae;
writeln ('Keyboard is unlocked');
readln;
end.
17.
ВИСНОВКИ

Під час виконання Курсового проекту з курсу «Архітектура комп`ютерів»


були закріплені знання з цього предмету, а саме знання роботи з клавіатурою і
таймером, а також знання роботи відеоконтролерів, розширеної та тіньової
пам`ятей і конвеєрної обробки з асоціативним пошуков. Дана курсова робота, а
саме практичне завдання, має практичну цінність,так як дана програма може
допомогти у разі коли потрібно робити якісь розрахунки, так як клавіатура
завжди працює, і при нажатті на клавішу, вона змушує системний блок
відволікатися на переривання №9. Тому задля прискорення програми можна
вимикати клавіатуру для того, щоб розрахунки були швидшими
18.
СПИСОК ДЖЕРЕЛ ІНФОРМАЦІЇ

1.Поворознюк А. И. Архитектура компьютеров. Архитектура


микропроцессорного ядра и системных устройств: Учебное пособие. Ч.1.
/ А. И. Поворознюк – Харьков: "Торнадо", 2014. – 355 с.
2.Поворознюк А. И. Архитектура компьютеров. Архитектура
внешней памяти, видеосистемы и внешних интерфейсов: Учебное
пособие. Ч.2. / А. И. Поворознюк – Харьков: "Торнадо", 2014. – 296 с.
3.Поворознюк А.И. Архитектура компьютеров : лаб. Практикум
/ А. И. Поворознюк, Н. В. Мезенцев, О. А. Поворознюк – Харьков : Курсор,
2016. – 131 с.

Вам также может понравиться