Буфер оперативной памяти это
главное отличие между буферизованным и небуферизованным ОЗУ является то, что Буферизованная RAM содержит регистр между DRAM и контроллером памяти, в то время как небуферизованная RAM не содержит регистр между DRAM и контроллером памяти.
ОЗУ означает «Память произвольного доступа». Это энергонезависимая память, которая требует постоянного потока энергии для сохранения данных. Обычно программы хранятся на жестком диске. Процессору требуется больше времени для доступа к жесткому диску. Поэтому во время выполнения программы загружаются в ОЗУ. Объем оперативной памяти является значительным фактором, определяющим производительность системы. Существует в основном два типа оперативной памяти, называемые SRAM и DRAM. SRAM - это быстрая память, построенная с использованием триггеров. DRAM быстрый, но не такой быстрый, как SRAM. Кроме этих двух типов, ОЗУ также может быть классифицировано как ОЗУ с буферизацией и ОЗУ.
Имеет ли небуферизованная оперативная память лучшую производительность?
Как упоминалось ранее, буферное ОЗУ жертвует тактовым циклом, чтобы пройти через регистр перед тем, как пройти через контроллер памяти. Этот тактовый цикл важен с точки зрения скорости, потому что именно здесь возникает задержка CAS.
Даже наличие 1-2 меньших задержек CAS в вашей оперативной памяти может значительно улучшить вашу производительность, а буферная RAM жертвует целым тактовым циклом, чтобы пройти через регистр.
ОЗУ без буферизации всегда будет лучше с точки зрения производительности, но стабильность и надежность намного ниже по сравнению с ОЗУ с буферизацией. Вам не следует беспокоиться об этом, если вы просто используете свой компьютер лично.
Работа с буферами
Реализация буфера в Node.js даёт нам массу вариантов работы с данными. Кроме того, можно создавать буферы самостоятельно, задавая их характеристики. Итак, помимо того буфера, который Node.js создаст автоматически в процессе передачи данных, можно создать собственный буфер и манипулировать им. Существуют разные способы создания буферов. Взглянем на некоторые из них.
После создания буфера с ним можно начинать работать.
Как работает оперативная память?
Чтобы лучше понять, что такое небуферизованная оперативная память, вам нужно сначала узнать, как она работает.
RAM означает оперативную память. Он получает доступ к данным, сохраняя их и перемещая в другое место по мере чтения. Это самый простой способ объяснить это, и скорость этого определяется оперативной памятью.
Скорость оперативной памяти напрямую влияет на то, насколько быстро процессор может получить к ней доступ и обработать. Что касается скорости, у него есть скорость передачи (измеряется в мегагерцах) и задержка CAS, которые могут помочь улучшить процесс передачи данных.
Вам может потребоваться меньшая задержка CAS, поскольку это задержка того, сколько тактов необходимо, чтобы данные были легко доступны. Что касается скорости, вы хотите, чтобы она была выше, поскольку это то, насколько быстро ОЗУ может получить доступ к своим данным.
Небуферизованная оперативная память
Для небуферизованной ОЗУ это дает ОЗУ прямой доступ к контроллеру памяти и, следовательно, увеличивает общую электрическую нагрузку.
Предоставляя прямой доступ к ОЗУ, ему не нужно циклически перебирать данные в регистре, что дает ему значительное преимущество перед буферизованным ОЗУ.
Это дешевле, но с меньшей стабильностью.
Небуферизованная оперативная память регулярно используется для настольных компьютеров и ноутбуков, поскольку буфер не требуется для этого типа системы.
Объемы кэша
При выборе персонального компьютера важно обратить внимание на такой показатель, как объем буферной памяти. Поскольку он периодически нуждается в перезагрузке и очищении, то чем больше по размерам будет кэш - тем лучше. Современные ПА оснащаются 8, 16, 32 и 64 Мб, но буферы имеют объем 128 и 256 Мб.
Хотя современные ноутбуки и компьютеры чаще всего оснащаются большим размером кэш-памяти, меньшая – уже редкость. При выборе устройства пользователи редко обращают внимание на этот показатель, поскольку он непосредственно не зависит от цены. А также параметр не является ключевым при выборе компьютера. Здесь нужно обращать внимание и на другие показатели, поскольку обычно собственной памяти системы вполне достаточно для выполнения операций.
Ключевые области покрыты
1. Что такое буферная память
- определение, функциональность
2. Что такое небуферизованная оперативная память
- определение, функциональность
3. Разница между буферизованной и небуферизованной оперативной памятью
- Сравнение основных различий
Преимущества
Несмотря на то, что главным преимуществом буферной памяти является быстрая обработка данных, есть еще и другие достоинства. Жесткий диск с объемным буфером может разгрузить процессор или минимально его задействовать. Таким образом, компьютер не будет перегружаться и прослужит дольше.
Также кэш является своего рода ускорителем, обеспечивающий эффективную и быструю работу всей системы. Это сокращает время запуска программного обеспечения, когда требуются данные, уже содержащиеся в кэше.
Обычному пользователю для работы вполне достаточно 32 или 64 Мб. Больший размер теряет значимость, поскольку при взаимодействии с файлами большими по объему это различие незначительно. К тому же переплачивать за более объемный буфер вряд ли кому-то захочется.
Определение
Буферизованная RAM - это модуль памяти в компьютерах, которые имеют регистр между модулями DRAM и контроллером памяти системы. ОЗУ без буферизации - это модуль памяти в компьютере, который не имеет регистра между модулем DRAM и контроллером памяти системы. Это объясняет разницу между буферизованной и небуферизованной оперативной памятью.
Поток
Поток в Node.js представляет собой последовательность данных, перемещаемых из одного места в другое. Перемещение данных происходит не мгновенно, оно занимает некоторое время. Основная идея тут заключается в том, что потоки позволяют обрабатывать большие наборы данных по частям.
Если вспомнить некоторые вещи из определения буфера, а именно, то, что там упоминаются «потоки двоичных данных… в контексте… файловой системы», можно понять, что речь идёт о перемещениях двоичных данных файлов, например, при чтении этих файлов для последующей работы с их содержимым. Скажем, мы читаем текст из file1.txt , преобразуем его и сохраняем в файл file2.txt .
А причём тут буфер? Как он помогает работать с двоичными данными, пребывающими в форме потока?
О внутренних механизмах Node
К сожалению, многие руководства и книги, посвящённые Node.js, не уделяют должного внимания внутренним механизмам этой платформы, не стремятся объяснить цель их существования. Как правило, в подобных публикациях всё сводится к рассказам о разработке веб-приложений с использованием готовых пакетов, без углубления в детали их реализации. А кое-где даже беспардонно заявляется, что читателю всё это понимать и не нужно, так как ему, скорее всего, никогда не придётся работать, скажем, с объектами класса Buffer, напрямую.
Для того, кто не планирует идти дальше использования в своих проектах готовых библиотек, такой подход, вероятно, оправдан. Тем же, в ком загадки будят любопытство, тем, кто хочет вывести собственное понимание JS на новый уровень, стоит копнуть поглубже и разобраться со множеством внутренних возможностей Node.js, таких, например, как класс Buffer .
В официальной документации по Node.js о классе Buffer можно прочитать следующее:
До появления объекта TypedArray в ECMAScript 2015 (ES6), в JavaScript не было механизма для чтения потоков двоичных данных или для выполнения других операций с ними. Класс Buffer был представлен как часть API Node.js, позволяющая взаимодействовать с потоками произвольных двоичных данных в контексте, например, TCP-потоков и операций с файловой системой.
Да уж, если вы раньше не знали тех слов, которые встречаются в этом определении, то вы, возможно, воспримите его как маловразумительную кучу программистских жаргонизмов. Попробуем немного всё это упростить, перефразировав это определение, так, чтобы мы могли работать с ним, ни на что не отвлекаясь. Из этого определения можно вынести следующее:
Класс Buffer был представлен как часть API Node.js, позволяющая работать с потоками двоичных данных.
Итак, теперь всё выглядит немного проще. Но «класс Buffer», «потоки», «двоичные данные» — тут всё ещё слишком много непростых понятий. Попытаемся с ними разобраться, начав с последнего.
Стоимость
ОЗУ с буферизацией обходится дороже, чем ОЗУ без буферизации.
Синонимы
Ключевые области покрыты
1. Что такое буферная память
- определение, функциональность
2. Что такое небуферизованная оперативная память
- определение, функциональность
3. Разница между буферизованной и небуферизованной оперативной памятью
- Сравнение основных различий
Различия между буферизованным и небуферизованным ОЗУ
Основные условия
ОЗУ с буферизацией, ОЗУ, ОЗУ, SRAM, ОЗУ без буфера
Разница между буферизованной и небуферизованной оперативной памятью
Буферизованная RAM
Буферизованное ОЗУ имеет регистр, который ОЗУ должно пройти, прежде чем сможет получить доступ к контроллеру памяти. По сути, это «буфер», который обеспечивает стабильность всего процесса и в то же время снижает электрическую нагрузку.
Это особый тип ОЗУ, который используется для серверов и систем в рабочем пространстве. Это намного сложнее, и вам, вероятно, не стоит об этом беспокоиться, поскольку ИТ-специалисты специализируются на этом и обычно настраивают его от вашего имени.
Буферизация — это не то, что вам нужно, когда вы ищете лучшую игровую оперативную память .
Буфер
Вспомним, что «поток данных» представляет собой перемещение данных из одного места в другое. Зададимся теперь вопросом о том, как именно эти данные перемещаются.
Обычно перемещение данных производят для того, чтобы, как минимум, их прочитать и сделать доступными для возможной последующей обработки. Скажем, для того, чтобы принять на основе данных какое-то решение. Скорость обработки данных компьютером ограничена, поэтому можно говорить о неких рамках, представляющих минимальное и максимальное количество данных, которое какой-то процесс может обработать за некий промежуток времени. Итак, если скорость поступления данных больше, чем скорость, с которой они потребляются, избыточным данным нужно где-то подождать своей очереди на обработку.
С другой стороны, если система способна обрабатывать данные быстрее, чем они поступают, то некоему количеству данных, прибывших раньше, чем может быть начат очередной сеанс обработки некоего пакета данных, нужно подождать прихода ещё некоторого количества данных, прежде чем все они будут отправлены на обработку.
Эта «зона ожидания» и есть буфер! Физическим представлением буфера может являться пространство в оперативной памяти, где данные, при работе с потоком, временно накапливаются, ждут своей очереди, и в итоге отправляются на обработку.
Всё это можно представить себе в виде автовокзала. На некоторых вокзалах автобусам нельзя отправляться до тех пор, пока в них не наберётся некое количество пассажиров, или до тех пор, пока не наступит время отправления. Кроме того, пассажиры могут прибывать на вокзал с различной скоростью. При этом процесс прибытия пассажиров на вокзал никто явно не контролирует.
В любом случае, пассажиры, которые прибыли раньше отправления автобуса, должны подождать, пока администрация вокзала не решит, что их автобусу пора отправляться. А пассажиры, которые прибыли, когда автобус уже полон, или когда он уже отошёл, должны подождать следующего автобуса.
Однако, если соединение особой скоростью не отличается, после обработки первого набора прибывших данных, проигрыватель будет показывать значок загрузки данных, или выводить надпись «буферизация», что означает, что он ожидает прибытия большего количества данных перед началом показа видео. А когда буфер оказывается заполненным и данные, поступившие в него, оказываются обработанными, проигрыватель выводит видео. В процессе проигрывания видео будут прибывать новые данные и ждать своей очереди в буфере. Это — как раз тот случай, когда система способна обрабатывать данные быстрее, чем они в неё поступают.
Если проигрыватель завершил воспроизведение данных, поступивших ранее, а буфер пока ещё не заполнен, надпись «буферизация» появится снова, система будет ждать, когда наберётся необходимое ей количество данных. Собственно говоря, в Node работа с буферами выглядит примерно так.
Из исходного определения буфера можно увидеть, что когда данные находятся в буфере, мы можем с ними работать. Что можно сделать с необработанными двоичными данными?
Итоги
Теперь, когда вы понимаете, что такое «буфер», «поток» и «двоичные данные», вы можете открыть документацию по буферам и осмысленно поэкспериментировать со всем тем, о чём там идёт речь.
Кроме того, для того, чтобы увидеть, как с буферами работают на практике, почитайте исходный код библиотеки zlib.js. Это — одна из библиотек ядра Node.js. Посмотрите на то, как в этой библиотеке буферы используются для взаимодействия с потоками двоичных данных. Тут работа ведётся с файлами, представляющими собой gzip-архивы.
Надеемся, то, что вы вынесли из этого материала, то, что нашли в документации, и узнали, анализируя код, поможет поднятию вашего профессионального уровня и пригодится вам в ваших проектах.
Влияние на контроллер памяти
В то время как буферизованная RAM создает меньшую электрическую нагрузку на контроллер памяти, небуферизованная RAM увеличивает нагрузку на память.
надежность
Существует высокая надежность хранимых данных в буферизованном ОЗУ. Надежность хранимых данных в небуферизованной оперативной памяти меньше.
Что такое буферная память?
Кэш-память – это зона для временного хранения данных. Здесь хранится информация, которая была считана с жесткого диска, но еще не передана для последующей обработки. Потребность в таком хранилище возникла в результате выявления большой разницы между тем, за какой период времени считываются данные, и пропускной способностью системы.
Своего рода буфером обладают и другие элементы ПК. К примеру, принтер, который может переходить к выполнению следующей задачи, но при этом распечатывать материал, который был задан ранее. Также буферной памятью обладают видеокарты, сетевые карты и т.д.
Основными техническими свойствами кэша является его емкость и быстродействие. Современные устройства по таким временным характеристикам, а также объему буфера значительно отличаются друг от друга. Чем больший объем кэш-памяти, тем больше информации в нем помещается. А значит, компьютер может выдать результаты, не обращаясь к винчестеру часто.
Таким образом, увеличивается сама производительность системы, и косвенно продляется срок работы жесткого диска. Последнее зависит непосредственно от пользователя и то, как и для чего он использует винчестер. К примеру, винчестер прослужит дольше, если смотреть фильмы в браузере, а не качать через торрент и открывать с помощью видеоплеера.
Наборы символов
Наборы символов — это заранее заданные правила, касающиеся соответствия символов их числовым кодам. Существует множество разновидностей таких правил. Например, весьма популярные — это Unicode и ASCII. JavaScript очень хорошо умеет работать с наборами символов Unicode. На самом деле, именно таблица символов Unicode используется в браузере для преобразования символа L в число 76, именно в ней записано соответствующее правило.
Итак, мы видели, как компьютер представляет символы в виде чисел. Теперь поговорим о том, как число 76 превращается в своё двоичное представление. Может показаться, что для этого достаточно преобразовать 76 из десятичной в двоичную систему счисления, но не всё так просто.
Вывод
Когда дело доходит до личного использования, небуферизованная оперативная память — лучший вариант. Даже в этом случае только определенные материнские платы могут поддерживать буферную ОЗУ. Что касается оперативной памяти, то опасности нет даже при более высокой электрической нагрузке.
Небуферизованная оперативная память дешевле и эффективнее, поэтому нет причин приобретать буферизованную оперативную память для личного использования. Все, что вам нужно знать, это то, какая оперативная память совместима с вашим ПК, и выбрать небуферизованную оперативную память.
Оперативная память обеспечивает нормальное функционирование персонального компьютера, а также быстрое выполнение программ и задач. От ее объема зависит, сколько задач одновременно сможет выполнять пользователь на своем компьютере. Есть в компьютере некоторые элементы, которые также оснащаются памятью. Рассмотрим, что такое буферная (или кэш) память, в чем заключаются ее задачи, преимущества и как рассчитать необходимый объем.
Что такое двоичные данные?
Возможно, вы уже знаете о том, что компьютеры хранят и представляют данные в двоичной форме. Двоичные данные — это просто набор единиц и нулей. Например, вот пять разных наборов двоичных данных, составленных из значений «1» и «0»:
Каждое число в двоичном значении, каждое значение «1» и «0» в наборе, называется битом (Bit, Binary digIT, двоичная цифра).
Для того чтобы работать с некими данными, компьютер должен преобразовать эти данные в их двоичное представление. Например, для того, чтобы сохранить десятичное число 12, компьютер должен преобразовать его в двоичную форму, а именно — в 1100.
Откуда компьютер знает, как производить подобные преобразования? Это — чистая математика. Это — двоичная система счисления, которую изучают в школах. Существуют правила преобразования десятичных чисел в двоичные и компьютер эти правила понимает.
Однако, числа — это не единственный тип данных, с которым мы работаем. У нас есть строки, изображения, и даже видео. Компьютер знает о том, как представлять в двоичном виде любые типы данных. Возьмём, например, строки. Как компьютер представит строку «L» в двоичном виде? Для того, чтобы сохранить строку в двоичной форме, компьютеру сначала надо преобразовать символы этой строки в числа, а затем надо конвертировать эти числа в их двоичное представление. Так, в случае с нашей строкой из одного символа, компьютеру сначала нужно преобразовать «L» в число, которое представляет этот символ. Посмотрим, как это делается в JavaScript.
Откройте консоль инструментов разработчика браузера и вставьте туда этот код:
Теперь нажмите Enter . Что вы увидели? Число 76? Это — так называемое числовое представление, или код, или кодовая точка символа L. Но откуда компьютер знает, какое число соответствует некоему символу? Откуда ему известно, что число 76 соответствует букве L?
стабильность
Буферизованная RAM обеспечивает большую стабильность в системе, чем небуферизованная RAM.
Типы кэш-памяти
Буферная память, которая располагается в одном фиксированном месте, называется кэшем с прямым отображением. Если же она находится в любом месте, тогда называется полностью ассоциативной памятью. В таком случае полностью используется объем буфера, удалить данные можно после полного заполнения, но поиск информации достаточно затруднен.
Компромиссным вариантом может послужить кэш множественный или частично-ассоциативный. В данном случае строки буфера объединяются в группы. При этом блок, который соответствует определенной группе, может размещаться в любой строке, а соответствующее значение помещается в теге. Здесь действует своего рода принцип ассоциативности, но определенный блок попадает только в ту или иную группу. Это несколько схоже с буфером прямого отображения.
Множественный ассоциативный тип буферной памяти на диске наиболее распространен, так как обладает высокой скоростью и хорошей утилизационной памятью. Но при этом кэш прямого отображения, который отличается дешевизной и простотой, уступает лишь незначительно по своим характеристикам.
Заключение
Разница между буферизованной и небуферизованной RAM состоит в том, что буферизованная RAM содержит регистр между DRAM и контроллером памяти, в то время как небуферизованная RAM не содержит регистр между DRAM и контроллером памяти.
Ссылка:
1. Понимание памяти ПК - CompTIA A 220-901 - 1.3, профессор Мессер, 29 ноября 2015 г.,
Небуферизованная и буферизованная RAM — это просто еще одна классификация, используемая для описания назначения RAM. Даже если вы знаете, как проверять типы ОЗУ на своем ПК, он покажет DDR3 или DDR4, но не скажет вам, буферизована она или нет.
Помимо классификации SRAM и DRAM, буферная и небуферизованная RAM имеют только одно основное отличие.
В большинстве случаев вы, вероятно, уже используете небуферизованную ОЗУ, но не многие люди точно знают, что такое небуферизованная ОЗУ.
Эта статья покажет вам разницу между буферизованной и небуферизованной оперативной памятью.
Приложения
Принимая во внимание, что буферизованная RAM используется для серверов и других критически важных систем, которым требуется стабильная операционная среда, небуферизованная RAM используется для обычных настольных компьютеров и ноутбуков и т. Д.
Главная задача
Буферная память предназначена для временного хранения и чтения информации. Но этот показатель не является основным при определении эффективности работы винчестера. Важным также является алгоритм обмена данных с буфером, а также насколько хорошо проводится работа над тем, чтобы предотвратить ошибки.
В буферном хранилище находится информация, которая используется чаще всего. Производительность при этом увеличивается в несколько раз, поскольку она подгружается непосредственно из кэша. Прямого обращения к жесткому диску и его секторам нет, так как отсутствует необходимость в физическом чтении. Этот процесс достаточно длительный, хотя и измеряется в миллисекундах, но данные из буфера можно получить в разы быстрее.
Что такое небуферизованная оперативная память
В небуферизованном ОЗУ нет регистра между DRAM и контроллером памяти. Итак, есть прямой доступ к контроллеру памяти. Это также создает высокую электрическую нагрузку на контроллер памяти.
Небуферизованная оперативная память больше подходит для настольных компьютеров, ноутбуков и т. Д., Поскольку она дешевле. С другой стороны, небуферизованная оперативная память не обеспечивает большой надежности хранимых данных. Это также не очень стабильно.
Что такое буферизованная RAM
Буферизованная оперативная память используется для высокопроизводительных систем, таких как серверы и системы, которые требуют стабильной операционной среды. Он редко используется на настольных компьютерах и ноутбуках. Иногда можно распознать буферизованную память в оперативной памяти, поскольку в середине модуля находятся дополнительные микросхемы.
Кодировка символов
Так же, как существуют правила, указывающие на соответствие символов их числовым кодам, есть и правила преобразования чисел в их двоичное представление. В частности, они касаются того, сколько бит нужно использовать для представления числа. Это называется кодировкой символов.
Один из наборов правил кодировки символов называется UTF-8. UTF-8 определяет правила преобразования символов в байты. Байт — это набор из восьми битов — восьми единиц и нулей. Итак, для представления кодовой точки любого символа должен быть использован набор из восьми единиц и нулей. Разберёмся с этим утверждением.
Как уже было сказано, двоичное представление десятичного числа 12 — это 1100. Итак, когда UTF-8 указывает на то, что число 12 должно быть представлено восьмибитным значением, это означает, что компьютеру нужно добавить несколько битов слева реального двоичного представления числа 12 для того, чтобы представить его в виде одного байта. В результате 12 должно быть сохранено как 00001100. А число 76 будет выглядеть как 01001100.
Именно так компьютер хранит строки или отдельные символы в двоичном виде. По аналогии с этим, у машины есть особые правила по преобразованию в двоичную форму изображений и видео. Смысл всего этого заключается в том, что компьютер хранит в двоичном виде все типы данных и всё это называется двоичными данными.
Если вам интересны тонкости кодировок символов, взгляните на этот материал, в котором всё это подробно раскрывается.
Теперь мы понимаем — что такое двоичные данные, но что такое потоки двоичных данных, которые мы упоминали выше?
Как узнать объем буферной памяти на жестком диске?
Не каждый пользователь интересуется такой характеристикой, как объем кэша (в отличие от размера жесткого диска). Обычно информация содержится на упаковке к устройству. Также можно найти данные в сети или воспользоваться программой HD Tune, которая является бесплатной.
Она предназначена для надежного удаления данных, оценки того, в каком состоянии находится устройство, а также для сканирования и исправления ошибок в системе. Дополнительно можно через нее получить информацию о жестком диске.
Чтобы узнать объем буферной памяти в Мб, нужно скачать утилиту HD Tune и запустить ее. Далее во вкладке «Информация» нужно найти строку под названием «буфер», которая и покажет, какой по объему кэш установлен в данном устройстве.
Эксперты отмечают, что для обычного пользователя ПК подойдет размер в 128 Мб. Если же компьютер используется преимущественно для игр, стоит ориентироваться на размер кэша побольше.
В продолжение рубрики "конспект админа" хотелось бы разобраться в нюансах технологий ОЗУ современного железа: в регистровой памяти, рангах, банках памяти и прочем. Подробнее коснемся надежности хранения данных в памяти и тех технологий, которые несчетное число раз на дню избавляют администраторов от печалей BSOD.
Сегодня на рынке представлены, в основном, модули с памятью DDR SDRAM: DDR2, DDR3, DDR4. Разные поколения отличаются между собой рядом характеристик – в целом, каждое следующее поколение "быстрее, выше, сильнее", а для любознательных вот табличка:
Для подбора правильной памяти больший интерес представляют сами модули:
RDIMM — регистровая (буферизованная) память. Удобна для установки большого объема оперативной памяти по сравнению с небуферизованными модулями. Из минусов – более низкая производительность;
UDIMM (unregistered DRAM) — нерегистровая или небуферизованная память — это оперативная память, которая не содержит никаких буферов или регистров;
LRDIMM — эти модули обеспечивают более высокие скорости при большей емкости по сравнению с двухранговыми или четырехранговыми модулями RDIMM, за счёт использования дополнительных микросхем буфера памяти;
HDIMM (HyperCloud DIMM, HCDIMM) — модули с виртуальными рангами, которые имеют большую плотность и обеспечивают более высокую скорость работы. Например, 4 физических ранга в таких модулях могут быть представлены для контроллера как 2 виртуальных;
Попытка одновременно использовать эти типы может вызвать самые разные печальные последствия, вплоть до порчи материнской платы или самой памяти. Но возможно использование одного типа модулей с разными характеристиками, так как они обратно совместимы по тактовой частоте. Правда, итоговая частота работы подсистемы памяти будет ограничена возможностями самого медленного модуля или контроллера памяти.
Для всех типов памяти SDRAM есть общий набор базовых характеристик, влияющий на объем и производительность:
частота и режим работы;
Конечно, отличий на самом деле больше, но для сборки правильно работающей системы можно ограничиться этими.
Понятно, что чем выше частота — тем выше общая производительность памяти. Но память все равно не будет работать быстрее, чем ей позволяет контроллер на материнской плате. Кроме того, все современные модули умеют работать в в многоканальном режиме, который увеличивает общую производительность до четырех раз.
Режимы работы можно условно разделить на четыре группы:
Single Mode — одноканальный или ассиметричный. Включается, когда в системе установлен только один модуль памяти или все модули отличаются друг от друга. Фактически, означает отсутствие многоканального доступа;
Dual Mode — двухканальный или симметричный. Слоты памяти группируются по каналам, в каждом из которых устанавливается одинаковый объем памяти. Это позволяет увеличить скорость работы на 5-10 % в играх, и до 70 % в тяжелых графических приложениях. Модули памяти необходимо устанавливать парами на разные каналы. Производители материнских плат обычно выделяют парные слоты одним цветом;
Для максимального быстродействия лучше устанавливать одинаковые модули с максимально возможной для системы частотой. При этом используйте установку парами или группами — в зависимости от доступного многоканального режима работы.
Ранг (rank) — область памяти из нескольких чипов памяти в 64 бита (72 бита при наличии ECC, о чем поговорим позже). В зависимости от конструкции модуль может содержать один, два или четыре ранга.
Узнать этот параметр можно из маркировки на модуле памяти. Например уKingston число рангов легко вычислить по одной из трех букв в середине маркировки: S (Single — одногоранговая), D (Dual — двухранговая), Q (Quad — четырехранговая).
Пример полной расшифровки маркировки на модулях Kingston:
Серверные материнские платы ограничены суммарным числом рангов памяти, с которыми могут работать. Например, если максимально может быть установлено восемь рангов при уже установленных четырех двухранговых модулях, то в свободные слоты память добавить не получится.
Перед покупкой модулей есть смысл уточнить, какие типы памяти поддерживает процессор сервера. Например, Xeon E5/E5 v2 поддерживают одно-, двух- и четырехранговые регистровые модули DIMM (RDIMM), LRDIMM и не буферизированные ECC DIMM (ECC UDIMM) DDR3. А процессоры Xeon E5 v3 поддерживают одно- и двухранговые регистровые модули DIMM, а также LRDIMM DDR4.
Тайминги или латентность памяти (CAS Latency, CL) — величина задержки в тактах от поступления команды до ее исполнения. Числа таймингов указывают параметры следующих операций:
CL (CAS Latency) – время, которое проходит между запросом процессора некоторых данных из памяти и моментом выдачи этих данных памятью;
tRCD (задержка от RAS до CAS) – время, которое должно пройти с момента обращения к строке матрицы (RAS) до обращения к столбцу матрицы (CAS) с нужными данными;
tRP (RAS Precharge) – интервал от закрытия доступа к одной строке матрицы, и до начала доступа к другой;
tRAS – пауза для возврата памяти в состояние ожидания следующего запроса;
Разумеется, чем меньше тайминги – тем лучше для скорости. Но за низкую латентность придется заплатить тактовой частотой: чем ниже тайминги, тем меньше допустимая для памяти тактовая частота. Поэтому правильным выбором будет "золотая середина".
Существуют и специальные более дорогие модули с пометкой "Low Latency", которые могут работать на более высокой частоте при низких таймингах. При расширении памяти желательно подбирать модули с таймингами, аналогичными уже установленным.
Для коррекции нерегулярных ошибок применяется ECC-память, которая содержит дополнительную микросхему для обнаружения и исправления ошибок в отдельных битах.
Метод коррекции ошибок работает следующим образом:
При записи 64 бит данных в ячейку памяти происходит подсчет контрольной суммы, составляющей 8 бит.
Когда процессор считывает данные, то выполняется расчет контрольной суммы полученных данных и сравнение с исходным значением. Если суммы не совпадают – это ошибка.
Технология Advanced ECC способна исправлять многобитовые ошибки в одной микросхеме, и с ней возможно восстановление данных даже при отказе всего модуля DRAM.
Исправление ошибок нужно отдельно включить в BIOS
Большинство серверных модулей памяти являются регистровыми (буферизованными) – они содержат регистры контроля передачи данных.
Регистры также позволяют устанавливать большие объемы памяти, но из-за них образуются дополнительные задержки в работе. Дело в том, что каждое чтение и запись буферизуются в регистре на один такт, прежде чем попадут с шины памяти в чип DRAM, поэтому регистровая память оказывается медленнее не регистровой на один такт.
Все регистровые модули и память с полной буферизацией также поддерживают ECC, а вот обратное не всегда справедливо. Из соображений надежности для сервера лучше использовать регистровую память.
Для правильной и быстрой работы нескольких процессоров, нужно каждому из них выделить свой банк памяти для доступа "напрямую". Об организации этих банков в конкретном сервере лучше почитать в документации, но общее правило такое: память распределяем между банками поровну и в каждый ставим модули одного типа.
Если пришлось поставить в сервер модули с меньшей частотой, чем требуется материнской плате – нужно включить в BIOS дополнительные циклы ожидания при работе процессора с памятью.
Для автоматического учета всех правил и рекомендаций по установке модулей можно использовать специальные утилиты от вендора. Например, у HP есть Online DDR4 (DDR3) Memory Configuration Tool.
Вместо пространственного заключения приведу общие рекомендации по выбору памяти:
Для многопроцессорных серверов HP рекомендуется использовать только регистровую память c функцией коррекции ошибок (ECC RDIMM), а для однопроцессорных — небуферизированную с ECC (UDIMM). Планки UDIMM для серверов HP лучше выбирать от этого же производителя, чтобы избежать самопроизвольных перезагрузок.
В случае с RDIMM лучше выбирать одно- и двухранговые модули (1rx4, 2rx4). Для оптимальной производительности используйте двухранговые модули памяти в конфигурациях 1 или 2 DIMM на канал. Создание конфигурации из 3 DIMM с установкой модулей в третий банк памяти значительно снижает производительность.
Список короткий, но здесь все самое необходимое и наименее очевидное. Конечно же, старый как мир принцип RTFM никто не отменял.
Читайте также: