Сегментація пам’яті

Продуктивність мікроЕОМ і мікропроцесорної системи в цілому багато в чому визначається ємністю ОЗУ. При цьому МП повинен мати можливість адресації всього обсягу ОЗУ, тобто обчислення адрес комірок пам’яті і передачі їх по ША в ОЗУ. Так, наприклад, для адресації ОЗУ ємністю 1 Мбайт (220 байт) потрібно обчислення 20-раз-рядних двійкових чисел – адрес комірок ОЗУ і передача їх в ОЗУ по шині адреси.

У той же час архітектура МП і розрядність його регістрів визначається довжиною оброблюваних слів і зазвичай вона складає число, кратне восьми – 1 байту. Так, МП Intel 8086, так само як і багато інших, забезпечує обробку 16-розрядних слів і всі його регістри, в тому числі і адресні, 16-розрядні. Для розширення адресного простору МП застосовують механізм сегментації пам’яті. МП розглядає весь обсяг пам’яті як набір сегментів пам’яті (рис. 4.13).

Сегмент – це частина пам’яті такого обсягу, адресація якого можлива за допомогою одного регістра МП. Таким чином, розрядність регістрів МП визначає розмір сегментів пам’яті. Так, наприклад, для 16-розрядних МП це 64 Кбайт, тобто 216 байт. Виділення сегмента здійснюється визначенням його початкової адреси, або бази сегмента. У МП Intel 8086 для виділення сегментів є чотири спеціальних сегментних регістра – CS, DS, SS, ES. Регістр CS містить початкову адресу сегмента програми, DS – сегмента даних, SS – сегмента стека, a ES – додаткового сегмента. Ці регістри, так само як і всі інші регістри МП, 16-розрядні, і в них не можна записати всі розряди початкової адреси. Тому в них завантажуються 16 старших розрядів початкової адреси сегмента. Решта молодші розряди адреси вважаються рівними нулю. МП Intel 8086 має адресний простір, рівне 1 Мбайту, і рівними нулю вважаються чотири молодших розряду адреси сегмента. Всього МП Intel 8086 одночасно працює з чотирма сегментами, які можуть бути як суміжними, так і перекриваються. В останньому випадку одні й ті ж комірки пам’яті можуть бути адресовані як в одному, так і в іншому сегментах (див. Рис. 4.13). Місцезнаходження комірки пам’яті всередині сегмента визначається 16-розрядних внутрисегментного адресою. Повний фізичну адресу комірки пам’яті утворюється складанням адреси сегмента з внутрисегментного адресою, яке виконує суматор шинного інтерфейсу. Якщо це адресу команди, то складаються вміст сегментного регістра програми та програмного лічильника, якщо це адреса операнда, то внутрішньосегментний адреса надходить з операційного пристрою і складається з вмістом сегментного регістра даних. Молодші 16 розрядів обчисленого адреси надходять на зовнішню шину адреси / даних. Для передачі чотирьох старших розрядів використовуються ще чотири лінії, які також працюють в мультиплексному режимі.


1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)

Сегментація пам’яті