Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

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

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

Digital- och datorteknik

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

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

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

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

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Digital- och datorteknik

Programexempel för FLEX

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

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

Exempel 1 på Tentamen med lösningar

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

EDA Digital och Datorteknik

Digital- och datorteknik

Tentamen med lösningar

Digital- och datorteknik

Lösningsförslag tenta

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

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

Exempel 3 på Tentamen

CHALMERS TEKNISKA HÖGSKOLA

LV6 LV7. Aktivera Kursens mål:

Digital- och datorteknik

FLEX Instruktionslista

LABORATION. Datorteknik Y

Styrenheten styrsignalsekvenser programflödeskontroll

Tentamen. Datorteknik Y, TSEA28

Exempel 2 på Tentamen med lösningar

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

Föreläsningsanteckningar 2. Mikroprogrammering I

Assemblerprogrammering del 3

INSTRUKTIONSLISTA för FLEX-processorn

Tentamen. Datorteknik Y, TSEA28

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

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

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

Tentamen (Svar och lösningsförslag)

EDA215 Digital- och datorteknik för Z

Tentamen. Datorteknik Y, TSEA28

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:

ALU:n ska anslutas hur då?

LABORATION. Datorkonstruktion D

Laboration nr 3 behandlar

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

LABORATION. Datorteknik Y Datorkonstruktion D

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Måndag 19 oktober 2009, kl

Tentamen. Datorteknik Y, TSEA28

TENTAMEN(Nu anpassad till FLIS- processorn)

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

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Digital- och datorteknik

Extrauppgifter för CPU12

Tentamen. Datorteknik Y, TSEA28

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

Assemblerprogrammering del 2

Digital- och datorteknik

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

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Tentamen. Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

F4: Assemblerprogrammering

Digital- och datorteknik

Tentamen. Datorteknik Y, TSEA28

EDA Digital och Datorteknik

Digital- och datorteknik

9 Assemblerprogrammering. Innehåll GRUNDLÄGGANDE DATORTEKNIK FÖR HÖGSKOLANS INGENJÖRSUTBILDNINGAR KOMPENDIUM

Datorsystemteknik DVGA03 Föreläsning 8

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

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

Assemblerprogrammering för ARM del 2

TENTAMEN (Något redigerad)

TSEA28 Datorteknik Y (och U)

TENTAMEN. Digital- och datorteknik. Institutionen för data- och informationsteknik Avdelningen för datorteknik LEU431. Lars-Eric Arebrink

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

Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Tentamen Datorteknik Y, TSEA28 Datum

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

TSEA28 Datorteknik Y (och U)

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar

Assemblerprogrammets struktur; exempel

TENTAMEN. Digital- och datorteknik E. Institutionen för data- och informationsteknik Avdelningen för datorteknik. Elektro Åk 1/ lp 4 EDA216/DIT790

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

Digital- och datorteknik

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

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

TSEA28 Datorteknik Y (och U)

Maskinorienterad Programmering 2010/11

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

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

Transkript:

Digital- och datorteknik Föreläsning #15 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola

Dataväg med pekarregister och stackpekare: I vår sjunde, och slutliga, version av datavägen har vi fått ytterligare tre pekarregister: X, Y och SP. Register X och Y används generellt till att referera till datastrukturer i primärminnet, t ex listor, tabeller eller köer. Stackpekaren, SP, används som referens till en datastruktur, kallad stacken, där temporära variabler och programflödesadresser lagras.

OE X, OE Y och OE SP väljer om innehållet i respektive register skall läggas ut på bussen. FLIS-processorn LD X, LD Y och LD SP väljer om respektive register skall uppdateras eller ej.

Operationer på stacken sker så ofta att man har speciella styrsignaler för att ändra värdet på SP. FLIS-processorn INC SP och DEC SP anger om värdet i SP skall ökas resp. minskas med 1.

g 13 och g 12 anger vilket av pekarregistren X, Y, SP, eller PC som adresserar minnet när g 14 = 0. FLIS-processorn g 14 anger om minnet skall adresseras via TA (g 14 =1) eller via något av de andra pekarregistren (g 14 = 0).

