Anonim

När persondatorer först uppfanns stod deras centrala processorenhet (CPU) ensam och hade bara en processorkärna. Processorn själv var kärnan; tanken på att ha en processor med flera kärnor var ännu okänd. Idag är det inte alls ovanligt att se datorer, telefoner och andra enheter med flera kärnor - i stort sett har alla kommersiellt tillgängliga datorer av något slag flera kärnor. Dessa kärnor ligger i samma, enda, CPU eller centrala processenhet.

Att ha flera kärnor är en stor fördel. Med bara en kärna kan en dator bara arbeta med en uppgift i taget och måste slutföra en uppgift innan den går över till en annan. Med fler kärnor kan en dator dock arbeta med flera uppgifter på en gång, vilket är särskilt användbart för dem som gör mycket multitasking.

Innan du dyker in exakt hur flerkärniga processorer fungerar är det viktigt att prata lite om backstoryen för bearbetningsteknologi, varefter vi kommer att diskutera vad flerkärniga processorer gör.

En del historia

Innan processorer med flera kärnor byggdes försökte människor och företag som Intel och AMD bygga datorer med flera processorer. Vad detta betydde var att ett moderkort med mer än ett CPU-uttag behövdes. Detta var inte bara dyrare, på grund av den fysiska hårdvaran som behövs för ett annat CPU-uttag, utan det ökade också latensen på grund av den ökade kommunikationen som behövdes för att äga rum mellan de två processorerna. Ett moderkort måste dela upp data mellan två helt separata platser i en dator istället för att helt enkelt skicka allt till processorn. Fysiskt avstånd betyder faktiskt att en process är långsammare. Att sätta dessa processer på ett chip med flera kärnor betyder inte bara att det är mindre avstånd att resa, utan det betyder också att olika kärnor kan dela resurser för att utföra särskilt tunga uppgifter. Till exempel implementerades Intels Pentium II och Pentium III chips i versioner med två processorer på ett moderkort.

Efter ett tag behövde processorerna vara mer kraftfulla, så datortillverkare kom med konceptet hyper-gängning. Konceptet självt kom från Intel, och det tänktes först 2002 på företagets Xeon-serverprocessorer och senare på sina Pentium 4-skrivbordsprocessorer. Hyper-threading används fortfarande idag i processorer och är till och med den största skillnaden mellan Intels i5-chips och dess i7-chips. I grund och botten utnyttjar det faktum att det ofta finns oanvända resurser i en processor, speciellt när uppgifter inte kräver mycket processorkraft, vilket kan användas för andra program. En processor som använder hypertrådning presenterar sig i princip för ett operativsystem som om den har två kärnor. Naturligtvis har den egentligen inte två kärnor, men för två program som använder hälften av den tillgängliga bearbetningskraften eller mindre, kan det lika bra vara två kärnor på grund av det faktum att de tillsammans kan dra fördel av all den kraft som processor har att erbjuda. Hyper-threading kommer dock att vara något långsammare än en processor med två kärnor när det inte finns tillräckligt med processorkraft för att dela mellan de två programmen som använder kärnan.

Du kan hitta en insiktsvideo som ger en kort, mer detaljerad förklaring av hypertrådning här.

Multi-processorer

Efter mycket experiment kunde CPU: er med flera kärnor äntligen byggas. Vad detta betydde var att en enda processor i princip hade mer än en behandlingsenhet. Till exempel har en dual-core processor två processorenheter, en quad-core har fyra, och så vidare.

Så varför utvecklade företag processorer med flera kärnor? Nåväl, behovet av snabbare processorer blev allt mer uppenbart, men utvecklingen inom processorer med en enda kärna dämpade. Från 1980-talet fram till 2000-talet kunde ingenjörerna öka bearbetningshastigheten från flera megahertz till flera gigahertz. Företag som Intel och AMD gjorde detta genom att krympa storleken på transistorer, vilket möjliggjorde fler transistorer i samma utrymme och därmed förbättra prestandan.

På grund av det faktum att processorklockhastigheten är mycket kopplad till hur många transistorer som får plats på ett chip, när transistorkrympningstekniken började sakta, började utvecklingen i ökade processorhastigheter också sakta. Även om detta inte var när företag först visste om flerkärniga processorer, är det när de började experimentera med flerkärniga processorer för kommersiella ändamål. Medan processorer med flera kärnor först utvecklades i mitten av 1980-talet, designades de för stora företag och omarbetades inte riktigt förrän en enda kärnteknologi började sakta. Den första flerkärniga processorn utvecklades av Rockwell International och var en version av 6501-chipet med två 6502-processorer på ett chip (mer information finns här i denna Wikipedia-post).

Vad gör en flerkärnig processor?

Tja, det är verkligen allt ganska enkelt. Att ha flera kärnor gör att flera saker kan göras på en gång. Om du till exempel arbetar med e-post, har en webbläsare öppen, arbetar på ett Excel-kalkylblad och lyssnar på musik i iTunes, kan en fyrkärnig processor arbeta med alla dessa saker på en gång. Eller om en användare har en uppgift som måste slutföras direkt, kan den delas upp i mindre, lättare att bearbeta uppgifter.

