Программирование на JAVA

Предположим, у нас имеется кэш, состоящий из 128 блоков по 16 слов в каждом, то есть с общим количеством слов, равным 2048 (2 К), и основная память, адресуемая с помощью 16-разрядных адресов. Основная память имеет объем 64 К слов, который мы будем рассматривать как 4 К блоков по 16 слов. Чтобы облегчить восприятие излагаемого материала, будем считать, что последовательные адреса указывают на последовательные слова.

Прямое отображение

Простейшим способом сопоставления адресов блоков в кэше и в памяти является прямое отображение. При использовании этой технологии блок j основной памя­ти отображается на блок j по модулю 128 кэша, как показано на рис. 8.4. Таким образом, когда загружается один из блоков основной памяти, начинающихся по адресам 0,128,256 и т. д., он записывается в блок кэша 0. Блоки 1,129, 257 и т. д. записываются в блок кэша 1 и т. д. Поскольку на каждый блок кэша отображается более одного блока основной памяти, то даже при не до конца заполненном кэше может возникнуть состязание за некоторую позицию. Например, команды про­граммы, начавшиеся в блоке 1, после перехода могут продолжиться в блоке 129


<< назад вперед >>