2012-04-17 2 views
2

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

Предположим, у вас есть следующая статистика для процессора с несколькими различными вариантами иерархии памяти.

Base CPI = 1.5 
Processor Speed = 2 GHZ 
Main Memory Access Time = 100ns 
L1 miss rate per instruction = 7% 
L2 direct mapped access = 12 cycles 
Global miss rate with L2 direct mapped = 3.5% 
L2 8-way set associative access = 28 cycles 
Global miss rate with L2 8-way set associative access = 1.5%  

Примечание: глобальный уровень промаха процент упоминаний, что пропустить на всех уровнях кэша (и, следовательно, должны получить доступ к основной памяти)

  1. Вычислить Общий индекс потребительских цен, если кэш L2 доступен и прямое отображение.

  2. Рассчитать общий CPI, если L2 доступен и имеет 8-позиционную ассоциативную ассоциацию.

ответ

5

Теперь я понимаю проблему, поэтому я подумал, что объяснил это здесь, чтобы улучшить форум с дополнительной информацией.

Во-первых,

Итого ИВК = Базовый CPI + Память-Stall циклов в инструкции

Память-Stall циклов в инструкции = промах (в циклах) х Miss Оценить

первого порядка бизнес должен выяснить пропущенный штраф, если не было второго кеша. Это легко определяется следующим расчетом:

основной памяти Время доступа/(1/Процессор Speed) = (100)/(.5) = 200 циклов

Примечание: Память Время доступа в нс, и инверсия скорости процессора будет в ns/циклах, поэтому, разделив два, мы получим количество циклов. Мы делаем это вычисление, потому что требуется определенное количество времени, чтобы пройти весь путь до основной памяти (100 нс), а скорость процессора определяет, как быстро мы можем идти (2 ГГц), и путем изменения тактовой частоты до тактовой частоты путем инверсии мы можем вычислить количество циклов, необходимых для перехода в основную память (пропустить штраф).

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

доступа L1 -----> L2 доступ -----> Доступ к основной памяти

(это подразумевает, что если есть «хит» мы не должны продолжать поток)

проблема говорит нам, что L2 с прямым отображением доступа принимает = 12 циклов

Таким образом, расчет будет выглядеть следующим образом:

Итого CPI = 1,5 + (0,07 х 12) + (0,035 х 200) = 9,34 CPI

Поскольку вы пропустите 7% времени, вам нужно будет получить доступ к L2, и это займет 12 циклов, чтобы вы умножили два. Затем, если он все еще не найден, мы должны получить доступ к основной памяти, которая занимает 200 циклов, а глобальная скорость промаха равна 3,5%

Итого CPI = 1,5 + (0.07 х 28) + (0,015 х 200) = 6,46

Второй расчет производится аналогичным образом

0

части ответа на первый вопрос базируется на интерпретации. Я думал, это означает, что мы должны вычислять CPI, если был только один уровень кеша. Это меняет вещи много ....

1) Только кэш L1 в системе

Miss penalty = 100ns/(1/2GHz) = 200 cycles 
First-level Cache CPI = 1.5 + (0.07 * 200) = 15.5 

2) L2 прямого отображения кэш

L1 miss, L2 hit penalty = 12 cycles 
Both miss penalty = 12 + 200 = 212 cycles 
Total CPI = 1.5 + (0.07 * 12) + (0.035 * 212) = 9.76 

3) L2 восемь-полосная ассоциативный кэш

L1 miss, L2 hit penalty = 28 cycles 
Both miss penalty = 28 + 200 = 228 cycles 
Total CPI = 1.5 + (0.07 * 28) + (0.015 * 228) = 6.88 

Я не знаю, если эти ответы являются правильными, но я могу обновлять этот пост, как только я получаю мою домашнюю работу обратно.

И, как раз отметить, это проблема 5.7.4 из 5-го издания компьютерной организации и дизайна Паттерсона и Хеннесси

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