Логическая структура оперативной памяти

Делится логическая структура оперативной памяти на несколько областей (зон, разделов):

1. Conventional memory – основная память;

2. UMA (Upper Memory Area) – верхняя память;

3. HMA (High Memory Area) – область верхней памяти или область верхних адресов;

4. XMS (eXtended Memory Specification) – дополнительная память;

5. EMS (Expanded Memory Specification) – расширенная память.

 

Зачем нужно разделение памяти на области? Тянется это еще с компьютеров PC/XT, когда рабочее пространство оперативной памяти составляло 1 Мбайт. Это пространство было разделено на области, в одну область грузились специальные программы DOS, в другую – все остальное. Деление, по началу было пополам: по 512 Кбайт для каждой области. Затем было решено, что для обслуживания системы вполне хватит 384 Кбайт. Это означало, что для всего остального оставалось уже 640 Кбайт. Сегодня объем оперативной памяти шагнул за сотни мегабайт, но деление осталось и еще более усложнилось.

Что бы рассказывать дальше о зонах памяти, необходимо сделать большое отступление. Оперативная память и адресное пространство – это не одно и тоже.

 

! Адресное пространство – это набор адресов, который может формировать процессор. Каждая ячейка памяти имеет адрес. И что бы считать (или записать) хранимую в ней информацию, надобно к ней обратится по ее адресу.

 


Адреса делятся на:

- виртуальные (логические)

- физические.

 

Физические адреса – это реальные адреса реальных ячеек памяти. Программы оперируют символьными именами, которые затем транслятором преобразовываются в виртуальные адреса. Потом виртуальные адреса преобразовываются в физические. Делается это аппаратным способом.

Логические адреса представляются в шестнадцатеричной форме и состоят из двух частей. Дело в том, что логически оперативная память разделена на сегменты. Так вот первая часть логического адреса – начало сегмента, а вторая – смещение от этого начала (сегмент:смещение). Выглядит это примерно так: D000:7FFF. Кстати, записать подобный адрес можно и по-другому, сложив обе части. Получим D7FFF – это будет полный, а точнее линейный адрес. Объем адресуемой памяти не безграничен. Он зависит от адресной шины процессора, а точнее от ее разрядности. В процессоре 8086 использовалась 20 разрядная адресная шина. Так как в компьютерах используется двоичная система, то возведя 2 в степень 20, получим максимальный адресуемый объем памяти для 8086 процессора. Это будет 1 048 576 байт или 1 Мбайт. Для современных процессоров максимальный адресуемый объем памяти равен 64 Гбайт.