Anonim

Da personlige datamaskiner ble oppfunnet for første gang, sto deres sentrale prosesseringsenhet (CPU) alene og hadde bare en prosessorkjerne. Selve prosessoren var kjernen; ideen om å ha en prosessor med flere kjerner var ennå uhørt. I dag er det overhodet ikke uvanlig å se datamaskiner, telefoner og andre enheter med flere kjerner - faktisk har omtrent alle kommersielt tilgjengelige datamaskiner av noe slag flere kjerner. Disse kjernene ligger i den samme, enkle, CPU eller sentrale prosesseringsenheten.

Å ha flere kjerner er en stor fordel. Med bare en kjerne kan en datamaskin bare jobbe med en oppgave av gangen, og måtte fullføre en oppgave før den går over til en annen. Med flere kjerner kan en datamaskin imidlertid jobbe med flere oppgaver samtidig, noe som er spesielt nyttig for de som gjør mye multitasking.

Før du dykker ned nøyaktig hvordan flerkjerneprosessorer fungerer, er det viktig å snakke litt om backstory for prosesseringsteknologi, hvoretter vi vil diskutere hva flerkjerneprosessorer gjør.

Noe historie

Før prosessorer med flere kjerner ble bygget, prøvde folk og selskaper som Intel og AMD å bygge datamaskiner med flere CPUer. Hva dette betydde var at et hovedkort med mer enn en CPU-kontakt var nødvendig. Ikke bare var dette dyrere, på grunn av den fysiske maskinvaren som trengs for en annen CPU-kontakt, men det økte også forsinkelsen på grunn av den økte kommunikasjonen som var nødvendig for å finne sted mellom de to prosessorene. Et hovedkort måtte dele opp data mellom to helt separate steder på en datamaskin i stedet for bare å sende alt til prosessoren. Fysisk avstand betyr faktisk at en prosess er tregere. Å sette disse prosessene på en brikke med flere kjerner betyr ikke bare at det er mindre avstand til å reise, men det betyr også at forskjellige kjerner kan dele ressurser for å utføre spesielt tunge oppgaver. For eksempel ble Intels Pentium II og Pentium III-brikker implementert i versjoner med to prosessorer på ett hovedkort.

Etter en stund trengte prosessorer å være kraftigere, slik at datamaskinprodusenter kom på konseptet hyper-threading. Selve konseptet kom fra Intel, og det ble først unnfanget i 2002 på selskapets Xeon-serverprosessorer, og senere på Pentium 4-stasjonære prosessorer. Hyper-threading brukes fortsatt i dag i prosessorer, og er til og med den viktigste forskjellen mellom Intels i5-brikker og i7-brikkene. Det drar i utgangspunktet fordel av det faktum at det ofte er ubrukte ressurser i en prosessor, spesielt når oppgaver ikke krever mye prosessorkraft, som kan brukes til andre programmer. En prosessor som bruker hyper-threading presenterer seg i utgangspunktet for et operativsystem som om den har to kjerner. Selvfølgelig har den egentlig ikke to kjerner, men for to programmer som bruker halvparten av prosessorkraften tilgjengelig eller mindre, kan det like godt være to kjerner på grunn av det faktum at de sammen kan dra nytte av all kraften som prosessor har å tilby. Hyper-threading vil imidlertid være litt tregere enn en prosessor med to kjerner når det ikke er nok prosessorkraft til å dele mellom de to programmene som bruker kjernen.

Du kan finne en innsiktsfull video som gir en kort, mer detaljert forklaring av hypertråder her.

Multi-prosessorer

Etter mye eksperimentering kunne endelig CPU-er med flere kjerner bygges. Hva dette betydde var at en enkelt prosessor i utgangspunktet hadde mer enn en prosesseringsenhet. For eksempel har en dual-core prosessor to prosesseringsenheter, en quad-core har fire, og så videre.

Så hvorfor utviklet selskaper prosessorer med flere kjerner? Vel, behovet for raskere prosessorer ble mer og mer tydelig, men utviklingen i enkeltkjerneprosessorer avtok. Fra 1980-tallet og fram til 2000-tallet klarte ingeniører å øke behandlingshastigheten fra flere megahertz til flere gigahertz. Selskaper som Intel og AMD gjorde dette ved å krympe størrelsen på transistorer, noe som gjorde det mulig for flere transistorer i samme mengde plass, og dermed forbedre ytelsen.

På grunn av det faktum at prosessorens klokkehastighet er veldig knyttet til hvor mange transistorer som kan passe på en brikke, da transistor krympingsteknologien begynte å avta, begynte utviklingen i økte prosessorhastigheter også å avta. Selv om dette ikke var når selskaper først visste om flerkjerneprosessorer, er det når de begynte å eksperimentere med flerkjerneprosessorer til kommersielle formål. Mens flerkjerneprosessorer først ble utviklet på midten av 1980-tallet, var de designet for store selskaper, og ble ikke reist på nytt før enkjerneteknologi begynte å avta. Den første flerkjerneprosessoren ble utviklet av Rockwell International, og var en versjon av 6501-brikken med to 6502 prosessorer på en brikke (flere detaljer er tilgjengelige her i denne Wikipedia-oppføringen).

Hva gjør en flerkjerneprosessor?

