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