Naken ytelse – Vi utforsker effektiviteten til ALU og FPU. Ytelsestesting Hva er fpu i en datamaskin

    AIDA64EXTREME

    Lisenstype:

    Kvakket

    Språk:

    Windows 8, 8 64-bit, 7, 7 64-bit, Vista, Vista 64-bit, XP, XP 64-bit

    Lastet ned:

Ytelsestesting

AIDA64 antar tilstedeværelsen av flere tester som brukes til å bestemme ytelsen til individuelle deler av utstyret eller komplett system generelt. Slike tester er klassifisert som syntetiske, i stand til å vurdere den teoretiske høyeste ytelsen til systemet. Tester selve minnebåndbredden sentral prosessor eller FPU-enheter er basert på AIDA64-testsystemet, som kan støtte opptil 640 behandlingstråder samtidig, samt et dusin prosessorgrupper. Det gis støtte for hyperthreading og multi-core teknologier, samt multiprosessorer - SMP.

AIDA64-systemet gjør det mulig å gjennomføre vurderinger gjennom individuelle tester båndbredde lesing, skriving, kopiering og bufferbremsing. Alt dette er ledsaget av en testmodul som lar deg evaluere ytelsen til lagringsenheter, spesielt harddisker(S)ATA eller SCSI, SSD-stasjoner, RAID-arrays, minnekort, optiske disker, og USB-stasjoner.

Tester kvaliteten på GPGPU-ytelsen

Dette testpanelet har en pakke med OpenCL GPGPU-tester. Du kan få tilgang til denne funksjonen i delen Service/GPGPU Test. Takket være dem blir beregningsytelsen evaluert ved hjelp av ulike OpenCL-arbeidsbelastninger. Hver enkelt test kan kjøres på 16 GPUer, inkludert NVIDIA-, AMD- og Intel-prosessorer, eller en kombinasjon av dem. Selvfølgelig er det full støtte for CrossFire, SLI, APU og dGPU konfigurasjoner. Generelt lar denne funksjonen deg bestemme ytelsesnivået til enhver datateknologi gitt som GPU OpenCL-enheter.

AIDA64 utfører ikke bare komplekse tester, men også mikrotester, som er tilgjengelige i delene "Tester" / "Side". Pga full base Disse indikatorene kan sammenlignes med lignende for andre konfigurasjoner.

Tester minneytelsesnivåer

Slike tester gir et estimat på den høyeste gjennomstrømningen for oppgaver som lesing, skriving og kopiering. Skrevet i assemblerspråk og optimalisert for de mest populære prosessorene - VIA, AMD og Intel. Her brukes utvidede kommandosett: SSE, SSE2, SSE4.1, 8x86/x64, x87, 3DNow!, MMX, MMX+ og AVX, AVX2.

I tillegg lar testen deg evaluere minnelatens, som oppstår på grunn av at prosessoren leser data fra systemminnet. Minnelatens er tiden da data overføres i prosessorens aritmetiske heltallsregister etter at en lesekommando er utstedt.

CPU Queen Heltallstest

Denne enkle testen evaluerer hvordan CPU-grenprediksjoner fungerer og om grenprediksjoner er feilforutsagt. Løsninger er gitt for et puslespill med 8 damer plassert på et 10x10 sjakkbrett. La oss ta hensyn til teorien: hvis klokkefrekvensen er den samme, kan prosessoren som har en kortere rørledning og som har et lavere nivå av overheadkostnader, som et resultat av en feilaktig grenprediksjon, vise beste resultater test. For eksempel, ved å deaktivere hyperthreading, vil Intel Northwood-baserte Pentium 4 score høyere enn Intel Prescott. Dette er fordi den første prosessoren har en 20-trinns pipeline, mens sistnevnte har en 31-trinns pipeline. Heltalls CPU Queen-optimaliseringer - MMX, SSE2, SSSE3.

CPU PhotoWorxx

Den presenterte heltallstesten gjør det mulig å bestemme prosessorytelse basert på algoritmer for behandling av todimensjonale bilder. Med ganske store RGB-bilder skjer følgende:

  • fylle bildet med piksler med en tilfeldig valgt farge;
  • roter bildet mot klokken 90 grader;
  • roter bildet 180 grader;
  • bildedifferensiering;
  • fargeromskonvertering, som kan brukes for eksempel ved konvertering av JPEG-format.

Testen er hovedsakelig beregnet på aritmetiske blokker av SIMD-arkitekturen til hovedprosessoren og eksisterende minneundersystemer. PhotoWorxx CPU-instruksjonssett har følgende utvidelser: x87, MMX, MMX+, AVX, AVX2, 3DNow!, 3DNow!+, SSE, SSE2, SSSE3, SSE4.1, SSE4A, og støtter også NUMA, multiprosessorer (SMP), hyperthreading, og multi-core (CMP).

CPU ZLib

Den foreslåtte heltallstesten gir en kombinert vurdering av ytelsen til hovedprosessoren og minneundersystemet takket være ZLib-datakomprimering. Instruksjonene gjelder grunnleggende x86, men støtter hyperthreading, multiprosessorer (SMP) og multi-core (CMP).

CPU AES

Den presenterte heltallstesten evaluerer ytelsen til hovedprosessoren når du utfører kryptering ved hjelp av AES-krypteringsalgoritmen (symmetrisk blokkkrypteringsalgoritme). I dag brukes AES i flere komprimeringsverktøy: 7z, RAR, WinZip. De brukes også i programvarekryptering TrueCrypt, BitLocker, FileVault (Mac OS X). Instruksjonene er som følger: x86, MMX og SSE4.1. Systemet er maskinvareakselerert på VIA C3-, C7-, Nano- og QuadCore-prosessorer, med støtteteknologier for VIA PadLock Security Engine. Gjelder også for prosessorer med Intel AES-NI instruksjonssett. Det er støtte for hyperthreading, multiprosessorer (SMP) og multi-cores (CMP).

CPU-hash

Denne heltallstesten måler CPU-ytelse ved å bruke SHA1-bufringsalgoritmen i samsvar med Federal Data Processing Standard 180-4. Koden er skrevet på assemblerspråk og optimert for hovedkjernene til AMD, Intel og VIA, tatt i betraktning bruken av følgende sett med kommandoer SSE2, SSSE3, MMX, MMX+/SSE, AVX, AVX2, XOP, BMI og BMI2. CPUHash-test - maskinvareakselerert på VIA C7, VIA Nano og VIA QuadCore-prosessorer, som kan bruke VIA PadLock Security Engine-teknologi.

FPU VP8

Denne testen analyserer videokomprimering ved hjelp av Google VP8 (WebM)-kodeken versjon 1.1.0. Koding utføres i 1 pass av en videostrøm med en utvidelse på 1280x720 og kjører med en hastighet på 8192 kbps (med hensyn til maksimal konfigurert kvalitet). Rammekomponenter genereres ved hjelp av Julia FPU fraktalmodulen. Følgende utvidelser og kommandosett brukes her: MMX, SSE2, SSSE3 eller SSE4.1. Den støtter også multiprosessorer (SMP), multi-cores (CMP) og hyperthreading.

FPU Julia

