door Jef Laurijssen & Bruno De Maesschalck

Maat: px
Weergave met pagina beginnen:

Download "door Jef Laurijssen & Bruno De Maesschalck"

Transcriptie

1 Faculteit Toegepaste Wetenschappen Vakgroep Electronica en Informatiesystemen Voorzitter: Prof. J. Van Campenhout Aanpassen processorkern voor superscalaire werking, ter voorbereiding op MORF door Jef Laurijssen & Bruno De Maesschalck Promotor: Prof. dr. ir. Dirk Stroobandt Scriptiebegeleiders: Dr. ir. Mark Christiaens Ir. Benjamin Schrauwen Scriptie ingediend tot het behalen van de academische graad van burgerlijk ingenieur computerwetenschappen en licenciaat informatica Academiejaar

2 Aanpassen processorkern voor superscalaire werking, ter voorbereiding op MORF door Jef Laurijssen & Bruno De Maesschalck Scriptie ingediend tot het behalen van de academische graad van burgerlijk ingenieur computerwetenschappen en licenciaat informatica Academiejaar Universiteit Gent Faculteit Toegepaste Wetenschappen Vakgroep Electronica en Informatiesystemen Voorzitter: Prof. J. Van Campenhout Promotor: Prof. dr. ir. Dirk Stroobandt Scriptiebegeleiders: Dr. ir. Mark Christiaens Ir. Benjamin Schrauwen ii Samenvatting De laatste jaren is er meer en meer aandacht voor programmeerbare logica. Door recente verbeteringen en uitbreidingen in de FPGA technologie zijn er mogelijkheden onstaan die onbestaande zijn in andere technologieën. Een tot de verbeelding sprekende technologie, partiële dynamsiche herconfiguratie ziet sinds enkele jaren het levenslicht. Deze technologie laat toe om een bepaald deel van een chip te herconfigureren terwijl de rest van de chip zijn functie bewaart en blijft werken. Deze thesis gaat aanvankelijk over het onderzoek naar het ontwikkelen van een processor architectuur, die gebruik makend van de nieuwe mogelijkheden van partiële dynamishe herconfiguratie, een optimalere configuratie kan aanbieden. De technologie zou ons in staat kunnen stellen om theoretisch op ieder moment de meest optimale hardware aan te bieden, zonder dat alle mogelijke configuraties ten allen tijden vast aanwezig moeten zijn in de chip. In een eerste fase wordt een overzicht gegeven van de technologie en zijn mogelijkheden, waarna een uiteenzetting wordt gegeven over welke mogelijkheden dit creëert voor een implementatie van een processor. In een tweede fase bespreken we een gekozen benadering en worden een aantal softcore processoren vergeleken om als mogelijke basis te dienen voor onderzoek. In een derde fase wordt een overzicht gegeven van gedaan onderzoek. trefwoorden:superscalair,vhdl,fpga,morf,leon3

3 Inhoudsopgave Overzicht Inhoudsopgave Lijst van figuren Lijst van tabellen Lijst van afkortingen iii v vi vii viii Voorwoord 1 1 Inleiding Situering Doel van de thesis Structuur van het werk FPGA-technologie en VHDL FPGA VHDL Designflow Partiële en dynamische herconfiguratie van FPGA s MORF MORF: herconfigureerbare processor Mogelijke architectuur en principiële werking Snelheid herconfiguratie Softcores Wat Waarvoor

4 INHOUDSOPGAVE iv 4.3 Gewenste voorwaarden Gevonden processoren STM DLX MicroBlaze Leon Afweging Superscalariteit Moderne softcores DLX vs. Leon superscalariteit en LeonS Beschrijving Parallellisme LeonS Afhankelijkheden Data-afhankelijkheden Structurele afhankelijkheden Controle-afhankelijkheden Uitzonderingen Wat zijn uitzonderingen? SPARC en uitzonderingen Precieze uitzonderingen Problemen bij superscalair ontwerp Mogelijkheden voor implementatie Geheugenstructuur Lokaliteit Registerbestand Caches Opbouw pijplijn Besluit 51 A Schema s en structuur 53 A.1 Leon A.1.1 Schema A.1.2 Registers van de pijplijn A.1.3 Pijplijn procedures en functies A.1.4 Connectie A.2 LeonS A.2.1 Pijplijn structuur

5 INHOUDSOPGAVE v A.2.2 Registers van de pijplijn A.2.3 Connectie van de pijplijn A.2.4 Pijplijn procedures en functies B Gaisler, grlib en Leon3 84 B.1 Gaisler B.2 Grlib B.3 Leon B.4 Bestandsstructuur B.4.1 Verduidelijking B.4.2 Overzicht C Inhoud CD 91 C.1 Leon C.2 STM C.3 LeonS Index 96 Bibliografie 96

6 Lijst van figuren 2.1 Algemene architectuur FPGA Designflow ontwerp met HDL en FPGA Blokschema MORF processorarchitectuur Superscalaire pijplijn De pijplijn van Leon Werking van de pijplijn van Leon Twee parallelle pijplijnen Een superscalaire pijplijn met vier functionele eenheden RAW afhankelijkheden en Forwarding Niet door forwarding oplosbare RAW-afhankelijkheden RAW afhankelijkheid, opgelost d.m.v. een pijplijnbel WAW-afhankelijkheid door verschil in uitvoertijd instructies WAW-afhankelijkheid in multiple issue superscalaire pijplijn Gebruik van schuifregisters voor controle afhankelijkheden Controle-afhankelijkheden in de pijplijn Terugdringen kost branch door stall en vroege controle conditiecodes Registervensters in de SPARC architectuur Gebruik van een reorder buffer Gebruik van een history file poorts registerbestand poorts registerbestand Blokschema pijplijn LeonS A.1 Leon3 pijplijn A.2 Leon3 top down to the iu B.1 Leon3 blokschema C.1 cd map structuur

7 Lijst van tabellen 4.1 softcores

8 Lijst van afkortingen FPGA HDL SOC VHDL VHSIC ASIC PCB RISC CISC RTL GNU GPL IP PLD CPLD SCVE CLB FIFO DCM SRAM Field Programmable Gate Array Hardware Description Language System On a Chip Very high speed integrated circuit Hardware Description Language Very High Speed Integrated Circuit Application Specific Integrated Circuit Printed Circuit Board Reduced Instruction Set Computer Complex Instruction Set Computer Register Transfer Level GNU s Not Unix General Public License Intellectual Property Programable Logic Device Complex Programable Logic Device Statische Centrale VerwerkingsEenheid Configurable Logic Block First In First Out Digital Clock Manager Static Random Access Memory

9 Voorwoord Deze thesis voldoet qua vorm zo goed mogelijk aan de richtlijnen zoals opgegeven door de faculteit ingenieurs wetenschappen. Op plaatsen waar afgeweken is van de regels, is dit om de duidelijkheid te verbeteren of omdat de regels ontoereikend waren voor de inhoud. We willen van de gelegenheid gebruik maken om wat meer uitleg te geven over het gebruik van referenties in deze thesis. Elke referentie in de tekst bevat twee delen: de auteur(s) en het jaar van publicatie. Soms refereren we naar tekst of figuren van websites. In dat geval is het jaar vervangen door de sleutel WWW, omdat veel websites geen jaar van publicatie vermelden. Dankwoord Graag zouden we de promotor bedanken ons de mogelijkheid te bieden aan dit boeiend onderwerp te werken, de begeleiders en assistenten voor hun raad, onze ouders voor hun steun gedurende onze gehele studie, de ontelbare liters cola om ons op de been te houden en de vele uren muziek om de sleur te verbreken. Veel dank gaat ook uit naar de luisterende oren en stilzwijgende monden van Liesbeth Van Gorp en Jenni Lampinen. Toelating tot bruikleen De auteurs geven de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van de scriptie te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze scriptie. Jef Laurijssen & Bruno De Maesschalck, 31 mei 2005

10 Hoofdstuk 1 Inleiding 1.1 Situering De laatste jaren is er meer en meer aandacht voor programmeerbare logica. Door recente verbeteringen en uitbreidingen in de FPGA technologie zijn er mogelijkheden onstaan die onbestaande zijn in andere technologieën. Een tot de verbeelding sprekende technologie, partiële dynamsiche herconfiguratie ziet sinds enkele jaren het levenslicht. Deze technologie laat toe om een bepaald deel van een chip te herconfigureren terwijl de rest van de chip zijn functie bewaart en blijft werken. Binnen de vakgroep ELIS (electronica en informatiesystemen) is de onderzoeksgroep PARIS (parallelle informatiesystemen) actief in het onderzoek en ontwikkeling van parallelle systemen onder andere gebaseerd op FPGA technologie. Een aantal thesisonderwerpen zijn specifiek gericht op de mogelijkheid tot partiële dynamische herconfiguratie, dit om ermee vertrouwd te geraken en de nieuwe mogelijkheden te onderzoeken. 1.2 Doel van de thesis Moderne processoren zijn ontwikkeld voor het gemiddelde algoritme. Hiermee bedoelen we dat een processor een bepaalde instructieset aanbiedt en een deel hardware die deze instructies kan uitvoeren. Hardware en software zijn in weze verwisselbaar, dingen die in software worden afgehandeld kunnen verschoven worden naar hardware en omgekeerd, zolang er maar een basis hardware aanwezig is. Een versnelling kan men bekomen door zaken in parallel uit te voeren. In een moderne superscalaire processor kunnen instructies in parallel uitgevoerd worden, maar is het aantal instructies dat in parallel kan worden uitgevoerd onder meer beperkt door het aantal aanwezige functionele eenheden. Om er voor te zorgen dat een processor potentieel twee keer zoveel instructies tegelijkertijd kan uitvoeren

