Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdLander Peeters Laatst gewijzigd meer dan 10 jaar geleden
1
slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Instructie set: principes
2
slide 2Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers classificatie van instructie sets n classificatie gebaseerd op type intern geheugen op CPU zie fig. 2.1 u stapel-architectuur (impliciete operanden) u accumulator-architectuur (één operand is impliciet) u register-architectuur (expliciete operanden) l register-geheugen-architectuur l register-register-architectuur l geheugen-geheugen-architectuur n verdere verdeling van register-architectuur (fig. 2.2) u aantal operanden die uit het geheugen mogen komen u 2 of 3 operanden voor een ALU operatie n voor en nadelen van deze varianten: fig. 2.3
3
slide 3Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers classificatie van instructie sets n voordelen van registers u gemakkelijker te gebruiken voor compiler dan stapel of accumulator u efficiënter dan stapel of accumulator voor lange expressies u registers kunnen variabelen bevatten l minder verkeer met geheugen –vermindert de geheugen-bottleneck –sneller l compactere code –geen echte lange instructies –vermindert de geheugen-bottleneck
4
slide 4Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers classificatie van instructie sets n aantal registers u nodig voor evaluatie van expressies, doorgeven van parameters, bijhouden van variabelen u voor compiler: liefst allemaal algemeen bruikbaar u indien teveel: veel werk bij saven bij procedure oproepen
5
slide 5Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers geheugen adressering n little endian ; big endian (2143 ; 1234) n bytes, half-woorden, woorden, dubbel-woorden n aligneren n adresseringsmodes u fig. 2.5 geeft een mooi overzicht u meest gebruikte: immediate, displacement, register indirect u keuze van adressingsmodes beïnvloeden: l aantal instructies in een programma (IC) l complexiteit van de processor l gemiddelde duur van een instructie (CPI)
6
slide 6Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers geheugen adressering (vervolg) n adresseringsmodes (vervolg) u fig. 2.6-2.9 tonen statistieken van gebruik van deze adresseringsmodes l fig 2.6: immediate, displacement, register deferred of indirect stellen 75% tot 99% van de adresseringsmodes voor l displacement: de grootte die aangeboden wordt beïnvloedt direct de instructielengte (fig 2.7) l immediate: –aangeboden in welke operaties ? (fig. 2.8) –de grootte die aangeboden wordt beïnvloedt direct de instructielengte (fig 2.9)
7
slide 7Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers operaties n verschillende categorieën: zie fig. 2.10 u nieuwe categorie: multimedia instructies n enkele eenvoudige instructies maken vaak een heel groot deel uit van de gebruikte instructies u bv intel : 10 instructies worden 96% van de tijd gebruikt (zie fig. 2.11) n instructies voor control flow u voorwaardelijke sprongen u sprongen u procedure-oproepen u procedure-terugkomst L fig 2.12 toont hun relatief gebruik
8
slide 8Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers operaties (vervolg) n adres specifiëren u relatief aan de programma teller (PC) is meest gebruikte l gebruikt weinig bits l is onafhankelijk van plaats van code l moet gekend zijn op moment van compilatie l maakt de code adres-onafhankelijk l sprongafstand beïnvloedt weer instructielengte (fig. 2.13) u dynamisch adres: meestal register indirect jump l terugkeer van procedure l case bevelen l dynamisch gedeelde bibliotheken l virtuele functies in OO-talen
9
slide 9Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers operaties (vervolg) n 3 belangrijke technieken voor het specifiëren van spronginstructie (fig. 2.14) u met behulp van conditiecode u met behulp van een conditieregister u compare and branch instructie L fig 2.15 toont de frequentie van het gebruik van verschillende soorten testen bij voorwaardelijke sprongen n twee belangrijke methoden voor het saven van registers u caller saving u callee saving u soms gebruikt de compiler een combinatie van de twee
10
slide 10Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers type en grootte van de operanden n twee alternatieven om types te specifiëren u in de opcode van de instructie u als een veld bij de operand (bv symbolics machine), zie museums n floating point: IEEE standard 754 n heel soms nog 4-bit-binary coded decimal n voorlopig is een woord nog typisch 32 bit n in de toekomst zal dat 64 bit worden
11
slide 11Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers codering van instructie set n codering bepaalt u grootte van het gecompileerde programma u implementatie van de CPU n elementen met invloed op grootte van instructie u aantal registers u aantal adresseringsmodes n fig 2.17: drie klassieke keuzen voor encodering n handige lengtes u zeker een veelvoud van bytes u liefst een veelvoud van woorden u vaste lengte: geeft eenvoudigere implementatie maar grotere programma’s
12
slide 12Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers de rol van compilers n vroeger: architectuurbeslissingen moesten het programmeren in assembler gemakkelijk maken n nu: architectuurbeslissingen moeten het werk van de compiler vergemakkelijken n de structuur van een moderne compiler (fig. 2.18) u bestaat uit meerdere passen l vermindert de complexiteit van compilers l geeft soms problemen: sommige hoog-niveau optimisaties moeten gebeuren voordat bepaalde details gekend zijn u bevat taal-onafhankelijke delen die gedeeld kunnen worden door meerdere talen
13
slide 13Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n doelstellingen van compilers u correcte code u snelheid van gecompileerde code u snelle compilatie u ondersteuning voor debugging u code van meerdere talen samen gebruiken de rol van compilers (vervolg)
14
slide 14Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n classificatie van optimisaties (zie fig. 2.19) u hoog-niveau optimisaties: op source code niveau u lokale optimisaties: in stukken code zonder sprongen (basic block) u globale optimisaties: in stukken code over sprongen heen u toekenning van registers: gebruikt een algoritme van grafen kleuren dat goed werkt vanaf 16 registers u machine-afhankelijke optimisaties: maken gebruik van kennis van de architectuur n fig 2.20: vb van effect van optimisaties de rol van compilers (vervolg)
15
slide 15Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n allocatie van variabelen en hun impact (1) u stapel: l gebruikt voor lokale variabelen l deze worden relatief van stapelwijzer geadresseerd l deze zijn meestal enkelvoudig: geschikt voor register behalve indien een pointer er naar kan wijzen l stapel wordt niet gebruikt om uitdrukkingen te evalueren u globale gegevens-ruimte: l vaak complexere gegevensstructuren en bereikbaar via pointers l niet geschikt voor registers de rol van compilers (vervolg)
16
slide 16Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n allocatie van variabelen en hun impact (2) u heap: l vaak complexere gegevensstructuren en bereikbaar via pointers l niet geschikt voor registers de rol van compilers (vervolg)
17
slide 17Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n basisprincipe van compilerconstructie u maak het veelvoorkomend geval snel u maak het zeldzame geval correct n goede architectuur voor een compiler u is regelmatig l weinig uitzonderingen, voorziet alle gevallen l orthogonaal (bv operaties en adresseringsmodes) u biedt primitieven, geen zogenaamde oplossingen (RISC vs CISC) u laat geen moeilijke keuzen tussen alternatieven u wat gekend is bij compilatie moet als constante kunnen opgenomen worden de rol van compilers (vervolg)
18
slide 18Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n fout: er bestaat zoiets als een typisch programma u fig. 2.31: vb van de grootte van gegevens gebruikt in 4 programma’s van SPEC92 n fout: een architectuur met fouten kan niet succesvol zijn u vb: de Intel 80x86 l ondersteunt segmentatie en niet paginatie, heeft een accumulator en niet algemene registers, gebruikt een stapel voor FP-data,... n fout: je kunt een foutloze architectuur ontwerpen u wat een goede architecturale beslissing lijkt vandaag zal binnen een paar jaar als een architecturale fout aanzien worden fouten en valstrikken
19
slide 19Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers fouten en valstrikken (vervolg) n valstrik: CISC aanpak (Complex Instruction Set Computer) u doel : verkleinen van de semantic gap (= afstand tussen semantische waarde van assembler-instr. en hogere programmeertaal-instructies) l grote stijging van kost software in jaren 70 (software crisis) l meer gebruik van hogere programmeertaal u hoe : ontwerp van complexe instructies om hogere programmeertalen te ondersteunen l complexe instructies werden uitgevoerd door microprogrammatie
20
slide 20Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers fouten en valstrikken (vervolg) n CISC aanpak mislukte omdat u moeilijk om instructies te ontwerpen goed voor alle HLL u instructies doen vaak meer dan nodig u instructies slechts gebruikt in beperkte context (semantic clash) u CISC compilers gebruiken uiteindelijk vaak vooral de meer eenvoudige instructies (dus het zogenaamde voordeel van de complexe instructies wordt niet gebruikt) u complexe instructies compliceren de controle eenheid op de CPU, en dit resulteert in tragere simpele instructies
21
slide 21Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers karakteristieken van RISC architecturen 1 klein aantal instructies (nog steeds waar ???) u kleinere opcodes u gemakkelijker te decoderen 2 klein aantal adresseringsmodes u doe complexe adressering in software u dit vergemakkelijkt de instructie set, het decoderen en de controle-eenheid 3 klein aantal instructie-formaten u vaste lengte, veelvoud van woordlengte, vaste lay-out u instructies mogen niet over pagina’s heengaan u tegelijk decoderen en registers ophalen u eenvoudigere controle-eenheid
22
slide 22Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers 4 één machine-instructie per klokcyclus u RISC instructies zijn niet ingewikkelder dan de microinstructies in een CISC-architectuur u vereenvoudigt de pipeline 5 geheugen-adressering enkel via LOAD/STORE instructies u eenvoudigere instructie set karakteristieken van RISC architecturen (vervolg)
23
slide 23Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers 6 CPU heeft een relatief groot aantal registers u meeste operaties zijn register-register u vereenvoudigt de instructie set en de controle-eenheid (vgl: VAX: 25 ADD instructies; RISC I en RISC II: 1 of 2 ADD's) u registers zijn bij RISC het algemeen geval, bij CISC waren ze de uitzondering 7 controle-eenheid volledig in hardware (geen microprogrammatie) 8 gerichte inspanning om HLL te ondersteunen u procedures u lokale variabelen u arrays karakteristieken van RISC architecturen (vervolg)
24
slide 24Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers voordelen van RISC-filosofie n RISC en VLSI realisatie u relatief weinig instructies, weinig adresseringsmodes, weinig instructie formaten Ô eenvoudig decoderings- en uitvoerings-subsysteem in hardw (= controle eenheid is kleiner) l RISC I 6% l RISC II 10% l MC68020 68% l CISC >50% (in het algemeen) Ô meer plaats op de chip vrij voor andere doeleinden (registers, cache, I/O poorten, delen van het hoofdgeheugen) u minder verschillende soorten elementen op de chip maakt de chip gemakkelijker te ontwerpen u attractief om op 1 chip te implementeren
25
slide 25Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n RISC en snelheid u eenvoudigere en kleinere controle-eenheid is sneller u kleinere instructie set, weinig adresseringsmodes en instructie-formaten betekent een snellere decodering u een groot aantal registers betekent minder geheugentoegangen u register-register operaties zijn sneller dan operaties met geheugentoegang u veel registers maken het mogelijk om parameters via registers door te geven u gestroomlijnde instructieafhandeling is heel geschikt voor een implementatie met pipeline (zie H3 en H4) voordelen van RISC-filosofie (vervolg)
26
slide 26Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n RISC en ontwerpkost, betrouwbaarheid u eenvoudige controle-eenheid l algemene ontwerpkosten verlagen l minder kans op ontwerpfouten l gemakkelijk om de fouten te vinden en te verbeteren l kortere tijd om een ontwerp te maken –goedkoper –minder kans dat het product verouderd is als het klaar is u eenvoudiger ontwerp van Virtual Memory Management Unit omdat instructies pagina-grenzen niet overschrijden voordelen van RISC-filosofie (vervolg)
27
slide 27Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n RISC en ondersteuning voor hogere programmeertalen u compilers zijn gemakkelijker te schrijven l omdat er minder instructies zijn om tussen te kiezen l compilers kunnen af zijn als de machine af is u je kunt beter optimiseren in compilers omdat er meer mogelijkheden zijn om code te herorganiseren u groter aantal registers: mogelijk om hun gebruik te optimiseren voordelen van RISC-filosofie (vervolg)
28
slide 28Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers overzicht van RISC architecturen n Appendix C: u Hewlett Packard PA-RISC u IBM en Motorola PowerPC u SGI MIPS u Sun SPARC u DLX: voorbeeld-machine van Patterson en Hennessy n figuur C.1: u overzicht van de belangrijkste kenmerken van de eerste versies van deze architecturen u merk de grote gelijkenis op n figuur C.12 u overzicht van dezelfde kenmerken bij enkele CISC-architecturen
29
slide 29Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n figuur C.14: toegevoegde kenmerken aan de verschillende architecturen n stamboom van de bestaande RISC-architecturen (fig. C.13) u Patterson (auteur van het boek) is de vader van de Berkeley RISC u Hennessy (auteur van het boek) is de vader van de Stanford MIPS overzicht van RISC architecturen (vervolg)
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.