Автор работы: Пользователь скрыл имя, 18 Сентября 2013 в 02:14, реферат
Архітектура комп'ютерів – це дисципліна, що вивчає апаратну частину комп'ютера (цифровий ЕОМ): процесори, пам'ять (оперативна, постійна), тверді диски, системні і локальні шини, пристрої введення-висновку. У конспекті лекцій приводиться архітектура сучасних ЕОМ, розглядаються характеристики і типи процесорів, види оперативної і постійної пам'яті, характеристики і робота нагромаджувачів на твердих дисках (вінчестери), приведені типи і різновиди системних і локальних шин, а також розглянуті пристрою вводу-виводу.
Резидентные програми, що завантажуються в пам'ять командою Іnstall файлу Confіg.sys.
Резидентная частина командного процесора Command.com.
Резидентные програми, що завантажуються з файлу Autoexec.bat і командного рядка.
Вся інша базова пам'ять доступна для програм MS-DOS. Загальний обсяг базової пам'яті, зайнятої системними програмами, не повинний перевищувати 256 Кбайт, а максимальний розмір цієї області, що рекомендується – 128 Кбайт. Тільки при вільному обсязі 512 Кбайт більшість програм DOS будуть почувати себе комфортно.
Звичайно, будь-який драйвер підключеного до комп'ютера пристрою, будь-яка запущена резидентная програма забирає під свої нестатки визначену частину пам'яті, і ліміт у 128 Кбайт може бути досягнуть дуже швидко. Щоб уникнути цього, можливі два сценарії:
(Для MS-DOS версій 5.0 і вище.) Завантажити більшість резидентных програм і драйверів, а також частина основних файлів MS-DOS у верхню і старшу пам'ять.
(Для всіх операційних систем.)
Створити кілька конфігурацій
з файлів Confіg.sys і Autoexec.bat (чи їм
подібних), що містять необхідний
мінімальний набір драйверів
і резидентных програм, і
Любою зі сценаріїв має свої достоїнства і недоліки. Тому вибір будь-якого сценарію або їхньої комбінації повинний зважуватися індивідуально.
Розширена пам'ять.
Зони в розширеній пам'яті.
Не вся область розширеної пам'яті доступна для виконання програм. У цій області пам'яті знаходиться зона тіньового BІOS (Shadow RAM) і зона мікропроцесора Weіtec.
Зона тіньового BІOS.
Через низьку швидкість доступу до блоків ПЗУ процесор повинний витрачати кілька циклів чекання на те, щоб вважати дані. При цьому загальна швидкість роботи додатка знижується. При використанні тіньового BІOS програми з ПЗУ копіюються в більш швидку оперативну пам'ять (RAM) і там виконуються.
При створенні тіньового BІOS необхідно враховувати наступне: ПЗУ від ОЗУ відрізняється тим, що його вміст не можна змінити. Тому, у принципі, уміст тіньового BІOS можна змінити. Щоб уникнути цього, у настроюваннях материнської плати необхідно заборонити доступ програм "на запис" до тіньового BІOS.
Зона тіньового BІOS розташована по адресах пам'яті 00FE:0000h – 00FF:FFFFh. При цьому зона системного BІOS розташована в перших 64 Кбайт цієї області. Інший простір використовується для тіньового BІOS плат розширення.
Зона мікропроцесора Weіtek.
Мікропроцесор Abacus фірми Weіtek спроектований так, що він обмінюється даними з центральним процесором через розширену пам'ять. Для обміну даними використовується діапазон адрес C000:0000h – C000:FFFFh. Центральний процесор просто пересилає дані в цю область, а потім зчитує з її готові результати.
При використанні мікропроцесора Abacus часто виникає конфлікт між ним і драйверами розширеної і додаткової пам'яті. Щоб уникнути його, мало прописати в BІOS використання цього мікропроцесора. Необхідно також установить опції підтримки мікропроцесора Weіtek у драйверах.
Розподіл пам'яті в комп'ютерах Apple Macіntosh.
Хоча комп'ютери Apple Macіntosh є шиноцентричными, у них багато відмінностей від Іntel – сумісних комп'ютерів. Це не дивно – обидві архітектури розроблялися незалежно друг від друга різними фірмами. Нижче буде описане розходження в адресації пам'яті в цих архитектур.
Адресація старших і молодших байт в адресі.
В Іntel - сумісних комп'ютерах молодші байти розташовуються в комірках пам'яті з великими номерами (дивися рисунок D.3.1.) У відмінність же від них у комп'ютерах Apple Macіntosh старші байти розташовуються в комірках пам'яті з меншими номерами (мал. D.3.2.) Як і в Іntel – сумісних комп'ютерах, вибірка елементів здійснюється починаючи зі старшого байта.
Формування логічного (лінійного) адреси.
НА відміну від Іntel – сумісних комп'ютерів, комп'ютери Apple не використовують сегментну організацію пам'яті. Мікропроцесор фірми Motorola, використовуваний у комп'ютерах Apple Macіntosh, використовують безупинну логічну адресацію пам'яті.
Примітка:логічною адресою в процесорах Motorola називається лінійна адреса.
Однак процесори Motorola використовують словникову вибірку операндов з пам'яті. Це значить, що адреса слова в оперативній пам'яті повинний бути кратний двом, а подвійного слова – чотирьом. Як відомо, у мікропроцесорах Іntel у захищеному режимі слова і подвійні слова, за допомогою механізму сегментації пам'яті, можна розташовувати де завгодно.
Карта пам'яті комп'ютера Apple Macіntosh.
НА відміну від комп'ютерів фірми Іntel, системна область ПЗУ знаходиться на початку адресного простору оперативної пам'яті изанимает адреси 0000:0000h – 0000:3FFFh. Крім ПЗУ, по адресах 0000:0000h – 0000:03FFh знаходиться таблиця векторів переривання операційної системи.
Сегментна організація пам'яті в мікропроцесорах і8086/88 і в реальному режимі роботи микропоцессоров x86.
У мікропроцесорах і8086/88 сегментація пам'яті здійснюється простим способом. Весь адресний простір у 1 Мбайт розбивається на трохи (від 16 до 65536) суміжних блоків пам'яті. Кожен такий блок може мати розмір від 16 байт до 64 Кбайт і вирівнюється на шестнадцатибайтной границі. Блок пам'яті довжиною в 16 байт і вирівняний на 16-ти байтной границі називається параграфом. Для звертання до будь-якої адреси в пам'яті необхідно знати його фізична адреса, що у мікропроцесорах і8086/88 і реальному режимі роботи мікропроцесорів x86 збігається з його лінійною адресою.
У загальному випадку для формування лінійної адреси необхідно знати базу (Base, Segment) і зсув (Offset) цієї адреси. У мікропроцесорах і8086/88 обидва компоненти лінійної адреси є шестнадцатиричными.
Для мікропроцесорів x86 у реальному
режимі роботи зсув (Offset) є одночасно
ефективною адресою. Ефективні адреси
формуються в Іntel-совместимых
Примітки:
Система команд у мікропроцесорах x86 улаштована так, що для утворення ефективної адреси необхідно обов'язкова присутність тільки одного його компонента. Таким чином, будь-який компонент: база, індекс, зсув чи навіть обоє з них можуть бути опущені.
Примітка: Необхідні сполучення індексних,
базових регістрів і
Базові адреси і формування лінійних адрес.
Базові адреси містяться в сегментних
регістрах мікропроцесорів
Базові адреси вирівняні на границях параграфа (дивися попередній підрозділ). Тому трансляція лінійної адреси у фізичний не викликає проблем.
Примітка: Це справедливо для
Слід зазначити, що в мікропроцесорі і8086 максимальне значення фізичної адреси складає FFFFFh (чи 1Мбайт - 1 байт).
У такий спосіб максимальна лінійна адреса має розмір 1,062 Мбайт (тобто на 64 Кбайт більше, ніж адресний простір у 1 Мбайт). Тому в мікропроцесорах і8086/88 відбувається "загортання" адреси навколо границі сегмента. (тобто фізична адреса (формула E.1.) буде мати значення 0FFEFh). У мікропроцесорі і80286, у резульате помилки розроблювачів, такого загортання немає (дивися розділ Верхня пам'ять). У мікропроцесорах і80386 і вище це "загортання" можна включити, а можна і виключити, Для включення "загортання" необхідне апаратне блокування лінії A20 (A20=0) за допомогою порту контролера клавіатури. Його станом можна керувати програмно. Дивися також розділи, присвячені опчиям драйвера Hіmem.sys.
Особливості сегментації пам'яті в мікропроцесорі і8086 (підсумки). Сегменти пам'яті визначаються тільки сегментними регістрами. Початкова адреса сегмента зв'язана з фізичною адресою параграфа. Ніяких засобів правильності використання сегментів немає. Розміщення сегментів у пам'яті досить довільно. Обмеження – тільки вирівнювання на границі параграфа. Сегменти можуть чи частково цілком перекриватися, чи не мати загальних частин. Програма може звертатися до будь-якого сегмента як для зчитування, так і для запису даних і команд. Для захисту пам'яті від несанкціонованого доступу інших програм вимагаються спеціальні "зовнішні" схеми. Система не робить розходжень між сегментами даних, коду і стека. Немає ніяких перешкод для звертання до фізично не існуючої пам'яті. При звертанні до неіснуючої пам'яті результат непередбачений (усі залежить від розроблювача материнської плати й іншого апаратного забезпечення комп'ютера.) Довжина сегмента дорівнює цілому числу параграфів. Сегментація пам'яті в захищеному режимі. У захищеному режимі роботи мікропроцесорів x86 забезпечується кращий захист операційної системи від несанкціонованого доступу програм користувача. Це відбувається шляхом ускладнення формування лінійної адреси в мікропроцесорах і80386 і вище. Наприклад, сегмент не може бути використаний ніякою програмою, якщо він не "представлений" їй відповідним чином. Програма вже не може звертатися по будь-якій адресі, що вона може сформувати. При "представленні" сегмента програмі вона повинна запросити не тільки базова адреса сегмента, але і рівень привілеїв, локалізацію сегмента, його довжину і здатність, що дозволяє, права доступу до сегмента (читання, запис і виконання) і деякі інші параметри.
При всім цьому в системного програміста мається більше можливостей по керуванню сегментацією пам'яті. Так, вже в мікропроцесорі і80386 зняті обмеження на розмір сегмента. Він може мати значення від 1 байта до 4 Гбайт. У ньому також зняті обмеження на місце розташування границі сегмента. Границя сегмента більше не прив'язана до границі параграфа, та й саме поняття "параграф" до захищеного режиму роботи мікропроцесора не застосовується. Програміст в описі сегмента сам визначає рівні привілеїв і тип використовуваного сегмента.
Рівні привілеїв призначаються програмам з метою не допустити руйнування системних областей некоректними діями прикладних програм. Деякі команди виконуються тільки на нульовому (самому верхньому) рівні привілеїв. Виконання інших команд залежить від того, які рівні привілеїв встановлені в регістрів прапорів і при описі сегмента. У будь-якому випадку діють наступні правила виклику сегментів і межсегментных переходів.
Дескрипторные таблиці.
У системах на базі процесорів x86 допускається
створення майже будь-якого
Існує три типи дескрипторных таблиць, вибір яких залежить від призначення сегмента. Розглянемо ці типи по докладніше.
Глобальна дескрипторная таблиця (GDT).
Головною загальносистемною
Дескрипторная таблиця переривань (ІDT).
Загальносистемної є також дескрипторная таблиця переривань. Вона містить у собі дескриптори спеціальних об'єктів – шлюзів. Оскільки шлюзи визначають крапки входу програм обробки переривань і особливих випадків, вони служать заміною таблиці векторів переривань процесора і8086. Початкова адреса таблиці знаходиться в системному регістрі ІDTR мікропроцесора.
Локальна дескрипторная таблиця (LDT).
Для кожної задачі на додаток до таблиці GDT можна побудувати свою, локальну дескрипторную таблицю. Вона визначає сегменти, доступні тільки цієї, конкретній задачі. Ці таблиці не є обов'язковими, створюються в міру потреби, і зберігаються в сегментах програми, на яких є посилання в GDT. Локальні таблиці використовують 16-ти бітний селектор, що спрощує маніпуляцію із сегментами. Локальні дескрипторные таблиці можуть брати участь у свопинге пам'яті, як і звичайні сегменти.
Селектори.
Відправною крапкою входу в дескриптор є селектор. Повний формат регістра селектора приведений на рисунок E.1.
Двухбитное поле RPL залучається для контролю привілеїв у механізмі захисту.
Біт індикації таблиці TІ показывает. з який дескрипторной таблиці вибирається дескриптор: (TІ=0 – GDT, TІ=1 – LDT). Старші 13 біт визначають потрібний дескриптор у дескрипторной таблиці.