Ext-14 (Ver 2005-11-21) Ext-14. FLEX-processorns styrenhet med fast logik



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

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

LV6 LV7. 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.

ALU:n ska anslutas hur då?

Kapitel 7 Systemexempel (forts.)

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

Tillståndsmaskiner. 1 Konvertering mellan Mealy och Moore. Ola Dahl och Mattias Krysander Linköpings tekniska högskola, ISY, Datorteknik

EDA215 Digital- och datorteknik för Z

Digital- och datorteknik

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

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

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

Digital- och datorteknik

TENTAMEN (Något redigerad)

exempel på Tentamen 2

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

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

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

TENTAMEN(Nu anpassad till FLIS- processorn)

Detta häfte innehåller anvisningar om förberedelser och genomförande av fyra laborationer.

Digital- och datorteknik

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

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

Föreläsningsanteckningar 2. Mikroprogrammering I

Snabbslumpade uppgifter från flera moment.

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

Exempel 2 på Tentamen med lösningar

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

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

Exempel 1 på Tentamen med lösningar

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

Exempel 3 på Tentamen

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

4-6 Trianglar Namn:..

Digital- och datorteknik

Lösningsförslag tenta

Tentamen med lösningar

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

Digital- och datorteknik

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Klasser och objekt i C#

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Tentamen (Svar och lösningsförslag)

Mikroprogrammering I

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

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

Lathund, procent med bråk, åk 8

EDA Digital och Datorteknik

Hur du arbetar med VFU-portfölj i Mondo. en lathund för student

Hävarmen. Peter Kock

De grundläggande logiska grindarna

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

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

ANVÄNDARHANDLEDNING FÖR

Dash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.

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

Idag: Dataabstraktion

NATIONELLA MATEMATIKTÄVLING

Vi skall skriva uppsats

Träning i bevisföring

Laganmälan & Laghantering

Statsbidrag för läxhjälp till huvudmän 2016

CHALMERS TEKNISKA HÖGSKOLA

Laboration nr 3 behandlar

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Fristående förskolor totalt Antal svar samtliga fristående förskolor: 360 (57 %)

TIMREDOVISNINGSSYSTEM

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

TIMREDOVISNINGSSYSTEM

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Stella Nova förskola

FORTNOX SMÅFÖRETAGENS BÄSTA VÄN. Fortnox kom igång guide Praktisk bokföring. En guide för dig som vill komma igång med bokföring i Fortnox

Sammanfattning på lättläst svenska

Frågor och svar för föreningar om nya ansökningsregler för aktivitetsbidrag från och med 1 januari 2017

CAEBBK01 Drag och tryckarmering

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

