Du kan være nysgjerrig på hvordan nyere generasjoner av prosessorer er i stand til å være raskere med samme klokkehastighet som eldre prosessorer. Er det bare endringer i fysisk arkitektur, eller er det noe mer? Dagens SuperUser Q&A innlegg har svarene på en nysgjerrig lesers spørsmål.
Dagens spørsmål og svar-økt kommer til oss med tillatelse fra SuperUser - en underavdeling av Stack Exchange, en samfunnsdrevet gruppe av spørsmål og svar-nettsteder.
Foto med tillatelse fra Rodrigo Senna (Flickr) .
Spørsmålet
SuperUser-leseragz vil vite hvorfor nyere generasjoner av prosessorer er raskere med samme klokkehastighet:
Hvorfor for eksempel ville en 2,66 GHz dual-core Core i5 være raskere enn en 2,66 GHz Core 2 Duo, som også er dual-core?
Er dette på grunn av nyere instruksjoner som kan behandle informasjon på færre tidssykluser? Hvilke andre arkitektoniske endringer er involvert?
Hvorfor er nyere generasjoner av prosessorer raskere med samme klokkehastighet?
Svaret
SuperUser-bidragsytere David Schwartz og Breakthrough har svaret for oss. Først opp, David Schwartz:
Vanligvis er det ikke på grunn av nyere instruksjoner. Det er bare fordi prosessoren krever færre instruksjonssykluser for å utføre de samme instruksjonene. Dette kan være av mange årsaker:
- Store cacher betyr mindre bortkastet tid på å vente på minne.
- Flere utførelsesenheter betyr mindre tid på å vente på å begynne å operere på en instruksjon.
- Bedre grenforutsigelse betyr mindre bortkastet tid spekulativt å utføre instruksjoner som aldri trenger å bli utført.
- Forbedringer av kjøringsenheten betyr mindre tid på å vente på at instruksjonene skal fullføres.
- Kortere rørledninger betyr at rørledninger fylles raskere.
Og så videre.
Etterfulgt av svaret fra gjennombrudd:
Den absolutte definitive referansen er Intel 64 og IA-32 Architectures Software Developer Manuals . De beskriver endringene mellom arkitekturer, og de er en flott ressurs for å forstå x86-arkitekturen.
Jeg vil anbefale at du laster ned de kombinerte volumene 1 til 3C (første nedlastningskobling på siden lenket ovenfor). Volum 1, kapittel 2.2 har den informasjonen du ønsker.
Noen generelle forskjeller som er oppført i det kapitlet, går fra Core til Nehalem / Sandy Bridge mikroarkitekturer er:
- Forbedret grenforutsigelse, raskere utvinning fra feil prediksjon
- HyperThreading-teknologi
- Integrert minnekontroller, nytt cachehierarki
- Raskere unntakshåndtering av flytende punkt (kun Sandy Bridge)
- Forbedring av LEA-båndbredde (kun Sandy Bridge)
- AVX instruksjonsutvidelser (bare Sandy Bridge)
Den komplette listen finner du i lenken ovenfor (Volum 1, kapittel 2.2).
Sørg for å lese gjennom mer av denne interessante diskusjonen via lenken nedenfor!
Har du noe å legge til forklaringen? Lyd av i kommentarene. Vil du lese flere svar fra andre teknologikyndige Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her .