Поиск по базе сайта:
Тема: Системні ресурси Системними ресурсами icon

Тема: Системні ресурси Системними ресурсами




Скачати 178.31 Kb.
НазваТема: Системні ресурси Системними ресурсами
Дата конвертації15.11.2012
Розмір178.31 Kb.
ТипДокументи
1. /AKC/БЛАНК_контролю_нау.doc
2. /AKC/КОНТРОЛЬНА_АКС.doc
3. /AKC/ЛЕКЦIф_м1/01_ЛЕКЦIЯ__1.doc
4. /AKC/ЛЕКЦIф_м1/02_ЛЕКЦIЯ__2.doc
5. /AKC/ЛЕКЦIф_м1/03_ЛЕКЦIЯ__3.doc
6. /AKC/ЛЕКЦIф_м1/04_ЛЕКЦIЯ__4.doc
7. /AKC/ЛЕКЦIф_м1/05_ЛЕКЦIЯ__5.doc
8. /AKC/ЛЕКЦIф_м1/06_ЛЕКЦIЯ__6.doc
9. /AKC/ЛЕКЦIф_м1/07_ЛЕКЦIЯ__7.doc
10. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/01_x86.doc
11. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/02_Поколiння_процесорiв_з_1_по_7.doc
12. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/03_Процесори_молодших_поколiнь.doc
13. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/04_Мiкропроцесори_шостого_поколiння.doc
14. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/05_Архiтектура_IA64.doc
15. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/06_Огляд_сучасних_процесорiв.doc
16. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/_00_ЛЕКЦIЯ__8.doc
17. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/_ПРОЦЕСОРИ_мат.doc
18. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/_Типи процесорiв.doc
19. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_01_ОРГАНIЗАЦ_ПАМ+.doc
20. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_02_ДИНАМIЧНА_ПАМ+.doc
21. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_03_ТАЙМIНГИ+.doc
22. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_а_ЛЕКЦIЯ_ОП.doc
23. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_б_ЛЕКЦIЯ_Таймiнги.doc
24. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_в_ЛЕКЦIЯ_Огляд_ОП.doc
25. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_00_Фiзична структура HDD.doc
26. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_01_НАКОПИЧУВАЧI_+.doc
27. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_02_ЛЕКЦIЯ_RAID_.doc
28. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_02_ПРИСТР_ЗБЕРЕЖ_ДАНИХ_1+.doc
29. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_03_IDE.doc
30. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_04_SCSI_.doc
31. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_12/12_01_ШИНИ_розширення.doc
32. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_12/12_01а_PCI.doc
33. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_12/12_01б_PCI_express.doc
34. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_00_Iнтерфейси.doc
35. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_01_СОМ.doc
36. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_02_LPT.doc
37. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_03+06_Iнтерфейси.doc
38. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_04_USB+FireWire.doc
39. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_05_Fibre Channel.doc
40. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_07_Bluetooth.doc
41. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_08_IrDa.doc
42. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_14/14_00_Вiдесистема.doc
43. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_14/14_00_вiдеоадаптер.doc
44. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_14/14_01_Аудио_ГУК_Р12.doc
45. /AKC/ПИТАННЯ+модуль2+акс.doc
46. /AKC/ПИТАННЯ_МОДУЛЬ_ь1+.doc
47. /AKC/тесты с ответами.doc
Національний авіаційний унуверситет
Завдання на контрольну роботу завданям курсової роботи з дисципліни «Архітектура комп’ютерних систем»
Тема 1 Класичні основи побудови еом. Покоління комп’ютерів
Тема 2 Основні архітектури кс
Тема: Системні ресурси Системними ресурсами
Тема: Системні ресурси. (продовження) Система переривань
Тема: Системні ресурси (продовження) Прямий доступ до пам'яті dma
1. Поняття системної плати
Тема організація введення-виведення І bios
X86 Intel 80x86
Архітектура і мікроархітектура процесорів. Покоління процесорів
Мікропроцесори фірми Intel молодших поколінь
Мікропроцесори шостого покоління
Архітектура ia-64
Arhitektura komp system
Рис 1 Верхній рівень структурної організації комп‘ютера
Зміст Введення
Тип процессора Микро-архитектура
Підсистеми пам'яті
Динамічне озп. Конструктивні особливості
Таймінги пам'яті поняття «таймінгів»
Тема 12. Класифікація запам’ятовуючих пристроїв. Типи оперативної пам’яті план лекції Поняття «пам’ять еом»
Тема 13. Таймінги
Arhitektura komp system
Тема 14. Фізична структура жорсткого диску
Жорсткі диски. Введення 2 Фізичний пристрій жорсткого диска 2
Raid-масиви початкового рівня Що таке raid?
Устройства хранения данных
Интерфейс ide ata/atapi и sата
Arhitektura komp system
8. pci/pci-x
Шини pci/pci-x
Шина pci express Шина pci express
Usb fireWire ps/2 ata (ide)/ атарі
Інтерфейс rs-232C — com-порт
Паралельний інтерфейс — lpt-порт
Універсальна послідовна шина
Usb (Universal Serial Bus універсальна послідовна шина) є промисловим стандартом розширення архітектури рс, орієнтованим на інтеграцію з телефонією І пристроями побутової електроніки. Версія 1
Fibre Channel Fibre Channel
Arhitektura komp system
Arhitektura komp system
Arhitektura komp system
Тема 11. Відеоадаптер
Img src= 44 html 2f3a33e
Питання до модуля №2
2) Основні компоненти машини фон Неймана 3) Які покоління комп’ютерів характеризуються децентралізацією управління процедурами вводу-виводу (системи переривання програм)
Які принципи програмно-керованих еом не використовувалися Нейманом

