Мікросхеми ROM

ROM (Read-Only Memory) — тип пам'яті, яка може постійно (або практично постійно) зберігати дані. Ці записані дані зберігаються в пам'яті навіть при відключенні живлення. Таким чином, для зберігання стартових процедур (і BIOS) найбільш підходить пам'ять ROM. Аналогічна пам'ять використовується і в інших пристроях з власною BIOS, наприклад у відеоадаптерах.

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

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

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

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

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

На платах адаптерів, для яких при запуску потрібні драйвери, також розміщені мікросхеми ROM. Це відеоадаптери, більшість плати SCSI (Small Computer Systems Interface), плата контроллерів Enhanced IDE і деякі мережеві плати. Мікросхема ROM на цій платі містить драйвери і програми запуску, які будуть виконані при початковому завантаженні. Наприклад, відеоадаптер може ініціалізуватися, не дивлячись на те що ROM на системній плати не містить драйверів для цього пристрою. Не можна завантажувати початкові драйвери режиму VGA з диска, тому що екран залишатиметься темним (і ви не зможете управляти процесом завантаження), поки не завантажаться ці драйвери. Що ж відбувається при завантаженні? Програма, що зберігається в ROM системної плати, сканує спеціальну область адаптера ROM оперативної пам'яті (адреси C0000-DFFFFh) у пошуках пари байт сигнатури (55AAh), яка указує на початок ROM. Базова система вводу-виводу системної плати автоматично виконує програми в ROM будь-якого адаптера, який вона знаходить в процесі сканування. Процес виявлення і ініціалізації відеоадаптера можна спостерігати в більшості комп'ютерів при включенні живлення і під час виконання POST.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: