memoria - imt.ucb.edu.bo€¦ · memoria los memorias mencionadas anteriormente son usos mas...

21
MEMORIA Ing. Jhon Abel Ordoñez Ingali

Upload: others

Post on 30-Apr-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIAIng. Jhon Abel Ordoñez Ingali

Page 2: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Ya se vio varios tipos de memoria como register file, el cual se encuentra embebido en el CPU. También se mencionó brevemente la transferencia de datos entre registros y data memory, y las instrucciones siendo buscadas desde la instruction memory. Por lo tanto se pueden clasificar los tipos de memoria según su función. Register File: Es una memoria relativamente pequeña embebida en el

CPU. Es usada como un bloc de notas para almacenamiento temporario de valores con que el CPU esta trabajando. Puede ser llamado CPUs short term memory.

Data Memory: Es para longer term storage. Los CPUs genéricos emplean una memoria externa mucho mas grande que el register file. Los datos puede temporales de corta o larga duración. Por supuesto, una memoria externa requiere algun hardware e incurre en costo. Por esta razón, los microcontroladores lleva un on-chip data memory.

Instruction Memory: Al igual que data memory es una memoria externa relativamente grande. En arquitecturas Von Neumann van junto a data memory.

Page 3: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches, buffers y mas.

Acerca de la memoria embebida en un MCU, naturalmente por el tamaño del chip es limitado. Peor aún frecuentemente es imposible expandir la memoria externamente. Sin embargo los MCU son frecuentemente usados para tareas relativamente simples y por lo tanto no necesitan una excesiva cantidad de memoria. Des esta manera el costo decrementa considerablemente. De ser necesario, algunas familias MCUs cuenta con una gama de tamaños de memoria.

Las distinciones funcionales de los tipos de memoria están en la manera en que las memorias con usadas desde la perspectiva del programador. Los diseñadores hardware lo ven desde sus propiedades físicas de las partes de la memoria. Desde esta perspectiva la mayor distinción sería volatile y non volatile

Page 4: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Las memorias volátiles pueden ser static o dynamic, y existe una

gran variedad de tipos de memorias no volátiles como: ROM, PROM, EPROM, EEPROM, FLASH, NV-RAM.

Page 5: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA

Memoria Volatil El problemas de las memoria no volátiles es que usualmente muy lento, mas

complejo para trabajar con ellos y mas caro. Mientras que en PCs se tienen acceso en tiempo de nanosegundos, algunos tipos de no-volátiles no se encuentran disponibles luego de hacer writing. RAM: Random Access Memory

Static RAM Fue el primer tipo de memoria volátil ampliamente usado. Un SRAM consiste en una array

de celdas, cada uno es capaz de almacenar un bit de información, se usa flip-flops constituidos por 6 transistores. Las celdas de la SRAM tienen las siguientes entradas y salidas: Data In Din: Acepta un bit de dato para ser almacenado. Data Out Dout: Retorna el bit alamcenado Read/Write R/W: 0 para escribir, 1 para leer Cell Select CS: para 0, la celda no acepta ningún dato en Din y mantiene la salida

Dout. En rising edge, la celda acepta el estado de Din como un nuevo bit a almacenar, Dout toma el valor del dato actualemte almacenado.

Page 6: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA

Memoria Volatil El problemas de las memoria no volátiles es que usualmente muy lento, mas

complejo para trabajar con ellos y mas caro. Mientras que en PCs se tienen acceso en tiempo de nanosegundos, algunos tipos de no-volátiles no se encuentran disponibles luego de hacer writing. RAM: Random Access Memory

Static RAM Fue el primer tipo de memoria volátil ampliamente usado. Un SRAM consiste en una array

de celdas, cada uno es capaz de almacenar un bit de información, se usa flip-flops constituidos por 6 transistores. Las celdas de la SRAM tienen las siguientes entradas y salidas: Data In Din: Acepta un bit de dato para ser almacenado. Data Out Dout: Retorna el bit alamcenado Read/Write R/W: 0 para escribir, 1 para leer Cell Select CS: para 0, la celda no acepta ningún dato en Din y mantiene la salida

Dout. En rising edge, la celda acepta el estado de Din como un nuevo bit a almacenar, Dout toma el valor del dato actualemte almacenado.

Page 7: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria Volatil

Static RAM Para obtener una memoria mas útil, muchas celdas son colocadas en

una matriz. Todas las salidas Dout se concatenan juntas. Si todas las celdas envían sus salidas a pesar de no estar siendo direccionandas, un corto entre GND y VCC podría ocurrir, lo cual probablemente destruya el chip. Por eso la línea de CS es usada para seleccionar una celda de la matriz y coloca todas las demás en high resistance state. Para direccionar una celda y tener acceso a un bit en particular, la SRAM necesita una lógica extra para facilita el direccionamiento.

La lógica AND permite que solo se accese a la celda que una respectiva columna y fila. Esta arquitectura de 16 celdas de 4 columnas y 4 filas es para guardar líneas de direcciones. Para poder seleccionar 1 o varias celdas con menos bits, será necesario implementar decoders.

