Intel 80386-ის მიკროკოდის გაშიფვრა წლების განმავლობაში მიუღწეველ მიზნად ითვლებოდა. მიუხედავად იმისა, რომ 8086-ის მიკროკოდი ადრე უკვე იყო შესწავლილი, 386-ის შემთხვევაში საქმე გაცილებით რთულად იყო. პროცესორი 94 720 ბიტიან მიკროკოდს შეიცავს, რაც 8086-ის მონაცემებზე თითქმის ცხრაჯერ მეტია. ის ფაქტობრივად „შავ ყუთს“ წარმოადგენდა, რომლის შიდა ლოგიკაც არავინ იცოდა.
კვლევა დაიწყო მას შემდეგ, რაც მკვლევრებმა, მათ შორის კენ შირიფმა, პროცესორის კრისტალის (die) მაღალი გარჩევადობის ფოტოები მოიპოვეს. ხელოვნური ინტელექტის ალგორითმებისა და ადამიანური რესურსის კომბინაციით, რამდენიმე დღეში შესაძლებელი გახდა ბინარული ბლოკის ამოღება და მისი სტრუქტურირება.
გაშიფვრის პროცესი და სირთულეები
გაშიფვრის პროცესში მკვლევრებმა აღმოაჩინეს, თუ როგორ იყო განლაგებული მიკროოპერაციები (μ-ops) და როგორ იყოფოდა ისინი ლოგიკურ ველებად. 8086-ის გამოცდილებაზე დაყრდნობით, გუნდმა დაადგინა, რომ მიკროკოდი იყენებდა რეგისტრებს წყაროსა და დანიშნულების ადგილის დასადგენად. ასევე გამოვლინდა ლოგიკური ნიმუში, რომელიც თითოეული ინსტრუქციის დასასრულს მიუთითებდა.
Intel 80386-ის არქიტექტურა რადიკალურად განსხვავდება წინამორბედისგან. თუ 8086 ბევრ ალგორითმს მიკროკოდით ასრულებდა, 386-მა გამოიყენა „აპარატურული აჩქარების“ პრინციპი. მიკროკოდის როლი აქ გადავიდა სხვადასხვა აჩქარების ბლოკების (გამყოფი, მრავლები, დამცავი ერთეული) მართვაზე.
რა აღმოაჩინეს მკვლევრებმა?
- ინსტრუქციების სიმრავლე: მიკროკოდს აქვს 215 შესასვლელი წერტილი, რაც საგრძნობლად აღემატება 8086-ის 60-ს.
- გამონაკლისების გარეშე: 80386-ის ყველა ინსტრუქცია მიკროკოდით მუშავდება, რაც იმ დროისთვის უნიკალური მიდგომა იყო.
- პოტენციური უსაფრთხოების ხარვეზი: აღმოჩენილია IO პორტების ნებართვის ბიტმაპის დამუშავების შესაძლო ხარვეზი, რომელიც 4-ბაიტიანი წვდომისას ბოლო ბაიტს არასწორად ამოწმებს.
მიუხედავად იმისა, რომ Intel 80386-ის მიკროკოდი უკვე საჯაროა, მკვლევრები აღნიშნავენ, რომ კვლევა არ მოიცავს პროცესორის ყველა „სტეპინგს“ (ვერსიას). ეს კი ნიშნავს, რომ ტექნოლოგიური ისტორიის ამ ნაწილს კიდევ ბევრი საინტერესო დეტალი აქვს დასამალი.






დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.