2016-06-27 3 views
1

Предположим, что у машины есть 48-битные виртуальные адреса и 32-разрядные физические адреса.Предположим, что машина имеет 48-битные виртуальные адреса и 32-разрядные физические адреса

(a) Если страницы составляют 4 КБ, сколько записей в таблице страниц, если у них только один уровень?

12-разрядное смещение, так что 2^36? Я чувствую, что это неправильно. Может кто-нибудь, пожалуйста, объясните мне это?

(b) Предположим, что в этой же системе имеется TLB (Buffal Lookuside Buffer) с 32 входами. Кроме того, предположим, что программа содержит инструкции, которые вписываются в одну страницу, и последовательно читает длинные целые элементы из массива, который охватывает тысячи страниц. Насколько эффективна TLB для этого случая?

ответ

1

(a) Нам нужна одна запись для каждой страницы, или 2^24 = 16 × 1024 × 1024 записей, так как есть 36 = 48-12 бит в поле номера страницы.

(b) Адреса инструкций будут достигать 100% в TLB. На страницах данных будет получена отметка 100, пока программа не переместится на следующую страницу данных. Так как страница 4-KB содержит 1024 длинных целых числа, будет один промах TLB и один дополнительный доступ к памяти для каждых 1024 ссылок на данные.

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