Преимущества сегментации в микропроцессоре 8086
Каковы преимущества сегментации в микропроцессоре 8086? Не понимая важность сегментации. Это для управления большим количеством памяти?
1 ответ
Набор команд, используемый в 8086, является 16-битным набором команд. Это означает, что регистр может хранить только значения в диапазоне от 0x0000 до 0xFFFF, а инструкции в основном выполняли только 16-битные операции (16-битное сложение, 16-битное вычитание и т. Д.). Если регистр содержит адрес / указатель, то он работал бы с максимальным объемом адресного пространства 64 КБ (некоторые для ПЗУ, некоторые для ОЗУ), и этого было недостаточно для рынка в то время.
Сегментация позволила 16-разрядному ЦП поддерживать большее адресное пространство. По сути, объединение двух 16-битных регистров, так что адреса / указатели могут быть намного больше. К сожалению (вероятно, чтобы избежать "ненужных в то время" затрат на наличие большего количества адресных линий на шине ЦП), вместо того, чтобы использовать два 16-разрядных регистра в качестве 32-разрядного адреса, Intel сделала "адрес = сегмент * 16 + смещение". В итоге получился 20-битный адрес, который дал 8086 адресное пространство в 1 МБ.
Позже (в начале 1980-х) произошел переход к "защищенным объектам", где "объектам" (в объектно-ориентированном программировании) могли быть предоставлены средства управления доступом и ограничения, которые навязывались / проверялись аппаратными средствами, и примерно в то же время существовала "виртуальная память". идеи плавают вокруг. Эти идеи привели к злополучному процессору iAPX 432; но также привел к идее связать защиту (атрибуты и ограничения) с сегментами, которые уже были у 8086, что привело к "защищенному режиму", введенному в 80286 (и расширенном в 80386).
По существу; первоначальная причина (преимущество) сегментов заключалась в увеличении адресного пространства (без затрат на набор 32-битных команд и т. д.); и такие вещи, как защита и управление памятью, впоследствии были модернизированы (а затем едва использовались программным обеспечением, а затем были отброшены в пользу подкачки).
Ответ
- Объем памяти разделен на сегменты разного размера.
- Сегмент - это просто область памяти.
- Такой процесс разделения памяти называется сегментацией.
- данные ----> байты -----> конкретный адрес.
- 8086 имеет 20-строчную адресную шину.
- 2^20 байт = 1 МБ
4 типа сегментов
- Сегмент кода
- Сегмент данных
- Сегмент стека
- Дополнительный сегмент
К каждому из этих сегментов адресуется адрес, хранящийся в соответствующем сегменте адреса.
- регистры имеют размер 16 бит.
- сохранить базовый адрес соответствующих сегментов и сохранить старшие 16 бит.