Cтраница 1
Буфер быстрого преобразования адреса на машинах VAX не содержит бита R. [1]
![]() |
Простейший вариант буфера быстрого преобразования адреса ( TLB. [2] |
Адреса 16 наиболее часто использующихся страниц хранятся в буфере быстрого преобразования адреса. Программы, у которых рабочий набор меньше размера буфера TLB, будут хранить адреса всего рабочего набора в буфере TLB и, следовательно, будут работать эффективно. Если страница не находится в буфере быстрого преобразования адреса, фактически происходит обращение к дескриптору и таблице страниц, чтобы найти адрес страничного блока, и буфер TLB обновляется, чтобы включить эту страницу. При этом выгружается страница, не использовавшаяся дольше всего. Поле возраста хранит информацию о том, какая из записей использовалась наиболее давно. Причиной для применения буфера TLB служит обеспечиваемое им параллельное сравнение сегментов и номеров страниц всех записей. [3]
![]() |
Буфер быстрого преобразования памяти для увеличения скорости страничной подкачки. [4] |
Интересная ситуация получается, если номер виртуальной страницы не находится в буфере быстрого преобразования адреса. Диспетчер памяти обнаруживает отсутствие страницы и выполняет обычный поиск в таблице страниц. Затем он удаляет одну из записей из буфера TLB и заменяет ее только что найденной записью из таблицы страниц. Таким образом, если эта страница снова вскоре будет затребована, во второй раз поиск окажется успешным, а не неудачным. Когда запись удаляется из буфера быстрого преобразования адреса, бит изменения копируется в запись таблицы страниц в памяти. Другие величины уже находятся там. Когда буфер TLB загружается из таблицы страниц, все поля берутся из памяти. [5]
![]() |
Буфер быстрого преобразования памяти для увеличения скорости страничной подкачки. [6] |
Интересная ситуация получается, если номер виртуальной страницы не находится в буфере быстрого преобразования адреса. Диспетчер памяти обнаруживает отсутствие страницы и выполняет обычный поиск в таблице страниц. Затем он удаляет одну из записей из буфера TLB и заменяет ее только что найденной записью из таблицы страниц. Таким образом, если эта страница снова вскоре будет затребована, во второй раз поиск окажется успешным, а не неудачным. Когда запись удаляется из буфера быстрого преобразования адреса, бит изменения копируется в запись таблицы страниц в памяти. Другие величины уже находятся там. Когда буфер TLB загружается из таблицы страниц, все паля берутся из памяти. [7]
Чтобы избежать создания повторных обращений к памяти, система Pentium, как и система MULTICS, имеет небольшой буфер быстрого преобразования адреса ( TLB), который напрямую отображает наиболее часто использующиеся комбинации Каталог-Страница на физический адрес страничного блока. Только когда текущая комбинация отсутствует в буфере TLB, действительно выполняется механизм, показанный на рис. 4.43, и буфер TLB обновляется. Система обладает хорошей производительностью до тех пор, пока обращения к отсутствующим страницам в буфере TLB происходят относительно редко. [8]
![]() |
Буфер быстрого преобразования памяти для увеличения скорости страничной подкачки. [9] |
До сих пор мы предполагали, что каждая машина со страничной виртуальной памятью имеет таблицы страниц, распознаваемые аппаратным обеспечением и буфером быстрого преобразования адреса. Передача управления операционной системе происходит только тогда, когда страница отсутствует в памяти. [10]
Как можно заметить, обработка прерываний является далеко не простым делом. На некоторых машинах буфер быстрого преобразования адреса TLB и кэш центрального процессора также требуют управления при переключении режимов пользователя и ядра, для чего необходимы дополнительные машинные циклы. [11]
В результате принятого решения компьютер снабжается небольшим аппаратным устройством, служащим для отображения виртуальных адресов в физические без прохода по таблице страниц. Это устройство, называемое буфером быстрого преобразования адреса ( TLB - Translation Lookaside Buffer) или иногда ассоциативной памятью, продемонстрировано в табл. 4.1. Оно обычно находится внутри диспетчера памяти и состоит из нескольких записей. Каждая запись содержит информацию об одной странице, а именно: номер виртуальной страницы, бит, устанавливаемый при изменении страницы, код защиты ( разрешения на чтение / запись / выполнение) и номер физического страничного блока, в котором расположена эта страница. Эти поля однозначно соответствуют полям в таблице страниц. Еще один бит служит признаком того, действительна ли запись ( то есть используется ли она в данный момент) или нет. [12]
Обычный путь обработки неудачного поиска в буфере TLB, аппаратно или программно - это переход в таблицу страниц и выполнение операции индексации, чтобы определить место страницы, к которой происходит обращение. При осуществлении этого поиска программно возникает проблема, заключающаяся в том, что страницы, содержащиеся в таблице страниц, могут отсутствовать в буфере быстрого преобразования адреса, что вызовет дополнительные ошибки буфера TLB во время обработки. [13]
Адреса 16 наиболее часто использующихся страниц хранятся в буфере быстрого преобразования адреса. Программы, у которых рабочий набор меньше размера буфера TLB, будут хранить адреса всего рабочего набора в буфере TLB и, следовательно, будут работать эффективно. Если страница не находится в буфере быстрого преобразования адреса, фактически происходит обращение к дескриптору и таблице страниц, чтобы найти адрес страничного блока, и буфер TLB обновляется, чтобы включить эту страницу. При этом выгружается страница, не использовавшаяся дольше всего. Поле возраста хранит информацию о том, какая из записей использовалась наиболее давно. Причиной для применения буфера TLB служит обеспечиваемое им параллельное сравнение сегментов и номеров страниц всех записей. [14]
Компьютер, чьи процессы имеют 1024 страницы в своем адресном пространстве, хранит таблицы страниц в памяти. На чтение слова из таблицы страниц требуется 5 не. Чтобы уменьшить затраты, в компьютере существует буфер быстрого преобразования адреса ( TLB), содержащий 32 пары ( виртуальная страница, физический страничный блок), который может выполнить поиск за 1 не. При какой частоте обращений к памяти, успешно реализуемых в TLB, средние затраты будут ниже 2 не. [15]