amplio de lo que se pide

Anuncio
MEMORIAS MULTIPUERTO: CONCEPTO
‹ CONCEPTO DE MEMORIAS DE DOBLE PUERTO:
i
RAM QUE PUEDE SER ACCEDIDA SIMULTÁNEAMENTE POR MÁS DE UN SISTEMA.
i
DISPONIBILIDAD DE CONJUNTOS DE BUSES DE CONTROL, DIRECCIONES Y DATOS.
i
COMPUESTA POR CELDAS CON DOS ACCESOS REALES A LA CELDA
‹ SISTEMAS PREVIOS, ALTERNATIVOS
SISTEMA DE E/S
(DISCO)
CONCESIÓN
SOLICITUD
CPU
SISTEMA DE E/S
(DISPLAY)
MEMORIA
DIRECC.
DATOS
R/W
ARBITRACIÓN PARA MULTIPLEXACIÓN DEL ACCESO, O DMA
junio 1999
* No hay conflicto por acacceso (un sistema se para).
* Se requieren memoria
que trabajen al doble de
frecuencia (la velocidad se
reduce a la mitad)
* Con D.P. se dobla la
eficiencia
"MEMORIAS MULTIPUERTO"
Para describir y estudiar las memorias multipuerto, se van a utilizar, como ejemplo, las
memorias de doble puerto. Si bien éstas son un caso particular de las mismas, también
es cierto que son las más utilizadas y más extendidas. No obstante, se mostrarán otras
memorias de más de dos puertos, como ejemplo de otros tipos de memorias multipuerto.
Hay que hacer hincapié en que cada uno de estos conjuntos de buses, acceden a las
mismas celdas del array de la memoria.
Una memoria de doble puerto (DP) es una memoria RAM a la que se puede acceder
simultáneamente desde dos sistemas diferentes, lo que implica que el array de memoria
puede ser accedida por dos conjuntos de buses de direcciones, datos y control. Antes de
su existencia, el acceso a una memoria por parte de dos sistemas, o más, debía ser
realizado por el diseñador, multiplexando el acceso a una memoria RAM de un solo
puerto. La multiplexación en el tiempo para utilización del recurso (memoria en este
caso) en el tiempo, asegura que no hay conflictos en los accesos (dos sistemas queran
hacer uso de un mismo bus para realizar transferencias), no obstante, el tiempo de
acceso aumenta, y el rendimiento de la memoria (en lo que se refiere a tiempo de
acceso) es inferior a la mitad (de media). Utilizando RAM de DP la eficiencia se dobla,
además de que no existen restricciones de acceso, para dos sistemas.
Cada uno de los conjuntos de buses controla independientemente, y pueden hacerlo
simultáneamente, el acceso a cualquier palabra de memoria. Pueden incluso hacerlo a
la misma posición, con ciertas restricciones que posteriormente se estudiarán. Cada uno
de los sistemas puede utilizar un reloj (o frecuencia de acceso) diferente, lo que
proporciona una sincronización inherente que supone uno de los mayores beneficios, al
usar DP para establecer una comunicación entre ellos.
5
MEMORIAS MULTIPUERTO: ESTRUCTURA
DIAGRAMA DE BLOQUES (MEMORIA DE DOBLE PUERTO)
E/S DE DATOS
IZDA.
E/S DE DATOS
DCHA.
DIRECC.
DIRECC.
R/W
DATOS
DECOD. DE
DIRECCIONES
IZDA.
MEMORIA RAM
DE CELDAS DE
DOBLE PUERTO
DECOD. DE
DIRECCIONES
DCHA.
R/W
CPU O
SISTEMA DE E/S
DCHA
CPU O
SISTEMA DE E/S
IZDA
DATOS
ARBITRACIÓN DE ACCESOS
* DOS CONJUNTOS DE BUSES COMPLETOS
* ACCESO INDEPENDIENTE Y SIMULTÁNEO, INCLUSO A LA MISMA PALABRA
EL PRINCIPAL BENEFICIO ES LA SINCRONIZACIÓN INHERENTE QUE PRO-PORCIONA SISTEMAS
QUE SE COMUNIQUEN MEDIANTE MEMORIAS M.P.
junio 1999
"MEMORIAS MULTIPUERTO"
Una memoria de doble puerto está constituida por un único array de celdas de memoria,
como la que se mostrará posteriormente, al cual se accede desde dos sistemas de
entrada/salida diferentes (uno por cada puerto), previa decodificación de direcciones.
Para la decodificación de direcciones y control de acceso existe una lógica
independiente para cada uno de los puertos. La forma de acceder/entregar los datos, así
como la de suministrar o generar las direcciones, van a depender de cada tipo de
memoria en particular, por lo que se presentarán diferentes opciones, que se detallarán
en el momento oportuno.
En el caso de las memorias asíncronas, que a continuación se estudiarán, incluyen un
bloque de arbitración de accesos, evitando así conflictos (accesos simultáneos que
puedan poner en peligro la consistencia de los datos), el cual facilita la tarea de diseño e
incluye sistemas para implementación de protocolos, que proporcionan a este tipo de
memorias una gran potencialidad de aplicación. Esto hace que este tipo de memorias
posea una líneas de arbitración, en sus diferentes modos, además de las estándar de
datos direcciones y control. En cada tipo de memoria, se incluirá la descripción del
patillaje típico de las mismas.
6
MEMORIAS MULTIPUERTO: TIPOS
z TIPOS DE MEMORIAS DE MULTIPLE PUERTO:
CIRCUITOS DE CONTROL DE
ACCESO Y OPERACIÓN
* ASÍNCRONAS
Acceso aleatorio, sin señal de reloj de sincronismo, controlado por (CE, OE, R/W, xB)
* SÍNCRONAS
Posibilita los accesos en modo ráfaga “burst”,
sincronizados por una señal de reloj externo,
captura de direcciones y autoincremento de
direcciones
junio 1999
DECODIF. Y
REGISTRO DE
DIRECCIONES
CONTADOR
"MEMORIAS MULTIPUERTO"
Existen dos tipos de memorias DP, memorias asíncronas y memorias síncronas. Las
memorias asíncrona, como su propio nombre indica, no están sujetas para la realización
de una operación de entrada salida a ninguna temporización rígida, salvo las marcadas
por sus propias cronogramas, pero no siguen la secuencia de ningún reloj. La operación
de lectura o escritura se realiza bajo el control de las líneas de selección de chip, la
habilitación de salida y la operación a realizar. Estas operaciones se pueden dar en
cualquier momento, por parte de cualquiera de los puertos. Estas memorias se adaptan
perfectamente a sistemas con microprocesadores que trabajan en bus asíncrono.
En el caso de las memorias síncronas, además de tener activas las líneas de selección de
chip y el resto de las de control en el estado deseado (lectura escritura), la operación no
se llevará a cabo hasta que suceda una transición. Las señales que controlan el acceso al
dispositivo -selección de chip, sentido de la transferencia, posición a la que se accedeson registradas internamente por el dispositivo, realizándose la captura en el flanco
ascendente de la señal de reloj. Por tanto, los accesos están sincronizados con dicho
reloj.
Otras funciones que este tipo de memorias suele incluir, como captura de señales de
direcciones e incremento de las mismas, o almacenamiento en registro de los datos de
salida, también se realizan sincronizados por dicha señal de reloj.
7
MEMORIAS MULTIPUERTO: UTILIDADES
UTILIDADES:
* COMUNICACIÓN Y SINCRONIZACIÓN DE DISPOSITIVOS A TRAVÉS DE MEMORIA, PARA
TRANSFERENCIA DE DATOS, A LA VEZ QUE ALMACENA DATOS.
* SIMPLIFICACIÓN DEL DISEÑO DE SISTEMAS CON MEMORIA COMPARTIDA.
* ACCESOS DMA SIN DETENER LOS ACCESOS DE LA CPU.
* REALIZACIÓN DE SISTEMAS DE MEMORIA CACHÉ.
* REGISTROS INTERNOS DE CPU´S CON DOS ACCESOS.
* ACCESOS SIMULTÁNEOS AL MISMO CHIP.
* SISTEMAS DE COMUNICACIONES, SIRVIENDO DE BUFFER Y ADAPTANDO VELOCIDADES
* PERMITE ACCESOS E INTERCAMBIO DE DATOS MUY RÁPIDOS Y SENCILLOS
EVITAN:
* CIRCUITERÍA ESPECIAL PARA REALIZARLAS A PARTIR DE RAM ESTÁNDAR
* DETECCIÓN DE CPU EN ACCESOS DMA
* MEMORIA LOCAL Y MEMORIA COMPARTIDA (TIEMPOS CRÍTICOS DE ACCESO)
junio 1999
"MEMORIAS MULTIPUERTO"
Las características de este tipo de memorias RAM permiten que a través de ellas se
puedan comunicar diferentes dispositivos, como pueden ser CPU, controladores de
disco, de video, impresoras, etc. También pueden usarse para enlazar dos CPU´s que
estén desarrollando dos tareas distintas pero relacionadas, y que precisen comunicarse
datos o tablas de una a otra. En este tipo de aplicaciones, además de proporcionar una
vía de comunicación de muy fácil diseño, sirven también como almacén de datos para
ambos sistemas. Además, evitan la necesidad de tener que diseñar circuitos especiales, y
en ocasiones complejos, para llevar a cabo estas comunicaciones.
En sistemas que necesitan disponer de memoria compartida, dado que utilizan los
mismos datos y variables, las memorias de múltiple puerto evitan la saturación del
único bus de las memorias convencionales, por el que todas las CPU acceden a la
memoria, aumentando el rendimiento (posibilitando accesos más rápidos, puesto que no
se depende de que el bus esté ocupado por otro procesador que accede a la memoria), a
la vez que evitan tener que diseñar y construir los circuitos de multiplexación y control
de acceso a la memoria. Un caso particular son los accesos DMA Tradicionalmente,
cuando un dispositivo periférico deseaba realizar una transferencia masiva de datos
mediante este tipo de acceso, dejaba en estado de espera a la CPU, dado que no disponía
de otro camino posible para acceder a memoria. Como consecuencia de esto, el
rendimiento de la CPU se venía reduciendo aproximadamente a la mitad de sus
posibilidades.
Otra utilidad de este tipo de dispositivos es facilitar el diseño de sistemas con jerarquía
de memoria, consiguiendo acelerar el proceso de transferencia de bloques entre
memoria central del sistema y el procesador, funcionado de este modo como sistema de
memoria caché “look a through”.
8
Las memorias DP son idóneas para implementar registros de CPU segmentadas, puesto
que permiten dos accesos simultáneos, haciendo posible que la CPU pueda trabajar por
su bus interno, mientras el registro almacena o carga datos en/desde memoria central,
por el otro puerto.
El último avance de los dispositivos DP ha consistido en la consecución de dispositivos
de alta velocidad (síncronos). Éstos posibilitan accesos de muy alta velocidad a dos
sistemas con el mínimo coste de retardo e interferencia. Adicionalmente, pueden servir
para “bufferear” transferencias entre sistemas con diferente reloj de operación.
En resumen, el gran logro de los dispositivos multipuerto ha sido la sencillez que han
aportado al diseño de sistemas electrónicos, en ocasiones de alta velocidad de acceso,
mejorando notablemente el rendimiento de los sistemas.
CÉLULA DE MEMORIA DE DOBLE PUERTO
WR
1
LINEA DE DATO (1 BIT)
ESCRITURA (WRITE)
IZDA.
WR
1
WR
0
SELECCIÓN DEL LADO
DCHO. ( DECOD. DIRECC.)
ESCRITURA (WRITE)
DCHA.
WR
0
RD
RD
CELDA RAM
“LATCH”
LECTURA (READ)
IZDA.
junio 1999
ACTIVACIÓN LADO
DERECHO
LINEA DE DATO (1 BIT)
SELECCIÓN DEL LADO
IZDO. ( DECOD. DIRECC.)
ACTIVACIÓN LADO
IZQUIERDO
LECTURA (READ)
DCHA.
"MEMORIAS MULTIPUERTO"
Cuando se trabaja con este tipo de memorias es habitual colocar el subíndice “I”ó “L”
(left) a los terminales de todos los buses del puerto de la izquierda y “D” ó “R” (right) a
todos los terminales conectados al puerto de la derecha.
Consta, por cada uno de los lados, de una señal de selección procedente de la lógica de
selección correspondiente, y que activará 8 de estas celdas (si el tamaño del dato de
memoria s es de 8 bits). Estas señales son independientes.
Además posee de una línea para indicar si la operación realizada es de lectura o de
escritura. En el caso de que la línea de selección esté activada, si se selecciona escritura
se cogerá el dato desde la línea de datos (por medio de la línea superior de la figura) y el
estado de dicha línea se cargará en el “latch” que constituye la celda de memoria. Si la
operación a realizar es la de escritura, el valor acumulado en dicho “latch” se pondrá en
la línea de datos.
Hay que hacer constar, que en el caso de que se acceda simultáneamente (caso posible)
a la celda, si es en lectura no se presenta ningún conflicto, pero si mientras uno de los
lados lee el otro intenta escribir, no se puede asegurar cual será el dato de la lectura.
Nótese que también es posible que ambos lados accedan en escritura. El conflicto que
esto genera se intentará resolver con el sistema de arbitración, como se estudiará.
9
MEMORIAS DE DOBLE PUERTO ASÍNCRONAS (I)
MEMORIA DE DOBLE PUERTO ASÍNCRONA
‹
POSEE DOS CONJUNTOS COMPLETOS DE BUSES
‹ SE PUEDE ACCEDER SIMULTÁNEAMENTE POR AMBOS PUERTOS INCLUSO
A LA MISMA POSICIÓN -EXTERNAMENTE PUEDE NO CORRESPONDER LA
DIRECCIÓN‹
ACCESOS SIMULTÁNEOS DE LECTURA A LA MISMA POSICIÓN NO
PRESENTAN NINGÚN CONFLICTO.
¿¿¿ ESCRITURA-LECTURA / ESCRITURA-ESCRITURA ???
SEÑALES DE ARBITRACIÓN DE ACCESO
OPERACIÓN
junio 1999
RESULTADO DE LA OPERACIÓN
PUERTO IZDO
PUERTO DCHO
LECTURA
LECTURA
AMBOS LEEN
LECTURA
ESCRITURA
ESCRITURA
LECTURA
EL PUERTO QUE ACCEDIÓ MÁS TARDE PUEDE LEER,
PERO EL DATO LEÍDO PUEDE NO SER VÁLIDO.
SU ESCRITURA ESTÁ BLOQUEADA INTERNAMENTE
ESCRITURA
ESCRITURA
"MEMORIAS MULTIPUERTO"
A las celdas de la memoria asíncrona se puede acceder independientemente por ambos
puertos, y sin ninguna sincronización. Esto hace que pueda darse el caso en que
simultáneamente se está accediendo a la misma posición. Cuando ambos accesos sean
en lectura, ambos puertos leerán el mismo dato y la lectura será correcta. En el caso en
que uno de los dos puertos acceda en modo escritura, o ambos, se plantearía un
problema de coherencia de datos.
Si uno de los puertos accede en escritura y simultáneamente el otro accede en lectura,
pueden ocurrir dos cosas: si el puerto que accede en escritura es el prioritario para la
memoria (realizó el comienzo del acceso antes que el otro -ganador o poseedor del
recurso-) se permite la lectura del segundo puerto, pero el dato leído puede ser el
antiguo, el nuevo o una mezcla de ambos. No obstante, como se verá en el apartado de
arbitración de accesos, se indicará al sistema que está accediendo simultáneamente con
el otro puerto y que por tanto la lectura puede no ser válida. En el caso de que el que sea
prioritario es el de lectura, aunque externamente se posibilita la lectura por parte del
otro puerto, internamente se bloquea el acceso hasta las celdas de acumulación de datos.
El dato leído por el puerto es correcto y se envía al puerto que intenta escribir una señal
de acceso simultáneo.
Cuando se diera la situación de que ambos puertos acceden en escritura a la misma
posición, el sistema interno de la memoria bloquea la escritura del puerto que accedió
más tarde al recurso (aunque los accesos se solapan, son simultáneos) dando paso a la
escritura por parte del otro puerto, e indicando a aquel, mediante la activación de una
señal, que su acceso ha sido infructuoso.
10
La solución al problema que presenta el acceso simultáneo a una misma posición, se
solventa mediante la lógica y circuitos de arbitración de acceso. Esta arbitración se suele
llevar a cabo mediante 4 técnicas diferentes, tres de las cuales cuentan con la ayuda de
circuitos incorporados en los propios chip de memorias DP. Se trata de la arbitración
por medio de : interrupciones, semáforos, y señal de ocupado. No todas las memorias
incorporan los tres sistema. No obstante, a continuación se muestra un ejemplo de
memoria que cuenta con todos ellos, y por ende con los terminales: INT#, SEM# y
BUSY#.
MEMORIAS DE DOBLE PUERTO ASÍNCRONAS (II)
EJEMPLO DE MEMORIA DE DOBLE PUERTO ASÍNCRONA
junio 1999
"MEMORIAS MULTIPUERTO"
11
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (I)
MÉTODOS PARA LA ARBITRACIÓN DE ACCESOS
• Van a depender de los recursos que proporcione la propia memoria
• Arbitración realizada por el diseñador del sistema
• Acceso por división en áreas
• Acceso mediante semáforos
• Acceso originado por señales de interrupción
• Acceso bloqueado por señal de ocupado
junio 1999
"MEMORIAS MULTIPUERTO"
Con la arbitración de accesos a memoria se pretender dar solución al problema de
accesos simultáneos, desde los dos puertos a la misma posición de memoria. La
solución a este problema normalmente se realiza en hardware, aunque, como se plantea
aquí, existe otra solución que es realizar un reparto de accesos a diferentes zonas en
diferente tiempo.
Los tres últimos modos de arbitración indicados suelen estar incluidos en la lógica de
control de las memorias DP para resolver los problemas de aplicación más comunes:
señalización entre procesadores (interrupciones), interacción cuando ambos están
usando la misma posición (señal de ocupado) y hardware para asignar temporalmente
un bloque de memoria sólo a un puerto (semáforos).
En lo que sigue, se pretende mostrar la forma de empleo de esta arbitración, problemas
que presenta, las soluciones a los mismos cronogramas implicados. Los cronogramas de
escritura y lectura por cada uno de los puertos, sin estar involucradas más señales que
las de selección, son similares a los tratados en otras memorias, por lo que no se
reincidirá sobre ellos.
12
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (II)
ARBITRACIÓN MEDIANTE ÁREAS
· Se divide la memoria en dos áreas.
· Cada sistema tiene acceso a una de las áreas.
· El acceso a cada área se conmuta, entre los sistemas externos, en cada
intervalo de tiempo.
ZONA A
SISTEMA A
ZONA A
SISTEMA B
SISTEMA A
ZONA B
SISTEMA B
ZONA B
* Método bueno para intercomunicación entre sistemas, no hay lógica de arbitración
* No es eficiente como memoria de datos compartidos
junio 1999
"MEMORIAS MULTIPUERTO"
Esta forma de arbitración consiste en diseñar los sistemas de tal forma que ambos lados
nunca puedan usar la misma dirección al mismo tiempo. Para ello se divide la memoria
en dos áreas (estructura realizada por el diseñador del sistema), y temporalmente se
asigna a cada puerto un área. Posteriormente se intercambian las áreas y así
sucesivamente.
Este sistema es bueno en aplicaciones de intercomunicación entre procesadores (se
depositan y leen datos en la zona A y se cambia el acceso -por tiempo- a la zona B, se
depositan y leen datos y se cambia de nueva a la zona A ). En este caso se consigue el
mayor rendimiento que puede alcanzarse con una DP, ya que no existen retardos
debidos a la lógica de arbitración.
Un caso típico es actualizar una tabla que no se debe pasar al otro procesador (porque
no la puede usar hasta que no este completa) y posteriormente que el otro procesador la
utilice. En el caso que no se quiera hacer una división por tiempos, los procesadores
deberán indicarse mutuamente que su parte ya está procesada, y que ceden esa zona.
Este tipo de arbitración en la que ambos procesadores deciden cuando están de acuerdo
en el uso de una zona por cada uno se denomina arbitración software.
El método de indicar la disponibilidad de intercambio de zonas entre procesadores
puede llevarse a cabo haciendo uso de las interrupciones de los sistemas. Para arbitrar
un protocolo de esta manera, es necesario intercambiar cuatro mensajes: un procesador
A solicita el uso de un recurso; el sistema B responde diciendo que está de acuerdo;
cuando A termina de procesar envía un mensaje a B comunicando que puede volver a
tomar la zona y B responde con el asentimiento.
13
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (II)
ARBITRACIÓN MEDIANTE SEMÁFOROS
‹ REALIZADO POR EL DISEÑADOR:
· Se asigna capacidad de acceso temporal de un bloque de memoria
· Se utiliza una palabra de la propia memoria para almacenar marcas
-semáforos- de recurso libre / ocupado.
· Cuando se desea acceder a un recurso se consulta su semáforo.
· En el caso de que se encuentre libre se marca ocupado y se accede.
· Cuando se termina el acceso se marca como libre.
11....11
01....11
01....11
11....11
RECURSO A
RECURSO B
RECURSO B
RECURSO N+1
junio 1999
"MEMORIAS MULTIPUERTO"
Para evitar tener que comunicar cuatro mensajes, y su cabecera, para intercambiar el
acceso a una zona, puede utilizarse un sistema de semáforos (token). Consiste en utilizar
un bit de una palabra de la propia memoria DP para indicar el estado de ocupado/libre
del recurso (zona de memoria).
Cuando se desea acceder a la zona se consulta el estado del “flag” de semáforo (lectura
de la palabra desde el puerto correspondiente), y si está desactivado significa que el otro
puerto no tiene posesión de esa zona. Se escribe activado, para que no lo pueda tomar el
otro puerto si es que desea acceder en el tiempo en que se esté ocupando, se realiza el
acceso, y cuando se termine éste, se vuelve a colocar de nuevo la marca de libre.
Para marcar el acceso a diferentes zonas, es suficiente con utilizar un bit por cada una.
En cualquier caso, es responsabilidad del programador asignar cada bit a cada zona e
implementar el sistema de control.
14
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO(III)
· Necesidad de devolver el testigo.
· En espera se deben realizar sucesivas consultas.
· Ambos sistemas pueden tomar el control (salvo retención de buses).
Sistema A lee
Procesa, detecta libre y
comienza la reserva y
posesión
Sistema A escribe “L”
H
Sistema B lee
H
Procesa, detecta libre y
comienza la reserva y
posesión
L
Sistema B escribe “L”
L
t
junio 1999
"MEMORIAS MULTIPUERTO"
La utilización de este tipo de semáforos software lleva implícitos unos problemas, que
no siempre son fáciles de resolver.
En primer lugar se encuentra la necesidad de devolver el testigo (colocar en estado
libre) por parte del procesador que ha utilizado el recurso, ya que en otro caso el otro
puerto nunca podría acceder a él. Además, si un procesador desea adquirir una zona de
memoria que se encuentra marcada como ocupada por el otro puerto, se deberán realizar
varias consultas hasta que se detecte que está libre.
Existe otro problema más difícil de resolver. Cuando un sistema lee la memoria para
saber si el semáforo indica que la zona deseada está libre, debe trasladar el contenido de
la memoria al procesador, comprobar, y si está libre, realizar un acceso en escritura para
marcar como ocupado. Si en ese transcurso de tiempo el otro puerto realiza la misma
operación, como el primer puerto aún no ha marcado como ocupado, también se creerá
que es poseedor del recurso (zona de memoria) y lo querrá marcar como ocupado. En
este instante ambos procesadores se creen con derechos de realizar accesos a la zona.
Tradicionalmente este problema que resulta de utilizar semáforos hardware cuando se
accede a un recurso compartido, se ha resuelto mediante instrucciones atómicas (ciclos
de lectura-modificación-escritura -RMW- -Test And Set-) en los que un procesador
accede a leer con intención de poder escribir después, no cediendo los buses en ese
intervalo. Esto solucionaba el problema trabajando con memorias de un sólo puerto,
pero en este caso se puede acceder por el otro.
15
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (II)
‹ SISTEMA INCORPORADO EN LA MEMORIA:
·
·
·
·
Recurso a parte de la memoria, no es una posición
Lógica interna de semáforos, de D.P.
Se marca la solicitud de acceso a un bloque.
Se comprueba la concesión
Función realizada
P. izdo. escribe 0 en el semáforo
P. dcho. escribe 0 en el semáforo
P. izdo. escribe 1 en el semáforo
P. izdo. escribe 0 en el semáforo
P. dcho. escribe 1 en el semáforo
P. izdo. escribe 1 en el semáforo
P. dcho. escribe 0 en el semáforo
P. dcho. escribe 1 en el semáforo
P. izdo. escribe 0 en el semáforo
P. izdo. escribe 1 en el semáforo
junio 1999
IO15 / IO0
izda.
1
0
0
1
1
0
1
1
1
0
1
IO15 / IO0
dcha.
1
1
1
0
0
1
1
0
1
1
1
Escribir “L”
Leer ¿ L? Si
recurso adquirido
t
Estado
Semáforo libre
P.izdo.adquiere el control
No cambia P.dcho.no adquiere el control
P.dcho.adquiere el control
No cambia P.izdo.no adquiere el control
P.izdo.adquiere el control
Semáforo libre
P.dcho.adquiere el control
Semáforo libre
P.izdo.adquiere el control
Semáforo libre
"MEMORIAS MULTIPUERTO"
Para solucionar el problema que presentan los semáforos software y eliminar el tiempo
de enviar 4 mensajes para intercambiar el acceso a una zona, algunas memorias DP
proporcionan un sistema de semáforos hardware. Este sistema de semáforos, puede estar
activado hacia un puerto, hacia el otro o hacia ninguno, pero en ningún caso hacia
ambos, para poder asegura que sólo un lado tiene permiso para acceder a la zona de
memoria.
El funcionamiento de esta arbitración hardware se explica a continuación. La memoria
puede ser estructurada “funcionalmente”, por el diseñador del sistema, en varias zonas
o áreas. Normalmente, el sistema de semáforos hardware que incorporan las memorias,
consta de 8 de éstos, los cuales se pueden solicitar y consultar desde ambos puertos.
Cada semáforo se asociará a una determinada zona de memoria. Cuando un procesador
quiere utilizar una zona desde su puerto correspondiente, escribe un cero “L”en el
semáforo asignado1. A continuación se consulta el semáforo, y si se lee a nivel bajo
significa que se ha concedido la posesión de la zona. Cuando se termine su utilización
(accesos para los que se requirió) es necesario desactivar el semáforo escribiendo un
uno “H” sobre él. Si después de escribir un nivel bajo se lee a nivel alto, significa que
por el otro puerto fue solicitado con anterioridad y que se está utilizando la zona a la
que representa.
1
Los semáforos se seleccionan por medio de las líneas de direcciones con valores del 0
al 7 -para 8 semáforos,, y con la línea SEM# activada.. En este caso, la memoria no
responde como tal, sino que las líneas de datos y direcciones se usan para acceder al
semáforo. Del dato leido o escrito sólo es significativo el bit de menor peso.
16
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO(III)
‹ MODO DE MANEJO Y LÓGICA DE SEMÁFOROS
DATOS
DATOS
E/S DATOS
CPU
E/S DATOS
R/W
DECODIF. DE
DIRECCIONES
SELECCIÓN DE
CELDAS DE
MEMORIA
DECODIF. DE
DIRECCIONES
R/W
SELECCIÓN DE
SEMAFORO
CELDAS DE
SEMÁFOROS
SEMAFORO
SEM
SEM
LADO
IZQUIERDO
LADO
DERECHO
SOLICITUD
D
ESCRITURA
DEL SEMÁFORO
E
CONCESIÓN
CPU
DIREC.
DIREC.
SOLICITUD
Q
Q
E
LATCH DEL
SEMÁFORO DE
ARBITRACIÓN
ESCRITURA
DEL SEMÁFORO
CONCESIÓN
‹ Nunca pueden activarse ambos lados simultáneamente
junio 1999
"MEMORIAS MULTIPUERTO"
Los “flag” de semáforo consisten en ocho “latch” DP direccionables individualmente.
Se seleccionan por una línea separada de chip enable (SEM) y su dirección se comunica
por las tres líneas de direcciones menos significativas. Su escritura y lectura se realiza a
través del pin de datos Do. Excepto porque comparten las líneas de datos, direcciones y
R/W el sistema de semáforos y el de memoria son completamente independientes
(figura).
En la figura se muestra la lógica del latch . En ella, ambos flip-flop se encuentran
inicialmente a nivel alto, y las dos salidas de concesión también.
Si existe una petición simultánea por los dos puertos, y entre ellas transcurre un tiempo
inferior a
tSPS, marcado por el fabricante, debido al diseño de la lógica interna, solamente uno se
activará, pero no puede determinarse cual.
Una vez solicitado el semáforo, aunque no haya sido concedido, cuando el otro puerto
lo desactive se activará automáticamente, a no ser que voluntariamente se hubiese
retirado la solicitud (escribiendo un nivel alto”H“).
17
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO(IV)
OPERACIÓN DE LECTURA DEL SEMÁFORO DESPUÉS DE LA ESCRITURA
tOHA
tAA
A0 A2
DIRECC. VÁLIDA
DIRECC. VÁLIDA
t AW
tAC E
tHA
SEM
tSOP
t SCE
tSD
I/O 0
DATOout VÁLIDO
DATOin VÁLIDO
t SA
tHD
t PW E
R/W
tSWRD
tSOP
OE
CICLO DE ESCRITURA
tAA Address to data valid
tOHA Output hold from address change
tACE CE to data valid
tDOE OE to data valid
tAW Address valid to write end
tSCE CE to write end
junio 1999
tDOE
CICLO DE LECTURA
15 ns MAX
3 ns
MIN
15 ns MAX
10 ns MAX
12 ns
MIN
12 ns
MIN
tSA Address setup to write start
tSD Data setuo to write end
tPWE Write pulse width
tHD Data hold from write end
tSWRD SEM flag write to read time
tSOP SEM Flag update pulse (CE o SEM)
0 ns
10 ns
MIN
12 ns
MIN
0 ns
5 ns
MIN
5 ns MIN
"MEMORIAS MULTIPUERTO"
Para poder escribir en el semáforo (activación o desactivación), es necesario cumplir los
tiempos que
el fabricante del dispositivo señala. Así, por ejemplo, para poder acceder a la escritura
del semáforo, la señal de CE# (SEM#) debe permanecer activada a nivel “L” al menos
un tiempo tSCE. La captura se llevará acabo con el flanco ascendente de SEM o R/W# (la
que primero suceda). Además, el pulso de escritura W# debe permanecer activo al
menos tPWE. La señal de escritura nunca debe aparecer antes de transcurrido un tiempo
tSA desde la aparición de las direcciones, y el tiempo de aparición del flanco de subida
de la señal SEM# nunca debe aparecer antes de transcurrido tAW desde las direcciones.
Después de escrito un dato, no debe activarse la señal de OE# antes de que transcurra
un tiempo inferior a tSWRD, que es el tiempo mínimo que se debe dejar transcurrir desde
que se da la orden de captura de un dato en el semáforo, hasta que este se puede
consultar.
El dato tardará, en aparecer a la salida, como máximo, un tiempo tDOE después de
activar OE# y tACE después de activar SEM#.
18
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (V)
SOLICITUD DE SEMÁFORO POR AMBOS PUERTOS
A0L A2L
MATCH
R/WL
SEM L
tSPS
A0R A2R
MATCH
R/WR
SEM R
tsps
SEM Flag contention window
5 ns MIN
SI NO SE RESPETA EL TIEMPO TSPS SÓLO SE ACTIVARÁ EL SEMÁFORO EN UN LADO,
PERO ES IMPREDECIBLE EN CUAL
junio 1999
"MEMORIAS MULTIPUERTO"
Supuesto que las direcciones del lado izdo y dcho correspondientes a un semáforo se
encuentran activadas y son coincidentes, si se presentan SEML# y SEMR# (ambos en
acceso a escritura) separados un tiempo inferior a tSPS, solamente se activará para uno
de los dos, pero no se puede determinar cual.
19
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO(VI)
ARBITRACIÓN MEDIANTE INTERRUPCIONES
· PROVOCA UNA INTERRUPCIÓN PARA INDICAR COMUNICACIÓN, SOLICITUD O ENTREGA
DE DATOS.
· EVITA CONTINUOS MUESTREOS DE LOS “FLAG”.
· ESCRITURA/LECTURA EN LAS POSICIONES MÁS ALTAS PARA GENERAR Y DESACTIVAR
INTERRUPCIONES.
ESCRITURA
LADO IZDO.
DIRECC.=
3FF
DIRECCIONES
LADO IZDO.
DIRECC.=
3FE
LECTURA
LADO IZDO.
INTERRUPCIÓN
AL LADO IZDO.
junio 1999
INTERRUPCIÓN
AL LADO DCHO.
LECTURA
LADO DCHO.
DIRECC.=
3FF
DIRECC.=
3FE
LECTURA
LADO DCHO.
* Los accesos simultáneos,
pueden ser múltiples, y esta
opción ralentiza el sistema.
* Bueno para comunicación
de datos disponibles y
comienzo de procesamiento
ESCRITURA
LADO DCHO.
"MEMORIAS MULTIPUERTO"
La arbitración mediante interrupciones es una solución software apoyada por el
hardware de la DP, que estrictamente no es un método de arbitración, si por esto
entendemos que se indique a un procesador que desea acceder a un recurso, que éste
está ocupado. Sin embargo, facilita la interfaz entre dos sistemas que deben
comunicarse datos y el envió de señales de aviso de fin de utilización del recurso.
El sistema de arbitración mediante semáforos resuelve el problema de múltiples envíos
de mensajes entre procesadores, pero cuando un procesador desea acceder a una zona y
no puede porque el semáforo que la representa indica estado de ocupado, este sistema
debe muestrear secuencialmente al mismo para detectar cuando el recurso queda libre.
A priori, sería más interesante una opción en la que el procesador no necesitase
chequear constantemente el estado del semáforo.
El sistema de arbitración de interrupciones hardware, posibilita que el sistema
conectado a un puerto pueda interrumpir al otro para indicarle: que ya ha terminado de
utilizar el recurso (al que se refiera la interrupción), que le ha depositado datos, que ya
ha recogido los datos que le habían transferido, etc.
En la figura se representa un diagrama simplificado de la lógica de generación de
interrupciones entre los puertos de una memoria DP. En dispositivos con la opción de
generación de interrupciones, las dos posiciones de dirección más alta del chip sirven
como generadores de interrupción (una para cada puerto).
Cuando el puerto izquierdo escribe sobre la posición con dirección más alta de la
memoria, se genera -activa- una interrupción al puerto derecho (salida INT#). Para
desactivar esa línea de interrupción, es suficiente con que el puerto derecho lea dicha
20
posición. Además, puesto que es necesario en este protocolo reservar esta palabra de
memoria para este menester, escribir sobre ella por quien genera la interrupción y leer
sobre ella el sistema interrumpido, puede usarse como buzón para pasar mensajes
relativos a la causa de la interrupción (comunicación de una determinada variable entre
varias, solicitud de datos, etc.), sin coste de tiempo adicional.
En el sentido contrario, es decir interrupción desde el lado derecho al izquierdo, el
proceso es el mismo pero actuando sobre la penúltima palabra de memoria.
Este tipo de protocolo, aunque es bueno para intercomunicación de sistemas y
transferencia de bloques de datos, no es el idóneo (al igual que los anteriores), para
realizar diseños de memoria de compartida de datos o de instrucciones, en los que
continuamente se accede a realizar lectura o escrituras de volumen pequeño (unos pocos
bytes).
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (VII)
CRONOGRAMAS. ACTIVACIÓN/DESACTIVACIÓN DE INTERRUPCIONES
EL LADO IZDO ACTIVA LA INTERRUPCIÓN AL DERECHO
t WC
DIRECC. LADO IZDO
ESCRITURA EN FFF
t HA
CE I
R/W I
INTD
tINS
EL LADO DCHO DESACTIVA LA INTERRUPCIÓN
DIRECC. LADO
DCHO
CE D
t RC
LECTURA EN FFF
t INR
R/W D
OE D
INTD
tWC Write cycle time
tHA Address hold from write end
tRC Read cycle time
junio 1999
15 ns MAX
0 ns
tINS
tINR
INT set time
INT reset time
15 ns MAX
15 ns
MAX
15 ns MAX
"MEMORIAS MULTIPUERTO"
Como ejemplo de la temporización que es necesario respetar, trabajando con el sistema
de interrupciones, se muestra la de la activación y desactivación de la interrupción
correspondiente a uno de los puertos, siendo la del otro idénticamente igual a la aquí
mostrada.
En este caso, es el lado izquierdo el que activa la interrupción del derecho. Tal y como
se muestra en el cronograma, la activación de la interrupción se activará, después de
haber colocado la dirección, y haber activado la señal de escritura y selección de chip
(desde la última de ellas) en un tiempo que nunca será superior a tINS. -retardo máximo
de activación-.
Para la desactivación, transcurrirá un tiempo desde que se activen: la selección de chip,
la señal de lectura y habilitación de salida (la última d e ellas) no superior a tINR..
21
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (VIII)
ARBITRACIÓN MEDIANTE SEÑAL DE OCUPADO “BUSY”
· EN ACCESOS ALEATORIOS, SON MÍNIMAS LAS COINCIDENCIAS A LA MISMA POSICIÓN.
· DETECTAR COINCIDENCIAS Y ENVIAR SEÑAL DE INHIBICIÓN
· NO DEBE COMPROBAR SI SE LE PERMITE EL ACCESO (BUENO PARA ACCESOS DE UN DATO)
· EVITA PROTOCOLO DE INTERRUPCIÓN.
LÓGICA DE
ARBITRACIÓN
DE DIRECCIONES
Si las direcciones
llegan simultáneamente, el diseño
del “latch” asegura
la activación de
uno u otro lado.
junio 1999
DIRECCIONES
P. IZDO.
DIRECCIONES
P. DCHO.
BUFFERS DE
RETARDO
COMPARADOR
DE DIRECCIONES
I
COMPARADOR
DE DIRECCIONES
D
CE I
CE D
I
BUSY
I
INHIBICIÓN DE
ESCRITURA
A
D
B
BUSY
D
INHIBICIÓN DE
ESCRITURA
"MEMORIAS MULTIPUERTO"
Es el sistema idóneo para sistemas de datos compartidos, ya que permite el acceso
simultáneo por ambos puertos, resolviendo los posibles conflictos que pudieran
aparecer. Para llevarlo a cabo se cuenta con dos señales de ocupado (una para cada
puerto).
Con este tipo de arbitración, los sistemas conectados por ambos puertos acceden
libremente a la memoria. No ocurriría ningún tipo de problema, si simultáneamente
ambos puertos no acceden a la misma posición. Para dar solución a este caso, las
memorias de doble puerto incluyen un sistema que detecta accesos simultáneos a la
misma posición y generan un aviso de ocupado (BUSY#) hacia el puerto que accedió
más tarde, inhibiendo además la posible escritura de éste en la memoria.
En la figura se muestra el esquema del circuito que realiza la función mencionada. Este
circuito suele conocerse con el nombre de lógica de arbitración de direcciones
hardware. Consiste en dos comparadores de direcciones, dos buffers de retardo y un
latch de acoplamiento cruzado.
La característica de detectar cuál de las direcciones (una de cada puerto) ha llegado más
tarde, la proporcionan los buffers de retardo y los comparadores. Si consideramos que el
puerto izquierdo tiene una dirección estable, y en un determinado momento llega la
misma dirección por el puerto derecho, ambos comparadores activarán su señal de
salida, aunque el comparador de la derecha la activará antes. Esto es debido a que el
buffer de retardo del lado izquierdo retarda las líneas de direcciones del puerto de la
derecha, y estas no llegan simultáneamente a ambos comparadores. En este caso, el
circuito lógico hace que se active la salida “BUSY” para el lado derecho. Si se parte de
la situación de direcciones estables en el puerto derecho, y aparecen las mismas
22
direcciones por el lado izquierdo, se presentaría una situación similar a la enunciada,
salvo que en este caso el comparador que tarda más en indicar coincidencia de
direcciones sería el derecho, y se activaría la señal de “BUSY” para el izquierdo.
Las salidas de ocupado pueden presentar únicamente tres estados posibles: ambas a
nivel “H”, la derecha a nivel “H” y la izquierda a nivel “L”, y la derecha a nivel “L” y
la izquierda a nivel “H”. En el caso de que ambas direcciones apareciesen a la vez, y
además fuesen coincidentes, el diseño del “latch” asegura que no se activarán ambas
salidas (llevaría a un estado de espera infinito), asegurando que se activaría uno u otro
lado, sin poder determinar cual.
En función de que los puertos accedan con la misma dirección a realizar operaciones de
lectura o escritura, pueden darse varias situaciones. Si ambos puertos acceden en
lectura, los dos realizarán la lectura del dato correcto. Si el puerto que llegó antes
accede en escritura y el que accedió más tarde en lectura, el primero realiza la escritura
correctamente y el segundo realiza la lectura, pero en este caso no se puede garantizar
cuál es el dato leído. En el caso de que el puerto que accedió en primer lugar lo hiciese
en lectura y el otro en escritura, internamente se bloquea la posibilidad de escritura de
éste, y aquel realiza la lectura correctamente. En los tres casos se activa la señal de
ocupado hacia el puerto que accedió más tarde.
Este sistema es idóneo para conectar la señal “BUSY” e insertar estados de espera en
procesadores síncronos, de forma que se detenga automáticamente si la transferencia
aún no se puede realizar, o para retardar el reconocimiento de fin de ciclo de bus en
procesadores que trabajan en bus asíncrono.
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (IX)
CRONOGRAMAS DE ACTIVACIÓN DE “BUSY”
DIRECCIONES D, I
DIRECCIONES VÁLIDAS COINCIDENTES
CE I
tPS
CE D
tBLC
BUSYR
tBHC
t RC ot WC
DIRECCIONES
I
DIR. COINCIDENTES
DIR. NO COINCIDENTES
tPS
DIRECCIONES D
BUSYD
tPS Port setup for priority
tBLC Busy “Low” from CE “Low”
tBHC Busy “High” from CE “High”
junio 1999
tBLA
5 ns MIN
15 ns MAX
15 ns MAX
t BHA
tBLA Busy “Low” from address match
tBHA Busy “High” from address mismatch
15 ns MAX
15 ns MAX
"MEMORIAS MULTIPUERTO"
Analizando los cronogramas se observa que existiendo una coincidencia de direcciones
en las entradas de los puertos, si se activan las señales de selección de chip por ambos
lados, la señal de “BUSY” tarda en aparecer, después de la recepción del último “chip
enable” un tiempo máximo de t BLC. La señal de ocupado se activa hacia el puerto que
colocó más tarde la señal de habilitación de chip.
Para que pueda determinarse a qué puerto se le activa la señal de ocupado, la diferencia
en la recepción de las habilitaciones de chip por ambos lados a de ser superior a un
tiempo t PS.
En el caso en que las señales de habilitación de chip estén activadas por ambos puertos,
si ocurre una coincidencia de direcciones en un determinado momento, el tiempo que
tarda en activarse la señal de ocupado hacia el puerto que puso más tarde las direcciones
es inferior a un tiempo t BLA. Además, para que se pueda determinar que puerto es el
que puso más tarde las direcciones, el tiempo entre aparecer las direcciones por un
puerto y por el otro ha de ser superior a t PS.
El valor típico de t BLC.y t BLA. es muy inferior al indicado por los fabricantes(valor
máximo). Este tiempo se suministra para el caso más desfavorable que se puede
presentar (aunque tenga muy poca probabilidad de aparecer) que es cuando ambas
direcciones o señales de activación de chip aparecen en el mismo instante. En este caso
el “latch” de salida de ocupado entra en un estado metaestable hasta que finalmente
termina por activar uno de los lados.
Los tiempos de acceso en lectura y escritura de una memoria DP son idénticos a los de
una memoria RAM estática, pero el hecho de que para poder leer o escribir con
23
seguridad se deba esperar un tiempo similar al de la generación de la señal de “BUSY”
(para saber si el acceso es correcto, antes de llevar a cabo la operación), hace que el
rendimiento del sistema baje (esto es así con los micros de Motorola o Texas, por
ejemplo). El tiempo en que se amplia el ciclo de lectura o escritura es tBLC.(tBLA). No
obstante, existen micros en los que la parte activa del ciclo viene determinada por la
señal que indica el sentido de la transferencia (p.e. Intel). Esto es así porque el chip está
seleccionado y su dirección de memoria estable antes de la parte activa del ciclo. En
estos casos, se consigue ganar un tiempo a la demora que se debe introducir. Hay que
destacar, que en las últimas generaciones de memorias, con tiempos de acceso muy
pequeños (del mismo orden que el retardo de generación de “BUSY”), el tiempo que se
consigue ganar no es suficiente como para evitar el retardo del acceso.
En el caso en que un puerto acceda a lectura y otro a escritura (siendo prioritaria la
escritura), para que pueda ser leído el dato correctamente, después de terminar su
operación el puerto de escritura, ha de transcurrir un tiempo t BDD. Desde que se
desactive “BUSY”.
DIRECC.
DIRECC.
R/W
CS.
AS.
MRD
Tiempo que
se gana
t1
CS.
Micros de Motorola
tBLC
Micros de Intel
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (X)
OPERACIÓN DE LECTURA CON “BUSY”
t WC
DIRECCIONES
MA TCH
D
t PWE
R/W D
t HD
t SD
DATOS IN D
VALIDOS
t
DIRECCIONES
PS
MATCH
I
t BLA
BUSY
t BHA
I
t DDD
DATOS
t BDD
VALIDOS
OUT I
t WDD
tWA Write cycle time
tPWE Write pulse width
tSD Data setuo to write end
tHD Data hold from write end
tWDD Write pulse to data delay
junio 1999
15 ns MIN
12 ns MIN
10 ns
MIN
0 ns
30 ns MAX
tPS Port setup for priority
tBLA Busy “Low” from address match
tBHA Busy HIGH from address mismatch
tBDD Busy HIGH to data valid
tDDD Write data valid to read data valid
5 ns MIN
15 ns MAX
15 ns MAX
15 ns MAX
25 ns MAX
"MEMORIAS MULTIPUERTO"
Analizando los cronogramas, se observa que después de aparecer una coincidencia de
direcciones (con una diferencia de al memos tPS.), aparecerá “BUSY” con un retardo t
BLA. Después de escribirse los datos, y hasta que sean válidos en la salida, transcurrirá
un tiempo máximo de tWDD la anterior activación de la señal d escritura, tDDD desde que
se colocaron los datos válidos a la entrada y tBDD es el tiempo máximo que transcurre
desde la desactivación de la señal “BUSY”.
El problema que presenta “BUSY” es que no permite retener el control de la DP durante
varios accesos consecutivos.
24
MEMORIAS D.P. ASÍNCRONAS: ARBITRACIÓN DE ACCESO (XI)
CONSIDERACIONES SOBRE LOS DIFERENTES MODOS DE ARBITRACIÓN
t
Penalización Acceso
Accesos diferentes a buscar un dato (BUSY)
Accesos a secuencia de datos (semáforo, interrupciones)
‹ Baja frecuencia de acceso -y alta velocidad- a bloques grandes aleatoriamente.
No requiere intercambiar mensajes.
Evita: retardo inherente y lectura escritura.
‹ Necesidad de aviso de datos disponibles y/o modificados y petición de datos.
Necesidad de comunicar mensajes. Continuar procesando hasta nuevos datos.
Evita: muestreos sucesivos a la memoria y esperas innecesarias.
‹ Memoria compartida. Accesos a leer y escribir datos pequeños con alta frecuencia.
Evita: pedir semáforo y consultar posesión.
junio 1999
"MEMORIAS MULTIPUERTO"
Una arbitración solo es efectiva cuando el tiempo de latencia que introduce
I.
Semáforos: comprobación-adquisición del semáforo-acceso a zona de datos
II.
Interrupción: generación de IRQ cambio de contexto
es muy pequeño en comparación con el tiempo de utilización del recurso, es decir con el
tamaño del bloque de transferencia.
El sistema de semáforos es interesante para aplicaciones que requieran intercambios de
información entre sistemas que acceden a una determinada zona o a otras, pero con baja
frecuencia -pero alta velocidad de acceso-, y además no requieren intercambiar
mensajes con el otro procesador y en sistemas que almacenas tablas compartidas, que en
algún momento alguno puede modificar (y por coherencia de datos no se desea que sea
accedida durante la actualización), de baja frecuencia de accesibilidad (datos
determinados en cada zona). Con este sistema se evitaría el retardo inherente que
supone la utilización del sistema de arbitración por “BUSY” y los accesos a lectura y
escritura del método de interrupciones,. Además, el acceso de un determinado
procesador no tiene porque necesitarse cuando el otro acaba de acceder.
El sistema de interrupciones es interesante en sistemas multiprocesador distribuidos,
donde un determinado sistema genera variables que debe transmitir a otro, para que las
procese y actúe en consecuencia. En este caso, cuando un procesador ha generado datos
y los a colocado en la memoria, avisa al otro sistema -mediante interrupción- de que
ciertas variables han cambiado y que debe tenerlas en cuenta para procesar. Además,
utilizará el buzón -dirección de generación de interrupción- para indicar mensajes, como
cuál es la variable que le comunica. También puede utilizarse este sistema para que un
25
procesador solicite datos cuando haya terminado de procesar los que recogió
anteriormente.
El mecanismo de señal de ocupado, lleva inherente un retardo de acceso que es el que
tarda en generarse la señal “BUSY”. No obstante, en sistemas de memoria compartida,
donde se accede a leer escribir bloques de datos pequeños, de uno o dos bytes en
ocasiones, y con frecuencias de acceso altas, este sistema es más eficiente que
cualquiera de los anteriores.
MEMORIAS D.P. ASÍNCRONAS: EXPANSIÓN (II)
EXPANSIÓN EN ANCHO DE PALABRA (Nº BITS)
* APARECE UN PROBLEMA CON
BUSY AL DEBER ACTIVAR VARIOS
CHIPS SIMULTÁNEAMENTE.
A10L - A 0L
D7L - D0L
R/W L
OE L
CE L
AL
DL
R/W L
OE L
CE L
B U S YL
DUAL-PORT
RAM
2K X 8
IDT7132
* SI LLEGA LA MISMA DIRECCIÓN
POR AMBOS PUERTOS???
PUEDE ACTIVARSE UNA SEÑAL
BUSY PARA CADA LADO Y
BLOQUEAR LOS SISTEMAS
INDEFINIDAMENTE
+5V
D15L - D8L
B U S YL
junio 1999
A 10R - A0R
D7R - D0R
R/W R
OE R
CE R
AR
DR
R/W R
OE R
CE R
BU SYR
AL
DL
R/W L
OE L
CE L
B U S YL
DUAL-PORT
RAM
2K X 8
IDT7132
AR
DR
R/W R
OE R
CE R
BU SYR
D15R - D8R
"MEMORIAS MULTIPUERTO"
En el caso de que la expansión que se desee realizar sea de la longitud del dato (nº de
bits), aparece un problema que puede llevar al sistema a una espera infinita.
Si se conectan las líneas de direcciones de la forma convencional, de manera que ambas
memorias se seleccionen simultáneamente, y se utiliza una para almacenar la parte
menos significativa del dato y la otra para la parte más significativa, aparentemente todo
funcionaría con normalidad. Sin embargo, si se interconectan las salidas de ocupado de
ambas memorias -and cableada-, tal como se muestra en la figura, cuando se produjesen
dos accesos simultáneos por ambos puertos a la misma posición, podría llegar a suceder
que una memoria activase la señal de ocupado hacia un puerto y la otra hacia el otro.
Como resultado, al ser las salidas en drenador abierto, se activaría la señal general de
ocupado de ambos extremos, lo que sería interpretado por uno y otro puerto como un
acceso de su oponente. Si la estrategia para realizar el acceso fuese esperar a que el otor
puerto se retire cuando haya completado la operación, la espera por parte de los dos
puertos sería infinita
BU S YR
26
MEMORIAS D.P. ASÍNCRONAS: EXPANSIÓN (III)
‹ EXPANSIÓN EN EL ANCHO DE PALABRA DE MEMORIA (Nº BITS)
· ACTIVAR UNA MEMORIA CON LÍNEA DE BUSY DE LA OTRA
· MEMORIAS “SLAVE”
A10L - A0L
D7L - D0L
R/W L
OE L
CE L
B U S YL
AL
DL
R/W L
O EL
C EL
BUSY L
DUAL-PORT
RAM
2K X 8
IDT7132
A10R - A0R
D7R - D0R
R/W R
OE R
CE R
B U S YR
AR
DR
R/W R
OE R
CE R
BUSY R
A10L - A 0L
D7L - D0L
R/W L
OE L
CE L
BUSYL
+5V
DUAL-PORT RAM
AR
AL
DR
DL
SLAVE
R
R/W
L
R/W
OE R
OE L
2K
X
8
CE R
CE L
IDT7142
BUSYR
BUSYL
A10R - A0R
D7R - D0R
R/W R
OE R
CE R
B US YR
+5
LOGICA
SLAVE
LOGICA
SLAVE
D15 L - D 8L
NC
junio 1999
AL
DL
R/WL
OE L
CE L
B U S YL
DUAL-PORT
RAM
2K X 8
IDT7132
AR
DR
R/WR
OE R
CE R
BUSYR
D15R - D8R
D15L - D8L
NC
DUAL-PORT RAM
AL
AR
DL
DR
MASTER
R/WL
R/W R
OE L
OE R
2K X 8
CE L
CE R
IDT7132
BUSYL
BUSYR
"MEMORIAS MULTIPUERTO"
La solución al problema planteado es utilizar como lógica de arbitración la de uno solo
de los chips, y forzar al otro al mismo estado, a modo de memoria maestra y memoria
esclava. Para ello se presentan dos alternativas: la primera consiste en añadir una lógica
externa que desactive el puerto del chip “esclavo”, cuando se detecte que el del maestro
ha activado la señal de ocupado. De esta manera se evita que se pueda escribir, cuando
el otro puerto (en ambas memorias) esté accediendo a las mismas posiciones, con mayor
prioridad. La segunda solución utiliza dos tipos de memorias: una “master” y otra
“slave”. La memoria esclava incluye internamente la lógica para realizar la
desactivacición del chip, en caso de que la maestra active la señal de “BUSY” - el
terminal de la señal de ocupado, en este caso, es de entrada, y se conecta directamente al
terminal de salida de la memoria maestra.
Existen memorias DP que se pueden comportar como maestras y como esclavas,
seleccionándose su funcionamiento mediante una señal a nivel “H” o “L” en un terminal
al respecto.
Este tipo de conexiones con memorias maestras y esclavas acarrea dos inconvenientes,
que e analizan a continuación
D15R - D8R
27
MEMORIAS D.P. ASÍNCRONAS: EXPANSIÓN (IV)
‹ ACTIVACIÓN DE LA SEÑAL DE ESCRITURA EN AMPLIACIÓN DEL ANCHO DE PALABRA
* MEMORIAS ESCLAVA -“SLAVE”-. // MEMORIAS CONVENCIONALES CON LÓGICA DE “SLAVE”.
* DEBE RETARDARSE DURANTE EL TIEMPO DE ARBITRACIÓN DE LA “MASTER”.
SI EL TIEMPO DE ESCRITURA ES MENOR QUE EL RETARDO DE ARBITRACIÓN DE LA MASTER, EL CICLO DE
ESCRITURA PUEDE LLEVARSE A CABO DURANTE EL TIEMPO QUE “BUSY”ESTÉ ACTIVA. T´WC=T PWE + T BLA
t
R/ W
A10 - A0 (L)
A (L)
D7 - D0 (L)
PWE
WE (L)
t
BUSY
OE (L)
t WH
WB
CH IP ENABLE (L)
tWB RW “High” after busy
tWH RW “High” after busy “High”
tPWE Write pulse width
0 ns
D (R)
WE (L)
RAMCHIP
WE (R)
OE (L)
CY7C132
OE (R)
BUSY (L)
DELAY
13 ns MIN
12 ns MIN
D15 -D8 (L)
Este tipo de expansiones requiere un retardo
para todos los accesos. Empeora el rendimiento.
junio 1999
DUALPORT
CE (L)
BUSY (L)
A (R)
D (L)
2K x 8
MASTER
VCC
A (L)
D (L)
CE (R)
BUSY (R)
WE (R)
OE (R)
CH IPENABLE (R)
BUSY (R)
DELAY
A (R)
DUAL PORT
A10 - A0 ( R)
D7 - D0 (R)
D (R)
WE (L)
RAM CHIP
WE (R)
OE (L)
CY7C142
OE (R)
CE (L)
2K x 8
CE (R)
BUSY (L)
SLAVE
BUSY (R)
"MEMORIAS MULTIPUERTO"
Uno de los problemas que se ha aludido, es tener que retardar la señal de escritura en la
memoria esclava hasta que haya transcurrido un tiempo tal que la señal de “BUSY” de
la memoria maestra pudiese haberse activado, en caso de ser necesario. De no hacerlo
así, podría iniciarse un ciclo de escritura sobre los chips esclavos antes de que dicha
señal haya podido propagarse, máxime considerando los tiempos de t BLA y t BLC, . lo que
podría dar lugar a conflictos con los datos del otor puerto. Por tanto, el ciclo de escritura
debe retardarse un tiempo similar al que la memoria maestra tarda en activar el pin de
salida de ocupado (t BLA y t BLC).
Todo esto implica que el rendimiento del sistema empeora por el hecho de realizar un
expansión en el nº de bits del dato.
Por lo general, no se requiere retardar la señal de escritura hasta un tiempo posterior a
la presencia de “BUSY” (t WB =0). Ahora bien, después de desaparecer dicha señal, es
neceario prolongar el pulso de escritura al menos un tiempo t WH.
D15 - D8 ( R)
28
MEMORIAS D.P. ASÍNCRONAS: EXPANSIÓN (V)
‹ ACCESO DE PROCESADORES CON LONGITUD DE DATO VARIABLE
* ACCESO A BYTE DE LA MEMORIA ESCLAVA ???
* SI SE ACTIVA TAMBIÉN LA MAESTRA SE DESTRUYEN DATOS.
* NECESARIO REALIZACIÓN DE LÓGICA EXTERNA Y MEMORIAS “MASTER”.
DUAL-PORT RAM
AR
AL
DR
DL
SLAVE
R/W R
R/W L
OE R
O EL
2K X 8
C ER
C EL
IDT7142
B U SY R
BUSYL
A10L - A0L
D7L - D0L
R/WL
O EL
C EL
B U SY L
A10R - A0R
D7R - D0R
R/W R
O ER
CE R
B U SY R
+5
D15L - D8L
junio 1999
DUAL-PORT RAM
AL
AR
DL
DR
MASTER
R/W L
R/WR
OE L
OE R
2K X 8
C EL
C ER
IDT7132
BUSYL
BUS YR
D15R - D8R
BUSY A LOS PROCESADORES
y CE A TODAS LAS MEMORIAS
Tamaño
datos
Tamaño
datos
CE1
CE2
BUSY1
BUSY2
LOGICA DE
SELECCIÓN
"MEMORIAS MULTIPUERTO"
Son múltiples los procesadores y las aplicaciones, en las que se realizan acceso a
memoria con diferente tamaño de datos. En el ejemplo de la memoria que se muestra,
no sería posible acceder a la memoria esclava únicamente (dato de tamaño byte), puesto
que no se podría acceder con la seguridad de no generar un conflicto.. Para acceder con
seguridad sería necesario activar también la memoria maestra para que ésta generara la
señal de “BUSY” en caso de coincidencia en el acceso, pero, como se sabe, esto es
totalmente imposible si se desea mantener la integridad de de los datos de la memoria,
en un sistema de manejo de memoria estructurado en bancos.
La solución a este inconveniente es diseñar externamente toda la lógica de accesos y de
decodificación a partir de señales maestras.
Otra solución es utilizar memorias DP con accesos a bancos independientes (byte bajo y
byte alto poseen lineas de selección diferentes)
CE1
CE2
BUSY1
BUSY2
29
MEMORIAS D.P. ASÍNCRONAS: EXPANSIÓN (VI)
MEMORIAS CON DOS BANCOS DE ACCESO INDEPENDIENTE
D (8..15)
UB
D (0..7)
APARECEN LOS MISMOS PROBLEMAS AL EXPANDIR DE 16 A 32 BITS
junio 1999
"MEMORIAS MULTIPUERTO"
En estas memorias se puede seleccionar el acceso al dato del byte alto, al del byte bajo o
a ambos simultáneamente si se desean manejar datos de 16 bits. Dichas memorias están
preparadas para ser conectadas directamente con procesadores que pueden trabajar con
tamaño de datos variable.
Lo que no es posible discriminar con este tipo de memoria es el acceso por los dos
puertos a la misma dirección, realizandose por uno de ellos una transferencia con el byte
alto y por el otro con el byte bajo. La lógica de generación de “BUSY” utiliza
únicamente las direcciones y la habilitación de chip, pero no la selección del banco de
memoria.
Los problemas que se resuelven con la utilización de este tipo de chips (retardo de
escritura y selección de byte de acceso) vuelven a aparecer cuando se realiza una
expansión de 16 a 32 bits.
30
LB
MEMORIAS D.P. ASÍNCRONAS DE CUATO PUERTOS
EJEMPLO DE MEMORIAS CON MÁS DE DOS PUERTOS
junio 1999
"MEMORIAS MULTIPUERTO"
31
MEMORIAS DE DOBLE PUERTO SÍNCRONAS (I)
MEMORIA DE DOBLE PUERTO SÍNCRONA
‹
POSEE DOS CONJUNTOS COMPLETOS DE BUSES.
‹
SE PUEDE ACCEDER SIMULTÁNEAMENTE POR AMBOS PUERTOS.
‹
SOLUCIÓN A AL DEMANDA DE DISPOSITIVOS RÁPIDOS CON INTERFAZ SENCILLA.
‹
OPERACIONES SINCRONIZADAS POR UN RELOJ EXTERNO.
‹
REDUCEN EL TIEMPO DE CICLO Y AUMENTAN EL ANCHO DE BANDA.
Selección
de posición
MODOS DE OPERACIÓN
Entrega
de datos
Se segmentan
tacceso
Tipo de salida
de dato
Comunic.
Salida directa
(Flow.Through)
Segmentada
(pipelined)
MODO NORMAL
(direcciones en
cada acceso )
X
X
MODO RÁFAGA
(burst)
X
X
de direcciones
DIRECC
.
DIRECC
.
"MEMORIAS MULTIPUERTO"
junio 1999
Las memorias síncronas son al solución a la demanda de dispositivos rápidos con
interfaz sencilla. Estas memorias sincronizan su funcionamiento con una señal de reloj
externa que proporcionan una mayor velocidad de acceso (reducción del tiempo de
ciclo). Esto es así porque segmentan la fase de acceso en dos etapas (captura de
dirección y entrega de datos), de manera que puedan trabajar en paralelo, además de que
una vez capturada la dirección, el procesador o controlador de la transferencia, puede
retirarla del bus e ir preparando otro acceso si fuese necesario.
Selección
de posición
Entrega
de datos
Se segme ntan
DIRECC.
t acceso
Estas memorias, desde el punto de vista de salida de datos, puede funcionar con salida
registrada de datos o con salida directa (sin almacenar). Además, en ambos casos
presentan la posibilidad de trabajar en modo ráfaga, transmitiendo o recibiendo una
secuencia de datos indicando únicamente la dirección del primero de ellos.
Al igual que las memorias asíncronas, soportan accesos simultáneos y diferentes señales
de sincronismo para los diferentes puertos.
32
MEMORIAS DE DOBLE PUERTO SÍNCRONAS (II)
DIAGRAMA DE BLOQUES DE UNA MEMORIA SÍNCRONA
‹ CADA PUERTO TIENE ASOCIADO
UN CONJUNTO DE BUSES
‹ OPERA SINCRONIZADA CON EL
FLANCO DE SUBIDA DE LA SEÑAL DE
RELOJ
‹ CON FT#/P SE CONTROLA EL
MODO DE OPERACIÓN DE SALIDA
DE DATOS.
‹ CON ADS#, CNTEN#, CNTRST#
SE CONTROLA LA CARGA DE
DIRECCIONES.
‹ LA LÍNEA OE# ES ASÍNCRONA.
junio 1999
"MEMORIAS MULTIPUERTO"
Cada puerto de la memoria síncrona cuenta con las líneas de direcciones y datos y
control, como las vistas en las memorias asíncronas. La única diferencia, es que estas
entradas/salidas no tiene validez hasta el flanco ascendente de la señal del reloj de
sincronismo. Las señales se capturan en el flanco ascendente de reloj. La única señal
que funciona de forma asíncrona es la de habilitación de salidas (OE).
La línea Flow through/Pilpeline (FT/P) determina si las salidas de datos son a través de
un registro o son salidas directas. Además, cada puerto cuenta con un contador de
direcciones que se utiliza en el modo ráfaga para ir incrementando la dirección
capturada desde el exterior con cada pulso de reloj. Esto proporciona transferencias de
datos a muy alta velocidad.
Con los terminales ADS#, CNTEN# y CNTRST#, junto con la señal de reloj, se
consigue cargar una dirección externa en el contador, activar al cuenta del contador y
ponerlo a cero.
33
MEMORIAS DE DOBLE PUERTO SÍNCRONAS (III)
DIFERENCIA ENTRE LOS MODOS SALIDA DIRECTA (FT) Y SEGMENTADA (P)
‹ SALIDA SEGMENTADA. EL DATO ES ALMACENADO EN UN REGISTRO
ANTES LLEGAR A LAS LÍNEAS DE I/O. (EL PROCESO SE DIVIDE EN DOS
ETAPAS QUE FUNCIONAN SIMULTÁNEAS).
‹ SALIDA DIRECTA (FT) LOS DATOS VAN DEL ARRAY DE MEMORIA A LAS
LÍNEAS DE I/O.
‹ LA DIFERENCIA PRINCIPAL:VELOCIDAD EN SALIDA DE DATOS.
‹ EN ESCRITURA NO PRESENTAN DIFERENCIA.
EXCITACIÓN
DE “SENSE”
SALIDA: BUFFER
O REGISTRO
MODO RÁFAGA (BURST)
‹ SE COMUNICA SOLAMENTE UNA DIRECCIÓN DE UNA SECUENCIA.
‹ LA DIRECCIÓN SE CARGA EN UN CONTADOR ( REGISTRO DE DIRECCIONES). ADS#
‹ EL CONTADOR DE DIRECCIONES SE INCREMENTA EN UNA UNIDAD . CNTEN# , CNTRST,
‹ EL CONTADOR DE DIRECCIONES SE RESETEA CNTRST#,
‹ TANTO EL MODO SALIDA DIRECTA COMO SEGMENTADA PUEDEN TRABAJAR EN MODO RÁFAGA.
junio 1999
"MEMORIAS MULTIPUERTO"
La diferencia principal entre los modos de funcionamiento FT y P es la relación de
datos de salida. En modo segmentado (Pipelined) la salida se pasa a través de un
registro, antes de ser puesto en los pines. Esto significa que para obtener el primer dato,
en lectura, son necesarios dos ciclos de reloj, uno para almacenarlo y otor para darle
salida. Este modo trabaja con la misma estructura que una máquina segmentada.
El modo salida directa, la salida va directamente de la celda la etapa del array de
memoria a la etapa de excitación de los amplificadores de sense “sense” y de ahí por el
“buffer” de salida a los pines de salida.
Con el modo segmentado se consiguen mayores velocidades, ya que el proceso de
lectura de datos se estructura en dos etapas que trabajan independientemente y en
paralelo. En la primera se lleva el dato hasta la entrada del registro que sustituye al
“buffer” (etapa de excitación de sense), y en la segunda se le da salida. Aunque presenta
una latencia de un ciclo (hasta el segundo ciclo no se obtiene datos en al salida), con los
siguientes ciclo va sacando un dato y preparando otro a la entrada del registro, lo que le
proporciona una mayor velocidad. Este modo en conjunto con transferencias en ráfaga
consigue velocidades muy rápidas
.
34
MEMORIAS DE DOBLE PUERTO SÍNCRONAS (IV)
t
LECTURA:
t
‹ CE =“H”, CE# =“L” R/W# = “H”
DE UN CICLO
tCYC
FT Clock cycle time -flow-through-
15 ns MIN
P Clock cycle time (pipelined)
10 ns MIN
CYC
,
-flow-throughCH CL
t ,
-pipelinedCH CL
t
,
Clock to data valid
CD1 CD2
t
‹ EL MODO SEGMENTADO INTRODUCE LATENCIA
tCH
CYC
6,5 ns MIN
4 ns
MIN
12 ns MAX 8 ns
MAX
tCL
CLK
CE 0
t SC
tHC
t SW
t SA
tHW
tHA
tSC
tHC
CE 1
R/W
ADDRE SS
FL OW-THROUGH
DAT A OUT
PIP E LIN E D
DA TA OUT
junio 1999
An
A n+1
tCD1
An+2
A n+3
tCKHZ
tDC
Qn
Q n+1
Q n+2
tDC
1 Latency
tDC
tCD2
Qn
Q n+1
"MEMORIAS MULTIPUERTO"
Para que se pueda proceder a la lectura de datos es necesario que todas las señales de
habilitación de chip, la señal de lectura y tener habilitada la salida.
La velocidad del modo FT respecto del modo P está en valores de entorno al 85%
Hay que hacer constar las señales de las líneas de CE0#, CE1, la señal de R/W# y las
direcciones deben cumplir unos tiempos de set-up y de “hold” para que la operación
procesad correctamente.
En modo FT los datos tardarán en estar listos en la salida un tiempo t CD1, como
máximo, transcurrido desde el flanco ascendente de la señal de reloj. Ese dato
permanece válido, como máximo, hasta un tiempo t DC después del siguiente flanco
ascendente de reloj.
En modo P (segmentado), existe una latencia de un ciclo de reloj. Esto es, con el primer
flanco ascendente no se genera ninguna salida. Después del segundo flanco, el dato
correspondiente al primero (primera dirección) estará presente en la salida en un tiempo
máximo ce t CD2. El dato permanecerá válido hasta un tiempo máximo de t DC , después
del siguiente flanco ascendente.
Debido a que t DC1 es mayor que t DC2, a pesar de que el modo P introduce una latencia
de un ciclo, se consiguen rendimientos globales bastante mejores.
Estos dos modos pueden utilizarse en modo ráfaga (comunicando una sola dirección y
autoincrementando) o introduciendo una dirección encada flanco ascendente de reloj.
Qn+2
35
MEMORIAS DE DOBLE PUERTO SÍNCRONAS (V)
tSA , tSAD, tSCNA X setup timetHA , tHAD, tHCNA X hold time-
EL MODO RÁFAGA + SEGMENTADO CONSIGUE
TRABAJAR CON VELOCIDADES DE RELOJ
EXTRAORDINARIAMENTE RÁPIDAS
3 ns MIN
0 ns
CLK
tSA
tHA
An
ADDRESS
tSAD
tHAD
ADS
tSAD
tHAD
tSCN
tHCN
CNT EN
tSCN
Flow-thru
DATA OUT
Pipelined
DATA OUT
junio 1999
tHCN
tCD1
Qx
Qn
Qn+1
Qn+2
Q n+3
tCD2
Qx-1
Qx
Qn
Qn+1
"MEMORIAS MULTIPUERTO"
Qn+2
Q n+3
36
MEMORIAS DE DOBLE PUERTO SÍNCRONAS (VI)
ESCRITURA:
‹ NO HAY DIFERENCIAS ENTRE MODOS. DIRECC., CE1#, CE2, WE#,
‹ SI ACCEDEN A ESCRIBIR SIMULTÁNEAMENTE NO SE PUEDE GARANTIZR EL RESULTADO.
‹ PARA GARANTIZAR EL RESULTADO DE ESCRITURAS SE NECESITA UN TIEMPO ENTRE ACCESOS tCCS.
‹ PARA GARANTIZAR LECTURA CORRECTA TRAS ESCRITURA SE PRECISA tCWDD.
CLK
CNTEN
tSA , tSAD, tSCNA
setup time-
X
3 ns MIN
tHA , tHAD, tHCNA
hold time-
0 ns
X
CE0
CE1
tSW
tH W
A D S R/W
ADDRESS
An
A n+1
A n+2
t SD
DAT A I N
A n+3
A n+4
tHD
D n+2
D n+3
OE
junio 1999
"MEMORIAS MULTIPUERTO"
En el ciclo de escritura la memoria se comporta igual, independientemente del modo se
salida que se tenga seleccionado. Para generar un ciclo de escritura es necesario tener
las direcciones presentes, WE#y CE1# y CE2 activos, antes de la llegada del flanco
ascendente de la señal de reloj, que es cuando se procede a la escritura en la memoria.
Tantos las direcciones como las señales de habilitación de chip y la señal de escritura
requieren unos tiempos de establecimiento (set-up) y de mantenimiento (hold), antes y
después de la llegada del flanco de reloj, respectivamente.
Si los dos puertos acceden a escribir simultáneamente no se puede garantizar el
resultado, a no ser que haya transcurrido un tiempo mínimo t CCS entre los flancos de
reloj que generan las escrituras (de uno y otro puertos). Si el tiempo fuese más pequeño
sería necesaria una lógica externa de arbitración.
Si un puerto accede en escritura, y posteriormente el otro accede en lectura, para
garantizar que los datos leídos son los correctos ha de transcurrir un tiempo mínimo
entre flancos de reloj de tWCDD
Al igual que en el ciclo de lectura, para indicar las direcciones se puede utilizar el
contador de ráfagas o introducir la dirección con cada flanco de reloj.
Otro caso en el que se presenta una latencia de un ciclo, es cuando se cambia de ciclo de
lectura a ciclo de escritura. Dado que la lectura va ha invadir con el dato el siguiente
ciclo, será necesario dejar transcurrir uno para que los datos de entrada no puedan
corromperse con los de salida que aún están en el bus. Esto puede solucionarse
desactivando la señal de OE#, siempre y cuando no importe perder la lectura del último
dato.
37
MEMORIAS D.P. APLICACIONES (I)
APLICACIONES DE MEMORIAS SÍNCRONAS
* COMUNICACIÓN. CAMBIO DE DATOS ENTRE DIFERENTES PROCESADORES.EN SISTEMAS QUE REQUIERAN
LLEVAR DATOS DE UN DISPOSITIVO A OTRO (LAN, SWITCH)
* EN SISTEMAS MULTIPROCESADOR, CUANDO UN PROCESADOR Y EL BUS FUNCIONAN A DISTINTA VELOCIDAD
(SE TRANSFIEREN BANCOS DE DATOS.).
* APLICACIONES QUE REQUIEREN ANCHOS DE BANDA GRANDES CON SALIDA REGISTRADA.
* TRANSFERENCIAS Y ALMACENAMIENTO DE RÁFAGAS DE DATOS (DISPLAYS -PCI-)
* TRANSFERENCIAS DMA SIN DETENER EL FUNCIONAMIENTO DE LA CPU
MEMORIA
COMPARTIDA
LAN
CONTROLA
DOR Y
TRANSCEI
VER
LAN
CONTROLA
DOR Y
TRANSCEI
VER
DUAL PORT
SÍNCRONA
BUS DEL PROCESADOR
I/
/O
CACHÉ
“IN LINE”
CPU
LÓGICA DE
CONTROL
Control
64x 18
I/O
SWITCH
100 Mbps
DIR
TAG DE CACHÉ
D.P. SÍNCRONA
DIR
SWITCH
10 Mbps
BUS DEL SISTEMA
junio 1999
"MEMORIAS MULTIPUERTO"
El sistema de la figura proporciona un buffereado de muy alta velocidad de paquetes de
datos minimizando la congestión (usa menos tiempo el bus -no lo retiene tanto-) y aisla
funciones de control críticas. También proporciona un acceso independiente a al CPU y
Transceiver. Posibilita que se pueda trabajar con diferentes velocidades de reloj en el
bus y la CPU. Puede servir para almacenar buffers y punteros a memoria compartida
El sistema de la figura (derecha) realiza un enlace de alta velocidad que sirve de
interface entre el bus local del procesador y el del sistema. Elimina problema de
arquitecturas con bus compartido. Se puede acceder simultáneamente por ambos puertos
a operaciones diferentes (p.e. DMA, caché). Puede conectarse directamente al bus o no,
en función de la sobrecarga que el origine.
38
MEMORIAS D.P. APLICACIONES (II)
CONSTRUCCIÓN DE MEMORIAS FIFO
* LAS MEMORIAS FIFO DE ALTA VELOCIDAD SE CONSTRUYEN A PARTIR DE MEMORIAS DP Y
CONTADORES
junio 1999
"MEMORIAS MULTIPUERTO"
39
MEMORIAS D.P. APLICACIONES (III)
APLICACIONES DE MEMORIAS ASÍNCRONAS
* COMUNICACIÓN DE DISPOSITIVOS ASÍNCRONOS A TRAVÉS DE MEMORIA,
PARA TRANSFERENCIA DE DATOS, A LA VEZ QUE ALMACENA DATOS.
* SIMPLIFICACIÓN DEL DISEÑO DE SISTEMAS CON MEMORIA COMPARTIDA.
* REALIZACIÓN DE SISTEMAS DE MEMORIA CACHÉ.
* REGISTROS INTERNOS DE CPU´S CON DOS ACCESOS.
* ACCESOS SIMULTÁNEOS AL MISMO CHIP.
junio 1999
"MEMORIAS MULTIPUERTO"
40
MEMORIAS D.P. APLICACIONES (IV)
PROCESA INFORMACIÓN
Sensor de
infrarrojos
Unidad central
GENERACIÓN DE VARIABLES
PARA EL PROCESO
Integración
multisensorial
ALMACENA EN MEMORIA
ESCRIBE MENSAJE EN xFF
INDICANDO VARIABLE
Visión
Dead reckoning
Ultrasonidos
Generación de
trayectorias
TIEMPO DE PROCESO
CRÍTICO
Posicionador
absoluto
DP
Control manual
Voz y soplo
Interfaz
Display + voz
RECIBE INTERRUPCIÓN
Control de motores
SILLA DE RUEDAS
LEE EN xFF DESACTIVA INT
Y RECOGE MENSAJE
ACTUALIZA LA VARIABLE DE PROCESO
junio 1999
"MEMORIAS MULTIPUERTO"
La unidad central recoge información de los módulos sensoriales y de comando y la
procesa. Ésta, en función de la integración de datos que realiza va a determinar el valor
de diferentes variable necesarias para un movimiento seguro (puntos a esquivar, puntos
por los que pasar, posición y orientación actuales, etc).
El módulo de control de trayectorias, a partir de las variables que recibe de la unidad
central calcula un camino a seguir y realiza el control del seguimiento del mismo, a
partir de la continua estimación de la posición. Por tanto, es necesario que este módulo
se encuentre continuamente realizando el lazo de control de la trayectoria.
Para comunicar ambos sistemas parece obvio que debe hacerse mediante un método
que: una vez disponibles nueva información, se transmita rápidamente par procesar con
ella; permita índicar con facilidad cuando hay nuevos datos, facilite la indentificación
de esos datos y no requiera tiempo al módulo de control de trayectorias, salvo para
recoger datos y así poder procesar inmediatamente con ellos. El sistema idóneo es una
comunicación a través de una DP mediante interrupciones y con paso de mensajes, para
indicar la variable transferida, a través del buzón.
41
MEMORIAS D.P. APLICACIONES (V)
Initial
Address
and
Controls
Pipeline
Reg
CLK
Pipeline
IDT
7382/81
Reg
Pipeline
Address
Generator
1
Pipeline
Reg
Address
Generator
2
Reg
Pipeline
Addr
IDT6116 SRAM
Matrix A
I/O
Reg
Addr
IDT6116 SRAM
Matrix B
I/O
Address
Generator
3
Pipeline
Reg
Main
Processor
Main
Memory
and
Addr
IDT6116 SRAM
Matrix C
I/O
Peripherals
Data
Data
Data
Pipeline
IDT7210
Reg
Pipeline
Multiplier/Accumulator
(MAC)
Pipeline
junio 1999
Reg
"MEMORIAS MULTIPUERTO"
Las memorias de cuatro puertos pueden ser usadas para acelerar el proceso de
multiplicación de matrices, muy utilizado en algoritmos con DSP´s y en procesamiento
de gráficos. En al figura a se muestra una estructura segmentada típica, parar
multiplicación de matrices basada en tres memorias SRAM, una para la matriz
multiplicando A, otra para la multiplicador B y otra para almacenar el resultado C . Las
matrices A y B han sido previamente cargadas en las memorias desde la memoria
principal o sistemas periféricos. Una vez realizada la multiplicación, se envía a memoria
principal o periféricos.
Además de la complejidad del diseño, cuando se están realizando transferencias, la
Unidad Aritmética está parada. Este problema se incrementa mucho más cuando se
deben realizar una multiplicación ens erie de matrices M1· M2 ·M3 ·M4 .... ·Mn.
Si se implementa el sistema con una memoria de 4 puertos se pueden mejorar
notablemente las prestaciones del multiplicador de matrices, ya que mientras que se
están multiplicando las dos primeras, y almacenando el resultado, se puede ir cargando ,
en paralelo, una tercera matriz por el cuarto puerto de la memoria, a continuación, se
multiplica el resultado por la nueva matriz introducida, y el resultado se guarda en la
zona de una de las dos matrices primitivas ya procesadas, y así sucesivamente. Esto es
posible porque desde cualquiera de los cuatro puertos se puede acceder a cualquier zona
de la memoria
De esta manera se evitan los tiempos muertos de transferencias de datos a las memorias
de matriz multiplicando y multiplicador desde /hacia la memoria principal
42
MEMORIAS D.P. APLICACIONES (VI)
Initial Address and Controls
CLK
Pipeline Reg
IDT
7383/81
Address
Generator
1
Pipeline Reg
Address
Generator
2
Pipeline Reg
Pipeline Reg
A-P1
A-P2
FourPortô
I/O-P1
I/O-P2
Pipeline Reg
Address
Generator
3
Pipeline Reg
Pipeline Reg
Address
Generator
3
Pipeline Reg
Main
Processor
Main
Memory
and
Peripherals
A-P4
A-P3
SRAM IDT7052
I/O-P3
I/O-P4
Data
Pipeline Reg
IDT7210
Pipeline Reg
Multiplier/Accumulator
(MAC)
Pipeline Reg
M1
M1
M1
M2
M2
Unused
Unused
M3
M4
M3
M
junio 1999
"MEMORIAS MULTIPUERTO"
43
MEMORIAS D.P. ASÍNCRONAS: EXPANSIÓN (I)
EXPANSIÓN EN Nº DE PALABRAS
* EN CADA CASO SE SELECCIONA
UN CHIP.
A12 -A11
CE I
SELECCIÓN
DE BLOQUE
* BUSY ES INDEPENDIENTE PARA
CADA BLOQUE.
* SALIDA DE BUSY ES EN DRENADOR ABIERTO (REQUIERE PULLUP).
DECODIFICADOR - 74FCT138
MEMORIAS CONVENCIONALES.
1
2
3
BU S Y I
junio 1999
DUAL-PORT
RAM
2K X 8
IDT7132
AR
DR
R/WR
OER
CER
B U S YR
AL
DL
R/WL
OEL
CE L
B U S YL
DUAL-PORT
RAM
2K X 8
IDT7132
AR
DR
R/WR
OE R
CE R
B U S YR
AL
DL
R/WL
OEL
CE L
B U S YL
DUAL-PORT
RAM
2K X 8
IDT7132
AR
DR
R/WR
OER
CER
B U S YR
AL
DL
R/W L
OE L
CE L
B US YL
DUAL-PORT
RAM
2K X 8
IDT7132
AR
DR
R/WR
OER
CER
B U S YR
+5V
A 10 -A 0
D 7 -D 0
R/WD
OE D
0
1
2
- 74FCT138
0
* SIMILAR A LA EXPANSIÓN DE
AL
DL
R/W L
OE L
CE L
B US YL
A 12 -A11
CE D
SELECCIÓN
DE BLOQUE
DECODIFICADOR
A 10 -A 0
D 7 -D0
R/W I
R E AD I
3
B U S YD
+5V
"MEMORIAS MULTIPUERTO"
La expansión de memorias DP en nº de palabras es similar a la expansión de memorias
convencionales. En este caso, la señal de “busy” la activara cada chip, si procede
cuando éste esté seleccionado, por lo que interconectandolas todas (su salida es en
drenador abierto) y llevándolas a Vcc mediante una resistencia de pull-up, la expansión
estará realizada
44
MEMORIAS DE D.P. SÍNCRONAS: EXPANSIÓN (I)
· SIMILAR A LA EXPANSIÓN CONVENCIONAL.
CE 0L
CE 1L
A 0L-A 15L
I/O0 -I/O 17
R/WL
OE L
CLK L
CE 0L
CE 0R
CE 1L
CE 1R
CY 7C09389
A L 64K x18 A R
DL
DR
junio 1999
A 0R-A 15R
CE 1R
R/WL
OE L
R/W R
OE R
I/O 0 -I/O17
R/WR
OE R
CLK L
CLK R
CLK R
CE 0L
CE 1L
AL
DL
I/O18 -I/O 35
CE 0R
A 16 L
Vcc
A 0L-A 15L
I/O 0 -I/O 17
R/ W L
OE L
CE 0L
CE 0R
A 16 R
Vcc
CE 1R
CY7C09389
AL
64Kx18 A R
DL
DR
CE 1L
A 0R-A 15R
R/ W L
OE L
R/ W R
OE R
I/O 0 -I/O 17
R/ W R
OE R
CLK L
CLK R
CLK R
CE 0R
CE 0L
CE 0R
CE 1R
CE 1L
AR
DR
R/W L
OE L
R/W R
OE R
CLK L
CLK R
CLK L
I/O18 -I/O 35
CE 1R
CY7C09389
AL
64Kx18 A R
DL
DR
R/ W L
OE L
R/ W R
OE R
CLK L
CLK R
"MEMORIAS MULTIPUERTO"
Es igual que el caso normal de ampliación de memorias. No tiene ninguna línea especial
45
Descargar