Antalet operander/instruktion z0 - stackmaskin yADD - adderar värdena överst på stacken, tar bort dem och lägger dit summan z1 - ackumulatormaskin yADD.

Slides:



Advertisements
Liknande presentationer
En övning i att formulera sig matematiskt
Advertisements

IT för personligt arbete F5
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Hur lång tid tar det att räkna till en miljon?
NP-fysik.
En genomgång av spelet: Dubbelkrig-Grön
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Markera/välj bilden till höger och kopiera den till klippbordet med ctrl-c. Flytta till Photoshop och öppna ett nytt dokument i menyn eller med.
Gratis mallar – Mallar.info
Föreläsning1. • Boken?!?! • Vad är ett program? • Kompilerande-Interpreterande • Programmeringsmiljö • Hello World! • Att programmera och ett enkelt program.
En övning i att formulera sig matematiskt
Funktionen SA10-Grupper. Följande typer av grupper finns: - Grupp i kurs hör alltid ihop med en kurskod - Grupp i program hör alltid ihop med en programkod.
William Sandqvist Datorteknik övning 2 Subrutinanrop William Sandqvist
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Skrivning i cacheminnen zTräff zMiss zSkrivbuffert.
Laplacetransformering av elektriska kretsar (komplement till Kap 3 ”Modellering av dynamiska system”) Vi antar att alla begynnelsevärden är noll vid t=0.
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
9 September 2014IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
© Patrick Blackburn, Johan Bos & Kristina Striegnitz Föreläsning 3: rekursion Teori –Introducera rekursiva definitioner i Prolog –Fyra exempel –Visa att.
Byxor till handdocka.
Metod 2 Beräkna resultanten för två vinkelräta krafter
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Metoder för att räkna addition och subtraktion
Vad består en atom av? Vilka atomer finns det? Hur hittar man atomer?
Statistik Tabeller och diagram.
Grundläggande programmering
1 Mer om Nr 7 Rekursion, listor, typer och funktioner.
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
Programmering efter tillståndsdiagram
Styrteknik: MELSEC FX och numeriska värden PLC2C:1
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Att skriva dikter.
HOST IDENTITY PROTOCOL - EN KANDIDAT FÖR FRAMTIDENS INTERNET PROTOKOLL Jonny Mattsson IT 4.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Vad kännetecknar ett sekvensnät?
Varför inte köra alla instruktioner samtidigt? zMåste vänta på: yresultat från andra instruktioner yatt resurser i processorn ska bli lediga yatt få veta.
Rekursion. En metoddefinition som innehåller ett anrop av sig själv kallas rekursiv.
5 8 Sätt in talen 1 till 9 i den magiska fyrkanten så att
Det finns ett värde i att vara lika i en förening!
Varför inte köra alla instruktioner samtidigt? zMåste vänta på: yresultat från andra instruktioner yatt resurser i processorn ska bli lediga yatt få veta.
Aritmetik 3.4 M 8.2 E 2.2. dagens föreläsning operatorer för aritmetik tillämpningar.
1 Föreläsning2 Operativsystem. 2 Talsystem Decimal (bas 10): 0,1,2,…,8,9 Binär talsystem (bas 2): endast 1 och 0 Hexadecimal talsystem (bas 16): 0,1,…9,A,…,E,F.
Logikprogrammering 23/10 Binära träd In- och uthantering David Hjelm.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
Styrteknik 7.5 hp distans: PLC-delprogram, tasks TASKS:1
Artist’s books. Gestaltningsproblem: Utgå från en bok och gör den till ett konstobjekt. Tematiskt innehåll: berätta något om dig själv.
Föreläsning2 Operativsystem.
faktor X faktor = produkt
DA7351 Programmering 1 Databas SQL Föreläsning 24.
Näset P-05 Föräldramöte 3 maj 2015 Näset P-05 Föräldramöte 3 maj 2015.
Addition-uppställning
Lägesmått. Lägesmått Vad är lägesmått? Sammanfatta en mängd data Exempelvis hur mycket veckopengar får elever som går i åk7… En klass består av ca.
Addition-uppställning
1. Kontinuerliga variabler
X 5.5 Lägesmått från tabeller och diagram
Indexberäkning Svarsalternativ Poäng per alternativ Antal svar
X Lägesmått För att beskriva ett statistiskt material använder vi oss av lägesmått. De vanligaste lägesmåtten är medelvärde, median och.
Fredagsmys Vecka 50.
Kapitel 2, mattespananrna
Mardrömmen för photoshopanvändaren…
Grundläggande datavetenskap, 4p
Guide till Fristående tidbok
Deltagarna börjar med att skriva in sina namn i resultattabellen…
Y 5.4 Tabeller och diagram Frekvens och relativ frekvens
Rubriklayout Underrubrik.
Z 1.3 Räkna med negativa tal
Presentationens avskrift:

Antalet operander/instruktion z0 - stackmaskin yADD - adderar värdena överst på stacken, tar bort dem och lägger dit summan z1 - ackumulatormaskin yADD X - adderar innehåll i ackumulatorn och innehåll i minnescell X, summan i ackumulatorn z2 - tvåadressmaskin - ADD R1,R2 z3 - treadressmaskin - ADD R1 <- R2 + R3

Antal operander i minnet för en vanlig instruktion z0 - registermaskin (som MIPS) z1 - register-minne (x86) z2 - minne-minne (ovanligt numera) z3 - minne-minne (också ovanligt)

Exempel: stackmaskin zKod för C = A + B ypush A; innehåll i minnescell ; med adress A läggs på stacken ypush B yadd ypop C; översta värdet på stacken tas ; bort och skrivs till minnescell ; med adress C

Exempel: ackumulatormaskin z1 operand/instruktion, 1 minnesadress/instruktion zKod för C = A + B yLoad A; innehåll i minnescell med ; adress A kopieras till ackumulator yAdd B yStore C; innehåll i ackumulator kopieras ; till minnescell med adress C

Exempel: registermaskin av register-register-typ z3 operand/instruktion, 0 minnesadresser/instruktion zKod för C = A + B yLoad R1,A yLoad R2,B yAdd R3 <- R1 + R2 yStore R3,C

De första datorerna var ackumulatormaskiner zVarje bit som skulle lagras i processorn krävde flera elektronrör zInstruktioner kan kodas enkelt och ändå kompakt

Stackmaskiner - eleganta men opraktiska zEndast två värden är enkelt tillgängliga zEtt värde som återanvänds i ett uttryck kan behöva läsas från minnet flera gånger zEnkelt att kompilera uttryck till program för stackmaskin

Register-register-maskin (Risc) zEnkelt instruktionsformat - lätt att avkoda zMånga register - lätt att kompilera för zLätt att konstruera pipelinade processorer zProgrammen större än för andra typer yinstruktionerna är inte kompakt kodade yprogrammen innehåller fler instruktioner än för datorer med operander i minnet

Operandutpekning zOperand: värde som används i beräkningen zImmediate: operanden finns i instruktionen zRegister: operanden finns i ett register zOm operanden finns i minnet så existerar effektivadressen: adressen till den minnescell där operanden finns

Varför immediate behövs zFör konstanter zKonstanterna finns i koden, bra eftersom yvärdet är snabbt tillgängligt yvärdet tar inte upp plats i ett register ykoden ändras inte under körning, "konstanter" som ändras kan ge svårfunna fel

Goda tumregler för processorkonstruktörer zOrtogonalitet: operationer, datatyper, adresseringssätt ska kunna väljas oberoende av varandra yunderlättar kodgenereringen zErbjud byggblock, inte specialinstruktioner zGör det lätt att se hur snabb koden blir

Multimediainstruktioner zGrafik använder små heltal (8 bitar) z8 små heltal ryms i ett 64-bits register zOperationer utförs på 8 tal samtidigt zBryt carry-kedjan, använd vanliga ALU:n zIdéer lånade från vektordatorer, men de var mer flexibla

Multimediainstruktionernas brister zVektorelement som ska laddas till register är ofta utspridda i stället för intilliggande zVektordatorer: load/store för utspridda data ystrided addressing: t ex vart 3:e element ygather/scatter: en vektor med pekare anger vilka vektorelement som ska laddas/lagras zMultimediatillägg saknar denna adressering

En dålig idé: delayed branch zDefinition: instruktionen efter ett villkorligt hopp utförs alltid, även om hoppet tas zIdealiskt i femstegspipeline zProblematiskt i alla andra pipelines

En dålig idé: registerfönster zEn Sparc-processor har register, men bara 32 i taget är tillgängliga zR0-R7 är globala (och R0 innehåller alltid 0) zR8-R31 ingår i registerfönstret zFönstret ändras i steg om 16 med instruktionerna save/restore

save (funktionsanrop) restore (retur från funktion)

Varför registerfönster är en dålig idé zRegisterfönster optimerar anrop till och retur från funktioner/procedurer/metoder zVid processbyte har man register som ska sparas (R0 är borträknat) zProcessbyte inträffar oftare än funktionsanrop

Dåliga idéer kan vara bra zEtt par dåliga idéer räcker inte för att slå ihjäl en instruktionsuppsättning zDelayed branching bidrog till att höja prestanda när Risc var nytt och okänt zRegisterfönster skapade intresse för Sparc zMed tiden får man tillräckligt med kisel för bra prestanda trots gamla dåliga idéer