logo search
Микропроцессорные системы

Прямое распределение.

При прямом распределении место хранения строк в кэш-памяти однозначно определяется по адресу строки. Структура кэш-памяти с прямым распределением показана на рис. 8.19.

Рис. 8.19. Структура кэш-памяти с прямым распределением

Адрес основной памяти состоит из 14-ти разрядного адреса строки и 4-х разрядного адреса слова внутри этой строки. Адрес строки подразделяется на старшие 7 бит (тег) и младшие 7 бит (индекс). Для того чтобы поместить в кэш-память строку из основной памяти с адресом АВС, выбирается область внутри кэш-памяти с адресом В, который равен 7 младшим битам адреса строки АВ. Преобразование из АВС вВсводится только к выборке младших 7 бит адреса строки АВ. По адресуВв кэш-памяти может быть помещена любая из 128 строк основной памяти, имеющих адрес, 7 младших бит которого равны адресуВ. Для того, чтобы определить, какая именно строка хранится в памяти данных в настоящий момент времени, используется запоминающее устройство емкостью 7*128 слов, в котором помещается по соответствующему адресу в качестве тега 7 старших бит адреса строки, хранящейся в данное время по адресуВкэш-памяти. Это запоминающее устройство называется теговой памятью. Память, в которой хранятся строки, называется памятью данных. Тег из теговой памяти считывается по адресу В, который образует 7 младших бит адреса строки АВ. Параллельно считыванию тега осуществляется доступ к памяти данных с помощью 11 младших бит (ВС) адреса основной памяти АВС. Если тег и старшие 7 бит адреса основной памяти совпадают, значит что данная строка существует в памяти данных (строка-V), то есть осуществляется кэш-попадание.

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