Til tross for kontinuerlige forbedringer og trinnvise oppgraderinger med hver nye generasjon, har ikke prosessorer opplevd endringer i utviklingen i bransjen på lenge. Overgangen fra vakuumrør til transistorer var stor. Overgangen fra individuelle komponenter til integrerte kretser var stor. Imidlertid skjedde ikke lignende paradigmeskift på denne skalaen deretter.

Ja, transistorer har krympet, chips er raskere, og ytelsen har forbedret seg hundre ganger, men vi begynner å se avtagende avkastning ...

Dette er den fjerde og siste delen i vår CPU-designserie, som gir deg en oversikt over design og produksjon av datamaskinprosessorer. Fra topp til bunn så vi på hvordan datamaskinkoder blir samlet til monteringsspråk og hvordan den oversettes til binære instruksjoner som CPU kan tolke. Vi gjennomgikk hvordan prosessorene er utformet og bruksanvisningen. Så så vi på de forskjellige strukturene som utgjør en CPU.

Når vi gikk litt dypere, så vi hvordan disse strukturene ble bygget og hvordan milliarder transistorer fungerer sammen i en prosessor. Vi så på hvordan prosessorer er fysisk laget av råsilisium. Vi lærte det grunnleggende om halvledere og hvordan en chip ser ut inni. Her er en katalog over serien hvis du savnet noen av disse:

Vi går videre til den fjerde delen. Ettersom selskaper ikke deler sin forskning eller detaljer om sin nåværende teknologi, er det vanskelig å forstå nøyaktig hva som skjer i CPU-en på datamaskinen din. Men det vi kan gjøre er å se på den aktuelle forskningen og hvor industrien går.




En av de berømte representantene for prosessorindustrien er Moores lov. Dette forklarer hvordan antall transistorer i en brikke fordobles omtrent hver 18. måned. Dette har vært sant i lang tid, men det begynner å avta. Transistorer blir så små at vi nærmer oss grensen fysikk tillater. Uten en banebrytende ny teknologi må vi utforske forskjellige måter å oppnå fremtidige ytelsesøkninger på.




120 år med Moores lov




En direkte konsekvens av dette krasj er at selskaper begynner å øke antall kjerner i stedet for hyppighet for å forbedre ytelsen. Dette er grunnen til at vi ser at oktakjerneprosessorer blir mainstream i stedet for 10 GHz dual-core chips. Utover å bare legge til flere frø, er det ikke mye plass igjen å vokse.




På en helt annen tone, Kvanteberegning Det er et område som lover mye rom for fremtidig vekst. Jeg er ikke ekspert på dette, og siden teknologi fremdeles blir skapt, er det ikke mange virkelige "eksperter" allerede. Kvanteberegning, gjengivelse eller lignende for å fjerne enhver myte er ikke noe som vil gi 1000 bilder per sekund i det virkelige liv. Foreløpig er den viktigste fordelen med kvantedatamaskiner at de åpner for mer avanserte algoritmer som ikke var mulig før.




En av IBMs Quantum Computer prototyper

I en vanlig datamaskin er en transistor som representerer 0 eller 1 enten åpen eller lukket. superposisjon er mulig, noe som betyr at biten kan være både 0 og 1 samtidig. Med denne nye evnen vil informatikere være i stand til å utvikle nye beregningsmetoder og løse problemer som vi foreløpig ikke har beregningsmuligheter for. Kvantumaskiner er ikke så forskjellige som de er raskere, men heller en ny beregningsmodell som lar oss løse forskjellige typer problemer.

Teknologien for dette er fremdeles et tiår eller to unna mainstream, så hva er noen av trendene vi begynner å se i ekte prosessorer akkurat nå? Det er dusinvis av områder med aktiv forskning, men jeg vil berøre noen få områder som er mest effektive etter min mening.




Den økende trenden vi påvirker heterogen databehandling. Dette er en måte å inkludere flere forskjellige databehandlingselementer i et enkelt system. De fleste av oss bruker det i systemene våre som en dedikert GPU. CPUen er veldig tilpassbar og kan utføre et bredt utvalg av beregninger med en rimelig hastighet. På den annen side er en GPU spesielt designet for å gjøre grafiske beregninger som matriksmultiplikasjon. Dette er veldig bra og størrelsesordener større enn en CPU i slike instruksjoner. Vi kan øke arbeidsbelastningen ved å laste inn noen grafiske beregninger fra CPU til GPU. Det er enkelt for enhver programmerer å optimalisere programvare ved å endre en algoritme, men å optimalisere maskinvare er mye vanskeligere.