11 1.3 Structuur van het werk 3 moeten we van elke functionele eenheid twee keer zoveel instanties aanbieden. Het is duidelijk dat de grootte van zo n chip enorm toeneemt wat niet kan voor tal van redenen. Het is juist hier waar partieel dynamisch herconfigureren nieuwe mogelijkheden creëert. Misschien is het mogelijk om zo n processor te ontwikkelen op een FPGA waarvan het statische gedeelte vast in de FPGA aanwezig blijft en nooit verandert, terwijl een ander gedeelte in de FPGA een aantal functionele eenheden kan herbergen. Dit gedeelte zou dynamisch herconfigureerbaar zijn, zodanig dat de verzameling van aangeboden functionele eenheden zou kunnen veranderen. De nieuwe processor kan dus virtueel meer functionele eenheden aanbieden dan zijn klassieke tegenhanger. Echter zal zijn grootte niet in dezelfde mate toenemen als bij een processor waar men op een statische manier meer functionele eenheden aanbiedt. Deze dynamische processor heeft als naam MORF gekregen, wat afgeleid is van het woord metamorfose. Stel dat een algoritme op een gegeven moment vier vermenigvuldigingen nodig heeft die allen theoretisch in parallel kunnen worden uitgevoerd. Een statische processor waar slechts één vermenigvuldiger aanwezig is zal dus vier maal de tijd nodig hebben van de uitvoering van een enkele vermenigvuldiging. Een processor met alle functionele eenheden verdubbeld, heeft slechts de helft van die tijd nodig, maar heeft wel twee maal zoveel plaats nodig op de chip voor de eenheden. MORF zou bijvoorbeeld alle functionele eenheden van de statische processor kunnen hebben en drie extra plaatsen voor extra functionele eenheden. Het is dus mogelijk voor MORF om zichzelf aan te passen en op een ogenblik maar liefst vier vermenigvuldigers aan te bieden. Hierdoor kan hetzelfde bereikt worden in een vierde van de tijd dan door een statische processor en de grootte van de chip is slechts toegenomen met plaats voor drie functionele eenheden. Het eigenlijke doel van deze thesis was initieel het onderzoeken en ontwerpen van MORF, maar is gedurende het werk geëvolueerd naar het voorbereiden van een processor die verder onderzoek naar MORF kan vergemakkelijken. 1.3 Structuur van het werk Na deze inleiding geeft hoofdstuk 2 een overzicht van de technologie die aan de grondslag ligt van dit werk, met zijn verschillende mogelijkheden. Er wordt ook uitleg gegeven over VHDL en de manier waarop FPGA gebaseerde systemen kunnen worden ontworpen, aan de hand van een design-flow. Vervolgens geeft hoofdstuk 3 een beschrijving van MORF, waar men de nieuwe mogelijkheden van de technologie uitbuit. Hoofdstuk 4 duwt ons in de richting van een eigenlijke MORF implementatie, met een onderzoek naar softcore processors die ideaal zijn om MORF op te imple-

12 1.3 Structuur van het werk 4 menteren en een geargumenteerde keuze van zo n processor voor verder onderzoek. In het vijfde en laatste hoofdstuk komen we tot de eigenlijke voorbereiding van een softcore processor tot MORF. Verschillende facetten worden toegelicht en bereikte resultaten worden uit de doeken gedaan. Een besluit geeft een kritische kijk op ons werk. Op het einde van dit werk zijn enkele bijlagen gevoegd. Bijlage A geeft een structureel overzicht van de Leon3 processor en in het bijzonder zijn pijplijn. De inhoud is tot stand gekomen tijdens het eigen werk aan de pijplijn en vormt een mogelijke bron van informatie voor verder onderzoek voor gelijk wie de hand wil leggen op de pijplijn van Leon3. In bijlage B plaatsen we Leon3 in zijn context: de bibliotheek grlib van Gaisler Research. Tenslotte wordt in bijlage C uitleg gegeven over de inhoud van de bijgevoegde CD-ROM.

13 Hoofdstuk 2 FPGA-technologie en VHDL 2.1 FPGA Figuur 2.1: Algemene architectuur FPGA Een FPGA, oftewel Field Programmable Gate Array, is een chip die bestaat uit een groot aantal kleine, programmeerbare logische blokken die georganiseerd zijn in een grote matrix. Deze blokken bevatten minimaal een geheugenplaats van één enkele bit, in de vorm van een flipflop en enkele logische poorten of een lookup table die de inhoud van dat geheugentje bepalen. Al deze kleine blokjes zijn verbonden

14 2.2 VHDL 6 door een enorm netwerk van programmeerbare interconnecties, die van het geheel een enorme programmeerbare component maken. Het verschil met ASIC s is dat de functionaliteit niet vastgelegd is bij de productie, maar achteraf door de gebruiker kan gespecifieerd en geprogrogrammeerd worden. De FPGA verschilt van microprocessoren doordat ze volledig parallel kunnen werken, waardoor ze ook inzetbaar zijn in andere toepassingsgebieden dan louter software. Door het feit dat op FPGA s grote digitale ontwerpen kunnen huizen, samen met hun programmeerbare karakter, worden deze chips veelal gebruikt voor het implementeren van testsystemen. Wanneer het systeem echter klaar is voor productie, kan het ontwerp geïmplementeerd worden op ASIC s die betere prestaties kunnen leveren en minder stroom verbruiken. Door hun snellere time to market en hun lagere productiekosten (in beperkte oplagen) worden FPGA s echter ook wel eens gebruikt bij de productie. 2.2 VHDL FPGA s maken het mogelijk erg grote en complexe systemen te realiseren. Omdat het manueel ontwerpen van digitale hardware moeilijk en tijdrovend is, heeft men ernaar gestreefd deze vaardigheden te abstraheren en automatiseren. In het midden van de jaren tachtig werd een programmeertaal ontwikkeld, gesponsord door het Amerikaanse leger, die de ontwerper in staat stelt een digitaal elektronisch circuit de beschrijven. Deze taal werd VHDL gedoopt, wat staat voor Very high speed integrated circuit Hardware Description Language. De specifieke eigenschappen vinden hun oorsprong in zowel de wereld van de software, als de wereld van de hardware. Modulariteit Een ontwerp kan opgedeeld worden in verschillende eenheden. Elk van deze eenheden heeft een welomschreven interface (definitie van de entiteit) en gedrag (beschrijving van de architectuur). Hierdoor zijn de voorwaarden voor een modulaire ontwerpstrategie impliciet voldaan en kan hergebruik van de code georganiseerd worden. Hiërarchische decompositie De verschillende eenheden van het ontwerp kunnen op een hiërarchische manier ingedeeld worden, teneinde verschillende abstractieniveaus te creëren. Op die manier wordt de ontwerper een tweede hulpmiddel aangereikt om de complexiteit van zijn ontwerp te beheersen. Top down en bottom up implementaties zijn mogelijk, naargelang de smaak en de voorkeur van de auteur. Parallellisme en sequentialiteit Omdat VHDL hardware definieert, dient het op een ondubbelzinnige wijze zowel parallellisme als sequentialiteit te kunnen beschrijven. Alle ontwerpstrategieën uit het digitale ontwerpsspectrum zijn zo

15 2.3 Designflow 7 mogelijk, van volledig combinatorische tot gemicroprogrammeerde schakelingen. Simulatie Verificatie van de werking van de ontworpen schakeling is mogelijk door middel van software. De schakeling hoeft niet in hardware geïmplementeerd te worden om de kwaliteit van de geschreven code in de beginfase te evalueren. Verschillende software pakketten zijn voorhanden die toelaten de eerste controles uit te voeren op een overzichtelijke, vaak grafische manier. Dit kan de ontwerpcyclus opmerkelijk inkorten. Gedrags- en structuurbeschrijvingen De werking van een element kan men initieel beschrijven met behulp van een algoritme. Dit noemt men een gedragsbeschrijving. Zo kan men de goede werking van elementen op een hoger hierarchisch niveau controleren, zonder de structuur van alle elementen die er deel van uit maken reeds gespecifieerd te hebben. Om het geheel later echter in hardware te kunnen implementeren, dient uiteindelijk een volledige structuurbeschrijving geschreven te zijn. Tijdsgedrag Niet alleen de logische werking, maar ook het tijdsgedrag van de schakeling kan gesimuleerd worden. Hoewel het beschrijvende karakter van VHDL duidelijk interessante eigenschappen vertoont, werd het pas echt populair wanneer de eerste commerciële softwaretoepassingen voor synthese op de markt kwamen. Met deze applicaties kan men daadwerkelijk hardware creëren vanuit de VHDL beschrijvingen, gaande van eenvoudige combinatorische schakelingen tot ganse microprocessorsystemen. 2.3 Designflow Om een goed inzicht te verkrijgen in de redenen die schuilgaan achter de populariteit en de opmars van het gebruik van de combinatie FPGA en VHDL, is het belangrijk de methodologie van een dergelijk ontwerp te schetsen. 1. Functionele decompositie: Doordat VHDL de programmeur de mogelijkheid verschaft het ontwerp op te delen in verschillende functionele eenheden, is het van belang vooraf reeds de architectuur in grote lijnen vast te leggen op het niveau van het blokdiagram. Zodoende kan men deelproblemen isoleren, ontwerpen en verificeren, alvorens over te gaan tot het testen van het systeem als geheel.

16 2.3 Designflow 8 Figuur 2.2: Designflow ontwerp met HDL en FPGA. 2. Coderen of samenstellen: Voor elke module definieert men de interface en het gedrag doormiddel van een taal als VHDL. Het is echter ook mogelijk het ontwerp te maken door middel van een CAD programma. Hiermee selecteert en connecteert men in een schematische weergave de bouwblokken waar de hardware uit zal bestaan. Deze bouwblokken worden ter beschikking gesteld in de vorm van bibliotheken. 3. Compilatie: Eenmaal er code geschreven is, moet gecontroleerd worden of deze beantwoordt aan de syntaxregels die horen bij de gebruikte taal. Er wordt ook gecontroleerd of de gebruikte modules op een correcte manier verbonden zijn door middel van hun interfaces. Informatie wordt verzameld die in de volgende fase gebruikt wordt door de simulator. 4. Simulatie en logische verificatie: In deze fase kan men data aanleggen aan de inputs van het systeem en controleren of de uitgangen die je verwacht ook daadwerkelijk gegenereerd worden. Dit alles gebeurt zonder de hardware te maken. Dat is dan ook wat van de simulatie zulk een belangrijk onderdeel van de designflow maakt. De simulatiesoftware bootst de werking van de hardware na, waardoor men veel sneller de geschreven beschrijving kan controleren op fouten. Vaak schrijft men een gedragsbeschrijving in VHDL die de gewenste inputs automatisch aanlegt en de outputs vergelijkt met de verwachtte waarden. Dit noemt men een testbench. Er dient opgemerkt te worden dat de keuze van de inputsignalen waarmee men simuleert essentieel is. Men moet zich er van vergewissen dat de aangeboden signalen de werkelijkheid, waarmee de hardware geconfronteerd zal worden, zo goed mogelijk nabootsen. In het ideale geval zou men alle combinaties van inputs moeten verifiëren. Erger nog, bij een sequentieel ontwerp moet men ook alle paden doorheen de toestandsautomaat doorlopen om de mogelijke fouten te kunnen identificeren. Zulks is in complexe systemen vaak niet

17 2.3 Designflow 9 mogelijk. Denk bijvoorbeeld maar aan de implementatie van een processorarchitectuur met behulp van een HDL. Men kan aannemen dat het onmogelijk is alle mogelijke combinaties en sequenties van instructies aan te leggen om het systeem te testen. Men beperkt zich bij de keuze van de inputs dan ook tot een weloverwogen deelverzameling van de toestands- en inputruimte. 5. Synthese: Wanneer de simulatie een bevredigend resultaat oplevert, kan de code omgezet worden naar een voorstellingsvorm die specifiek is aan de gebruikte technologie (ASIC/FPGA, PLD/CPLD,...). De VHDL beschrijving wordt vertaald naar primitieven of componenten die in de hardware geladen kunnen worden. Dit noemt men de synthese. Het resultaat kan bijvoorbeeld een verzameling logische vergelijkingen of een verzameling logische poorten met een bijhorende netlist zijn die de interconnecties beschrijft. 6. Passen, plaatsen en routeren: De beschrijving, bekomen uit de synthese, wordt in de te gebruiken chip gepast door de vergelijkingen of componenten toe te wijzen aan de beschikbare poorten en interconnectiepaden. Dit wordt ook wel eens plaatsing en routering genoemd. De ontwerper kan in deze fase bepaalde beperkingen opleggen, zoals de pin van de chip waarop een bepaalde uitgang geplaatst moet worden, of waar bepaalde componenten zich op de chip moeten bevinden. Het resultaat van deze fase is wat men de bitstream noemt, een binair bestand dat alle informatie bevat die nodig is om de FPGA te configureren. 7. Timing verificatie: Pas in deze fase zijn de exacte tijdseigenschappen van de schakeling gekend. Deze parameters gebruikt men om opnieuw de testen uit te voeren. Nu kunnen we het circuit testen zoals het uiteindelijk zou worden gebouwd. Vaak komen hier subtiliteiten aan het licht die bij de puur functionele simulatie niet opgemerkt konden worden. 8. Programmatie In deze laatste fase komt men voor het eerst in contact met de hardware. Voorgaande stappen gebeurden telkens in een software omgeving, wat meteen ook de kracht van deze procedure illustreert. De bitstream wordt gebruikt om de hardware daadwerkelijk te programmeren. Via een interface met de FPGA wordt de bitstream in de matrix, waaruit de harware bestaat, geladen. Het vereiste interconnectienetwerk wordt ingesteld en de cellen worden geconfigureerd om de nodige logica te bevatten. De FPGA is nu operationeel.

18 2.4 Partiële en dynamische herconfiguratie van FPGA s Partiële en dynamische herconfiguratie van FPGA s Zoals uit het verloop van dit werk zal blijken, is het niet de bedoeling hier een volledig overzicht te bieden van de bestaande technologieën, noch om de complete theoretische achtergrond te schetsen van het parieel en dynamisch herconfigureren van FPGAś. Wel is het van belang dat de lezer een notie heeft van voorgaande begrippen. Voor meer informatie wordt verwezen naar de literatuur. Partieel versus totaal Het verschil tussen een partiële en een dynamische herconfiguratie manifesteert zich in het aandeel van de totale hoeveelheid hardware in de FPGA die wordt gewijzigd. Bij een totale herconfiguratie zal de aanwezige configuratie volledig gewist worden, alvorens de FPGA in zijn geheel opnieuw in te stellen. Een partiële herconfiguratie daarentegen, zal enkel een deel van de configuratie aanwezig in de FPGA overschrijven. De snelheid van de configuratie is evenredig met de grootte van de gebruikte bitstream. Dit wil zeggen dat als de grootte van de bitstream afneemt, de snelheid van het configureren stijgt. Vanzelfsprekend vraagt een partiële herconfiguratie dan ook minder tijd dan een totale. Dynamisch versus statisch In tegenstelling tot een statische herconfiguratie kan men een dynamische herconfiguratie doorvoeren, terwijl de FPGA operationeel is. Een partiële, dynamische herconfiguratie zal dus een deel van het apparaat wijzigen, terwijl de andere delen ongestoord verder werken. Deze eigenschap maakt velerlei interessante toepassingen mogelijk. Men kan de configuratie van de FPGA en dus ook de aangeboden functionaliteit aanpassen aan de noden van de omgeving.

19 Hoofdstuk 3 MORF 3.1 MORF: herconfigureerbare processor Een processor voert software uit in de vorm van instructies uit een welbepaalde instructieset. Om deze instructies uit te kunnen voeren, dient de processor zogenaamde functionele eenheden te bevatten. Hieronder verstaan we een ALU, vermenigvuldiger, deler, load/store eenheid, eventueel een floating point eenheid en/of coprocessor, enzovoort. De precieze samenstelling van de verzameling functionele eenheden is afhankelijk van de architectuur van de processor en is dus een keuze die gemaakt is bij het ontwerp. Beoogde kosten, grootte, vermogenverbruik, instructieset, time to market en snelheid zijn enkele van de factoren die de ontwerper beïnvloeden bij het maken van deze keuze. Zo zou men, met het oog op het realiseren van een hoge snelheid, graag meerdere load/store eenheden, ALU s en een floating point eenheid plaatsen, maar dit gaat ten koste van verbruik, grootte en dus ook de kosten. Vandaar dat het eisenpakket dat de ontwerper vooropstelt in sterke mate bepaalt hoe de processorarchitectuur eruit zal zien. Echter is de ontwerper in een standaard processorarchitectuur niet enkel beperkt door voorgaande eisen. Een processor moet in staat zijn alle mogelijke sequenties van instructies uit te voeren. Dit impliceert dat de ontwerper zijn processor zo moet ontwerpen, dat deze voorgaande eisenpakket indachtig optimaal presteert voor het gemiddelde algoritme. Het is moeilijk te bepalen hoe dit gemiddelde algoritme er uit ziet. Bovendien kunnen ook binnen eenzelfde programma sterke variaties optreden inzake het type instructies dat uitgevoerd moet worden. We kunnen samenvattend stellen dat, gedurende zijn levensduur, een processor geconfronteerd wordt met een groot scala aan algoritmen en dat de ontwerper moet proberen hiervoor reeds op voorhand een passende architectuur te vinden. De MORF processorarchitectuur gooit het echter over een andere boeg. Eerder

20 3.2 Mogelijke architectuur en principiële werking 12 dan op voorhand reeds alle beslissingen te nemen, tracht MORF de optimale set van functionele eenheden te zoeken wanneer deze in bedrijf is. Gebruik makend van de mogelijkheid van een FPGA om zichzelf partieel en dynamisch te herconfiguren, kan op elk moment de geprefereerde configuratie actief zijn. Overbodige hardware kan verwijderd worden, en plaats maken voor meer geschikte functionele eenheden. Op die manier worden de bronnen die voorhanden zijn in de FPGA beter benut en kan een hogere graad van parallellisme bereikt worden. De processor zal de inkomende instructiestroom analyseren en bepalen of de aanwezige functionele eenheden toereikend zijn. Aan de hand van deze analyse kan al dan niet de beslissing genomen worden om een andere set in de FPGA te plaatsen. Hoe een dergelijke architectuur er in de praktijk zou kunnen uitzien, wordt in de volgende sectie besproken. 3.2 Mogelijke architectuur en principiële werking Voor een groot deel wordt gebruik gemaakt van een standaard processorarchitectuur. Echter met een aantal wijzigingen. Zo worden de functionele eenheden bijvoorbeeld in een herconfigureerbaar deel geplaatst. De layouts van deze functionele eenheden staan beschreven in bitstreams, die ergens moeten worden opgeslagen. Een controller zorgt voor de besturing van de herconfiguratie. Deze gedachtengang leidt op een natuurlijke manier tot het blokschema uit figuur 3.1. Figuur 3.1: Blokschema MORF processorarchitectuur.

