სოსო Posted November 20, 2010 Share Posted November 20, 2010 Nvidia GT200 არქიტექტურა დღეს მოგიყვებით GT200-ის არქიტექტურის შესახებ ერთი მთელი 4 მილიარდი, ტრანზისტორები მოდიან, კარტები გადამალეთ ჩიპის კოდური სახელია GT200 და ის G80 და G92 ოჯახის შტამომავალია. სახელის შეცვლის მიზეზი ეს არის: GT ნიშნავს Graphics Tesla-ს და მომდევნო თოაბის ტესლას არქიტექტურაა. პირველი თაობა იყო G80 რომელიც საკმაოდ წარმატებული ბირთვი იყო, რევოლუციური სიახლე. GT200 სერია ძირითადად ორი კრისტალის სახით არის წარმოდგენილი და უფრო დიდი აგერ არის სურათზე. შედარებისთვის მოყვანილია Penryn ბირთვის ზომა ერთი რამე უნდა გავითვალისწინოთ ინტელის პროცესორები (dual core Itanium 2) 1.7 მილიარდი ტრანზისტორისგან შედგებოდა თუმცა მათი უმეტესობა L3 cache-ზე მოდიოდა (1.5 მილიარდი ტრანზისტორი 24MB მეხსიერებისთვის) ხოლო NVIDIA-ს GT200 ჩიპზე ტრანზისტორების უმეტესობა გამოთვლებისთვის არის განკუთვნილი და არა ქეშ მეხსირებისთვის. რამდენად კარგად გამოიყენა NVIDIA-მ ეს ტრანზისტორები ცალკე საკითხია მაგრამ ფაქტია რომ ჩიპი უზარმაზარია და ფუნქციონალური. ტრანზისტორების რიცხვი არ არის ერთადერთი რაც განაპირობებს ჩიპის ზომას და იმას თუ რამდენი ჩიპი დაეტევა ერთ ვაფლზე ( როგორ მზადდებიან ინტელის პროცესორები ნებისმიერ პროცესორის წარმოება ერთნაირად ხდება იქნება ეს GPU თუ CPU) ფაქტია რაც უფრო მცირეა ნანომეტრული ტექნოლოგია მით უფრო გრილია პროცესორი, მით უფრო სწრაფია, უფრო იაფიც ჯდება მისი წარმოება და ერთ ვაფლზე მეტი ეტევა. ATI-AMD დიდი ხანი მუშაობდა 55 ნანომეტრულ გრაფიკულ პროცესორებზე და ეხლა უკვე 40 ნანომეტრულებს უშვებს (5000 სერია) NVIDIA-ს არ უნდოდა გარისკვა და ახალი ტექნოპროცესისი დანერგვა და თავიდან სწორედ 65 ნანომეტრული ტექნოლოგიით მზადდებოდა GT200 თუცმა მოგვიანებით გადავიდა 55-ზე და სწორადაც მოიქცა. GT200 ყველაზე დიდი კრისტალია რომელიც მანამდე TSMC-ს უწარმოებია (იდეაში აბსოლუტურად ყველა ჩიპს ეს ჩინური კომპანია აწარმოებს უბრალოდ ევროპიდან ტექნოლოგიას აწვდიან და მერე ჩინელები იაფად აწყობენ ) G80 ბირთვს NVIDIA 690 მილიონი ტრანზისტორით მზადებოდა შემდეგ გადავიდა G92 ბირთვზე 754 მილიონი ტრანზისტორით და ახალი ბირთვი GT200 უკვე 1.4 მილიარდ ტრანზისტორს შეიცავს რაც საკმაოდ დიდი ხვაობაა. ერთ ერთი სიახლე არის Floating-Point Unit-ების (FPU) ორმაგი სიზუსტე გამოთვლებისას (პროცესორი) დამატებით GT200 ბირთვში 30 ცალი 64 ბიტიანი FPU არის ჩაშენებული. SP (Streaming processors) რეგისტრების ზომა ორმაგად გაიზარდა. გაიზარდა SP ფუნქციონალური შესაძლებლობები MAD და MUL (შეკრება და გამრავლება) რომლებიც უფრო ბევრ შემთხვევაში მუშაობენ მაშინ როცა G80 ბირთვში ეს ფუნქციები ძალიან ლიმიტირებულ შემთხვევბში მუშაობდნენ. SP-ის რიცხვი გაიზარდა G80-ზე 128-დან 240-მდე GT200 შემთვევაში. NVIDIA-ს GT200 აგებულება ესეც Streaming Processor, NVIDIA შემოკლებით უწოდებს SP: NVIDIA უწოდებს SP-ს ერთი გამოთვლის ბირთვს. რომელიც შედგება ორი ALU-სგან და ერთი FPU-სგან (მარცხენა) SP-ს არა აქვს ქეში. ცალკე SP უმოქმედოა თუმცა NVIDIA მათგან აგებს პატარა მონსტრებს რომლებიც პარალელურ რეჟიმში მუშაობით სერიოზულ გამოთვლებს ატარებენ ესეც Streaming Multiprocessor, რომელსაც NVIDIA უწოდებს SM: როგორც ხედავთ SM წარმოადგენს SP-ების ნაკრებს სულ 8 ცალი პლუს ორი პროცესორი Special Function Units (SFU). ყოველ SFU-ს აქვს ოთხი FPU რომლებიც განკუთვნილია ტრიგონომეტრიული გამოთვლებისთვის (სინუსი, კოსინუსი) და ინტერპოლაციისთვის. გამოიყენება ისეთი კალულაციებისთვის რაც სჭირდება მაგალითად ანიზოტროპულ ფილტრაციას. NVIDIA არ იძლევა ზუსტ ინფორმაციას მაგრამ SFU სავარაუდოდ გავს SP-ს და კონვეირული სისტემის ერთი პროცესის შემსრულებელი ერთეულია. SM -ში ასევე არის MT issue რომელიც გადაუნაწილებს ინსტრუქციებს 10-ვე გამომთვლელ ერთეულს SM-ის ჯგუფში. ამ 10 ბირთვის გარდა SM-ში არის მცირე ქეშ მეხსიერება ინსტრუქციებისთვის. read only ქეში და 16KB read/write საერთო მეხსიერება. თითოეული SP მუშაობს მხოლოდ ერთ პიქსელზე და მიუხედავად 32 ბიტიანი FPU ერთეულებისა თითო პიქსელიზეც კი საკმაოდ მონაცემები გროვდება. კიდევ ერთი ნაბიჯი გადავდგათ უკან და უფრო შორიდან შევხედოთ პროცესორს, გამოჩნდება Texture/Processor Cluster (TPC): G80/G92 TPC (მარცხნივ). GT200 TPC (მარჯვნივ) NVIDIA-ს GPU არქიტექტურა ”მოდულარულია” და თითეულ TPC-ში შეუძლია იმდენი SM-ის მოთავსება რამდენიც უნდა. G80-ში ორი ცალია ხოლო GT200 უკვე სამი. TPC კომპონენტები არ შეცვლილა და იგივე აგებულება აქვს. გაიხსენეთ SM რომელიც 8 SP და 2 SFU-სგან შედგება. ანუ კლასტერში 24 SP და 6 SFU (G80-ში 16 SP და 4 SFU). ტექსტურების ბლოკი შეიცავს ფილტრაციის ლოგიკას და L1 დონის ტექსტურის ქეშ მეხსირებას. მოდულარობის თემა გრძელდება Streaming Processor Array (SPA) Streaming პროცესორების მასივი რომელიც რამოდენიმე TPC-სგან შედგება: GT200-ს SPA სულ 240 SP შეგიძლიათ გადაითვალოთ G80-ში SPA შედგებოდა 8 TPC, ხოლო GT200 შემთვევაში 10 ცალია. პლუს თითეულ TPC აქვს 3 SM ხოლო G80 იყო 2, სულ ჯამში GT200 გაუმჯობესდა 87.5%-ით G80-სთან შედარებით. ესეც G80/G92, მხოლოდ 128 SP წინიდან GPU არის scheduler და კონტროლის ლოგიკა რომელიც მაიწვდის მონაცემებს გამომთვლელი ბირთვების მთელ ამ მასივს. მეორე მხარეს ტექსტრუსი L2 დონის ქეშია და რესტერიზაციის პროცესორები (ROP ვექტორული გრაფიკის გარდაქმნას აკეთებენ) რომლებიც აკეთებენ საბოლოო ფილტრაციას და ჩატვირთავნე მონაცემებს კადრების ბუფერში. GT200 ბირთვის კულმინაცია და GTX 280 და 260-ის გული არის 160KB ინტეგრირებული მეხსირება, 1.4 მილიარდი ტრანზისტორებთან ერთად და ეს ყველაფერი ერთად მზადდება ამჟამად უკვე 55nm ტექნოლოგიით TSMC-ს ქარხნებში 1.4 მილიარდი ტრანზისტორი. vertex-ების დატა არა აქვს სამწუხაროდ. ესეც 754 მილიონი ტრანზისტორი Vertex Shaders აქვს მოკლედ GT200-ში უფრო მეტო ტრანზისტორია ვიდრე ჩინეთში ხალხი მეტი გამოთვლები, ცოტა მეტი ტექსტურების შესახებ NVIDIA-ს GT200 GPU აქვს მეტი SP და ტრანზისტორები თუმცა გამოთვილითი ბირთვის ასეთი გაუმჯობესების მიუხედავად არ არის სერიოზული სხვაობა texture გამომთვლელ ბირთვში. ზევით ვნახეთ რომ Texture/Processing Cluster-ებს აქვს 3 SM და სულ 10 TPC გვაქვს 8-ის წინააღმდეგ G80 შემთვევაში. ასე გამოიყურებოდა G80 ვიდეო კარტა GeForce 8800 GTX თითო ბლოკს ქონდა 4 ტექსტურის მისამართების ერთეული და 8 ტექსტურის ფილტრაციის ერთეული. G92 ბირთვში NVIDIA-ამ გაათანაბრდა address/filtering ერთეულების თანაფარდობა 1:1-მდე GT200 ბირთვში თანაფარდობა იგივე დარჩა address:filtering=1:1 თუმცა გაზარდა SP-ების რიცხვი. 3 SM ცალი 2-ის წინააღმდეგ წინა დიაგრამაზეც და აქაც 8 მისამართების და 8 ფილტრის ერთეულია თითო TPC ესეც სამივე ბირთვის შედარებითი სპეციფიკაციები: გამოთვლითი ბირთვის 87.5%-იანი მატების ფონზე ტექსტურების გამოთვლელი ბირთვის მატება 25%-ია NVIDIA-ს განცხადებით ამის მიზეზი არის თანამედროვე თამაშებში უფრო რთული და კომპლექსური შეიდერების გაჩენა და ტექსტურის ნაკლები დატვირთვა. ეს რომ ასე არ ყოფილიყო თამაშებში წარამდობის 25%-ზე მეტი მატება არ გვექნებოდა G80-თან შედარებით ერთი და იგივე core სიხშირეზე. აქიდენვე გამომდინარე GT200 თუ რამდენად აჯობებს წინა ბირთვებს თამაშებში დამოკიდებულია იმაზე თვითონ თამაში რამდენად არის დატვირთული გამოთვილითი ოპერაციებით. თუ გადავხედავთ წინა წლებს NVIDIA-მ თავის FX სერიის კარტებში შეკვეცა მეხსირების სალტე 128 ბიტამდე (შედარებისთვის ATI იყენებდა 256 ინტერფეისს Radeon 9700 Pro კარტაზე) და მაშინ NVIDIA შეცდა. დღეისათვის სიტუაცია ცოტა სხვანაირად არის უფრო რთული და კომპლექსური შეიდერული პროგრამები თითოეულ პიქსელს ამუშავებენ ეკრანზე და გამოთვლითი ბირთვის ზომას მეტი მნიშვნელობა აქვს თანამედროვე GPU-ებში. გაუმჯობესება რესტერიზაციის შესაძლებლობებში (ROP) ტექსტურების გამოთვლელ ბირთვში 25% გაუმჯობესების გარდა GT200-ში NVIDIA-მ დაამატა ორი ROP. მაშინ როცა 8800 GTX-ს ქონდა ექვსი ROP ერთეული თითო ამუშავებდა 4 პიქსელს ერთ ტაქტურ ციკლზე, ხოლო GT200 აქვს დამატებით ორი ROP. სულ 8 ცალი ROP ერთეულით მას შეუძლია მაქსიმუმ 32 პიქსელის დამუშავება ერთ ტაქტურ ციკლზე 24-ის წინააღმდეგ წინა GPU-თან შედარებით. პიქსელების შეერთების სიხშირე ნახევარი იყო G80/G92 ბირთვებში ანუ თუ ამუშავებდა 24 პიქსელს ერთ ტაქტურ ციკლზე, აქედან შეეძლო მხოლოდ 12 პიქსელის შეერთება, ხოლო GT200 ბირთვს შეუძლია ერთ ტაქტურ ციკლზე 32 პიქსელის გამომუშავება და ამდენივეს გაერთიანება! საბოლოო ჯამში გაუმჯობესება სწორხაზოვანი არ არის GT200 ბირთვში გარკვეულ ელემენტებზე ცვლიელბა სხვადასხვა ხარისხით მოხდა თუმცა ფაქატია ცვლილებები სერიოზულია და ბევრი გაუმჯობესებაა G80/G92-თან შედარებით. მე15 საუკუნის ტექნოლოგია გადმოტანილია დღეს NVIDIA უფრო დეტალურად ხსნის როგორ მუშაობს მისი არქიტექტურა. როგორც ქსოვისას არის რამოდენიმე ვერტიკალური ძაფი რომლებზეც აიგება ჰორიზონტალურები და ეს ხდება ერთროულად, დაახლოებით ასევე მუშაობს SM ერთეული ახალ ბირთვში თითო SM იღებს თითო ჰორიზონტალურ ძაფს ანუ ბრძანებების ნაკრებს და ამუშავებს ყოველ ტაქტურ ციკლში. სულ ციკლში 32 ბრძანება სრულდება. თითო ბრძანების ნაკადის გამოთვლა ხდება დამოუკიდებელად თუმცა ყველა ნაკადი ერთროულად ერთი და იგივე ინსტრუქციას უნდა ასრულებდეს ზოგჯერ გამოთვლა სხვადასხვა მიმართულებით ხდება და ამ დროს გარკვეული დაყოვნებაა გამოთვლისას. თეორიულად თითო SM ასრულებს 32 ნაკადად გამოთვლებს ერთდროულად (სულ 32*32=1024 ნაკადი თითო SM-ზე) სულ 10 TPC რომლებიც შეიცავენ თითო 3 SM-ს ჯამში გამოდის 30720 ნაკადი GTX 280 კარტისთვის !!! გაუმჯობესებები GT200-ში NVIDIA მიერ მოწოდებული ცხრილი სადაც შედარებულია G80 და GT200. პროცენტული უპირატესობებით. პლუს ამას G80-თან შედარებით მნიშვნელოვნად გაუმჯობესდა MAD+MUL (არითმეტიკული შეკრების და გამრავლების) ფუნქცია, რომელიც უფრო აქტიურად გამოიყენება ახალ ბირთვში. სულ ეს არის რაც მინდოდა მეთქვა NVIDIA-ს GT200 ბირთვის არქიტექტურაზე ვეცდები სხვა GPU-ებზეც დავდო ინფორმაცია 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.