A memoria ECC, tamén coñecida como memoria de código de corrección de erros, ten a capacidade de detectar e corrixir erros nos datos. Utilízase habitualmente en computadoras de escritorio, servidores e estacións de traballo de gama alta para mellorar a estabilidade e seguridade do sistema.
A memoria é un dispositivo electrónico e poden producirse erros durante o seu funcionamento. Para os usuarios con altos requisitos de estabilidade, os erros de memoria poden provocar problemas críticos. Os erros de memoria pódense clasificar en dous tipos: erros duros e erros suaves. Os erros graves son causados por danos ou defectos de hardware e os datos son constantemente incorrectos. Estes erros non se poden corrixir. Por outra banda, os erros suaves ocorren aleatoriamente debido a factores como a interferencia electrónica preto da memoria e pódense corrixir.
Para detectar e corrixir erros de memoria suave, introduciuse o concepto de "comprobación de paridade" da memoria. A unidade máis pequena da memoria é un bit, representado por 1 ou 0. Oito bits consecutivos forman un byte. A memoria sen comprobación de paridade só ten 8 bits por byte e, se algún bit almacena un valor incorrecto, pode producir datos erróneos e fallos na aplicación. A comprobación de paridade engade un bit extra a cada byte como bit de comprobación de erros. Despois de almacenar datos nun byte, os oito bits teñen un patrón fixo. Por exemplo, se os bits almacenan datos como 1, 1, 1, 0, 0, 1, 0, 1, a suma destes bits é impar (1+1+1+0+0+1+0+1=5 ). Para a paridade par, o bit de paridade defínese como 1; en caso contrario, é 0. Cando a CPU le os datos almacenados, suma os primeiros 8 bits e compara o resultado co bit de paridade. Este proceso pode detectar erros de memoria, pero a comprobación de paridade non pode corrixilos. Ademais, a comprobación de paridade non pode detectar erros de dobre bit, aínda que a probabilidade de erros de dobre bit é baixa.
A memoria ECC (Error Checking and Correcting), pola súa banda, almacena un código cifrado xunto aos bits de datos. Cando os datos se escriben na memoria, gárdase o código ECC correspondente. Ao ler de novo os datos almacenados, o código ECC gardado compárase co código ECC recentemente xerado. Se non coinciden, os códigos son decodificados para identificar o bit incorrecto nos datos. O bit erróneo descártase entón e o controlador de memoria libera os datos correctos. Os datos corrixidos raramente se escriben de novo na memoria. Se se len de novo os mesmos datos erróneos, repítese o proceso de corrección. A reescritura de datos pode producir sobrecarga, o que provoca unha notable diminución do rendemento. Non obstante, a memoria ECC é fundamental para servidores e aplicacións similares, xa que ofrece capacidades de corrección de erros. A memoria ECC é máis cara que a memoria normal debido ás súas características adicionais.
O uso da memoria ECC pode ter un impacto significativo no rendemento do sistema. Aínda que pode reducir o rendemento xeral, a corrección de erros é esencial para aplicacións e servidores críticos. Como resultado, a memoria ECC é unha opción común en ambientes onde a integridade dos datos e a estabilidade do sistema son primordiales.
Hora de publicación: 19-Xul-2023