Есть ли соответствие между размером кэша и задержкой доступа?

9

Есть ли соответствие между размерами кэша и задержкой доступа? При прочих равных условиях больший кэш работает медленнее? Если так, то почему? Насколько медленнее?

ivanmp
источник
1
If you are interested in exploring some trade-offs in cache design, HP developed the tool CACTI which provides estimates for latency and power use based on design characteristics. A web interface for version 5.3 is also available.
Paul A. Clayton

Ответы:

5

Items in your hands are quicker to access than items in your pockets, which are quicker to access than items in your cupboard, which are quicker to access than items at Digikey. Each successive type of storage I have listed is larger but slower than the previous.

Итак, давайте получим лучшее из обоих миров, давайте сделаем ваши руки такими же большими, как склад Digikey! Нет, это не работает, потому что теперь они больше не руки. Они пушечное ядро, отягощающие тебя.

Причина, по которой доступ к большему хранилищу медленнее - это расстояние . Большее хранилище находится в среднем дальше от вас. Это верно как для физических предметов, так и для оперативной памяти.

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

В случае ОЗУ, ограничения скорости - это скорость распространения электрических сигналов, задержка распространения затворов и драйверов, а также общее использование синхронных часов. Даже если бы деньги не были целью, и вы могли бы купить столько, сколько захотите, самой быстрой технологии оперативной памяти, доступной сегодня, вы не смогли бы извлечь выгоду из всего этого. Если хотите, выложите лист формата L1 в кэш A4 и поместите ваш процессор прямо в центр. Когда центральный процессор хочет получить доступ к некоторой памяти прямо в углу памяти, буквально потребуется наносекунда для запроса, чтобы получить его, и наносекунда для его возврата. И это не включает все задержки распространения через и ворота и драйверы. Это серьезно замедлит ваш процессор 3GHz.

Поскольку синхронную логику гораздо проще спроектировать, чем асинхронную логику, один «блок» ОЗУ будет синхронизирован с одинаковыми тактовыми частотами. Если вы хотите сделать всю память кэшем L1, то вам придется синхронизировать весь лот с медленными часами, чтобы справиться с наихудшим временем синхронизации наиболее удаленного расположения в памяти. Это означает, что удаленные области памяти теперь сдерживают локальные, которые могли бы быть синхронизированы быстрее. Итак, лучшее, что нужно сделать, - это распределить память по зонам. Самый маленький и самый маленький раздел кэша будет использовать самые быстрые часы. Следующий ближайший и самый маленький раздел будет использовать немного более медленные часы и т. Д.

И теперь у вас есть кэш-память L1 и L2 и оперативная память.

Что приводит нас к следующей причине, потребляемой мощности.

Кеш на самом деле потребляет значительное количество энергии. Не только сама память, но и вся логика, которая ее окружает, которая обрабатывает отображение между строками кэша и основной памятью. Увеличение производительности этой дополнительной логики может привести к увеличению энергопотребления. Теперь для определенных приложений (мобильных, встраиваемых) у вас еще больше стимулов для того, чтобы держать кэш небольшим.

См. Компромиссы дизайна кэша для оптимизации мощности и производительности: пример из практики (Ching-Long Su и Alvin M. Despain, 1995).

Rocketmagnet
источник
1
+1 I like your answer. Hits all the relevant points and backs it up as well. Easy to read
Gustavo Litovsky
is that right? answer is premised on the delay in speed of light of an inch versus several inches?
Andyz Smith
1
Этот ответ хорош в качестве общего обзора, но я подозреваю, что он не отвечает на первоначальный вопрос. Не нужно быть экспертом uArch, чтобы понять, что кеш размером A4 не практичен. Я полагаю, что OP спросил о некотором разумном увеличении размера кеша и о том, как это увеличение повлияет на задержку доступа к кешу.
Василий
1
@AndyzSmith - это грубое преувеличение и чрезмерное упрощение, но я думаю, что это дает общее представление о том, что в какой-то момент кэш L1 нельзя увеличивать до бесконечности. В какой-то момент законы физики входят и замедляют его.
Ракетный
Задержка внутрикристального сигнала - это не скорость света, это более сложное значение, рассчитываемое с учетом емкости сети / провода плюс ведомого затвора как сети RLC. Это не достаточно долго, чтобы быть линией передачи. Чем длиннее сеть, тем больше должны быть управляющие ворота, или вам необходимо вставить буферы в качестве повторителей. Все это также потребляет больше энергии.
pjc50
4

Оставляя в стороне все факторы экономики / производительности / энергопотребления, ответ на ваш вопрос: это зависит от многих микро-архитектурных факторов.

В качестве примера посмотрите эту ссылку - измеренная задержка доступа L1 для всех тестируемых процессоров составляет 4 такта. Частоты процессоров практически одинаковы, но размеры кэш-памяти L1 отличаются почти в 3 раза.

