Centrale processorenheder (CPU'er) er hjernen i vores computere. De behandler alt, hvad vi laver på daglig basis, lige fra at åbne en applikation til at se en film. Men hvad er en CPU egentlig? Hvordan virker det? Og hvad er forskellen mellem CPU'er og de stadig mere populære vCPU'er?
Forstå computernes hjerner
De første elektroniske computere blev skabt i begyndelsen af 1800-tallet, ifølge den komplette historieguide udgivet af G2. Disse computere var dog store og dyre, og de kunne kun bruges af uddannede matematikere og videnskabsmænd.
Charles Babbage er krediteret for at have opfundet den første computermaskine, Difference Engine, som kunne programmeres til at udføre enhver beregning, der kunne udføres i hånden. Difference Engine-projektet blev dog aldrig afsluttet på grund af manglende finansiering, ifølge Computerhistorisk Museum.
I 1937 nævnte Babbage første gang den analytiske motor, som ville blive verdens første almindelige mekaniske computer. "Den analytiske motor inkorporerede alle elementerne i en moderne computer: en aritmetisk logisk enhed, kontrolflow i form af betinget forgrening og sløjfer og integreret hukommelse," (
Elektronik noter).En nøglekomponent i dagens computer er CPU'en eller centralenheden. CPU'en er ansvarlig for at udføre instruktioner givet til den af software såsom et operativsystem eller en applikation. I lægmandssprog kan du tænke på CPU'en som hjernen i din computer. CPU'en består af to hoveddele: kontrolenheden og den aritmetiske logiske enhed (ALU). Hvis disse forkortelser forvirrer dig, så se vores oversigt over, hvordan APU'er, CPU'er og GPU'er adskiller sig.
Styreenheden er ansvarlig for at hente instruktioner fra hukommelsen, afkode dem og derefter sende dem til den aritmetiske logiske enhed for at blive udført. ALU'en udfører aritmetiske og logiske operationer på data, der er lagret i registre, som er interne lagerenheder inde i CPU'en.
Moderne CPU'er indeholder også en cache, som er en lille mængde højhastighedshukommelse, der gemmer ofte brugte instruktioner og data. Caches er opdelt i niveauer; Niveau 1 (L1) cache er indbygget i selve CPU-matricen, Niveau 2 (L2) cache sidder på en separat chip tæt på CPU'en og niveau 3 (L3) cache sidder længere væk fra CPU'en på sin egen chip eller endda på sit eget kredsløb bestyrelse.
CPU vs. vCPU
Med fremkomsten af cloud-tjenester kom fremkomsten af den virtuelle centralbehandlingsenhed, eller kort sagt vCPU. TechTarget definerer vCPU som "en fysisk central behandlingsenhed (CPU), der er tildelt en virtuel maskine (VM)."
Virtuelle maskiner er dybest set selvstændige operativsystemer, der kører inde i et andet operativsystem, som om de var applikationer. VM'er bruges til en række forskellige formål, såsom at teste ny software i et sikkert miljø, køre flere operativsystemer (f.eks. Windows og Linux) på den samme computer eller konsolidering af flere fysiske servere til en enkelt server for at spare plads og reducere omkostninger.
Så en vCPU er en softwareimplementering af en CPU; det eksisterer ikke fysisk inde i din computer, som en rigtig CPU gør. Hypervisoren, som er den software, der opretter og administrerer VM'er, tildeler vCPU'er til den virtuelle maskine. Hver vCPU ses af operativsystemet inde i VM'en som en rigtig CPU-kerne. Se vores forklaring af hypervisorer at lære mere.
Men fordi vCPU'er er softwarebaserede, er de ikke så effektive som rigtige CPU'er. Derfor er det vigtigt at specificere hvor mange kerner din processor har når du køber en computer (f.eks. betyder "quad-core" fire kerner). Den samme regel gælder, når du vælger en virtuel privat server (VPS) eller dedikeret server-hostingplan.
Den største forskel mellem CPU'er og vCPU'er er, at CPU'er er hardwarebaserede, mens vCPU'er er softwarebaserede. Dette betyder, at CPU'er fysisk findes inde i din computer, mens vCPU'er ikke gør det; i stedet oprettes de af hypervisorer, når det er nødvendigt. På grund af denne forskel i implementering er CPU'er meget mere effektive end vCPU'er; de har ikke de overhead, der er forbundet med at køre i software.
Siden begyndelsen af 2000'erne er vCPU'er blevet mere og mere populære, fordi de er billigere og nemmere at tildele end fysiske CPU'er; Men hvis du leder efter ydeevne, er det bedst at bruge en computer med flere CPU-kerner, da hver kerne kan behandle instruktioner uafhængigt.
Kerner vs. Tråde
En CPU kan have en eller flere kerner, som er den behandlingsenhed, der udfører opgaver på et bestemt tidspunkt. Kernen vil vedligeholde opgaveudførelsesrækkefølgen, registrene og cachen (hvis relevant) og udføre operationer via ALU'en. CPU'en styrer kernerne, men kernen udfører hver softwareproces eller tråd, som operativsystemet planlægger. En tråd er en uafhængig sekvens af instruktioner, der kan behandles af en CPU.
Flere tråde kan eksistere inden for den samme proces og dele den samme hukommelsesplads. Dette giver dem mulighed for lettere at kommunikere med hinanden, end hvis de kørte inden for separate processer. Tråde bruges ofte til at forbedre ydeevnen af multitrådede applikationer ved at tillade forskellige dele af programmet at køre samtidigt på forskellige kerner eller processorer.
Udtrykket "tråd" er blevet brugt i computerterminologi i mange år; det var dog først i begyndelsen af 2000'erne, at hardware-niveau support for tråde blev introduceret i processorer. Dette gjorde det muligt at udføre flere tråde samtidigt på separate kerner. Tidligere kunne kun én tråd udføres ad gangen på en enkelt kerne, uanset hvor mange kerner der var til stede i processoren. Multicore-processorer er nu almindelige, og de fleste operativsystemer giver et vist niveau af støtte til at køre programmer som flere tråde.
Afslutning af kerneproblemerne
For at opsummere er CPU'er de hardwarebaserede hjerner på vores computere, mens deres virtuelle modstykke, vCPU'er, er softwarebaserede og skabt af hypervisorer til at køre i virtuelle maskiner. Kerner er de hardwarebaserede behandlingsenheder i en CPU, mens tråde er de softwarebaserede instruktioner, der kan behandles af en CPU.
Tråde kan udføres samtidigt på separate kerner, hvilket tillader forskellige dele af programmet at køre på samme tid. Dette kan forbedre hardwareydelsen, da flere opgaver kan behandles samtidigt i stedet for sekventielt.
Nu hvor du forstår forskellen mellem CPU'er, vCPU'er, kerner og tråde, kan du træffe en informeret beslutning, når du vælger en computer eller server. Hvis du leder efter ydeevne, er det bedst at vælge en computer med flere CPU-kerner, da hver kerne kan behandle instruktioner uafhængigt. Men hvis du leder efter en omkostningseffektiv løsning, kan vCPU'er være vejen at gå.