Ang memorya ng ECC, na kilala rin bilang memorya ng Error-Correcting Code, ay may kakayahang makita at itama ang mga error sa data. Karaniwan itong ginagamit sa mga high-end na desktop computer, server, at workstation para mapahusay ang katatagan at kaligtasan ng system.
Ang memorya ay isang elektronikong aparato, at maaaring magkaroon ng mga error sa panahon ng operasyon nito. Para sa mga user na may mataas na mga kinakailangan sa katatagan, ang mga error sa memorya ay maaaring humantong sa mga kritikal na isyu. Ang mga error sa memorya ay maaaring uriin sa dalawang uri: mga hard error at soft error. Ang mga mahirap na error ay sanhi ng pagkasira o mga depekto ng hardware, at ang data ay palaging mali. Ang mga error na ito ay hindi maaaring itama. Sa kabilang banda, random na nangyayari ang mga soft error dahil sa mga salik tulad ng electronic interference malapit sa memory at maaaring itama.
Upang makita at maitama ang mga error sa malambot na memorya, ipinakilala ang konsepto ng memorya na "parity check". Ang pinakamaliit na yunit sa memorya ay medyo, na kinakatawan ng alinman sa 1 o 0. Walong magkakasunod na bit ang bumubuo sa isang byte. Ang memorya na walang parity check ay mayroon lamang 8 bits bawat byte, at kung ang anumang bit ay nag-iimbak ng maling halaga, maaari itong humantong sa maling data at mga pagkabigo ng application. Ang parity check ay nagdaragdag ng dagdag na bit sa bawat byte bilang isang error-checking bit. Pagkatapos mag-imbak ng data sa isang byte, ang walong bits ay may nakapirming pattern. Halimbawa, kung ang mga bit ay nag-iimbak ng data bilang 1, 1, 1, 0, 0, 1, 0, 1, ang kabuuan ng mga bit na ito ay kakaiba (1+1+1+0+0+1+0+1=5 ). Para sa kahit na parity, ang parity bit ay tinukoy bilang 1; kung hindi, ito ay 0. Kapag binasa ng CPU ang nakaimbak na data, idinaragdag nito ang unang 8 bits at ikinukumpara ang resulta sa parity bit. Maaaring makita ng prosesong ito ang mga error sa memorya, ngunit hindi maitama ang mga ito ng parity check. Bukod pa rito, hindi matukoy ng parity check ang mga double-bit na error, kahit na mababa ang posibilidad ng double-bit error.
Ang ECC (Error Checking and Correcting) memory, sa kabilang banda, ay nag-iimbak ng isang naka-encrypt na code sa tabi ng mga bits ng data. Kapag ang data ay nakasulat sa memorya, ang kaukulang ECC code ay nai-save. Kapag binabasa muli ang nakaimbak na data, ang naka-save na ECC code ay inihahambing sa bagong nabuong ECC code. Kung hindi sila tumugma, ang mga code ay nade-decode upang matukoy ang maling bit sa data. Ang maling bit ay itatapon, at ang memory controller ay naglalabas ng tamang data. Ang naiwastong data ay bihirang isulat pabalik sa memorya. Kung babasahin muli ang parehong maling data, uulitin ang proseso ng pagwawasto. Ang muling pagsusulat ng data ay maaaring magpakilala ng overhead, na humahantong sa isang kapansin-pansing pagbaba ng pagganap. Gayunpaman, ang memorya ng ECC ay mahalaga para sa mga server at katulad na mga application, dahil nagbibigay ito ng mga kakayahan sa pagwawasto ng error. Ang ECC memory ay mas mahal kaysa sa regular na memorya dahil sa mga karagdagang feature nito.
Ang paggamit ng ECC memory ay maaaring magkaroon ng malaking epekto sa pagganap ng system. Bagama't maaari nitong bawasan ang pangkalahatang pagganap, ang pagwawasto ng error ay mahalaga para sa mga kritikal na application at server. Bilang resulta, ang memorya ng ECC ay isang karaniwang pagpipilian sa mga kapaligiran kung saan ang integridad ng data at katatagan ng system ay higit sa lahat.
Oras ng post: Hul-19-2023