1

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

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

click to see the image (assume one-level cache)

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

2- Действительно ли TLB находится на первом уровне кэша или это отдельная память внутри чипа процессора, предназначенная для цели перевода?

3- Когда есть промаха в кеше, мне нужно получить целый блок и выделить его в кеш, но основная память, организованная в кадрах (страницах), не блокирует. Так ли страница процесса разделяется на кеш-блоки, которые могут быть доставлены в кеш в случае промаха?

4 Предположим, что есть пропуски TLB, означает ли это, что мне нужно пройти весь путь до основной памяти и проделать страницу там, или происходит прохождение страницы в кеше?

5- Означает ли отказ TLB, что будет пропущен кеш?

6- Если у вас есть материалы для чтения, которые объясняют большую картину, которую я пытаюсь понять, я бы очень хотел поделиться ею со мной.

Спасибо и не стесняйтесь ответить на любой вопрос одного я просил

ответ

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

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

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

  4. Пробуждение TLB потребует перевода страницы, прочитав другую память. Этот процесс может возникать в аппаратных средствах на некоторых процессорах (например, Intel x86/x64) или их необходимо обрабатывать в программном обеспечении. Когда перевод страницы завершен, TLB будет перезагружен с помощью перевода страницы.

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

Чтобы резюмировать:

  • TLB для преобразования виртуальных адресов в физические адреса быстро. Он существует для быстрого кэширования отображения виртуальной памяти в физическую память. Он не имеет ничего общего с содержанием физической памяти.
  • Кэш предназначен для обеспечения более быстрого доступа к памяти. Только там можно обеспечить содержимое физической памяти быстрее.

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

+0

Спасибо @Robin за эти разработанные ответы –

Смежные вопросы