Värdet 0 behövs så ofta i register T att man har en speciell styrsignal CLR T för att nollställa registret. FLIS-processorn Värdet i T adderas alltid till värdet i det pekarregister (X, Y, SP eller PC) som valts med g 13 och g 12.

Programmerarens modell av datorn: Operationer på datavägen ges med hjälp av ett maskinspråk, vilket är en uppsättning maskininstruktioner (binära kodord) som är avsedda att avkodas av datorn. Den, för människan, läsbara representationen av ett maskinspråk kallas assemblerspråk. För att reducera mängden detaljer, och därmed också reducera risken för att införa fel, kan den som programmerar datorn med hjälp av maskinspråk bara direkt referera till en delmängd av datavägens register.

Var lagrar vi instruktionerna? Sett från programmerarens perspektiv: Ett datorprogram består av sekvenser av maskininstruktioner. Maskininstruktionerna lagras i primärminnet, i enlighet med Turings/von Neumanns det lagrade programmets princip. Sett från datavägens perspektiv: Till varje operationskod i en maskininstruktion hör en sekvens av RTN-operationer (styrsignaler). RTN-operationerna lagras i den automatiska styrenheten, och utgör för programmeraren en icke-synlig och icke-modifierbar del av datorns hårdvara.

Den automatiska styrenhetens tre faser: Återställningsfas (RESET): Adressen till programmets första maskininstruktion hämtas från datorns resetvektor (minnescellen på adress FF 16 ) och lagras i PC. Hämtfas (FETCH): En operationskod hämtas (från den minnescell vars adress ligger i PC) och lagras i register I. Utförandefas (EXECUTE): Innehållet i register I (en operationskod) avkodas och den till operationskoden tillhörande sekvensen av RTNoperationer genomlöps. Om styrenheten skall fungera som tänkt måste minnet alltså innehålla 1. adressen till första maskininstruktion i minnescellen på adress FF 16 2. en maskininstruktion i varje minnescell vars adress kan komma att lagras i PC

Den automatiska styrenhetens tre faser: Sekvensnätet som realiserar styrenhetens tre faser har följande tillståndsgraf: RESET Q0 Q1 Q2 Q3 Q4 Q5 Q15 Tillstånd Q 0, Q 1 och Q 2 motsvarar RESET-fasen Tillstånd Q 3 motsvarar FETCH-fasen Tillstånd Q 4 Q 15 reserveras för de sekvenser av RTN-operationer som utförs i EXECUTE-fasen för aktuell maskininstruktion

Den automatiska styrenhetens tre faser: Sekvensnätet som realiserar styrenhetens tre faser har följande tillståndsgraf: Insignal RESET återställer styrenheten. RESET Q0 Q1 Q2 Q3 Q4 Q5 Q15 Det sista tillståndet i en sekvens måste aktivera insignal för att ny instruktion skall hämtas. Tillstånd Q 0, Q 1 och Q 2 motsvarar RESET-fasen Tillstånd Q 3 motsvarar FETCH-fasen Tillstånd Q 4 Q 15 reserveras för de sekvenser av RTN-operationer som utförs i EXECUTE-fasen för aktuell maskininstruktion Varje operationskod motsvarar en sekvens med en viss längd.

Hur genereras styrsignalerna (RTN-operationerna)? Styrsignalerna till datavägen genereras av ett kombinatoriskt nät som har följande insignaler: Tillståndssignalerna i sekvensnätet Innehållet i register I (= nuvarande maskininstruktionens operationskod) Datavägens flaggbitar

CP LD I FLIS-processorn Hur genereras styrsignalerna (RTN-operationerna)? Insignalerna till styrenhetens kombinatoriskt nät genererar i sin tur, via olika avkodare, ett antal interna generatorsignaler. F 8.13 A I b0 b1 b2 b3 b4 b5 b6 b7 I0 I1 I2 I251 I252 I253 I254 I255 I3 I4 Generatorsignalerna kombineras via AND/OR-nät så att en viss styrsignal aktiveras för en viss instruktion I x vid ett visst tillstånd Q y. Styrsignaler kan även aktiveras enbart för en viss kombination av flaggbitar (vid villkorliga hoppinstruktioner). Q m I k & Styrsignal p B Q n I l & AND