Vel, det er egentlig ganske greit. Å ha flere kjerner gjør det mulig å gjøre flere ting på en gang. Hvis du for eksempel jobber med e-post, har en nettleser åpen, jobber med et Excel-regneark og lytter til musikk i iTunes, kan en firkjerneprosessor jobbe med alle disse tingene samtidig. Eller, hvis en bruker har en oppgave som må fullføres med en gang, kan den deles opp i mindre, lettere å behandle oppgaver.

Å bruke flere kjerner er heller ikke bare begrenset til flere programmer. For eksempel gjengir Google Chrome hver nye side med en annen prosess, noe som betyr at den kan dra nytte av flere kjerner samtidig. Noen programmer er imidlertid det som kalles enkeltrådet, noe som betyr at de ikke ble skrevet for å kunne bruke flere kjerner, og som sådan ikke kan gjøre det. Hyper-threading kommer igjen til å spille her, slik at Chrome kan sende flere sider til to “logiske kjerner” på en faktisk kjerne.

Å gå hånd i hånd med flerkjerneprosessorer og hypertråd er et konsept som heter multithreading. Multitretting er i hovedsak muligheten for et operativsystem til å dra nytte av flere kjerner ved å dele opp kode i sin mest grunnleggende form, eller tråder, og mate den til forskjellige kjerner samtidig. Dette er selvfølgelig viktig både i multiprosessorer og flerkjerneprosessorer. Multitråding er litt mer intrikat enn det høres ut, da det krever at operativsystemer ordrer kode riktig på en måte som programmet kan fortsette å kjøre effektivt.

Operativsystemer gjør selv lignende ting med egne prosesser - det er ikke bare begrenset til applikasjoner. Operativsystemprosesser er ting som operativsystemet alltid gjør i bakgrunnen, uten at brukeren nødvendigvis vet det. På grunn av det faktum at disse prosessene alltid pågår, kan det være veldig nyttig å ha hyper-threading og / eller flere kjerner, da det frigjør prosessoren for å kunne jobbe med andre ting som det som skjer i apper.

Hvordan fungerer flerkjerneprosessorer?

Først må hovedkortet og operativsystemet gjenkjenne prosessoren og at det er flere kjerner. Eldre datamaskiner hadde bare en kjerne, så et eldre operativsystem fungerer kanskje ikke så bra hvis en bruker prøvde å installere det på en nyere datamaskin med flere kjerner. Windows 95 støtter for eksempel ikke hypertråd eller flere kjerner. Alle nylige operativsystemer støtter flerkjerneprosessorer, inkludert Windows 7, 8, den nylig utgitte 10 og Apples OS X 10.10.

I utgangspunktet forteller operativsystemet hovedkortet at en prosess må gjøres. Hovedkortet forteller deretter prosessoren. I en flerkjerneprosessor kan operativsystemet be prosessoren om å gjøre flere ting på en gang. I hovedsak, gjennom retning av operativsystemet, blir data flyttet fra harddisken eller RAM, via hovedkortet, til prosessoren.

Multi-Core prosessor

I en prosessor er det flere nivåer av hurtigminne som inneholder data for prosessorens neste operasjon eller operasjoner. Disse nivåene av hurtigminnet sikrer at prosessoren ikke trenger å lete veldig langt for å finne sin neste prosess, og sparer mye tid. Det første nivået i hurtigminnet er L1-hurtigbufferen. Hvis prosessoren ikke finner dataene den trenger for sin neste prosess i L1-cachen, ser den til L2-cachen. L2-cachen er større i minnet, men er tregere enn L1-cachen.

Enkjerneprosessor

Hvis en prosessor ikke finner det den leter etter i L2-cache, fortsetter den nedover til L3, og hvis en prosessor har den, L4. Etter det vil det se ut i hovedminnet, eller RAM-en til en datamaskin.

Det er også forskjellige måter forskjellige prosessorer håndterer forskjellsbufrene. Noen dupliserer for eksempel dataene om L1-cachen i L2-cachen, som i utgangspunktet er en måte å sikre at prosessoren kan finne det den leter etter. Dette tar selvfølgelig mer minne i L2-cachen.

Ulike cache-nivåer spiller også inn i flerkjerneprosessorer. Vanligvis vil hver kjerne ha sin egen L1-cache, men de vil dele L2-cache. Dette er forskjellig fra om det var flere prosessorer, fordi hver prosessor har sin egen L1, L2 og enhver annen nivåbuffer. Med flere enkeltkjerneprosessorer er cache-deling ganske enkelt ikke mulig. En av hovedfordelene med å ha en delt cache er muligheten til å bruke en cache til det fulle, på grunn av det faktum at hvis den ene kjernen ikke bruker cachen, kan den andre gjøre det.

I en flerkjerneprosessor, når en søker etter data, kan en kjerne se gjennom sin egen unike L1-cache, og deretter forgrenes seg til delt L2-cache, RAM og til slutt harddisken.

Det er sannsynlig at vi fortsetter å se utviklingen av flere kjerner. Prosessorens klokkehastigheter vil helt sikkert fortsette å bli bedre, om enn med lavere hastigheter enn før. Selv om det nå ikke er uvanlig å se octa-core prosessorer i ting som smarttelefoner, så snart vi kunne se prosessorer med dusinvis av kjerner.

Hvor tror du ledet prosesseringsteknologi med flere kjerner? Gi oss beskjed i kommentarene nedenfor, eller ved å starte en ny tråd i samfunnsforumet vårt.

Alt om flerkjerneprosessorer: hva de er, hvordan de fungerer og hvor de kom fra