Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Суть. Сегмент пам'яті

Скачати 22.31 Kb.

Суть. Сегмент пам'яті




Скачати 22.31 Kb.
Дата конвертації28.05.2017
Розмір22.31 Kb.

ДОДАТОК 4
Сегментна організації пам'яті в реальному режимі процесорів 80х86 та Pentium.

Суть.

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

В реальному режимі об'єм ОЗП дорівнює 1Мбайт, тому фізична адреса комірок пам'яті є 20-розрядною і, відповідно, фізична адреса сегменту є 20-розрядна. Розмір сегменту в реальному режимі - 64Кбайт, тому зміщення (адреса) комірки в сегменті є 16-розрядним. Фізичні адреси сегментів розміщають в спеціальних сегментних регістрах процесора, які мають назву CS,DS,SS,ES,GS та FS. Використання 20-розрядних сегментних регістрів привело б до великих незручностей, тому ці регістри були реалізовані як 16-розрядні. 20-розрядна фізична адреса сегменту формується шляхом зсуву вмісту сегментного регістру на 4-ри двійкові розряди вліво. Це означає, що фізичні адреси сегментів в реальному режимі кратні 16, тобто в двійковій системі числення мають 0 в чотирьох молодших розрядах, або в 16-річній системі числення 0 в молодшому розряді.

Регі́стр проце́сора - комірка швидкодійної внутрішньої пам'яті процесора, яка використовується для тимчасового збереження операндів, з якими безпосередньо проводяться обчислення, а також часто використовуваних даних з метою швидкого доступу до них.
Двійкова система числення - це позиційна система числення, база якої дорівнює двом та використовує для запису чисел тільки два символи: зазвичай 0 (нуль) та 1 (одиницю). Числа, представлені в цій системі часто називають двійковими або бінарними числами.
Таким чином для визначення фізичної адреси комірки ОЗП в реальному режимі завжди необхідно мати дві компоненти - вміст сегментного регістру (2 байта) та зміщення (2 байта). Ці дві компоненти мають назву логічної адреси комірки ОЗП. Загальноприйнято логічну адресу позначать наступним чином



Логічна адреса => База:зміщення

Наприклад, - 54a7h:1121h. Процесор автоматично обчислить наступну фізичну адресу комірки ОЗП

54a70h



1121h



=

55b91h


В переважній більшості команд в адресній частині задають лише зміщення в сегменті, а базу сегмента процесор вибирає із сегментного регістру. Для любої із таких команд жорстко визначено сегментний регістр, де знаходиться база сегменту. Таке визначення називають визначенням по замовчуванню. Так для команд обробки даних в пам'яті сегментним регістром по замовчуванню є регістр DS.
Обро́бка да́них - систематична цілеспрямована послідовність дій над даними. Обробка даних містить в собі множину різних операцій.
Для команд роботи із стеком - регістр SS, для адресації рядка-приймача в ланцюгових командах - регістр ES. В багатьох випадках можливо явно указати сегментний регістр за допомогою спеціального префікса заміни сегментного регістра. Більш докладніше див. Додаток 5.

В розглянутій сегментній організації пам'яті лічильник команд також задає логічну адресу, де база сегменту міститься в регістрі CS, а зміщення в сегменті міститься в регістрі IP.

Лічильник команд, програмний лічильник, вказівник на поточну команду (англ. program counter, instruction pointer) - в архітектурі комп'ютера спеціалізований регістр процесора, за допомогою якого визначається, яка команда програми буде виконуватись процесором наступною (або яка поточна команда ним виконується - залежно від прийнятого в тій чи інший архітектурі правила щодо завантаження лічильника).



Переваги.

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

Обчи́слювальна систе́ма (англ. computer system) - сукупність ЕОМ та їх програмного забезпечення, що призначені для організації ефективного обчислювального процесу;



Недоліки. Сегментна організація пам'яті ускладнює програмування, особливо на мові Асемблера, і є додатковим потенційним джерелом помилок в програмах.


Скачати 22.31 Kb.

  • Недоліки.