Central processing unit (Norsk)

0 Comments
Se også: Prosessor design

blokkdiagram av en grunnleggende uniprocessor-CPU datamaskinen. Svarte linjer viser dataflyt, mens røde linjer angir kontroll flow, piler indikerer flow retninger.

Kablet inn i en CPU»s kretsene er et sett av grunnleggende funksjoner den kan utføre, kalles et instruksjonssett. Slike operasjoner kan innebære, for eksempel, å legge til eller trekke fra to tall, sammenligning av to tall, eller hoppe til en annen del av et program., Hver grunnleggende betjening er representert ved en bestemt kombinasjon av biter, kjent som maskinen språk opcode; under utføring av instruksjoner i en maskin språk program, CPU bestemmer seg for hvilken operasjon å utføre ved å «dekode» opkode. En komplett maskin opplæring består av en opcode og, i mange tilfeller flere biter som angir argumenter for drift (for eksempel tallene summeres i tilfelle av et tillegg operasjon). Går opp kompleksiteten skala, en maskin språk program er en samling av maskinen språk instruksjonene som CPU utfører.,

Den faktiske matematisk operasjon for hver instruksjon er utført av en kombinatorisk logikk-krets innen CPU»s prosessor kjent som det aritmetiske logikk enhet eller ALU. Generelt er det en CPU utfører en instruksjon ved å hente den fra minnet, bruker sin ALU å utføre en operasjon, og deretter lagrer resultatet i minnet., Ved siden av instruksjoner for heltall matematikk og logikk operasjoner, diverse andre maskinen instruksjoner finnes, slik som for lasting av data fra minnet og lagre det tilbake, forgrening operasjoner, og matematiske operasjoner på floating-point tall utført av CPU»s floating-point unit (FPU).

Kontroll unitEdit

utdypende artikkel: styreboks

control unit (CU) er en del av CPU som leder drift av prosessoren., Det forteller datamaskinen»s minne, matematikk og logikk enhet og input-og output-enheter hvordan de skal håndtere de instruksjonene som har blitt sendt til prosessoren.

Det leder drift av andre enheter ved å gi timing og kontroll-signaler. De fleste pc-ressurser blir forvaltet av CU. Det styrer flyten av data mellom CPU og andre enheter. John von Neumann inkludert kontrollenheten som en del av von Neumann-arkitektur., I moderne datamaskin design, kontrollenheten er vanligvis en intern del av CPU med sin overordnede rolle og drift uendret siden dens introduksjon.

Aritmetiske logikk unitEdit

utdypende artikkel: Aritmetisk logiske enhet

Symbolsk representasjon av en ALU og dens inngang og utgang signaler

Det aritmetiske logic unit (ALU) er en digital krets innen prosessor som utfører heltall aritmetiske og bitvis logiske operasjoner., Inngangene til ALU er dataene ord å bli operert (kalt operander), status, informasjon fra tidligere operasjoner, og en kode fra kontrollenheten som indikerer hvilken operasjon som skal utføres. Avhengig av instruksjon blir utført, operander kan komme fra interne CPU-registre eller eksternt minne, eller de kan være konstanter som er generert av ALU seg selv.

Når alle inngangssignalene har avgjort, og forplantet seg gjennom ALU krets, resultatet av utført operasjonen vises på ALU»s utganger., Resultatet består av både data, ord, som kan være lagret i et register eller minne, og status informasjon som lagres vanligvis i en spesiell, interne CPU-register reservert for dette formålet.

Adresse generasjon unitEdit

utdypende artikkel: Adresse generasjon enhet

Adresse generasjon enhet (AGU), noen ganger også kalt adresse beregning unit (ACU), er en gjennomføring enhet inne i CPU-en som beregner adresser som brukes av CPU-en for å få tilgang til main memory., Ved å ha adresse beregninger håndtert av separate kretser som opererer i parallell med resten av CPU-en, antall CPU-sykluser som kreves for å utføre ulike maskinen instruksjonene kan være redusert, for å bringe forbedringer i ytelsen.

