Я дал следующую проблему, и я не знаю точно, как подойти к нему:Проектирование виртуальной памяти с TLB
Рассмотрим систему виртуальной памяти со следующими свойствами:
· 35-битный виртуальный адрес
· 16 КБ страниц
· 32-битный физический адрес
Предположим, что эта система виртуальной памяти реализована с помощью восьмипозиционных ассоциативных TLB. TLB имеет в общей сложности 256 записей TLB, с каждой записью TLB, представляющей один номер виртуальной-физической страницы .
Кэш данных в 64 КБ представляет собой двухсторонний ассоциативный кеш-набор. Данные Размер блока кеша составляет 128 байт.
Показать виртуальное физическое сопоставление с рисунком, обращенным в сторону , как показано на рисунке ниже (но со всеми необходимыми изменениями для TLB и кеша данных, указанного в этом вопросе).
Укажите ширину всех полей и сигналов, входящих и выходящих из (как , а также количества сравнений, выполненных) TLB и кэша данных для каждого адреса памяти.
У меня есть идея о том, как вычислить некоторые параметры, но в остальном я потерян.
Например, поскольку виртуальный адрес имеет ширину 35 бит, я знаю, что у меня есть 2^35 возможных виртуальных адресов.
Поскольку у меня есть 16KB-страницы (16 * 1KB = 2^4 * 2^10 = 2^14KB), я знаю, что я должен иметь (3^35)/(2^14) = 2^21 page table записей.
Наконец, я знаю, что размер моего кеша составляет 64 * 1 КБ = 2^16 байт кеша.
Но я потерялся после этих шагов. Любая помощь будет оценена по достоинству.
К сожалению, это виртуальный адрес 32 бита или 35 бит? –
35 бит. Я знаю, это неудобно – audiFanatic
Извините, моя ошибка, теперь я заметил свою опечатку. Исправлено: – audiFanatic