Download as pdf or txt
Download as pdf or txt
You are on page 1of 252

25 AULA POLITCNICA / ETSETB

F Masana - J Salazar - C Pol


J Cabestany - J Madrenas
J Cabestany - J Madrenas
F Masana - J Salazar - C Pol

Disseny de sistemes digitals


Aquesta obra constitueix una introducci a l'estudi dels siste- Els autors sn professors del Departament d'Enginyeria

Disseny de sistemes digitals amb microprocessadors


Electrnica de la UPC. Tots ells estan impartint matries
mes basats en microprocessadors. Fa una presentaci de les relacionades amb el disseny digital i els microprocessa-
diferents parts que formen aquests sistemes: CPU, memries dors i tenen una mplia experincia docent i de desenvo-

amb microprocessadors
i perifrics, i com tamb una srie de consideracions prcti- lupament d'aplicacions.
ques sobre la seva interconnexi. El text fa un mfasi especial
en els aspectes elctrics i electrnics i va acompanyat d'una
srie de casos d'estudi. s una obra pensada perqu pugui
utilitzar-se com a referncia bsica en un curs de carcter
introductori.

EDICIONS UPC UNIVERSITAT POLITCNICA DE CATALUNYA EDICIONS UPC


Presentaci 7

Presentaci

Els autors, professors de l'assignatura CISE IV del primer cicle del Pla 92 d'Enginyeria de
Telecomunicaci de lEscola Tcnica Superior dEnginyers de Telecomunicaci de Barcelona, hem
tingut la intenci d'incloure en aquest llibre els coneixements bsics necessaris perqu l'alumne
pugui seguir satisfactriament un curs bsic sobre sistemes basats en microprocessadors.

Es tracta d'una primera versi, a la qual caldr fer diverses correccions i afegits per a una versi
posterior, ms definitiva; per aix demanem disculpes per les errades i mancances que s'hi puguin
trobar, i encoratgem sincerament els alumnes que utilitzin aquest llibre perqu ens facin arribar tots
els seus suggeriments; estigueu ben segurs que seran rebuts amb agrament i que seran estudiats amb
molta cura.

Els objectius que ens hem marcat a l'hora de confeccionar aquesta obra es poden resumir de la
manera segent:

a) Que l'alumne trobi en aquestes pgines una guia clara i prou completa de la matria
compresa a l'assignatura CISE IV.

b) Que una gran quantitat d'informaci, que, exposada en les classes de teoria de
l'assignatura, podria fer-les molt denses i una mica ensopides, pugui quedar en aquest
llibre com a referncia de lectura per a l'alumne, i ax es pugui dedicar el temps de
classe per impartir els punts ms importants del temari de l'assignatura i illustrar-los
amb diversos exemples prctics.

c) Que, en definitiva, esdevingui el llibre de text de l'assignatura.

Cal assenyalar que el nombre dexercicis i casos prctics presentats s limitat, per que s'anir
complementant en una versi posterior amb material extret de les sessions d'aplicaci de
l'assignatura.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su distribucin y
venta fuera del mbito de la Unin Europea.
8 Disseny de sistemes digitals amb microprocessadors

Malgrat que es pretn aconseguir un text prou autocontingut, en una propera versi es donaran
referncies bibliogrfiques que permetin fer lectures complementries d'alguns temes.

Qualsevol suggeriment i comentari, el podeu adrear als professors de l'assignatura i en particular, a:

Joan Cabestany
Campus Nord UPC
Mdul C4 Despatx 210
Telfon: 93-4016742
E-mail: cabestan@eel.upc.es

Barcelona, setembre de 1996

los autores, 1998; Edicions UPC, 1998.


ndex 9

Index

1 Introducci

1.1 Disseny de sistemes electrnics digitals. Sistemes configurables per software .........................14
1.2 Microprocessadors i microcontroladors. Evoluci ...................................................................20
1.3 Microprocessadors i microcontroladors per a disseny digital ...................................................23
1.4 Components del sistema ..........................................................................................................24

2 Interconnexi d'elements, els busos i els protocols

2.1 Introducci..............................................................................................................................27
2.2 Alguns aspectes sobre les famlies lgiques (TTL i CMOS) ....................................................27
2.3 Els tipus de busos ....................................................................................................................40
2.4 Aspectes elctrics de les connexions........................................................................................44
2.5 Les tcniques d'interfcie amb el bus .......................................................................................49
2.6 Els diferents protocols: sncrons, semisncrons i asncrons.......................................................55

3 Unitat central de procs (CPU)

3.1 La CPU en un sistema master/slave. La seva organitzaci interna ...........................................59


3.2 La interfcie exterior................................................................................................................64
3.3 Alguns exemples .....................................................................................................................69
3.4 El model de programaci ........................................................................................................73
3.5 Una introducci als tipus i formats de les instruccions.............................................................77
3.6 Els modes d'adreament ..........................................................................................................84
3.7 La temporitzaci: els cicles mquina i els cicles d'instrucci...................................................88

los autores, 1998; Edicions UPC, 1998.


10 Disseny de sistemes digitals amb microprocessadors

4 Subsistema de memria

4.1 Model de slave ......................................................................................................................101


4.2 Tipus de memries ................................................................................................................102
4.3 Estructura interna dels circuits integrats de memria .............................................................104
4.4 Organitzaci i capacitat.........................................................................................................111
4.5 Mduls de memria...............................................................................................................112
4.6 Descodificaci.......................................................................................................................115
4.7 Aspectes de temporitzaci .....................................................................................................126
4.8 Memries DRAM..................................................................................................................132

5 L'entrada/sortida

5.1 Introducci ............................................................................................................................141


5.2 Les interfcies........................................................................................................................142
5.3 L'estructura de la interfcie amb el P: els registres...............................................................143
5.4 El problema de la sincronitzaci............................................................................................146
5.5 La consulta............................................................................................................................146
5.6 Les interrupcions...................................................................................................................148
5.7 El cicle d'interrupci .............................................................................................................149
5.8 Concepte de prioritat. El registre de mscara.........................................................................150
5.9 La gesti de la prioritat .........................................................................................................151
5.10 La rutina de servei de la interrupci (RSI). El vector d'interrupci .......................................154
5.11 Interrupcions directes, autovectoritzades i vectoritzades.......................................................157
5.12 La relaci entre el vector i la RSI .........................................................................................158
5.13 El concepte d'excepci .........................................................................................................160
5.14 Els mecanismes de protecci. Modes del processador...........................................................161
5.15 La interfcie amb els perifrics .............................................................................................164
5.16 La comunicaci en parallel..................................................................................................165
5.17 Comunicaci en parallel orientada a byte ............................................................................166
5.18 Comunicaci en parallel orientada a bloc. Accs directe a la memria ................................170
5.19 El control dels busos.............................................................................................................172
5.20 Els cicles de DMA................................................................................................................174
5.21 El controlador de DMA (DMAC) .........................................................................................176
5.22 Comunicaci en srie ...........................................................................................................178
5.23 La transmissi en srie asncrona..........................................................................................180
5.24 La tolerncia de sincronisme ................................................................................................181
5.25 La transmissi sncrona ........................................................................................................183
5.26 Estndards de comunicaci en srie......................................................................................184

los autores, 1998; Edicions UPC, 1998.


ndex 11

6 Casos prctics

6.1 Introducci............................................................................................................................189
6.2 Circuits auxiliars: reset, wait, bus error.................................................................................189
6.3 Cas d'estudi 1 ........................................................................................................................194
6.4 Cas d'estudi 2 ........................................................................................................................202
6.5 Cas d'estudi 3 ........................................................................................................................210
6.6 Cas d'estudi 4 ........................................................................................................................219

Apndix A ..................................................................................................................................223

Apndix B ..................................................................................................................................235

Apndix C ..................................................................................................................................241

los autores, 1998; Edicions UPC, 1998.


Introducci 13

1 Introducci
Els sistemes electrnics programables per software ofereixen un clar avantatge de versatilitat enfront
dels sistemes completament cablejats, especialment en aplicacions dalguna complexitat, on part de
lespecificaci dun producte pot evolucionar a mesura que el disseny avana i, fins i tot, durant la
vida del producte, un cop realitzat el disseny. s important que un disseny pugui ser reconfigurable o
ampliable per poder ser adaptat a les millores que incorporin noves versions o generacions del
producte. Daltra banda, la programabilitat dun sistema permet que lusuari pugui personalitzar el
funcionament del sistema dacord amb les seves necessitats i convenincia.

La flexibilitat que permeten els sistemes programables fa que actualment no es pugui concebre
prcticament cap sistema mnimament complex sense una part de programaci.

Daltra banda, laugment continuat que sest produint en la capacitat dintegraci permet que la
sofisticaci de funcionalitat dels sistemes segueixi progressivament aquest ritme. Actualment, la
integraci a molt gran escala (Very Large Scale of Integration, VLSI) permet incorporar en un sol
circuit integrat monoltic de silici centenars de milers i, fins i tot, milions de transistors. Aix ha
determinat lestructura que prenen els sistemes actuals.

Existeixen diverses alternatives per realitzar electrnicament sistemes digitals. En un entorn


industrial, la selecci duna daquestes opcions ve donada per un conjunt de caracterstiques o
condicions de contorn tcniques, econmiques i comercials. Una de les alternatives amb importants
avantatges i que, per tant, s seleccionada en un percentatge molt gran daplicacions s la dels
sistemes microprocessadors (P) o microcontroladors (C). s per aix que el disseny de sistemes
basats en P/C pren entitat prpia i el coneixement de les tcniques de disseny que fan s daquest
tipus de sistemes es fa fonamental dins les tcniques de disseny digital.

Alguns dels avantatges clau de lxit daquest tipus de sistemes sn:

Programabilitat. Com que una bona part de la funcionalitat est definida en un programa
emmagatzemat a la memria, s molt senzill modificar el comportament sense haver de variar
el hardware.

Reutilitzaci del software. Els programes (o mduls de programes) escrits per a una aplicaci
poden ser moltes vegades reutilitzats fent-hi poques modificacions o cap, de forma fins i tot
independent de la CPU.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
14 Disseny de sistemes digitals amb microprocessadors

Eines de desenvolupament. La disponibilitat deines que permeten generar un codi mquina i


depurar el funcionament del sistema, mitjanant la simulaci i lemulaci.

Independncia de la tecnologia. Utilitzant P/C de major velocitat i prestacions es pot


millorar el rendiment del sistema, sense haver de realitzar gaires modificacions en el software
o el hardware.

Aquest text se centra en lmbit dels microprocessadors/microcontroladors (P/C) aplicats al


disseny de sistemes digitals.

Als apartats segents sintrodueixen algunes caracterstiques dinters per al disseny de sistemes
electrnics digitals i es revisen les opcions principals que la tecnologia electrnica ofereix al
dissenyador per realitzar-los. Ja particularitzant al disseny de sistemes amb P/C, es descriu el
procs general de disseny daquest tipus de sistemes, com tamb les eines de desenvolupament usades
ms generalment. Es presenta una breu perspectiva histrica de levoluci dels P/C i semmarca
lmbit daplicaci que es tracta en aquest text: el disseny de sistemes electrnics digitals per a
control, enfront de les aplicacions orientades a clcul o les aplicacions especfiques. Finalment, es
descriuen els components principals dun sistema P/C.

1.1 Disseny de sistemes electrnics digitals. Sistemes configurables per software

1.1.1 Evoluci de la capacitat dintegraci

El primer circuit integrat va aparixer lany 1958. Ats que des de llavors el nombre de dispositius
dun xip determinat pot ser molt diferent, usualment es fa servir la classificaci segent:

SSI (Small Scale of Integration). Inclou els circuits de fins a 100 transistors. Bsicament sn
portes lgiques, amplificadors operacionals i molts circuits lineals.

MSI (Medium Scale of Integration). De 100 a 1.000 transistors. Registres, comptadors, ALU
(unitat aritmtica i lgica) simples.

LSI (Large Scale of Integration). De 1.000 a 100.000 transistors. Microprocessadors,


memries, microcontroladors, etc.

VLSI (Very Large Scale of Integration). De 100.000 a 1.000.000 de transistors. Computadors,


microprocessadors avanats, memries de gran capacitat.

La capacitat dintegraci (nombre de dispositius que pot contenir un circuit integrat) que ofereixen les
tecnologies microelectrniques est augmentant en una progressi geomtrica des de linici dels
circuits integrats. La llei de Moore, formulada fa ms de dues dcades, quantifica aquest creixement:
cada any el nombre de transistors integrables en un xip es duplica. Aquesta llei s'ha complert fins a
l'actualitat i es preveu que continuar complint-se almenys durant una dcada ms.

los autores, 1998; Edicions UPC, 1998.


Introducci 15

La possibilitat dincorporar milers de transistors en un sol circuit integrat (xip) de silici va permetre
cap a linici dels anys setanta construir els primers microprocessadors, terme emprat per designar els
circuits integrats que contenen una CPU (unitat central de procs). A la segona meitat dels anys
setanta ls dels microprocessadors es va estendre rpidament a causa de la seva flexibilitat en el
disseny de sistemes electrnics i de computadores digitals. L'evoluci de les diferents generacions de
microprocessadors i microcontroladors ha estat marcada per l'increment sostingut de la capacitat
d'integraci. En un xip de milions de transistors es poden incorporar elements i estratgies de clcul
impossibles en poques anteriors, cosa que condiciona els dissenys actuals.

1.1.2 Evoluci de la complexitat dels sistemes digitals

Levoluci de la complexitat dels microprocessadors i les memries en el temps s la conseqncia


lgica de lanomenada llei de Moore (vegeu fig. 1.1.a). A mesura que la capacitat dintegraci
augmenta, es poden construir processadors amb ms funcionalitat i memries de major capacitat.

Ats que els circuits integrats poden incorporar cada vegada ms funcionalitat, tot i que els sistemes
cada vegada sn ms complexos, paradoxalment el nombre de xips per sistema decreix en el temps
(vegeu fig. 1.1.b).

n n n: Unitats
Memries Dispositius/sistema
Dispositius/xip
Xips/sistema
Micropro-
cessadors

t (anys) t (anys)
(a) (b)

Fig. 1.1 a) Evoluci temporal del nombre de dispositius per xip de memria i per
microprocessador; b) Evoluci temporal de la complexitat dels sistemes.

Un exemple clar de la reducci de components en un sistema grcies a la capacitat dintegraci sn


els microcontroladors, xips que a ms de la lgica de la CPU inclouen memria tant de tipus RAM
com ROM i una srie de perifrics dentrada/sortida. Aix redueix drsticament el nombre de circuits
integrats del sistema i, per tant, les dimensions de la placa de circuit imprs on els xips
sinterconnecten.

1.1.3 Tecnologies i tendncies actuals

Inicialment, els processos bipolars (que integren transistors bipolars) eren els ms usuals en la
fabricaci microelectrnica. Desprs de millores successives, les famlies lgiques de tipus TTL
(Transistor-Transistor-Logic) varen esdevenir estndards de fet per a la realitzaci de sistemes

los autores, 1998; Edicions UPC, 1998.


16 Disseny de sistemes digitals amb microprocessadors

digitals basats en circuits SSI i MSI. La famlia lgica ECL (Emitter Coupled Logic) permetia
construir circuits dalta velocitat a costa dun consum de potncia elevat.

Ms endavant les tecnologies de fabricaci MOS (metall xid semiconductor) han anat desplaant les
bipolars, especialment en circuits digitals. Aix es deu principalment a les dimensions ms redudes
dels transistors MOS i al baix consum esttic de potncia de les famlies CMOS (Complementary
MOS). Per aquest motiu, en una gran majoria daplicacions les tecnologies CMOS han desbancat la
lgica TTL, mentre que en algunes aplicacions de velocitat molt alta la soluci ECL o, fins i tot, els
circuits darseniur de galli sn imprescindibles.

En els darrers anys sest estenent ls de tecnologies BiCMOS (Bipolar CMOS). Els processos de
fabricaci BiCMOS permeten emprar tant transistors MOS com bipolars, i sn bsicament processos
CMOS als quals safegeixen algunes etapes de procs que permeten fabricar transistors tant de tipus
MOS com bipolars. Aquest tipus de tecnologia combina la gran capacitat dintegraci dels transistors
MOS amb la millor capacitat de corrent (drive) dels transistors bipolars. Aix s especialment til per
als microprocessadors i els microcontroladors, que tenen una gran complexitat interna i shan de
connectar a travs de busos a un nombre elevat de circuits perifrics.

1.1.4 Solucions de disseny de sistemes digitals. Hardware vs. software

Com indica la figura 1.2, un sistema digital es pot considerar com un sistema de processament que rep
una informaci d'entrada i genera una informaci de sortida a partir dels algorismes memoritzats, ja
sigui en forma de contingut d'una memria o en forma d'interconnexi de circuits.

Processament
Entrada digital Sortida

Fig. 1.2. Sistema de processament digital genric

Per a un sistema digital definit, existeixen diversos tipus d'alternatives per a la realitzaci fsica
(vegeu fig. 1.3). Un primer grup correspon a les realitzacions amb circuits estndards: l'usuari tria els
components i la seva interconnexi, per no pot dissenyar o modificar els components, com a mxim
pot definir el contingut de les memries. El segon grup s el de sistemes ms o menys programables
pel dissenyador. D'esquerra a dreta, la flexibilitat (programabilitat) en la definici dels components
augmenta. Tot seguit es descriu breument cadascuna de les solucions.

Realitzaci off-the-shelf. La soluci clssica de disseny consisteix a realitzar la funci lgica a


base de circuits estndards SSI i MSI (i eventualment LSI) que ofereixen els fabricants en els
seus catlegs de productes, interconnectats de forma que constitueixin la funci volguda.
Tenen els inconvenients que sn molt poc flexibles (qualsevol modificaci implica modificar
les connexions o els components del circuit), voluminosos, i que ocupen molt espai de circuit
imprs. Fa tres dcades aquesta era l'nica possibilitat.

los autores, 1998; Edicions UPC, 1998.


Introducci 17

Sistema P/C. s el tipus de sistema objecte d'estudi en aquest text. Es descompon en una
part de hardware i una altra de software. El hardware el constitueixen una CPU, circuits de
memria i perifrics d'entrada/sortida interconnectats per busos. El software semmagatzema a
les memries, que contenen tant les instruccions de programa com dades del procs. Aquesta
soluci s molt flexible, ja que modificant els programes es pot canviar la funcionalitat del
sistema sense haver de variar els circuits. Tamb sol ser ms compacte que l'anterior per,
com a contrapartida, la velocitat es veu reduda, ja que en superposici amb el processament de
dades, el sistema ha d'anar capturant i descodificant les instruccions que indiquen les tasques
que el sistema ha de realitzar (hi ha una tasca important d'intercomunicaci).

La resta de circuits se solen anomenar ASIC (Application-Specific Integrated Circuits), ja que sn


realitzats especficament per a una aplicaci en concret.

PLD (Programmable Logic Devices) i FPGA (Field-Programmable Gate Arrays). Aquests


tipus de circuits integrats sn programables per l'usuari. La lgica interna que contenen aquests
dispositius es pot programar (ja sigui mitjanant fusibles o memria interna al xip) de forma
que el dissenyador defineix la funci lgica que el circuit ha de tenir internament. Mitjanant
els instruments de programaci adients, el dissenyador pot programar ell mateix el circuit.

Gate arrays. Sn circuits integrats prefabricats que contenen matrius de transistors o de portes
elementals, per sense la darrera capa de metallitzaci. El dissenyador defineix les
interconnexions i el fabricant de CI les realitza afegint la darrera capa de metall. Cal fer unes
noves mscares de la darrera metallitzaci per a cada gate array. La resta de mscares sn
comunes, cosa que redueix el cost respecte als dos darrers tipus de circuits.

Circuits
Circuitsestndards
estndard Circuits
Circuitsaamida
mida

Off-the-shelf
Off-the-shelf P, C
P, PLD,
PLD, Gate
Gate Standard
Standard
(Catleg) Memries FPGA arrays cells Full
Fullcustom
custom
(Catleg) Memries FPGA arrays cells

Connectat Programat Programat Metallitzaci Celles Mscares


(software) (hardware)
General Especfic

Soluci
Soluciptima
ptima==f(N,
f(N,P,
P,T,
T,f,f,D,
D,F,
F,...)
...)

N: nombre dunitats, P: consum, T: temps de disseny, f: freqncia de funcionament, D: dimensions, F: fiabilitat

Fig. 1.3 Alternatives de realitzaci fsica de sistemes digitals

los autores, 1998; Edicions UPC, 1998.


18 Disseny de sistemes digitals amb microprocessadors

Standard Cells. Es construeix un circuit integrat a mida emprant celles de llibreria del
fabricant de CI, que s'interconnecten dins el CI per a la funci volguda. En aquest cas, cal fer
tot el joc de mscares per a cada nou CI; per tant, el desenvolupament t un cost ms elevat
que els gate arrays, per tamb s molt ms flexible.

Full custom. En aquest tipus de disseny es poden definir totes les dimensions dels transistors
(sempre que es compleixin unes regles de disseny que el fabricant especifica) i, per tant, es pot
optimitzar el disseny al mxim. Des del punt de vista del temps i lesfor del disseny, s el ms
costs i, per tant, a la prctica no s'utilitza, llevat que sigui per a volums de producci enormes
on s important la mxima optimitzaci de la velocitat, lrea i el consum del CI.

La soluci final s funci d'una srie de parmetres tcnics i econmics, com ara el consum, lrea, la
confidencialitat del disseny, el nombre d'unitats que shan de fabricar, el temps de disseny i de
prototipatge, les eines de CAD (Computer-Aided Design) i de desenvolupament disponibles, la
fiabilitat requerida, la disponibilitat d'estocs, etc.

s important assenyalar que aquestes solucions no sn mtuament excloents, tot al contrari, els
sistemes digitals gaireb sempre sn hbrids, s a dir, incorporen components de diferents tipus. En
particular, s molt corrent que un sistema microprocessador inclogui lgica estndard de catleg i
algun tipus de circuit especfic (FPGA, gate array, etc.).

Igualment, en la definici d'un sistema digital dalguna complexitat existeix la possibilitat de


sintetitzar les seves diverses funcions sobre programes (software) o sobre circuits (hardware). En
general, en el primer cas la realitzaci s menys costosa, i en el segon cas es pot obtenir major
velocitat. Una tasca important del disseny consisteix a decidir com es realitza (si per mitj de
hardware o de software) cadascuna de les funcions especificades.

1.1.5 Procs de desenvolupament d'una aplicaci. Eines de desenvolupament

Una causa fonamental de l'xit dels sistemes P/C ha estat la disponibilitat deines de
desenvolupament que permeten establir un flux de disseny clar i fiable. Aquest flux de disseny es
representa esquemticament a la figura 1.4.
Les eines de desenvolupament es poden distingir en eines software i eines hardware.

a) Eines software

Assemblador. Realitza la traducci dels programes escrits en llenguatge assemblador a codi


mquina. Sol suportar directives que faciliten el desenvolupament del programa, i permet definir
constants, variables, adreces, assemblatge condicional, etc.

Linker (enllaador). Compon els diversos mduls objecte generats per lassemblador en un fitxer
executable directament pel processador de destinaci.

Simulador d'execuci. Permet comprovar el funcionament correcte del software sense haver-lo
dexecutar sobre el processador de destinaci. Usualment t facilitats per controlar lexecuci (pas

los autores, 1998; Edicions UPC, 1998.


Introducci 19

a pas, punts daturada, etc.) i permet la visualitzaci on-line dels registres del processador,
continguts de memria, etc.

Compilador. La programaci del sistema es pot fer emprant un llenguatge dalt nivell. Un dels
ms populars s el llenguatge C, que permet un accs simple als recursos de hardware.

ESPECIFICACI

DISSENY DISSENY
HARDWARE SOFTWARE

MUNTATGE
DEPURACI
DEPURACI

FUNCIONAMENT
HARD & SOFT

COMPLEIX NO
ESPECIFICACI?

Fig. 1.4 Diagrama de flux del procs de disseny

b) Eines hardware

Emulador. s una eina de desenvolupament potent que simula fsicament una part del hardware,
de forma que es pot connectar a la placa daplicaci i es pot realitzar la depuraci sense que tot el
hardware existeixi fsicament, la qual cosa permet un control de lexecuci per part de lusuari
similar a la simulaci.

Analitzador lgic. s lequivalent digital a loscilloscopi. Un nombre de canals normalment


elevat permet monitorar diversos senyals del sistema. La visualitzaci es pot fer en forma de
cronograma o en representaci numrica (binria, hexadecimal, etc.). La potncia de lanalitzador
lgic ve donada per la seva capacitat de memoritzar esdeveniments previs o posteriors a una
condici de disparament que estableix lusuari (per exemple, la presncia dun valor determinat en
el bus dadreces), la qual cosa facilita molt la tasca de comprovaci i la detecci de fallades.

Analitzador de protocols. s un analitzador lgic especfic per monitorar algun tipus de protocol
(interrelaci d'un determinat nombre de senyals). Lavantatge principal en front dels analitzadors

los autores, 1998; Edicions UPC, 1998.


20 Disseny de sistemes digitals amb microprocessadors

de propsit general s que porta incorporades les configuracions adients per detectar anomalies en
els protocols que suporta.

Actualment sest fent un esfor important en recerca i desenvolupament deines automtiques de


codisseny hardware/software (HW/SW Codesign). Donada una especificaci global dun sistema, la
idea del codisseny consisteix en la partici automtica i optimitzada de lespecificaci en el software i
el hardware que realitzen fsicament lespecificaci. Sespera que ben aviat apareguin eines
comercials eficients que realitzin aquesta tasca amb major o menor interacci humana.

1.2 Microprocessadors i microcontroladors. Evoluci

1.2.1 Definici de microprocessador i microcontrolador

L'origen de la paraula microprocessador ve de microcircuit processor, s a dir, processador (CPU)


realitzat en un circuit integrat. Aquesta s exactament la definici de microprocessador: s un circuit
integrat digital que cont una unitat central de procs (CPU). S'entn per CPU un sistema digital que
pot executar operacions aritmtiques i lgiques d'acord amb un programa extern i que cont com a
mnim els recursos per capturar instruccions de programa, emmagatzemar variables intermdies i
dirigir la transferncia de dades amb l'exterior. La sofisticaci de totes aquestes funcions, la inclusi
d'altres de noves i el nombre de bits dels operands marquen la diferncia entre les diverses
generacions de microprocessadors.

Els microcontroladors, a ms d'incloure els circuits del microprocessador, incorporen memria i


alguns perifrics d'entrada/sortida, de forma que prcticament formen per si sols un sistema
computador, sense gaireb necessitat daltres components externs. Aix els fa molt interessants en
aplicacions compactes, sensibles al cost, de baix consum, etc.

Des del punt de vista conceptual, els microprocessadors i els microcontroladors no presenten
diferncies importants, per s des del punt de vista de realitzaci prctica. Aix, lrea ocupada per la
integraci de memria i perifrics en els circuits microcontroladors repercuteix usualment en un joc
dinstruccions menys potent, memria i capacitat dadreament ms redudes i menor flexibilitat en el
nombre i el tipus de perifrics que el que ofereixen els microprocessadors. Tot aix defineix
clarament uns mbits daplicaci complementaris per als microprocessadors i els microcontroladors.

1.2.2 Evoluci dels microprocessadors i els microcontroladors

La histria dels P/C t poc ms de 25 anys. Resulta sorprenent la gran quantitat de millores i el
perfeccionament que han assolit en aquest breu temps.

A les taules 1.1 i 1.2 es mostren una selecci de microprocessadors i microcontroladors,


respectivament, que han marcat fites importants en la histria de la seva evoluci. Aix no va en
demrit de molts altres circuits que no figuren a les taules, ja que no es pretn que siguin exhaustives,
sin nicament que reflecteixin a grans trets levoluci dels circuits P/C.

los autores, 1998; Edicions UPC, 1998.


Introducci 21

El primer microprocessador que va aparixer al mercat va ser lIntel 4004, lany 1972. Permetia
adrear fins a 2 k posicions de memria, va ser realitzat en tecnologia PMOS i usava una tensi
d'alimentaci de 15 V. Rpidament van aparixer els 8080 i 8085, que han estat microprocessadors
d'una gran difusi i shan emprat durant llarg temps. Treballen amb dades de 8 bits i la seva capacitat
d'adreament s de 64 k. En els anys segents van aparixer molts altres microprocessadors de 8 bits.

Al final dels anys setanta van comenar a aparixer els microprocessadors de 16 bits. El 6809, que
realitza aritmtica de 16 bits i inclou la instrucci de multiplicaci, s un exemple de la transici. El
Motorola 68000 presenta un disseny molt homogeni amb un joc de registres no especialitzats i 24 bits
d'adreces. El seu bus de dades s de 16 bits, per internament pot treballar amb registres de 32 bits.

Cap a l'any 1985 apareixen processadors per a computaci parallela (INMOS Transputer) que
inclouen ports de transmissi srie per poder intercanviar informaci durant l'execuci parallela. La
filosofia de disseny bit-slice es veu reflectida en el processador modular AMD 2901. El nombre de
bits de dades es dimensiona depenent de l'aplicaci connectant mduls en parallel.

A la segona meitat dels vuitanta apareixen els processadors RISC (Reduced Instruction Set
Computer), que redueixen el conjunt d'instruccions suportades. Aix els permet incrementar la
velocitat d'execuci i augmentar el nombre de registres interns. Una altra caracterstica que presenten
s lexecuci en pipeline. Ns un exemple significatiu el processador Sparc, utilitzat en moltes
estacions de treball (workstations).

Any Microprocessador Caracterstiques


1972 Intel 4004 Primer microprocessador. 4 bits de dades, instruccions de 8 bits, 12 bits
dadrea, 46 instruccions, tecnologia PMOS, alimentaci 15 V
1973 Intel 8080 i 8085 8 bits dades, 16 bits adreces
1974 Motorola 6800 1 acumulador, punter de pila i registres d'ndex
1975 MOS Tech. 6502
1976 Zilog Z-80 8 bits, 16 bits, conjunt de registres alternatiu
Motorola 6809 Instrucci de multiplicaci, aritmtica de 16 bits
1980 Motorola 68000 16/32 bits, 24 bits, mode usuari/supervisor, banc de registres
1985 INMOS Computaci parallela. 4 enllaos en srie
Transputer T-212
1987 AMD 2901 Processador modular bit-slice: 1, 2, 4 o 8 bits. Seqenciador i
microprograma
1987 Sparc Processador RISC. 128 registres. Pipeline
1988 TI TMS320C30 Processador digital de senyal (DSP) de 32 bits. 3 busos de dades
1992 DEC Alpha 21064 Arquitectura de 64 bits (instruccions de 32 bits). Rellotge a 200 MHz.
3,3 V. Consum elevat. Disseny que no limita la capacitat de
processadors futurs
1993 Intel Pentium Superescalar

Taula 1.1 Alguns trets significatius de levoluci dels microprocessadors

los autores, 1998; Edicions UPC, 1998.


22 Disseny de sistemes digitals amb microprocessadors

El TMS320C30 s un exemple de processador digital de senyal (DSP) avanat. s de 32 bits i t 3


busos de dades.

Una arquitectura avanada de processador s lALPHA. s de 64 bits i funciona a 200 i 300 MHz.
Una caracterstica important d'aquesta arquitectura s que est dimensionada de manera que no limita
l'escalabilitat de processadors futurs, cosa que garanteix que, quan la tecnologia ho permeti, continu
essent vlida com a mnim per a processadors amb una potncia de clcul 1.000 vegades superior al
processador de primera generaci.

Un altre exemple de processador d'altes prestacions s el Pentium, processador superescalar (pot


executar diverses instruccions en un mateix cicle) que mant la compatibilitat software amb tots els
processadors de generacions prvies (80486, 80386, etc.) fins als 8080 i 8085. Mostra tamb la
tendncia de reduir la tensi d'alimentaci en circuits lgics. Per aix, un gran nombre de
microprocessadors actuals tenen l'alimentaci especificada a 3,3 V, que trenca la inrcia de
lalimentaci a 5 V, establerta durant molt de temps.

Cal assenyalar que el fet que la tecnologia actual permeti la construcci de microprocessadors de 64
bits no ha deixat obsolets els altres. Al contrari, tots ells coexisteixen i segons laplicaci susen uns o
els altres. s remarcable el gran s que es fa de microcontroladors de 4 bits per a un gran nombre
daplicacions senzilles.

Menys documentada es troba levoluci dels circuits microcontroladors, per en qualsevol cas
segueix de forma semblant la tendncia dels microprocessadors. Alguns microcontroladors
significatius figuren a la taula 1.2. Un dels primers va ser el Rockwell PPS4, que va aparixer cap a
l'any 1976. Incorporava memria RAM (Random Access Memory), memria ROM (Read-Only
Memory) i 12 lnies d'entrada/sortida. Les generacions successives de microcontroladors han anat
augmentant la velocitat de clcul, la capacitat de memria i el nombre de perifrics integrats. s
normal que un microcontrolador inclogui, a ms de memria, diversos ports d'E/S parallels, en srie,
convertidors A/D i D/A, temporitzadors, watchdog, control de visualitzadors LED (Light Emitting
Diode) o LCD (Liquid Crystal Display), etc. Algunes famlies de microcontroladors molt esteses sn
les Z-8, 8051, 68HC11, PIC, H8 etc.

Any Microcontrolador Caracterstiques


1976 Rockwell PPS4 RAM i ROM incorporats, 12 lnies dE/S, 12 bits dadrea
TI TMS1000 2 k ROM, 128 byte RAM, rellotge integrat, de 19 a 24 lnies dE/S
1978 Microchip Tech. Tipus RISC
PIC 16x
1979 Zilog Z-8 Z-80 amb ROM i 144 registres de RAM
- Motorola 68HC11 Arquitectura interna de 16 bits. Ports de comunicai srie
- Intel 8051 Gran nombre de versions i daplicacions
- Hitachi H8/500 Excepcions, multitasca/multiusuari
1987 Zilog Z-280 Versi de 16 bits

Taula 1.2 Alguns trets significatius de levoluci dels microcontroladors

los autores, 1998; Edicions UPC, 1998.


Introducci 23

1.3 Microprocessadors i microcontroladors per a disseny digital

Els microprocessadors i els microcontroladors es poden classificar en dos grans grups depenent de la
seva aplicaci: clcul numric i control.

1. Dins els sistemes de clcul numric i propsit general s'inclouen les diverses gammes de
computadors, des dels supercomputadors, els miniordinadors o les estacions de treball, fins als
ordinadors personals. En aquest entorn la velocitat d'execuci pren una gran importncia. Les
arquitectures de les diverses generacions d'ordinadors s'orienten per optimitzar la velocitat a partir
de les condicions de contorn imposades per la tecnologia disponible. Exemples: mxima
freqncia de treball, memria cache, execuci dinmica, processadors RISC, etc.

2. D'altra banda, existeix un gran nombre d'aplicacions industrials i d'electrnica de consum en les
quals els requeriments de memria i temps de clcul sn molt diferents dels anteriors. En molts
casos, les funcions requerides sn mquines d'estats finits que es poden construir mitjanant lgica
cablejada (amb components digitals estndards, lgica programable, etc.), per la flexibilitat que
dna la programaci per software fa que la soluci microprocessador/microcontrolador sigui molt
competitiva. El mercat daquest grup s tamb molt important: instrumentaci electrnica
(mesures, comunicacions, electromedicina, etc.), electrnica de consum (electrodomstics, gran
nombre d'equips porttils, perifrics, etc.), i daltres.

En aquest segon grup d'aplicacions els requeriments de velocitat de clcul no sn normalment molt
restrictius, mentre que d'altres especificacions tcniques, com ara el consum, la portabilitat, el cost, el
temps de desenvolupament, etc., sn ms importants. Per tant, els recursos de capacitat dintegraci es
dediquen a construir sistemes complets incorporant CPU, memria i dispositius dentrada/sortida en
un sol xip. Aquest s precisament el concepte dels microcontroladors, que justifica la gran difusi que
est tenint el seu s per a aquestes aplicacions en els darrers anys.

Encara es podria identificar un tercer grup, el daplicacions especfiques, que cobreixen normalment
daltres tipus de processadors especialitzats, com ara els coprocessadors (matemtics, grfics, etc.),
processadors digitals de senyal (DSP), de comunicacions i daltres (processadors parallels,
transputers, neuronals, fuzzy, etc.). El disseny de sistemes basats en aquest tipus de processadors
escapa a l'abast d'aquest text, tot i que molts del conceptes que s'hi introdueixen poden ser extrapolats
al disseny d'altres tipus de sistemes.

FILTRATGE
SENSORS A/D PROCESSAMENT ACTUADORS
DECISI

Fig. 1.5 Sistema de control dun procs industrial

los autores, 1998; Edicions UPC, 1998.


24 Disseny de sistemes digitals amb microprocessadors

Un exemple tpic de sistema del segon grup pot ser una aplicaci industrial de control (vegeu fig. 1.5).
Donat un procs, sobtenen les seves variables destat a partir de la informaci duna srie de sensors
degudament condicionats, es fan els clculs necessaris i sactiven una srie dactuadors per dirigir el
procs cap a lestat volgut. El processament digital mitjanant P/C permet fer modificacions (per
exemple, incorporar un nou sensor, variar el tipus de filtratge, la decisi, etc.) molt fcilment canviant
nicament el software o algunes parts redudes del hardware.

1.4 Components del sistema

En aquest apartat es presenta lestructura elemental dun sistema P/C i sen descriuen breument els
components. Mitjanant l's de sistemes de bus obert, es pot donar ms flexibilitat i estandarditzar la
interfcie dels sistemes microprocessadors, la qual cosa permet expandir un sistema de forma senzilla i
amb independncia del fabricant.

1.4.1 Estructura bsica del sistema

A la figura 1.6 es presenta lestructura de blocs bsics dun sistema microprocessador o


microcontrolador. La unitat central de procs (CPU), la memria i els dispositius dentrada/sortida
formen els tres blocs que contenen i processen informaci. El sincronisme i la comunicaci entre els
blocs sestableixen a travs de tres busos dinterconnexi: dades, adreces i control.

BUS DE DADES

ENTRADA/
CPU MEMRIA
SORTIDA
BUS
D'ADRECES

BUS DE CONTROL

Fig. 1.6 Estructura bsica de blocs dun sistema microprocessador/microcontrolador

Unitat central de procs (CPU). s la unitat que realitza el processament de la informaci mitjanant
una seqncia cclica de dues fases:

Fetch (captura) duna instrucci continguda a la memria.


Execuci de la instrucci.

Un comptador de programa mant actualitzada la posici de memria que cont la instrucci segent
que cal executar.

los autores, 1998; Edicions UPC, 1998.


Introducci 25

Subsistema de memria. Cont tant les instruccions del programa que executa la CPU com les dades
de procs.

Subsistema dentrada/sortida. Realitza la interfcie del sistema amb lexterior, i permet rebre i
enviar informaci. El format amb qu la informaci es transmet determina els circuits dinterfcie
externa. El subsistema dentrada/sortida permet la connexi del sistema amb sistemes externs, tamb
anomenats perifrics.

Busos. Sn els recursos emprats per comunicar els subsistemes entre si i sincronitzar les operacions.

Bus de dades. La transmissi de dades entre els subsistemes es fa a travs daquest bus.
Bus dadreces. Cont ladrea de la posici de memria o dentrada/sortida que es vol
seleccionar.
Bus de control. Els seus senyals determinen el tipus i les caracterstiques de la transferncia
dinformaci a travs del bus de dades. Suporta tamb les indicacions de petici i
reconeixement dinterrupci, cessi de bus i reset.

Una mquina de les caracterstiques anteriors forma part de les anomenades mquines de Von
Neumann, que com a propietats importants tenen una estructura del tipus de la figura 1.6, programa i
dades emmagatzemats a la mateixa memria, execuci seqencial de les instruccions i un cam nic
de dades entre la memria i la CPU.

Des del punt de vista del control de les transferncies de dades, els subsistemes poden actuar com a
master o slave. El subsistema que dirigeix el tipus de transferncia dinformaci sanomena master,
mentre que els que responen a les sollicituds de transferncia sn els slaves. Tot i que el paper de
master es pot anar alternant entre subsistemes, no hi pot haver ms dun master actiu simultniament.
Normalment, la CPU actua com a master del sistema, per, per exemple, durant una transferncia de
DMA (accs directe a memria) un dispositiu dentrada/sortida (controlador de DMA) pren el paper
de master mentre que la CPU queda inactiva.

A ms dels elements funcionals de la figura 1.6, tamb sn necessaris una srie de circuits auxiliars
per sincronitzar el sistema i que no apareixen a la figura: circuit de rellotge, reset, generaci destats
despera, descodificadors de memria i entrada/sortida, controladors dinterrupcions, de refresc de
memria dinmica, gesti del bus, etc. Poden estan integrats dins el mdul funcional corresponent o,
altrament, cal afegir-los externament.

1.4.2 Sistemes de bus obert

Moltes vegades s necessari que un sistema com el que acabem de descriure hagi dinteraccionar
fortament amb daltres o b pugui ser expandit afegint-hi mduls de memria addicional o daltres
perifrics. s per aix que existeixen busos amb unes caracterstiques elctriques i fsiques
normalitzades (busos estndards) que permeten la connexi de plaques de circuit imprs a una placa
de connexions anomenada backplane. Exemples tpics de busos estndards sn el S100 (ja poc
utilitzat), el GP-IB, VME, VXI i Futurebus.

los autores, 1998; Edicions UPC, 1998.


26 Disseny de sistemes digitals amb microprocessadors

Backplane Placa de circuit


imprs n

Placa de circuit
imprs 1

Fig. 1.7 Sistema de connexi de mduls mitjanant backplane

Aquesta idea es pot veure a la figura 1.7, on sillustra clarament quina s la filosofia: la base s la
placa anomenada backplane i el sistema global es va configurant amb la connexi de plaques que
incorporen funcionalitat diversa, i que a ms poden ser fabricades per diversos fabricants. Poden estar
basades fins i tot en processadors de famlies diferents. Lnica condici que han de complir s estar
d'acord amb el protocol estndard fixat per la norma en qesti.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 27

2 Interconnexi d'elements, els busos i els protocols

2.1 Introducci

Aquest captol se centra en el tema de la interconnexi dels diversos elements que configuren un
sistema al voltant d'un microprocessador. L'element fonamental des del punt de vista de la
comunicaci, i tan important com la prpia CPU o els dispositius de memria en els sistemes de
processament d'informaci, s el bus. Aquesta part del text es dedica a l'exposici dels conceptes
principals al voltant d'aquest element. S'hi ofereix una visi global del sistema i tamb el comentari
d'alguns aspectes fonamentals (des del punt de vista elctric) que condicionen molt fortament les seves
caracterstiques globals.

Al principi es revisen una srie de conceptes molt bsics sobre les famlies lgiques TTL i CMOS per
tal de comprendre correctament les connexions dels dispositius electrnics mitjanant els busos. Es fa
ms mfasi en les famlies bipolars perqu se suposa que els conceptes sobre la tecnologia MOS ja
s'han estudiat en quadrimestres anteriors, o b, es troben ben documentats en textos accessibles (per
exemple, Diseo digital. Una perspectiva VLSI-CMOS de R. Alcubilla, J. Pons i D. Bards. Edicions
UPC).

2.2 Alguns aspectes sobre les famlies lgiques (TTL i CMOS)

El text present fa referncia als sistemes basats en els microprocessadors, dels quals s'ha fet una breu
introducci al captol precedent. All ja es va dir que aquests sistemes sn, en definitiva sistemes
digitals complexos, que bsicament funcionen de forma sncrona sota el control d'un rellotge.

Si es parla d'un sistema digital (lgic), s'est pensant en un circuit que s capa de manipular nivells
discrets d'informaci. A la prctica es diu que aquests circuits operen amb "uns i zeros". Per el que
cal preguntar-se s: qu sn en realitat aquests "uns i zeros"? La resposta s que no sn res ms que
nivells de tensi.

La quantificaci dels nivells no s nica i depn molt de com estiguin constituts els diferents circuits
(la constituci, la tensi d'alimentaci, la tecnologia, etc.). Podem parlar de diferents famlies lgiques
depenent de com sigui la constituci interna dels diversos circuits lgics i de quina sigui la tecnologia
que utilitzen. Una certa famlia lgica est determinada per un conjunt de caracterstiques elctriques
que ens diuen el grau de compatibilitat entre els components de la mateixa famlia i entre elements de
famlies diferents.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
28 Disseny de sistemes digitals amb microprocessadors

La primera gran divisi que es pot fer entre les diverses famlies lgiques s tenint en compte la
tecnologia emprada en la seva constituci interna. Aix doncs, es poden trobar famlies MOS i famlies
bipolars, on el dispositiu bsic s el transistor de tipus MOS o de tipus bipolar. En una gran majoria
d'aquestes famlies, els dispositius (transistors) treballen en rgim de saturaci, commutant el seu punt
de treball entre la regi de tall i la de saturaci. Hi ha alguna excepci, i algunes famlies operen amb
els dispositius treballant en la zona activa de les seves caracterstiques, com s el cas de la famlia ECL
(bipolar). Se'n pot veure una visi panormica a la figura 2.1. Una de les conclusions que es poden
extreure de la figura s que les famlies ms populars i, per tant, ms nombroses sn les CMOS i la
TTL, amb totes les seves variants i subfamlies. Una alternativa molt interessant s la famlia
BiCMOS, que mira d'aprofitar el mxim d'avantatges d'ambdues famlies.

MOS Bipolar

PMOS Saturat No saturat

AC/ACT
NMOS ECL
RTL

CMOS HC/HCT
DTL Estndard

S
HE4000 BiCMOS TTL

LS
4000
ALS

AS

FAST

Fig. 2.1 El panorama actual de les famlies lgiques

2.2.1 Les caracterstiques elctriques

Tal com s'ha dit abans, es poden distingir diverses caracterstiques elctriques, que sn una clau per
identificar les prestacions de les diferents famlies lgiques i ajudar a aconseguir una bona efectivitat
de funcionament quan s'interconnecten dispositius de la mateixa famlia i, fins i tot, de famlies
diverses. Aquesta situaci es dna molt sovint en els sistemes electrnics digitals, i s per aix que la
seva discussi resulta molt interessant. De fet, es poden distingir tres grups de caracterstiques:

Les condicions d'operaci

- La temperatura
- La tensi d'alimentaci VCC
- El corrent d'alimentaci ICC

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 29

Caracterstiques esttiques

Sn aquelles variables de tipus elctric (corrent i tensi) que caracteritzen un dispositiu determinat,
tant a l'entrada com a la sortida. De fet, no sn ms que els nivells de tensi i corrent que identifiquen
un estat lgic determinat a l'entrada i a la sortida d'un dispositiu. Es parla de nivells lmit (mxims i/o
mnims) per tal de poder representar un nivell lgic sense ambigitats en els terminals. Es poden
distingir els parmetres esttics segents:

VIH: s el nivell mnim de tensi que identifica un nivell lgic alt a l'entrada.
VIL: s el nivell mxim de tensi que identifica un nivell lgic baix a l'entrada.
VOH: s el nivell mnim de tensi que identifica un nivell lgic alt a la sortida.
VOL: s el nivell mxim de tensi que identifica un nivell lgic baix a la sortida.

IIH: s el corrent d'entrada per al nivell lgic alt.


IIL: s el corrent d'entrada per al nivell lgic baix.
IOH: s el corrent de sortida per al nivell lgic alt.
IOL: s el corrent de sortida per al nivell lgic baix.

Les referncies positives per a les tensions d'entrada i de sortida i per als sentits dels corrents
apareixen indicades a la figura 2.2, on s'ha representat un inversor simple, per simplicitat.

IIH IOH

+ +
VIL IIL IOL VOL
VIH VOH
- -

Fig. 2.2 Sentits de referncia dels corrents i les tensions

Caracterstiques dinmiques

Sn aquelles caracterstiques que estan lligades al funcionament en el rgim de commutaci, s a dir,


quan a l'entrada i a la sortida es tenen variacions de l'estat lgic. Com que es tracta de circuits
electrnics, que basen el seu funcionament en els dispositius semiconductors, s'ha de pensar que les
diverses transicions d'estat que es produeixen no poden ser instantnies. Hi ha, doncs, uns temps de
retard que s'han de tenir en compte. Aqu se'n consideraran els ms representatius (vegeu fig. 2.3):

Temps de pujada, tr. s el temps que hi ha, en un flanc de pujada, entre els instants en qu
el senyal val un 10% i un 90% del seu valor mxim.

Temps de baixada, tf. s el temps que hi ha, en un flanc de baixada, entre els instants en
qu el senyal val un 90% i un 10% del seu valor mxim.

los autores, 1998; Edicions UPC, 1998.


30 Disseny de sistemes digitals amb microprocessadors

tpHL Retard de la propagaci de l'estat quan la sortida passa del nivell alt al baix.

tpLH Retard de la propagaci de l'estat quan la sortida passa de nivell baix a l'alt.

tr tf

Tensi 90%
50%
dentrada
10%

50%
Tensi
de sortida

tpLH tpHL

Fig. 2.3 Temps en les ones d'entrada i de sortida d'un circuit

2.2.2 Algunes condicions de funcionament

Les caracterstiques elctriques que s'ha considerat a l'apartat anterior condicionen el funcionament
dels elements de les famlies lgiques quan els interconnectem entre ells. Lgicament, resulta que les
caracterstiques de sortida d'una porta o element condicionen (o poden condicionar) el bon
funcionament de l'element segent. Dit amb unes altres paraules, s'ha de tenir en compte la
compatibilitat entre les caracterstiques de sortida d'un element i les d'entrada del segent (o segents).
Entre els parmetres principals que cal tenir en compte a l'hora de considerar el funcionament d'una
famlia lgica des taquen els segents:

Fan-out

Indica el nombre de portes que es poden connectar a la sortida d'una porta sense que aquesta ltima
vegi afectades les seves caracterstiques elctriques. En general, perqu el funcionament de dues portes
iguals interconnectades sigui correcte, s'ha de complir que IOH > IIH , i que IOL > IIL, d'acord amb el que
s'indica a la figura 2.4. Aquesta condici, que com es pot veure est d'acord amb la forma com s'han
definit els corrents d'entrada i de sortida, dna una manera d'avaluar el factor de fan-out.

fan-out = min (IOL/IIL , IOH/IIH)

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 31

IOH > IIH

IOL > IIL


Nivell
de VOH
tensi VIH

VIL
VOL

Fig. 2.4 Valors relatius dels corrents i les tensions d'entrada/sortida

Marge de soroll

A la figura 2.4 es veu molt clarament la relaci que hi ha entre els nivells de tensi d'entrada i de
sortida de dues portes consecutives perqu puguin funcionar correctament. s convenient que la tensi
de sortida, que identifica un nivell lgic alt o baix, estigui, respectivament, per sobre o per sota del
nivell lmit corresponent que serveix per identificar el mateix estat lgic a l'entrada del dispositiu
segent. Aix s'ha de complir que

VOH > VIH


VOL < VIL

La diferncia entre els respectius nivells de tensi d'entrada i de sortida per a un estat lgic determinat
s'anomena marge de soroll i representa el nivell de tensi present com a soroll elctric que pot ser
tolerat pel sistema. Aix doncs,

Marge de soroll a nivell baix VL = VIL - VOL


Marge de soroll a nivell alt VH = VOH - VIH

Freqncia mxima de funcionament

Aquest parmetre est relacionat amb els temps de retard. Com que la freqncia de treball d'un
sistema o circuit dna idea de la quantitat de commutacions que pot realitzar per segon, aquest
parmetre s inversament proporcional al temps que tarden els estats lgics a ser estables desprs de la
commutaci (temps de retard). Si es t en compte la definici donada anteriorment de temps de
propagaci en les transicions entre estats, es pot fer una estimaci del temps de propagaci mitj del
dispositiu

tPD = (tpHL + tpLH)/2

i, per tant, una aproximaci a la freqncia mxima de treball

fmax = 1/4tPD

los autores, 1998; Edicions UPC, 1998.


32 Disseny de sistemes digitals amb microprocessadors

Producte de la potncia dissipada-retard de propagaci

s un parmetre que facilita molt la comparaci entre diverses famlies lgiques. S'expressa en
picoJoules (pJ) i s una constant per a cada famlia. Aix vol dir que si es disminueix el retard de
propagaci, la potncia dissipada augmenta, i viceversa.

2.2.3 Aspectes de les famlies basades en dispositius bipolars

Hi ha un bon nombre de famlies lgiques que basen el seu funcionament en el circuit bsic que es pot
veure a la figura 2.5. Si la base d'un transistor bipolar s excitada amb un pols com el que es mostra, el
que passa s que el punt de treball del dispositiu bipolar es desplaa entre la zona de tall, la de
saturaci i la de tall una altre vegada. A la sortida s'obt un pols invertit que va oscillant entre els 5
volts de l'alimentaci, els prcticament 0 volts corresponents a la tensi collector-emissor de saturaci
i novament els 5 volts. Aix s, amb un retard considerable, tal com es pot observar, ja que per
realitzar la segona commutaci d'estat entre saturaci i tall el dispositiu ha d'eliminar l'excs de
portadors emmagatzemats a la base. Aix constitueix el que s'anomena temps de retard per
emmagatzemament.

VCC 5 volts
VI

VO
VI VO

0 - 0,2 volts

Fig. 2.5 Dispositiu bipolar en commutaci

En general, es pot dir que les famlies lgiques bipolars poden ser ms rpides com menys
profundament se saturin els dispositius involucrats. De fet, hi ha algunes variants i modificacions de
les famlies bsiques que estan construdes perqu els dispositius finals no s'arribin a saturar i, per tant,
es guanyi en rapidesa de commutaci (AS i ALS). Fins i tot, alguna famlia bipolar, com l'ECL,
treballa amb els dispositius polaritzats a la seva zona activa. Aix implica guanyar en rapidesa, per
tamb augmenta molt el seu consum.

La famlia bsica i ms nombrosa de les bipolars s la TTL (Transistor-Transistor-Logic). La cllula


fonamental es presenta a la figura 2.6, i es tracta d'una porta NAND amb una etapa d'entrada amb un
transistor multiemissor, T1, i una etapa de sortida particular anomenada totem-pole, constituda pels
transistors T3 i T4. Amb aquesta configuraci es poden aconseguir uns nivells de tensi que oscillen
entre 2,8 i 5 volts per al nivell lgic alt i entre 0 i 0,4 volts per al nivell baix. Les caracterstiques de
velocitat de commutaci i de consum sn fora moderades.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 33

VCC

T3

ENTRADES
T1

SORTIDA

T4

Fig. 2.6 Porta NAND de la famlia TTL

Hi ha algunes consideracions interessants que s necessari fer sobre aquesta configuraci bsica:

Sobre les caracterstiques elctriques esttiques

A la taula adjunta figuren els valors de les tensions lmit d'entrada i de sortida que s'obtenen per a la
porta bsica de la famlia TTL. Aix vol dir que els nivells d'immunitat al soroll no sn gaire grans
(0,4 volts tant per al nivell alt com per al baix) i, a ms, la corba de transferncia entre els estats no s
simtrica.

Parmetre elctric Volts


VOH 2,4
VOL 0,4
VIH 2
VIL 0,8

Sobre la impossibilitat de fer lgica cablejada

La porta TTL bsica, amb la seva sortida totem-pole, no permet fer cablatge lgic. Aix vol dir que no
s possible connectar a una lnia comuna ms d'una sortida de portes lgiques. Pot haver-hi un
conflicte si les diferents portes volen forar un nivell lgic diferent, i fins i tot s possible que hi hagi
un excs de corrent degut al fet que un transistor en rgim de saturaci presenta una resistncia molt
baixa entre el seu collector i l'emissor (d'uns 25 ). Aix pot comportar una dissipaci excessiva i
perillosa per a la integritat del dispositiu. La figura 2.7 representa aquesta situaci.

los autores, 1998; Edicions UPC, 1998.


34 Disseny de sistemes digitals amb microprocessadors

On Off

T3 T3

Off On

T4 T4

Nivell excessiu de corrent

Fig. 2.7 Problema quan es connecten les sortides totem-pole

Aquest problema es pot solucionar utilitzant portes amb configuraci de collector obert (open
collector) a la sortida. Una porta amb collector obert a la sortida no s ms que la porta clssica en la
qual s'ha canviat la sortida per un transistor que no est acabat de connectar i el terminal de sortida s
el collector d'aquest transistor. Se'n pot veure l'esquema a la figura 2.8. Queda clar que, per tal de
funcionar correctament, aquesta porta necessita una resistncia exterior connectada (anomenada
resistncia de pull-up), que t la missi de fixar el nivell lgic alt quan el transistor de sortida est
tallat.

Amb aquesta soluci s que s possible fer lgica cablejada. La figura 2.9 mostra una situaci en la
qual es pot veure que ara, sempre que hi hagi almenys un transistor saturat (conduint), el nivell lgic
global de la connexi s a nivell baix sense ambigitat. Noms ser a nivell alt quan tots els transistors
estiguin simultniament en tall. En aquest muntatge s molt important el valor de la resistncia de pull-
up, ja que s la nica protecci per limitar el nivell de corrent que els transistors poden conduir en el
cas pitjor.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 35

VCC

ENTRADES
T1

SORTIDA

T4

Fig. 2.8 Porta TTL amb la sortida en collector obert

5 volts

Sortida

A B

T4 T4

Fig. 2.9 Lgica cablejada amb portes de sortida en collector obert

Es pot veure fcilment que al terminal de sortida de la figura 2.9 s'obt una funci lgica AND (AND
cablejada) de les respectives sortides A i B indicades. Alguna vegada es parla de "OR cablejada", i
aix s degut al fet que normalment es treballa amb lgica negativa.

los autores, 1998; Edicions UPC, 1998.


36 Disseny de sistemes digitals amb microprocessadors

A B Sortida
(AND cablejada)
0 0 0
0 1 0
1 0 0
1 1 1

La utilitzaci de lgica amb collector obert t alguns desavantatges. Quan la lnia de sortida passa del
valor baix a l'alt, aquest valor alt s forat tan sols per la resistncia de pull-up, i aix fa que la
transici sigui ms lenta. Una resistncia de pull-up no pot proporcionar el mateix corrent que un
dispositiu actiu, ja que el seu valor mnim estar limitat per la mxima potncia dissipable pels
transistors amb sortida en collector obert. Aix doncs, les capacitats de sortida es carreguen a corrent
ms baix i el temps de retard s ms gran.

En sistemes en els quals no es pot pagar el preu d'un retard excessiu, no queda ms remei que utilitzar
portes amb lgica de tres estats (tri-state). A la figura 2.10 es pot apreciar que una petita modificaci a
la porta bsica TTL permet d'incorporar un terminal de control que possibilita el fet de decidir si es
vol tenir el funcionament normal a la sortida o b si, en canvi, es vol deixar la sortida en estat d'alta
impedncia. En efecte, si l'entrada de control val "0", el dode incorporat D condueix i T4 entra en tall.
Com que T3 tamb s en tall, el circuit presenta un estat d'alta impedncia a la seva sortida.

VCC

T3

Control

ENTRADES T1

SORTIDA

T4

Fig. 2.10 Porta TTL de tres estats

L'aplicaci d'aquest tipus de lgica s en sistemes en qu diversos transmissors poden transmetre


informaci a diversos receptors, i s'ha de procurar que no ho faci ms d'un a la vegada. A l'apartat 2.4
es veu la seva aplicabilitat en la gesti dels busos d'un sistema amb microprocessador.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 37

Modificacions sobre la configuraci bsica

Per tal de millorar les prestacions de la famlia bsica TTL han anat sortint al mercat de components
diverses modificacions, que constitueixen verdaderes noves famlies, i que miren de solucionar part
dels problemes inherents a l'estructura bsica.

Aix, es pot parlar de les portes TTL-Schottky, que incorporen transistors de tipus Schottky per tal
d'evitar la saturaci dels dispositius i d'aquesta manera disminueixen al mxim el retard de
commutaci per efecte d'emmagatzemament. Sn aquelles famlies que incorporen la lletra "S" a la
seva identificaci. Tamb es poden distingir una srie de famlies amb caracterstiques de baix
consum, on la potncia dissipada s ms baixa (aquestes famlies inclouen la lletra "L" en la seva
identificaci).

A les taules adjuntes poden observar-se les caracterstiques elctriques bsiques d'un conjunt de
famlies derivades de la TTL estndard.

Famlia IIH (A) IIL (mA) IOH (mA) IOL (mA) VOH (V) VOL (V) VIH (V) VIL (V)
74 40 -1,6 -0,4 16 2,4 0,4 2 0,8
74S 50 -2 -1 20 2,7 0,5 2 0,8
74LS 20 -0,36 -0,4 8 2,7 0,5 2 0,8
74AS 20 -2 -0,4 4 2,7 0,5 2 0,8
74ALS 20 -0,1 -0,4 8 2,7 0,5 2 0,8

Famlia Temps retard (ns) Dissipaci (mW) Prod. velocitat-potncia (pJ)


74 10 10 100
74S 3 19 57
74LS 9,5 2 19
74AS 1,5 20 30
74ALS 4 1 4

2.2.4 Aspectes de les famlies basades en dispositius MOS

Hi ha un altre grup de famlies lgiques que estan basades en els dispositius MOS o unipolars. La idea
fonamental s molt semblant a la del cas bipolar. Es tracta de fonamentar el funcionament en un circuit
inversor molt similar al presentat a la figura 2.5 i fer variar el punt de treball del transistor (ara s un
dispositiu MOS) entre el tall i la saturaci.

Com que l'rea de silici ocupada per la resistncia s molt gran, el que s'acostuma a fer s substituir-la
per un altre transistor. Si aquest transistor s del tipus pMOS, s'obt la cllula fonamental de les
famlies CMOS (vegeu fig. 2.11).

L'avantatge ms gran d'aquest circuit s que la dissipaci de potncia en rgim esttic s prcticament
nulla, ja que el corrent que hi circula s prcticament zero. No obstant aix, com que s que circula
corrent quan es fa un canvi d'estat, el consum pot ser molt alt si la freqncia de treball s alta. De
forma molt aproximada, es pot expressar la potncia dissipada segons la freqncia:

P = CL.V2DD.f

los autores, 1998; Edicions UPC, 1998.


38 Disseny de sistemes digitals amb microprocessadors

VDD

Tensi Tensi
dentrada de sortida

Fig. 2.11 L'inversor CMOS

on CL s la capacitat de crrega total de la porta considerada. Aquesta capacitat es pot dir que s la
suma de les capacitats d'entrada de totes les portes connectades a la considerada.

El conjunt dels parmetres elctrics caracterstics corresponent a algunes de les famlies CMOS ms
normals apareix a la taula adjunta.

Famlia IIH (A) IIL (A) IOH (mA) IOL (mA) VOH (V) VOL (V) VIH (V) VIL (V)
4000 0,1 -0,1 -0,5 0,5 4,6 0,4 3,5 1,5
HE4000 0,3 -0,3 -0,4 0,4 4,5 0,5 3,5 1,5
74HC 0,1 -0,1 -4 4 4 0,26 3,1 1,3
74HCT 0,1 -0,1 -4 4 4 0,26 2 0,8

En resum, es pot dir que la tecnologia CMOS per a la construcci de famlies lgiques s molt til a
causa d'una srie de caracterstiques rellevants (algunes d'elles es poden extreure de la taula), com
poden ser:

Pot treballar en un ampli marge de tensions d'alimentaci (entre 3 i 15 volts).


Presenta una potncia dissipada baixa (aix s'ha de matisar segons la freqncia de treball).
T un marge de temperatura de treball ms ampli que les famlies bipolars.
Presenta una alta immunitat al soroll.
Presenta un fan-out molt alt, per ra de la seva elevada impedncia d'entrada.
Els canvis de nivell lgic es presenten a VDD/2, i aix fa que la corba caracterstica de
transferncia sigui fora simtrica.

Cal dir tamb que hi ha algun factor que cal considerar, que en pot afectar negativament el
funcionament. Bsicament s'ha de parlar de:

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 39

La dissipasi de potncia pot ser considerable quan la freqncia de treball puja molt.
Noms cal considerar la freqncia de rellotge dels microprocessadors actuals per
comprendre la importncia d'aquest aspecte.

La impedncia capacitiva d'entrada pot arribar a afectar molt negativament el funcionament


dinmic de la porta que est excitant a la que considerem (CL pot ser molt gran).

2.2.5 Sobre la compatibilitat entre les famlies

Un aspecte important que cal considerar quan es tracta de construir un sistema lgic complet s la
possibilitat d'interconnectar elements. En principi, es pot afirmar que els propis fabricants dels circuits
integrats ja procuren la compatibilitat entrada-sortida dels elements d'una mateixa famlia (nivells de
tensi, nivells de corrent i d'impedncia). Aix ja s'ha considerat abans, sobretot quan s'han presentat
les famlies bipolars. Es pot dir que els mateixos conceptes sn extrapolables en el cas de les famlies
MOS.

Una situaci ms delicada, per no menys interessant, s el problema de la interconnexi entre


dispositius de famlies diverses, i fins i tot realitzades amb diferents tecnologies. De fet, la qesti
fonamental s procurar respectar els nivells de tensi i corrent a les entrades i sortides dels circuits per
tal que els nivells lgics que representen estiguin d'acord amb la tecnologia particular.

Hi ha alguna soluci de tipus tecnolgic, s a dir, ja realitzada en el propi circuit. Per exemple, en el
cas del MOS existeix la famlia anomenada HCT, s a dir, CMOS d'alta velocitat i compatible amb els
nivells TTL. Es pot observar aquesta circumstncia a la taula de caracterstiques anterior.

En general, es pot dir que quan comparem les funcions de transferncia prpies de les famlies CMOS
(i de les seves variants HCMOS i ACMOS) i les de les famlies TTL estndards, es veu que la
incompatibilitat s palesa i una entrada CMOS no pot ser controlada directament per la sortida d'una
famlia TTL normal. Quines sn les possibles solucions a utilitzar?

Pel que fa a aquest problema concret, es podrien assenyalar almenys tres solucions:

Substituir, si s possible, el circuit CMOS estndard per un altre d'equivalent de les


famlies HCT o ACT.
Substituir, si s possible, el circuit TTL estndard per un de la famlia LS.
Utilitzar una resistncia de pull-up (amb un valor entre 1K i 10 K). En efecte, quan hi
ha la transici de "0" a "1", la porta TTL imposa una tensi de 3,5 volts. La resistncia de
pull-up permet que la tensi arribi fins a 5 volts de l'alimentaci, d'una forma exponencial
i amb una constant de temps fixada pel valor de la prpia resistncia i de la crrega
capacitiva. Aquesta idea es pot veure a la figura 2.12.

los autores, 1998; Edicions UPC, 1998.


40 Disseny de sistemes digitals amb microprocessadors

5 volts A

TTL CMOS
B B

Fig. 2.12 Interconnexi TTL-CMOS

Una altra soluci genrica s la utilitzaci de portes TTL amb la sortida en collector obert, on els
transistors de sortida aguanten tensions de fins a 30 volts d'alimentaci. Aquesta circumstncia pot ser
aprofitada per convertir els nivells TTL a nivells entre 0 i 30 volts.

Finalment, cal assenyalar l'existncia d'una srie de circuits integrats dissenyats i preparats per realitzar
de forma senzilla l'adaptaci entre els nivells de diferents famlies lgiques. Per exemple, els
dispositius 10124 i 10125 poden ser utilitzats per la interfcie entre la lgica ECL i la resta de famlies.
Els dispositius 4050 i 4104 poden ser solucions per interconnectar els nivells d'algunes de les famlies
CMOS i TTL.

2.3 Els tipus de busos

Al captol anterior s'han vist una srie de conceptes genrics sobre els sistemes basats en els
microprocessadors. Es deixa molt clar que un sistema d'aquests fonamenta el seu funcionament en la
comunicaci dels diferents elements que el constitueixen. De fet, tal com s'explica al captol segent,
en un sistema amb microprocessador sempre hi ha un element que actua de coordinador del sistema
(master, en la terminologia anglesa) i una srie d'elements que actuen segons les ordres d'aquest
master (els dispositius slaves).

L'objectiu del procs de comunicaci s l'intercanvi de dades entre els dispositius i, d'una forma molt
important, entre l'element central del sistema o CPU i els dispositius de memria. Aquestes dades
constitueixen les instruccions o part de les instruccions del programa que el sistema s capa
d'executar.

Perqu un sistema sigui totalment operatiu i respongui a la finalitat que se n'espera cal que la
interconnexi dels diferents elements es dugui a terme d'una forma correcta, adaptada a les necessitats
i d'acord amb les peculiaritats dels senyals elctrics involucrats. Per aix s necessria la utilitzaci
d'un bus de comunicaci entre les diferents parts del sistema.

Una definici molt simple de bus s la segent:

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 41

Un bus s un conjunt de lnies utilitzades per transportar informaci entre un


dispositiu emissor (master) i un dispositiu receptor (slave).

Aquesta definici no reflecteix res ms que el concepte fsic de bus. Per aix s'ha dit que s un conjunt
de connectors o lnies. Ha de quedar clar que aquestes lnies serveixen per transportar una informaci.
Aquesta informaci agafa la forma d'una combinaci de dgits (ens troben davant un sistema digital),
s a dir, de nivells de tensi amb una certa durada, combinats amb un cert ordre i d'acord amb un
protocol determinat i preestablert.

Si ens ho mirem des d'un punt de vista prctic, es poden establir diverses categories o tipus de busos.
Es poden considerar diversos tipus de busos tenint en compte:

Les particularitats de la connectivitat


La funcionalitat de les diferents lnies involucrades
El protocol que s'estableix entre els diferents senyals
La topologia

2.3.1 Segons la seva connectivitat

El sistema basat en un microprocessador s complex ja que est constitut per un nombre elevat
d'elements que s'estan transmetent dades entre ells. Se'ns poden presentar tres grans grups, segons quin
sigui el flux de la informaci dins el sistema:

2.3.1.1 Un transmissor i diversos receptors (1TXR)

Aquest s el cas ms tpic i normal dins un sistema amb microprocessador. Hi ha un element que envia
dades o ordres (master) i una srie d'elements que les reben (slaves). s el cas prctic d'una CPU que
envia una adrea de memria a travs de les lnies adients, i que tots els dispositius de memria
connectats al sistema reben. Per noms s'activaran aquells que siguin descodificats correctament
(aix es veur amb detall al captol 4). La idea es pot veure a la figura 2.13.

TRANSMISSOR

DIVERSOS RECEPTORS

Fig. 2.13 Bus del tipus 1TXR

los autores, 1998; Edicions UPC, 1998.


42 Disseny de sistemes digitals amb microprocessadors

2.3.1.2 Diversos transmissors i un receptor (XT1R)

En un sistema amb microprocessador es pot donar el cas que es produeixi un enviament simultani
d'informaci per part de ms d'un element transmissor. Un exemple molt habitual en tots els sistemes
sn les interconnexions per sollicitar una interrupci a la CPU. En efecte, hi ha diversos perifrics
amb la capacitat de sollicitar interrupci i que estan connectats a la mateixa lnia de petici
d'interrupci, i que poden enviar la sollicitud al mateix temps. Aquesta idea es pot veure a la figura
2.14.
TRANSMISSOR 1

RECEPTOR

TRANSMISSOR 2 TRANSMISSOR 3

Fig. 2.14 Bus del tipus XT1R

2.3.1.3 Diversos transmissors i diversos receptors (XTXR)

Aquest cas es dna en tots els sistemes, i es correspon amb els busos adients per enviar dades. Si es
vol que les dades puguin circular en totes les direccions i entre tots els elements, fa falta establir que
diversos dispositius siguin capaos d'enviar-ne i diversos de rebre'n. En tot cas, s'ha d'arbitrar un
mecanisme per veure quins elements s'activen realment en cada moment. El que resulta ms
problemtic en aquest cas s el fet que els busos de dades sn bidireccionals. La figura 2.15 presenta
un esquema de la situaci.

N RECEPTORS

N TRANSMISSORS

Fig. 2.15 Bus del tipus XTXR

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 43

2.3.2 Segons la seva funcionalitat

Moltes vegades es classifiquen els busos del sistema segons la funci que realitzen. Aquesta
categoritzaci s'ha discutit breument al captol 1 i es veur amb ms detall al captol segent, i respon
a la idea que en un sistema al voltant d'un microprocessador es manipulen tres tipus d'informacions:
dades, adreces i senyals de control. Aix doncs, es pot distingir perfectament entre bus de dades, bus
d'adreces i bus de control. Tal com es pot apreciar a la figura 2.16, la particularitat del bus de dades s
la seva bidireccionalitat, mentre que el bus d'adreces s estrictament unidireccional. Dins el bus de
control hi ha un conjunt de senyals que tenen les seves prpies caracterstiques, i depenent d'elles les
lnies associades tenen un sentit o b un altre. Per simplicitat, a la figura 2.16 s'ha representat el bus de
control com a bidireccional.

CPU
MEMRIA
(element master)
Bidireccionals

Unidireccional

Bus de control
Bus de dades
Bus dadreces

PERIFRIC 1 PERIFRIC 2 PERIFRIC 3

Fig. 2.16 Busos segons la seva funcionalitat

2.3.3 Segons el seu protocol

Tal com ja s'ha dit, a travs dels busos circulen senyals que es caracteritzen per uns nivells determinats
de tensi, que varien segons la tecnologia electrnica amb qu els diferents dispositius estan realitzats,
i tamb per la seqncia en qu els senyals van apareixen en els busos. Aquesta seqncia normalment
est predeterminada i constitueix el que s'anomena protocol dels busos.

El protocol que s'estableix en un bus s fonamental per tal de sincronitzar correctament les diferents
operacions entre els elements del sistema (vegeu l'apartat 2.6). Segons el tipus de sincronisme, els
busos es poden classificar en sncrons, semisncrons i asncrons.

los autores, 1998; Edicions UPC, 1998.


44 Disseny de sistemes digitals amb microprocessadors

2.3.4 Segons la topologia

En aquest cas tindrem en compte el tipus de topologia que presenten les connexions entre els diferents
elements del sistema. Aix, es pot parlar de bus en estrella, quan hi ha un dispositiu central
(controlador) al qual es connecten la resta d'elements mitjanant lnies dedicades. Si els elements del
sistema es troben units entre ells i la informaci circula a travs de cada un d'ells, es parla de bus en
cadena. Dins de la cadena s'estableix una prioritat segons la posici. Si tots els dispositius es troben
connectats a un conjunt de lnies i s necessari utilitzar senyals de control per determinar quins
dispositius participen de la connexi en cada moment, es tracta d'un bus de lnies compartides.
Aquestes tres situacions es poden observar a la figura 2.17.

Dispositiu 1
Dispositiu 2 Dispositiu 1 Dispositiu 2

CONTROLADOR Dispositiu 5 Dispositiu 3

Dispositiu 3 Dispositiu 4
Dispositiu 5 Dispositiu 4

(a) (b)

Dispositiu 1 Dispositiu 3

(c)

Dispositiu 2 Dispositiu 4 Dispositiu 5

Fig. 2.17 Tipus de busos segons la seva topologia: a) Bus en estrella. b) Bus en cadena.
c) Bus de lnies compartides

S'ha d'afegir que si en el cas b s'acaben de tancar les connexions apareix el que es coneix com a bus en
anell, en qu els diferents elements estan identificats per una adrea.

2.4 Aspectes elctrics de les connexions

Ja s'ha vist que un bus no s res ms que un conjunt de connectors que transporten informaci entre els
diferents dispositius que formen part d'un sistema microprocessador. s important que ens fixem en
dos aspectes importants:

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 45

En els extrems dels connectors que configuren el bus hi ha connectats dispositius


electrnics que segons la tecnologia electrnica amb que estan fabricats tenen unes
caracterstiques determinades. S'ha de considerar la compatibilitat entre les
caracterstiques dels dispositius i si el propi bus pot arribar a afectar-ne el funcionament.

El propi bus s'ha de materialitzar amb alguna soluci tecnolgica actual, com per
exemple un circuit imprs o una srie de fils conductors, i aix pot afectar la forma i les
caracterstiques dels senyals binaris que hi han de circular.

Moltes de les implicacions i dels efectes de les interconnexions es poden considerar de manera
diferent depenent del tipus de bus. D'acord amb la discussi de l'apartat anterior, podem establir-ne els
tres tipus segents (segons els criteris de connectivitat), que ens ajudaran en les consideracions que es
fan a continuaci:

Tipus Descripci Exemple


1TXR Un transmissor, diversos receptors Bus d'adreces
XT1R Diversos transmissors, un receptor Determinades lnies de control
XTXR Diversos transmissors, diversos receptors Bus de dades

Farem consideracions sobre quatre aspectes importants quan es parla de busos en sistemes amb
microprocessador:

La immunitat al soroll
Els efectes de crrega
Problemes de reflexi dels senyals
Problemes d'acoblament (crosstalk) entre els conductors

2.4.1 La immunitat al soroll

Els diferents dispositius involucrats en un sistema amb microprocessador estan realitzats amb una
tecnologia electrnica determinada (TTL, CMOS, etc.) i aix condiciona les seves caracterstiques
elctriques. Els nivells de tensi amb qu es representen els nivells lgics 1 i 0 sn o poden ser
diferents. La taula segent fa un breu resum de les caracterstiques estudiades a l'apartat 2.2 i presenta
els nivells tpics de tensi a l'entrada i la sortida per a les tecnologies TTL i CMOS.

Parmetre Descripci TTL CMOS


VOH tensi mnima de sortida representativa d'un 1 2,4 V 4,6 V
VOL tensi mxima de sortida representativa d'un 0 0,4 V 0,4 V
VIL tensi mxima acceptable a l'entrada com un 0 0,8 V 1,5 V
VIH tensi mnima acceptable a l'entrada com un 1 2V 3,5 V

los autores, 1998; Edicions UPC, 1998.


46 Disseny de sistemes digitals amb microprocessadors

De la inspecci dels valors de la taula es pot deduir que les famlies lgiques ja estan dissenyades
perqu presentin un cert nivell d'immunitat al soroll, s a dir, que es pugui admetre un cert marge de
tensi de soroll afegida al senyal digital i que no produeixi un mal funcionament del circuit i del
sistema. Si ens fixem amb una de les famlies (que ja es va considerar a l'apartat 2.2), els nivells de la
tensi de sortida que representen un estat lgic sempre ofereixen un determinat marge de seguretat
respecte als requisits necessaris a l'entrada perqu es reconegui el mateix estat lgic. Aquest marge
representa la quantitat de soroll que s'hi pot afegir sense afectar-ne el funcionament.

En la mesura que una lnia de bus t dos dispositius electrnics connectats en els seus extrems, es pot
parlar igualment de la immunitat al soroll del bus tenint en compte aquelles caracterstiques de les
prpies famlies. La immunitat al soroll s, doncs, una caracterstica totalment lligada a la tecnologia
electrnica dels dispositius i que requereix que es compleixin les desigualtats segents:

VOH > VIH

VOL < VIL

2.4.2 Els efectes de crrega del bus

Aquestes consideracions estan relacionades amb les caracterstiques de corrent dels dispositius que
connectem a les lnies dels busos. A l'apartat 2.2, quan es van discutir algunes de les propietats de les
famlies lgiques ja es va veure que tan important com el nivell de tensi a l'entrada i la sortida d'un
dispositiu s el nivell del corrent. La taula segent resumeix alguns parmetres importants pel que fa a
les famlies TTL i CMOS (cal recordar que el signe associat als corrents fa referncia al sentit que a
l'apartat 2.2 es va definir com de referncia).

Parmetre Descripci TTL CMOS


IIL corrent mxim d'entrada per al nivell lgic 0 -1,6 mA -1 A
IIH corrent mxim d'entrada per al nivell lgic 1 40 A 1 A
IOH corrent mxim de sortida per al nivell lgic 1 -400 A -360 A
IOL corrent mxim de sortida per al nivell lgic 0 16 mA 0,36 mA

Quan s'interconnecten diversos dispositius al voltant de les lnies d'un bus, s'han de tenir en
consideraci els parmetres de corrent. La idea s que el dispositiu transmissor d'informaci ha de
poder donar el nivell de corrent necessari per excitar de forma adequada els diferents receptors. La
figura 2.18 representa aquesta situaci.

Si se suposa que el transmissor est fixant un nivell lgic 1 a la seva sortida (nivell de tensi VOH), els
diferents sentits dels corrents involucrats ser l'indicat a la figura 2.18. Per tal que el circuit funcioni
correctament, s'ha de complir la condici

IOH IIH1 + IIH2 + IIH3

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 47

Receptors

IOH IIH2

IIH1 IIH3
Transmissor

Fig. 2.18 Els nivells de corrent han de ser compatibles

Un raonament idntic s'ha de seguir quan a la sortida de l'element transmissor es fixa un nivell de 0
lgic. En aquest cas, el corrent IOL s d'entrada al transmissor, i s'ha d'assegurar que la suma de
corrents dels receptors sigui compatible amb la mxima permesa pel transmissor.

Fins aqu s'ha vist la qesti de l'efecte de crrega al bus des d'un punt de vista esttic, s a dir,
considerant nicament el nivell dels corrents estables en els diferents nivells lgics. Una situaci ms
realista s, per, considerar les condicions dinmiques de funcionament. En efecte, els senyals que
circulen pels busos agafen els valors 1 i 0 de forma molt reiterada i aleatria, i aix vol dir que els
nivells de tensi van canviant des d'un estat a un altre molt sovint. Les prpies caracterstiques dels
dispositius electrnics connectats al bus poden afectar-ne el funcionament correcte. En efecte, si
considerem l'efecte capacitiu parsit a l'entrada dels dispositius lgics, el resultat pot ser una
impedncia capacitiva molt important per al dispositiu transmissor. Aquesta crrega capacitiva pot
afectar el funcionament del sistema. En efecte, els nivells de tensi representatius del nivell lgic
triguen ms a ser assolits (aix representa un retard en la transmissi dels nivells lgics), i la forma
d'ona resultant se'n veu molt afectada. La situaci s'esquematitza a la figura 2.19.

2.4.3 Problemes de reflexi dels senyals

A la prctica, quan es decideix muntar un bus, sovint es materialitza sobre un circuit imprs i en forma
d'un nombre determinat de pistes de coure. Si es decideix l'opci de realitzar un prototipus,
segurament ens trobarem amb una realitzaci wire-wrap. En qualsevol cas, el que s'ha de tenir molt
present s que un pols de senyal collocat en un bus d'aquest tipus es veu afectat d'una forma molt
similar als senyals de radiofreqncia que es propaguen per les lnies de transmissi.

El problema principal de les lnies de transmissi s que el senyal es propaga a una velocitat limitada i
quantificada. Si la lnia de bus acaba en circuit obert, aix representa una falta d'adaptaci
d'impedncies i es dna el fenomen d'una ona reflectida enrere. Aquesta ona es propaga enrere, amb
una certa atenuaci i amb una fase que no coincideix forosament amb la de l'ona incident. El resultat
s una combinaci de components que dna lloc a una distorsi aparent del senyal propagat. La figura
2.20 mostra la possible situaci quan hi ha la propagaci d'un pols de curta durada en una lnia de bus
que no est adaptada.

los autores, 1998; Edicions UPC, 1998.


48 Disseny de sistemes digitals amb microprocessadors

Receptors
(CMOS)
C
Vsortida
(a)

Transmissor C C
(TTL)

Vsortida
(cas ideal)

(b)

Vsortida
(crrega capacitiva)

Fig. 2.19 Efecte de crrega capacitiva. (a) En un cas real hi ha capacitats parsites que cal considerar.
(b) El seu efecte pot ser negatiu per a la resposta temporal del sistema

Circuit obert

Pols dentrada Pols de sortida

Fig. 2.20 Efecte de la reflexi sobre un pols que es propaga en un bus en circuit obert

Per tractar d'eliminar aquest fenomen d'ona reflectida, s'ha de procurar que al final del bus hi hagi una
absorci total de l'energia del pols transms. Aix nicament s possible si la impedncia d'entrada del
receptor est adaptada amb la resistncia de la lnia de transmissi. Com que la impedncia d'una lnia
de circuit imprs s aproximadament de 100 o 200 , una soluci possible s finalitzar la lnia del bus

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 49

amb una mena d'acabament o terminaci que presenti una resistncia equivalent d'entre 100 i 200 ,
tal com apareix a la figura 2.21. Aquest muntatge minimitza molt l'efecte de la reflexi.

+5V

470 ohms

Req. = 150 ohms

220 ohms

Fig. 2.21 Acabament actiu d'un bus per la minimitzaci de reflexions

Aquests problemes sn complexos i requereixen un tractament ms seris, que escapa als objectius
d'aquest text. Cal dir, per, que els efectes depenen en gran mesura de la freqncia del senyal
transms i de la seva relaci amb la velocitat de desplaament del senyal pel conductor.

2.4.4 Problemes d'acoblament (crosstalk) entre els conductors

En els moderns circuits integrats i en les plaques de circuit imprs, a freqncies elevades apareixen
problemes d'acoblament capacitiu entre conductors. Aix constitueix un problema greu d'interferncies
i de falta d'allament. Aquesta situaci es pot donar perfectament en un bus d'un sistema
microprocessador, amb totes les conseqncies negatives que se'n poden derivar.

s possible prendre algunes mesures per evitar o minimitzar aquest efecte del fenomen. Alguna de les
ms utilitzades en un circuit imprs s l'alternana de lnies connectades a la massa i de lnies de
senyal. Aix implica, evidentment, un increment del nombre real de lnies necessries per realitzar una
transmissi correcta d'informaci. De fet, no s ms que una mesura d'apantallament. Aquesta tcnica
es pot emprar tamb quan s'interconnecten parts mitjanant fils. Llavors s correcte utilitzar el cable
coaxial, o b el cable trenat, que inclou un fil de senyal i un de connectat a la massa.

2.5 Les tcniques d'interfcie amb el bus


En els subapartats anteriors s'ha parlat i discutit sobre alguns dels problemes ms corrents amb qu ens
podem trobar quan constitum un sistema amb microprocessador al voltant d'uns busos
d'interconnexi. A continuaci es presenten una srie de solucions realistes que poden ajudar al bon
funcionament dels sistemes reals.

los autores, 1998; Edicions UPC, 1998.


50 Disseny de sistemes digitals amb microprocessadors

2.5.1 Els amplificadors de corrent (buffers)

Un problema molt interessant i relativament senzill de resoldre s la capacitat limitada de corrent per
part del dispositiu transmissor d'informaci. Aquesta situaci s'ha considerat al subapartat 2.4.2, on es
veia que el corrent de sortida ha de complir unes condicions pel que fa al nivell dels corrents d'entrada
als dispositius que actuen com a crrega del transmissor.

La idea fonamental s la segent: si a l'esquema del circuit de la figura 2.18 hi afegim un amplificador
de corrent a la sortida de l'element transmissor (buffer), la capacitat d'excitaci augmenta (s'incrementa
el fan-out) i el nombre d'elements receptors que poden connectar-se s molt ms gran (vegeu fig.
2.22).

IOH Receptors
IOHB IIH2

BUFFER
IIH1 IIH3
Transmissor

Fig. 2.22 Buffering d'una lnia de bus

Aquesta soluci s molt utilitzada per assegurar el bon funcionament dels busos del tipus 1TXR, com
ara els busos d'adreces. En determinades lnies de control, tamb s molt convenient. En general
aquesta tcnica rep el nom de bus buffering, i pot ser portada fins a l'extrem d'aconsellar-se la
collocaci de buffers a l'entrada dels receptors. A continuaci en veurem alguns avantatges i
inconvenients. Com a inconvenients del bus buffering es pot dir que introdueix un retard en la
propagaci dels senyals. Quant als seus avantatges addicionals:

en part queden solucionats els problemes derivats de la impedncia de crrega capacitiva, pel
fet que s'estan carregant les capacitats d'entrada dels receptors amb un nivell de corrent molt
ms alt.

quan s'utilitzen buffers amb una caracterstica de Schmitt trigger, a ms dels avantatges descrits
fins aqu s possible recuperar la forma d'ona correcta (nivells i flancs), com es veu a la figura
2.23.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 51

Vin

Vin Vout

Vout

Fig. 2.23 Efecte positiu d'una caracterstica Schmitt trigger en un buffer

una gran majoria dels buffers comercials utilitzats a la prctica incorporen la caracterstica del
tri-state. Aix permet deixar el buffer en un estat d'alta impedncia, i produeix un efecte
d'allament elctric efectiu entre el transmissor i els receptors.

Cal dir que des d'un punt de vista prctic, l'aplicaci de les tcniques de buffering no ofereix cap mena
de problema, ja que hi ha diverses solucions electrniques. Per exemple, les famlies 74LS240,
74LS241 i 74LS244 del catleg de components estndards, donen les prestacions abans comentades.

2.5.2 La utilitzaci de la lgica cablejada

Hi ha una situaci que pot resultar complicada. Quan considerem un bus del tipus XT1R, en qu hi ha
diversos dispositius que es troben connectats a una nica lnia del bus que t un receptor a l'extrem,
pot donar-se una situaci de conflicte en el nivell de la informaci que es propaga pel bus, que pot
generar en alguns casos problemes de mal funcionament i fins i tot de destrucci de part dels
dispositius. Aquesta situaci pot donar-se, per exemple, en una lnia de bus del tipus de petici
d'interrupci. La figura 2.24 esquematitza el problema, en una situaci amb dos elements transmissors
i un nic receptor.

1 Receptor

0 Corrent elevat

Fig. 2.24 Situaci conflictiva en un bus del tipus XT1R

Si les sortides dels dispositius transmissors es troben en el mateix estat lgic, no hi ha cap mena de
conflicte. El problema es dna si les sortides es troben a nivells lgics diferents. En primer lloc tenim

los autores, 1998; Edicions UPC, 1998.


52 Disseny de sistemes digitals amb microprocessadors

un conflicte en el valor de la tensi del bus i, per tant, hi ha una ambigitat. A ms, depenent de la
tecnologia es pot produir un corrent molt elevat, en el sentit que mostra la figura 2.24, que pot arribar
a provocar la destrucci d'un dels dispositius per excs de calor. Aquest podria ser el cas si els
transmissors sn de tecnologia TTL o CMOS. Aix es pot veure a la figura 2.25.

+ 5V

Nivell del bus?

+ 5V
Receptor

Corrent
0

Fig. 2.25 Situaci en el cas de tecnologia CMOS

La qesti s trobar una soluci que, a ms, pugui resoldre la situaci que pot plantejar-se en un
sistema al voltant d'un microprocessador si, per exemple, la lnia del bus considerada s una lnia de
petici d'interrupci a la CPU. Interessa tenir-hi connectats N dispositius possibles peticionaris i que la
lnia en qesti s'activi quan es produeixi una condici "OR", s a dir, quan algun o alguns dels
dispositius activin la lnia. Aix s especialment complex quan s'utilitzen les tecnologies estndards
TTL i CMOS.

Hi ha dues possibles alternatives. La primera utilitza la lgica de tres estats (tri-state) i la situaci
normal dels transmissors s d'alta impedncia, i nicament enviaran el senyal al bus quan el senyal de
control corresponent (vegeu fig. 2.26) aix ho permeti. El problema s el notable increment de la
complexitat del control d'aquest subsistema.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 53

Control

Transmissor 1

Receptor

Control Transmissor 2

Fig. 2.26 Utilitzaci de la lgica dels tres estats

La segona soluci, mostrada a la figura 2.27, utilitza dispositius amb la sortida en collector obert
(TTL) o b en drenador obert (CMOS). Aix obliga a collocar una resistncia de pull-up que serveix
per fixar el nivell del bus a "1" (tensi d'alimentaci) en cas d'inactivitat del bus. Des del punt de vista
lgic, l's dels dispositius en collector obert permet la realitzaci d'una funci "OR" de les sortides
dels dispositius connectats al bus.

+ 5V

T1

T2

Fig. 2.27 Utilitzaci de dispositius en collector obert en un bus del tipus XT1R

Cal tenir molt en compte en la utilitzaci dels dispositius en collector obert o drenador obert el valor
correcte de la resistncia de pull-up, que ha de considerar les caracterstiques d'entrada i de sortida
dels dispositius connectats (que variaran segons la tecnologia emprada). Una segona qesti important
que s'ha de considerar s la determinaci de quin o quins dispositius han activat la lnia de bus, ats
que l'organitzaci mostrada a la figura 2.27 nicament indica al receptor que almenys un dels
dispositius ha activat el bus. Per arribar a realitzar aquesta determinaci s necessari utilitzar tcniques
complementries, del tipus de les que sn estudiades al captol 5, quan es presenta el tema de les
interrupcions i la identificaci i la determinaci de la prioritat de les peticions.

los autores, 1998; Edicions UPC, 1998.


54 Disseny de sistemes digitals amb microprocessadors

2.5.3 El cas del bus bidireccional

En el cas d'un bus del tipus XTXR, en qu el sentit de la propagaci de la informaci s doble (bus
bidireccional), tal com s el cas dels busos de dades dels sistemes amb microprocessador, el problema
que es planteja s la necessitat d'activar noms un dels dispositius transmissors al mateix temps i de
seleccionar el receptor correcte en cada moment. Si no es fa aix, es donaran problemes de conflicte en
el contingut del bus i problemes en la destinaci correcta de la informaci.

Una bona soluci a aquesta situaci s la utilitzaci de buffers de tres estats per tal de poder
seleccionar el transmissor correcte mitjanant una part lgica que activi el buffer pertinent. En la part
de recepci, normalment es fa s de tcniques de descodificaci per tal d'activar noms el receptor
adient segons les condicions del sistema (per exemple, una adrea determinada i unes condicions
marcades per un conjunt de senyals de control actives). La figura 2.28 indica una d'aquestes situacions
on hi ha la possibilitat que diversos transmissors envin informaci. Mitjanant el control aplicat al
buffer de tres estats pertinent seleccionarem el que ser actiu. Els dispositius receptors sn
esquematitzats per biestables, dels quals nicament n'hi ha un d'actiu en cada moment seleccionat per
un mecanisme de descodificaci.

1 0 1

Possibles transmissors

Bus bidireccional
Flux dinformaci

D Q D Q
Possibles receptors
CLK 0 CLK

Dispositius actius

Fig. 2.28 Cas d'un bus del tipus XTXR

Tal com ja s'ha dit, moltes vegades un bus d'aquest tipus ha de tenir la particularitat de ser
bidireccional. En aquest cas, s'ha d'utilitzar una combinaci correcta dels buffers per tal de permetre el
flux d'informaci en el sentit correcte. La figura 2.29 en mostra un muntatge possible, on amb el
mateix senyal de control selecciona el sentit del flux, segons estigui a nivell alt o baix. En els catlegs

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 55

de components estndards es poden trobar solucions concretes per a aquests casos. Els models
74LS242, 74LS243 i 74LS245 poden ser utilitzats per realitzar interfcies de busos bidireccionals.

Flux quan control = 0

Flux quan control = 1

Control

Fig. 2.29 Buffer per a bus bidireccional

2.6 Els diferents protocols: sncrons, semisncrons i asncrons

S'ha vist la necessitat d'utilitzar busos de comunicaci per tal de transmetre informaci dins d'un
sistema amb microprocessador. Tots els dispositius del sistema hi sn involucrats: la CPU, les
memries i els perifrics. Cada dispositiu t, en un moment determinat, un paper dins del sistema, que
pot ser el d'un master, enviant informaci, o b el d'un element slave, rebent informaci.

Com que el sistema s digital per naturalesa, la informaci que circula entre els dispositius i a travs
dels busos s un conjunt de dgits o bits i una srie de senyals que van agafant valors discrets en
determinats moments, la qual cosa constitueix el que anomenem un protocol de senyals. Aix doncs:

Un protocol s un conjunt de senyals i regles que regulen i controlen l'intercanvi


d'informaci dins del sistema amb microprocessador.

Es poden considerar diferents tipus de protocol, segons si interv directament el rellotge del sistema o
no, i llavors apareix la divisi en:

Protocols sncrons
Protocols asncrons

Els protocols de tipus sncron sn aquells en qu les diferents fases de l'intercanvi de la informaci es
produeixen en determinats instants prefixats i molt ben definits. Aquests instants no poden ser canviats
i estan d'acord amb el sincronisme que marca el rellotge del sistema. Tal com mostra la figura 2.30 hi

los autores, 1998; Edicions UPC, 1998.


56 Disseny de sistemes digitals amb microprocessadors

ha un senyal de rellotge CLK nic que indica els instants precisos en qu s'han d'anar produint les
diferents fases (sortida de l'adrea, validaci de l'adrea i captura de la dada).

T1 T2 T3 T1 T2

CLK

Adrea

AS

Dades

Instant de lectura

Fig. 2.30 Protocol de tipus sncron

Tal com es veu, els senyals s'activen i es desactiven en instants concrets fixats pel rellotge, els quals
acostumen a coincidir amb els flancs de pujada i de baixada. Aix mateix, els instants en qu es
produeixen determinats successos, com ara la lectura d'una dada, estan molt ben determinats i no es
poden canviar.

L'entorn del bus sncron fixa unes condicions de contorn de funcionament molt rgides. Aix vol dir
que hi ha una temporitzaci molt ben determinada i ajustada per realitzar les diferents tasques
involucrades en el mecanisme de trasps de la informaci (per exemple, en un accs a la informaci
emmagatzemada a la memria, hi ha un temps disponible que ha de ser compatible amb el temps
d'accs i de funcionament dels dispositius fsics involucrats).

El problema es pot donar quan les velocitats relatives dels diferents dispositius no sn compatibles
entre elles. Aquest cas s molt freqent quan es volen interconnectar CPU rpides amb memries una
mica ms lentes, quant al temps d'accs. Hi ha alguna soluci possible? Afortunadament s. La majoria
de microprocessadors permeten alguna estratgia per anar introduint perodes de rellotge addicionals
quan no hi ha compatibilitat entre els temps d'accs dels dispositius slaves i el temps que la CPU fixa
(d'una manera sncrona) per realitzar l'operaci. Al captol 3 es veu aquest aspecte amb ms detall. En
resum, es tracta d'allargar el temps fixat pel protocol sncron mitjanant la introducci de perodes
addicionals de rellotge. La idea s expressada a la figura 2.31, on es presenta exactament el mateix
protocol de la figura 2.30, per amb la introducci estratgica de perodes de rellotge addicionals,
TW.

los autores, 1998; Edicions UPC, 1998.


Interconnexi d'elements, els busos i els protocols 57

T1 T2 TW T3

CLK

Adrea

AS

Dades

WAIT

Instant de lectura

Fig. 2.31 Protocol de tipus semisncron

Queda clar que la introducci dels perodes TW noms allarga l'estat dels diferents senyals involucrats
en el protocol durant un nombre sencer de perodes de rellotge. El nombre dependr del temps que el
senyal WAIT (o qualsevol altre que sigui funcionalment compatible) estigui actiu. Aquest senyal es va
controlant tamb en instants molt ben determinats.

Adrea

AS

DS 1

Dades 4

2
DTACK 3

Fig. 2.32 Protocol de tipus asncron

los autores, 1998; Edicions UPC, 1998.


58 Disseny de sistemes digitals amb microprocessadors

Hi ha una tercera possibilitat, que a la prctica no es dna quasi mai en sistemes microprocessadors,
per que resulta molt interessant. Es tracta del bus asncron. En aquest bus no hi ha rellotge de
sincronisme i, per tant, desapareix el concepte dels instants prefixats per a la realitzaci de les fases
involucrades. Aqu el protocol s'estableix segons les activacions i desactivacions dels senyals, per
sense una temporitzaci rgida. A la figura 2.32 es pot veure el concepte.

Com que no existeix un rellotge de sincronisme, hi ha uns senyals de sincronitzaci asncrons (DS i
DTACK a la figura 2.32) que mitjanant la seva interacci configuren el protocol de comunicaci. La
seqncia temporal en l'activaci/desactivaci dels senyals s expressada pels nmeros encerclats.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 59

3 Unitat central de procs (CPU)

3.1 La CPU en un sistema master/slave. La seva organitzaci interna

Tal com s'ha vist als captols precedents, un sistema basat en un microprocessador s, en essncia, un
conjunt d'elements que est destinat a realitzar el processament d'informaci. Una gran majoria
d'aquests sistemes respon a una filosofia de funcionament del tipus master/slave (mestre/esclau), on
sempre hi ha un dels elements que porta la iniciativa i el control de les operacions i la resta que reben
ordres i reaccionen o actuen d'acord amb elles.

Si ens restringim a l'mbit dels microprocessadors, el conjunt de les operacions que s'han de realitzar
es redueix bsicament a l'intercanvi d'informaci entre els diferents elements. Aquesta informaci pot
ser tractada o manipulada d'alguna manera en les diferents parts del sistema, on cada element t la seva
prpia funcionalitat ben definida.

Juntament amb els elements d'interconnexi (els busos), que hem tractat al captol anterior, una visi
panormica del sistema de processament d'informaci, adaptat als microprocessadors, s la que
s'illustra a la figura 3.1.

MASTER SLAVE 1
(CPU) (Memria)

Busos

SLAVE 2 SLAVE N
(Perifric 1) ...... (Perifric N)

Fig. 3.1 Elements d'un sistema de processament d'informaci

Podem definir un master com aquell element del sistema que s capa d'iniciar un protocol d'intercanvi
d'informaci (s a dir, de "donar ordres"). Aix s possible quan, a ms, s el que t el control dels
busos d'interconnexi.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
60 Disseny de sistemes digitals amb microprocessadors

En un sistema pot haver-hi ms d'un master, per en un moment donat noms un d'ells t el control
dels busos de comunicaci. En aquest cas cal establir un mecanisme adequat per dur a terme una
alternana en el control d'aquest recurs del sistema (mecanisme de cessi dels busos).

L'slave s aquell element del sistema que no s capa d'iniciar un mecanisme d'intercanvi d'informaci,
per que en pot enviar i rebre, sempre dins d'un procs iniciat pel master i controlat per aquest.

Vegem quina s la funci que s'ha de dur a terme en un sistema basat en un microprocessador, quines
sn les diferents parts necessries i tamb quina s l'estructura d'organitzaci interna del master (CPU
o unitat central de procs) adient per poder treballar correctament. Tal com es va presentar i discutir al
primer captol, un dels avantatges del microprocessador i dels sistemes que es basen en ell s el grau
elevat de programabilitat i la seva reconfigurabilitat segons les necessitats de l'usuari. Aix doncs, el
conjunt ha de ser capa d'executar programes.

Els programes es troben guardats a la memria del sistema (slave). La CPU o master ha de tenir-hi
accs per tal de poder realitzar la interpretaci de les diferents instruccions del programa i les
operacions indicades sobre les dades. Eventualment, i sempre que aix ho indiqui el programa,
accedir a la memria per tal de llegir o guardar-hi dades (vegeu fig. 3.2).

1. Llegir el codi 2. Descodificar


d'operaci (fetch ) la instrucci
Fetch

4. Llegir els 3. Determinar si


operands hi ha ms
(si s necessari) operands
Execuci

5. Operar amb els 6. Guardar el


operands resultat

(a) (b)

Fig. 3.2 Esquema de les operacions que realitza la CPU durant l'execuci
d'un programa (a). Les dues tasques fonamentals (b)

Aix doncs, podem establir dues tasques fonamentals que la CPU ha de realitzar:

1) Accedir a la memria del sistema per tal de llegir les instruccions, que configuren els programes
que l'usuari ha confeccionat. Aix s el fetch de la instrucci.

2) Interpretar aquestes instruccions i actuar en conseqncia. Les actuacions comunes que se'n poden
derivar sn noves operacions d'accs als diferents slaves del sistema, per tal de llegir o escriure alguna
informaci, o b una operaci interna, d'acord amb la seva prpia funcionalitat, sobre les dades que

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 61

poden haver arribat durant aquest procs d'interconnexi amb els perifrics i/o la memria. Aquesta s
la fase d'execuci.

Una de les primeres conclusions que es poden fer davant d'aquesta situaci s que hi ha necessitat
d'establir i de controlar un trnsit d'informaci enorme entre els elements del sistema i a travs dels
busos d'intercomunicaci. s correcte, doncs, pensar en busos especialitzats (d'acord amb la divisi
funcional que es va realitzar al captol 2) i en estructures internes dels elements que afavoreixin aquest
objectiu.

El master del sistema microprocessador, que normalment anomenem CPU (unitat de control de
procs) o P, est organitzat en tres parts fonamentals (vegeu fig. 3.3):

Els registres
La unitat aritmtica/lgica (ALU)
La unitat de control

Bus extern

Buffer Buffer de
d'adreces dades

Unitat de
control

Registres

ALU

Bus intern

Fig. 3.3 Parts fonamentals d'un master (CPU)

Com a elements auxiliars, els buffers d'adreces i de dades realitzen la interfcie de la CPU amb els
busos.

los autores, 1998; Edicions UPC, 1998.


62 Disseny de sistemes digitals amb microprocessadors

3.1.1 Els registres

Sn elements de memria, d'elevada velocitat d'accs, que serveixen per guardar informaci important
i necessria durant les operacions de la CPU. Normalment, dins d'una CPU hi ha dos tipus de registres:
aquells que tenen una tasca molt concreta, i d'altres d's ms genric. Entre els que tenen una
funcionalitat molt especfica es poden distingir els segents (vegeu fig. 3.4):

Rellotge

Buffer dadreces
Adreces
Temporitzaci
Buffer per a dades Dades

ALU

CONTROL

Registres
Registre IR
Stack pointer

Registre d'estat

PC

Fig. 3.4 Visi ms detallada de l'organitzaci interna dels registres

1. Comptador de programa, PC (de l'angls program counter). El registre PC est sempre carregat
amb l'adrea de la posici de memria on es troba la instrucci (o part de la instrucci) que la CPU ha
d'executar. Aix vol dir que al final de l'execuci de cada instrucci, el PC guarda l'adrea de la
instrucci segent. Normalment es procura que les adreces de les instruccions d'un programa siguin
consecutives, i aleshores noms cal realitzar un increment del contingut del registre PC. En cas d'un
salt (trencament de la seqncia del programa), s'ha de procurar el mecanisme d'actualitzaci del
registre PC perqu guardi l'adrea on ha d'accedir.

2. Registre d'instrucci, IR. Les instruccions dels programes estan formades per un conjunt
d'informacions binries, que normalment es poden subdividir en el codi d'operaci (OpCode) i els
camps d'adreces dels operands involucrats. El registre IR s l'encarregat de guardar nicament
l'OpCode. Aquesta informaci serveix d'entrada per a la part de control, que una vegada l'ha
descodificada genera els senyals de control adients.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 63

3. Registres de buffer per a adreces i dades. Aquests registres serveixen per allar el bus extern dels
busos interns de la CPU, s a dir, realitzen una tasca de desacoblament i protecci. Al mateix temps
serveixen per donar les caracterstiques de corrent i tensi als senyals dels busos de dades i adreces,
abans d'extreuren la informaci cap a l'exterior.

4. Registre d'estat (status register). Aquest registre est format per una srie de bits de control o
flags, que ens indiquen el resultat de determinades operacions aritmtiques i lgiques (per exemple,
overflow, resultat d'operaci igual a zero, etc.), i que tamb serveixen per fixar determinades
condicions de treball en la CPU (per exemple, el nivell d'interrupci que s acceptable).

5. Stack pointer SP. Normalment, anomenem stack un conjunt de posicions consecutives de memria,
en qu la informaci es pot posar i treure en forma apilada (com si fos una "pila"). El registre stack
pointer ens assenyala sempre el capdamunt de la pila. Dit amb unes altres paraules, guarda l'adrea de
la posici ltima que s'ha ocupat. D'aquesta forma, amb un mecanisme molt senzill d'increment o
decrement del seu contingut, es pot tenir sempre la referncia de la posici de la pila que guarda
l'ltima informaci emmagatzemada. El conjunt de la pila i del registre SP (l'estructura de pila) t
diverses utilitats, i entre d'altres podem assenyalar el seu paper per guardar les adreces de retorn en un
procs de salts a subrutines durant l'execuci d'un programa. Vegeu la figura 3.5 per a ms detalls.

Memria
del sistema
Adreces
Informaci 1 A
Bloc de
Informaci 2 A-1 memria
assignada a
Stack pointer Informaci 3 A-2
la pila
A-3 Informaci 4 A-3

(CPU)
...

Fig. 3.5 La pila (stack) i l'stack pointer

3.1.2 La unitat aritmtica/lgica (ALU)

s la part de la CPU dedicada a realitzar operacions aritmtiques o lgiques sobre els operands.
Entenem que un operand s una dada que t un cert significat des del punt de vista aritmtic (o lgic).
Els operands estan guardats temporalment en registres. El resultat de l'operaci es torna a guardar en
un registre, que quan s un registre especialitzat rep el nom d'acumulador. El tipus d'operaci ve
determinada per la unitat de control, que ha descodificat el significat de la instrucci llegida de la

los autores, 1998; Edicions UPC, 1998.


64 Disseny de sistemes digitals amb microprocessadors

memria. En principi, la capacitat de l'ALU (operacions, precisi, rapidesa, etc.) depn de cada
microprocessador en particular. Alguns microprocessadors en tenen alguna d'especial rellevncia, com
per exemple, la possibilitat de fer operacions en coma flotant, o b de treballar amb un nombre molt
elevat de bits per tal d'assolir molta precisi.

3.1.3 La unitat de control

s la part encarregada de la generaci dels senyals de control adequats per dur a terme l'organitzaci
dels fluxos d'informaci: tant dels interns com dels externs entre la CPU i la resta de parts del sistema
(memria i perifrics). El tipus de seqncia de senyals depn de la prpia descodificaci de la
instrucci llegida (codi d'operaci obtingut) i de senyals exteriors, que poden ser generats per parts
alienes a la CPU (peticions d'interrupci, peticions de control de bus, etc.).

3.2 La interfcie exterior

Perqu el microprocessador sigui un dispositiu utilitzable s'ha de poder connectar a la resta del
sistema, i aix s possible a travs de la seva interfcie. Fsicament, la interfcie es correspon als
terminals o pins de l'encapsulat del xip. Tots els microprocessadors tenen el conjunt de terminals
segent:

L'alimentaci
El rellotge
Els senyals d'intercomunicaci amb la resta del sistema

3.2.1 L'alimentaci

Hi ha moltes CPU que tenen nicament un terminal d'alimentaci i un de massa (el seu valor dependr
de la tecnologia emprada en la seva fabricaci). Alguns microprocessadors de 16 i 32 bits necessiten
ms terminals d'alimentaci, i aix depn noms de la mida interna del circuit integrat i de la seva
complexitat. En determinats dissenys, l'nica manera de donar una tensi adequada a les diferents parts
del circuit s mitjanant l'accs a travs de ms d'un terminal.

3.2.2 El rellotge

Els microprocessadors actuals sn mquines digitals de tipus seqencial que necessiten un rellotge per
tal de dur a terme la sincronitzaci de les operacions. Generalment, l'activaci i la desactivaci dels
senyals de control estan relacionades amb els diferents flancs de pujada i baixada del senyal de
rellotge. s molt normal que aquest senyal s'hagi de generar externament i s'introdueixi a la CPU a
travs d'un terminal (CLOCK).

Tal com es pot veure a la secci 3.7 d'aquest captol, el rellotge t un paper fonamental en la
temporitzaci correcta de les operacions de la CPU. A travs dels flancs de pujada i baixada s'arriben
a organitzar els diferents protocols d'intercanvi de la informaci amb les altres parts del sistema.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 65

3.2.3 Els senyals d'intercomunicaci amb la resta del sistema (memries, perifrics)

El conjunt dels senyals que permeten a la CPU agafar el paper de master del sistema i comunicar-se
amb la resta de dispositius es pot considerar subdividit en tres grups: senyals coresponents a les
adreces, senyals corresponents a les dades i senyals de control. Cada grup d'aquests t una entitat
prpia, i s'acostumen a anomenar bus d'adreces, bus de dades i del bus de control, respectivament.

El bus d'adreces

s el conjunt de senyals que serveix per identificar la posici de memria o d'E/S amb qu la CPU vol
realitzar una determinada operaci de lectura o escriptura d'informaci. El bus d'adreces s un conjunt
d'N lnies unidireccionals (s'envia la informaci des del master cap a la resta del sistema, els slaves)
que poden agafar els valors 0 o 1. Aix dna la possibilitat d'adrear directament un conjunt de 2N
posicions diferents. Aquest nombre s el que s'anomena espai directe d'adreces de la CPU. s normal
identificar l'adrea ms baixa amb 0 i aleshores la ms alta ser la 2N - 1.

Val la pena dir que es poden trobar dos tipus de CPU a la prctica. Hi ha les que noms disposen d'un
espai adreable, on s'han d'ubicar les adreces de memria i les dels dispositius d'entrada/sortida, i
d'altres que distingeixen l'espai d'adreces de memria de l'espai d'adreces d'E/S. En aquest ltim cas,
l'espai de memria s sempre 2N, mentre que l'espai per l'E/S s molt ms redut, i utilitza solament els
M bits ms baixos del bus d'adreces. Aquesta s la situaci que s'illustra a la figura 3.6.

2N - 1
2N - 2 N>M

... 2M - 1
...

1 1
0 0

Espai Espai
d'adreces d'adreces d'E/S
d i
Fig. 3.6 Mapes de memria i d'E/S separats

El bus de dades

s el conjunt de lnies bidireccionals que transporta la informaci que s'ha de llegir o escriure en la
posici indicada pel contingut del bus d'adreces. El nombre de lnies del bus de dades indica el volum
mxim d'informaci que pot ser transmesa de forma simultnia. Tamb s'acostuma a utilitzar aquest
nombre per classificar els microprocessadors; aix es poden trobar microprocessadors de 8 (byte), de
16 (word) i de 32 (long word) bits.

los autores, 1998; Edicions UPC, 1998.


66 Disseny de sistemes digitals amb microprocessadors

El bus de control

Aquest s el conjunt de lnies que s'encarreguen d'identificar el tipus d'operaci que s'ha de realitzar,
tamb de validar determinada informaci existent en els busos i, en definitiva, de sincronitzar i
controlar les diferents operacions que es realitzen en l'entorn master/slave del nostre sistema. Dins del
bus de control podem identificar diferents subgrups de senyals, tal com s'observa a la figura 3.7.
Alguns senyals sn d'entrada a la CPU i d'altres sn de sortida. Aix doncs, en general es parla de bus
de control bidireccional, per la direccionalitat s'ha d'estudiar lnia per lnia.

VCC Rellotge

Adrea Control de INTREQ


les NMINT
interrupcions INTACK
Dada
BR
Control
AS del bus BG
R/W* LOCK
Control
WRD/B*
de
M/IO* les RESET
transferncies
DS
de dades
Lnies d'estat
READY

Fig. 3.7 Interfcie externa d'un microprocessador

La figura 3.7 mostra una interfcie totalment genrica. Els noms dels senyals no es corresponen amb
cap CPU real, per sn illustratius del paper que fan dins dels protocols iniciats per la CPU. En tot
cas, en els apartats segents es fa una consideraci de la interfcie d'uns microprocessadors reals, a
l'efecte de comparar-los amb aquests ms genrics presentats aqu.

Senyals de control de les transferncies de dades

S'ha de dir que no tots els microprocessadors tenen els mateixos senyals, ni tan sols el mateix nombre.
Dependr en gran manera del seu disseny intern i de com estigui pensada tota la interfcie amb la resta
del sistema. El nom que reben alguns d'aquests senyals tamb pot variar d'una CPU a una altra, tal com
s'ha dit abans, pero les funcionalitats s que sn similars, o b s'obtenen amb combinacions de senyals.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 67

AS (address strobe). Tot microprocessador t algun senyal com aquest, o b que realitza la seva
funci. El senyal AS activat serveix per indicar que la CPU ha tret una nova adrea vlida pel bus
d'adreces.
DS (data strobe). Aquest senyal t un paper dual i s'usa per indicar que durant una operaci
d'escriptura la CPU ha tret una nova dada pel bus de dades. En operacions de lectura, serveix per
indicar al dispositiu slave que pot treure la informaci al bus de dades.
M/IO* (memory/IO). s un senyal que noms tenen els microprocessadors amb mapes separats de
memria i d'E/S. Serveix per indicar al sistema si l'adrea indicada pel contingut del bus d'adreces
correspon al mapa de memria (senyal M/IO* a 1) o b al mapa d'E/S (senyal M/IO* a 0).
R/W* (read/write). Serveix per indicar si s'ha de fer una operaci de lectura o d'escriptura a
l'adrea indicada. Aquest senyal indica, doncs, la direcci en qu es transmeten les dades a travs
del bus.
WRD/B* (word/byte). s un senyal que noms t sentit en les CPU de ms de 8 bits (16 bits, per
exemple) d'amplada del bus de dades, i serveix per indicar si s'est realitzant una operaci amb tot
el bus (un word d'informaci, que s equivalent a 16 bits), o b es fa una operaci amb la meitat
del bus (un byte d'informaci). Normalment, tots els microprocessadors de 16 bits tenen algun
mecanisme semblant per sincronitzar les operacions i el volum de les dades involucrades.
READY (en algunes CPU s'anomena WAIT). s un senyal que serveix per compatibilitzar el
funcionament de la CPU amb dispositius lents. Es tracta, en resum, del senyal que permet d'establir
el funcionament dels busos com a bus semisncron. s un senyal d'entrada a la CPU i que s'ha de
generar a l'exterior.

Senyals de control dels processos d'interrupci

Els processos d'interrupci sn molt adequats si es vol aprofitar al mxim les prestacions del sistema
des del punt de vista de buscar un equilibri entre el temps que la CPU dedica a la supervisi dels
processos d'entrada i sortida de dades de l'exterior i el temps que la CPU dedica a realitzar les seves
tasques prpies de clcul i execuci d'un programa.

Tots els sistemes basats en microprocessador permeten aquests processos grcies al fet que les CPU
incorporen senyals adients en les seves interfcies amb l'exterior. Normalment hi ha un senyal o ms de
petici d'interrupci (INTREQ, NMINT), que sn generats pels dispositius d'E/S i que serveixen per
provocar una interrupci de l'execuci del programa i ocasionar un salt a una subrutina de servei de la
interrupci que ser la que controlar el procs especfic de comunicaci entre la CPU i un perifric
extern que necessita enviar o rebre dades.

Els mecanismes mitjanant els quals es fa la identificaci de la subrutina de servei que s'ha d'executar i
es determina la prioritat amb qu s'atn una interrupci s'estudiaran ms endavant, al captol 5. El que
s que es pot avanar aqu s que hi ha determinades interrupcions que poden ser filtrades per un
mecanisme que serveix per determinar si s'han d'atendre o no (poden ser emmascarades), com per
exemple les del tipus INTREQ (interrupt request). D'altres no poden ser inhibides, i s'han d'atendre
sempre que es produeixin (sn les no emmascarables), com ara les del tipus NMINT (non maskable
interrupt).

los autores, 1998; Edicions UPC, 1998.


68 Disseny de sistemes digitals amb microprocessadors

Quan la CPU accepta una petici d'interrupci i entra en una fase que en diem de reconeixement
d'interrupci, ho comunica a la resta del sistema activant un senyal especfic INTACK (interrupt
acknowledge), o b algun altre d'equivalent.

Senyals de control del bus

Es tracta d'un conjunt de senyals que serveixen per sincronitzar un sistema on hi ha ms d'un master
capa de prendre la iniciativa en les operacions de lectura i d'escriptura. nicament pot haver-hi un
master real, actuant de forma simultnia, i, per tant, s necessari que s'estableixi un mecanisme de
cessi del control dels busos d'un master a un altre. Generalment, la CPU t les lnies segents:

BR (bus request). Serveix perqu un altre master, des de l'exterior, pugui demanar el control dels
busos al master que el t en aquell moment.
BG (bus grant). s la lnia que serveix per comunicar al sistema, per part de la CPU, que hi ha una
petici per accedir al control dels busos.
LOCK. s un senyal que serveix per indicar, per part de la CPU que t el control, quan pot
acceptar peticions de cessi de busos.

D'altres senyals

Aquests senyals poden ser fora variats, i depenen dels diferents microprocessadors existents. N'hi ha
un que a la prctica s imprescindible: el senyal de RESET, que permet inicialitzar el
microprocessador a unes condicions conegudes prviament. Generalment aquest procs posa a zero
(inicialitza) el registre comptador de programa. Moltes CPU disposen de senyals d'estat que donen
informaci a l'exterior sobre l'estat intern (sobretot quin tipus d'operaci est executant la CPU).

M/IO*

WRD/B*

R/W*

Adrea Adrea vlida

AS

DS

Dades

Fig. 3.8 Seqncia dels senyals en una operaci de lectura a la memria

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 69

Tots els senyals de la interfcie descrita serveixen en ltima instncia per configurar un protocol de
baix nivell, que indica en tot moment el tipus d'operaci que s'ha de realitzar i, tal com veurem ms
endavant en aquest mateix captol, poder crear el sincronisme necessari. La figura 3.8 serveix per
illustrar el que seria una operaci de lectura en una posici de memria.

En efecte, la CPU posa a 1 els senyals M/IO* i R/W* per indicar que comena una operaci amb la
memria, i que ser una lectura. El senyal WRD/B* es posa a 0 per tal d'indicar que l'operaci s d'un
sol byte. S'indica l'adrea on es vol llegir i es valida mitjanant el senyal AS. La CPU valida el senyal
DS per notificar a la memria que ha de carregar la dada en el bus de dades. Finalment, la dada arriba
al bus, i la CPU la llegeix i desactiva el senyal DS. Desprs es desactiven els senyals AS i tots els que
estaven involucrats en el procs.

s interessant observar que abans que la memria presenti la dada al bus, les lnies de dades es troben
en alta impedncia. Un cop desactivats DS i AS, la memria allibera el bus de dades, i queda de nou
en alta impedncia.

3.3 Alguns exemples

A l'apartat anterior s'ha presentat la interfcie exterior d'un microprocessador des d'un punt de vista
genric. No es feia referncia a cap dispositiu concret i, per tant, els senyals eren totalment abstractes.
El seu nom, i fins i tot el nivell al qual s'activa (nivell alt o baix de tensi) poden variar segons el
microprocessador real que es consideri. A continuaci, els apartats segents presenten dos exemples,
que serviran per concretar els conceptes de l'apartat 3.2. Comencem amb un microprocessador de 8
bits molt clssic, el Zilog Z80. A continuaci considerarem un dels microprocessadors de 16 bits ms
coneguts, el Motorola 68000, que va ser el primer d'una famlia que s'ha ests cap als 32 bits.

3.3.1 El microprocessador Z80

Es tracta d'un dispositiu originriament dissenyat i fabricat per Zilog. El Z80 s prcticament
compatible, des del punt de vista de la seva programaci, amb el model 8085 d'Intel. Presenta la
particularitat de tenir el mapa de memria i el de perifrics separats. El seu bus de dades t una
amplada de 8 bits.

A la figura 3.9 es pot veure la distribuci de la seva interfcie exterior. Hi podem veure els grups de
senyals segents:

Busos d'adreces i de dades

Com ja s'ha dit abans, el Z80 s un microprocessador de 8 bits. Aix doncs, el seu bus de dades t
aquesta grandria. Sn les lnies D0 - D7. Pel que fa al seu bus d'adreces, t una grandria de 16
lnies (A0 - A15), que li dna una capacitat d'adreament de fins a 64 k de memria.

los autores, 1998; Edicions UPC, 1998.


70 Disseny de sistemes digitals amb microprocessadors

M1*

MREQ* A0 - A15 Bus dadreces


Control IOREQ*
del
sistema RD*

WR*
D0 - D7 Bus de dades
RFSH*

BUSREQ* Control de la
HALT*
cessi dels busos
BUSACK*
INT*
Control
de la NMI*
CPU Rellotge
WAIT*
Tensi dalimentaci
RESET*
Terra

Fig. 3.9 Interfcie exterior del microprocessador Z80

Control del sistema

Aquest grup de senyals s el que permet establir el tipus d'operaci que s'ha de realitzar amb la
resta del sistema. Aix, el senyal M1* (machine cycle one), que s un dels ms caracterstics del
Z80, serveix per indicar quin cicle mquina s'est executant. Si s'activa juntament amb MREQ*,
indica una operaci d'obtenci de l'OpCode (OpCode fetch), i si s'activa juntament amb IOREQ*,
indica un cicle de reconeixement d'interrupci.

Els senyals MREQ* (memory request) i IOREQ* (input/output request) serveixen per indicar que
en el bus d'adreces hi ha una adrea vlida de memria o d'E/S, respectivament. Aix s equivalent
al senyal genric d'AS. Quan es tracta d'adrear un perifric a travs del mapa separat
d'entrada/sortida, l'adrea s de noms 8 bits i s'utilitza la meitat baixa del bus.

Els senyals RD* (read) i WR* (write) indiquen si l'operaci que s'ha de realitzar a la posici
indicada pel bus d'adreces s una lectura o una escriptura. Aquests senyals tamb fan el paper de
DS (data strobe). El senyal RFSH* (refresh) es pot utilitzar per fer el refresc d'una certa memria
DRAM en mode transparent, i s usat molt rarament.

Control de la CPU

Es tracta d'un conjunt de lnies que permeten controlar directament alguns aspectes del
funcionament de la CPU. La lnia de RESET* permet fer una inicialitzaci del sistema i, d'entre
altres operacions, posa el PC (comptador de programa) a 0. El senyal de WAIT* permet la

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 71

introducci selectiva d'estats d'espera (TW) en la temporitzaci dels diferents cicles mquina,
convertint el bus del Z80 en un bus semisncron. Hi ha dos senyals que permeten la petici
d'interrupci a la CPU. La primera s INT* (interrupt request), que es tracta d'un senyal
d'interrupci emmascarable. El senyal NMI* (non-maskable interrupt) t una prioritat ms alta i no
admet cap filtre. Finalment, el senyal HALT* (halt state) serveix per indicar a la resta de sistema
que la CPU ha executat una instrucci halt i que es troba a l'espera d'alguna de les circumstncies
que permetran que en surti (una interrupci o un reset).

Control de la cessi dels busos

Sn dos senyals que permeten establir el protocol bsic del mecanisme de cessi dels busos del
sistema. El senyal BUSREQ* (bus request) serveix perqu la CPU cedeixi el control dels busos a
un altre master que ha activat aquest senyal. El resultat s que la majoria de lnies de la CPU
passen a l'estat d'alta impedncia, mentre el nou master tingui el control dels busos. El senyal
BUSACK* (bus acknowledge) indica al master sollicitador que ha obtingut el control dels busos.

3.3.2 El microprocessador MC68000

Aquest microprocessador, originriament fabricat per Motorola, s un exemple molt representatiu dins
de les famlies de dispositius de 16 bits. Des del punt de vista prctic podem dir que el seu disseny ha
estat la base d'una famlia ms mplia de microprocessadors de 16/32 bits (els actuals 68020 i 68030),
que durant fora temps han servit per construir famlies de computadors persnals i d'estacions de
treball (per exemple, els ordinadors Macintosh i SUN).

Si ens fixem en les caracterstiques que interessen a l'usuari, hem de dir que s un microprocessador de
16 bits (grandria del bus de dades), per, amb una arquitectura interna de 32 bits. Aix li permet fer
operacions i manipulacions de dades de 32 bits de format.

El bus d'adreces t 24 bits, malgrat que noms t 23 lnies disponibles (A1-A23) a l'exterior. Aix li
dona una capacitat d'adreament de 16 Mbytes o 8 Mwords. El 68000 introdueix el funcionament
asncron dels seus busos en les diferents operacions d'accs a la memria i als perifrics. De fet, tal
com ser comentat a l'apartat 3.7, aquest bus s en realitat un bus del tipus semisncron.

La figura 3.10 mostra la interfcie exterior del 68000, amb tots els senyals disponibles per realitzar la
comunicaci amb la resta del sistema. S'hi observen els grups de senyals segents:

Busos de dades i d'adreces

Tal com s'ha dit abans, el bus de dades s de 16 bits d'amplada. Pel que fa al bus d'adreces, hi
trobem disponibles les lnies A1-A23. Aix afavoreix l'organitzaci de la memria externa en
paraules de 16 bits (words) i el fet que, per defecte, les adreces que indica la CPU siguin
"parelles" (acabades en 0). Per realitzar un adreament selectiu a un dels bytes (esquerre o
dret) que constitueixen el word, s'utilitzen els senyals UDS* i LDS*, que s'activen tots dos si

los autores, 1998; Edicions UPC, 1998.


72 Disseny de sistemes digitals amb microprocessadors

es vol accedir a un word, o noms un d'ells, depenent del valor d'A0, si es vol accedir a un
byte.

Control del bus asncron

Aquest conjunt de senyals est format per AS* (address strobe), que indica que l'adrea que
hi ha al bus d'adreces s vlida. El senyal R/W* serveix per distingir una operaci de lectura
d'una d'escriptura, segons estigui a nivell alt o baix. Els dos senyals LDS* (low data strobe) i
UDS* (upper data strobe) serveixen per accedir selectivament als bytes que configuren un
word, quan es realitza un accs a memria. El senyal DTACK* (data transfer acknowledge)
serveix per indicar a la CPU que l'operaci iniciada est realitzada, i pot acabar el cicle de
bus comenat. El microprocessador va monitorant l'estat d'aquest senyal, i va introduint-hi
estats d'espera TW fins que DTACK* no passa a nivell baix. Es tracta, doncs, d'un bus del
tipus semisncron.

Control de la cessi dels busos

Aquest conjunt de senyals permet al 68000 treballar en un entorn on hi ha ms d'un master, i


tamb quan s'han de realitzar transferncies de dades mitjanant mecanismes d'accs directe a
la memria (DMA). BR* (bus request) serveix perqu la lgica externa pugui demanar el
control del bus al 68000. El microprocessador respon a aquesta petici activant la lnia BG*
(bus grant). Desprs, el dispositiu que ha sollicitat el control dels busos respon amb
l'activaci del senyal BGACK* (bus grant acknowledge) i agafa el control de les lnies dels
busos. Aquesta situaci continua fins que el nou master deixa el control i el senyal BGACK*
torna a nivell alt.

Senyals de control

Sn els tres senyals FC0, FC1 i FC2. Serveixen per donar informaci sobre l'estat del
processador.

Control del sistema

Sn senyals que s'utilitzen per a la inicialitzaci del sistema i per al control d'errors. RESET*
i HALT* sn senyals bidireccionals, i el senyal BERR* s un senyal d'entrada que ha
d'indicar a la CPU quan hi ha una condici de mal funcionament del bus (per exemple, un
cicle de bus massa llarg).

Control del mecanisme d'interrupcions

Sn tres lnies que serveixen per realitzar una petici d'interrupci al 68000. El processador
realitza la detecci de la petici i passa a donar-li servei. Els tres senyals IPL0*, IPL1* i
IPL2* s'han d'activar simultniament i representen un codi amb el nivell de la interrupci (8
nivells possibles).

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 73

Control FC0-FC2 A1-A23 Bus dadreces

D0-D15 Bus de dades


Control E*
del bus VPA*
sncron
VMA* AS*
LDS* Control
Control RESET* UDS* del bus
del asncron
sistema HALT* R/W*
BERR* DTACK*

Control del IPL2*


mecanisme IPL1* BR*
IPL0* Control
dinterrupcions de la
BG*
cessi dels busos
Rellotge BGACK*

Alimentaci i terra (4)

Fig. 3.10 Interfcie exterior del microprocessador 68000

Control del bus sncron

Aquest conjunt de tres senyals permet la utilitzaci del microprocessador 68000 amb tots els
perifrics de la famlia 6800 de 8 bits. Per tant, no formen part del funcionament normal del
P i noms s'utilitzen en cas que es connecti al sistema algun d'aquests perifrics. Els tres
senyals sn utilitzats per al control especfic dels perifrics, i sn: el rellotge E*, el senyal
VMA* i el senyal VPA*. El rellotge E* (enable clock) s un senyal de sincronisme amb una
freqncia deu vegades ms baixa que la prpia del 68000. El senyal VMA* (valid memory
address) indica a la famlia de perifrics 6800 que hi ha una adrea vlida al bus, i que el
dispositiu s'ha de sincronitzar amb el rellotge E*. El senyal VPA* (valid peripheral address)
indica a la CPU que el perifric adreat s un dispositiu sncron. Aquest senyal s'utilitza
durant el cicle de reconeixement d'interrupci per indicar que es tracta d'una interrupci
autovectoritzada.

3.4 El model de programaci

Quan un usuari decideix treballar amb un microprocessador determinat per tal d'implementar-hi alguna
aplicaci, necessita conixer correctament dos aspectes:

los autores, 1998; Edicions UPC, 1998.


74 Disseny de sistemes digitals amb microprocessadors

- La seva interfcie exterior, amb tots els senyals que permeten interconnectar
la CPU amb la resta dels elements del sistema.

- El conjunt particular de registres que permeten manipular internament les


dades, d'acord amb un conjunt d'instruccions que s'aniran configurant i
ordenant com un programa.

Ja s'ha vist anteriorment que dins de la CPU hi ha una srie de registres fonamentals per al seu
funcionament. A ms, n'hi ha una srie que permeten la manipulaci ms o menys cmoda de les
dades, i que depn en gran manera de cada microprocessador. No tots tenen els mateixos, ni el mateix
nombre, ni la mateixa organitzaci, ni tots els registres tenen les mateixes prestacions.

Per a la utilitzaci prctica d'un microprocessador, normalment n'hi ha prou amb la manipulaci de la
informaci que cont el seu model de programaci. Podem definir aquest model com una abstracci
d'alt nivell que permet a l'usuari treballar amb el sistema sense que necessiti tenir-ne un coneixement
massa profund. Normalment s'especifica un conjunt particular de registres que permeten organitzar
les operacions amb les dades, i entre les dades, d'una manera determinada, mitjanant el conjunt
d'instruccions del microprocessador.

Els registres poden ser considerats com una petita part de memria,
directament accessible per la CPU sense necessitat d'utilitzar els busos
exteriors i, per tant, amb un accs molt rpid. Presenten una organitzaci
determinada i tenen una funcionalitat que depn de l'arquitectura.

Aquesta funcionalitat dels registres pot ser resumida de la manera segent:

Sn el punt d'origen i final de la informaci que s'intercanvia a travs dels


busos.
Permeten operar i processar la informaci a l'interior de la CPU.
Proporcionen informaci sobre l'estat del sistema.

Un microprocessador sempre t dos tipus de registres:

Registres d's genric. Sn registres que l'usuari pot emprar lliurement durant l'execuci del seu
programa, d'acord amb la funcionalitat descrita pel fabricant del microprocessador i amb el joc
d'instruccions. Varien en nombre i tipus d'una CPU a una altra.

Registres d's especfic (o dedicats). Sn els que s'han estudiat anteriorment, a l'apartat 3.1, i
tenen una funci molt ben delimitada (comptador de programa, Stack Pointer, etc.).

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 75

El joc d'instruccions s el conjunt de les diferents operacions que s possible


realitzar amb la informaci guardada en els diferents registres i posicions del
sistema (interns a la CPU o b situats a la memria exterior). Els tipus
d'instruccions que habitualment es poden trobar en una CPU es tracten a
l'apartat segent.

Dins del grup de registres d's genric que es troben a disposici de l'usuari, hi ha dues aproximacions
possibles. Alguns microprocessadors presenten una srie de registres molt ben definits i amb una
funcionalitat molt predeterminada. Aquest s el cas del Zilog Z80, que t un conjunt de 8 registres de 8
bits (s una CPU de 8 bits) molt ben definits i molt semblants al conjunt de registres de les primeres
famlies de microprocessadors d'Intel. Entre ells (vegeu fig. 3.11) podem destacar el registre A
(anomenat acumulador). Aquest registre s on es guarda el resultat de les operacions aritmtiques i s
el registre ms verstil i ms manipulable de tot el conjunt. Els registres d'Index IX i IY serveixen per
implementar determinats modes d'adreament indexat a la memria. El registre I s'usa en el
reconeixement d'interrupcions per obtenir l'adrea de salt a la subrutina de servei (en un mode
determinat de treball). Habitualment els registres es poden agrupar en conjunts de dos, i d'aquesta
forma poden manipular a un cert nivell paraules (words) d'informaci. En particular, l'agrupaci HL
s'usa moltes vegades per realitzar adreaments a la memria (la seva grandria s igual a la del bus
d'adreces, es a dir, 16 bits). Queda clar a la mateixa figura que hi ha un conjunt alternatiu de registres
que es poden intercanviar mitjanant una instrucci. Aix vol dir que s molt senzill preservar una
srie de dades davant d'una operaci determinada (en realitat, s un veritable canvi de context).

El registre d'estat s un conjunt de bits (tamb anomenats flags) que serveixen per indicar l'estat del
processador, desprs d'haver realitzat una operaci de tipus aritmtic o lgic. No totes les instruccions
afecten el registre d'estat, ni els mateixos bits. En el cas del Z80 que ens ocupa, hi ha els flags
segents: S (signe), Z (zero), H (carry auxiliar), P/V (paritat i overflow), CY (carry). Tamb n'hi ha
dos que no s'usen i un d's intern.

En altres casos concrets, com per exemple el Motorola MC68000, els registres que integren el conjunt
programable sn d's molt ms genric i no tenen una funcionalitat tan ben definida. El MC68000 s
un microprocessador de 16 bits. Malgrat aix, el seu conjunt intern de registres t una amplada de 32
bits (vegeu fig. 3.12), i aix li permet manipular sense problemes dades de fins a 32 bits. En efecte, la
majoria d'instruccions permeten treballar amb conjunts de 16 bits per defecte (words), i tamb de 8 i
32 bits (bytes i double words), quan aix s'indica a la prpia instrucci.

S'observa que hi ha 8 registres de dades (D0 fins D7) que poden utilitzar-se igual i que no tenen cap
particularitat prpia. Aquesta mateixa propietat es veu en els 7 registres d'adreces (A0 fins A6).
nicament tenen un carcter ben diferenciat els registres stack pointer (n'hi ha dos, un d'usuari i un
altre de supervisor), el registre d'estat i el comptador de programa (que t un total de 24 bits).

los autores, 1998; Edicions UPC, 1998.


76 Disseny de sistemes digitals amb microprocessadors

8 bits

A F A' F'

B C B' C'

D E D' E'

H L H' L'

Stack pointer

Comptador de programa I R

ndex IX

ndex IY Registre d'estat

Fig. 3.11 Model de programaci del microprocessador Z80

31 16 15 0
D0
D1 Registres
de dades
......... ...

D7

A0
Registres
A1
d'adreces
.......... ...

A6

Stack pointer d'usuari A7


Stack pointer de supervisor A7
23 0
Comptador de programa

Fig. 3.12 Model de programaci del microprocessador MC68000

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 77

3.5 Una introducci als tipus i formats de les instruccions

En aquest apartat i en el proper es fa una revisi de tres aspectes relatius a les instruccions, i que sn
importants per comprendre el funcionament del microprocessador. Veiem quins tipus d'instruccions
tenim disponibles, quins formats tenen i tamb analitzem els aspectes fonamentals dels diferents
modes d'adreament. No s'estudia, per, cap conjunt d'instruccions complet d'un microprocessador
determinat.

En principi, diem que una instrucci cont com a mnim un codi d'operaci (OpCode), que especifica
a la CPU el tipus d'operaci que ha de realitzar. En funci d'aquest OpCode i d'alguna informaci ms,
inclosa a la instrucci, s'han d'especificar els operands sobre els quals s'ha d'executar la operaci
concreta. Aquests operands poden trobar-se en els propis registres de la CPU o b en alguna posici
de la memria exterior. Aix, i la forma d'accedir-hi, s'ha d'indicar a la CPU mitjanant el codi incls a
les instruccions.

El conjunt de codis d'operaci (OpCodes) disponibles determina quines instruccions


bsiques podem arribar a programar en el microprocessador. s el conjunt
d'instruccions de la CPU.

3.5.1 Tipus d'instruccions

Anirem per parts, i abans de veure com s'organitza la informaci continguda en una instrucci (apartat
3.4.2) considerarem els tipus de funcionalitats que podem trobar en un joc determinat d'instruccions.
Des del punt de vista del tipus d'operaci, el conjunt d'instruccions pot ser dividit en tres grans grups:

3.5.1.1 Instruccions de transferncia de dades

Sn les que permeten el moviment de dades entre diferents posicions sense realitzar operacions entre
elles. Normalment permeten la transferncia d'un byte o b d'un word. Un exemple tpic d'instrucci
pot ser:

MOVE R, MEM carrega un registre des de la posici de memria MEM


MOVE R2, R1 transfereix el contingut del registre R1 al registre R2
MOVE MEM, R guarda el contingut d'un registre a la posici de memria MEM

S'ha de dir que el lxic de la instrucci (mnemnic) s caracterstic de cada microprocessador i


constitueix el que s'anomena llenguatge assemblador. Normalment fa referncia a l'idioma angls, i
s'hi acostumen a adjuntar les referncies d'origen i de destinaci de la transferncia de les dades.
L'ordre en qu s'especifica l'origen i la destinaci tamb pot canviar segons el microprocessador. En
l'exemple anterior, primer es dna la destinaci. Altres exemples corrents del lxic poden ser LOAD,
LD, MOV.

los autores, 1998; Edicions UPC, 1998.


78 Disseny de sistemes digitals amb microprocessadors

s important assenyalar que els mnemnics no poden ser interpretats pel microprocessador i, per tant,
un programa assemblador els ha de traduir a l'anomenat codi mquina. El codi mquina s una
seqncia d'uns i zeros que codifica les instruccions i s'emmagatzema a la memria.

3.5.1.2 Instruccions per a la manipulaci de dades

a) Aritmtiques

Tots els microprocessadors tenen instruccions per realitzar les operacions de suma i resta entre dos
nombres enters binaris. A partir d'elles i mitjanant mtodes algorsmics, es poden realitzar les
operacions de multiplicaci i divisi. Algunes CPU incorporen l'operaci de multiplicaci i divisi en
la seva unitat ALU; aleshores, aquestes operacions s'especifiquen directament amb una instrucci del
tipus MUL, DIV, etc. . Tamb val la pena dir que algunes CPU, sobretot les de 32 bits, permeten
l'operaci amb nombres en format de coma flotant. Vegem-ne alguns exemples:

ADD R1, R2 suma les dades emmagatzemades a R1 i R2


SUB R1, R2 resta les dades emmagatzemades a R1 i R2
COMP R1, R2 compara les dades guardades a R1 i R2
INC R incrementa el contingut del registre R
DEC R decrementa el contingut del registre R

Normalment el resultat de l'operaci aritmtica es guarda en un dels registres especificats a la prpia


instrucci (aquesta funci es reserva moltes vegades per a l'acumulador). Tamb s'ha de dir que la
majoria d'operacions aritmtiques provoquen una actualitzaci dels valors d'alguns dels flags del
registre d'estat. Els quatre flags ms utilitzats sn:

1. Carry. S'activa quan es produeix una situaci de carry en el bit ms significatiu del resultat.
2. Zero. S'activa si el resultat s zero.
3. Signe. S'activa si el resultat s negatiu.
4. Overflow. S'activa si el resultat excedeix la capacitat de la posici de destinaci.

En determinades situacions, no hi ha cap resultat emmagatzemat enlloc, i s nicament a partir de la


situaci i els valors dels bits del registre d'estat que podem inferir el resultat de l'operaci. Per
exemple, en una instrucci de comparaci, el resultat s'ha de trobar a partir dels flags de zero i signe.

b) Lgiques

La majoria de microprocessadors permeten realitzar operacions booleanes entre els operands.


Aquestes operacions es realitzen sobre la base d'operacions bit a bit. Per exemple:

AND LOC2,LOC1
si [LOC2]=00111011, i [LOC1]=11111101, llavors el resultat s 00111001

D'altres instruccions de la mateixa famlia sn:

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 79

OR LOC2,LOC1
EXOR LOC2,LOC1
NOT LOC

c) Rotaci/desplaament (shift/rotate)

Aquestes instruccions permeten fer el desplaament o la rotaci de bits d'un operand en qualsevol
direcci (esquerra o dreta). En algunes CPU l'operand pot noms ser decalat o rotat una posici, per
en d'altres s possible especificar en la prpia instrucci el nombre de posicions que es vol
rotar/desplaar. Normalment quan es decala cap a l'esquerra, el bit que es desborda passa a la posici
del bit de carry del registre d'estat, i el ms baix s'omple amb un 0. Si el desplaament s cap a la dreta
es poden donar dues posibilitats, el bit de ms a l'esquerra s'omple amb un 0 (desplaament de tipus
lgic), o b s'autocopia el mateix bit, la qual cosa dna una conservaci del signe (desplaament de
tipus aritmtic). Es pot veure a la figura 3.13.

Carry
0

0 Carry

Carry

Fig. 3.13 Operacions de desplaament

d) Manipulaci directa de bits

Alguns microprocessadors disposen d'instruccions apropiades per posar a 1 o b a 0 un determinat bit


dins d'un byte (o d'un word), i tamb per fer un test de l'estat de determinats bits. Si un
microprocessador no disposa d'aquest tipus d'instruccions, no queda ms remei que implementar-les a
base d'operacions lgiques i de rotaci/desplaament.

e) Processat de cadenes (strings)

Determinats microprocessadors porten directament implementades algunes operacions de tipus iteratiu


que sn realitzades de forma freqent. Aquest s el cas del processament dels strings (cadenes de
carcters). Per exemple:

SEARST OF1,OF2,OF3,OF4 busca un string


COMPST OF1,OF2,OF3,OF4 compara strings

los autores, 1998; Edicions UPC, 1998.


80 Disseny de sistemes digitals amb microprocessadors

La primera instrucci busca un valor determinat donat pel contingut del registre indicat per OF1, entre
una srie o seqncia de bytes. L'operand OF2 especifica el registre que cont l'adrea inicial de
l'string. L'operand OF3 especifica el registre que indica quantes vegades s'ha de repetir l'operaci. El
camp OF4 indica la condici que s'ha de detectar mitjanant una srie de flags (igual que, ms gran
que, etc.).

La segona s una instrucci de comparaci entre strings, per ara l'operand OF1 serveix per indicar
l'adrea inicial del segon string.

Cal assenyalar que no tots els microprocessadors tenen aquest tipus d'instruccions i que el fet de
disposar-ne no vol dir que el microprocessador en qesti sigui molt avanat. Per exemple, el Z80 t
un cert nivell d'instruccions per a la manipulaci dels strings.

3.5.1.3 Instruccions de control

a) Control del programa

Aquest tipus d'instruccions serveixen per canviar el contingut del registre comptador de programa PC.
Aix, evidentment, provoca la transferncia del control a una altra part del programa. En sn alguns
exemples tpics:

JUMP LOC salt incondicional a la posici LOC


JUMP LOC,OFsalt a la posici LOC si es compleix una condici
CALL ETI crida a una subrutina que comena a la posici ETI
RET retorn des d'una subrutina
RETI retorn desprs d'una petici d'interrupci

Potser val la pena indicar aqu la diferncia que hi ha entre les dues instruccions de retorn al programa
principal. RET s, de forma general, la darrera instrucci d'una subrutina. Quan s'executa, es retorna el
PC al valor que s'havia enmagatzamat a l'stack abans del salt. En canvi, la instrucci RETI, que
s'utilitza per fer el retorn des de les subrutines de servei d'interrupci, permet a ms recuperar de
l'stack tota la informaci que s'hi havia guardat abans de fer el salt, o b recuperar l'estat de permissi
d'interrupcions abans que es produs aquesta ltima.

b) Control de la CPU

La gran majoria d'instruccions de control directe de la CPU involucren el registre d'estat. Permeten
posar a 1 o b a 0 alguns dels bits, modificar la mscara d'interrupci, etc. Tamb hi ha d'altres
instruccions que permeten un control ms globalitzat, com per exemple parar la CPU o b no executar
cap operaci. Vegem-ne alguns exemples:

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 81

EI permet les interrupcions


DI no permet les interrupcions
NOP no fa cap operaci (passa a la instrucci segent)
HALT para l'execuci
SETC posa a 1 el bit de carry
CLRC posa a 0 el bit de carry

3.5.2 Format de les instruccions

Fins aqu s'han analitzat els tipus d'instruccions que podem trobar en un microprocessador. Per,
nicament des d'un punt de vista funcional i del tot genric. El que ja s'ha pogut observar s que hi ha
instruccions que involucren registres interns, d'altres que necessiten una dada determinada que es troba
en una posici de la memria exterior, i d'altres que no necessiten cap informaci guardada en un
registre.

La qesti fonamental que caldria formular ara s: com s possible donar a la part operativa del
microprocessador la informaci adient perqu realitzi l'operaci correcta? La resposta s: a travs de
la informaci digital codificada a la mateixa instrucci que la CPU llegeix a la memria de programa i
interpreta tot seguit.

Aquest procs es fa d'acord amb l'esquema que s'ha representat a la figura 3.2. All mateix es parla de
llegir un codi d'operaci, d'una descodificaci de la instrucci i tamb d'una lectura d'operands si s
necessria. Tota la informaci per decidir el que s'ha de fer es troba codificada a la mateixa instrucci
del programa.

Una instrucci cont la segent informaci:

Un codi d'operaci (OpCode), que indica als circuits interns de la CPU quin tipus d'operaci cal
realitzar.
Ats que moltes vegades l'operaci indicada pel OpCode involucra un o ms operands, llavors la
instrucci ha d'incloure la informaci suficient per localitzar-los. (Entenem que pot incloure
l'operand mateix, o b una forma de trobar-lo en un registre de memria.)

La manera com estigui organitzada tota aquesta informaci a la instrucci dna lloc a un format
d'instrucci. S'ha de tenir present que noms tenim disponible informaci de tipus digital i que, per
tant, s'ha d'anar a parar a diversos significats codificats per un nombre determinat de bits i la seva
posici dins de la paraula (byte o word). La longitud d'una instrucci depn de dos factors:

Del nombre d'operands que hi hagi involucrats.


De la manera com estigui especificat cada operand.

La figura 3.14 mostra un esquema on s'indica clarament el paper que t la part del codi d'operaci de
la instrucci, que va a parar al registre d'instrucci (IR) dins de la CPU. El contingut d'aquest registre
s'utilitza com a informaci d'entrada a la part de control de la CPU, que ser l'encarregada de generar

los autores, 1998; Edicions UPC, 1998.


82 Disseny de sistemes digitals amb microprocessadors

els senyals de control adients perqu la part operativa realitzi correctament l'operaci inclosa a
l'OpCode esmentat.

Instrucci
Informaci sobre
els operands
OpCode

Registre IR

Senyals de
control Unitat
cap a la part ... de
operativa de control
la CPU

Fig. 3.14 La part del codi d'operaci de la instrucci s la


que genera els senyals de control interns de la CPU

Normalment, doncs, les instruccions d'un microprocessador especifiquen un o dos operands, i


depenent del tipus d'operand sn ms llargues o menys i poden ocupar ms d'una paraula o byte
d'informaci. La figura 3.15 mostra, com a exemple, la situaci en un microprocessador de 8 bits del
tipus del Z80 o del 8085. En alguns casos no s necessari especificar l'operand, perqu s implcit en
el propi codi d'operaci. Aquest s el cas mostrat a la figura 3.15 a. N's un exemple la instrucci
"calcular el complement de l'acumulador", on el codi ja indica que l'operaci de clcul del
complement s'ha de fer amb el registre acumulador.

D'altres vegades, a la instrucci noms s'indica un camp d'operand, ja que se'n suposa un altre per
defecte. A la figura 3.15 b es mostra aquesta situaci. s el cas d'una instrucci de suma del contingut
d'un registre (especificat a la instrucci) amb el registre acumulador.

Si s'ha de realitzar una operaci amb dos registres concrets, apareixer la situaci mostrada a la figura
3.15 c. s el cas d'haver de copiar el contingut d'un registre (operand 1) en un altre registre (operand
2). Com veiem, fins aqu la longitud de les instruccions s d'un sol byte, ats que s'ha utilitzat una
codificaci binria pel tal d'identificar els diferents registres interns de la CPU.

En alguns casos es fa necessari utilitzar una informaci explcita; aquest s el cas d de la figura 3.15,
on es vol, per exemple, comparar el contingut de l'acumulador amb la informaci que apareix en el
camp de l'operand. El cas e s quan es vol guardar el contingut de l'acumulador directament a la
posici de la memria indicada pels dos bytes del camp de l'operand.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 83

Tal com s'ha vist a la figura 3.15, la majoria d'operacions que es realitzen dins d'un microprocessador
van codificades, i el volum de la informaci necessria per fer aquesta codificaci dependr del tipus
de CPU i de la seva arquitectura interna. Quan la CPU s ms complexa, s'ha d'utilitzar un altre tipus
de codificaci i/o un nombre diferent de bits per fer-ho. A la figura 3.16 apareix el format genric d'un
microprocessador de 16 bits, el Zilog Z8001.

OpCode

(a) 7 0
Camp
OpCode de loperand

(b) 7 0

OpCode Operand 1 Operand 2

(c) 7 0

OpCode Camp de loperand

(d) 7 0 7 0

Camp de loperand
OpCode

(e) 7 0 7 0 7 0

Fig. 3.15 Alguns exemples de format d'instrucci per a una CPU de 8 bits

15 14 13 9 8 7 4 3 0
(a) Mode OpCode Camp operand 1 Camp operand 2
W/B
Camp de loperand 1

(b) 0 1 0 0 0 0 0 1 0 0 0 0

Camp de loperand 2

Fig. 3.16 Formats d'instrucci per al cas del Z8001

los autores, 1998; Edicions UPC, 1998.


84 Disseny de sistemes digitals amb microprocessadors

El format genric (vegeu la part a de la figura) s una mica ms complicat que en el cas anterior.
Apareixen dos camps nous, el camp de Mode permet saber com localitzar els operands a partir de la
informaci continguda als camps d'operand; tamb hi trobem el camp W/B que permet especificar en
algunes instruccions si l'operand s un byte o un word.

En molts microprocessadors de 16 bits, els OpCodes serveixen per codificar la naturalesa de


l'operaci, per no donen cap informaci sobre els operands. El resultat s que hi ha moltes variacions
en el format final de moltes instruccions (determinades per les combinacions de valors del camp de
Mode i de W/B). Com a exemple es pot veure la figura 3.16 b, on s'ha necessitat una segona paraula
per especificar completament un dels operands. Es tracta d'una instrucci amb un format del tipus two
single word.

3.6 Els modes d'adreament

A l'apartat anterior s'ha vist que en el format de les instruccions hi ha indicada la manera d'accedir als
operands necessaris per efectuar l'operaci indicada a l'OpCode. La informaci est localitzada als
registres. Si ens referim als registres interns de la CPU, poden ser identificats a travs de la codificaci
inclosa al propi format de la instrucci, o b perqu en moltes operacions s'agafa un dels registres per
defecte (per exemple, l'acumulador), i aix s especificat al propi codi de la instrucci.

La situaci una mica ms complexa s'esdev quan cal localitzar un o ms operands en alguna de les
posicions de la memria exterior. Cal doncs, establir un mecanisme mitjanant el qual aquesta
informaci quedi clara.

Els modes d'adreament sn els diferents mecanismes que es poden utilitzar


per especificar l'adrea d'un operand.

Normalment, el mode d'adreament que s'ha d'emprar ve determinat pel propi OpCode i el camp de
Mode, si n'hi ha. Tamb s'ha de dir que en alguns casos, per determinar l'adrea correcta es fa
necessria alguna operaci aritmtica.

A continuaci es descriuen alguns dels modes d'adreament ms habituals. En els casos que apareixen
s'utilitza un format molt semblant al de la figura 3.16, i que codifica el mode d'adreament que s'ha
d'emprar mitjanant el propi OpCode i el camp de Mode. No es corresponen amb cap
microprocessador real, per es poden prendre com a punt d'inici per entendre els modes d'adreament
emprats en molts dels dispositius reals.

El mode implcit

Aquest mode d'adreament s el que utilitzen alguns microprocessadors en qu l'adrea de l'operand


est codificada en el propi codi d'operaci. Tal s el cas de moltes CPU, com el Z80 i el 8085, on hi ha
un bon nombre d'instruccions en qu l'operaci es fa amb la informaci que cont el registre
acumulador.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 85

El mode immediat

En aquest mode, l'operand forma part de la instrucci i, per tant, s d'accs immediat. A la figura 3.17
a s'illustra aquesta situaci. La paraula (l'operand) ve especificada immediatament a la segona paraula
de la instrucci, i el registre de destinaci, que normalment s un dels registres interns de la CPU, ve
codificat a la informaci continguda al propi format de la instrucci. Hi ha un conjunt de bits que
constitueixen l'OpCode, que indica el tipus d'operaci que s'ha de realitzar (crrega d'informaci, etc. )
i la indicaci del Mode.

El mode d'adrea directa

En aquest mode, la instrucci ens dna directament l'adrea de la posici de memria on l'operand es
troba guardat. s doncs, una instrucci amb una longitud de ms d'una paraula. Vegem-ne un exemple
a la figura 3.17 b.

15 8 3 0
OpCode Mode X X X X Registre
(a)
Operand

15 8 3 0
OpCode Mode X X X X Registre
(b)
Adrea de loperand

Fig. 3.17 Modes d'adreament. (a) Immediat. (b) D'adrea directa

El mode directe a registre

Aquest mode s semblant a l'anterior, per ara s'especifica un registre on hi ha guardat l'operand que
busquem. Vegeu la figura 3.18 a.

El mode indirecte a registre

La diferncia respecte de l'anterior s que ara el registre indicat per la instrucci cont l'adrea de
l'operand, que s'ha d'obtenir de la memria externa. Vegeu la figura 3.18 b.

los autores, 1998; Edicions UPC, 1998.


86 Disseny de sistemes digitals amb microprocessadors

15 8 3 0
OpCode Mode Registre 1 Registre 2

15 Registre 1 0
(a) Operand

15 8 3 0

OpCode Mode Registre 1 Registre 2

15 Registre 1 0
(b) Adrea de loperand

Fig. 3.18 Modes d'adreament. (a) Directe a registre. (b) Indirecte a registre

En els tres modes que analitzem tot seguit, la instrucci especifica l'adrea de l'operand segons la seva
distncia a una adrea de referncia. Sempre hi ha dues components que un cop combinades donen
l'adrea desitjada.

El mode indexat

En aquest mode (vegeu fig. 3.19), la instrucci dna una adrea i ens indica un registre on es guarda
un ndex. Aquest ndex indica quant lluny est l'operand de l'adrea indicada per la instrucci.

ndex
Registre 1
OpCode Mode
Registre 1 Registre 2
Adrea

Adrea de loperand

Fig. 3.19 Mode d'adreament indexat

Aquest mode d'adreament es pot utilitzar quan hem d'accedir a un bloc d'operands que ocupen
posicions consecutives de la memria. Es pot dur a terme amb una part de programa molt reduda, i un
mecanisme d'increment o de decrement del contingut del registre 1 (l'ndex) automtic i definit a
l'OpCode.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 87

El mode relatiu a una adrea de base

En aquest cas la forma de localitzar l'adrea de l'operand s a partir d'un desplaament (o distncia)
des d'una adrea de base, que estar guardada en el registre indicat per la instrucci. La prpia
instrucci incorpora la informaci respecte al desplaament. Com que l'especificaci d'un
desplaament generalment ocupa menys espai de memria que la d'una adrea completa, aquest mode
s molt utilitzat quan es vol aconseguir una bona relaci entre la funci d'accs a dades, el nombre
d'instruccions necessries i l'espai de memria ocupat pel programa. (Vegeu fig. 3.20).

Adrea de base
Registre 1
OpCode Mode
Registre 1 Registre 2
Desplaament

Adrea de loperand

Fig. 3.20 Mode d'adreament relatiu a una adrea de base

El mode relatiu

Aquest mode d'adreament determina la posici de l'operand a partir del valor del comptador de
programa, PC. Es pot considerar com un cas especial de l'anterior. Per poder adrear posicions per
sobre i per sota del valor del PC, normalment es permet que el desplaament sigui amb especificaci
del signe. Se'n mostren ms detalls a la figura 3.21.

Comptador de programa, PC
OpCode Mode X X X X Registre
Desplaament (amb signe)

Adrea de loperand

Fig. 3.21 El mode d'adreament relatiu

los autores, 1998; Edicions UPC, 1998.


88 Disseny de sistemes digitals amb microprocessadors

Cal dir que no tots els microprocessadors del mercat tenen tots els modes d'adreament possibles.
Especialment els microprocessadors de 8 bits sn ms limitats des d'aquest punt de vista. En canvi, la
majoria de CPU de 16 i 32 bits s que disposen de tots els modes comentats en aquesta secci. Molt
sovint una determinada CPU pot tenir disponibles un gran nombre de modes d'adreament, per que
no sn utilitzables en totes les seves instruccions, i tamb acostuma a haver-hi restriccions sobre els
registres de la CPU que es podem utilitzar per guardar l'adrea de base o l'ndex.

3.7 La temporitzaci: els cicles mquina i els cicles d'instrucci

Amb tot el que hem vist fins ara sobre la CPU est molt clar que es tracta d'una mquina digital que,
sincronitzada per un rellotge, realitza una srie d'operacions d'acord amb la informaci continguda en
un programa que s'ha escrit i s'ha introdut a la memria. Hi ha alguna pregunta interessant que es
tractar de respondre en aquest apartat:

Com pot la CPU obtenir la instrucci de la memria?


Com es realitza l'execuci d'una instrucci?
En quina seqncia s'han d'activar i de desactivar els senyals de la
interfcie externa, pel tal de dur a bon terme tota l'operaci?

Procurarem aqu donar resposta a aquestes preguntes, fent una atenci especial a all que s'esdev en
l'mbit de la interfcie externa de la CPU, ja que s un dels aspectes ms importants des del punt de
vista de l'enginyer que treballa en un disseny.

3.7.1 El cicle d'instrucci

La seqncia total de passos que cal fer en el procs d'obtenci i execuci d'una instrucci s el que
s'anomena cicle d'instrucci. Aquesta seqncia est formada per altres de ms senzilles i predefinides
i que anomenem cicles mquina. Aix vol dir que un cicle d'instrucci, malgrat que sigui molt
complexa, sempre es pot interpretar com un conjunt de cicles mquina ms simples. El que defineix un
cicle mquina, des del punt de vista de la seva durada, s el nombre de perodes de rellotge que cont.
S'estableix una mena de jerarquia dins de l'organitzaci temporal, tal com es pot veure a la figura 3.22.

Un aspecte una mica ms detallat apareix a la figura 3.23, on a ms es veu l'organitzaci temporal
associada. El que cal dir s que hi ha un nombre limitat de cicles mquina:

Lectura a la memria
Escriptura a la memria
Realitzaci d'una operaci interna
Reconeixement d'interrupci
Cessi de busos

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 89

En tots els cicles mquina, tret del d'operaci interna, hi ha un intercanvi d'informaci entre la CPU i
els dispositius exteriors (memria, E/S) mitjanant els busos. Per aix tamb sn anomenats cicles de
bus.

Cicle dinstrucci

Cicle mquina

Perode de rellotge

Fig. 3.22 Jerarquia temporal en l'execuci d'una instrucci

Conv recordar que la CPU s un sistema digital de tipus sncron en el qual, per tant, totes les accions
estan sincronitzades per un rellotge. Cada cicle mquina est format per diversos perodes de rellotge
(entre 3 i 4 s el normal).

Cicle dinstrucci

T1 T2 T3 T4 T1 T2 T3
..........

Perode de rellotge
Cicle de fetch Cicle mquina
(Cicle mquina
de fetch)

T = 1/f

Fig. 3.23 Organitzaci temporal d'un cicle d'instrucci

Aix doncs, la longitud total d'un cicle d'instrucci o, el que s el mateix, el temps que triga el
microprocessador per executar una instrucci depn de:

los autores, 1998; Edicions UPC, 1998.


90 Disseny de sistemes digitals amb microprocessadors

El tipus d'operaci que s'ha de realitzar. S'ha de considerar que


determinades operacions aritmtiques prenen ms temps que d'altres
(com, per exemple, la multiplicaci), i tamb que hi ha operacions ms
immediates que ocupen poc temps (per exemple, fer el complement
d'un registre intern).
Si s necessari o no accedir a un determinat nombre d'operands.
En el cas que sigui necessari, el mode d'adreament que s'utilitzi per
trobar els operands corresponents.

Cal assenyalar que, tal com apareix a la figura 3.23, un cicle d'instrucci sempre comena amb un cicle
mquina una mica especial, que rep el nom angls de cicle de fetch (cicle d'obtenci del codi
d'operaci). De fet no s res ms que un cicle de lectura a la memria, per que serveix per llegir
l'OpCode de la instrucci i procedir a la seva descodificaci i interpretaci. A partir d'aqu, la part de
control de la CPU estableix la seqncia prpia de cicles mquina necessaris per executar
completament la instrucci en qesti.

3.7.2 Exemple de cicle d'instrucci

La figura 3.24 mostra el diagrama temporal i la seva organitzaci en els diferents cicles involucrats
d'una instrucci genrica d'un microprocessador de 8 bits.

Cicle
mquina

T1 T2 T3 T4 T1 T2 T3 T1 T2 T3 T1 T2 T3 T1 T2 T3

Cicle de fetch Lectura Lectura Operaci Escriptura


Lectura a la a la a la interna a la
memria memria memria memria

Cicle dinstrucci

Fig. 3.24 Cicle temporal corresponent a la instrucci DEC

Imaginem que es tracta de la instrucci DEC (decrementar directament el contingut d'una posici de la
memria). Les operacions que s'han de realitzar sn:

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 91

Fer el fetch de la instrucci. Aix obtenim el codi d'operaci per tal


de poder organitzar la resta de la seqncia.
Localitzar la posici de memria on hi ha l'operand que s'ha de
decrementar.
Obtenir l'operand.
Fer l'operaci de decrement.
Guardar el resultat a la mateixa posici de la memria.

En conjunt calen 5 cicles mquina, que comentem tot seguit:

Cicle mquina 1. La CPU utilitza el contingut del PC per accedir a la primera paraula de la
instrucci. Tots els cicles de fetch tenen un perode de rellotge addicional que serveix per
descodificar l'OpCode i el mode d'adreament. Aix, en aquest cas, al final de T4 la CPU
sap que ha de trobar l'adrea on es guarda l'operand, d'acord amb el mode d'adreament
especificat a l'OpCode. Tamb es coneix l'operaci que s'ha de realitzar i, per tant, la
seqncia completa de cicles mquina queda perfectament determinada.

Cicle mquina 2. Com que hi ha hagut l'autoincrement del PC, aqu s'utilitza el seu
contingut per llegir l'adrea de l'operand.

Cicle mquina 3. Amb l'adrea de l'operand ja disponible es procedeix a llegir la memria


per trobar l'operand.

Cicle mquina 4. Ara, quan l'operand est disponible a la CPU, es procedeix a fer
l'operaci interna de decrement.

Cicle mquina 5. s un cicle d'escriptura a la memria per tal de guardar el resultat de


l'operaci feta sobre l'operand.

Queda clar que, tal com s'ha dit anteriorment, depenent del mode d'adreament que s'utilitzi, sn
necessaris ms cicles mquina o menys per dur a terme una instrucci determinada.

Aix t una repercussi directa sobre el temps total que triga a realitzar una operaci sobre un
microprocessador determinat. Per exemple, considerant el nostre microprocessador anterior i
l'organitzaci temporal de la instrucci DEC, si la freqncia de rellotge s de 8 MHz aquest
microprocessador trigar 16 perodes x 125 ns = 2 s per executar la instrucci en qesti.
Evidentment, si canviem el mode d'adreament per localitzar l'operand, aquest temps total pot variar.

3.7.3 Els cicles mquina

Per dur a terme un cicle mquina, la CPU ha d'activar o de desactivar el senyals de la interfcie externa
en una seqncia predeterminada. L'encarregada de realitzar tot aix s la unitat de control de la CPU,
i s'ha de tenir en compte que la seqncia generada de senyals s nica per a cada tipus de cicle
mquina.

los autores, 1998; Edicions UPC, 1998.


92 Disseny de sistemes digitals amb microprocessadors

A continuaci s'analitzen els diferents cicles, sobre la base d'un microprocessador genric i agafant els
diagrames temporals com a suport.

El cicle de lectura a la memria

Ja s'ha dit anteriorment que tots els cicles d'instrucci comencen amb una operaci de lectura a la
memria (fetch) per obtenir el codi d'operaci. Poden haver-hi cicles addicionals de lectura per tal
d'obtenir les adreces dels operands i els propis operands.

A la figura 3.25 es pot veure la seqncia temporal completa dels possibles senyals involucrats. Cal
assenyalar que el rellotge t un paper fonamental per fixar el sincronisme de les operacions i, en
particular, les seves transicions d'estat (els flancs de pujada i baixada).

T1 T2 T3

Rellotge

Adrea

AS

DS

Dades cap a CPU

READY

Fig. 3.25 Cicle mquina de lectura a la memria

Normalment aquest cicle pren tres perodes de rellotge, i les transicions dels senyals es van duent a
terme durant aquests perodes:

Durant T1:
Al comenament de T1 la CPU colloca l'adrea correcta al bus d'adreces i d'aquesta
manera indica la posici de la memria a la qual s'ha d'accedir. S'espera un temps
per estabilitzar, i s'activa AS per tal de validar l'adrea i comenar l'operaci interna
de la memria.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 93

Durant T2:
S'activa DS (data strobe) per donar la indicaci a la memria que colloqui la dada
al bus de dades.

Durant T3:
La memria colloca el contingut de la posici de memria llegida en el bus de
dades. Aquesta dada s llegida per la CPU, normalment en el flanc de baixada del
senyal DS. Desprs AS es desactiva i la resta de senyals tornen al seu estat inicial.
Les lnies de dades tornen a un estat "flotant" d'alta impedncia.

Tal com s'ha vist i explicat ens trobem davant d'un bus sncron controlat completament pel master del
sistema, que diu quan s'ha de fer cada acci. La pregunta que podem formular s la segent:

Qu passa si la memria associada s massa lenta i no pot posar les dades en


el temps que li fixa la CPU? Hi ha cap mecanisme per retardar les accions de
control?

T1 T2 TW T3

Rellotge

Adrea

AS

DS

Dades cap a CPU

READY

monitora el
senyal READY
READY=0 TW
READY=1 Tn

Fig. 3.26 Cicle mquina de lectura a la memria amb un estat d'espera TW

los autores, 1998; Edicions UPC, 1998.


94 Disseny de sistemes digitals amb microprocessadors

Quan es va analitzar la interfcie externa de la CPU es va presentar un senyal anomenat READY (o


WAIT) que permet precisament adaptar els requisits temporals de la CPU a les possibilitats de
resposta dels dispositius de memria ms lents.

El senyal READY s d'entrada a la CPU (aix vol dir que s'ha de generar exteriorment), i s monitorat
per la CPU durant el flanc de baixada de T2. Si el senyal READY es troba activat, la part de control
de la CPU introdueix automticament un perode de rellotge addicional, anomenat estat d'espera TW,
que t com a finalitat fer una prolongaci de l'estat de tots els senyals involucrats en el cicle mquina.
Durant el flanc de baixada d'aquest nou TW es torna a monitorar READY, i si continua activat,
s'introdueix un nou TW. Si, al contrari, ja s'ha desactivat el cicle continua normalment amb la
generaci de T3. Es pot veure aquesta operaci esquematitzada a la figura 3.26

A la figura 3.27 apareix el cicle mquina de lectura a la memria del microprocessador Z80.
Normalment, el cicle en qesti est format per tres perodes de rellotge, per en aquest cas s'ha
considerat la circumstncia que externament s'han generant dos estats d'espera TW1 i TW2.

T1 T2 TW1 TW2 T3

RELLOTGE

A0 - A15 ADREA DE MEMRIA

MREQ*

RD*

Bus de dades
D0 - D7

WAIT*

La CPU monitora
lestat de WAIT*

si WAIT*=0 TW
si WAIT*=1 Tn

Fig. 3.27 El cicle de lectura a la memria del Z80

Com es pot veure, respon exactament als mecanismes genrics que apareixen a la figura 3.26, per
particularitzant-ho per al Z80. Com que s una operaci amb la memria, s'activa el senyal MREQ*.
El senyal RD* ens indica que es tracta d'una operaci de lectura i, finalment, el senyal WAIT* pot
servir per organitzar el bus de forma semisncrona, i aix permetre una operaci correcta amb
memries ms lentes que la CPU.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 95

Considerem el cicle mquina de lectura a la memria d'un microprocessador 68000. La figura 3.28
mostra el conjunt dels senyals que hi intervenen (conv assenyalar que en el cas de Motorola 68000,
els cicles de rellotge s'anomenen d'una manera diferent que en el cas anterior, i cada semiperode rep el
nom de cicle Sn). El que val la pena destacar s que es tracta en realitat d'un bus semisncron per
naturalesa. Aix doncs, desprs d'indicar si es tracta d'un cicle de lectura o b d'escriptura, de treure el
valor de l'adrea i validar-la amb el senyal AS*, el microprocessador monitora el valor del senyal
DTACK* (en el flanc de baixada de S4). Si DTACK* s actiu, un cicle de rellotge ms tard (flanc de
baixada de S6) es fa la lectura de la dada. En el cas que DTACK* no estigui actiu, s'inclou de forma
automtica un nou cicle de rellotge que conserva l'estat dels senyals involucrats en el protocol. L'estat
de DTACK* es va monitorant a cada flanc de baixada.

S0 S2 S4 S6

RELLOTGE

A1 - A23

R/W*

AS*

DTACK*

Dades

La CPU monitora
lestat de la lnia DTACK*

Fig. 3.28 Cicle de lectura en el cas del 68000

los autores, 1998; Edicions UPC, 1998.


96 Disseny de sistemes digitals amb microprocessadors

El cicle d'escriptura a la memria

Aquest cicle s el que habitualment utilitza la CPU per escriure alguna dada a una posici de la
memria. Presenta tres perodes de rellotge en la seva forma bsica, i conceptualment s molt semblant
al cicle de lectura anterior, per tenint en compte que ara s la CPU l'encarregada de posar la dada en
el bus i la memria ha de respondre agafant aquest contingut en un temps ben determinat.

La figura 3.29 presenta l'aspecte d'aquest cicle, amb els senyals fonamentals; tamb s'ha incls el paper
que fa el senyal READY per introduir un estat d'espera TW. Tal com s'observa, la dada es colloca al
bus al principi del perode T2. Es deixa un cert temps d'estabilitzaci, i finalment s'activa el senyal DS
cap al final de T2, per tal d'indicar a la memria que ha d'incorporar la dada abans del final de T3
(llevat que s'activi READY i que es generin estats TW).

T1 T2 TW T3

Rellotge

Adrea

AS

DS

Dades Dades des de la CPU

READY

La CPU monitora
lestat de READY
READY=0 TW
READY=1 Tn

Fig. 3.29 Cicle mquina d'escriptura a la memria amb la inclusi d'un TW

En aquests cicles mquina no s'ha tingut en compte l'estat ni el paper que tenen altres senyals de la
interfcie externa, tal com M/IO*, WRD/B* o b R/W*. D'acord amb la descodificaci de la instrucci,
aquests senyals van agafant els valors adients per tal que es realitzi l'acci corresponent. Recordem
que el senyal M/IO* noms el trobem en aquells microprocessadors amb mapes separats de memria i

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 97

d'E/S. Aquests microprocessadors tenen, per, dos tipus de cicles de lectura i d'escriptura: a la
memria i al dispositiu d'E/S. El senyal R/W* agafa el valor adient segons es trobi en un cicle de
lectura (R/W*=1) o en un cicle d'escriptura (R/W*=0).

A continuaci es presenten dos cicles mquina que no formen part de cap instrucci, sin que
s'originen com a conseqncia de l'acceptaci d'una petici d'interrupci (cicle de reconeixement
d'interrupci), i d'una cessi del control dels busos (cicle de cessi de busos).

El cicle de reconeixement d'interrupci

Els detalls sobre els mecanismes de gesti de les interrupcions s'analitzen ms endavant. Ara estudiem
la seqncia dels senyals associats amb el cicle especial de reconeixement d'interrupcions. Resulta
lgic pensar que s'ha de procurar un mecanisme per:

Conixer si hi ha una petici d'interrupci a la CPU o no.


Si n'hi ha, arbitrar un mecanisme per trobar l'adrea de la subrutina de servei
de la interrupci.

Tal com es pot veure a la figura 3.30, la primera qesti se soluciona comprovant sistemticament
l'estat de la lnia de petici d'interrupcions INTREQ. Aix es fa durant el flanc de baixada de l'ltim
perode de rellotge de l'ltim cicle mquina de cada instrucci. Aix garanteix una elevada freqncia
del test de l'estat de la lnia.

ltim cicle mquina Cicle mquina de


de la instrucci reconeixement dinterrupci

TN T1 T2 T3
Rellotge

INTREQ

AS

INTACK

Dades
Codi adrea

Fig. 3.30 Cicle de reconeixement d'interrupci

los autores, 1998; Edicions UPC, 1998.


98 Disseny de sistemes digitals amb microprocessadors

Quan s'ha detectat que el senyal INTREQ s actiu, tal com mostra la figura, la CPU finalitza la
instrucci i entra en un cicle especial de reconeixement d'interrupci, en el qual es fan dues tasques
concretes: assenyalar a la resta del sistema que ens trobem en aquesta situaci, mitjanant l'activaci
del senyal INTACK, i procurar l'obtenci de la informaci necessria per localitzar l'adrea on es
troba la subrutina de servei de la interrupci. Normalment aquest cicle t una estructura amb un
nombre limitat de perodes de rellotge (a la figura se n'han representat tres), en qu s'ha d'activar el
senyal AS. La CPU activa el senyal INTACK. Finalment, es llegeix en el bus de dades el codi d'adrea
que permetr localitzar la posici de comenament de la subrutina de servei. Els detalls sobre els tipus
d'interrupci (emmascarables i no emmascarables), sobre la seva prioritat, etc. sn objecte d'una
revisi ms detallada al captol 5.

El cicle de cessi de busos

La importncia d'aquest cicle s molt gran quan som davant de sistemes amb diferents processadors
que tenen la capacitat d'actuar com a master. Com que en un sistema no hi pot haver mai ms d'un
master actuant de forma simultnia, s necessari que pugui establir-se un procediment mitjanant el
qual sigui possible transferir el control del sistema (en particular, dels busos del sistema) d'un master a
un altre.

Els detalls del procediment es veuran en el captol 5, per podem assenyalar que s necessari establir
un protocol que permeti:

La detecci, per part del master actual, que hi ha una petici per passar a controlar els
busos, per part d'un altre dispositiu amb capacitat per fer-ho.
El procs de la cessi, on el master que fins ara estava fent el control passar a tenir una
gran majoria de les seves lnies en condici d'alta impedncia.
La recuperaci del control dels busos, quan el master sollicitador acabi el seu cicle de bus.

El procediment de la detecci de la petici es fa d'una forma rutinria: el microprocessador controla


l'estat de la lnia BR (bus request) durant el flanc de baixada de l'ltim perode de rellotge de cada
cicle mquina. Si s activa, la CPU no continua executant cicles mquina de les instruccions, i entra en
el cicle de cessi de busos (vegeu fig. 3.31). Aix vol dir que aquest procs t prioritat davant del de
petici d'interrupci. Efectivament, les lnies de petici de bus sn monitorades diverses vegades
durant l'execuci d'una instrucci (tantes com cicles mquina); en canvi, les de petici d'interrupci ho
sn nicament una vegada.

Fent referncia a la figura 3.31, es pot veure clarament que, desprs de la detecci de la petici:

Durant el primer perode de rellotge segent, la CPU posa totes les seves lnies de
sortida al bus en condici d'alta impedncia. L'nica excepci s el senyal BG (bus
grant).
A partir d'aqu, s el master peticionari qui t el control del bus.
La CPU que en tenia anteriorment el control va monitorant l'estat del senyal BR, sempre
en el flanc de baixada del rellotge, durant els perodes TB.

los autores, 1998; Edicions UPC, 1998.


Unitat central de procs (CPU) 99

Quan el nou master que ara t el control ha acabat el seu cicle, el senyal BR torna al seu
estat inicial. Aix ser, doncs, detectat per la CPU que li ha cedit aquest control. La
CPU primera desactivar la lnia BG i tornar a tenir el control dels busos del sistema.

ltim estat
del cicle Proper cicle
mquina Nou master del bus mquina

Tn TB TB T1

Rellotge

BR

BG

Altres
lnies

Fig. 3.31 Cicle mquina de cessi dels busos

3.7.4 La seqncia de reset

La seqncia de reset no s realment un nou cicle mquina, per d'alguna forma la trobem a totes les
CPU, ja que s el mecanisme habitual per poder portar el sistema fins a un estat inicial conegut.

La figura 3.32 illustra una seqncia molt normal en molts microprocessadors. La CPU va monitorant
el senyal de RESET a cada flanc de baixada del senyal de rellotge. Quan troba el senyal activat, entra
dins de la seqncia de reset. Aix doncs, no hi ha cap relaci amb els cicles d'instrucci ni amb els
cicles mquina. El perode de rellotge on es detecta el senyal RESET activat pot ser qualsevol dins de
la prpia seqncia temporal del microprocessador. Les accions sn:

Quan el microprocessador entra en el primer estat TR, activa un senyal intern IRESET*.
Amb aquest senyal s'acaba tota l'activitat interna, i tamb queden inactives les lnies de
sortida.

los autores, 1998; Edicions UPC, 1998.


100 Disseny de sistemes digitals amb microprocessadors

Mentre RESET continua activat, es va fent una successi d'estats TR i, al mateix temps,
la CPU va observant l'estat del senyal RESET.
Quan es detecta que RESET s'ha desactivat, el microprocessador desactiva IRESET*
(abans del flanc de pujada del proper perode de rellotge). Mentrestant es fora un
contingut determinat a alguns registres i flip-flops interns, amb l'nic objectiu de
comenar l'operaci amb unes condicions conegudes. Normalment es carrega el PC amb
un contingut predeterminat.

La longitud de la seqncia de reset depn, doncs, del temps que el senyal RESET est activat. Les
CPU fixen una durada mnima de pols de RESET que s'ha de respectar.

Ti TR TR T1

Rellotge

RESET

IRESET*

Perode de reset

Fig. 3.32 Seqncia de Reset

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 101

4 Subsistema de memria
En aquest captol sanalitzen els trets caracterstics del subsistema de memria, que proporciona el
suport fsic per emmagatzemar tant les instruccions de programa com les dades necessries per al
processament. Es prenen en consideraci els diversos tipus de memria, el model de slave, la
construcci de mduls de memria, la seva descodificaci i els seus mapes, la connexi al sistema, les
caracterstiques especfiques de les memries dinmiques i finalment les caracterstiques temporals.

4.1 Model de slave

Els subsistemes de memria actuen com a slaves dins els sistemes computadors. s a dir, responen a
les ordres de lectura o descriptura que el master envia a travs del bus de control. En cas de lectura, la
memria emmagatzema la dada i en el cas descriptura la presenta al bus de dades. La posici de
memria on s'escriu o d'on es llegeix la dada s indicada tamb pel master mitjanant el bus d'adreces.

Un model general de slave es mostra a la figura 4.1. A part de les lnies de dades i dadreces que es
connecten, respectivament, als busos de dades i adreces del sistema, tres lnies dentrada seleccionen
el tipus doperaci.

LNIES
OE*
DE DADES
WE*
CE* LNIES
DADRECES

Fig. 4.1 Model general de slave

La lnia CE* (Chip Enable), tamb anomenada CS* (Chip Select), indica que es vol fer una operaci
de lectura o escriptura amb el slave. s important que existeixi aquesta lnia per activar nicament el

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
102 Disseny de sistemes digitals amb microprocessadors

slave seleccionat i evitar conflictes daccs al bus de dades entre els slaves del sistema. Si sactiva la
lnia WE* (Write Enable) el slave seleccionat captura la dada present al bus de dades i lemmagatzema
a la posici codificada per les lnies dadreces (cicle descriptura), mentre que lactivaci de la lnia
OE* fa que que el slave tregui al bus de dades la dada emmagatzemada a la posici que indica el codi
de les lnies dadrea.

Un gran nombre de circuits slaves (memries i dispositius dentrada/sortida) inclouen les tres lnies
dhabilitaci esmentades. Un altre model que tamb sutilitza s el de dues lnies: CE* i R/W*. La
lnia CE* fa la funci de selecci del dispositiu, i a ms provoca, segons el valor que prengui la lnia
R/W*, una operaci de lectura (si R/W* = 1) o una descriptura (si R/W* = 0).

4.2 Tipus de memries

En aquest apartat es descriuen nicament les memries de semiconductor, ats que sn les que
sutilitzen en la majoria daplicacions actuals per les seves caracterstiques de rapidesa, baix consum i
integraci. Cal, per, tenir en compte que nexisteixen daltres, com per exemple les de bombolles
magntiques o les ferroelctriques.

Des del punt de vista de la utilitzaci, les memries se solen classificar entre les que sn voltils i les
no voltils. Sentn per memria voltil la que perd el seu contingut dinformaci en un temps curt
desprs de desconnectar lalimentaci del circuit. En contraposici, les memries no voltils mantenen
la informaci durant un temps indefinit (com a mnim alguns anys), independentment de si estan
connectades a lalimentaci o no.

Per motius histrics, usualment les memries voltils sanomenen memries de tipus RAM (Random
Access Memory), s a dir, daccs aleatori. Les memries no voltils sanomenen memries noms de
lectura o de tipus ROM (Read-Only Memory). Com es veur tot seguit, aquests termes sn, com a
mnim, dubtosos ja que les memries no voltils tamb sn en general, daccs aleatori, i algunes
poden ser de lectura i descriptura, per aquesta s la terminologia que sha mantingut i que s
emprada universalment.

Ambds tipus de memries conviuen normalment en sistemes P/C, ja que cadascun serveix per a
funcions que es complementen. Les memries noms de lectura contenen els programes fixos que ha
dexecutar el sistema o, com a mnim, les instruccions necessries per inicialitzar el sistema i poder
carregar els programes daplicaci provinents dun medi extern (per exemple, unitat de disc, cinta,
host remot, etc.). El programa que realitza la inicialitzaci quan es connecta o es reinicialitza (reset) el
sistema sanomena bootstrap. Aquesta tasca no la pot fer la memria RAM ja que quan es desconnecta
desapareix el seu contingut.

Les memries RAM permeten emmagatzemar les dades que processa el sistema. Com que van variant
durant el procs no poden ser emmagatzemades en memria de tipus ROM. Tamb, en un gran
nombre daplicacions, conv poder modificar el programa o usar programes completament diferents
segons la situaci. En aquests casos, cal disposar de memria RAM, sobre la qual es pot carregar
rpidament el programa que es vol executar en cada moment.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 103

4.2.1 Memries voltils (de tipus RAM)

Existeixen dos tipus memries RAM, les esttiques i les dinmiques, anomenades SRAM (Static
RAM) i DRAM (Dynamic RAM), respectivament. En el cas de les memries SRAM, la informaci
que contenen es conserva indefinidament mentre es mantingui lalimentaci. En les memries DRAM,
tot i estar alimentades, la informaci noms es conserva durant un temps curt, usualment de lordre
dels millisegons, i per evitar la prdua dinformaci s necessari refrescar el seu contingut
peridicament. Aquest fet repercuteix de forma important sobre els sistemes que usen DRAM, perqu
han dincorporar circuits de refresc.

Des del punt de vista de la complexitat del hardware, es fa ms complicat utilitzar memries RAM
dinmiques i, a ms, en general tenen un temps de resposta ms lent que les RAM esttiques. Daltra
banda, com es podr veure ms endavant, la cella de memria dinmica ocupa menys rea que
lesttica i, per tant, en igualtat de condicions tecnolgiques, les memries dinmiques assoleixen
molta ms capacitat que les esttiques. Aix, en sistemes amb importants requeriments de capacitat de
memria normalment s avantatjs emprar memries DRAM, mentre que en sistemes amb poca
memria normalment sempra SRAM per simplicitat del disseny.

4.2.2 Memries no voltils (de tipus ROM)

Segons la forma de programaci i reprogramaci de les memries no voltils es poden distingir els
tipus segents de memria:

ROM de mscara. Aquesta memria ha de ser programada pel fabricant. Lusuari facilita el
contingut de la memria i es realitza una mscara per programar els circuits durant la fabricaci.
Aquestes memries tenen bona fiabilitat, per noms susen per a grans volums de fabricaci i
tenen el greu inconvenient de no ser programables per lusuari.
PROM (Programmable ROM), tamb anomenada OTPROM (One-Time Programmable ROM).
Sn memries que es programen fonent fusibles interns del circuit. Les connexions foses no es
poden curtcircuitar de nou i, per tant, es diu que noms sn programables una vegada. Existeixen
altres tecnologies de programaci de connexions, com ara els transistors amb porta flotant o els
antifusibles, que quan es programen provoquen un curtcircuit en comptes dun circuit obert.
Lusuari pot programar aquestes memries utilitzant equips programadors que solen estar preparats
per programar una gamma mplia de dispositius de diversa capacitat i tipus (no noms PROM, sin
tamb EPROM, EEPROM, altres dispositius de lgica programable, etc.).
EPROM (Erasable Programmable ROM). Es basen en transistors MOS de doble porta, una
flotant i laltra de control (Fig. 4.2a). La programaci es realitza injectant crrega a la porta flotant.
Per a aix saplica una tensi elevada al terminal de control (VG) i es provoca un corrent entre el
drenador i el sortidor del transistor MOS polaritzant aquests terminals. Els electrons que circulen
pel canal amb energia elevada travessen lxid de porta i arriben a la porta flotant (aquests
electrons sanomenen electrons calents), on queden atrapats. La crrega injectada a la porta flotant
provoca un augment important de la tensi llindar (VT) en el transistor programat, de forma que per
a una certa tensi de porta es crea canal en els transistors no programats i no sen crea en els
programats. L'encapsulat d'aquests circuits porta una finestra de quars a travs de la qual es poden
aplicar raigs ultraviolats per produir la descrrega de les portes flotants i, per tant, esborrar la

los autores, 1998; Edicions UPC, 1998.


104 Disseny de sistemes digitals amb microprocessadors

memria. El procs d'esborrament es pot realitzar centenars de vegades. El temps habitual


desborrament s entre vint minuts i mitja hora. Un cop gravada la memria, per evitar que
sesborri accidentalment se sol tapar la finestra amb un adhesiu opac.
EEPROM (Electrically Erasable ROM), tamb anomenada EAROM (Electrically Alterable
ROM). Aquestes memries es basen tamb en una porta flotant, per tant la crrega com la
descrrega es realitzen de forma elctrica. Lefecte fsic que permet aix s lefecte tnel de
Fowler-Nordheim. Les portes flotants dels transistors MOS poden ser carregades o descarregades
(depenent de les polaritats aplicades) elctricament mitjanant injecci de crrega per efecte tnel
a travs de la capa estreta dxid a la zona del drenador (Fig. 4.2b). Aix, aquestes memries poden
ser reprogramades sense necessitat d'esborrar-les com en el cas de les EPROM. Les memries
EEPROM no poden substituir actualment les RAM perqu el temps descriptura s molt ms
elevat. La seva aplicaci ms estesa s emmagatzemar informaci de configuraci del sistema, ja
que la informaci es mant fins i tot sense alimentaci.

VG VG

VS VD VS VD

N+ N+ N+ N+

Substrat P Substrat P

(a) (b)

Fig. 4.2 a) Transistor MOS de porta flotant (EPROM). b) Transistor MOS EEPROM

4.3 Estructura interna dels circuits integrats de memria

L'esquema de blocs global de l'arquitectura d'un circuit integrat de memria genrica est representat a
la figura 4.3. Com es pot veure, est constitut pels elements segents:

Matriu de celles elementals de memria. Cadascuna d'elles emmagatzema un bit d'informaci.


Circuits de descodificaci de les adreces. El codi de l'adrea selecciona la posici de memria a la
qual sha daccedir (en lectura o escriptura). Aquesta posici es troba a la intersecci de fila i de
columna activades pels descodificadors d'adreces.
Amplificadors sensors. Regeneren el 0 o l1 lgic de la(les) cella(es) seleccionada(es) en les
operacions de lectura. El seu disseny s especialment crtic en circuits de memria dinmica.
Circuits dinterfcie per a les lectures i escriptures. La resta de circuits per realitzar la interfcie
amb els busos i lnies externes (lgica de selecci d'operaci, drivers, etc.).

Ats que les celles que contenen cada bit de memria es repeteixen tantes vegades com bits cont la
memria, s molt important que el seu disseny sigui el ms compacte possible, ja que la major part

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 105

drea del circuit est ocupada per la matriu de celles de memria i, per tant, determina la seva rea
total i en conseqncia el seu cost.

Tot seguit es descriu breument cadascun dels blocs anteriors.

LNIES DE DADES

OE*
WE* Circuits
d'interfcie Descod. columnes
CE*

MATRIU DE
LNIES CELLES
D'ADREA
Amplif.
Descod. sensors
files

Fig. 4.3 Arquitectura de blocs d'un CI de memria

4.3.1 Celles elementals de memria

Les celles de memria sn molt diferents segons si es tracta de memria RAM o ROM i, en el primer
cas, si la memria s esttica o dinmica.

Cella de memria noms de lectura (EEP)ROM

Les celles de memria ROM es basen en interruptors MOS, fusibles o antifusibles, tal com s'ha vist a
l'apartat 4.2.2. Aquests interruptors han estat programats prviament en tall o conducci, i quan sn
seleccionats pels descodificadors de fila provoquen un nivell lgic alt o baix, depenent de si es troben
en circuit obert o en curtcircuit.

Una forma usual de generar un nivell lgic controlat per lestat de conducci del dispositiu seleccionat
es mostra a la figura 4.4. En aquesta figura, a cada instant de temps noms una de les files pot prendre
un nivell lgic alt i, per tant, noms els transistors que tenen la porta connectada a la fila activa
condueixen. Aquests transistors provoquen un curtcircuit a zero de la lnia associada a la seva
columna, que en circuit obert pren un valor lgic alt grcies a un dispositiu de pull-up. Aquest darrer
dispositiu pot ser una resistncia o un altre transistor connectat a alimentaci. Aix, per exemple, a la
figura 4.4, si se selecciona la fila 1 sobt el codi 0101 de columna 1 a columna 4, mentre que si se
seleccionen les files 2 i 3 es llegeixen els codis 0011 i 0010, respectivament. Aquests codis indiquen
quines lnies tenen un transistor connectat (sortida igual a 0) i quines no (sortida igual a 1). Aquest

los autores, 1998; Edicions UPC, 1998.


106 Disseny de sistemes digitals amb microprocessadors

seria el cas duna memria tipus ROM, per una filosofia semblant es pot emprar per a daltres tipus
de memria noms de lectura.

Columna Columna Columna Columna


1 2 3 4 ...
VDD

Selecci de fila 1

Selecci de fila 2

Selecci de fila 3

...
Fig. 4.4 Matriu de celles ROM

Tot seguit es presenten les celles de memria RAM esttica, que requereixen sis transistors i dos tipus
de cella de memria dinmica de tres i d'un transistor.

Cella de memria esttica de sis transistors

Un circuit que emmagatzema un bit dinformaci es pot construir a partir de la realimentaci de dos
inversors lgics. Aquest circuit sanomena biestable, ja que t dos estats estables possibles, tal com es
veu a la figura 4.5.

VDD

0 1 1 0

(a) (b)
GND
(c)

Fig. 4.5 Circuit biestable. a) Estat 0. b) Estat 1. c) Realitzaci CMOS

Per ra de la configuraci del circuit, petites variacions de nivells elctrics produdes per sorolls o
interferncies en un dels dos nusos del circuit sn anullades immediatament pel lla de realimentaci.
Daquesta forma, qualsevol dels dos estats s estable i queda fixat indefinidament mentre les tensions
dalimentaci es mantinguin o el soroll no sigui massa elevat.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 107

Per fixar lestat del biestable, es podrien substituir els inversors per portes NAND o NOR de dues
entrades. Lentrada que queda lliure de cada porta susa per fixar lestat. Aquest tipus de biestable
sanomena RS, per no susa per realitzar memries ja que requereix 8 transistors.

En realitat, per fer bascular el biestable d'un estat a l'altre s suficient daplicar a un o als dos nusos
del circuit un pols de tensi suficientment elevat durant un temps. Aix es pot fer afegint dos
transistors de pas a travs dels quals es poden aplicar tensions complementries (lnies BIT i BIT* de
la figura 4.6) per fer bascular el biestable a un dels estats quan la lnia SEL est activada. A ms, si els
nusos externs d'aquests transistors es deixen flotants, es poden usar per realitzar la lectura del valor
lgic del biestable seleccionat. Ats que en una memria hi ha un gran nombre de celles de memria,
es fan servir lnies de lectura (i escriptura) de dades comunes a moltes celles, que sn seleccionades
de forma individual activant els transistors de pas corresponents.

VDD
BIT* BIT

GND
SEL

Fig. 4.6 Lectura i escriptura del biestable a travs de lnies comunes

Cella de memria dinmica de tres transistors

Al circuit anterior cal una estructura de dos inversors per realitzar la realimentaci que mant lestat
estable duna forma activa. En realitat, un element de memria es pot fer de forma ms simple si
selimina la realimentaci: un sol condensador pot emmagatzemar un bit dinformaci segons si es
troba carregat o descarregat.

En tecnologies MOS, es pot emprar la capacitat de porta del transistor com a condensador. La crrega
o descrrega del condensador de porta produeix conducci o tall en el transistor, i anlogament a les
memries ROM. Cal, per, de forma similar al biestable, poder seleccionar la cella per llegir i
escriure. Aix es pot fer amb dos transistors addicionals. Aquesta s la filosofia de funcionament de la
cella de memria dinmica de tres transistors, que es pot dissenyar en un procs CMOS estndard. El
seu circuit es mostra a la figura 4.7a. En aquest circuit, les resistncies de fuites degudes al transistor
M2 provoquen una descrrega progressiva del condensador C. Per aquest motiu, cal refrescar
peridicament la crrega de la porta de M1 (memria dinmica).

los autores, 1998; Edicions UPC, 1998.


108 Disseny de sistemes digitals amb microprocessadors

Cella de memria dinmica d'un transistor

En aquesta cella saprofiten al mxim les caracterstiques del transistor per realitzar les funcions
demmagatzematge, selecci i commutaci amb un sol dispositiu (Fig. 4.7b). La informaci es guarda
a la capacitat de sortidor del transistor, la seva porta controla laccs en lectures i escriptures, i el
drenador es connecta a la lnia de bit, on es llegeix i sescriu la dada.

WORD LINE
READ

M2 BIT
M1
M3 LINE
DATA DATA C
IN M1 OUT
C
WRITE C

(a) (b)

Fig. 4.7 a) Cella de memria dinmica de tres transistors. b) Cella de memria dinmica dun transistor

La informaci emmagatzemada a la cella es llegeix fent conduir el transistor M1 activant la lnia de


paraula (word line). Llavors, la crrega del condensador C es reparteix per la lnia de bit (bit line), que
t una capacitat parsita C. La relaci entre capacitats i la crrega del condensador C determina la
variaci de voltatge de la lnia de bit. Aquesta variaci s detectada per uns amplificadors sensors que
recuperen el valor lgic emmagatzemat per M1. Ats que la capacitat parsita del transistor s molt
petita i, en canvi, la de la lnia de bit pot ser elevada, ja que ha dinterconnectar un gran nombre de
transistors, la capacitat parsita del transistor es millora formant un pou dins el substrat que augmenta
lrea del condensador. Per a aix cal un procs de fabricaci especfic.

Una altra caracterstica daquest tipus de cella s que la lectura s destructiva, ja que la crrega del
condensador es reparteix per la lnia de bit i, per tant, desprs duna lectura cal reescriure dins la cella
el valor que contenia per tal de no destruir-lo. Daltra banda, tamb cal refrescar peridicament la
memria encara que no es llegeixi, a causa de les resistncies parsites de fuites del condensador, que
el van descarregant progressivament.

Per les seves caracterstiques docupaci mnima drea, la cella de memria dinmica que sutilitza
en circuits integrats de memria DRAM s la dun transistor. Per comparaci a les celles dSRAM de
sis transistors, en igualtat de tecnologia les memries dinmiques tenen ms capacitat que les
esttiques, o b el seu cost s menor per a igual capacitat. Aquest factor justifica moltes vegades la
complexitat addicional del refresc, que s necessari en les DRAM.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 109

4.3.2 Descodificadors dadreces

Les celles de memria sorganitzen en matrius rectangulars amb una relaci daspecte fora quadrada
per equilibrar les dimensions del circuit integrat (Fig. 4.3). Aix fa que les lnies dadrea sagrupin
internament en lnies de fila i de columna, tot i que externament no hi ha distinci. Laccs a una cella
es realitza en dues fases. Primer el descodificador de files activa una fila de la matriu, seleccionant
totes les celles daquella fila. Tot seguit el descodificador de columnes selecciona la cella de la
columna codificada per les lnies dadrea de columna. Aquest darrer descodificador pot estar imbricat
amb els amplificadors sensors.

4.3.3 Amplificadors sensors

Els amplificadors sensors sn els encarregats de recuperar el valor lgic contingut a la cella de
memria seleccionada a partir del senyal elctric que li arriba. Depenent del tipus de cella de
memria, els amplificadors sensors que apareixen a la figura 4.3 poden reduir-se a uns amplificadors
simples o poden tenir un grau elevat de sofisticaci. En especial les memries dinmiques necessiten
amplificadors sensors molt sensibles i acurats ja que les diferncies de tensi que generen les celles
dinmiques noms sn de lordre de centenars de millivolts.

Els amplificadors sensors usualment solen amplificar la diferncia de tensi entre dues lnies
(amplificadors diferencials). La figura 4.8 mostra la descodificaci de columna i lamplificador
diferencial sensor per a una memria esttica amb celles de sis transistors. Es pot veure com els
parells de transistors de lnia sn controlats pel descodificador de columna. La columna seleccionada
permet el pas de les lnies de bit i bit* cap a lamplificador sensor (en cas de lectura) o b el pas de la
dada dentrada cap a les lnies de bit i bit* a travs dels buffers tri-state (en cas descriptura).

Bit Bit* Bit Bit*

Data in

- Data out
+

0 2n-1
Write Descodificador de columnes

n Adreces de columna

Fig. 4.8 Descodificaci de columnes i amplificador sensor en una SRAM

A la figura 4.9 es presenta un amplificador sensor tpic en memries DRAM. Es basa en una estructura
de tipus biestable (dos transistors realimentats com a inversors). Sutilitzen dues lnies de bit (bit i

los autores, 1998; Edicions UPC, 1998.


110 Disseny de sistemes digitals amb microprocessadors

bit*) per mantenir la mxima simetria en la mesura diferencial. El mateix nombre de celles de
memria i una cella addicional dummy es connecten a cadascuna de les lnies.

Per fer una lectura inicialment es precarreguen les lnies de bit i bit* a un mateix valor i es
curtcircuiten mitjanant el transistor controlat per 1. Els condensadors de les celles dummy tamb es
carreguen a una tensi intermdia de referncia. Un cop feta la precrrega, es talla el transistor
controlat per 1 i sactiva una de les lnies de word, per exemple la de lesquerra de la figura. En
aquest cas, la lnia de bit varia la seva tensi segons la tensi emmagatzemada a la cella de memria
de lesquerra. Simultniament entra en conducci la cella dummy* de la dreta i lamplificador
compara les tensions de les lnies bit i bit*. La lnia amb tensi ms elevada provoca una descrrega
ms rpida de la lnia contrria a travs del transistor M1 o M2. Finalment, lactivaci de 2 provoca
una regeneraci a nivells lgics complementaris de les lnies bit i bit*, la qual cosa permet llegir el
valor emmagatzemat a la cella de memria seleccionada i alhora refrescar-la.

VDD

2
Word line Word line
1
Bit line Bit* line

M1 M2

Dummy Dummy*
VSS
cell cell

Fig. 4.9 Amplificador sensor de memries dinmiques

4.3.4 Circuits d'interfcie

La resta de circuits que contenen els xips de memria permeten realitzar la interfcie amb lexterior.
Bsicament hi sol haver elements latch que temporalment emmagatzemen les adreces o les dades que
es porten al bus, drivers que proporcionen corrents de sortida elevats, i la lgica que genera els senyals
de control interns a partir dels senyals externs de la memria.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 111

4.4 Organitzaci i capacitat

Des del punt de vista de lusuari, s necessari conixer el nombre de bits i tamb les lnies de dades i
dadrea que un circuit de memria cont. Es defineixen dos parmetres fonamentals: capacitat i
organitzaci.

Capacitat. s el nombre de bits dinformaci que cont. Sexpressa en bits.


Organitzaci. s el nombre de posicions de memria que cont pel nombre de bits per posici.
Sexpressa en posicions bits.

Lorganitzaci indica el nombre de posicions (combinacions dels bits dadrea) i de bits per posici
duna memria. El resultat del producte dels seus dos parmetres s igual a la capacitat de la memria,
per lorganitzaci dna ms informaci ja que indica el nombre de bits de dades i el nombre de bits
dadrea de la memria. Aquest ltim nombre es pot obtenir del logaritme en base 2 del nombre de
posicions.

Les organitzacions ms tpiques de les memries sn una potncia de 2 per al nombre de posicions i 1,
4, 8 o fins i tot 16 bits de dades.

Exemple 4.1

Suposem una memria que t una capacitat d1 Mbit. Aquesta xifra no indica quants
bits de dades i dadreces t la memria. Pot ser que tingui un sol bit de dades i 1 M
posicions de memria. El nombre de bits dadrea s:

log2 (1M) = log2 (220 ) = 20

En aquest cas, lorganitzaci de la memria s d1 M 1 bit. Per tamb podria tenir 8


bits de dades i 128 k posicions de memria. Ara, la memria tindria 17 bits dadrea:

log2 (128k ) = log2 (217 ) = 17

La seva organitzaci seria de 128 k 8 bits. En ambds casos, la capacitat s d1 Mbit,


per la interfcie externa canvia.

s interessant assenyalar que els encapsulats dels circuits integrats de memria tenen una ordenaci de
pins que s estndard (lanomenat estndard JEDEC) en la majoria de casos. Si aix es preveu en el
disseny del circuit imprs, s molt senzill durant el desenvolupament de prototipus o en el producte
final substituir memries duna certa capacitat per altres. A la figura 4.10 es pot comparar el pinout de
dues memries SRAM de 128 k 8 i de 512 k 8, i dues EPROM de les mateixes organitzacions. Els
pins N.C. (no connectats) o C.S. (Chip Select) addicionals en les memries de menor capacitat sn
substituts per les lnies dadrea de major pes. En el cas de la memria EPROM, el pin VPP, per on

los autores, 1998; Edicions UPC, 1998.


112 Disseny de sistemes digitals amb microprocessadors

sintrodueix la tensi de programaci, es multiplexa amb OE* per aconseguir una nova lnia dadrea.
A la figura tamb es representa de forma esquemtica la finestra rodona de quars de la memria
EPROM que permet el pas de raigs ultraviolats, darrera la qual es troba el dau de silici (xip).

(A18) N.C. 1 32 VCC (A19) VPP 1 32 VCC


A0 2 31 A16 A16 2 31 P* (A18)
A1 3 30 CS2* (A17) A15 3 30 N.C. (A17)
A2 4 29 WE* A12 4 29 A14
A3 5 28 A15 A7 5 28 A13
A4 6 27 A14 A6 6 27 A8
A5 7 26 A13 A5 7 26 A9
A6 8 25 A12 A4 8 25 A11
SRAM
A7 9 24 OE* A3 9 24 OE* (OE*/VPP)
A8 10 23 A11 A2 10 23 A10
A9 11 22 CS1* A1 11 22 CS1*
A10 12 21 D7 A0 12 21 D7
20
EPROM 20
D0 13 D6 D0 13 D6
D1 14 19 D5 D1 14 19 D5
D2 15 18 D4 D2 15 18 D4
VSS 16 17 D3 VSS 16 17 D3

(a) (b)

Fig. 4.10 Encapsulats DIP (Dual-In-line Package) estndards JEDEC 21-C. a) SRAM de 128 k 8 i de 512 k 8
(lnies diferents entre parntesi). b) EPROM de 128 k 8 i d1 M 8 (lnies diferents entre parntesi).

4.5 Mduls de memria

En moltes ocasions no es disposa dun circuit integrat (CI) de memria que tingui lorganitzaci en
nombre de lnies de dades i posicions de memria que el sistema requereix. Llavors, es pot construir
lorganitzaci volguda agrupant CI de memria fins aconseguir el nombre necessari de bits de dades i
posicions de memria. Cal garantir que el mdul continu tenint la interfcie dun slave, de forma que
pel que fa a senyals externs, usar un mdul de memria o un circuit monoltic sigui indistint.

A partir de lexemple que segueix es pot extrapolar com es construiria qualsevol mdul a partir de
circuits de memria amb una organitzaci determinada.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 113

Exemple 4.2

Es disposa de CI de memria SRAM amb una organitzaci d1 M 8 i es vol construir


un mdul de 8 M byte de capacitat per a un microprocessador de 16 bits (bus de dades
de 16 bits).

D15..D8 D7..D0

OE* D7..D0 D7..D0


OE* OE*
WE* WE* WE*
CE* A19..A0 CE* A19..A0

D7..D0 D7..D0
OE* OE*
WE* WE*
CE* A19..A0 CE* A19..A0
O0
I0 O1
I1 O2
O3 D7..D0 D7..D0
OE* OE*
WE* WE*
CE*
CE* A19..A0 CE* A19..A0

D7..D0 D7..D0
OE* OE*
WE* WE*
CE* A19..A0 CE* A19..A0

A21..A0
Fig. 4.11 Construcci dun mdul de memria de 4 M 16 a partir de xips d1 M 8

los autores, 1998; Edicions UPC, 1998.


114 Disseny de sistemes digitals amb microprocessadors

Ats que el bus de dades s de 16 bits i la capacitat de memria requerida s de 64


Mbits (= 8 M byte), lorganitzaci del mdul ha de ser de 4 M 16. Com que les
memries disponibles sn d1 M 8, cal emprar dos xips per assolir 16 bits de dades i
multiplicar per 4 el parell de xips per obtenir les 4 M posicions. Per tant, es necessiten 8
xips que es connectaran segons la figura 4.11.

A la figura s'observa que la interfcie externa s la mateixa que la d'un sol circuit, per el
nombre de lnies de dades (16) i d'adreces (22) correspon a l'organitzaci 4 M 16
especificada. Les 8 lnies de dades ms significatives (D15..D8) es connecten a la figura
amb els 4 circuits de l'esquerra, mentre que les menys significatives (D7..D0) es
connecten als 4 xips de la dreta. Les lnies d'adreces A19..A0 es porten en parallel a les
lnies d'adrea de tots els xips. Tamb es connecten directament a tots els xips els
senyals de WE* i d'OE*.

s important assenyalar per, que noms pot estar activada una fila de xips
simultniament per no produir bus contention (conflicte de bus) entre xips de memria.
Aix s'evita descodificant les dues lnies d'adrea sobrants del mdul, A21 i A20, i
connectant cadascuna de les 4 sortides a l'entrada de CE* de cada fila de xips. Per tant,
noms es pot activar un dels 4 parells de senyals CE*, aquell que correspon al codi de
les lnies A21, A20. A ms, cal desactivar tot el mdul si el senyal de CE* del mdul no
est activat. El fet de connectar CE* a l'entrada de permissi (enable) del descodificador
fa que les sortides quedin desactivades (en aquest cas, totes a '1', ja que els CE*
funcionen per lgica negada) i que no s'activi cap dels xips.

Les condicions que requereix la construcci de mduls amb un mateix tipus de xip de memria sn
que el nombre de lnies del bus de dades sigui un mltiple de les lnies de dades del CI de memria
disponible i que el nombre de posicions de memria del mdul sigui una potncia de 2 del nombre de
posicions del CI de memria (o b, que el nombre de lnies d'adrea del mdul sigui major que el del
xip). Altrament, cal emprar un altre xip de memria o b construir el mdul combinant xips de
diferents organitzacions.

Veient com s'ha construt el mdul de l'exemple anterior, els xips de memria amb organitzacions d'un
sol bit de dades poden semblar a priori poc interessants, ja que calen com a mnim tants CI com bits
tingui el bus de dades al qual es connecta el mdul de memria. D'altra banda, les organitzacions amb
un sol bit de dades necessiten menys pins d'encapsulat. s per aix que la utilitat d'aquests circuits ve
donada en aplicacions de memria massiva, on s necessari emprar diversos xips de memria per
assolir la capacitat requerida. En aquest cas, les organitzacions amb un sol bit de dades sn preferibles
ja que donen lloc a mduls menys compactes.

Un cas ms extrem en lestalvi de pins dencapsulat en memries s el de les DRAM. En aquest tipus
de memries les lnies d'adrea es multiplexen, la qual cosa redueix molt el nombre de lnies
dencapsulat. Les adreces es divideixen en dues parts: selecci de fila i selecci de columna. Cada
lnia dadrea t assignat un bit de fila i un de columna. Linconvenient del sistema s que es complica

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 115

la interfcie amb el bus dadreces. Aquesta particularitat es tractar ms en detall a l'apartat 4.7,
dedicat a les memries dinmiques.

4.6 Descodificaci

En sistemes P/C convencionals, el master realitza els cicles de lectura/escriptura amb un nic slave,
que pot ser un mdul de memria o un dispositiu d'entrada/sortida (E/S). La resta de slaves han destar
inactius, i aix saconsegueix activant noms la lnia de CE* (recordeu lapartat 4.1 sobre el model de
slave) del que es vol seleccionar. Un cop seleccionat el slave mitjanant una descodificaci externa,
daltres lnies dadreces, normalment les de pes ms baix, sn descodificades internament pel slave per
tal de seleccionar una de les posicions que cont (vegeu fig. 4.12).

SLAVE
0
DESCODI- 1
FICACI
EXTERNA

2j-1
CE*
An-1..An-k
DESCODIFICACI
k
INTERNA

Aj-1..A0

Fig. 4.12 Descodificacions interna i externa per tal de seleccionar una posici, donat un codi de les lnies
dadrea.

Quan accedeixen al bus per realitzar operacions de lectura o escriptura, els microprocessadors (i
microcontroladors) no distingeixen per si mateixos entre slaves. En general, ni tan sols coneixen si es
dirigeixen a memria o E/S, i menys encara si la memria s voltil o no voltil, etc. Simplement
presenten una combinaci binria en el bus d'adreces, i esperen accedir (fent una lectura o una
escriptura) a la posici que indica la combinaci. Que a partir d'aquest codi se seleccioni el slave
correcte s una tasca que ha de resoldre el dissenyador del sistema.

La descodificaci es pot definir com el procs de selecci del slave corresponent a cada codi
d'adreces. En general, per descodificaci sentn la descodificaci externa, ja que la interna se suposa
realitzada pel slave.

los autores, 1998; Edicions UPC, 1998.


116 Disseny de sistemes digitals amb microprocessadors

4.6.1 Disseny de la descodificaci

El procediment per realitzar aquesta tasca s el segent:

a) En primer lloc, cal conixer l'espai de posicions lgiques que el microprocessador pot adrear i la
quantitat de posicions que ocupa cadascun dels slaves que es volen connectar al sistema.

b) Tot seguit, es decideix quines posicions de l'espai d'adreces del microprocessador es vol que cada
slave ocupi. Aix s'anomena construir el mapa de memria (i d'E/S). Per simplicitat de hardware i de
software, gaireb sempre se situen totes les posicions de cada slave en posicions contiges de l'espai
d'adreces del microprocessador. A ms, s preferible que cada slave ocupi blocs de memria situats en
zones determinades per simplificar la descodificaci, tal com veurem ms endavant.

c) Mitjanant l's de descodificadors, es divideix l'espai de posicions del microprocessador en blocs de


memria, i s'associen els blocs als slaves corresponents. Es combinen les lnies de sortida dels
descodificadors que corresponen a blocs d'un mateix slave de forma que quan s'activi alguna
d'aquestes lnies, l'entrada de CE* del slave que correspongui quedi validada.

Exemple 4.3

Desenvolupem aquest procediment amb un exemple, considerant un microprocessador


amb 16 lnies d'adreces a ttol d'exemple. El nombre de lnies de dades no s important,
ja que se suposa que cada posici cont tants bits com lnies t aquest bus.

0000
0000 EPROM
1FFF
2000
0001 3FFF
4000
0002
RAM
BFFF

E000
E/S 1
E3FF
E400
E/S 2
E7FF

.
.
.
FFFD F800

FFFE E/S 7 FBFF


FC00
FFFF E/S 8
FFFF

a) b)

Fig. 4.13 a) Espai d'adreament d'un P de 16 lnies d'adrea. b) Mapa de memria d'un
possible sistema desenvolupat sobre aquest P. La grandria de cada zona no s proporcional al
nombre de posicions.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 117

a) Clcul de l'espai de posicions. Les combinacions binries que poden prendre les
lnies d'adrea sn 216 = 65.536 o 64 k posicions, en termes informtics. A la figura
4.13a es mostren simblicament les posicions de memria adreables ordenades des de
la posici amb tots els bits d'adrea a 0 (A15..A0 = 000016 = 0000 0000 0000 00002) fins
a tots els bits a 1 (A15..A0 = FFFF16 =1111 1111 1111 11112).

Sobre les 65.536 posicions que aquest microprocessador pot adrear directament es pot
combinar memria de diversos tipus i perifrics d'E/S ordenats de la forma ms adient
per a l'aplicaci del sistema.

b) Mapa de memria. S'anomena mapa de memria l'especificaci de les posicions de


les adreces del microprocessador que ocupa cadascun dels slaves del sistema. Un
exemple es mostra a la figura 4.13b, on s'especifiquen les adreces inicial i final de
cadascun dels slaves connectats a un possible sistema basat en el microprocessador de
16 lnies d'adrea. Per compactar l'escriptura, se sol emprar el codi hexadecimal, en el
qual cada dgit es correspon amb 4 bits. En endavant s'emprar aquesta codificaci
llevat que s'indiqui el contrari.

El primer element d'aquest sistema s memria EPROM, que ocupa les posicions
0000~1FFF, s a dir, 200016 posicions. Com que

200016 = 21 24 24 24 = 213 = 8 k posicions,

cal un xip o un mdul de memria EPROM de 8 k d, on d s el nombre de bits de


dades del P, i el nombre de lnies d'adreces que ha de tenir la memria EPROM s 13.

Tipus de Adrea inicial Adrea final Nombre de Lnies Nombre de


slave (hex) (hex) posicions (hex) d'adrea posicions (k)
EPROM 0000 1FFF 2000 13 8
- 2000 3FFF 2000 (13) (8)
RAM 4000 BFFF 8000 15 32
- C000 DFFF 2000 (13) (8)
E/S E000 E3FF 400 10 1
E/S E400 E7FF 400 10 1
E/S E800 EBFF 400 10 1
E/S EC00 EFFF 400 10 1
E/S F000 F3FF 400 10 1
E/S F400 F7FF 400 10 1
E/S F800 FBFF 400 10 1
E/S FC00 FFFF 400 10 1

Taula 4.1 Lnies d'adrea i posicions ocupades per cada element del mapa

los autores, 1998; Edicions UPC, 1998.


118 Disseny de sistemes digitals amb microprocessadors

L'espai que segueix, 2000~3FFF, s un espai no ocupat fsicament. La lectura del P en


aquest espai dna valors imprevisibles, i les dades que hi escrigui no queden
emmagatzemades enlloc. Malgrat aix, s interessant disposar d'espais d'adreament
lliures ja que ampliacions eventuals de memria o nous dispositius d'E/S shi poden
situar.

La taula 4.1 mostra dades significatives del mapa.

c) Sntesi dels descodificadors. Un cop estan assignats els espais de memria, es pot
dissenyar el circuit de descodificaci. Un dels descodificadors ms emprats per a
aquesta tasca s el '138, que est representat a la figura 4.14. s un descodificador 3 a 8
amb sortides negades: la sortida corresponent al codi d'entrada es posa a nivell baix. La
ra d'usar lgica negativa s que, en general, les entrades de Chip Enable (CE*) dels
slaves sn actives per nivell baix. Aquest circuit disposa, a ms, de 3 entrades denable,
una dactiva a nivell alt i dues dactives a nivell baix. Per tal que alguna de les sortides
es pugui activar cal que els tres senyals d'enable estiguin activats. La taula de veritat
completa del descodificador '138 apareix a la taula 4.2.

O0
I0
O1
I1
O2
I2
O3
138 O4
E1 O5
E2 O6
E3 O7

Fig. 4.14 Descodificador '138

Si es descodifiquen les tres lnies d'adreces de pes ms alt, A15, A14 i A13, el mapa de
memria queda fragmentat en 8 blocs, cadascun de 8 k posicions, corresponents a cada
codi, tal com es veu a la figura 4.15a. Es pot observar que la memria EPROM ha
quedat situada al bloc 0, mentre que la memria RAM ocupa els blocs 2, 3, 4 i 5. Per
tant, el senyal CE* de la memria EPROM es connectar directament a la sortida O0 del
descodificador, mentre que el CE* de la memria RAM ha de poder ser activat per O2,
O3, O4 i O5 i, per tant, es connecta a una porta AND de 4 entrades controlades pels
senyals indicats. Aix es pot veure a la figura 4.15b.

La lnia AS* (Address Strobe) o equivalent se sol connectar a una entrada d'enable de
forma que es garanteix que noms quan aquest senyal que valida el codi que apareix al
bus d'adreces estigui actiu (a nivell baix) es pot activar un senyal de CE*. Aix s'evita

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 119

l'accionament involuntari de senyals de CE* durant les transicions de les lnies d'adrea,
ja que AS* est desactivat quan el codi d'adreces no s vlid.

E1 E2 E3 I2 I1 I0 O7 O6 O5 O4 O3 O2 O1 O0

0 X X X X X 1 1 1 1 1 1 1 1

X 1 X X X X 1 1 1 1 1 1 1 1

X X 1 X X X 1 1 1 1 1 1 1 1

1 0 0 0 0 0 1 1 1 1 1 1 1 0

1 0 0 0 0 1 1 1 1 1 1 1 0 1

1 0 0 0 1 0 1 1 1 1 1 0 1 1

1 0 0 0 1 1 1 1 1 1 0 1 1 1

1 0 0 1 0 0 1 1 1 0 1 1 1 1

1 0 0 1 0 1 1 1 0 1 1 1 1 1

1 0 0 1 1 0 1 0 1 1 1 1 1 1

1 0 0 1 1 1 0 1 1 1 1 1 1 1

Taula 4.2 Taula de veritat del descodificador '138

Respecte a les lnies d'adrea, es connecten les 13 lnies de pes baix (A12..A0) del P a
les lnies d'adrea de la memria EPROM i les 15 lnies A14..A0 a la memria RAM.

A15 A14A13
O0 CEEPROM*
0 0 0 EPROM BLOC 0 A13 I0
O1
0 0 1 - BLOC 1 A14 I1
O2
0 1 0 RAM BLOC 2 A15 I2
O3
0 1 1 RAM BLOC 3 CERAM*
138 O4
1 0 0 RAM BLOC 4
1 E1 O5
1 0 1 RAM BLOC 5
AS* E2 O6
1 1 0 - BLOC 6
0 E3 O7 CEE/S*
1 1 1 E/S BLOC 7

(a) (b)

Fig. 4.15 a) Divisi de l'espai d'adreces amb 8 blocs de 8 k posicions. b) Generaci dels senyals de CE*

los autores, 1998; Edicions UPC, 1998.


120 Disseny de sistemes digitals amb microprocessadors

Els dispositius d'E/S es troben tots dins el bloc 7 de la figura 4.15a. Cal una
descodificaci de tres lnies d'adrea ms per distingir blocs d'1 k posicions. Aix es fa a
la figura 4.16a, mentre que la figura 4.16b mostra el nou descodificador que est
controlat en una entrada d'enable per la sortida O7 del descodificador de la figura 4.15b.
s interessant observar que en aquest segon descodificador no cal connectar el senyal
AS*, ja que aquest senyal actua indirectament a travs de CEE/S*.

A12 A11A10
O0 CEE/S1*
0 0 0 E/S 1 BLOC 0 A10 I0
O1 CEE/S2*
0 0 1 E/S 2 BLOC 1 A11 I1
O2 CEE/S3*
0 1 0 E/S 3 BLOC 2 A12 I2
O3 CEE/S4*
0 1 1 E/S 4 BLOC 3
138 O4 CEE/S5*
1 0 0 E/S 5 BLOC 4
1 E1 O5 CEE/S6*
1 0 1 E/S 6 BLOC 5
CEE/S* E2 O6 CEE/S7*
1 1 0 E/S 7 BLOC 6
0 E3 O7 CEE/S8*
1 1 1 E/S 8 BLOC 7

(a) (b)

Fig. 4.16 a) Divisi del bloc 8 de la figura 4.15a en 8 blocs d'1 k posicions. b) Generaci dels
senyals de CE* dels dispositius d'E/S.

Lexemple mostra el procediment per realitzar la descodificaci dels slaves d'un sistema. Per queden
una srie de qestions pendents com ara:

Qu succeeix quan algunes lnies d'adreces no es descodifiquen?


Quin ha de ser l'ordre de les lnies d'adrea en la descodificaci?
Per qu usar descodificadors i no altres tipus de lgica combinacional?
Els dispositius d'E/S es tracten sempre igual que la memria?

Els apartats segents tracten aquestes qestions.

4.6.2 Descodificaci incompleta i zones imatge

Lexemple segent es basa en lanterior (exemple 4.3) i permet illustrar la creaci de zones imatge en
les descodificacions incompletes. Desprs de lexemple, es defineixen aquests conceptes.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 121

Exemple 4.4

Simplificant l'exemple 4.3, ara considerem nicament la descodificaci de la memria


EPROM, que t 13 lnies d'adrea (8 k posicions), sobre un espai de 64 k posicions (P
amb 16 lnies d'adrea).

Partint de la hiptesi que les 13 lnies d'adrea del bus de pes ms baix (A12..A0)
s'utilitzen per connectar-se a les entrades d'adrea de la memria EPROM, la qual cosa
es justifica ms endavant, resten noms les lnies A15, A14 i A13 per fer servir en la
descodificaci. Aquestes tres lnies divideixen l'espai del P, tal com s'ha vist, en 8
blocs de 8 k posicions cadascun.

Considerem les possibilitats segents de connexi del senyal de CE* de la memria


(Fig. 4.17):

a) Connexi a la sortida O0 de la descodificaci de A15, A14, A13 (s a dir, el cas


anterior)
b) Connexi a 0 lgic
c) Connexi a la lnia A15
d) Connexi a la lnia A14
e) Connexi a la lnia A13
f) Connexi a una funci or lgica entre A15 i A13
g) Connexi a una funci or lgica entre A15 i A14

EPROM EPROM EPROM EPROM

O0 CE* 0 CE* A15 CE* A14 CE*


A13
A14
A15 (a) (b) (c) (d)

EPROM EPROM EPROM


A15 A15
A13 CE* CE* CE*
A13 A14

(e) (f) (g)

Fig. 4.17 Algunes possibilitats de connexi de les lnies d'adrea A15, A14 i A13 al senyal CE*

Es pot veure que, en tots aquests casos, quan A15 A14 A13 = 0 0 0, el senyal CE* = 0
(EPROM activada). s a dir, la memria EPROM queda situada correctament en el bloc
0 de l'espai d'adreces. Per llevat del cas a, en qu CE* noms s'activa per al bloc 0, en
els altres casos tamb s'activa per a d'altres combinacions de A15 A14 A13 (Fig. 4.18).

los autores, 1998; Edicions UPC, 1998.


122 Disseny de sistemes digitals amb microprocessadors

A15A14A13
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 0 0 1
2 2 2 2 2 2 2 0 1 0
3 3 3 3 3 3 3 0 1 1
4 4 4 4 4 4 4 1 0 0
5 5 5 5 5 5 5 1 0 1
6 6 6 6 6 6 6 1 1 0
7 7 7 7 7 7 7 1 1 1
(a) (b) (c) (d) (e) (f) (g)

Fig. 4.18 Mapes de memria resultants de les connexions de la figura 4.17. Els blocs ratllats
indiquen que estan ocupats per memria EPROM. Els que queden en blanc estan buits.

En el cas b, la lnia CE* es fixa a zero lgic i, per tant, la memria EPROM queda
sempre seleccionada. Aix es reflecteix a la figura 4.18b, on les 64 k posicions queden
completament ocupades per la memria EPROM. Que hi hagi 8 blocs ocupats ara no
significa que la memria s'hagi multiplicat per 8 (si fos aix, seria una forma barata
d'ampliar la memria!), sin que cada posici fsica de memria s accessible a travs
de vuit adreces diferents del bus. Concretament, la posici fsica de la memria
codificada per les 13 lnies d'adrea de pes baix (A13..A0) s sempre la mateixa si no es
canvien aquestes lnies, independentment del codi que prenguin les lnies A15 A14 A13.
Per exemple, la mateixa posici fsica nmero 102510 de la memria (que correspon a
l'adrea 400 hexadecimal) s accessible a travs de les adreces segents: 0400, 2400,
4400, 6400, 8400, A400, C400 i E400. L'inconvenient principal de fixar a 0 el senyal
CE* de la memria EPROM s que queda sempre activada (ocupa tot el mapa de
memria), i no es pot connectar cap ms slave al sistema sense que hi hagi conflicte de
bus.

En el cas c, la lnia A15 es connecta directament a CE*. Per tant, CE* s'activa quan A15
= 0. Ara la memria ocupa els blocs 0, 1, 2 i 3 (Fig. 4.18c). Es pot accedir a una mateixa
posici fsica amb 4 adreces i no amb 8, perqu l'accs s el mateix noms per a
combinacions dels dos senyals A14 i A13 (quan A15 = 1 la memria no se selecciona).

Els casos d i e sn semblants a l'anterior, per canviant el paper de les lnies. Es pot
observar a la figura 4.18d i 4.18e que a mesura que la lnia que es connecta a CE* s
menys significativa, ms fragmentat queda el mapa. Aix, en el cas c, els quatre blocs
ocupats eren contigus, en el cas d, hi ha dos parells de blocs contigus i en el cas e , els
quatre blocs ocupats s'intercalen amb blocs desocupats.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 123

En el cas f, noms s'activa CE* quan A15 = A13 = 0. Per tant, noms es pot accedir a
una mateixa posici fsica amb dues adreces diferents: l'adrea A12..A0 quan A14 = 0 i
quan A14 = 1, ja que ara A15 i A13 han de valer 0, altrament la memria no se
selecciona. Aix es reflecteix a la figura 4.18f, on es veuen els blocs 0 i 2 ocupats, que
corresponen a A15 = A13 = 0 (i A14 = X).

El cas g s anleg a l'anterior, per amb A15 = A14 = 0 per activar CE*. Al contrari que
en el cas anterior, ara els blocs ocupats sn contigus (Fig. 4.18g).

De l'estudi i la generalitzaci d'aquests casos es poden definir els conceptes de descodificaci


incompleta i zones imatge i calcular-ne el nombre.

Quan una mateixa posici fsica de memria (o d'un perifric) s accessible amb adreces diferents, es
diu que la descodificaci s incompleta.

L'accs per diverses adreces s degut al fet que alguna de les lnies d'adrea no interv ni en la selecci
del slave ni en la selecci de les posicions internes del slave. Llavors, independentment dels valors que
prenguin aquelles lnies, s'accedeix a la mateixa posici fsica, tot i que l'adrea lgica (la que genera
el P) pot ser diferent.

Sanomenen zones imatge les zones que apareixen repetides (inclosa loriginal) en un mapa de
memria quan la descodificaci s incompleta. El seu nombre es calcula de la forma segent:

Z = 2(n - j - k) (4.1)

on n s el nombre de lnies del bus d'adrea, j s el nombre de lnies que el slave empra per
descodificar internament les seves posicions, i k s el nombre de lnies que intervenen en la
descodificaci externa per activar el senyal de CE* del slave (vegeu fig. 4.12). Ats que tant j com k
poden ser variables per a cada slave (fins i tot n pot variar si existeixen mapes de memria i d'E/S,
com es veur ms endavant), el nombre de zones imatge tamb pot ser diferent depenent del slave.

Retornant a l'exemple 4.4, on n = 16, j = 13, el valor de Z es mostra per a cada cas a la taula 4.3. En el
cas a, la descodificaci s completa ja que Z = 1 (noms hi ha una zona, s a dir, un sol codi per
accedir a una posici). En el cas b, Z = 8, hi ha vuit zones imatge, etc.

Cas a b c d e f g
k= 3 0 1 1 1 2 2
Z= 1 8 4 4 4 2 2

Taula 4.3 Nombre de lnies descodificades externament (k) i de zones imatge (Z) per a lexemple 4.4

Les descodificacions incompletes tenen lavantatge, respecte a les completes, que la lgica de
descodificaci pot ser ms reduda i, en conseqncia, ms rpida. Linconvenient s que es

los autores, 1998; Edicions UPC, 1998.


124 Disseny de sistemes digitals amb microprocessadors

desaprofita capacitat dadreament. Si aix s crtic o no, cal avaluar-ho segons els requeriments del
sistema, i no hi ha una regla general per decidir el tipus de descodificaci.

s molt usual que les memries del sistema tinguin una descodificaci completa i, en canvi, que els
dispositius dE/S no la tinguin. La ra s que els dispositius dE/S solen ocupar molt poques posicions
de memria i, per tant, cal descodificar externament moltes ms lnies que per a la memria. Una
soluci que se sol adoptar per reduir hardware s descodificar les lnies dadreces suficients per fer
que els blocs ocupin un espai prou ajustat perqu hi cpiga la memria (tenint en compte futures
ampliacions, etc.), i deixar la resta de lnies sense descodificar.

4.6.3 Criteris de descodificaci sistemtica

Tot seguit es donen indicacions generals de com caldria connectar les lnies dadreces per optimitzar
la descodificaci. Lgicament, segons el cas particular, pot ser aconsellable canviar algun daquests
criteris.

Considerem els mapes de memria els casos c, d i e de lexemple 4.4 (Fig. 4.18c, 4.18d i 4.18e),
obtinguts de descodificar una sola lnia dadreces, A15, A14 i A13, respectivament. Es pot veure que la
descodificaci de les lnies de pes ms baix porta a una fragmentaci major del mapa de memria (el
cas extrem es presentaria en la lnia A0, que divideix el mapa de memria en posicions parelles i
senars).

Com que normalment interessa que les posicions de memria que ocupen els slaves siguin contiges,
les lnies dadrea de pes ms baix es connecten a les entrades dadrea dels slaves.

Les lnies sobrants es connecten al descodificador si la descodificaci s completa. Si s incompleta,


s recomanable descodificar les lnies de major pes, i deixar sense descodificar les lnies intermdies.
La ra s tamb no fragmentar el mapa de memria. La justificaci es pot deduir a partir de
lobservaci dels casos f i g de lexemple 4.4.

Finalment, les lnies que prenen un valor constant per a tota la descodificaci es poden portar a una
entrada denable del descodificador, mentre que les lnies que prenen valors variables segons els
slaves que se seleccionen han de connectar-se a entrades del descodificador.

4.6.4 Implementaci de la descodificaci

Com sha vist anteriorment, el descodificador s lelement lgic natural per realitzar la descodificaci
dels slaves. Ats que la descodificaci s una funci combinacional, existeixen alternatives de
realitzaci que poden ser tils segons laplicaci.

El descodificador genera una sortida denable per a cada bloc en qu es divideix el mapa de memria,
per si noms cal descodificar un slave o pocs, la realitzaci amb portes lgiques podria ser ms
eficient.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 125

Una altra possibilitat s la descodificaci programable. Per mitj duns interruptors es pot programar
el codi dadreces que selecciona el slave. La descodificaci programable s til per poder modificar
ladrea dun slave que safegeix al sistema i que podria interferir amb un altre si tingus una adrea
fixa.

A la figura 4.19 es mostra una realitzaci de 4 lnies que fa servir un comparador lgic. El slave s
seleccionat quan el codi de les lnies dadrea (entrada A) coincideix amb el codi 1011 (entrada B)
fixat pels interruptors. Es pot veure que si els interruptors estan oberts, les resistncies de pull-up
mantenen el valor lgic de la lnia a 1, mentre que els interruptors tancats fixen el valor lgic a 0.

Lnies dadrea { A

COMPA-
1 RADOR A=B CE*
+
+ B
0
1
+ 1

Fig. 4.19 Descodificador programable

4.6.5 Mapes dentrada/sortida

Un nombre important de P disposa duna lnia de tipus M/IO* (vegeu el model de master) que indica
si laccs que realitza s a la memria o a E/S. s el cas de molts P dIntel, Zilog, etc. En aquest cas,
es diu que el microprocessador t mapes separats de memria i dE/S. Les instruccions daccs a la
memria i a E/S sn diferents (cosa que no succeeix en els P de mapa nic, com per exemple
lMC68000) i cal fer la descodificaci per separat. A la figura 4.20 es mostra com el senyal M/IO*
habilita noms una de les dues descodificacions segons si laccs s al mapa de memria o al mapa
dE/S.

los autores, 1998; Edicions UPC, 1998.


126 Disseny de sistemes digitals amb microprocessadors

CS M1
CS M2
CS M3
ADRECES

CS Mn
AS*
M/IO*
CS ES1
CS ES2
CS ES3

CS ESn

Fig. 4.20 Descodificaci amb mapa de memria i mapa dE/S independents

En els P amb mapes de memria i dE/S separats es defineixen instruccions de lectura i descriptura
diferents segons si laccs s al mapa de memria o si s al dE/S. Les daccs a la memria sn del
tipus LD, MOV, etc., mentre que la lectura i lescriptura a lE/S solen ser els mnemnics IN i OUT,
respectivament. Quan la CPU descodifica la instrucci, segons el codi dna el valor lgic que
correspon a la lnia M/IO*.

Normalment el mapa dE/S sol ser ms redut que el de memria, ja que no s necessria tanta
capacitat dadreament. Aix, per exemple, en el mapa dE/S del P Z80, que t 16 lnies dadrea,
noms es fan servir les 8 lnies de menor pes, de forma que la capacitat dadreament de memria s
de 216 = 64 k posicions, mentre que la capacitat dadreament dE/S s de 28 = 256 posicions.

s important indicar que quan existeix una lnia especfica que distingeix la memria de lE/S, no s
imprescindible situar tots els dispositius dE/S al seu espai. En alguns casos, pot ser necessari o
convenient situar dispositius dE/S a la zona de memria. Aix es pot fer tenint en compte que els
accessos del P sn com si fos memria, s a dir, usant les instruccions daccs a la memria i no a
E/S, i amb la temporitzaci dels accessos a la memria.

Al captol 5 es veur amb detall que, des del punt de vista del microprocessador, s'accedeix als
dispositius d'E/S de forma anloga a les memries. La diferncia ms gran s que les memries
ocupen, en general, un espai d'adreces molt major.

4.7 Aspectes de temporitzaci

En general, la interfcie de les memries sajusta molt al model de slave, cosa que permet la seva
connexi a sistemes P d'una forma molt senzilla. La descodificaci, necessria per activar el senyal
de CE*, s'ha tractat amb detall a l'apartat anterior, mentre que la generaci dels senyals WE* i OE* en
general s immediata. A la figura 4.21 es mostra com, a partir dels senyals de DS* i RD/WR* del

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 127

master, es poden generar aquests dos senyals. Lgicament, les operacions de lectura i descriptura
s'han de produir quan s'activa el senyal DS*, i depenent de la lnia RD/WR* s'activa OE* o b WE*.
Segons els senyals del P comercial concret aquestes connexions poden variar lleugerament, per en
essncia han de ser similars.

DS*
OE*
RD/WR* SLAVE
WE*

Del descodificador CE*

Fig. 4.21 Generaci dels senyals WE* i OE* d'un slave

En aquest apartat es considera un altre aspecte de disseny molt important. Un cop garantit el
funcionament lgic del sistema, cal comprovar que la resposta del slave a les operacions que el P
sollicita sigui prou rpida perqu el sistema funcioni correctament.

S'ha vist al captol 3 que el P executa uns cicles mquina de lectura i d'escriptura que depenen
exclusivament de l'arquitectura interna i la tecnologia del P. El fabricant del P especifica com sn
aquests cicles i tamb quina ha de ser la freqncia de rellotge per a cada versi del P. Es poden
veure com a exemple els cronogrames de l'apndix A que corresponen a cicles de lectura i d'escriptura
del P MC68000. Es pot observar que els temps mnims i mxims entre senyals estan perfectament
especificats. Tenint en compte que en la gran majoria de casos els circuits de memria sn de
fabricants diferents als del P, s molt important garantir que les memries que es connecten al
sistema respondran en un temps suficient a la velocitat del P. s per aix que els fabricants de
memries en faciliten les especificacions temporals.

La tasca del dissenyador consisteix a verificar que les especificacions de les memries sn compatibles
amb les del P i, en cas contrari, resoldre el conflicte aplicant-hi alguna de les solucions segents:
substituir el tipus de memria per un de major velocitat, realitzar una estratgia de generaci d'estats
de wait o, fins i tot, si les especificacions del sistema ho permeten, reduir la freqncia del rellotge del
sistema.

La temporitzaci de les memries sol ser, en general, ms crtica que la daltres slaves ja que les
descodificacions sn molt ms complexes ats el nombre massiu de posicions que contenen. A ms,
cal afegir el retard introdut pels amplificadors sensors. Per aix, lanomenat temps daccs (temps de
resposta) de les memries s un dels factors ms limitadors de la velocitat del sistema.

los autores, 1998; Edicions UPC, 1998.


128 Disseny de sistemes digitals amb microprocessadors

4.7.1 Conceptes: temps daccs

La figura 4.22 mostra un diagrama simplificat, similar als que faciliten els fabricants de memries als
catlegs (data sheets), que corresponen a loperaci de lectura duna memria de tipus SRAM o ROM.
Linstant t0 correspon a laparici en el bus dadreces del codi dadrea correcta a la qual es vol
accedir. A t1 i t2 sactiven els senyals CE* i OE*, respectivament, i desprs dun temps de retard degut
principalment a la descodificaci i als amplificadors sensors, la dada apareix en el bus.

Es poden observar tres temps de retard que corresponen al temps que triga la dada a sortir respecte a
lactivaci de cada senyal dentrada. Aquests temps sn valors mxims, s a dir, la dada apareix en el
bus, com a molt tard, un temps tACC desprs que el codi dadreces estigui present en aquelles lnies, o
tACE desprs de CE* o tAOE desprs dOE*. Lgicament, dels tres temps, el ms restrictiu s el que
determina la sortida de la dada, el qual es calcula com el mxim de tACC, tACE+ (t1 - t0) i tAOE + (t2 - t0).

De fet, normalment el temps ms crtic s tACC, ja que la descodificaci es realitza sobre les lnies
dadrea. Aquest temps se sol anomenar temps daccs, tot i que no hi ha un acord unnime, ja que de
vegades tamb s anomenat aix el temps tACE. Per aix, s preferible comprovar sobre les definicions
o cronogrames del catleg amb quins daquests temps es correspon.

tACC

ADREA ADREA VLIDA

tACE

CE*

tAOE

OE*

DADES OUT
t0 t1 t2 t3

Fig. 4.22 Definicions de temps daccs duna memria (lectura)

De la mateixa forma, els fabricants faciliten tamb els cronogrames amb les dades de retards per a
loperaci descriptura. Sen pot veure un exemple simplificat a la figura 4.23. A lapndix C hi ha
exemples de cronogrames complets de lectura i descriptura.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 129

tACC

ADREA ADREA VLIDA

tACE

CE*

tAWE

WE*

DADES IN
t0 t1 t2 t3

Fig. 4.23 Cronograma simplificat descriptura duna memria

4.7.2 Clculs de compatibilitat temporal

Per realitzar els clculs de compatibilitat temporal entre un P i una memria es considerar el
cronograma simplificat de la figura 4.24, que correspon a un cicle de lectura genric dun P amb la
interfcie tpica del model de master. Els temps que es defineixen en aquest cicle de lectura han de ser
compatibles amb els retards que la memria introdueix en un cicle de lectura, que estan definits a la
figura 4.22, com sha vist a lapartat anterior.

A la figura sobserva la codificaci de ladrea vlida en el bus dadreces i lactivaci dels senyals del
bus de control (AS*, DS* i R/W*). Els temps en qu aix succeeix sn, respectivament, tA, tAS, tDS i
tRW, i estan referits a un origen de temps, t = 0, arbitrari. Tamb est referit a aquest origen de temps
linstant tC, en qu el P captura la dada. Finalment, s imprescindible que la dada estigui present en el
bus com a mnim un temps de setup, tS, abans de linstant de captura. En cas que no es compleixi
aquest temps de setup, s a dir, si la dada no est present en el bus abans de linstant tC - tS, el fabricant
no garanteix el funcionament correcte del P. Per tant, cal assegurar que la memria respongui en
aquest temps.

Per no noms cal tenir en compte els temps i els retards del P i la memria, sin que, a ms, en
qualsevol sistema cal introduir entre aquests dos elements circuits de lgica i dinterfcie elctrica, que
afegeixen, per la seva part, retards addicionals. Encara ms, en cas dutilitzar lnies dinterconnexi
llargues o en freqncies de treball elevades, cal tenir en compte els retards de propagaci dels senyals
introduts per les lnies dinterconnexi. Aquests darrers retards no es consideren en lestudi que
segueix, per la seva influncia es pot incorporar fcilment un cop coneguts els retards que les
interconnexions introdueixen.

los autores, 1998; Edicions UPC, 1998.


130 Disseny de sistemes digitals amb microprocessadors

BUS DADRECES ADREA VLIDA

AS*

DS*

R/W*

BUS DE DADES DADA


t=0 t RW t A tAS t DS
tS
tC

Fig. 4.24 Cronograma simplificat dun cicle de lectura del P

A la figura 4.25 es mostra de forma simblica la connexi entre el P i la memria o, de forma ms


genrica, entre un master i un slave. Es poden observar, entre el P i la memria, els elements
dinterconnexi segents:

Elements dinterfcie elctrica:


1. Buffers connectats al bus dadreces i a les lnies del bus de control. El seu retard s DB.
2. Transceivers o buffers bidireccionals connectats al bus de dades). Retard DT.
Elements dinterfcie lgica:
3. Portes de generaci dOE* i WE*. Retard DL.
4. Lgica de descodificaci. Retard DD.

Els temps dactivaci de cada lnia, definits al cronograma de la figura 4.24, apareixen en els terminals
del P, mentre que en els terminals de la memria sindiquen els temps definits al cronograma de
lectura de la figura 4.22.

Amb aquesta informaci es poden calcular els requeriments temporals dels retards dinterconnexions i
de memria per tal que el P capturi correctament la dada en linstant tC.
En primer lloc, per llegir la dada correctament cal que estigui present en terminals del bus de dades del
P, com a mxim, a linstant de captura menys el temps de setup. s a dir, la memria ha de treure la
dada, com a mxim, en aquest instant menys el temps de retard dels transceivers:

tC tS t3 + DT , (4.2)

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 131

mentre que linstant en qu la dada apareix en lnies de la memria s el pitjor cas de la suma dels
temps de propagaci a travs de la memria i els instants dactivaci de les seves lnies dentrada:

t3 = max(t0 + t ACC , t1 + t ACE , t2 + t AOE ) , (4.3)

amb

t0 = t A + DB
t1 = max(t AS + DB + DD , t A + DB + DD ) (4.4)
t2 = max(tDS + DB + DL , t RW + DB + DL )

Si desprs de substituir aquestes expressions pels valors numrics dels catlegs es compleix la
inequaci (4.2), el sistema funcionar correctament. Altrament caldr realitzar alguna modificaci en
el disseny.

DT
tC
BUS t3
DADES
DE DADES
tRW t2
R/W* OE* (tAOE)
DS* WE*
tDS DB DL
P AS* tAS DB

(Master) (Slave)
t1
CE* (tACE)
DD
BUS tA t0
ADRECES (tACC)
DADRECES DB

Fig. 4.25 Connexi duna memria (o slave) a un P (o master)

En cas que no es compleixin els requeriments temporals a causa de retards dinterconnexions i de


memria majors que els retards mxims, es pot pensar en diverses solucions:

Si la diferncia de retards s petita, es pot pensar a redissenyar la lgica dinterconnexi per fer
que no se superin els retards mxims. En cas que aix no sigui possible, hi ha dues alternatives
ms:
Substituir les memries per daltres ms rpides, la qual cosa augmenta el cost del sistema.

los autores, 1998; Edicions UPC, 1998.


132 Disseny de sistemes digitals amb microprocessadors

Inserir els estats de wait necessaris en el cicle de lectura (i en el descriptura tamb, si cal) fins
que es compleixin les especificacions temporals. Aix redueix la velocitat del sistema quan
saccedeix a la(es) memria(es) lenta(es), per no en tots els accessos, ja que els estats de wait
noms shauran de generar quan saccedeixi a la(es) memria(es) lenta(es). Aix ho pot
detectar el hardware a partir dels senyals de CE* que genera la descodificaci. Exemples de
generaci destats de wait fixos i programables es presenten en els casos destudi del captol 6.
Una ltima alternativa, poc aconsellable en general, s disminuir la freqncia de rellotge del
sistema, ja que en aquest cas tots els accessos salenteixen mentre que la soluci anterior noms
redueix la velocitat daccs de forma selectiva.

Lanlisi temporal sha realitzat per al cas del cicle de lectura, que s ms restrictiu que el descriptura.
Malgrat aix, conv tamb fer aquesta altra anlisi, en especial si cal inserir cicles de wait, ja que de
vegades es podria generar un cicle de wait nicament per a la lectura. Lanlisi per al cicle descriptura
es pot fer de forma anloga al de lectura i es deixa com a exercici per al lector.

4.8 Memries DRAM

Les memries RAM dinmiques presenten una srie de caracterstiques particulars que les fan objecte
dun estudi individualitzat. El fet que necessitin un refresc peridic per mantenir ntegra la informaci
que contenen fa necessria una estratgia de refresc, que normalment es realitza emprant un circuit
controlador de refresc. Tal com sha indicat anteriorment, ls de memries DRAM es justifica per
raons de cost en aplicacions que requereixen una quantitat de memria elevada. Precisament per raons
econmiques, els encapsulats de les memries DRAM es redueixen multiplexant les lnies dadrea.
Aix a la vegada complica la interfcie de la memra amb el sistema, per ats que cal emprar un
controlador de refresc, aquest circuit tamb es pot encarregar de proporcionar la lgica dinterfcie
necessria.

La figura 4.26 representa a grans trets lestructura interna duna DRAM i la seva interfcie externa. Es
pot observar que les mateixes lnies dadrea es fan servir per descodificar les files i les columnes. De
forma seqencial, cal introduir dins la memria primer el codi de fila i desprs el de columna per
especificar una adrea completa. Aquests codis semmagatzemen en registres latch perqu no es perdi
la informaci. Les lnies RAS* (Row Address Select) i CAS* (Column Address Select) permeten a la
memria distingir quan el codi dadrea correspon a una fila o a una columna. Lactivaci daquestes
lnies suposa implcitament una selecci del xip i, per tant, la lnia de CS* no apareix. Lactivaci de
WE* (Write Enable) indica escriptura, altrament es realitza una lectura. Finalment, hi ha una lnia
dentrada i una de sortida de dades independents, en lloc dun bus bidireccional ms un senyal dOE*
(Output Enable) com s usual en altres slaves.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 133

CAS* WE*

Latch

CONTROL
Descodificador

Amplif. sensors

BUFFER DE
DO
Descodificador

SORTIDA
Celles de
Latch

ADRECES CONTROL
memria
E/S
BUFFER D DIN
ENTRADA
RAS*

Fig. 4.26 Estructura interna i interfcie duna memria DRAM

4.8.1 Encapsulat

La figura 4.27 mostra dos encapsulats de memries DRAM de 16 Mbits, que malgrat la seva gran
capacitat, noms tenen 24 pins. Aix s degut al multiplexatge de les lnies dadrea i al nombre
redut de lnies de dades.

El primer circuit, organitzat com a 16 M 1 (figura 4.27a), t 12 lnies dadrea, que susen per
codificar la fila i la columna. Els 24 bits de codi permeten adrear 224 = 16 M posicions. T lentrada i
la sortida de dades en dues lnies independents. Tamb es poden observar les lnies de selecci de fila i
columna RAS* i CAS*.

El circuit de la dreta t una organitzaci de 4 M 1 (figura 4.27b). En aquest cas, les lnies dadrea
sn 11 (4 M posicions). Les 4 lnies de dades sn bidireccionals i, per tant, cal un senyal OE* que
sactiva en la lectura.

Es pot observar la bona compatibilitat del pinout entre les dues memries.

los autores, 1998; Edicions UPC, 1998.


134 Disseny de sistemes digitals amb microprocessadors

Vcc Vss Vcc Vss


Din Dout D0 D3
N.C. N.C. D1 D2
WE* CAS* WE* CAS*
RAS* N.C. RAS* OE*
A11 A9 N.C. A9

A10 A8 A10 A8
A0 A7 A0 A7
A1 A6 A1 A6
A2 A5 A2 A5
A3 A4 A3 A4
Vcc Vss Vcc Vss

(a) (b)

Fig. 4.27 Encapsulat de DRAM. a) 16 M 1. b) 4 M 4

4.8.2 Lectura i escriptura

El cronograma de la figura 4.28 mostra els cicles bsics de lectura i descriptura duna memria
DRAM.

A travs de les lnies dadrea es multiplexa ladrea de fila i la de columna, que es presenten
seqencialment. En el flanc de baixada dels senyals RAS* i CAS* es capturen, en els latchs, ladrea
de fila i la de columna, respectivament.

En el cicle de lectura, el senyal WE* ha de romandre a nivell alt. Els temps daccs en les memries
dinmiques es defineixen com el temps que triga a aparixer la dada a la sortida des que es capturen
les adreces de fila i de columna. Aquests temps, que estan especificats a la figura 4.28, sanomenen
tRAC i tCAC, respectivament.

Un altre temps que pren gran importncia en les memries dinmiques s el temps de cicle, tC a la
figura. s el temps necessari entre dues lectures consecutives, i, per ra del seu funcionament, en les
DRAM aquest temps pot ser ms restrictiu que el temps daccs. A la taula 4.4 es presenta un exemple
de valors daquests retards per a les memries de la figura 4.27. Es pot observar com el temps de cicle
gaireb duplica el temps daccs, tRAC.

El cicle descriptura es produeix quan el senyal WE* pren el nivell lgic baix. En cas que el flanc de
baixada de WE* es produeixi abans del flanc de baixada de CAS*, es diu que s un cicle dearly
write. Aquest cicle s el que es mostra a la figura 4.28. Lavantatge dactivar WE* abans que CAS* s
que la memria sap anticipadament que es vol realitzar el cicle descriptura i, per tant, deixa la lnia de
sortida de dades sempre en alta impedncia. Aix permet curtcircuitar les lnies de DIN i DOUT i

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 135

connectar-les directament a un bus de dades bidireccional sense problemes de conflicte de bus (bus
contention).

Tipus (Fig. 4.27) tRAC tCAC tC


a) 16 M1 50 ns 13 ns 90 ns
b) 4 M4 50 ns 13 ns 90 ns

Taula 4.4 Temps daccs i de cicle de les memries de la figura 4.27

A la figura 4.29 es mostra un cicle descriptura amb lactivaci de WE* endarrerida respecte a CAS*.
Aquesta operaci s perfectament possible i el cicle descriptura es produeix amb absoluta normalitat.
Linconvenient, per, s que un cop activat CAS* la memria interpreta que el cicle s de lectura, i no
deixa en alta impedncia la lnia de DOUT. Daquesta forma, la dada de la posici seleccionada apareix
a la sortida.
tC

RAS*

CAS*

ADREA FILA COLUMNA

WE*
tCAC CICLE DE
tRAC LECTURA
DOUT OUT

WE*
CICLE
DESCRIPTURA
DIN IN

Fig. 4.28 Cicles de lectura i descriptura (early write) duna memria DRAM

los autores, 1998; Edicions UPC, 1998.


136 Disseny de sistemes digitals amb microprocessadors

tC

RAS*

CAS*

ADREA FILA COLUMNA

WE*

DIN IN

tCAC
tRAC
DOUT OUT

Fig. 4.29 Cicle descriptura amb WE* endarrerit

En el moment en qu es produeix el flanc de baixada de WE*, la dada present a lentrada DIN sescriu
sobre la posici seleccionada. Per tant, aquest tipus de cicle no permet curtcircuitar DIN amb DOUT, ja
que es produiria un conflicte de bus. Per aix, i per qestions de velocitat, s preferible el cicle dearly
write. Una utilitat possible daquest cicle s per a operacions del tipus read-modify-write, que utilitzen
els sistemes amb multiprocessador.

A lapndix C hi ha exemples de cronogrames complets de lectura i descriptura de memries DRAM.

Existeixen, a ms dels modes de lectura i descriptura simples, daltres modes que han aparegut en
memries a partir d1 Mbit que permeten accelerar els accessos. Per exemple, lanomenat fast page
mode (mode rpid de pgina) permet accelerar les lectures i escriptures de les celles duna mateixa
fila, ja que la selecci de fila i laccs a les celles de la fila ja estan fets.

4.8.3 Refresc

A ms de les operacions normals de lectura i descriptura, en les memries DRAM cal anar realitzant
de forma peridica el refresc del contingut. Seria desitjable que el refresc fos totalment transparent a
loperaci del sistema, per si aix no s possible, com a mnim cal garantir que no interfereixi el bon
funcionament del sistema.

El refresc duna DRAM es realitza per files. Cada vegada que saccedeix a una fila, els amplificadors
sensors regeneren els valors lgics de totes les celles de la fila. Per tant, el refresc es produeix en tota

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 137

la fila. Aix passa quan sactiva el senyal de selecci de fila RAS*, tant si es tracta dun cicle de
lectura com descriptura.

Aix doncs, per refrescar una memria no cal accedir a totes les posicions, sin nicament a totes les
files. Aix, el refresc de la memria de 16 M1, que t 12 lnies dadrea (12 bits de fila i 12 de
columna) necessita realitzar peridicament 212 = 4.096 cicles de refresc. En el cas de la DRAM de 4
M4, els bits de fila sn 11 i, per tant, noms calen 211 = 2.048 cicles per perode de refresc. Cal
verificar exactament els bits dadrea de la fila en cada cas particular de memria DRAM, ja que de
vegades no coincideixen amb els bits de columna i aix podria donar lloc a confusi. El perode de
refresc especificat pel fabricant sol ser de lordre de 50 o 100 ms. En aquest temps cal fer 2n cicles de
refresc, on n s el nombre de lnies dadrea de fila de la DRAM.

tC

RAS*

CAS*

ADREA FILA FILA

(a)

RAS*

CAS*

WE*

(b)
tC tC

RAS*

CAS*

ADREA FILA COLUMNA FILA FILA

LECTURA O ESCRIPTURA REFRESC

(c)

Fig. 4.30 Modes de refresc. a) RAS-only. b) CAS-before-RAS. c) Hidden refresh

los autores, 1998; Edicions UPC, 1998.


138 Disseny de sistemes digitals amb microprocessadors

Per a les dues DRAM de 16 M 1 i 4 M 4, i suposant un temps de refresc especificat pel fabricant
de 64 ms, cal fer un cicle de refresc cada 15,63 s i cada 31,25 s, respectivament. Aquest refresc es
pot fer de forma distribuda al llarg del perode o b es poden realitzar tots els cicles de cop, sempre
amb la garantia que totes les files es refresquin com a mxim cada 64 ms.

El refresc duna memria dinmica es pot fer realitzant cicles de lectura, per les DRAM tenen cicles
especfics per al refresc que eviten que les dades apareguin a la sortida i permeten optimitzar temps de
refresc. A la figura 4.30 es mostren tres modes de refresc usuals. A lapndix C es mostren modes de
refresc de memries DRAM comercials.

El refresc RAS-only (Fig. 4.30a) s el ms simple i es realitza activant el senyal RAS* i deixant CAS*
inactiu. Ladrea de la fila que es vol refrescar s la que es presenta a les lnies dadrea, i sha danar
incrementant a cada nou cicle de refresc.

En el refresc CAS-before-RAS (Fig. 4.30b), sactiva el senyal CAS* abans dactivar RAS*. Aix
indica a la memria que es vol realitzar una operaci de refresc. En aquest mode, la memria guarda
internament un comptador que es va incrementant automticament a cada nou refresc i adrea
seqencialment totes les files. Aix no cal introduir externament el codi de fila.

El mode hidden refresh intenta fer el refresc transparent a lexecuci. A la figura 4.30c es pot veure
que, integrat dins un cicle de lectura o descriptura, hi ha un cicle de refresc. El senyal CAS* es mant
activat durant el cicle de refresc. Aquest tipus de refresc vol aprofitar temps morts en els accessos del
P per realitzar cicles de refresc. Sempre que aix no alenteixi el sistema, el refresc ser transparent.
Per en els microprocessadors avanats que capturen blocs dinstruccions de la memria, aquesta
estratgia pot no ser adient.

Finalment, cal realitzar el disseny del refresc i de la interfcie de les DRAM amb els busos del sistema.
La figura 4.31 mostra un diagrama de blocs que indica el principi del refresc i la interfcie del bus amb
una memria dinmica.

El bus dadreces es divideix en dues parts, files i columnes, i, mitjanant un multiplexor, una unitat de
control selecciona quina de les dues parts passa a les lnies dadrea de la DRAM, segons els senyals
de control del bus. A ms, activa els senyals de RAS*, CAS* i WE* que correspongui.

Un temporitzador envia peridicament una indicaci a la unitat de control per fer el refresc. Llavors,
aquesta unitat selecciona, mitjanant el multiplexor, el comptador de refresc com a entrada de les
adreces de la DRAM. Aquest comptador es va incrementant a cada cicle de refresc. En cas que el P
vulgui llegir o escriure a la memria mentre es refresca la DRAM, la unitat de control activa la lnia de
WAIT. Quan sacaba el refresc, es realitza loperaci que demana el P.

los autores, 1998; Edicions UPC, 1998.


Subsistema de memria 139

BUS FILA
DADRECES COL.
MUX ADRECES

COMPTADOR
REF.

DRAM

BUS DE
CONTROL
CONTROL RAS*, CAS*, WE*
WAIT

TEMPORITZADOR
DE REFRESC

Fig. 4.31 Principi del refresc i interfcie de memries DRAM

La lgica de refresc es pot dissenyar amb elements de catleg o circuits especfics, per, ats que
lesfor i el temps de disseny sn importants, s poc aconsellable de fer-ho. Normalment s preferible
fer s de circuits controladors de refresc, que estan ja dissenyats especficament i ofereixen un gran
nombre de modes de funcionament per adaptar el refresc a les necessitats de laplicaci.

Existeixen alguns casos en qu el refresc s realitzat pel propi accs a la memria i, per tant, no cal
dissenyar una lgica de refresc. Per exemple, en memries de vdeo que cal anar llegint
seqencialment, el refresc s realitzat pel propi funcionament, ja que de forma peridica hi ha accessos
a totes les posicions i, per tant, es refresca continuament tota la memria. Cal garantir en qualsevol cas
que el perode daccs a les posicions sigui menor que el temps de refresc.

Aquest tipus de refresc per la prpia operaci no es pot realitzar en el cas duna memria que cont
dades generals o programes, ja que no es pot garantir un accs peridic a cada posici (o fila). Llavors
cal realitzar el refresc mitjanant un dispositiu controlador de refresc.

los autores, 1998; Edicions UPC, 1998.


L'entrada/sortida 141

5 Lentrada/sortida

5.1 Introducci

Amb el que sha vist fins ara estem en condicions de dissenyar i construir un sistema capa dexecutar
un programa, sempre que aquest es trobi prviament emmagatzemat a la memria i els resultats que
nobtinguem sescriguin tamb a la memria.

La utilitat prctica dun sistema com lesmentat s ms aviat reduda. Preguntes tan senzilles com:

De quina manera podem canviar el programa.

Com podem llegir els resultats obtinguts.

De quina manera podem introduir dades o parmetres en el nostre programa.

Com ho hem de fer per interaccionar amb el mn fsic.

romanen forosament sense resposta o, fins i tot, en tenen una de prou evident: no podem fer-ho.

Aix doncs, qu hem dafegir al nostre sistema per poder interaccionar i comunicar amb el mn
exterior? Evidentment, un subsistema dentrada i sortida, construt de tal manera que faci dinterfcie
entre el nostre sistema i aquest mn exterior.

Aquesta interacci, per la seva prpia naturalesa, pot ser molt diversa i, per tant, implicar tcniques
molt variades en la seva resoluci. Aix, per anomenar noms alguns casos particulars, la interfcie
que es dissenya per a una impressora no t res a veure amb la dun teclat, una pantalla de raigs
catdics o un convertidor analogico-digital.

Perqu lestudi del subsistema dentrada/sortida, dara endavant E/S, no es converteixi en un conjunt
de casos particulars, hem de fer un esfor per tal didentificar all que tenen en com les diferents
situacions i sistematitzar-ne lestudi.

En aquesta sistematitzaci distingirem quatre aspectes: les interfcies, lestructura, la sincronitzaci i


el format de la informaci.

Pel que fa a les interfcies, lE/S en t dues de ben diferenciades: la interfcie amb el P i la interfcie
amb el dispositiu extern (perifric). Totes dues es presenten de manera genrica a lapartat 5.2 i la
primera, de manera ms especfica, a lapartat 5.3, junt amb la seva estructura.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
142 Disseny de sistemes digitals amb microprocessadors

El problema de la sincronitzaci sorgeix quan es pretn relacionar el P, que no s ms que un


sistema digital sncron i que com a tal noms s capa de respondre en instants de temps
predeterminats pel seu propi rellotge (CLK), amb esdeveniments del mn fsic que sn essencialment
asncrons. Les diverses tcniques possibles sintrodueixen a lapartat 5.4. Lapartat 5.5 presenta el
mtode de sincronitzaci per consulta i als apartats 5.5 a 5.12 sanalitza amb ms detall tot el que fa
referncia al mecanisme de les interrupcions. Lapartat 5.13 presenta el concepte ms general
dexcepci.

Els diferents formats en qu s pot intercanviar la informaci, aix com la problemtica especfica de
cadascun dells, es tracten a partir de lapartat 5.14. La comunicaci en parallel prpiament dita es
desenvolupa als apartats 5.14 a 5.17. De lapartat 5.18 fins al 5.21 sintrodueix el mecanisme daccs
directe a la memria (DMA) i la problemtica de control dels busos. Finalment, a partir de lapartat
5.22 sintrodueix la comunicaci en srie.

Amb tot aix es pretn donar una visi del tractament de lE/S en sistemes amb P des dun punt de
vista general, que es considera suficient per a comprendre el seu funcionament i permetre daplicar-lo.

5.2 Les interfcies

En el curs de la interrelaci entre el P i el mn exterior cal sempre una certa adaptaci. Aquesta
adaptaci pot ser tan senzilla com un fil de connexi o tan complexa com un sistema digital
interposat. Exceptuant el cas del simple fil de connexi, el conjunt delements que sinterposen entre
el P i el mn exterior rep el nom genric de dispositiu dE/S. La missi daquest dispositiu s la de
fer possible lintercanvi dinformaci, en el sentit ms general de la paraula, entre els dos costats.
Aquest procs dintercanvi pot dividir-se en tres processos normalment ben diferenciats: la recepci
de la informaci del P, la conversi del format daquesta informaci en un format intelligible pel
mn exterior (perifric) i la transmissi daquesta informaci cap al perifric. En cas que aquesta
intercomunicaci shagi de realitzar en sentit contrari, el dispositiu dE/S ha de ser capa dinvertir els
processos anteriors. Si la relaci ha de ser bidireccional, aleshores el dispositiu ha de poder dur a
terme el procs en ambds sentits.

La dissecci daquest procs dintercanvi posa clarament de manifest lexistncia de dues interfcies
ben definides: la del P amb el dispositiu dE/S i la daquest dispositiu amb el perifric.

La interfcie entre el dispositiu dE/S i el perifric, tal com sha esmentat, s difcil de sistematitzar
atesa la gran diversitat daquests. A lapartat 5.5 en farem un intent dacord amb el format de les
dades.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 143

Sistema computador

Adreces
DISPOSITIU
Dades Perifric
E/S
Control

Interfcie "1" Interfcie "2"

Fig. 5.1 Les interfcies

Contrriament, la interfcie entre el P i el dispositiu dE/S admet una nica estructura, com veurem
tot seguit.

5.3 Lestructura de la interfcie amb el P: els registres

Si b pel que fa als perifrics lestructura de lE/S pot ser molt variada depenent de la funci que
aquest hagi de fer, del costat del P noms tenim una possibilitat.

Efectivament, tal com ja sha vist, lnic que el P veu cap enfora sn una srie de registres o
posicions de memria en les quals pot dipositar la informaci (escriptura) o de les quals en pot recollir
(lectura). Aix, el pas previ a lintercanvi dinformaci en qualsevol operaci dE/S s situar aquests
registres o posicions de memria dins del camp abastable pel P, s a dir, dins del seu espai (mapa)
de memria o dE/S.

Per tant, un element determinat dE/S que hagi de formar part del nostre sistema t per a tota interfcie
amb el P una o diverses adreces en les quals pot dipositar la informaci o de les quals la pot
extreure.

Aquesta informaci pot tenir una doble naturalesa: pot tractar-se dinformaci per enviar o rebre del
mn exterior (dades) o b pot ser informaci local que senvia o es rep de la interfcie per al seu s
exclusiu (control o estat).

5.3.1 Registres de dades

Per realitzar lintercanvi dinformaci amb el mn exterior, el P utilitza una o diverses posicions del
seu mapa de memria o dE/S, que reben el nom de registres de dades. Depenent del sentit de la
informaci, poden ser registres dentrada (lectura) o b de sortida (escriptura).

El diagrama general dun dispositiu dE/S de dades es mostra a la figura 5.2. Els elements que el
constitueixen sn:

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
144 Disseny de sistemes digitals amb microprocessadors

Lgica de descodificaci: Selecciona els registres a partir del bus dadreces i dels senyals
de lectura i descriptura.

Buffers de tres-estats : Seleccionen el sentit de circulaci de les dades.

Registres : Emmagatzemen les dades.

Interfcie del perifric : La interfcie 2.

Cal indicar que els registres dentrada sn noms de lectura mentre que els de sortida sn descriptura.
Aix vol dir que cada adrea de la CPU pot seleccionar dos registres, un dentrada i un de sortida,
variant noms els senyals de control del sentit (RD*,WR*).
RD* WR* CS* AB
n

LGICA DE DESCODIFICACI

RD/WR* REGSEL

INTERFCIE AMB
EL PERIFRIC

DB REG. LECTURA I/O B

REG. ESCRIPTURA

Fig. 5.2 Interfcie amb el P. Registres de dades

5.3.2 Registres de control

Molt sovint, lintercanvi dinformaci no es pot dur a terme correctament sense la intervenci dalgun
tipus de protocol que controli el flux daquesta informaci. Per exemple, per enviar carcters a una
impressora i imprimir-los correctament, ens hem dassegurar que la impressora est disponible, s a
dir, que no es troba imprimint un carcter quan li nenviem un altre. Daltra banda, quan ens hem
assegurat de la seva disponibilitat i li enviem un carcter, hem de comunicar dalguna forma que el
carcter est disponible per ser imprs.

Tota aquesta informaci addicional que no s la dada prpiament dita rep el nom dinformaci de
control. Una vegada ms, aquesta informaci de control pot tenir dos sentits: del perifric cap a la
CPU, que rep la denominaci especfica destat del perifric (o estat) i ha de ser llegida per la CPU, i
de la CPU cap al perifric, que rep el nom especfic de control i s la CPU qui lescriu en el dispositiu
dE/S.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 145

Lestructura final del dispositiu dE/S pel que fa a la seva connexi amb el P es mostra de manera
simplificada a la figura 5.3, on shan afegit els registres destat i control. Els seus elements constitutius
sn ara:

Lgica de descodificaci: Selecciona els registres a partir del bus dadreces i dels senyals
de lectura i descriptura.

Buffers de tres estats : Seleccionen el sentit de circulaci de les dades.

Registres de dades : Emmagatzemen les dades.

Registres de control : Emmagatzemen la informaci destat i control.

Interfcie del perifric : La interfcie 2.

RD* WR* CS* AB


n

LGICA DE DESCODIFICACI

RD/WR* REGSEL

INTERFCIE AMB
EL PERIFRIC

DB REG. LECTURA I/O B

REG. ESCRIPTURA

REG. ESTAT C/S B

REG. CONTROL

Fig. 5.3 Interfcie amb el P. Registres destat i control

Aqu tamb els registres destat sn noms de lectura mentre que els de control sn descriptura. Aix
vol dir que cada adrea de la CPU pot adrear dos registres, un destat i un de control, variant noms
els senyals que estableixen el sentit (RD*,WR*).

Resumint, podem dir que la interfcie entre el P i els dispositius dE/S es redueix a un conjunt
dadreces en lespai de memria o dE/S.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
146 Disseny de sistemes digitals amb microprocessadors

5.4 El problema de la sincronitzaci

Com ja hem esmentat, el fet que el nostre P sigui un sistema digital sncron mentre que el mn fsic
s essencialment asncron ens planteja un problema de sincronitzaci entre els dos sistemes.

Per dur a terme una operaci de sortida, el P noms ha dadrear el controlador en qesti, verificar
que es troba disponible i enviar-li la informaci. Ats que la informaci, el control de la transferncia i
la iniciativa de realitzar-la parteixen dun mateix sistema, el problema s molt senzill. Per, qu passa
si s el perifric el que vol enviar la informaci? Com que, en principi, no t possibilitat de controlar
la transferncia, noms pot cridar latenci del P per tal que, quan aquest ho consideri convenient, o
b estigui en disposici de fer-ho, la dugui a terme.

Continuant amb aquest raonament, quan estar el P en disposici de fer aquesta transferncia de la
qual no en sap res si la iniciativa no parteix dell mateix? La resposta s: si no en sap res, aleshores
mai., per tant, sembla que el problema, tal com sha plantejat, no tingui soluci.

Conv, per tant, identificar on es troba lerror i esmenar-lo. Per sort no s massa difcil. La soluci s
que el P conegui lexistncia del perifric i li dediqui una certa atenci.

5.5 La consulta

Si entre les tasques que el P ha de realitzar hi incloem la de vigilar peridicament lestat dels
perifrics (a travs dels controladors dE/S) s a dir, en una part determinada del programa que ha
dexecutar hi posem una rutina que sencarregui de llegir els registres destat corresponents a cada
perifric i dactuar en conseqncia, aleshores haurem resolt el problema. Cada cert temps, estarem
sincronitzant els dos sistemes. Aquest mtode de sincronitzaci rep el nom de sincronitzaci per
consulta (polling).

Aix doncs, la sincronitzaci per consulta s un procs de software i la periodicitat amb qu la rutina
de sincronitzaci sexecuta dna la mxima freqncia datenci als perifrics i, per tant, la mxima
freqncia a la qual el procs exterior pot canviar de valor o destat si no volem perdre part de la
informaci.

INSTANTS DE SENYAL
LA CONSULTA (a) EXTERIOR

(b)

Fig. 5.4 Importncia de la frequncia de mostratge

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 147

La figura 5.4 ens mostra aquest fet. En el cas (a) el senyal exterior es mostreja dos cops per perode,
per tant, (segons el criteri de Niquist) el podrem arribar a reconstruir. En canvi, en el cas (b) aix seria
impossible ja que hem perdut part de la informaci.

Exemple:

Suposem que una persona molt experta en mecanografia arriba a teclejar a 500 pulsacions per minut.
Cada quant temps hem de mostrejar el teclat per no perdre cap carcter?

Temps per pulsaci = 60/500 = 0,12 s = 120 ms

Per tant, com a mnim, haurem de mostrejar el teclat un cop cada 120 ms. A la prctica, per, lhem de
mostrejar ms sovint perqu la tecla no est tot el temps pulsada.

Aquest fet fa que quan un procs exterior varia molt sovint, la seva atenci consumeixi molt temps del
P que daltra manera podria dedicar a altres tasques.

Tot i aix, la sincronitzaci per consulta s molt senzilla de realitzar i en molts casos pot ser el mtode
adequat sempre que el procs exterior vari molt lentament en relaci amb la velocitat de procs del P
i aquest tingui temps suficient per atendre lE/S i realitzar la resta de tasques.

En el cas que hi hagi ms dun procs exterior per atendre, la prioritat sestableix per lordre de la
consulta. El ms prioritri es mira primer, i aix successivament. En cas que es vulgui donar la mateixa
prioritat a tots els processos, la consulta es fa de manera rotativa. Ambdues solucions es mostren a la
figura 5.5.

RUTINA DE CONSULTA MAJOR RUTINA DE CONSULTA

TASCA 1 INICIALITZACI

INICI RUTINA SERVEI n = n+1

IF n>nmx THEN n=1

GOTO TASCA n

TASCA 2 PRIORITAT

INICI RUTINA SERVEI TASCA n

INICI RUTINA SERVEI

TASCA 3
TASCA nmx
MENOR
INICI RUTINA SERVEI
INICI RUTINA SERVEI

CONSULTA PRIORITRIA CONSULTA ROTATIVA

Fig. 5.5 Consulta prioritria i consulta rotativa

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
148 Disseny de sistemes digitals amb microprocessadors

5.6 Les interrupcions

La sincronitzaci per consulta, malgrat la seva senzillesa, presenta un bon nombre dinconvenients
com ara:

Si el procs t molta artmia, s a dir, si linterval entre dues ocurrncies s molt variable,
latenci sha de programar per al pitjor cas i es perd molt temps.

La prioritat sestableix per lordre de la consulta i s inamovible, un cop programada.

En cas que un nombre elevat de processos diferents necessitin ser atesos, o b es disposa de
rutines diferents amb periodicitats adequades o b sha de preveure el cas pitjor i es perd molt
temps.

Si el procs s de curta durada per es produeix amb poca freqncia, latenci sha de
preveure segons la durada i no segons la freqncia i, per tant, es perd molt temps intilment.

Exemple:

Suposem que una persona poc experta en mecanografia tecleja a 60 pulsacions per minut i que la tecla
noms roman polsada durant 10 ms en cada pulsaci.

Cada quant temps hem de mostrejar el teclat per no perdre cap carcter?

Com que la tecla noms est polsada 10 ms i no ens podem sincronitzar amb cada pulsaci, aleshores
hem de mostrejar cada 10 ms com a mxim si no volem perdre cap carcter.

Daquesta manera, noms una de cada cent vegades trobarem una informaci diferent. Les altres
norantanou seran intils.

Qu tenen aquests inconvenients en com? Bsicament una cosa: que la consulta es porta a terme per
software i mentre sest realitzant requereix tota latenci del P. Si fssim capaos dimaginar un
mtode, probablement a travs dun hardware dedicat, que demans latenci del processador durant
un temps molt curt, podrem fer la consulta molt sovint sense degradar les prestacions del nostre
sistema.

Posats a imaginar, cada quant sovint podrem fer-la? Vegem-ho:

Un cop el P ha comenat lexecuci duna instrucci anant a la memria a buscar el seu codi (fetch)
no pot atendre cap altre tasca fins que ha acabat dexecutar-la. Un cop acabada lexecuci, per, i
abans danar a buscar la segent, podria atendre qualsevol altre tasca mentre sapunts el lloc on sha
quedat per tal de tornar-hi ms tard.

Per tant, si provem una manera que els dispositius dE/S (o els propis perifrics) puguin avisar el P
quan necessiten atenci, mitjanant una lnia especfica, per exemple, i fem que aquest la miri cada
cop que acaba dexecutar una instrucci i abans de comenar lexecuci de la segent, haurem
realitzat la sincronitzaci de la manera ms rpida possible i lestarem mostrejant a la mxima
freqncia possible. Noms en el cas que la trobi activada haur de prendre la decisi datendre la
petici. En cas contrari, podr continuar lexecuci normal com si res no hagus passat i sense perdre
prcticament cap temps. Aquest mecanisme de sincronitzaci es coneix amb el nom dinterrupci.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 149

5.7 El cicle dinterrupci

Tal com hem exposat, la sincronitzaci per interrupci sha de dur a terme mitjanant un hardware
especialitzat per tal de perdre el menor temps possible. Aix vol dir que cada P en particular ha de
tenir una estructura especfica per a aquesta tasca, a la qual li correspondr un cicle de control, s a
dir, un cicle mquina especfic. Aquest cicle mquina s lanomenat cicle de reconeixement
dinterrupci.

Si b hi pot haver diferncies entre els diferents P, el cicle genric t unes fases ben determinades,
que sn comunes a tots.

* T1 T2 Tw Tw T3

CLK
1
INT

IACK 2

AB
3
AS

DS 4
5
DB

* ltim cicle de rellotge de l'ltim cicle mquina de la instrucci en curs

Fig. 5.6 El cicle de reconeixement dinterrupci

En el cronograma de la figura 5.6 es poden identificar aquestes fases associades als diferents senyals.
Aix tenim:

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
150 Disseny de sistemes digitals amb microprocessadors

1. Mostratge de la lnia dinterrupci (CLK i INT)

2. Establiment del cicle de reconeixement (IACK)

3. Establiment del codi especfic de la interrupci que es reconeix (AB i AS)

4. Sollicitud didentificaci de la interrupci (DS)

5. Recepci de la identificaci (DS i DB)

De totes aquestes fases, depenent de lestructura especfica del P en qesti i de les circumstncies de
linstant en que es produeix la interrupci, certes no seran necessries o b no sarribaran a produir.

5.8 Concepte de prioritat. El registre de mscara

En un sistema dE/S sincronitzat per interrupcions, s possible que en un instant determinat sen
produeixi ms duna. Com que cada perifric pot tenir necessitats diferents i el P noms pot servir-les
duna en una, hem destablir un ordre de servei, s a dir, una prioritat.

Daltra banda, tamb s possible que a linstant en qu la interrupci arriba el P no pugui atendre-la
immediatament perqu estigui realitzant una tasca que no admeti espera i, duna manera voluntria,
hagi prohibit les interrupcions fins que aquesta no hagi acabat. En aquest cas, es diu que les
interrupcions (o algunes delles) es troben emmascarades, i aquesta informaci adient a cada
interrupci est continguda en el registre de mscara del P.

Aix doncs, lestabliment de prioritats i la possibilitat demmascarar les interrupcions ens permet
administrar dinmicament ls del P de forma que en cada moment aquest atengui la tasca ms
prioritria.

A la figura 5.7 es mostra levoluci de les cinc fases del cicle de reconeixement dinterrupci segons
tres condicions. Aquestes condicions sn funci tan de lestructura com de les circumstncies del P.

a) Depenent de la mscara el cicle continua o no.

b) Depenent de lestructura del P la fase 3 es produeix o no.

c) Depenent de si la identificaci sha denviar o s implcita es produeixen les fases 4 i 5


o no.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 151

Registre de mscara

a IACK
INT 2
CLK 1
AB

b 3 AS

DB DS
5 c 4

Fig 5.7 Condicionadors del cicle de reconeixement

Per tant, el cicle de reconeixement dinterrupci pot tenir noms dues fases o, fins i tot, no produir-se.
Depenent de lestructura de cada P i de les necessitats del sistema, la gesti de la prioritat es pot
realitzar de maneres diferents. En el cas ms general, es poden considerar quatre alternatives que no
sn excloents i que, per tant, poden arribar a coexistir en un mateix sistema:

5.9 La gesti de la prioritat

Nivells dinterrupci.

Consulta per software (software polling)

Controlador de prioritat.

Prioritat segons la posici (daisy-chain)

Cadascuna daquestes alternatives t avantatges i inconvenients i la seva utilitzaci varia segonsde les
disponibilitats del P i les necessitats del sistema.

5.9.1 Nivells dinterrupci

Els diferents P tenen organitzacions i possibilitats diferents pel que fa als nivells dinterrupci. En
general, qualsevol P disposa com a mnim de dos nivells jerrquics, el ms prioritri dels quals no
pot ser emmascarat i per aix rep el nom dinterrupci no emmascarable o NMI (del angls Non
Maskable Interrupt) i laltre s emmascarable i rep el nom genric de INT.

Aquests dos nivells tenen lnies dedicades i sense codificar. En aquest cas, el cicle de reconeixement
dinterrupci no necessita la fase 3 destabliment del codi de la interrupci que es reconeix ja que

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
152 Disseny de sistemes digitals amb microprocessadors

aquest es troba implcit en la lnia dinterrupci. Un exemple de P daquest tipus podria ser el Z80 de
Zilog.

Altres P disposen de ms nivells, que aleshores estan codificats per tal de no ocupar tantes lnies.
Ns un exemple el P 68000 de Motorola, que t tres lnies de petici codificades, IPL0, IPL1 i IPL2,
de manera que disposa de set nivells diferents (un codi sha de dedicar a lestat de reps, s a dir, a
labsncia dinterrupci) dels quals el ms prioritri (el nivell 7) no es pot emmascarar.

En aquest cas, a la fase 3 del cicle de reconeixement dinterrupci sutilitzen les tres lnies ms baixes
de lAB (A1, A2 i A3) per establir el codi del nivell dinterrupci que es reconeix.

5.9.2 Consulta per software (software polling)

Dins dun mateix nivell es poden establir prioritats entre els diferents dispositius que lutilitzen si
aquests comparteixen la rutina que el P executa per donar-los servei. En aquest cas, dins de
lexecuci daquesta rutina es consulten els registres destat dels diferents dispositius per lordre de
prioritat i es dna pas a la part daquesta rutina que dna servei al dispositiu ms prioritri dentre els
que lhan sollicitat.

5.9.3 Controlador de prioritat

Aquest mtode noms s aplicable quan els dispositius que interrompen dipositen en el DB un codi
didentificaci durant la fase 5 del cicle de reconeixement. Mitjanant un hardware especialitzat que
constitueix el controlador de prioritat, es fa que el codi didentificaci es correspongui amb el del
dispositiu ms prioritri.

5.9.4 Prioritat segons la posici (daisy-chain)

Tamb dins dun mateix nivell es poden establir prioritats per hardware connectant els dispositius
corresponents a aquest nivell en cadena, de tal manera que, amb la utilitzaci duna certa lgica, es
faci que noms un dells rebi servei per part del P.

A la figura 5.8 es mostren les dues possibilitats daquest mecanisme de gesti de la prioritat. En
ambds casos, el significat de les entrades IEI (Interrupt Enable Input) i de les sortides IEO (Interrupt
Enable Output) s el mateix, per actuen de forma diferent.

En el cas de la figura 5.8 a, noms els dispositius que tenen la seva entarda IEI verdadera poden
demanar la interrupci activant la sortida INT. Daltra banda, si no volen demanar-la transmeten el seu
valor IEI a la sortida IEO, validant lentrada IEI del segent.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 153

+VCC

+VCC
INT*

P
R INT* INT* INT* INT*

1 2 3 4

IEI IEO IEI IEO IEI IEO IEI IEO

+VCC

(a)

Fig 5.8 a Esquema de prioritat segons la posici

El dispositiu ms prioritri s l1que t la seva entrada IEI sempre activada, i el menys prioritri el 4,
que es troba al final de la cadena. Aquest comportament es resumeix en forma de taula de la veritat a
la taula 5.1.

Taula 5.1

IEI INT IEO


V F V
V V F
F X F

En lloc de construir la cadena de prioritat sobre la petici de la interrupci, es pot construir sobre el
reconeixement, tal com es mostra a la figura 5.8 b.

INT*

INT* INT* INT* INT* P


1 2 3 4
IEI IEO IEI IEO IEI IEO IEI IEO IACK

(b)

Fig 5.8 b Esquema de prioritat segons la posici

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
154 Disseny de sistemes digitals amb microprocessadors

En aquest cas, la petici dinterrupci no est restringida, i s el senyal de reconeixement IACK el que
es desplaa per la cadena de manera que la primera interrupci que el rep s la ms prioritria.

La taula de la veritat en aquest cas es mostra a la Taula 5.2.

Taula 5.2

INT IEI IEO


F V V
F F F
V X F

En el cas de la figura 5.8 a noms pot interrompre el dispositiu ms prioritri, mentre que en el cas b
poden interrompre tots per noms es reconeix la interrupci del ms prioritri. Daquesta manera,
quan sha ats aquest, els altres dispositius que han sollicitat una interrupci continuaran mantenint la
lnia INT activada.

Finalment, cal assenyalarque, com que les lnies de petici dinterrupci poden ser compartides per
ms dun dispositiu, en general fan servir lgica negativa per tal que les sortides dels dispositius
puguin ser en collector obert.

5.10 La rutina de servei de la interrupci (RSI). El vector dinterrupci

De tot el que sha exposat fins ara es desprn que la finalitat ltima del procs de sincronitzaci per
interrupcions s lobtenci dun servei per part del dispositiu dE/S, servei que noms pot donar el P
i que noms pot consistir, per tant, en lexecuci dun conjunt dinstruccions que duguin a terme.

Aquest conjunt dinstruccions, especfiques dun dispositiu o de diversos dispositius, rep el nom de
rutina de servei de la interrupci o RSI.

La figura 5.9 ens mostra el diagrama de flux corresponent al procs de sincronitzaci i al servei duna
interrupci.

La fase a correspon a lexecuci normal del programa principal per part del P. Mentre no arriba cap
interrupci o la seva prioritat no s suficient, el procs es mant en aquesta fase. Al final de cada
instrucci es fa de nou la prova i es decideix en conseqncia.

En el cas que arribi una interrupci i tingui la prioritat suficient sobre el programa en curs dexecuci
(que eventualment pot ser una RSI), el P executa un cicle mquina de reconeixement dinterrupci.
En les fases 4 i 5 daquest cicle (figura 5.6) el processador rep, a travs del bus de dades, la
identificaci corresponent per part del dispositiu dE/S.

Per, en qu consisteix aquesta identificaci? Evidentment ha de tenir relaci amb lexecuci de la


RSI ja que aquest s el motiu de la interrupci.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 155

Considerem ara qu s el que fa el P per executar la RSI: carrega el seu PC (Program Counter) amb
ladrea dinici de la RSI de manera que la instrucci segent que executi ser la primera instrucci de
la RSI.

Evidentment, doncs, la identificaci que el dispositiu envia t relaci amb ladrea dinici de la RSI.
Dalguna forma, podem dir que apunta cap a la RSI i per aix rep el nom de vector dinterrupci.

Les operacions de la fase b (figura 5.9) sexecuten automticament en el hardware del P, i sn les
necessries per:

Reconixer la interrupci i aconseguir el vector (si nhi ha).

Assegurar el retorn al programa principal (guardar el context).

Carregar ladrea de la RSI al PC.

Per poder assegurar el retorn al programa principal quan shagi acabat lexecuci de la RSI, el P ha
de guardar el valor del PC actual a la memria per poder-lo recuperar ms tard. Tamb ha de guardar
el registre destat (SR) perqu podria canviar durant lexecuci de la RSI. Aquesta informaci s el
que sanomena context del processador, i es guarda a lstack. El procs sillustra a la figura 5.10.

INSTRUCCI
a ACTUAL

INT?

PRIORITAT OK ?

CICLE DE RESTAURAR
CONTEXT
REC. D'INT USUARI I CPU

b
GUARDAR SERVIR
CONTEXT CPU DISP. E/S

c
GUARDAR
SALTAR A LA
CONTEXT
RSI USUARI

Fig. 5.9 Fases del servei duna interrupci

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
156 Disseny de sistemes digitals amb microprocessadors

En el pas (1) el P executa una instrucci del programa principal i rep, a ms, una Interrupci (2) amb
la prioritat necessria per ser atesa. El cicle mquina segent s, per tant, un cicle de reconeixement
dinterrupci, al final del qual rep, per part del dispositiu dE/S, el vector dinterrupci (VI). En els
segents cicles mquina el P guarda (3) ladrea de la segent instrucci del programa principal
(APP) i (4) el registre destat (SR) a lstack i actualitza (5) el punter del stack (SP). Finalment
aconsegueix ladrea de la RSI (ARSI) a partir del Vector (VI), la carrega (6) al comptador de
programa (PC) i comena (7) lexecuci de la RSI. Aix conclou la fase b de la figura 5.9.

Conv assenyalar que, mentre sexecuta aquesta fase, les interrupcions han de estar deshabilitades, ja
que si narribs una altre el processador perdra el seu context (que encara no ha acabat de guardar) i
no podria reemprendre lexecuci del programa principal. Per aix el processador deshabilita les
interrupcions inmediatament desprs del cicle de reconeixement i es lusuari qui les ha dhabilitar de
nou dins de la RSI si ho creu convenient.

La fase c de la figura 5.9 consisteix en lexecuci de la RSI. Aquesta rutina, per, a ms de servir al
dispositiu dE/S, ha de comenar i acabar duna forma determinada.

VI ARSI

AST EPP
APP 4

3 EPP SR

APP PC
1
INT 2 6 ARSI
APP

5 AST SP

ARSI 7

Fig. 5.10 Fases del salt a la RSI

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 157

El primer que normalment ha de fer aquesta rutina s guardar el context de lusuari. Sentn per
context de lusuari el contingut dalguns registres (o de tots) del P que continguin informaci
necessria per poder continuar lexecuci del programa principal un cop acabada lexecuci de la RSI.
El que aix sigui aix depn en cada cas del programa que sestigui executant en el moment en qu
saccepta la interrupci i s, per tant, responsabilitat de lusuari.

Un cop guardat el context dusuari, la RSI executa la part de codi que dna servei al dispositiu que ha
generat la interrupci. Finalment, desprs de recuperar el context dusuari, retorna al programa
principal. Aquest retorn es produeix amb lexecuci duna instrucci especfica que rep el nom genric
de retorn de la interrupci (RETI). La prpia execuci de la instrucci RETI ja porta implcita la
recuperaci del context del processador.

Com que el processador ha deshabilitat les interrupcions abans dentrar a la RSI, lusuari ha de decidir
quan shan de tornar a habilitar. Pot fer-ho a linici de la RSI, i en aquest cas es poden produir noves
interrupcions i pot fer-ho al final, abans de retornar al programa principal, o pot no fer-ho fins ms
tard. En qualsevol cas, aix depenn de la situaci particular de cada aplicaci.

5.11 Interrupcions directes, autovectoritzades i vectoritzades

Fins aqu hem suposat, si b deixant obertes daltres possibilitats, que el dispositiu que produeix la
interrupci suministra, durant el cicle de reconeixement, la informaci necessria per tal que el P
pugui localitzar n es troba la RSI (vector dinterrupci). Si b aquest s el cas ms general, hi ha
daltres possibilitats, depenent de lestructura particular del P en qesti:

Ladrea de la RSI es troba fixada per la prpia estructura del P (interrupci directa).

El P pot, si aix li ho indiquem mitjanant un senyal especfic, suministrar una adrea per defecte que
prviament lhi hem programat (interrupci autovectoritzada).

5.11.1 Interrupcions directes

En alguns P o en alguns nivells dinterrupci, normalment les no emmascarables (NMI), ladrea de


la RSI s fixa, i quan aqusta s acceptada lexecuci de la RSI comena independentment del cicle de
reconeixement. En alguns processadors aquest cicle ni tan sols no es porta a terme, mentre que en
altres, com el Z80 de Zilog, el cicle sexecuta normalment per la informaci no sutilitza per a res.

Linconvenient daquest mecanisme s la seva rigidesa, per, en canvi, s molt senzill i no necessita
cap intervenci del dispositiu que interromp (a part de la prpia petici dinterrupci), de manera que
el cicle de reconeixement s tamb ms curt.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
158 Disseny de sistemes digitals amb microprocessadors

5.11.2 Interrupcions autovectoritzades

Alguns P tenen la possibilitat, si aix sels ho indica externament, de fer servir un vector dinterrupci
per defecte. Aquest vector pot ser programat per lusuari i, per tant,, a diferncia de les interrupcions
directes, la RSI es pot situar en qualsevol lloc, per, a diferncia de les vectoritzades, no cal
suministrar aquest vector durant el cicle de reconeixement. Aix simplifica la interfcie entre el
dispositiu extern i el P, ja que en lloc dhaver de suministrar el vector a travs del DB, nhi ha prou
amb un senyal especfic que indiqui que sha de fer servir lautovector.

Aquest mecanisme s ms flexible que el de les interrupcions directes, si b requereix una certa
participaci del dispositiu extern i fa imprescindible lexecuci del cicle de reconeixement.

5.11.3 Interrupcions vectoritzades

En el cas ms general, el dispositiu extern subministra el vector dinterrupci, al llarg del cicle de
reconeixement dinterrupci i utilitzant el DB (figura 5.6).

Aquest mecanisme s el ms complex per tamb el ms flexible.

5.12 La relaci entre el vector i la RSI

Hem vist que el vector dinterrupci ens proporciona informaci sobre la situaci de la RSI, per com
s aquesta informaci?

El primer que sens pot acudir s que el vector sigui directament ladrea dinici de la RSI, per aix
t molts ms inconvenients que avantatges:

LAB s, en general, ms ample que el DB i, per tant, per fer arribar al P una adrea completa
necessitarem ms dun cicle de transferncia.

Si volem que el vector sigui programable, ladreament de la RSI ha de ser forosament


indirecta i, per tant, no hi guanyem res donant una adrea completa.

El mecanisme ms utilitzat, i que permet que el vector sigui el ms curt possible, s fer que sigui una
adrea de pgina zero de memria i tingui, per tant, noms 8 bits. Aleshores tota o una part daquesta
pgina cont una taula on es troben les adreces de les diferents RSI. Aix es mostra a la figura 5.11.

Aquest mecanisme permet, en el cas de P de 8 bits amb 64 kbytes despai dadreament,


emmagatzemar fins a 128 adreces completes (2 bytes) diferents, s a dir, 128 vectors dinterrupci
(sempre parells).

En P de 16 bits o ms i que fan servir fins a 32 bits dadreces, aquest mecanisme dalguna manera pot
limitar el nombre de vectors disponibles.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 159

En aquest cas es troben els P de la famlia 68000 de Motorola, que utilitzen una extensi daquest
mecanisme que els permet tenir 255 vectors diferents.

PGINA ZERO
VECTOR 00H
01H } ADREA RSI 1

VECTOR 02H
03H } ADREA RSI 2

} ADREA RSI 3

FFH

Fig. 5.11 Taula de vectors dinterrupci

En efecte, en lloc de fer servir el vector com una adrea de pgina zero, aquest representa un punter a
una adrea de 32 bits, continguda en quatre posicions de memria seguides. El processador multiplica
per quatre (dos desplaaments a lesquerra) el nmero de vector i utilitza el resultat com un
adreament indirecte. Daquesta manera pot adrear quatre pgines de memria que contenen 255
adreces de 32 bits, s a dir, 1 kbyte. Entre aquests 255 vectors hi ha 7 autovectors, un per a cada nivell,
192 vectors reservats per a lusuari i 57 vectors reservats per al sistema.

VECTOR

AD=f(V)

ADREA RSI

PC

Fig. 5.12 El clcul de ladrea de la RSI

A la figura 5.12 es mostra la relaci que hi ha entre el vector i ladrea de la RSI com una aplicaci del
espai dels vectors en lespai de les adreces que el P porta a terme per executar la RSI.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
160 Disseny de sistemes digitals amb microprocessadors

Hem vist fins aqu com aquesta aplicaci es pot dur a terme amb un o dos desplaaments a lesquerra,
per hi ha daltres possibilitats que permeten situar la RSI en qualsevol lloc de lespai adreable pel
P. Per exemple, el mode 2 del Z80 porta a terme aquesta aplicaci encadenant el vector que s
sempre un nombre parell, s a dir, t el seu LSB=0, amb el registre I del P programat prviament.
Aquest mtode sillustra a la figura 5.13.

Amb aquest mecanisme, no sols la RSI pot situar-se en qualsevol lloc de lespai adreable, sin fins i
tot la taula de vectors.

5.13 El concepte dexcepci

Des dun punt de vista ms general, el mecanisme de sincronitzaci per interrupcions pot ser
considerat com un mtode per forar al P a canviar momentniament de context o, dit duna altre
manera, a suspendre lexecuci de la seva tasca habitual (programa principal) per atendre una situaci
excepcional, i posteriorment reprendre aquella tasca.

Si b en el cas duna interrupci aquest procs el provoca un senyal extern, s possible imaginar
daltres situacions en qu el desencadenament dun canvi de context sigui degut a daltres causes, com
ara una situaci derror en un cicle de bus o, fins i tot, lexecuci duna instrucci determinada.

ADREA
{ RSI
P 3

PC
4
RSI
2
I 0

1 DISPOSITIU
VECTOR 0

Fig. 5.13 Adreament indexat de la RSI

Vistes aix, les interrupcions serien un cas particular dun procs ms general de canvi de context en
resposta a una situaci excepcional. Aquest procs ms general rep el nom dexcepci.

Segons aquesta sistematitzaci, les interrupcions serien un cas particular dexcepci. Sense pretendre
ser exhaustius, segons la causa que provoqui lexcepci, podem classificar aquestes interrupcions en:

Excepcions internes. Es produeixen com a resultat dun procs intern (condici derror, accs
prohibit, etc.)

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 161

Excepcions externes. Les provoca un senyal extern ( NMI, INT, BERR, etc.)

Excepcions software. Sn conseqncia de lexecuci duna instrucci determinada (TRAP,


INT, etc.)

Canvi de mode del P. En el processadors amb ms dun mode, les pot provocar qualsevol de
les causes anteriors.

5.14 Els mecanismes de protecci. Modes del processador

Els processadors avanats poden treballar, en general, amb un nombre determinat de nivells de
privilegi o modes, completament separats i allats entre ells.

A la figura 5.14 es mostra un diagrama que illustra de manera esquemtica i amb noms relacionats
amb la seva funci, el cas dun processador amb quatre nivells o modes. El privilegi s menor com
ms exterior s.

El nivell o mode dusuari s el menys privilegiat i s el nivell en que es troba el processador quan
executa el programa principal o aplicaci dusuari. Cal suposar que aix passa la major part del temps.

USUARI

E/S

SISTEMA

NUCLI

Fig. 5.14 Modes del processador

Cada mode t un registre dstack i un registre destat diferents, que sn el seu context, i fins i tot pot
tenir assignades zones de memria diferents. Aix fa que els modes estiguin allats entre ells.

Des dels modes ms privilegiats es t accs a tots els recursos dels menys privilegiats, per no a
linrevs. Fins i tot determinades instruccions noms es poden executar des dalguns modes.

El pas dun mode a laltre es produeix mitjanant una excepci. Per exemple, si sest executant un
programa dusuari que requereix E/S, el canvi de nivell (i, per tant, de context) el produeix una
interrupci, b sigui per hardware (entrada) o per software (entrada o sortida). Aix ens du al segon

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
162 Disseny de sistemes digitals amb microprocessadors

nivell que hem anomenat dE/S. Si ara aquesta rutina dE/S (p.ex. un driver) necessita el servei de
manipulaci de fitxers gestionat pel sistema, aleshores es produir un altre canvi de nivell mitjanant
una interrupci software (dun nivell de prioritat ms alt que lanterior) que ens du al nivell de sistema.
Finalment, si dins daquest nivell necessitem ms recursos, per exemple memria, gestionats pel nucli,
forarem un altre canvi de nivell.

La finalitat ltima daquesta estructura organitzada en nivells s protegir alguns recursos del sistema,
dels quals lusuari no coneix ni lestat ni la utilitzaci, contra qualsevol mal s. Aix s imprescindible
en els sistemes multitasca i/o multiusuari. s per aix que la major part dels processadors avanats
que estan pensats per aquest tipus daplicacions, la tenen en menor o major mesura.

5.14.1 Un exemple senzill. El P 68000 de Motorola

Un P que illustra b aquestsconceptes per ra de la seva estructura relativament senzilla s el 68000


de Motorola. Aquest processador t noms dos modes o nivells de privilegi, anomenats supervisor i
usuari, dels quals el primer s ms prioritri que el segon. Totes les excepcions es processen en mode
supervisor, i cada mode t el seu propi registre dstack i les seves prpies zones de memria, tan per
programa com per dades.

Taula 5.3

FC2 FC1 FC0 CICLE


L L L Reservat
L L H Dades usuari
L H L Programa usuari
L H H Reservat
H L L Reservat
H L H Dades supervisor
H H L Programa supervisor
H H H IACK

El P 68000 t tres lnies dedicades a indicar el seu estat anomenades FC0, FC1 i FC2, el significat de
les quals es dna a la taula 5.3. Cal assenyalar que aquest processador no t una lnia dedicada al
reconeixement de les interrupcions (IACK) sin que aquest estat sindica amb FC0=FC1=FC2=1.

Conv indicar tamb que si fem servir aquestes lnies en la descodificaci de la memria, podem tenir
espais separats per cada un dels modes.

La taula dels vectors dexcepci ocupa els primers 1.024 bytes de la memria. La llista daquests
vectors es dna a la taula 5.4. Tots ells es troban a lespai de dades del mode supervisor (DS), menys
el vector de RESET, que ocupa 8 bytes i est a lespai de programa del mode supervisor.

Si b moltes de les excepcions de la taula 5.4 sn autoexplicatives, daltres mereixen una descripci:

Reset (externa). Es produeix en activar la lnia de RESET*. Inicialitza el processador.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 163

Error de bus (externa). Es produeix en activar la lnia de BERR*.

Error dadrea (interna). Sactiva enintentar accedir a una adrea senar.

Instrucci illegal (interna). Opcode no definit o illegal.

Divisi per zero (interna). Sactiva si el denominador duna divisi s zero.

Trace (interna). Si est activat el flag T del registre destat, aleshores es produeix una excepci
a la fi de cada instrucci. s un ajut al desenvolupament de programes que permet executar-los
pas a pas.

Taula 5.4

VECTOR ADREA ESPAI ASSIGNACI


0 000H PS Reset: SSP inicial
- 004H PS Reset: PC inicial
2 008H DS Error de bus
3 00CH DS Error dadrea
4 010H DS Instrucci illegal
5 014H DS Divisi per zero
6 018H DS Instrucci CHK
7 01CH DS Instrucci TRAPV
8 020H DS Violaci de privilegi
9 024H DS Trace (pas a pas)
10 028H DS Emulaci 1010
11 02CH DS Emulaci 1111
12 030H DS Reservada
13 034H DS Reservada
14 038H DS Reservada
15 03CH DS Interrupci no inicialitzada
16-23 040-05FH DS Reservades
24 060H DS Error dinterrupci
25 064H DS Autovector nivell 1
26 068H DS Autovector nivell 2
27 06CH DS Autovector nivell 3
28 070H DS Autovector nivell 4
29 074H DS Autovector nivell 5
30 078H DS Autovector nivell 6
31 07CH DS Autovector nivell 7
32-47 080-0BFH DS Vectors de TRAP
48-63 0C0-0FFH DS Reservades
64-255 100-3FFH DS Vectors dusuari

Finalment, a la taula 5.5 es mostra la codificaci dels diferents nivells dinterrupci externa
disponibles i les seves prioritats.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
164 Disseny de sistemes digitals amb microprocessadors

Taula 5.5

IPL2 IPL1 IPL0 NIVELL TIPUS


L L L 7 N.M.I.
L L H 6 Int. nivell 6
L H L 5 Int. nivell 5
L H H 4 Int. nivell 4
H L L 3 Int. nivell 3
H L H 2 Int. nivell 2
H H L 1 Int. nivell 1
H H H 0 No interrupci

5.15 La interfcie amb els perifrics

A lapartat 5.3 ja hem tractat la interfcie amb el P, que hem descrit com un conjunt de registres o
posicions de memria. Aix ens ha estat possible grcies a lhomogeneitat daquesta interfcie i de
lestructura del P.

Contrriament, la interfcie amb el perifric pot ser tan variada com la prpia estructura daquests i
aix fa que la seva sistematitzaci sigui molt dificil. Considerem, per exemple, i sense la pretenci de
ser exhaustius, la gran diversitat de perifrics habituals en molts sistemes amb P:

1. Dispositius dentrada:

Teclat Tauleta digitalitzadora


Joystick Conversor A/D
Ratol Mdem
Polsadors

2. Dispositius de sortida:

CRT Impressora
Pantalla de LC Traador
Dgits de LED Conversor D/A
Perforadora de cinta Mdem

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 165

3. Dispositius demmagatzemament

Discs durs i flexibles Cintes de backup


CD ROM

Malgrat que tots ells tenen caracterstiques comunes, una sistematitzaci completa a partir daquestes
s gaireb impossible, i per aix optem per una classificaci noms segons el format de les dades.
Aquest format es considera segons si la informaci es multiplexa en lespai o en el temps i dona lloc a
la classificaci segent:

1. Comunicaci en parallel

De byte

De bloc

2. Comunicaci en srie

Asncrona

Sncrona

En els apartats que segueixen les tractarem amb ms detall.

5.16 Comunicaci en parallel

El factor com de la comunicaci en parallel s lexistncia dun nombre determinat de lnies que
permeten la transmissi simultnia de ms dun bit alhora (multiplexatge en lespai). El cas ms
general s el de vuit lnies (byte) per el tractament s el mateix per a qualsevol altre nombre.

Com que lestructura de busos del P s tamb una estructura en parallel, ladaptaci es fa ms
senzilla, sobretot pels P de vuit bits.

Entre els perifrics destructura en parallel podem trobar-ne dorientats a les impressores o als
dispositius de emmagatzemament (discs i cintes). La diferncia principal s la quantitat dinformaci
que transfereixen per unitat de temps. Per exemple, una impressora capa dimprimir 10 carcters per
segon necessita 10 bytes dinformaci per segon ms els bytes de control necessaris. Si en el cas pitjor
utilitza un protocol XON-XOFF, les necessitats poden arribar com a molt a 30 bytes/s. Daltra banda,
un controlador de disc pot tenir velocitats de transferncia fins a 1 Mbyte/s.

Si el P hagus de fer tota la feina, considerant per exemple una freqncia de rellotge de 10 Mhz i
quatre cicles de rellotge per cicle de transferncia, aleshores en el primer cas el processador estaria
ocupat pel perifric:

30 bytes/s x 400 ns/byte = 12 s/s = 0,0012 % del seu temps

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
166 Disseny de sistemes digitals amb microprocessadors

mentre que en el segon cas estaria ocupat:

1.000.000 bytes/s x 400 ns/byte = 400 ms/s = 40 % del seu temps.

Aquesta gran diferncia fa que shagi de pensar en mecanismes de transferncia diferents si no es vol
collapsar el P noms amb latenci a lE/S. En el primer cas, la transferncia dun byte cada cop s
adequada, mentre que en el segon cas hi ha, com veurem, mecanismes ms eficaos que, entre daltres
propietats, tenen la de poder transferir la informaci per blocs.

5.17 Comunicaci en parallel orientada a byte

La realitzaci de dispositius dE/S en parallel per a perifrics orientats a byte s, de fet, la ms


immediata. Aquest dispositiu ha tenir les propietats segents:

Ser adreable.

Poder establir el sentit de la transferncia.

Allar el bus de dades del P del bus dE/S.

Adaptar els busos del P als del perifric.

Sobre la base de lestructura genrica de la figura 5.3, considerem com es pot realitzar cada una de les
parts. Per aix plantejarem dos exemples illustratius, corresponents a un perifric de sortida (dos
dgits de set segments) a la figura 5.15 i a un dentrada (un teclat de matriu de 16 tecles) a la figura
5.16.

Comencem pel dispositiu de sortida de la figura 5.15. El registre est constitut per vuit biestables
tipus D amb sortida de tres estats del tipus 74LS373. El senyal LE (Latch Enable) es el senyal
dhabilitaci (CLOCK) dels biestables i el senyal OE* (Output Enable) el de la sortida de tres estats.
La interfcie amb el perifric la formen dos descodificadors BCD-7 segments del tipus 74LS47. Les
funcions dadreabilitat i establiment del sentit de la transferncia les realitza la porta NOR de dues
entrades, construda a partir d1/4 de circuit del tipus 74LS02. En aquest cas, com que es tracta dun
dispositiu noms de sortida, lallament del bus de dades del P no s necessari. En canvi, si que ho s
el fet de mantenir la informaci estable entre adreaments successius, i daqu la utilitzaci de
biestables.

El seu funcionament s molt senzill. Qualsevol accs descriptura a ladrea on es troba mapat el
dispositiu, que t nicament un registre de sortida de dades, activa el senyal intern REGSEL que fa
que els biestables siguin transparents a la informaci i actualitzin els dgits amb el contingut del bus de
dades del P. Amb el flanc de baixada de REGSEL es fixa la informaci fins al prxim accs.
Lentrada OE* es troba permanentment activada ja que la informaci sha de mantenir a lentrada dels
descodificadors per tal que els dgits restin encesos.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 167

WR* DISPOSITIU E/S


LGICA DESC. E/S

REGSEL
AB LGICA INTERFCIE
DESC. PERIFRIC
1/4 74LS02 PERIFRIC
I/OB
4 7
OE* LE 74LS47

8
O0-O7
8 D0-D7
DB
4 7
74LS373 74LS47

REGISTRE

Interfcie 1 Interfcie 2

Fig. 5.15 Exemple de sortida de set segments

El dispositiu de la figura 5.16 s una de les adaptacions possibles dun teclat de matriu (8x2) a un P.
Es tracta dun dispositiu dentrada.

El registre (que, de fet, no es pot considerar estrictament com a tal perqu no t memria) es
construeix a partir dun buffer inversor de tres estats del tipus 74LS240, que s tamb lencarregat
dallar el bus de dades del P quan no saccedeix al teclat. Aquest circuit s transparent a la
informaci quan E1* i E2* estan activats. La interfcie amb el perifric la formen les vuit resistncies
R0-R7 d1 K connectades a Vcc (pull-up) que mantenen les files I0-I7 a nivell alt en reps, ms els
dos inversors de collector obert formats a partir d1/3 de circuit del tipus 74LS05. Les funcions
dadreabilitat i establiment del sentit de la transferncia les realitza la porta OR de dues entrades,
construda a partir d1/4 de circuit del tipus 74LS32.

El seu funcionament s tamb senzill per requereix una explicaci. Qualsevol accs de lectura a les
adreces on es troba mapat el dispositiu activa el senyal intern REGSEL* que fa que els buffers siguin
transparents a la informaci. En aquest cas, per, el dispositiu ocupa 4 posicions de memria (o E/S)
segons la taula 5.6.

Taula 5.6

ADREA A1 A0 OBS.
BASE+0 0 0 REPOS
BASE+1 0 1 COL1
BASE+2 1 0 COL2
BASE+3 1 1 NO

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
168 Disseny de sistemes digitals amb microprocessadors

En aquesta taula, BASE+0 s ladrea base del controlador, obtinguda de descodificar les adreces del
P excepte A0 i A1, que sutilitzen directament, i de considerar A0=A1=0. La resta de les quatre
adreces ocupades surten de les combinacions posibles dA0 i A1.

A0
1/3 74LS05 A1
INTERFCIE PERIFRIC
8x1K LGICA DESC. E/S LOGICA An-A2
1/4 74LS32
R0 DESC.
I0
+ REGSEL* RD*
R1
+
R2 E1* E2*
+
R3 8
D0-D7 DB
+ 8
Interfcie 1
R4 I0-I7
+
R5 74LS240
+ REGISTRE
R6
+
R7 I7
+
col. 1 col. 2 Interfcie 2
PERIFRIC

Fig. 5.16 Exemple dentrada dun teclat

Un accs a BASE+1 activa REGSEL* i, si hi ha algun polsador actuat, posa COL1 a nivell baix i
tamb la lnia I0-I7 corresponent al polsador premut. Com que els buffers sn transparents
(REGSEL*= 0), aquesta informaci surt cap al bus de dades del P, que cont un 1 en el bit
corresponent a la fila del polsador activat i sengles 0 a la resta (el buffer s, de fet, inversor). Si no es
troba cap 1 es procedeix a efectuar un accs a BASE+2 per escombrar els polsadors de COL2. La
informaci llegida la guarda el P per fer-ne el que calgui. Ladrea BASE+0 es pot considerar de
reps perqu no altera res, i la BASE+3 pot produir un resultat ambigu ja que escombra COL1 i COL2
alhora i, per tant, no sha de fer servir.

Aquest controlador de teclat s molt senzill i no proporciona cap ms informaci que la posici de la
tecla premuda. Per tant, el P lha de anar a llegir peridicament i, per saber si la tecla premuda s
diferent de lanterior, ha de comparar la dada llegida amb lanterior. No hi ha cap registre destat que
ens ho indiqui.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 169

5.17.1 Funcionament per interrupcions

En el cas que vulguem sincronitzar el teclat mitjanant interrupcions, necessitem dues informacions
ms: el senyal de petici dinterrupci (INT*) i el vector dinterrupci. Aquest ltim no s estrictament
necessari ja que podrem fer servir una interrupci directa o autovectoritzada, per per illustrar millor
lexemple lagafarem vectoritzada.

El senyal INT* sha de produir cada cop que es premi un polsador. Per poder-la obtenir sense massa
canvis, modificarem el circuit de la figura 5.16 tal com es mostra a la figura 5.17.

En primer lloc, hem de poder allar el teclat del bus dadreces perqu la informaci que circula per A0
i A1 quan no llegim el teclat no hi interfereixi. Per aix canviem els inversors en collector obert
74LS05 per inversors de tres estats 74LS366. El dode a la sortida els fa treballar com si fossin en
collector obert. Mentre el senyal REGSEL* no est activat, els inversors de les lnies A0 i A1 es
troben en alta impedncia i, si no hi ha cap polsador premut, les resistncies Ra i Rb mantenen a 0 les
entrades de la porta OR i, per tant, lentrada CLK del biestable. Els inversors amb histresi 74LS14 es
posen per eliminar els rebots dels polsadors.

Quan sactiva un polsador, una de les entrades de la porta OR puja a 1 forada per les resistncies de
pull-up del teclat. Aix provoca el pas a 1 de CLK, i la lnia INT* baixa a 0 i provoca lactivaci de la
lnia de petici dinterrupci del P. Quan aquest va a llegir el teclat i activa, per tant, REGSEL*, la
petici sesborra.

A0
A1
1/3 74LS366

REGSEL*

1/3 74LS14 CLR*


CLK Q

D Q INT*
TECLAT
PR*
Vcc
1/2 74LS74

1/4 74LS32

Ra Rb

Fig. 5.17 Generaci del senyal INT

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
170 Disseny de sistemes digitals amb microprocessadors

A la figura 5.18 es mostra una forma de generar el vector dinterrupci de manera que es pugui
programar.

IACK*

INT*

0 + I0
1 + E1* E2*

0 +
D0-D7 8
1 + 8
I0-I7
0 +
1 + 74LS240

0 +
1 + I7

Fig. 5.18 Generaci del vector dinterrupci

Els interruptors forcen un 0 si estan tancats i les resistncies de pull-up un 1 si estan oberts. El vector
que sillustra a la figura s lAAH (10101010B). Aquest vector salla del bus de dades del P amb
sengles buffers de tres estats (74LS240) que noms sactiven quan la interrupci sha demanat (INT*)
i durant el cicle de reconeixement dinterrupci (IACK*). Conv assenyalarque el senyal INT* no es
desactiva fins que el P accedeix al teclat i, per tant, est activat durant tot el cicle de reconeixement.

5.18 Comunicaci en parallel orientada a bloc. Accs directe a memria

Hem vist que pels perifrics rpids, principalment els de emmagatzemament massiu, com els discs,
que necessiten transferir una gran quantitat dinformaci, la tcnica habitual denviar un byte o com a
mxim uns quants bytes a cada accs no s adequada o, si ms no, s poc efica.

Abans de descriure noves tcniques de transferncia ms adients, s convenient situar aquests


perifrics en el seu context en el sistema.

En general i sense pretendre ser exhaustius, podem classificar els sistemes amb P en dos grans grups
segons la seva tasca principal:

Sistemes de control: La quantitat dinformaci que processen no s molt gran per s molt
crtica, pel que fa al temps de resposta, i prov generalment de fonts externes molt variades.

Sistemes de clcul: La quantitat dinformaci que processen s molt gran per el temps de
resposta no s crtic, encara que si que ho s el temps de processament, i aquesta informaci
prov en la seva major part de la memria.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 171

En els sistemes daquest segon grup hi ha generalment ms dun nivell de memria que podrem
descriure com a memria principal, directament accessible per la CPU, i memria de masses, formada
per una o diverses unitats de disc i, eventualment, de cinta.

Atesa la gran quantitat dinformaci que es manipula, no tota pot estar a la memria principal al
mateix temps, tant si es tracta de programa com de dades. Aix fa que lexecuci de qualsevol
aplicaci impliqui un intercanvi important dinformaci entre el disc i la memria i que aquest
intercanvi shagi de dur a terme contnuament.

DISC
CONT.
MEMRIA CPU
DISC

E/S

Fig. 5.19 Accs directe a la memria. Memria de doble porta

En una transferncia normal dE/S, la informaci amb origen o destinaci als perifrics ha de passar
forosament pels registres de la CPU. Aix fa necessria la intervenci daquesta, la qual cosa alenteix
molt el procs i ocupa una bona part de la seva capacitat, que altrament podria dedicar-se al
processament de les dades prpiament dites.

Una solluci s, doncs, saltar-se la CPU i enllaar directament el disc i la memria. Aquesta tecnica
rep el nom daccs directe a la memria o DMA (Direct Memory Access). Aix mateix, ats que la
quantitat dinformaci que sha de transferir s gran i, a ms, contigua, en general no es transfereix un
sol byte cada cop sin un conjunt contigu de bytes anomenat bloc.

La figura 5.19 en mostra una primera possibilitat. En aquest cas, per, la memria ha de disposar de
dos accessos independents (memria de doble porta) la qual cosa no s corrent en els sistemes petits o
mitjans, atesa la seva complexitat i el seu cost elevat. Leficincia, en canvi, s molt gran ja que
permet la realitzaci dambdues funcions alhora. Duna part, la CPU pot accedir a la memria per una
porta mentre que per laltra el controlador de disc pot intercanviar informaci amb la memria, amb
lnica limitaci que no es pot accedir a la mateixa posici alhora per les dues portes si algun dels dos
accessos s descriptura. A ms, com en tot sistema en parallel, hem destablir mecanismes de control
per assegurar la coherncia de la informaci.

A la figura 5.20 sillustra una altre disposici ms habitual en la qual la memria t una sola porta
daccs. En aquest cas, la CPU i el controlador de disc han de compartir els busos i, per tant, sha
destablir un mecanisme de control i arbitratge que permeti que tots dos dispositius puguin utilitzar el
bus sense interferncies ni prdues dinformaci.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
172 Disseny de sistemes digitals amb microprocessadors

5.19 El control dels busos

Si el P ha de poder compartir els seus busos amb daltres dispositius, especialment amb els
anomenats controladors de DMA, aleshores ha dexistir un mecanisme que permeti assegurar que en
cap cas no es pot produir cap conflicte en el bus, s a dir, que dos transmissors intentin controlar el bus
al mateix temps.

Aix implica les condicions segents:

El P ha de poder desconnectar (deixar en alta impedncia) les lnies que ha de compartir.

El P ha de tenir una entrada per la qual sel pugui avisar de que algun altre dispositiu necessita
els busos. Normalment sanomena BR (Bus Request) o b HOLD.

El P ha de poder decidir, segons la tasca que est portant a terme a cada instant, si est en
condicions de cedir el control dels busos. Aix ho controla amb un senyal de sortida que, en
general, sanomena LOCK.

El dispositiu que necessiti els busos ha de tenir una sortida per demanar-los al P. Aquest
senyal de sortida rep el mateix nom que el dentrada del P, s a dir, BR.

El P ha de tenir una sortida per indicar, al dispositiu que ha demanat els busos, que en pot
disposar. Sanomena BG (Bus Grant) o tamb HOLDA (Hold Acknowledge)

Finalment, el dispositiu ha de tenir una entrada a travs de la qual el P li pugui indicar la


disponibilitat dels busos. Habitualment rep tamb el nom de BG.

Amb aquests senyals sha de construir un protocol que garanteixi el bon s dels busos en cada
moment.

MEMRIA CPU

DISC
CONT.
DISC
E/S

Fig. 5.20 Accs directe a la memria. Memria de simple porta

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 173

Abans de considerar i establir el protocol de cessi de busos, shan de fer algunes consideracions. En
primer lloc, sha de veure qu implica per al P la cessi dels seus busos i en quin instant ho pot fer
sense que el seu funcionament es vegi pertorbat.

Des de linstant en qu deixa els busos en alta impedncia fins a linstant en qu recupera el seu
control, el P no pot fer res que impliqui transferncies pel bus. s com si obrs un parntesi en
lexecuci de la seva tasca. Aix ho pot fer si sha acabat lexecuci del cicle mquina en curs
(anomenat tamb cicle de bus).

Per tant, el P mostreja la lnia BR en el flanc de baixada de lltim cicle de rellotge de cada cicle
mquina i, en cas de trobar-la activa, entra en un cicle especfic anomenat cicle de cessi dels busos.

Una vegada ms, hi pot haver diferncies entre els diferents P, per el cicle genric t unes fases ben
determinades i comunes a tots. En el cronograma de la figura 5.21 es poden identificar aquestes fases
associades als diferents senyals:

1. El P mostreja la lnia de petici (CLK i BR)

2. El P posa les altres lnies en alta impedncia i ho notifica (BG)

3. El dispositiu que ha demanat el bus pren control de les lnies.

4. El P mostreja a cada flanc de rellotge lestat de la lnia BR. Quan el dispositiu acaba
dutilitzar el bus posa les lnies en alta impedncia i desactiva BR.

5. El P desactiva el senyal BG i reprn el control del bus.

* TB TB T3

CLK
1 4
BR

BG
2 5
P
Totes les altres lnies
DISP. 3

* ltim cicle de rellotge del cicle mquina en curs


Fig. 5.21 El cicle de cessi de bus

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
174 Disseny de sistemes digitals amb microprocessadors

Cal assenyalar que els dispositius que puguin demanar el bus han destar fets de tal manera que tinguin
una entrada que, en cas destar activa, inhibeixi la seva sortida de BR. Aquesta entrada es connecta a
la sortida LOCK del P de manera que aquest pugui controlar quan est en condicions de cedir els
busos i quan no. Aix s aix perqu, en general, els P estan fets de tal manera que no poden negar-se
a cedir els busos un cop rebut el senyal BR i, per tant, han de poder inhibir-lo si volen poder controlar
quan els cedeixen.

El mostratge de la lnia BR es fa al final de cada cicle mquina mentre que, tal com sha vist, el de la
lnia INT es fa al final de cada cicle dinstrucci. Aix vol dir que en lltim cicle de rellotge de lltim
cicle mquina de cada instrucci es mostrejan totes dues. Quina acci es pendr primer en cas que les
trobi totes dues activades? Aquesta ambigitat es resol a favor del cicle de cessi de busos, que s ms
prioritri que el de reconeixement dinterrupci.

Aix vol dir que, en el cas dun sistema on hi hagi algun dispositiu capa de controlar el bus (a part del
P) i hi hagi tamb algun dispositiu sincronitzat per interrupcions, haurem de considerar que, en el cas
pitjor, el servei de la interrupci pot retardar-se tot el temps que el P no tingui el control dels busos.

5.20 El cicles de DMA

En un sistema com el de la figura 5.20, amb una sola via daccs a la memria, que implica, doncs,
que laccs a aquesta no pot ser simultani per part del P i del controlador de DMA, la millora de
rendiment del sistema noms pot ser deguda a dues circumstncies:

Laccs a la memria per part del controlador de DMA noms es produeix quan el P no
necessita accedir-hi, s a dir, quan est executant instruccions els operands de les quals ja es
troben en els seus registres (p. ex., ADD, ROTATE, MUL, etc.).

El mecanisme de transferncia del controlador de DMA s molt ms efica que lhabitual a


travs del P.

La primera circumstncia dna peu al mode anomenat dindicaci de lestat de la memria o MSM
(Memory Status indication Mode), mentre que la segona origina les diverses variants del mode de
robatori de cicle o CSM (Cycle Stealing Mode).

5.20.1 Mode dindicaci de lestat de la memria (MSM)

Per poder treballar en aquest mode, el P ha de tenir una sortida que indiqui als altres dispositius quan
est accedint a la memria. Daquesta manera, el controlador de DMA pot utilitzar aquest senyal per
demanar el bus noms quan el P no el necessiti.

Per exemple, els P de la famlia 6800 de Motorola tenen un senyal anomenat VMA (Valid Memory
Adress) que sactiva quan la CPU ha posat una adrea vlida al bus. A la famlia del 68000, en canvi,
el senyal del mateix nom no acompleix la mateixa missi. En aquest cas, es podria fer servir el senyal
AS (Adress Strobe), que s el que serveix per validar les adreces.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 175

Per aquest mode no s de gran utilitat, ja que la utilitzaci dels busos per part del controlador de
DMA tendeix a ser irregular i errtica, a ms de no adaptar-se a les necessitats de transferncia duna
unitat de disc, per exemple, que requereix transferir sectors complets (un sector = 256 o 512 bytes,
generalment).

Hem de considerar que la tcnica de DMA es fa servir gaireb exclusivament per a perifrics que
necessiten transferir grans quantitats dinformaci, com els discs, i que en aquest tipus de perifrics
aquesta est organitzada no en bytes o paraules sin en blocs o sectors.

Dalta banda, si aquests perifrics formen part dun sistema que suporta memria virtual o overlays, s
a dir, que en un moment donat la informaci que el processador necessita pot no trobar-se a la
memria principal i, per tant, s imprescindible transferir-la des del disc a aquesta per tal de poder
continuar lexecuci normal, aleshores no t cap sentit retardar la transferncia o intercalar-la amb
lactivitat del processador perqu aquesta no es pot produir si abans no sha produt aquella.

5.20.2 Mode de robatori de cicle (CSM)

En aquest mode, el P es veu forat, per lactivaci del senyal BR o HOLD, a cedir la utilitzaci dels
busos al controlador de DMA durant un temps, que pot ser des dun cicle de rellotge fins a un nombre
predeterminat de cicles.

Si la cessi es produeix noms per un , la transferncia sanomena de byte, per pot ser de paraula o
fins i tot de ms, depenent de lample del bus de dades del P.

BR BR BR

DMA
(a) Transferncia de byte o paraula
BR

DMA
(b) Transferncia de bloc

Fig. 5.22 Variants DMA de robatori de cicle

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
176 Disseny de sistemes digitals amb microprocessadors

A la figura 5.22 es mostren les dues possibilitats. Generalment, els controladors de DMA sn
dispositius VLSI que poden ser programats per treballar de totes dues maneres i, si treballen en
transferncia de blocs, la longitud daquests tamb s programable.

Arribats en aquest punt, i per tal daclarir les qestions de nomenclatura, s important assenyalar que
en bona part de la literatura es dna el nom de mode de robatori de cicle noms al mode de
transferncia de byte, mentre que laltre rep senzillament el nom de mode de transferncia de bloc.
Aqu els hem volgut agrupar perqu, de fet, la tcnica s la mateixa i noms varia la longitud de la
transferncia.

5.21 El controlador de DMA (DMAC)

El controlador de DMA presenta dues diferncies respecte a la resta de dispositius dE/S:

Com que, de fet, es tracta dun dispositiu capa de controlor-ne daltres, sintercala entre la
CPU i el dispositiu dE/S prpiament dit. Aix es mostra a la figura 5.23.

A ms de la interfcie normal de tot dispositiu dE/S amb la CPU (interfcie 1), t una interfcie
particular que est constituda per les lnies de control del bus.

Tamb els dispositius dE/S que shan de poder connectar a un DMAC tenen una part de la seva
interfcie 1 connectada a aquest en lloc de a la CPU, perqu s el DMAC qui ha de controlar les
transferncies entre el dispositiu dE/S i la memria quan la CPU es troba desconnectada dels busos.

Per comprendre millor cada una de les interfcies de la figura 5.23, a continuaci sexpliciten les lnies
que les componen, amb una referncia a la numeraci de la figura.

Interfcie 2 Interfcie 2
DISC
2 4 CONT. 6
CPU DMAC
DISC

3 Interfcie 1 5
1
Interfcie 1
7
MEM

Fig. 5.23 Interfcies del DMAC

1. Totes les lnies de la CPU excepte les de control del bus

2. Lnies de control del bus

3. Totes les lnies de la CPU excepte les de control del bus

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 177

4. Lnies especfiques per controlar les transferncies directes entre CONT.DISC i MEM

5. Totes les lnies de la CPU excepte les de control del bus

6. Lnies especfiques de control, estat i dades del perifric (DISC)

7. Adreces, dades i R/W*

Quan es fa referncia a totes les lnies de la CPU, se nhan dexcloure les alimentacions
i,eventualment, alguna lnia especial com, per exemple, les destat del processador. En general, amb
aquesta expressi es vol fer referncia als busos dadreces, dades, interrupci i control de les
transferncies.

MEM
MA

MD
a DMAC
AB
MC
DB R1 c
R2
TCB R3 E/S DB
R4
CONT. DISC

DMARQ DISC
BR
DMACK
b d E/S R
BG
E/S W

Fig 5.24 Arquitectura dun DMAC

A la figura 5.24 es mostra amb ms detall larquitectura interna dun DMAC i les seves
interconnexions. La funci de cada una de les parts s la segent:

a) Es la interfcie del DMAC amb la CPU i sencarrega de programar els registres, que tenen les
funcions segents:

R1: Fa la funci de buffer dE/S del DMAC.

R2: Cont el nombre delements (bytes, paraules, etc.) que shan de transferir.

R3: Cont ladrea del primer element que sha de transferir.

R4: s el registre de control del DMAC.

b) s la interfcie encarregada daconseguir i retornar els busos.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
178 Disseny de sistemes digitals amb microprocessadors

c) Genera els senyals de control de la memria (adreces i R/W*) quan el DMAC controla els busos.

d) Realitza la interfcie amb el dispositiu dE/S prpiament dit.

Com qualsevol dispositiu, el DMAC es troba mapat en algun lloc de lespai adreable de la CPU, sigui
memria o E/S. Quan s la CPU qui controla els busos, pot accedir als registres del DMAC per
programar el mode de treball, aix com la quantitat dinformaci que ha de transferir i el lloc on lha
de collocar. Aix mateix, tamb s la CPU qui programa els altres dispositius com, per exemple, el
controlador de disc.

Quan el DMAC rep una sollicitud de transferncia per part del controlador de disc (DMARQ activa)
aleshores sollicita els busos de la CPU i, tan punt els aconsegueix, ho comunica pel DMACK al
controlador. A partir daquest moment s el DMAC qui controla la transferncia entre el controlador
de disc i la memria fins que el contingut de R2, que es decrementa a cada transferncia, arriba a zero,
moment en el qual el DMAC retorna els busos a la CPU.

Cal indicar per, que cada transferncia suposa dues operacions. En el cas que aquesta es faci des de
la memria al disc, sha de llegir la dada de la memria i escriure-la al disc. En el cas contrari, sopera
al inrevs. Aquesta tcnica sanomena DMA seqencial.

Hi ha DMAC que suporten una tcnica, dita de DMA simultani, en la qual ambdues operacions es
porten a terme a la vegada. Per fer-ho, el DMAC activa alhora els senyals de lectura de la memria i
descriptura al perifric (MEMR i IOW, per exemple), o viceversa.

Els cicles de transferncia DMA varien normalment entre dos i quatre perodes de rellotge. Aix vol
dir que, a 10 MHz i amb DMA simultani, podrem arribar, amb un bus de dades de 16 bits, a 10
Mbytes/s. Aquestes velocitats poden ser vlides per a transferncies entre memries en dos sistemes
diferents. Els sistemes amb posicionament mecnic com els discs magntics, tot i comptar amb buffers
adequats, difcilment suporten velocitats de ms d1 Mbyte/s.

5.22 Comunicaci en srie

En el cas de la comunicaci en srie, el factor com s lexistncia duna lnia (ms un altre de retorn)
per la qual circula la informaci, un bit desprs de laltre (multiplexatge en el temps).

La simplicitat de la via de comunicaci es contraposa amb la major complexitat de la interfcie amb el


P, ja que hi ha dhaver una conversi parallel-srie o srie-parallel. A ms, la velocitat de
transmissi es veu reduda per lexistncia duna sola via.

Tot i aix, la transmissi en srie s prcticament lunica opci quan es tracta de comunicacions amb
elements remots, b sigui dmbit local (diguem de fins a un quilmetre) o b utilitzant xarxes globals
de dades i, fins i tot, la xarxa commutada del servei telefnic.

En aquest ltim cas, els dispositius en srie destructura purament digital no es poden conectar
directament amb la xarxa telefnica ja que aquesta est pensada per transmetre senyals de veu
(analgiques) amb un ample de banda redut (300 Hz-3 KHz). La connexi es porta a terme mitjanant
un adaptador interposat anomenat mdem (modulator-demodulator) que transforma els senyals

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 179

digitals en senyals de veu, utilitzant, per exemple, dues freqncies diferents, una per al 0 i un alter per
a l1. A la figura 5.25 es mostra aquesta disposici.

SISTEMA 1 SISTEMA 2

P MDEM MDEM P

1 0

f1 f2

Fig. 5.25 Enlla en srie permitj de la xarxa conmutada

Hi ha diverses tcniques de transmissi en srie. Si es fa una classificaci segons el flux de dades,


podem trobar-ne de tres tipus:

Simplex: Es tracta duna transmissi unidireccional.

Duplex: En aquest cas, la transmissi s bidireccional per alternativa.

Full-duplex: s una transmissi bidireccional simultnia. Requereix, com a mnim, dues lnies i
un retorn.

En general, els enllaos de dades solen ser full-duplex.

Una altre classificaci pot ser segons el rellotge que seqencia la transmissi. En aquest cas, hi ha dues
possibilitats:

Sncrona: Existeix un nic rellotge per seqenciar la transmissi i la recepci. Aix implica
transmetre el rellotge com una informaci ms.

Asncrona: Els rellotges del transmissor i el receptor sn independents. Aix implica


sincronitzar la recepci peridicament.

La transmissi sncrona s ms complexa per permet velocitats ms altes (del ordre d1 Mbit/s, i fins i
tot ms) mentre que lasncrona s ms fcil de realitzar per les seves velocitats estan limitades a
algunes desenes de Kbits/s.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
180 Disseny de sistemes digitals amb microprocessadors

La transmissi sncrona est orientada a blocs, mentre que lasncrona ho est a carcters, que s el
nom que rep la unitat dinformaci en aquest tipus de transmissi.

En lmbit dels P la transmissi asncrona s molt ms utilitzada perqu sadapta prou b als
perifrics ms habituals. s per aix que comencem amb lestudi daquesta tcnica i ho fem amb ms
detall.

Hi ha una srie de velocitats de transmissi estandarditzades de valors:

300, 600, 1.200, 2.400, 4.800, 9.600,19.200, 38.400 .... bauds

un baud, que s una unitat de velocitat, es defineix com un element de senyal (bit) per segon.

5.23 La transmissi en srie asncrona

En la transmissi en srie asncrona, el factor ms important s assegurar el manteniment del


sincronisme en la recepci, malgrat que es facin servir relotges separats. Sense aquest sincronisme, la
recuperaci de les dades seria impossible.

Aix determina el format de transmissi que sha dutilitzar. Com que linstant dinici de la
transmissi pot ser qualsevol, sha daconseguir que el receptor pugui identificar-lo per tal de poder
sincronitzar-se i recuperar la informaci.

Aquesta informaci es transmet en conjunts de bits anomenats carcters i que, a ms de la informaci


prpiament dita, contenen una srie daltres bits que tenen a veure amb funcions de control.

Bit Bit Bits


start LSB Bits de dades MSB paritat
stop

Fig. 5.26 Format de la transmissi en srie asncrona

A lexemple de la figura 5.26 es mostra un format de carcter amb un bit dstart, set bits de dades, un
bit de paritat i dos bits dstop.

Bit dstart: Indica el comenament de la transmissi i fora la lnia, que en reps est a nivell
alt (dit marca), a nivell baix (dit espai). T la durada dun bit.

Bits de dades: Poden ser des de 5 fins a 8.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 181

Bit de paritat: Serveix per detectar errors dun bit. Pot ser parell, senar o inexistent (sense
paritat).

Bits dstop: Serveixen per marcar la fi de la transmissi dun carcter. Poden durar 1, 1,5 2
temps de bit.

La informaci de sincronisme (start i stop) i eventualment, la de paritat fan que no tot el temps
sestigui utilitzant la lnia per transmetre informaci prpiament dita. Aquesta informaci
complementria comporta una penalitzaci (overhead) que es mesura en un tan per cent sobre el
nombre de bits de dades.

Nre. de bits de control


Penalitzacio (en %)= 100
Nre. de bits de dades

Exemple 1. Calculeu el tant per cent de penalitzaci duna transmissi amb 1 bit dstart, paritat senar, 2
bits dstop i 7 bits de dades:

1+1+ 2
Penalitzacio = 100 = 57,1 %
7

Exemple 2. Calcueur el tant per cent de penalitzaci d una transmissi amb 1 bit dstart, sense paritat,
1 bit dstop i 8 bits de dades:

1+1
Penalitzacio = 100 = 25 %
8

Aix doncs, s evident que, quant ms elaborat i, per tant, ms segur s el protocol de transmissi,
major s la penalitzaci.

5.24 La tolerncia de sincronisme

Com ja hem dit, en la transmissi en srie asncrona els rellotges dun extrem i laltre sn diferents i
noms se sincronitzen al comenament de la transmissi de cada carcter. Aix vol dir que, si la
recepci de tots i cadascun dels bits que componen el carcter ha de ser correcta, el sincronisme sha
de mantenir almenys fins a la recepci del bit dstop.

Si fssim servir un rellotge de freqncia igual a la velocitat de transmissi en bits/s, aleshores els dos
rellotges haurien destar en fase a linici de la recepci si volgussim garantir que aquesta fos correcta.
Com que aix s prcticament impossible, el rellotge haur de tenir una freqncia major i mltiple
de la de la velocitat de transmissi.

A la figura 5.27 es mostra la situaci amb una freqncia de rellotge igual a 16 vegades la de
transmissi. Per tal de poder tolerar desviacions de sincronisme en ambds sentits, el punt de
mostratge teric sestableix al mig del temps de cada bit.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
182 Disseny de sistemes digitals amb microprocessadors

Siguin TR i fR la durada dun bit i la freqncia de rellotge del receptor respectivament i TE i fE el


mateix per a lemissor. Aix mateix, sigui K el factor entre la freqncia de rellotge i la velocitat de
transmissi en bits/s. Tenim que:

K K
fR = ; fE = (1)
TR TE

Daltra banda, les diferncies de freqncia entre el transmissor i el receptor provocaran una diferncia
entre les durades dun bit a la recepci i a la transmissi, de forma que tindrem:

TR = TE + T (2)

on T pot ser tan positiu com negatiu.

Lerror de sincronisme es compon de dues parts:

El desfasament entre rellotges, que dna lerror a linstant inicial. Com a mxim pot ser dun
perode de rellotge complet.

La desviaci de freqncia, que es tradueix en un error del temps de bit i que es va acumulant a
cada bit que es rep.

START STOP

Primer pols de rellotge


Rellotge 16X desprs del bit d' start

0 8 24 40 ......

Fig 5.27. Sincronitzaci de la transmissi en srie asncrona

Lerror total, que anomenarem error de mostratge i representarem per m , val doncs:

m =
TR
K
(
+ n 1 2 T ) (3)

on n s el nombre total de bits del carcter que es transmet.

Per tal de rebre b tots els bits, aquest error ha de ser menor que la meitat del temps dun bit a
lemissor, ja que mostregem al mig de la durada daquest.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 183

TE
m (4)
2

Substituint el valor de K a lexpressi de m donada per (3) i aplicant (4) sobt:

K 2
m (5)
2 + K ( 2n 1)

El fet que per a K = 1 lexpressi (5) dongui un error negatiu s degut al fet que amb una freqncia
de rellotge igual a la velocitat de transmissi s impossible mostrejar al mig de la durada dun bit. Per
a K = 2 el error mxim permissible es zero i a partir daquest valor, la tolerncia va augmentant amb
K.

Exemple. Calculeu lerror de mostratge mxim permissible en una transmissi que utilitza 1 bit dstart, 8
bits de dades,1 bit de paritat i 1 dstop per a K = 8 i 16.

Per a K = 8 tenim que

82 6
m = 3, 5 %
2 + 8 21 170

i per a K = 16

16 2 14
m = 4, 7 %
2 + 16 21 338

En general, sutilitzen oscilladors de cristall per generar els rellotges i errors inferiors a l1% no sn
gens difcils daconseguir.

5.25 La transmissi sncrona

La transmissi sncrona no est orientada a transmetre de carcter en carcter sin en blocs. Aix s
aix per poder aprofitar millor les possibilitats de transmetre a altes velocitats i disminuir la
penalitzaci.

Els protocols sncrons sn de dos tipus:

Orientats a blocs de carcters (BISYNC)

Orientats a blocs de bits (HDLC)

La figura 5.28 mostra el format dels dos protocols. Ambds tenen caracterstiques comunes. Per
exemple, tots dos transmeten al final del bloc un valor de checksum per tal de poder detectar eventuals
errors i retransmetre la informaci.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
184 Disseny de sistemes digitals amb microprocessadors

Els encapalaments sn diferents. En el BISYNC el text va precedit per indicadors dinici (STX, Start
of Text) i acabat per indicadors de final (ETX/ETB, End of Text/End of Block). Lencapalament
tamb porta indicador dinici (SOH, Start of Header). Els dos carcters inicials de la transmissi sn
de sincronisme (SYN)

DADES ETX/
SYN SYN SOH Encapalament STX Checksum
( N carcters) ETB

(a) Protocol BISYNC

Adrea Control DADES Checksum


01111110 (1 bit o ms) 01111110
(1 o 2 bits) ( N bits) (2 bytes)

(b) Protocol HDLC

Fig 5.28 Formats de transmissi en srie sncrona

En lHDLC, el carcter dinici i acabament del bloc s fix. Lencapalament es divideix en adrea i
control.

5.26 Estndards de comunicaci en srie

Fins aqu hem parlat del format de les dades, per no hem dit res de les lnies de comunicaci.
Aquestes poden ser de dos tipus:

Lnies de dades. Una per a cada sentit de la transmissi ms un retorn. Aquest retorn pot ser
com als dos sentits o no.

Lnies de control. Depenen de lestructura de la xarxa de comunicaci i dels elements


dinterfcie. Pot no haver-nhi cap.

Els estndards existents estn definits per interfcies amb la xarxa commutada de telefonia, encara que
a vegades es facin servir per a daltres situacions, simplificant-los adequadament.

5.26.1 Lestndard EIA RS-232C

Aquest estndard defineix un total de vint lnies. La figura 5.29 mostra les ms utilitzades per a la
realitzaci dinterfcies en srie. En algunes aplicacions, especialment locals, sen fan servir de fet
moltes menys. Fins i tot hi ha aplicacions en les quals noms sen fan servir tres.

El nmero que figura al costat de la nia correspon al de la pota del connector, que en aquest estndard
s un connector D-25.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 185

En la nomenclatura definida en aquest estndard, lequip que transmet/rep dades pren el nom de DTE
(Data Terminal Equipment), mentre que lequip que realitza la interfcie amb la xarxa de transmissi
de dades rep el nom de DCE (Data Communication Equipment).

PGND DCE
DTE 1
7
GND } Lnies de massa
TxD
2
3
RxD } Lnies de dades
DTR
20
DSR
6
P 4
RTS
Lnies de control MDEM
CTS
5
RI
22
CD
8
15
TxC
24 Lnies de sincronisme
RxC
17

Fig. 5.29 La interfcie RS-232C

La funci dels senyals de la figura 5.29 s la segent:

PGND (Protective Ground): s el terra de protecci. Es connecta al xassi a tots dos extrems.
GND (Ground): s el terra de senyal per on sefectua el retorn.
TxD (Transmitted Data): Per aquesta lnia, el DTE transmet cap al DCE
RxD (Received Data): Per aquesta lnia, el DTE rep dades del DCE
DTR (Data Terminal Ready): El DTE activa aquesta lnia quan est preparat
DSR (Data Set Ready): El DCE utilitza la lnia per indicar que sha connectat al canal de
comunicaci.
RTS (Request To Send): El DTE lactiva quan t dades per transmetre.
CTS (Clear To Send): El DCE activa la lnia quan est preparat per enviar dades.
RI (Ring Indicator): El DCE lactiva quan rep el to del canal de comunicaci.
CD (Carrier Detect): El DCE lactiva quan rep un senyal susceptible de ser desmodulat
TxC (Transmit Clock): Aquestes lnies permeten al DTE o al DCE lenviament de lun a laltre
dun senyal de rellotge per tal de sincronitzar-se.
RxC (Receive Clock): El DCE pot enviar un senyal de sincronisme al DTE per aquesta lnia.
Sutilitza noms en comunicaci sncrona.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
186 Disseny de sistemes digitals amb microprocessadors

En les aplicacions locals de baixa velocitat poden utilitzar-se, de fet, noms les lnies TxD, RxD i
GND.

Encara que, en principi, lestndard no est pensat per aix, en cas dutilitzar el RS-232C per
comunicar dos DTE (P per exemple), les lnies TxD i RxD shan dencreuar, ja que tots dos esperen
rebre per RxD i envien per TxD.

Els nivells lgics de lRS-232C no sn nivells TTL. El nivell baix ha destar dins el marge entre -3 V i
-25 V. Els del nivell alt han destar entre +3 V i +25 V. A ms, la lgica no s la mateixa per a totes
les lnies. Per a les lnies TxD i RxD, el nivell baix es defineix com un 1 lgic (lgica negativa). La
resta de les lnies utilitzen lgica positiva.

Aquesta diferncia de nivells lgics fa necessria la utilitzaci de circuits especfics de canvi de nivell.
La figura 5.30 mostra un exemple dutilitzaci daquests circuits especfics en la realitzaci duna
interfcie RS-232C.

+5V
+12V
Nivells
MC1488 RS-232C MC1489 Nivells
Nivells TTL
TTL

-12V

Fig. 5.30 Esquema de la transmissi RS-232C

Per limitar la possibilitat dinterferncies amb els circuits vens, especialment la radiaci i la diafonia,
cal mantenir les velocitats de variaci de la tensi (slew rate) en valors adequats. La norma especifica
un mxim de 30 V/s. En el cas que el cable o els circuits externs no presentin prou capacitat, caldr
afegir-hi un condensador exterior, de la manera que sindica a la figura 5.30.

5.26.2 Lestndard EIA RS-449

Un estndard que permet una major velocitat de transmissi i longituds de cable ms llargues s lRS-
449. Aquest estndard defineix fins a 30 lnies.

La major part dels senyals de lRS-232C es conserven per sen afeigeixen de noves amb funcions de
prova i detecci derrors. El connector s tamb diferent, per tal dacomodar els nous senyals.

Per lRS-449 defineix noms els aspectes mecnics i funcionals. Els aspectes elctrics, que en el cas
de transmissions a major distncia i velocitat sn els ms importants, sn definits en dos estndards
separats, que veurem a continuaci.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 187

5.26.3 Lestndard EIA RS-422

A la figura 5.31 sillustra una interfcie RS-422. Els nivells lgics estan definits de manera que al
nivell baix li correspon una tensi dentre -3.6 V i -6 V, mentre que al nivell alt li corresponen
tensions dentre 3.6 V i 6 V.

Nivells
Am26LS31 RS-422 Am26LS32
Nivells + Nivells
TTL R _ TTL

Fig. 5.31 Esquema de la transmissi RS-422

LRS-422 utilitza transmissi i recepci diferencials i els circuits tenen la capacitat de corrent suficient
per excitar lnies de transmissi de parell trenat amb impedncies de 50 o 75 .

La transmissi diferencial millora molt la immunitat al soroll en mode com i permet distncies i
velocitats altes amb bona fiabilitat i en ambients sorollosos (installacions industrials, per exemple).
LRS-422 s capa de comunicacions a 2 Mbits/s a distncies de lordre dels 100 m.

5.26.4 Lestndard EIA RS-423

A la figura 5.32 sillustra una interfcie RS-423. Els nivells lgics estan definits igual que en el cas de
lRS-422, amb un nivell baix dentre -3.6 V i -6 V, i amb un nivell alt dentre 3.6 V i 6 V.

LRS-423 utilitza transmissi unipolar i recepci diferencial i els circuits tenen, igual que per lRS-
422, la capacitat de corrent suficient per excitar lnies de transmissi coaxials amb impedncies de 50
o 75 .

Am26LS29 Nivells
RS-423 Am26LS32
Nivells Nivells
TTL + TTL
R _

Fig. 5.32 Esquema de la transmissi RS-423

La immunitat al soroll en mode com s tamb prou bona i permet distncies altes amb bona fiabilitat i
en ambients sorollosos, per les velocitats de transmissi no sn tan altes com en lRS-422. LRS-423
s capa de comunicacions a 150 Kbits/s a distncies de lordre dels 100 m.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
L'entrada/sortida 188

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
Casos prctics 189

6 Casos prctics

6.1 Introducci

Aquest captol est constitut per una srie d'exemples i de casos prctics, amb un tractament ms
ampli i detallat, que tenen per objectiu ajudar a entendre alguns aspectes de carcter ms prctic que
estan relacionats molt directament amb el contingut dels captols anteriors.

L'apartat 6.2 s un conjunt d'exemples de petits circuits associats al bon funcionament dels sistemes
amb microprocessador. La base terica es pot trobar als captols 2 i 3. Els apartats 6.3 a 6.6 inclouen
quatre casos d'estudi autocontinguts i que fan referncia a quatre aspectes bsics en els sistemes amb
microprocessador.

Cas d'estudi 1: Conformaci d'un mapa de memria i d'entrada/sortida per a un


microprocessador 68000.
Cas d'estudi 2: Configuraci d'un microcontrolador 68HC11 amb una memria externa
connectada.
Cas d'estudi 3: Disseny d'un port d'entrada/sortida.
Cas d'estudi 4: Exemple de la gesti d'interrupcions en un microprocessador 68000.

6.2 Circuits auxiliars: reset, wait, bus error

En aquest apartat s'estudia com dissenyar els circuits associats amb la generaci del reset de la CPU,
destats d'espera i del senyal d'error de bus. S'han escollit aquests exemples per la seva significaci:
tots els sistemes reals inclouen algun circuit que permet posar-lo en condicions inicials (reset). La
generaci dels perodes de wait s molt important des del punt de vista prctic, quan es necessita
compatibilitzar les velocitats relatives de les diferents parts del sistema (per exemple, quan s'utilitzen
dispositius de memria lents juntament amb CPU molt ms rpides). Sn els circuits que permeten
convertir els protocols de comunicaci sncrons en asncrons. El tercer exemple est molt dirigit al cas
del microprocessador 68000, per el concepte s prou genric com per constituir-ne una presentaci.
Aquest tipus de circuits sn els anomenats watchdog, que actuen com a alarmes quan es donen (o no
es donen) determinats esdeveniments.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.
190 Disseny de sistemes digitals amb microprocessadors

6.2.1 Circuit de reset

Tots els P han de ser inicialitzats quan s'hi connecta l'alimentaci. Aix s'aconsegueix generant a
l'entrada de reset del P un pols d'una durada determinada que depn de les caracterstiques particulars
del propi P. El pols de reset s tamb necessari si per alguna ra el P ha de ser reinicialitzat un cop
l'alimentaci ja est connectada. El circuit encarregat de generar aquests polsos s'anomena circuit de
reset.

La figura 6.1 mostra un dels possibles circuits de reset. Quan s'hi connecta l'alimentaci, el
condensador C, que inicialment es troba descarregat, comena a carregar-se de forma exponencial a
travs de R1 fins que assoleix el valor de l'alimentaci Vcc. La constant de temps R1C fixa el temps
que triga el valor de tensi del condensador a assolir el llindar de desactivaci del reset. D'aqu que
determini la durada del pols de reset. Un circuit d'aquest tipus ha de complir, en termes genrics, el
que s'especifica a l'apartat 3.7.4 del captol 3.

+5 V
CPU
D R1
S R2
RESET*

Fig. 6.1 Circuit de reset tpic per a un P

Normalment, el circuit intern de reset del P incorpora elements amb caracterstiques d'histresi
(Schmitt trigger) per evitar que el senyal intern de reset presenti oscillacions. Aquestes oscillacions
sn generalment causades per soroll (contactes imperfectes en el polsador o en linterruptor de
lalimentaci) a l'entrada reset del P en el moment que la tensi del condensador s propera al llindar
de desactivaci. Si el propi P no incorpora circuits amb histresi, aquests sn afegits externament
entre el condensador i l'entrada reset del P.

El dode D fa que el condensador es descarregui rpidament a travs de la impedncia de sortida de la


font d'alimentaci quan aquesta deixa d'actuar. Mentre l'alimentaci est connectada, tamb es pot
produir un reset del P per mitj del bot de reset situat a l'esquerra de la figura 6.1. Aix fa que el
condensador es descarregui a travs de la resistncia R2, que normalment acostuma a ser ms petita
que R1. La resistncia R2 tamb serveix per limitar el corrent de descrrega que circula pel
condensador perqu, si no, li podria causar danys i destruir-lo en un perode de temps curt.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 191

6.2.2 Circuit de generaci d'estats d'espera

Una de les preguntes que es planteja sovint quan es treballa en sistemes P s la segent: qu es pot
fer si els perifrics o les memries connectades al P sn massa lents i no compleixen les
especificacions temporals que el P exigeix?

Res no es pot fer perqu una memria sigui ms rpida, per s que s possible fer que el P treballi de
forma ms lenta. Hi ha dues solucions que permetrien reduir la velocitat d'execuci del P. La primera
consisteix a canviar la freqncia de treball del P per una altra de ms baixa. Com a conseqncia
d'aix s'est penalitzant tot el sistema per culpa d'un sol element lent que forma part del sistema.
L'altra soluci consisteix que el P doni ms temps allargant el cicle de lectura/escriptura, per sols
quan aquest estigui accedint a aquests perifrics o memries ms lents. El temps de ms que s'afegeix
s un mltiple del perode del rellotge que el P est utilitzant i aquests perodes extres de temps
s'anomenen estats d'espera. La generaci dels estats d'espera es fa per mitj de l'activaci de les
entrades READY, WAIT* o DTACK* del P. La lgica externa emprada per a l'activaci i la
desactivaci daquestes entrades del P s'anomena circuit generador d'estats d'espera o, simplement,
generador de wait.

A continuaci sestudia un dels possibles circuits generadors d'un estat despera. El senyal connectat a
l'entrada WAIT* del P ha d'estar activa (WAIT*=0) durant el segon perode del cicle de bus. A la
figura 6.2 es mostra un circuit que compleix aquests requisits temporals. Per comprendre
completament aquest circuit cal recordar el que es va comentar al captol 2 en definir el concepte de
protocol asncron, i tamb a l'apartat 3.7.4 quan s'explicaven els diferents cicles mquina.

Chip select de les memries


i dispositius E/S lents +5 V +5 V

CS1* S S WAIT*
D0 Q0 D1 Q1
CSn* '74 '74
Q0* Q1*
R R

+5 V +5 V

CLK
P

Fig. 6.2 Circuit generador d'un estat despera

El generador de wait ser activat noms en el cas que s'intenti accedir a memries o dispositius d'E/S
lents. A tal efecte, sincorpora una porta AND a l'entrada on es connecten directament els senyals de
selecci de xip (CS*) que han estat obtinguts a la sortida del descodificador d'adreces.

Quan no s'est accedint a cap dispositiu lent, tots els senyals CSi* estan a 1 i, per tant, a la sortida Q0
del primer flip flop hi ha un 1 i a la sortida Q0* un 0. D'acord amb aix, el senyal WAIT* est inactiu i

los autores, 1998; Edicions UPC, 1998.


192 Disseny de sistemes digitals amb microprocessadors

val 1. En el moment que es vulgui accedir a un d'aquests dispositius lents (algun CSi* =0), l'entrada
D0 del primer flip flop ser un 0 i en el primer flanc de pujada del rellotge, CLK, les sortides Q0 i Q0*
passaran a tenir els valors 0 i 1, respectivament. Al mateix temps, la sortida Q1 del segon flip flop
passar a valer 1, fet que ocasionar l'activaci del senyal WAIT*. En el segent flanc de pujada del
rellotge, el 0 que hi havia a la sortida Q0 del primer flip flop es propagar cap a la sortida Q1 del
segon, cosa que far que el senyal WAIT* es desactivi (WAIT*=1). Aquest procs es mostra
clarament en el cronograma de la figura 6.3.

T1 T2 Tw T3

CLK

CSi *

Q0

Q0*

Q1

WAIT*

Fig. 6.3 Cronograma de levoluci del senyal WAIT*

Evidentment, es poden construir circuits estndars ms elaborats que es puguin fer servir per generar
ms d'un estat d'espera, seleccionant-ne el nombre. Es tractaria de fer un generador programable
d'estats despera. En el cas d'estudi 1, es mostra un circuit generador d'estats d'espera programable que
permet seleccionar entre 0 i 3 estats d'espera. El circuit est basat en lestructura que es veur a
l'apartat segent per al circuit generador del senyal BERR*.

6.2.3 Generaci del senyal d'error de bus en el microprocessador 68000

El senyal BERR* (bus error) indica a la CPU l'existncia d'algun esdeveniment anormal en el cicle de
bus que s'est executant. Per exemple, un intent d'accedir a una posici de memria protegida o un
perifric que no respon. El segon exemple s especialment crtic en el cas del 68000 a causa de la
naturalesa asncrona del seu bus. En principi, la durada del cicle de bus no est predefinida i aquesta es
pot allargar fins que la CPU rep el senyal DTACK*. En conseqncia, si hi hagus una fallada en la
recepci d'aquest senyal per part de la CPU, aix faria que la CPU s'espers, amb el cicle de bus obert
(mantenint tots els seus senyals), durant un temps indefinit. Aquestes disfuncions es poden detectar si
s'utilitzen circuits externs a la CPU. Aquests circuits, generadors de bus error, s'encarreguen de
generar el senyal d'error de bus que va connectat a l'entrada BERR* de la CPU quan una memria o un
dispositiu d'E/S no respon en un temps determinat. Quan el senyal BERR* s'activa (BERR*=0),
s'inicia un procs d'excepci, que ja ha hem vist al captol 5.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 193

CLR*
'175
AS* D0 Q0
D1 Q1
D2 Q2 BERR*
D3 Q3*
CLK

Fig. 6.4 Circuit generador del senyal BERR*

El funcionament del circuit de la figura 6.4 s el segent. El senyal de rellotge E s un senyal de


sortida del 68000 que t una freqncia deu vegades ms petita que la del rellotge CLK que fa servir el
P en les seves operacions. Quan s'inicia un cicle de bus, s'activa el senyal AS* i, com a conseqncia
d'aix, es deixa de fer reset de l'integrat 175 al mateix temps que a l'entrada D0 es posa un 1. Com
que el senyal AS* es mant actiu (AS*=0) mentre dura el cicle de lectura/escriptura, cada flanc de
pujada del rellotge E fa que l'entrada Di passi a la sortida Qi i, segons com s'hagin fet les connexions,
a l'entrada Di+1. En definitiva, mentre no es tanqui el cicle de bus en curs (AS=1 desprs d'AS*=0) hi
haur un 1 que s'anir propagant duna sortida Q a una altra Q+1. Si per alguna ra el cicle de bus en
curs no es tanca abans que passin 4 flancs de pujada del senyal E, el senyal BERR* que surt de Q3*
val 0 i es passa a executar l'excepci de BERR* que tracta aquesta anomalia. El P desactiva el senyal
AS* i tanca el cicle de bus en curs quan detecta l'activaci del senyal BERR*. D'aquesta forma
s'impedeix que un cicle de bus pugui estar obert durant un temps indefinit. El cronograna del circuit de
la figura 6.4 es mostra a la figura 6.5 per al cas en qu s'acabaria generant el senyal BERR*.

CLK

AS*

Q0

Q1

Q2

Q3*

BERR*

Fig. 6.5 Cronograma de l'evoluci del senyal BERR*

los autores, 1998; Edicions UPC, 1998.


194 Disseny de sistemes digitals amb microprocessadors

6.3 Cas d'estudi 1

En el primer cas d'estudi es pretn illustrar els conceptes de descodificaci del mapa de memria i
d'entrada/sortida, de timing i la generaci del senyal DTACK* en un sistema amb microprocessador
basat en un MC68000 de Motorola treballant a la freqncia de rellotge de 10 MHz.

El mapa de memria est format per un banc EPROM de 8 k x 16 i dun altre SRAM de 48 k x 16. Per
a la seva implementaci es disposa de 2 xips de memria EPROM 2764-30 d'Intel amb organitzaci
interna de 8 k x 8 i de 6 xips de memria SRAM HM-8816HB de Harris amb organitzaci interna de
16 k x 8.

La descodificaci del mapa de memria s completa situant les memries EPROM a la part ms baixa
del mapa de memria, s a dir, en els primers 16 kbytes (8 kwords). A l'EPROM es carrega la taula
d'excepcions amb les adreces de salt a les RSI i les subrutines d'excepci corresponents. Com hem vist
al captol 5, la taula d'excepcions s situada a la part ms baixa del mapa de memria del
microprocessador, ra per la qual l'EPROM ocupa les posicions baixes del mapa.

Tot seguit va la memria SRAM, 96 kbytes (48 kwords), i al darrere, el mapa d'entrada/sortida, que
ser de 16 kbytes. Aquests ltims es faran servir per adrear 8 dispositius d'entrada/sortida, assignant a
cadascun 2 kbytes del mapa de memria. De fet, i com tamb es veur ms endavant, no sn
necessries tantes posicions, i aix fa que un mateix dispositiu d'entrada/sortida es vegi en ms d'una
posici de memria i, per tant, es tracta d'una descodificaci incompleta del mapa d'entrada/sortida.

Un aspecte important que cal tenir en compte en tot sistema muntat al voltant d'un microprocessador s
que la connexi dels diferents elements del sistema (descodificadors, memries, lgica addicional,
etc.) als busos del microprocessador no es fa de forma directa. El microprocessador per si sol no t
prou capacitat per donar corrent a tots els elements connectats als seus busos perqu tot el sistema
funcioni amb el timing i els nivells lgics correctes. s per aix que s'han d'emprar elements auxiliars
anomenats buffers, amplificadors de corrent, connectats entre el microprocessador i la resta d'elements
que formen el sistema amb microprocessador.

El 68000 s un microprocessador de 16 bits i, com a tal, totes les transferncies de dades es fan per
defecte a nivell de paraula (2 bytes), seleccionant els bytes alt i baix alhora. Aix comporta que no es
faci servir la lnia A0 per adrear les posicions de memria dels integrats. De fet, en el 68000, la lnia
dadreces A0 s una lnia interna del microprocessador que no s accessible des de l'exterior. Aquesta
particularitat, per, no impedeix que no es pugui accedir de forma individual a un o l'altre byte. A tal
efecte, el 68000 incorpora els senyals de control UDS* (Upper Data Strobe) i LDS* (Lower Data
Strobe), que permeten seleccionar entre el byte alt i el baix d'un word, respectivament. Les lnies
UDS* i LDS* prenen el paper d'A0.

los autores, 1998; Edicions UPC, 1998.


Casos prctics

'245
D0..D7

D8..D15

D0..D7 D0..D7 D0..D7 D0..D7 D0..D7 D0..D7 D0..D7 D0..D7

2764-30 2764-30 HM-8816HB HM-8816HB HM-8816HB HM-8816HB HM-8816HB HM-8816HB


D0..D7 D8..D15
A1..A13 A0..A12 A0..A12 A1..A14 A0..A13 A0..A13 A0..A13 A0..A13 A0..A13 A0..A13

OE* OE* R/W* R/W* R/W* R/W* R/W* R/W*


CS* CS* CS* CS* CS* CS* CS* CS*
'244

A1..A23 A1..A23

MC68000

R/W* '244
LDS*
UDS*
AS*

A11..A16 A11..A13

los autores, 1998; Edicions UPC, 1998.


DTACK*

A14 Q0 A11 Q0 E/S 0 +5 V


CLK A A CLR*
A15 B Q1 A12 Q1
B E/S 1
A16 A13 '175
C Q2 C Q2 E/S 2
+5 V Q3 +5 V Q3 E/S 3 0 Tw Q0 D0
'138 Q4 '138 1 Tw Q1 D1
Q4 E/S 4
10 MHz 2 Tw Q2 D2
Q5 Q5 E/S 5
CLOCK 3 Tw Q3 D3
Q6 Q6 E/S 6
E E CLK
A17..A23 Q7 Q7

Fig. 6.6 Esquema de connexi dun 68000 amb els bancs de memria
E/S 7
195
196 Disseny de sistemes digitals amb microprocessadors

6.3.1 Descodificaci

A l'exterior, els bancs de memria de 16 bits estan formats per 2 xips de 8 bits. Un dels xips, tant per a
l'EPROM com per a la SRAM, es connecta a la part baixa del bus de dades mentre que l'altre es
connecta a part alta. D'aquesta forma, els 2 xips EPROM i els 6 SRAM queden connectats al bus de
dades segons es mostra a la figura 6.6, formant 1 banc EPROM de 8 k x 16 i 3 bancs SRAM de 16 k x
16. En el cas particular del 68000, els bytes menys i ms significatius ocupen les adreces imparelles i
parelles, respectivament.

El nombre de lnies necessries per adrear els bancs de memria depn del nombre de posicions de
memria que tingui cada banc. Aix, per a l'EPROM, es necessiten un total de 13 lnies (213=8 k) per
adrear les 8 k x 16 posicions de memria. Aquestes lnies sn el conjunt A1..A13 del
microprocessador. Per a la SRAM, com que la capacitat de cadascun dels 3 bancs s de 16 k x 16, el
nombre de lnies ser de 14 (214=16 k), conjunt de lnies A1..A14.

En la descodificaci de la memria i les entrades/sortides intervenen dos descodificadors, si b el


segon dells, el que apareix a la figura 6.6 ms a la dreta, sols es fa servir en el mapa dentrada/sortida.
Daquest ltim sen parlar desprs.

En aquest cas d'estudi, la descodificaci de les memries es pot fer treballant a nivell de word o b a
nivell de byte. De fet, el ms important s saber quantes posicions de memria s'han d'adrear.
Aquestes posicions poden ser de 16 bits (1 word) o de 8 bits (1 byte), segons s'hagi optat per
descodificar posicions de words o posicions de bytes. Ambdues formes de treballar portaran a la
mateixa soluci de problema.

Dels 4 bancs de memria, el de menys capacitat s el d'EPROM, que s de 8 k x 16, ja que els altres
sn tots de 16 k x 16. Si es vol que la descodificaci sigui completa, el descodificador ha de dividir
l'espai del mapa de memria en blocs de 8 k x 16 en comptes de fer-ho en blocs de 16 k x 16. Si es fes
d'aquesta ltima forma, el bloc d'EPROM tindria una imatge. Per a la sortida Q0 del descodificador se
seleccionarien els primers 8 kwords i en els segons 8 kwords tindrem el bloc imatge de l'EPROM.

L'EPROM necessita 13 lnies (A1..A13) per adrear les 8 k posicions de memria (8 k x 16). No es t
en compte la lnia A0 perqu nicament distingeix bytes imparells de bytes parells, i com que s'est
treballant en words, se seleccionen tots dos a l'hora. Per a les SRAM, es necessiten 14 lnies (A1..A14)
per a les 16 k posicions de memria (16 k x 16). Finalment, la divisi de l'espai de memria en blocs
de 8 k posicions es fa amb les lnies A14, A15 i A16, connectades a les entrades A, B i C del primer
descodificador, respectivament.

Com que el mapa de memria del P s'acostuma a mesurar en bytes, si es vol fer la descodificaci a
nivell de bytes, s necessari tenir en compte la lnia A0 de les adreces a l'hora de determinar les
posicions inicial i final de cada bloc de memria. Aix, en comptes de dividir el mapa de memria en
blocs de 8 k x 16, com s'ha fet abans, es far en blocs de 16 k x 8. Daquesta manera, per adrear 16
kbytes posicions de memria (214=16 k) fan falta 14 lnies d'adreces, A0..A13. Agafant les lnies A14,
A15 i A16 com a entrada de selecci del descodificador, s'aconsegueix que les 8 sortides del
descodificador es corresponguin amb 8 blocs de memria de 16 k x 8. La sortida Q0 ser el senyal
CS* del banc d'EPROM. Per activar els bancs de SRAM es necessitar el conjunt de dues sortides del
descodificador, aix, quan Q1 o Q2 sactivin s'haur d'activar el senyal CS* del banc de SRAM situat a

los autores, 1998; Edicions UPC, 1998.


Casos prctics 197

les posicions ms baixes de memria. Q3 i Q4 faran el mateix amb el segon banc de SRAM i,
finalment, Q5 i Q6 tamb amb el tercer banc de SRAM.

Perqu tots els bancs de memria estiguin situats a la part ms baixa del mapa de memria del
microprocessador, la resta de lnies dadreces que no s'han fet servir en la descodificaci, A17..A23,
han de valer 0 per tal que el descodificador sigui actiu. Observeu que A17..A23 estan connectades
mitjanant una porta OR a l'entrada del descodificador. Si ara es fan variar la resta de lnies (A0..A13)
des que totes sn 0 fins que totes siguin 1, s'obtindran les adreces dinici i de final de cada bloc de
memria. Aquesta representaci es pot veure a la taula 6.1.

Un cop s'han generat els senyals CS* per a cadascun dels bancs de memria, s aqu on intervenen els
senyals UDS* i LDS*, ja que l'activaci dels xips que formen els bancs es fa d'acord amb aquests
senyals. Per tant, cada xip s'activar sols si el CS* del banc de memria del que forma part s activat i
si el senyal UDS* o LDS* corresponent tamb ho est.

Taula 6.1 Esquema per a la generaci del mapa de memria

Enable Selecci de sortida Resta de


descodificador del descodificador lnies Espai fsic
A23..A17 A16 A15 A14 A13..A0
0..0
0 0 0 000000-003FFF 16 kbytes EPROM
1..1
0..0
0 0 1 004000-007FFF 16 kbytes
1..1
0..0 32 kbytes RAM
0 1 0 008000-00BFFF 16 kbytes
1..1
0..0
0 1 1 00C000-00FFFF 16 kbytes
0..0 1..1
0..0 32 kbytes RAM
1 0 0 010000-013FFF 16 kbytes
1..1
0..0
1 0 1 014000-017FFF 16 kbytes
1..1
0..0 32 kbytes RAM
1 1 0 018000-01BFFF 16 kbytes
1..1
1 1 1
0..0
01C000-01FFFF 16 kbytes E/S
1..1

El segon descodificador, el de ms a la dreta, es fa servir per dividir el bloc de 16 kbytes (8 kwords)


seleccionat per Q7 en 8 zones de 2 kbytes cadascuna. Les sortides d'aquest segon descodificador
aniran connectades als CS* dels 8 dispositius d'entrada/sortida. La divisi dels 16 kbytes en 8 zones de
2 kbytes es fa per mitj de les lnies A11, A12 i A13. El resultat de la descodificaci apareix a la
figura 6.7.

los autores, 1998; Edicions UPC, 1998.


198 Disseny de sistemes digitals amb microprocessadors

000000
003FFF
EPROM
004000

SRAM 1
01C000
00BFFF E/S 0 01C7FF
00C000 01C800
E/S 1 01CFFF
SRAM 2 E/S 2
01D000
01D7FF
013FFF E/S 3 01D800
014000 01DFFF
01E000
E/S 4 01E7FF
SRAM 3 01E800
E/S 5 01EFFF
01BFFF 01F000
E/S 6 01F7FF
01C000
01FFFF
E/S E/S 7 01F800
01FFFF

Fig. 6.7 Resultat de la descodificaci del mapa de memria i d'E/S

6.3.2 Temporitzaci

L'altre punt important que s'ha de tractar s el que fa referncia al funcionament temporal de tot el
sistema quan hi ha una transferncia de dades entre la memria i el microprocessador. Es considerar
el cicle de lectura, ats que aquest s ms lent que el cicle d'escriptura, ja que en aquest ltim s el
microprocessador qui subministra la dada al mateix temps que activa els senyals de control. En canvi,
en el cicle de lectura, la memria subministra la dada desprs de descodificar els senyals del
microprocessador.

Les EPROM i les SRAM emprades tenen uns temps d'accs de 300 ns i 70 ns, respectivament. D'altra
banda, si el rellotge del microprocessador s de 10 MHz, els perodes sn de 100 ns. Tant per a la
memria EPROM com per a la SRAM s'ha de complir que el temps d'accs ms la suma dels retards
introduts pels diferents mduls ha de ser inferior al temps que dna el microprocessador en un cicle
de lectura a memria. Aix, doncs,

tP > taccs + Retards introduts (6.1)

El temps que dna el microprocessador, tP, ser comptat per al pitjor cas. De les especificacions de
les memries que apareixen a l'apndix C s'observa que el retard ms gran va des de l'activaci del
CS* fins que dna la dada. A ms, els elements d'interconnexi que activen el CS* sn tamb els que
introdueixen ms retard. Per aix, s'ha calculat el temps que dna el microprocessador com el temps
que passa des de l'activaci dels senyals per part del microprocessador que activen el CS* de les
memries fins l'instant en que la dada es llegeix, o temps de captura, tcaptura. En el nostre cas, segons
com s'hagin fet les connexions i el cronograma del cicle de lectura del microprocessador (apndix A),
ser el temps que passa des de l'activaci del senyal AS* fins que es llegeix la dada. Aquest temps s
el que passa des del flanc de pujada de S2 fins al flanc de baixada de S6, un total de 2,5 perodes.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 199

S'haur de tenir en compte el retard que hi pot haver en l'activaci d'AS* (clock high to AS*), segons
el fabricant, i el temps en qu ha d'estar present la dada abans que sigui llegida pel microprocessador
(setup time). Aquests temps apareixen a l'apndix A. Amb aquestes definicions, el temps que dna el
microprocessador en un cicle de lectura s'obt de la manera segent:

tP = 2,5T - 55 ns - 10 ns = 185 ns (6.2)

El temps de retard introdut per la lgica (vegeu la taula 6.2) ser diferent en el cas d'una lectura a
SRAM o a EPROM, a causa de la presncia de les portes AND a la sortida del primer descodificador.
Aix, aquests retards es calcularan segons l'expressi segent:

tretard_SRAM = t244 + t245 + t138 + tAND + tOR = 10 ns + 9 ns + 17 ns + 10 ns + 9 ns = 55 ns (6.3)

tretard_EPROM = t244 + t245 + t138 + tOR= 10 ns + 9 ns + 17 ns + 9 ns = 45 ns (6.4)

Observeu que no s'ha tingut en compte el retard introdut per la porta OR a l'entrada del
descodificador. El motiu ha estat que l'activaci d'AS* es fa aproximadament mig perode ms tard
desprs que hagin aparegut les adreces vlides en el bus de direccions. Aquest retard s molt ms gran
si es compara amb els 9 ns que introdueix la porta OR i, per tant, fa que AS* arribi ms tard que les
adreces al descodificador.

Si ara s'aplica l'expressi 6.1, es veu que, per al cas de la SRAM:

taccs _SRAM + tretard_SRAM = 70 ns + 55 ns < tP = 185 ns (6.5)

i per al cas de l'EPROM:

taccs _EPROM + tretard_EPROM = 300 ns + 45 ns > tP = 185 ns (6.6)

Taula 6.2 Retards introduts per la lgica addicional

LGICA AND NOT OR Descodificador Buffer Buffer Flip-flop


HCT 08 04 32 138 244 245 175
Retard 10 ns 8 ns 9 ns 17 ns 10 ns 9 ns 17 ns

S'observa que, per a les memries SRAM, es compleix 6.1 i, per tant, no s necessari cap estat
d'espera. En canvi, per a les EPROM no es compleix i s'haur de determinar quin nombre d'estats
d'espera sn necessaris per al bon funcionament del sistema.

Aix s bastant senzill de fer ja que noms fa falta allar el valor de n de l'expressi segent:

tP + nTw > taccs + tretard_EPROM (6.7)

on tP, taccs i tretard_EPROM sn els temps calculats abans, i el valor de Tw, estat d'espera, coincideix amb
el perode del rellotge (100 ns). Com que n ha de ser un nombre sencer, de l'expressi 6.7 s'obt que
sn necessaris un total de 2 estats d'espera.

los autores, 1998; Edicions UPC, 1998.


200 Disseny de sistemes digitals amb microprocessadors

6.3.3 Generaci del senyal DTACK*

Com que quan s'accedeix a les memries SRAM no cal introduir estats d'espera, el senyal DTACK* es
pot generar directament aprofitant els senyals que es fan servir per activar les memries SRAM
(sortides Q1, Q2, Q3, Q4, Q5 i Q6 del primer descodificador). El resultat es pot observar a la figura
6.8, on el senyal DTACK* s'activaria algun temps ms tard que s'activs AS* a causa del retard
introdut pel descodificador i les portes AND. Malgrat aquest retard, tot i que l'activaci d'AS* es pot
retardar, DTACK* estaria a nivell baix (actiu) molt abans del flanc de baixada de S4, moment en qu
es comprova el seu estat.

S0 S1 S2 S3 S4 S5 S6 S7

CLK

A1-A23

AS*

DTACK*

Data in

t captura

Fig. 6.8 Cicle de lectura SRAM i senyal DTACK*

Per a les memries EPROM, la generaci dels estats d'espera s'ha fet mitjanant els 4 flip flops que
cont l'integrat 175. A la figura 6.6 se'n mostren les connexions, on l'entrada D0 del 175 est posada
a Vcc per mitj duna resistncia de pull-up. S'observa que quan no s'est accedint a l'EPROM tots els
flip flops estan en l'estat de reset. En activar-se la sortida 0 del primer descodificador es deixa de fer
reset sobre el 175. Aix fa que en els subsegents flancs de pujada del senyal de rellotge, el valor
lgic 1 a lentrada D0 es vagi propagant cap als altres flip flops. Aix permet seleccionar entre 0 Tw, 1
Tw, 2 Tw o 3 Tw, respectivament, segons la posici del jumper a la sortida Q0, Q1, Q2 o Q3 de
l'integrat 175. Aquesta configuraci permetria poder inserir fins a tres estats d'espera segons el temps
d'accs de les EPROM usades, que en el cas de 300 ns era de 2. La figura 6.9 mostra els valors que
prenen les sortides del 175 un cop seleccionada la memria EPROM. Tamb es reflecteixen els
instants en qu el microprocessador comprova el valor del senyal DTACK*. D'aquesta manera, es pot
comprovar que el funcionament del generador de Tw s correcte.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 201

S0 S1 S2 S3 S4 Tw1 Tw2 S5 S6 S7

CLK

A1-A23

AS*

Q0

Q1

Q2

Q3

DTACK*
Data in

t captura

Fig. 6.9 Cicle de lectura EPROM i senyal DTACK*

los autores, 1998; Edicions UPC, 1998.


202 Disseny de sistemes digitals amb microprocessadors

6.4 Cas d'estudi 2

Tot i que els Cs solen incorporar memria ROM i RAM dins del xip, aix com d'altres perifrics,
alguns d'ells permeten que el mapa de memria pugui ser ampliat de forma externa. Normalment la
memria interna, especialment la RAM, s molt petita i insuficient per a algunes aplicacions. Aquest
s el cas, per exemple, de la famlia de Cs MC68HC11. Treballar amb aquesta famlia de Cs donar
peu a estudiar els busos d'adreces/dades multiplexats en el temps. El fet de multiplexar en el temps
alguns dels senyals fent servir un mateix pin de lintegrat s una estratgia que els fabricants adopten a
vegades. Aix permet augmentar la funcionalitat de l'integrat tot mantenint un encapsulat amb un
nombre de pins redut.

Aquest cas d'estudi illustra una configuraci possible amb memria externa al voltant d'un C de la
famlia MC68HC11. Abans, per, s necessari descriure una mica quina s l'arquitectura d'aquesta
famlia de Cs.

La famlia de Cs MC68HC11 permet seleccionar el mode de funcionament mitjanant dos pins de


selecci de mode: MODA i MODB. Els 2 modes normals d'operaci sn el single chip i l'expanded
multiplexed, modes que generalment es fan servir per executar les aplicacions de lusuari. En el mode
single chip nicament est disponible la memria del xip, mentre que en el mode expanded
multiplexed es permet accedir a la memria externa i adrear perifrics d'entrada/sortida. Cadascun
d'aquests modes normals d'operaci t associat un mode especial. Bootstrap s el mode especial de
single chip que executa un programa que cont la ROM i, per mitj, de la interfcie de comunicacions
srie carrega un programa extern a la part baixa de la memria del C i l'executa. Test s el mode
especial d'expanded multiplexed i permet un accs privilegiat als recursos interns. Els modes
d'operaci segons el valor que prenguin els pins d'entrada MODA i MODB sn resumits a la taula 6.3.

Taula 6.3 Modes d'operaci d'un MC68HC11

Entrades
Mode d'operaci
MODA MODB
1 0 Single chip
1 1 Expanded multiplexed
0 0 Bootstrap
0 1 Test

En els modes test i expanded multiplexed les memries externes i els perifrics es connecten al C per
mitj d'un bus d'adreces/dades multiplexat en el temps. Multiplexant els 8 bits de menys pes de les
adreces amb els 8 bits de les dades en els pins del port C del C, tan sols es necessiten 18 pins per als
8 bits del bus de dades, 16 bits del bus d'adreces i dues lnies de control de bus. Aquestes permetran
separar la informaci referent a les adreces i a les dades. Per tot aix, s'ha de veure quin s el cicle de
lectura/escriptura que presenta el C. Aquesta informaci es pot trobar a l'apndix B i, de forma
simplificada, es pot veure a la figura 6.10. S'observa que la lectura/escriptura de les dades s
controlada temporalment pel senyal de rellotge E i que dura un cicle, essent la freqncia del senyal E

los autores, 1998; Edicions UPC, 1998.


Casos prctics 203

1/4 de la de l'oscillador connectat al C. Aix, si el C treballa a 8 MHz, la freqncia del senyal E


ser de 2 Mhz.

R/W*, ADDRESS
(NON-MUX)

READ ADDRESS DATA


ADDRESS/DATA
(MULTIPLEXED)
WRITE ADDRESS DATA

AS

t captura

Fig. 6.10 Cronograma del cicle de lectura/escriptura del bus multiplexat

El cicle de lectura/escriptura, controlat pel senyal de rellotge E, s dividit en dues parts ben
diferenciades segons les operacions que es fan en cadascuna d'elles. Primer, un cop s'inicia el cicle, les
lnies que estan multiplexades contenen una adrea (AS=1), desprs, aquestes lnies contindran una
dada (AS=0). Per tant, s en la primera part del cicle que, amb l'ajut del senyal AS, es captura la part
de menys pes de les adreces (A0-A7). Aix es pot aconseguir emprant un latch transparent extern, com
ara el 74HC373, que sigui controlat pel senyal AS. Tamb, i com a tret important a assenyalar,
sobserva en el cronograma anterior que la inserci d'estats d'espera no est prevista. Ms endavant
s'estudian quines han de ser les prestacions quant a temps d'accs de les memries que s'hi connectin.

Segons el fabricant, depenent del mode d'operaci seleccionat, el mapa de memria que presenta el C
MC68HC11E9 s el que s'indica a la figura 6.11, en el qual les parts ombrejades corresponen a
memria ROM, EEPROM i RAM dins del xip, i les marcades amb EXT a l'espai reservat per a
memria externa. Aix vol dir que, en principi, les memries i els dispositius d'entrada/sortida que s'hi
connectin no poden tenir qualsevol adrea i, per tant, s'han de fer encaixar dins de les zones marcades
amb EXT. Aix ltim no s del tot cert i s que est previst en el C que es pugui treballar amb
memria EPROM externa en comptes de fer servir la ROM i l'EEPROM internes. Com que les
posicions on es troben els vectors d'interrupci ja han estat prefixades en el propi C, la EPROM
externa hauria d'ocupar les posicions que estan destinades a les memries ROM i EEPROM internes.
Per evitar un possible conflicte entre la ROM i/o l'EEPROM interna amb l'EPROM externa s'ha
previst que tant la ROM com l'EEPROM internes es puguin habilitar o inhibir individualment per
mitj dels bits ROMON i EEON del registre CONFIG de configuraci (Fig. 6.12). En els modes
single chip i bootstrap la ROM i l'EEPROM internes es troben sempre habilitades (ROMON=1 i
EEON=1).

los autores, 1998; Edicions UPC, 1998.


204 Disseny de sistemes digitals amb microprocessadors

$0000 512 BYTES RAM


0000
(CAN BE REMAPPED TO ANY
4K PAGE BY THE INIT REGISTER)
EXT EXT
01FF

$1000 1000 64-BYTE REGISTER BLOCK


(CAN BE REMAPPED TO ANY
4K PAGE BY THE INIT REGISTER)

103F
EXT EXT
B600 512 BYTES EEPROM

$B600
B7FF

BF00 BOOT BFC0 SPECIAL


ROM MODES
EXT EXT
INTERRUPT
BFFF VECTORS
BFFF

$D000 D000
12K ROM

FFC0 NORMAL
INTERRUPT
VECTORS
$FFFF FFFF FFFF
SINGLE EXPANDED SPECIAL SPECIAL
CHIP MUX BOOTSTRAP TEST

Fig. 6.11 Mapes de memria per a lMC66HC11E9

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


CONFIG
0 0 0 0 NOSEC NOCOP ROMON EEON
$103F

Fig. 6.12 Registre CONFIG amb els seus bits de control

Una altra particularitat de la famlia de Cs MC68HC11 s la possibilitat que presenta de poder


reubicar la zona de memria RAM interna i el bloc dels registres interns. Els 4 bits ms significatius
del registre INIT (RAM3-RAM0) especifiquen els 4 bits ms alts (A15-A12) dels 16 que formen una
adrea dins del mapa de 64 kbytes (0000H-FFFFH). Aix, la memria RAM interna pot ser ubicada al
comenament de qualsevol pgina de 4 kbytes dins l'espai dels 64 kbytes. D'altra banda, els 4 menys
significatius (REG3-REG0) tenen la mateixa funci per pel que fa al bloc dels registres interns (Fig.
6.13). Desplaant aquestes dues zones de memria quasi al final del mapa de memria es podria posar
una RAM externa de 32 kbytes a partir de la posici 0000H fins a la posici 7FFFH, aix s, a la part
baixa del mapa de memria. Aquesta reubicaci es pot programar de forma individual per a cada zona
de memria per mitj del registre INIT del C.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 205

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


INIT
RAM3 RAM2 RAM1 RAM0 REG3 REG2 REG1 REG0
$103D

Fig. 6.13 Registre INIT amb els seus bits de control

La figura 6.14 mostra un mapa de memria extern format per 8 kbytes d'EPROM 27C64A-10 de
Philips i 32 kbytes de SRAM KM62256CL-7 de Samsung al voltant d'un C MC68HC11E9 que pot
treballar en mode expanded multiplexed o test. El circuit que apareix a la figura 6.14 es pot entendre
com el circuit bsic per a qualsevol aplicaci en mode expanded. Si es connectessin memries
addicionals o perifrics externs, s'haurien de revisar les condicions de crrega per tal de determinar si
s necessari o no afegir-hi buffers. A freqncies de bus (freqncia del senyal E) per sota dels 2 MHz
el nombre d'elements que s'hi poden connectar s major.

D0..D7

MC68HC11E9
D0..D7 D0..D7

AD0..AD7 D Q A0..A7 A0..A14 A0..A14 A0..A12 A0..A12

'373
KM62256CL-7 27C64A-10

AS LE OE*
OE* CS* WE* OE* CE*
+5 V

MODA R/W*

E
MODB
Jumper per a A8..A15 A8..A15 A8..A14
la selecci
de mode
A13 Q0
A
A14
B Q1
A15
C Q2
EXTAL XTAL Q3
'138 Q4
Q5
E Q6
Q7
8 MHz

Fig. 6.14 Connexions de memries externes a lMC68HC11E9

La descodificaci feta en aquest exemple comporta zones imatge ja que s'ha realitzat una
descodificaci incompleta pel que fa a la memria EPROM externa. Aquesta apareix en el mapa de
memria a les posicions E000H-FFFFH i tamb a les posicions A000H-BFFFH. D'aquesta manera, el
vector de reset es pot obtenir de l'EPROM externa tant si el C es troba treballant en mode expanded
multiplexed (E000H-FFFFH) com en mode test (A000H-BFFFH). Aquesta particularitat ja ha estat
indicada a la figura 6.11, si b aquest comentari s'ha cregut que era ms adient fer-lo en aquest
moment. S'observa en aquesta figura que les adreces dels vectors d'interrupci sn diferents si el C

los autores, 1998; Edicions UPC, 1998.


206 Disseny de sistemes digitals amb microprocessadors

est treballant en un mode normal o en un mode especial. Aquest adreament permet que el C surti
de l'estat de reset en el mode test, comprovar el contingut del registre CONFIG (canviar-lo si s
necessari) i, desprs, canviar el mode d'operaci a expanded multiplexed. Arrancar en el mode test t
els seus avantatges, ja que en aquest mode es poden fer servir funcions especials per llegir i modificar
el contingut de la memria. Ats que el bits de control del mode d'operaci es poden escriure quan
s'est treballant en el mode test, s possible mirar el contingut del registre CONFIG i desprs canviar
al mode normal d'operaci per permetre que actun els mecanismes automtics de protecci que t el
C. Aquesta tcnica tamb s til en la situaci en qu el C es connecta per primer cop, quan el
contingut del registre CONFIG pot ser desconegut. Excepte en aquests casos, el C no hauria de
treballar en el mode test.

La descodificaci de les memries es fa amb el descodificador 74HC138. Les lnies A15, A14 i A13,
connectades a l'entrada del descodificador, proporcionen a la seva sortida els senyals per a l'activaci
de 8 zones de memria de 8 kbytes cadascuna. Aquesta divisi s'ha fet ats que la memria de menys
capacitat que s'ha dubicar dins del mapa, l'EPROM, t 8 kbytes de capacitat. El resultat d'aquesta
segmentaci del mapa de memria amb les adreces de comenament i final de cada zona es presenta a
la figura 6.15. L'EPROM s'ha situat al final del mapa de memria, E000H-FFFFH. La zona imatge a les
posicions A000H-BFFFH s'ha generat per mitj de la porta AND de dues entrades a la qual s'han
connectat les sortides O7 i O5 del descodificador. La memria SRAM est entre les posicions 2000H i
9FFFH. Per aix, ha fet falta connectar les sortides O1, O2, O3 i O4 del descodificador a l'entrada
d'una porta AND de quatre entrades. Observeu que tota la SRAM est dins d'una de les zones
reservades a memria externa EXT, la que va des de la posici 1040H i B5FFH (vegeu la figura 6.11,
segon espai marcat amb EXT).

A15 A 14 A 13 Espai fsic


0 0 0 0000-1FFF
0 0 1 2000-3FFF 8 kbytes
0 1 0 4000-5FFF 8 kbytes
0 1 1 6000-7FFF 8 kbytes 32 kbytes RAM
1 0 0 8000-9FFF 8 kbytes
1 0 1 A000-BFFF 8 kbytes zona imatge EPROM
1 1 0 C000-DFFF
1 1 1 E000-FFFF 8 kbytes EPROM

Fig. 6.15 Divisi del mapa de memria

El senyal AS, que quan est a nivell alt (AS=1) valida el contingut de les 8 lnies AD0-AD7
multiplexades en el temps com a lnies d'adrea A0-A7, anir connectat a l'entrada LE (Latch Enable)
dels 8 biestables del 74HC373. s important entendre que el cicle de bus t una durada igual a un
perode del senyal E i que, a la primera part del cicle (E=0), les lnies AD0-AD7 conformen un bus
d'adreces, mentre que a la segona part del cicle (E=1) formen un bus de dades per on circular una
dada D0-D7. s a la segona part del cicle de bus quan es realitza la lectura o l'escriptura de les
memries. Per tant, el senyal E ha de participar com a data strobe en el procs de transferncia

los autores, 1998; Edicions UPC, 1998.


Casos prctics 207

d'informaci entre el C i les memries. Aquesta participaci es pot aconseguir utilitzant el senyal E
en l'activaci dels senyals de control de les memries, b en la generaci dels senyals CS* o CE* o b
en la generaci dels senyals OE* i WE*. A la figura 6.14 s'ha optat per la primera opci connectant el
senyal E a l'entrada del descodificador.

La temporitzaci entre el C i les memries es basa en el mateix principi que ha estat aplicat entre un
P i unes memries. Tot el que s'ha d'aconseguir s simplement que el temps que doni el C per llegir
o escriure una dada a la memria sigui ms gran que el temps que necessita la memria per donar o
guardar la dada incloent-hi els retards que hi pugui haver en l'activaci dels senyals de control de les
memries. Se sap que el cicle de lectura a la memria s ms lent que el d'escriptura i, per tant, s el
cicle que s'ha considerat tamb en aquest cas d'estudi. El que s'ha dit fins ara fa que s'hagi de complir
que

tC > taccs + Retards introduts (6.8)

on el temps que dna el C, tC, ser comptat per al pitjor cas. Tenint present el cronograma de la
figura 6.10, es pot observar que el senyal R/W* i les adreces A8-A15 ja sn vlids durant part del
primer semicicle del rellotge E. El temps que passa des que els senyals esmentats sn vlids fins al
flanc de pujada del senyal E, segons l'apndix B, s, com a mnim, de 94 ns. Per tant, es pot assegurar
que molt abans de l'habilitaci del descodificador (E=1), els senyals OE* a les memries ja seran
actius. D'acord amb aix, l'ltim senyal de control de les memries que s'activar ser el de CS* o CE*
i, per tant, el que far que el conjunt taccs ms retards introduts sigui major. Aix mateix, i segons les
especificacions de les memries que apareixen a l'apndix C, el temps de resposta de les memries des
de l'activaci de CS* o CE* s ms lent que el que hi ha des de l'activaci dels senyals OE*.

S'ha calculat el temps que dna el C com el temps que passa des de l'activaci dels senyals per part
del C que activen el CS* de les memries fins l'instant en que la dada es llegeix (tcaptura), en el flanc
de baixada del senyal E. S'haur de tenir en compte tamb el temps en qu la dada ja ha d'estar present
abans que sigui llegida pel C (setup time). Aquests temps apareixen a l'apndix C, i el resultat s que
el temps que dna el microprocessador en un cicle de lectura s:

tC = t3 - t17 = 222 ns - 30 ns = 192 ns (6.9)

El temps de retard introdut per la lgica (vegeu la taula 6.4) ser diferent en el cas d'una lectura a
SRAM o a EPROM, a causa de la presncia de les portes AND a la sortida del descodificador. Aix,
aquests retards es calcularien segons l'expressi segent:

tretard_SRAM = t138 + tAND-4 = 14 ns + 10 ns = 24 ns (6.10)

tretard_EPROM = t138 + tAND-2= 14 ns + 7 ns = 21 ns (6.11)

Si ara s'aplica lexpressi 6.9 i s'alla el temps d'accs mxim que pot tenir la SRAM:

taccs _SRAM = tC - tretard_SRAM = 168 ns (6.12)

i per al cas de l'EPROM:

los autores, 1998; Edicions UPC, 1998.


208 Disseny de sistemes digitals amb microprocessadors

taccs _EPROM= t - tretard_EPROM= 171 ns (6.13)

Taula 6.4 Retards introduts per la lgica

LGICA AND-2 AND-4 NOT NAND Descodificado Latch


HC 08 21 04 00 r 373
138
Retard 7 ns 10 ns 7 ns 7 ns 14 ns 12 ns

Les memries escollides tenen uns temps d'accs molt ms petits que els que expressen 6.12 i 6.13; en
particular, els taccs de la SRAM i l'EPROM sn de 70 ns i de 100 ns, respectivament. Per tant, es
compleix amb escreix l'especificaci temporal expressat per l'equaci 6.9.

Generalment, les memries EPROM sn molt ms lentes que les SRAM. Per aquesta ra, i aprofitant
les caracterstiques temporals del cronograma del cicle de lectura/escriptura a memria que ofereix el
C MC68HC11E9, el que s'acostuma a fer s introduir el senyal E en la generaci dOE* en comptes
de fer-ho en el CE*. Aquestes connexions comporten un avantatge fora interessant, ja que permet
treballar amb memries EPROM ms lentes sense baixar la freqncia de treball. A la figura 6.16 es
mostra com quedarien les noves connexions.

D0..D7

MC68HC11E9
D0..D7 D0..D7

AD0..AD7 D Q A0..A7 A0..A14 A0..A14 A0..A12 A0..A12

'373
KM62256CL-7 27C64A-10

AS LE OE*
OE* CS* WE* OE* CE*
+5 V

MODA
R/W*
E
MODB
A13
Jumper per a A8..A15 A8..A15 A8..A15 A15
la selecci
de mode
A13 Q0
A
A14
B Q1
A15
C Q2
EXTAL XTAL Q3
'138 Q4
Q5
E Q6
Q7
8 MHz

Fig. 6.16 Connexions modificades per a la memria EPROM

Per a una memria determinada, el temps de resposta a l'activaci del CE* s bastant ms gran que el
que hi ha a l'OE*. Si es mira el cronograma de la figura 6.10, sobserva que el bus d'adreces no

los autores, 1998; Edicions UPC, 1998.


Casos prctics 209

multiplexat cont una adrea vlida (A8-A15) des de molt abans del flanc de pujada del senyal E, en
concret, 94 ns. Per tant, aquestes lnies d'adreces es poden ja utilitzar per situar lEPROM dins del
mapa de memria. Aix s el que s'ha fet amb una de les dues portes NAND utilitzades. Connectant
sols A13 i A15 a l'entrada de la porta NAND, amb l'absncia de la lnia A14, es posiciona l'EPROM a
les posicions E000H-FFFFH i A000H-BFFFH (zona imatge). D'altra banda, al cap de 7 ns que hagi
arribat el flanc de pujada del senyal E (retard de la porta NAND), s'activar lOE* de l'EPROM. Per
aqu s'ha d'emfasitzar que a l'EPROM escollida, el temps dOE* s de 35 ns mentre que el de CE* s
de 100 ns.

Si es calcula el marge de seguretat que hi ha en un cas i en l'altre, resulta que en el primer cas (Fig.
6.14):

Marge de seguretat(1) = tC - taccs - retards introduts = 192 ns - 100 ns - 21 ns = 71 ns (6.14)

i en el segon cas (Fig. 6.16):

Marge de seguretat(2) = tC - taccs - retards introduts = 192 ns - 35 ns - 7 ns = 150 ns !!! (6.15)

6.5 Cas d'estudi 3

Aquest exemple t com a objectiu illustrar la possibilitat de dissenyar un port d'entrada/sortida senzill,
no programable, amb petits circuits integrats (tipus SSI: Small Scale Integration), per que pugui
realitzar gaireb totes les funcions necessries d'un port programable comercial de qualsevol famlia
de microprocessadors.

Les caracterstiques bsiques que ha de tenir aquest port, per tal de servir d'interfcie entre un sistema
amb microprocessador i un cert perifric, sn:

Les DADES han de ser transmeses en mode parallel i amb format de byte (8 bits).

Aquesta transmissi de dades ha de ser de tipus bidireccional. Tant el sistema P


com el perifric han de poder emetre i rebre dades.

Han d'existir uns senyals de CONTROL que permetin un protocol de comunicaci


(handshake) entre el sistema P i el perifric.

El sistema P t destinades dues adreces del seu mapatge dE/S per aquest port,
- 20 H per a les DADES,
- 21 H per al CONTROL.

Del sistema P es disposa dels senyals segents (Fig. 6.17):

- bus de dades (MDB: 8 bits),


- bus d'adreces per a E/S (8 bits: A7 - A0),
- sortida de validaci d'adreces (AS*),

los autores, 1998; Edicions UPC, 1998.


210 Disseny de sistemes digitals amb microprocessadors

- sortida de control de mapatge a la memria o a entrada/sortida (M/IO*),


- sortida de control de lectura o d'escriptura (R/W*),
- entrada per a petici dinterrupci emmascarable i vectoritzada (INT*),
- sortida de reconeixement d'interrupci (INTA*),

i tamb existeix una descodificaci completa prvia del mapa dadreces d'E/S del P que, mitjanant
un descodificador 74ALS138 de 3 entrades i 8 sortides, divideix aquest mapa d'E/S de 256 posicions
en 8 zones de 32 posicions.

El perifric aporta, a ms del seu bus bidireccional de dades (PDB: 8 bits), els senyals de control (Fig.
6.17):

En emissi:
- EPRDY * (entrada que li indica que pot emetre dada )
- EPSTB* (sortida que valida la dada emesa pel PDB)

En recepci:
- RPRDY* (sortida que indica disposici de rebre dada)
- RPSTB* (senyal d'entrada de dada vlida al PDB)

MDB
8
/
zona de DADES (20H) 8
/ PDB P
A7- A0
8
/
8
/ EPRDY*
E
PORT D'E/S R
P EPSTB*
I
M /IO* BIDIRECCIONAL RPRDY*
R/W*
F
zona de CONTROL (21H) RPSTB* E
INTA* INT* A5
A6
A7
R
A Y0* 00H-1FH
I
B
C
Y1*
20H-3FH
C
74ALS138
G2A*
G2B*
+5V G1 Y7* E0H-FFH

Fig. 6.17 Esquema de presentaci del cas d'estudi 3

los autores, 1998; Edicions UPC, 1998.


Casos prctics 211

A continuaci es presenten algunes possibles solucions de disseny d'aquest port; les diferncies entre
aquestes solucions es deriven de la complexitat del protocol de comunicaci entre el port i el perifric
i de la tcnica d'atenci al perifric per part del sistema P, s a dir, es diferencien en la part de la zona
de CONTROL corresponent al protocol de comunicaci del port que es vol dissenyar. El mateix
circuit servir per a la zona de DADES (i el seu control bidireccional) en totes les solucions
proposades, entre d'altres que poden existir.

6.5.1 Soluci de disseny proposada per a la zona de DADES

Tenint en compte que el port ha de guardar el contingut del bus de dades del P i retenir-lo fins que el
perifric estigui disposat, mentre que les dades que envia el perifric noms cal passar-les al P quan
ho senyali mitjanant una operaci de lectura del port, es proposa:

un registre amb 8 bscules D sncrones (latches) i control de tres estats de les seves
sortides per al port de sortida (de P a perifric), per exemple, 1 CI tipus 74ALS374A :

- Entrada C (Clock ) que, activada per flancs ascendents, posa les sortides Q de les 8
bscules igual a les seves entrades D d'aquell instant.
- Entrada OC* (Output Control) que a 1 posa les sortides del CI en alta impedncia,
i a 0 les iguala a les sortides de les bscules.

un senzill control de tres estats, amb 8 buffers unidireccionals, com a port d'entrada (de
perifric a P), per exemple, 1 CI tipus 74ALS465A amb 2 entrades de control (G1* i G2*)
que, activades a 0, permeten el pas d'entrada a sortida en els seus 8 buffers de tres estats.

Aquesta zona de DADES del port ha de ser adreada a la posici 20H (= 00100000 en binari). A partir
de les posicions 20H - 3FH de la sortida Y1* del descodificador, cal plantejar-se el tipus de
descodificaci posterior que s'ha de practicar. Es podria pensar a fer una descodificaci completa
d'aquesta porci del mapa d'E/S del P, en el supsit que el sistema necessiti totes les posicions d'E/S
descodificades; tanmateix, aquest no s el cas ms corrent, sin que se sol dissenyar amb una
descodificaci incompleta dedicant cada zona de sortida del descodificador principal per a un sol port
o perifric. Aix doncs, com que noms calen dues adreces per aquest port (20H i 21H), es dividir
tota la zona de la sortida Y1* del descodificador principal en posicions parelles (20H i zones imatge) i
posicions imparelles (21H i zones imatge) mitjanant el bit d'adrea A0.

los autores, 1998; Edicions UPC, 1998.


212 Disseny de sistemes digitals amb microprocessadors

1/3 74ALS27 74ALS374A 74ALS465A


A0
Sistema R/W*
P Y1*
desc
MDB0 D Q OB1 PDB 0
L1
C
Bus de IB1 Bus de
dades dades
del P del
perifric

MDB7 D Q OB8 PDB7


L8

IB8
OC*
1/3 74ALS27
A0
Sistema G1*
R/W*
P Y1*desc G2*

Zona de
CONTROL
del Port

Fig 6.18 Esquema del circuit de la zona de DADES del port

Per tant, s'activar l'entrada C (Clock / Enable) de les bscules D del port de sortida amb una porta
NOR (74ALS27) que compleixi la funci lgica :

C = A0 + Y1* desc + R / W *

de manera que es generi un flanc de pujada en aquesta entrada C quan el P realitzi una operaci
d'escriptura (R/W* = 0) a la posici 20H (posici parella, A0 = 0, en la zona de selecci de Y1* = 0 a
la sortida del descodificador 138A) en dispositiu d'E/S (cal recordar que aquest circuit noms activa la
seva sortida seleccionada quan M /IO* = 0 = G2A*). Igualment, per amb R/W* = 1, s'adrear el
buffer d'entrada (IB1 - IB8) per a una operaci de lectura del P en el port:

G1* = A0 + Y 1 * desc + R / W *

i G2* = /OC* per assegurar el funcionament complementari dels buffers d'entrada i sortida. Tot aix
queda reflectit a la figura 6.18.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 213

Aix, ja queda adreada la zona de DADES d'aquest port. El control dels buffers de tres estats de
sortida (senyal de control OC*) i d'entrada (senyal de control G2*), es dissenyar en els apartats
segents de la zona de CONTROL del port.

6.5.2 Zona de CONTROL ms simple: 2 lnies de handshake i sense interrupcions

En aquesta soluci se suposa que el servei d'atenci al perifric per part del sistema P es fa per
consulta (polling), amb l'execuci d'una subrutina d'atenci a aquest perifric en intervals determinats
de temps, o quan calgui enviar o rebre dades per necessitats del programa principal.

El protocol de comunicaci ms senzill entre P i perifric podria ser amb sols 2 senyals:

- enviar al terminal RPSTB* del perifric un senyal de STROBE* per indicar-li que ha de
recollir una dada en el seu bus PDB.
- llegir un senyal de READY* quan el perifric estigui preparat per emetre dades (activant
la seva sortida EPSTB*).

A ms, la zona de CONTROL ha de governar la direcci de la informaci mitjanant el control dels


buffers de tres estats del port, s a dir, el control de les entrades OC* i G2* d'aquests buffers (Fig.
6.18). La direcci de les dades vindr governada pel senyal de lectura o d'escriptura (R/W*) del P.

Tampoc no hem d'oblidar que totes les operacions en la zona de CONTROL s'han d'identificar per
l'adrea 21H (Y1* del descodificador activada a 0, i posici imparella amb A0 = 1), que ha d'emetre el
P en qualsevol operaci de lectura o d'escriptura en el control d'aquest port.

Amb aquests requisits es proposa el circuit de la figura 6.19 per a aquesta opci bsica. Es pot
observar que s'ha triat una bscula D (L10) per generar el pols de STROBE* quan el P emeti un 0
seguit d'un 1 per una lnia del seu bus de dades (MDB1) en operacions d'escriptura en la zona de
CONTROL del port (21H) :

C = A0 + Y1* desc + R / W *

L'activaci d'aquest pols est sincronitzada (si MDB0 = 0 a L9) amb l'instant en qu els buffers de
sortida de la zona de DADES transmeten (OC*=0) el byte emmagatzemat en el registre de sortida (L1
- L8) al bus del perifric (PDB), a ms de posar els buffers d'entrada en el tercer estat d'alta
impedncia (G2*=1). La desactivaci (tornada a 1) dels senyals de STROBE* i OC*, mitjanant una
nova operaci d'escriptura amb MDB1 = MDB0 = 1, clou l'emissi de la dada al perifric.

los autores, 1998; Edicions UPC, 1998.


214 Disseny de sistemes digitals amb microprocessadors

(Zona de DADES del port)


OC* (74ALS374A)

1/4 74ALS175

MDB0 D Q
A0 1/3 74ALS27 L9
R/W* C Q*
Y1*desc
D RPSTB*
MDB1 Q
Sistema STROBE* (perifric)
L10
P C Q*
1/3 74ALS27
A0 1/4 74ALS175
R/W*
Y1*desc
READY* EPSTB*
MDB2 IB9 (perifric)
G*

Fig. 6.19 Zona de CONTROL bsica del port

El buffer d'entrada de tres estats IB9 permet al sistema P d'assabentar-se si el perifric ha ems una
dada pel seu bus PDB, mitjanant una operaci de lectura del senyal READY* a la zona de
CONTROL del port,
G* = A0 +Y 1 * desc + R / W * ,

pel bit MBD2 del seu bus de dades. Si comprova que READY* s activat, passar a una operaci de
lectura a la zona de DADES del port per capturar, a travs del seu bus MDB, la dada que hi ha al bus
PDB del perifric.

6.5.3 Estimaci de la velocitat mxima d'emissi de dades pel port

Les operacions que han de realitzar-se per emetre una dada, del P al perifric, en aquest port bsic
que fins ara s'ha dissenyat, sn:

- escriptura d'un byte al registre de la zona de DADES del port,


- escriptura de 00, per MDB0-1, a la zona de CONTROL del port per activar
el senyal de STROBE* i passar la dada al bus del perifric (PDB),
- escriptura d'11, per MDB0-1, a la zona de CONTROL del port per
desactivar el senyal de STROBE* i els buffers de sortida de dada del port.

los autores, 1998; Edicions UPC, 1998.


Casos prctics 215

Aquestes operacions es poden realitzar amb 3 instruccions del tipus OUT (escriptura de dada al
dispositiu d'E/S en els P que poden separar els mapatges a la memria i a E/S). Aix, per exemple:

OUT (20H), XXH ; XX = byte a emetre, 20H = adrea del port de DADES
OUT (21H), 00H ; activaci STROBE*, 21H = adrea del port de CONTROL
OUT (21H), 03H ; desactivaci STROBE*

Ara la velocitat de transmissi depn de la durada daquestes instruccions en perodes de rellotge d'un
P particular i de la freqncia d'aquest rellotge. Aix, per exemple, si cada instrucci OUT triga 10
perodes de rellotge a executar-se i el P treballa a una freqncia de 8 MHz, el temps a emetre una
dada ser:
3 10
t dada = 6
s = 30 125 ns = 3,75 s
8 10
Aix doncs, si es negligeix els retards del CI (sn pocs nanosegons i la majoria ja estan compresos en
els intervals d'execuci de les instruccions), la velocitat mxima d'emissi de dades ser:

v mx = 1 ( 3,75 s) 266 kbytes / s (= 266 kbauds)

6.5.4 Perfeccionament del protocol de comunicaci del port

Amb la zona de CONTROL del port dissenyada, el sistema P no pot saber si el perifric est preparat
per rebre la dada enviada, ni tampoc no t informaci de si el perifric ha capturat realment aquesta
dada. Aix mateix, el sistema no informa al perifric sobre el temps en qu el P est atenent el
perifric i, per tant, si est disposat a rebre dades, ni quan pren aquestes dades. Aquestes deficincies o
limitacions es poden superar de dues maneres que s'exposen a continuaci.

a) Per programa (software)

Sense canviar res dels circuits (hardware) s'hi podria millorar la comunicaci complicant una mica la
programaci de la rutina de control d'aquest port, tant en la part del P com en la del perifric. Aix,
en l'operaci d'escriptura (P a perifric), el senyal de STROBE* continuaria validant la dada emesa,
mentre que el de READY* podria confirmar la lectura de dada per part del perifric. I en l'operaci
de lectura (perifric a P), el senyal de READY* continuaria validant la dada al bus PDB del
perifric, mentre que el de STROBE* confirmaria la lectura de la dada per part del P. Aquesta
soluci, per, no s molt satisfactria ja que la velocitat de comunicaci seria ms lenta i encara no
s'aconseguiria saber si la part receptora est o no preparada per rebre un nou missatge.

b) Per circuiteria (hardware)

Per realitzar un protocol bidireccional complet cal aprofitar els 4 senyals de control del perifric i
augmentar els terminals de control del port a 4 (2 per a cada direcci de comunicaci).

los autores, 1998; Edicions UPC, 1998.


216 Disseny de sistemes digitals amb microprocessadors

- Del P al perifric:
EMRDY* (activat indica que el perifric est preparat per rebre la dada; desactivat indica
que el perifric est llegint la dada; activat de nou indica que ja s'ha capturat la dada).
EMSTB* (activat valida la dada emesa al perifric i la posa al PDB; desactivat indica fi de
transmissi un cop comprovada la captura de la dada per la reactivaci d'EMRDY*).

- Del perifric al P:
RMRDY* (activat indica que el P est preparat per rebre la dada; desactivat, que el P est
llegint la dada o que no est en comunicaci amb aquest perifric en la seva consulta de
perifrics d'E/S ; activat de nou, que el perifric ja ha llegit la dada).
RMSTB* (activat, valida la dada emesa pel perifric; desactivat indica fi de transmissi de
la dada un cop comprovat que el P l'ha llegida i ha reactivat el RMRDY*).

Les connexions d'aquests senyals amb els de control del perifric i els circuits afegits (totalment
similars als que ja eren proposats per al control bsic) es mostren a la figura 6.20.

(Zona de DADES del port)


OC* (74ALS374A)
3/4 74ALS175

MDB0 D Q
A0 1/3 74ALS27 L9
S
R/W* C Q*
Y1*desc
I
D Q RPSTB*
MDB1 (perifric)
EMSTB*
S L10
C Q*
T
MDB2 D Q EPRDY*
(perifric)
E L11 RMRDY*
C Q*
M 1/3 74ALS27
A0
A R/W*
Y1*desc 1/4 74ALS465A
RMSTB* EPSTB*
MDB3 IB9 (perifric)
G*

P EMRDY*
RPRDY*
MDB4 IB10 (perifric)
G*

Fig. 6.20 Zona de CONTROL del port amb protocol bidireccional complet

los autores, 1998; Edicions UPC, 1998.


Casos prctics 217

6.5.5 Possibilitat d'atenci al perifric per interrupcions

s possible adaptar la zona de CONTROL del port perqu el perifric sigui ats per interrupcions
quan vulgui emetre una o diverses dades al P. Les modificacions fonamentals que haurien de dur-se a
terme sn:

1) El senyal EPSTB* (validaci de dada per part del perifric) indica la petici d'interrupci INT*,
sempre que el port no sigui en una operaci d'escriptura (la sortida Q*(L9) = 0 assegura aquesta
condici); el senyal INTA*, que indica cicle de reconeixement d'interrupci del P, ser l'encarregat
de desactivar aquesta petici d'interrupci:

INT * ( P ) = EPSTB * ,
Q * ( L 9 ) + INTA * = 0

i cal atacar l'entrada d'interrupci INT* amb un circuit de sortida en collector obert per tal de
permetre que d'altres perifrics d'E/S puguin demanar tamb interrupci pel mateix terminal (que se
suposa connectat a l'alimentaci per una resistncia de pull-up).

2) El senyal d'entrada EPRDY* (disposici de lectura per part del sistema P) del perifric ha d'estar
activat sempre que el port no sigui en emissi cap al perifric, Q* (L9)=0, i que el P no estigui llegint
la dada provinent del perifric (el senyal G1*=0 indicava aquesta operaci de lectura; vegeu la figura
6.18 de la zona de DADES del port). Per tant,

EPRDY * = Q * ( L 9 )
G1* = 1

3) Com que la interrupci INT* ser normalment del tipus vectoritzat, el port ha d'emetre el codi del
vector d'interrupci quan el P accepti la interrupci demanada (senyal INTA* activat). Amb aquest
fi, es pot utilitzar un registre de vector d'interrupci 74ALS374A, l'entrada C del qual ser activada
en l'operaci d'escriptura del vector d'interrupci des del P, i l'entrada OC* s'activar per enviar
aquest vector al bus de dades MDB (operaci de lectura per part del P) quan s'hagi acceptat la
interrupci amb l'activaci del senyal INTA*.

s important tenir en compte que ladrea d'aquest registre nou ha de ser diferent a les de les zones de
DADES (20H) i de CONTROL (21H) perqu no es produeixi conflicte de bus al MDB del sistema P.
En aquest cas, per simplicitat i per tal de no canviar els adreaments ja realitzats, es triar l'adrea 40H
amb les seves zones imatge en les posicions parelles del segment 40H - 5FH del mapatge d'E/S del
sistema (Y2*desc = 0, A0 = 0).

Tots aquests canvis queden reflectits a la figura 6.21, que es mostra tot seguit.

los autores, 1998; Edicions UPC, 1998.


218 Disseny de sistemes digitals amb microprocessadors

(Zona de DADES del port)


G1* (74ALS465A) OC* (74ALS374A)

2/4 74ALS175

MDB0 D Q
A0 1/3 74ALS27 L9
R/W* C Q*
S Y1* desc
D Q RPSTB*
MDB1 (perifric)
EMSTB*
L10
I C Q*
Q*(L9)
EPRDY*
S OB9 (perifric)
RMRDY*

T INT*
INTREQ*
IB9 RMSTB* EPSTB*
(perifric)
1/3 74ALS27

E INTA*

Registre de vectors d'interrupci


8
M MDB0 - MDB7
8 1D- 8D
74ALS374A
8
1Q- 8Q OC* C
A0
A R/W*
Y2*desc
2/3 74ALS27
A0
R/W*
Y2*
desc
RPRDY*
MDB2 IB10 (perifric)
G* EMRDY*
1/3 74ALS27
P A0
R/W*
Y1*desc

Fig. 6.21 Zona de CONTROL del port amb atenci al perifric per interrupcions

los autores, 1998; Edicions UPC, 1998.


Casos prctics 219

6.6 Cas d'estudi 4

Aquest cas t com a objectiu l'estudi dels circuits necessaris per a l'atenci amb interrupcions a
dispositius d'E/S per part del microprocessador MC68000.

6.6.1 Codificaci de les peticions i generaci dels senyals de reconeixement de les interrupcions

LMC68000 t tres entrades de petici d'interrupci (IPL0* - IPL2*), actives a nivell baix, que
representen un codi de nivell de prioritat, el qual ha de ser superior al nivell existent en aquell moment
als 3 bits (I1 -I3) del registre SSR (Supervisor Status Register) perqu la interrupci sigui atesa. El
codi d'aquests bits s invers al de les entrades IPL0* - IPL2* a causa de l'activaci a nivell baix
daquests senyals.

Al comenament del cicle de reconeixement d'interrupci (IACK) el microprocessador passa al mode


supervisor i , a ms de substituir temporalment el nivell I1 - I3 anterior pel codi de nivell de la
interrupci acceptada, emet els senyals segents (Taula 6.5):

- els 3 bits de codi de funci, FC0 - FC2, a nivell alt,


- els 3 bits baixos del bus d'adreces, A1 - A3, amb el codi de nivell en I1 - I3,
- la resta de bits d'adreces, A4 - A23, a nivell alt,
- l'AS*, a nivell baix, per validar aquesta adrea.

Taula 6.5 Interrupcions a l'MC68000

PETICI D'INTERRUPCI RECONEIXEMENT D'INTERRUPCI (IACK)

IPL2* IPL1* IPL0* Nivell A3 A2 A1 A23 - A4 FC2 FC1 FC0


dinterrupci I2 I1 I0
0 0 0 7 (NMI) 1 1 1 1. . . .1 1 1 1
0 0 1 6 1 1 0 " "
. . . " "
. . . " "
1 1 0 1 0 0 1 " "
1 1 1 0 (No - Int.) I2 I1 I0 = 000 i no hi ha cicle d'IACK

Quan acabi la rutina de servei de la interrupci, el microprocessador tornar a posar el codi del nivell
anterior, abans de reconixer la interrupci, en els bits I1-I3 del registre SSR, i tornar al mode usuari.

Per tant, s lgic utilitzar un circuit codificador de 8 a 3 amb prioritat, de tipus 74LS148, que permeti
8 entrades de petici d'interrupci (actives a nivell baix) i proporcioni 3 sortides com a codificaci
binria del nmero d'ordre de la petici d'interrupci sollicitada; a ms, les entrades presenten una
caracterstica de prioritat pel seu ordre natural (la 7 s la ms prioritria i la 0 la de menor prioritat o
no-existncia de petici d'interrupci) de manera que tan sols s'activar la sortida codificada de
l'entrada de prioritat superior. Les sortides daquest xip es connectaran directament a les entrades
IPL0* - IPL2* d'interrupci de l'MC68000.

los autores, 1998; Edicions UPC, 1998.


220 Disseny de sistemes digitals amb microprocessadors

Per generar els senyals de reconeixement d'interrupci, IACK1* - IACK7* dels 7 nivells d'interrupci
reals IRQ1* - IRQ7*, cal aprofitar la informaci que dna el microprocessador en el seu cicle IACK
(taula 6.5) i utililitzar un circuit descodificador, de tipus 74LS138, que doni a les seves sortides els
senyals IACK* corresponents als nivells d'interrupci indicats pels bits baixos A1 - A3 del bus
d'adreces del microprocessador. Els altres senyals que aporta aquest cicle mquina (FC0 - FC2, A4 -
A23 i AS*) es connectaran a les 3 entrades d'enable del xip esmentat.

El circuit complet de codificaci de les peticions d'interrupci i de la generaci dels senyals de


reconeixement d'interrupci es mostra a la figura 6.22.

74LS148
IRQ7* 7
IRQ6* 6 IPL2*
O2*
IRQ5* 5
4
IRQ4*
IRQ3* 3
O1* IPL1* M
IRQ2* 2
O0* IPL0* C
IRQ1* 1
. 0 6
. 20
A4-A23
8
IACK7* . 0
O7*
. . . O6*
E3
E2*
FC2
FC1 0
. . . . . . . . . . .. . . . . O5*
O4*
E1* FC0
0
AS*
. . . O3*
IACK1* O2* A1
A
O1* A2
B
NC O0* A3
C
74LS138

Fig. 6.22 Ciscuit datenci a les interrupcions amb lMC68000

6.6.2 Protocols per a interrupcions vectoritzades o autovectoritzades

La diferncia principal en el dileg amb els perifrics associats a aquests dos tipus d'interrupci de
l'MC6800 s que:

- els perifrics atesos per interrupci vectoritzada han de donar el vector d'interrupci pel bus
de dades del 68000 durant el cicle de reconeixement d'interrupci;

- els perifrics atesos per interrupci autovectoritzada han d'activar el senyal d'entrada VPA*
de lMC68000 durant aquest mateix cicle.
A la figura 6.23 es detalla un exemple amb 2 perifrics (o controladors o ports d'E/S) amb
interrupcions autovectoritzades i un perifric (o controlador o port d'E/S) amb interrupci

los autores, 1998; Edicions UPC, 1998.


Casos prctics 221

vectoritzada. S'aprofiten els circuits de petici i reconeixement d'interrupcions de l'apartat anterior


(Fig. 6.22).

VECTOR D'INTERRUPCI DE P7 DB
74LS148
IRQ7* 7
6 IPL2*
O2*
5
IRQ4* 4
O1* IPL1*
3
2
IRQ1* 1
O0* IPL0* M
IRQ* DB
0 C
20
P7 IACK7* A4-A23 6
IACK* O7*
E3 FC2
8
O6*
IRQ* IACK4* O5*
E2* FC1 0
E1* FC0
P4
O4*
O3*
AS* 0
IACK1* O2*
A A1 0
IRQ* O1*
B A2
O0*
C A3
P1 +5V
74LS138

VPA*

Fig. 6.23 Circuit per a interrupcions vectoritzades i autovectoritzades

L'nica novetat important daquest circuit s l'aprofitament dels senyals de reconeixement d'interrupci
IACK4* i IACK1*, corresponents als dispositius d'E/S que sn atesos per interrupcions
autovectoritzades, per a la generaci del senyal VPA* (Valid Peripheral Address), que indica al
microprocessador que ha d'utilitzar els autovectors 1 o 4 per trobar el comenament de la rutina de
servei d'interrupci d'aquests dispositius. Conv tamb remarcar la connexi en collector obert al
terminal VPA* i que s'han oms els circuits i les connexions de descodificaci i selecci dels
perifrics i els seus registres interns.

los autores, 1998; Edicions UPC, 1998.


222 Disseny de sistemes digitals amb microprocessadors

6.6.3 Connexi en cadena de dispositius d'E/S amb el mateix nivell de prioritat

La limitaci de 7 perifrics que poden demanar interrupci es pot superar mitjanant una connexi en
cadena (daisy chain) de diversos dispositius a cadascuna de les 7 lnies de petici d'interrupci. Com
que els dispositius d'E/S de lMC68000 no disposen de terminals dedicats a aquest tipus de connexi,
com ara IEI i IEO de la famlia del microprocessador Z80, han d'implementar-se els circuits auxiliars
necessaris per tal de realitzar aquesta connexi mitjanant un ordre de prioritat en la recepci del
senyal de reconeixement d'interrupci (IACK*) dintre de cada lnia amb un mateix nivell de prioritat,
tal com es mostra a la figura 6.24.

+5V

IRQ3*
(al codificador
amb prioritat)

IRQ* IRQ* IRQ*

1P3 2P3 3P3

IACK* IACK* IACK*

D Q D Q D Q
IACK3*
AS*
PR* PR* PR*

FC2
FC1
FC0

Fig. 6.24 Connexi en cadena de dispositius d'E/S associats al mateix nivell de prioritat

Els 3 perifrics de la figura poden demanar interrupci de nivell 3, per noms rebr el senyal de
reconeixement (IACK* = 0), amb la generaci d'un flanc de pujada a l'entrada de rellotge de la bscula
D corresponent, aquell que l'hagi demanada efectivament (IRQ* = 0) i que tingui ms prioritat en
l'ordre de posicionament (1P3 - 2P3 - 3P3) d'aquesta connexi en cadena.

En cas de no haver-hi cicle de reconeixement d'interrupci (FC2 FC1 FC0 = 111), les entrades IACK*
es mantenen desactivades a causa de l'activaci de lentrada de Preset (PR* = 0; Q = 0) de les
bscules. Els buffers amb collector obert asseguren una connexi correcta a la lnia de petici IR-Q3*.

los autores, 1998; Edicions UPC, 1998.

You might also like