Styrenheten styrsignalsekvenser programflödeskontroll

Relevanta dokument
Centralenheten: ALU, dataväg och minne

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

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

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

Föreläsningsanteckningar 2. Mikroprogrammering I

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

F4: Assemblerprogrammering

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Laboration nr 3 behandlar

Digital- och datorteknik

Programexempel för FLEX

Digital- och datorteknik

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:

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

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

Digital- och datorteknik

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

LV6 LV7. Aktivera Kursens mål:

TSEA28 Datorteknik Y (och U)

Datorsystemteknik DVGA03 Föreläsning 8

Exempel 3 på Tentamen

Digital- och datorteknik

Assemblerprogrammering för ARM del 2

Tentamen. Datorteknik Y, TSEA28

Bilda styrsignalerna till datavägen RESET FETCH EXECUTE NF NF NF. Digital och Datorteknik EDA /2011. Digital och Datorteknik EDA /2011

Assemblerprogrammering del 2

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

3. Mikroprogrammering II

ALU:n ska anslutas hur då?

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

Tentamen. Datorteknik Y, TSEA28

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Digital- och datorteknik

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Mikroprogrammering I

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

Digitala System: Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

Datorarkitekturer med operativsystem ERIK LARSSON

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

EDA Digital och Datorteknik

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

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

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

CE_O1. Nios II. Enkla assembler-instruktioner.

Hantering av hazards i multi-pipelines

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

EDA215 Digital- och datorteknik för Z

Assemblerprogrammering för ARM del 1

Exempel 2 på Tentamen med lösningar

Assemblerprogrammering för ARM del 1

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik

9/22/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

Assemblerprogrammering del 3

Programmerbar logik. Kapitel 4

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

Assemblerprogrammering del 1

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Grunderna i stegkodsprogrammering

Exempel 1 på Tentamen med lösningar

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

Extrauppgifter för CPU12

Digital- och datorteknik

EDA451 - Digital och Datorteknik 2009/2010. EDA Digital och Datorteknik

Lösningsförslag tenta

TSEA28 Datorteknik Y (och U)

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

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

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

CHALMERS TEKNISKA HÖGSKOLA

Tentamen. EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU. Måndag 17 December 2012, kl

Närliggande allokering Datorteknik

Föreläsningsanteckningar 3. Mikroprogrammering II

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

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Tentamen (Exempel) Datorteknik Y, TSEA28

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

exempel på Tentamen 2

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

DatorsystemteknikDAVA14 Föreläsning 9

11/16/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

Tentamen med lösningar

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

Datorarkitekturer med operativsystem ERIK LARSSON

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

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

Transkript:

Styrenheten styrsignalsekvenser programflödeskontroll Kontroll av programflöde Instruktionerna är ordnade sekventiellt i minnet och utförs normalt i denna ordning. Vissa programkonstruktioner kräver dock programflödesändring. Dagens föreläsning behandlar: Kompendium kapitel 8.6 Arbetsboken kapitel 14 Ur innehållet: Konstruktion och implementering av styrsignalsekvenser: Kontroll av programflödet PC-relativ adressering Stackfunktioner Subrutiner Två typer av programflödesändringar Ovillkorlig Villkorlig, baserad på flaggorna i CC-registret 1 2 Ovillkorlig programflödesändring Exempel på situation som kräver ovillkorlig flödesändring Sekvens2 är en sekvens av instruktioner som INTE ska utföras om Sekvens1 utförs. Programflödet måste hoppa över Sekvens2 Instruktion Jump : JMP <ny adress> Instruktionen JMP Då adressen är känd från början Då adressen är känd relativt en position som måste beräknas Då adressen är känd som en position som måste beräknas med en förskjutning som också måste beräknas 3 4

Utförandefasen av JMP Adr OPERAND är destinationsadress Det räcker med en cykel för exekveringsfasen, där operanden, dvs. destinationsadressen, läses från minnet direkt till register PC. M(PC) PC Utförandefaser för JMP n,y och JMP A,Y För de indexerade adresseringssätten måste vi använda ALU:n för att addera offseten till innehållet i basregistret: 1. Offseten, detta kan vara en konstant som läses från minnet, eller innehållet i register A, placeras i register T, som förberedelse. 2. Basregistret (Y) läggs ut i datavägen, addition utförs i ALU:n och resultatet sparas i register R. 3. Resultatet i register R skrivs till PC. Styrsignalerna blir: Implementeringen följer direkt av ovanstående: Q 4 :M(PC) T; Q 5 :T+Y R; Q 6 :R PC styrsignalsekvens: Implementeringen av denna variant skiljer sig från den föregående endast i offseten, det räcker därför med att modifiera i första tillståndet: Q 4 : A T; 5 6 PC-relativ adressering Exempel: Offsetberäkning Alternativt sätt att koda destinationsadressen vid en programflödesändring: Bestäm offset för en instruktion med PC-relativ adressering på adress (56) 16, och destinationsadress (A6) 16 Destinationsadress = Instruktionsadress + 2 + OFFSET. PC-relativ adressering kan användas för att skapa positionsoberoende kod. Lösning: Offset = Destinationsadress (Instruktionsadress+2)= A6 (56+2 ) = 4E 7 8

Instruktionen Branch always Implementering av BRA Destinationsadress Då exekveringsfasen inleds innehåller PC adressen till OFFSET, RTN för hela instruktionen kan därför skrivas: PC+1+(PC) PC Operationen delas upp i: Q 4 : PC T; PC TA, Q 5 : M(TA)+T+1 R, Q 6 : R PC Vilket ger: Instruktionen används på samma sätt som JMP Adr (funktionellt likvärdiga) men operanden kodas PC-relativt 9 10 Villkorlig programflödesändring Vid villkorlig programflödesändring används flaggorna i CC-registret för att bestämma om en programflödesändring ska utföras, eller inte. Vid jämförelse med 0 Programmet styrs att utföra en slinga, så länge innehållet i register A är skilt från 0, BNE (Branch Not Equal). Instruktionen DECA påverkar flaggor i CC, BNE-instruktionen testar Flödesplan Instruktionssekvens RTN Vi kan välja att testa enskilda flaggor men även olika flaggkombinationer. Den automatiska styrenheten omfattar därför även kombinatorik som tillhandahåller dessa flaggkombinationer. Uttrycket Z =0 kallar vi villkorsindikator och uttryckets värde uppfattas som sant om villkoret är uppfyllt. Om villkorsindikatorn är sann ska flödesändringen utföras, annars ska instruktionen inte göra någonting, utan exekveringen fortsätter med instruktionen omedelbart efter branch-instruktionen. 11 12

Implementering av villkorlig instruktion Villkorsindikatorer (totalt 14 olika) Först placeras PC i både T och TA för att förbereda bildandet av destinationsadressen: Q 4 : PC T; PC TA; I nästa fas beräknas destinationsadress, samtidigt förbereds för sekventiell exekvering (om villkorsindikatorn är falsk) genom att öka PC med 1: Inför Q 4 Enkla flaggtest Q 5 : M(TA)+T+1 R; PC+1 PC I den avslutande fasen laddas PC med destinationsadressen (från R) om villkorsindikatorn är sann, annars ska PC lämnas eftersom det innehåller adressen till nästa instruktion. Q 6 : if( Villkorsindikation) R PC Styrsignal för denna konstruktion blir: LD PC = Villkorsindikator Inför Q 6 Tal utan tecken Tal med tecken 13 14 Relationer Implementering av instruktion BGT Tal utan tecken Tal med tecken Villkorsindikatorn, i detta fall (N V) + Z = 0, realiseras med det boolska uttrycket!((n V) + Z), styrsignalsekvensen blir därför: 15 16

Implementering av stackfunktioner Exempel PSHY/PULY Modularisering, subrutiner Delsekvenser som utförs frekvent placeras som subrutiner 17 18 Instruktioner: JSR (Jump to SubRoutine) RTS (ReTurn from Subroutine) Exempel: subrutinanrop 19 20