1980 წელს Intel-მა გამოუშვა 8087 — მცურავი წერტილის (floating-point) კოპროცესორი, რომელმაც გამოთვლითი ოპერაციების სიჩქარე 100-ჯერ გაზარდა. ეს ჩიპი იმდენად გავლენიანი აღმოჩნდა, რომ დღემდე გამოყენებული მრავალი სტანდარტი სწორედ მის ბაზაზეა აგებული.
Opcode Collective-ის მკვლევრები ახლა ამ ლეგენდარული ჩიპის შიდა მუშაობის პრინციპებს, ე.წ. მიკროკოდს, საჯაროდ აშიფრავენ. მიკროკოდი არის დაბალი დონის ინსტრუქციების ერთობლიობა, რომელიც ჩიპის ფიზიკურ სქემებს აკონტროლებს.
FXCH: მარტივი ოპერაციის სირთულე
ერთ-ერთი ასეთი ოპერაციაა FXCH (Floating-point Exchange), რომელიც მცურავი წერტილის რეგისტრებს შორის მონაცემებს ცვლის. მიუხედავად იმისა, რომ ეს მოქმედება მომხმარებლისთვის მარტივი ჩანს, ჩიპის შიგნით ის 14 მიკრო-ინსტრუქციას მოითხოვს.
მკვლევრებმა მაღალი გარჩევადობის მიკროსკოპული ფოტოების გამოყენებით 8087-ის სტრუქტურა დაშალეს. ჩიპის ცენტრში განთავსებულია მიკროკოდის ROM, ხოლო ქვედა ნაწილში — მონაცემთა გზები (datapath), რომლებიც პასუხისმგებელია 16-ბიტიანი ექსპონენტისა და 64-ბიტიანი წილადი ნაწილის გამოთვლაზე.
როგორ მუშაობს შიდა არქიტექტურა?
- სტეკური სისტემა: 8087 იყენებს რვა რეგისტრს, რომლებიც სტეკის პრინციპით მუშაობს.
- ტეგირება: თითოეულ რეგისტრს აქვს სპეციალური „ტეგი“, რომელიც მიუთითებს მნიშვნელობის ტიპზე (ნორმალური, ნული, უსასრულობა ან ცარიელი).
- დროებითი რეგისტრები: ჩიპს აქვს შიდა რეგისტრები, tmpA და tmpB, რომლებიც მონაცემთა გაცვლის პროცესში შუალედურ ბუფერად გამოიყენება.
როდესაც FXCH ინსტრუქცია გაიცემა, მიკროკოდი ამოწმებს რეგისტრების სტატუსს. თუ რომელიმე მათგანი ცარიელია, ჩიპი ავტომატურად აგენერირებს „არასწორი ოპერაციის“ შეცდომას და შედეგად „Not a Number“ (NaN) მნიშვნელობას აბრუნებს.
ეს კვლევა გვიჩვენებს, თუ რამდენად კომპლექსური იყო 80-იანი წლების საინჟინრო გადაწყვეტილებები. მაშინ, როდესაც ტრანზისტორების რაოდენობა შეზღუდული იყო, დეველოპერებს უწევდათ მიკროკოდის ოპტიმიზაცია მაქსიმალური სიზუსტის მისაღწევად.




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