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

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

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

Grundläggande datavetenskap, 4p

Datorsystemteknik DVGA03 Föreläsning 8

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

Digitala System: Datorteknik ERIK LARSSON

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)

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

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

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

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

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

Närliggande allokering Datorteknik

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

TSEA28 Datorteknik Y (och U)

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

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

LV6 LV7. Aktivera Kursens mål:

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

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

DatorsystemteknikDAVA14 Föreläsning 9

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.

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Processor pipelining genom historien (Intel i9-intel i7)

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

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

Det finns en hemsida. Adressen är

HF0010. Introduktionskurs i datateknik 1,5 hp

Tentamen Datorteknik D del 2, TSEA49

Föreläsningsanteckningar 4. Pipelining

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

Digitala System: Datorteknik ERIK LARSSON

Föreläsningsanteckningar 2. Mikroprogrammering I

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

Datorteknik ERIK LARSSON

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

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

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

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

Datorsystemteknik DAV A14 Föreläsning 1

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

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

Exempeltentamen Datorteknik, EIT070,

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

Mikroprogrammering I

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

IT för personligt arbete F5

Pipelining i Intel Pentium II

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

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

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Digitalteknik och Datorarkitektur 5hp

Digital- och datorteknik

4. Pipelining. 4. Pipelining

ALU:n ska anslutas hur då?

Föreläsningsanteckningar till Konstruktionsmetoder

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

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

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

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

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

Omtentamen i CDT204 - Datorarkitektur

Tentamen. Datorteknik Y, TSEA28

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

TSEA28 Datorteknik Y (och U)

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

3. Mikroprogrammering II

Introduktion till ARM Cortex-M4

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

Design av digitala kretsar

Datorsystem. Exempeltentamen

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

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Tentamen. Datorteknik Y, TSEA28

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

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:

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

Datorsystemteknik DAV A14 Föreläsning 1

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

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

Centralenheten: ALU, dataväg och minne

Datorarkitekturer med operativsystem ERIK LARSSON

Tenta i Digitalteknik

Adressrum, programmerarens bild

Styrenheten styrsignalsekvenser programflödeskontroll

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

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.

Läsminne Read Only Memory ROM

Tentamen i Digitalteknik och Datorarkitektur DV1 5p

CE_O3. Nios II. Inför lab nios2time

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen. Datorteknik Y, TSEA28

Grundläggande Datorteknik Digital- och datorteknik

Transkript:

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

Föreläsning 2 Check av övningar Von Neumann arkitekturen Minne, CPU, I/O Instruktioner och instruktionscykeln 2

Ifrån Brorsson, Datorsystem, Studentlitteratur Övningar 8. Omvandla följande tal till flyttal i enkel precision: 9; 5/32; -5/32; 6,125 9. Omvandla följande hexadecimala tal till dess decimala motsvarighet, om vi tolkar dem som flyttal i enkel precision: 0x42e48000, 0x3f880000, 0x00800000, 0xc7f00000 3

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

Von Neumann arkitektur John von Neumann (1903-1957), matematiker född i Budapest. Pionjär inom datortekniken (och massor av annat) Utvecklade och beskrev 1945 en modell för en dator som inspirerat alla datorer därefter: Programmerad (inte hårdkodad via kopplingar) Data och program båda lagras i datorns minne (och samma adressrymd) 5

Von Neumann Arkitektur CPU Minne In/Ut Styrbuss Adressbuss Databuss 6

Instr. Minne CPU Data Minne In/Ut Styrbuss Adressbuss Instruktionsbuss Styrbuss Adressbuss Databuss 7

Harvard-arkitektur Parallell hämtning av instruktioner och data Instruktioner och data är alltid separerade Kod resp. data kan ha olika bitbredd Separat databuss och instruktionsbuss Instr. Minne CPU Data Minne In/Ut Styrbuss Styrbuss Adressbuss Adressbuss Instruktionsbuss Databuss 8

Minne (RAM) Har ett visst antal unika platser (adressrymd) där den kan lagra ett visst antal bitar (ordlängd) Minnet innehåller både instruktioner (själva programmet) samt data. 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. CPU Minne In/Ut Styrbuss Adressbuss Databuss 9

CPU - ALU CPU 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. R E G ALU Styrenhet Minne Styrbuss Adressbuss In/Ut Register (temporärt snabbminnej Databuss 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. 10

In/Ut (I/O) Hur datorn kommunicerar med omvärlden. Typiskt är t ex någon form av monitor (bildskärm) för utmatning och något tangentbord för inmatning. I inbyggda system är det kanske en temperatursensor (insignal) och en motor (utsignal). Till själva datorn (processorn) är oftast in/utsignalerna enkla digitala signaler. Det är sen upp till den externa hårdvaran (tex ljudkort, grafikkort) att tolka informationen så att vi förstår den. CPU Minne In/Ut Styrbuss Adressbuss Databuss 11

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. CPU REG ALU 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å. PC IR Styrenhet Håller reda på vilken instruktion som körs. Den ligger i ett register som heter instruktionsregistret (IR). 12

Flaggor 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 N (Negative), C (Carry), O (Overflow) 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. CPU REG PC ALU N,C,O,Z IR Styrenhet 13

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. CPU Minne In/Ut Styrbuss Adressbuss Databuss Processorer med inbyggt minne behöver inte ha DB och AB externt utdragna. Dessa kallas ofta MCU (microcontroller). 14

Arbetsgång Styrenhet 1. Hämta instruktion från minnet 2. Avgör vad som skall göras 3. Hämta data/parametrar ifrån register eller minne 4. Beräkna/utför i CPU/ALU 5. Skriv resultatet till register eller till minnet Adressbuss Program minne Data minne IR Instruktions avkodning ALU status result Databuss 15

ARM core data model 16

Adressbuss Program minne Data minne IR Instruktions avkodning ALU status result Databuss 17

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. Register anges i instruktionen) 2. minne (data ligger på minnesplats. Minnesplats anges i instruktionen) 3. immediate värde (data står angivet i instruktionen) Instruktioner har alltid en opcode, men kan ha en eller flera operander. 18

Exempel på instruktion: ADD (Baserad på Thumb, 16-bitars instruktion) Addera två register och lägga i ett tredje. Tre operander. Format: ADD Rd, Rs, Op2 ; (Rd) <= (Rs)+Op2 Ex) ADD R5, R2, #6 ; (R5) <= (R2) + 6! Bit 15-13: Opcode Bit 12: Adresseringsmode för Op2 1 =Immediate, O=register operand Ex) ADD R5, R2, #6 ;(R5) <= (R2) + 6! 011 1 0101 0010 0110 Vad blir? ADD R1, R2, R3 ; (Rl) <= (R2) + (R3)! 19

Exempel på instruktion: LDR Flytta data från minnet till register. Tar två operander Ex) LDR R2, [R5, #13] ; (R2) <= [(R5) + 13] mem 001 0010 0101 01101 20

Exempel på instruktion: B Utför ett hopp, dvs ändrar (PC). B= branch (PC) <= (PC) + Imm9 ;Gör hoppet endast om COND är uppfyllt! 21

Instruktioners begränsningar Instruktionen ligger i minnet och tar upp en viss plats. Hur mycket är beroende på dator. Vanligt är t ex 16 bitar eller 32 bitar. På dessa bitar ska både opcode och operander få plats. Ju fler instruktioner en dator har, desto större blir opcode-fältet. Tex 50 instruktioner behöver 6- bitars opcode fält (2 6 = 64). Antar vi 16-bitars instruktioner finns då endast 10 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! 22

Adresseringsmode hur man når data 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: Register ADD R1, R2, R3 Alla data i register Immediate MOV R3, #34 Data omedelbart i instruktionen Base+index LDR R0, [R5, #8] Data finns på en adress. Adressen finns i ett register + ett konst. tal. Direct LDR R4, PLACE Ladda register med den adress som utgörs av labeln. 23

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 instruktion från minnet DECODE EVALUATE ADDRESS Avgör vilken instruktion (avkodar) 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. 24

Detaljerad arbetsgång FETCH Hämtar instruktion från minnet utpekat av PC till IR, PC <= (PC)+2/4 DECODE Avgör vilken instruktion som ligger i IR (avkodar) EVALUATE ADDRESS Beräknar ev adresser till operander FETCH OPERANDS Hämtar in operander från minne/register EXECUTE Beräknar i ALU:n, 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! 25

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 register och register; mellan minne och register, LOAD; melian register- minne, STORE. Aritmetiska/logiska Beräkningar på data i register. ADDera, SUBtrahera, MULtiplicera, INVertera, AND, OR, NOT, Skifta och rotera Styr Exekveringsfasen förändrar (PC). Villkor. JUMP, BRANCH. 26

RISC RISC - Reduced Instruction Set Computer (alternativt Load-Store arkitektur som är ett mer korrekt namn) De tidigare arkitekturerna (och deras efterföljare) fick retroaktivt den kollektiva etiketten CISC (Complex Instruction Set Computer), något som i många fall var ganska missvisande eftersom enklare sådana konstruktioner (t.ex 8080) kunde ha både färre instruktioner och enklare adresseringsmoder än avancerade RISCarkitekturer. 27

RISC Processorns instruktioner är enkla, regelbundna och (idealiskt) lika långa. Det blir då lätt att ordna så att nästkommande instruktion kan hämtas samtidigt som föregående instruktioner avkodas och utförs (pipelining) En instruktion kunde påbörjas nästan varje klockcykel. Processorerna kunde göras enkla med färre logiknivåer och klockfrekvensen kunde därigenom lättare höjas. De transistorer som sparades på enklare logik användes för snabba cacheminnen som också bidrog till högre möjliga klockfrekvenser. Ett stort antal likadana processorregister gjorde det möjligt att effektivt kombinera de enkla instruktionerna. 28

ISA/Instruktionsarkitekturen definierar HW/SW gränssnitt Ett kontrakt mellan arkitekten och programmerarna Instruktionsuppsättning Registeruppsättning Minnesaccess och adressingssätt Ordlängd Data format Systemtillstånd (Operating modes) Flaggor (Condition codes) Anropskonventioner Nästa föreläsning tar vi oss an detta! 29

De viktigaste elementen i en instruktionsarkitektur (register, minne, ordlängd, endianess, flaggor, instruktioner, adressings moder) 32-bits 32-bits mov r0, #1 ld r1, [r0,#5] mem((r0)+5) bne loop subs r2, #1 Endianess Endianess 30

Summering Von Neumann modellen för en dator Instruktionsarkitektur (ISA) Instruktionsbegreppet, opcode och operander Instruktionscykel - det enda datorn gör Gruppering av instruktioner: dataförflyttning, aritmetiska/ logiska, styr Adresseringsmode - Hur instruktionerna når data RISC 31