Лекція.
Простір вводу-виводу.Простір оперативної памяті. Розподіл ресурсів комп'ютера
Крім архітектури апаратних засобів і параметрів системної шини специфіка будь-якого комп'ютера визначається прийнятим стандартним розподілом всіх його ресурсів. Дотримувати правила, встановлені цим розподілом, повинні і програмісти (як системні, так і такі, що займаються розробкою прикладних програм), і розробники додаткового устаткування, і навіть ті користувачі, які просто хочуть встановити в комп'ютер нову плату розширення. У разі щонайменшого порушення цих правил можливі як непередбачувані збої в роботі комп'ютера, неможливість його початкового завантаження, так і повний вихід комп'ютера з ладу.
Під розподілом ресурсівв даному випадку розуміється:
- розподіл адресного простору системної пам'яті, відведення окремих областей пам'яті під особливі цілі;
- розподіл адресного простору пристроїв введення/виводу, зокрема для системних засобів комп'ютера;
- розподіл каналів запиту переривань, зокрема для системних пристроїв;
- розподіл каналів запиту прямого доступу до пам'яті.
Зрозуміло, що якщо програміст захоче використовувати ті адреси пам'яті, які відведені для системних потреб (наприклад, для пам'яті дисплея або системних таблиць), то працездатність комп'ютера порушиться. Якщо виконувана програма спробує записати яку-небудь інформацію по тих адресах системної пам'яті, які стандартом відведені під постійну пам'ять (ROM), то записувана інформація буде просто втрачена, і програма працювати не буде. Якщо писати інформацію по тих адресах пам'яті, які відведені під відеопам'ять, то спотворюватиметься зображення на екрані відеомонітора.
Якщо плата розширення, що вставляється в комп'ютер, використовує неправильні (зайняті іншими пристроями) адреси в адресному просторі пам'яті, то її робота буде неможлива, і не виключений навіть вихід з ладу апаратури комп'ютера (оскільки при циклах читання з адрес, що перекриваються, пам'яті два пристрої виставлятимуть свої дані на шину одночасно, що може стати причиною вигорання буферних мікросхем).
Якщо розробник плати розширення з пристроєм введення/виводу або користувач, що підключає нову плату розширення, встановлять адресу свого пристрою так, що він співпадатиме з адресою системного пристрою або адресою іншої плати розширення, то можливі конфлікти при зверненні до даного пристрою. При цьому в циклі запису інформація записуватиметься не в одне, а в два або більш за пристрої, а в циклі читання на шину даних одночасно виставлятимуть свої дані не одне, а декілька пристроїв. Тобто в циклі запису можливе порушення встановлених режимів роботи системних пристроїв (наприклад, контроллера переривань або контроллера ПДП) або неправильна робота нової плати розширення, а в циклі читання — навіть вихід з ладу одного з пристроїв, що виставляють свої дані на магістраль одночасно.
Якщо при підключенні до комп'ютера нової плати розширення встановити для неї неправильний канал запиту переривання, це може привести до того, що дане переривання просто не обслуговуватиметься. Може також перестати обслуговуватися переривання від системного пристрою, з яким конфліктує нова плата. У гіршому разі це може викликати вихід з ладу нової плати розширення або ж системного пристрою.
Так само при неправильному виборі номера каналу запиту прямого доступу до пам'яті може перестати обслуговуватися запит ПДП системного пристрою, а може вийти з ладу системний пристрій або нова плата розширення. Тобто дотримання правил стандартного розподілу ресурсів комп'ютера — це не чиясь примха, а життєва необхідність.
Правда, останнім часом набула поширення що знімає дані проблеми технологія автоматичного розподілу ресурсів Plug-and-Play (PNP, P&P), що можна перевести як «Вставляй і працюй». При цьому користувачеві досить просто підключити свою плату до комп'ютера, а всі операції по розподілу ресурсів комп'ютер виконає самостійно, і будь-які конфлікти будуть автоматично усунені.
Але для цього необхідне обов'язкове виконання двох умов. По-перше, технологію PNP повинні підтримувати даний комп'ютер і його програмне забезпечення. По-друге, цю технологію повинен підтримувати пристрій, що підключається до комп'ютера. Визначити це задоволено просто: якщо на платі є перемички, що переставляються, або механічні перемикачі для завдання параметрів плати (адрес портів введення/виводу, номера використовуваного переривання, базової адреси пам'яті, номера каналу ПДП), то можна сміливо стверджувати, що вибір конфігурації, облік стандартного розподілу ресурсів комп'ютера лягає на користувача. Комп'ютер тут не помічник. Звичайно ж, перед установкою в комп'ютер нових плат розширення слід уважно прочитати інструкцію і точно слідувати їй. Докладніше про роботу режиму PNP буде розказано нижче.
А зараз розглянемо прийнятий в персональних комп'ютерах стандартний розподіл ресурсів.
Про стандартний розподіл пам'яті вже мовилося в попередньому розділі. Трохи докладніше розподіл адрес пам'яті описаний в табл. 8.3.
З таблиці видно, що для пам'яті, що входить до складу пристроїв введення/виводу, відводиться зона всього лише в 92 Кбайта (адреси С8000.DFFFF). У цьому просторі може розташовуватися як оперативна пам'ять, так і постійна пам'ять пристроїв введення/виводу. Іноді пам'ять пристроїв введення/виводу захоплює також і зону адрес С0000.С7FFF.
Табл. 8.3. Розподіл адрес пам'яті (адреси дані в шістнадцятиричному коді).
| Адреси пам'яті
| Призначення
| 000000...0003FF
| Таблиця векторів переривань
| 000000...09FFFF
| Пам'ять DOS і призначених для користувача програм
| 0А0000...0АFFFF
| Пам'ять дисплея EGA або VGA
| 0B0000...0B7FFF
| Пам'ять монохромного дисплея MDA
| 0B8000...0BFFFF
| Пам'ять дисплея CGA
| 0C0000...0C3FFF
| ПЗП BIOS для EGA/VGA
| 0C8000...0DFFFF
| Пам'ять пристроїв введення/виводу
| 0E0000...0EFFFF
| Резерв ПЗУ Вios на материнській платі
| 0F0000...0FFFFF
| ПЗП BIOS на материнській платі
| Важливо пам'ятати, що крім цього розподілу, загального для будь-яких програмних і апаратних засобів, існують ще і розподіли пам'яті, специфічні для кожної операційної системи. Їх також необхідно враховувати щоб уникнути відмови при виконанні системних програм. Відзначимо, що в сучасних комп'ютерах, звичайно ж, не використовуються давно застарілі дисплеї стандартів CGA або MDA. Проте в тому випадку, якщо потрібна універсальність програмного забезпечення, треба враховувати і те, що його можуть спробувати запустити на комп'ютерах з подібними дисплеями.
Стандартний розподіл адрес в адресному просторі пристроїв введення/виводу персонального комп'ютера приведений в табл. 8.4.
Як вже наголошувалося, стандарт допускає адресацію 64К пристроїв введення/виводу (тобто можна використовувати 16 розрядів адреси). Проте переважна більшість плат розширення для спрощення апаратури використовують тільки 10 молодших розрядів, що відповідає всього 1К (або 1024) адрес (від 000 до 3FF в шістнадцятиричному коді). При цьому 16-розрядні порти введення/виводу мають парні адреси, тобто їх може бути всього 512.
|