21 3.2 Mogelijke architectuur en principiële werking 13 SCVE De Statische Centrale VerwerkingsEenheid is een aangepaste softcore processor. Enkel de vaste delen zijn erin behouden, de functionele eenheden zijn eruit verwijderd. Herconfigureerbaar deel Daar waar de SCVE de toestand van de processor bijhoudt, wordt het eigenlijke rekenwerk uitgevoerd door de functionele eenheden in het herconfigureerbaar deel. Deze functionele eenheiden worden omringd door een interconnectie- en communicatienetwerk om op een uniforme wijze met de SCVE te kunnen communiceren. Herconfiguratie controller Om op de gepaste tijden de samenstelling van de verzameling functionele eenheden in het herconfigureerbaar deel te kunnen wijzigen, wordt een besturingseenheid in het leven geroepen. Deze analyseert de instructiestroom, initieert de herconfiguratie en houdt de nodige administratie bij. Geheugen Hoe een bepaald stuk van het herconfigureerbaar deel moet geprogrammeerd worden om een functionele eenheid te bevatten, staat beschreven in een bitstream. We moeten dan ook steeds voor elk type functionele eenheid een bijhorende bitstream voorhanden hebben. Deze worden opgeslagen in een geheugen. In figuur 3.2 worden de statische en herconfigureerbare delen van de architectuur getoond in een zevendelige pijplijn. De fetch, decode, register access, memory, exception en writeback fase van de pijplijn behoren tot het statische gedeelte, aangezien ze gezamelijk worden gebruikt door de instructies. Ze behoren dus tot de SCVE. De Functionele eenheden in de superscalaire execute fase echter, zijn specifiek aan een instructie en zitten in het herconfigureerbare deel. De SCVE haalt instructies op uit de cache en biedt deze aan de decode fase van de pijplijn aan. Deze bepaalt uit de opcode van de instructie welke functionele eenheid er nodig zal zijn voor deze instructie. De operandi worden opgehaald alvorens de execute fase te betreden. Wanneer ze hun berekeningen voltooid hebben, rapporteren de functionele eenheden het resultaat aan de writeback fase en worden de resultaten tenslotte weggeschreven. We laten de herconfiguratie controller beslissingen te laten nemen aan de hand van de reeds uitgevoerde instructies. Het principe van lokaliteit leert ons dat deze oplossing zinnig kan zijn. Het grootste gedeelte van de tijd spendeert een processor namelijk aan het uitvoeren van lussen. De literatuur vermeldt een vuistregel die zegt dat 90% van de tijd 10% van het totale aantal instructies van een programma worden uitgevoerd. Een implicatie hiervan is dat we met een redelijke nauwkeurigheid kunnen voorspellen welke instructies zullen uitgevoerd worden in de nabije toekomst aan de hand van de instructies uit het recente verleden.

22 3.2 Mogelijke architectuur en principiële werking 14 Figuur 3.2: Superscalaire pijplijn. De controller voorspelt aan de hand van een greep uit de reeds uitgevoerde instructies, welke functionele eenheden gewenst zijn. Er zijn nu twee mogelijke scenario s, afhankelijk van de functionele eenheden die reeds aanwezig zijn: 1. Toereikend: de controller besluit dat de huidige configuratie dicht genoeg aanleunt bij de gewenste configuratie en herconfigureert niet. De controller houdt een tabel bij waarin de locaties van de aanwezige eenheden in het herconfigureerbare deel staan. De decoder kan dan in deze tabel opzoeken waar de passende eenheid zich bevind. Op die manier kan elke instructie naar de correcte plaats gestuurd worden. 2. Ontoereikend: de controller beslist dat een andere set van functionele eenheden meer geschikt zou zijn om de uit te voeren instructies te verwerken. Op dit moment zijn er verschillende acties mogelijk, afhankelijk van de gekozen vervangstrategie en de tijd die een herconfiguratie vraagt. Een mogelijkheid zou kunnen zijn om de werking van de pijplijn te onderbreken totdat de herconfiguratie voltooid is. Indien de tijd nodig voor een herconfiguratie voorgaande strategie niet toelaat, kan men bijvoorbeeld ook slechts een deel van de functionele eenheden in het herconfigureerbare deel vervangen. Op die manier zou de pijplijn actief kunnen blijven, terwijl de minst gebruikte functionele eenheden vervangen worden door meer geschikte alternatieven.

23 3.3 Snelheid herconfiguratie Snelheid herconfiguratie Het succes van de MORF architectuur hangt in belangrijke mate af van de snelheid waarmee FPGA s zich kunnen herconfigureren. Indien we de tijd die nodig is voor het herconfigureren delen door de periode van de processorklok, krijgen we een ruwe schatting van het aantal instructies dat uitgevoerd zou kunnen worden in die tijdspanne in een standaard architectuur. Indien dit aantal groter is dan het aantal instructies die in een MORF architectuur meer in parallel uitgevoerd kunnen worden, is MORF geen succes. In het verleden werden reeds FPGA s op de markt gebracht die een herconfiguratietijd hebben van ongeveer 30 ns. De grootte van de ontwerpen die men op deze chips kon implementeren was echter beperkt door het geringe aantal cellen. De huidige FPGA s kunnen meer logica bevatten, maar herconfigureren ook trager. Op het internet wordt melding gemaakt van herconfiguraties in grootteorden van milliseconden. Men is echter wel onderzoek aan het doen naar chips die veel sneller herconfigureren. Voor meer informatie wordt verwezen naar [11]

24 Hoofdstuk 4 Softcores 4.1 Wat Wanneer hardware componenten worden beschreven in een HDL, hebben ze een software karakter. Als deze componenten in hun HDL hoedanigheid worden aangeboden spreekt men van softcores. Het gaat dus over een hardware kern beschreven op een softwarematige manier. De softcore kan op tal van verschillende manieren gebruikt worden. Eerst en vooral is het duidelijk dat door simpelweg de code aan te passen een andere functie of extra functies kunnen worden bekomen. De mogelijkheden op dat vlak zijn enkel begrensd door verbeelding. Het softwarematige karakter laat ook toe dat we op tal van verschillende niveaus kunnen simuleren, wat verder gebruik, aanpassen en debuggen gemakkelijker maakt. Als de gewenste functie bereikt is kan men kiezen om het software karakter te laten vallen en de logica tot een ASIC te laten verwerken. Het is duidelijk dat men hierna niet meer kan spreken over een softcore. Een andere manier om de logica naar hardware te brengen is om de softcore te plaatsen in een FPGA. De verschillende facetten en voordelen van een FPGA zijn reeds uitgebreid beschreven, echter is er nog een belangrijk voordeel. Het is door de FPGA technologie mogelijk om verschillende softcores te verzamelen in een chip en te interconnecteren, waar dit anders hard geconfigureerd in een ASIC zou gebeuren of door middel van het plaatsen van de verschillende componenten op een PCB. Zowel bij ASIC als bij PCB hangt er een prijskaartje aan het vastleggen van de interconnecties en een bepaalde ontwikkelingstijd. Een verkeerde keuze hierbij kan leiden tot heel wat extra kosten en opnieuw een lange ontwikkellingtijd. Vermits tijd ook geld is komt dit neer op zuiver verlies. Deze specifieke problemen heeft men bij FPGA technologie en sofcores niet, omdat het herconnecteren louter een snelle sofware aanpassing vraagt en de wachttijd beperkt blijft tot het herconfigureren van de FPGA.

25 4.2 Waarvoor Waarvoor Om MORF te kunnen implementeren hebben we een basis nodig. Deze basis bestaat uit een softcore. Door deze softcore code aan te passen werken we verder op eerder gedaan onderzoek, zonder onnodig zaken opnieuw uit te voeren of te bedenken. In wat volgt gaan we op zoek naar een geschikte softcore processor als basis voor MORF. Hiervoor hebben we het internet gebruikt als zoekruimte. 4.3 Gewenste voorwaarden Er is een ruim gamma aan softcores te vinden op het internet, van heel kleine microcontrollers tot volwassen microprosessors in alle geuren en kleuren. Om een gerichte keuze te maken, hebben we een aantal voorwaarden voor de softcore opgesteld die ons gewenst leken om deze softcore als basis voor MORF te kunnen gebruiken. Superscalair MORF wil superscalairiteit naar een ander niveau brengen. Een softcore processor die al superscalair is, leent zichzelf uiteraart beter om als basis voor MORF te dienen. Voldoende goede prestaties MORF wil optimaler zijn met als netto resultaat een snellere verwerking van instructies. Men heeft er dus alle baat bij om zoveel mogelijk gebruik te maken van goed presterende moderne processoren en daar op verder te werken. Bestaande compiler Bij het bestaan van een compiler voor de processor kan men het programma schrijven in een hogere programeertaal, zoals C, wat ons toelaat om gemakkelijker en sneller code te schrijven. Om uiteindelijk een zinnige prestatiemeting te kunnen uitvoeren, moeten representatieve programmas geschreven en uitgevoerd kunnen worden. Het beschikbaar zijn van een compiler laat toe benchmark software te compileren naar de juiste machinecode. Modulaire opbouw Hiërarchie van componenten maakt het mogelijk voor een mens om complexe systemen te schrijven en aan te passen. Bij een goede opsplitsing van delen en geschikt gekozen abstractielagen kan men structuren verkrijgen die eenvoudig zijn om te gebruiken, hanteren en aanpassen. Een softcore bestaande uit een goed opgedeelde modulaire structuur kan de stap naar MORF vergemakkelijken. Als bijvoorbeeld de verschillende functionele eenheden als aparte modules geïmplementeerd zijn, kunnen deze eenvoudig hergebruikt worden.

