უკან დაბრუნება

Intel 8087-ის მცურავი წერტილის შეკრებისა და გამოკლების მიკროკოდი და მონაცემთა გზა
SiTech AI Team3 წთ. საკითხავი

Intel 8087-ის მცურავი წერტილის შეკრებისა და გამოკლების მიკროკოდი და მონაცემთა გზა

Intel 8087-ის ჩიპი მცურავი წერტილის შეკრებას თითქმის 100-ჯერ აჩქარებდა და იყენებდა მიკროკოდს, მთელი რიცხვების შემკრებს, გადამწევს, ექსპონენტის ლოგიკასა და 80-ბიტიან დროებით რეალურ ფორმატს შეკრებისა და გამოკლებისთვის.

რატომ იყო 8087 მნიშვნელოვანი

Intel-მა 8087 1980 წელს გამოუშვა, რათა IBM PC-სა და სხვა სისტემებში მცურავი წერტილის ოპერაციები გაცილებით სწრაფი გამხდარიყო. ჩიპი მხარს უჭერდა ისეთ მოწინავე ოპერაციებს, როგორიცაა ტანგენსები, კვადრატული ფესვები და ლოგარითმები, თუმცა შეკრება და გამოკლება გვიჩვენებს, როგორ მუშაობდა მონაცემთა გზა. 8087 შეკრებას 8086-ის პროცესორთან შედარებით თითქმის 100-ჯერ აჩქარებდა, რთული ოპერაციები კი კიდევ უფრო მეტად ჩქარდებოდა.

ჩიპის შიგნით მიკროკოდის ROM-ში 1648 მიკროინსტრუქცია ინახებოდა. კრისტალის ქვედა ნახევარი მონაცემთა გზა იყო, სადაც 80-ბიტიანი მნიშვნელობები მუშავდებოდა. მთავარი ბლოკი ცენტრთან ახლოს მდებარე 69-ბიტიანი მთელი რიცხვების შემკრები იყო. ის ერთ არგუმენტს B რეგისტრიდან იღებდა, მეორეს კი ისეთი ბლოკებიდან, როგორიცაა დროებითი რეგისტრები ან სტეკის რეგისტრები, შემდეგ კი შედეგს ჯამის რეგისტრში აგზავნიდა.

მონაცემთა გზის ბლოკები ძირითადი არითმეტიკისთვის

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

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

რეგისტრები, მიკროკოდის ნაკადი და სპეციალური მნიშვნელობები

შიგნით 8087 იყენებდა 80-ბიტიან დროებით რეალურ ფორმატს: ნიშნის ბიტი, 15-ბიტიანი ექსპონენტი, რომელსაც 16383 ემატება, და 64-ბიტიანი მნიშვნელოვანი ნაწილი. რვა რეგისტრი სტეკს ქმნიდა და თითოეულ მნიშვნელობას ჰქონდა ტეგი: ნული, ვალიდური, სპეციალური ან ცარიელი. შიდა დროებით რეგისტრებში იყო tmpA, tmpB და tmpC, რომელსაც 68-ბიტიანი მნიშვნელოვანი ნაწილი და guard, round და sticky ბიტები ჰქონდა.

ძირითადი მათემატიკური ოპერაციები იწყებოდა მიკროკოდის მისამართზე 0001, გადაჰქონდა ორი არგუმენტი tmpA-ში და tmpB-ში, შემდეგ კი იძახებდა ინსტრუქციის ტიპით შერჩეულ სამიზნეს. შეკრება და გამოკლება 0232 მისამართიდან იწყებოდა. მიკროკოდი ამუშავებდა ნულოვან შემთხვევებს, ადარებდა ექსპონენტებს, საჭიროებისას ცვლიდა არგუმენტებს და ნიშნის ცვლილებებს ნიშნის ლატჩში თვალყურს ადევნებდა. შემდეგ ოპერანდების ნიშნებისა და ოპერაციის მიხედვით ირჩევდა უნიშნო შეკრებას ან უნიშნო გამოკლებას.

უნიშნო შეკრების გზაზე გასწორებული მნიშვნელოვანი ნაწილები იკრიბებოდა, გადატანა იწვევდა ერთი ბიტით მარჯვნივ წევას და ექსპონენტის კორექტირებას, სიზუსტე იჭრებოდა 80, 64 ან 32-ბიტიანი მნიშვნელობებისთვის, ექსპონენტი კი მოწმდებოდა გადავსებასა და ქვედა გადავსებაზე. უნიშნო გამოკლებისას შემკრები ითვლიდა tmpA-ს მინუს tmpB-ს, დამრგვალების ბიტებს შეეძლო დაბალი შედეგის ბიტის დაყენება, წამყვანი ნულების დამუშავება კი ბაიტურ და ბიტურ წევებს წარმოქმნიდა. საერთო კოდი ასევე ამუშავებდა უსასრულობებს, NaN მნიშვნელობებს, დენორმალებს, ნულებს, სტეკიდან ამოღების ქცევას და დენორმალიზებული მნიშვნელობებისთვის წყვეტებს.

წყაროები: righto.com

გააზიარე ციფრული გამოცდილება

SiTech

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

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