når du utfører forskjellige operasjoner, Cpuer trenger for å beregne minne adresser som kreves for å hente data fra minnet, for eksempel, i-minne posisjoner av array-elementer må være beregnet før CPU-en kan hente data fra faktiske minne steder., De som er adresse-generasjon beregninger som involverer ulike heltall aritmetiske operasjoner, for eksempel addisjon, subtraksjon, modulus operasjoner, eller bit skift. Ofte beregner en minneadresse som involverer mer enn en generell maskin instruksjon, som ikke nødvendigvis dekode og handle raskt. Ved å innlemme en AGU inn i en CPU design, sammen med innføring spesialisert instruksjoner som bruker AGU, ulike adressen generasjon beregninger kan bli avlastet fra resten av CPU, og kan ofte utføres raskt i en enkelt CPU-syklus.,

Evner av en AGU avhengig av en bestemt CPU og dens arkitektur. Dermed, noen AGUs implementere og avsløre mer-adresse-beregning operasjoner, og noen har også mer avanserte og spesialiserte instruksjoner som kan operere på flere operander på en gang. Videre, noen CPU-arkitekturer inkluderer flere AGUs så mer enn én adresse-beregning operasjonen kan utføres samtidig, bringe ytterligere forbedringer i ytelse ved å utnytte de superscalar arten av avansert CPU-design., For eksempel, Intel inneholder flere AGUs i sine Sandy Bridge og Haswell microarchitectures, noe som øker båndbredden av CPU minne subsystem ved at flere minne-få tilgang til instruksjoner som skal utføres i parallell.

Memory management unit (MMU)Edit

utdypende artikkel: Memory management unit

de Fleste high-end mikroprosessorene (i stasjonær, bærbar pc, server-datamaskiner) har en memory management unit, oversette logiske adresser til fysisk RAM-adresser, som gir memory protection og personsøker evner, nyttig for virtuelt minne., Enklere prosessorer, spesielt mikrokontrollere, vanligvis don»t inkluderer en MMU.

CacheEdit

EN CPU-cache er en maskinvare hurtigbufferen som brukes av CPU (central processing unit) på en datamaskin for å redusere den gjennomsnittlige kostnader (tid eller energi) for å få tilgang til data fra de viktigste minne. En hurtigbuffer er et mindre, raskere minne, nærmere en prosessorkjerne, som lagrer kopier av data fra ofte brukt main memory steder. De fleste Cpuer har ulike uavhengige cacher, inkludert opplæring og data cacher, der data cache er vanligvis organisert som et hierarki av mer cache nivåer (L1, L2, L3, L4, etc.,).

Alle moderne (rask) Cpuer (med noen få spesialiserte unntak) har flere nivåer av CPU-cacher. Den første Cpuer som benyttet en buffer hadde bare ett nivå av buffer, i motsetning til senere nivå 1 cacher, det var ikke delt inn i L1d (etter data) og L1i (for instruksjoner). Nesten alle nåværende Cpuer med cacher har en split L1 cache. De har også L2 cacher, og for større prosessorer, L3 cacher som godt. L2-cache er vanligvis ikke delt, og fungerer som et felles depot for allerede delt L1 cache. Hver kjerne av en multi-core prosessor har en dedikert L2-cache, og er vanligvis ikke delt mellom kjernene., På L3-cache, og på høyere nivå cacher, er delt mellom kjernene, og er ikke delt. En L4 cache er i dag uvanlig, og er vanligvis på dynamic random-access memory (DRAM), heller enn på static random access memory (SRAM), på en separat dør eller chip. Det var også tilfelle med historisk L1, mens større chips har tillatt integrasjon av it og generelt alle cache nivåer, med mulig unntak av det siste nivået. Hver ekstra nivå av buffer har en tendens til å bli større og optimaliseres på en annen måte.,

