უკან დაბრუნება
რისკ-V: რას აკრიტიკებს ინჟინერი არქიტექტურის დიზაინში
SiTech AI Team2 წთ. საკითხავი

რისკ-V: რას აკრიტიკებს ინჟინერი არქიტექტურის დიზაინში

ინჟინერი დმიტრი გრინბერგი აქვეყნებს გრძელ ესეს, სადაც ამბობს, რომ რისკ-V ვერ იქნება საუკეთესო არც მიკროკონტროლერებისთვის და არც სერვერებისთვის — და რომ მას ფასის, არა დიზაინის გამო აირჩევენ.

ინჟინერი დმიტრი გრინბერგი (Dmitry.GR) თავის ბლოგზე აქვეყნებს გრძელ ესეს სათაურით „RISC-V: They Should Have Known Better“, სადაც ერთ სივრცეში აგროვებს ყველა იმ არგუმენტს, რის გამოც ღია ინსტრუქციათა სიმრავლის არქიტექტურას (ISA) სკეპტიკურად უყურებს. ავტორის თქმით, ტექსტი დაწერილია იმისთვის, რომ შემდეგ ჯერზე კითხვაზე პასუხი ერთი ბმულით გასცეს.

ერთი არქიტექტურა ყველასთვის შეუძლებელია

პირველი არგუმენტი მარტივია: ვერც ერთი ISA ვერ იქნება საუკეთესო ყველა გამოყენებისთვის. მაღალი წარმადობის ბირთვსა და იაფ მიკროკონტროლერს სრულიად საპირისპირო მოთხოვნები აქვთ. გრინბერგი ვარაუდობს, რომ რისკ-V საბოლოოდ დაიკავებს 8051-ის იაფი მიკროკონტროლერების სივრცეს — მაგრამ არა დიზაინის, არამედ მისი მიუხედავად. მაგალითი შეწყვეტის დამუშავებაა: სპეციფიკაციის შესაბამისი გზა მოითხოვს Zicsr გაფართოებას და mscratch ან sscratch რეგისტრს, და ავტორის დათვლით C-ის დამმუშავებლამდე სულ მცირე 44 ციკლი ღირს. Cortex-M0 შესვლას 15 ციკლში ახერხებს, გამოსვლას — 12-ში, ანუ სულ 27 ციკლი, რადგან რეგისტრებს აპარატურულად ინახავს. RV32E-ც კი 38 ციკლზე ჩერდება. CLIC-ისა და მწარმოებლების საკუთარი „სწრაფი IRQ“ გაფართოებების არსებობა დამატებითი ბრალდებაა: ბაზისური ISA ვენდორებს აიძულებს, ათწლიანი ბირთვის დონეს არასტანდარტული სილიკონით მიაღწიონ.

შეკუმშული ინსტრუქციები და მასივები

შეკუმშული ინსტრუქციების დიზაინს ავტორი განსაკუთრებით სუსტად მიიჩნევს. ბაიტის ჩაწერისას 16-ბიტიანი ინსტრუქცია მხოლოდ 0-დან 3-მდე ოფსეტს რთავს, ნახევარსიტყვისას — მხოლოდ 0 ან 2, სიტყვისას კი 0-დან 124-მდე; Cortex-M0 ბაიტებისთვის 0-31-ს უშვებს, ნახევარსიტყვებისთვის — 0-62-ს. მეტიც: ბაიტისა და ნახევარსიტყვის ჩაწერის ინსტრუქციები C გაფართოებაშიც არ შედის, ცალკე Zcb-შია. მეორე პრობლემა ინდექსირებული მისამართებაა: x86-ს აქვს [ebx + esi * 4], ARM-ს — [R0, R1, LSL #2], რისკ-V-ში კი მასივზე წვდომა სამ ინსტრუქციას მოითხოვს. გამართლება, თითქოს ფიუჟენი მათ ერთად აერთიანებს, სუსტია — ორ ინსტრუქციაზე მეტს არც ერთი ცნობილი ბირთვი არ აერთიანებს. Zba გაფართოება SHxADD ინსტრუქციებით მხოლოდ 2021 წელს რატიფიცირდა — ბაზისური სპეციფიკაციიდან ორ წელზე მეტს.

ყველაფერი არასავალდებულოა

ავტორი რისკ-V-ს USB-C-სა და RCS-ს ადარებს: სტანდარტთან შესაბამისობა თითქმის არაფერს ნიშნავს, რადგან თითქმის ყველაფერი სავალდებულო არ არის. გამრავლება, გაყოფა, მომხმარებლისა და სუპერვიზორის რეჟიმები, CSR რეგისტრები, შეკუმშული ინსტრუქციები — ყველა არასავალდებულოა. CSR-ები, რომლებიც თავდაპირველად ბაზისურ სიმრავლეში შედიოდა, ცალკე Zicsr გაფართოებაში გამოიტანეს, ამიტომ დღეს ბაზისურ ISA-ს არც შეწყვეტების დამუშავება და არც პრივილეგიების განცალკევება შეუძლია. გაფართოებების შემოწმებას misa რეგისტრი ემსახურება, მაგრამ ის CSR-ია და მისი მნიშვნელობაც შეიძლება ყოველთვის ნული იკითხებოდეს. იგივე ეხება ტაიმერს, რომელიც მეხსიერებაზეა მიბმული იმპლემენტაციით განსაზღვრულ მისამართზე, და ვექტორიზაციის ორივე რეჟიმს.

ფასი, არა ხარისხი

ავტორი არ ფიქრობს, რომ რისკ-V დაღუპვას ექვემდებარება. ის ვარაუდობს, რომ არქიტექტურა დაიკავებს იაფი ჩაშენებული ბირთვების ადგილს და მაღალი წარმადობის ML-აჩქარებლებთან მიმაგრებული ბირთვის როლს, სადაც გადამწყვეტი ფასია: ARM იღებს ლიცენზიის საფასურს, რისკ-V-ის სპეციფიკაცია კი უფასოა და უფასოდ ლიცენზირებადი ბირთვებიც არსებობს. მთავარი, მისი აზრით, ისაა, რომ რისკ-V-მა არ იფიქროს, თითქოს კარგი დიზაინისთვის აირჩიეს — ის იაფია და სწორედ ამიტომ ირჩევენ.

SSiTech

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

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