Page 8: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria Volatil

Static RAM Por supuesto una

celda puede ser compuesta por mas de 1 flip-flop. Para hacer un 256x4 SRAM se usaría un array de 16x16 celdas, cada uno con 4 flip-flops.

Page 9: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria Volatil

Static RAM Externamente un SRAM tiene las siguientes conexiones:

Address Lines A0…An-1 Son usados para seleccionar una celda de memoria de un total de 2n celdas

Data In(Din) La función es igual que para una celda. Para RAMs de ancho mayor a 2, este bus se compone de n data lines

Data Out(Dout) La misma función que para una celda Chip Select(CS) o Chip Enable(CE) Read/Write(R/not(W))

Page 10: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria Volatil

Static RAM Externamente un SRAM tiene las siguientes conexiones:

Address Lines A0…An-1 Son usados para seleccionar una celda de memoria de un total de 2n celdas

Data In(Din) La función es igual que para una celda. Para RAMs de ancho mayor a 2, este bus se compone de n data lines

Data Out(Dout) La misma función que para una celda Chip Select(CS) o Chip Enable(CE) Read/Write(R/not(W))

Page 11: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria Volatil

Dynamic RAM Recordemos que una SRAM necesita 6 transistores para guardar un bit, por

simple aritmética guardar mucho mas datos se vuelve costoso. Si se reduce la cantidad de componentes a usar se tendrá mas memoria.

Esto se logra mediante DRAM, donde el numero de componentes se reduce a 1 . Por tanto un DRAM almacena mas que SRAM.

Su funcionamiento es simple ya que sólo usa un capacitor para almacenar un bit. Pero igual se necesitan transistores para seleccionar los bits, Reading o writing. Se tiene algunos aspectos negativos como el que no es posible tener un aislamiento perfecto. Cuando se carga un capacitor, debería mantener la carga, sin embargo por flujos mínimos de corrientes a través de aislantes no perfectos en el chip(también llamados leakage currents) el capcitor pierde su carga, a pesar de estar siendo accesada. Una vez cargada el capacitor, la descarga de la misma es inevitable en el rango de 10 a 100 ms.

Page 12: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria Volatil

Dynamic RAM Es necesario refrescar cada cierto tiempo la memoria, ya que el

capacitor pierde la carga. Para esto se tiene una lógica disponible, pero que ocupa una buena porción del chip. Una controlador de refrescamiento DRAM pude usar los ciclos del CPU.

Una desventaja del DRAM es que es mucho mas lento que SRAM, pero como es mas costoso, no es una opción para desktop PCs. Por eso se idean técnicas para acelerar el acceso a DRAM.

La ventaja respecto SRAM es que almacena mas En microcontroladores se encuentra SRAM con cantidades de

memoria moderadas.

Page 13: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria No Volátil

Como se mencionó antes la ventaja es el costo respecto a volátiles. Pero la escritura es mucho mas lento y complicado, y hasta un punto molesto.

ROM Read Only Memory(ROM) fue el primer tipo de memoria no volátil basado en

semiconductor. No se puede escribir. Si alguien usaba ROMs tenía que especificar al fabricante del Chip que datos debería contener.

Un tipo común de ROM es Mask-ROM(MROM), el cual almacenaba los datos de forma matricial.

PROM Obviamente se puede usar ROMs sólo para producciones en masa como

algunas decenas de miles. Para prototipos este costo sería excesivamente costoso. Como alternativa se tiene los Programmable Read Only Memory(PROM). Es básicamente una matriz de celdas de memoria, pero cada uno contiene un fusible. Inicialmente cada fusible esta intacto y cada celda lee un 1 lógico. Seleccionando una celda y aplicando pulso corto pero de alta corriente, el fusible de la celda puede ser destruido, de esta manera se tiene un cero lógico para la programación.

Page 14: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria No Volátil

PROM Algunas veces se encontrará algo llamado One Time Programmable(OTP)

microcontroller. Estos contienen PROM como memoria de instrucción. Desde luego estos no son adecuados para desarrollo, donde el contenido

de la memoria puede aun estar necesitando ser cambiado. Pero una vez finalizado el desarrollo y se comienza la producción en masa.

EPROM Frecuentemente es necesario cambiar el contenido de memoria. Los

Erasable Programmable Only Memory (EPROM) superan el incoveniente. La programación no es destructiva(como los fusibles). La Memoria es almacenada en field effect transistors(FETs) o mas bien en uno de sus pines llamados gate, mas precisamente se llama Floating gate, y esta completamente aislada del resto del circuito. Sin embargo aplicacndo apropiadamente un alto voltaje es posible cambiar el Floating gate mediante un proceso llamado avalanche injection.

Page 15: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria No Volátil

PROM Algunas veces se encontrará algo llamado One Time Programmable(OTP)

microcontroller. Estos contienen PROM como memoria de instrucción. Desde luego estos no son adecuados para desarrollo, donde el contenido

