ECC 메모리란 무엇입니까?

일부 RAM 또는 Random-Access 메모리는 ECC 메모리로 광고됩니다. ECC는 Error Correcting Code의 약자로 메모리의 오류를 식별하고 수정하는 과정입니다. RAM에 오류가 있으면 데이터가 손상되거나 변경되어 장치 충돌 및 보안 취약성이 발생할 수 있습니다. ECC RAM은 일반적으로 소비자용 PC 하드웨어와 호환되지 않습니다.

메모리 오류란 무엇입니까?

메모리 오류는 메모리에 저장된 값이 변경되는 문제입니다. RAM의 데이터는 값이 1 또는 0인 바이너리로 저장됩니다. 1의 값이 0으로 바뀌거나 그 반대로 바뀌면 "비트 플리핑"이라는 프로세스에서 RAM에 저장되는 데이터가 변경됩니다.

예를 들어 변경된 비트를 사용하여 스프레드시트에 값을 저장할 수 있습니다. 이 경우 스프레드시트의 값이 완전히 다른 숫자로 변경될 수 있습니다. 예를 들어 경제 예측을 변경하는 것과 같이 계산 결과에 영향을 미칩니다. 사업. 다른 경우에 변경된 비트는 보안 기능을 비활성화하거나 프로그램 실행 방법을 변경하는 오타를 생성할 수 있습니다. 이 두 가지 예는 ECC 메모리를 사용하지 않고 감지하고 해결하기가 매우 어렵습니다. 극단적인 시나리오에서 단일 비트가 뒤집혀도 시스템 충돌을 일으키는 치명적인 오류가 발생할 수 있습니다.

비트 플립에는 많은 잠재적인 원인이 있으며 가장 일반적인 원인은 주로 우주선 사건에 의해 생성된 중성자에 의해 발생하는 배경 복사의 결과입니다. 우주선은 거의 빛의 속도로 이동하는 고에너지 입자, 일반적으로 양성자입니다. 그들은 태양 및 기타 고에너지 천체를 포함한 항성체에서 방출됩니다. 우주선이 원자에 부딪히면 중성자 소나기와 다른 아원자 입자가 생성되고 이 중성자는 계속해서 2차 상호작용을 하게 됩니다.

이러한 2차 중성자 상호작용은 비트 플리핑 오류의 주요 원인으로 여겨집니다. 우주선은 해발 1.5km에서 3.5배 증가하고 여객기의 순항 고도에서 300배 증가하여 더 높은 고도에서 더 일반적입니다. 고도에서 이러한 증가된 위험은 추가적인 신뢰성 조치를 필요로 합니다.

메모리 오류는 얼마나 흔한가요?

대부분의 사람들은 컴퓨터가 매일 충돌하는 것을 보지 않으므로 이것이 주로 이론적인 위험이라고 생각하기 쉽습니다. 하이퍼스케일 데이터 센터의 연구는 비트 플리핑 사고의 비율을 분석하는 데 사용되었습니다. Google이 데이터 센터 전반에 걸쳐 수행한 연구에 따르면 1.8시간마다 RAM 기가바이트당 약 1개의 단일 비트 오류가 발생하는 것으로 나타났습니다.

1997년 토성을 여행하기 위해 시작된 NASA의 Cassini-Huygens 임무는 각각 2.5Gb RAM이 장착된 동일한 비행 컴퓨터 2대로 구성되었습니다. 첫 2년 반 동안 우주선은 하루에 280개의 단일 비트 오류를 ​​일관되게 관찰했습니다. Cassini-Huygens가 태양 플레어의 경로에 있던 어느 날, 비트가 4배 증가했습니다. 대부분의 비트 플리핑의 원인이 태양이라는 추가 증거를 제공하면서 오류가 관찰되었습니다. 문제.

RAM 모듈의 밀도가 계속해서 증가하면 이후 버전의 RAM이 비트 플립에 점점 더 취약해질 것이라는 우려가 있었습니다. 보다 최근의 연구에 따르면 프로세스 형상이 감소함에 따라 오류가 감소했기 때문에 실제로는 반대의 경우가 있습니다.

ECC 메모리는 오류로부터 어떻게 보호합니까?

ECC 메모리는 해밍 코드와 같은 오류 수정 코드를 사용하여 RAM의 단일 비트 오류를 ​​수정합니다. 더블 비트 오류는 감지할 수 있지만 수정되지는 않습니다. 해밍 오류 수정 코드는 패리티 비트 배열을 사용하여 작동합니다. 이러한 패리티 비트를 함께 사용하여 데이터 비트가 변경되었는지 감지할 수 있습니다. 비트가 뒤집힌 것으로 식별되면 자동으로 다시 변경됩니다.

팁: 단일 비트 오류는 단일 비트만 반전될 때 비트 반전 사고입니다. double0bit 오류에서는 두 비트가 뒤집힙니다. 두 비트는 동일한 사건에서 뒤집힐 필요가 없으며, 두 번째 비트 플립은 첫 번째 뒤집힌 비트가 수정되기 전에만 발생하면 됩니다.

해밍 오류 정정 코드에는 필요한 것보다 하나 더 많은 패리티 비트가 포함됩니다. 이 추가 패리티 비트는 코드에 이중 비트 오류 발생을 감지하는 기능을 제공하지만 이러한 오류는 수정할 수 없습니다.

오류 감지 및 수정을 수행하는 프로세스는 RAM 스틱에 탑재된 메모리 컨트롤러에서 수행됩니다.

소비자 가용성 및 지원

대부분의 소비자 등급 PC 하드웨어는 ECC 메모리를 지원하지 않습니다. 이는 부분적으로 서버 하드웨어와 소비자 하드웨어를 인위적으로 구별하는 방법입니다. 그러나 ECC RAM은 비용이 더 많이 들고 약간 느리게 실행됩니다. 또한 비트 플리핑 오류가 시스템 충돌의 주요 원인이 아니기 때문에 가정 소비자에게 제공할 추가 안정성은 최소화됩니다.

Intel의 소비자 및 매니아급 CPU는 ECC 메모리를 지원하지 않으며 Xeon 제품군 CPU와 같은 서버급 CPU만 지원합니다. AMD의 소비자 등급 CPU는 ECC를 지원하지 않지만, 워크스테이션과 서버 등급 CPU인 Threadripper와 EPYC는 각각 ECC 메모리를 지원합니다.