Introduktion til Computerarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
|
|
|
- Pia Holmberg
- 9 år siden
- Visninger:
Transkript
1 Introduktion til Computerarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1
2 Formål med dagens forelæsning Kurset læringsmål og emner folk og form eksamen Området maskinarkitektur 2
3 Computerarkitektur Beskrivelse At give den studerende kendskab til computeres opbygning og virkemåde. Herunder hvorledes en computer kan opfattes som niveauer af abstrakte maskiner realiseret i hardware og software [...] Læringsmål Deltagerne skal ved afslutningen af kurset kunne: forklare opbygningen af computere som niveauer af virtuelle maskiner, beskrive formål, opbygning og begreber på de enkelte niveauer, anvende begreber og programmere på de enkelte niveauer. Praktiske færdigheder I kommer til at programmere i (symbolsk) maskinkode på forskellige maskinarkitekturer I kommer til at udvide mikroprogrammer, så en CPU får nye instruktioner 3
4 Undervisningsmateriale Andrew S. Tanenbaum & Todd Austin Structured Computer Organisation (SCO) 6. udgave, Pearson-Prentice-Hall, 2012 Må, i modsætning til computere, medtages til eksamen Derudover diverse noter Vejledninger og ugesedler hentes via Blackboard-siderne. Forelæsninger livecastes og videopodcastes hvis alt går vel (best effort! Ingen garanti) så hurtigt som muligt og senest inden næste forelæsning typisk samme dag 4
5 Øvelseshold og bemanding Fremgår af kursushjemmesiden Instruktorer Mads Buch, Asger Hautop Drewsen, Kasper Sacharias Roos Eenberg, Mikkel Lykke Jørgensen, Kenneth Kaiser Kudsk, Christoffer Øland Skovgaard, Philip Tchernavskij & Jeppe Vinberg Holdbytte forudsætter, at man finder nogen at bytte med Såfremt I ikke er blevet sat på et hold, så mød op på det, der passer jer bedst I skal selv tilmelde jer til hold og gruppe på Blackboard vær sikker på at vælge rigtigt! vent til første TØ med at tilmelde jer en gruppe BB smerten er langt mindre, hvis tilmeldningen foregår koordineret! 5
6 Ugesedler og opgaver Ugeseddel offentliggøres løbende på hjemmesiden: Læsestof for fredagens forelæsning Opgaver til øvelser i den efterfølgende uge Tavle- og diskussionsopgaver Ugeopgaver Ugeopgaver bidrager til eksamenskarakteren og skal laves i grupper. Dan grupper af 2-3 personer ved første øvelsesgang. Grupper er faste og kan ikke gå på tværs af øvelseshold. 6
7 Eksamen Forudsætning kræver at man har fået mindst 25 point for sine ugeopgaver Eksamensformen er multiple choice (dvs. skriftlig). eksamen varer 60 minutter Karakteren beregnes som en vægtet sum af ugeopgaver og eksamen Selvom det er multiple choice er det ikke en test af simpel paratviden 7
8 Eksempel på eksamensspørgsmål 8
9 Ugeopgaver: En del af eksamen Fordi ugeopgaverne indgår i den endelige karakter, tæller afskrivning mv. som eksamenssnyd Hvis vi opdager svindel, er vi forpligtiget til at anmelde det til rektor Da det er gruppeopgaver, er alle medlemmer ansvarlige, og bliver derfor straffet ens 9
10 Oversigt Kurset Introduktion til maskinarkitektur og -niveauer Computeren opbygning 10
11 Hvad er en computer? En maskine, der udfører beregninger angivet som instruktioner i et program 11
12 Hvad er en computer? Maskine opbygget af alt fra mekanik, relæer, radiorør, og (i nutiden) transistorer. Fremtidens maskiner kan være optiske, carbonnanofibre, DNA eller superpositioner af afkølede atomer i kvantecomputere Instruktioner simple operationer: Læg to tal sammen, sammenlign to værdier, flyt en værdi fra ét sted til et andet, Program en sekvens af instruktioner. Skabt direkte af et menneske, eller (typisk) indirekte v.hj.a. en oversætter eller fortolker 12
13 Computergenerationer 0. generation: Mekaniske computere ( ) 1. generation: Radiorør ( ) 2. generation: Transistorer ( ) 3. generation: Integrerede kredsløb (IC) ( ) 4. generation: Højt integrerede kredsløb (VLSI) (1980- ) 5. generation: Lav energi, pervasive computing, IT i alting (nu og altid) 13
14 Moore s lov CPUer og hukommelse opbygges af transistorer Grundet bedre produktionsformer fordobles transistortætheden ca. hver 18. måned Det giver dobbel kapacitet, og ca. 40% højere hastighed da transistorerne kommer tættere på hinanden 14
15 Computere! 2007: Apple iphone. Touch GUI success ARM v7: 1994 Intel Pentium: : PalmPilot. Personal Digital Assistant Intel 80386: : Apple Macintosh. Første udbredte GUI. MIPS R2000: 1985 VLSI: : IBM PC. Den mest successrige platform til dato. Intel 8086: : Apple ][: En af de første udbredte personlige computere 1965: IBM S/360: Første, indbyrdes kompatible, familie af computere 1964: CDC 6600: Første supercomputer. 1 MFLOPS Integreret kredsløb: : DEC PDP-1: Første successrige interaktive computer words, 200 khz Transistor: : EDSAC. Første von Neumann computer. Program gemt i lager. 1946: ENIAC: Første rigtige computer. Radiorør. Programmeres med ledninger og kontakter. 5 khz 1941: Konrad Zuse Z3: Første fungerende, programmérbare relæbaseret computer (64 words, 5,3 hz) 1834: Babbage Analytical Engine - mekanisk computer, forventes færdigbygget i (~675 bytes, 7 hz) 15
16 Multilevel maskiner Vi ønsker at programmere computere, men ikke på computerens præmisser dvs. den rå hardware bestående af gates og transistorer adresseret v.hj.a. nuller og ettaller (eller kabler og kontakter) det gjorde man i begyndelsen og det er et helvede Løsning: Skab en virtuel maskine, der er mere letprogrammerbar, og som kan køre på maskinen den skal skrives én gang per maskine En virtuel maskine definerer instruktioner og datatyper, og er, rent beset, blot endnu en computer, som vi kan skrive virtuelle maskiner til, som var dén en fysisk computer som bliver mere og mere lettilgængelig og, indrømmet, langsommere og langsommere, som vi putter lag på lag på lag på lag af abstraktioner 16
17 Virtuelle/Abstrakte maskiner Level n Virtual machine Mn, with machine language Ln Programs in Ln are either interpreted by an interpreter running on a lower machine, or are translated to the machine language of a lower machine Level 3 Level 2 Level 1 Virtual machine M3, with machine language L3 Virtual machine M2, with machine language L2 Virtual machine M1, with machine language L1 Programs in L2 are either interpreted by interpreters running on M1 or M0, or are translated to L0. Programs in L1 are either interpreted by interpreters running on M0, or are translated to L0. Level 0 Actual machine M0, with machine language L0 Programs in L0 can be executed directly by the electronic circuits 17
18 Multilevel maskiner Hardware og software er logisk ækvivalente 18
19 Moore s lov og multilevel maskiner Med den øgede hastighed og kapacitet har man igennem computerens historie gradvist kunnet skabe højere og højere lag af abstraktioner I udvikling brug af højniveau programmeringssprog I anvendelse rige grafiske grænseflade med mange forskellige modaliteter og interaktionsformer Man har også flyttet funktionalitet fra ét niveau til et andet ofte fra hardware til software og tilbage igen 19
20 Det digitale niveau Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation (assembler) Begreber transistorer, porte (gates), kombinatoriske kredsløb, lagerkredse, høj og lav strøm, bit, digitale værdier, Fordele hurtigt Ulemper meget tidskrævende at udvikle Level 3 Level 2 Level 1 Level 0 Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level 20
21 Typisk opbygning af en computer von Neumann maskinarkitektur: First Draft of a Report on the EDVAC, John von Neumann, 1946 Afvikler programmer gemt i lageret Memory Central Processing Unit (CPU) Control Unit Arithmetic Logic Unit (ALU) Registers Input/Output devices Control Unit Arithmetic Logic Unit Accumulator Input Output Main Memory Disk Printer Bus 21
22 von Neumann maskinen A + B Begreber ALU, registre, Program Counter, instruktion sæt, program (i form af maskinkode) og data gemt i hukommelse, ydre enheder tilgået over bus A B Registers Programmer er blot data, der hentes fra lageret og fortolkes af CPUen A B ALU Input registers ALU input bus Der er, basalt set, ikke sket noget med computeres arkitektur siden da udover at de er blevet lidt hurtigere, en anelse billigere og har opnået en vis udbredelse ALU A + B ALU output register 22
23 von Neumann maskinen fortolker maskinkode 1. Fetch the next instruction from memory into the instruction register. 2. Change the program counter to point to the following instruction 3. Determine the type of instruction just fetched. 4. If the instruction uses a word in memory, determine where it is. 5. Fetch the word, if needed, into a CPU register. 6. Execute the instruction. 7. Go to step 1 to begin executing the following instruction. Hver iteration af løkken udfører en maskininstruktion 23
24 Mikroprogrammering Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation (assembler) Begreber busser, registre, dataoverførsel, kontrollager, mikroordrer, clock cykler, fetch-decode-execute, Fordele (meget) nemmere end det digitale niveau Ulemper stadig besværligt Level 3 Level 2 Level 1 Level 0 Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level 24
25 Mikroprogrammer 0x64 isub pop two words from stack; push their difference: bipush 20 // 20,... bipush 12 // 12,20,... isub // 8, (Symbolsk) maskinkode Main1... isub1 isub2 isub3 PC=PC+1; fetch; goto (MBR) MAR=SP=SP-1; rd H=TOS MDR=TOS=MDR-H; wr; goto Main1 (Symbolsk) mikrokode 25
26 Mikroprogrammeringens betydning Mikroprogrammet fortolker et instruktionssæt (ISA) Introduktionen af et standardiseret instruktionssæt var en revolution i sin tid udvikl til dette ISA, og så kan dine programmer køre på alle matchende maskiner, uanset hvordan de realiserer udførslen af koden IBM System/360 ( i hardware, virtuel lige siden) koden blev portabel, udviklingsinvesteringen beskyttet IBM solgte masser af mainframes (og har gjort det lige siden) ISA implementation Maskinkodeprogram ISA implementation En slags hardware En anden slags hardware 26
27 Mikroprogrammeringens udvikling Introduktionen af mikroprogrammer gjorde udviklere langt mere produktive med tiden skabte man flere og flere instruktioner for at lette udviklernes arbejde yderligere dette medførte øget kompleksitet og begrænset ydelse Alternativet blev Reduced Instruction Set Computer (RISC) CPUer, som eliminerede mikroprogrammering til fordel for simple instruktioner, der udførtes direkte af hardwaren dette øgede hastigheden betragteligt, men med tabet af ISA kompabilitet dvs. maskinkoden skulle skrives om I dag: Hovedparten af instruktioner udføres direkte i hardware Intels gamle instruktionssæt, der går tilbage til de tidlige 70ere har overlevet men oversættes i realiteten til RISC-agtige instruktion på CPUen (siden Pentium Pro) 27
28 Typer af CPUer Mikrokontrollere billige, kontrol af ydre enheder Mobile CPUer lavt strømforbrug Desktop CPUer høj performance Med forskellige brugsmønstre og markedsforhold kommer forskellige krav til CPUernes arkitekturer 28
29 Principper for udvikling af moderne CPUer Alle instruktioner udføres direkte af hardwaren Maksimér raten hvormed instruktioner påbegyndes Instruktioner skal være lette at afkode Begræns lageradgang til specialiserede load og store instruktioner Masser af registre 29
30 Pipelining: Påbegynd så mange instruktioner som mulig En instruktion indlæses, fortolkes og udføres i bestemte, diskrete trin (stages) Pipelining: Gå i gang med den næste instruktion, så snart et trin er færdigt samlebåndsarbejde for CPUer kan øge hastigheden dramatisk den enkelte instruktion tager samme tid, men en ny instruktion per clock cycle Udfordring: forudsætter, at vi løbende kan fodre CPUen med instruktioner hvis vi skal vente på noget, falder farten dramatisk Pentium 4 31 trin Core: 16 trin 30
31 Superscalar: Lav flere ting samtidigt flere pipelines Udnyt, at vi har masser af transistorer til at dublere funktionalitet på CPUen kan i princippet være n gange så hurtig Udfordringer instruktionerne skal være indbyrdes uafhængige sætter nye krav til oversættere og fortolkere for maksimal ydelse 31
32 Superscalar: Flere funktionelle enheder En del trin er relativt simple, mens andre kan tage længere tid hvis vi skal have en effektiv pipeline, får vi derfor behov for flere af de dyre trin Den typiske model i dag 32
33 Data-parallelle CPUer: MANGE funktionelle enheder Hvis man har behov for at udføre den samme operation på megen data, kan det betale sig at have massive mængder af funktionelle enheder (cores) Typisk er GPUer bygget på denne måde Voldsom hurtig til specialiserede opgaver, specielt grafik og multimedie I dag ofte sammenbygget med konventionelle CPUer 33
34 Instruktionssætniveauet Level 5 Problem-oriented language level Begreber lager, lagerceller, registre, ordrer, ordreformat, Programmer i symbolsk maskinsprog oversættes til absolut maskinkode Program lagres som en sekvens af bitmønstre (absolut maskinkode) Den absolutte maskinkode fortolkes enten af et mikroprogram eller udføres direkte på processorens hardware Level 4 Level 3 Level 2 Level 1 Level 0 Translation (compiler) Assembly language level Translation (assembler) Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level 34
35 Pentium ordreformat Pentium ordreformatet er historisk betinget, kompliceret og variabel i længden (1-17 bytes). Vanskeligt at afkode for processoren. 35
36 JVM/IJVM ordreformat Den virtuelle maskine, der udfører Javaprogrammer og i reduceret udgave vores fokus i dette kursus Langt mere regelmæssigt kunne skabes uden at skulle tage hensyn til historien bipush 6 svarer til = 0x10 0x06 i absolut maskinkode 36
37 Symbolsk maskinsprog Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Begreber lager, lagerceller, registre, ordrer, systemkald, Fordele langt lettere at forstå end absolut maskinkode tilbyder (i princippet) den højeste ydelse for udvikleren Ulemper meget lavt niveau i forhold til almindelige programmeringssprog bundet til den enkelte CPU familie Level 3 Level 2 Level 1 Level 0 Translation (assembler) Operating system machine level Partial interpretation (operating system) Instruction set architecture level Interpretation (microprogram) or direct execution Micro-architecture level Hardware Digital logic level 37
38 Level 4: Symbolsk maskinsprog Højniveausprog oversættes til assembler symbolsk maskinsprog gcc -S -m32 -march=pentium towers.c javac towers.java; javap -c towers > towers.code Begreber Ordrenavne movl $6,%edx Registernavne %edx, %eax, %ebp, %esp Etiketter (labels).towers,.l3: Operander $-4, 16(%ebp) Direktiver.string Move... 38
39 towers.c #include <stdio.h> void towers(int n, int i, int j) { int k; } if (n == 1) printf("move a disk from %d to %d\n", i, j); else { k = 6 - i - j; towers(n-1, i, k); towers(1, i, j); towers(n-1, k, j); } apple./towers Move a disk from 1 to 3 Move a disk from 1 to 2 Move a disk from 3 to 2 Move a disk from 1 to 3 Move a disk from 2 to 1 Move a disk from 2 to 3 Move a disk from 1 to 3 int main(int argc, char *argv[]) { towers(3, 1, 3); return 0; } 39
40 towers.s (Pentium).file"towers.c".section.rodata.LC0:.string "Move a disk from %d to %d\n".text.globl towers.type towers: pushl %ebp movl %esp, %ebp subl $24, %esp cmpl $1, 8(%ebp) jne.l2 movl $.LC0, %eax subl $4, %esp pushl 16(%ebp) pushl 12(%ebp) pushl %eax call printf addl $16, %esp jmp.l4.l2: movl $6, %eax ; start k = 6 - i - j subl 12(%ebp), %eax ; eax = 6 - i subl 16(%ebp), %eax ; eax = 6 - i - j movl %eax, -12(%ebp) ; k = eax movl 8(%ebp), %eax ; start towers(n-1, i, k) decl %eax ; eax = n-1 subl $4, %esp pushl -12(%ebp) ; k pushl 12(%ebp) ; i pushl %eax ; n-1 call towers addl $16, %esp subl $4, %esp pushl 16(%ebp) pushl 12(%ebp) pushl $1 call towers addl $16, %esp movl 8(%ebp), %eax decl %eax subl $4, %esp pushl 16(%ebp) pushl -12(%ebp) pushl %eax call towers addl $16, %esp 40
41 Pentium registre Værdier kan gemmes i registre (x86 er en register maskine) movl $6, %eax ; start k = 6 - i - j subl 12(%ebp), %eax ; eax = 6 - i subl 16(%ebp), %eax ; eax = 6 - i - j movl %eax, -12(%ebp) ; k = eax Grundet bagudkompabilitet er der ret få synlige registre, og nogle af dem kan anvendes både som 8-, 16- og 32-bit registre samt 64-bit nu om stunder 41
42 Pentium stakken Værdier kan også gemmes på stakken movl $6, %eax ; start k = 6 - i - j subl 12(%ebp), %eax ; eax = 6 - i subl 16(%ebp), %eax ; eax = 6 - i - j movl %eax, -12(%ebp) ; k = eax Hvert kald af towers har sit eget stakafsnit (stack frame), der udpeges af ebp registret k ebp-12 ebp i j ebp+12 ebp+16 42
43 Java Virtual Machine Processoren, som Java bytecode kører på Blev defineret sammen med Java Ikke en hardwareprocessor, altid virtuel (undertiden med hardwarestøtte) Hvorfor virtuel maskine? JVM skal porteres én gang til en ny maskine, derefter kan alle Javaprogrammer (i princippet) kører på den pågældende platform 43
44 towers.code (JVM) public static void towers(int, int, int); Code: 0: iload_0 1: iconst_1 2: if_icmpne 42 5: getstatic #2; //Field [ ]PrintStream; 8: new #3; //class java/lang/stringbuilder 11: dup [ ] 42: bipush 6 // begin k = 6 - i - j. stack = 6 44: iload_1 // stack = i, 6 45: isub // stack = 6 - i 46: iload_2 // stack = j, 6 - i 47: isub // stack = 6 - i - j 48: istore_3 // k = 6 - i - j 49: iload_0 // begin towers(n-1, i, k) 50: iconst_1 // stack = n, 1 51: isub // stack = n : iload_1 // stack = i, n : iload_3 // stack = k, i, n
45 JVM stakken JVM er en stakorienteret maskine 42: bipush 6 // begin k = 6 - i - j. stack = 6 44: iload_1 // stack = i, 6 45: isub // stack = 6 - i 46: iload_2 // stack = j, 6 - i 47: isub // stack = 6 - i - j 48: istore_3 // k = 6 - i - j Hvert kald af towers har sit eget stakafsnit (stack frame), der udpeges af LV stakorienteret maskiner er simplere konceptuelt (dyb stak vs. få registre), men begrænses af latency til hukommelsen så i praksis foregår ting og sager naturligvis i faktiske registre på den egentlige hardware LV i LV+1 j LV+2 k LV+3 45
46 Opsummering En computer er som udgangspunkt en fysisk maskine opbygget af digitale kredsløb CPU-designere kan udnytte mulighederne for parallel udførsel på hardwareniveauet til at maksimere ydelsen Programmer udføres typisk af virtuelle maskiner, der direkte eller indirekte (gennem andre virtuelle maskiner) kører ovenpå den fysiske maskine En virtuel maskine kan programmeres som en fysisk maskine, og kan tilbyde rigere abstraktioner end lavere maskiner 46
Maskinarkitektur. Lars Kristensen [email protected]. Christian Storm [email protected]. dmasark 1
Maskinarkitektur Lars Kristensen [email protected] Christian Storm [email protected] dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
Computere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen ([email protected]) Jens Bennedsen ([email protected]) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Niveauer af abstrakte maskiner
Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet
Introduktion til Operativsystemer
Introduktion til Operativsystemer 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Formål Hvad er en computer? Operativsystemets rolle Multitasking 2 Formål Introduktion af de basale
Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Mikroarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1 Level 1: Mikrokode niveauet Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation
Operativsystemer - dopsys
Operativsystemer - dopsys Erik Ernst [email protected] dopsys 1 Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2 Praktiske oplysninger
Eksamen dcomnet Q2/2010. Navn
2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx
CPUer og maskinkode DM534. Rolf Fagerberg
CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal
Eksamen dcomnet 2012Q4. Årskortsnummer Navn
Eksamen dcomnet 2012Q4 Årskortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive årskort og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt svar per
Computerarkitektur. - en introduktion til computerarkitektur med LINDA
Computerarkitektur - en introduktion til computerarkitektur med LINDA [email protected] Faraz Butt [email protected] Mads Danquah [email protected] Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig
Eksamen dcomnet Q2/2012. Studiekortsnummer Navn
Eksamen dcomnet Q2/2012 Studiekortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt
Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]
Grundlæggende Algoritmer og Datastrukturer Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Algorithms & Architectures II
Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer
Pentium IA-32 Maskinarkitekturen
Pentium IA-32 Maskinarkitekturen 1 Historie (1) Starter i 1970 med udviklingen af Intel 4004: 2 Historie (2) Baglæns kompatibilitet tilbage til 8086. 3 Intel 4004 and Pentium 4 http://www.intel.com/museum/archives/index.htm
Processer og tråde. dopsys 1
Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys
Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...
Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens
Computerens Anatomi. Af Martin Arnetoft
Computerens Anatomi Af Martin Arnetoft Moores lov Moores lov siger, at antallet af transistorer på et stykke hardware over 18 eller 24 måneder fordobles. Denne lov bruges til at beskrive udviklingen indenfor
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)
Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads
Principper for Samtidighed og Styresystemer
Principper for Samtidighed og Styresystemer kursusintroduktion og Introduktion til Styresystemer René Rydhof Hansen Februar 2008 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 1
Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn
Computerarkitektur Eksamen 2014Q3 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION
dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)
dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal
3. Computerens opbygning.
3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere
Design af et ISA. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Design af et ISA Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Level 2: Maskinniveau (ISA) Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation
Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn
Eksamen Computerarkitektur 2013Q4 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE
COMPUTER ANATOMI 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE 1 Indholdsfortegnelse Kapitel 1: Opbygning s.2 Kapitel 2: CPU s.3 Kapitel 3: Motherboard s.4 Kapitel 4: Ram s.6 Kapitel 5: Grafikkort s.7 Kapitel
Niveauer af abstrakte maskiner
Det digitale niveau Niveauer af abstrakte maskiner Digitale kredsløb Logiske tilstande: (- V), (2-5 V) Kombinatoriske kredsløb Logiske tilstande: (- V), (2-5 V) Registre Logiske tilstande: (- V), (2-5
Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.
Computer Literacy Computer Literacy handler om at forstå hvad computer (hardware) og software kan gøre. Denne præsentation fokuserer kun på hardware februar 2002 Computerliteracy -hardware (15 dias) 1
Introduktion til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 [email protected] Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
Multiple Choice Prøver
Teori og Praksis for Multiple Choice Prøver Michael I. Schwartzbach Multiple Choice ved Datalogi Anvendt i mange datalogikurser siden 2006: Oversættelse Databaser Webteknologi Programmingssprog Dynamiske
Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1
Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words
Arduino Programmering
Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået
DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Niveauer af abstrakte maskiner
Det digitale niveau Niveauer af abstrakte maskiner Mikroarkitektur: Mic-1 Digitale kredsløb Logiske tilstande: 0 (0-1 V), 1 (2-5 V) Mikroarkitektur: Mic-1 Kombinatoriske kredsløb Logiske tilstande: 0 (0-1
Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Microcontroller, Arduino
Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen
Abstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Lær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
\ \ Computerens Anatomi / /
HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens
Det er muligt at chekce følgende opg. i CodeJudge: og
Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.
Teknologi historie Datateknologi, Hardware og software
Teknologi historie Datateknologi, Hardware og software Følgende fremstilling er delvis baseret på Dr. Paul E. Dunne s forelæsningsnotater. Notaterne findes på http://www.csc.liv.ac.uk/~ped/teachadmin/histsci/content.html
Introduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
Spar tid med struktureret programmering! Om PLC programmering
Spar tid med struktureret programmering! Om PLC programmering 1 MITSUBISHI PLC programmerings software Ved systemtekniker Helge Gulstad Tlf. Direkte: 46 74 01 61 Mob: 21 19 25 64 Mail: [email protected] 2
Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer
Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1 Stored-program
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Til dig som vil have et indblik i computeren
Vi håber du nu har fået indblik i computerens hardware. Til dig som vil have et indblik i computeren Brochuren er skrevet af Anders Bøge Paulsen, Betina Kopp Pedersen, Frederik Hejgaard Andersen og Oscar
Programmering i C Intro og grundlæggende C 5. marts 2007
Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR [email protected] Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner
Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)
Operativsystemer of C Efterår Virtuel hukommelse (kap. 9) 8// Planen for idag q Virtuel hukommelse. q Demand paging / page faults. q Sideudskiftningsalgoritmer. q Rammeallokering til processer. Ø Øvelser:
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Internettet. Teknisk viden om internettet Når teknisk udstyr, bl.a. computere, kommunikere med hinanden, foregår det via protokoller.
Internettet. Introen. De mange tusinde hjemmesider verden over gør det nemt at finde informationer, handle, chatte, køber rejser, skabe sociale relationer, finde arbejde og meget mere. Flere funktioner
Internt interrupt - Arduino
Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt
Projekt rapport. for. Zigbee kommunikation
Projekt: Zigbee kommunikation Dato: 24-02-2010 Afleverings Dato: 04-06-2009 Titel: Projekt rapport for Zigbee kommunikation 6. semester projekt i WEM1 ved Ingeniørhøjskolen i Århus Gruppe 2: 06709 Sean
Løsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
Microcontroller, Arduino
Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se
