Принципы отображения блоков оп на блоки кэш памяти.

Двумя крайними (альтернативными) стратегиями отображения является:

1. принцип прямого отображения; 2. Полностью ассоциативное отображение.

Обобщенная структура КЭШ памяти с прямым отображением распределения приведена на рис1. При использовании стратегии прямого отображения каждый блок ОП может отображаться только на строго определенных блок КЭШ памяти. КЭШ память состоит из 2-х основных блоков: память данных и теговая память. Память данных состоит из 128 блоков, теговая память состоит тоже из 128 ячеек, каждая из которых содержит «тег», признак, ярлык. Длина блока как КЭШ памяти, так и ОП 16 байт. ОП состоит из 128х128 блоков. Емкость ОП 218 байт = 256 Кбайт. На размещение в одном блоке КЭШ памяти претендуют 128 блоков ОП. Физический адрес памяти, по которому осуществляется обращения состоит из 3-х полей.

  • Поле тега (7бит)

  • Поле индекса (7бит)

  • Поле адреса байта внутри блока (4бита)

На размещение в одном месте КЭШ памяти претендуют все те блоки ОП, которые имеют одинаковый индекс. При запуске некоторого блока из ОП в КЭШ памяти тегов помещается в тег нового блока (старшие 7 разрядов физического адреса). Память тегов является обычной адресной памятью и адресный вход этой памяти коммутируется с полем индекса. При обращении ЦП к памяти физический адрес по которому осуществляется обращение пересылается в регистр адреса; поле индекса из этого регистра подается на адресный вход памяти тегов, из которого выбирается тег соответствующего блока КЭШ памяти. На схему контроля совпадений/ несовпадений (компаратор) поступают 2-а тега, один требуемый при обращении, а один фактически находящийся в КЭШ памяти. При совпадении тегов, разрешается обращение к памяти данных КЭШа. При несовпадении тегов формируется сигнал КЭШ промаха, который инициирует пересылку блока из ОП в КЭШ память и соответственно обновление тега этого блока в памяти тегов. В отличии от прямого, полностью ассоциативное отображение предполагает возможность отображения любого блока ОП на любой блок КЭШ памяти. Основным отличием организации КЭШ памяти с полностью ассоциативным отображение, по сравнению с предыдущей организацией является реализация памяти тегов не как прямо адресуемой, а ассоциативной памяти. Основным отличием ассоциативной памяти от адресной является реализация обращений к ней по признаку (тегу). В ассоциативной памяти выделяют блок признаков и блок данных.

--------2,10,03--------------------------------------------------------------------------------------------------------

У прощенная структура КЭШ памяти с полностью ассоциативным отображение (…) представленная на рисунку 2. Так же как и для рис1 предполагается, что физический адрес ОП состоит из 18 бит. Адрес, по которому производиться обращение разделяется на: адрес блока (старшие разряды), адрес байта внутри блока (4 младших разряда). Старшие разряды и представляют собой тег блока. Так же как и для рис1 КЭШ память состоит из 128 блоков и разделяется на память тегов и память данных. Память тегов реализована в виде ассоциативной памяти. Признаком поиска в ней является тег запрашиваемого блока. В памяти тегов используется 128 компараторов (с разрядностью 14) для обеспечения параллельного сравнения тегов всех блоков КЭШ памяти с входным тегом (из регистра ОП). Выбираемые по тегу данные представляют собой адрес блока в памяти данных КЭШа. Адрес является 7-ми разрядным, т.к. число блоков КЭШ памяти =128. В ситуации КЭШ попадания на одном из компараторов формируется признак совпадения и соответствующий этому тегу адрес блока передается в выходной регистор ассоциативной памяти рис с. Этот 7-ми битный адрес дополняется 4-мя младшими битами и адресует затребованый байт в выбранном блоке данных КЭШ памяти. Наличие сигнала несовпадения на выходах всех компараторов памяти тегов является причиной формирования сигнала КЭШ промаха. Реакцией является пересылка очередного блока из ОП в КЭШ памяти. Рассмотренные выше 2-е стратегии отображения в чистом виде практически не применяются при реализации КЭШ памяти в компьютерах. Причиной является: низкая эффективность КЭШ памяти с прямым отображением (около 80% попаданий); большими аппаратными затратами, на реализацию полностью ассациативной КЭШ памяти. В соответствии с этим при построении КЭШ памяти обычно используется промежуточный вариант, сочитающий простоту прямого отображения и высокую эффективность полностью ассоциативного отображения. Наиболее часто в качестве промежуточного варианта реализиции используется т.н. КЭШ память с частично ассоциативным отображением (КЭШ память ассоциативная по множеству). Другим вариантом промежуточного подхода является КЭШ память с распределением секторов. Первый вариант имеет широкое применение в реализации КЭШ памяти различных уровней в современных микропроцессорах. Применение варианта 2 связано с реализацией КЭШ буфера команд одной из моделей ПК CRAY.