Andre typer cacher eksisterer (som ikke teller mot «cache-størrelse» av de viktigste cacher som er nevnt ovenfor), slik som translation lookaside buffer (TLB) som er en del av memory management unit (MMU) at de fleste Cpuer har.

Caches er generelt stort i krefter to: 4, 8, 16 osv. KiB eller MiB (for større ikke-L1) størrelser, selv om IBM-z13 har en 96 KiB L1 instruksjon cache.

Klokke rateEdit

utdypende artikkel: Klokke pris

de Fleste Cpuer er synkron kretser, noe som betyr at de benytter en klokke signal til tempo deres sekvensielle operasjoner., Klokken signalet er produsert av en ekstern oscillator krets som genererer en konsekvent antall pulser pr. sekund i form av en periodisk firkantbølge. Frekvensen av klokken pulser fastsetter pris på som en CPU utfører instruksjoner og, følgelig, raskere klokken, flere instruksjoner CPU-en vil utføre hver andre.

for Å sikre riktig bruk av CPU, klokken perioden er lengre enn den maksimale tiden som er nødvendig for alle signaler for å spire (flytte) gjennom CPU., I stille klokken periode til en verdi på godt over de verste fall propagation delay, det er mulig å designe hele CPU og måten den beveger seg data rundt «kantene» av stigende og fallende klokke signal. Dette har fordelen av å forenkle CPU betydelig, både fra et design perspektiv og en komponent-count perspektiv. Men det bærer også den ulempen at hele CPU må vente på sin tregeste elementer, selv om noen deler av den er mye raskere. Denne begrensningen har i stor grad blitt kompensert for ved ulike metoder for å øke CPU parallellitet (se nedenfor).,

Imidlertid arkitektoniske forbedringer alene ikke løse alle ulempene av globalt synkron Cpuer. For eksempel, en klokke signal er underlagt forsinkelser av eventuelle andre elektriske signal. Høyere klokke priser i stadig mer komplekse Cpuer gjøre det vanskeligere å holde klokke signal i fase (synkronisert) på hele enheten. Dette har ført til at mange moderne Prosessorer til å kreve flere identiske klokke signaler for å bli gitt for å unngå å utsette en enkelt signal betydelig nok til å forårsake CPU til funksjonsfeil., Et annet stort problem, som klokke priser øke dramatisk, er mengden av varme som er fjernet ved CPU. Den stadig skiftende klokke fører til mange komponenter for å bytte uavhengig av om de blir brukt på den tiden. Generelt, en komponent som bytter bruker mer energi enn et element i en statisk tilstand. Derfor, som klokkefrekvens øker, så gjør energiforbruk, slik at CPU til å kreve mer varmetap i form av CPU kjøling løsninger.,

En metode for å håndtere bytte av unødvendige komponenter er kalt clock gating, som innebærer å slå av klokke signal til unødvendige komponenter (effektivt å deaktivere dem). Men dette er ofte ansett som vanskelig å gjennomføre, og derfor heller ikke se vanlig bruk utenfor svært lavt strømforbruk design. En bemerkelsesverdig de siste CPU design som bruker omfattende clock gating er IBM PowerPC-baserte Xenon brukes i Xbox 360; på den måten, elektriske kravene til Xbox 360 er sterkt redusert., En annen metode for å løse noen av problemene med en global klokke signal er fjerning av klokke signalet helt. Mens du fjerner global klokke signal gjør designprosessen betydelig mer komplekse på mange måter, asynkron (eller clockless) design bære merket fordeler i strømforbruk og varmeavgivelse i sammenligning med lignende synkron design. Mens noe uvanlig, hele asynkron Cpuer har blitt bygget uten å bruke en global klokke signal. To kjente eksempler på dette er de ARM i samsvar AMULETT og MIPS R3000 kompatibel MiniMIPS.,

