Sådan fungerer mikroprocessorer

  • Cameron Merritt
  • 0
  • 1763
  • 223
Mikroprocessorer er kernen i alle computere. Jorg Greuel / Getty Images

-Den computer, du bruger til at læse denne side, bruger a mikroprocessor at gøre sit arbejde. Mikroprocessoren er hjertet i enhver normal computer, hvad enten det er en stationær maskine, en server eller en bærbar computer. Den mikroprocessor, du bruger, kan være et Pentium, en K6, en PowerPC, en Sparc eller et af de mange andre mærker og typer af mikroprocessorer, men de gør alle omtrent samme ting på omtrent samme måde.

En mikroprocessor - også kendt som en CPU eller central behandlingsenhed - er en komplet beregningsmotor, der er fremstillet på en enkelt chip. Den første mikroprocessor var Intel 4004, der blev introduceret i 1971. 4004 var ikke særlig kraftig - alt hvad det kunne gøre var at tilføje og trække fra, og det kunne kun gøre det 4 bit ad gangen. Men det var forbløffende, at alt var på en chip. Før 4004 byggede ingeniører computere enten fra samlinger af chips eller fra diskrete komponenter (transistorer tilsluttet en ad gangen). 4004 drev en af ​​de første bærbare elektroniske regnemaskiner.

- Hvis du nogensinde har spekuleret på hvad mikroprocessoren på din computer laver, eller hvis du nogensinde har spekuleret på forskellene mellem typer af mikroprocessorer, så læs videre. I denne artikel lærer du, hvordan temmelig enkle digitale logik-teknikker tillader en computer at udføre sit job, hvad enten det spiller et spil eller stavekontrol af et dokument!

Indhold
  1. Mikroprocessorprogression: Intel
  2. Mikroprocessorlogik
  3. Mikroprocessorhukommelse
  4. Mikroprocessorinstruktioner
  5. Mikroprocessorydelse og tendenser
  6. 64-bit mikroprocessorer
Intel 8080 var den første mikroprocessor i en hjemmecomputer.

Den første mikroprocessor til at gøre det til en hjemmecomputer var Intel 8080, en komplet 8-bit computer på en chip, der blev introduceret i 1974. Den første mikroprocessor til at skabe en rigtig plask på markedet var Intel 8088, introduceret i 1979 og inkorporeret ind i IBM PC (som først optrådte omkring 1982). Hvis du er bekendt med pc-markedet og dets historie, ved du, at pc-markedet flyttede fra 8088 til 80286 til 80386 til 80486 til Pentium til Pentium II til Pentium III til Pentium 4. Alle disse mikroprocessorer er lavet af Intel, og alle af dem er forbedringer af det grundlæggende design af 8088. Pentium 4 kan udføre ethvert stykke kode, der kørte på den originale 8088, men det gør det ca. 5.000 gange hurtigere!

Siden 2004 har Intel introduceret mikroprocessorer med flere kerner og millioner flere transistorer. Men selv disse mikroprocessorer følger de samme generelle regler som tidligere chips.

Her er forskellene mellem de forskellige processorer, som Intel har introduceret gennem årene. Samlet fra Intel Microprocessor Quick Reference Guide og TSCP Benchmark Scores

