2013-11-25 2 views
5

Я безнадежно застрял в проблеме домашних заданий, и я хотел бы, чтобы какая-то помощь поняла это лучше. Вот что я получил:Как рассчитать эффективный CPI для кеша 3 уровня

  1. база CPU CPI = 2, тактовая частота = 2GHz
  2. Первичный кэш, мисс Rate/Инструкция = 7%
  3. L-2 кэша время доступа = 15ns
  4. L-2 кэша, Local Miss Rate/Инструкция = 30%
  5. L-3 Cache время доступа = 30ns
  6. L-3 Cache, Global Miss Rate/Инструкция = 3%, Основное время доступа к памяти = 150ns

Что такое эффективный CPI?

Насколько я понимаю, мне нужно рассчитать штраф за промах для каждого уровня кеша.

  • L1 упустить время штраф = Доступ L2 = 15ns/(1ns/2cc) = 30 тактов
  • L2, промах времени = Доступ L3 = 30 нс/(1ns/2cc) = 60 тактов
  • L3 промах = время доступа ММ = 150ns/(1ns/2cc) = 300 тактовых циклов

Теперь мне нужно рассчитать эффективную CPI. Здесь я немного смущен.

Я считаю, что формула должна быть:

ИВК = BaseCPI + (% L1 MR/Instr * L1 Мисс Штраф) + (% L1 MR/Instr * % L2 MR/Instr * L2 Мисс Штраф) + (% Глобальный MR/Instr * L3 Мисс Штраф)

Если я сделать это, я получаю

CPI = 2,0 + (0,07 * 30) + (0,07 * 0,3 * 60) + (0,03 * 30 0) = 14,36


После отправки по электронной почте мой инструктор, потому что никто в классе не понял 1-2 минут объяснение глобального и локального, мне сказали, что мой ответ близок, но не так. Если бы кто-нибудь мог дать некоторое представление или даже указать мне на хороший учебник, я был бы благодарен. Я могу понять, как определить эффективный CPI для 1 и 2 уровней кешей. Сделать прыжок до 3 смущает меня.

+1

Связанные обсуждения: [http://stackoverflow.com/questions/20483999/calculating-actual-effective-cpi-for-3-level-cache/20617511](http://stackoverflow.com/questions/ 20483999/calculating-actual-effective-cpi-for-3-level-cache/20617511) – chus

ответ

0

Это может помочь подумать об этом в другом направлении. Если мы предположим, что мы собираемся выполнить 1,000,000 инструкций, учитывая ваш основной коэффициент попадания в кеш, 93% из них пострадают и потребуют только 2CPI. 7%, или 70 000, должны будут достигнуть более низких уровней кеша. Из этого 70 000, 70% (49 000) попадут в L2 и потребуют 15ns (или 30CPI). Это оставляет 21 000, которые должны исходить от L3 или ниже. 97% (20370) попадет в L3 и потребует 60CPI. Остальные 630 потребуют доступа к памяти при 300CPI.

Таким образом, общие часы для всей сваи составляют 930 000 * 2 + 49 000 * 30 + 20370 * 60 + 630 * 300, что составляет в общей сложности 4 741 200, что, учитывая количество команд, равное 1 000 000, дает эффективный ИПЦ 4,7412.

Это может быть и не так, поскольку я не совсем уверен в том, какая разница между глобальной и локальной частотой промаха в этом конкретном вопросе и как его применять здесь, но это по крайней мере показывает другой подход к помогите понять вопрос. Он также предполагает, что, например, штраф за промах в L2 60 часов - это весь штраф - другими словами, имеет ли доступ, который промахивается в первичном и L2, и ему приходится брать из L3 всего 60 часов, или требуется 60 чтобы получить его от L3 до L2, а затем еще 30 часов, чтобы получить его от L2 до основного, а затем обычные 2 такта, в общей сложности 92 часа на пропуске L2? Возможно, это различие между локальным/глобальным?

+0

Во-первых, спасибо за ответ. Я сделал что-то похожее на то, что вы предложили вначале. После разговора с моим профессором он сказал, что моя формула правильная. Я думаю, что моя проблема заключается в штрафах за промах. Если я правильно прочитаю ваш пост, это то, что вы также пытаетесь показать. Верните хруст некоторых номеров. – user2990107

-1

Проблема с WCU, правильно? У меня такой же класс.

Проверьте D2L. Стр. 18-20 из полной главы 5 pdf. Необходимый учебник «Организация и дизайн компьютеров» довольно подробно рассказывает об этих проблемах. С быстрым взглядом, я думаю, вы можете делать несколько неправильных операций. Правильные цифры ... неправильные операции. Я сам работаю над проблемой. Я буду размещать здесь, если я считаю, что мой ответ

0
  • Эй, ребята, я в 242 и, я не знаю, если это право либо, но это то, что я получил ..

    главный промаха = 150 нс/(1/2) = 300 циклов. L2 miss = 15 ns/(1/2) = 30 циклов. L3 miss = 30 ns/(1/2) = 60 циклов.

    так ИВК = 2 + (. 07 * 300) + (. * 0,3 07 * 30) + (. 03 * 60) = 25,43

0

Эй, так что я послал по электронной почте ему с просьбой об этом решение

Эффективное CPI = 2,0 + 0,07 х 30 + +0,30 х 60 + 0,03 х 300 = 31,1

и его ответ был, что L1 и L3 были правильными, но что я должен был принять во внимание местный пропускная способность для L2. Не уверен, что это значит, но надеюсь, что это еще не все, но надеюсь, что это мало помогает.

-1

После разговора с профессором он сказал, что эта формула правильная, но сказал мне, что он не мог сказать мне, был ли правильный ответ или нет. Казалось, он намекнул, что это правильно, но это может быть просто недоразумение языкового барьера.

1

Что делать, если это так: для кэша два уровня Эффективный CPI является:

CPi = CPI (нормальный) + MissRAteL1 * MissPenaltyL2 + GlobalMissRAte * TotalMissPenalty

то для три кэша уровня может быть:

CPI = CPI + MissRateL1 * MissPenaltyL2 + (MISSRATEL2/MissRAteL1) (MissPEnaltyL1 + MissPEnaltyL2) + GlobalMiss Тариф (MissPEnaltyL1 + MissPEnaltyL2 + MissPEnaltyL3)

CPI = 2 + 7% x60 + (7%/30%) x (60 + 30) + 3% x (300 + 60 + 90) ..

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