Тема: Системні ресурси

Системними ресурсами називаються комунікаційні канали, адреси і сигнали, які використовуються вузлами комп'ютера для обміну даними за допомогою шин. Зазвичай під системними ресурсами мають на увазі:

  • адреси пам'яті;

  • канали запитів переривань (IRQ);

  • канали прямого доступу до пам'яті (DMA),

  • адреси портів вводу-виводу.

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

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

Усі ці ресурси необхідні для різних компонентів комп'ютера. Плати адаптерів використовують ресурси для взаємодії з усією системою і для виконання своїх специфічних функцій. Кожній платі адаптера потрібен свій набір ресурсів. Так, послідовним портам для роботи необхідні канали IRQ і унікальні адреси портів вводу-виводу, для аудіо потрібно ще хоча б один канал DMA. Більшістю мережевих плат використовується блок пам'яті ємністю 16 Кбайт, канал IRQ і адреса порту вводу-виводу.

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

Отже під розподілом ресурсів розуміється:

  • розподіл адресного простору системної пам'яті, відведення окремих областей пам'яті під особливі цілі;

  • розподіл адресного простору пристроїв введення / виводу, в тому числі для системних засобів комп'ютера;

  • розподіл каналів запиту переривань, у тому числі для системних пристроїв;

  • розподіл каналів запиту прямого доступу до пам'яті.

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

Розглянемо прийнятий в персональних комп'ютерах стандартний розподіл ресурсів.


Табл. 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 на материнській платі
З таблиці видно, що для пам'яті, що входить до складу пристроїв введення / виводу, відводиться зона всього лише в 92 Кбайта (адреса С8000 ... DFFFF). У цьому просторі може розташовуватися як оперативна пам'ять, так і постійна пам'ять пристроїв введення / виводу. Іноді пам'ять пристроїв введення / виводу захоплює також і зону адрес С0000 ... С7FFF.

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


РОЗПОДІЛ ПРОСТОРУ ПАМ'ЯТІ


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

