Estructura Bsica
Trata sobre la localizacin de los dispositivos dentro del mapa de memoria, hablamos de
que rango de direcciones le toca a cada dispositivo ya sea este un componente de memoria,
un puerto, un temporizador o cualquier otro recurso que requiera compartir tiempo de uso con
el microprocesador.
Para lograr la ubicacin de cada elemento que integra la computadora se utiliza un circuito
lgico electrnico que acta como la interfaz lgica entre el Microprocesador y el resto de la
computadora. Las entradas de esta interfaz provienen del bus de direcciones y las salidas que
produce, usualmente nombradas CE*_ Chip Enable, son las que determinan cual
componente de memoria o recurso es seleccionado cuando el microprocesador emite una
direccin.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Conceptos relevantes:
CPU: Unidad de Procesamiento Central; puede tener dos significados relacionados con el
campo si hablamos en trminos comerciales la CPU de una Desktop se refiere al la unidad
central donde reside el motherboard, las unidades de disco duro y ptico, la fuente de
alimentacin y las tarjetas donde se conectan los perifricos. En este texto y en muchos otros
donde se discuten estos conceptos se refieren al circuito integrado que contiene la ALU Unidad
Lgica Aritmtica, La Unidad de Control y los Registros que almacenan datos temporales
usados en la ejecucin de los programas o sea los trminos CPU y Microprocesador se usaran
de manera intercambiable.
Microprocesador
(CPU)
BUS
DIRECCIONES
D
A B
X BUS DATOS
Y
SP
LSTRB*
PC
R/W*
CCR
ADDR[0]
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Bus de datos: Los 1s y 0s que transportan las lneas del bus de datos son interpretados
como datos o como instrucciones por los diferentes componentes que lo comparten. El bus
de datos es integral ya que todas sus lneas llegan por igual a todos los elementos de la
computadora ya sean el CPU, la memoria y los puertos. La cantidad de lneas en el bus de
datos dependen de la capacidad del microprocesador. Si el micro es de 8 bits entonces el
bus de datos posee 8 lneas, si el microprocesador es de 16 bits entonces el bus de datos
tiene 16 lneas y as con 32 y 64 bits.
El bus de datos posee dos caractersticas adicionales que no posee el bus de direcciones:
El bus de datos es de tres estados lo que significa que sus lneas deben poder
respaldar adems de los estados lgicos comunes 1 y 0 el estado Z (de alta
impedancia). En el estado Z el componente est prcticamente desconectado del bus
por lo que no influye en la comunicacin que se est llevando a cabo en ese momento.
Un componente conectado al bus de datos debe estar en el estado Z cuando el
intercambio de informacin no le atae, todos los elementos que se disean para en
algn momento enviar informacin usando el bus de datos deben poseer esta
caracterstica de los contrario estarn impedidos de conectarse al bus de datos y por
consiguiente no pueden formar parte de la computadora afortunadamente los
dispositivos de memoria, y perifricos diseados para usar el bus de datos de la
computadora se disean con esta caracterstica es usual que estos posean una
entrada nombrada CS* o CE* que cuando no est activada produce que los terminales
respectivos reflejen una alta impedancia y por lo tanto no afecten la transaccin del
momento pero cuando se activa entonces abandonen Z y participen en la transferencia
ya sea originando la informacin o recibindola para almacenarla. La barra diagonal
que antecede (CS*) indica que el estado de activacin es bajo o 0 y cuando est en 1
est desactivada y el componente est aislado. La siguiente figura ilustra una posible
realizacin de una salida tristate, recuerde que como entrada el terminal es alta
impedancia por definicin.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Vdd CS*
Vdd
X Y
X Y
X CS*
Y
X Y
Ciclos de Mquina: ademas de los buses de datos y de direcciones el CPU genera lo que son
las lneas de control que determinan si el ciclo de mquina es un ciclo de lectura o un ciclo de
escritura, las lneas de control a veces son dos; una para lectura que se nombra RD* y otra de
escritura que se nombra WR*. En el micro HC12 tres lneas cumplen este propsito W/R*
LSTRB y ADDR[0]`. El ciclo de maquina es el insumo crucial para el diseo de la sincronizacin
de memoria ya que establece todos los eventos que se dan en las seales que en el
intervienen: La figura a continuacin muestra las primeras seales del conjunto que intervienen
en un ciclo de mquina.
La seal ECS cambia de 1 a 0 siempre que en las seales del puerto A y el puerto B se
presenta la direccin pertinente al ciclo de mquina actual, esta seal se provee para grabar de
manera externa esta direccin as la misma estar disponible y se mantendr constante
durante el ciclo. Posterior al cambio de 1 a 0 de ECS las terminales del puerto A y B se
convierten en bus de datos. Los indicadores numricos que se presentan en la figura
representan los parmetros de tiempos involucrados en el anlisis, la tabla con los valores
actuales se omite.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Ciclo de lectura: empieza cuando el CPU enva una direccin a travs del bus de
direcciones, esta define de donde proviene la informacin que el micro solicita y se
mantendr constante en el bus hasta que el ciclo actual culmine y se inicie uno nuevo.
Posterior a la colocacin de la direccin el CPU activa la lnea de control RD* enviando un
pulso de nivel bajo cuya duracin depende de su desempeo, al final del pulso en RD* el
micro espera que la data que proviene del exterior este establecida en el bus datos
completando en ese instante la lectura, al mismo tiempo o instantes despus el bus de
direcciones pone una nueva direccin para iniciar un nuevo ciclo.
Ciclo de escritura: el CPU pone la direccin en el bus de direcciones a la misma vez pone
el dato en el bus de datos luego enva un pulso activo en la lnea de control WR* cuya
duracin es igual a la de su contra parte en el ciclo de lectura. Al final del pulso en WR* el
micro espera que el dispositivo direccionado haya tenido suficiente tiempo para registrar la
informacin quedando est libre para iniciar un nuevo ciclo.
En los ciclos de mquina se presentan parmetros de sincronizacin tales como tsup, thld toe,
tce, twr, trd los cuales deben ser interpretados en el anlisis de tiempo que se requiere para la
sincronizacin, a continuacin el significado de cada uno de estos.
Tiempo de set-up tsup: es el tiempo mnimo garantizado en el cual la data debe de estar
estable antes de que se realice el registro de la informacin, si este tiempo no se cumple
entonces la informacin registrada no se garantiza. Si la informacin se establece antes de tal
forma que el tsup se garantice entonces la informacin almacenada ser siempre coherente.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Tiempo de hold thld: es el tiempo mnimo en el cual la data debe permanecer estable en el
bus una ves que se de el registro de la informacin. Este tiempo se establece como cero en
algunos dispositivos pero puede tener un valor de algunos nanosegundos por lo que es
importante tambin tomarlo en cuenta al hacer el anlisis de tiempo.
La siguiente figura presenta un circuito que no puede faltar cuando se conecta memoria
externa al HC12.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Este circuitos utiliza un cerrojo transparente que separa el bus de direccin del bus de datos la
seal ECS enva un pulso alto activo en el momento preciso en que los PORTA y PORTB
presentan la informacin referente al bus de direcciones. De alli prosigue el resto del anlisis.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Los tiempos mostrados son tpicos del HC12 y asumiremos que aplican a sistemas que
ejecutan con una frecuencia menor, como por ejemplo el de 4 MHz que usamos en el
laboratorio siendo el tcyc = 1/(2MHz) = 500ns mximo en vez de los 125ns que especifica la
tabla.
Los tiempos que nos ataen seran toe = t22 = tcyc - tad - tdsr = 500ns - 45ns - 18ns = 437ns
se especifica como un mximo; tsup = tdsr = 18ns que se especifica como un mnimo y thld =
t12 = 0ns que tambin se especifica como un mnimo. En base a estos parmetros y algunos
otros pocos haremos el anlisis de tiempo.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Ejemplo No1:
Suponga que deseamos ubicar una memoria externa SRAM de 8Kbytes a partir de la direccin
$C000. Al no contar con dispositivos de 16bits de ancho se usarn dos dispositivos de 8bits de
ancho y de 4Kb cada uno cuyo smbolo se presenta a continuacin.
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
A(11:0)
D(7:0)
RAM
4Kb
RD
WR
CS
SRAM de 4K x 8
a. presente el diagrama del circuito lgico que genera la ubicacin de este bloque de
memoria RAM y el circuito que genera las seales que controlan WR* y RD*.
Solucin:
La interfaz lgica usa como entradas las lneas del bus de direcciones y la
ubicacin especificada para este diseo. Siendo la direccin de inicio
Dir_Ini = $C000 la direccin final estar ubicada en $C000 + 8K - 1 donde 1K =
1024 = 400h la direccin final ser Dir_Fin = $C000 + $2000 - 1 = $DFFF
Solucin:
Haciendo una observacin relacionada con el conteo binario concluimos que en el
rango C000 - DFFF solo los tres bits mas significativos ADR15, ADR14 y ADR13 se
mantienen en 110 mientras el resto vara. Los bits que varan del bus de direcciones
van a las entradas de direccin del dispositivo y las que no varan son las entradas
de la seccin de interfaz lgica cuya salida controla el CS* que genera la ubicacin.
A14
A15 CS
A14 A13
A15 CS ls10
A13
Implementacin
Circuito de ubicacin conceptual
ECLK R/W
RD
ls00
WR
ls00
ls00
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Solucin
Para asegurar la sincronizacin perfecta la memoria debe cumplir con el tiempo de
acceso mximo, el tiempo de habilitacin desde RD* y el tiempo de retencin
durante los ciclos de lectura y el tiempo de setup y de hold para los ciclos de
escritura. Segn la siguiente ecuacin:
tacc(max) = t22 - tLS10 - tLS04 - tALS573 = 200ns- 45ns - 18ns - 15ns - 15ns - 14ns = 93ns.
thld(max)
RD
El tiempo de set-up mximo lo determina t15 o sea 15ns o sea la memoria debe especificar
como mximo15ns si requiere mas de este tiempo no puede ser usada en esta aplicacin
c. Presente tambin la conexin simplificada entre los dos dispositivos de 8bits y los
buses del CPU.
Solucin:
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Ejemplo No2
Suponga que se aade otro bloque de 8Kb formado ahora por dos dispositivos ROM (Flash)
este nuevo bloque se ubica cubriendo la ltima seccin de 64K. Use el smbolo a continuacin
para representar el nuevo bloque de memoria
A(11:0)
D(7:0)
ROM
4Kb
RD
CS
Solucin:
Dir_ini = 64k - 8k = $10000 - $2000 = $E000. Dir_fin = Dir_ini + $2000 - 1 = $FFFF
Observando el rango binario los nicos bits que no cambian son ADR15, ADR14 y ADR13
todos se mantienen en 111 mientras que el resto de ADR(12:0) varan para cualquier direccin
dentro de este dispositivo.
A14
A15 ROMCS
A13
ls10
Solo el tiempo de acceso cambia ya que no se usa un LS04 en el circuito de acople quedando
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Agregar este nuevo dispositivo no afecta el resto del anlisis de tiempo y se debe seleccionar
la nueva ROM usando los mismos parmetros ya calculados
Solucin:
CS CS CS
Determine:
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
Ejemplo No 4
Se requiere incorporar a un computador de 16bits con capacidad de leer y escribir bytes una
seccin destinada a perifricos (puertos de entrada/salida) la seccin ocupa un bloque de 1K
ubicado a partir de la direccin $AC00. Los dispositivos a incorporar son todos de 8 bits e
incluyen: un temporizador (timer); un canal analgico (CODEC); un dispositivo con puertos de
entrada/salida y un controlador PWM de 8 canales. Todos estos dispositivos contienen
registros tanto de configuracin como de datos con capacidad de lectura y escritura. El
perifrico con mayor cantidad de registros no sobrepasa de 50bytes. Asuma que por facilidad
de acceso se requiere que todos los registros ocupen posiciones de memoria cuyas
direcciones sean par (A0 = 0).
Solucin:
El bloque ocupa desde la posicin $AC00 hasta la $AC00 + $400(1k) - 1 => $AC00 hasta la
$AFFF entonces para direccionar el bloque se requiere de un circuito que mande un cero
cuando cualquier direccin caiga dentro de este rango, el siguiente circuito hace lo propio:
Al ser cuatro los dispositivos se le asignar a cada uno 256 posiciones del bloque de 1K ya que
cada uno contiene no mas de 50 bytes. Para dividir un bloque en partes iguales se suelen
utilizar decodificadores (demultiplexores aplicados). Se cuenta con dcd. de 2 a 4 (2 entradas
a cuatro salidas) de 3 a 8 y de 4 a 16. Usaremos el de 2 a 4 cuyo smbolo se ilustra a
continuacin.
2a4
A0 Y0
A1 Y1
Y2
G
Y3
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
la seal /PSEL anterior para activar el DCD y as poder completar los requerimientos. Entonces
la seleccin de los perifricos la logra el siguiente circuito:
Tambin se puede saber el rango de direcciones que ocupa cada dispositivo. Por ejemplo el
PWM ocupa el rango desde la $AF00 hasta la $AFFF
Conexin de los buses.
Control: Al ser dispositivos de escritura y de lectura se debe usar la conexin de la RAM para el
bus de control a saber la lnea /MRD se conecta directo mientras que la lnea /MWR se debe
asegurar que se active solo cuando se escriba una direccin par:
Datos: Este bus debe conectarse en concordancia con la conexin de la lnea de control de
escritura, dado que hemos decidido conectarla usando las direcciones pares entonces
debemos usar solamente la parte mas significativa del bus de datos de D(15:8).
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
A continuacin solo se muestra la conexin del TMER ya que el resto e dispositivos se conecta
en forma anloga.
Tiempo de Acceso:
Clculo del retardo del CS:
dTcs = tMAXals573(D->Q) + tHLals00 + 2*tHLals32 + tHLals139(G->Y)
dTcs = 14ns + 8ns + 2*12ns + 15ns = 61ns.
Tacc = t22 - dTcs
Tacc = tcyc - tAD - tDSR - dTcs
Tacc = (167 - (167/4+14) - 18 - 61)ns = 32.25ns
M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA
M. Logreira V. A.