2013-09-13 1 views
0

Представьте, что у нас есть один чип с кешем L1. Как время доступа кеша L1 ограничивает максимальную частоту, которая может быть достигнута с помощью ядра?Как ограничение времени кеша ограничено максимальной частотой ядра?

Есть ли какая-то формула, которая может быть использована для вычисления частоты ядра, учитывая время доступа в учетной записи? Так, например, если время доступа в два раза высок, частота будет вдвое меньше?

До сих пор я читал, что время доступа 1/частота, это правильно?

Заранее спасибо.

ответ

1

Ну, это зависит от того, сколько этапов конвейера выделено для доступа к памяти. В старших 5-ступенчатых MIPS-архитектурах выборки состоял из 1 цикла; на современных 14-ступенчатых трубопроводах Intel это 3 цикла; на некоторых ARM это 2 цикла и т. д. В основном для N-цикла выборки максимальная частота будет N/(L1 латентность)

0

Мой (не формула) ответ будет следующий:

  • CPU -> Кэш L1 (данных и команд) -> Память

Если процессор способен работать на гораздо более быстрая скорость, чем скорость получения кеша L1 и/или данные из памяти, тогда общая скорость конвейера будет ограничена самой низкой скоростью, т. е. процессор будет работать на более низкой скорости кеша L1.

Для предотвращения этой проблемы у нас есть много технологий, таких как предварительная выборка кеша, банки памяти для доступа к параллельной памяти и т. Д. И т. Д., Чтобы поддерживать работу процессора с максимальной скоростью.

0

Какой чип, какая микро архитектура?

Я не вижу прямого подключения - если вы занимаете больше времени для доступа к кешу, чем за один цикл, вы можете просто ввести пузырь после загрузки/хранения, если вы в порядке, или ничего не делать, если вы являетесь процессором вне порядка (поскольку потребители нагрузки/хранилища могут ждать возвращения данных, пока выполняются остальные инструкции).

Вы могли бы сказать, что на процессоре in-order это лучший компромисс, чтобы растянуть длительность цикла (нижняя частота), но это вопрос дизайна. Что делать, если ваш средний код вряд ли имеет какие-либо операции с памятью? (т. е. вы оптимизируете для интенсивного вычисления кода)