Att använda flera kärnor är inte bara begränsat till flera program. Till exempel ger Google Chrome varje ny sida med en annan process, vilket innebär att den kan dra fördel av flera kärnor på en gång. Vissa program är dock vad som kallas enkeltrådiga, vilket innebär att de inte var skrivna för att kunna använda flera kärnor och som sådan inte kan göra det. Hyper-threading spelas igen här, vilket gör att Chrome kan skicka flera sidor till två "logiska kärnor" på en faktisk kärna.

Att gå hand i hand med processorer med flera kärnor och hypergängning är ett koncept som kallas multitrådning. Multitrådning är i huvudsak förmågan för ett operativsystem att dra fördel av flera kärnor genom att dela upp koden i dess mest grundläggande form, eller trådar, och mata den till olika kärnor samtidigt. Detta är naturligtvis viktigt i såväl multiprocessorer som multikärnprocessorer. Multitrådning är lite mer komplicerad än det låter, eftersom det kräver att operativsystem ordnar ordentlig kod på ett sätt som programmet kan fortsätta köra effektivt.

Operativsystem själva gör liknande saker med sina egna processer - det är inte bara begränsat till applikationer. Operativsystemprocesser är saker som operativsystemet alltid gör i bakgrunden utan att användaren nödvändigtvis vet det. På grund av det faktum att dessa processer alltid pågår kan hypertrådning och / eller flera kärnor vara till stor hjälp eftersom det frigör processorn för att kunna arbeta med andra saker som vad som händer i appar.

Hur fungerar flerkärniga processorer?

Först måste moderkortet och operativsystemet känna igen processorn och att det finns flera kärnor. Äldre datorer hade bara en kärna, så ett äldre operativsystem kanske inte fungerar så bra om en användare försökte installera den på en nyare dator med flera kärnor. Windows 95 stöder till exempel inte hypertrådning eller flera kärnor. Alla senaste operativsystem stöder flerkärniga processorer, inklusive Windows 7, 8, den nyligen släppta 10 och Apples OS X 10.10.

I princip säger operativsystemet sedan moderkortet att en process måste göras. Moderkortet berättar sedan för processorn. I en flerkärnig processor kan operativsystemet säga processorn att göra flera saker samtidigt. I huvudsak, genom operativsystemets riktning, flyttas data från hårddisken eller RAM, via moderkortet till processorn.

Multi-Core-processor

Inom en processor finns det flera nivåer av cacheminne som innehåller data för processorns nästa operation eller operation. Dessa nivåer av cacheminne säkerställer att processor inte behöver leta så långt för att hitta sin nästa process, vilket sparar mycket tid. Den första nivån i cacheminnet är L1-cachen. Om processorn inte kan hitta de data den behöver för sin nästa process i L1-cachen, ser den till L2-cachen. L2-cachen är större i minnet, men är långsammare än L1-cachen.

Enkelkärnprocessor

Om en processor inte kan hitta det den letar efter i L2-cache fortsätter den längs linjen till L3, och om en processor har den, L4. Efter det kommer det att se i huvudminnet eller RAM-minnet på en dator.

Det finns också olika sätt på vilka olika processorer hanterar skillnadscacharna. Vissa kopierar till exempel uppgifterna om L1-cachen i L2-cachen, vilket i princip är ett sätt att säkerställa att processorn kan hitta det den letar efter. Detta tar naturligtvis mer minne i L2-cachen.

Olika nivåer av cache spelas också in i flerkärniga processorer. Vanligtvis kommer varje kärna att ha sin egen L1-cache, men de kommer att dela L2-cache. Detta skiljer sig från om det fanns flera processorer, eftersom varje processor har sin egen L1, L2 och någon annan nivåcache. Med flera enkelkärniga processorer är cache-delning helt enkelt inte möjligt. En av de främsta fördelarna med att ha en delad cache är förmågan att använda en cache till fullo, på grund av det faktum att om en kärna inte använder cachen, kan den andra göra det.

I en flerkärnig processor kan en kärna leta igenom sin egen unika L1-cache när den söker efter data och kommer sedan att delas ut till delad L2-cache, RAM och så småningom hårddisken.

Det är troligt att vi kommer att fortsätta se utvecklingen av fler kärnor. Processorklockhastigheterna kommer säkert att fortsätta bli bättre, om än i långsammare takt än tidigare. Även om det nu inte är ovanligt att se octa-core-processorer i saker som smartphones, så kunde vi snart se processorer med dussintals kärnor.

Vart tror du att flerkärniga behandlingsteknologi kommer nu? Låt oss veta i kommentarerna nedan, eller genom att starta en ny tråd i vårt communityforum.

Allt om flerkärniga processorer: vad de är, hur de fungerar och var de kom ifrån