რა არის ECC მეხსიერება?

ზოგიერთი ოპერატიული მეხსიერება, ან შემთხვევითი წვდომის მეხსიერება, რეკლამირებულია როგორც ECC მეხსიერება. ECC ნიშნავს შეცდომის კორექტირების კოდს და არის მეხსიერებაში შეცდომების იდენტიფიცირებისა და გამოსწორების პროცესი. RAM-ში შეცდომებმა შეიძლება გამოიწვიოს მონაცემების კორუფცია ან შეცვლა, რამაც შეიძლება გამოიწვიოს მოწყობილობის ავარია და უსაფრთხოების დაუცველობაც კი. ECC RAM ჩვეულებრივ არ არის თავსებადი სამომხმარებლო კლასის კომპიუტერის აპარატურასთან.

რა არის მეხსიერების შეცდომები?

მეხსიერების შეცდომები არის პრობლემა, როდესაც იცვლება მეხსიერებაში შენახული მნიშვნელობა. RAM-ში მონაცემები ინახება ორობითად, მნიშვნელობებით 1 ან 0. თუ 1-ის მნიშვნელობა გადაირთვება 0-ზე ან პირიქით, პროცესში, რომელსაც ეწოდება "bit-flipping", RAM-ში შენახული მონაცემები იცვლება.

მაგალითად, შეცვლილი ბიტი შეიძლება გამოყენებულ იქნას მნიშვნელობის შესანახად ცხრილებში. ამ შემთხვევაში, ელცხრილის მნიშვნელობა შეიძლება შეიცვალოს სრულიად განსხვავებულ რიცხვზე, რომელიც გავლენას მოახდენს ნებისმიერი გამოთვლების შედეგზე, მაგალითად ა-ის ეკონომიკური პროგნოზების შეცვლაზე ბიზნესი. სხვა შემთხვევებში, შეცვლილი ბიტი შეიძლება გამორთოს უსაფრთხოების ფუნქცია ან შექმნას შეცდომა, რომელიც ცვლის პროგრამის გაშვებას. ამ ორი მაგალითის აღმოჩენა და გადაჭრა უკიდურესად რთულია ECC მეხსიერების გამოყენების გარეშე. ექსტრემალურ სცენარში, ერთი ბიტის გადაბრუნებამ შეიძლება გამოიწვიოს კატასტროფული შეცდომა, რომელიც იწვევს სისტემის ავარიას.

ბიტის გადატრიალებას მრავალი პოტენციური მიზეზი აქვს, ყველაზე გავრცელებული მიზეზი არის ფონური გამოსხივების შედეგი, რომელიც ძირითადად გამოწვეულია კოსმოსური სხივების მოვლენებით შექმნილი ნეიტრონებით. კოსმოსური სხივი არის მაღალი ენერგიის ნაწილაკი, როგორც წესი, პროტონი, რომელიც მოძრაობს თითქმის სინათლის სიჩქარით. მათ ასხივებენ ვარსკვლავური სხეულები, მათ შორის მზე და სხვა მაღალი ენერგიის ასტრონომიული ობიექტები. როდესაც კოსმოსური სხივი ატომს ეჯახება, იქმნება ნეიტრონების წვიმა და სხვა ქვეატომური ნაწილაკები, ეს ნეიტრონები შემდეგ აგრძელებენ მეორად ურთიერთქმედებას.

ითვლება, რომ ეს მეორადი ნეიტრონული ურთიერთქმედება არის ბიტის გადაბრუნების შეცდომების ძირითადი წყარო. კოსმოსური სხივები უფრო ხშირია მაღალ სიმაღლეებზე, 3,5-ჯერ მატება ზღვის დონიდან 1,5 კმ-ზე და 300-ჯერ მატება ავიახაზების საკრუიზო სიმაღლეზე. ეს გაზრდილი რისკი სიმაღლეზე საჭიროებს დამატებით სანდოობის ზომებს.

რამდენად ხშირია მეხსიერების შეცდომები?

ადამიანების უმეტესობა ვერ ხედავს, რომ მათი კომპიუტერი ყოველდღე ავარია, ასე რომ, ადვილი იქნება ვიფიქროთ, რომ ეს, პირველ რიგში, თეორიული რისკია. ჰიპერმასშტაბიანი მონაცემთა ცენტრების კვლევა გამოყენებული იქნა ბიტის გადაბრუნების ინციდენტების სიჩქარის გასაანალიზებლად. Google-ის მიერ ჩატარებულმა კვლევამ მის მონაცემთა ცენტრებში აჩვენა შეცდომის სიხშირე დაახლოებით 1 ერთბიტიანი შეცდომის ერთ გიგაბაიტზე ყოველ 1.8 საათში.

