Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структура кэшированной памяти



Объем кэш памяти намного меньше, емкости основной памяти и любая единица информации, помещаемая в кэш, должна сопровождаться дополнительными данными (тэгом), определяющими копией какой ячейки информации основной памяти является эта единица информации.

Во избежание значительного увеличения стоимости устанавливается только небольшой объем высокоскоростной памяти SRAM, которая используется в качестве кэш-памяти. Кэш-память работает на тактовых частотах, близких или даже равных тактовым частотам процессора, причем обычно именно эта память непосредственно используется процессором при чтении и записи.

Чтобы минимизировать время ожидания при считывании процессором данных из медленной оперативной памяти, в современных персональных компьютерах обычно предусмотрены два типа кэш-памяти: кэш-память первого уровня (L1) и кэш-память второго уровня (L2). Кэш- память первого уровня также называется встроенным, или внутренним кэшем; он непосредственно встроен в процессор и фактически является частью микросхемы процессора. Во всех процессорах 486 и выше кэш-память первого уровня интегрирована в микросхему процессора.
Кэш память второго уровня изначально устанавливалась рядом с процессором на системной плате, но в поколениях процессоров от Pentium 2/Athlon данная кэш память второго уровня стала непосредственно размещаться на кристалле процессора.

В зависимости от способа определения взаимного соответствия строки кэша и области основной памяти различают три архитектуры кэш-памяти: кэш пря­мого отображения (direct-mapped cache), полностью ассоциативный кэш (fully associative cache) и их комбинация — частично - или наборно-ассоциативный кэш (set-associative cache).

В кэш-памяти прямого отображения адрес памяти, по которому происходит обращение, однозначно определяет строку кэша, в которой может находиться требуемый блок. Поскольку объем основной памяти много больше объема кэша, на каждую строку кэша может претендовать множество блоков памяти с одина­ковой младшей частью адреса (смещением внутри страницы). Одна строка в оп­ределенный момент может, естественно, содержать копию только одного из этих блоков, и информация о том, какой именно блок занимает данную строку, хранится в памяти тегов. Память тегов должна иметь количество ячеек, равное ко­личеству строк кэша, а ее разрядность должна быть достаточной, чтобы вмес­тить старшие биты адреса кэшируемой памяти, не попавшие на шину адреса кэш-памяти. Кроме адресной части тега с каждой строкой кэша связаны биты при­знаков действительности и модифицированности данных. Независимо от объе­ма затребованных данных в кэш из основной памяти строка переписывается вся целиком. Если контроллер кэша реализует упреждающее считывание (read ahead), то в последующие свободные циклы шины также обновится и следующая строка (если она была чистой). Чтение «про запас» позволяет при необходимости осу­ществлять пакетный цикл чтения из кэша через границу строки.

Такой кэш имеет самую простую аппаратную реализацию и применяется во вторичном кэше большинства системных плат. Однако ему присущ серьезный недостаток: если в процессе выполнения программы процессору поочередно бу­дут требоваться блоки памяти, смещенные относительно друг друга на величи­ну, кратную размеру страницы, то кэш будет работать интенсивно, но вхолостую (cache trashing). Увеличение размера кэша при сохранении архитектуры прямо­го отображения даст не очень существенный эффект, поскольку разные задачи будут претендовать на одни и те же строки кэша. Объем кэшируемой памяти (MCACHED) при архитектуре прямого отображения определяется объемом кэш-па­мяти (VCACHE) и разрядностью памяти тегов (N): MCACHED = VCACHE x 2N. Так, для кэша размером 256 Кбайт и 8-битной памятью тегов (типичный вариант для си­стемных плат с сокетами 5 и 7) объем кэшируемой памяти составит mcached ш 256 кбайт х 28 - 64 Мбайт.

Наборно-ассоциативная архитектура кэша позволяет каждому блоку квити­руемой памяти претендовать на одну из нескольких строк кэша, объединенных в набор (set). Можно считать, что в этой архитектуре есть несколько параллельно и согласованно работающих каналов (банков) прямого отображения, где кон­троллеру кэша приходится принимать решение о том, в какую из строк набора помещать очередной блок данных. В простейшем случае каждый блок памяти может помещаться в одну из двух строк (Two Way Set-Associative Cache — двух-канальный наборно-ассоциативный кэш). Наборно-ассоциативная архитектура широко применяется для первичного кэша современных процессоров. Объем кэшируемой памяти определяется так же, как и в предыдущем варианте, но здесь фигурируют объем одного банка (а не всего кэша) и разрядность относящихся к нему ячеек тега.

В отличие от предыдущих у полностью ассоциативного кэша любая его стро­ка может отображать любой блок памяти, что существенно повышает эффектив­ность использования его ограниченного объема. Его реализация является слож­ной аппаратной задачей, которая пока решена только для небольших объемов первичного кэша в некоторых процессорах. Применение полностью ассоциатив­ной архитектуры во вторичном кэше пока не предвидится.





Дата публикования: 2015-10-09; Прочитано: 290 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...