26 4.4 Gevonden processoren 18 Voldoende documentatie Goed gedocumenteerde code is nuttig en zelfs noodzakelijk, om zich gemakkelijk een weg te banen tussen de verschillende lijnen code en in een zo kort mogelijke tijd een overzicht te krijgen van het geheel. RISC Door de eenvoud van de RISC instructies is een RISC gebaseerde processor eenvoudiger qua architectuur dan een CISC. Omdat complexe instructies enkel extra moeilijkheden met zich meebrengen die ons afleiden van de kern van de zaak, hebben we geopteerd om naar een RISC gebaseerde softcore processor te zoeken. FPGA bezetting FPGA bezetting is het percentage van alle beschikbare CLB s in een FPGA die bezet zijn. Om ruimte te laten voor toevoegingen in de FPGA, mag de softcore een niet al te hoge bezettingsgraad hebben. Om een bezettingsgraad te kunnen uitdrukken gebruiken we in deze thesis de Virtex2P-30 FPGA van Xilinx op een test bord ML310 als referentie. 4.4 Gevonden processoren Internet biedt een heel ruim aanbod aan softcores. Bij het toepassen van onze opgestelde voorwaarden, komen we tot de volgende 4 meest interessante softcores STM De STM [8] softcore is een vrije 32-bit processor en is superscalair met een ontdubbelde pijplijn. Veel informatie valt er over de STM processor niet te vinden, het internet verschaft maar één website waar de processor kan gedownload worden. Tijdens het onderzoeken van de verschillende mogelijkheden, was de meest recente versie van de STM processor V1.1. Bij het verder nagaan van de voorwaarden van deze processor bleek dat de verschafte documentatie in het Japans is. Een eenvoudig vooronderzoek was dus niet mogelijk en de slaagkansen van deze keuze leken niet al te hoog te liggen. Bij het neerschrijven van dit werk is gebleken dat ondertussen STM versie V1.2 op het internet is geplaatst. Bij deze versie is al een heel summiere Engelstalige versie van de documentatie voorhanden, wat de STM voor volgend onderzoek wel weer op de kaart zet. Omwille van dit laatste en omwille van het feit dat het één van de weinige superscalaire softcore processoren is die we hebben gevonden, wordt hij opgenomen in dit boek. Het enkel beschikbaar zijn van de documentatie in het Japans op het moment van beschouwing van de V1.1 STM, heeft er voor gezorgd dat de aandacht voor verder

27 4.4 Gevonden processoren 19 onderzoek is gericht op de andere processoren. Dit mag in geen geval geïnterpreteerd worden alsof de STM processor niet bruikbaar zou zijn DLX De DLX [7] processor wordt beschreven door John Hennessy en David Patterson in hun boek Computer Architecture: A Quantitative Approach [2]. DLX wordt als Deluxe uitgesproken en de naam is afkomstig van het gemiddelde van de nummers van alle processor architecturen waarop de DLX gebaseerd is en dit getal te schrijven in Romijnse cijfers. (AMD 29K, DECstation 3100, HP 850, IBM 801, Intel i860, MIPS M120A, IPS M1000, Motorola 88K, RISC I, SGI 4D60, SPARCstation-1, Sun-4110, Sun- 4260)/13=560=DLX. De DLX is geïmplementeerd in de technische universiteit Darmstadt in Duitsland door Professor Doctor Ingenieur H. Eveking, voor onderwijs doeleinden en is geschreven in een mix van gedrag en RTL code. Deze processor is superscalair. Hij is goed gedocumenteerd al is dit volledig in het Duits. Er is zowel een DLX te vinden die modulair opgevat is en georganiseerd in verschillende bestanden, als een DLX volledig geschreven in één bestand. Bij het synthetiseren van deze processor op ons referentie bord bleek dat deze al gauw 80% van onze referentie FPGA in beslag nam. Programmas voor de DLX kunnen geschreven worden in een voorziene assembler taal, maar een compiler is nog niet beschikbaar MicroBlaze Xilinx [9]is een bedrijf met een vaste waarde in de wereld van de programmeerbare logica en beweert marktleider te zijn. Hun belangrijkste producten zijn hun FPGA s en CPLD s of in het algemeen herconfigureerbare chips. De bekendste zijn hun Spartan en Virtex reeksen, met als huidig vlaggenschip de Virtex-4. Naast hun chips biedt Xilinx ook softcores aan. Als mogelijke softcore processor hebben we de MicroBlaze[1] onder de loep genomen. Deze softcore processor is een niet superscalaire 32-bit processor. De MicroBlaze heeft een 3 stadia lange pijplijn en een RISC instructieset. Er is en heel grote gebruikersbasis en wordt veelvuldig met success gebruikt in de industrie. Een groot geheel van professionele documentatie is voorhanden op het internet. Om onderzoek te kunnen verrichten moet het mogelijk zijn om de broncode aan te passen. Bij aanschaf van de MicroBlaze in code laat de licentie toe deze aan te passen, echter bepaalt deze licentie dat deze aanpassingen niet mogen gepubliceerd

28 4.5 Afweging 20 worden, tenzij aan mensen of bedrijven die ook een licentie bezitten. Het is duidelijk dat deze situatie zich niet leent voor academisch onderzoek. Gelijkaardige licenties bestaan voor de andere softcores van Xilinx, waardoor hun softcores zich niet lenen voor onderzoek Leon3 De Leon3[5] is een synthetiseerbare 32-bit processor, volledig comform met de SPARC V8 architectuur. Deze 7-stadia lange pijplijn processor is goed gedocumenteerd en heeft een C compiler ter beschikking. Gaisler stelt de processor vrij onder een open source licentie. De Leon3 is zowel modulair in zijn VHDL source code, als in zijn processor configuratie die tijdens compile fase kan worden vastgelegd. Deze softcore is ook op de markt in ASIC vorm. Meer informatie over de Leon3 is te vinden in de appendices. 4.5 Afweging In deze sectie geven we een overzicht van de verschillende afwegingen tussen de verschillende processoren en hoe de uiteindelijke keuze tot stand is gekomen. Tabel 4.1 geeft een beperkt overzicht van enkele voorwaarden van de geselecteerde softcore processoren. DLX STM MicroBlaze Leon3 instructie set RISC RISC RISC RISC superscalair ja ja neen neen pijplijn ja? ja ja documentatie japans duits engels engels prestatie -? + + compiler neen neen ja ja Tabel 4.1: softcores Superscalariteit Het internet biedt een heel scala aan diverse softcore processoren aan. De eerder opgestelde voorwaarde van superscalariteit in dachtig, zou men kunnen verwachten enkel superscalaire softcore processoren aan te treffen in de selectie. Deze voorwaarde is echter heel erg limiterend gebleken. Enkel de DLX en STM processoren zijn superscalair. Dit verklaard waarom de STM processor opgenomen is in de selectie ook al was verder gebruik vrij snel afgewimpeld door de documentatie voorwaarde.

29 4.5 Afweging 21 In wat volgt houden we dus enkel nog rekening met de DLX van de superscalaire varianten Moderne softcores De selectie duidt ook nog de Leon3 en de MicroBlaze aan, beiden opgenomen omdat ze goed scoren op alle voorwaarden, buiten dan het superscalaire aspect. In ons vooronderzoek is gebleken dat de licentie van de MicroBlaze processor niet leent voor academisch onderzoek. Van deze categorie houden we dus enkel de Leon3 over DLX vs. Leon3 In de finale hebben we de DLX en de Leon3. Het vergelijken van deze twee processoren om een geargumenteerde keuze te maken is niet zo eenvoudig. Beide processoren zijn al toegelicht in het vooronderzoek. In deze sectie zullen we uitgaan van wat de tekortkomingen zijn van beide processoren alvorens ze vermorfd kunnen worden. DLX Omdat de DLX voor educatieve doeleinden geïmplementeerd is, zijn de verschillende periferieën met een gedragsbeschrijving geïmplementeerd. Met periferieën bedoelen we hoofdgeheugen, registerbestand, caches, debug eenheden, UARTs, interrupt controllers, etc... Ook heel veel van de werking van de DLX is als gedragsbeschrijving opgevat. De DLX is eigenlijk niet meer dan een veredelde pijplijn. Dit is van geen belang, zolang we de processor volledig in een simulatie-omgeving houden. Omdat we bij MORF op hardware moeten werken om de dynamische partiële configuraties te kunnen uitvoeren, zal de DLX daar moeten draaien. De periferie moet dan geheel herschreven worden om tot een synthetiseerbare vorm te komen. De onbestaande caches en registerbestanden zullen dan ook van de grond af aan moeten worden opgebouwd. Ook is er geen enkele garantie dat een softcore die werkt onder simulatie zal werken op hardware. Vaak vereist het enorme inspanningen en kennis om dit te verwezelijken. Een schatting van de inspanning en het aantal uren nodig om dit te verwezelijken is uiterst moeilijk. Bij het aanpassen van de code van beschrijving naar RTL zullen we ook het extra effect verkrijgen dat de ingenomen oppervlakte van de FPGA minder groot zal zijn. Leon3 Leon3 is niet superscalair. Om te kunnen vermorfed worden moeten we hem dus transformeren naar een superscalaire variant.