GPUer er imidlertid ikke det eneste området der akseleratorer er vanlige. De fleste smarttelefoner har dusinvis av maskinvareakseleratorer designet for å øke hastigheten på veldig spesifikke oppgaver. Denne datastilen, Sea of ​​Accelerator og eksempler inkluderer kryptografiprosessorer, bildeprosessorer, maskinlæringsakseleratorer, videokodere / dekodere, biometriske prosessorer og mer.

Etter hvert som arbeidsmengder blir mer og mer spesialiserte, legger maskinvaredesignere flere og flere akseleratorer til sjetongene sine. Skyleverandører som AWS har begynt å tilby FPGA-kort for utviklere for å akselerere arbeidsbelastningen i skyen. Mens tradisjonelle databehandlingselementer som prosessorer og GPUer har en fast intern arkitektur, er FPGA fleksibel. Det er nesten som programmerbar maskinvare som kan konfigureres i henhold til datamaskinens behov.

Hvis du vil gjøre bildegjenkjenning, kan du bruke disse algoritmene på maskinvaren. Hvis du vil simulere hvordan en ny maskinvaredesign vil utføre, kan du teste den på FPGA før du faktisk bygger den. En FPGA gir mer ytelse og energieffektivitet enn GPUer, men likevel mindre enn en ASIC (applikasjonsspesifikk integrert krets). Andre selskaper som Google og Nvidia utvikler tilpassede maskinlærings-ASIC-er for å øke bildegjenkjenning og analyse.

Die shots som viser strukturen til flere vanlige mobile prosessorer

Ser vi på døden fra noen ganske nye prosessorer, kan vi se at det meste av CPU-plassen faktisk ikke er selve kjernen. En økende mengde fanges opp av alle typer akseleratorer. Dette, i tillegg til den enorme strømsparingsfordelen, bidro til å akselerere veldig spesifikke arbeidsbelastninger.

Historisk sett, hvis du vil legge til videobehandling i et system, vil du bare legge til en brikke for å gjøre det. Likevel er dette ganske ineffektivt. Når et signal må gå fra en brikke på en fysisk ledning til en annen brikke, kreves det en stor mengde energi per bit. På egen hånd kan det hende at en liten del av en Joule ikke virker som mye, men det kan være 3-4 størrelsesorden mer effektivt å kommunisere i stedet for å la brikken være i samme brikke. Takket være integrasjonen av disse akseleratorene i CPU-er, har vi sett veksten av ultra-lave kraftchips.

Akseleratorer er ikke perfekte. Når vi legger til mer i designene våre, blir sjetongene mindre fleksible og begynner å ofre total ytelse for den høyeste ytelsen i visse arbeidsbelastninger. På et eller annet tidspunkt blir hele brikken bare en samling akseleratorer og er ikke lenger en nyttig CPU. Balansen mellom spesifikk ytelse og total ytelse er alltid finjustert. Denne koblingen mellom generalisert maskinvare og spesifikke arbeidsbelastninger, mangel på kompetanse.

Mens noen kanskje tror at vi kan være på toppen av en GPU / Machine Learning-boble, kan vi sannsynligvis forvente at flere av beregningene våre skal lastes på tilpassede akseleratorer. Etter hvert som skyen og AI fortsetter å vokse, ser GPUer ut til å være vår beste løsning for å oppnå den enorme mengden databehandling som er nødvendig så langt.

Et annet område der designere ser etter mer ytelse er minne. Tradisjonelt har lese- og skriveverdier vært en av de største flaskehalsene for prosessorer. Raske, store hurtigbuffere kan hjelpe, men lesing fra RAM eller SSD kan ta titusenvis av klokkesykluser. Derfor ser ingeniører ofte på minnetilgang som dyrere enn selve databehandlingen. Hvis prosessoren din vil legge til to tall, må den først beregne minneadressene der tallene er lagret, finne ut hvilket minnehierarki som har data, lese dataene inn i registrene, gjøre beregningen, beregne adressen. Angi målet og skriv verdien der det er nødvendig. For enkle instruksjoner som bare tar en syklus eller to å fullføre, er dette ekstremt ineffektivt.

