Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

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

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

Adressavkodning - busskommunikation

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

2 UPPBYGGNAD OCH FUNKTION

Grundläggande digital- och datorteknik

Exempel 1 på Tentamen med lösningar

Tentamen med lösningar

Digital- och datorteknik

CHALMERS TEKNISKA HÖGSKOLA

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

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

Adressrum, programmerarens bild

Exempel 2 på Tentamen med lösningar

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

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

Digital- och datorteknik

Digital- och datorteknik

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

Maskinorienterad programmering

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

Digital- och datorteknik

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

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

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

Digital- och datorteknik

Avbrottshantering. Övningsuppgifter

Exempel 3 på Tentamen

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

LV6 LV7. Aktivera Kursens mål:

Tentamen i Digital Design

Digital- och datorteknik

Lösningsförslag till Tenta i Mikrodator

Digital- och datorteknik

Digital- och datorteknik

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

Maskinorienterad programmering

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

ALU:n ska anslutas hur då?

Avkodning av minnen (och I/O)

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

Avkodning av minnen (och I/O)

Övningsuppgifter i Mikrodatorteknik 4p/5p

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

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

Labyrintspelet EDI021 Grupp 5

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

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Avkodning av minnen (och I/O)

Digital- och datorteknik

Lösningsförslag tenta

Datorarkitekturer med Operativsystem

Assemblerprogrammering del 2

Digital- och datorteknik

HF0010. Introduktionskurs i datateknik 1,5 hp

Lösningsförslag till Tenta i Mikrodator

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

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

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

EDA Digital och Datorteknik

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.

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

MANUALBLAD MODULER TILL DIGITALMASKINEN

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

LEU240 Mikrodatorsystem

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

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

Digital- och datorteknik

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

Industriella styrsystem, TSIU06. Föreläsning 2

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

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

Tentamensskrivning 11 januari 2016

Digitala projekt rapport

Digital- och datorteknik

Läsminne Read Only Memory ROM

Maskinorienterad programmering

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digital- och datorteknik

LABORATIONSINSTRUKTION

Digitalteknik: CoolRunner-II CPLD Starter Kit

DIGITALTEKNIK. Laboration D172

Digital- och datorteknik

Föreläsningsanteckningar 3. Mikroprogrammering II

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

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

Lösningar till tentamen i EIT070 Datorteknik

A-del motsvarande KS1

GPIO - General Purpose Input Output

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

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

Föreläsningsanteckningar 2. Mikroprogrammering I

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Manual. Abelko M-Bus Device Creator (MBDC)

L15 Introduktion modern digital design

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Exempel på tentamensfrågor Digitalteknik

Transkript:

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

Översikt När flera minnesmoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i adressbussen. Övriga adressledningar i bussen används för att välja rätt minnesmodul genom att man bildar selektorsignaler ( chip select ) med hjälp av dem via logik för adressavkodning. centralenhet databuss adressbuss avkodningslogik minne minne ACK-logik