Denne testen evaluerer ytelsen til enkeltpresisjonsoperasjoner (flytende frekvens) på et 32-bitssystem. Flere deler av Julia-fraktalen er beregnet. De bruker samme språk, egnet for AMD-, Intel- og VIA-kjerner ved å bruke følgende instruksjonssett: x87, 3DNow!, 3DNow!+, SSE, AVX, AVX2, FMA og FMA4. Støtten er lik.

FPU Mandel

Dobbel presisjon flytepunktoperasjoner for 64-bits presisjon er testet med FPUMandel. Det utføres modellering av deler av Mandelbrot-fraktalen. Språket er det samme, prosessorene er de samme, støtten er den samme som i tidligere tester. Kommandosett: FMA og FMA4, x87, SSE2, AVX, AVX2,

FPU SinJulia

Testen evaluerer operasjoner økt nøyaktighet flytende komma (80-bit system). Beregninger gjøres for hver ramme tatt ved hjelp av Julia fraktalen (modifisert). Språk - som i tidligere versjoner, er kjernene de samme, bruken av trigonometriske og eksponentielle instruksjoner av x87-arkitekturen. Støtter hyperthreading, multi-core (CMP) og multi-prosessor (SMP).

08.08.2012

Inntil fremkomsten av prosessorer Intel Core ingen tenkte på konseptet "kjerneeffektivitet", men verdien viste seg å være mye høyere enn de tidligere roste frekvensene og cachestørrelsene. Men hvordan kan vi presentere effektiviteten til kjernen i tall? Vi tilbyr deg ett av alternativene, som du kan bruke til å evaluere ytelsen fra en annen vinkel.

La meg ta en reservasjon med en gang at resultatene av dagens test ikke representerer den ultimate sannheten. Og den hevder ikke å være 100% nøyaktig. Hvis du bruker andre testprinsipper kan du få andre resultater, men det virker på meg som denne metoden gjør det mulig å trekke tilstrekkelige konklusjoner som bekreftes av historien.

Hva får en bestemt prosessor til å demonstrere riktig ytelse? Dette spørsmålet plaget mange amatører og profesjonelle fra jernverdenen. I lang tid var hovedmålet for ytelse klokkehastighet. Litt senere skiftet oppmerksomheten til frekvensen til frontbussen, deretter til volumet av cacher, og deretter til antall kjerner. Men noe ble alltid oversett som faktisk direkte påvirket hastigheten på beregningene.

Dette er noe som utvilsomt er den rene ytelsen til de to viktigste enhetene til moderne x86-prosessorer: heltallsenheten (ALU - Arithmetic Logic Unit) og flytepunktsenheten (FPU - Floating-Point Unit). Det er fellestrekkene til egenskapene deres som definerer arkitekturbegrepet – og dette konseptet har ingenting med hurtigbuffer eller frekvens å gjøre, mens det direkte påvirker den generelle ytelsen til prosessoren.

Så, før vi starter en stor studie, la oss finne ut hva disse blokkene er, hva de gjør og hvordan de fungerer. Som jeg allerede har sagt, snakker ikke dette materialet om arbeid med minne, cacher og andre tillegg, vi vil bare snakke om ALU og FPU, og selvfølgelig om deres to viktige komponenter - rørledninger og en prediksjonsenhet. Vel, la oss snakke litt om Hyper-Threading-teknologi fra Intel, da det direkte påvirker ytelsen til kjernen når du utfører enkle operasjoner.

Heltalls operasjonsblokk

Den første og hovedblokken til prosessoren. Selv om det ville være mer riktig å si ikke en blokk, men blokker, siden det er flere av dem i prosessorer. Grovt sett, ved begynnelsen av utviklingen, var det praktisk talt ingenting i prosessoren bortsett fra denne blokken. Fra de aller første modellene til monstrene i dag, har ikke kjerneoppdraget til ALU endret seg. Den fungerer fortsatt med primtall (heltall), utfører operasjoner med addisjon, subtraksjon, sammenligning, tallkonvertering; utfører enkle logiske operasjoner, samt bitskift.

Vær oppmerksom på at ALU ikke er tildelt multiplikasjons- og divisjonsoppgaver, og alt fordi disse typer beregninger er ganske sjeldne, og som et resultat ble de tildelt sin egen blokk - en "heltallsmultiplikator", takket være hvilken det var mulig å øke ytelsen til ALU, og avlaster den for ikke-standardoppgaver. Divisjonsoperasjoner er også tildelt multiplikatoren, og utføres ved hjelp av en spesiell tabell med konstanter. Her er en veldig enkel blokk, hvis ytelse direkte påvirker ytelsen til prosessoren i mange oppgaver, for eksempel kontorapplikasjoner, mange spesifikke programmer for beregninger, etc.

Flytepunktenhet

Denne blokken dukket opp i prosessorer mye senere enn ALU, og først ble den til og med betraktet som en koprosessor. Men senere migrerte den likevel til kjernen av hovedprosessoren og har siden den gang vært dens integrerte og svært viktige del (som tilfellet er med ALU, denne blokken er ikke alene i prosessoren). Som navnet tilsier, er hovedoppgaven til FPU nettopp operasjoner på flyttall.

Siden denne blokken dukket opp som en del av CPU, har belastningen på den vokst hele tiden, noe som til slutt førte til at belastningen på FPU oftest overstiger belastningen på ALU. I tillegg, gitt den høye allsidigheten til denne blokken, ble tilleggsfunksjoner gradvis "hengt" på den, spesielt i for øyeblikket det er han som jobber med alle strømmeoppløsninger og behandler vektordata, som det allerede finnes mye av i moderne prosessorer. Ytelsen til prosessoren i de aller fleste applikasjoner, spesielt i multimedia, spill, 3D-arbeid med fotografier, etc., avhenger av ytelsen til denne blokken.

Transportbånd

Det er kjent at hver operasjon i prosessoren krever en viss behandlingstid, og disse dataene, uten overdrivelse, er en enorm mengde. For å optimalisere arbeidet med dem og effektivisere utførelsen deres, for å øke hastigheten på arbeidet, ble en transportør oppfunnet.

Prinsippet ligner på driften av et konvensjonelt transportbånd i en fabrikk: en del passerer gradvis gjennom flere stasjonære stasjoner av arbeidere som behandler den, og hver utfører bare en operasjon på den. I stedet for en del inneholder prosessoren data, som også sekvensielt går gjennom flere stadier. Selvfølgelig gjorde denne tilnærmingen det mulig å redusere tomgangstiden til hver enkelt prosessorblokk betydelig, det vil si å øke ytelsen betydelig sammenlignet med eksklusiv databehandling.

Men transportøren har også ulemper som er en konsekvens av dens fordeler. Den viktigste er behovet for å tilbakestille hele rørledningen på grunn av en uventet endring i flyten av programmet. Oftest skjer dette når betingede utsagn brukes i koden, som, avhengig av forholdene, endrer ytterligere data og stier.

Det er en til viktig poeng: Rørledningene til forskjellige prosessorer har forskjellig antall trinn. Fordelen med korte rørledninger er at de lar deg oppnå høyere ytelse ved samme frekvens, mens en lang rørledning hjelper deg med å oppnå høyere klokkehastigheter. Et enkelt eksempel fra virkeligheten: AMD Athlon XP- og Athlon 64-prosessorer med henholdsvis K7- og K8-arkitektur, som en gang konkurrerte med Intel Pentium 4-prosessorer med NetBurst-arkitektur. Som du sikkert husker var mange prosessorer i disse linjene svært nær hverandre i ytelse, men samtidig var de kategorisk forskjellige i egenskaper. Spesielt Athlon 64 3200+ med klokkefrekvens 2200 megahertz, overgikk oftest Pentium 4 med en frekvens på 3200 megahertz. Årsaken til dette faktum er den forskjellige lengden på rørledningen: hvis AMD tradisjonelt brukte en kort 12-trinns, så brukte Intel i Pentium 4 en mye lengre 20-trinns en, og litt senere - 31-trinns! Derav den merkbare forskjellen i ytelse.

