Cтраница 4
Для того чтобы избежать всякий раз, когда это возможно, таких длительных вычислений, в машине можно предусмотреть набор быстрых ассоциативных регистров, в которых временно будет запоминаться физическое размещение виртуальных адресов ( адресов сегментов и страниц), обрабатывавшихся совсем недавно. При этом, если номер сегмента и страницы, указанный в адресе, интерпретируемом аппаратурой, равен номеру сегмента и страницы в одном из ассоциативных регистров, для получения фактического физического адреса необходимо только прибавить смещение к начальному. Такое многоуровневое обращение к памяти, необходимое для вычисления любого адреса, должно выполняться быстро. Требуемая для этого аппаратура увеличивает стоимость процессора и даже при наличии очень быстрых запоминающих ассоциативных регистров быстродействие машины несколько снижается. [46]
Сегментированная память содержит страничные сегменты. Каждый виртуальный адрес содержит 2-битный номер сегмента, 2-битный номер страницы и 11-битное смещение внутри страницы. Основная память содержит 32 Кбайт, которые разделены на страницы по 2 Кбайт. Каждый сегмент разрешается либо только читать, либо читать и выполнять, либо читать и записывать, либо читать, записывать и выполнять. [47]
Может оказаться, что страница, к которой происходит обращение, принадлежит сегменту предыдущего обращения к ОП. В аппаратуре преобразования адресов сохраняются номер сегмента и адрес начала его страничной таблицы для предыдущего обращения. [48]
Пусть общий регистр 6 содержит номер искомого сегмента таблицы, в данном случае сегмента 5; в табл. 14.3 представлены величины, полученные при сдвиге. Коэффициент, на который должен быть умножен номер табличного элемента, представляет собой длину в байтах каждого элемента таблицы. [49]
Все таблицы сегментов различных пользователей хранятся в оперативной памяти, при активизации некоторой программы пользователя супервайзер засылает в специальный регистр начальный адрес таблицы сегментов, принадлежащий этому пользователю. Содержимое этого регистра прибавляется к номеру сегмента и используется для входа в таблицу сегментов. [50]