Você está na página 1de 16

APUNTES DE DISEÑO DE LA MEMORIA

Estructura Básica

El diseño de la memoria de un computador posee dos metas:

Ubicación de los dispositivos

Trata sobre la localización 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 ubicación de cada elemento que integra la computadora se utiliza un circuito
lógico electrónico que actúa como la interfaz lógica 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
dirección.

Sincronización de los dispositivos con el microprocesador.

Trata sobre el intercambio de información, de manera exitosa, entre el microprocesador y


el resto de la computadora. La meta es realizar un análisis 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 análisis o ralentizar la duración de los ciclos de lectura y de escritura a fin de adaptar
esta a los dispositivos disponibles. Esta última opción afecta el desempeño 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 atañen a los dispositivos lentos y permitir la

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

máxima velocidad en los dispositivos capaces de respaldarla.

Conceptos relevantes:

CPU: Unidad de Procesamiento Central; puede tener dos significados relacionados con el
campo si hablamos en términos 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
alimentación y las tarjetas donde se conectan los periféricos. En este texto y en muchos otros
donde se discuten estos conceptos se refieren al circuito integrado que contiene la ALU Unidad
Lógica Aritmética, La Unidad de Control y los Registros que almacenan datos temporales
usados en la ejecución de los programas o sea los términos 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 estándar 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.
Físicamente el bus no es mas que un conjunto de líneas (alambres) que usualmente corren en
paralelo a lo largo del motherboard y que en conjunto transportan un patrón de 1 y 0 que
pueden ser interpretados por el CPU como un dato (un número binario) o como una instrucción.
Los buses usualmente son tres pero pueden ser mas:

 Bus de direcciones: Transportan un patrón de 1 y 0s que son interpretados como una


dirección. La información que transporta este bus es unidireccional siempre yendo del CPU
a la memoria o del CPU a los periféricos o puertos de la computadora. Mas puntualmente
este bus se origina en el microprocesador y sus lineas se reparten entre la interfaz lógica,
los elementos de memoria y los elementos periféricos. El patrón de 1 y 0s en este bus se
usa como un número hexadecimal sin signo en los análisis pertinentes.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

 Bus de datos: Los 1 y 0s que transportan las líneas del bus de datos son interpretados
como datos y como instrucciones por los diferentes componentes que lo comparten. El bus
de datos es integral ya que todas sus líneas llegan por igual a todos los elementos de la
computadora que lo usan ya sean el CPU, la memoria y los puertos. La cantidad de líneas
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 líneas, si el microprocesador es de 16 bits entonces el
bus de datos tiene 16 líneas y así con 32 y 64 bits.
El bus de datos posee dos características adicionales que no posee el bus de direcciones:

 El bus es bidireccional lo que significa que la información 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 instrucción o un
dato la información 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 envía
información a un puerto esta se origina en el microprocesador y su destino es la celda
de memoria o el puerto direccionado.

 El bus de datos es de tres estados lo que significa que sus líneas deben poder
respaldar además de los estados lógicos comunes 1 y 0 el estado Z (de alta
impedancia). En el estado Z el componente está prácticamente desconectado del bus
por lo que no influye en la comunicación 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 información no le atañe, todos los elementos que se diseñan para en
algún momento enviar información usando el bus de datos deben poseer esta
característica de los contrario estarán impedidos de conectarse al bus de datos y por
consiguiente no pueden formar parte de la computadora afortunadamente los
dispositivos de memoria, y periféricos diseñados para usar el bus de datos de la
computadora se diseñan con esta característica 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 transacción del
momento pero cuando se activa entonces abandonen Z y participen en la transferencia
ya sea originando la información o recibiéndola para almacenarla. La barra diagonal
que antecede (CS*) indica que el estado de activación es bajo o ‘0’ y cuando está en ‘1’
está desactivada y el componente está aislado. La siguiente figura ilustra la
implementación de una salida tristate, recuerde que como entrada el terminal es alta
impedancia por definición.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

Vdd CS*

Vdd

X Y
X Y
X CS*
Y

X Y

Buffer Normal (Solo para ilustración)

Buffer Tristate (Solo ilustración)

