უკან დაბრუნება
SiTech
Jane Street-ის ASIC-ის რევერს-ინჟინერიის გამოწვევა: როგორ ამოხსნა დეველოპერმა ის ერთ თვეში
SiTech AI Team2 წთ. საკითხავი

Jane Street-ის ASIC-ის რევერს-ინჟინერიის გამოწვევა: როგორ ამოხსნა დეველოპერმა ის ერთ თვეში

Jane Street-ის ჩიპის გამოწვევა, რომელშიც GDS ფაილიდან სქემის ფუნქცია უნდა აღდგეს, დეველოპერმა თითქმის ერთ თვეში ამოხსნა. 4 სექტემბრის ჩანაწერში ის ხსნის, როგორ მიაგნო პასუხს (* TWO STARS *).

Jane Street-ის საჯარო გამოწვევები ცნობილია იმით, რომ ინჟინრებს გრძელ და რთულ გზაზე ატარებს. ერთ-ერთმა მათგანმა — ჰარდვარულმა გამოწვევამ სახელწოდებით „Can you reverse engineer an ASIC?“ — დეველოპერი, რომელიც ინტერნეტში Jestoph-ის სახელით წერს, თითქმის ერთი თვე დააკავა; 4 სექტემბერს მან ამოხსნის დეტალური აღწერა გამოაქვეყნა.

რას მოითხოვდა გამოწვევა

ამოცანა მდგომარეობს იმაში, რომ მოცემული GDS ფაილიდან — სილიციუმის ტოპოლოგიის აღწერიდან — უკუღმა უნდა დადგინდეს, რას აკეთებს სქემა. ASIC (application-specific integrated circuit) არის ჩიპი, რომელიც ერთ კონკრეტულ ამოცანაზეა გათვლილი და არა ზოგად გამოთვლებზე. გამოწვევას ორი ნაწილი ჰქონდა: გასახურებელი ამოცანა, სადაც თავად ჩიპის დიზაინი იყო მოცემული, და მთავარი თავსატეხი, რომელთან ერთადაც ავტორმა, მისივე სიტყვებით, მხოლოდ „მტკიცე ხელის ჩამორთმევა და წარმატების სურვილი“ მიიღო.

ტოპოლოგიიდან მუშა სიმულაციამდე

პირველი მინიშნება თავსატეხთან მიმაგრებული VCD ფაილი აღმოჩნდა. მცირე C პროგრამით მისი წაკითხვის შედეგად გამოვიდა შეტყობინება „TRY AGAIN“, რაც იმას ნიშნავს, რომ სქემა ტექსტს გადასცემს. შემდეგ მან GDS ფაილების წასაკითხად Python-ის ბიბლიოთეკა gdstk გამოიყენა, თუმცა მოგვიანებით საკუთარი სქემის სიმულატორი, ჰარდვარის აღწერის ენის პარსერი და ტესტირების გარემოც დაწერა — ეს გადახრები, მისივე შეფასებით, ძირითადად დაკარგული დრო იყო. გასახურებელ ამოცანაში 27 ელემენტი იყო, მთავარ თავსატეხში კი დაახლოებით 10 000 კომპონენტი 81 ტიპიდან (გასახურებელში 20-მდე ტიპი იყო); ფილტრაციის შემდეგ დარჩა დაახლოებით 1000 გამტარი და 17 000 პოლიგონი.

ხარვეზი თავად თავსატეხში

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

ამოხსნა უკუღმა, კონსტრეინტების ამომხსნელით

120-ბიტიანი შემავალი სიგნალის სრული გადარჩევა შეუძლებელი იყო, ამიტომ მან დიზაინი დროში უკუღმა გაუშვა: სასურველი სიგნალები კონსტრეინტების სახით გადასცა ამომხსნელს z3. ერთდროულად დაახლოებით 24 გამტარი უნდა ყოფილიყო მაღალ დონეზე; 22 მათგანი ცალ-ცალკე შეძლო, დანარჩენი კი მას შემდეგ იპოვა, რაც შენიშნა, რომ ელემენტების უმეტესობის შემავალს მხოლოდ ორი იმპულსი სჭირდება 11-ის ჯერად ინტერვალებზე. სრულმა სიმულაციამ გამოიტანა გამარჯვების შეტყობინება „(* TWO STARS *)“. სქემა ასევე პასუხობს „EMPTY SKY“-ით ნულოვან შემავალზე და „BIG BANG“-ით მთლიანად ერთიანებით შევსებულ შემავალზე. ავტორი აღნიშნავს, რომ Jane Street-მა მომავალ თვეებში ახალი გამოწვევის გამოშვებაზე მიანიშნა.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.