Computerarchitectuur. H&P Appendix A: Instruction Set Principles
|
|
|
- Annelies ten Wolde
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld
2 Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven in een programma. Een programma bestaat uit instructies. Hoe zien die instructies eruit? Op wat voor manieren kunnen we instructies vormgeven?
3 Algemeen computermodel CPU voert berekeningen uit mbv ALU. CPU heeft interne opslag, vaak registers. CPU staat in verbinding met grootschalig geheugen: RAM. Alles gedreven door instructies.
4 Instruction Set Architecture Kortweg: ISA. Dit is hoe de computer zich openbaart aan de buitenwereld. - De interface te gebruiken door programmeur en compiler writer. Bestaat in het algemeen uit: - Een zeer precieze beschrijving hoe de instructies moeten worden opgeslagen/geëncodeerd. - Semantiek: wat voor instructies zijn er en wat voor effect heeft het uitvoeren van die instructie? Omschreven in de ISA manual of architecture reference manual van de processor.
5 Evolutie van ISAs Jaren 70: kosten software ontwikkeling terugdringen. - High-level architecturen om het leven van software ontwikkelaars makkelijker te maken. - Leidde tot architecturen met zeer uitgebreide instructiesets, bijv. VAX. Jaren 80: terug naar simpele architecturen. - Compilertechnologie werd steeds beter. - Nadruk op verbeteren processor performance. Jaren 90: - Verdubbeling adresgrootte. - Verdere verbetering performance. - Multimedia extensies.
6 CISC vs. RISC CISC: Complex Instruction Set Computing - Complexe instructies die eigenlijk meerdere dingen tegelijk doen: zowel een waarde uit het geheugen halen als een optelling uitvoeren. - VAX, PDP-11, Intel x86,... RISC: Reduced Instruction Set Computing - Eenvoudige instructies, kleine instructieset. - Betere performance door lagere CPI. - MIPS, SPARC, ARM, PowerPC, Alpha,... Verschillen zullen gaandeweg duidelijker worden.
7 Hoe zit dat met x86? We zagen x86 net geclassificeerd als CISC. Schijn bedriegt... x86 is CISC aan de buitenkant. - Backwards compatibility. Aan de binnenkant zit eigenlijk een RISC processor. - In de hardware worden alle CISC instructies omgezet in RISC instructies.
8 Verschillende architecturen Er bestaan verschillende manieren om data intern in een processor op te slaan. Dit leidt tot verschillende architecturen: - Stack architecture Operanden impliciet (top of stack). - Accumulator architecture Één van de operanden wordt impliciet de accumulator. - General-purpose register architecture Operanden moeten expliciet worden gespecificeerd.
9 Verschillende architecturen (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. A.1.
10 Register computers Als we naar de register computers kijken, zien we twee soorten: - Register-memory: elke instructie kan ook naar geheugen refereren. x86 instructies kunnen dit bijvoorbeeld. - Load-store: geheugen kan alleen worden benaderd met expliciete load en store instructies. RISC architecturen normaliter load-store. Je kunt een derde klasse bedenken, memory-memory, maar dit soort machines worden niet meer gemaakt. - Waarom niet? (Denk aan de trends van vorige week)
11 Load-store architectures De standaard tegenwoordig: load-store register architectures. General-purpose registers. - Vrijheid voor de compiler. Compiler probeert variabelen tijdelijk op te slaan in registers om geheugenverkeer te minderen en zo het programma te versnellen.
12 Voorbeelden C = A + B voor verschillende architecture classes: Stack Push A Push B Add Pop C Accumulator Load A Add B Store C Register-Memory Load R1, A Add R3, R1, B Store R3, C Register (load-store) Load R1, A Load R2, B Add R3, R1, R2 Store R3, C See also Computer Architecture: A Quantitative Approach, fifth edition.fig. A.2..
13 Voorbeelden Load R1, A C = A + B voor verschillende architecture Loadclasses: R2, B Add R2, R1 Store R2, C Stack Accumulator instruction Push A Load 2-operand A Push B Add B Add Store C Pop C Register-Memory Load R1, A Add R3, R1, B Store R3, C Register (load-store) Load R1, A Load R2, B Add R3, R1, R2 Store R3, C 3-operand instruction
14 Memory Addressing Hoe adresseren we nu precies data in het geheugen? Meestal geven we een geheugenadres op en de grootte van een object om te benaderen. - byte (8 bits), half word (16 bits), word (32 bits), double word (64 bits). Er bestaan verschillende byte orders : - Litte endian: eerste byte op de least significant position (the little end). - Big endian: eerste byte op de most significant position (the big end). Meestal geen probleem, totdat je data gaat uitwisselen tussen verschillende computers.
15 Byte ordering We slaan het getal 0x88aadd3300c0ffee op.
16 Alignment Veel architecturen vereisen dat toegang tot objecten groter dan een byte aligned is. Een object s bytes groot opgeslagen op adres A, is aligned als A mod s = 0. Anders gezegd: een object moet worden opgeslagen op een meervoud van de grootte. Waarom is dit? Geheugen vaak aligned op meervoud van word of double word.
17 Alignment (2) Wat gebeurt er in het geval van een misalignment? - Sommige architecturen ondersteunen dit helemaal niet en dit resulteert dan in een exception: Bus error. - Andere architecturen ondersteunen dit wel, maar een misaligned access is duurder dan een aligned. Misaligned access is op te lossen door meerdere aligned accesses te doen en hier de benodigde data uit te extraheren.
18 Addressing Modes Hoe duiden we nu aan op welke operanden we een operatie willen uitvoeren? Hier bestaan verschillende manieren voor verschillende addressing modes. We zullen nu een aantal van deze modes bekijken. - (In het boek (Fig. A.6.) staan nog een aantal meer, exotische, modes). Verschillende architecturen implementeren verschillende subsets van deze modes.
19 Addressing Modes (2) Mode Example Instruction Register Meaning Use case Add R4, R3 Regs[R4] <Regs[R4] + Regs[R3] When values are in registers Immediate Add R4, #3 Regs[R4] <- Regs[R4] + 3 For constants Direct or absolute Add R1,(1001) Regs[R1] <Regs[R1] + Mem[1001] E.g. accessing static data, address constant may be large. Register indirect Add R4,(R1) Regs[R4] <Regs[R4] + Mem[Regs[R1]] Accessing using a pointer or computed address. Regs[R4] <- Regs[R4] + Mem[100 + Regs[R1]] Accessing local variables. Regs[R1] <- Regs[R1] + Mem[100 + Regs[R2] + Regs[R3] * d] Used to index arrays. Displacement Add R4,100(R1) Scaled Add R1,100(R2)[R3] See also Computer Architecture: A Quantitative Approach, fifth edition.fig. A.6.
20 Addressing Modes (3) Met slimme addressing modes kan het aantal instructies worden verlaagd. - Nadeel: complexiteit wordt groter, dus risico dat gemiddelde CPI omhoog gaat. Voor displacements en literals moet er ruimte worden gereserveerd in de instructies. Grootte zit dus aan een maximum gebonden.
21 Operaties Operator type Examples Arithmetic and logical Integer arithmetic and logical operations: add, subtract, and, or, multiply, divide. Data transfer Loads and stores (or move on register-memory) Control flow Branch, jump, function call System System calls (OS), virtual memory management Floating point Floating-point operations String String move, string compare, string search Graphics Pixel and vertex operations, compression/decompression Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. A.12.
22 Operaties (2) Welke operaties snel maken? Common case. Bijv. de top 10 instructies die volgen uit het draaien van de SPEC benchmark op x86: Instruction (% total executed) load 22% conditional branch 20% compare 16% store 12% add 8% and 6% sub 5% move register-register 4% call 1% return 1% TOTAL 96% Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. A.13.
23 Control flow Nodig voor het implementeren van if, for, while, switch, function calls, etc... jump: unconditional change in control flow - e.g., function call, return from function branch: conditional change in control flow - e.g., if, switch, break out of for loop.
24 Control flow (2) Waar springen we naartoe? Dit adres moet in de instructie worden vastgelegd. - Uitzondering: return from function call. Adres bij compileren niet bekend, wordt tijdens runtime bepaald. - Geldt bijvoorbeeld ook voor virtual functions, function pointers. - Oplossing: adres lezen uit register of stack. Vaak wordt gekozen om een displacement op te tellen bij de huidige waarde van de program counter. - PC-relative branches en jumps. - Het doel is vaak dichtbij, dus maar weinig bits nodig! - Deze code is position independent.
25 Control flow (3) Drie manieren om branch conditie te specificeren. Condition code - ALU operaties (bijv. test instructie) zetten speciale condition flags/bits. - Branching gebeurt op basis van deze bits (is bit wel of niet gezet?) Condition register - Resultaat vergelijking wordt opgeslagen in register. Dit register wordt bekeken door branch instructie. Compare and branch - Vergelijking en branch in 1 instructie.
26 Encoding instruction sets Instructies moeten worden geëncodeerd in een binaire vorm. Vaak gebeurt dit op basis van fields met vaste grootte in bits. Een field voor source register, opcode enz. opcode: getal dat de uit te voeren operatie aanduidt. Vorm van encoderen belangrijk: - heeft invloed op de grootte van gecompileerde programma's, - heeft ook invloed op de implementatie van de processor, je wilt zo snel mogelijk instructies kunnen decoderen.
27 Encoding instruction sets (2) Het belangrijkste om te bepalen is hoe de operanden en verschillende addressing modes worden vastgelegd. Hangt helemaal af van de architectuur! - Sommige oude architecturen: 1 tot 5 operanden, 10 mogelijke addressing modes voor elke operand. Aparte address specifier nodig voor elke operand. - Load-store computers: load instructie heeft altijd 1 memory operand. Er worden maar 1 of 2 addressing modes ondersteund. Addressing mode kan worden opgeslagen in opcode door beperkte aantal mogelijkheden.
28 Encoding instruction sets (3) Balancing act: - Graag zo veel mogelijk registers en addressing modes. - Meer registers -> meer bits nodig in instructie. - Gemiddelde grootte instructie groeit en daarmee ook gemiddelde grootte van een programma. - Instructies met vaste grootte is makkelijker implementeren (en belangrijk voor pipelining), maar laat weer de gemiddelde grootte toenemen.
29 Encoding instruction sets (4) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. A.18.
30 Encoding instruction sets (5) RISC architecturen zoals MIPS, ARM hebben 32-bit instructies. Voor embedded toepassingen telt de grootte van de code en 32-bit instructies zijn een probleem. - Fabrikanten hebben hierdoor ook een 16-bit code geïntroduceerd: ARM Thumb, MIPS MIPS16. - Er wordt een code size reductie geclaimd van 40%.
31 Rol van de compiler Vroeger werden er nog wel eens instructies toegevoegd om het schrijven van assembly code makkelijker te maken. Tegenwoordig is dit niet meer aan de orde, de meeste code wordt gegenereerd door een compiler. Het is van belang rekening te houden met compilers bij ontwerp van instructie sets: - zorg voor regulariteit, - maak trade-offs zo eenvoudig mogelijk.
32 Rol van de compiler (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. A.19.
33 MIPS architectuur We bespreken kort de ISA van de MIPS architectuur RISC, load-store architectuur. Kan zowel als Big en Little Endian opereren. 32 general-purpose registers: R0, R1,..., R31. - R0 is altijd 0. - In assembly language schrijven we $0, $1,..., $31. - Er zijn ook floating-point registers.
34 MIPS architectuur (2) Twee addressing modes: - immediate, 16-bit veld. - displacement, 16-bit veld. Nog twee addressing modes worden als volgt bereikt: - register indirect: plaats een 0 in het displacement veld. - absolute: gebruik R0 als base register. Instructies altijd 32-bits, er bestaan 3 instructieformaten of types.
35 Instruction formats Taken from Computer Architecture: A Quantitative Approach, fifth edition.fig. A.22.
36 Instruction formats (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition.fig. 1.6.
37 Voorbeelden LD R1, 30(R2) # Regs[R1] <- Mem[30+Regs[R2]] ADDU R1, R2, R3 # Add unsigned # Regs[R1] <- Regs[R2] + Regs[R3] ADDIU R1, R2, #3 # Add immediate unsigned # Regs[R1] <- Regs[R2] + 3 SLT R1, R2, R3 # Set less than # Regs[R1] <- Regs[R2] < Regs[R3]? 1 : 0
38 Voorbeeld decodering Instructie: 0x27bd Bekijk opcode (bovenste 6-bits): 0x9 => addiu - addiu is een I-format instructie: opcode rs rt imm rs: 0x1d => $29 => $sp - rt: 0x1d => $29 => $sp - IMM: 0x18 => 24 - Dus: addiu sp,sp,24
39 .rdata.align 2 Voorbeeldprogramma $LC0:.ascii.text.align.globl.ent.type "hello\000".frame addiu sw sw move lui $fp,24,$31 $sp,$sp,-24 $31,20($sp) $fp,16($sp) $fp,$sp $2,%hi($LC0) addiu $4,$2,%lo($LC0) jal nop puts move move lw lw addiu j nop $2,$0 $sp,$fp $31,20($sp) $fp,16($sp) $sp,$sp,24 $31 2 main main main: # # # # # # # # # # # Verlaag stack pointer met 24 bytes Sla register $31 op (return addr). Sla frame pointer op. $fp = $sp Zet hoge bits adres $LC0 in $2. Tel $2 en lage bits op. $4 bevat nu adres $LC0. $4 heet ook wel $a0. Jump-and-link puts(). Delay slot. # Zet 0 in $2 (return value). # $sp = $fp # Restore $31 # Restore $fp # Restore $sp # Jump $31 (return)
40 Programma's in het geheugen
41 Stack frames
42 Stack frames (2) Functies roepen vaak weer functies aan. Steeds weer wordt een stack frame toegevoegd.
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
Computerarchitectuur. H&P App. C. Pipelining
Computerarchitectuur H&P App. C. Pipelining Kristian Rietveld http://ca.liacs.nl/ Motivatie Pipelining is een techniek die tegenwoordig in iedere CPU wordt gebruikt om de performance te verbeteren. Idee:
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
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
Hoe werkt een rekenmachine?
Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type
Praktische Toets Computerarchitectuur
Praktische Toets Computerarchitectuur Oefentoets, december 2016 Examinator: dr. K. F. D. Rietveld De praktische toets is open boek. Echter zijn alleen het voorgeschreven tekstboek, of materiaal uitgeprint
Computerarchitectuur en netwerken. Memory management Assembler programmering
Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management
Hoe werkt een computer precies?
Hoe werkt een computer precies? Met steun van stichting Edict Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Overview Introductie SIM-PL Simulatietool voor werking computer
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
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
Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen
Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen
11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.
NOT NOT NOT NOT NOT NOT 9-09-7 Intro MMI The Digital World 2 Peter van Kranenburg Vandaag: Terugblik vorige week Werking CPU Soorten instructies Werking CPU Cache Pipelining Digitale representatie Tekst
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.
De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012
De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 Tanenbaum hoofdstuk 2 von Neumann - architectuur. Tanenbaum, Structured Computer Organiza4on, FiMh Edi4on, 2006 Pearson Educa4on,
Computerarchitectuur en netwerken. Memory management Assembler programmering
Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 12 september 2016 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management
Tentamen Computersystemen
Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:
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
FAT32 disk structuur 2007 stam.blogs.com
FAT32 disk structuur 2007 stam.blogs.com Master Boot Record De Master Boot Record is vrijwel hetzelfde voor alle besturingssystemen. Het ligt binnen de eerste sector van de harddisk: Cylinder 0, Head 0,
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
Linux Assembly Uitwerkingen van de vragen en opdrachten
Linux Assembly Uitwerkingen van de vragen en opdrachten The choice of a GNU generation Hoofdstuk 3 1. (a) Een system call is een functie geleverd door de kernel (het operating system, een interface tussen
scc = b) CD AB
Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,
Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)
TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)
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
Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??
Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:
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
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
Software Reverse Engineering. Jacco Krijnen
Software Reverse Engineering Jacco Krijnen Opbouw Inleiding en definitie Techniek Assemblers/Disassemblers Compilers/Decompilers Toepassingen Security Overige Softwarebeveiliging Piracy Anti RE technieken
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
Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)
TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)
Hoofdstuk 7. Computerarchitectuur
Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C
Samenvatting Computer Architectuur 2006-2007
Controletransferinstructies = Instructies die verandering brengen in de zuiver sequentiële uitvoering van de instructies. Ze doen dit door de instructiewijzer een andere waarde te geven. Ze kunnen met
slides2.pdf April 12,
Werking van CPU CSN CS2 CPU, I/O en Memory management Piet van Oostrum 12 april 2002 De ALU kan alleen eenvoudige operaties uitvoeren (bijv. twee getallen optellen, vermenigvuldigen of testen of iets >
Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?
Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering
Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
Getalformaten, timers en tellers
Getalformaten, timers en tellers S_CU CU S PV R CV DEZ CV_BCD S_ODT S TV BI R BCD 1 pagina 1 Getalformaten (16 bits) PG CPU BCD W#16#296 Voorteken (+) 2 9 6 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 Positieve getallen
ROM en RAM in een ROMforth
Albert Nijhof 24/06/2016 ROM en RAM in een ROMforth Vragen Twee HERE's? Voor een forth die in (Flash)ROM compileert is het uitgangspunt dat programmacode en onveranderlijke data naar ROM gaan en veranderbare
Bouwstenen voor PSE. Datatypes en Datastructuren
Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie
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
Indirecte adressering
Indirecte adressering 1 pagina 1 Absolute adressering - Directe adressering Operand Operand- Supplementaire Beschrijving adres toegangsbreedte (voorbeeld) I 37.4 byte, woord, Ingangen dubbelwoord Q 27.7
De computer als processor
De computer als processor DE FYSIEKE COMPUTER Componenten van de computerconfiguratie Toetsenbord Muis Scanner Microfoon (Extern geheugen) Invoerapparaten Uitvoerapparaten Monitor Printer Plotter Luidspreker
Dealer instructie. SE serie 2008 versie 009
Dealer instructie SE serie 2008 versie 009 Inhoudsopgave 1 Dealer F.A.Q... 3 1.1 Dealer frequently Asking Questions... 3 1.2 Initalisatiecodes... 4 1.3 Grafisch bericht (=grafische commerciële boodschap)...
Computerarchitectuur en netwerken Toets 1 4 okt
11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer
COMP 4580 Computer Security
COMP 4580 Computer Security Software Security I Dr. Noman Mohammed Winter 2019 Including slides from: David Brumley & others! Software Security Software Lifecycle Requirements Design Implementation Testing
SIM-PL, auteursomgeving voor digitale componenten
SIM-PL, auteursomgeving voor digitale componenten Ben Bruidegom en Wouter Koolen-Wijkstra, AMSTEL-insituut UvA Samenvatting SIM-PL is een auteursomgeving om componenten te construeren en te simuleren voor
Stacks and queues. Hoofdstuk 6
Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked
Inhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation
2 Inhoudsopgave Optimalisatie van de mmips pc Sander Stuijk Veel gestelde vragen Hoe moet ik forwarding implementeren? Hoe moet ik clipping implementeren? Waarom is mijn simulatie zo traag? Hoe kan ik
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
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
Tentamen Computersystemen
Tentamen Computersystemen baicosy06 2e jaar bachelor AI, 2e semester 23 september 2013 13u-15u IWO 4.04A (blauw), Academisch Medisch Centrum, Meidreef 29, Amsterdam ZuidOost Het is niet toegestaan communicatieapparatuur
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
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
Computerarchitectuur en Netwerken. Computerarchitectuur
Computerarchitectuur en Netwerken 1 Computerarchitectuur Lennart Herlaar 2 september 2015 Opbouw van het vak Eerst (6 keer) over de opbouw van computer en operating system Collegedictaat Systeemarchitectuur
slides12.pdf December 14, 2001 1
Onderwerpen Inleiding Algemeen 12 Getallen Getallen Representaties Rekenen Problemen Piet van Oostrum 12 dec 2001 INL/Alg-12 1 X INL/Alg-12 1 X Getallen Soorten getallen Wat is een getal? Experiment: met
Examen computerarchitectuur
Examen computerarchitectuur Vrijdag 6 juni 2003, 8u30 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor
DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie
www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:
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
int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ }
1 Functies ( ) voorbeeld: int power(int base, int n) int i, p; p = 1; for ( i=1, i
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies
17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke
VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis
Burg.Geyskensstraat 11 3580 BERINGEN De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Versie: vrijdag 2 november 2007 2 Toegepaste informatica 1 De Microprocessor Zowel
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen
Debugging in embedded en native systemen met GDB
Debugging in embedded en native systemen met GDB A.M. ten Doesschate July 15, 2015 Abstract Een korte beschrijving : intro gebruik met welke tools en hulpmiddelen van de GDB setup en een summier aantal
Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015
Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015 Blokdiagram ATmega32 2 ATmega32 Features 131 instructies 32 KB Flash ROM programmageheugen 2 KB Intern
Hoofdstuk 2. De Von Neumann-architectuur
Input Interface Output Interface Informatica Deel III Hoofdstuk 2 De Von Neumann-architectuur 2.1. Organisatie. De overgrote meerderheid der digitale computers zijn georganiseerd zoals weergegeven in fig.
18 Embedded systemen 1
18 Embedded systemen 1 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15(pc) NZCV CPSR Figuur 18.1 ARM-programmeermodel Byte 0 Byte 1 Byte 2 Byte 3 Byte 3 Byte 2 Byte 1 Byte 0 Figuur 18.2 Endian conversie
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.
een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers
Computerarchitectuur. Hoofdstuk 3: Instruction-Level Parallelism
Computerarchitectuur Hoofdstuk 3: Instruction-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Instruction-level Parallelism Doel: gebruik maken van potentiële overlap tussen opeenvolgende instructies.
Syntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Inhoud vandaag. Interrupts. Algemeen ARM7 AIC
Inhoud vandaag Interrupts Algemeen ARM7 AIC Interrupts Wat is een interrupt? Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden
Add the standing fingers to get the tens and multiply the closed fingers to get the units.
Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first
Les B-03 Technologie: de werking van de processor
Les B-03 Technologie: de werking van de processor 2008, David Lans 3.0. Doel De gebruiker van een computer voert begrijpelijke informatie in (opdrachten, procedures, programma s, gegevens, bestanden) en
Inleiding Visual Basic en VBA. Karel Nijs 2009/01
Inleiding Visual Basic en VBA Karel Nijs 2009/01 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Ms Excel 2003 Online hulp: http://www.ozgrid.com/vba/ http://msdn.microsoft.com/en-us/library/sh9ywfdk(vs.80).aspx
ALGORITMIEK: answers exercise class 7
Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord
Bij dit hoofdstukken horen geen opgaven.
6. Programmeertalen Een computer begrijpt eigenlijk alleen maar binaire code (bestaande uit 1 en 0). Om hem/haar makkelijk opdrachten te geven zijn programmeertalen ontwikkeld. Deze moeten een goed gedefinieerde
High Performance Computing
High Performance Computing Kristian Rietveld ([email protected], kamer 138) Groep Computer Systems High-Performance Computing Optimizing compilers (generieke codes, maar ook specifieke rekenkernels). Parallel
Tentamen 17 augustus 2000 Opgaven Computerarchitectuur
Tentamen 17 augustus 2000 Opgaven - 1 - Computerarchitectuur Tentamen Computerarchitectuur (213005) 17 augustus 2000 2 bladzijden met 5 opgaven 3 antwoordbladen Het raadplegen van boeken, diktaten of aantekeningen
Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)
Planning 1. Mini College 2. Introductiecursus Imperatief Programmeren 3. Crash and Compile (vanaf 17:00 uur) Geschiedinis van de Codemonkeys imperatief programmeren voor beginners Geschiedenis van de Codemonkey
assembleertaal F. Vonk versie
2017 assembleertaal F. Vonk versie 1 8-8-2017 inhoudsopgave 1. inleiding... - 3-2. Zeer Eenvoudige Processor v2 (ZEP2)... - 4-3. de code, simulator en geheugen... - 6-4. optellen... - 11-5. vermenigvuldigen...