Branch prediksjonsblokk (betinget grenprediksjonsblokk)

Utseendet til denne blokken var uunngåelig etter utseendet til transportøren. Det allerede annonserte problemet med betingede uttalelser og den uunngåelige fullstendige tilbakestillingen av rørledningen påvirket den generelle ytelsen betydelig, siden i noen applikasjoner gikk prosentandelen av defekter under databehandling ganske enkelt av skala.

Så hva gjør denne blokken? Det er enkelt - det fungerer som en vanlig klarsynt av prosessoren, det vil si ved å overgå hendelser (les beregninger av en feilaktig datagren), bestemmer den om en betinget overgang vil bli utført eller ikke. Naturligvis er det ingen spådom på kaffegrut. For øyeblikket er hoved- og prioritet den dynamiske metoden for å forutsi overganger, der grenprediksjonsblokken ikke bare analyserer data og instruksjoner som forberedes for behandling av prosessoren, men også analyserer historien til lignende overganger, som den selv akkumuleres. På grunn av det faktum at han hele tiden overvåker det endelige resultatet (enten han gjettet riktig eller ikke) og sammenligner det med spådommen sin, og supplerer sin egen statistikk, øker effektiviteten av spådommer i lignende situasjoner i fremtiden betydelig. På grunn av denne taktikken har denne blokken mye mer korrekte spådommer enn feil - moderne prosessorer fra Intel og AMD bestemmer riktig retningen for den betingede overgangen i 95-97 tilfeller. Naturligvis, takket være dette, tilbakestilles transportøren relativt sjelden.

Vel, du har fått litt opplæring om prosessorer, og nå kan vi se på hvordan det hele fungerer i virkeligheten, hvor effektiv denne eller den arkitekturen er og hvor effektive ALU- og FPU-enhetene (og, selvfølgelig, hjelpeenhetene deres). For å kunne dekke et så bredt spekter av prosessorkjerner som mulig og samtidig minimere innvirkningen på testresultater av så viktige deler av moderne prosessorer som hurtigbuffer, prosessorbuss og minnedelsystembåndbredde, henvendte vi oss til AIDA 64 testpakke Dessuten ble bare to syntetiske valgt fra pakketesten - CPU Queen og FPU SinJulia. Hvorfor dem? Svaret ligger i selve prinsippet om deres drift og full overholdelse av kravene i denne testen. For å forstå hvordan visse arkitektoniske trekk ved hver test gjenspeiles i testresultatene, la oss ta en titt på den offisielle beskrivelsen:

CPU Queen

En enkel heltallstest. Resultatet avhenger først og fremst av ytelsen til Integer Operations-blokken, men er også veldig følsom for effektiviteten til Branch Prediction Block, siden dens kode inneholder mange betingede grener.

Ved like prosessorklokkehastigheter vil fordelen gis til modellen med en kortere pipeline og færre prediksjonsfeil. Spesielt, med HyperThreading deaktivert, vil Pentium 4-prosessoren på Northwood-kjernen få bedre resultater enn modellen med Prescott-kjernen, siden det i det første tilfellet brukes en kortere 20-trinns rørledning, mot en 31-trinns rørledning i det andre. .

Samtidig kan aktivering av HyperThreading endre maktbalansen og tillate Prescott å vinne. I tillegg bør ytelsen til AMD K8-familieprosessorer være høyere enn for K7-familiemodeller, takket være bruken av en forbedret Branch Prediction Unit.

CPU Queen-testen bruker MMX- og SSE-streamingutvidelsene, opp til versjon SSSE3. Opptar mindre enn 1 megabyte pr VÆR. Støtter HyperThreading, multi-prosessor (SMP) systemer og multi-core prosessorer.

Valget av denne testen ble først og fremst diktert av evnen til å fullstendig utrydde påvirkningen fra minnedelsystemet og størrelsen på cacher på alle nivåer på resultatet. Det vil si, få resultatet av arbeidet til ALU støttet av grenprediksjonsenheten. Andre tester fra ALU-pakken, selv om de er litt, føler fortsatt påvirkningen av frekvensen og størrelsen på cachene, samt båndbredden til prosessorbussen og minnebussen. Og i vårt tilfelle, når dusinvis av prosessorer av forskjellige generasjoner sammenlignes, kan forskjellen i ytelsen til disse undersystemene nå flere størrelsesordener. For eksempel inkluderer en tabell: en Pentium III-prosessor som bruker SDR-133-minne med en minnebussbredde på 64 biter, og en Core i7 som har en 192-bits minnebuss og arbeider med DDR3-1333-minne.

Men HT-støtte i dette tilfellet er ikke veldig oppmuntrende, siden mange prosessorer på listen ikke støtter det, som mange ekte applikasjoner. Imidlertid vil vi bare ha dette i bakhodet når vi direkte sammenligner to prosessorer med og uten HT-støtte.

FPU SinJulia

Test for flytepunktberegninger med økt presisjon (80 bits). Testen er basert på beregning av en ramme av en modifisert Julia fraktal. Koden for denne testen er skrevet i assemblerspråk, og er derfor perfekt optimert for både Intel- og AMD-prosessorer. Spesielt de kjernene som kan bruke trigonometriske og eksponentielle x87-instruksjoner.
SinJulia FPU-testen tar opp mindre enn 1 megabyte RAM. Støtter HyperThreading, multi-prosessor (SMP) systemer og multi-core prosessorer.

Som du kan se, er SinJulia FPU-testen, i likhet med CPU Queen, helt uavhengig av ytelsen til minnedelsystemet, samt frekvensen og størrelsen på prosessorcacher. Dessuten vil SinJulia-resultatet være objektivt selv når man sammenligner den gamle K6-III og den moderne Phenom II, på grunn av det faktum at testen ikke bruker streaming-utvidelser som MMX og SSE. Vel, den høye nøyaktigheten av beregninger lar oss trekke en konklusjon som er tilstrekkelig for moderne oppgaver tilordnet CPU.

Valget av tester er tatt, men jeg kan allerede høre stemmer som protesterer mot at resultatene av sammenligning av gamle og nye prosessorer er tilstrekkelige. Et av argumentene er spørsmålet om å sammenligne prosessorer med ulikt antall kjerner og ulik frekvens. Så, spesielt for objektiviteten til sammenligningen, basert på resultatene, utledet vi en viss ytelseskoeffisient for hvert testperson, som ble beregnet ved hjelp av en enkel formel:

testresultat/antall kjerner/frekvens

Ved å dele disse verdiene for hver prosessor, fikk vi resultatet av én kjerne per klokkesyklus. Med tanke på beskrivelsen av testene, er det nødvendig å gjøre flere endringer. For det første: med HyperThreading-støtte får prosessoren alltid bedre resultater. For det andre: prosessorer som ikke støtter SSE vil vise lavere resultater i ALU-testen, det vil si CPU Queen. Heldigvis er det ikke mange slike prosessorer på listen faktisk, disse er kun AMD K6-III.

