ECC (error correction [or correcting] code – error checking and correcting)
ECC[이씨씨]는 읽혀지거나 전송되고 있는 데이터에 대해 오류가 생겼는지를 검사하고, 필요하면 전송 중에 정정될 수 있게 한다. 이것은 오류를 검출할 뿐 아니라 정정한다는 측면에서 패리티 검사와는 다르다. ECC는 데이터 속도의 증가와 함께, 점차 데이터 저장이나, 전송을 위한 하드웨어 내에도 적용되고 있다. 아래에 데이터 저장장치에서 ECC가 어떻게 동작하는지를 보였다. 하나의 데이터 단위, 즉 “워드”가 램이나 보조기억장치에 저장될 때, 그 워드 내의 비트 순서를 나타내는 코드가 계산되어 그 데이터와 함께 저장된다. 64 비트 길이의 워드 각각에는 이 코드를 저장하는데 필요한 여분의 7 비트가 소요된다. 데이터 단위를 읽어낼 때, 지금 읽으려고 하는 워드의 코드를 원래의 알고리즘을 이용해 다시 계산한다. 새로 생성된 코드와 그 워드가 저장될 때 생성되었던 코드를 비교한다. 만약 두 코드가 일치하면, 그 데이터에는 오류가 없다고 보고, 내보낸다. 그러나 만약 그 코드들이 일치하지 않으면, 코드 비교를 통해 잘못되었거나 빠진 비트들을 결정한 뒤, 그 비트를 정정한다. 그 데이터가 아직 저장 장치 내에 있을 때에는 정정을 위한 시도가 일어나지 않는다. 결국, 그것은 새로운 데이터에 의해 덮어씌워질 것이며, 그 오류들은 일시적이라는 가정 하에 부정확한 비트들은 버려진다. 시스템이 꺼졌다 켜졌다를 계속해서 반복한 후, 같은 저장장소에서 반복되는 어떤 오류는 영구적인 하드웨어 에러를 의미하므로, 반복적인 에러가 나는 위치를 나타내는 메시지가 로그에 기록되거나 시스템 관리자에게 보내어진다.