30 4.5 Afweging 22 De vereiste aanpassingen aan de processor concentreren zich louter op de pijplijn. Het zijn voornamelijk de pijplijn en de componenten in directe interactie met de pijplijn, zoals caches en registerbestanden, die aangepast zullen moeten worden. Er is weinig dat van de grond af aan moet worden opgebouwd. De volledige processor heeft bewezen te werken op hardware zodat we ook op dat vlak van een goede basis kunnen vertrekken. Een inschatting van de inspanning en het aantal uren nodig voor deze aanpassingen is alweer heel moeilijk te voorspellen. Keuze en argumentatie Bij beide processoren is een aanzienlijke hoeveelheid werk vereist en is de inschatting hiervan heel moeilijk. In beide gevallen kan men tot een vermorfbare softcore komen, echter op een heel verschillende wijze. Het tussenresultaat kan op zichzelf op verschillende vlakken waardevol zijn. Met tussenresultaat bedoelen we dan een aangepaste softcore processor die klaar is om vermorfed te worden. Bijvoorbeeld kan er een hoge waarde gehecht worden aan een DLX softcore processor die volledig op hardware werkt voor verdere educationele doeleinden, of kan een superscalaire Leon3 omarmd worden door de industrie. Als belangrijkste afwegingsfactor in onze uiteindelijke keuze hebben we gekeken in hoeverre de eigenlijke aanpassingen het dichtst verwant zijn met de eigenlijke vermorfing. Hierbij is het duidelijk dat bijvoorbeeld een volledige cache schrijven voor de DLX niet zo verwant is. Tijdens het aanpassen van de pijplijn van de Leon3 voor superscalaire werking, kunnen we de vereiste ontwerpskeuzes maken met MORF in het achterhoofd. Dit laatste heeft er ons dan ook toe verleid om Leon3 aan te passen tot een gemakkelijk vermorfbare superscalaire softcore processor.

31 Hoofdstuk 5 superscalariteit en LeonS 5.1 Beschrijving Parallellisme De doorvoersnelheid van een processor kan sterk opgevoerd worden door meerdere instructies tegelijk uit te voeren. Drie methodes zullen hier besproken worden. 1. pijplijnen We kunnen de verwerking van een instructie door een processor opsplitsen in verschillende deeltaken. De eerste deeltaak is het ophalen van de instructie, de tweede deeltaak het decoderen ervan enzovoort. Deze deeltaken worden door een klassieke, niet gepijplijnde processor sequentieel uitgevoerd binnen het tijdsbestek van één klokcyclus. Er wordt dus precies één instructie uitgevoerd in elke klokcyclus. Echter heeft deze aanpak een nadeel. Wanneer een bepaalde deeltaak wordt uitgevoerd, wordt de hardware voor de andere deeltaken niet benut. Er wordt met andere woorden niet optimaal gebruik gemaakt van het parallellisme en dus ook niet van de rekenkracht, aanwezig in de hardware. Pijplijnen biedt hiervoor een oplossing. De verschillende deeltaken bij de uitvoering van een instructie worden in parallel uitgevoerd. Elke deeltaak voert hierbij zijn berekeningen uit op verschillende instructies. De delen worden verbonden in een ketting, waarin na iedere klokcyclus de resultaten doorgegeven worden aan de volgende deeltaak. De deeltaken in de pijplijn worden stadia (Eng. stages) genoemd. Om de werking van een pijplijn te illustreren, wordt Leon3 als voorbeeld gebruikt. Figuur 5.1 geeft de 7-delige pijplijn van deze Leon3 weer. De verschillende deeltaken kunnen als volgt omschreven worden:

Herconfigureerbare Hardware in Ieders Bereik

Herconfigureerbare Hardware in Ieders Bereik Herconfigureerbare Hardware in Ieders Bereik Prof. Dirk Stroobandt Universiteit Gent Vakgroep ELIS Onderzoeksgroep PARIS http://www.elis.ugent.be/~dstr/ Overzicht Nood aan digitale verwerking van gegevens

Nadere informatie

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie.

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie. Samenvatting Field programmabale gate arrays (FPGA s) zijn heel aantrekkelijk als ontwerpplatform voor digitale systemen. FPGA s zijn geïntegreerde schakelingen die geprogrammeerd of geconfigureerd kunnen

Nadere informatie

Jan Genoe KHLim. VHDL Inleiding. In dit hoofdstuk situeren we het steeds toenemende belang van VHDL in het elektronisch ontwerp.

Jan Genoe KHLim. VHDL Inleiding. In dit hoofdstuk situeren we het steeds toenemende belang van VHDL in het elektronisch ontwerp. inleiding Inleiding Jan Genoe KHLim In dit hoofdstuk situeren we het steeds toenemende belang van in het elektronisch ontwerp. 1 inleiding Doelstellingen en behandelde topics doelstelling: de voornaamste

Nadere informatie

Digitale en analoge technieken

Digitale en analoge technieken Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33 Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De Arduino-microcontroller in de motorvoertuigentechniek (2) De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

Problemen herformuleren Leerlingen drukken de probleemstelling uit in eigen woorden.

Problemen herformuleren Leerlingen drukken de probleemstelling uit in eigen woorden. ACTIVITEITEN NAAM activiteit Leeftijdsgroep Markeer de optie. Tijdsduur: Vaardigheden computationeel denken Markeer de opties. Programmeren met Scratch 1 graad secundair onderwijs (12 14 jaar) > project

Nadere informatie

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Computerarchitectuur. Terugblik / discussie / oefenopgaven Computerarchitectuur Terugblik / discussie / oefenopgaven Kristian Rietveld http://ca.liacs.nl/ Trends & Performance Voorkennis We bouwden een 4-bit microprocessor bij Digitale Technieken. Bij computerarchitectuur

Nadere informatie

PCI Ontwikkelplatformen

PCI Ontwikkelplatformen PCI Ontwikkelplatformen Jan Genoe KHLim In dit deel bespreken we de verschillende ontwikkelplatformen die ter beschikking staan om een PCI kaart te ontwikkelen. 1 Ontwikkelplatformen van PCI kaarten Gebruik

Nadere informatie

2 Algemene opbouw van een computersysteem

2 Algemene opbouw van een computersysteem Procescomputer E. Gernaat 1 Microprocessoren algemeen Informatie-verwerking zoals behandeld is momenteel vrijwel geheel overgenomen door microprocessoren. Wanneer we voortborduren op het idee van combinatorische

Nadere informatie

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly

Nadere informatie

computerarchitectuur antwoorden

computerarchitectuur antwoorden 2017 computerarchitectuur antwoorden F. Vonk versie 1 2-8-2017 inhoudsopgave hardware... - 3 - CPU... - 3 - bussen... - 4 - bridges... - 4 - RAM... - 4 - hardware architectuur... - 5 - Dit werk is gelicenseerd

Nadere informatie

Hardware-software Co-design

Hardware-software Co-design Jan Genoe KHLim Versie: maandag 10 juli 2000 Pagina 1 Wat is HW/SW Co-design Traditioneel design: De verdeling tussen de HW en de SW gebeurt bij het begin en beiden worden onafhankelijk ontwikkeld Verweven

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Nederlandse samenvatting (Dutch summary)

Nederlandse samenvatting (Dutch summary) Nederlandse samenvatting (Dutch summary) Ditproefschriftpresenteerteen raamwerk voorhetontwikkelenvanparallellestreaming applicaties voor heterogene architecturen met meerdere rekeneenheden op een chip.

Nadere informatie

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontroller Uit Wikipedia A microcontroller (sometimes abbreviated µc or uc) is a small computer on a single integrated circuit

Nadere informatie

EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1

EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1 EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1 1. Doel Kennismaking met de EDK van Xilinx: - begrijpen van de ontwerpomgeving en design flow - aanmaken van een Xilinx Platform Studio project

Nadere informatie

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen. Flex_Rooster WERKBOEK INTRODUCTIE iseries Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen. ICS Opleidingen Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar gemaakt

Nadere informatie

VHDL overzicht. Digitale Systemen (ET1 410) VHDL? VHDL? Sequentieel vs. Concurrent 2/15/2011

VHDL overzicht. Digitale Systemen (ET1 410) VHDL? VHDL? Sequentieel vs. Concurrent 2/15/2011 VHDL overzicht Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2010 2011 Wat is VHDL? Waarvoor gebruiken we het? Deze college Sequentieel

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle  holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/28464 holds various files of this Leiden University dissertation Author: Jeroen Bédorf Title: The gravitational billion body problem / Het miljard deeltjes

Nadere informatie

Design Data Management voor FPGA ontwikkeling

Design Data Management voor FPGA ontwikkeling Design Data Management voor FPGA ontwikkeling Al snel heb je bij electronica ontwikkeling met Design Data Management te maken, zo ook bij FGPA ontwikkeling. Er wordt immers code gegenereerd die beheerd

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2006-2007 Dinsdag 16 januari 2007, 14u00 Prof. dr. ir. L. Eeckhout Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw naam en

Nadere informatie

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo) informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord

Nadere informatie

Digitale Systemen (ET1 410)

Digitale Systemen (ET1 410) Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1 Verschil simulatie en synthese Simulatie: functioneel

Nadere informatie

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Computersysteem Een systeem dat rekenkundige operaties, data manipulaties en beslissingen kan uitvoeren, aan de hand

Nadere informatie

1 verschillende onderdelen en deelsystemen in een technisch systeem onderzoeken: de functies en de relaties ertussen toelichten;

1 verschillende onderdelen en deelsystemen in een technisch systeem onderzoeken: de functies en de relaties ertussen toelichten; Spel maken met Scratch Samenvatting Leeftijd 12-14 jaar Vaardigheden abstraheren algoritme en procedure decompositie van het probleem Totale tijdsduur 150 minuten Wil je graag je eigen computerspel maken?