Ciclos de Máquina: ademas de los buses de datos y de direcciones el CPU genera lo que son
las líneas de control que determinan si el ciclo de máquina es un ciclo de lectura o un ciclo de
escritura, las líneas 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 líneas cumplen este propósito W/R*
LSTRB y ADDR[0]`. El ciclo de maquina es el insumo crucial para el diseño de la memoria ya
que es el establece todos los eventos que se dan en las señales que en el intervienen: La
figura a continuación muestra las primeras señales del conjunto que intervienen en un ciclo de
máquina.

La señal ECS cambia de 1 a 0 siempre que en las señales del puerto A y el puerto B se
presenta la dirección pertinente al ciclo de máquina actual, esta señal se provee para grabar de
manera externa esta dirección 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 numéricos que se presentan en la figura
representan los parámetros de tiempos involucrados en el análisis, la tabla con los valores
actuales se omite.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

 Ciclo de lectura: empieza cuando el CPU envía una dirección a través del bus de
direcciones, esta define de donde proviene la información 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 colocación de la dirección el CPU activa la línea de control RD* enviando un
pulso de nivel bajo cuya duración depende de su desempeño, 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 después el bus de
direcciones pone una nueva dirección para iniciar un nuevo ciclo.

 Ciclo de escritura: el CPU pone la dirección en el bus de direcciones a la misma vez pone
el dato en el bus de datos luego envía un pulso activo en la línea de control WR* cuya
duración 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
información quedando esté libre para iniciar un nuevo ciclo.

En los ciclos de máquina se presentan parámetros de sincronización tales como tsup, thld toe,
tce, twr, trd los cuales deben ser interpretados en el análisis de tiempo que se requiere para la
sincronización, a continuación el significado de cada uno de estos.
Tiempo de set-up “tsup”: es el tiempo mínimo garantizado en el cual la data debe de estar
estable antes de que se realice el registro de la información, si este tiempo no se cumple
entonces la información registrada no se garantiza. Si la información se establece antes de tal
forma que el tsup se garantice entonces la información almacenada será siempre coherente.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

Tiempo de hold “thld”: es el tiempo mínimo en el cual la data debe permanecer estable en el
bus una ves que se de el registro de la información. Este tiempo se establece como cero en
algunos dispositivos pero puede tener un valor de algunos nanosegundos por lo que es
importante también tomarlo en cuenta al hacer el análisis de tiempo.

Ejemplos de Diseño de la Interfaz (Ubicación)

La siguiente figura presenta un circuito que no puede faltar cuando se conecta memoria
externa al HC12.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

Este circuitos utiliza un cerrojo transparente que separa el bus de dirección del bus de datos la
señal ECS envía un pulso alto activo en el momento preciso en que los PORTA y PORTB
presentan la información referente al bus de direcciones. De alli prosigue el resto del análisis.

Parámetros de sincronización del bus:


A continuación la data que especifica los valores reales del ciclo de máquina:

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

La siguiente tabla muestra los parámetros de tiempo:

Los tiempos mostrados son típicos 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 máximo en vez de los 125ns que especifica la
tabla.
Los tiempos que nos atañen serían toe = t22 = tcyc - tad - tdsr = 500ns - 45ns - 18ns = 437ns
se especifica como un máximo; tsup = tdsr = 18ns que se especifica como un mínimo y thld =
t12 = 0ns que también se especifica como un mínimo. En base a estos parámetros y algunos
otros pocos haremos el análisis de tiempo.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

Ejemplo No1:
Suponga que deseamos ubicar una memoria externa SRAM de 8Kbytes a partir de la dirección
$C000. Al no contar con dispositivos de 16bits de ancho se usarán dos dispositivos de 8bits de
ancho y de 4Kb cada uno cuyo símbolo se presenta a continuación.

M. Logreira V. A.
APUNTES DE DISEÑO 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 lógico que genera la ubicación de este bloque de
memoria RAM y el circuito que genera las señales que controlan WR* y RD*.

Solución:

La interfaz lógica usa como entradas las líneas del bus de direcciones y la
ubicación especificada para este diseño. Siendo la dirección de inicio
Dir_Ini = $C000 la dirección final estará ubicada en $C000 + 8K - 1 donde 1K =
1024 = 400h la dirección final será Dir_Fin = $C000 + $2000 - 1 = $DFFF

Solución:
Haciendo una observación 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 varía. Los bits que varían del bus de direcciones
van a las entradas de dirección del dispositivo y las que no varían son las entradas
de la sección de interfaz lógica cuya salida controla el CS* que genera la ubicación.

A14
A15 CS
A14 A13
A15 CS ls10
A13

Implementación
Circuito de ubicación conceptual

ECLK R/W

RD

ls00

WR
ls00
ls00

Separación de WR* y RD*

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

b. Especificar los parámetros de lectura/escritura de la memoria a fin de asegurar


sincronismo con el CPU, a saber tiempo de acceso máximo tacc(max), tiempo de
habilitación máximo toe(max), tiempo de retención máximo thld(min), para escritura
y el tiempo de set-up tsup(min) si se utiliza un HC12 con un xtal de 10 MHz

Solución
Para asegurar la sincronización perfecta la memoria debe cumplir con el tiempo de
acceso máximo, el tiempo de habilitación desde RD* y el tiempo de retención
durante los ciclos de lectura y el tiempo de setup y de hold para los ciclos de
escritura. Según la siguiente ecuación:

Al investigar la realización 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 20ns desde la entrada LE a la salida Q. La ecuación para el tiempo de acceso
máximo sería:

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

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

El tiempo de retención 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 máquina: la siguiente gráfica ayuda a entender este concepto:

thld(max)

DATOS DIR. SIG.

RD

thld(max) = t5 - tLS10 = 45ns - 15ns = 30ns

El tiempo de set-up máximo lo determina t15 o sea 15ns o sea la memoria debe especificar
como máximo15ns si requiere mas de este tiempo no puede ser usada en esta aplicación

c. Presente también la conexión simplificada entre los dos dispositivos de 8bits y los
buses del CPU.

Solución:

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

Ejemplo No2

Suponga que se añade otro bloque de 8Kb formado ahora por dos dispositivos ROM (Flash)
este nuevo bloque se ubica cubriendo la última sección de 64K. Use el símbolo a continuación
para representar el nuevo bloque de memoria

a. Diseñe la interfaz lógica para este nuevo bloque de memoria.

A(11:0)

D(7:0)

ROM
4Kb
RD

CS

Solución:
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) varían para cualquier dirección
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 DISEÑO DE LA MEMORIA

este con 15ns de mas

tacc(max ROM) = 98ns

Agregar este nuevo dispositivo no afecta el resto del análisis de tiempo y se debe seleccionar
la nueva ROM usando los mismos parámetros ya calculados

b. Presente la conexión simplificada de este nuevo bloque

Solución:

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 diseño donde se implemente 10Kb a partir de la dirección $B000 usando


cualquiera de los siguientes dispositivos simbólicos. 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 lógico del circuito de acople

b. Parámetros de tiempo de la memoria a seleccionar (tacc, toe, tsup y thld)

c. Diagrama lógico de la conexión simplificada.

M. Logreira V. A.
APUNTES DE DISEÑO DE LA MEMORIA

Ejemplo No 4

Se requiere incorporar a un computador de 16bits con capacidad de leer y escribir bytes una
sección destinada a periféricos (puertos de entrada/salida) la sección ocupa un bloque de 1K
ubicado a partir de la dirección $AC00. Los dispositivos a incorporar son todos de 8 bits e
incluyen: un temporizador (timer); un canal analógico (CODEC); un dispositivo con puertos de
entrada/salida y un controlador PWM de 8 canales. Todos estos dispositivos contienen
registros tanto de configuración como de datos con capacidad de lectura y escritura. El
periférico 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).

Solución:

1. Ubicación del bloque en la memoria de la computadora.

El bloque ocupa desde la posición $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 dirección 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 símbolo se ilustra a
continuación.

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 DISEÑO DE LA MEMORIA

la señal /PSEL anterior para activar el DCD y así poder completar los requerimientos. Entonces
la selección de los periféricos la logra el siguiente circuito:

También se puede saber el rango de direcciones que ocupa cada dispositivo. Por ejemplo el
PWM ocupa el rango desde la $AF00 hasta la $AFFF
Conexión de los buses.
Control: Al ser dispositivos de escritura y de lectura se debe usar la conexión de la RAM para el
bus de control a saber la línea /MRD se conecta directo mientras que la línea /MWR se debe
asegurar que se active solo cuando se escriba una dirección par:

Direcciones: El mismo concepto para la conexión del bus de direcciones de la Memoria se


puede usar para los periféricos, 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 conexión de la línea 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 DISEÑO DE LA MEMORIA

A continuación solo se muestra la conexión del TMER ya que el resto e dispositivos se conecta
en forma análoga.

Es importante la realización de un análisis de tiempo para determinar las características AC de


los dispositivos que integran el bloque periférico, dado que el procedimiento es igual al ya
revisado anteriormente el mismo se omite en este ejemplo y se le deja como ejercicio práctico
al estudiante

M. Logreira V. A.

Você também pode gostar