Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

Adressavkodning - busskommunikation

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

2 UPPBYGGNAD OCH FUNKTION

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

Grundläggande digital- och datorteknik

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Exempel 1 på Tentamen med lösningar

Tentamen med lösningar

Adressrum, programmerarens bild

Digital- och datorteknik

CHALMERS TEKNISKA HÖGSKOLA

Maskinorienterad programmering

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

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

Digital- och datorteknik

Digital- och datorteknik

Avbrottshantering. Övningsuppgifter

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

Digital- och datorteknik

F9: Minne. Sammansättning av minnesgrupper Ansluta minne till Interface till olika typer av minnen Användningsområden.

Exempel 2 på Tentamen med lösningar

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

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

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

Tentamen i Digital Design

Maskinorienterad programmering

LV6 LV7. Aktivera Kursens mål:

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

Digital- och datorteknik

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

Digital- och datorteknik

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

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

F9: Minne. Minneskonfiguration. Sammansättning av minnesgrupper Ansluta minne till Interface till olika typer av minnen Användningsområden

Exempel 3 på Tentamen

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

Labyrintspelet EDI021 Grupp 5

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

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

Digital- och datorteknik

Lösningsförslag till Tenta i Mikrodator

Avkodning av minnen (och I/O)

Digital- och datorteknik

MC11. Enkortsdator. MC11 - Hårdvarubeskrivning. MC68HC11 är Motorola INC MS-DOS är Microsoft Corporation MC11, MC68 och MD68k är microlf

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

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

ALU:n ska anslutas hur då?

Digital- och datorteknik

Industriella styrsystem, TSIU06. Föreläsning 2

Datorarkitekturer med Operativsystem

Digital- och datorteknik

Lösningsförslag till Tenta i Mikrodator

HF0010. Introduktionskurs i datateknik 1,5 hp

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

LEU240 Mikrodatorsystem

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Digital- och datorteknik

Läsminne Read Only Memory ROM

MANUALBLAD MODULER TILL DIGITALMASKINEN

LABORATIONSINSTRUKTION

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

Tentamensskrivning 11 januari 2016

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.

DIGITALTEKNIK. Laboration D172

Digitalteknik: CoolRunner-II CPLD Starter Kit

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Konstruktionsmetodik för sekvenskretsar

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Avkodning av minnen (och I/O)

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1

Övningsuppgifter i Mikrodatorteknik 4p/5p

Digital- och datorteknik

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

Assemblerprogrammering del 2

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

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

Sekvensnät vippor, register och bussar

Tentamen i Digitalteknik, EITF65

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

Föreläsningsanteckningar 2. Mikroprogrammering I

Avkodning av minnen (och I/O)

Lösningar till tentamen i EIT070 Datorteknik

Laborationskort - ML4

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Laboration i digitalteknik Datablad

Miniräknare. Laborationsrapport Laborationsrapport i mikrodatorkonstruktion. En rapport skriven av teknologstuderande: Martin Bergström Gert Johnsen

Laboration i digitalteknik Datablad

Datakommunikation med IR-ljus.

Försättsblad till skriftlig tentamen vid Linköpings Universitet

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

GPIO - General Purpose Input Output

Programmerbar logik. Kapitel 4

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

Transkript:

Digital- och datorteknik Föreläsning #23 Översikt När flera smoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i en. Övriga adressledningar i bussen används för att välja rätt smodul genom att man bildar selektorsignaler ( chip select ) med hjälp av dem via logik för adressavkodning. 10.4 Översikt Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Datorsystemet Med adressavkodning menar man den den teknik som används för att avkoda en och bilda den speciella signal, ofta kallad chip-select (CS) som används för att aktivera en speciell enhet så som eller gränssnitt. Vi har sett att centralenheten kommunicerar med såväl som gränssnitt via systemets bussar. Låt oss nu titta närmre på hur detta går till, hur man kan vara säker på att rätt skrets eller rätt gränssnitt adresseras av centralenheten. Oftast består datorn av flera styper organiserade i block, och vanligtvis ingår också flera typer av gränssnitt. Vi ska nu inledningsvis, som ett enkelt exempel, redogöra för hur ett komplett datorsystem, med centralenhet, två skretsar och två gränssnitt kan byggas upp. Vi gör detta genom att konstruera ett block bestående av grindar. Detta logikblock kallas adress (Figur 10.12). Vi måste nu, konstruera logik som kan jämföra ens värde med den del av adressrummet vi tilldelat respektive kapsel och skapa en signal CS (chip select) för varje kapsel. För att göra detta använder vi grindar av typen NOT och AND. Av tabellen framgår att vi kan göra en unik CS-signal för A1 varje kapsel genom A2 att bara använda adressledningarna A15, A14 och A13. Vi ser detta tydligare i följande uppställning A3 Minnet har 8-bitars A0 A4 ordbredd, precis som A1 A5 A2 Minnet A6, centralenheten A15 A14 A13 A3 innehåller A7 16 signaler, 0000-0FFF 0 0 0 A4 4 kb (2 12 ) A8 betecknas A5 bytes och och är A9 A0-A15 EP C000-CFFF 1 1 0 A6 har därmed insignaler till A10 inport A000 1 0 1 A7 12 adressledningar skapslarna A11 utport 8000 1 0 0 A8 A12 A9 A13 CS ( Select) är en A10 A0-A11 För exempelvis -kapseln ska dessa tre adressignaler vara 0, för EP-kapseln ska vi ha A14 insignal till kapseln CS A11 A15=1, A14=1 och A15 A13=0, osv. Genom att bara låta dessa signaler ingå i adressavkodningen får vi som måste aktiveras minsta möjliga kretslogik. Eftersom Styrsignaler vi lämnar för åtkomst adressledningar t från A12 och nedåt som don t care och kommer CS-signalen att vara aktiv för ett större adressintervall än det som från början avsågs för respektive kapsel. Man säger att samma modul avbildas på flera olika adressintervall och kallar detta ofullständig adressavkodning. Följande tabell visar nu vårt slutliga val av adressavkodning centralenhet FIGUR 10.12 ADRESSAVKODNINGSLOGIK För exemplet antar vi att vi har tillgång till följande komponenter Centralenhet, 64 kb adressrum (16 bitars ), 8-bitars ordbredd () Minneskapsel 4 kb Minneskapsel EP 4 kb Register, 8 bitar som utport, buffert, 8 bitar som inport Standardkretsar med logikgrindar. Som målsystem i våra exempel på adressavkodning använder EP vi ett mindre inbyggt datorsystem med en centralenhet med 64 inport kbyte adressrum (16-bitars ) och 8-bitars. utport Som smoduler använder vi och i storlekarna 4 kbyte 32 kbyte. Exempel på 4 kbyte smodul ges nedan. A0 Med de givna förutsättningarna kan vi ge förenklade bilder av de ingående komponenterna. I dessa figurer utelämnar vi signaler och komponenter som inte behövs för adressavkodningen. Databuss, 8 signaler, betecknas - REGISTER, med 8- bitars ordbredd och LE (Load Enable) ingång A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15, 16 signaler, betecknas A0-A15 Styrsignaler och Select 1 Select 2 FIGUR 10.13 FÖRENKLADE FIGURER AV CENTRALENHET OCH MINNE LE kan användas som gränssnitt i en enkel utmatningsenhet Minnet har 8-bitars ordbredd, precis som centralenheten och är insignaler till skapslarna CS ( Select) är en insignal till kapseln som måste aktiveras för åtkomst t BUFFERT, med 8- bitars ordbredd och OE (Output Enable) ingång FIGUR 10.14 FÖRENKLADE FIGURER AV REGISTER OCH BUFFERT CS OE A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 Minnet innehåller 4 kb (2 12 ) bytes och har därmed 12 adressledningar A0-A11 kan användas som gränssnitt i en enkel inmatningsenhet 213 Databuss, 8 signaler, betecknas - Grundläggande datorteknik för högskolans ingenjörsutbildningar Vi börjar med att bestämma var, i centralenhetens adressrum, vi vill placera de olika kringkomponenterna. För exemplet väljer vi följande sdisposition (adresserna anges i hexadecimal form) Av sdispositionen framgår att -t ska aktiveras om centralenheten genererar någon av adresserna 0-0FFF. EP-t ska aktiveras om centralenheten genererar någon av adresserna C000-CFFF. Inporten ska aktiveras om centralenheten genererar adress A000. Utporten ska aktiveras om centralenheten genererar adress 8000. Följande tabell visar de värden ens signaler får anta för respektive kapsel. Select 1 Select 2 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 A15 A14 A13 Adressintervall REGISTER, med 8- kan användas som 0 0 0 BUFFERT, med 8-0000-1FFF kan användas som bitars ordbredd och EP gränssnitt i en 1 enkel 1 0 bitars ordbredd och C000-DFFF gränssnitt i en enkel LE (Load Enable) utmatningsenhet OE (Output Enable) inmatningsenhet ingång inport 1 0 1 A000-BFFF ingång utport 1 0 0 8000-9FFF LE OE Figur 10.15 nedan visar kopplingarna för adressavkodninglogiken. Dataledningarnas anslutningar ( till, till osv.) är markerade med en svart buss. På 1 motsvarande sätt har adressledningar A0-A11 markerats av en grå buss. Utöver dessa adressledningar, en och CS-signalerna ansluts även och mellan centralenheten och, till EP kapseln ansluter vi bara, vi antar att denna är programmerad sedan tidigare. 214 Startadress Slutadress Minneskapsel 4 kbyte 0000 0FFF Minneskapsel EP 4 kbyte C000 CFFF Buffert, 8 bitar som inport A000 A000 Register, 8 bitar som utport 8000 8000 TABELL 10.1 MINNESDISPOSITION 0FFF 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CFFF 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 C000 8000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 centralenhet ACK-logik Grundläggande datorteknik för högskolans ingenjörsutbildningar 214 Vi börjar med att bestämma var, i centralenhetens adressrum, vi vill placera de olika kringkomponenterna. För exemplet väljer vi följande sdisposition (adresserna anges i hexadecimal form) Startadress Slutadress Minneskapsel 4 kbyte 0000 0FFF Minneskapsel EP 4 kbyte C000 CFFF Buffert, 8 bitar som inport A000 A000 Register, 8 bitar som utport 8000 8000 TABELL 10.1 MINNESDISPOSITION Av sdispositionen framgår att -t ska aktiveras om centralenheten genererar någon av adresserna 0-0FFF. EP-t ska aktiveras om centralenheten genererar någon av adresserna C000-CFFF. Inporten ska aktiveras om centralenheten genererar adress A000. Utporten ska aktiveras om centralenheten genererar adress 8000. Följande tabell visar de värden ens signaler får anta för respektive kapsel. A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Placering av smoduler 0FFF 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 När man gör adressavkodningen för en dator utgår man ifrån hur CFFF 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 EP C000 stort och vilken typ av som behövs. Därefter avgörs inport hur stora smoduler som skall användas. Nästa steg är att 8000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 utport placera in de olika 8000 modulerna 1 0 0 0 i 0 centralenhetens 0 0 0 0 0 0 0 adressrum. 0 0 0 0 Var varje smodul placeras beror på vad modulen skall innehålla samt vilka konventioner som används för den typen av dator. Vi måste nu, konstruera logik som kan jämföra ens värde med den del av adressrummet vi tilldelat respektive kapsel och skapa en signal CS (chip select) för varje kapsel. För att göra detta använder vi grindar av typen NOT och AND. Av tabellen framgår att vi kan göra en unik CS-signal för varje kapsel genom att bara använda adressledningarna A15, A14 och A13. Vi ser detta tydligare i följande uppställning A15 A14 A13 0000-0FFF 0 0 0 EP C000-CFFF 1 1 0 inport A000 1 0 1 utport 8000 1 0 0 För inbyggda datorsystem gäller normalt att placeras där man vill ha data som inte skall förändras, t ex programkod, textsträngar, vektorer för reset- och interrupt. placeras där man vill ha data som skall kunna förändras av programmet, t ex variabler och stack. För exempelvis -kapseln ska dessa tre adressignaler vara 0, för EP-kapseln ska vi ha A15=1, A14=1 och A13=0, osv. Genom att bara låta dessa signaler ingå i adressavkodningen får vi minsta möjliga kretslogik. Eftersom vi lämnar adressledningar från A12 och nedåt som don t care kommer CS-signalen att vara aktiv för ett större adressintervall än det som från början avsågs för respektive kapsel. Man säger att samma modul avbildas på flera olika adressintervall och kallar detta ofullständig adressavkodning. Följande tabell visar nu vårt slutliga val av adressavkodning Adressintervall A15 A14 A13 0 0 0 0000-1FFF EP 1 1 0 C000-DFFF inport 1 0 1 A000-BFFF utport 1 0 0 8000-9FFF Figur 10.15 nedan visar kopplingarna för adressavkodninglogiken. Dataledningarnas anslutningar ( till, till osv.) är markerade med en svart buss. På motsvarande sätt har adressledningar A0-A11 markerats av en grå buss. Utöver dessa adressledningar, en och CS-signalerna ansluts även och mellan centralenheten och, till EP kapseln ansluter vi bara, vi antar att denna är programmerad sedan tidigare.

