Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

Relevanta dokument
Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Datorarkitekturer med operativsystem ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Grundläggande datavetenskap, 4p

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

Närliggande allokering Datorteknik

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

Datorarkitekturer med operativsystem ERIK LARSSON

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Digitala System: Datorteknik ERIK LARSSON

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

LV6 LV7. Aktivera Kursens mål:

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Läsminne Read Only Memory ROM

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Datorsystemteknik DVGA03 Föreläsning 8

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Processor pipelining genom historien (Intel i9-intel i7)

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Pipelining i Intel Pentium II

HF0010. Introduktionskurs i datateknik 1,5 hp

Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL!

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

TSEA28 Datorteknik Y (och U)

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Exempeltentamen Datorteknik, EIT070,

Datorteknik ERIK LARSSON

TSEA28 Datorteknik Y (och U)

Digitalteknik och Datorarkitektur 5hp

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

TSEA28 Datorteknik Y (och U)

Datorteknik ERIK LARSSON

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

ALU:n ska anslutas hur då?

Föreläsning 1: Intro till kursen och programmering

TSEA28 Datorteknik Y (och U)

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Datorteknik ERIK LARSSON

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Vad är programmering Jonas Lindemann

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

CPU. Carry/Borrow IX. Programräknare

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Pipelining i Intel 80486

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

Föreläsning 1: Intro till kursen och programmering

Lösningsförslag till Tenta i Mikrodator

Föreläsningsanteckningar 4. Pipelining

4. Pipelining. 4. Pipelining

Tentamen PC-teknik 5 p

Det finns en hemsida. Adressen är

Tentamen i Digitalteknik och Datorarkitektur DV1 5p

GPIO - General Purpose Input Output

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

TSEA28 Datorteknik Y (och U)

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Lösningar till tentamen i EIT070 Datorteknik

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

IT för personligt arbete F5

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Minnet från processorns sida Datorteknik

Föreläsningsanteckningar till Konstruktionsmetoder

Design av digitala kretsar

Så fungerar en dator

Digital Aritmetik Unsigned Integers Signed Integers"

Digital- och datorteknik

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Introduktion till programmering

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

Tentamen den 17 mars 2016 Datorteknik, EIT070

Hantering av hazards i pipelines

Transkript:

1

2

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas och instruk7onen exekveras. 3

4

