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



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

Grundläggande datavetenskap, 4p

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

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

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)

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

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

Digitala System: Datorteknik ERIK LARSSON

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

Datorsystemteknik DVGA03 Föreläsning 8

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

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

Föreläsningsanteckningar till Konstruktionsmetoder

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Det finns en hemsida. Adressen är

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

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

TSEA28 Datorteknik Y (och U)

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

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.

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Datorarkitekturer med operativsystem ERIK LARSSON

LV6 LV7. Aktivera Kursens mål:

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Närliggande allokering Datorteknik

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

Datorteknik ERIK LARSSON

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Datorarkitekturer med operativsystem ERIK LARSSON

Design av digitala kretsar

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

Processor pipelining genom historien (Intel i9-intel i7)

Exempeltentamen Datorteknik, EIT070,

Föreläsningsanteckningar 4. Pipelining

Läsminne Read Only Memory ROM

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

Digitalteknik och Datorarkitektur 5hp

Pipelining i Intel Pentium II

Digital- och datorteknik

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Datorsystemteknik DAV A14 Föreläsning 1

Tentamen den 18 mars svar Datorteknik, EIT070

Föreläsningsanteckningar 2. Mikroprogrammering I

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

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

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

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

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

Digitala System: Datorteknik ERIK LARSSON

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

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

Villkorliga hopp: 9/26/2011. Dagens mål: Du ska kunna.. Villrorliga (Relativa) hopp - forts Arb s 140. LV5 Fo12. LV5 Fo12. Aktivera Kursens mål:

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

ALU:n ska anslutas hur då?

Tentamen i Digitalteknik och Datorarkitektur DV1 5p

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

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

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

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Tenta i Digitalteknik

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

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Pipelining i Intel 80486

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Centralenheten: ALU, dataväg och minne

IT för personligt arbete F5

Tentamen. Datorteknik Y, TSEA28

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

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

Mikroprogrammering I

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

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

IBM POWER4, den första flerkärniga processorn och dess pipelines.

MESI i Intel Core 2 Duo

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

Tentamen Datorteknik D del 2, TSEA49

TSEA28 Datorteknik Y (och U)

Omtentamen i CDT204 - Datorarkitektur

4. Pipelining. 4. Pipelining

Datorsystem. Exempeltentamen

DatorsystemteknikDAVA14 Föreläsning 9

Laboration 3 i Digital- och Mikrodatorteknik. Utvecklingssystemet MPLAB IDE Grundläggande assemblerprogrammering för PIC

F8: Undantagshantering

3. Mikroprogrammering II

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

Digital- och datorteknik

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

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Tentamen. Datorteknik Y, TSEA28

Transkript:

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

Intel 4004 från 1971 Maximum clock speed is 740 khz Separate program and data storage (i.e., a Harvard architecture). Contrary to most Harvard architecture designs, however, which use separate buses, the 4004, with its need to keep pin count down, uses a single multiplexed 4-bit bus for transferring: 12-bit addresses 8-bit instructions, not to be placed in the same memory as 4-bit data words Instruction set contains 46 instructions (of which 41 are 8 bits wide and 5 are 16 bits wide) Register set contains 16 registers of 4 bits each Internal subroutine stack is 3 levels deep 2

Microchip 3

Von Neuman Utvecklade en modell för en dator som gäller än idag. Von Neuman-dator: En beräkningsmaskin där styrinstruktioner ligger i samma minne som data till beräkningar. John von Neuman (1903-1957), matematiker född i Budapest. Pionjär inom datortekniken. Data och program delar samma buss 4

Harward Program- 14 8 Dataminne CPU minne (flash) (RAM) Separat programbuss och databuss 5

CISC Olika typer av microcontrollers, CISC och RISC. CISC Complicated Instruction Set Computer - komplex instruktionsuppsättning, ex. Motorola 68HC11 ca 150 instr. - varje instruktion tar flera klockpulser - lätt att programmera i maskinkod - problem: resurserna används för att göra vackra arkitekturer snarare än arkitektur med maximal prestanda, ger stor kiselyta (=dyrt) - mer komplicerad avkodning av instruktionerna leder till långsammare exekvering 6

