2016-10-31 3 views
1

Мне трудно понять различия между локальной и глобальной пропускной способностью и как рассчитать среднее время доступа к памяти и просто хотел бы привести пример проблемы, которая у меня есть пытался решить. Я был бы признателен, если бы кто-нибудь мог сказать мне, если я на правильном пути, или если я ошибаюсь, что я пропустил.Расчет среднего времени доступа к памяти

Рассмотрим следующую многоуровневую иерархию кэш с их времени искать и ставки промахов:

  • L1-кэша, 0,5 нс, 20%
  • L2-кэша, 1,8 нс, 5%
  • L3- кэш, 4,2 нс, 1,5%
  • Основная память, 70 нс, 0%

в этом случае, время искать данные относятся к общему времени, которое требуется, чтобы проверить как whethe r запрошенные данные доступны на текущем уровне иерархии и передают данные на уровень выше (или в ЦП). Это то же самое, что время попадания, верно? Данные о пропущенных датах являются локальными. И, как я понял, скорость промаха одного уровня должна быть умножена на частоту промахов всех предыдущих уровней, чтобы быть правильной для этого уровня.

Давайте скажем, если у нас есть доступ к 1000 памяти, в L1 20% из них пропустят. Таким образом, 20% из них отправятся на L2, там 5% из них пропустят. Таким образом, из 1000 доступ к памяти достигнет 1000 * 20% * 5%. Теперь, насколько я знаю ... и, пожалуйста, исправьте меня, если я ошибаюсь, приведенные выше тарифы являются локальными, но их продукт является глобальным пропуском для каждого соответствующего уровня. Это означает, что глобальная пропускная способность будет 0,2 * 0,05 = 1% для L2.

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

AMAT (Средняя памяти Время доступа) = Hit время + Мисс ставка * Мисс штраф

AMAT = 0,5 + 0,2 * (1,8 + 0,2 * 0,05 * (4,2 + 0,2 * 0,05 * 0,015 * 70))

После вычисления этого я получаю AMAT = 0.868421 нс

Могу ли я сделать это правильно?

Спасибо за любую помощь

+0

Возможно определить 'AMAT' ... –

+0

@MarkSetchell Среднее время доступа к памяти (AMAT) - это способ измерения производительности конфигурации иерархии памяти. Он учитывает, что пропуски на разных уровнях иерархии влияют на общую производительность системы по-разному. –

+0

Я уверен, что вы неверно истолковали пропускную способность кеша. Пропускание L3-cache на 1,5% означает, что 1,5% от _all_ доступа к памяти пропускаются. – gnasher729

ответ

1

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

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

AMAT = 0,5 + 0,2 * (1,8 + 0,2 * 0,05 * (4,2 + 0,2 * 0,05 * 0,015 * 70)) = 0.868421 нс

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

Правильное решение должно быть:

АМАТ = 0,5 + 0,2 * (1,8 + 0,05 * (4,2 + 0,015 * 70)) = 0.9125 нс

Итак, рекурсивно можно определить:

AMAT = L1 время Hit + L1 Мисс скорость * L1 Miss штраф

L1 Miss штраф = L2 время Hit + L2 Мисс ставка * L2 Мисс штраф

L2 Мисс штраф = L3 время Hit + L3 Miss ставка * L3 Мисс штраф

L3 Miss неустойка = Основная память хит времени

+0

Хороший ответ, добавив «рекурсивные» формулы, легче понять такие вещи! –

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