Prescott 30-stegs pipeline?

Permalänk
Medlem

Re: IPC och lång pipeline

Citat:

Ursprungligen inskrivet av Zoidberg
Vill bara förtydliga vad en längre pipeline innebär prestandamässigt.

*text*

/Z

Du borde även ha bakat in varför en P4 behöver mer cache än en Athlon/64 för att fortfarande behålla prestandan vid förlängning av pipeline

Permalänk

Jag känner att jag mâste förklara begreppen "instruktioner per klockcykel" och "pipeline" lite mer ingâende.

Genom att fÖrlänga antalet steg i en pipeline, minskar man det arbete (av en instruktion) som utförs per klockcykel. En instruktion delas alltsâ upp i flera delsteg där det tar exakt en klockcykel att utföra varje delsteg.

Varför minska arbetet i ett delsteg? Tänk flera steg av seriekopplade transistorer, s.k. transistordjup, där högsta möjliga klockfrekvens bestäms av tiden det tar för utgângen att ställa in sig efter en ny signal pâ ingângen. Varje transistor inför en fördröjning och genom att minska djupet minskar man ocksâ propageringstiden eller tiden det tar att erhâlla en korrekt utsignal vid en förändring pâ insignalen och man kan därför höja klockfrekvensen.

Ju längre pipeline desto fler klockcykler tar det innan en instruktion har passerat pipelinen och blivit utförd. Men genom att hâlla pipelinen fylld kan man teoretiskt fâ antalet instruktioner per klockcykel att gâ mot värdet 1. Har man dâ lyckats höja klockfrekvensen sâ har man vunnit prestanda.

Tänk er att vi har en instruktion som heter "ta hand om smuttstvätten" (vilket normalt innebär Tvätta, Torktumla, Stryka och Vika. Säg att ni har en maskin som gör allt detta pâ en gâng och det tar 4 timmar (en klockcykel). Säg nu genom att infÖra mindre arbete per klockcykel (vi lâter Tvätta bli ett delsteg i instruktionen "ta hand om smutttvätten" osv.) sâ kan vi höja klockfrekvensen sâ att 1 timme motsvarar tiden per delsteg (nya klockfrekvensen).

Dâ utförs en instruktion pâ fyra klockcykler Tvätta-Torktumla-Stryka-Vika = 4 timmar (ingen prestandavinst ännu)

Men säg att vi har tre smuttstvättar att ta hand om och vi lâter varje delsteg fungera enligt pipeline-principen.

Efter antal klockcykler:
1) Tvätta_1
2) Tvätta_2 - Torktumla_1
3) Tvätta_3 - Torktumla_2 - Stryka_1
4) Torktumla_3 - Stryka_2 - Vika_1
5) Stryka_3 - Vika_2
6) Vika_3

Sâ vi har alltsâ gjort fyra smuttstvättar pâ sex timmar eller 0.66 instruktioner per klockcykel. Om vi nu i stället har tusentals smuttstvättar att utföra sâ närmar sig antalet instr. per klockcykel värdet 1 och vi har alltsâ fyrdubblat prestandan genom att minska antalet arbete per klockcykel och infÖra en pipeline.

Notera_1 att genom att införa parallellitet (exekvera flera instruktioner samtidigt) sâ kan man fâ ett värde av instruktioner per klockcykel som är större än 1.

Notera_2 att i praktiken sâ kan man fâ avbrott i pipelinen och bli tvungen att kasta alla steg i pipelinen och fylla den igen pâ nytt. S.K. "branches" som skapas t.ex genom av if-satser i programmeringskoden.

Visa signatur

There are 10 types of people in the world.
Those that understand binary... and those who don't.

Permalänk
Hedersmedlem

Om det nu är så förbannat bra med lång pipeline, varför har inte alla processorer en pipeline på 1000 steg?

Grejen är att i praktiken så kan man väldigt sällan hålla pipelinen fylld, så ju längre pipline man har desto lägre IPC får man. Ibland måste man till exempel vänta på att "Stryka_1" ska vara klar innan man kan börja med "Tvätta_2". Därför har Intels processorer HT, för att kunna fylla alla steg i pipelinen effektivare (genom att tvätta "grannens" tvätt när du har en maskin ledig).