RISC RISC Reduced Instruction Set Computer - elegans byts mot prestanda, max prestanda eftersträvas - använder pipelining och parallella exekveringsenheter => => oftast 1CP/ instruktion - få enkla och därför snabba instruktioner med enkla adresseringsmoder - kräver mera kod 7

Minne (RAM/RWM) Har ett visst antal unika platser (adressrymd) där den kan lagra ett visst antal bitar (ordlängd). Minnet innehåller både instruktion (programminnet) samt data (dataminnet). Läsning av minnet: - CPU:n lägger ut adressen på adressbussen (AB) varvid den aktuella minnescellen adresseras. - CPU:n ger styrsignalen Läs på styrbussen (SB) => data ut på databussen (DB). Skrivning till minnet: - CPU:n lägger ut adressen på adressbussen (AB) varvid den aktuella minnescellen adresseras. - ordet som skall skrivas in i minnet läggs ut på DB. - styrsignalen Skriv på SB => skrivningen i minnet verkställs. 8

CPU - ALU Aritmetisk/Logisk Enhet (ALU) Den del av CPU:n, som utför beräkningar. Addition, subtraktion, logiska operationer. Det antal bitar, som ALU:n kan använda brukar kallas datorns ordlängd. Vanligt är 8, 16, 32 eller 64 bitar. Register (temporärt snabbminne) Datorn utför många minnesläsningar. Detta tar mycket mer tid än själva beräkningen i datorn. Lösning: Speciella register i beräkningsenheten, som går snabbt att läsa. Ofta samma längd som datorns ordlängd. Vanlig arbetsgång är att först hämta in data till register, beräkna och sen avsluta med att skriva tillbaks till minnet. 9

Styrenhet Den delen som styr och bestämmer vad som skall hända i CPU:n. Hårdvaruimplementerad logik. Ser till att allt sker i rätt ordning. Håller t ex reda på var i ett datorprogram man befinner sig. Detta ligger i ett speciellt register, som heter Programräknare (PC). Nästa instruktion hämtas från den adress i minnet som (PC) pekar på. Håller reda på vilken instruktion som körs. Den ligger i ett register som heter instruktionsregistret (IR). Styrenhet PC IR Avgör i vilken ordning man skall göra alla saker. 10

Statusregister (SR) Håller koll på hur en beräkning utförd i ALU:n gick. Dessutom innehåller det ofta en del information för att konfigurera processorn. Flaggorna C (Carry) och Z (Zero) finns i statusregistret. Normalt är att senaste registerskrivningen påverkar flaggorna. Genom information om senaste registerskrivningen kan villkorliga operationer utföras. Alltså beroende på senaste resultatet kan olika instruktioner utföras, dvs styra om PC. 11

Arbetsgång 1. Hämta instruktion från programminnet 2. Avgör vad som skall göras 3. Beräkna/utför i CPU 4. Skriv tillbaka till minnet (filregistret) 12

Intern kommunikation Alla enheter i datorn kommunicerar med bussar. En buss är inget annat än en samling parallella ledare för att överföra information. Storleken anges ofta i antal bitar (bussbredd). Adressbussen (AB) - (enkelriktad) har till uppgift att peka ut den plats i minnet eller in/ut-enheten som CPU:n ska kommunicera med. Databussen (DB) (dubbelriktad) överför data från den utpekade platsen till CPU:n, eller tvärtom. Oftast samma bredd som datorns ordlängd. Styrbussen (SB) överför signaler från styrenheten i CPU:n, som bl a gör att rätt enhet får tillgång till DB i rätt ögonblick. Processorer med inbyggt minne behöver inte ha DB och AB externt utdragna. Dessa kallas ofta MCU (microcontroller). 13

Instruktion Består av två delar: opcode och operand. Opcode = vad en instruktion gör Operand = på vad instruktionen opererar. Kan vara något av följande: 1. register (data ligger i register. Arbetsregistret w anges i instruktionen) 2. minne (data ligger på minnesplats. Minnesplats anges i instruktionen) 3. immediate värde (data står angivet i instruktionen) Ex) 7 Instruktioner har alltid en opcode, men kan ha en eller ingen operand. 14