Det er også viktig å huske at praktisk talt alle testede prosessorer hadde sitt eget hovedkort. Og hvert kort har følgelig sin egen klokkegenerator, som er i stand til både å overvurdere og undervurdere prosessorreferansefrekvensen. Konsekvensen av dette er litt forskjellige resultater for samme prosessor på forskjellige hovedkort. Med tanke på at vi ikke kan utrydde dette problemet, ble det besluttet å legge igjen en ganske stor feil i resultatene, som til slutt rettferdiggjorde seg selv, slik at vi kunne kombinere prosessorene i grupper.

Og denne informasjonen var nødvendig for en tilstrekkelig forståelse av effektiviteten til en bestemt arkitektur, og i noen tilfeller kjernen. Ser jeg litt fremover, vil jeg si det denne metoden Beregningen rettferdiggjorde seg ved å demonstrere høy linearitet og avhengighet av resultatene.

La oss nå snakke om hvordan vi testet alt dette. Hvis du allerede har sett på pivottabell, så har du sikkert lagt merke til at den inneholder 61 prosessorer av forskjellige generasjoner. Selvfølgelig ble ikke alle testet i vårt laboratorium; bare litt mer enn en tredjedel av prosessorene som ble testet i vårt testlaboratorium. En betydelig del av resultatene ble hentet fra databasen til selve AIDA 64 2.50-programmet, som var den eneste testpakken i denne sammenligningen. Naturligvis stolte vi ikke blindt på resultatene som ble presentert. Og vi dobbeltsjekket resultatene av databasen deres ved å gjennomføre våre egne tester for flere lignende prosessorer. Resultatene, tatt i betraktning feilen ved referansefrekvensen og følgelig forskjellen i slike frekvenser, var tiltalende, og demonstrerte nesten fullstendig likhet. Derfor kombinerte vi utvilsomt resultatene fra programdatabasen med våre egne resultater til én tabell.

Det er også verdt å merke seg her at i forskjellige versjoner AIDA, beregningen av resultatene er kanskje ikke den samme, og derfor kan de ikke sammenlignes. I vårt tilfelle ble alle resultater kun oppnådd i versjon 2.50.

Vel, det er på tide å gå videre til å undersøke testresultatene, som viste seg å være veldig, veldig interessant. Det er på tide å se på hovedtabellen vår, der du finner prosessorkarakteristikkene som er viktige i denne testen, og viktigst av alt, resultatene fra begge testene med allerede viste data om kjerneytelse per klokke.

Gitt at effektiviteten til FPU-er og ALU-er kan variere mye, bør du ikke bli overrasket over å finne at den samme prosessoren har utmerket ytelse på heltallsdata, men yter betydelig dårligere på flyttallsdata. Selv om det også skjer omvendt. Før jeg starter historien, vil jeg merke at rekkefølgen i beskrivelsen min vil følge en tidslinje, mens i tabellen er resultatene sortert etter det absolutte resultatet av ALU-testen.

Den første og eldste prosessoren i denne listen Det vil være AMD K6-III-modeller på Sharptooth-kjernen og Pentium III på Katmai-kjernen. Disse prosessorene har en ganske kort pipeline for disse dagene - kun 12 trinn for Intel og minimum 6 trinn for AMD. Takket være dette trenger sistnevnte praktisk talt ikke en grenprediksjonsenhet, siden feil knyttet til feil veivalg ikke vil påvirke resultatet like betydelig som i Pentium-prosessoren. Egentlig hadde ikke denne prosessoren dette, men det hadde Intel-prosessoren, og selv om effektiviteten etter moderne standarder er lav, er analysemekanismene de samme som i moderne prosessorer. Som et resultat har AMD K6-III et høyere resultat i ALU-testen på grunn av den korte rørledningen. Resultatet hans er 2,03 enheter/syklus mot 1,93 for konkurrenten. Og dette til tross for at AMD-prosessorer av denne generasjonen ikke hadde støtte for SSE-streaming-utvidelser! Samtidig, i FPU-testen, er Pentium III foran, i stor grad takket være grenprediksjonsenheten, med et resultat på 0,164 enheter/syklus mot 0,128 for representanten for K6-arkitekturen.


Pentium III ble preget av utmerket effektivitet. Bare Athlon kunne konkurrere med den i denne parameteren med varierende suksess

De svært vellykkede Coppermine- og Tualatin-kjernene til Pentium III-prosessorene som dukket opp senere holdt Katmai-arkitekturen uendret, og derfor er resultatene til de to prosessorene: Celeron 700 og Pentium III 1333 lik det vi allerede har sett. Men AMD, da disse prosessorene ble utgitt, hadde allerede forlatt K6-arkitekturen, siden den på grunn av den svært korte rørledningen ikke tillot å nå frekvenser over 550 megahertz. Som et resultat fikk den nye K7-arkitekturen en lengre 10-trinns pipeline, og mange tilleggsfunksjoner og endringer som ga merkbare ytelsesforbedringer. Den viktigste nyvinningen, og den viktigste innenfor rammen av dette materialet, var utseendet til en grenprediksjonsblokk. Imidlertid klarte ikke de nye produktene, som fikk sitt eget navn Athlon, å overgå ytelsen til ALU-enheter og Pentium III-prosessorer. Men effektiviteten til FPU har økt betydelig: i denne parameteren overgikk AMD K7 Athlon merkbart K6 og tok igjen konkurrentene, og demonstrerte et resultat på 0,163 enheter/syklus. Men den lengre rørledningen reduserte effektiviteten til ALU-enheten betydelig - til 1,58 enheter/syklus, det vil si med nesten 25 prosent i forhold til K6. Dette var imidlertid berettiget, siden FPU i de fleste applikasjoner på den tiden var viktigere, og den høyere frekvensen som til slutt ble oppnådd mer enn dekket disse tapene.

Overgangen av AMD Athlon til Thunderbird-kjernen endret ikke på noen måte balansen mellom kraft og effektivitet per klokke, fordi denne kjernen har samme arkitektur. Men like etter dem dukket de første Pentium 4-prosessorene bygd på en helt ny NetBurst-arkitektur på markedet. Kanskje fra et synspunkt av markedsføring og salg, var disse prosessorene en ubetinget suksess, men fra et synspunkt av ingeniørkunst og effektivitet var det ingen dårligere arkitektur i historien.


Pentium 4 med Willamette kjerne. En av de første prosessorene basert på den mislykkede, men overraskende spenstige, Netburst-arkitekturen.

Årsaken er denne: I jakten på den store megahertz som kundene så ønsket, tok Intels ingeniører et ikke-trivielt trekk for å oppnå høyere frekvenser, og forlenget rørledningen betydelig - opptil 20 trinn. Selvfølgelig, i kappløpet om megahertz, ble de umiddelbart ledere, men ytelsen per klokke falt veldig merkbart. Gjennomsnittsresultatet for Pentium 4-prosessorer på Willamette- og Northwood-kjerner i ALU-testen er 1,02, og i FPU-testen er det 0,108. Sammenlign med resultatene av Pentium III - forskjellen er kolossal! For å utkonkurrere tidligere generasjons prosessorer, trengte Pentium 4 en betydelig høyere frekvens. Det vil si at for å oppnå lik effektivitet av ALU-enheter med den høyeste prosessoren i Pentium III-familien som opererer med en frekvens på 1400 megahertz, må Pentium 4-kjernen operere med en frekvens på 2536 megahertz! Og for å oppnå samme resultat i FPU-testen trenger du 2111 megahertz, som er litt mindre, men heller ikke i det hele tatt. Det vil si at hvis vi gjennomsnittet resultatene, vil Pentium III 1400- og Pentium 4 2.4-prosessorene være omtrent like i effektivitet.