Процесори 8086/88, що застосовувалися в перших моделях PC, мали доступний адресний простір 1 Мбайт (20 біт шини адреси). Ці процесори використовували сегментну модель пам'яті, успадковану і пізнішими моделями в реальному режимі. Відповідно до цієї моделі, виконавча (лінійна) адреса обчислюється за формулою Addr-Seg--16+Offset, де Seg і Offset -- вміст сегментного та адресного регістрів (16-розрядних). Таким чином забезпечується доступ до адресного простору Addr -- 00000 -- FFFFFh за допомогою пари 16-бітових регістрів. Зауважимо, що при Seg -- FFFFh і Offset -- FFFFh дана формула дає адресу 10FFEFh, але через 20-бітного обмеження на шину адреси ця комбінація а фізичної пам'яті вказує на адресу 0FFEFh. Таким чином, адресний простір як би згортається в кільце з невеликим «нахлестом». Починаючи з процесора 30286. шина адреси била розширена до 24 біт, а згодом (386DX, 486 і вище) до 32 і навіть 36 (у процесорів Р6). В реальному режимі процесора, що використовується в DOS, застосовується та ж сегментна модель пам'яті і формально доступно лише 1 Мбайт пам'яті, що є недостатнім для більшості сучасних додатків. Процесори 80286, з яких почалося життя IBM PC/AT емулюють 8086 з помилкою: та сама одиниця в біті А20, яка відкидалась в процесорах 8086/88 тепер потрапляє на шину адреси і в результаті максимально доступна лінійна адреса в реальному режимі досягає 10FFEFK. За цю помилку з радістю вхопилися «розробники» PC, оскільки додаткові (64К - 16) байти оперативної пам'яті, що адресується в реальному режимі виявилися подарунком, що дозволяє звільнити дефіцитний простір оперативної пам'яті для прикладних програм. У цю область (100000h - 10FFEFh), названу високої пам'яттю (High Memory Area, HMA) стали розміщувати частина операційної системи і невеликі резиденті програми. Однак для повної сумісності з процесором 8086/88 про схему PC ввели вентиль лінії А20 шини адреси -- GateA20, який або пропускає сигнал від процесора, або примусово обнуляє лінію А20 системної шини адреси. Старші біти такої «турботи» не вимагають, оскільки переповнення при підсумовуванні 16-бітових компонентів адреси за даною схемою до них не поширюється. Управління цим вентилем підключили до вільного програмно-керованого вихідного біту 1 контролера клавіатури 8042, що став стандартним елементом архітектури PC, починаючи з AT.

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

Оскільки помилка емуляції 8086 була прийнята радісно і широко використовувалась, її повторили і 386 і наступних моделях процесорів. А для спрощення зовнішніх схем у процесори, починаючи з 486, ввели і вентиль GateA20 з відповідним зовнішнім керуючим висновком.