Snarere enn å helt fjerne klokke signal, noen CPU design gjør at visse deler av enheten for å være asynkron, for eksempel ved hjelp av asynkron ALUs i forbindelse med superscalar pipelining å oppnå noen aritmetiske ytelsesforbedringer. Mens det er ikke helt klart om helt asynkron design kan utføre på et tilsvarende eller bedre nivå enn sine synkron kolleger, det er tydelig at de gjør minst excel i enklere matematiske operasjoner., Dette, kombinert med utmerket strømforbruk og varmeavgivelse egenskaper, som gjør dem svært godt egnet for embedded datamaskiner.

spenningsregulator moduleEdit

utdypende artikkel: Voltage regulator module

Mange moderne Prosessorer har en die-integrert power administrerende modul som regulerer on-demand spenning til CPU-en krets slik at det å holde balansen mellom ytelse og strømforbruk.

Heltall rangeEdit

Hver CPU representerer numeriske verdier på en bestemt måte., For eksempel, noen tidlige digitale datamaskiner representert tall som kjent desimal (base 10) tallsystem verdier, og andre har ansatt flere uvanlige representasjoner som trefoldig (base tre). Nesten alle moderne Prosessorer representere tall i binær form, med hvert tall blir representert ved to-verdsatt fysisk størrelse som en «høy» eller «lav» spenning.

En seks-bit ord som inneholder binære kodet representasjon av desimal verdi 40. De fleste moderne Prosessorer benytter ordet størrelser som er en potens av to, for eksempel 8, 16, 32 eller 64 bits.,

Knyttet til numerisk representasjon er størrelsen og presisjon av heltall tall at en CPU kan representere. I tilfelle av en binær CPU, dette er målt ved antall bits (signifikante siffer i et binært kodet heltall) at CPU-en kan prosessen i én operasjon, som ofte kalles word størrelse, bits bredde, data bane bredde, heltall presisjon, eller heltall størrelse. En CPU»s heltall størrelse bestemmer omfanget av heltall verdier kan det opererer direkte på., For eksempel, en 8-bits CPU kan direkte manipulere heltall representeres av åtte bits, som har et utvalg av 256 (28) diskret heltall verdier.

Heltall utvalg kan også påvirke antall minneplasser CPU kan direkte-adresse (en-adresse er et heltall som representerer et bestemt sted i minnet). For eksempel, hvis en binær CPU bruker 32 bits til å representere et minne adresse så kan den direkte adressen 232 minne steder. For å omgå denne begrensningen, og for flere andre grunner, noen Cpu-bruk mekanismer (for eksempel bank-switching) som gir ekstra minne til å bli adressert.,

Cpuer med større ord størrelser krever mer kretser og følgelig er fysisk større, dyrere og bruker mer strøm (og dermed generere mer varme). Som et resultat, mindre 4 – eller 8-bit mikrokontrollere er ofte brukt i moderne programmer selv om Cpuer med mye større ord størrelser (for eksempel 16, 32, 64, selv med 128-bit) er tilgjengelig. Når høyere ytelse er nødvendig, men fordelene av et større ord størrelse (større data områder og adresse mellomrom) kan oppveie ulempene. En CPU kan ha interne data stier kortere enn ord størrelse for å redusere størrelse og pris., For eksempel, selv om IBMS System/360-instruksjonssettet var en 32-biters instruksjonssett, System/360-Modell 30 og Modell 40 hadde 8-biters databaner i aritmetisk logisk enhet, slik som en 32-biters legge til nødvendig fire ganger, en for hver 8 biter av operander, og selv om Motorola 68000-serien instruksjonssett var en 32-biters instruksjonssett, Motorola 68000 og Motorola 68010 hadde 16-biters databaner i aritmetisk logisk enhet, slik at en 32-biters legge til nødvendig to ganger.,