Samtidig jaget ikke AMD Intel i frekvenser, og holdt K7-arkitekturen nesten uendret, ga ut en linje med Athlon XP-prosessorer, hvis prosessorer ikke lenger var preget av frekvens, men av rangeringer med et "pluss"-tegn , som demonstrerte effektivitet i forhold til Pentium 4-prosessorer. Det vil si, ifølge AMD-markedsførere, skal Athlon XP 1800+-prosessoren konkurrere med Pentium 4 som kjører på 1800 megahertz.

La oss sjekke hvor tilstrekkelig denne tilnærmingen var, gitt at effektiviteten Athlon kjerner XP er på 1,58 enheter/syklus i ALU og 0,163 enheter/syklus i FPU. Med den reelle frekvensen til 1800+-modellen lik 1533 megahertz, er resultatet 2422 enheter i Queen CPU og 250 i SinJulia FPU. Samtidig vil resultatet av en Pentium 4 med en frekvens på 1,8 gigahertz være henholdsvis 1908 og 195 enheter. Det ser ut til at vurderingen til og med er undervurdert. Selv om vi ikke bør glemme at ytelsen i ekte applikasjoner kan være litt annerledes hvis vi tar hensyn til andre prosessoregenskaper, som cacher, busser og andre ting.

Overraskende nok lærte ikke den bitre erfaringen Intel-ingeniører noe godt, og nok en gang, møtt med umuligheten av å øke frekvensen, går de igjen for å øke lengden på rørledningen. Dessuten, ikke med et par etapper, men ganske betydelig - hvis Northwood-kjernen hadde 20 etapper, så var det 31 av dem i Prescott. Og dette er ikke bare en lang, men en veldig lang transportør. Ja, selvfølgelig, takk denne endringen, var terskelen for maksimal klokkefrekvens for de nye kjernene høyere, men varmespredningen var også høyere.


Prescott-kjernen var en ytterligere forverring av Netburst-arkitekturen i jakten på høy megahertz. Mest ineffektivt Intel kjerne gjennom historien.

Den viktigste endringen, som ikke alle var i stand til å sette pris på, var imidlertid et betydelig fall i effektivitet sammenlignet med forgjengeren, og selv om bruken av HyperThreading-teknologi på en måte reddet situasjonen, viste prosessorer som ikke bruker den rett og slett en skremmende effektivitetsnivå. Finn Pentium D 820- og 925-prosessorene, samt Celeron D 326 i tabellen, og du vil forstå hva jeg snakker om. Resultatet per syklus demonstrert i CPU Queen-testen var beskjedne 0,75 enheter, og FPU SinJulia estimerte effektiviteten til den oppdaterte NetBurst-arkitekturen til bare 0,081 enheter. Ytelsesfallet i forhold til Willamette/Northwood-kjerner var omtrent 30 prosent i ALU og opptil 40 prosent i FPU.

Å sammenligne Prescott-256 og Smithfield med AMD K8-prosessorer er fullstendig meningsløst. Siden den nye arkitekturen bare fikk en to-trinns lengre rørledning enn K7, men samtidig fikk en betydelig forbedret, mer effektiv blokkering grenspådommer. Og som et resultat viser kjerner basert på den nye arkitekturen litt høyere ALU- og FPU-effektivitet. Gjennomsnittlig CPU Queen-testscore økte til 1,74 enheter, og SinJulia FPU forble på nivået til forgjengeren. Som du kan se, er det ikke forgjeves Athlon-prosessorer 64 og Sempron var en gang høyt verdsatt av spillere - effektiviteten deres er veldig høy, mer enn dobbelt så høy som den til den mye hypede Pentium 4 med Prescott- og Smithfield-kjerner, som i de fleste applikasjoner ikke ble hjulpet av verken den høyeste frekvensen for de ganger eller en stor cache-størrelse på andre nivå.


En meget vellykket løsning fra AMD er Athlon 64. Sammenlignet med Pentium 4 skilte disse prosessorene seg ut for lavt strømforbruk og utmerket effektivitet.

På dette stadiet er det imidlertid verdt å huske at det var i Prescott-kjernen at HyperThreading-teknologien dukket opp. Selvfølgelig dukket det ikke opp på grunn av et godt liv, og var et mislykket forsøk på å skjule manglene ved et langt transportbånd. Det var takket være denne teknologien, om enn fortsatt ufullkommen på den tiden, at ingeniørene klarte å jevne ut forlengelsen av transportbåndet. For eksempel demonstrerte Pentium 4 2800E-prosessoren basert på Prescott-kjernen og støttende HT effektivitet som ligner på kjerner med en 20-trinns rørledning, men uten HT. Det var imidlertid ikke mulig å oppnå en økning i effektivitet fra HyperThreading-støtte for Willamette/Northwood-kjernene, noe som fremgår av resultatene av den sjeldne Pentium 4 3,46 GHz Extreme Edition-prosessoren, som er basert på Gallatin-kjernen (analog med Northwood, men med en 2 MB L3-cache) og støtter denne teknologien .

Litt senere, allerede på slutten av NetBurst-æraen, klarte Intels ingeniører å forbedre HyperThreading betydelig og oppnå en god økning i effektiviteten til flytende kommaberegningsenheten. Vær oppmerksom på de raskeste i rekken, enkeltkjerne Pentium 4 3,73 GHz Extreme Edition og dual-core Pentium 955 Extreme Edition. Deres FPU-effektivitet er allerede 0,138 enheter, selv om ALU-ytelsen er på samme nivå. Men selv takket være dette var det ikke mulig å utkonkurrere hovedkonkurrentene - AMD Athlon 64 X2, til tross for at sistnevnte opererer med en lavere klokkefrekvens og ikke støtter HT.

Se på tabellen - ingen av NetBurst-arkitekturprosessorene kan konkurrere med Athlon 64 X2 5200+, enn si topp AMD Athlon 64 6400+ på den tiden. Imidlertid innså Intel for lenge siden at jakten på "stor gigahertz" var en feil, og forberedte derfor den nyeste arkitekturen, som ikke skulle bli mindre vellykket i markedsplan enn Pentium 4, men mye mer effektiv.


Athlon 64 X2 er kanskje den siste prosessoren i dag som kan utkonkurrere de beste Intel-prosessorene. Det var imidlertid ikke vanskelig å beseire den ineffektive og varme Pentium D.

Vi snakker naturligvis om Core. Mens de utviklet denne arkitekturen, returnerte Intel-ingeniører til en pipeline med bare 14 trinn, det vil si at de forkortet den med mer enn halvparten sammenlignet med de nyeste NetBurst-representantene. Naturligvis, under slike forhold, var det ikke snakk om å nå 4 gigahertz, men allerede de første representantene for den nye familien, til tross for lav frekvens, demonstrerte den høyeste ytelsen. Begge prosessorer av denne generasjonen - Pentium M 730 på Dothan-kjernen og Core Duo T2500 på Yonah-kjernen viste resultater per klokke som var overlegne selv Pentium III, og merkbart høyere enn de fra konkurrerende AMD K8-familie.