x 2 + px = ( x + p 2 x 2 2x = ( x + 2

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Föreningen Nordens lokala hemsidor

Nationell källa för ordinationsorsak kopplad till nationell informationsstruktur

Intyg om erfarenhet och lämplighet att undervisa som lärare i gymnasieskolan

Kom-igång VictorReader Stratus 4 H som taltidningsspelare Ver

Väga paket och jämföra priser

Mål Blå kurs Röd kurs

Webb-bidrag. Sök bidrag på webben Gäller från

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

Styrteknik 7.5 hp distans: SFC med GX IEC

Datorsystemteknik DVGA03 Föreläsning 8

Manual för BPSD registret. Version 6 /

Sveriges Trafikskolors Riksförbund Film om körkort för nysvenskar Speakertext - Svensk

Datorövning 2 Statistik med Excel (Office 2007, svenska)

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Vägledning inför ansökan om statsbidrag för verksamhetsåret 2013

Facit med lösningsförslag kommer att anslås på vår hemsida Du kan dessutom få dem via e-post, se nedan.

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

Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

Transkript:

Ext-4 (Ver 2005--2) Ext-4 FLEX-processorns styrenhet med fast logik

2 Ext-4 FLEX-processorns styrenhet med fast logik En styrenhet för FLEX-processorn skall kunna generera alla styrsignaler till datavägen och minnet för samtliga instruktioner i instruktionslistan. Under körning av ett program måste därför ett stort antal olika styrsignalsekvenser av varierande längd och komplexitet genereras. Vi har tidigare sett hur datavägen och minnet kan styras genom att styrsignalerna först ges rätta värden varpå en klockpuls (positiv flank) verkställer laddning av ett eller flera utvalda register. Efter klockpulsflanken byter man till nya styrsignalvärden och verkställer nästa laddning med nästa klockpulsflank osv. Byte av styrsignaler och laddning av register sker alltså i samma takt. Det är därför lämpligt att använda samma klockpulssignal till datavägen, minnet och styrenheten. Styrenheten kommer därför att utgöras av ett synkront sekvensnät med som klocksignal och samtliga styrsignaler till datavägen och minnet som utsignaler. Som insignaler till styrenheten används innehållet i instruktionsregistret (dvs OP-koden) och innehållet i flaggregistret (dvs flaggorna). Styrenheten behöver OP-koden eftersom den bestämmer utförandefasen (EXECUTE) av instruktionen. Flaggorna behövs när en villkorlig instruktion skall utföras. För att processorn skall kunna startas eller återstartas behövs även en insignal (startsignal) Reset. Figur visar styrenheten utifrån sett. OP-kod (i 7 - i 0) LD A LD B LD R Flaggor (4) (N, Z, V, C) OE A OE B OE R Reset Styrenhet Styrsignaler till datavägen (30 st) f 0 f f 2 f 3 g 0 g g 2 IncPC IncS DecS MR MW Figur. Styrenhet till FLEX-processorn. En lämplig utgångspunkt för att bestämma styrenhetens interna uppbyggnad är den grova flödesplanen nedan. Den visar hur växling sker mellan interna tillstånd när instruktioner exekveras. Först konstateras att processorn måste starta från ett starttillstånd och utföra en startsekvens (RESET). Därefter skall den övergå till hämtfasen (FETCH), som följs av utförandefasen (EXECUTE) för den instruktion vars OP-kod finns i instruktionsregistret. Under normalt arbete skall den sedan ständigt växla mellan hämtfasen (FETCH) och utförandefasen (EXECUTE) enligt grafen. Resetsignal RESET FETCH EXECUTE

Ext-4 3 Tillståndsgraf för styrenhet I häftet Ext-8 visas att RESET-sekvensen kräver tre tillstånd och FETCH-sekvensen två tillstånd. Varje instruktion har ett unikt beteende i sin EXECUTE-sekvens, som därmed blir olika lång. Sekvensens längd bestäms ju av det nyttiga arbete den aktuella instruktionen skall utföra. Vi antar till en början att det räcker med åtta tillstånd för att utföra allt som behöver göras i EXECUTE-fasen för den längsta instruktionen. Maximala antalet tillstånd som styrenheten behöver genomlöpa är i så fall 3 + 2 + 8 = 3. Figur 2 visar RESET-, FETCH- och EXECUTE-sekvensen. De 3 tillstånden har döpts Q 0 Q C. Insignalen Reset= (Starttillstånd) Q 0 Q Q 2 Q 3 Q 4 Q 6 Q 7 Q C RESET FETCH EXECUTE Figur 2. Tillståndsgraf för FLEX-processorns styrenhet. Av figur 2 framgår också att en ny styrsignal (Next FETCH) har införts, detta för att förenkla övergången från det sista tillståndet i en EXECUTE-sekvens till det första tillståndet Q 3 i FETCH-sekvensen. används enbart internt inom styrenheten. I det sista tillståndet i en EXECUTE-sekvens skall styrsignalen ges värdet. I varje tillstånd aktiveras ett antal av de sammanlagt (30 + ) st styrsignalerna. Varje styrsignal är en Boolesk funktion av tillståndsvariablerna som definierar tillstånden (ringarna) och OPkoden. Eftersom det finns villkorliga instruktioner ingår även flaggorna i de Booleska uttrycken för vissa av styrsignalerna. I tillståndsgrafen skall egentligen också finnas övergångar (pilar) från varje ring till ringen längst till vänster, dvs starttillståndet. Övergång till starttillståndet skall ske så fort styrenhetens insignal Reset = vid positiv klockpulsflank. Detta är den enda påverkan insignalen Reset har på styrenheten.

4 Ext-4 Realisering av styrenhet med fast logik Det framgår av tillståndsgrafen i figur 2 att styrenheten liknar en räknare. Efter återställning, med insignalen Reset =, startar den från tillstånd Q 0 och räknar sedan uppåt genom RESET, FETCH- och EXECUTE-sekvensen. När det sista tillståndet i EXECUTE-sekvensen för den aktuella instruktionen har nåtts startar den om från första tillståndet i FETCH (Q 3 ). Den laddningsbara 4-bitars räknaren 74HC63, som användes i arbetshäfte nr 2, passar utmärkt för realisering av styrenheten. Räknarens symbol visas i figur 3. RESET M=COUNT/LOAD G3 G4 CTR4 5CT=0 M M2 G3 3CT=5 G4 C5 2,3,4+ C ut d 0 d d 2 d 3,5 D,5 D,5 D,5 D q 0 q q 2 q 3 Figur 3. 4-bitars räknaren 74HC63. Om man kodar tillstånden Q i i tillståndsgrafen i figur 2 som q 3 q 2 q q 0 och väljer Q 0 Q C som 0000-00, får man samma tillståndssekvens som i räknaren. Tillståndsgrafen visas i figur 4, där EXECUTE-sekvensen dessutom har kompletterats med de tre extra tillstånden Q D Q F, som man får på köpet genom att använda räknarens samtliga tillstånd. Tillstånden definieras enligt: q 3 q 2 q q 0 Insignalen Reset= (Start tillstånd) 0000 000 000 00 000 00 00 0 RESET FETCH EXECUTE Figur 4. Exempel på tillståndskodning för FLEX-processorns automatiska styrenhet. Kretsrealiseringen för denna tillståndsgraf blir mycket enkel och visas i figur 5.

Ext-4 5 Flaggor (4) LD A LD B LD R (OP - kod) i 7 - i 0 OE A OE B OE R (Q 3 = 00) RESET CTR4 5CT=0 COUNT/LOAD M M2 G3 3CT=5 G4 C5 2,3,4+ 0,5 D,5 D,5 D q 0 q q 2 Kombinatoriskt nät f 0 f f 2 f 3 g 0 g g 2 IncPC IncS P DecS P MR MW Styrsignaler till datavägen (30 st) 0,5 D q 3 Figur 5. Enkel realisering av FLEX-processorns automatiska styrenhet. Det kombinatoriska nätet i figur 5 är uppbyggt enligt principen i figur 6. Förutom avkodning av tillståndsräknare och instruktionernas OP-koder innehåller det en s k AND-OR area där styrsignalerna skapas som (Booleska) summor av produkttermer. Produkttermerna består av tillståndsvariablerna q 0 - q 3, OP-kodbitarna i 0 - i 7 och eventuellt flaggbitarna om en villkorlig instruktion skall utföras. I 02 I 02 C V Z N G0 G Gk Gn- Flaggvillkor I 04 I 07 Q 6 I 04 Q 6 I 07 LD A I 00 I AD Q 9 Q 9 I AD I 0 i 0 i 2 i 2 4 I 02 i 6 64 i 7 28 Styrsignaler (3 st) I FF I 00 I 00 I 0 I 0 q 0 q 2 q 2 4 q 3 8 Q 0 Q I 02 I 02 Q F I C6 Q A Q A I C6 Figur 6 Princip för kombinatorisk del av styrenhet med fast kopplad logik. Av figur 6 framgår att räknarens utsignaler q 3, q 2, q och q 0 är kopplade till en 4/6-avkodare med de sexton utsignalerna Q 0 Q F. Detta innebär t ex att när räknarens tillstånd q 3 q 2 q q 0 = (00) 2 = 3, är Q 3 =, medan övriga Q-värden från avkodaren är 0. Det framgår också att

6 instruktionsregistrets åtta bitar i 0 - i 7 är kopplade till en 8/256-avkodare med de 256 utsignalerna I 00 -I FF. Ext-4 Genom att studera hur styrsignalen LD A bildas i det kombinatoriska nätet i figur 6 får man en god uppfattning om hur hela nätet är konstruerat. Styrsignalen LD A, är utsignal från en OR-grind med ett stort antal ingångar enligt figur 7 nedan. Den är alltså A-registrets "load signal" och måste vara aktiv (=) när A-registret skall laddas med ett nytt datavärde från bussen. Vid alla andra tillfällen skall den vara passiv (=0). Samtliga instruktioner som laddar register A måste därför generera en etta på OR-grindens utgång under det tillstånd då laddningen skall ske. I 02 I 02 I 04 I 07 Q 6 I 04 Q 6 I 07 LDA Motsvarande Booleska uttryck: LD A = I 02 + I 04 + Q 6 I 07 + + Q 9 I AD I AD Q 9 Q 9 I AD Figur 7 Logiknät och motsvarande Booleska uttryck för styrsignalen LD A. Av figur 7 kan man se att den översta AND-grinden (och därmed OR-grinden som bildar styrsignalen LD A ) ger utsignalen om I 02 =. Register A laddas alltså när styrenheten befinner sig i tillstånd och OP-koden 02H samtidigt finns i instruktionsregistret. Eftersom är det första tillståndet i EXECUTE laddas register A i det första tillståndet i EXECUTE för instruktionen med OP-koden 02H. Nästa AND-grind ger utsignalen om I 04 =. Register A laddas när styrenheten befinner sig i tillstånd och OP-koden 04H samtidigt finns i instruktionsregistret. Här laddas register A i det första tillståndet i EXECUTE för instruktionen med OP-kod 04H. Följande AND-grind ger utsignalen om Q 6 I 07 =. Register A laddas när styrenheten befinner sig i tillstånd Q 6 och OP-koden 07H samtidigt finns i instruktionsregistret. Här laddas register A i det andra tillståndet i EXECUTE för instruktionen med OP-kod 07H. Den nedersta AND-grinden (och OR-grinden) ger utsignalen om Q 9 I AD =. Register A laddas när styrenheten befinner sig i tillstånd Q 9, d v s det femte tillståndet i EXECUTE för instruktionen med OP-kod ADH. Eftersom A-registret endast laddas i EXECUTE-fasen (av de instruktioner som påverkar A), består samtliga termer i summan som bildar LD A av en produkt Q i I j, där Q i (i = 5,, FH), är en av utsignalerna från tillståndsavkodaren i figur 6 och I j, (j = 0,, FFH), är en av utsignalerna från instruktionsavkodaren i samma figur.

Ext-4 7 Implementering av styrenhet för fyra instruktioner För att illustrera principen för styrenheten i föregående avsnitt skall vi nu konstruera en styrenhet som klarar de fyra instruktioner som ingår i programmet nedan LOOP LDAA #$90 INCA STAA $05 JMP LOOP Styrenheten skall alltså klara av RESET-sekvensen (för start av programmet), FETCH-sekvensen och EXECUTE-sekvenserna för de fyra instruktionerna i programmet. En lämplig utgångspunkt vid konstruktionen är att beskriva samtliga sex sekvenser som behövs med RTN och styrsignaler. RESET- och FETCH-sekvensen har beskrivits tidigare och återges i tabellform nedan. RESET: Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) Q 0 Q 0 FFH R f 3, f 2, f, f 0, LD R Q Q R MA OE R, LD MA Q 2 Q 2 M PC MR, LD PC FETCH: Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) Q 3 Q 3 PC MA, PC+ PC OE PC, LD MA, IncPC Q 4 Q 4 M I MR, LD I EXECUTE-sekvensen för LDAA #Data visas nedan. EXECUTE för LDAA #Data: (OP-kod = 0FH) Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) I 0F PC MA, PC+ PC OE PC, LD MA, IncPC Q 6 Q 6 I 0F M A, (Next Fetch) MR, LD A, I kolumnen Tillstånd visas styrenhetens tillstånd. I tabellerna ingår den nya kolumnen Summaterm, som visar summaterm Q i I j enligt principen i figur 7.

8 Ext-4 Övningsuppgift a: Fyll i RTN-beskrivning och styrsignaler för EXECUTE-sekvensen för instruktionen INCA i tabellen nedan. Observera att det första tillståndet i EXECUTE alltid är och att styrsignalen alltid skall vara aktiv i det sista tillståndet i EXECUTE. Tänk också på att INCA skall påverka flaggorna! EXECUTE för INCA: (OP-kod = 4H) Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) I 4 Q 6 Q 6 I 4 Övningsuppgift b: Fyll i OP-kod, Tillstånd, Summaterm, RTN-beskrivning och Styrsignaler i tabellerna nedan. Observera att det första tillståndet i EXECUTE alltid är. Styrenheten skall alltid återvända till första tillståndet i FETCH efter det sista tillståndet i EXECUTE. Därför måste man sätta = i det sista tillståndet i EXECUTE. Antalet klockcykler (states) för EXCUTE-sekvenserna får man fram genom att slå upp antalet states för respektive instruktion i instruktionslistan för FLEX-processorn och sedan dra bort antalet states i FETCH-sekvensen. På detta sätt får man 5-2 = 3 för STAA Adr och 4-2 = 2 för JMP Adr EXECUTE för STAA Adr: (OP-kod = H) Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) EXECUTE för JMP Adr: (OP-kod = H) Tillstånd Summaterm RTN-beskrivning Styrsignaler (=)

Ext-4 9 Övningsuppgift c: Översätt instruktionssekvensen nedan till maskinkod med hjälp av instruktionslistan för FLEXprocessorn. Instruktionssekvensens startadress i minnet skall vara 20H. Adress (Hex) F - 20 2 22 23 24 25 26 27 LOOP LDAA #$90 INCA STAA $05 JMP LOOP

0 Ext-4 Bilaga ALU:ns funktion D(8) E(8) F(4) C in ALU Flaggor(4) U(8) ALU:ns logiska och aritmetiska operationer på indata D och E definieras av ingångarna F = (f 3, f 2, f, f 0 ) och C in enligt tabellen nedan. f 3 f 2 f f 0 U = f(d,e,c in ) 0 0 0 0 0 0 0 0 D 0 0 0 E 0 0 D' 0 0 0 E' 0 0 D OR E 0 0 D AND E 0 D XOR E 0 0 0 D + C in 0 0 D + C in 0 0 D + E + C in 0 D + D + C in 0 0 D E + C in 0 0 0 0 FFH I tabellen ovan avser "+" och "-" aritmetiska operationer. Med t ex D' menas att samtliga bitar i D inverteras.

Ext-4 Processor MA Adressbuss LD A Reg A LD B Reg B 0 0 M U C 2 X C 3 2 g g 0 Funkt C in D LD R LD T U ALU Reg R Reg T E Flaggor g 2 LD CC 0 MUX Reg CC LD X Reg X IncSP DecSP LD SP SP IncPC LD PC PC LD MA MR MW Adress Minne Data ut Data in OE A OE B OE R OE CC OE X OE SP OE PC MR Styrsignaler LD I Reg I Reset Styrenhet Figur. Datorn FLEX.