Nadere informatie

Departement industriële wetenschappen en technologie

Departement industriële wetenschappen en technologie Departement industriële wetenschappen en technologie Universitaire Campus, gebouw B B-3590 DIEPENBEEK Tel.: 011-23 07 90 Fax: 011-23 07 99 Aansturen en testen van een hybride infrarood beeldopnemer Abstract

Nadere informatie

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Deze vakinhoudelijke uitwerking is ontwikkeld door het Redactieteam van de Schooleamenbank vmbo voor dit

Nadere informatie

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik Rick van der Zwet 4 augustus 2010 Samenvatting Dit schrijven zal

Nadere informatie

Oefeningen Interpretatie I Reeks 6 : Registermachines

Oefeningen Interpretatie I Reeks 6 : Registermachines Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren

Nadere informatie

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce Elektronica-ICT Artesis Projectplan Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce Projectplan ter voorbereiding van de bachelorproef en stage Academiejaar

Nadere informatie

Digitale technieken Microprocessoren

Digitale technieken Microprocessoren Digitale technieken Microprocessoren ir. Patrick Colleman Inhoudstafel Inhoudstafel. Afkortingen. Inleiding - voorwoord 1 Hoofdstuk 1 : Voorstelling van getallen en karakters. 2 1.1 Voorstelling van binaire

Nadere informatie

THEME Competence Matrix - Mechatronics

THEME Competence Matrix - Mechatronics COMPETENTIEGEGIED COMPETENTIE ONTWIKKELINGSSTAPPEN 1. Onderhouden van systemen en borgen van de betrouwbaarheid Hij/zij kan het elementaire onderhoud van machines en systemen, volgens planning uitvoeren.

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

Microsoft Excel. It s all about Excel - VBA

Microsoft Excel. It s all about Excel - VBA X Microsoft Excel Stap in de wereld van Visual Basic for Applications (VBA) binnen het Microsoft Office programma Excel. Leer hoe deze programmeertaal precies in elkaar zit en hoe u deze in de dagelijkse

Nadere informatie

Opdrachtformulering (pagina 3 van 7)

Opdrachtformulering (pagina 3 van 7) Afstudeerovereenkomst van Tim Wils Bijlage 1 Opdrachtformulering (pagina 3 van 7) Dit project betreft een eigen framework (soort API) waarmee relatief gemakkelijk en in korte tijd eindproducten opgezet

Nadere informatie

Vier aandachtspunten bij het specificeren van digitaal geregelde voedingen

Vier aandachtspunten bij het specificeren van digitaal geregelde voedingen Vier aandachtspunten bij het specificeren van digitaal geregelde voedingen De industrie staat soms nog wat afwachtend tegenover digitaal geregelde voedingen omdat engineers, anders dan bij de traditionele

Nadere informatie

Uitwerking oefententamen Computerarchitectuur December 2016

Uitwerking oefententamen Computerarchitectuur December 2016 Uitwerking oefententamen Computerarchitectuur December 2016 I.a. De overall CPI kan worden berekend met de formule n IC i CPI Instruction count CPI i voor de ratio vullen we telkens de geven frequentie

Nadere informatie

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270)

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270) instructie Industriële automatisering 3 (ICT09.3/CREBO:53270) pi.ict09.3.v1 ECABO, 1 april 2002 Alle rechten voorbehouden. Niets uit deze uitgave mag worden vermenigvuldigd, overgenomen, opgeslagen of

Nadere informatie

Programmeren. Inleiding

Programmeren. Inleiding Programmeren Inleiding STAPPEN IN DE ONTWIKKELING VAN EEN PROGRAMMA 1. Probleem 1. Probleem Ideaal gewicht berekenen Wortel van een vierkantsvergelijking berekenen Schaakspel spelen Boekhouding doen 2.

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files 1 Introductie In deze oefening zal je je LCD display leren aansturen. Je controleert deze display door er instructies naar te

Nadere informatie

Combinatorische schakelingen

Combinatorische schakelingen Practicum 1: Combinatorische schakelingen Groep A.6: Lennert Acke Pieter Schuddinck Kristof Vandoorne Steven Werbrouck Inhoudstabel 1. Doelstellingen... 2 2. Voorbereiding... 3 3. Hardware-practicum...

Nadere informatie

Les 11: systeemarchitectuur virtuele machines

Les 11: systeemarchitectuur virtuele machines Les 11: systeemarchitectuur virtuele machines Geavanceerde computerarchitectuur Lieven Eeckhout Academiejaar 2008-2009 Universiteit Gent Virtuele machines Motivatie Interfaces Virtualisatie: inleiding

Nadere informatie

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

Tim Mallezie Architectuur van besturingssystemen: Vraag A2. Procesbeheer: kenmerken van moderne besturingssystemen. 1. Bespreek de (drie) meest typische kenmerken van moderne besturingssystemen. 2. In hoeverre beantwoorden UNIX, Linux en Windows NT hieraan? Geef

Nadere informatie

Quantum computing. Dirk Nuyens. dept. computerwetenschappen KULeuven. [dirk.nuyens@cs.kuleuven.ac.be]

Quantum computing. Dirk Nuyens. dept. computerwetenschappen KULeuven. [dirk.nuyens@cs.kuleuven.ac.be] Quantum computing Dirk Nuyens [dirk.nuyens@cs.kuleuven.ac.be] dept. computerwetenschappen KULeuven qc-sim-intro.tex Quantum computing Dirk Nuyens 18/12/2001 21:25 p.1 Mijn thesis plannen Proberen een zo

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (4)

De Arduino-microcontroller in de motorvoertuigentechniek (4) De Arduino-microcontroller in de motorvoertuigentechniek () E. Gernaat (ISBN 978-90-7930--6) De Atmel ATmega38/P microcontroller. Uitvoering De ATmega38 is een microprocessor van de Amerikaanse firma ATMEL

Nadere informatie

Dynamische Circuitspecialisatie

Dynamische Circuitspecialisatie Dynamische Circuitspecialisatie Karel Bruneel promotor: prof. Dirk Stroobandt Field Programmable Gate Array 11111111111 1111111111111 1111111111 11111111111 Digitale GSM- 111111111 1111111111 11111 chip

Nadere informatie

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010)

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010) Plan van Aanpak Christophe Deloo, Roy Straver & Machiel Visser Versie 4 (26-06-2010) Inhoudsopgave Voorwoord... 2 1 Inleiding... 3 1.1 Aanleiding... 3 1.2 Accordering en bijstelling... 3 1.3 Toelichting

Nadere informatie

De ontwikkeling van een gebouwbeheersysteem

De ontwikkeling van een gebouwbeheersysteem De ontwikkeling van een gebouwbeheersysteem Een afstudeeropdracht elektrotechniek Auteurs: R. Hulzebos S.H. de Lange Opleiding: Hanzehogeschool faculteit techniek De ontwikkeling van een gebouwbeheersysteem

Nadere informatie

1. Inleiding. 1. Inleiding... 1. 1.1. Installatieprocedure...2. 1.1.1. De installatie van LisCAD 5.0... 3. 1.2. Licentieprocedure...

1. Inleiding. 1. Inleiding... 1. 1.1. Installatieprocedure...2. 1.1.1. De installatie van LisCAD 5.0... 3. 1.2. Licentieprocedure... 1. Inleiding... 1 1.1. Installatieprocedure...2 1.1.1. De installatie van LisCAD 5.0... 3 1.2. Licentieprocedure...8 1.2.1. Introductie... 8 1.2.2. Evaluatielicenties... 8 1.2.3. Het bestellen van een

Nadere informatie

Deel 2 S7 Graph Ont4 - GA3

Deel 2 S7 Graph Ont4 - GA3 Deel 2 S7 Graph Ont4 - GA3 Deel 2 : Graph 09/05 1 Wanneer er in een installatie een sequentiële beweging geprogrammeerd moet worden is het interessant om gebruik te maken van S7 Graph. De progammastructuur

Nadere informatie

1 Aanvulling cosy deeltijd

1 Aanvulling cosy deeltijd 1 Aanvulling cosy deeltijd 1.1 Multiprocessor versus multicomputer Het kenmerk van een multiprocessor is dat meer CPU hetzelfde geheugen delen. Voordeel van deze aanpak is het relatief eenvoudige programmeermodel.

Nadere informatie

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek Basisconcept VHDL Tweede studiejaar Wim Dolman Engineering, leerroute Elektrotechniek Faculteit Techniek 1 Deze presentatie toont de stappen voor het ontwerpen van een digitale combinatorische schakeling

Nadere informatie

UML. From weblog http://dsnippert.wordpress.com. Dennis Snippert

UML. From weblog http://dsnippert.wordpress.com. Dennis Snippert UML From weblog http://dsnippert.wordpress.com Naam: Dennis Snippert Inhoudsopgave 1. Wat is Uml?... 3 2. UML diagrammen... 4 3. Uitleg diagrammen... 5 3.1. Usecase diagram:... 5 3.2. Class diagram:...

Nadere informatie

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere

Nadere informatie

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren 2 december 2013 Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen

Nadere informatie

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: Eenvoudig voorbeeld. Er wordt verondersteld dat er met VS 2008 EXPRESS gewerkt wordt. Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: (Sommige schermafdrukken zijn afkomstig

Nadere informatie

Het SEESCOA project; jouw user interface, altijd en overal

Het SEESCOA project; jouw user interface, altijd en overal Het SEESCOA project; jouw user interface, altijd en overal Kris Luyten Karin coninx 17 januari 2002 Samenvatting De informatica kende een ware revolutie voordat men tot de desktop PC gekomen is. 20 jaar

Nadere informatie

Practica bij het vak. Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht

Practica bij het vak. Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht Elektronica en Informatiesystemen Practica bij het vak Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht door Prof. dr. ir. J. Van Campenhout ir. Sean Rul

Nadere informatie

BIJLAGE 18: INSTALLATIE EN AANPASSING HUISHOUDELIJKE APPARATUUR

BIJLAGE 18: INSTALLATIE EN AANPASSING HUISHOUDELIJKE APPARATUUR Installatie en aanpassing huishoudelijke apparatuur De Flexines demonstrator is gebaseerd op het concept van het huishouden van de toekomst. Zo n huishouden bezit een aantal energie consumerende en energie

Nadere informatie

S88XPressNetLI v1.0. Installatie- en gebruikershandleiding en naslagwerk KDesign Electronics, PCB ontwerp door RoSoft

S88XPressNetLI v1.0. Installatie- en gebruikershandleiding en naslagwerk KDesign Electronics, PCB ontwerp door RoSoft S88XPressNetLI v1.0 Installatie- en gebruikershandleiding en naslagwerk. 2008 KDesign Electronics, PCB ontwerp door RoSoft 3.3 De S88XpressNetLI verbinden met de ROCO versterker Aangezien de S88XpressNetLI

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B Verslag: Computer Naam: Tyrone Ste Luce Klas: M4B Inhoud 1. Inleiding 2. Binaire taal 3. Besturingssysteem 4. Hardware 5. Cmos en Bios 6. De processor 7. Internet 1. Inleiding Wanneer is de computer uitgevonden?

Nadere informatie

Clean code improves test quality

Clean code improves test quality Clean code improves test quality Michel Kroon, Senior Consultant, SIG TestNet Voorjaarsevenement 30 juni 2008 Arent Janszoon Ernststraat 595-H NL-1082 LD Amsterdam info@sig.nl www.sig.nl De Software Improvement

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken van Leibniz s droom Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais

Nadere informatie

Hoofdstuk 10: Speciale types transistoren

Hoofdstuk 10: Speciale types transistoren 1 Hoofdstuk 10: Speciale types transistoren In dit korte hoofdstuk zullen we een overzicht geven van de belangrijkste types bipolaire transistoren die in de handel verkrijgbaar zijn. 1: Transistoren voor

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

Cursus Programmeren en Dataverwerking.

Cursus Programmeren en Dataverwerking. Cursus Programmeren en Dataverwerking http://hay.github.io/codecourse Vanavond (18.00-21.30) Introductierondje Algemene introductie (60-90m) Iets over bits en bytes Iets over programmeurs en programmeertalen

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 6e hoorcollege

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 6e hoorcollege EE4: Digitale Systemen BSc. EE, e jaar, 22-23, 6e hoorcollege Arjan van Genderen, Stephan Wg, Computer Engineering 22-4-23 Delft University of Technology Challenge the future Rooster 4e kwartaal (der voorbehoud)

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

From High-Level Language to language of the hardware

From High-Level Language to language of the hardware Overzichtscollege 1 Abstractieniveaus Een computersysteem bestaat uit een hiërarchie van lagen Elke laag heeft een goed gedefinieerde interface naar de bovenliggende en onderliggende lagen Essentieel bij

Nadere informatie

High Performance Computing

High Performance Computing High Performance Computing Kristian Rietveld (krietvel@liacs.nl, kamer 138) Groep Computer Systems High-Performance Computing Optimizing compilers (generieke codes, maar ook specifieke rekenkernels). Parallel

Nadere informatie

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische

Nadere informatie

Summary in Dutch 179

Summary in Dutch 179 Samenvatting Een belangrijke reden voor het uitvoeren van marktonderzoek is het proberen te achterhalen wat de wensen en ideeën van consumenten zijn met betrekking tot een produkt. De conjuncte analyse

Nadere informatie

Nieuwe rekenmethode (voertuigafhankelijke) verkeerslichtenregelingen

Nieuwe rekenmethode (voertuigafhankelijke) verkeerslichtenregelingen Nieuwe rekenmethode (voertuigafhankelijke) verkeerslichtenregelingen Carl Stolz DTV Consultants Bart Veroude DTV Consultants Samenvatting In dit paper worden delen van een nieuwe methode voor het doorrekenen

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

Nadere informatie

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is Arduino? Arduino = microprocessor (Atmel) Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,

Nadere informatie

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen Monitoring SolidBE B.V. Maarten Schoutenstraat 19 2741SV Waddinxveen 1 Inhoudsopgave Monitoring...3 Introductie...3 Netwerkcomponenten...4 Back-up...4 Discovery...4 Poller...5 SNMP-traps...5 Maintenance...5

Nadere informatie

Logicsim Hydraulics. Vak/onderwerp Techniek, motorvoertuigentechniek, hydrauliek, mechanica

Logicsim Hydraulics. Vak/onderwerp Techniek, motorvoertuigentechniek, hydrauliek, mechanica Logicsim Hydraulics Vak/onderwerp Techniek, motorvoertuigentechniek, hydrauliek, mechanica Hardware-eisen Windows 3.1 of hoger, 486 processor of sneller, 5 Mb vrije ruimte op de harde schijf, 4 Mb RAM,

Nadere informatie

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Rolnummerherkenning van op een kraan Datum: 17/11/12 Naam student: Cédric Verstraeten Interne promotor: Tim De Pauw In samenwerking

Nadere informatie

Sociale en culturele factoren in evacuatie simulaties. Dr. Natalie van der Wal

Sociale en culturele factoren in evacuatie simulaties. Dr. Natalie van der Wal Sociale en culturele factoren in evacuatie simulaties Dr. Natalie van der Wal Uit de praktijk blijkt dat weinig mensen direct overgaan tot actie als het brandalarm afgaat. Het zal wel een oefening zijn,

Nadere informatie

Labo digitale technieken

Labo digitale technieken .. Het gebied "elektronica" is reeds geruime tijd onderverdeeld in twee specialiteiten, namelijk de analoge en de digitale technieken. Binnen analoge schakelingen gebeurt de signaalverwerking met lineaire

Nadere informatie

Virtueel Geheugen en demand paging (1)

Virtueel Geheugen en demand paging (1) Virtueel Geheugen en demand paging (1) Programma's zijn vaak niet in hun geheel in het geheugen nodig, vanwege: zelden gebruikte onderdelen groter gedeclareerde arrays dan nodig als programma helemaal

Nadere informatie

Wat is een busverbinding?

Wat is een busverbinding? Wat is een busverbinding? gemeenschappelijke verbinding tussen CPU, geheugen en I/O-schakelingen onderscheid tussen: databus/adresbus/controlbus intern/extern serieel/parallel unidirectioneel/bidirectioneel

Nadere informatie

De vernieuwde simulatieomgeving voor verzending via bestandsoverdracht

De vernieuwde simulatieomgeving voor verzending via bestandsoverdracht De vernieuwde simulatieomgeving voor verzending via bestandsoverdracht Versie 1.0 Juni 2013 1 INHOUD 1 Inleiding... 3 1.1 Doel van de simulatieomgeving... 3 1.2 Aandachtspunten... 3 1.2.1 Simulatie Productie...

Nadere informatie

Uitgebreid voorstel Masterproef Informatica

Uitgebreid voorstel Masterproef Informatica HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Optimalisatie & ontwikkeling van een gegevenstransfertool voor Business Intelligence-gebruikers Datum : 01/11/2012 Naam student

Nadere informatie

ARM VS X86. Whi t e Pa pe r

ARM VS X86. Whi t e Pa pe r ARM VS X86 Whi t e Pa pe r Waar moeten industriële ARM-based systemen aan voldoen? 7 belangrijke aandachtspunten voor engineers Inleiding De x86-processorarchitectuur maakt sinds jaar en dag de dienst

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement.

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Algemeen Met KYOCERA scannen naar UNIT4 Cura Documentmanagement beschikt u over een efficiënte oplossing om uw documenten te scannen

Nadere informatie

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat: Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het

Nadere informatie

programmeren leeromgeving

programmeren leeromgeving DO-ProLO programmeren leeromgeving Een leeromgeving voor iedereen in de leeftijd van 8 tot 80 jaar. Dit is een uitgave van Duurzame Onderneming Kennemerland. Voor meer informatie ga naar: www.duurzame-onderneming-kennemerland.nl

Nadere informatie

Axoft Managed Router Rapportage

Axoft Managed Router Rapportage Axoft Managed Router Rapportage Toelichting week rapportage Als onderdeel van de Axoft managed router dienst monitoren wij 24 uur per dag, 7 dagen per week uw router en uw verbindingen. Onze bevindingen

Nadere informatie

Computerarchitectuur. App. B. Review of Memory Hierarchy

Computerarchitectuur. App. B. Review of Memory Hierarchy Computerarchitectuur App. B. Review of Memory Hierarchy Kristian Rietveld http://ca.liacs.nl/ Caching De memory wall is een zeer groot probleem dat vraagt om oplossingen. De gebruikelijke oplossing is

Nadere informatie

Onderwijseenheid INLMIC Inleiding microcontrollers

Onderwijseenheid INLMIC Inleiding microcontrollers Studiebelasting: 3 CP Kwartaal: EQ1.1, EQ3D.1 Verantwoordelijke docenten: J.E.J. op den Brouw, B. Kuiper Opbouw onderwijseenheid. OEdeel kwt sbu theo pract proj toetswijze bs INLMIC-co1 1 42 14 Meerkeuze

Nadere informatie

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Leerlijn programmeren In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Deze leerlijn is opgebouwd aan de

Nadere informatie