Arkitekturen, testet på mobile løsninger, kom til skrivebordsmarkedet i en litt modifisert form i form av Core 2 Duo og Pentium Dual Core-prosessorer. På utgivelsestidspunktet kunne de ikke skryte av høye frekvenser, men samtidig demonstrerte de høyeste effektivitet og, som et resultat, ytelse, selv til tross for mangelen på HyperThreading-støtte! Naturligvis fungerte den betydelig forbedrede grenprediksjonsblokken også for dette. Se på resultatene. I CPU Queen-testen steg den gjennomsnittlige effektiviteten til Conroe-kjernen og dens derivater til et nivå på mer enn to enheter per klokke og nådde et gjennomsnitt på 2,13. I FPU SinJulia-testen er resultatet også veldig bra – 0,175. Dette, selv om det ikke er så mye, er mer enn førstegenerasjons Core-arkitekturprosessorer, og mye høyere enn AMD K8, som Pentium 4 kjempet med så lenge og uten hell.


Core 2-arkitekturen som erstattet NetBurst viste at Intel kan lage raske og kule prosessorer som er svært effektive.

Den høyeste effektiviteten til kjernene ble nok en gang bevist av enkjernen Celeron, utgitt litt senere, som med en beskjeden frekvens, takket være Conroe-L-kjernen, viste ytelse på nivået til forgjengerne som opererer med dobbelt så høy frekvens . Og dette, vel å merke, er med den samme kjernen. Generelt har denne arkitekturen vist seg å være den mest effektive, og har tvunget AMD til å prøve å ta igjen sine rivaler.

Og det var her AMDs problemer startet. Nå hadde de ikke en fordel med kjerneeffektivitet, og i stedet for å bygge den fullstendig opp igjen, begynte ingeniører, da de opprettet K10-generasjonen og følgelig prosessorer kalt Phenom og Athlon, å øke antall kjerner og cacher. Den totale ytelsen til disse løsningene har selvfølgelig økt, men endringene som er gjort har liten effekt på effektiviteten. Ytelsen til ALU økte litt, tilsynelatende på grunn av den nok en gang forbedrede grenprediksjonsenheten, men effektiviteten til FPU forble helt uendret - med slike egenskaper var det mulig å konkurrere med Core 2 bare på grunn av et større antall kjerner eller en høyere frekvens. Med sistnevnte hadde K10-generasjonsprosessorene, som du sikkert husker, svært alvorlige problemer.


Phenom er helt klart en mislykket prosessor. Effektiviteten nådde ikke Core 2, og det var alvorlige problemer med frekvenser.

Som et resultat ble Phenom aldri en konkurrent til Core 2 Duo- og Core 2 Quad-prosessorer. Men snart var problemet med frekvenser løst, og nytt Phenom-prosessorer II og Athlon II K10.5-arkitekturene var klare til å konkurrere med løsninger fra Intel i denne forbindelse. Men effektiviteten i den nye generasjonen holdt seg på samme nivå, og derfor kunne ikke AMD-løsninger konkurrere med konkurrenter på like frekvenser. I tillegg, da Intel byttet til 45-nanometer prosessteknologi, gjorde Intel igjen litt magi på arkitekturen og oppnådde nok en økning i effektiviteten til FPU-enheten, til nivået 0,185 enheter/syklus.

Til tross for den komfortable overlegenheten, var et nytt perfekt våpen allerede smidd i Intels verksteder og laboratorier, og utviklet Core-arkitekturen, som ble utgitt i Kjerneprosessorer i3, i5 og i7 under fellesnavnet Nehalem. De neste endringene i blokkene og forbedring av alle parametere førte til utmerkede resultater. Se på ytelsen til Core i5-750: effektiviteten til ALU forble nesten på nivå med Core 2, men samtidig økte ytelsen til den viktigste blokken med heltallsoperasjoner for øyeblikket betydelig - opp til 0,225 enheter per klokke!

Men i tillegg til arkitektoniske forbedringer, forberedte Intel også et annet supervåpen - den perfeksjonerte HyperThreading-teknologien. Bruken har gjort det mulig å oppnå rett og slett fantastisk effektivitet. Denne teknologien, riktig optimalisert, ga en enorm effekt og nesten en og en halv ganger økning i effektivitet! 3,05 i ALU og 0,36 i FPU er rett og slett utmerkede resultater. Selv uten støtte fra denne teknologien viste imidlertid prosessorer basert på Nehalem-arkitekturen seg å være mer effektive enn deres forgjengere og konkurrenter.


Nehalen var den første Intel-arkitekturen der maksimal oppmerksomhet ble gitt til kjerneeffektivitet. Resultatet ble utmerket. Etterkommere i form av Sandy Bridge og Ivy Bridge viste at det fortsatt var potensiale.

De to påfølgende generasjonene fra Intel - prosessorer basert på Sandy Bridge- og Ivy Bridge-kjerner - viste også høyere ytelse ikke bare på grunn av økt frekvens. Små endringer i kjernene gjorde det mulig å konsekvent øke ytelsen til heltallsoperasjonsblokken, med 0,25 enheter/syklus i hver generasjon, både med og uten HyperThreading. Men det er ingen endring i FPU-effektiviteten. Men selv uten forbedringer er denne indikatoren veldig bra. Gitt trenden, kan vi forvente en ny økning i effektiviteten når neste generasjon Intel-prosessorer dukker opp.

AMD kan bare drømme om slik effektivitet. De sitter imidlertid ikke stille og prøver å forbedre ytelsen til prosessorene sine. Spesielt Llano-prosessorer basert på K10.5-arkitekturkjerner demonstrerte litt høyere ALU-effektivitet enn de siste Phenom og Athlon. Hovedsakelig takket være en forbedret grenprediksjonsenhet, mens FPU-effektiviteten holdt seg på samme nivå som demonstrert av alle tidligere AMD-prosessorer siden den aller første Athlon K7-familien.


Den siste representanten for AMD-familien, som startet tilbake i K7-generasjonen, er Liano APU. Dessverre skinner det heller ikke med effektivitet sammenlignet med de nyeste Intel-prosessorene

Imidlertid kan selv Llano betraktes som en utdatert løsning, siden den nærmeste fremtiden til AMD-prosessorer vil bli assosiert med prosessorer av den helt nye Bulldozer-arkitekturen, som ble introdusert i AMD-prosessorer FX og dens derivater. Det var disse prosessorene, som på ingen måte viste seg å være udiskutable, som satte oss i en blindvei når vi beregnet effektiviteten til kjernene. Og alt fordi prinsippet om kjernefysisk organisering i dem er for komplisert. Spesielt har FX-8150-prosessoren fire dual-core moduler, og selskapet erklærer at den er åtte-kjerne. For å straffe selskapet for dette, var det fullt mulig å beregne effektiviteten basert på åtte kjerner, men dette ville være teknisk feil, og resultatet ville være på nivå med Intel-prosessorer basert på NetBurst-arkitekturen. Derfor ble det besluttet å beregne effektiviteten ikke per kjerne, men per modul, noe som er ganske berettiget, gitt at hver modul kun har én flytepunktsberegningsenhet.


