Комплектующие, запчасти и расходники для серверов, компьютеров и оргтехники

Проезд Березовой рощи, 8 (м.Полежаевская или м.Динамо)

Время работы: Пн-Пт 10-18

Регистровая и буферизованная оперативная память

Всем известно, что в современных вычислительных устройствах есть оперативная память, где информация хранится только во время работы. Выполнена оперативная память в виде модулей с микросхемами (чипами), имеющих набор ячеек для хранения битовой информации. Каждая ячейка памяти предназначена для хранения нуля или единицы. 8 таких ячеек хранят 8 бит (это уже 1 байт). Изготавливаются такие чипы на основе полупроводников. Но реализация модулей оперативной памяти для серверов и ПК имеет ряд серьезных различий, которые мы и рассмотрим в этой статье.

Память с контролем чётности.

На раннем этапе развития компьютерной техники ещё не очень хорошо была развита технология производства полупроводниковых элементов. Поэтому существовала вероятность потери информации при записи в какую-либо ячейку памяти: записывали в неё единичку, а она и не записалась (остался ноль). Чтобы хоть как-то контролировать процесс записи в память, была придумана простая технология проверки данных.

Перед записью одного байта (8 бит) вычислялась сумма всех бит в этом байте. Но запоминалась не вся контрольная сумма (для экономии памяти), а только её последний бит, значение которого (ноль или единица) запоминалось в специально отведённом для него месте. Значение этого бита (0 или 1) зависело от того, чётная или нечётная сумма битов получалась при сложении. Поэтому этот бит стали называть битом чётности (parity bit).

После записи исходного байта в ячейки памяти высчитывалась сумма бит такого сохранённого байта, и чётность этой суммы сравнивалась с предыдущей (значение которой сохранено в бите чётности). Если чётности контрольных сумм совпадали, то считалось, что запись в память выполнена успешно. А если не совпадали, то генерировалось сообщение об ошибке. Эта технология получила название контроль чётности.

Память без контроля чётности.

Со временем стали появляться более надёжные микросхемы. Вероятность возникновения ошибок в них становилась меньше. Одновременно происходило и удешевление электронных компонентов. Производство и продажи компьютеров приобрели массовый характер. Для некоторых пользователей ошибки в работе компьютеров были не критичными. Поэтому на рынок стали выпускаться модели, в которых использовалась память без контроля чётности. Избавление от "лишнего" девятого бита (на каждый байт) и "лишних" затрат на вычисление контрольных сумм позволило несколько снизить стоимость компьютеров и сделать их доступными для широких масс потребителей. Такие компьютеры стали очень популярны среди настольных (desktop) систем.

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

Память с контролем и коррекцией ошибок.

Технология контроля чётности не является совершенной. Она неспособна обнаружить, например, "пропадание" одновременно 2-х битов (чётность в таком случае не меняется). Поэтому решено было каждый, записываемый в память бит данных, включать не в одну контрольную сумму, а в несколько. При такой системе контроля стало возможным обнаруживать одновременно несколько ошибок, их адреса, и, кроме того, исправлять эти ошибки. Такая технология получила название Error Correction Code (ECC), так как вычислялся код, позволяющий корректировать ошибки.

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

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

Буферизованная память (buffered memory).

В вычислительных системах управление записью/чтением в память и из неё осуществляется специальным контроллером памяти. Этот контроллер должен иметь доступ ко всем ячейкам памяти и обеспечивать передачу информации от шины к памяти и обратно. В настольных системах часто используются процессоры со встроенным контроллером памяти. Некоторыми недостатками такой реализации являются следующие:

- контроллер один, а контролировать надо много ячеек памяти - есть ограничение на количество одновременно обслуживаемых банков памяти при сохранении высокого быстродействия;

- по одной шине данных от процессора или других компьютерных компонентов надо передавать и управляющие команды и данные - ко всем используемым модулям памяти (растет нагрузка на шину).

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

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

Со временем появились и полностью буферизованные модули памяти (FB - fully buffered), в буфер (регистр) которых стали передаваться последовательно в одном потоке не только сигналы управления, но и данные. При использовании промежуточного буфера происходит некоторое замедление в работе памяти, потому что для записи в буфер требуется один промежуточный такт.

Стоит такая память намного дороже нерегистровой (unregistered) за счёт наличия дополнительной микросхемы регистра и использования сложных технологий. Но, из-за своей эргономичности, возможности наращивания объёма, а также из-за контроля над ошибками, широко используется в серверных системах, где очень важна стабильная и безошибочная работа с большими объёмами данных.

Вопросы совместимости.

Буферизованные модули памяти на ранних стадиях своего развития использовались как в настольных, так и серверных системах, но появление регистровой памяти исключило возможность использования её в ПК.

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