Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Что такое латентность памяти ПК?

Что такое латентность памяти ПК?

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

Наибольшая скорость достигается при последовательном чтении, а наименьшая – при чтении вразброс. Но и это еще не все, современные модули памяти имеют несколько независимых банков и потому позволяют обрабатывать более одного запроса параллельно. Если запросы следуют друг за другом непрерывным потоком, непрерывно генерируются и ответы. Несмотря на то, что задержка между поступлением запроса и выдачей соответствующего ему ответа может быть весьма велика, в данном случае это не играет никакой роли, поскольку латентность (т. е. величина данной задержки) полностью маскируется конвейеризацией и производительность памяти определяется исключительно ее пропускной способностью. Аналогичный пример : пусть сборка одного отдельного взятого автомобиля занимает целый месяц, но если множество машин собирается параллельно, завод может выдавать хоть по сотне автомобилей в день, и его «пропускная способность» в большей степени определяется именно количеством сборочных линий, а не временем сборки каждой машины. В настоящее время практически все производители оперативной памяти маркируют свою продукцию именно в пропускной способности, но наблюдающийся в последнее время стремительный рост пропускной способности адекватного увеличения производительности выполнения приложений, как это ни странно, не вызывает. Почему? Основной камень преткновения – фундаментальная проблема зависимости по данным. Рассмотрим следующую ситуацию. Пусть ячейка №1 хранит указатель на ячейку №2, содержащую обрабатываемые данные. До тех пор пока мы не получим содержимое ячейки №1, мы не сможем послать запрос на чтение ячейки №2, поскольку еще не знаем ее адреса. Следовательно, производительность памяти в данном случае будет определяться не пропускной способностью, а латентностью. Причем не латентностью микросхемы памяти, а латентностью всей подсистемы памяти – т. е. кэш-контроллером, системной шиной, набором системной логики… Латентность всего этого хозяйства может быть очень велика и составлять порядка 20 тактов системной шины, что многократно превышает полное время доступа к ячейке оперативной памяти. Таким образом, при обработке зависимых данных быстродействие памяти вообще не играет никакой роли: все они покажут практически идентичный результат (описываемый случай отнюдь не является надуманным, скорее наоборот, это типичная ситуация). Основные структуры данных (такие, как деревья и списки) имеют ярко выраженную зависимость по данным, поскольку объединяют свои элементы именно посредством указателей, что «съедает» весь выигрыш от быстродействия микросхем памяти.

Типичная схема большинства чипсетов выглядит так: контроллер шины принимает запрос и ставит его в очередь, которую периодически опрашивает агент транзакций и, извлекая накопившиеся к этому времени запросы, преобразует их в командные пакеты, поступающие на вход планировщика запросов к памяти, который получает запросы сразу от нескольких устройств: процессора, видео-карты, южного моста и др., стараясь обслуживать всех клиентов максимально эффективно. Спланированные запросы накапливаются в очереди арбитра памяти, который по мере их извлечения распределяет ячейки по физическим адресам, передавая их непосредственно блоку сопряжения с модулями памяти. Чем одни чипсеты отличаются от других? За словами «контроллер шины» и «контроллер памяти» скрывается целый мир, состоящий из множества узлов и сложно взаимодействующих друг с другом компонентов. Заставить все это хозяйство работать параллельно практически невозможно и потому латентность рядовых чипсетов обычно составляла от десяти до двадцати тактов системной шины (Intel удалось уложиться всего лишь в два). Однако уменьшение латентности еще не увеличивает пропускную способность, и для потоковых приложений (либо же приложений, хранящих обрабатываемые данные в основном в кэше) прирост скорости окажется пренебрежительно мал.

Современные материнские платы поддерживают широкий диапазон частот памяти (1333-2000 мегагерц (МГц) и более). Основными характеристиками памяти, от которых зависит ее быстродействие, являются частота и тайминги. Скорость работы памяти не оказывает такого сильного влияния на общую производительность компьютера как процессор. Тем не менее, часто можно приобрести более быструю память не на много дороже. Быстрая память нужна прежде всего для мощных профессиональных или игровых компьютеров.

Таймингами называются задержки между операциями чтения/записи/копирования данных в оперативной памяти. Соответственно чем эти задержки меньше, тем лучше. Но тайминги оказывают гораздо меньшее влияние на скорость работы памяти, чем ее частота. Основных таймингов, которые указываются в характеристиках модулей памяти всего 4.

 Рис. 1.

 Из них самой главной является первая цифра, которая называется латентность (CL). Типичная латентность для памяти DDR3 1333 МГц – CL 9, для памяти DDR3 с более высокой частотой – CL 11. Не стоит приобретать память с латентностью ниже указанной, так как это говорит об общем низком уровне ее технических характеристик.

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

DDR3 – современная:

- PC3-10600 (DDR3 1333 МГц) — CL 9

- PC3-12800 (DDR3 1600 МГц) — CL 11

- PC3-14400 (DDR3 1866 МГц) — CL 11

- PC3-16000 (DDR3 2000 МГц) — CL 11

При работе контроллеров с памятью - латентность можно регулировать и при помощи таймингов памяти — определенных отрезков времени, отсчитываемых в тактах сигнала опорной частоты работы памяти, которые задают ключевые интервалы времени между различными операциями при работе с памятью — установкой адреса на шине, чтением, записью и пр.. Четырьмя основными таймингами работы памяти DDR SDRAM являются:

- CAS Latency Time (принимает значения 2.0, 2.5 или 3.0 такта),

- RAS Precharge Delay (Trp = 2, 3 или 4 такта),

- RAS to CAS Delay (Trcd = 2, 3 или 4 такта),

- Active Precharge Delay (Tras = 5, 6, 7 или 8 тактов).

Для лучшего быстродействия системы (для меньшей латентности памяти) эти тайминги лучше делать как можно меньше — настолько, насколько позволяет стабильность каждой конкретной системы. Ведь работа памяти с таймингами меньше определенных значений способна привести к сбоям и зависаниям (а то и просто неработоспособности) системы. Продвинутые пользователи ПК и оверклокеры стараются всеми правдами и неправдами заставить память работать как можно быстрее. В ход идет как тактовая частота, так и тайминги памяти. А производители материнских плат и памяти позволяют менять значения таймингов в BIOS Setup плат (теперь даже у Intel) и выпускают модули памяти, способные работать с пониженными таймингами и на повышенных частотах. Для таких пользователей у ряда производителей памяти существуют даже специальные серии модулей с низкой латентностью, наибольшим достижением считается заставить свою систему работать с таймингами 2.0-2-2-5 (Значения таймингов памяти здесь и далее перечислены в том порядке, в котором они названы выше). И именно к этому стремятся многие изготовители модулей памяти. Что касается того, насколько те или иные тайминги влияют на быстродействие системы в различных приложениях, то при определенных условиях разрыв для разных настроек памяти может доходить до 10% (а в среднем составляет 2–4%).


Лицензия