AMD FX på Bulldozer-arkitekturen viste en merkbar økning i effektivitet, men den komplekse arkitekturen har ennå ikke avslørt seg. Og kanskje vil han ikke avsløre det lenger.

Med ALU er alt mer komplisert - det er faktisk åtte slike blokker i en fire-moduls prosessor, men de kan ikke fungere parallelt med tilstrekkelig effektivitet på grunn av egenskapene til avsenderen Windows-oppgaver 7 og tidligere OS fra Microsoft. Derfor ble det besluttet å beregne effektiviteten til ALU basert på antall moduler. Denne avgjørelsen er kontroversiell, og jeg vil ikke insistere på objektivitet dette resultatet. Og resultatene viste seg forresten å være relativt gode. Angående forgjengere, selvfølgelig. Spesielt når det gjelder effektiviteten til det kontroversielle ALU-resultatet, viste Bulldozer-arkitekturprosessorer et resultat på 2,2 enheter/syklus, som er merkbart høyere enn K10.5, Llano og til og med litt mer enn Core 2, selv om før Sandy Bridge, til og med uten støtte Hyper Threading er fortsatt et stykke unna. Effektiviteten til FPU (dette resultatet kan du stole på) overgikk også betydelig alle tidligere AMD-løsninger, og viste seg å være nøyaktig mellom den tidlige og sene Core 2-arkitekturen.

Basert på disse resultatene kan vi konkludere med at Bulldozer-arkitekturprosessorer definitivt ikke er konkurrenter Intel-prosessorer starter med Nehalem, men den kan kjempe veldig effektivt med Core 2, og til og med overgå ved like frekvenser. Ikke den mest positive konklusjonen for De Grønne.

For enkelhets skyld har vi oppsummert alle resultatene i en tabell med gjennomsnittlige effektivitetsindikatorer for forskjellige kjerner.

På dette punktet i vår studie kan vi sette en ellipse. Nei, ikke et punktum, for dette materialet later ikke til å være helt globalt, og som jeg sa i begynnelsen av materialet, tar det ikke hensyn til effektiviteten til mange svært viktige prosessorblokker. Imidlertid er det ingen raske prosessorer uten kraftige ALU-er og FPU-er, og dette materialet bekreftet fullt ut dette postulatet. Historien har satt alt på sin plass, og fra høyden av de siste årene kan man enkelt og naturlig sette stempler og påpeke feil. Men det er nettopp disse feilene som er fremgangens konstante følgesvenn, som, til tross for alle blindveisgrener, jevnt og trutt fører oss til en lykkelig digital fremtid.