Розподіл пам'яті PC фізично адресується процесором, проілюстровано рис. 2 і представляється таким чином:

  • Адреса 00000h-9FFFFh (640 Кбайт) -- стандартна, або базова, пам'ять (conventional, або base, memory). Доступна DOS і програм реального режиму. У деяких системах з відеоадаптером MDA верхня межа зсувається до AFFFFh (704 Кбайт). Іноді верхні 128 Кбайт стандартної пам'яті (область 80000h-9FFFFh) Називають розширеною базової пам'яттю (extended conventional memory).

  • Адреса A0000h--FFFFFh (384 Кбайт) -- верхня пам'ять (Upper Memory Area, UMA), зарезервовані для системних потреб. У ній розмішають області буферної пам'яті адаптерів, підключених до шик ISA (наприклад, відеопам'ять), і постійна пам'ять (BIOS з розширеннями). Ця область звичайно використовується не в повному обсязі, ставить архітектурний бар'єр на шляху безперервної (нефрагментованої) пам'яті, зручною для програмного застосування.

Пам'ять вище 100000h -- додаткова, або розширена, пам'ять (extended memory). Безпосередньо доступна тільки в захищеному (і в «більшом реальному ») режимі для комп'ютерів з процесорами 286 і вище. У ній виділяється область 100000h--10FFEFh -- висока пам'ять (НМА) - єдина область розширеної пам'яті, доступна 286+ в реальному режимі при відкритому вентилі Gate A20.



Рис. 2. Розподіл пам'яті PC


Область пам'яті вище першого мегабайта і різних джерелах називається по-різному. Її сучасна англійські назва -- extended memory - перетинається з назвою однієї із специфікації її використання -- extended memory specification. У той ж час назва іншої специфікації -- expanded memory specification - в прямому перекладі на українську не відрізнити від перекладу попереднього терміну (обидва терміни, і «extended» і «expanded», переводиться як «розширений»). Будемо дотримуватися термінології, яка є в літературі. Її обсяг вказувався рядком Extended Memory ххххх Kbyte в таблиці, що виводиться після проходження тесту РOSТ, і в меню стандартної конфігурації CMOS Setup. У сучасних комп'ютерах вказується загальний обсяг оперативної пам'яті.

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

Для перших комп'ютерів на процесорах 8086/88 з 20-бітної шиною адреси верхня межа пам'яті, що адресується - 0F FFFFh. Область ПЗУ BIOS розташована за адресами 0Е 0000h-0F FFFFh; для оперативної пам'яті доступні області стандартної пам'яті (640 К) і деякі області UMA. Пам'ять периферійних пристроїв може розташовуватися тільки в UMA.

Для комп'ютерів класу AT-286 з 24-бітному шиною адреси верхня межа пам'яті, яка адресується -- FF FFFFh. Область FE 0000h--FF FFFFh містить ПЗУ BIOS (ROM BIOS Area). У цих комп'ютерах для оперативної пам'яті доступна і область додаткової пам'яті, максимальний розмір ОЗУ може досягати 15.9 Мбайт. Однак останній мегабайт (крім області BIOS) може бути відданий для областей пам'яті периферії (додатково до UMA), так що об'єм оперативної пам'яті виявиться менше 15 Мбайт.

Для процесорів 386+ і 32-бітної шини адреси верхня межа пам'яті, яка адресується -- FFFF FFFFh (4 Гбайт). Тут образ BIOS знаходиться в адресах FFFE 0000h--FFFF FFFFh, для ОЗУ і пам'яті периферії залишається майже 4 Гбайт. Для забезпечення сумісності BIOS додатково проектується і в адреси Е0000h - FFFFFh (для програм, що викликають сервіси BIOS але фіксованими адресами). Для периферії доступна область UMA, не зайнята BIOS, і область, що знаходиться вище межі ОЗП (але нижче межі 4 Гбайт). Периферія розташована на шині PCI і її «родичів», може бути приписана до будь-яких адрес (на PCI доступний весь адресний простір). Періферія на шині ISA з її 20-розрядною адресою може розташовуватися тільки в межах перших 16 Мбайт в UMA або в 16-му мегабайті пам'яті.

Сучасні процесори з 64-бітними розширеннями, як і 32-розрядні процесори з 36-бітної шиною адреси, дозволяють адресувати пам'ять і вище 4-гігабайтному кордоні. Обсяг встановленого ОЗУ також може перевищувати 4 Гбайт, але для периферійних пристроїв передбачається «вікно» - під межею 4 Гбайт. В процесорах з 64-бітним розширенням є пара спеціальних регістрів, що визначають нижні межі адрес для пристроїв вводу-виводу, відображених на пам'ять, для двух областей; під межею 4 Гбайт і під межею фізичної пам'яті, яка адресується (залежно від моделі процесора).

Обсяг встановленої оперативної пам'яті визначається тестом POST при початковому включенні (перезавантаженні) комп'ютера, починаючи з молодших адрес. Натрапивши на відсутність пам'яті (помилку), тест зупиняється і повідомляє системі обсяг реально пам'яті, яка працює. Встановлені в Setup «дірки» під 16-м мегабайтом сучасні версії BIOS успішно обходять. Сучасні системні плати дозволяють встановити ОЗУ, обсяг якого обчислюється вже гігабайтами. Можливість використання тих чи інших областей оперативної пам'яті визначається типом операційної системи: ОС реального (MS-DOS і аналогічні) або захищеного режиму (Windows» Unix, Linux).

Фізичний розподіл адресного простору виконується програмуванням регістрів чіпсета системної плати і мостів шин розширення. Північний хаб (або міст) чіпсета визначає діапазони адрес, які обслуговуються контролером пам'яті (з «вирізами» в області UMA та іншими «дірками»). Розподілом пам’яті, що залишилася, займаються мости ієрархії шин PCI (до цієї ієрархію входять мости AGP, PCI-X і PCI-E), до яких можуть підключатися і мости старих шин (ISA).

Більшість адаптерів персонального комп'ютера, виконаних у вигляді окремих плат розширення, використовують як системні ресурси - верхні блоки пам'яті UMА.

Пам'ять для режиму SMM

Комп'ютери, які використовують режим системного управління (System Management Mode, SMM), який підтримується більшістю процесорів останніх поколінь, мають ще один адресний простір пам'яті -- SMRAM (System Management RAM). Цей адресний простір «паралельний» простору звичайної пам'яті і доступний процесору тільки в режимі SMI. Пам'ять SMRAM може являти собою частину фізичної оперативної пам'яті хоча може бути реалізована і окремому мікросхемою пам'яті. Об'єм пам'яті для режиму SMM може варіюватися в діапазоні від 32 Кбайт (мінімальні потреби SMM) до 4 Гбайт. SMRAM розташовується, починаючи з адреси SMIBASE, і розподіляється таким чином:

  • SMIBASE + (FE00h--FFFFh) - область збереження контексту процесора (розподіляється, починаючи із старших адрес у напрямку до молодших). По перериванню SMI тут зберігаються майже всі регістри процесора, але збереження регістрів FPU/MMX не проводиться.

  • SMIBASE+8000h - точка входу в обробник (SMI handler).

  • SMIBASE + (0-7FFFh) -- вільна область.

Після скидання процесора встановлюється SMIBASE - 0003 0000h, і перше ж переривання SMI викличе збереження контексту в область 0003 FE00h - 0003 FFFFh і запуск обробника за адресою 0003 8000h, при цьому процесор генерує спеціальний вихідний сигнал SMIACT#, що означає доступ до пам'яті SMRAM. Код обробника, природно, повинен бити поміщений в цю область до виклику SMI. Якщо для SMRAM використовується системне ОЗУ, то область SMRAM переміщують у старші адреси. Це можна зробити тільки обробником переривання SMI, замінивши образ регістра SMIBASE в збереженої області контексту. Після виходу з переривання SMI це призначення вступить в силу, і наступний вхід у SMM вже буде проводитися за новими адресами. Область SMRAM повинна виключатися з області оперативної пам'яті, доступної операційній системі (обробник SMI є більш низькорівневою процедурою, ніж драйвери ОС).

Верхня пам'ять - UMA

Верхня пам'ять має області різного призначення, які можуть бути заповнені буферною пам'яттю адаптерів, постійною пам'яттю або залишатися незаповненими. Спочатку ці «дірки» не використовували через складність «Фігурного випилювання» простору адресації. З появою механізму сторінкової переадресації (у процесорів 386 і вище) їх стали по можливості заповнювати «острівцями» оперативної пам'яті, названими блоками верхньої пам'яті (Upper Memory Block, UMB). Ці області доступні DOS для розміщення резидентних програм і драйверів через драйвер EMM386, який відображає в них доступну додаткову пам'ять.

Стандартний розподіл верхньої пам'яті виглядає наступним чином (рис. 3):

  • Адреса A0000h - BFFFFh (128 Кбайт) -відеопамять (Video RAM, VRAM). Зазвичай використовується не повністю.

  • Адреса C0000h - DFFFFh (128 Кбайт) - резерв для адаптерів (adapter ROM і adapter RAM), використовують власні модулі ROM BIOS або/і спеціалізоване ОЗУ, які розділяли з системною шиною.

  • Адреса E0000h - EFFFFh (64 Кбайт) - вільна область, іноді зайнята підсистемні модулі BIOS (system BIOS).

  • Адреса F0000h - FFFFFh (64 Кбайт) - системні модулі BIOS.

  • Адреса FD000h - FDFFFh -- ESCD (Extended System Configuration Data) -- область незалежної пам'яті, що використовується для конфігурування пристроїв Plug and Play. Ця область є тільки при наявності PnP BIOS, це становище і розмір жорстко не задані.

В області UMА практично завжди присутній графічний адаптер. В залежності від моделі він займає наступні області:

  • MDA RAM -- B0000h-B0FFFh,

  • CGA RAM -- B8000h-BBFFFh.

  • EGA ROM -- C0000h-C3FFFh/C7FFFh.

  • VGA ROM - С0000h--C7FFFh.

  • EGA, VGA RAM -- A0000h--BFFFFh, залежно від відеорежиму використовуються наступні області:

    • Graphics -- A0000h-AFFFFh;

    • Color Text -- B8000h-BFFFFh;

    • Mono Text -- B0000h-B7FFFh,



Рис. 3. Розподіл верхньої пам'яті (UMA)

Також поширеним споживачем UMA є розширення ROM BIOS, розташовані на платах дискових контролерів, а ще мікросхеми віддаленого завантаження (boot ROM) на платах адаптерів ЛОМ. Зазвичай вони займають область C8000h -- CBFFFh/C9FFFh/C8FFFh (для дискових контролерів), але можуть і переміщатися при конфігуруванні адаптерів.

Тіньова пам'ять -- Shadow ROM і Shadow RAM

В області верхньої пам'яті UMA звичайно розташовуються пристрої з повільною пам'яттю: системна пам'ять BIOS (system ROM BIOS), розширення BIOS на графічному адаптері (video ROM BIOS), на контролерах дисків і інтерфейсів (adapter ROM), ПЗП початкове завантаження на мережевій карті (boot ROM), відеопам'ять (video memory buffer). Вони, як правило, реалізовані на 8 - або 16-бітних мікросхемах з досить великим часом доступу. Звернення до повнорозрядного системного ОЗУ виконується набагато швидше. Для прискорення звернень до пам'яті цих пристроїв застосовується тіньова пам'ять (shadow memory) - підміна пам'яті системним ОЗП. Тіньова пам'ять з'явилася на розвинених моделях AT-286, де вона була реалізована апаратно. Процесори класу 386+ дозволяють це реалізувати програмно за рахунок сторінкової переадресаціі. Затінення ОЗП і ПЗП пристроїв виконується по-різному.

При ініціалізації тіньового ПЗП (shadow ROM) вміст затіненої області розміщається в ОЗП і при подальшому читанні за цими адресами підставляється в ОЗП, а запис в цю область блокується.

При використанні тіньового ОЗП (shadow RAM) запис проводиться одночасно у фізичну пам'ять затіненої області і в системне ОЗП, накладене на цю область. При читанні затіненої області звернення йде тільки до системної пам'яті, що набагато швидше. Особливо великий ефект від затінення відеопам'яті старих графічних адаптерів, яка при читанні буває доступна тільки під час зворотнього кола розгортки, і процесору доводиться довго чекати цього моменту. До роздільної пам'яті відносяться буферна пам'ять мережевих адаптерів, відеопам'ять адаптерів з графічними співпроцесорами (акселераторами). З цього випливає, що затінення відеопам'яті застосовується лише до примітивних графічних карт, що встановлюються в слот ISA, І то не в усіх режимах.

Зазвичай тіньова пам'ять включається через CMOS Setup окремими областями розміром по 16 Кбайт або більшими, і для кожної області вказується режим затінення (shadow ROM або shadow RAM). ЇЇ включення можливе і драйверами ОС (наприклад, драйвером EMM386). На сучасних системних платах затінення області системної мікросхеми BIOS виконується завжди, на старих платах затіненням цієї області можна було керувати. Затінення BIOS відеоадаптера (video BIOS shadowing) для роботи в середовищі Windows з «рідними» драйверами графічного адаптера може і не дати приросту продуктивності.

Оперативна пам'ять для MS--DOS

Для операційних систем реального режиму (MS--DOS) оперативна пам'ять може розміщуватися в стандартній області (640 Кбайт), додаткової пам'яти і в деяких областях UMA.

Стандартна пам'ять є найбільш дефіцитною в PC, на її невеликий об'єм (типове значення - 640 Кбайт) претендують і BIOS, і ОС реального режиму, а залишки віддаються прикладному ПЗ. Стандартна пам'ять розподіляється наступним чином:

  • 00000h-003FFh -- вектори переривань (interrupt vectors), всього 256 подвійних слів;

  • 00400h-004FFh -- область змінних BIOS (BIOS data area);

  • 00500h-00xxxh -- область DOS (DOS area);

  • 00xхxh-9FFFFh -- пам'ять, яку надає користувачеві (user RAM), всього до 638 Кбайт (для PS/ 2 Mouse область 9FC00h-9FFFFh використовується як розширення області змінних BIOS, тому розмір призначеної для користувача пам'яті менше).

