ECC는 단일 비트 오류 만 수정하는 것으로 보입니다.
옳은. 더 많은 오류를 수정하려면 더 많은 비트가 필요합니다. 그대로, 이미 10 비트를 사용하여 8 비트의 정보를 저장하여 메모리 칩의 20 %를 '낭비'하여 단일 비트 수정과 최대 2 비트의 오류 감지가 가능합니다.
다음과 같이 작동합니다. a 0
또는 a를 상상해보십시오 1
. 내가 읽는다면 나는 옳은 것을 읽었 으면 좋겠다. 우주 방사선이나 불량 칩으로 인해 0이 1로 바뀌면 알 수 없습니다.
과거에는 패리티로 해결하려고했습니다. 패리티는 저장된 8 비트 당 9 번째 비트를 추가했습니다. 우리는 바이트에 몇 개의 0과 몇 개의 1이 있는지 확인했습니다. 아홉 번째는 짝수로 설정되었습니다. (패리티도) 바이트를 읽고 숫자가 틀린 경우 무언가 잘못되었다는 것을 알 수 있습니다. 그래도 어떤 비트가 잘못되었는지 모릅니다.
ECC가 확장되었습니다. 단일 비트가 플립 된 시점을 발견하기 위해 10 비트와 복잡한 알고리즘을 사용합니다. 또한 원래 값이 무엇인지 알고 있습니다. 그 방법을 설명하는 매우 간단한 방법은 다음과 같습니다.
모든 교체 0
에들 000
. 모든 교체 1
에들 111
.
이제 6 가지 조합을 읽을 수 있습니다.
000
001
010
100
101
111
우리는 원래 저장된 것이 100 % 확실하지 않습니다. 우리가 읽는 000
다면 000
그것은 우리가 기대했던 것일 수도 있고, 또는 세 비트 모두가 뒤집 혔을 수도 있습니다. 후자는 거의 없을 것입니다. 비트는 무작위로 뒤집 히지 않지만 발생합니다. 쉬운 계산을 위해 열 번에 하나씩 발생한다고 가정하십시오 (실제로는 훨씬 적습니다). 올바른 값을 읽을 수있는 다음과 같은 가능성이 있습니다.
000
-> 000
(99.9 % 확신) 또는 트리플 플립 (1/1000 확률)
001
-> 무언가 잘못되었다는 것을 알고 있습니다. 그러나 그것은
000
1 비트 뒤집 혔거나 (1:10 기회),
111
2 비트 넘겼습니다 (1 : 100 기회). 따라서 000
오류를 읽지 만 기록하는 것처럼 취급하겠습니다 .
010
-> 위와 동일합니다.
100
-> 위와 동일합니다.
011
-> 위와 동일하지만, 111
101
-> 위와 동일하지만, 111
110
-> 위와 동일하지만, 111
111
-> 111
(99.9 % 확신) 또는 트리플 플립 (1/1000 확률)
111
-> 000
(99.9 % 확신) 또는 트리플 플립 (1/1000 확률)
ECC는 유사한 트릭을 수행하지만 더 효율적입니다. 8 비트 (1 바이트)의 경우 10 비트 만 사용하여 감지하고 수정합니다.
ECC 등록 RAM은 워크 스테이션 / 서버 보드에서만 사용할 수 있습니다. 버퍼링되지 않은 ECC는 Intel Xeon lga1155 또는 AMD AM3 +에서 사용할 수 있습니다.
ECC 부분이 무엇인지, 이제 등록 된 부분과 버퍼되지 않은 부분을 이미 언급했습니다.
최신 CPU에서 메모리 컨트롤러는 오래 전에 AMD Opteron 칩과 Intel의 Core i 시리즈에서 시작하여 CPU 다이에 있습니다. 그런 다음 대부분의 데스크탑 CPU는 RAM이있는 DIMM 소켓과 직접 통신합니다. 작동하며 추가 논리가 필요하지 않습니다. 메모리 컨트롤러에서 RAM으로 지연되는 시간이 없기 때문에 구축 비용이 저렴하고 속도가 빠릅니다.
그러나 메모리 컨트롤러는 제한된 전류 만 고속으로 구동 할 수 있습니다. 이는 마더 보드에 추가 할 수있는 메모리 소켓 수에 제한이 있음을 의미합니다. (더 복잡하게, 얼마나 많은 DIMM을 사용할 수 있는지, 메모리 순위로 이어집니다. 이미 길었으므로 생략하겠습니다).
서버 보드에서는 종종 데스크탑 시스템보다 더 많은 메모리를 사용하려고합니다. 따라서 "레지스터"버퍼가 메모리에 추가됩니다. DIMM의 칩에서 읽은 내용이 먼저이 버퍼에 복사됩니다. 클럭 사이클 후이 버퍼는 메모리 컨트롤러에 연결하여 데이터를 전송합니다.
이 버퍼 / 레지스터는 작업을 지연시켜 메모리를 느리게 만듭니다. 이는 바람직하지 않으므로 메모리 뱅크가 많은 보드에서만 사용 / 필요합니다. 대부분의 소비자 보드는이를 필요로하지 않으며 대부분의 소비자 CPU는이를 지원하지 않습니다.
직접 연결된 비 버퍼 RAM과 버퍼 / 등록 RAM은 하나가 다른 것보다 낫거나 나쁜 경우는 아닙니다. 얼마나 많은 메모리 슬롯을 가질 수 있는지에 따라 다른 절충점이 있습니다. 등록 된 RAM은 약간의 속도 (및 비용)로 더 많은 RAM을 허용합니다. 가능한 많은 메모리가 필요한 대부분의 경우 추가 메모리는 약간 느린 속도로 실행되는 RAM을 보완합니다.
내가 가지고있는 의문은 (주로 asus am3 + 보드에 관한 것입니다) ECC-unbuffered RAM은 ECC 등록 RAM만큼이나 안전합니다 (안전성과 신뢰성의 관점에서)? 아니면 더 나쁜 선택입니까? 나는 속도를별로 신경 쓰지 않습니다. **
안전성과 안정성의 관점에서 ECC-unbuffered와 ECC-registered는 동일합니다.
자세한 내용 : 서버는 최대 24 x 3 ½ ''드라이브의 서버 케이스를 사용하며 가능한 적게 소비해야합니다.
24 개의 드라이브는 많은 전력을 소비합니다. 드라이브에 따라 다릅니다. 140GB 15K RPM SAS 드라이브는 1TB SATA 7k2 디스크와 마찬가지로 유휴 상태에서 불과 10 와트 만 소비합니다. 둘 다 더 많이 그립니다.
유휴 상태에서 24x24x24W를 곱하면 240W를 의미하므로 디스크 플래터가 회전하면서 공기 저항을 극복 할 수 있습니다. 사용중인 것을 두 배로하십시오.
LGA1155는 그런 의미에서 다른 두 배 (> 80W)보다 2 배 더 나은 내기 (TDP ~ 20-95W) 인 것으로 보인다.
인텔은 쓰기 시점과 언급 한 CPU에 대해 저전력 CPU에서 더 좋습니다.
어떤 제안이라도 환영합니다. 유휴 상태에서 120W 미만 (24 개 중 10 개의 하드 디스크 사용)을 가정 해 봅시다.
FreeBSD를 원한다면 ZFS를 열심히 살펴보십시오. 훌륭 할 수 있습니다. 더 많은 고급 기능 (예 : 중복 제거 및 / 또는 압축)은 심각한 CPU 성능을 사용하며 충분한 메모리를 원합니다. ZRAID와의 기본 사용을위한 ZFS는 언급 한 CPU 세트와 16GB 모두에서 잘 작동하지만 중복 제거와 같은 기능을 켜면 디스크 용량에 필요한 권장 메모리를주의 깊게 살펴 봐야합니다. 일부 안내서 에서는 스토리지 TB 당 최대 5GB를 권장 합니다 .
두 가지 더 :
- 드라이브 연결에 대해 아무것도 보지 못했습니다. 일부 보드는 최대 10 개의 SATA 포트로 연결될 수 있습니다. 그러나 그 이상을 위해서는 추가 기능 카드가 필요합니다. 하드웨어 RAID를 고려한다면 처음부터 계획하는 것이 가장 좋습니다.
- 드라이브 장애 : SATA 포트 멀티 플라이어 를 사용 하는 경우 SATA 드라이브에 장애가 발생할 경우 어떻게 작동하는지주의 깊게 살펴보십시오. 종종 예쁘지 않습니다. 홈 설정에는 큰 문제는 아니지만 엔터프라이즈 급에는 큰 문제가 아닙니다. 개별 드라이브가 오류를 처리하는 방법도 고려해야합니다. 일부 드라이브가 "NAS"또는 "RAID"용으로 표시된 이유는 일반 드라이브와 다르게 오류를 처리하기 때문입니다. RAID가 없으면 드라이브가 가능한 한 여러 번 재 시도되기를 원합니다. RAID를 사용 하면 드라이브가 빨리 고장 나기 를 원하므로 다른 사본에서 읽을 수 있습니다.