for Å få noen av fordelene som tilbys av både lavere og høyere bit lengder, mange opplæringssett har forskjellige bit bredder for heltallsobjekter (int) og floating-point data, slik at Cpuer å implementere denne undervisningen satt til å ha forskjellige bit bredder for ulike deler av enheten. For eksempel, IBMS System/360-instruksjonssettet var først og fremst 32 bit, men støttes 64-bit floating point verdier for å tilrettelegge for større nøyaktighet, og varierer i flyttall., System/360-Modell 65 hadde en 8-bit adder for desimal og fast punkt binær aritmetikk og en 60-bit adder for floating-point matematikk. Mange nyere CPU design bruker lignende blandet bits bredde, spesielt når prosessoren er ment for generell bruk der en rimelig balanse mellom heltall og floating point kapasitet er nødvendig.,

ParallelismEdit

utdypende artikkel: Parallell databehandling

Modell av en subscalar CPU, som det tar femten klokke sykluser for å fullføre tre instruksjoner

beskrivelsen av den grunnleggende betjening av en CPU som tilbys i forrige avsnitt beskriver den enkleste form som en CPU kan ta. Denne type CPU, vanligvis referert til som subscalar, opererer på og utfører en instruksjon på en eller to biter av data om gangen, det er mindre enn én instruksjon per klokke syklus (IPC < 1).,

Denne prosessen gir opphav til en iboende ineffektivitet i subscalar Cpuer. Siden bare en instruksjon er utført på en gang, hele CPU må vente for at undervisningen er ferdig før du går videre til neste instruksjon. Som et resultat, subscalar CPU blir «hengt opp» på instruksjoner som tar mer enn en klokke syklus for å fullføre kjøring. Selv legge til en ekstra kjøring enheten (se nedenfor) ikke forbedre ytelsen mye, snarere enn en sti som blir hengt opp, nå to veier er hengt opp og antall ubrukte transistorer er økt., Dette design, hvor CPU»s kjøring ressurser kan operere på bare én instruksjon av gangen, kan bare muligens nå skalar ytelse (én instruksjon per klokke syklus, IPC = 1). Men ytelsen er nesten alltid subscalar (mindre enn én instruksjon per klokke syklus, IPC < 1).

Forsøk på å oppnå skalar og bedre ytelse har resultert i en rekke av design metoder som fører til CPU-en til å oppføre seg mindre lineært og mer parallelt., Når det refereres til parallellitet i Cpuer, to vilkår er vanligvis brukt til å klassifisere disse design teknikker:

  • undervisning-nivå parallellitet (ILP), som søker å øke hastigheten instruksjoner er utført innen en CPU (som er, for å øke bruken av on-die gjennomføring ressurser);
  • oppgave-nivå parallellitet (TLP), noe som formål å øke antall tråder og prosesser som er en CPU kan kjøre samtidig.,

Hver metodikken er forskjellig både i hvordan de er implementert, samt den relative effektiviteten de har råd til å øke CPU – «s ytelse for et program.

Undervisning-nivå parallelismEdit

utdypende artikkel: Instruksjon-nivå parallellitet

Grunnleggende fem-trinns-rørledningen. I beste fall, denne rørledningen kan opprettholde en ferdigstillelse prisen for én instruksjon per klokke syklus.,

En av de enkleste metodene som brukes for å oppnå økt parallellitet er å begynne de første trinnene av undervisningen henter og dekoding før før instruksjon er ferdig utførelse. Dette er den enkleste form av en teknikk som kalles instruksjon pipelining, og brukes i nesten alle moderne generell Cpuer. Pipelining tillater mer enn én instruksjon for å bli henrettet når som helst ved å bryte ned gjennomføring vei inn i atskilte stadier., Denne separasjonen kan være i forhold til et samlebånd, der en instruksjon er gjort mer komplett på hvert trinn før det kommer ut utførelsen rørledning og er pensjonert.

