Мультиплексирование информационных линий

С повышением разрядности обрабатываемых слов и расширением объема памяти микропроцессору требуется все больше линий для передачи данных и адресов. Если для каждой линии выделять вывод микросхемы, потребуется чрезвычайно большое число выводов, которое часто просто невозможно сделать в корпусе ИС. Для того чтобы обходиться меньшим количеством выводов, в МП стали применять мультиплексирование линий ввода/вывода информации. Одним из первых МП, использующих мультиплексирование линий, стал МП Intel 8086. Так, для передачи адресов и данных в нем используется одна и та же 16-разрядная мультиплексная шина адреса/данных. В первый момент времени по шине передастся адрес, а в следующий – данные. Адрес заносится во внешний буферный регистр и хранится там в течение всего цикла работы МП с памятью или ВУ. При этом выходы буферного регистра связаны с ША микроЭВМ и обеспечивают работу этой шины.

В МП Intel 8086 применено мультиплексирование и для некоторых других выводов ИС. Часть выводов имеет двойное назначение. В одних режимах они используются для передачи одной информации, а в других те же выводы несут другую информацию.

Сегментация памяти

Производительность микроЭВМ и микропроцессорной системы в целом во многом определяется емкостью ОЗУ. При этом МП должен иметь возможность адресации всего объема ОЗУ, т.е. вычисления адресов ячеек памяти и передачи их по ША в ОЗУ. Так, например, для адресации ОЗУ емкостью 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). Местоположение ячейки памяти внутри сегмента определяется

Рис. 4.13. Сегментация памяти в МП Intel 8086

16-разрядным внутрисегментным адресом. Полный физический адрес ячейки памяти образуется сложением адреса сегмента с внутрисегментным адресом, которое выполняет сумматор шинного интерфейса. Если это адрес команды, то складываются содержимые сегментного регистра программы и программного счетчика, если это адрес операнда, то внутрисегментный адрес поступает из операционного устройства и складывается с содержимым сегментного регистра данных. Младшие 16 разрядов вычисленного адреса поступают на внешнюю шину адреса/данных. Для передачи четырех старших разрядов используются еще четыре линии, которые также работают в мультиплексном режиме.