Exempel på instruktion: ADD - Addera arbetsregistret w och filregistret f. ADDWF f,d ; (w)+(f) (d) - d = 0 => resultatet läggs i w-registret - d = 1 => resultatet läggs i filregistret f - Addera arbetsregistret w med konstant. ADDLW k ; (w) + k (w) 15

Exempel på instruktion: MOV Flytta data från minnet till w-registret. MOVF f, d ; (f) (d) - d = 0 w-reg. - d = 1 f-reg. Flytta innehållet i w till filregister. MOVWF f ; (w) (f) 16

Exempel på instruktion: GOTO Utför ett hopp, dvs ändrar (PC). GOTO k ; hoppa till k (label = etikett) 17

Instruktioners begränsningar Instruktionen ligger i minnet och tar upp en viss plats. Hur mycket är beroende på dator. För PIC gäller 14 bitar. För t ex ARM gäller 32 bitar. På dessa bitar ska både opcode och operander få plats. För PIC gäller 14 bitar/instruktion varav 6 bitar för opcode. Ju fler instruktioner en dator har, desto större blir opcode-fältet. T ex 50 instruktioner behöver 6-bitars opcode fält (2 6 = 64). Antar vi 6-bitars instruktioner finns då endast 8 bitar kvar för operander. Detta ger begränsningar om instruktionen t ex ska innehålla en fysisk adress som operand. Adressen blir då begränsad. Viktigt! 18

Adresseringsmode hur data nås De olika sätt som instruktioner kan nå data brukar kallas adresseringsmode. Antalet adresseringsmoder anger i princip på hur många olika sätt data kan flyttas in i registren. Oftast skrivs instruktionens operander på olika sätt beroende på vilken adresseringsmode som används. Vanliga adresseringsmoder: Immediate ADDLW 34 Data omedelbart i instruktionen Direct ADDWF f, d Data finns på en adress (i ett filreg) Indirect Här används ett speciellt reg. FSR. Data finns på den adress som (FSR) pekar på. FSR File Select Register 19

Adresseringsmode hur data nås 20

Instruktionscykel För varje instruktion som exekveras, utför datorn ett visst antal åtgärder som kallas instruktionscykeln. Det är styrenheten som ser till detta. FETCH Hämtar intruktion från minnet DECODE Avgör vilken instruktion (avkodar) EVALUATE ADDRESS Beräknar ev adresser till operander FETCH OPERANDS Hämtar in operander EXECUTE Beräknar i ALU:n STORE RESULT Skriver resultatet till minnet Det är inte säkert att alla instruktioner kräver alla delar i cykeln. För PIC gäller hämtfas (FETCH) och exekveringsfas (EXECUTE). 21

Detaljerad arbetsgång FETCH Hämtar intruktion från minnet till IR DECODE Avgör vilken instruktion som ligger i IR EVALUATE ADDRESS Beräknar ev adresser till operander FETCH OPERANDS Hämtar in operander från minnet eller reg EXECUTE Beräknar i ALU:n. Statusregistret (SR) påverkas. STORE RESULT Skriver resultatet till minnet Efter det att instruktionen är hämtad i FETCH-fasen ökas (PC) med ett. Vissa instruktioner förändrar (PC) i EXECUTE-steget. På så sätt kan instruktioner utföras villkorligt. Detta är det enda en processor gör. Kör instruktioner! 22

Instruktionsgrupper De tre grupper av instruktioner som alltid måste finnas med är följande. Alla processorer har alltid några instruktioner av varje typ. Dataförflyttning Flyttar data mellan minne (filregister) och arbetsregister, MOVF f, d eller mellan arbetsregister minne (filregister), MOVWF f. Aritmetiska/logiska Beräkningar på data i register: ADDERA (ADDWF f, d), SUBTRAHERA (SUBWF f, d), INVERTERA (COMF f, d), AND (ANDWF f, d), OR (IORWF f, d), XOR (XORWF f, d) osv. Styr Exekveringsfasen förändrar (PC). Villkor. T ex GOTO k (ovillkorlig). 23

Summering Von Neuman modellen för en dator Instruktionsbegreppet, opcode och operander Instruktionscykel det enda datorn gör Gruppering av instruktioner dataförflyttning, aritmetiska/logiska, styr Adresseringsmode Hur instruktionerna når data 24