Placering av smoduler (storlekar) 4 kbyte smodul (12 adressledningar 1 ) Storlek 1000 16 bytes Exempel på adressområde 1000 16 1FFF 16 8 kbyte smodul (13 adressledningar ) Storlek 2000 16 bytes Exempel på adressområde 2000 16 3FFF 16 16 kbyte smodul (14 adressledningar ) Storlek 4000 16 bytes Exempel på adressområde 4000 16 7FFF 16 32 kbyte smodul (15 adressledningar ) Storlek bytes Exempel på adressområde Placering av smoduler (skarta) För att illustrera den valda placeringen av smoduler och periferikretsar används oftast en skarta ( memory map ). För ett datorsystem med 64 kbyte adressrum är det totala adressområdet. Exempel system med 20 kbyte 4 kbyte 4 kbyte placerat på 16 kbyte 8 kbyte placerat på 8 kbyte placerat på 4 kbyte 8 kbyte 1 8 kbyte 2 Placering av smoduler (skarta) De olika modulerna skall adresseras inom unika adressintervall (områden). Inom respektive smoduls adressområde är ett litet antal av de mest signifikanta adressbitarna konstanta. De konstanta bitarna i vårt exempel är markerade med en ram. 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Placering av smoduler (skarta) De konstanta adressbitarna har samma (unika) värden för alla adresser inom området och kan ses som en ID-kod för området. ID-koden kan användas för att "peka ut" respektive smodul, när processorn skall läsa eller skriva i just denna modul. 13-10 Del 2 Datorteknik Ext-17 Inplaceringen kan också sammanfattas i tabellform 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 De olika modulerna skall adresseras inom unika adressintervall (områden). Inom respektive smoduls adressområde är ett litet antal av de mest signifikanta adressbitarna konstanta. De är markerade med en ram. De har samma (unika) värden för alla adresser inom området och kan sägas bilda en ID-kod för respektive område. ID-koden kan därför användas för att "peka ut" respektive smodul, dvs för att bilda CS-signalen, som är aktiv när processorn skall läsa eller skriva i just denna modul. Modulerna ansluts till adress- och en enligt Figur 13.15. - - - 1 - - - - - E VMA CS-logik för VMA R/W CS-logik för VMA R/W CS-logik för

