Da personlige computere først blev opfundet, stod deres centrale behandlingsenhed (CPU) alene og havde kun en processorkerne. Selve processoren var kernen; tanken om at have en processor med flere kerner var endnu ikke hørt. I dag er det slet ikke ualmindeligt at se computere, telefoner og andre enheder med flere kerner - faktisk, næsten alle kommercielt tilgængelige computere af enhver art har flere kerner. Disse kerner ligger i den samme, enkelt-, CPU- eller Central Processing Unit.
At have flere kerner er en stor fordel. Med kun en kerne kan en computer kun arbejde på en opgave ad gangen og skulle udføre en opgave, før den flytter til en anden. Med flere kerner kan en computer dog arbejde på flere opgaver på én gang, hvilket er især nyttigt for dem, der gør en masse multitasking.
Før du dykker nøjagtigt i, hvordan multi-core processorer fungerer, er det vigtigt at tale lidt om baghistorien i behandlingsteknologi, hvorefter vi vil diskutere, hvad multi-core processorer gør.
Noget historie
Inden der blev bygget processorer med flere kerner, forsøgte folk og virksomheder som Intel og AMD at bygge computere med flere CPU'er. Hvad dette betød var, at der var brug for et bundkort med mere end en CPU-stik. Dette var ikke kun dyrere på grund af den fysiske hardware, der var nødvendig til en anden CPU-stik, men det øgede også forsinkelsen på grund af den øgede kommunikation, der var nødvendig for at finde sted mellem de to processorer. Et bundkort måtte opdele data mellem to helt separate placeringer på en computer i stedet for blot at sende det hele til processoren. Fysisk afstand betyder faktisk, at en proces er langsommere. At sætte disse processer på en chip med flere kerner betyder ikke kun, at der er mindre afstand til at rejse, men det betyder også, at forskellige kerner kan dele ressourcer til at udføre særligt tunge opgaver. For eksempel blev Intels Pentium II og Pentium III chips implementeret i versioner med to processorer på et bundkort.
Efter et stykke tid skulle processorer være mere magtfulde, så computerfabrikanter kom med konceptet med hypertrådning. Selve konceptet kom fra Intel, og det blev først udtænkt i 2002 på virksomhedens Xeon-serverprocessorer og senere på dets Pentium 4-desktopprocessorer. Hyper-threading bruges stadig i dag i processorer og er endda den største forskel mellem Intels i5-chips og dens i7-chips. Grundlæggende drager det fordel af det faktum, at der ofte er ubrugte ressourcer i en processor, især når opgaver ikke kræver meget behandlingskraft, som kunne bruges til andre programmer. En processor, der bruger hyper-threading, præsenterer sig grundlæggende for et operativsystem, som om den har to kerner. Naturligvis har den ikke rigtig to kerner, men for to programmer, der bruger halvdelen af den tilgængelige behandlingskraft eller mindre, kan der lige så godt være to kerner på grund af det faktum, at de sammen kan drage fordel af al den magt, som processor har at tilbyde. Hyper-threading vil dog være lidt langsommere end en processor med to kerner, når der ikke er nok behandlingskraft til at dele mellem de to programmer, der bruger kernen.
Du kan finde en indsigtsvækkende video, der giver en kort, mere detaljeret forklaring af hyper-threading her.
Multi-processorer
Efter meget eksperimentering kunne CPU'er med flere kerner endelig bygges. Hvad dette betød var, at en enkelt processor dybest set havde mere end en behandlingsenhed. For eksempel har en dual-core processor to behandlingsenheder, en quad-core har fire osv.
Så hvorfor udviklede virksomheder processorer med flere kerner? Nå, behovet for hurtigere processorer blev mere og mere tydeligt, men udviklingen i single core-processorer blev langsommere. Fra 1980'erne indtil 2000'erne kunne ingeniører øge behandlingshastigheden fra flere megahertz til flere gigahertz. Virksomheder som Intel og AMD gjorde dette ved at krympe størrelsen på transistorer, hvilket gjorde det muligt for flere transistorer i den samme mængde plads, hvilket forbedrede ydeevnen.
På grund af det faktum, at processorens urhastighed er meget knyttet til, hvor mange transistorer der kan passe på en chip, når transistorkrympningsteknologien begyndte at langsomt, begyndte udviklingen i øgede processorhastigheder også at aftage. Selvom det ikke var, når virksomheder først vidste om multi-core processorer, er det, da de begyndte at eksperimentere med multi-core processorer til kommercielle formål. Mens multikerneprocessorer først blev udviklet i midten af 1980'erne, var de designet til store virksomheder og blev ikke rigtig revideret, før en-kerneteknologi begyndte at langsomt. Den første multi-core processor blev udviklet af Rockwell International og var en version af 6501-chip med to 6502 processorer på en chip (flere detaljer findes her i denne Wikipedia-post).
Hvad gør en multi-core processor?
Nå, det er virkelig alt ret ligetil. At have flere kerner gør det muligt at udføre flere ting på én gang. Hvis du f.eks. Arbejder med e-mails, har en internetbrowser åben, arbejder på et excel-regneark og lytter til musik i iTunes, kan en quad-core-processor arbejde på alle disse ting på én gang. Eller, hvis en bruger har en opgave, der skal udføres med det samme, kan den opdeles i mindre, lettere at behandle opgaver.
Brug af flere kerner er heller ikke kun begrænset til flere programmer. F.eks. Gengiver Google Chrome hver nye side med en anden proces, hvilket betyder, at den kan drage fordel af flere kerner på én gang. Nogle programmer er dog det, der kaldes enkeltrådede, hvilket betyder, at de ikke var skrevet for at kunne bruge flere kerner, og som sådan ikke kan gøre det. Hyper-threading kommer igen i spil her, hvilket giver Chrome mulighed for at sende flere sider til to “logiske kerner” på en faktisk kerne.
At gå hånd i hånd med multi-core processorer og hyper-threading er et koncept kaldet multithreading. Multitrådning er i det væsentlige muligheden for et operativsystem til at drage fordel af flere kerner ved at opdele kode i dets mest basale form eller tråde og tilføre det til forskellige kerner samtidig. Dette er selvfølgelig vigtigt i multiprocessorer såvel som multikerneprocessorer. Multi-threading er lidt mere kompliceret end det lyder, da det kræver, at operativsystemer ordrer kode korrekt på en måde, som programmet kan fortsætte med at køre effektivt.
Operativsystemer gør selv lignende ting med deres egne processer - det er ikke kun begrænset til applikationer. Operativsystemprocesser er ting, som operativsystemet altid gør i baggrunden, uden at brugeren nødvendigvis ved det. På grund af det faktum, at disse processer altid foregår, kan det være meget nyttigt at have hyper-threading og / eller flere kerner, da det frigør processoren til at kunne arbejde på andre ting som hvad der sker i apps.
Hvordan fungerer multi-core processorer?
Først skal bundkortet og operativsystemet genkende processoren, og at der er flere kerner. Ældre computere havde kun en kerne, så et ældre operativsystem fungerer muligvis ikke for godt, hvis en bruger prøvede at installere det på en nyere computer med flere kerner. Windows 95 understøtter for eksempel ikke hyper-threading eller flere kerner. Alle nylige operativsystemer understøtter multi-core processorer, herunder Windows 7, 8, den nyligt frigivne 10 og Apples OS X 10.10.
Grundlæggende sagt fortæller operativsystemet bundkortet, at der skal udføres en proces. Bundkortet fortæller derefter processoren. I en multi-core processor kan operativsystemet fortælle processoren at gøre flere ting på én gang. I det væsentlige flyttes data gennem styresystemets retning fra harddisken eller RAM, via bundkortet, til processoren.
Multi-Core-processor
I en processor er der flere niveauer af cachehukommelse, der indeholder data til processoren næste operation eller operationer. Disse niveauer af cachehukommelse sikrer, at processor ikke behøver at kigge meget langt for at finde deres næste proces, hvilket sparer en masse tid. Det første niveau i cachehukommelsen er L1-cachen. Hvis processoren ikke kan finde de data, den har brug for til sin næste proces i L1-cachen, ser den ud til L2-cachen. L2-cachen er større i hukommelsen, men er langsommere end L1-cachen.
Single Core-processor
Hvis en processor ikke kan finde, hvad den leder efter i L2-cache, fortsætter den ned ad linjen til L3, og hvis en processor har det, L4. Derefter vil det se ud i hovedhukommelsen eller RAM på en computer.
Der er også forskellige måder, hvorpå forskellige processorer håndterer forskelle-cachen. Nogle kopierer for eksempel dataene om L1-cachen i L2-cachen, hvilket stort set er en måde at sikre, at processoren kan finde, hvad den leder efter. Dette optager naturligvis mere hukommelse i L2-cachen.
Forskellige niveauer af cache kommer også i spil i multi-core processorer. Normalt vil hver kerne have sin egen L1-cache, men de vil dele L2-cache. Dette er anderledes end hvis der var flere processorer, fordi hver processor har sin egen L1, L2 og enhver anden cache på niveau. Med flere single-core processorer er deling af cache simpelthen ikke mulig. En af de største fordele ved at have en delt cache er muligheden for at bruge en cache til fulde på grund af det faktum, at hvis den ene kerne ikke bruger cachen, kan den anden gøre det.
I en multi-core-processor kan en kerne, når du søger efter data, kigge gennem sin egen unikke L1-cache, og vil derefter forgrene sig til delt L2-cache, RAM og til sidst harddisken.
Det er sandsynligt, at vi fortsat vil se udviklingen af flere kerner. Processorens urhastigheder vil helt sikkert fortsætte med at blive bedre, omend i langsommere hastigheder end før. Selvom det nu ikke er ualmindeligt at se octa-core-processorer i ting som smartphones, kunne vi snart se processorer med snesevis af kerner.
Hvor tror du, at multi-core-behandlingsteknologi er på vej næste gang? Fortæl os det i kommentarerne herunder, eller ved at starte en ny tråd i vores fællesskabsforum.