Adresseringsmetoder FLIS-processorn En maskininstruktions adresseringmetod ges av instruktionens operationskod, och uttrycker läge ( source & destination ) eller värde för instruktionens operander. Adresseringmetoden påverkar därför # bytes som behövs för att lagra maskininstruktionen i minnet längden (# klockcykler) på den sekvens av tillstånd som maskininstruktionen utnyttjar i styrenhetens EXECUTE-fas

Se sidan 11 i Instruktionslista för FLISP 00 2 10 3 20 5 30 3 40 3 50 3 60 3 70 3 80 3 90 2 A0 3 B0 3 C0 3 D0 3 NOP PSHA BSR STX STX STX STX STX STX LDX LDX LDX LDX LDX 01 4 11 3 21 4 31 3 41 3 51 3 61 3 71 3 81 3 91 2 A1 3 B1 3 C1 3 D1 3 ANDCC PSHX BRA STY STY STY STY STY STY LDY LDY LDY LDY LDY 02 4 ORCC 12 3 PSHY 03 13 3 PSHCC 04 14 3 PULA 05 3 CLRA 06 3 NEGA 07 3 INCA 08 3 DECA 09 2 T 0A 3 COMA 0B 3 LSLA 0C 3 LSRA 0D 3 ROLA 0E 3 RORA 0F 3 ASRA 15 3 PULX 16 3 PULY 17 3 PULCC 18 2 TFR A,C 19 2 TFR C,A 1A 2 TFR X,Y 1B 2 TFR Y,X 1C 2 TFR X,S 1D 2 TFR S,X 1E 2 TFR Y,S 1F 2 TFR S,Y 22 4 BMI 23 4 BPL 24 4 BEQ 25 4 BNE 26 4 BVS 27 4 BVC 28 4 BCS 29 4 BCC 2A 4 BHI 2B 4 BLS 2C 4 BGT 2D 4 BGE 2E 4 BLE 2F 4 BLT 32 3 STSP 33 2 JMP 34 4 JSR 35 3 CLR 36 4 NEG 37 4 INC 38 4 DEC 39 3 TST 3A 4 COM 3B 4 LSL 3C 4 LSR 3D 4 ROL 3E 4 ROR 3F 4 ASR 42 3 STSP 43 2 RTS 44 6 RTI 45 3 CLR 46 4 NEG 47 4 INC 48 4 DEC 49 3 TST 4A 4 COM 4B 4 LSL 4C 4 LSR 4D 4 ROL 4E 4 ROR 4F 4 ASR 52 3 STSP 53 4 JMP 54 5 JSR 55 3 CLR 56 4 NEG 57 4 INC 58 4 DEC 59 3 TST 5A 4 COM 5B 4 LSL 5C 4 LSR 5D 4 ROL 5E 4 ROR 5F 4 ASR 62 3 STSP 63 4 JMP 64 5 JSR 65 3 CLR 66 4 NEG 67 4 INC 68 4 DEC 69 3 TST 6A 4 COM 6B 4 LSL 6C 4 LSR 6D 4 ROL 6E 4 ROR 6F 4 ASR 72 3 STSP 73 4 JMP 74 5 JSR 75 3 CLR 76 4 NEG 77 4 INC 78 4 DEC 79 3 TST 7A 4 COM 7B 4 LSL 7C 4 LSR 7D 4 ROL 7E 4 ROR 7F 4 ASR 82 3 STSP 83 4 JMP 84 5 JSR 85 3 CLR 86 4 NEG 87 4 INC 88 4 DEC 89 3 TST 8A 4 COM 8B 4 LSL 8C 4 LSR 8D 4 ROL 8E 4 ROR 8F 4 ASR 92 2 LDSP 93 4 SBCA 94 4 SUBA 95 4 ADCA 96 4 ADDA 97 3 CMPA 98 3 BITA 99 4 ANDA 9A 4 ORA 9B 4 EORA 9C 3 CMPX 9D 3 CMPY 9E 3 CMPSP A2 3 LDSP A3 5 SBCA A4 5 SUBA A5 5 ADCA A6 5 ADDA A7 4 CMPA A8 4 BITA A9 5 ANDA AA 5 ORA AB 5 EORA AC 4 CMPX AD 4 CMPY AE 4 CMPSP B2 3 LDSP B3 5 SBCA B4 5 SUBA B5 5 ADCA B6 5 ADDA B7 4 CMPA B8 4 BITA B9 5 ANDA BA 5 ORA BB 5 EORA BC 4 CMPX BD 4 CMPY BE 4 LEASP C2 3 LDSP C3 5 SBCA C4 5 SUBA D2 3 LDSP D3 5 SBCA D4 5 SUBA E0 F0 2 E1 3 E2 3 E3 3 E4 3 F1 3 F2 3 F3 3 F4 3 C5 x D5 5 E5 4 F5 4 ADCA ADCA x+ 1 x+ 1 C6 5 D6 5 E6 4 F6 4 ADDA ADDA x- 1 x- 1 C7 4 CMPA C8 4 BITA C9 5 ANDA CA 5 ORA CB 5 EORA CC 4 LEAX CD 4 LEAY CE 4 LEASP D7 4 CMPA D8 4 BITA D9 5 ANDA DA 5 ORA DB 5 EORA DC 4 LEAX DD 4 LEAY DE 4 LEASP E7 4 +x 1 E8 4 -x 1 E9 3 EA 3 EB 4 y+ 1 EC 4 y- 1 ED 4 +y 1 EE 4 -y 1 9F 4 AF 4 BF 4 CF 4 DF EF FF EXG A,C EXG X,Y EXG X,S EXG Y,S F7 4 +x 1 F8 4 -x 1 F9 3 FA 3 FB 4 y+ 1 FC 4 y- 1 FD 4 +y 1 FE 4 -y 1