Placering av smoduler (avkodning) en ( chip select -logiken) sker i logikblock med de mest signifikanta adressbitarna samt, när så behövs, signalen som insignaler. Utsignalerna består av "chip select"-signaler till de olika modulerna. centralenhet ACK-logik Placering av smoduler (avkodning) Vi betraktar nu adressavkodningen för -modulen i vårt exempel. När modulstorleken är 4 kbyte = 2 12 byte används 12 stycken adressbitar för intern adressavkodning inom modulen. De övriga fyra adressbitarna,, används för att bestämma var någonstans i processorns adressrum modulen placeras. -modulen placeras i adressintervallet 8FFF H. I detta intervall har adressbitarna värdena 1000 2. Modulen kan då pekas ut med en chip select -signal, som bildas på följande sätt CS Placering av smoduler (avkodning) På ett liknande sätt kan vi ta fram adressavkodningen för -modulerna i vårt exempel. De två modulerna placeras i adressintervallet DFFF H ( ) respektive FFFF H ( ). Här används även -signalen vid bildandet av chip select. Om inte används så skulle en eventuell skrivning i (t ex på grund av ett programmeringsfel) innebära att både processorn och -modulen släpper ut data på en och orsakar en busskollision. CS nr 1 CS Fullständig adressavkodning Vi har i vår lösning använt alla adressbitar som krävs för att aktivera en modul enbart inom dess avsedda adressområde. Detta kallas för fullständig adressavkodning. Vid fullständig adressavkodning kommer adressrummet att utnyttjas maximalt. Vi kan exempelvis bygga ut med fler smoduler eller lägga till periferikretsar, utan att behöva göra om den tidigare adressavkodningen. Denna typ av avkodning kan dock i många fall kräva relativt komplicerade logiknät. Outnyttjat adressområde 4 kbyte Outnyttjat adressområde 8 kbyte 1 8 kbyte 2 3