Додаткова пам'ять і UMA може використовуватися в якості оперативної тільки зі спеціальними програмними інтерфейсами, для яких були розроблені специфікації EMS і XMS.

Специфікація на видиму пам'ять (Expanded Memory Specification, EMS) - це програмна специфікація на використання додаткової пам’яті DOS-програмами реального режиму. Специфікація LIM EMS -- угода фірм Lotus, Intel, Microsoft на застосування EMS. За допомогою спеціальних апаратних чи програмних засобів будь-яка область додаткової пам'яті може бути відображена на невеликі сторінки, розташовані в області UMA. У первинному варіанті можна було задіяти 4 сторінки по 16 Кбайт, що примикають один до одного, зазвичай починаючи з адреси D0000h (положення сторінок можна змінювати в межах вільних областей UMA). Звернення прикладних програм до пам'яті EMS здійснюється через диспетчер пам'яті, що викликається по перериванню Int 67h. Програма, яка потребує додаткової пам'яті, повинна спочатку запросити виділення області, зазначивши її розмір у 16-кілобайтні сторінках. У відповідь на цей запит (якщо є вільна пам'ять) диспетчер повідомляє програмі номер дескриптора EMS (EMS handler), за яким програма надалі буде посилатися на виділену їй область при управлінні відображенням. Далі програма через диспетчер призначає відображення необхідної логічної сторінки з виділеною їй області додаткової пам'яті на обрану фізичну сторінку, розташовану в області UMA. Після цього будь-які програмні звернення процесора до фізичної сторінкою розташованої в межах першого мегабайта, будуть насправді працювати з логічною сторінкою додаткової пам'яті, розташованої вище першого мегабайта, причому без перемикання в захищений режим. Для роботи з іншою логічною сторінкою потрібний виклик диспетчера для перепризначення відображення. В режимі EMS 4.0, який емулюється на процесорах 386+, з'явилася можливість збільшення числа доступних фізичних сторінок і відображення додаткової пам'яті не тільки на фіксованій області UMA, а й на будь-які області пам'яті.

