#memory #memory-management #operating-system #tlb
#память #управление памятью #операционная система #tlb
Вопрос:
У меня есть вопрос с экзамена, но я не понимаю решения, может кто-нибудь объяснить решение для меня?
Время доступа к памяти = 2.5*10^-7 sec
второе время памяти = 3*10^-6
Время TLB = 10^-8
Учитывая виртуальный адрес, значение x и таблицу страниц 3 уровня, сколько времени требуется для чтения значения x из памяти в наихудшем случае?
решение заключается : 10^-8 2.5*10^-7 3*(3*10^-6 2*2.5*10^-7) 10^-8 = 1076*10^-7
Комментарии:
1. Я хотел бы знать, в какой школе задают подобные бесполезные вопросы на экзаменах.
Ответ №1:
Довольно очевидно, что решение выполняет 2 поиска в TLB, 7 обращений к памяти и 3 обращения к дополнительной памяти.
Вот этапы процесса:
1) Центральный процессор обращается к TLB, чтобы найти ячейку памяти, к которой привязан виртуальный адрес.
2) Центральный процессор обращается к основной памяти для поиска виртуального адреса. Этот шаг завершается неудачей.
3) Центральный процессор обращается к файлу подкачки (1 обращение к памяти для получения файла подкачки, еще 1 для доступа к записи файла подкачки).
4) Центральный процессор считывает данные из вторичной памяти, чтобы получить страницу, на которую ссылается файл подкачки.
5) Повторите шаги 3 и 4 для каждого уровня в таблице страниц.
Ответ №2:
Насколько я знаю, нет формулы для вычисления наилучшего и наихудшего времени обращений к памяти. Однако на это влияют различные факторы:
- Ширина доступа. В 32-разрядных x86 8-разрядные и 32-разрядные операции доступа, как правило, выполняются быстрее, чем 16-разрядные.
- Выровнен ли доступ или нет. Невыровненные обращения, как правило, выполняются медленнее, чем выровненные обращения.
- Кэшируется ли доступная память. Доступ к кэшированной памяти выполняется быстрее, чем доступ к некэшированной памяти.
- Домен NUMA доступной памяти. Доступ к памяти, принадлежащей близкому домену NUMA, выполняется быстрее, чем доступ к памяти, принадлежащей удаленному домену NUMA.
- Включена ли подкачка страниц. Доступ к памяти при включенной подкачке включает в себя обход структур подкачки и, следовательно, выполняется медленнее.
- Тип памяти. Например, запись в видеопамять выполняется медленнее, чем запись в «обычную» память. Соответственно, чтение из видеопамяти происходит намного, намного, намного медленнее, чем чтение из «обычной» памяти.
- Другие факторы, которые я забыл упомянуть. Трудно запомнить их все.
Кроме того, влияние каждого из этих факторов зависит от базового оборудования, поэтому было бы действительно сложно изобрести даже формулу приближения, которая вычисляет наилучшее и наихудшее время обращений к памяти.