Ofullständig adressavkodning För att förenkla adressavkodningen kan man ibland låta bli att använda alla adressbitarna. Detta får till följd att avkodningen inte blir entydig, d v s samma chip select -signal kan bli aktiv i fler än ett adressintervall. Man kallar denna metod för ofullständig adressavkodning. Om vi i vårt exempel skulle använda enklast möjliga avkodning skulle smodulerna fortfarande ha sina ursprungliga unika adressområden, men det skulle också bli möjligt att adressera dem på andra ställen i adressrummet. 4 kbyte 4 kbyte 4 kbyte 4 kbyte 8 kbyte 1 8 kbyte 2 4 kbyte 4 kbyte 4 kbyte 4 kbyte 8 kbyte 1 8 kbyte 2 Ofullständig adressavkodning Vi ser i vårt exempel att endast adressbit är helt nödvändig för att skilja på adressområdena för - och -modulerna. öljande tabell, som avbildar processorns hela adressrum M. 0000H 0FFFH 1000H 1FFFH 2000H 2FFFH 3000H 3FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4000H 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5FFFH 13-16 Del 2 Datorteknik 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 För att välja mellan de två modulerna behöver man sedan 7FFFH 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Ext-17 6000H 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 13.6 Anslutning av in- och utmoduler till CPU12 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Beskrivningen lägga görs här till genom adressbit en utvidgning av systemet. i Exempel 13.3 med in- och utmoduler. 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 9000H 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 Exempel 13.7 9FFFH 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 en kan alltså göras med ett färre antal grindar, 0000H och med grindar med ett färre antal ingångar. A000H 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Systemet i Exempel 13.3 skall nu utökas med två in- och två utportar, som skall placeras i adressrummet på adresserna 4000H - 4003H enligt Figur 13.25. AFFFH 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 4000H 4000H 4001H 4002H 4003H Inport Inport Utport Utport B000H BFFFH 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Adresser 4 kbyte Ofullständig adressavkodning en kan alltså göras med ett färre antal grindar, och med grindar med ett färre antal ingångar. 1 1 1 CS CS CS öljande tabell, som avbildar processorns hela adressrum M. 0000H 0FFFH 1000H 1FFFH 2000H 2FFFH 3000H 3FFFH 4000H 5FFFH 6000H 7FFFH 9000H 9FFFH A000H AFFFH B000H BFFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Det ofullständiga framgår av att modulerna, 4kbyte och 2 8 kbyte, nu "tar upp" (blockerar) mycket mer av utrymmet i adressrummet M, närmare bestämt hela utrymmet M, vilket ses i tabellen. Utöver de områden som är önskvärda så tar modulerna vid denna ofullständiga adressavkodning även upp de områden som gråmarkerats i tabellen. Anledningen till detta är att de adressbitar som markerats med fetstil i tabellen inte ingår i adressavkodningen. De skall därmed betraktas som "don't care"-värden. 8 kbyte 8 kbyte Placering av periferikretsar Figur 13.25 (skarta) Portarna skall vara av den typ som ges i Figur 13.26. Antag att man nu skulle vilja utöka Indata (8) Utdata (8) Inport Utport vårt exempel med två inportar och två utportar, och placera dem i CS OE CS adressområdet 4000 16 4003 16 Med fullständig Till (D adressavkodning 7 -D 0 ) kommer alla 16 adressbitar att krävas vid avkodningen. Inplaceringen kan sammanfattas i tabellform Figur 13.26 Blocksymboler för inports- och utportsmoduler. C Register (8) Från (D 7 -D 0 ) 4000 16 4001 16 4002 16 4003 16 Inport 1 4000H 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Inport 2 4001H 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Utport 1 4002H 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 Utport 2 4003H 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 Inport Inport Utport Utport Av Figur 13.26 och tabellen framgår att varje port har en egen (unik) adress. För in- och utportarna krävs alla 16 bitarna i adressen för att "peka ut" rätt enhet, vilket visas i Figur 13.27. 4 kbyte 8 kbyte 1 8 kbyte 2 I stället för att bygga upp adressavkodningen med diskreta grindar som i de visade exemplen använder man i praktiken ofta färdiga avkodare, fördelare, snabba, PLA- eller PAL-kretsar för att bilda CS-signalerna. PLA- och PAL-kretsar är exempel på kretsar med programmerbar logik, PLD (Programmable Logic Device). 4

