რა არის მრავალბირთვიანი პროცესორი?

შუა რიცხვებიდან მოყოლებული, დესკტოპის პროცესორები გვთავაზობენ მრავალ CPU ბირთვს ერთ პაკეტში. ეს არის მრავალბირთვიანი პროცესორი. მიუხედავად იმისა, რომ ადრეული დიზაინი შემოიფარგლებოდა ორი ან ოთხი CPU ბირთვით, თანამედროვე CPU გთავაზობთ 64-მდე ფიზიკურ ბირთვს ერთ CPU-ზე. ძირითადი რაოდენობა, რომ მაღალი არ არის სტანდარტი დესკტოპის პროცესორებისთვის და ზოგადად დაცულია მაღალი დონის სამუშაო სადგურებისთვის ან სერვერებისთვის. ტიპიური ბირთვების რაოდენობა თანამედროვე დესკტოპის პროცესორებში არის 4-დან 16-მდე. მაგრამ რა არის მრავალბირთვიანი პროცესორები, რაც მათ დომინანტურს ხდის თანამედროვე კომპიუტერებში?

Ერთი ბირთვი

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

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

ყველა ეს ფაქტორი კარგად იმუშავებს და უზრუნველყოფს გარკვეულ შესრულებას. თუმცა, ერთი ან მეტი ბირთვის დამატება ამ ყველაფრის საშუალებას იძლევა და ერთი დარტყმით ერთდროულად ორჯერ მონაცემთა დამუშავების საშუალებას იძლევა.

მრავალბირთვიანი

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

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

ამ რასის პირობებში, ცვლადის მნიშვნელობა მეორედ იკითხება, სანამ მასზე ახალი მნიშვნელობა ჩაიწერება, რაც იწვევს არასწორ საერთო პასუხს.

თერმული საკითხები

ერთ-ერთი ყველაზე დიდი პრობლემა, რომელსაც მრავალბირთვიანი პროცესორები ებრძვიან, არის სითბო. მიუხედავად იმისა, რომ ერთი CPU ბირთვი არ გამოყოფს ამდენ სითბოს, ორი გამოსცემს მეტს. მაღალი ბირთვიანი CPU-ებში, სითბოს ამ კონცენტრაციამ შეიძლება გამოიწვიოს უფრო დაბალი გამაძლიერებელი საათი, რადგან CPU მართავს თავის ტემპერატურას. დაბალი გამაძლიერებელი საათი გამოიწვევს დაბალ შესრულებას ერთნაკადიან აპლიკაციებში. ეს ხშირად ჩანს თამაშის შესრულების ეტალონებში. ვიდეო თამაშები ხშირად დიდად არის დამოკიდებული ერთ თემაზე. როგორც ასეთი, ერთნაკადიანი შესრულება ხშირად გადამწყვეტია თამაშებისთვის. მაღალი ბირთვიანი პროცესორები, როგორიცაა 16 ბირთვიანი დათვლის მოდელები, ხშირად მაღალი ხარისხის ურნებიდან არიან. ამის მიუხედავად, რეგულარულად შეიძლება აღმოჩნდეს, რომ ისინი აჯობებენ „მცირე“ პროცესორებს, რომლებსაც აქვთ ბირთვების უფრო დაბალი რაოდენობა ერთსართულიან ეტალონებში. ეს საკითხი კიდევ უფრო აშკარაა ბირთვების ულტრა მაღალი რაოდენობის პროცესორებში, როგორიცაა 64 ბირთვიანი AMD Threadripper, სადაც საათის სიჩქარე შესამჩნევად დაბალია, ვიდრე მაღალი დონის დესკტოპის პროცესორები.

წარმატებები

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

არქიტექტურული ვარიანტები

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

დესკტოპის CPU არქიტექტურა ასევე მოძრაობს ჰეტეროგენული ბირთვის დიზაინის მიმართულებით. Intel's Alder Lake 12 თაობის Core CPU ხაზი არის პირველი დესკტოპის CPU, რომელიც ამას აკეთებს. ამ შემთხვევაში, მცირე ბირთვების მთავარი მამოძრავებელი ფაქტორი სულაც არ არის ენერგოეფექტურობა, არამედ თერმული ეფექტურობა, თუმცა ეს ერთი და იგივე მონეტის ორი მხარეა. მრავალჯერადი ძლიერი ბირთვის ქონა უზრუნველყოფს მაღალ შესრულებას, ხოლო ბევრ ეფექტურ ბირთვს შეუძლია გაუმკლავდეს ფონურ ამოცანებს მთავარ ბირთვებზე ზედმეტი ზემოქმედების გარეშე.

დასკვნა

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