En ny idé som har sett mye forskning, Beregning av nærhetsminne. I stedet for å ta små biter av data fra minnet for å bringe til den raske prosessoren for beregning, snur forskerne denne ideen. De prøver å bygge små prosessorer direkte inn i minnekontrollerne i RAM eller SSD. Ved å bringe beregningen nærmere minnet er det enormt potensial for energi og tidsbesparelse, ettersom dataene ikke trenger å overføres så mye. Beregningsenheter har direkte tilgang til dataene de trenger fordi de er i minnet. Denne ideen er fortsatt i sin spede begynnelse, men resultatene er lovende.

En av hindringene du kan overvinne med databehandling nær minne er produksjonsprosessbegrensningene. Dekket I kapittel 3Fremstillingsprosessen for silikon er veldig kompleks med dusinvis av trinn. Disse prosessene er vanligvis spesialiserte for å produsere raske logiske elementer eller tette lagringselementer. Hvis du har prøvd å lage en minnebrikke ved hjelp av en beregningsoptimalisert produksjonsprosess, vil du ha en veldig lav tetthet på brikken. Hvis du prøver å bygge en prosessor ved hjelp av prosessen for lagringsgenerering, vil du ha svært dårlig ytelse og timing.

3D-integrasjonseksempel som viser vertikale forbindelser mellom transistorlag.

Kjent som en potensiell løsning på dette problemet 3D-integrasjon. Tradisjonelle prosessorer har et veldig stort lag med transistorer, men dette har sine begrensninger. Som navnet antyder, er 3D-integrasjon prosessen med å stable flere lag med transistorer oppå hverandre for å øke tettheten og redusere ventetiden. Vertikale kolonner bygget på forskjellige produksjonsprosesser kan deretter brukes til å koble lagene. Denne ideen ble foreslått for lenge siden, men bransjen har mistet interessen på grunn av enorme vanskeligheter med implementeringen. Nylig har vi sett 3D NAND-lagringsteknologi, og den har fått liv som et arbeidsområde.

I tillegg til fysiske og arkitektoniske endringer, er en trend som vil påvirke hele halvlederindustrien å fokusere mer på sikkerhet. Inntil nylig ble sikkerheten i prosessorene våre vurdert litt senere. Dette ligner på hvordan internett, e-post og mange andre systemer vi stoler på er utformet med nesten ingen hensyn til sikkerhet. Enhver sikkerhet som er tilgjengelig for øyeblikket, er åpnet for å få oss til å føle oss tryggere. Med prosessorer er dette tilbake, spesielt for å bite selskaper som Intel.

Spectre og Meltdown bugs er kanskje det mest kjente eksemplet på designere som legger til funksjoner som i høy grad fremskynder en prosessor, selv om de ikke helt forstår sikkerhetsrisikoen. Nåværende prosessordesign legger mye mer vekt på sikkerhet som en viktig del av designet. Med økt sikkerhet kommer ofte en ytelseshit, men med tanke på skaden disse store sikkerhetsfeilene kan ha, er det trygt å si at vi har det bedre å fokusere på sikkerhet og ytelse.

Tidligere i denne serien berørte vi teknikker som High Level Synthesis, som har avanserte algoritmer som lar designere først spesifisere designene sine på et høyt nivå programmeringsspråk og deretter bestemme den optimale maskinvarekonfigurasjonen for å utføre denne funksjonen. Etter hvert som designsykluser blir dyrere og dyrere for hver generasjon, leter ingeniører etter måter å akselerere utviklingen. Forvent at denne trenden innen programvaredrevet maskinvaredesign vil fortsette å vokse i deres evner på veien.

Selv om det er umulig å forutsi fremtiden, bør de innovative ideene og forskningsområdene vi har nevnt her tjene som et veikart som vi kan forvente i fremtidige prosessordesigner. Det vi kan si sikkert er at vi nærmer oss slutten på regelmessige forbedringer i produksjonsprosessen. For å fortsette å forbedre ytelsen til hver generasjon, må designere finne enda mer sofistikerte løsninger.

Vi håper denne firedelte serien har vekket din interesse for prosessordesign, fabrikasjon, validering og mer. Det er uendelig materiale, og hver av disse artiklene kan fylle et high-end college-kurs hvis vi prøver å dekke dem alle. Forhåpentligvis har du lært noe nytt og har en bedre forståelse av hvor komplekse datamaskiner er på alle nivåer. Hvis du har forslag til emner du vil at vi skal dykke dypt inn i, er vi alltid åpne for forslag.

Masthead-kreditt: Dataprosessor Dan74 med abstrakt belysning