Причина постоянной задержки L1 для нескольких разных процессоров в приведенном выше тесте коренится в микроархитектуре кеша: сам доступ к кешу (извлечение данных из памяти) занимает всего один тактовый цикл. Дополнительные три цикла расходуются на декодирование доступа, проверку наличия данных и многое другое ... Количество дополнительных этапов одинаково для всех тестируемых процессоров, поэтому задержки доступа одинаковы.

Несмотря на приведенный выше пример, не следует делать вывод, что задержка кэша не зависит от размера кэша. Если кто-то попытается реализовать смехотворно большой кэш L1, логика, которая выполняет все необходимые операции для чтения из кэша, также станет большой. В какой-то момент задержка распространения по всей этой логике будет слишком большой, и операции, для которых заранее потребовался всего один такт, должны быть разбиты на несколько тактов. Это увеличит время ожидания.

Предполагая, что рассматриваемый кеш реализован в SRAM, модули, на которые больше всего влияет размер кеша: декодеры строк и мультиплексоры. Однако даже очень чувствительные усилители будут затронуты для очень больших кешей: меньший размах напряжения на разрядной линии из-за более высокой емкости потребует «более сильного» чувствительного усилителя. Сказано, что наиболее сильное влияние на логическую скорость будет добавлено емкостью проводных межсоединений - эта емкость имеет более чем линейную зависимость от размера SRAM. Точные детали зависят от реализации.

Теперь кэши L1 довольно стабильны в своих задержках, потому что их производительность является наиболее важной. Если вы попытаетесь проанализировать кэши L2 и L3, картина сильно усложняется.

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

Резюме

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

Для заинтересованных читателей:

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

Василий
источник
Спасибо за ответ! Ваши и @ Rocketmagnet ответы в значительной степени дополняют друг друга. Надеюсь, я мог выбрать оба. Я уже получил свою копию ссылки и был очень заинтересован в теме в последнее время, отсюда и вопрос.
ivanmp
почему логика выполнения операции чтения зависит от размера кэша. Почему он «становится слишком длинным», на каком конкретном номере адреса происходит дискретный переход. или, если нет дискретного перехода, какова формула времени доступа в зависимости от размера?
Andyz Smith
Можете ли вы конкретно указать, какой компонент: «Таким образом, критическое повторение - это сумматор, декодер, строка слова SRAM, битовая строка (строки) SRAM, усилитель (и) смысла, мультиплексоры управления байтами и обход мультиплексоры «. заставляет логику становиться большой? en.wikipedia.org/wiki/Sum_addressed_decoder
Andyz Smith
@AndyzSmith, формула времени доступа и размера может быть предоставлена ​​только тем, кто разрабатывает и моделирует кэш. В опубликованной мной ссылке вы можете видеть, что для получения данных из L1 требуется 4 такта, но никто не пытается оценить слабые места, связанные с этими чтениями. Запрашиваемая формула - это не практический вопрос без большого количества дополнительной информации, специфичной для реализации.
Василий
1
@AndyzSmith, при условии, что рассматриваемый кеш реализован в SRAM, модули, на которые больше всего влияет размер кеша: декодеры строк и мультиплексоры. Однако даже очень чувствительные усилители будут затронуты для очень больших кешей: меньший размах напряжения на разрядной линии из-за более высокой емкости -> «более сильный» чувствительный усилитель. Сказано, что наиболее сильное влияние на логическую скорость будет добавлено емкостью проводных межсоединений - эта емкость имеет более чем линейную зависимость от размера SRAM. Опять же, детали зависят от реализации.
Василий
3

Инженер по тестированию кеша процессора здесь - Дейв Твид в комментариях имеет правильные объяснения. Размер кэша рассчитан на максимальную производительность при ожидаемой цене процессора. Кэш, как правило, является крупнейшим потребителем пространства кристалла, поэтому его размер имеет большое экономическое (и производительность) значение.

Взгляните на страницу семейства процессоров Intel Ivy Bridge: http://ark.intel.com/products/codename/29902/Ivy-Bridge

Топовый Xeon поставляется с 30 МБ кэш-памяти, имеет 12 ядер и стоит около $ 2700. Нижняя часть i3 с 3 МБ кэш-памяти (i3-3217) стоит всего 500 долларов за весь ноутбук (я не могу найти его по отдельности).

Xeon обеспечивает максимальную производительность, но он также стоит дороже в производстве и тестировании. I3 намного дешевле, но компромисс - это меньший размер кристалла, из которого кеш является самой большой частью.

xyzio
источник
2
Очень интересный ответ. Но, как я сказал в этом вопросе, я не ищу экономичного, очевидного ответа. То, что я пытаюсь понять, относится к производительности, связанной с доступом к очень (> 512 МБ) большому кешу. Будет ли размер ухудшать производительность кеша?
ivanmp