Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Instructie set: principes.

Slides:



Advertisements
Verwante presentaties
PROS2 Les 13 Programmeren en Software Engineering 2.
Advertisements

De zin en onzin van escrow
Doublet deel 1 – de basis.
Evaluatie van MS Exchange 2000 en opzetten van een server voor wereldwijde uitwisseling van projectinformatie Bertels David 3ICT1 Stageplaats: Acros Organics.
Hoe werkt een rekenmachine?
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.
Embedded systemen Embedded software.
Programmeren met Alice
Hardware (1) SGDB Informatica.
Record Linkage: Simulatie Resultaten Adelaide Ariel Biolink NL 28 maart 2014.
Par. 3.1 Computers zijn overal
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie.
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Week 1: overzicht computersysteem-organisatie
Weddeschalen & Weddebijslagen
Ronde (Sport & Spel) Quiz Night !
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
BESTURINGS SYSTEMEN Vincent Naessens.
Auteursomgeving voor Digitale Componenten
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
Klassieke AO Leseenheid1
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
Leiden University. The university to discover. ICLON, Interfacultair Centrum voor Lerarenopleiding, Onderwijsontwikkeling en Nascholing Denkgereedschap.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Inhoud bijeenkomst 1 Doel- en vraagstelling Conceptueel model
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geavanceerde pipelining en parallellisme op het niveau van instructies (ILP:
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
H51 12 resolutie H51 PHOTOSHOP 1 audiovisueel centrum meise.
De processor.
Deze les wordt verzorgd door de Kansrekening en statistiekgroep Faculteit W&I TU/e.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
TUDelft Knowledge Based Systems Group Zuidplantsoen BZ Delft, The Netherlands Caspar Treijtel Multi-agent Stratego.
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Hoe werkt een rekenmachine?
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
MICROCONTROLLERS.
Ontwikkeld door CWB3. Opbouw Presentatie 1.Wat is GeoSport? 2.Ontwerp 1.Gebruikte ontwerpmethodieken 2.Ervaring 3.Implementatie 1.Gebruikte technologieën.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Het werken met portfolio
Hoofdstuk 5 Vijfkaart hoog, eerste verkenning 1e9 NdF-h1 NdF-h5 1 1.
De financiële functie: Integrale bedrijfsanalyse©
Even voorstellen : Groep 3b
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Cegeka & TenForce Ronde tafel 17/06/2014 Doelstellingenmanagement VO.
Instructie Programmeren Task 7
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Programmeren.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Programmeren.
3 Hardware 3.1 De processor en intern geheugen
Transcript van de presentatie:

slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Instructie set: principes

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

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

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

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)

slide 6Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers geheugen adressering (vervolg) n adresseringsmodes (vervolg) u fig 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)

slide 7Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers operaties n verschillende categorieën: zie fig 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

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

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

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

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

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

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)

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)

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)

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)

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)

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

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

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

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

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)

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)

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 MC % 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

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)

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)

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)

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

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)