Давайте разберемся вместе -что такое локальная память?

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

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

Кэширование для уменьшения задержки

Чтобы еще больше уменьшить задержку, большинство современных процессоров включают слои кэша. Их обычно называют кэшами L1, L2 и L3. L1 — это очень высокая скорость, и обычно для ее достижения требуется 5 тактов. L2 немного медленнее, порядка 20 циклов. L3 все еще медленнее, около 200 оборотов.

Хотя L1 невероятно быстр, он также мал. Большая часть его скорости связана с тем, что меньшие кеши занимают меньше времени для поиска. L2 больше, чем L1, но меньше, чем L3, и меньше, чем оперативная память системы. Хорошая балансировка размера кешей имеет решающее значение для высокопроизводительного процессора. Процент попадания в кеш важен, но вам нужно сбалансировать количество попаданий с тем, сколько времени потребуется, чтобы получить это попадание, и, следовательно, с уровнями.

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

Обмен идет медленно

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

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

Локальный кеш не должен ограничиваться процессорами. Эта концепция также может применяться к другим типам процессоров. Однако наиболее известным сопроцессором является графический процессор (GPU), который практически не имеет локальной памяти. Ядер обработки много, поэтому все в комплекте. Даже самая маленькая группа использует самые низкие уровни кэша.

На уровне оперативной памяти

Некоторые компьютеры, например компьютеры кластера, могут иметь несколько физических ЦП. Обычно у каждого свой набор оперативной памяти. В некоторых случаях эта оперативная память будет совместно использоваться всеми ЦП, а в других случаях она будет ограничена каждым ЦП. Когда каждый ЦП в многопроцессорной системе может получить доступ только к своему собственному пулу ОЗУ, это также локальная память.

На программном уровне

Программам, работающим на компьютере, выделяется выделенный объем памяти. В некоторых случаях программа может запускать несколько процессов с общей памятью. Некоторые программы могут даже намеренно совместно использовать пространство памяти с другими. Однако обычно этот объем памяти ограничивается только этим одним процессом. Опять же, это пример локальной памяти.

Заключение

Локальная память — это термин, определяемый как часть памяти, которая доступна только для одной цели. Это может быть процессорное ядро, процессор или процесс. Общая концепция всегда одна и та же, хотя детали разные. Локальная память имеет тенденцию быть более безопасной. Они также, как правило, имеют меньшую емкость. Время доступа обычно меньше для локальной памяти, чем для разделяемой памяти. Однако без кэширования это основано на наихудшем показателе скорости разделяемой памяти. Локальная память обычно очень полезна. В зависимости от рабочей нагрузки обычно лучше иметь сочетание локальной и общей памяти. За исключением кешей, где всегда лучше комбинировать локальную и общую память.

Добавить комментарий