Centralprocessorer (CPU) är hjärnan i våra datorer. De bearbetar allt vi gör dagligen, från att öppna en applikation till att titta på en film. Men vad är egentligen en CPU? Hur fungerar det? Och vad är skillnaden mellan CPU: er och de allt mer populära vCPU: erna?

Förstå datorernas hjärnor

De första elektroniska datorerna skapades i början av 1800-talet, enligt den fullständiga historieguiden publicerad av G2. Dessa datorer var dock stora och dyra, och de kunde endast användas av utbildade matematiker och vetenskapsmän.

Charles Babbage är krediterad för att ha uppfunnit den första datormaskinen, Difference Engine, som kunde programmeras för att utföra alla beräkningar som kunde göras för hand. Emellertid slutfördes Difference Engine-projektet aldrig på grund av bristande finansiering, enligt Datahistoriska museet.

1937 nämnde Babbage första gången den analytiska motorn, som skulle bli världens första mekaniska dator för allmänt bruk. "Den analytiska motorn inkorporerade alla element i en modern dator: en aritmetisk logikenhet, kontrollflöde i form av villkorlig förgrening och loopar och integrerat minne," (

instagram viewer
Elektronikanteckningar).

En nyckelkomponent i dagens dator är CPU eller centralenhet. CPU: n är ansvarig för att utföra instruktioner som ges till den av programvara som ett operativsystem eller en applikation. I lekmannatermer kan du tänka på processorn som hjärnan i din dator. CPU: n består av två huvuddelar: styrenheten och den aritmetiska logiska enheten (ALU). Om dessa förkortningar förvirrar dig, se vår översikt över hur APU: er, CPU: er och GPU: er skiljer sig åt.

Styrenheten ansvarar för att hämta instruktioner från minnet, avkoda dem och sedan skicka dem till den aritmetiska logiska enheten för att exekveras. ALU: n utför aritmetiska och logiska operationer på data lagrade i register, som är interna lagringsenheter inuti CPU: n.

Modern CPU: er innehåller också en cache, som är en liten mängd höghastighetsminne som lagrar ofta använda instruktioner och data. Cacher är indelade i nivåer; Nivå 1 (L1) cache är inbyggd i själva CPU-matrisen, nivå 2 (L2) cache sitter på ett separat chip nära CPU: n och nivå 3 (L3) cache sitter längre bort från CPU: n på sitt eget chip eller till och med på sin egen krets styrelse.

CPU vs. vCPU

Med framväxten av molntjänster kom tillkomsten av den virtuella centralprocessorn, eller vCPU för kort. TechTarget definierar vCPU som "en fysisk central processing unit (CPU) som är tilldelad en virtuell maskin (VM)."

Virtuella maskiner är i grunden fristående operativsystem som körs i ett annat operativsystem som om de vore applikationer. VM: er används för en mängd olika syften, som att testa ny programvara i en säker miljö, köra flera operativsystem (t.ex. Windows och Linux) på samma dator, eller konsolidera flera fysiska servrar till en enda server för att spara utrymme och minska kostar.

Så en vCPU är en mjukvaruimplementering av en CPU; det finns inte fysiskt inuti din dator som en riktig CPU gör. Hypervisorn, som är programvaran som skapar och hanterar virtuella datorer, tilldelar vCPU: er till den virtuella maskinen. Varje vCPU ses av operativsystemet inuti den virtuella datorn som en riktig CPU-kärna. Se vår förklaring av hypervisorer att lära sig mer.

Men eftersom vCPU: er är mjukvarubaserade är de inte lika effektiva som riktiga processorer. Därför är det viktigt att ange hur många kärnor som din processor har när du köper en dator (t.ex. "quad-core" betyder fyra kärnor). Samma regel gäller när du väljer en virtuell privat server (VPS) eller dedikerad servervärdplan.

Den största skillnaden mellan CPU: er och vCPU: er är att CPU: er är hårdvarubaserade medan vCPU: er är mjukvarubaserade. Detta innebär att processorer fysiskt finns inuti din dator medan vCPU: er inte gör det; istället skapas de av hypervisorer när det behövs. På grund av denna skillnad i implementering är CPU: er mycket effektivare än vCPU: er; de har inte de omkostnader som är förknippade med att köra i programvara.

Sedan början av 2000-talet har vCPU: er blivit allt populärare eftersom de är billigare och lättare att tilldela än fysiska processorer; men om du letar efter prestanda är det bäst att använda en dator med flera CPU-kärnor eftersom varje kärna kan bearbeta instruktioner oberoende.

Kärnor vs. Trådar

En CPU kan ha en eller flera kärnor, vilket är den processorenhet som utför uppgifter vid en angiven tidpunkt. Kärnan kommer att upprätthålla uppgiftsexekveringsordningen, registren och cachen (om tillämpligt) och utföra operationer via ALU. CPU: n styr kärnorna, men kärnan exekverar varje programvaruprocess eller tråd som operativsystemet schemalägger. En tråd är en oberoende sekvens av instruktioner som kan bearbetas av en CPU.

Flera trådar kan existera inom samma process och dela samma minnesutrymme. Detta gör att de kan kommunicera med varandra lättare än om de kördes inom separata processer. Trådar används ofta för att förbättra prestandan för flertrådade applikationer genom att låta olika delar av programmet köras samtidigt på olika kärnor eller processorer.

Termen "tråd" har använts i datorterminologi i många år; det var dock inte förrän i början av 2000-talet som stöd på hårdvarunivå för trådar introducerades i processorer. Detta gjorde att flera trådar kunde exekveras samtidigt på separata kärnor. Tidigare kunde endast en tråd köras åt gången på en enda kärna, oavsett hur många kärnor som fanns i processorn. Flerkärniga processorer är nu vanligt förekommande, och de flesta operativsystem ger en viss grad av stöd för att köra program som flera trådar.

Avsluta kärnfrågorna

Sammanfattningsvis är CPU: er de hårdvarubaserade hjärnorna i våra datorer, medan deras virtuella motsvarighet, vCPU: er, är mjukvarubaserade och skapade av hypervisorer för att köras i virtuella maskiner. Kärnor är de hårdvarubaserade bearbetningsenheterna inom en CPU, medan trådar är de mjukvarubaserade instruktionerna som kan bearbetas av en CPU.

Trådar kan köras samtidigt på separata kärnor, vilket gör att olika delar av programmet kan köras samtidigt. Detta kan förbättra hårdvarans prestanda eftersom flera uppgifter kan bearbetas samtidigt istället för sekventiellt.

Nu när du förstår skillnaden mellan CPU: er, vCPU: er, kärnor och trådar kan du fatta ett välgrundat beslut när du väljer en dator eller server. Om du letar efter prestanda är det bäst att välja en dator med flera CPU-kärnor eftersom varje kärna kan behandla instruktioner oberoende. Men om du letar efter en kostnadseffektiv lösning kan vCPU: er vara rätt väg att gå.