Keskprotsessorid (CPU-d) on meie arvutite ajud. Nad töötlevad kõike, mida me igapäevaselt teeme, alates rakenduse avamisest kuni filmi vaatamiseni. Aga mis täpselt on CPU? Kuidas see töötab? Ja mis vahe on protsessoritel ja üha populaarsemaks muutuvatel vCPU-del?
Arvutite ajude mõistmine
Täieliku ajaloojuhendi kohaselt loodi esimesed elektroonilised arvutid 1800. aastate alguses avaldas G2. Need arvutid olid aga suured ja kallid ning neid said kasutada vaid koolitatud matemaatikud ja teadlased.
Charles Babbage’i tunnustatakse esimese arvutusmasina Difference Engine leiutamise eest, mida saab programmeerida tegema mis tahes arvutusi, mida saab teha käsitsi. Kuid projekti Difference Engine ei jõutud rahapuuduse tõttu kunagi lõpule viia, arvutiajaloo muuseumi andmetel.
1937. aastal mainis Babbage esmakordselt analüütilist mootorit, millest sai maailma esimene üldotstarbeline mehaaniline arvuti. "Analüütiline mootor sisaldas kõiki tänapäevase arvuti elemente: aritmeetiline loogikaseade, juhtvoog tingimusliku hargnemise ja silmuste kujul ning integreeritud mälu," (Elektroonika märkmed).
Tänapäeva arvuti põhikomponent on protsessor või keskseade. CPU vastutab tarkvara, näiteks operatsioonisüsteemi või rakenduse poolt antud juhiste täitmise eest. Tavapäraselt võib protsessorit pidada oma arvuti ajuks. CPU koosneb kahest põhiosast: juhtplokist ja aritmeetilisest loogikast (ALU). Kui need lühendid teid segadusse ajavad, vaadake meie lehte ülevaade sellest, kuidas APU-d, CPU-d ja GPU-d erinevad.
Juhtplokk vastutab juhiste mälust toomise, nende dekodeerimise ja seejärel täitmiseks aritmeetilisele loogikaüksusele saatmise eest. ALU teostab aritmeetilisi ja loogilisi toiminguid andmetega, mis on salvestatud registritesse, mis on protsessori sees olevad sisemäluüksused.
Kaasaegne Protsessorid sisaldavad ka vahemälu, mis on väike kogus kiiret mälu, mis salvestab sageli kasutatavaid juhiseid ja andmeid. Vahemälud on jagatud tasemeteks; 1. taseme (L1) vahemälu on sisseehitatud protsessorisse, 2. taseme (L2) vahemälu asub eraldi kiibil. CPU ja 3. taseme (L3) vahemälu asub protsessorist kaugemal oma kiibil või isegi oma vooluringis juhatus.
CPU vs. vCPU
Pilveteenuste tõusuga tuli virtuaalne keskprotsessor ehk lühidalt vCPU. TechTarget määratleb vCPU kui "füüsiline keskprotsessor (CPU), mis on määratud virtuaalsele masinale (VM)."
Virtuaalmasinad on põhimõtteliselt iseseisvad operatsioonisüsteemid, mis töötavad teises operatsioonisüsteemis, nagu oleksid need rakendused. VM-e kasutatakse erinevatel eesmärkidel, näiteks uue tarkvara testimiseks turvalises keskkonnas, mitme operatsioonisüsteemi käitamiseks (nt Windows ja Linux) samas arvutis või koondades ruumi säästmiseks ja vähendamiseks mitu füüsilist serverit ühte serverisse kulud.
Seega on vCPU CPU tarkvaraline rakendus; see ei eksisteeri teie arvuti sees füüsiliselt nagu päris CPU. Hüpervisor, mis on tarkvara, mis loob ja haldab VM-e, määrab virtuaalmasinale vCPU-d. VM-i sees olev operatsioonisüsteem näeb iga vCPU-d tõelise CPU tuumana. Vaadake meie hüperviisorite selgitus et rohkem teada saada.
Kuid kuna vCPU-d on tarkvarapõhised, ei ole need nii tõhusad kui tõelised protsessorid. Seetõttu on oluline täpsustada, kui palju teie protsessori tuumad kui ostate arvutit (nt "neljatuumaline" tähendab nelja tuuma). Sama reegel kehtib ka virtuaalse privaatserveri (VPS) või spetsiaalse serveri hostimisplaani valimisel.
Peamine erinevus CPU-de ja vCPU-de vahel on see, et CPU-d on riistvarapõhised, vCPU-d aga tarkvarapõhised. See tähendab, et protsessorid on teie arvutis füüsiliselt olemas, vCPU-d aga mitte; selle asemel loovad need vajadusel hüperviisorite poolt. Selle erinevuse tõttu rakendustes on protsessorid palju tõhusamad kui vCPU-d; neil ei ole tarkvaras töötamisega seotud üldkulusid.
Alates 2000. aastate algusest on vCPU-d muutunud üha populaarsemaks, kuna need on odavamad ja neid on lihtsam määrata kui füüsilised protsessorid; kui aga otsite jõudlust, on kõige parem kasutada mitme CPU-tuumaga arvutit, kuna iga tuum suudab juhiseid iseseisvalt töödelda.
Südamikud vs. Niidid
CPU-l võib olla üks või mitu tuuma, mis on töötlemisüksus, mis täidab ülesandeid kindlaksmääratud ajal. Tuum haldab ülesande täitmise järjekorda, registreid ja vahemälu (kui see on olemas) ning teostab toiminguid ALU kaudu. Protsessor juhib südamikke, kuid tuum täidab iga tarkvaraprotsessi või lõime, mille operatsioonisüsteem ajastab. Lõim on sõltumatu juhiste jada, mida protsessor saab töödelda.
Samas protsessis võib eksisteerida mitu lõime ja jagavad sama mäluruumi. See võimaldab neil üksteisega hõlpsamini suhelda kui siis, kui nad töötaksid eraldi protsessides. Lõime kasutatakse sageli mitme lõimega rakenduste jõudluse parandamiseks, võimaldades programmi erinevatel osadel samaaegselt töötada erinevates tuumades või protsessorites.
Mõistet "niit" on arvutusterminoloogias kasutatud juba aastaid; aga alles 2000. aastate alguses võeti protsessorites kasutusele lõimede riistvarataseme tugi. See võimaldas erinevatel tuumadel korraga käivitada mitu lõime. Varem sai ühel tuumal korraga käivitada ainult ühte lõime, olenemata sellest, mitu tuuma protsessoris oli. Mitmetuumalised protsessorid on praegu tavalised ja enamik operatsioonisüsteeme pakuvad teatud tasemel tuge programmide käitamiseks mitme lõimena.
Põhiprobleemide kokkuvõte
Kokkuvõtteks võib öelda, et protsessorid on meie arvutite riistvarapõhised ajud, samas kui nende virtuaalsed vastaspooled vCPU-d on tarkvarapõhised ja loodud hüperviisorite poolt virtuaalmasinates töötamiseks. Tuumad on protsessori riistvarapõhised töötlemisüksused, lõimed aga tarkvarapõhised juhised, mida protsessor saab töödelda.
Lõime saab käivitada samaaegselt eraldi tuumades, mis võimaldab programmi erinevatel osadel samaaegselt töötada. See võib parandada riistvara jõudlust, kuna mitut ülesannet saab töödelda korraga, mitte järjestikku.
Nüüd, kui mõistate CPU-de, vCPU-de, tuumade ja lõimede erinevust, saate arvuti või serveri valimisel teha teadliku otsuse. Kui otsite jõudlust, on kõige parem valida mitme protsessorituumaga arvuti, kuna iga tuum suudab juhiseid iseseisvalt töödelda. Kui aga otsite kulutõhusat lahendust, võivad vCPU-d olla õige tee.