Yderligere oplysninger om tabellen på denne side:

  • Det dato er året, hvor processoren først blev introduceret. Mange processorer introduceres ved højere urhastigheder i mange år efter den originale frigivelsesdato.
  • Transistorer er antallet af transistorer på chippen. Du kan se, at antallet af transistorer på en enkelt chip er steget støt gennem årene.
  • mikron er bredden, i mikron, af den mindste ledning på chippen. Til sammenligning er et menneskehår 100 mikron tykt. Når funktionsstørrelsen på chippen falder, stiger antallet af transistorer.
  • Urhastighed er den maksimale hastighed, som chippen kan uret til. Urhastighed giver mere mening i næste afsnit.
  • Data bredde er bredden af ​​ALU. En 8-bit ALU kan tilføje / trække / multiplicere / osv. to 8-bitnumre, mens en 32-bit ALU kan manipulere 32-bitnumre. En 8-bit ALU bliver nødt til at udføre fire instruktioner for at tilføje to 32-bit-numre, mens en 32-bit ALU kan gøre det i en instruktion. I mange tilfælde er den eksterne databus den samme bredde som ALU, men ikke altid. 8088 havde en 16-bit ALU og en 8-bit bus, mens de moderne Pentiums henter data 64 bit ad gangen for deres 32-bit ALU'er.
  • MIPS står for "millioner af instruktioner pr. sekund" og er et groft mål for en CPU's ydelse. Moderne CPU'er kan gøre så mange forskellige ting, at MIPS-klassifikationer mister meget af deres betydning, men du kan få en generel fornemmelse af CPU'ernes relative styrke fra denne kolonne.

Fra denne tabel kan du se, at der generelt er et forhold mellem urhastighed og MIPS. Den maksimale urhastighed er en funktion af fremstillingsprocessen og forsinkelser i chippen. Der er også et forhold mellem antallet af transistorer og MIPS. For eksempel blev 8088 uret til 5 MHz, men kun udført ved 0,33 MIPS (ca. en instruktion pr. 15 urcyklusser). Moderne processorer kan ofte udføre med en hastighed på to instruktioner pr. Urcyklus. Denne forbedring er direkte relateret til antallet af transistorer på chippen og vil være mere fornuftig i det næste afsnit.

Hvad er en chip?

EN chip kaldes også en integreret kredsløb. Generelt er det et lille, tyndt stykke silicium, hvorpå transistorer, der udgør mikroprocessoren, er ætset. En chip kan være så stor som en tomme på en side og kan indeholde titusinder af millioner af transistorer. Enklere processorer kan muligvis bestå af et par tusinde transistorer, der er ætset på en chip kun et par millimeter kvadrat.

Intel Pentium 4 processor Foto høflighed Intel Corporation

For at forstå, hvordan en mikroprocessor fungerer, er det nyttigt at kigge inde og lære om den logik, der bruges til at oprette en. I processen kan du også lære om samling sprog -- et mikroprocessors modersmål - og mange af de ting, som ingeniører kan gøre for at øge hastigheden på en processor.

En mikroprocessor udfører en samling af maskininstruktioner, der fortæller processoren, hvad de skal gøre. Baseret på instruktionerne gør en mikroprocessor tre grundlæggende ting:

  • Ved hjælp af sin ALU (aritmetisk / logisk enhed) kan en mikroprocessor udføre matematiske operationer som tilføjelse, subtraktion, multiplikation og opdeling. Moderne mikroprocessorer indeholder komplette flydepunktprocessorer, der kan udføre ekstremt sofistikerede operationer på store flydepunktnumre.
  • En mikroprocessor kan flytte data fra et hukommelsessted til et andet.
  • En mikroprocessor kan træffe beslutninger og springe til et nyt sæt instruktioner baseret på disse beslutninger.

Der kan være meget sofistikerede ting, som en mikroprocessor gør, men det er dens tre grundlæggende aktiviteter. Følgende diagram viser en ekstremt enkel mikroprocessor, der er i stand til at gøre disse tre ting:

Dette er omtrent så enkelt som en mikroprocessor bliver. Denne mikroprocessor har:

  • en adressebus (det kan være 8, 16 eller 32 bit bredt), der sender en adresse til hukommelsen
  • EN databus (det kan være 8, 16 eller 32 bit bredt), der kan sende data til hukommelse eller modtage data fra hukommelsen
  • en RD (Læs og WR (skriv) linje for at fortælle hukommelsen, om den vil indstille eller få den adresserede placering
  • EN ur linje der lader en ur puls sekvens processoren
  • EN nulstil linje der nulstiller programtælleren til nul (eller hvad som helst) og genstarter udførelsen

Lad os antage, at både adressebussen og databusserne er 8 bit brede i dette eksempel.

Her er komponenterne i denne enkle mikroprocessor:

  • Registrerne A, B og C er simpelthen låse lavet af flip-flops. (Se afsnittet om "kantudløste låse" i Sådan fungerer boolsk logik for detaljer.)
  • Adresselåsen er ligesom registre A, B og C.
  • Programtælleren er en låse med den ekstra evne til at øge med 1, når det bliver bedt om det, og også at nulstille til nul, når det bliver bedt om det.
  • ALU kan være så enkel som en 8-bit-tilføjelse (se afsnittet om tilføjere i Sådan fungerer boolsk logik for detaljer), eller det kan være muligt at tilføje, trække, multiplicere og opdele 8-bit-værdier. Lad os antage sidstnævnte her.
  • Testregistret er en speciel klink, der kan indeholde værdier fra sammenligninger udført i ALU. En ALU kan normalt sammenligne to tal og bestemme, om de er ens, hvis det ene er større end det andet osv. Testregistret kan også normalt indeholde en bærebit fra den sidste trin i adderen. Det gemmer disse værdier i flip-flops, og derefter kan instruktionsdekoderen bruge værdierne til at tage beslutninger.
  • Der er seks felter markeret med "3-tilstand" i diagrammet. Disse er tri-state buffere. En tri-tilstandsbuffer kan passere en 1, en 0, eller den kan i det væsentlige afbryde dens output (forestil dig en afbryder, der fuldstændigt kobler udgangslinjen fra den ledning, som udgangen går mod). En tri-state buffer tillader flere udgange at oprette forbindelse til en ledning, men kun en af ​​dem til faktisk at køre en 1 eller en 0 på linjen.
  • Instruktionsregisteret og instruktionsdekoderen er ansvarlig for at kontrollere alle de andre komponenter.

Selvom de ikke er vist i dette diagram, ville der være kontrollinjer fra instruktionsdekoderen, der ville:

  • Bed til A-registeret om at låse den aktuelle værdi på databussen
  • Bed B-registeret om at låse den aktuelle værdi på databussen
  • Bed C-registeret om at låse den værdi, der i øjeblikket udsendes af ALU
  • Bed programtælleregisteret om at låse den aktuelle værdi på databussen
  • Fortæl adresseregisteret for at låse den aktuelle værdi på databussen
  • Fortæl instruktionsregisteret for at låse den aktuelle værdi på databussen
  • Fortæl programtælleren om stigningen
  • Fortæl programtælleren om at nulstille til nul
  • Aktivér en af ​​de seks tri-state buffere (seks separate linjer)
  • Fortæl ALU, hvilken handling der skal udføres
  • Bed testregistret om at låse ALU's testbits
  • Aktivér RD-linjen
  • Aktivér WR-linjen

Kommer ind i instruktionsdekoderen er bitene fra testregisteret og urlinien samt bitene fra instruktionsregisteret.

ROM-chip

Den foregående sektion talte om adresse- og databusser samt RD- og WR-linjerne. Disse busser og linjer forbinder enten RAM eller ROM - generelt begge dele. I vores eksempelmikroprocessor har vi en adressebus 8 bit bred og en databus 8 bit bred. Det betyder, at mikroprocessoren kan adressere (28) 256 bytes hukommelse, og den kan læse eller skrive 8 bits af hukommelsen ad gangen. Lad os antage, at denne enkle mikroprocessor har 128 byte ROM, der starter ved adresse 0 og 128 bytes RAM, der starter ved adresse 128.

ROM står for skrivebeskyttet hukommelse. En ROM-chip er programmeret med en permanent samling af forudindstillede bytes. Adressebussen fortæller ROM-chippen, hvilken byte der skal hentes og placeres på databussen. Når RD-linjen ændrer tilstand, viser ROM-chippen den valgte byte på databussen.

RAM står for hukommelse med tilfældig adgang. RAM indeholder bytes af information, og mikroprocessoren kan læse eller skrive til disse bytes afhængigt af om RD- eller WR-linjen er signaleret. Et problem med nutidens RAM-chips er, at de glemmer alt, når strømmen slukker. Derfor har computeren brug for ROM.

RAM-chip

I øvrigt indeholder næsten alle computere en vis mængde ROM (det er muligt at oprette en simpel computer, der ikke indeholder nogen RAM - mange mikrokontrollere gør dette ved at placere en håndfuld RAM-bytes på selve processorchippen - men generelt umuligt at oprette en der ikke indeholder nogen ROM). På en pc kaldes ROM'en BIOS (Basic Input / Output System). Når mikroprocessoren starter, begynder den at udføre instruktioner, den finder i BIOS. BIOS-instruktionerne gør ting som at teste hardware i maskinen, og derefter går det til harddisken for at hente boot sektor (se Hvordan harddiske fungerer for detaljer). Denne boot sektor er et andet lille program, og BIOS gemmer det i RAM efter at have læst det fra disken. Mikroprocessoren begynder derefter at udføre boot-sektorens instruktioner fra RAM. Bootsektorprogrammet fortæller mikroprocessoren om at hente noget andet fra harddisken i RAM, som mikroprocessoren derefter udfører, og så videre. Dette er, hvordan mikroprocessoren indlæser og udfører hele operativsystemet.

Selv den utroligt enkle mikroprocessor vist i det foregående eksempel vil have et ret stort sæt instruktioner, som den kan udføre. Indsamlingen af ​​instruktioner implementeres som bitmønstre, der hver har en anden betydning, når de indlæses i instruktionsregisteret. Mennesker er ikke særlig gode til at huske bitmønstre, så et sæt korte ord defineres for at repræsentere de forskellige bitmønstre. Denne samling af ord kaldes samling sprog af processoren. en assembler kan oversætte ordene til deres bitmønstre meget let, og derefter placeres output fra samleren i hukommelsen, så mikroprocessoren kan udføre.

Her er det sæt af monteringssproginstruktioner, som designeren muligvis oprettede til den enkle mikroprocessor i vores eksempel:

  • LOADA mem - Indlæs register A fra hukommelsesadressen
  • LOADB mem - Indlæs register B fra hukommelsesadressen
  • CONB con - Indlæs en konstant værdi i register B
  • SAVEB mem - Gem register B på hukommelsesadressen
  • SAVEC mem - Gem register C på hukommelsesadressen
  • TILFØJE - Tilføj A og B, og gem resultatet i C
  • SUB - Trækk A og B og gem resultatet i C
  • MUL - Multiplicer A og B, og gem resultatet i C
  • DIV - Opdel A og B, og opbevar resultatet i C
  • KOM - Sammenlign A og B, og gem resultatet i test
  • JUMP addr - Gå til en adresse
  • JEQ addr - Spring, hvis lige, til adresse
  • JNEQ addr - Spring, hvis ikke lige, til adresse
  • JG addr - Spring, hvis større end, til adresse
  • JGE addr - Spring, hvis større end eller lig, til adresse
  • JL addr - Spring, hvis mindre end, til adresse
  • JLE addr - Spring, hvis mindre end eller lig, til adresse
  • HOLD OP - Stop henrettelse

Hvis du har læst How C-programmering fungerer, så ved du, at dette enkle stykke C-kode beregner faktorialen af ​​5 (hvor faktorialen 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120):


a = 1; f = 1; mens (a <= 5) f = f * a; a = a + 1;

Efter programmets udførelse er variablen f indeholder fabrikken af ​​5.

Forsamlingssprog

EN C-kompilator oversætter denne C-kode til samlingssprog. Hvis man antager, at RAM starter på adresse 128 i denne processor, og ROM (som indeholder samlingssprogprogrammet) starter på adresse 0, så kan samlingssproget for vores enkle mikroprocessor se sådan ud:


// Antag a er på adresse 128 // Antag at F er på adresse 1290 CONB 1 // a = 1; 1 SAVEB 1282 CONB 1 // f = 1; 3 SAVEB 1294 LOADA 128 // hvis a> 5 spring til 175 CONB 56 COM7 JG 178 LOADA 129 // f = f * a; 9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a = a + 1; 13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // loop tilbage til if17 STOP

Rom

Så nu er spørgsmålet, "Hvordan ser alle disse instruktioner ud i ROM?" Hver af disse monteringssproginstruktioner skal være repræsenteret med et binært tal. Lad os antage, at hver samlingssproginstruktion får et unikt nummer som dette:

  • LOADA - 1
  • LOADB - 2
  • CONB - 3
  • SAVEB - 4
  • SAVEC-medlem - 5
  • TILFØJ - 6
  • SUB - 7
  • MUL - 8
  • DIV - 9
  • KOM - 10
  • JUMP addr - 11
  • JEQ addr - 12
  • JNEQ addr - 13
  • JG addr - 14
  • JGE addr - 15
  • JL addr - 16
  • JLE addr - 17
  • STOP - 18

Tallene er kendt som opkoder. I ROM ser vores lille program sådan ud:


// Antag a er på adresse 128 // Antag at F er på adresse 129Addr opcode / værdi0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Du kan se, at syv linjer med C-kode blev 18 linjer med samlingssprog, og at det blev 32 byte i ROM.

afkodning

Instruktionsdekoderen skal omdanne hver af opkoderne til et sæt signaler, der driver de forskellige komponenter inde i mikroprocessoren. Lad os tage ADD-instruktionen som et eksempel og se på, hvad den skal gøre:

  1. I løbet af den første urcyklus skal vi faktisk indlæse instruktionen. Derfor skal instruktionsdekoderen: aktivere tri-state-buffer for programtælleren aktivere RD-linjen aktivere data-in tri-state-bufferen låse instruktionen i instruktionsregisteret
  2. I løbet af den anden urcyklus afkodes ADD-instruktionen. Det skal gøres meget lidt: indstil ALU-funktionen for at tilføje låsen til ALU-udgangen i C-registeret
  3. I løbet af den tredje urcyklus øges programtælleren (i teorien kan dette overlappes til den anden urcyklus).

Hver instruktion kan opdeles som et sæt sekventerede operationer som disse, der manipulerer komponenterne i mikroprocessoren i den rigtige rækkefølge. Nogle instruktioner, som denne ADD-instruktion, kan tage to eller tre urcyklusser. Andre kan tage fem eller seks urcyklusser.

Antallet af transistorer tilgængelig har en enorm effekt på ydelsen af ​​en processor. Som det ses tidligere, tog en typisk instruktion i en processor som en 8088 15 urcyklusser for at udføre. På grund af multiplikatorens design tog det ca. 80 cykler bare for at udføre en 16-bit multiplikation på 8088. Med flere transistorer bliver meget mere kraftfulde multiplikatorer, der er i stand til enkeltcyklushastigheder, mulige.

Flere transistorer muliggør også en opkaldt teknologi pipelining. I en pipelined arkitektur overlapper instruktionsudførelse. Så selvom det kan tage fem urcyklusser at udføre hver instruktion, kan der være fem instruktioner i forskellige faser af udførelsen samtidig. På den måde ser det ud som en instruktion afslutter hver urcyklus.

Mange moderne processorer har flere instruktionsdekodere, hver med sin egen pipeline. Dette giver mulighed for flere instruktionsstrømme, hvilket betyder, at mere end en instruktion kan gennemføres i hver urcyklus. Denne teknik kan være ret kompliceret at implementere, så det kræver masser af transistorer.

Trends

Tendensen inden for processordesign har primært været mod fuld 32-bit ALU'er med hurtige flydende punktprocessorer indbygget og pipelined udførelse med flere instruktionsstrømme. Den nyeste ting i processordesign er 64-bit ALU'er, og folk forventes at have disse processorer i deres hjemme-pc'er i det næste årti. Der har også været en tendens til specielle instruktioner (som MMX-instruktionerne), der gør visse operationer særlig effektive og tilføjelse af virtuel hukommelsesstøtte til hardware og L1-cache på processorchippen. Alle disse tendenser øger antallet af transistorer, hvilket fører til de flere millioner transistorkraftcentre, der er tilgængelige i dag. Disse processorer kan udføre omkring en milliard instruktioner pr. Sekund!

Foto høflighed AMD

64-bit-processorer har været med os siden 1992, og i det 21. århundrede er de begyndt at blive mainstream. Både Intel og AMD har introduceret 64-bit chips, og Mac G5 har en 64-bit processor. 64-bit-processorer har 64-bit ALU'er, 64-bit registre, 64-bit busser og så videre.

En af grundene til, at verden har brug for 64-bit processorer, er på grund af deres forstørrede adresserum. 32-bit-chips er ofte begrænset til maksimalt 2 GB eller 4 GB RAM-adgang. Det lyder meget, da de fleste hjemmecomputere i øjeblikket kun bruger 256 MB til 512 MB RAM. Imidlertid kan en grænse på 4 GB være et alvorligt problem for servermaskiner og maskiner, der kører store databaser. Og selv hjemmemaskiner vil begynde at støde op mod grænsen på 2 GB eller 4 GB ganske hurtigt, hvis de nuværende tendenser fortsætter. En 64-bit-chip har ingen af ​​disse begrænsninger, fordi en 64-bit RAM-adresse er i det væsentlige uendelig i overskuelig fremtid - 2 ^ 64 bytes RAM er noget i størrelsesordenen en milliard gigabyte RAM.

Med en 64-bit adressebus og brede, hurtige databusser på bundkortet tilbyder 64-bit maskiner også hurtigere I / O (input / output) hastigheder til ting som harddiskdrev og videokort. Disse funktioner kan øge systemets ydelse i høj grad.

Servere kan bestemt drage fordel af 64 bit, men hvad med normale brugere? Ud over RAM-løsningen er det ikke klart, at en 64-bit chip tilbyder "normale brugere" nogen reelle, konkrete fordele i øjeblikket. De kan behandle data (meget komplekse data indeholder masser af rigtige tal) hurtigere. Folk, der laver videoredigering, og folk, der laver fotografisk redigering på meget store billeder, drager fordel af denne form for computerkraft. High-end-spil vil også drage fordel, når de først er kodet igen for at drage fordel af 64-bit-funktioner. Men den gennemsnitlige bruger, der læser e-mail, gennemser internettet og redigerer Word-dokumenter, bruger ikke rigtig processoren på den måde.

For mere information om mikroprocessorer og relaterede emner, se linkene på næste side.

relaterede artikler

  • CPU-quiz
  • Hvorfor er der grænser for CPU-hastighed?
  • Sådan fungerer halvledere
  • Sådan fungerer pc'er
  • Sådan fungerer C-programmering
  • Sådan fungerer Java
  • Sådan fungerer operativsystemer
  • Sådan fungerer computerhukommelse
  • Hvordan kvantecomputere fungerer
  • Sådan fungerer DNA-computere

Flere gode links

  • Webopedia: mikroprocessor
  • Klik på CPU
  • Processoropgraderinger
  • 6. generation CPU-sammenligninger
  • 7. generation CPU-sammenligninger
  • TSCP Benchmark Scores



Endnu ingen kommentarer

De mest interessante artikler om hemmeligheder og opdagelser. Masser af nyttige oplysninger om alt
Artikler om videnskab, rum, teknologi, sundhed, miljø, kultur og historie. Forklare tusinder af emner, så du ved, hvordan alt fungerer