Relatert materiale:
  • Men det er bedre, selv før de første problemene dukker opp, å umiddelbart sjekke stabiliteten til datamaskinen og finne ut om noe av maskinvaren er døende?

    Start og velg i programvinduet "Verktøy" - " Systemstabilitetstest".

    Faktisk ser vi følgende:

    Den øverste grafen viser temperaturen til datamaskinkomponentene. Ved å merke av eller fjerne merket i avmerkingsboksen, kan du aktivere eller deaktivere visningen av temperaturen til en hvilken som helst komponent på grafen. Følgelig, hvis du er sikker på at du ikke blir overopphetet under arbeid, er det bare å fjerne merket for å ikke rote opp timeplanen unødvendig informasjon. Der, over den første grafen, kan du bytte mellom faner som viser annen informasjon (kjølere rotasjonshastighet, spenning osv.). Den mest verdifulle fanen der er den siste, fordi på den, i en visuell tabell (der minimum og maksimum av en hvilken som helst parameter er skrevet ned), er all statistikk (temperaturer, spenninger, etc.) samlet under testing indikert.

    Hvis du har spørsmål, vil jeg, som alltid, gjerne svare på dem i kommentarfeltet eller ved å bruke .

    flytepunktsenhet (FPU) - en del av prosessoren for å utføre et bredt spekter av matematiske operasjoner på reelle tall.

    Intel x86-familie koprosessorer

    For x86-familieprosessorer har flyttallenheten blitt tildelt en egen brikke kalt matematisk koprosessor. En separat kontakt ble gitt for å installere koprosessoren på datamaskinkortet.

    Koprosessoren er ikke en fullverdig prosessor, siden den ikke vet hvordan man gjør mange av operasjonene som er nødvendige for dette (for eksempel vet den ikke hvordan man jobber med et program og beregner minneadresser), og er bare et vedlegg til den sentrale prosessoren.

    En av ordningene for interaksjon mellom sentralprosessoren og koprosessoren, spesielt brukt i x86-koprosessorer, implementeres som følger:

    Andre plattformer

    Likeledes, hovedkort PC-er bygget på Motorola-prosessorer, før dette selskapet utviklet MC68040-prosessoren (der koprosessoren var innebygd), inneholdt en matematisk koprosessor. Vanligvis ble en 68881 16 MHz eller 68882 25 MHz koprosessor brukt som en FPU. Nesten enhver moderne prosessor har en innebygd koprosessor.

    Weitek produserte også matematiske koprosessorer for plattformer og MIPS.

    FPU-enhet

    Registrerer FPU er organisert ikke som en matrise, som i noen andre arkitekturer, men som en registerstabel. Så FPU er stabelkalkulator, arbeider etter prinsippet om omvendt polsk notasjon. Dette betyr at instruksjoner alltid bruker toppverdien på stabelen for å utføre operasjoner, og tilgang til andre lagrede verdier oppnås vanligvis gjennom stabelmanipulering. Men når du arbeider med toppen av stabelen, kan andre stabelelementer brukes samtidig, for å få tilgang til hvilken direkte adressering i forhold til toppen av stabelen som brukes. Operasjoner kan også bruke verdier lagret i RAM. Den vanlige rekkefølgen av handlinger er som følger. Før operasjonen blir argumentene skjøvet inn på LIFO-stakken; Når operasjonen er utført, fjernes det nødvendige antallet argumenter fra stabelen. Resultatet av operasjonen legges på stabelen, hvor det kan brukes i videre beregninger eller fjernes fra stabelen for skriving til minnet. Selv om den stablede organiseringen av FPU-registre er praktisk for programmerere, kompliserer det kompilatorenes oppgave å bygge effektiv kode.

    Funksjoner ved bruk

    Etter utgivelsen av 3DNow! fra AMD og deretter SSE, fra og med Intels Pentium III-prosessorer, ble enkeltpresisjonsberegninger mulig uten hjelp av FPU-instruksjoner, og med økt ytelse. SSE2-utvidelsen og senere instruksjonssett-utvidelser ga også raske dobbelpresisjonsberegninger (se IEEE-754-standarden). I denne forbindelse, i moderne datamaskiner behovet for kommandoer fra en klassisk matematisk koprosessor har redusert betydelig. Imidlertid støttes de fortsatt på alle x86-prosessorer i produksjon for kompatibilitet med eldre applikasjoner og for applikasjoner som krever BCD-konverteringer eller utvidede presisjonsberegninger (der dobbel presisjon ikke er tilstrekkelig). Bruker for tiden kommandoer x87 forblir mest på en effektiv måte gjennomføre slike beregninger.

    Dataformater

    Inne i FPU er tall lagret i 80-bits flyttallformat (utvidet presisjon), og følgende kan brukes til å skrive eller lese fra minnet:

    • Reelle tall i tre formater: kort (32 bits), lang (64 bits) og utvidet (80 bits).
    • Binære heltall i tre formater: 16, 32 og 64 biter.
    • Pakkede heltallsdesimaltall (BCD) - maksimal talllengde er 18 pakkede desimalsiffer (72 biter).

    FPU støtter også spesielle numeriske verdier:

    • Denormaliserte reelle tall er tall hvis absolutte verdi er mindre enn minimumsnormaliserte tall. Når en slik verdi dannes i et bestemt stabelregister, dannes en spesiell verdi 10 i TWR-registeret som tilsvarer dette registeret. Et tegn på et denormalisert tall i dets binære representasjon er nullordensfeltet.
    • Uendelig (positiv og negativ), oppstår når en verdi som ikke er null deles på null, så vel som overløp. Når en slik verdi dannes i et bestemt stabelregister, dannes det en spesiell verdi 10 i TWR-registeret som tilsvarer dette registeret.
    • non-number (engelsk not-a-number (NaN)). Det finnes to typer ikke-numre:
      • SNaN (Signaling Non a Number) - signal ikke-numre. Koprosessoren reagerer på utseendet til dette nummeret i stabelregisteret ved å oppheve et ugyldig operasjonsunntak. Koprosessoren genererer ikke signaltall. Programmerere danner slike tall bevisst for å ta opp et unntak i riktig situasjon.
      • QNaN (Quiet Non a Number) - rolige (stille) ikke-tall. Koprosessoren kan generere stille ikke-tall som svar på visse unntak, for eksempel det reelle usikkerhetstallet.
    • Null (positiv og negativ). Selv om null kan betraktes som en spesiell verdi når det gjelder flyttallformat, er det også et spesialtilfelle av et denormalisert tall.
    • Usikkerheter og formater som ikke støttes. Det er mange bitsett som kan representeres i utvidet reelt tallformat. For de fleste av verdiene deres genereres et ugyldig operasjonsunntak.

    Registrerer

    Det er tre grupper av registre i FPU:

    • Prosessorstabel: registrerer R0..R7. Dimensjon på hvert register: 80 bits.
    • Tjenesteregistre
      • Prosessorstatusregister SWR (Status Word Register) - informasjon om den nåværende tilstanden til medprosessoren. Dimensjon: 16 bits.
      • Koprosessorkontrollregister CWR (Control Word Register) - kontroll av koprosessordriftsmodi. Dimensjon: 16 bits.
      • Tags Word Register TWR (Tags Word Register) - kontroll over registre R0..R7 (for eksempel for å bestemme skriveevne). Dimensjon: 16 bits.
    • Peker registrerer
      • DPR (Data Point Register) datapeker. Dimensjon: 48 bits.
      • IPR (Instruction Point Register) kommandoindeks. Dimensjon: 48 bits.

    Koprosessor instruksjonssystem

    Systemet inkluderer rundt 80 kommandoer. Deres klassifisering:

    • Dataoverføringskommandoer
      • Ekte data
      • Heltallsdata
      • Desimaldata
      • Lastekonstanter (0, 1, Pi, log 2 (10), log 2 (e), log(2), ln(2))
      • Utveksling
      • Betinget videresending (Pentium II/III)
    • Datasammenligningskommandoer
      • Ekte data
      • Heltallsdata
      • Analyse
      • Fra bunnen av
      • Betinget sammenligning (Pentium II/III)
    • Aritmetiske kommandoer
      • Reelle data: addisjon, subtraksjon, multiplikasjon, divisjon
      • Heltallsdata: addisjon, subtraksjon, multiplikasjon, divisjon
      • Aritmetiske hjelpekommandoer (kvadratrot, modul, fortegnsendring, eksponent- og mantisseekstraksjon)
    • Transcendente kommandoer
      • Trigonometri: sinus, cosinus, tangens, arctangens
      • Beregning av logaritmer og potenser
    • Kontrollkommandoer
      • Initialisering av koprosessoren
      • Arbeid med miljøet
      • Arbeider med stabelen
      • Bytte modus

    En rask prosessor er flott! Imidlertid er det ganske mange faktorer som påvirker ytelsen til prosessoren. Det er folk som måler hastighet utelukkende i gigahertz - jo flere, jo bedre. De som er mer erfarne vurderer vanligvis ytelsen til en prosessor enten ved spesielle tester eller ved hvordan den takler informasjonsbehandling i reelle applikasjoner som krever store mengder beregninger (3D-grafikk, videokomprimering, etc.). Tatt i betraktning at de fleste moderne applikasjoner og spill krever en enorm mengde beregninger spesifikt på reelle tall (flytende kommatall), avhenger den generelle ytelsen til prosessoren av hvor raskt den behandler dem. For disse formålene har prosessoren en spesiell modul kalt Floating-Point Unit (FPU) - en flytende-punktberegningsmodul. Samtidig avhenger ytelsen til denne modulen ikke bare av driftsfrekvensen til prosessoren, men også av dens designfunksjoner.

    I begynnelsen av utviklingen av IBM-kompatible datamaskiner ble beregninger på reelle tall utført av en matematisk koprosessor, designet separat fra sentralprosessoren. Imidlertid brukte Intel allerede i den 486. prosessoren en innebygd flytpunktberegningsmodul, noe som økte prosessorens hastighet betydelig med reelle tall. Deretter byttet andre produsenter av prosessorer for personlige datamaskiner til den innebygde FPU.

    Merk at når du arbeider med reelle tall, er det samme nyanser som i heltallsoperasjoner - en kommando kan ikke utføres i én prosessorklokkesyklus (se artikkelen "Hvorfor trenger en prosessor en transportør", "KB" nr. /2003) . Og hvis en fem-trinns rørledning allerede hadde begynt å bli brukt i 486 prosessorer for å behandle heltallsinstruksjoner, så var FPU fortsatt ikke en rørledningstype, dvs. den neste flyttallkommandoen måtte alltid vente på at den forrige skulle fullføres. Dette reduserte prosessorens ytelse betydelig med multimedieapplikasjoner. Og sistnevnte på det tidspunktet hadde allerede begynt å få fart i sine "forespørsler". Derfor er det ganske naturlig at Intel, som startet med Pentium-prosessorer, begynte å bruke rørledningen ikke bare i heltall, men også i reelle operasjoner. AMD Corporation tok på sin side en litt annen vei - i stedet for FPU-pipelining begynte den å introdusere 3DNow-teknologi i produktene sine, som også var rettet mot å øke ytelsen i operasjoner med reelle tall. Denne teknologien har møtt mange utfordringer i implementeringen. Jeg tror mange husker hvordan AMD K6-2, designet for å konkurrere med Pentium II i heltallsoperasjoner, lå tretti prosent bak seg i behandlingen av reelle tall.

    Men, som de sier, du lærer av feil, så i Athlons og påfølgende prosessorer, byttet AMD til en pipeline type FPU. Dessuten, i de nye prosessorene, brukte AMD ikke bare superpipelining, men også superskalaritet i flyttallsmodulen. en prosessor begynte det å være, grovt sett, tre FPU-moduler, som hver tar del i flytende kommaberegninger, med andre ord med utgivelsen av Athlon/prosessorer.

    Gjennomgå