Adresseringsmetoder (se Instruktionslista för FLISP sid. 5-8) Inherent Information om operandens nya värde anges av själva operationskoden. T ex: CLA 0 A INCA Immediate A + 1 A Operandens värde anges av instruktionens operandinfo. T ex: #$FF FF 16 A

Adresseringsmetoder (se Instruktionslista för FLISP sid. 5-8) Absolute (kallas ibland direct ) Operandens, eller hoppdestinationens, läge i primärminnet (den s k effektivadressen, EA) anges av instruktionens operandinfo. T ex: $FF M(FF 16 ) A Indirect JMP $58 58 16 PC I denna adresseringmod (som dock ej finns på FLISP) anger operandinfo en adress i primärminnet där effektivadressen kan hämtas.

Adresseringsmetoder (se Instruktionslista för FLISP sid. 5-8) PC relative EA utgörs av PC-registrets nuvarande värde plus en offset (i 2-komplementform). Värdet på offset anges av operandinfo. T ex: BRA L1 Egentligen lyder instruktionen: BRA offset där offset = { EA för L1 } { värde i register PC } Genom att ange hoppdestinationen relativt PC-registret kan programkoden placeras på godtycklig plats i minnet, s k positionsoberoende kod.

Adresseringsmetoder (se Instruktionslista för FLISP sid. 5-8) Register indirect EA utgörs av en basadress plus en eventuell offset (i 2- komplementform). Varifrån basadress och offset hämtas anges av instruktionens operationskod och operandinfo. Ett av registren X, Y och SP måste ingå i beräkningen av EA. Dessutom kan en konstant (för X, Y och SP) eller innehållet i register A (för X och Y) ingå.

Adresseringsmetoder (se Instruktionslista för FLISP sid. 5-8) Register indirect (forts.) Ett av registren X, Y och SP måste ingå i beräkningen av EA. Dessutom kan en konstant (för X, Y och SP) eller innehållet i register A (för X och Y) ingå. Exempel: 2,X LDSP A,Y EA = { värde i register X } + 2 ; A M(EA) EA = { värde i register Y } + { värde i register A } ; M(EA) SP LEASP -8,SP EA = { värde i register SP } 8 ; EA SP JMP 0,X EA = { värde i register X } + 0 ; EA PC

Adresseringsmetoder (se Instruktionslista för FLISP sid. 5-8) Register indirect (forts.) Observera att såväl ett register som en konstant kan utgöra basadress. Exempel: $80,X basadress = { konstanten 80 16 } ; offset = { värde i register X } LEAX A,Y basadress = { värde i register A } ; offset = { värde i register Y } LEASP -8,SP basadress = { värde i register SP } ; offset = { konstanten -8 }