GeeksforGeeks
a CPU teljesítményének javítása érdekében két lehetőségünk van:
1) javítsa a hardvert gyorsabb áramkörök bevezetésével.
2) rendezze el a hardvert úgy, hogy egyszerre több művelet is elvégezhető legyen.
mivel a hardver sebessége korlátozott, a gyorsabb áramkörök költsége meglehetősen magas, el kell fogadnunk a 2.opciót.
Pipelining : A Pipelining a CPU hardverelemeinek elrendezésének folyamata, hogy általános teljesítménye növekedjen. Több utasítás egyidejű végrehajtása egy pipelined processzorban történik.
let us see a real life example that works on the concept of pipelined operation. Vegyünk egy vizes palackot csomagoló üzemet. Legyen 3 szakaszban, hogy egy üveget kell áthaladni, Behelyezése a palack(I), Töltő víz az üveg(F), majd lezárja a palack(Ok). Tekintsük ezeket a szakaszokat 1., 2., illetve 3. szakasznak. Hagyja, hogy minden szakasz 1 percet vesz igénybe a művelet befejezéséhez.
most, egy nem Csővezetékes művelet során először egy palackot helyeznek be a növénybe, 1 perc elteltével a 2.szakaszba kerülnek, ahol a víz megtelik. Most, az 1. szakaszban semmi sem történik. Hasonlóképpen, amikor a palack a 3. szakaszba lép, mind az 1., mind a 2. szakasz tétlen. De a csővezetékes működés során, amikor a palack a 2. szakaszban van, egy másik palackot az 1.szakaszban lehet betölteni. Hasonlóképpen, ha a palack a 3. szakaszban van, akkor az 1.és a 2. szakaszban egy-egy palack lehet. Tehát minden perc után új palackot kapunk a 3.szakasz végén. Ezért az 1 palack gyártásához szükséges átlagos idő:
csővezeték nélkül = 9/3 perc = 3m
I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)
pipelining = 5/3 perc = 1,67 m
I F S | || I F S || | I F S (5 minutes)
így a pipelined működés növeli a rendszer hatékonyságát.
egy alapvető csővezeték tervezése
- egy pipelined processzorban egy csővezetéknek két vége van, a bemeneti vége és a kimeneti vége. E végek között több szakasz / szegmens van, úgy, hogy az egyik szakasz kimenete a következő szakasz bemenetéhez van csatlakoztatva, és minden szakasz egy adott műveletet hajt végre.
- az Interfészregiszterek a közbenső kimenetet két szakasz között tartják. Ezeket az interfészregisztereket retesznek vagy puffernek is nevezik.
- a csővezeték összes szakaszát az interfészregiszterekkel együtt egy közös óra vezérli.
a pipelined processzorban történő végrehajtás
a pipelined processzorban lévő utasítások végrehajtási sorrendje téridő-diagrammal megjeleníthető. Vegyük például egy 4 fokozattal rendelkező processzort, és hagyjuk, hogy 2 utasítás legyen végrehajtva. A végrehajtási sorrendet a következő tér-idő diagramokon keresztül tudjuk megjeleníteni:
nem átfedő végrehajtás:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
S1 | I1 | I2 | ||||||
S2 | I1 | I2 | ||||||
S3 | I1 | I2 | ||||||
S4 | I1 | I2 |
Total time = 8 Cycle
Overlapped execution:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
S1 | I1 | I2 | |||
S2 | I1 | I2 | |||
S3 | I1 | I2 | |||
S4 | I1 | I2 |
Total time = 5 Ciklus
csővezeték szakaszok
RISC processzor 5 fokozatú utasítás csővezeték végrehajtani az összes utasítást a RISC utasításkészlet. Következő 5 szakaszában RISC csővezeték a megfelelő műveletek:
- 1. Szakasz (Fetch Utasítás)
ebben A szakaszban a CPU olvassa az utasításokat a címe a memóriában, amelynek értéke van jelen a program számláló. - 2. szakasz(utasítás dekódolás)
ebben a szakaszban az utasítás dekódolásra kerül, a regiszterfájl pedig az utasításokban használt regiszterekből érhető el. - 3. szakasz(utasítás végrehajtása)
ebben a szakaszban ALU műveleteket hajtanak végre. - 4. szakasz(Memory Access)
ebben a szakaszban a memory operandusok az utasításban található memóriából olvashatók és írhatók. - 5. szakasz(írja vissza)
ebben a szakaszban a számított/lekérett értéket vissza kell írni az utasításokban szereplő regiszterbe.
pipelined processzor teljesítménye
Vegyünk egy ” k “szegmens csővezetéket óraciklusidővel” Tp ” – ként. Legyen ” n ” feladat a pipelined processzorban. Most, az első utasítás ” k “ciklusokat fog venni, hogy kijöjjön a csővezetékből, de a többi” n – 1 “utasítás csak” 1 “ciklust vesz igénybe, azaz összesen” n – 1 ” ciklust. Szóval idő, hogy végre az ” n ” utasítás a futószalag javítja processzor:
ETpipeline = k + n – 1 cycles = (k + n – 1) Tp
ugyanazon ügyben, egy nem futószalagos processzor, végrehajtási ideje az ” n ” utasítás lesz:
ETnon-pipeline = n * k * Tp
Szóval, sebesség (K) a futószalag javítja processzor át nem futószalagos processzor, ha ” n ” a feladatok végrehajtása ugyanazon a processzor:
S = Performance of pipelined processor / Performance of Non-pipelined processor
mivel a processzor teljesítménye fordítottan arányos a végrehajtási idővel,
S = ETnon-pipeline / ETpipeline => S = / S = /
Ha az”n”feladatok száma lényegesen nagyobb, mint k, azaz n > k
S = n * k / n S = k
ahol ” k ” a csővezeték szakaszainak száma.
Is, Hatékonyság = Adott sebesség / Max sebesség = S / Smax
tudjuk, hogy Smax = k
Szóval, a Hatékonyság = S / k
a Kapacitás = Számú utasítás / Teljes ideje, hogy töltse ki a megjelenő utasításokat
Szóval, a Kapacitás = n / (k + n – 1) * Tp
Megjegyzés: A ciklus per utasítás (CPI) értéke ideális futószalag javítja processzor 1
Kérjük, olvassa el Set 2 a Függőségek Adatok Veszély, majd Állítsa be a 3 Típusú vezetéket, majd húzza az időt.