Program kan beskrivas på olika abstrak7onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak7onsnivå, enkelt a= porta (fly=a 7ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram: svåra a= porta 7ll annan arkitektur, hårdvara synlig Olika processorer har olika instruk7onsuppsä=ningar. Men med många gemensamma egenskaper. Tidiga datorer hade väldigt enkla instruk7onsuppsä=ningar. De=a förenklade implementa7onen. När man bestämmer instruk7onsuppsä=ningen tas hänsyn 7ll hur komplext det blir och hur hårdvaran blir. I kursboken används instruk7onsuppsä=ning för MIPS Exempel på arkitekturer: Intel x86, IBM system/370, SUN Sparc Exempel på organisa7on: x86: Intel och AMD kan implementera en arkitektur på olika sä= (men, exekverbara program kan fly=as) 5

En processor innehåller normalt e= antal register. I registren kan olika saker lagras, t ex data och instruk7oner. Fördelen med register är a= de är snabbare än primärminne (RAM). För a= öka prestandan (7d för exekvering av e= program) kan en kompilator op7mera maskinkoden så a= mycket register används. Om en beräkning ska göras så kan kompilatorn välja a= mellanlagra värden i register istället för a= mellanlagra värden i minnet. Register kan vara av olika typ. En del register är synliga för användare, t ex: Helt generella, Specifika för data och instruk7oner Specifika för heltal och fly=al Speciella för t ex mul7plika7on/division för a= kunna hantera resultat eller för adressberäkningar: basregister och stackpekare Register kan också vara av typen: Kontroll och statusregister. Dessa register är Inte direkt kontrollerbara av programmeraren, t ex: Programräknare (program counter (PC)): adress 7ll den instruk7on som ska hämtas. Instruk7ons register (IR): senaste instruk7onen som hämtats Memory address register (MAR): adress som ska läsas/skrivas Memory buffer register (MBR): data som ska skrivas eller data som lästs från minnet Program status word (PSW): Olika flaggor (är avbro= på eller av, supervisor mode) Olika processorer har olika konfigura7on av register. Z8000: 16 generella register Intel 80X86, Pen7um: 4 data register, 4 index&adress register, 4 bas (segment) register PowerPC: 2 grupper av generella register. Varje grupp innehåller 32 register och en grupp är för heltal och en är fly=al MIPS: 32 stycken 32- bitars register där R0=0 (viss register används 7ll olika saker, t ex återhoppsadress lagras i R31. 2 extra register för mul7plika7on/division 9

10

15

16

17

E= minne används för a= lagra 1:or och 0:or. I minnet på bilden kan 8*8 = 64 bitar lagras. På varje plats, adress 0-7, kan 8- bitar med informa7on lagras. På varje plats kan alltså 1 byte lagras. Till exempel, på adress 3 finns byte nummer 3 och dessa data är 0011 0011. Det som lagras i minnet är 1:or och 0:or. Om dessa 1:or och 0:or är en instruk7on eller data beror på vad datorn vill a= det ska vara. Om datorn vill ha en instruk7on från plats 3, så kommer 00110011 tolkas som en instruk7on. Om datorn vill ha data från plats 3, så kommer 00110011 tolkas som data. För a= adressera e= minne med plats för 8 bytes, behövs 3 bitar (2^3=8). 18

19

20

21

22

E= minne används för a= lagra 1:or och 0:or. I minnet på bilden kan 8*8 = 64 bitar lagras. På varje plats, adress 0-7, kan 8- bitar med informa7on lagras. På varje plats kan alltså 1 byte lagras. Till exempel, på adress 3 finns byte nummer 3 och dessa data är 0011 0011. Det som lagras i minnet är 1:or och 0:or. Om dessa 1:or och 0:or är en instruk7on eller data beror på vad datorn vill a= det ska vara. Om datorn vill ha en instruk7on från plats 3, så kommer 00110011 tolkas som en instruk7on. Om datorn vill ha data från plats 3, så kommer 00110011 tolkas som data. För a= adressera e= minne med plats för 8 bytes, behövs 3 bitar (2^3=8). 23

E= minne används för a= lagra 1:or och 0:or. I minnet på bilden kan 8*8 = 64 bitar lagras. På varje plats, adress 0-7, kan 8- bitar med informa7on lagras. På varje plats kan alltså 1 byte lagras. Till exempel, på adress 3 finns byte nummer 3 och dessa data är 0011 0011. Det som lagras i minnet är 1:or och 0:or. Om dessa 1:or och 0:or är en instruk7on eller data beror på vad datorn vill a= det ska vara. Om datorn vill ha en instruk7on från plats 3, så kommer 00110011 tolkas som en instruk7on. Om datorn vill ha data från plats 3, så kommer 00110011 tolkas som data. För a= adressera e= minne med plats för 8 bytes, behövs 3 bitar (2^3=8). 24

Byteadresserat minne: Varje adress (0-7) pekar ut en byte som innehåller data. Till exempel, på adress 3 finns byte nummer 3 och dessa data är 0011 0011. 3- bitar behövs för a= peka ut byte i minne med 8 bytes (2 3 =8) Wordadresserat minne: Varje adress (0-1) pekar ut e= ord (word) some består av 4 bytes. Till exempel, på adress 1 finns byte 4, 5, 6, och 7. 1- bit behövs för a= peka ut ord (words) i minne med 8 bytes (2 3 =8) 25

26

27

En processor innehåller normalt e= antal register. I registren kan olika saker lagras, t ex data och instruk7oner. Fördelen med register är a= de är snabbare än primärminne (RAM). För a= öka prestandan (7d för exekvering av e= program) kan en kompilator op7mera maskinkoden så a= mycket register används. Om en beräkning ska göras så kan kompilatorn välja a= mellanlagra värden i register istället för a= mellanlagra värden i minnet. Register kan vara av olika typ. En del register är synliga för användare, t ex: Helt generella, Specifika för data och instruk7oner Specifika för heltal och fly=al Speciella för t ex mul7plika7on/division för a= kunna hantera resultat eller för adressberäkningar: basregister och stackpekare Register kan också vara av typen: Kontroll och statusregister. Dessa register är Inte direkt kontrollerbara av programmeraren, t ex: Programräknare (program counter (PC)): adress 7ll den instruk7on som ska hämtas. Instruk7ons register (IR): senaste instruk7onen som hämtats Memory address register (MAR): adress som ska läsas/skrivas Memory buffer register (MBR): data som ska skrivas eller data som lästs från minnet Program status word (PSW): Olika flaggor (är avbro= på eller av, supervisor mode) Olika processorer har olika konfigura7on av register. Z8000: 16 generella register Intel 80X86, Pen7um: 4 data register, 4 index&adress register, 4 bas (segment) register PowerPC: 2 grupper av generella register. Varje grupp innehåller 32 register och en grupp är för heltal och en är fly=al MIPS: 32 stycken 32- bitars register där R0=0 (viss register används 7ll olika saker, t ex återhoppsadress lagras i R31. 2 extra register för mul7plika7on/division 28

Det finns olika typer av processorer. 29

Aritme7ska och logiska funk7oner ukörs av ALU. ALU:n får via kontrollenheten (instruk7onen) reda på vilken opera7on (OP) som ska uköras. Exempel på opera7oner som ukörs av ALU:n är Add, sub, mul, div, and, or, xor En ALU tar som indata: IN1, IN2 och eventuella status signaler (t ex carry in) Och en ALU genererar: UT och eventuellt status signaler (t ex carry out) Bandbredd/has7ghet i ALU:n bestäms av hur stora tal som kan hanteras på in och utgångar. Om 8- bitar används kan t ex heltal mellan 0-255 adderas. Fler bitar kräver större bandbredd mellan processor och register. Beroende på vilken typ av processor, så ser ALU:n olika ut. Exempel på olika typer av processorer är: Central processing unit (CPU) fokuserar på a= lösa alla uppginer Digital signaling processor (DSP) fokuserar på a= lösa signalbehandlings problem Graphics Processing Unit (GPU) fokuserar på grafik Fly=als Processor Unit (FPU) fokuserar på fly=al 30

Kontrollenheten koordinerar processorn genom a= varje klockcykel ge rä= kontrollsignaler. Kontrollsignalerna ak7verar mikroopera7oner. En kontrollenhet kan vara hårdkodad (hardwired) eller mikroprogrammerad En hardwired består av kombinatorisk logik En mikroprogrammerad implementeras som en CPU i en CPU där varje instruk7on kan ses som e= program Hardwired är snabbare än mikroprogrammerad men svårare a= implementera. Kontrollenheter blir mer och mer mikroprogrammerade. 32

33

Processorn exekverar e= program. E= program är en sekvens av instruk7oner. Exekveringen av en instruk7on består av en instruk7onscykel, som består av flera steg: Fetch - Execute När processorn exekverar en instruk7on görs det som en sekvens av kontrollsteg (control step). I varje kontrollsteg görs en eller flera mikroopera7oner. Vid exekvering av mikroopera7oner, görs ex : Fly=a innehåll från e= register 7ll e= annat Fly=a innehåll 7ll/från e= register 7ll interface (system bus) så a= data kan fly=as 7ll och från minnen och I/O- enheter. Genomföra aritme7ska opera7oner med hjälp av ALU:n. 34

E= exempel på de steg som måste uköras för a= exekvera en instruk7on. Instruk7onen finns i minnet. Programräknaren (PC) håller koll på exekveringen och talar om på vilken plats nästa instruk7on ska hämtas. Processorn hämtar därför det som finns på den adress som PC innehåller. Processorn läser in den data som finns på adressplatsen och placerar bitarna i instruk7onsregisteret (IR). IR är e= register som innehåller den instruk7on som just nu exekveras. Bitarna i IR kollas av för a= ta reda på vad det är för instruk7on (avkodning). I det här fallet är den en fly= av data från en viss plats i minnet 7ll e= register. Processorn läser därför i minnet igen. De bitar som läses in är data och lagras i e= register. I de=a fall register 3. 35

36

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 7ll vänster finns e= antal register som används för a= lagra data. Överst 7ll vänster si=er ALU:n. ALU:n har två ingångar och en utgång. ALU:n har också e= anta kontrollingångar som används för a= bestämma vad processorn ska göra (addi7on, subtrak7on, etc). Nere 7ll höger finns kontrollenheten. Kontrollenheten tar e= antal insignaler och genererar e= antal utsignaler. Insignaler är statussignaler från ALU:n, delar av IR (där instruk7onen som ska exekveras lagras) och en klocksignal (som bestämmer has7gheten). Utsignaler är kontrollsignaler för a= styra processorn. Det är signaler som bestämmer vad som ska finns på den interna bussen. Om innehållet i programräknaren ska placeras i memory address register (MAR) så ska kontrollenheten se så a= PCout och MARin är öppna. Då kommer det som finns i PC a= fly=as 7ll MAR. Enersom den här processorn bara har en intern buss som kopplar samman allt så kan bara en sak göras på den internabuss. Det blir naturligtvis en konflikt om kontrollenheten öppnar PCout och MBRout sam7digt (det är då flera som driver ledningarna i bussen). 38

Antag a= processorn ska exekvera instruk7onen ADD R1, R3. När instruk7onen är exekverad så a= processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är skrivet i R3. I det första kontrollsteget tas innehållet i PC och placeras i MAR. Det är för a= processorn vill hämta den instruk7on som finns på den plats som pekas ut av PC (det är så långt exekveringen har nå=). Kontrollsignalen READ (läs i minnet) ak7veras så a= minnet hämtar fram rä= data. När innehållet av PC är på den internabussen räknas PC upp e= steg för a= förbereda hämtning av nästa instruk7on. Så, ena ingången av ALU:n har värdet PC. Om Y nollställs, carry- in sä=s, och ALU:n ställs på addi7on så har PC+1 beräknats och resultatet placeras i Z. Notera. I exemplet som används för a= illustrera principen om hur PC räknas upp kan man fak7skt läsa ut en hel del om processorn. För det första, om PC all7d räknas upp med 1 steg så är alla instruk7oner av samma längd, dvs fixed length. För det andra, om minnet är adresserat på byte nivå, dvs den minsta enhet man kan adressera är 1 byte (8- bitar), så kan det inte finnas mer än 2 8 (256) instruk7oner. 39

Här ser vi vilka kontrollsignaler som är ak7va i det första kontrollsteget. 40

I det andra kontrollsteget laddas PC med det nya värdet (det som beräknades i kontrollsteg 1) 41

Här ser vi vilka kontrollsignaler som är ak7va i det andra kontrollsteget. 42

43

I tredje kontrollsteget är minnet klar, dvs minnet har levererat den data som finns på den plats som PC pekade ut. MBRout ak7veras för a= det inläsa värdet ska fly=as via den internabussen 7ll instruk7onsregistret (IR). IRin ak7veras så a= det som finns på den internabussen läses in. 44

Här ser vi vilka kontrollsignaler som är ak7va i det tredje kontrollsteget. 45

Nu är FETCH delen avklarad, dvs den del som är samma oavse= vilken instruk7on det är. I EXECUTE delen, beror kontrollenheten på vilken instruk7on som just nu finns i instruk7onsregistret. I de=a exempel är det en addi7on. Den kan inte göras i e= steg utan måste brytas upp i 3 steg. I det första (av de tre stegen) tas det värde som finns i R1 och fly=as 7ll det temporära registret Y. De=a görs genom a= kontrollsignalerna R1out och Yin ak7veras. 46

Här ser vi vilka kontrollsignaler som är ak7va i det tärde kontrollsteget. 47

I det femte kontrollsteget görs addi7onen. Värdet från R1 är redan kopierat 7ll Y. Nu placeras värdet i R3 på andra ingången 7ll ALU:n och ALU:n gör en addi7on genom kontrollsignalen ADD. Resultatet lagras i det temporäraregistret Z. 48

Här ser vi vilka kontrollsignaler som är ak7va i det femte kontrollsteget. 49

I det sista kontrollsteget fly=as resultatet från Z 7ll R1. Instruk7onen är nu exekverad. Allt det som gjorts, kontrollsteg 1-6, 7llhör instruk7onscykeln. Notera. Den här instruk7onen tog 6 kontrollsteg a= exekvera. Om varje kontrollsteg tar 1 klockcykel så tar denna instruk7on 6 klockcykler. Prestandan kan ökas genom a= öka klockfrekvensen men det gäller a= vara vaksam så a= den logik som måste exekvera i varje steg hinner med. E= alterna7v 7ll a= öka klockfrekvensen är a= försöka minska antalet kontrollsteg. Det kan göras genom a= försöka op7mera det som görs i varje kontrollsteg. Det kan också göras genom a= försöka bygga bort flaskhalsar. I den här arkitekturer fanns en internbuss. Den begränsade möjligheterna a= snabbt fly=a data, t ex addi7onen delades upp i tre steg enersom det bara fanns en internbuss (vilket gör a= bara en sak i taget kan göras). 50

Här ser vi vilka kontrollsignaler som är ak7va i det sjä=e kontrollsteget. 51

För a= åstakomma direkt register- register överföring fler bussar. Då kan data fly=as mellan register och processor snabbare. Kostnad blir naturligtvis mer ledningar. För a= kunna fly=a större tal behövs bredare bussar, som leder 7ll fler ledningar. Historiskt se= så har kostnaden vid utveckling av integrerade kretsar legat på själva beräkningen, som görs av transistorer. Man har försökt minska antalet transistorer för a= minska 7llverkningskostnad. Men, nu är trenden a= transistorer kostar mindre. Det som är kostsamt är a= fly=a data. För a= fly=a e= stort tal behövs en bred buss, dvs många ledningar. 52

54

55

56

57

59

60

63

64

65

66

67

68

69

70

71

72

73

74

78

79

80

81

Här ser vi vilka kontrollsignaler som är ak7va i det femte kontrollsteget. 82

83

84

85

86

89

90

91

92

93

94

SUN Sparc: 32 general purpose register synliga för en användare där 8 register är globala och 24 ingår i e= fönster (window) Registren i e= fönster delas upp som: 8 register för utdata, 8 register för local, och 8 register för indata Man kan ha 2 7ll 32 fönster, dvs 40 7ll 520 register Vid 2 fönster: 8 register globla, 24 (in/locala/ut) för fönster 1, 16 (in/locala) för fönster 2 (men, in och ut för fönster 1 och 2 delas). 95

98

För a= hantera I/O, t ex tangentbord (input) och skärm (output) kan man använda minnesmappad I/O eller isolerad I/O. I minnesmappad I/O ses I/O- enheter som en del av minnet. Fördelen är a= samma instruk7oner användas för minnes läsning/skrivning. När man vill göra en I/O opera7on, läser/skriver man 7ll den del av minnet där I/O- enheten si=er. Nackdelen är a= man tar bort en del av adressrymden enersom alla adressledningar inte kan användas 7ll minnet utan vissa används för I/O enheter. I isolerad I/O används speciella instruk7oner för I/O. Då kan man använda hela adressrymden 7ll minne, men man måste ha fler instruk7oner, som kan påverka komplexiteten av processorn. 100

LOAD R1, 7 ladda register R1 med det som finns på adressplats 7. Adressplats 7 framstår som en plats i minnet, men det är minnesceller som håller koll på vilken eller vilka tangenter som är netryckta. I exemplet är tangent 3 nedtryckt och det är i det här fallet implementerat så a= då lagras värdet 00100000 på adressplats 7. STORE R1, 6 tar innehållet i register R1 och placerar värdet på adressplats 6. Värdet i register R1 är ener a= LOAD R1, 7 exekverats lika med 00100000. De=a värde placeras nu på minnesplats 6 i minnet. Minnesplats 6 är konstruerat så a= en nolla släcker lysdioder i e= sju- segment display medan en e=a tänder en viss lysdiod i sju- segment displayen. 101

103

104

107

108

109

110

111

112

113

114

115

116