SZÁMÍTÓGÉPEK, SZÁMÍTÓGÉPRENDSZEREK Teljesítménynövelés 7. előadás
Vadász: Teljesítménynövelés
Ea7 1
A teljesítmény fokozás • Nem strukturális módszerek – Órajel frekvencia növelés, – Instrukciók számának csökkentése (optimálás)
• Strukturális módszerek – RISC architektúrákkal … – Utasításokra eső ciklusok számának csökkentése, • szupercsövek (super-pipeline), • szuperskalár CPU-k (CPU-n belüli párhuzamosítás).
– Külső párhuzamosítás (multiprocesszoros rendszerek)
Vadász: Teljesítménynövelés
Ea7 2
A mai program • CISC versus RISC • Párhuzamosítás CPU-n belül – szupercsatorna elv, – szuperskalaritás.
• Két esettanulmány – R3000-es szupercsatornás processzor, – Intel P6 szupercsatornás szuperskalár processzor
• Párhuzamosítás a CPU-n kívül
Vadász: Teljesítménynövelés
Ea7 3
1
CISC és RISC • CISC: Complex Instruction Set Computer • RISC: Reduced Instruction Set Computer – (Ezek CPU jellemzők)
• Történelmileg előbb a CISC-ek – minél többet bízz a hardverre, – bonyolult instrukciókat mikro-programokkal, – bonyolult instrukciókkal egyszerűbb a programozás (pl. PUSHALL), – bonyolult címzési módokat biztosítanak. – Az elgondolás nagyon jó, de … Vadász: Teljesítménynövelés
Ea7 4
A RISC gondolat • Statisztikákból kiderült: gyakoribbak az egyszerű instrukciók. • Akkor azokra “hegyezzük ki“ a CPU-t! (Ez az új gondolat!) • Az egyszerű instrukciók azonos logikájúak: – – – –
egyszerűbb áramkörök, ezek gyorsabbak, egyszerűbb, egységes dekódolás, ez is gyorsabb, több regiszter lehet, ez is gyorsít, egyszerűek, egyformák a címzési módok is.
• A bonyolultabb feladatokat viszont több instrukcióval. Lehet, hosszabb lesz a program. Vadász: Teljesítménynövelés
Ea7 5
További előnyök • Egyforma a ciklusidő (többnyire 1 utasítás/1 ciklus). Ez segíti a szupercsatornázást (lásd később). • Az egyszerű áramkörök (nagyobb frekvenciát engednek) engedik a belső egységek többszörözését. Lehetséges a szuperskalaritás. • Könnyebb a “spekulatív végrehajtás“ is. • Befér a tokba a cache is, egyre nagyobb. • Illesztés OS-hez, compiler-hez. • Híres RISC processzorok
Vadász: Teljesítménynövelés
Ea7 6
2
Párhuzamosítások • CPU-n belül: – szupercsatornák (super pipe-line) alkalmazása, – szuperskalaritás: több instrukciót párhuzamosan dolgoznak fel (1/3 way: 1/2 utas)
• CPU-n kívül: – Fix feladat szétosztással (coprocesszorok) • lebegőpontos aritmetikára, • grafikára, képfeldolgozásra stb.
– Változó feladat szétosztású multiprocesszoros rendszerek (dual/quad systems).
Vadász: Teljesítménynövelés
Ea7 7
A futószalag (pipe-line, csővezeték, csatorna) feldolgozás • Egyetlen instrukció feldolgozása is több fokozaton (stage) megy keresztül. Legalább: – – – –
instrukció fehozatal (fetch), dekódolás (decode) (és utasítás “kibocsájtás“), a tényleges végrehajtás, Az eredmény beírás.
• Az egyes fokozatokat más-más egységek végzik, párhuzamosan dolgozhatnak: – az i. instrukció végrehajtása során – dekódolható az i+1. instrukció, – felhozható az i+2. sít. Vadász: Teljesítménynövelés
Ea7 8
A RISC előnyök itt érvényesülnek • Egyforma instrukciók - egyforma fokozat idők. • Egy ciklusra valóban kijöhet egy instrukció!
Vannak gondok is • Időzítési hazard: egy instrukcióhoz kell az előző eredménye. Várakozni kell rá. Függőség. – Megoldás: utasítás sorrend átrendezés, spekulatív végrehajtás.
• Ugró utasítások problémája: mi lesz a soron következő instrukció? – Megoldás: „jóslás”; késleltetett ugrás; előrehozott elágazás; mindkét ág feldolgozása (szuperskalaritással). Vadász: Teljesítménynövelés
Ea7 9
3
A spekulatív végrehajtás • Egy-egy instrukciót (operációt, elemi instrukciót) a lehető leghamarabb végrehajtanak, és függetlenül attól, hogy eredményére szükség lesz-e vagy sem… (amint lehet + függetlenül a szükségességétől. Szükségtelensége esetén gondoskodnak arról, hogy ne okozzon hibát!). • A load instrukciókat (elég gyakoriak és elég költségesek) pl. célszerű spekulatívan végrehajtani (minél előbb és mindenképpen).
Vadász: Teljesítménynövelés
Ea7 10
Az R3000 szupercsöve • Az instrukciók végrehajtását 5 fokozatra (stage) osztja. Minden fokozat még 2 fázisra. • 1 fokozat/1 ciklus • A fokozatok: – – – – –
Instrukció felhozatal Olvasások ALU operációk Adatmemória elérés Regiszter visszaírás
IF RD ALU MEM WB
Vadász: Teljesítménynövelés
Ea7 11
Egy instrukció végrehajtás IF 01
TLB
01
RD 02
I-Cache
RF
02
01
ALU 02
OP
MEM 02
01
D-Cache
WB
01
WB 02
TLB
Vadász: Teljesítménynövelés
Ea7 12
4
A fokozatok, fázisok tevékenysége IF
01
TLB-t használva virtuális címet fizikaira képez
IF
02
Leképzett címet küldi az I-Cache-nek
RD
01
Felhoz az I-Cache-ből, ellenőriz
RD
02
Olvassa a regiszter fájlt, vagy ugráshoz címet számol
ALU
01 + 02 Aritmetikai instrukciót hajt végre, vagy
ALU
01
ugrásnál dönt, lehet-e ugrani, vagy LD/ST-nél számítja az adat virtuális címet
ALU
02
LD/ST-nél TLB-t használva leképez fizikai címre
MEM
01
LD/ST-nél küldi a fizikai címet a D-Cache-nek
MEM
02
LD/ST-nél mozgatja az adatot, ellenőriz
WB
01
Írja a regiszter fájlt Vadász: Teljesítménynövelés
Ea7 13
Az 5 mélységű cső i-2 i-1 i i+1 i+2
IF
RD
ALU
MEM
WB
IF
RD
ALU
MEM
WB
IF
RD
ALU
MEM
WB
IF
RD
ALU
MEM
WB
IF
RD
ALU
MEM
WB
Currens ciklus
Vadász: Teljesítménynövelés
Ea7 14
A szuperskalaritás • Nemcsak azért lehet párhuzamosítani, mert az instrukciók feldolgozási fokozatait különböző egységek végzik, hanem • mert egyes egységeket többszörözni lehet! • lehet több – dekódoló, – ALU, akár lebegőpontos is, külön az eltolásnak stb., – külön címgeneráló az instrukcióknak, az adatoknak.
• A belső buszok párhuzamos csatornákat biztosítanak (2/3 utasok …). Vadász: Teljesítménynövelés
Ea7 15
5
Pipe-line versus skalár Pipe-lined CPU Skalár CPU
FU1
FU2
FU3 FU1
FU2 FU - funkcionális egység
FU3
Vadász: Teljesítménynövelés
Ea7 16
És ennek gondjai? • Lesznek persze: – Az instrukció sorrendiség felborulhat, ezt figyelni kell, hogy helyes eredmények legyenek. – Ugyanekkor nyilvánvaló a szupercsatornázás is: ez bonyolítja a dolgot.
• Természetesek RISC-es szuperskalár, szupercsatornás CPU-k, • de van CISC-es is! A Pentium kétutas szuperskalár, szupercsatornás CPU. • A Pentium Pro háromutas szuperskalár! • A 486 és a Pentium 5 fokozatú volt. Vadász: Teljesítménynövelés
Ea7 17
Az Intel P6 család • IA instrukciókat feldolgozó (x86 és Katmai Iset), háromutas szuperskalár, sok fokozatos (12-14 stage) szupercsöves processzorok • Spekulatív végrehajtás, elágazás előrejelzés – Pl. • • • •
Pentium Pro Pentium II., Pentium II Xeon Pentium Celeron Pentium III., Pentium III Xeon
• Nézzük ezt …
Vadász: Teljesítménynövelés
Ea7 18
6
3 egység kommunikál közös instrukció mezőn keresztül System Bus
L2 Cache
Bus Interface Unit
L1 ICache Fetch
L1 DCache Load
Fetch/ Decode Unit
Dispatch/ Execute Unit
Store
Retire Unit
Instruction Pool
Vadász: Teljesítménynövelés
Ea7 19
Egy tipikus programrész r1 <= mem[r0] # 1. instr
Az 1. instr. végrehajtásánál valószínű a cache miss.
r2 <= r1 + r2 # 2. instr
A 2-iknak várni kell az 1. eredményére., de a 3-4iknek nincs függősége, azok soron kívül végrehajthatók.
r5 <= r5 + 1
# 3. instr
r6 <= r6 + r3 # 4. instr
A P6 családú processzoroknál ez így is van!
A Fetch/Decode egység több instrukciót is behoz és azokat mikro-instrukciókká alakítva (triadicµops: 2 forrás operandus, 1 cél operandus) betesz az I Pool-ba. 20-30 instrukció is lehet az IP előttről. A 20-30-ban átlag 5 ugrás lehet, ezeket a F/D (pontosan) előrejelzi (prediction), hogy a Dispatch/Execute jól dolgozhasson. A D/E data-flow gépként dolgozhat: amelyik µops-nak minden operandusa megvan, végrehajthatja (spekulatív végrehajtás: a lehető leghamarabb + függetlenül a szükségességtől). A Retire Unit gondoskodik arról, hogy bármilyen sorrend is volt a µops-okra, helyes legyen az eredmény. Vadász: Teljesítménynövelés
Ea7 20
Az F/D egység From BIU
ICache
Next_IP: L1 ICache index. Next_IP
Fetch Branch Target Buffer
Instr. Decoder (3x)
Microcode Instruction Seqencer Reg. Alias Table Allocate
ReOrder Buffer
Vadász: Teljesítménynövelés
Az ID-be 16 byte-os egységekben IA instrukciókat hoznak be (Fetch). A 3 dekóder (2 egyszerű, 1 komplex) az IA instrukciókat µopsokká alakítja (1 v. 4 µops-sá). Amit nem tudnak: a MIS alakít át (sok µops-sá). A µops-ok sorban átkerülnek a RAT-ba: a hamis függőségek feloldására (az IA regiszter hivatkozások fizikai regiszter hivatkozásokra képződnek). Az I Pool-t a RAS, a ReOrdered Buffer (ROB, asszociatív tár) és a Res Station alkotja. Ea7 21
7
Reservation Station
A D/E egység
To/From
Port 2
Load U
Loads
A Reservation Station: "kiegyenlítő tartály". Bekerülnek a µops-ok, és ha minden operandusuk előállt (és megfelelő ALU rendelkezésre áll), a megfelelő porton megfelelő ALU-ba kerülnek végrehajtásra. Onnan az eredményükkel együtt visszajutnak az I Poolba.
Port 3,4
Store U
Stores
Ciklusonként max 5 µops, átlag 3 a tipikus.
FP Exec U Port 0
Int Exec U
Port 1
Int Exec U
MMX Exec U
FP Exec U MMX Exec U
ROB
Ugrások helytelen előrejelzésénél µops-ok visszavonódhatnak (az Ipoolból). Vadász: Teljesítménynövelés
Ea7 22
A Retire Unit (Visszavonó)
Reservation Station
To/From DCache
Memory Interface Unit
Retirement Register File Instruction Pool
Ez is nézi a µops-okat az Ipool-ban: olyanokat keres, amik már végrehajtódtak és kivehetők (can be removed). Nézi az eredeti sorrendet, és a RAS leképzéseket, hogy helyes eredményt kapjunk, figyelemmel az interruptokra, trap-ekre, töréspontokra és a helytelen előrejelzésekre is. A visszavont µops-ok eredményeit beíratja az IA regiszterekbe, vagy az L1 Dcachebe (M/BIU segítségével). Ciklusonként 3 µops-ot tud visszavonni. A load/store-ok a MIU-n át jutnak vissza az Ipoolba.
Vadász: Teljesítménynövelés
Ea7 23
A Bus Interface Unit Két memóriaelérés lehet: betöltések és kiírások (loads and stores). A betöltéshez kell: a memóriacím, az adatszélesség és a célregiszter. Egyetlen µops-sá dekódolható. Ha store-k nem"zavarják", tetszőleges lehet sorrendjük. Az íráshoz kell: a memóriacím, az adatszélesség és az adat, amit ki kell írni. Két µops kell hozzá: egyik generálja a címet, másik az adatot. Ráadásul ezek sohasem hajthatók végre spekulatíven! Meg kell legyen mind a cím, mind az adat, sőt, nem lehetnek sorrendben régebbi store-ok sem! A BUI-ban ezért a Memory Order Buffer - ez is "kiegyenlítő tartály" engedi, hogy load-ok előzzenek load-okat, visszatart felfüggesztett loadokat, store-okat, és újraütemezi őket, amikor a blokkoló feltételek (ez lehet függőség, vagy ALU erőforrás hiány) megszűnnek. Vadász: Teljesítménynövelés
Ea7 24
8
Intel Desktop Processor Roadmap http://www.intel.com/products/roadmap 2005. január - június
2005. július - december
Intel® Pentium® 4 Processor 570∆ Supporting HT† Technology or greater 1 MB L2 cache, 3.80 GHz, 800 MHz FSB Intel® 925X/XE Express Chipset Intel® 915 Express Chipset Family
Intel® Pentium® 4 Processor 570∆ Supporting HT† Technology or greater 1 MB L2 cache, 3.80 GHz, 800 MHz FSB Intel® 925X/XE Express Chipset Intel® 915 Express Chipset Family
Intel® Celeron® D Processor 345∆ or greater 256 KB L2 cache, 3.06 GHz, 533 MHz FSB Intel® 915GV/910GL Express Chipsets Intel® 865 Chipset
Intel® Celeron® D Processor 345∆ or greater 256 KB L2 cache, 3.06 GHz, 533 MHz FSB Intel® 915GV/910GL Express Chipsets Intel® 865 Chipset
Vadász: Teljesítménynövelés
Ea7 25
Server Roadmap • 2003 jan- jún
• 2003 júl-dec
• • • •
Intel ® Itanium ™ 2 proc 1 GHz 3M iL3 cache or greater Intel ® E8870 Chipset / Enabled Chipset
• • • •
• • • •
Intel ® Xeon ™ 2 GHz 2MiL3 cache Enabled Chipset
Intel ® Itanium ™ 2 proc 1 GHz 3M iL3 cache or graeter Intel ® E8870 Chipset / Enabled Chipset
• Intel ® Xeon ™ • 2 GHz or greater • 2MiL3 cache or greater http://www.intel.com/products/roadmap/ • Enabled Chipset Vadász: Teljesítménynövelés
Ea7 26
2U Intel® Dual Xeon™ System • 2U Intel® Dual Xeon™ System – RK810 chassis – MB802 Intel® Model SE7500WV2 SCSI Dual processor mother board
• 1U IBM xSeries 335 – 2 db 2,4 GHz Xeon ™ – DDR SDRAM Vadász: Teljesítménynövelés
Ea7 27
9
Intel Server Processor Roadmap http://www.intel.com/products/roadmap/
2005. január - június 2005. július - december RISC4/8 socket & above Intel® Itanium® 2 Processor 1.60 GHz 9MB iL3 cache Intel® E8870 Chipset / Enabled Chipsets
Intel® Itanium® 2 Processor Intel® Itanium® Processor Family Next Generation Intel® E8870 Chipset / Enabled Chipsets
Vadász: Teljesítménynövelés
Ea7 28
Intel ® Chipsets 850 Chipset
845 Chipset
Target Segment
HOST
Workstation
860 Chipset
Entry-level Workstation, Performance PC, Mainstream PC
Performance PC, Mainstream PC
Workstation
Workstation
Host Processor
Intel® Xeon™ processor for DP workstations
Pentium® 4 processor
Pentium® 4 processor
Pentium® III processor, Pentium® III Xeon™ processor
Pentium® III Xeon™ processor, Pentium® II Xeon™ processor
Number Processors
1-2
1
1
1-2
2-4
System Bus
400MHz (data)
400MHz (data)
400MHz (data)
133/100 MHz
MEMORY CONTROLER Type Package
860 Chipset
850 Chipset
840 Chipset
845 Chipset
840 Chipset
440GX AGPset
100/66 MHz
440GX AGPset
82860 MCH
82850 MCH
82845 MCH
82840 MCH
82443GX
1024 OLGA
615 OLGA
FC-BGA 593
544 BGA
492 BGA
http://developer.intel.com/design/chipsets/linecard_pv.pdf Vadász: Teljesítménynövelés
MEMORY
860 Chipset
850 Chipset
845 Chipset 2 double-sided DIMMs DDR, 3 double-sided DIMMs SDR
Memory Modules
4 RIMMs, up to 8 RIMMS with MRHR
4 RIMMs
Memory Type
PC800/600 RDRAM
PC800/600 RDRAM
Max Memory
4 GB (w/ 2 repeaters)
2 GB
2 GB DDR 3 GB SDR
Number of Rows/Devices
32 RDRAM/channel
32 RDRAM/channel (64 total)
Mbit Support
256/128 Mbit
ECC/Parity
Yes
I/O CONTROLL
Ea7 29
840 Chipset
440GX AGPset
2 RIMMs, up to 4 RIMMs with MRH-R
4 double-sided DIMMs
PC800/600 RDRAM
PC100 SDRAM
4 GB (w/ 2 repeaters)
2 GB
6 rows
32 RDRAM/channel
8 rows
256/128 Mbit
512/256/128/64 Mbit
256/128/64 Mbit
256/128/64 Mbit
Yes
Yes
Yes
Yes
860 Chipset
DDR 200/266 PC133 SDRAM
850 Chipset
845 Chipset
840 Chipset
440GX AGPset
Type
ICH2
ICH2
ICH2
ICH
PIIX4E
ICH Package
360 EBGA
360 EBGA
360 EBGA
241 BGA
PIIX4 324 BGA
PCI Support
PCI 2.2
PCI 2.2
PCI 2.2
PCI 2.2
PCI 2.1
PCI Masters
6
6
6
6
6
IDE
ATA/100 IAA**
ATA/100 IAA**
ATA/100
ATA/66
ATA/33
USB Ports/Controller
2 controllers: 4 ports
2 controllers: 4 ports
2 controllers: 4 ports
1 controller: 2 ports
1 controller: 2 ports
Yes
Yes
Yes
Audio/Modem
Audio/Modem Audio/Modem Vadász: Teljesítménynövelés
LAN MAC/PNA AC'97 Digital Circuits
No
No
Audio/Modem
Audio/ModemEa7 30
10
Intel Pentium 4 • NetBurst Micro-Architecture – – – – – – – –
Hyper-Pipelined Technology (20-stage) 400 MHz System Bus (3,2 Gbytes/sec) Advanced Dynamic Execution Rapid Execution Engine Advanced Transfer Cache Execution Trace Cache Streaming SIMD Extension 2 (SSE2) Hardware Prefetcher
ftp://download.intel.com/design/pentium4/papers/24943801.pdf Vadász: Teljesítménynövelés
Ea7 31
Híres processzorok • AMD Athlon TM XP 1800+, 1900+, 2000+ … • • • • •
MIPS R5000, 6000, 10000, 12000, 14000 DEC Alpha 21064, 21164, 21264A, 21264C IBM RS64 II, Power2, Power3-II, Power4 HP PA-RISC 8500, 8700, 8800 SUN Sparc 20, SuperSPARC, UltraSPARC III, IV
Vadász: Teljesítménynövelés
Ea7 32
Párhuzamosítás a CPU-n kívül • Fix feladat szétosztás – Aritmetikai társprocesszorok, – Grafikus, képfeldolgozó társproceszorok, – Hangfeldolgozó ... stb.
• Változó feladatszétosztás: több processzor, mind általános célú ...
Vadász: Teljesítménynövelés
Ea7 33
11
Változó feladatszétosztású multiprocesszálás • SIMD párhuzamosság (Single Instruction Stream on Multiple Data Stream): az összes processzor ugyanazt az algoritmust különböző adatokon hajtja végre: vektorprocesszálás. • MIMD párhuzamosság (Multiple Instruction Stream on Multiple Data Stream): Mindegyik mást csinál.
Vadász: Teljesítménynövelés
Ea7 34
A MIMD lehet • Közös erőforrású struktúrák (pl. korábbi zeus) – osztoznak a memórián, eszközökön,
• részben v. teljesen saját erőforrású struktúrák (pl. transzputerek) – processzoronkénti memória, – esetleg eszközök, – intenzív kommunikáció.
• A párhuzamosság granulátuma lehet – durva szemcsés (pl. processzek egy-egy CPU-hoz kötődnek, ilyen volt a zeus), – finom szemcsés (egy processz fonalai más CPU-kon). Vadász: Teljesítménynövelés
Ea7 35
Összefoglalás • Vettük a CISC versus RISC problémát, • A párhuzamosítást CPU-n belül • Két esettanulmányt – R3000-es szupercsatornás processzor, – Pentium Pro, a P6 szupercsatornás szuperskalás processzorok.
• Néztük a párhuzamosítást a CPU-n kívül. • Sokminden később ülepedhet le (pl. cache, TLB stb.), de mit tehetünk?
Vadász: Teljesítménynövelés
Ea7 36
12
SZÁMÍTÓGÉPEK, SZÁMÍTÓGÉPRENDSZEREK Teljesítménynövelés 7. előadás vége
Vadász: Teljesítménynövelés
Ea7 37
13