Cтраница 3
Выборка строки таблицы страниц предшествует обращению к странице. Когда строка таблицы страниц из неактивной становится активной, ее выборке предшествует выборка соответствующей строки таблицы сегментов. [31]
Строка таблицы страниц определяет доступность страницы и содержит старшие биты реального адреса. Формат строки таблицы страниц зависит от размера страницы. [32]
Если неактивная, выделенная и недействительная строка таблицы становится действительной, это изменение сказывается мгновенно. Аналогично, если неактивная, невыделенная и действительная строка таблицы страниц становится выделенной, вследствие того что неактивная, выделенная, но недействительная строка таблицы сегментов становится действительной, то это изменение также сказывается мгновенно. [33]
Когда бит I строки в таблице сегментов является единицей, признак результата устанавливается в 1, а истинный адрес строки таблицы сегментов помещается в регистр, заданный полем RI. Когда бит I строки таблицы страниц является единицей, код признака результата устанавливается равным 2, а истинный адрес строки таблицы страниц помещается в регистр, заданный полем Ri. Если строка таблицы сегментов или таблицы страниц находится вне таблицы, то устанавливается признак результата 3, а регистр, заданный полем Ri, в этом случае содержит истинный адрес строки, к которой произошло бы обращение, если не имело-бы места нарушение длины. Во всех этих случаях 24-битовый адрес помещается на позиции 8 - 31 этого регистра, а левые 8 битов этого регистра устанавливаются в нуль. [34]
Эта строка определяет таблицу страниц, которую следует использовать. Индекс страницы в логическом адресе используется для выбора строки таблицы страниц. Эта строка, формат которой зависит от размера страницы, содержит старшие биты реального адреса, соответствующего исходному логическому адресу. Индекс байтов в логическом адресе используется без изменения в качестве младшей части реального адреса. [35]
Когда неактивная присоединенная и недоступная строка таблицы становится доступной, это изменение состояния сказывается немедленно. Точно так же изменение состояния сказывается немедленно, когда неактивная неприсоединенная и доступная строка таблицы страниц становится присоединенной вследствие того, что неактивная присоединенная и доступная строка таблицы сегментов становится доступной. [36]
Размер сегмента определяет количество строк таблицы сегментов, к которым можно обратиться в процессе динамической переадресации. От размера страницы и размера сегмента зависит возможность выбора строки таблицы страниц и, следовательно, зависит, будет ли строка присоединенной. [37]
Когда бит I строки в таблице сегментов является единицей, признак результата устанавливается в 1, а истинный адрес строки таблицы сегментов помещается в регистр, заданный полем RI. Когда бит I строки таблицы страниц является единицей, код признака результата устанавливается равным 2, а истинный адрес строки таблицы страниц помещается в регистр, заданный полем Ri. Если строка таблицы сегментов или таблицы страниц находится вне таблицы, то устанавливается признак результата 3, а регистр, заданный полем Ri, в этом случае содержит истинный адрес строки, к которой произошло бы обращение, если не имело-бы места нарушение длины. Во всех этих случаях 24-битовый адрес помещается на позиции 8 - 31 этого регистра, а левые 8 битов этого регистра устанавливаются в нуль. [38]
Следует отметить, что нет необходимости очищать TLB в процессоре, в котором недоступная строка таблицы страниц, ранее неактивная, становится доступной без введения промежуточных доступных значений этой строки. Точно так же нет необходимости очищать TLB в процессоре, в котором недоступная строка таблицы сегментов и все присоединенные к ней строки таблицы страниц были неактивными, если эта строка таблицы страниц становится доступной без введения промежуточных доступных значений этой строки. [39]
Код длины таблицы сегментов и код длины таблицы страниц, превышающие максимальный используемый код длины, считаются действительными. Например, код длины считается действительным даже в том случае, если конец таблицы выхо дит за пределы доступной основной памяти или если часть таблицы нельзя адресовать логическими адресами. Состояние самого младшего бита, содержащегося в строке таблицы страниц, не определено и не проверяется на равенство нулю; этот разряд может быть использован при программировании. [40]
В TLB может храниться более одной копии строки таблицы. Например, в некоторых реализациях TLB в него заносится копия доступной строки таблицы для каждого адреса таблицы сегментов, по которому эта строка становится присоединенной. В то же время в других реализациях TLB доступная строка таблицы страниц попадает в TLB для каждой присоединенной и доступной строки таблицы сегментов, которая указывает на данную строку таблицы страниц. [41]
В TLB может находиться более одной копии строки таблицы. Например, в некоторых реализациях TLB может производиться занесение в TLB копии действительной строки таблицы для каждого адреса таблицы сегментов, в результате чего строка делается выделенной для использования. В то же время в других реализациях 1LB может производиться занесение в TLB действительной строки таблицы страниц для каждой действительной и выделенной строки таблицы сегментов, с помощью которой определяется данная строка таблицы страниц. [42]
В TLB может храниться более одной копии строки таблицы. Например, в некоторых реализациях TLB в него заносится копия доступной строки таблицы для каждого адреса таблицы сегментов, по которому эта строка становится присоединенной. В то же время в других реализациях TLB доступная строка таблицы страниц попадает в TLB для каждой присоединенной и доступной строки таблицы сегментов, которая указывает на данную строку таблицы страниц. [43]
В TLB может находиться более одной копии строки таблицы. Например, в некоторых реализациях TLB может производиться занесение в TLB копии действительной строки таблицы для каждого адреса таблицы сегментов, в результате чего строка делается выделенной для использования. В то же время в других реализациях 1LB может производиться занесение в TLB действительной строки таблицы страниц для каждой действительной и выделенной строки таблицы сегментов, с помощью которой определяется данная строка таблицы страниц. [44]
Начало расположения таблицы сегментов в оперативной памяти находится также в некотором управляющем регистре. Этот адрес можно задавать программно и, следовательно, таблицу сегментов можно поместить на любое физическое место оперативной памяти. Каждая строка таблицы сегментов занимает 4 байта ( 32 разряда) и содержит информацию о длине и начальном адресе таблицы страниц, входящих в состав данного сегмента. Каждая строка таблицы страниц состоит из двух байт ( 16 разрядов) и содержит информацию о старших разрядах физического адреса соответствующего логическому адресу. Сами таблицы страниц могут быть довольно произвольным образом размещены в оперативной памяти. [45]