Разгоняем оперативную память. От теории к практике
Изменение частоты памяти не влияет на её реальную скорость. «Что за бред! Чем выше частота, тем лучше!» - возразите вы. Дочитайте статью до конца и я развею все ваши сомнения.
«Физика» работы памяти
Каждая микросхема памяти состоит из миллионов ячеек данных. Каждая ячейка, в свою очередь, может хранить только одно из двух возможных значений, либо 0, либо 1. Но это только на логическом уровне, на физическом же уровне ячейка представляет из себя конденсатор, запасающий определенный уровень заряда. Если уровень напряжения выше определенного значения, считаем, что в ячейке записана логическая единица, если ниже логический ноль. Таким образом, каждая ячейка памяти хранит 1 бит данных.
Как всегда, в бочке мёда, есть ложка дёгтя. У ячеек данных слишком короткая память, дело в том, что конденсаторы слишком быстро разряжаются, всего за несколько миллисекунд ячейка способна забыть всё. Что тут говорить, даже при чтении данных расходуется заряд. Но помощь приходит контроллер.
Всем этим оркестром ячеек дирижирует контроллер. У микроконтроллера в арсенале есть всего 2 инструмента: вольтметр и «зарядник». Контроллер получает питание с материнской платы и именно «мамка» решает на каком напряжении будет работать память. Именно этим напряжением контроллер заряжает ячейки с логической единицей, при логическом же нуле контроллер разряжает ячейку.
Удерживаем данные в памяти
Как я писал выше, данные нельзя хранить просто так, все записанное будет потеряно в считанные миллисекунды. Умные головы придумали как решить эту проблему и научили контроллер постоянно сканировать ячейки и подзаряжать их. Контроллер памяти проходит все ячейки памяти сотни раз в секунду, считывая значения и записывая в ячейки эти же самые значения, тем самым подзаряжает разрядившиеся ячейки.
Если перестать подзаряжать ячейки памяти, данные будут потеряны. Именно поэтому оперативную память называют энергозависимой.
Разгон оперативной памяти
Все операции в оперативной памяти зависят от:
- частоты
- таймингов
- напряжения
Тестовый образец
Цифра прописанная на планке оперативной памяти не является тактовой частотой. Реальной частотой будет половина от указанной, DDR (Double Data Rate - удвоенная скорость передачи данных). Поэтому память DDR-400 работает на частоте 200 МГц, DDR2-800 на частоте 400 МГц, а DDR3-1333 на 666 МГц и т.д.
Итак, если на нашей планке оперативной памяти стоит метка 1600 МГц, значит оперативная память работает на частоте 800 МГц и может выполнить ровно 800 000 000 тактов за 1 секунду. А один такт будет длиться 1/800 000 000 = 125 нс (наносекунд)
Физические ограничения
Мы подобрались к главному в разгоне, а именно физическому ограничению, контроллер просто не успеет зарядить ячейку памяти за 1 шаг, на это требуется потратить времени не меньше, чем определенного физическими законам. А то, что нельзя сделать за 1 шаг, делается за несколько.
Например, в нашем случае, требуется потратить около 7 шагов на зарядку. Таким образом, зарядка ячейки длится 875 нс. Полное кол-во шагов, за которые можно выполнить одну операцию, буть то чтение, запись, стирание или зарядка, называют таймингами.
Стоит оговориться и сказать. Есть способ зарядить ячейку быстрее, нужно заряжать её большим напряжением. Если мы увеличиваем базовое напряжение работы оперативной памяти, то получаем преимущество по времени зарядки и следовательно можем уменьшить тайминг, тем самым увеличив скорость.
Итак, мы знает, что частота памяти это количество операций, которое может совершить контроллер за 1 секунду, в то время как тайминги это количество шагов контроллера, требуемое для полного завершения 1 действия.
В оперативной памяти реализовано множество таймингов, каких именно в рамках статьи не имеет особо значения. Важно лишь одно, чем ниже тайминги, тем быстрее работает память.
Именно увеличивая частоты, исключительно в сочетании с таймингами можно добиться увеличения производительности.
Стандартные профили таймингов
Качественная материнская плата даёт массу возможностей по оверклокингу. В оперативную память же встроены стандартные профили таймингов, оперативная память точно знает какие тайминги нужно выставлять с предлагаемыми частотами и настойчиво рекомендует «мамке» использовать именно их. Войдя в BIOS в раздел оверклокинга оперативной памяти, первое за что хочется подергать, это частота оперативной памяти. При изменении частоты автоматически пересчитываются таймтинги. По факту вы получаете примерно ту же производительность, но для другой частоты. Кроме того, матплата старается держать тайминги в стабильной зоне работы.
Тайминги наглядно
Продолжаем рассматривать тестовый образец. Как будет вести себя память после разгона?
Частота памяти, Mhz |
Тактов за секунду, шт |
Время 1 таминга, нс |
Таймингов до стабильной зоны, шт |
Всего затрачено времени, нс |
---|---|---|---|---|
2400 | 1 200 000 000 | 83 | 11 | 913 |
1600 | 800 000 000 | 125 | 7 | 875 |
1333 | 666 500 000 | 150 | 6 | 900 |
1066 | 533 000 000 | 180 | 5 | 900 |
800 | 400 000 000 | 250 | 4 | 1000 |
Как видим из таблицы и графика, поднимая частоту, нам необходимо увеличивать тайминги, а вот время затрачиваемое на операцию практически не изменяется, как и не растёт скорость.
Как видим, средняя оперативная память с частотой 800 будет равна по производительности оперативной памяти с частотой 2400. На что действительно стоит обратить внимание, так это качество материалов, которые применил производитель. Более качественные модули дадут возможность выставлять более низкие тайминги, а следовательно большее кол-во полезных операций.
Получается нельзя заставить работать память быстрее?
Можно, для это придётся увеличить напряжение. Повышенное напряжение быстрее заряжает ячейки памяти и тем самым зона физических ограничений уменьшается, следовательно можно уменьшить тайминги.
Изменяя частоту памяти никак не увеличить скорость?
Да, мои поздравления, теперь вы всё поняли! Меняя только частоту, скорость не увеличить. Для увеличения производительности дополнительно следует уменьшать тайминги и увеличивать напряжение.