Jump to content

Nvidia GT200 არქიტექტურა


Recommended Posts

Nvidia GT200 არქიტექტურა

დღეს მოგიყვებით GT200-ის არქიტექტურის შესახებ

ერთი მთელი 4 მილიარდი, ტრანზისტორები მოდიან, კარტები გადამალეთ :)

ჩიპის კოდური სახელია GT200 და ის G80 და G92 ოჯახის შტამომავალია. სახელის შეცვლის მიზეზი ეს არის: GT ნიშნავს Graphics Tesla-ს და მომდევნო თოაბის ტესლას არქიტექტურაა. პირველი თაობა იყო G80 რომელიც საკმაოდ წარმატებული ბირთვი იყო, რევოლუციური სიახლე. GT200 სერია ძირითადად ორი კრისტალის სახით არის წარმოდგენილი და უფრო დიდი აგერ არის სურათზე.

578d9b153cc6.jpg

შედარებისთვის მოყვანილია 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:

c3c0fc3f0197.jpg

NVIDIA უწოდებს SP-ს ერთი გამოთვლის ბირთვს. რომელიც შედგება ორი ALU-სგან და ერთი FPU-სგან (მარცხენა) SP-ს არა აქვს ქეში. ცალკე SP უმოქმედოა თუმცა NVIDIA მათგან აგებს პატარა მონსტრებს რომლებიც პარალელურ რეჟიმში მუშაობით სერიოზულ გამოთვლებს ატარებენ

ესეც Streaming Multiprocessor, რომელსაც NVIDIA უწოდებს SM:

2c83ab60c0dc.jpg

როგორც ხედავთ 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):

b4eafbff573a.jpg

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-სგან შედგება:

69ebd82ebf3f.jpg

GT200-ს SPA სულ 240 SP შეგიძლიათ გადაითვალოთ :)

G80-ში SPA შედგებოდა 8 TPC, ხოლო GT200 შემთვევაში 10 ცალია. პლუს თითეულ TPC აქვს 3 SM ხოლო G80 იყო 2, სულ ჯამში GT200 გაუმჯობესდა 87.5%-ით G80-სთან შედარებით.

938a5c20c60a.jpg

ესეც G80/G92, მხოლოდ 128 SP

წინიდან GPU არის scheduler და კონტროლის ლოგიკა რომელიც მაიწვდის მონაცემებს გამომთვლელი ბირთვების მთელ ამ მასივს. მეორე მხარეს ტექსტრუსი L2 დონის ქეშია და რესტერიზაციის პროცესორები (ROP ვექტორული გრაფიკის გარდაქმნას აკეთებენ) რომლებიც აკეთებენ საბოლოო ფილტრაციას და ჩატვირთავნე მონაცემებს კადრების ბუფერში.

GT200 ბირთვის კულმინაცია და GTX 280 და 260-ის გული არის 160KB ინტეგრირებული მეხსირება, 1.4 მილიარდი ტრანზისტორებთან ერთად და ეს ყველაფერი ერთად მზადდება ამჟამად უკვე 55nm ტექნოლოგიით TSMC-ს ქარხნებში

314acb2289da.jpg

1.4 მილიარდი ტრანზისტორი. vertex-ების დატა არა აქვს სამწუხაროდ.

b22c4e052bc6.jpg

ესეც 754 მილიონი ტრანზისტორი Vertex Shaders აქვს

მოკლედ GT200-ში უფრო მეტო ტრანზისტორია ვიდრე ჩინეთში ხალხი :D

მეტი გამოთვლები, ცოტა მეტი ტექსტურების შესახებ

NVIDIA-ს GT200 GPU აქვს მეტი SP და ტრანზისტორები თუმცა გამოთვილითი ბირთვის ასეთი გაუმჯობესების მიუხედავად არ არის სერიოზული სხვაობა texture გამომთვლელ ბირთვში. ზევით ვნახეთ რომ Texture/Processing Cluster-ებს აქვს 3 SM და სულ 10 TPC გვაქვს 8-ის წინააღმდეგ G80 შემთვევაში.

ასე გამოიყურებოდა G80 ვიდეო კარტა GeForce 8800 GTX

985542e772f5.jpg

თითო ბლოკს ქონდა 4 ტექსტურის მისამართების ერთეული და 8 ტექსტურის ფილტრაციის ერთეული.

G92 ბირთვში NVIDIA-ამ გაათანაბრდა address/filtering ერთეულების თანაფარდობა 1:1-მდე

8d81c0bce75c.jpg

GT200 ბირთვში თანაფარდობა იგივე დარჩა address:filtering=1:1 თუმცა გაზარდა SP-ების რიცხვი.

4bb9b06d7acb.jpg

3 SM ცალი 2-ის წინააღმდეგ

წინა დიაგრამაზეც და აქაც 8 მისამართების და 8 ფილტრის ერთეულია თითო TPC

ესეც სამივე ბირთვის შედარებითი სპეციფიკაციები:

189c36193334.jpg

გამოთვლითი ბირთვის 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 ერთეული ახალ ბირთვში

438f7e69d1a7.jpg

თითო SM იღებს თითო ჰორიზონტალურ ძაფს ანუ ბრძანებების ნაკრებს და ამუშავებს ყოველ ტაქტურ ციკლში. სულ ციკლში 32 ბრძანება სრულდება.

34c31460593b.jpg

თითო ბრძანების ნაკადის გამოთვლა ხდება დამოუკიდებელად თუმცა ყველა ნაკადი ერთროულად ერთი და იგივე ინსტრუქციას უნდა ასრულებდეს ზოგჯერ გამოთვლა სხვადასხვა მიმართულებით ხდება და ამ დროს გარკვეული დაყოვნებაა გამოთვლისას. თეორიულად თითო SM ასრულებს 32 ნაკადად გამოთვლებს ერთდროულად (სულ 32*32=1024 ნაკადი თითო SM-ზე) სულ 10 TPC რომლებიც შეიცავენ თითო 3 SM-ს ჯამში გამოდის 30720 ნაკადი GTX 280 კარტისთვის !!!

გაუმჯობესებები GT200-ში

NVIDIA მიერ მოწოდებული ცხრილი სადაც შედარებულია G80 და GT200. პროცენტული უპირატესობებით.

3d10c50d776d.jpg

პლუს ამას G80-თან შედარებით მნიშვნელოვნად გაუმჯობესდა MAD+MUL (არითმეტიკული შეკრების და გამრავლების) ფუნქცია, რომელიც უფრო აქტიურად გამოიყენება ახალ ბირთვში.

სულ ეს არის რაც მინდოდა მეთქვა NVIDIA-ს GT200 ბირთვის არქიტექტურაზე :)

ვეცდები სხვა GPU-ებზეც დავდო ინფორმაცია

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.