Pipelining gjør det, men introduserer muligheten for en situasjon der resultatet av den forrige operasjonen er nødvendig for å fullføre den neste operasjonen; en tilstand som ofte kalles data avhengighet konflikt. For å takle dette, ekstra forsiktighet må tas for å kontrollere for slike forhold, og forsinkelsen en del av undervisningen rørledning hvis dette skjer., Naturlig nok å oppnå dette krever ekstra krets, så pipelined prosessorer er mer komplekse enn subscalar de (om ikke svært betydelig, slik). En pipelined prosessor kan bli veldig nesten skalar, hemmet bare av rørledningen boder (en instruks om å bruke mer enn en klokke syklus i en fase).

En enkel superscalar rørledning. Ved å hente og sende to instruksjoner om gangen, maksimalt to instruksjoner per klokke syklus kan være ferdig.,

Ytterligere forbedring på ideen med instruksjon pipelining førte til utviklingen av en metode som reduserer tiden av CPU-komponenter enda lenger. Design som er sagt å være superscalar inkluderer en lang instruksjon rørledning og flere identiske gjennomføring enheter, for eksempel legg i-butikk-enheter, matte-logikk enheter, floating-point enheter og adresse generasjon enheter. I en superscalar rørledning, flere instruksjoner er lest og gått til en dispatcher, som avgjør hvorvidt de instruksjoner som kan utføres parallelt (samtidig)., Hvis så de er utsendt til tilgjengelig gjennomføring enheter, noe som resulterer i muligheten for flere instruksjoner som skal utføres samtidig. Generelt, er det flere instruksjoner en superscalar CPU-er i stand til å sende samtidig til å vente gjennomføring enheter, mer informasjon vil bli gjennomført i en gitt syklus.

de Fleste av vanskeligheten i utformingen av en superscalar CPU-arkitektur ligger i å skape en effektiv oppsynsmannen., Koordinatoren må være i stand til å raskt og korrekt finne ut om instruksjoner som kan utføres i parallell, samt sende dem på en slik måte som å holde så mange gjennomføring enheter opptatt som mulig. Dette krever at undervisningen rørledning er fylt så ofte som mulig, og gir opphav til behovet i superscalar arkitekturer for betydelige mengder av CPU-cache. Det gjør det også fare-unngå teknikker som branch prediction spekulative gjennomføring, registrere, endre navn, ut-av-ordreutførelse og transactional memory avgjørende for å opprettholde høye nivåer av ytelse., Ved å forsøke å forutsi hvilken gren (eller banen) en betinget undervisningen vil ta, at CPU-en kan redusere antall ganger det hele rørledningen må vente til et obligatorisk undervisning er gjennomført. Spekulativ utførelse ofte gir beskjeden ytelse øker ved å utføre deler av koden som kanskje ikke være nødvendig etter en betinget operasjonen er ferdig. Ut-av-ordreutførelse noe ordner rekkefølgen av instruksjonene utføres for å redusere forsinkelser på grunn av data avhengigheter., Også i tilfelle av én instruksjon stream, flere data stream—en sak når en masse data fra samme type har for å bli behandlet—, moderne prosessorer kan deaktivere deler av rørledningen, slik at når en enkelt instruksjon utføres mange ganger, CPU hopper de henter og dekode faser og dermed i stor grad øker ytelsen på enkelte anledninger, spesielt i svært ensformig program motorer som video skapelse programvare og bildebehandling.,

I det tilfelle hvor en del av CPU-en superscalar og en del er ikke det en del som ikke lider en ytelse straff på grunn av planlegging boder. Intel P5 Pentium hadde to superscalar ALUs som kunne godta én instruksjon per klokke hver syklus, men FPU ikke kunne akseptere en instruksjon per klokke syklus. Dermed P5 var heltall superscalar men ikke floating point superscalar. Intel»s etterfølger til P5 arkitektur, P6, lagt superscalar evner til sitt floating point funksjoner, og dermed gis en betydelig økning i floating point instruksjon ytelse.,

