Вопрос или проблема
Предположим, у вас есть процессор, который использует 4-ступенчатый конвейер и вторичную кэш-память. В этом процессоре критическое значение параметра составляет 4 нс. Штраф за промах в кэше для первичного и вторичного кэша составляет 15 и 20 тактов соответственно. Коэффициенты промахов для инструкций, данных и вторичного кэша составляют 10%, 20% и 30% соответственно. Предположим, что 22% инструкций обращаются к памяти для различных операций. Сравните производительность этого процессора с производительностью процессора с такой же конфигурацией, но без использования конвейерной архитектуры, и определите, какой из них работает лучше на основе пропускной способности. (((здесь кэш данных учитывается как для первичного, так и для вторичного))) не кэш инструкций
Не следует ли мне учитывать кэш инструкций при расчете штрафа за промах вторичного кэша?
Промахи L1I-кэша также могут промахнуться в L2-кэше, поэтому вам нужно учитывать коэффициент попадания L2 при вычислении как задержек из-за промахов в кэше данных, так и задержек из-за промахов в кэше выборки инструкций.
Вам не сказали, что происходит, когда обоие кэша L1i и L1d промахиваются в одном цикле, получает ли один приоритет доступа к L2 или является ли L2 двусторонним портом или что-то еще. Хотя, догадываюсь, что двусторонний порт L2 и DRAM подразумевается штрафами за промахи в 15 и 20 циклов…
Также, только 20 циклов штрафа за промах для L2? Это в дополнение к штрафу за промах L1? В противном случае это всего лишь 5 дополнительных циклов для доступа к основной памяти. Не то чтобы это имело значение, реалистичны ли эти задержки для современных ЦП с тактовыми частотами около 250 МГц, хотя вам нужно знать, что они имеют в виду, чтобы получить ответ, который они ожидают.
Ответ или решение
Архитектура компьютеров: Математика вычислений с учетом кэширования
В данной статье мы рассмотрим, как провести детальный анализ производительности процессора с учетом пропускной способности и временных задержек в контексте кэширования. Основное внимание в нашем исследовании будет посвящено вторичному кэшу и его влиянию на общую производительность системы, при этом игнорируя коэффициент промахов инструкций.
Исходные данные
- Конфигурация процессора:
- Степени конвейера: 4
- Временные параметры: 4 нс на цикл
- Параметры промахов кэша:
- Первичный кэш (L1) для данных: 15 тактовых циклов
- Вторичный кэш (L2) для данных: 20 тактовых циклов
- Коэффициенты промахов:
- Инструкции: 10%
- Данные: 20%
- Вторичный кэш: 30%
- Процент инструкций, обращающихся к памяти: 22%
Анализ промахов кэша
Мы будем учитывать только данные, т.е. промахи данных в L1 и L2 кэшах. Для более точного понимания следует рассмотреть влияние каждой категории промахов на производительность процессора.
Промахи в первичном кэше (L1)
Допустим, что из 100 обращений к памяти:
- 22% обращаются к памяти (инструкции).
- Из 22 обращений, 20% являются промахами данных.
- Это дает 4.4 промаха L1 для данных на 100 тактов.
Промахи во вторичном кэше (L2)
Из тех 4.4 L1 промаха, 30% приведут к промахам в L2:
- 30% от 4.4 = 1.32 промаха L2 на 100 тактов.
Теперь рассчитаем временные задержки на промахи:
-
Задержка из-за L1:
- Промах L1 = 15 тактов = 15 * 4 выполнений = 60 нс.
-
Задержка из-за L2:
- Промах L2 = 20 тактов = 20 * 4 выполнений = 80 нс.
Общая задержка:
- Задержка всего из-за промахов: 60 + 80 = 140 нс на каждые 100 обращений к памяти.
Сравнение с неблокированным процессором
Процессор без конвейеризации будет выполнять инструкции последовательно. Поэтому, при фиксированной временной задержке в 140 нс на 100 инструкций, основной коэффициент производительности будет зависеть от того, сколько из них обращаются к памяти.
Потоковая пропускная способность
В условиях с конвейером на 4 стадии, процессор может выполнять 4 инструкции одновременно. Это приводит к увеличению пропускной способности по сравнению с неблокированным процессором. Рассмотрим разницу:
-
С конвейером:
- Время обработки: 140 нс на каждые 100 тактов.
- Возможные инструкции: 100 инструкций за 140 нс.
- Пропускная способность: ~714 инструкций в секунду.
-
Без конвейера:
- Время обработки: 140 нс на 1 инструкцию (поскольку они выполняются последовательно).
- Пропускная способность: ~7.14 инструкций в секунду.
Заключение
Производительность процессора на основе архитектуры с конвейером заметно превосходит таковой у процессора без конвейеров. Несмотря на потери из-за промахов в кэше, благодаря более эффективному управлению ресурса, увеличенному потоку инструкций и разграничению задержек, конвейерный процессор демонстрирует впечатляющую производительность.
Таким образом, архитектура с конвейером однозначно имеет преимущества по сравнению с неблокированным процессором с точки зрения вычислительного потенциала и пропускной способности.