Om de nu ökar antalet steg väldigt mycket utan att öka frekvensen speciellt mycket kommer processorn att vara långsammare.

Visa signatur

Nämen hej!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Donan Fear
Om det nu är så förbannat bra med lång pipeline, varför har inte alla processorer en pipeline på 1000 steg?

Grejen är att i praktiken så kan man väldigt sällan hålla pipelinen fylld, så ju längre pipline man har desto lägre IPC får man. Ibland måste man till exempel vänta på att "Stryka_1" ska vara klar innan man kan börja med "Tvätta_2". Därför har Intels processorer HT, för att kunna fylla alla steg i pipelinen effektivare (genom att tvätta "grannens" tvätt när du har en maskin ledig).

Om de nu ökar antalet steg väldigt mycket utan att öka frekvensen speciellt mycket kommer processorn att vara långsammare.

Just det vad några av dom föregående posterna säger är att genom förbättringar av branchprediktorn och då också trace cachen (L1) och också i viss mån L2 cachen så kan man bibehålla IPC:en vid en given klockhastighet och så småningom höja klockfrekvensen
Men hade man inte förlängt pipelinen så skulle man givetvis ha fått en betydligt effektivare CPU vid en given klockhastighet som förvisso inte hade scalat så högt i frekvens

Ungefär som att gräva i en sandlåda där spaden har hål ju fler hål desto fler pipelines desto högre hastighet måste man gräva med och om sanden är kod är klimpar som inte faller igenom hålen i spaden optimerad kod

Och det finns också en gräns när mispredict pipelinen överstiger vad som är architecturalt möjligt (man förlorar mer i minskad IPC än man kan öka klockfrevensen) ett problem är att strömförbrukningen går upp 2-4 gånger med en kraftig ökning av antalet stages därför tvivlar jag på att Prescott har gått från 20 till 30 men 22-24 låter mera rimligt men allt är naturligtvis möjligt

För den som vill dyka in i det här ämnet finns en studie av Intel här
http://systems.cs.colorado.edu/ISCA2002/FinalPapers/Deep%20Pi...

Visa signatur

"Would the last guy out of 32-bit land, please, turn out the lights. Thanks."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av pa1983
kanske säger det nu men när Palomino kom läse JAG och MIN kompis amds egna FAQ vad 1800+ osv betyde och det stog klart å tydligt motsvarigheten till intels P4:a.
Sedan kanske dom har ändrat pga påtryckningar från intel eller nåt men har läst det på AMD:s sida å det är väll inöt i skallen på folk sedan det kom. Tror många mins att det var just vad PR stog för och har gjort det innan med på gammla cyrix osv.
Var mcyekt articklar om amd:s PR när det komm tillbaks igen.

Kan någon bekräfta detta?

Jag ahr själv aldrig hört om detta och har svårt att tro att AMD skulle skriva om Intel på sin sida.

Men visa mig gärna en länk eller vad du vill.

Jag kan ha fel men tror att du har det.

Visa signatur

Om ni skriver till mig, var god citera

Permalänk
Citat:

Ursprungligen inskrivet av zeus
Kan någon bekräfta detta?

Jag ahr själv aldrig hört om detta och har svårt att tro att AMD skulle skriva om Intel på sin sida.

Men visa mig gärna en länk eller vad du vill.

Jag kan ha fel men tror att du har det.

Jag är 99 % säker på att jag också sett det på amd´s sida för nått/några år sedan.

Visa signatur

System1: Nf7-s 2.0 ¤ Barton 2500+ ¤ 2*256 T/W PC3200 ¤ 9700 pro ¤ 220 gb ¤ Chieftec Scorpio ¤ 3dmark01 18162
System2: A7v333 ¤ XP2200+ ¤ 2*256 PC2700 ¤ 8500le ¤ 80 gb ¤ Kitty Midi Tower
System3: P4 2,6 Gz ¤ 512 Mb ¤ 120 Gb HD ¤ 9800 pro ¤ Dell