Både enkle pipelining og superscalar design øke CPU»s ILP ved å tillate én prosessor å fullføre utføring av instruksjoner i priser over én instruksjon per klokke syklus. De fleste moderne CPU design er i det minste noe superscalar, og nesten alle generelle formål Cpuer designet i det siste tiåret er superscalar. I de senere år, noen vekt i utformingen av høy-ILP datamaskiner har blitt flyttet ut av CPU»s hardware og til sin programvare-grensesnitt, eller instruksjonssett-arkitektur (ISA)., Strategien i svært lang instruksjon ord (VLIW) fører til noen ILP å bli indirekte direkte av programvare, for å redusere mengden av arbeid CPU må utføre for å øke ILP og dermed redusere design»s kompleksitet.

Oppgave-nivå parallelismEdit

Main artikler: Multithreading og Multi-core prosessor

en Annen strategi for å oppnå resultater på, er å kjøre flere tråder eller prosesser parallelt. Dette forskningsfeltet er kjent som parallell databehandling. I Flynn»s taksonomi, vil denne strategien er kjent som flere instruksjon stream, flere data stream (MIMD).,

En teknologi som brukes for dette formålet ble multiprocessing (MP). Den første smaken av denne teknologien er kjent som symmetrisk multiprocessing (SMP), hvor et lite antall Cpuer dele en helhetlig oversikt over deres minne system. I denne ordningen, hver CPU har ekstra maskinvare for å opprettholde en stadig up-to-date view minne. Ved å unngå bedervet utsikt over-minne, på Cpuer kan samarbeide om det samme programmet og programmer kan migrere fra en CPU til en annen., For å øke antall samarbeide Cpuer utover en håndfull, ordninger som for eksempel ikke-uniform memory access (NUMA) og katalog-basert sammenheng protokollene ble introdusert på 1990-tallet. SMP-systemer er begrenset til et lite antall Cpuer mens NUMA systemer har blitt bygget med tusenvis av prosessorer. I utgangspunktet, multiprocessing ble bygget ved hjelp av flere atskilte Cpuer og styrene for å gjennomføre interconnect mellom prosessorene., Når prosessorer og deres interconnect er alle gjennomført på en enkelt brikke, er teknologien kjent som chip-nivå multiprocessing (CMP) og enkelt brikke som en multi-core prosessor.

Det ble senere anerkjent som finere korn parallellitet eksistert med et enkelt program. Et enkelt program kan ha flere tråder (eller funksjoner) som kan kjøres hver for seg eller i kombinasjon. Noen av de tidligste eksempler på denne teknologien implementert input/output behandling som direct memory access som en egen tråd fra beregningen tråden., En mer generell tilnærming til denne teknologien ble introdusert på 1970-tallet når systemene er designet for å kjøre flere beregninger tråder i parallell. Denne teknologien er kjent som multi-threading (MT). Denne tilnærmingen er ansett som mer kostnadseffektive enn multiprocessing, som bare et lite antall komponenter i en CPU er replikert til å støtte MT i motsetning til hele CPU i tilfelle av MP. I MT, gjennomføring enheter, og minnet system inkludert cacher som er delt mellom flere tråder., Ulempen med MT er at hardware-støtte for multithreading er mer synlige for programvare enn på FB og dermed veileder programvare som operativsystemer har til å gjennomgå større endringer for å støtte MT. En type MT, som ble implementert er kjent som timelige multithreading, der den ene tråden er utført til den er stoppet venter på at data skal komme tilbake fra eksternt minne. I denne ordningen, CPU-en vil deretter raskt sammenheng bytte til en annen tråd som er klar til å kjøre, bytter ofte gjort i en CPU klokke syklus, slik som UltraSPARC T1., En annen type MT er samtidig multithreading, der instruksjoner fra flere tråder utføres i parallell i en CPU klokke syklus.

For flere tiår fra 1970-tallet til begynnelsen av 2000-tallet, er det fokus på å designe høy ytelse generelle formål Cpuer ble i stor grad på å oppnå høy ILP gjennom teknologier som pipelining, cacher, superscalar gjennomføring, ut-av-for-kjøring, etc. Denne utviklingen kulminerte i store, kraft-sultne Prosessorer som Intel Pentium 4., Ved begynnelsen av 2000-tallet, CPU designere ble forpurret fra å oppnå høyere ytelse fra ILP teknikker på grunn av den økende misforhold mellom CPU operativsystem frekvenser og hovedminne operasjonelle frekvenser, så vel som økende CPU energitap på grunn av mer esoterisk ILP teknikker.

