промаха кеша, пропуски TLB и ошибки страницы

Может ли кто-то четко объяснить мне разницу между промахом кэш-памяти, ошибкой tlb и ошибкой страницы и как это влияет на эффективное время доступа к памяти?

Ответ 1

Позвольте мне объяснить все эти вещи шаг за шагом.

Центральный процессор генерирует логический адрес, который содержит page number и page offset.

page number используется для индексации в page table, чтобы получить соответствующий page frame number, и как только у нас будет фрейм страницы physical memory (также называемой основной памятью), мы можем применить page offset, чтобы получить правильное слово памяти.

Почему TLB (перевод в сторону буфера)

Дело в том, что таблица страниц хранится в physical memory и иногда может быть очень большой, поэтому для ускорения преобразования логического адреса в физический адрес мы иногда используем TLB, который состоит из дорогой и быстрой ассоциативной памяти, поэтому вместо того, чтобы сначала заходить в таблицу страниц, мы идем в TLB и используем page number для индексации в TLB, и получаем соответствующий page frame number, и если оказывается, мы полностью избегаем page table (потому что у нас есть и page frame number, и page offset) и формируем physical address.

TLB Мисс

Если мы не найдем page frame number внутри TLB, его называют только TLB miss, тогда мы идем в page table, чтобы найти соответствующий page frame number.

TLB Hit

Если мы найдем page frame number в TLB, он называется TLB hit, и нам не нужно переходить к таблице страниц.

Ошибка страницы

Происходит, когда страница, к которой обращается запущенная программа, отсутствует в физической памяти. Это означает, что страница присутствует во вторичной памяти, но еще не загружена во фрейм физической памяти.

Хит кеша

Кэш-память - это небольшая память, которая работает с большей скоростью, чем физическая память, и мы всегда идем в кэш, прежде чем перейти к физической памяти. Если мы можем найти соответствующее слово в кеш-памяти внутри кеша, оно называется cache hit, и нам даже не нужно переходить к физической памяти.

Кэш, мисс

Только после того, как сопоставление с cache memory не может найти соответствующий block (block аналогично физической памяти page frame) памяти внутри кеша (называемый cache miss), тогда мы переходим к physical memory и выполните весь этот процесс прохождения page table или TLB.

Таким образом, поток в основном это

1. Сначала перейдите к cache memory, и если это a cache hit, то все готово.

2. Если это cache miss, перейдите к шагу 3.

3. Сначала перейдите к TLB и, если это TLB hit, перейдите к физической памяти, используя сформированный physical address, все готово.

4. Если это TLB miss, перейдите к page table, чтобы получить номер кадра вашей страницы для формирования physical address.

5. Если page не найден, это page fault. Используйте один из page replacement algorithms, если все кадры заняты какой-либо страницей, иначе просто загрузите требуемую страницу из secondary memory в physical memory кадр.

Конечная заметка

Обсуждаемый мною поток связан с виртуальным кешем(быстрее, но не разделяемым между процессами), поток определенно изменится в случае физического кеша(медленнее, но может использоваться несколькими процессами), Кэш может быть адресован несколькими способами. Если вы хотите глубоко погрузиться, взгляните на это и это.

Ответ 2

Просто представьте, что процесс запущен и требует элемента данных X.

Сначала будет проверяться кэш-память, чтобы определить, есть ли у нее запрошенный элемент данных, если он есть (попадание в кэш), он будет возвращен. Если его там нет (отсутствует кеш), он будет загружен из основной памяти.

В случае отсутствия кэша будет проверена основная память, чтобы узнать, есть ли страница, содержащая запрошенный элемент данных (страница попадет), и если такой страницы нет (страница) ошибка), страница, содержащая нужный элемент, должна быть перенесена в основную память с диска.

При обработке ошибки страницы TLB будет проверяться, чтобы узнать, доступен ли там нужный номер фрейма страницы (TLB hit), в противном случае (TLB miss) ОС должна обратиться к таблице страниц для страницы обслуживания. неисправность.

Время, необходимое для доступа к этим типам памяти:

кэш & lt; & lt; основная память & lt; & lt; диск enter image description here

Доступ к кэшу требует минимального времени, поэтому попадание или промах на определенном уровне резко изменяет эффективное время доступа.

Ответ 3

  Что вызывает ошибки страницы? Это всегда потому, что память была перешел на жесткий диск? Или просто переместился для других приложений?

Смотря как. Если ваша система не поддерживает мультипрограммирование(в многопрограммной системе есть одна или несколько программ, загруженных в основную память и готовых к выполнению), то, безусловно, произошла ошибка страницы, поскольку память перенесено на жесткий диск.

Если ваша система поддерживает мультипрограммирование, то это зависит от того, использует ли ваша операционная система глобальная замена страниц или локальная замена страниц. Если он использует global, то да, есть вероятность, что память была перемещена для других приложений. Но локально память была перенесена обратно на жесткий диск. Когда процесс вызывает ошибку страницы, локальный алгоритм замены страницы выбирает для замены некоторую страницу, которая принадлежит этому же процессу. С другой стороны, алгоритм глобальной замены свободен для выбора любой страницы из всего пула кадров. Эта дискуссия о них всплывает чаще, когда речь идет о избиении.

Я запутался в разнице между пропуском TLB и ошибками страниц.

Пропуск TLB происходит, когда запись таблицы страниц, необходимая для преобразования виртуального адреса в физический адрес, отсутствует в TLB (буфер перевода в сторону). TLB похож на кеш, но он не хранит данные, а хранит записи таблицы страниц, так что мы можем полностью обойти таблицу страниц в случае попадания TLB, как вы можете видеть на диаграмме.

enter image description here

Ошибка страницы - это сбой? Или это тоже самое, что пропустить TLB?

Ни один из них не является катастрофой, поскольку авария не подлежит восстановлению. Но общеизвестно, что мы можем восстанавливаться как из-за ошибки страницы, так и из-за пропуска TLB без необходимости прерывать выполнение процесса.

Ответ 4

Операционная система использует виртуальную память, а таблицы страниц сопоставляют эти виртуальные адреса с физическим адресом. TLB работает как кеш для такого сопоставления.

 program >>> TLB >>> cache >>> Ram

Поиск программы для страницы в TLB, если она не находит ту страницу, которую пропускает TLB, а затем ищет страницу в кеше.

Если страница не находится в кеше, то она пропускает кеш и далее ищет страницу в ОЗУ.

Если страница не находится в ОЗУ, то это ошибка страницы и программа ищут данные во вторичном хранилище.

Таким образом, типичный поток будет

Page Requested >> TLB miss >> cache miss >> page fault >> looks in secondary memory.