Placering av periferikretsar (avkodning) Placering av periferikretsar (avkodning) 1 1 4000 16 4001 16 4002 16 4003 16 Inport Inport Utport Utport 1 1 4000 16 4001 16 4002 16 4003 16 Inport Inport Utport Utport 0 0 0 0 CS Inport CS Inport 4 kbyte CS Utport CS Utport 4 kbyte 8 kbyte 1 8 kbyte 2 8 kbyte 1 8 kbyte 2 Överlagrad savbildning I en del system (som i vårt exempel) kan man få en situation där man behöver några enstaka portar, men inte vill lägga beslag på ett ledigt adressrum enbart för portarna. Ett alternativ är då att lägga portarna i samma adressrum som en redan existerande modul. Antag att man väljer att lägga in- och utportarna i området 00 16 03 16, 00 d v s i samma del av 16 Inport 01 Inport adressrummet som en 16 02 16 Utport av -modulerna. 03 16 Utport 4 kbyte 8 kbyte 1 8 kbyte 2 CS Inport CS Inport CS Utport CS Utport Överlagrad savbildning Detta löses genom överlagrad savbildning, där man först skapar en fullständig avkodning för portarna och sedan använder inversen av den erhållna avkodningen som kompletterande villkor för chip select -signalen för smodulen. 1 CS In/Ut (00 16 03 16 ) CS ( CFFF 16 samt 04 16 ) 00 16 01 16 02 16 03 16 Inport Inport Utport Utport 4 kbyte 8 kbyte 1 8 kbyte 2 5

Generell I stället för att bygga upp adressavkodningen med diskreta grindar använder man i praktiken ofta färdiga kretsar för att bilda chip select -signalerna, t ex binäravkodare, fördelare ( demultiplexer ), eller PLA-/PAL-kretsar. PLA- och PAL-kretsar är exempel på s k programmerbar logik, PLD (Programmable Logic Device). som utförs med denna typ av kretsar blir därmed den mest flexibla. Att fundera på Hur skulle adressavkodningen för vårt exempel göras om vi använde binäravkodare eller fördelare? 6