CPU designere deretter lånte ideer fra kommersielle computing markeder, som for eksempel behandling av transaksjoner, hvor det samlede resultatet av flere programmer, også kjent som gjennomstrømning computing, var viktigere enn ytelse av en enkelt tråd eller prosess.,

Dette tilbakeføring av vekt er dokumentert av spredning av doble og mer core prosessor design og spesielt, Intel»s nye design som ligner sin mindre superscalar P6 arkitektur. Sent design i flere prosessor familier utstilling CMP, inkludert x86-64 Opteron og Athlon 64 X2, den SPARC UltraSPARC T1, IBM STRØM4 og POWER5, samt flere video spillkonsoll Cpuer som Xbox 360 s trippel-core PowerPC design, og PlayStation 3″s 7-kjerne Celle mikroprosessor.,

Data parallelismEdit

Main artikler: Vektor-prosessor og SIMD

En mindre vanlig, men mer og mer viktig paradigme prosessorer (og ja, databehandling generelt) avtaler med data parallellitet. Prosessorene er diskutert tidligere er alle referert til som noen form for skalar enheten. Som navnet tilsier, vektor-prosessorer tilbyr med flere biter av data i sammenheng med en instruksjon. Dette står i kontrast med skalar-prosessorer, som omhandler en del av data for hver instruksjon., Ved hjelp av Flynn»s taksonomi, disse to ordninger for å håndtere data er vanligvis referert til som en enkel instruksjon stream, flere data stream (SIMD) og én instruksjon stream, enkelt datastrøm (SISD), henholdsvis. Den store nytte i å lage prosessorer som tilbyr med vektorer av data som ligger i å optimalisere oppgaver som har en tendens til å kreve det samme operasjon (for eksempel en sum eller en prikk-produktet) for å være utført på et stort sett av data. Noen klassiske eksempler på disse typene av oppgaver inkluderer multimedia applikasjoner (bilder, video og lyd), samt mange typer vitenskapelige og tekniske oppgaver., Mens en skalar-prosessor må fullføre hele prosessen med innhenting, dekoding og gjennomføring av hver instruksjon og verdi i et sett av data, en vektor prosessor kan utføre en enkelt operasjon på en forholdsvis stort sett av data med en instruksjon. Dette er bare mulig når programmet har en tendens til å kreve mange skritt som gjelder én operasjon til et stort sett av data.

de Fleste tidlig vektor-prosessorer, som Cray-1 var nesten utelukkende forbundet med vitenskapelig forskning og kryptografi programmer., Men, som multimedia har i stor grad flyttet til digitale medier, er det behov for noen form for SIMD i generell prosessorer har blitt betydelig. Kort tid etter inkludering av floating-point enheter begynte å bli vanlig i generell prosessorer, spesifikasjoner og implementering av SIMD gjennomføring enheter også begynte å dukke opp for generell prosessorer. Noen av disse tidlige SIMD spesifikasjoner – som HP»s Multimedia Anti-utvidelser (MAKS) og Intel»s MMX – var heltall-bare., Dette viste seg å være en betydelig hindring for noen programvareutviklere, siden mange av de programmer som drar nytte av SIMD først og fremst tilbyr med floating-point-tall. Gradvis, utviklere raffinert og gjorde om disse tidlige modellene i noen av de vanligste moderne SIMD spesifikasjoner, som vanligvis er forbundet med en instruksjonssett-arkitektur (ISA). Noen bemerkelsesverdige moderne eksempler inkluderer Intel»s Streaming SIMD Extensions (SSE) og PowerPC-relaterte AltiVec (også kjent som VMX).


Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *