Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вроді Панашій.docx
Скачиваний:
7
Добавлен:
18.07.2019
Размер:
212.02 Кб
Скачать

Мікросхеми rom

Пам'ять типу ROM(Read Only Memory) може постійно(чи практично постійно)

зберігати дані. Ці записані дані зберігаються в пам'яті навіть при відключенні живлення.

Таким чином, для зберігання стартових процедур(і BIOS) найбільш підходить пам'ять ROM.

Аналогічна пам'ять використовується і в інших пристроях з власною BIOS, наприклад в

відеоадаптерах.

Зверніть увагу, що ROM і оперативна пам'ять — не протилежні поняття. Насправді

ROM є частиною оперативної пам'яті системи. Іншими словами, частина адресного простори оперативної пам'яті відводиться для ROM. Це необхідно для зберігання

програмного забезпечення, яке дозволяє завантажити операційну систему.

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

Зазвичай першою адресою ROM системи є F0000h, розташований за 64 або

128 Кбайт від кінця першого мегабайта. Оскільки місткість ROM зазвичай дорівнює 128 Кбайт програми ROM повністю займають останні 128 Кбайт першого мегабайта, включаючи критический адреса FFFF0h першої команди запуску. Місткість сучасних мікросхем ROM може досягати 256 або 512 Кбайт. Такий збільшений об'єм дозволяє розташовувати драйвіра інтегрованих на системній платі пристроїв.

На мал. 5.2 показана карта розподілу першого мегабайта пам'яті.

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

програми; у більшості випадків воно близьке до адреси F0000h, яка розташована при

мірно на 64 Кбайт раніше в карті пам'яті. Це все одно що починати читання книги з 16 й стрницы від кінця; причому на ній має бути вказаний номер сторінки, з якою фактично начинается виклад. Зате подібна угода дозволяє вільно змінювати об'єм ROM.

Основний код BIOS міститься в мікросхемі ROM на системній платі, але на платах

адаптерів також є аналогічні мікросхеми. Вони містять допоміжні подпрограми BIOS і драйвери, необхідні для конкретної плати, особливо для тих плат, которые мають бути активізовані на ранньому етапі початкового завантаження, наприклад для відео

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

На платах адаптерів, для яких при запуску потрібно драйвери, також розміщені

мікросхеми ROM. Це відеоадаптери, більшість плат SCSI (Small Computer Systems In

terface), плати контроллерів ATA і деякі мережеві плати. Мікросхема ROM на цих

платах містить драйвери і програми запуску, які будуть виконані при початковій

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

Адреси ПЗП усіх адаптерів повинні починатися з 55AAh; інакше системна

плата просто їх не розпізнає. Третій байт вказує розмір ПЗП в одиницях, кратних 512

байтам, які називаються абзацами, а четвертий байт відповідає фактичному початку

драйверів. Байт розміру використовується ПЗП системної плати в цілях тестування. ПЗП

системної плати додає усі байти в ПЗП, після чого ділить отриману суму на количество байтів. Залишок від ділення має дорівнювати 100h. Тому при написанні програми

для ПЗП адаптера програміст зазвичай використовує байт " заповнення", що дозволяє підлозічить необхідну контрольну суму. Використовуючи значення контрольної суми, системна

плата перевіряє ПЗП кожного адаптера під час виконання процедури POST.

Базова система введення-виведення системної плати автоматично виконує програми в

ROM будь-якого адаптера, який вона знаходить в процесі сканування. Процес виявлення

і ініціалізації відеоадаптера можна спостерігати у більшості комп'ютерів при включені живлення і під час виконання POST.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]