Låt oss nu titta närmre på hur detta går till, hur man kan vara säker på att rätt gränssnitt adresseras av centralenheten. Oftast består datorn av flera minnestyper och vanligtvis ingår också flera typer av gränssnitt. Vi ska nu inledningsvis, som dogöra för hur ett komplett datorsystem, med centralenhet, två minneskretsar och gas upp. Vi gör detta genom att konstruera ett block bestående av grindar. Detta ssavkodningslogik (Figur 10.12). centralenhet avkodningslogik Översikt FIGUR 10.12 ADRESSAVKODNINGSLOGIK 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 adressbuss) och 8-bitars databuss. r vi att vi har tillgång till följande komponenter B adressrum (16 bitars adressbuss), 8-bitars ordbredd (databuss) M 4 kb OM 4 kb om utport, buffert, 8 bitar som inport ed logikgrindar. databuss adressbuss minne Chip Select 1 minne Chip Select 2 utport Som minnesmoduler använder vi och i storlekarna 4 kbyte 32 kbyte. Exempel på 4 kbyte minnesmodul ges nedan. D0 A0 utsättningarna kan vi ge förenklade bilder av de ingående komponenterna. I dessa ignaler och komponenter som inte behövs för adressavkodningen. A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 MR MW Adressbuss, 16 signaler, betecknas A0-A15 Styrsignaler MR och MW Minnet har 8-bitars ordbredd, precis som centralenheten MR och MW är insignaler till minneskapslarna CS (Chip Select) är en insignal till kapseln som måste aktiveras för åtkomst minnet UR 10.13 FÖRENKLADE FIGURER AV CENTRALENHET OCH MINNE D0 D1 D2 D3 D4 D5 D6 D7 MR MW CS 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 Databuss, 8 signaler, betecknas D0-D7 D1 D2 D3 D4 D5 D6 D7 Minneskapsel EP 4 kbyte Buffert, 8 bitar som inport Register, 8 bitar som utport A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 TABELL 10.1 MINNES Av minnesdispositionen framgår att -minnet ska aktiveras om centralenheten gener EP-minnet ska aktiveras om centralenheten gen Inporten ska aktiveras om centralenheten genererar a Utporten ska aktiveras om centralenheten genererar a Följande tabell visar de värden adressbussens signale Kapsel A15 A14 A13 A12 A11 A 0FFF 0 0 0 0 1 0000 0 0 0 0 0 CFFF 1 1 0 0 1 C000 1 1 0 0 0 A000 1 0 1 0 0 A000 1 0 1 0 0 8000 1 0 0 0 0 8000 1 0 0 0 0 Vi måste nu, konstruera logik som kan jämföra adre vi tilldelat respektive kapsel och skapa en signal CS (c använder vi grindar av typen NOT och AND. Av tabelle varje kapsel genom att bara använda adressledningarn följande uppställning Minnet har 8-bitars Kapsel ordbredd, precis som Adressbuss, centralenheten A 16 signaler, 0000-0FFF betecknas MR och MW är A0-A15 EP C000-CFFF inport A000 insignaler till minneskapslarna utport 8000 För exempelvis -kapseln ska dessa CS (Chip Select) tre adress är en A14 insignal till kapseln A15=1, A14=1 och A15 A13=0, osv. Genom att bara låta d som måste aktiveras minsta möjliga kretslogik. MR Eftersom Styrsignaler vi lämnar för åtkomst adressle minnet MW MR och MW kommer CS-signalen att vara aktiv för ett större adre respektive kapsel. Man säger att samma modul avbilda ofullständig adressavkodning. Följande tabell visar nu vå

Placering av minnesmoduler När man gör adressavkodningen för en dator utgår man ifrån hur stort minne och vilken typ av minne som behövs. Därefter avgörs hur stora minnesmoduler som skall användas. Nästa steg är att placera in de olika modulerna i centralenhetens adressrum. Var varje minnesmodul placeras beror på vad modulen skall innehålla samt vilka konventioner som används för den typen av dator. 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.

Placering av minnesmoduler (storlekar) 4 kbyte minnesmodul (12 adressledningar A 0 A 11 ) Storlek 1000 16 bytes Exempel på adressområde 1000 16 1FFF 16 8 kbyte minnesmodul (13 adressledningar A 0 A 12 ) Storlek 2000 16 bytes Exempel på adressområde 2000 16 3FFF 16 16 kbyte minnesmodul (14 adressledningar A 0 A 13 ) Storlek 4000 16 bytes Exempel på adressområde 4000 16 7FFF 16 32 kbyte minnesmodul (15 adressledningar A 0 ) Storlek 8000 16 bytes Exempel på adressområde 8000 16 FFFF 16

Placering av minnesmoduler (minneskarta) För att illustrera den valda placeringen av minnesmoduler och periferikretsar används oftast en minneskarta ( memory map ). För ett datorsystem med 64 kbyte adressrum är det totala adressområdet 0000 16 FFFF 16. Exempel system med 20 kbyte minne 4 kbyte 4 kbyte placerat på 8000 16 8FFF 16 16 kbyte 8 kbyte placerat på C000 16 DFFF 16 8 kbyte placerat på E000 16 FFFF 16 0000 16 8000 16 8FFF 16 C000 16 DFFF 16 E000 16 FFFF 16 4 kbyte 8 kbyte 1 8 kbyte 2

Placering av minnesmoduler (minneskarta) De olika modulerna skall adresseras inom unika adressintervall (områden). Inom respektive minnesmoduls adressområde är ett litet antal av de mest signifikanta adressbitarna konstanta. De konstanta bitarna i vårt exempel är markerade med en ram. Modul Adress Adressignal nr nr 1 nr 2 8000H 8FFFH C000H DFFFH E000H FFFFH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Placering av minnesmoduler (minneskarta) 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 minnesmodul, när processorn skall läsa eller skriva i just denna modul. Modul Adress Adressignal nr nr 1 nr 2 8000H 8FFFH C000H DFFFH E000H FFFFH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Placering av minnesmoduler (avkodning) en ( chip select -logiken) sker i logikblock med de mest signifikanta adressbitarna samt, när så behövs, signalen MR som insignaler. Utsignalerna består av "chip select"-signaler till de olika modulerna. centralenhet databuss adressbuss avkodningslogik minne minne ACK-logik

Placering av minnesmoduler (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, A 15 A 12, används för att bestämma var någonstans i processorns adressrum modulen placeras. -modulen placeras i adressintervallet 8000 16 8FFF H. I detta intervall har adressbitarna A 15 A 12 värdena 1000 2. Modulen kan då pekas ut med en chip select -signal, som bildas på följande sätt A 15 A 13 A 12 CS

Placering av minnesmoduler (avkodning) På ett liknande sätt kan vi ta fram adressavkodningen för -modulerna i vårt exempel. De två modulerna placeras i adressintervallet C000 16 DFFF H ( nr 1) respektive E000 16 FFFF H ( nr 2). Här används även MR-signalen vid bildandet av chip select. Om MR 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å databussen och orsakar en busskollision. A 15 A 13 MR CS nr 1 A 15 A 13 MR CS nr 2

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 minnesmoduler 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. 0000 16 8000 16 8FFF 16 C000 16 DFFF 16 E000 16 FFFF 16 Outnyttjat adressområde 4 kbyte Outnyttjat adressområde 8 kbyte 1 8 kbyte 2

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 minnesmodulerna fortfarande ha sina ursprungliga unika adressområden, men det skulle också bli möjligt att adressera dem på andra ställen i adressrummet. 0000 16 8000 16 8FFF 16 C000 16 DFFF 16 E000 16 FFFF 16 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. För att välja mellan de två modulerna behöver man sedan lägga till adressbit A 13. en kan alltså göras med ett färre antal grindar, och med grindar med ett färre antal ingångar. öljande tabell, som avbildar processorns hela adressrum M. Modul Adress Adressignal nr nr 1 nr 2 nr 1 nr 2 0000H 0FFFH 1000H 1FFFH 2000H 2FFFH 3000H 3FFFH 4000H 5FFFH 6000H 7FFFH 8000H 8FFFH 9000H 9FFFH A000H AFFFH B000H BFFFH C000H DFFFH E000H FFFFH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Ofullständig adressavkodning en kan alltså göras med ett färre antal grindar, och med grindar med ett färre antal ingångar. A 13 MR A 13 MR 1 CS CS nr 1 CS nr 2 öljande tabell, som avbildar processorns hela adressrum M. Modul Adress Adressignal nr nr 1 nr 2 nr 1 nr 2 0000H 0FFFH 1000H 1FFFH 2000H 2FFFH 3000H 3FFFH 4000H 5FFFH 6000H 7FFFH 8000H 8FFFH 9000H 9FFFH A000H AFFFH B000H BFFFH C000H DFFFH E000H FFFFH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Placering av periferikretsar (minneskarta) Antag att man nu skulle vilja utöka vårt exempel med två inportar och två utportar, och placera dem i adressområdet 4000 16 4003 16 Med fullständig adressavkodning kommer alla 16 adressbitar att krävas vid avkodningen. eringen kan sammanfattas i tabellform 4000 16 4001 16 4002 16 4003 16 Inport nr 1 Inport nr 2 Utport nr 1 Utport nr 2 0000 16 8000 16 8FFF 16 4 kbyte Modul Adress Adressignal nr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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 C000 16 DFFF 16 E000 16 FFFF 16 8 kbyte 1 8 kbyte 2

Placering av periferikretsar (avkodning) 0000 16 A 15 A 13 A 12 A 11 A 15 A 13 A 12 A 11 4000 16 4001 16 4002 16 4003 16 Inport nr 1 Inport nr 2 Utport nr 1 Utport nr 2 A 10 A 10 A 9 A 9 A 8 A 7 CS Inport nr 1 A 8 A 7 CS Inport nr 2 8000 16 8FFF 16 4 kbyte A 6 A 6 A 5 A 5 A 4 A 4 A 3 A 2 A 1 A 0 MR A 3 A 2 A 1 A 0 MR C000 16 DFFF 16 E000 16 FFFF 16 8 kbyte 1 8 kbyte 2

Placering av periferikretsar (avkodning) 0000 16 A 15 A 13 A 12 A 11 A 15 A 13 A 12 A 11 4000 16 4001 16 4002 16 4003 16 Inport nr 1 Inport nr 2 Utport nr 1 Utport nr 2 A 10 A 10 A 9 A 9 A 8 A 7 CS Utport nr 1 A 8 A 7 CS Utport nr 2 8000 16 8FFF 16 4 kbyte A 6 A 6 A 5 A 5 A 4 A 4 A 3 A 2 A 1 A 0 MW A 3 A 2 A 1 A 0 MW C000 16 DFFF 16 E000 16 FFFF 16 8 kbyte 1 8 kbyte 2

Överlagrad minnesavbildning 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 D000 16 D003 16, D000 d v s i samma del av 16 Inport nr 1 D001 Inport nr 2 adressrummet som en 16 D002 16 Utport nr 1 av -modulerna. D003 16 Utport nr 2 0000 16 8000 16 8FFF 16 C000 16 DFFF 16 E000 16 FFFF 16 4 kbyte 8 kbyte 1 8 kbyte 2

Överlagrad minnesavbildning Detta löses genom överlagrad minnesavbildning, 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 minnesmodulen. 0000 16 A 15 A 13 MR CS nr 1 (C000 16 CFFF 16 samt D004 16 DFFF 16 ) 8000 16 8FFF 16 4 kbyte CS Inport nr 1 CS Inport nr 2 CS Utport nr 1 CS Utport nr 2 1 CS In/Ut (D000 16 D003 16 ) D000 16 D001 16 D002 16 D003 16 Inport nr 1 Inport nr 2 Utport nr 1 Utport nr 2 C000 16 DFFF 16 E000 16 8 kbyte 1 8 kbyte 2 FFFF 16

Generell avkodningslogik 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?