Memorias
Memoria RAM
La memoria de acceso aleatorio (en inglés:
random-access memory),se utiliza como memoria de trabajo para el sistema
operativo, los programas y la mayoría del software. Se denominan "de acceso aleatorio" porque se puede leer o escribir en
una posición de memoria con un tiempo de espera igual para cualquier posición,
no siendo necesario seguir un orden para acceder a la información de la manera
más rápida posible.
hay dos tipos básicos de memoria RAM
· RAM dinámica (DRAM)· RAM estática (SRAM)
Memoria SRAM
Static Random Access Memory (SRAM), o Memoria Estática de
Acceso Aleatorio es un tipo de memoria basada en semiconductores que a
diferencia de la memoria DRAM, es capaz de mantener los datos, mientras esté
alimentada, sin necesidad de circuito de refresco. sí son memorias
volátiles, es decir que pierden la información si se les interrumpe la
alimentación eléctrica.
Memoria DRAM
DRAM (Dynamic Random Access Memory) es un tipo de memoria
dinámica de acceso aleatorio que se usa principalmente en los módulos de
memoria RAM y en otros dispositivos, como memoria principal del sistema.Es una memoria volátil, es decir cuando no hay
alimentación eléctrica, la memoria no guarda la información. Inventada a
finales de los sesenta, es una de las memorias más usadas en la actualidad.
· Máscara ROM
En este caso no se “graba” el programa en memoria sino que el microcontrolador se fabrica con el programa, es un proceso similar al de producción de los CD comerciales mediante masterización.
· Memoria PROM
(Programable Read-Only Memory) también conocida como OTP (One Time Programable). Este tipo de memoria, también es conocida como PROM o simplemente ROM. Los microcontroladores con memoria OTP se pueden programar una sola vez, con algún tipo de programador. Se utilizan en sistemas donde el programa no requiera futuras actualizaciones y para series relativamente pequeñas, donde la variante de máscara sea muy costosa, también para sistemas que requieren socialización de datos, almacenados como constantes en la memoria de programas.
·Memoria EPROM
(Erasable Programmable Read
Only Memory). Los microcontroladores con este tipo de memoria son
muy fáciles de identificar porque su encapsulado es de cerámica y llevan encima
una ventanita de vidrio desde la cual puede verse la oblea de silicio del
microcontrolador. Se fabrican así porque la memoria EPROM es reprogramable,
pero antes debe borrase, y para ello hay que exponerla a una fuente de luz
ultravioleta, el proceso de grabación es similar al empleado para las memorias OTP.
Al aparecer tecnologías menos costosas y más flexibles, como las memorias
EEPROM y FLASH, este tipo de memoria han caído en desuso, se utilizaban en
sistemas que requieren actualizaciones del programa y para los procesos de
desarrollo y puesta a punto.
·EEPROM
(Electrical Erasable Programmable
Read Only Memory). Fueron el sustituto natural de las memorias
EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por
lo que la ventanilla de cristal de cuarzo y los encapsulados cerámicos no son
necesarios. Al disminuir los costos de los encapsulados, los microcontroladores
con este tipo de memoria se hicieron más baratos y cómodos para trabajar que
sus equivalentes con memoria EPROM. Otra característica destacable de este tipo
de microcontrolador es que fue en ellos donde comenzaron a utilizarse los
sistemas de programación en el sistema que evitan tener que sacar el
microcontrolador de la tarjeta que lo aloja para hacer actualizaciones al
programa.
·Memoria flash.
En el campo de las memorias reprogramables para
microcontroladores, son el último avance tecnológico en uso a gran escala, y
han sustituido a los microcontroladores con memoria EEPROM. las ventajas de las memorias flash se le
adicionan su gran densidad respecto a sus predecesoras lo que permite
incrementar la cantidad de memoria de programas a un costo muy bajo. Pueden
además ser programadas con las mismas tensiones de alimentación del
microcontrolador, el acceso en lectura y la velocidad de programación es superior.
características fundamentales de las memorias
Volatilidad
Se dice que la información almacenada en una
memoria es volátil siempre y cuando corra el riesgo de verse alterada en
caso de que se produzca algún fallo de suministro de energía eléctrica
(memorias biestables). No son volátiles aquellas en las cuales la
información, independientemente de que exista algún fallo en el fluido
eléctrico, permanece inalterada. Cualquier de éstas dos
memorias (RAM y ROM) es volátil por su incapacidad de
permanecer inalterada de cara a cualquier fallo eléctrico que presente la
misma. Por ésta simple razón específica, las memorias RAM son volátiles.
De igual forma, las memorias ROM no son volátiles.
Tiempo de Acceso
Es el tiempo que transcurre desde el instante en
que se lanza la operación de lectura en la memoria y el instante en que se
dispone de la primera información buscada. En la memoria principal, este tiempo
es, en principio, independiente de la dirección en la que se encuentre la
información a la cual queremos acceder. Se puede ir un poco más al grano diciéndo que el
tiempo de acceso es el tiempo requerido o necesitado para realizar
cualquier operación, sea lectura o escritura. Es simplemente eso, el tiempo
que se solicita a la memoria para poder ejecutar cualquier operación
específica.
Capacidad
La capacidad de una memoria (RAM y ROM)
es el número de posiciones de un sistema, o dicho de otra manera, número de informaciones
que puede contener una memoria.La capacidad total de memoria será un dato
esencial para calibrar la potencia de un computador. La capacidad de la
memoria se mide en múltiplos de byte (8 bits): kilobytes (1.024 bytes) y
megabytes (1.024 kilobytes).
Ejemplo
Si quisiéramos diseñar una memoria principal de 128
Kpalabras. (1)¿Cuántos chips de memoria de 32Kx8 necesitaremos Tema 4. La
Memoria 30 (1)¿Cuántos chips de memoria de 32Kx8 necesitaremos si suponemos que
la palabra es de 8 bits?. (2)¿Cuántos chips de memoria de 64Kx4 necesitaremos
si suponemos que la palabra es de 8 bits?.
Solución:
1. Necesitamos
direccionar 128K a partir de 32K luego necesitaremos 4 chips. Como el tamaño de
la palabra es igual al contenido de cada dirección del chip no Tema 4. La
Memoria 31 necesitaremos más.
2. Para poder direccionar las 128K necesitaremos 2 chips. Con
esos dos chips tenemos una memoria de 128Kx4 por lo que necesitaremos además
otros 2 chips más para conseguir una memoria de 128Kx8.
FLIP-FLOP
Un
flip flop es un circuito electrónico, llamado también simplemente biestable,
que tiene dos estados estables. El flip flop es un elemento básico de memoria
que es capaz de almacenar un número binario (bit), es decir, que permanece
indefinidamente en uno de sus dos estados posibles aunque haya desaparecido la
señal de excitación que provocó su transición al estado actual.
Dependiendo del tipo de dichas entradas los
biestables se dividen en:
- Asíncronos: sólo tienen entradas de control.
El más empleado es el biestable RS.
- Síncronos: además de las entradas de control
posee una entrada de sincronismo o de reloj.
Si las entradas de
control dependen de la de sincronismo se denominan síncronas y en caso
contrario asíncronas. Por lo general, las entradas de control asíncronas
prevalecen sobre las síncronas.
La entrada de
sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada). Dentro de los
biestables síncronos activados por nivel están los tipos RS y D, y dentro de los activos por flancos los
tipos JK, T y D.
Los biestables síncronos activos por flanco (flip-flop) se crearon para eliminar las deficiencias de los latches (biestables asíncronos o sincronizados por nivel).
A continuación mostramos el código en arduino de un flip-flop
El monoestable
Es un circuito multivibrador que realiza una función secuencial consistente en que
al recibir una excitación exterior, cambia de estado y se mantiene en él
durante un periodo que viene determinado por una constante de tiempo.
Transcurrido dicho período, la salida del monoestable vuelve a su estado
original. Por tanto, tiene un estado estable (de aquí su nombre) y un estado casi estable.
En la Figura 1 se representa el esquema de un circuito multivibrador monoestable, realizado con componentes discretos, cuyo funcionamiento es el siguiente:
Al aplicar la tensión de alimentación (Vcc), los dos transistores iniciarán la conducción, ya que sus bases reciben un potencial positivo a través de las resistencias R-2 y R-3, pero como los transistores no serán exactamente idénticos, por el propio proceso de fabricación y el grado de impurezas del material semiconductor, uno conducirá antes o más rápido que el otro.
Supongamos que es TR-2 el que conduce primero.
El voltaje en su colector estará próximo a 0 voltios (salida Y a nivel bajo), por lo que la tensión aplicada a la base de TR-1 a través del divisor formado por R-3, R-5, será insuficiente para que conduzca TR-1.
En estas condiciones TR-1 permanecería bloqueado indefinidamente.
Pero si ahora aplicamos un impulso de disparo de nivel alto por la entrada T, el transistor TR-1 conducirá y su tensión de colector se hará próxima a 0 V, con lo que C-1, que estaba cargado a través de R-1 y la unión base-emisor de TR-2, se descargará a través de TR-1 y R-2 aplicando un potencial negativo a la base de TR-2 que lo llevará al corte (salida Y a nivel alto). En esta condición la tensión aplicada a la base de TR-1 es suficiente para mantenerlo en conducción aunque haya desaparecido el impulso de disparo en T.
metaestabilidad
es la propiedad que un sistema con varios estados de equilibrio, tiene de exhibir, durante un considerable período de tiempo, un estado de equilibrio débilmente estable. Sin embargo, bajo la acción de perturbaciones externas (a veces no fácilmente detectables) dichos sistemas exhiben una evolución temporal hacia un estado de equilibrio fuertemente estable. Normalmente la metaestabilidad es debida a transformaciones de estado lentas.
El estado metaestable
aunque teóricamente puede mantenerse indefinidamente, siempre acabará resolviéndose en un valor lógico válido 0 o 1, aunque no es posible saber cuánto tiempo tardará. Un diseño cuidadoso del componente biestable asegurará que el tiempo medio de resolución sea lo suficientemente bajo como para evitar que pueda poner en peligro el funcionamiento correcto del circuito. Técnicas de diseño de más alto nivel, como el uso de circuitos sincronizadores consistentes en varios biestables en cascada (diseño síncrono), o de circuitos de handshake, dan mayor robustez al diseño frente al problema de la metaestabilidad, minimizando la probabilidad de que suceda hasta un nivel despreciable. Pese a todo, en circuitos digitales complejos de varios cientos de miles de puertas lógicas y varias señales de reloj asíncronas entre sí, como los presentes en todos los chips digitales que se fabrican en la actualidad, evitar los estados metaestables es un desafío que requiere gran cuidado por parte del diseñador.
Un sistema
metaestable con un estado débilmente estable (1), un estado inestable de
transición (2) y un estado fuertemente estable (3).
REGISTROS DE CORRIMIENTO
Un registro de corrimiento es un circuito
secuencial síncrono capaz de contractar varios bits de información. El formato
de esta información puede ser de dos tipos:
• Serie: los bits se transfieren uno a
continuación del otro por una misma línea.
• Paralelo: se intercambian todos los bits al
mismo tiempo, utilizando un número de líneas de transferencia igual al número
de bits.
Contadores de registro de corrimiento
En los contadores de registro de corrimiento se utiliza retroalimentación, lo cual significa que la salida del último flip-flop del registro se conecta en retroceso con el primer flip-flop en alguna forma.
Contador de anillo
El contador de registro de corrimiento mas simple es un registro de corrimiento circulante conectado que el ultimo ff desplace su valor al primer ff. Los ff se conectan de modo que la información se corra de izquierda a derecha de Q-0 a Q-3. En muchos casos solo hay un 1 el registro y se hace que circule alrededor del registro en tanto se apliquen los pulsos del reloj. Por esta razón se le denomina contador de anillo.
Ejemplo:
En los contadores de registro de corrimiento se utiliza retroalimentación, lo cual significa que la salida del último flip-flop del registro se conecta en retroceso con el primer flip-flop en alguna forma.
Contador de anillo
El contador de registro de corrimiento mas simple es un registro de corrimiento circulante conectado que el ultimo ff desplace su valor al primer ff. Los ff se conectan de modo que la información se corra de izquierda a derecha de Q-0 a Q-3. En muchos casos solo hay un 1 el registro y se hace que circule alrededor del registro en tanto se apliquen los pulsos del reloj. Por esta razón se le denomina contador de anillo.
Ejemplo:
Las formas de honda, la tabla de secuencia y el diagrama de estados muestran
los diferentes estados de los ff a medida que se aplican los pulsos, suponiendo
que el estado inicial es Q-3 = 1 y Q-2 = Q-1 = Q-0 = 0. Después del primer
pulso, el 1 ha pasado de Q-3 a Q-2 de manera que el contador está en el estado
0100. El segundo pulso produce el estado 0010 y el tercero produce el estado
0001. En el cuarto pulso del reloj el estado 1 de Q-0 se transfiere a Q-3 lo
que produce el estado 1000, que es desde luego, el estado inicial. Los pulsos
subsiguientes ocasionan que se repita la secuencia.
Este contador funciona como un contador MOD-4 porque tiene cuatro estados distintos antas que se repita la secuencia.
En general, un contador de anillo necesita más ff que un contador binario para el mismo número MOD; por ejemplo, un contador de anillo MOD-8 requiere de 8 ff, en tanto que un contador binario MOD-8 solo necesita 3.
Contador Johnson
El contador de anillo básico se puede modificar ligeramente para producir otro tipo de contador de registro de corrimiento, que tendrá propiedades un tanto diferentes. El contador Johnson o de anillo trenzado se construye exactamente en la misma forma que un contador de anillo normal, excepto que la salida invertida del ultimo ff se conecta a la entrada del primer ff.
Este contador funciona como un contador MOD-4 porque tiene cuatro estados distintos antas que se repita la secuencia.
En general, un contador de anillo necesita más ff que un contador binario para el mismo número MOD; por ejemplo, un contador de anillo MOD-8 requiere de 8 ff, en tanto que un contador binario MOD-8 solo necesita 3.
Contador Johnson
El contador de anillo básico se puede modificar ligeramente para producir otro tipo de contador de registro de corrimiento, que tendrá propiedades un tanto diferentes. El contador Johnson o de anillo trenzado se construye exactamente en la misma forma que un contador de anillo normal, excepto que la salida invertida del ultimo ff se conecta a la entrada del primer ff.
La operación del contador Johnson es fácil de
analizar si comprendemos que en cada transición positiva del pulso del reloj el
nivel en Q-2 se pasa a Q-1 el nivel en Q-1, se cambia a Q-0 y el inverso del
nivel de Q-0 se pasa a Q-2. Utilizando estas ideas y suponiendo que todos los
ff inicialmente están en 0, se puede generar las formas de onda, la tabla de
secuencia y el diagrama de estados.
Las formas de onda y la tabla de secuencia revelan los siguientes puntos:
- Este contador tiene seis estados distintos: 000,100, 110, 111, 011 y 001 antes de que se repita la secuencia.
- La forma de onda de cada ff es cuadrada a un sexto de la frecuencia del reloj.
Contadores en registro de corrimiento en CI
Existen muy pocos contadores de anillo o Johnson disponibles como circuitos
integrados. La razón es que es relativamente simple tomar un circuito integrado
con registro de corrimiento y conectarlo a un contador de anillo o a un
Johnson. Algunos de los contadores Johnson de CI CMOS, incluyen la circuitería
completa de decodificación en la misma pastilla que el contador.
Contador de frecuencia
Un contador de frecuencia es un circuito que puede medir y exhibir de manera
visual la frecuencia de una señal. Uno de los métodos más sencillos para
construir un contador de frecuencia contiene un contador con su circuitería
decodificadora y de exhibición asociados y una compuerta AND. Las estradas de
las compuertas AND incluyen los pulsos cuya frecuencia es desconocida, f-x, y
un pulso de MUESTREO que controla el tiempo disponible para que estos pasen a
través de la compuerta AND hacia el contador.
Contador de frecuencias completo
El circuito contiene ahora un MV monoestable y un flip-flop J-K que opera en el
modo de complemento, la compuerta AND tiene tres entradas, una de las cuales es
la salida x del ff. Los pulsos de MUESTREO se conectan a la compuerta AND y
también a la entrada CLK del ff.
Este contador de frecuencia entra en una secuencia repetitiva de borrado,
conteo, fijación para la exhibición visual, borrado, conteo, y así sucesivamente.
Diferencias entre circuitos combinacionales y secuenciales
Los sistemas combinacionales están formados por un conjunto de compuertas interconectadas, cuya salida, en un momento dado, esta únicamente en función de la entrada, en ese mismo instante. Por esto se dice que los sistemas combinacionales no cuentan con memoria.
En cambio los sistemas secuenciales, son capaces de tener salidas no solo en función a través de sus estados internos. Esto se debe a que los sistemas secuenciales tienen memoria y son capaces de almacenar información a través de sus estados internos.
Un sistema combinacional puede tener n entradas y salidas m.
Un sistema secuencial puede ser visto como una caja negra, en cuyo interior hay compuertas lógicas, que presentan una ecuación de conmutación.
CIRCUITOS CONBINACIONALES: las salidas dependen únicamente de las entradas.
CIRCUITOS SECUENCIALES: las salidas dependen de las entradas y del tiempo.
Un circuito combinacional es un sistema que contiene operaciones booleanas básicas (AND, OR, NOT), algunas entradas y un juego de salidas, como cada salida corresponde a una función lógica individual, un circuito combinacional a menudo implementa varias funciones booleanas diferentes, es muy importante recordar éste hecho, cada salida representa una función booleana diferente.
Un circuito combinacional es un sistema que contiene operaciones booleanas básicas (AND, OR, NOT), algunas entradas y un juego de salidas, como cada salida corresponde a una función lógica individual, un circuito combinacional a menudo implementa varias funciones booleanas diferentes, es muy importante recordar éste hecho, cada salida representa una función booleana diferente.
Un ejemplo común de un circuito combinacional es el decodificador de siete segmentos, se trata de un circuito que acepta cuatro entradas y determina cuál de los siete segmentos se deben iluminar para representar la respectiva entrada, de acuerdo con lo dicho en el párrafo anterior, se deben implementar siete funciones de salida diferentes, una para cada segmento. Las cuatro entradas para cada una de éstas funciones booleanas son los cuatro bits de un número binario en el rango de 0 a 9. Sea Del bit de alto orden de éste número y A el bit de bajo orden, cada función lógica debe producir un uno (para el segmento encendido) para una entrada dada si tal segmento en particular debe ser iluminado, por ejemplo, el segmento e debe iluminarse para los valores 0000, 0010, 0110 y 1000.
En la siguiente tabla se puede ver qué segmentos deben iluminarse de acuerdo al valor de entrada, tenga en cuenta que sólo se están representando valores en el rango de 0 a 9, los decodificadores para las pantallas de siete segmentos comerciales tienen capacidad para desplegar valores adicionales que corresponden a las letras A a la F para representaciones hexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos es similar a la aquí representada para los valores numéricos.
Los circuitos combinacionales son la base de muchos componentes en un sistema de cómputo básico, se puede construir circuitos para sumar, restar, comparar, multiplicar, dividir y muchas otras aplicaciones más.
Circuitos Secuenciales.
Un problema con la lógica secuencial es su falta de “memoria”. En teoría, todas las funciones de salida en un circuito combinacional dependen del estado actual de los valores de entrada, cualquier cambio en los valores de entrada se refleja (después de un intervalo de tiempo llamado retardo de propagación) en las salidas.
Un problema con la lógica secuencial es su falta de “memoria”. En teoría, todas las funciones de salida en un circuito combinacional dependen del estado actual de los valores de entrada, cualquier cambio en los valores de entrada se refleja (después de un intervalo de tiempo llamado retardo de propagación) en las salidas.
Desafortunadamente las computadoras requieren de la habilidad para “recordar” el resultado de cálculos pasados. Éste es el dominio de la lógica secuencial. Una celda de memoria es un circuito electrónico que recuerda un valor de entrada después que dicho valor ha desaparecido.
La unidad de memoria más básica es el flip-flop Set/Reset. Aunque recordar un bit sencillo es importante, la mayoría de los sistemas de cómputo requieren recordar un grupo de bits, esto se logra combinando varios flip-flop en paralelo, una conexión de éste tipo recibe el nombre de registro. A partir de aquí es posible implementar diferentes circuitos como registros de corrimiento y contadores, éstos últimos también los conocemos como circuitos de reloj. Con los elementos mencionados es posible construir un microprocesador completo.
La diferencia principal entre un circuito combinacional y un circuito secuencial es que en el segundo caso hay una realimentación de una señal de salida hacia la entrada





No hay comentarios:
Publicar un comentario