ნასას მისია Cassini-Huygens, რომელიც 1997 წელს დაიწყო სატურნში გასამგზავრებლად, კონფიგურირებული იყო ორი იდენტური ფრენის კომპიუტერით, თითოეული 2,5 გბ ოპერატიული მეხსიერებით. მოგზაურობის პირველი ორწელიწადნახევრის განმავლობაში ხომალდი აკვირდებოდა 280 ერთ ბიტიან შეცდომას დღეში. ერთი დღის განმავლობაში, როდესაც კასინი-ჰაიგენსი მზის აფეთქების გზაზე იყო, ბიტი ოთხჯერ გაიზარდა. დაფიქსირდა შეცდომები, რაც დამატებით მტკიცებულებას იძლევა იმის თაობაზე, რომ მზე იყო ყველაზე ბიტ-მობრუნების მიზეზი საკითხები.

არსებობდა შეშფოთება, რომ RAM-ის მოდულების სიმკვრივის მუდმივი მატება გამოიწვევდა RAM-ის შემდგომი ვერსიების უფრო და უფრო დაუცველობას ბიტ-მოდულების მიმართ. ბოლოდროინდელმა კვლევებმა აჩვენა, რომ სინამდვილეში საპირისპიროა, რადგან პროცესის გეომეტრიის შემცირების გამო შეცდომები შემცირდა.

როგორ იცავს ECC მეხსიერება შეცდომებისგან?

ECC მეხსიერება იყენებს შეცდომის გამომსწორებელ კოდებს, როგორიცაა Hamming კოდები, RAM-ში ერთი ბიტიანი შეცდომების გამოსასწორებლად. ორმაგი ბიტიანი შეცდომების აღმოჩენა შესაძლებელია, მაგრამ არა გამოსწორება. Hamming შეცდომის გამოსწორების კოდები მუშაობს პარიტეტის ბიტების მასივის გამოყენებით. ამ პარიტეტის ბიტების ერთად გამოყენება შესაძლებელია იმის დასადგენად, რომ მონაცემთა ბიტი შეიცვალა. თუ ბიტი ამოტრიალებულია, ის ავტომატურად იცვლება უკან.

რჩევა: ერთი ბიტიანი შეცდომა არის ბიტის გადაბრუნების შემთხვევა, როდესაც მხოლოდ ერთი ბიტი გადატრიალებულია. Double0bit შეცდომებში ორი ბიტი გადატრიალებულია. ორი ბიტის გადაბრუნება არ არის საჭირო ერთსა და იმავე ინციდენტში, მეორე ბიტი უნდა მოხდეს მხოლოდ პირველი გადაბრუნებული ბიტის გამოსწორებამდე.

ერთი მეტი პარიტეტის ბიტი, ვიდრე საჭიროა, შედის Hamming შეცდომის გამოსწორების კოდებში. ეს დამატებითი პარიტეტის ბიტი კოდს აძლევს შესაძლებლობას აღმოაჩინოს ორმაგი ბიტიანი შეცდომები, თუმცა ამ შეცდომების გამოსწორება შეუძლებელია.

შეცდომის გამოვლენისა და გამოსწორების პროცესი ხორციელდება მეხსიერების კონტროლერზე, RAM ჯოხზე.

მომხმარებლის ხელმისაწვდომობა და მხარდაჭერა

სამომხმარებლო კლასის კომპიუტერის აპარატურის უმეტესობას არ აქვს ECC მეხსიერება. ეს ნაწილობრივ არის სერვერის აპარატურის სამომხმარებლო ტექნიკისგან ხელოვნურად განასხვავების მეთოდი. თუმცა, ECC RAM უფრო ძვირია და ოდნავ ნელა მუშაობს. გარდა ამისა, დამატებითი სტაბილურობა, რომელსაც ის უზრუნველყოფს სახლის მომხმარებლებისთვის, მინიმალურია, რადგან ბიტის გადაბრუნების შეცდომები არ არის სისტემის ავარიის მთავარი მიზეზი.

Intel-ის სამომხმარებლო და ენთუზიასტთა კლასის პროცესორებიდან არცერთს არ აქვს ECC მეხსიერების მხარდაჭერა, მხოლოდ მისი სერვერის კლასის პროცესორები, როგორიცაა Xeon დიაპაზონის CPU-ები. AMD-ის სამომხმარებლო კლასის პროცესორები არ უჭერენ მხარს ECC-ს, თუმცა, მათი სამუშაო სადგური და სერვერის კლასის CPU, Threadripper და EPYC შესაბამისად, მხარს უჭერენ ECC მეხსიერებას.