#caching #cpu-architecture #pipeline
#кэширование #архитектура процессора #конвейер
Вопрос:
Почему штраф за пропуск кэша больше в процессоре с глубокой конвейеризацией?
Это потому, что период задержки будет больше, если промах произойдет на какой-то поздней стадии конвейера? Или потому, что в конвейере просто слишком много инструкций?
Комментарии:
1. Я думаю, что вам следует отредактировать свой вопрос, чтобы описать несколько различных ситуаций в конвейере процессора. Есть пропуск кэша данных, пропуск кэша инструкций. Также имеет место остановка конвейера и вставка пузырька в конвейер. Проверьте здесь некоторую информацию о конвейере: [ссылка]www.seas.gwu.edu /~bhagiweb/cs211/lectures/pipeline.ppt
Ответ №1:
Обычно вы внедряете более глубокий конвейер, чтобы сократить время цикла каждого этапа конвейера.
Рассмотрим две конвейерные микроархитектуры процессора с одним выпуском по порядку.
uA1 имеет 5-ступенчатый конвейер и время цикла 2 нс. uA2 имеет конвейер из 10 этапов и время цикла 1 нс.
Полный промах кэша должен (как минимум) загрузить целую строку кэша из DRAM. Предположим, что это занимает 100 нс, включая активацию строки, пакетные чтения слов строки и предварительную загрузку строки.
Когда uA1 получает промах кэша, он останавливается на 100 нс, например, 50 тактов, например, 50 слотов выдачи. Когда uA2 получает промах кэша, он останавливается на 100 нс, например, 100 тактов, например, 100 слотов выдачи.
Здесь штраф за пропуск кэша (выраженный в пропущенных слотах выдачи команд) в два раза больше в процессоре с более глубокой конвейерной обработкой.