В КЭШ памяти с частично ассоциативным отображением (распределением) рис3 осуществляется разделение блоков КЭШ памяти с соответственно блоков ОП на ряд множеств (групп). На рис3 число множеств = 4. Для множеств блоков используется принцип прямого отображения, а для блоков внутри каждого множества принцип полностью ассоциативного отображения. Адрес 18разрядный. Физический адрес в памяти разделяется на 3-и поля. Старшие 9бит образуют тег блока; средние 5бит, адрес множества (группы); младшие 4бита адрес байта внутри блока. Число групп или множеств на которое разделяется блоки КЭШ памяти и ОП = 32. В КЭШ памяти каждое множество состоит из 4-х блоков, а в ОП в каждом множестве содержится 512 блоков. Т.О. на 4-е места в КЭШ памяти претендуют 512 блоков ОП принадлежащих тому же множеству. При обращении к памяти в регистр адреса загружается адрес запроса, его среднее поле (адрес группы) используется как прямой адрес для обращения к массиву тегов. Массив тегов имеет 4-х блочную структуру (по числу блоков в множестве) с возможностью параллельного обращения ко всем блокам по одному адресу. Т.О. при поиске данных в КЭШ памяти осуществляется параллельная выборка из 4-х тегов, соответствующих запрашиваемому множеству. Эти теги поступают на компараторы, обозначенные на рисунке a, b, c, d. На второй вход поступает тег запроса из регисра адреса на все параллельно. При наличие сигнала совпадения на выходе одного из 4-х компараторов формируется общий сигнал КЭШ попадания и двоичные выходы компараторов проходя через шифратор образуют адрес блока из массива данных, выход которого разрешается с помощью мультиплексора. На рисунке изображена ситуация, когда на выходе компаратора вырабатывается сигнал совпадения. Схема шифратора преобразует унитарный двоичных код в позиционный. Средние поля физического адреса попадают на дешифратор адреса не только в массив тегов, но и в массив данных (совместно с младшими разрядами). Из массива данных при обращении по чтению параллельно считываются 4-е байта, но только один из них (из первого блока) проходит на выход через мультиплексор. Мультиплексор представляет собой схему комутатора с помощью которого один из многих выходов комутируется на выход. Адрес пропускаемого входа (в данном случае 01) подается на адресный вход мультиплексора. На рисунке присутствуют лишние связи. Задача: правильно найти и не забыть до экзамена (Довгий может это спросить в качестве доп вопроса). При построении КЭШ памяти с распределенным сектором (секторированным) осуществляется разделение памяти данных и основной памяти на сектора, при этом сектор состоит из множества блоков с последовательными адресами. Для основной памяти сектор это сплошной кусок с последовательными адресами физического адресного пространства. Между секторами используется принцип ассоциативного отображения, а внутри блоков, принадлежащих сектору прямое отображение.

------------------23,10,03-------------------------------------------------------------------------------------------------

КЭШ память с паспределением секторов ра рис4 разделена на 8 секторов по 16 блоков в каждом секторе. В свою очередь ОП состоит из 1024 секторов, так же по 16 блоков в каждом секторе. Несмотря на то, что при КЭШ промахе, выделяется место для целого сектора (16 блоков) в КЭШ память из ОП пересылается только один блок (тот, на котором произошел КЭШ промах). В связи с принципом локальности отращений велика вероятность того, что в ближайшее время все обращения будут локализированы в пределах блоков, принадлежащих затребованному сектору для отметки блоков, уже переданных из ОП в КЭШ память, в пределах выделенного сектора используется память битов достоверности. Эта память – битовая матрица, размерностью 16 строк х 8столбцов. При выделении места в КЭШ памяти под очередной сектор в ситуации КЭШ промаха, все биты достоверности для блоков сектора сбрасываются в «0» и устанавливается только один бит в «1» соответствующий блоку передаваемому из ОП в КЭШ память. В секторированной КЭШ памяти КЭШ промахи делятся на 2-а вида:

  1. промах по сектору

  2. промах по блоку внутри имеющегося сектора

Промах по сектору определяется путем параллельного сравнения тегов в ассоциативной памяти с тегом запроса. В данном случае тег представляет собой адрес сектора, находящегося в старших 10 разрядах физического адреса. При отсутствии сигнала совпадений на всех 8-ми компараторах, то вырабатывается сигнал КЭШ промаха по сектору. При наличие сектора, к которому осуществляется обращение в КЭШ память из ассоциативной памяти по совпадающему тегу выбирается адрес этого сектора в КЭШ памяти ( на схеме «d»). 3-х битовый адрес d используется как номер столбца для обращения к памяти битов достоверности. Номер строки (4-х битовый) выбирается из средних разрядов физического адреса (поле b). Если на пересечении выбранных строки и столбца находиться «1», то осуществляется обращение к соответствующему блоку КЭШ памяти. Если же блок не является достоверным (т.е. ему соответствует «0»), то имеет место КЭШ промах по блоку внутри сектора. Реакцией на этот КЭШ промах является пересылка блока из ОП в КЭШ память, сопровождающейся установкой бита достоверности.