de la memoria puede aun estar necesitando ser cambiado. Pero una vez finalizado el desarrollo y se comienza la producción en masa.

EPROM Frecuentemente es necesario cambiar el contenido de memoria. Los

Erasable Programmable Only Memory (EPROM) superan el incoveniente. La programación no es destructiva(como los fusibles). La Memoria es almacenada en field effect transistors(FETs) o mas bien en uno de sus pines llamados gate, mas precisamente se llama Floating gate, y esta completamente aislada del resto del circuito. Sin embargo aplicacndo apropiadamente un alto voltaje es posible cambiar el Floating gate mediante un proceso llamado avalanche injection.

Page 16: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria No Volátil

EPROM Una vez programada los electrones deberían permanecer en el

Floating gate indefinidamente. Sin embargo igual existen leakage currents ya que no existen aisladores perfectos. Después de un tiempo el dispositivo se convertirá no programable. En el datasheet de los EPROM se especifica este tiempo.

Esta durabilidad limitada se soluciona con luz UV, el cual acelera el proceso. Luego de 30 segundos la luz UV descargará los Floating gates y la EPROM estará borrada. Esta es la razón por el cual los EPROM tiene una pequeña ventana de vidrio en su empaque. Para borrar una EPROM es necesario contar con una caja a prueba de luz para evitar daños por la luz UV.

Page 17: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Memoria No Volátil

EEPROM Respecto a los EPROM la programación y borrado. Para ser programado se

utilizaba un voltaje especial usualmente mayor al voltaje de operación. Para el borrado se necesitaba UV pero con mejoras.

El Electrical Erasable and Programmable ROM (EEPROM) tiene todas las ventajas de un EPROM sin sus inconvenientes. Ya no es necesario un voltaje especial ni tampoco una fuente de luz UV para el borrado. EEPROM trabaja de forma muy similar a EPROM, excepto que los electrones pueden ser removidos del Floating gate aplicando un elevado voltaje.

Anteriormente se dijo que no era necesario un voltaje especial, pero se sigue necesitando un alto voltaje que se provee en el chip mediante charge pumps, los cuales pueden generar un alto voltaje que sean suministrados al chip externamente.

Desde luego los EEPROM tienen sus limitaciones, soportan un número limitado de ciclos de escritura y borrado(usualmente en el orden de 100 000)y no pueden retener la información indefinidamente.

Page 18: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA

Memoria No Volátil

Flash Hasta ahora pareciera ser la mejor elección EEPROM, sin embargo

tiene un inconveniente, es caro. Como alternativa se tiene Flash. Flash es una variante de EEPROM, donde el borrado no es posible por cada dirección o sólo por bloques o en su defecto, toda la memoria(“borrado en un flash”). De esta manera la lógica se reduce y por tanto el costo. También debido al hecho de que no es posible borrar singles bytes, los Flash EEPROM son usadas para memoria de programa y no de datos.

Tiene menos ciclos de escritura borrado que EEPROM, alrededor de 1000 a 10000 veces, esto también hace que sea mas barato.

Page 19: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA

Memoria No Volátil NVRAM

Finalmente se tiene el tipo de memoria que combina las ventajas de memorias volátiles y no volátiles: Non Volatile RAM(NVRAM). Esto puede ser logrado de diferentes maneras. Una manera es sólo agregar un pequeña bateria a la SRAM, de modo que cuando se corte el suministro de energía, ésta siga funcionando. Otra variante es combinar una SRAM con una EEPROM, una vez que se encienda la unidad se copia lo datos de la EEPROM a la SRAM, durante la operación se lee y escribe de la SRAM, cuando el suministro se corta, los datos se copian a EEPROM.

Page 20: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Acceso a Memoria

Muchos microcontroladores tienen integrado una memoria de programa y Datos. Usualmente la memoria de programa es una Flash EEPROM, y la memoria de datos es SRAM y a veces EEPROM. Como se tiene acceso a las direcciones de memoria de cada tipo de memoria?. Se tienen 2 tipos Cada memoria es direccionada

separadamente. Las direcciones de las memorias pueden ser la misma. El programador accede a cada memoria mediante un método específico(ejemplo: usar un registro).

Page 21: MEMORIA - imt.ucb.edu.bo€¦ · MEMORIA Los memorias mencionadas anteriormente son usos mas prominentes del CPU. Sin embargo existe mas memoria, como pipeline registers, caches,

MEMORIA Acceso a Memoria

Todas mas memorias comparten un rango común de direcciones. El acceso es igual para las memorias. Se debe conocer las direcciones asignadas por memoria. Si bien este método es simple, es también algo inseguro. Si se accede incorrectamente a la memoria equivocada

Cuando se escribe un dato de 16 bits en una memoria de 1 palabra de ancho(8 bits) en una dirección específica, obviamente el dato deberá ser escrito en 2 direcciones. Para esto se tiene 2 formas: Big Endian. Se guarda el byte alto primero y el

segundo byte en la siguiente dirección Little Endian: Al revés.