ECC, кажется, исправляет только ошибки одного бита.
Верный. Для исправления большего количества ошибок потребуется больше битов. На самом деле, вы уже используете 10 бит для хранения 8 бит информации, «тратя» 20% микросхем памяти на коррекцию одного бита и до двух бит обнаружения ошибок.
Работает следующим образом. Представьте себе 0
или 1
. Если я читаю либо, то я просто надеюсь, что прочитал правильно. Если 0 переворачивается на 1 из-за какого-то космического излучения или плохого чипа, я никогда не узнаю.
В прошлом мы пытались решить это с паритетом. Четность добавляла девятый бит на 8 сохраненных битов. Мы проверили, сколько нулей и сколько 1 в байте. Девятое было установлено, чтобы сделать это четное число. (для четного контроля) Если вы когда-либо читали байт, а число было неправильным, значит, вы знали, что что-то не так. Вы не знаете, какой бит был неправильным, хотя.
ECC расширил это. Он использует 10 бит и сложный алгоритм, чтобы обнаружить, когда один бит перевернулся. Он также знает, каково было первоначальное значение. Очень простой способ объяснить, как это происходит:
Заменить все 0
s на 000
. Заменить все 1
s на 111
.
Теперь вы можете прочитать шесть комбинаций:
000
001
010
100
101
111
Мы никогда не уверены на 100%, что было изначально сохранено. Если мы читаем, 000
то это могло быть именно тем, 000
что мы ожидали, или все три бита могли перевернуться. Последнее очень маловероятно. Биты случайно не переворачиваются, хотя это случается. Допустим, это случается один раз в десять для некоторых простых вычислений (в действительности это намного меньше). Это дает следующие шансы на чтение правильного значения:
000
-> Либо 000
(уверен на 99,9%), либо в три раза (шанс 1/1000)
001
-> Мы знаем, что что-то пошло не так. Но это либо было,
000
и один бит перевернулся (шанс 1:10), либо так и было,
111
и два бита перевернулись (шанс 1: 100). Итак, давайте относимся к этому, как будто мы читаем, 000
но регистрируем ошибку.
010
-> То же, что и выше.
100
-> То же, что и выше.
011
-> То же, что и выше, но при условии, что это 111
101
-> То же, что и выше, но при условии, что это 111
110
-> То же, что и выше, но при условии, что это 111
111
-> Либо 111
(уверен на 99,9%), либо в три раза (шанс 1/1000)
111
-> Либо 000
(уверен на 99,9%), либо в три раза (шанс 1/1000)
ECCs делает подобные трюки, но делает это более эффективно. Для 8 бит (один байт) они используют только 10 бит для обнаружения и исправления.
Зарегистрированная ECC RAM может использоваться только с платами рабочих станций / серверов. ECC без буферизации может использоваться на Intel Xeon lga1155 или AMD AM3 + на платах Asus.
Я уже упоминал, что часть ECC была, теперь зарегистрированная часть против небуферизованной части.
В современных процессорах контроллер памяти находится на кристалле процессора, начиная с давних пор для чипов AMD Opteron и с серией Core i для Intel. Большинство процессоров для настольных ПК взаимодействуют напрямую с разъемами DIMM, содержащими оперативную память. Это работает, и никакой дополнительной логики не требуется. Это дешево для сборки, и скорость высока, потому что нет никаких задержек при переходе от контроллера памяти к оперативной памяти.
Но контроллер памяти может управлять ограниченным током только на высоких скоростях. Это означает, что существует ограничение на количество сокетов памяти, которые можно добавить к материнской плате. (И чтобы сделать его более сложным, к тому, сколько модулей DIMM можно использовать, что приводит к разрядам памяти. Я пропущу это, так как это уже долго).
На серверных платах вы часто хотите использовать больше памяти, чем настольные системы. Поэтому буферный регистр добавляется в память. Чтения из микросхем DIMM сначала копируются в этот буфер. Через несколько часов этот буфер подключается к контроллеру памяти для передачи данных.
Этот буфер / регистр задерживает вещи, делая память медленнее. Это нежелательно, и поэтому оно используется / требуется только на платах с большим количеством банков памяти. Большинство потребительских плат не нуждаются в этом, и большинство потребительских процессоров не поддерживают это.
Непосредственно подключенная небуферизованная ОЗУ по сравнению с буферизованной / зарегистрированной ОЗУ не является случаем, когда одно лучше или хуже другого. У них просто есть различные компромиссы с точки зрения того, сколько слотов памяти вы можете иметь. Зарегистрированная RAM позволяет больше оперативной памяти за счет некоторой скорости (и, возможно, за счет). В большинстве случаев, когда вам нужно как можно больше памяти, эта дополнительная память более чем компенсирует работу ОЗУ с несколько меньшей скоростью.
У меня возникло сомнение (в основном относительно платы asus am3 +): ОЗУ без буферизации ECC так же хорошо, как ОЗУ, зарегистрированное ECC (с точки зрения безопасности и надежности)? Или это худший выбор. Меня не волнует скорость. **
С точки зрения безопасности и стабильности ECC-небуферизованные и ECC-зарегистрированные одинаковы.
Более подробная информация: сервер будет использовать серверный корпус с дисками до 24 x 3 ½ '' и должен потреблять как можно меньше.
24 накопителя потребляют много энергии. Сколько зависит от дисков. Мой диск SAS 140 ГБ 15K RPM потребляет всего 10 Вт на холостом ходу, так же как и диск SATA 7k2 1 ТБ. При использовании оба рисуют больше.
Умножьте это на 24. 24x10 Вт на холостом ходу означает 240 Вт, просто поддерживая вращение дисков и преодолевая сопротивление воздуха. Двойной, что для использования.
LGA1155 кажется в этом смысле лучшей ставкой (TDP ~ 20-95 Вт) по сравнению с остальными (> 80 Вт) при удвоении цены.
Intel лучше справляется с процессорами с низким энергопотреблением, на момент написания и с процессорами, о которых вы упомянули.
Любое предложение приветствуется. Скажем, на холостом ходу менее 120 Вт (~ с 10 жесткими дисками из 24).
Если вы работаете с FreeBSD, присмотритесь к ZFS. Это может быть здорово. Многие из его более продвинутых функций (например, дедупликация и / или сжатие) используют серьезную мощность процессора и требуют много памяти. ZFS для базового использования с ZRAID отлично подойдет как для упомянутых вами наборов процессоров, так и для 16 ГБ, но если вы включите такие функции, как дедупликация, вам следует внимательно изучить рекомендуемую память, необходимую для вашей емкости диска; в некоторых руководствах рекомендуется использовать до 5 ГБ на ТБ памяти .
Еще две вещи:
- Я не видел ничего о подключении дисков. Некоторые платы могут иметь до 10 портов SATA. Но для всего этого вам понадобятся дополнительные карты. Если вы рассматриваете аппаратный RAID, то лучше спланировать это с самого начала.
- Отказ диска. Если вы используете множители портов SATA, внимательно посмотрите, как они работают в случае отказа диска SATA. Это часто не красиво. Не большая проблема для домашней установки, но не для корпоративного уровня. Возможно, вам придется подумать о том, как отдельные диски обрабатывают ошибки тоже. Причина, по которой некоторые диски помечены для использования в качестве «NAS» или «RAID», заключается в том, что они обрабатывают ошибки иначе, чем обычные диски. Без RAID вы хотите, чтобы диск повторялся столько раз, сколько это возможно. С RAID вы хотите, чтобы диск быстро выходил из строя , чтобы вы могли читать из другой копии.