Для підтримки EMS спочатку були потрібні спеціальні апаратні засоби, у комп'ютерах на процесорах 386 і вище з'явилася можливість програмної емуляції EMS, яку в MS-DOS 5+ виконує драйвер EMM386.EXE.

Система EMS в основному призначена для зберігання даних - для виконуваного в даний момент програмного кода вона незручна, оскільки вимагає програмного перемикання сторінок через кожні 16 Кбайт. Її використовують для створення віртуальних дисків, зберігання черг завдань для друку, а також для зберігання даних і навіть програмного коду деяких резидентних програм (з метою економії стандартної пам'яті).

Специфікація на розширену пам'ять (extended Memory Specifecation, XMS) -- це інша програмна специфікація на використання додаткової пам'яті DOS-програмами, розроблена компаніями Lotus, Intel, Microsoft і AST для комп'ютерів на процесорах класу 286 і вище. Ця специфікація ддозволяє програмі одержати в розпорядження одну або декілька областей додаткової пам'яті, а також задіяти область НМА. Розподілом областей відає диспетчер розширеної пам'яті - драйвер HIMEM.SYS. Диспетчер дозволяє захопити або звільнити область НМА (65 520 байт, починаючи з 100000h), а також керувати вентилем лінії адреси А20. Функції XMS дозволяють програмі:

  • визначити розмір максимально доступного блоку пам'яті;

  • захопити або звільнити блок пам'яті;

  • копіювати дані з одного блоку в інший, причому учасники копіювання можуть бути блоками як стандартної, так і додаткової пам'яті в будь-яких поєднаннях;

  • заблокувати блок пам'яті (заборонити копіювання) і розблокувати його;

  • змінити розмір виділеного блоку.

У відповідь на запит виділення області диспетчер видає 16-біттний номер дескриптор блоку (XMS handler), за яким виконуються подальші маніпуляції з цим блоком. Розмір блоку може досягати 64 Мбайт. Специфікація XMS дозволяє програмам реального режиму влаштовувати «склади» даних у додатковій пам'яті, яка їм безпосередньо недоступна, копіюючи в неї і з неї дані доступних областей першого мегабайта пам'яті. Доступ до диспетчеру XMS здійснюється через переривання 2Fh. Турботу про переключення в захищений режим і назад для отримання доступу до додаткової пам'яті бере на себе диспетчер. За замовчуванням HIMEM.SYS дозволяє використовувати до 32 дескрипторів блоків, але це число можна збільшити, задавши параметр /NUMHANDLES=xx в рядку завантаження драйвера HIMEM.SYS.

Крім додаткової пам'яті специфікація XMS визначає пару функцій і для роботи з блоками UMB - захопити блок необхідного розміру (або визначити максимально доступний блок) і звільнити його.

Cпецифікації EMS і XMS розрізняються за принципом дії: в режимі EMS для доступу до додаткової пам'яті виконується відображення (сторінкова переадресація) пам'яті, а в режимі XMS - копіювання блоків даних. На комп'ютерах з процесорами 386+ ці специфікації мирно співіснують при запуску драйвера HIMEM.SYS, поверх якого може бути завантажений драйвер EMM386ЕХЕ, що користується пам'яттю XMS для емуляції пам'яті EMS. Пам'ять, доступна EMS і XMS, може виділятися спільно з числа додаткової. Ключ NOEMS в рядку запуску EMM 386 забороняє виділення пам'яті для режиму EMS.

Віртуальна пам'ять

Для ОС захищеного режиму (у тому числі Windows) доступна вся оперативна пам'ять, причому без будь-яких хитрощів типу описаних режимів EMS і XMS. Більше того, обсяг пам'яті, доступної додаткам, завдяки механізму віртуальної пам'яті може бути більше розміру фізичної оперативної пам'яті.

Віртуальна пам'ять (virtual memory) являє собою програмно-апаратний засіб розширення простору пам'яті, що надається програмі як оперативна. Ця пам'ять фізично реалізується в оперативній і дисковій пам'яті під керуванням відповідної операційної системи. Віртуальний простір пам'яті розбито на сторінки фіксованого розміру, а у фізичної оперативної пам'яті в кожний момент часу присутня тільки частина з них. Інші сторінки зберігаються на диску, звідки операційна система може «підкачати» їх в фізичну пам'ять, попередньо вивантаживши на диск частину не використовуваних в даний момент модифікованих сторінок. Звернення процесора до комірки віртуальної пам'яті, яка присутня у фізичної пам'яті, відбувається звичайним способом. Якщо ж затребувана область в даний момент не відображена а фізичної пам'яті, процесор виробляє виключення (внутрішні переривання), за яким операційна система програмно організовує заміщення сторінок, яке називається свопінг (swapping). Віртуальну пам'ять підтримуються процесори, що працюють в захищеному режимі, починаючи з 80286, але реальне її широко стали застосовувати тільки в операційних системах і оболонках для 32-радрялних процесорів (80386+). Віртуальна пам'ять використовується лише за наявності додаткової пам'яті.

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

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








Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації