October 18 2017 12:24:25
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
СЕГМЕНТНАЯ МОДЕЛЬ ПАМЯТИ
ОСНОВЫ ПОСТРОЕНИЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ

Схема подключения ЗУ к ЦП в 20-разрядной МПС приведена на рис. 3.1. Согласно схеме память в данной МПС организована в 16 блоков, называемых сегментами. Каждый из сегментов имеет информационную емкость 64 КВ (216 байт). Адресация отдельного блока осуществляется с помощью дешифратора адреса, преобразующего код на линиях А16 — А19 в выходные сигналы img301 выборки сегментов памяти.

Системный подход к разработке программного обеспечения МПС предусматривали возможность размещения в блоках памяти следующих программных сегментов, названных логическими сегментами:

  1. кода;

  2. данных;

  3. стека;

  4. дополнительных данных.

Сегмент кода содержал непосредственно команды программы, сегмент данных — данные, сегмент стека — стек, дополнительный сегмент — дополнительные данные. Для адресации этих сегментов программы 20-разрядный микропроцессор имел специальные 16-разрядные сегментные регистры:

  1. Code Segment (CS) — сегмент кода;

  2. Data Segment (DS) — сегмент данных;

  3. Stack Segment (SS) — сегмент стека;

  4. Enhanced data Segment (ES) — сегмент дополнительных данных.

В этих регистрах хранились начальные адреса каждого из четырех перечисленных логических сегментов. Последние могли перекрываться — начинаться с одного и того же адреса. Это означало, что вся программа, содержащая команды, данные и стек размещалась в одном блоке памяти размером 64КВ.

Адреса программных сегментов (кода, данных, стека и дополнительных данных) логически представлялись в форме «сегмент : смещение». Реальный 20-разрядный адрес формировался с использованием сегментных регистров и образовывался двумя 16-разрядными величинами — адресом сегмента и адресом смещения. В пределах любого из сегментов 64К обращение к ячейкам памяти

img302

происходило с помощью 16-разрядного адреса смещения в сегменте, называемого также исполнительным адресом.

Полный 20-разрядный адрес получался путем сложения исполнительного адреса с величиной в сегментном регистре, сдвинутой на 4 разряда влево. Результат сложения, помещенный регистр, названный сумматором адреса, выводился затем на системную ША .



S S
Дополнение Код
2 F 8 4 0 hex
0010 1111 1000 0100 0000 bin






a)










Дополнение
S P
Код
0 0 5 3 2 hex
0000 0000 0101 0011 0000 bin






б)











SS + SP

Код
2 F D 7 2 hex
0010 1111 1101 0111 0010 bin






в)





Рис. 3.2

Рассмотрим следующий пример. Пусть логический адрес стека записан как 2F84:0532. Это значит, что регистр SP (указатель стека) хранит величину 0532, а сегментный регистр SS — 2F84. Для адресации конкретной ячейки памяти, выделенной под стек, содержимое 16-разрядного SS сдвигается на 4 разряда влево (см. рис. 3.2 а)), таким образом реальный 20-разрядный адрес сегмента стека начинается с 2F840. Это число складывается с 16-разрядным смещением 0532, старшие 4 разряда которого дополняются нулями (см. рис. 3.2 б)). В результате сложения образуется полный 20-разрядный адрес ячейки 2FD72 (см. рис. 3.2 в)).

Следует также отметить, что запись «сегмент : смещение» не является единственным обозначением для указания реального адреса. Например, все следующие логические адреса 0000:0123, 0002:0103, 0008:00А3, 0012:0003 указывают на один и тот же реальный адрес 00123.

С сегментами неразрывно связаны понятия ближней (near) и дальней (far) адресации в программах. При ближнем (внутрисегментном) обращении доступ к требуемой ячейке памяти осуществлялся только указанием смещения, а адрес сегмента определялся текущим содержимым соответствующего сегментного регистра. В программе, использующей дальнее (межсегментное) обращение к памяти, требовалось точное указание как адреса сегмента, так и смещения.

Известно, что долговременное энергонезависимое хранение программ и данных осуществляется не только в ПЗУ, но и в накопителях на гибких или жестких магнитных дисках в виде именованных групп данных — файлах. Также известно, что загрузка программ из накопителя в память и их выполнение осуществляется под управлением программного обеспечения, называемого операционной системой.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,255,334 уникальных посетителей