Anda di halaman 1dari 17

APUNTES DE DISEO DE LA MEMORIA

Estructura Bsica

El diseo de la memoria de un computador posee dos metas:

Ubicacin de los dispositivos

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.

Sincronizacin de los dispositivos con el microprocesador.

Trata sobre el intercambio de informacin, de manera exitosa, entre el microprocesador y


el resto de la computadora. La meta es realizar un anlisis de tiempo que tome en cuenta todos
los retardos que se dan en la ruta que determinan los ciclos de lectura y de escritura a fin de
tomar una de dos acciones: seleccionar los dispositivos que soporten la velocidad establecida
por el anlisis o ralentizar la duracin de los ciclos de lectura y de escritura a fin de adaptar
esta a los dispositivos disponibles. Esta ltima opcin afecta el desempeo total de la
computadora ya que la hace mas lenta. Una alternativa intermedia generalmente usada es la
de intervenir solamente en los ciclos de lectura que ataen a los dispositivos lentos y permitir la

M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA

mxima velocidad en los dispositivos capaces.

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]

Buses: La computadora estndar usa en su funcionamiento 3 buses a saber el bus de


direcciones, el bus de control y el bus de datos. Estos buses son los responsables de
transportar todos los datos que el CPU intercambia con el resto de la computadora.
Fsicamente el bus no es mas que un conjunto de lneas (alambres) que usualmente corren en
paralelo a lo largo del motherboard y que en conjunto transportan un vector de 1s y 0s que
pueden ser interpretados por el CPU como un dato, como una instruccin o como una direccin.
Los buses usualmente son tres pero pueden ser mas:

Bus de direcciones: Transportan un patrn de 1s y 0s que son interpretados como una


direccin. La informacin que transporta este bus es unidireccional siempre yendo del CPU
a la memoria o del CPU a los perifricos o puertos de la computadora. Mas puntualmente
este bus se origina en el microprocesador y sus lineas se reparten entre la interfaz lgica,
los elementos de memoria y los elementos perifricos. El nmero binario en este bus se
usa como un nmero hexadecimal sin signo en los anlisis pertinentes.

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 es bidireccional lo que significa que la informacin que transporta puede


provenir del CPU y dirigirse hacia una memoria o puerto o bien puede originarse en
una memoria o puerto y dirigirse hacia el CPU, cuando el CPU lee una instruccin o un
dato la informacin viaja desde su punto de origen en el puerto o memoria y se dirige
hacia el CPU. Por otra parte cuando el microprocesador escribe un resultado o enva
informacin a un puerto esta se origina en el microprocesador y su destino es la celda
de memoria o el puerto seleccionado.

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

Buffer Normal (Solo para ilustracin)

Buffer Tristate (Solo ilustracin)

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.

Ejemplos de Diseo de la Interfaz (Ubicacin)

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.

Parmetros de sincronizacin del bus:


A continuacin la data que especifica los valores reales del ciclo de mquina:

M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA

La siguiente tabla muestra los parmetros de tiempo:

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

Separacin de WR* y RD*

M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA

b. Especificar los parmetros de lectura/escritura de la memoria a fin de asegurar


sincronismo con el CPU, a saber tiempo de acceso mximo tacc(max), tiempo de
habilitacin mximo toe(max), tiempo de retencin mximo thld(min), para escritura
y el tiempo de set-up tsup(min) si se utiliza un HC12 con un xtal de 10 MHz

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:

Al investigar la realizacin del circuito vemos que contamos con el 74LS20 y el


74LS04 los cuales presentan retrazos de 15ns c/u; el 74ALS573 posee un retardo
de 14ns desde la entrada D a la salida Q. La ecuacin para el tiempo de acceso
mximo sera:

tacc(max) = t22 - tLS10 - tLS04 - tALS573 = 200ns- 45ns - 18ns - 15ns - 15ns - 14ns = 93ns.

toe(max) = t23 - tLS00 = 100ns - 2ns -15ns = 83ns.

El tiempo de retencin de la memoria se establece para que una vez el dispositivo


sea retirado del bus, que ocurre cuando RD* cambia a 1, su data no perturbe el
siguiente ciclo de mquina: la siguiente grfica ayuda a entender este concepto:

thld(max)

DATOS DIR. SIG.

RD

thld(max) = t5 - t10 - tLS10 = 45ns - 20-15ns = 10ns

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. Disee la interfaz lgica para este 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

este con 15ns de mas

tacc(max ROM) = 98ns

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

b. Presente la conexin simplificada de este nuevo bloque

Solucin:

ADR(12:1) A(11:0) A(11:0)

D(7:0) DB(15:8) D(7:0) DB(7:0)


ROM ROM
4Kb 4Kb
RD RD RD

CS CS CS

Ejemplo No3 (Para realizar por los estudiantes).

Presente un diseo donde se implemente 10Kb a partir de la direccin $B000 usando


cualquiera de los siguientes dispositivos simblicos. Asuma que el HC12 usado en esta
oportunidad posee un xtal de 8MHz

A(11:0) A(10:0) A(9:0)

D(7:0) D(7:0) D(7:0)

RAM RAM RAM


4Kb 2Kb 1Kb
RD RD RD
WR WR WR
CS CS CS

Determine:

a. Diagrama lgico del circuito de acople

b. Parmetros de tiempo de la memoria a seleccionar (tacc, toe, y thld)

c. Diagrama lgico de la conexin simplificada.

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:

1. Ubicacin del bloque en la memoria de la computadora.

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

Incluyendo la tabla de funcionamiento. Note la conveniencia de la entrada /G que permite usar

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:

Direcciones: El mismo concepto para la conexin del bus de direcciones de la Memoria se


puede usar para los perifricos, as a cada dispositivo se le asigna la mitad del espacio
asignado al bloque asumiendo que el dispositivo colme el bloque cada dispositivo deber
contar con: (256/2 = 128 = 27) 7 lineas para el bus de direcciones desde A(6:0) tal como se
describe en el siguiente dispositivo

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.

Es importante la realizacin de un anlisis de tiempo para determinar las caractersticas AC de


los dispositivos que integran el bloque perifrico, dado que el procedimiento es igual al ya
revisado anteriormente el mismo se omite en este ejemplo y se le deja como ejercicio prctico
al estudiante.

Anlisis de tiempo asumiendo un el HC12 con un cristal de 12MHz.

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

Clculo del tOE


El circuito para el control de la seal de lectura:

tdOE = tals00HL = 8ns.


tOE = t23 - tdOE
tOE = PWEH - tDSR - tdOE
tOE = tcyc/4 + delay - tDSR - tdOE
tOE = (167/4 - 2 - 18 - 8)ns = 13.75ns

M. Logreira V. A.
APUNTES DE DISEO DE LA MEMORIA

Clculo del tiempo de retencin mximo.

tdHLD = tals00LH = 11ns


tHLD = t5 - t10 - tdHLD
tHLD = 20 - 11ns = 9ns

M. Logreira V. A.

Anda mungkin juga menyukai