Está en la página 1de 24

ARQUITECTURAS CISC

La microprogramacin es una caracterstica importante y esencial de casi todas las arqutecturas CISC. Como por ejemplo: Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840. La microprogramacin significa que cada instruccin de mquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. En la dcada de los sesentas la micropramacin, por sus caractersticas, era la tcnica ms apropiada para las tecnologas de memorias existentes en esa poca y permita desarrollar tambin procesadores con compatibilidad ascendente. En consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj (al menos uno por microinstruccin).
La memoria de acceso aleatorio (en ingls: random-access memory) se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayora del software. Es all donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cmputo. Se denominan de acceso aleatorio porque se puede leer o escribir en una posicin de memoria con un tiempo de espera igual para cualquier posicin, no siendo necesario seguir un orden para acceder a la informacin de la manera ms rpida posible. Durante el encendido del computador, la rutina POST verifica que los mdulos de memoria RAM estn conectados de manera correcta. En el caso que no existan o no se detecten los mdulos, la mayora de tarjetas madres emiten una serie de pitidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test bsico sobre la memoria RAM indicando fallos mayores en la misma. La expresin memoria RAM se utiliza frecuentemente para describir a los mdulos de memoria utilizados en los computadores personales y servidores. Esta memoria es solo una variedad de la memoria de acceso aleatorio: las ROM, memorias Flash, cach (SRAM), los registros en procesadores y otras unidades de procesamiento tambin poseen la cualidad de presentar retardos de acceso iguales para cualquier posicin. Los mdulos de RAM son la presentacin comercial de este tipo de memoria, que se compone de circuitos integrados soldados sobre un circuito impreso independiente, en otros dispositivos como las consolas de videojuegos, la RAM va soldada directamente sobre la placa principal.

Mdulos de la memoria RAM

Formato SO-DIMM.

Los mdulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados de memoria DRAM por una o ambas caras. La implementacin DRAM se basa en una topologa de circuito elctrico que permite alcanzar densidades altas de memoria por cantidad de transistores, logrando integrados de cientos o miles de megabits. Adems de DRAM, los mdulos poseen un integrado que permiten la identificacin de los mismos ante el computador por medio del protocolo de comunicacin SPD. La conexin con los dems componentes se realiza por medio de un rea de pines en uno de los filos del circuito impreso, que permiten que el mdulo al ser instalado en un zcalo apropiado de la placa base, tenga buen contacto elctrico con los controladores de memoria y las fuentes de alimentacin. Los primeros mdulos comerciales de memoria eran SIPP de formato propietario, es decir no haba un estndar entre distintas marcas. Otros mdulos propietarios bastante conocidos fueron los RIMM, ideados por la empresa RAMBUS. La necesidad de hacer intercambiable los mdulos y de utilizar integrados de distintos fabricantes condujo al establecimiento de estndares de la industria como los JEDEC.

Mdulos SIMM: Formato usado en computadores antiguos. Tenan un bus de datos de 16 32 bits Mdulos DIMM: Usado en computadores de escritorio. Se caracterizan por tener un bus de datos de 64 bits. Mdulos SO-DIMM: Usado en computadores porttiles. Formato miniaturizado de DIMM.

Relacin con el resto del sistema


Dentro de la jerarqua de memoria la RAM se encuentra en un nivel despus de los registros del procesador y de las cachs en cuanto a velocidad. Los mdulos de memoria se conectan elctricamente a un controlador de memoria que gestiona las seales entrantes y salientes de los integrados DRAM. Las seales son de tres tipos: direccionamiento, datos y seales de control. En el mdulo de memoria esas seales estn divididas en dos buses y un

conjunto miscelneo de lneas de control y alimentacin, Entre todas forman el bus de memoria que conecta la RAM con su controlador:

Bus de datos: Son las lneas que llevan informacin entre los integrados y el controlador. Por lo general estn agrupados en octetos siendo de 8,16,32 y 64 bits, cantidad que debe igualar el ancho del bus de datos del procesador. En el pasado, algunos formatos de mdulo, no tenan un ancho de bus igual al del procesador.En ese caso haba que montar mdulos en pares o en situaciones extremas, de a 4 mdulos, para completar lo que se denominaba banco de memoria, de otro modo el sistema no funciona. Esa fue la principal razn para aumentar el nmero de pines en los mdulos, igualando al ancho de bus de procesadores como el Pentium a 64 bits, a principios de los 90. Bus de direcciones: Es un bus en el cual se colocan las direcciones de memoria a las que se requiere acceder. No es igual al bus de direcciones del resto del sistema, ya que est multiplexado de manera que la direccin se enva en dos etapas. Para ello el controlador realiza temporizaciones y usa las lneas de control. En cada estndar de mdulo se establece un tamao mximo en bits de este bus, estableciendo un lmite terico de la capacidad mxima por mdulo. Seales miscelneas: Entre las que estn las de la alimentacin (Vdd, Vss) que se encargan de entregar potencia a los integrados. Estn las lneas de comunicacin para el integrado de presencia que sirve para identificar cada mdulo. Estn las lneas de control entre las que se encuentran las llamadas RAS (row address strobe) y CAS (column address strobe) que controlan el bus de direcciones, por ltimo estn las seales de reloj en las memorias sincrnicas SDRAM.

Algunos controladores de memoria en sistemas como PC y servidores se encuentran embebidos en el llamado "North Bridge" o "Puente Norte" de la placa base. Otros sistemas incluyen el controlador dentro del mismo procesador (en el caso de los procesadores desde AMD Athlon 64 e Intel Core i7 y posteriores). En la mayora de los casos el tipo de memoria que puede manejar el sistema est limitado por los sockets para RAM instalados en la placa base, a pesar que los controladores de memoria en muchos casos son capaces de conectarse con tecnologas de memoria distintas. Una caracterstica especial de algunos controladores de memoria, es el manejo de la tecnologa canal doble (Dual Channel), donde el controlador maneja bancos de memoria de 128 bits, siendo capaz de entregar los datos de manera intercalada, optando por uno u otro canal, reduciendo las latencias vistas por el procesador. La mejora en el desempeo es variable y depende de la configuracin y uso del equipo. Esta caracterstica ha promovido la modificacin de los controladores de memoria, resultando en la aparicin de nuevos chipsets (la serie 865 y 875 de Intel) o de nuevos zcalos de procesador en los AMD (el 939 con canal doble , reemplazo el 754 de canal sencillo). Los equipos de gama media y alta por lo general se fabrican basados en chipsets o zcalos que soportan doble canal o superior, como en el caso del zcalo (o socket, en ingls) 1366 de Intel, que usaba un triple canal de memoria, o su nuevo LGA 2011 que usa cudruple canal.

Introduccin Bueno , es necesario recalcar que debido a la naturaleza de nuestro trabajo , se nos hizo necesario separar los temas a analizar ( Memorias RAM y USB ). La Idea fue precisamente mezclar estos dos temas pero no revolverlos . USB Universal Serial Bus es una interfase plug&play entre la PC y ciertos dispositivos tales como teclados, mouses, scanner, impresoras, mdems, placas de sonido, camaras,etc) . Memoria RAM (Random Access Memory) Memoria de Acceso Aleatorio) es donde el computador guarda los datos que est utilizando en el momento presente. El almacenamiento es considerado temporal por que los datos y programas permanecen en ella mientras que la computadora este encendida o no sea reiniciada.

Qu es... la memoria RAM? La memoria principal o RAM (Random Access Memory, Memoria de Acceso Aleatorio) es donde el computador guarda los datos que est utilizando en el momento presente. El almacenamiento es considerado temporal por que los datos y programas permanecen en ella mientras que la computadora este encendida o no sea reiniciada. Se le llama RAM por que es posible acceder a cualquier ubicacin de ella aleatoria y rpidamente Fsicamente, estn constituidas por un conjunto de chips o mdulos de chips normalmente conectados a la tarjeta madre. Los chips de memoria son rectngulos negros que suelen ir soldados en grupos a unas plaquitas con "pines" o contactos:

La diferencia entre la RAM y otros tipos de memoria de almacenamiento, como los disquetes o los discos duros, es que la RAM es mucho ms rpida, y que se borra al apagar el computador, no como los Disquetes o discos duros en donde la informacin permanece grabada. Tipos de RAM Hay muchos tipos de memorias DRAM, Fast Page, EDO, SDRAM, etc. Y lo que es peor, varios nombres. Trataremos estos cuatro, que son los principales, aunque mas adelante en este Informe encontrar prcticamente todos los dems tipos.

DRAM: Dinamic-RAM, o RAM DINAMICA, ya que es "la original", y por tanto la ms lenta. Usada hasta la poca del 386, su velocidad tpica es de 80 70 nanosegundos (ns), tiempo ste que tarda en vaciarse para poder dar entrada a la siguiente serie de datos. Por ello, es ms rpida la de 70 ns que la de 80 ns. Fsicamente, aparece en forma de DIMMs o de SIMMs, siendo estos ltimos de 30 contactos. Fast Page (FPM): a veces llamada DRAM (o slo "RAM"), puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo ms rpida, tanto por su estructura (el modo de Pgina Rpida) como por ser de 70 60 ns. Usada hasta con los primeros Pentium, fsicamente aparece como SIMMs de 30 72 contactos (los de 72 en los Pentium y algunos 486).

EDO: o EDO-RAM, Extended Data Output-RAM. Evoluciona de la Fast Page; permite empezar a introducir nuevos datos mientras los anteriores estn saliendo (haciendo su Output), lo que la hace algo ms rpida (un 5%, ms o menos). Muy comn en los Pentium MMX y AMD K6, con velocidad de 70, 60 50 ns. Se instala sobre todo en SIMMs de 72 contactos, aunque existe en forma de DIMMs de 168. SDRAM: Sincronic-RAM. Funciona de manera sincronizada con la velocidad de la placa (de 50 a 66 MHz), para lo que debe ser rapidsima, de unos 25 a 10 ns. Slo se presenta en forma de DIMMs de 168 contactos; es usada en los Pentium II de menos de 350 MHz y en los Celeron. PC100: o SDRAM de 100 MHz. Memoria SDRAM capaz de funcionar a esos 100 MHz, que utilizan los AMD K6-2, Pentium II a 350 MHz y computadores ms modernos; tericamente se trata de unas especificaciones mnimas que se deben cumplir para funcionar correctamente a dicha velocidad, aunque no todas las memorias vendidas como "de 100 MHz" las cumplen. PC133: o SDRAM de 133 MHz. La ms moderna (y recomendable).

SIMMs y DIMMs Se trata de la forma en que se juntan los chips de memoria, del tipo que sean, para conectarse a la placa base del ordenador. Son unas plaquitas alargadas con conectores en un extremo; al conjunto se le llama mdulo. El nmero de conectores depende del bus de datos del microprocesador, que ms que un autobs es la carretera por la que van los datos; el nmero de carriles de dicha carretera representara el nmero de bits de informacin que puede manejar cada vez.

SIMMs: Single In-line Memory Module, con 30 72 contactos. Los de 30 contactos pueden manejar 8 bits cada vez, por lo que en un 386 486, que tiene un bus de datos de 32 bits, necesitamos usarlos de 4 en 4 mdulos iguales. Miden unos 8,5 cm (30 c.) 10,5 cm (72 c.) y sus zcalos suelen ser de color blanco.

Los SIMMs de 72 contactos, ms modernos, manejan 32 bits, por lo que se usan de 1 en 1 en los 486; en los Pentium se hara de 2 en 2 mdulos (iguales), porque el bus de datos de los Pentium es el doble de grande (64 bits).

DIMMs: ms alargados (unos 13 cm), con 168 contactos y en zcalos generalmente negros; llevan dos muescas para facilitar su correcta colocacin. Pueden manejar 64 bits de una vez, por lo que pueden usarse de 1 en 1 en los Pentium, K6 y superiores. Existen para voltaje estndar (5 voltios) o reducido (3.3 V).

Y podramos aadir los mdulos SIP, que eran parecidos a los SIMM pero con frgiles patitas soldadas y que no se usan desde hace bastantes aos, o cuando toda o parte de la memoria viene soldada en la placa (caso de algunos ordenadores de marca). Otros tipos de RAM

BEDO (Burst-EDO): una evolucin de la EDO, que enva ciertos datos en "rfagas". Poco extendida, compite en prestaciones con la SDRAM. Memorias con paridad: consisten en aadir a cualquiera de los tipos anteriores un chip que realiza una operacin con los datos cuando entran en el chip y otra cuando salen. Si el resultado ha variado, se ha producido un error y los datos ya no son fiables. Dicho as, parece una ventaja; sin embargo, el ordenador slo avisa de que el error se ha producido, no lo corrige. Es ms, estos errores son tan improbables que la mayor parte de los chips no los sufren jams aunque estn funcionando durante aos; por ello, hace aos que todas las memorias se fabrican sin paridad. ECC: memoria con correccin de errores. Puede ser de cualquier tipo, aunque sobre todo EDO-ECC o SDRAM-ECC. Detecta errores de datos y los corrige; para aplicaciones realmente crticas. Usada en servidores y mainframes. Memorias de Vdeo: para tarjetas grficas. De menor a mayor rendimiento, pueden ser: DRAM -> FPM -> EDO -> VRAM -> WRAM -> SDRAM -> SGRAM

DDR-SDRAM: (Doble Data Rate) Cmo es fsicamente la DDR-SDRAM? O lo que es lo mismo: puedo instalarla en mi "antigua" placa base? Lamentablemente, la respuesta es un NO rotundo.

Los mdulos de memoria DDR-SDRAM (o DDR) son del mismo tamao que los DIMM de SDRAM, pero con ms conectores: 184 pines en lugar de los 168 de la SDRAM normal.

Adems, los DDR tienen 1 nica muesca en lugar de las 2 de los DIMM "clsicos".

Los nuevos pines son absolutamente necesarios para implementar el sistema DDR, por no hablar de que se utiliza un voltaje distinto y que, sencillamente, tampoco nos servira de nada poder instalarlos, porque necesitaramos un chipset nuevo. Hablando del voltaje: en principio debera ser de 2,5 V, una reduccin del 30% respecto a los actuales 3,3 V de la SDRAM. Cmo funciona la DDR-SDRAM? Consiste en enviar los datos 2 veces por cada seal de reloj, una vez en cada extremo de la seal (el ascendente y el descendente), en lugar de enviar datos slo en la parte ascendente de la seal. De esta forma, un aparato con tecnologa DDR que funcione con una seal de reloj "real", "fsica", de por ejemplo 100 MHz, enviar tantos datos como otro sin tecnologa DDR que funcione a 200 MHz. Por ello, las velocidades de reloj de los aparatos DDR se suelen dar en lo que podramos llamar "MHz efectivos o equivalentes" (en nuestro ejemplo, 200 MHz, "100 MHz x 2"). Uno de los problemas de la memoria Rambus: funciona a 266 MHz "fsicos" o ms, y resulta muy difcil (y cara) de fabricar. La tecnologa DDR est de moda ltimamente, bajo ste u otro nombre. Adems de las numerossimas tarjetas grficas con memoria de vdeo DDR-SDRAM, tenemos por ejemplo los microprocesadores AMD Athlon y Duron, cuyo bus de 200 MHz realmente es de "100 x 2", "100 MHz con doble aprovechamiento de seal"; o el AGP 2X 4X, con 66 MHz "fsicos" aprovechados doble o cudruplemente, ya que una tarjeta grfica con un bus de 266 MHz "fsicos" sera difcil de fabricar... y extremadamente cara. (Atencin, esto no quiere decir que una tarjeta AGP 4X sea en la realidad el doble de rpida que una 2X, ni mucho menos: a veces se "notan" IGUAL de rpidas, por motivos que no vienen al caso ahora.) Bien, pues la DDR-SDRAM es el concepto DDR aplicado a la memoria SDRAM. Y la SDRAM no es otra que nuestra conocida PC66, PC100 y PC133, la memoria que se utiliza actualmente en casi la totalidad de los PCs normales; los 133 MHz de la PC133 son ya una cosa difcil de superar sin subir mucho los precios, y por ello la introduccin del DDR. Tipos de DDR-SDRAM y nomenclatura Por supuesto, existe memoria DDR de diferentes clases, categoras y precios. Lo primero, puede funcionar a 100 o 133 MHz (de nuevo, "fsicos"); algo lgico, ya que se trata de SDRAM con DDR, y la SDRAM funciona a 66, 100 133 MHz (por cierto, no existe DDR a 66 MHz). Si consideramos los MHz "equivalentes", estaramos ante memorias de 200 266 MHz.

En el primer caso es capaz de transmitir 1,6 GB/s (1600 MB/s), y en el segundo 2,1 GB/s (2133 MB/s). Al principio se las conoca como PC200 y PC266, siguiendo el sistema de clasificacin por MHz utilizado con la SDRAM. Pero lleg Rambus y decidi que sus memorias se llamaran PC600, PC700 y PC800, tambin segn el sistema de los MHz. Como esto hara que parecieran muchsimo ms rpidas que la DDR (algo que NO SUCEDE, porque funcionan de una forma completamente distinta), se decidi denominarlas segn su capacidad de transferencia en MB/s: PC1600 y PC2100 (PC2133 es poco comercial, por lo visto). 2.1- Cunta memoria debo tener? Se podra decir que: cuanta ms memoria RAM, mejor. Claro est que la memoria RAM vale dinero, as que se intentara llegar a un compromiso satisfactorio, pero nunca quedndose cortos. Ante todo, de todas formas no nos podemos quejar en los precios: hasta antes del 1996 el costo de la memoria haba mantenido un costo constante de alrededor de US 40 por megabyte . A finales de 1996 los precios se haban reducido a US 4 el megabyte (una cada del 901% en menos de un ao). Hoy en da la memoria RAM est a menos de US 1 por megabyte. La cantidad de RAM necesaria es funcin nicamente de para qu se use un ordenador, lo que condiciona a qu sistema operativo y programas se van a usar, se recomienda una cantidad mnima de 64 MB de RAM, y si es posible incluso 128. Cunta memoria es "suficiente"? En el mundo de los computadores, la duda siempre parece estar en si comprar un microprocesador Intel o AMD, en si ser un Pentium III o un Athlon, un Celeron o un K62, y a cuntos MHz funcionar. Cuando se llega al tema de la memoria, la mayor parte de los compradores aceptan la cantidad que trae el sistema por defecto, lo que puede ser un gran error.

Lo ms importante al comprar un computador es que sea equilibrado; nada de 800 MHz para slo 32 MB de memoria RAM, o una tarjeta 3D de alta gama para un monitor pequeo y de mala calidad. Y como intentaremos demostrar, la cantidad de memoria del PC es uno de los factores que ms puede afectar al rendimiento. Por cierto, este trabajo se centrar en Windows 95 y 98, ya que son con diferencia los sistemas operativos ms utilizados. Los resultados son perfectamente aplicables a Linux,

"excepto" por su mayor estabilidad y mejor aprovechamiento de la memoria; en cuanto a Windows NT 4 y 2000, actan de forma similar a Linux, si bien consumen entre 16 y 40 MB ms de memoria que los Windows "domsticos". Windows y la memoria virtual Por supuesto, cuantos ms programas utilicemos y ms complejos sean, ms memoria necesitaremos; esto seguro que no sorprender a nadie, pero lo que s puede que nos sorprenda es la gran cantidad de memoria que se utiliza tan slo para arrancar el sistema operativo. Observen los siguientes datos: Programas cargados Slo Windows 95 Slo Windows 98 Slo Windows 98, tras varios meses de funcionamiento y diversas instalaciones de programas Windows 98, Microsoft Word 97 e Internet Explorer 4 Windows 98 y AutoCAD 14 (con un dibujo sencillo en 2D) RAM utilizada 21 MB 27 MB 35 MB 46 MB 55 MB

Como puede ver, slo la carga del sistema operativo puede consumir TODA la memoria con la que se venden algunos computadores de gama baja. Adems, Windows 98 utiliza ms memoria que Windows 95 debido entre otros temas a su integracin con Microsoft Internet Explorer. Para terminar de complicar el tema, ambos Windows tienden a aumentar su tamao y su consumo de memoria segn vamos instalando programas, o sencillamente segn pasa el tiempo, sin instalar nada. Pese a esto, el hecho es que los computadores siguen trabajando cuando se les agota la memoria RAM, algo que sera imposible si no fuera por la denominada "memoria virtual", que no es sino espacio del disco duro que se utiliza como si fuera memoria RAM. Sin embargo, esta memoria virtual tiene varios inconvenientes; el principal es su velocidad, ya que es muchsimo ms lenta que la RAM. Mientras la velocidad de acceso a la RAM se mide en nanosegundos (ns, la 0,000000001 parte de un segundo), la de los discos duros se mide en milisegundos; es decir, que se tarda casi un milln de veces ms en acceder a un dato que encuentra en el disco duro que a uno de la RAM. Por ende, lo ideal es necesitar lo menos posible la memoria virtual, y para eso evidentemente hay que tener la mayor cantidad de memoria RAM posible. Actualizar la memoria RAM 1.- Identificar el tipo de memoria que utiliza su ordenador. La fuente ms apropiada de informacin a este respecto es el manual de la placa base, aunque en general:

MICROPROCESADOR MEMORIA TPICA 386

NOTAS

DRAM o FPM en mdulos SIMM de Memoria difcil de 30 contactos, de unos 100 u 80 ns encontrar, actualizacin poco interesante 486 lentos 486 rpidos Pentium lentos Pentium Pentium MMX AMD K6 FPM en mdulos SIMM de 30 contactos, de 80 70 ns FPM en mdulos SIMM de 72 contactos, de 70 60 ns, a veces junto a mdulos de 30 contactos FPM o EDO en mdulos SIMM de 72 contactos, de 70 60 ns EDO en mdulos SIMM de 72 contactos, de 60 50 ns SDRAM de 66 MHz en mdulos DIMM de 168 contactos, de menos de 20 ns Suelen admitir tambin PC100 o PC133; tambin en algunos K6-2 Tpico de DX-33 o velocidades inferiores Tpico de DX2-66 o superiores y Pentium 60 66 MHz

Celeron Pentium II hasta 350 MHz

An muy utilizada; Pentium II 350 MHz o SDRAM de 100 MHz (PC100) en mdulos DIMM de 168 contactos, de suelen admitir tambin ms menos de 10 ns PC133 Pentium III AMD K6-2 AMD K6-III AMD K7 Athlon Pentium III Coppermine (de 533 MHz o ms) AMD K7 Athlon AMD Duron SDRAM de 133 MHz (PC133) en La memoria ms mdulos DIMM de 168 contactos, de utilizada en la actualidad menos de 8 ns

Consejos para comprar Memoria Lo primero, su tamao: actualmente nadie en su sano juicio debera instalar menos de 64 MB, siendo mucho mejor 128 MB o incluso ms si se trata de CAD en 3D o diseo grfico. En cuanto al tipo: SDRAM o RDRAM (Rambus DRAM)? Sin ninguna duda, siempre SDRAM; la Rambus es carsima y su rendimiento es slo un poco mayor. Una vez decididos por la SDRAM, elijamos su velocidad: la memoria SDRAM ms exigente es la PC133 (SDRAM a 133 MHz), necesaria para montar los modernos ordenadores Pentium III con bus de 133 MHz y los Athlon en placa KX133. Pida de esta velocidad y pague lo que sea (generalmente slo un poco ms); aunque por ahora no la necesite (caso de los Celeron, K6-2, la mayora de Athlon...) le permitir actualizarse en el futuro. Desgraciadamente, las memorias no son todas compatibles entre ellas, especialmente los mdulos de ms de 128 MB; existen mdulos que van perfectamente en una placa y en otra

ni arrancan. Si puede, escoja memoria de marca: Kingston, Samsung, Micron, HP... aunque tampoco lo puede considerar una garanta; lo mejor, comprar en el mismo lugar placa y memoria, asegurndose de que es un sitio de confianza

Manejo de memoria
En esta entrada mostrare el manejo de memoria que podra tenerse en un arduino y como podemos ampliar las posibilidades de almacenamiento en el.

En los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos.

Tipos de memoria en Arduino: Flash, SRAM y EEPROM Existen tres tipos de memoria en los microcontroladores utilizados por las placas Arduino(ATmega168, ATmega328, ATmega1280, etc.): Memoria Flash, memoria SRAM y memoria EEPROM. Aqui les indicare las diferencias de cada una de ellas y el uso que Arduino pude darles.

Memoria Flash (espacio del programa) en Arduino La memoria Flash (espacio del programa) es donde Arduino almacena el sketch. Un sketch es el nombre que usa Arduino para un programa. Es la unidad de cdigo que se sube y ejecuta en la placa Arduino.

Esta memoria es no voltil, si Arduino deja de ser alimentado elctricamente los datos que haya en esta memoria permanecern. El tamao de la memoria Flash de Arduino puede variar dependiendo del microcontrolador, aunque no es muy grande. Por ejemplo, para el chip ATmega168 el tamao de la memoria Flash es de 16 kilobytes, de los cuales 2 kilobytes son utilizados por el bootloader.

Para el caso del microcontrolador ATmega328 (como el que incorpora Arduino UNO) el tamao de la memoria Flash es de 32KB, de los cuales el bootloader usa 0,5KB. Por lo que debemos desarrollar los programas de forma muy optimizada, usando los tipos de variables que menos memoria requieran, en la medida de lo posible.

Tambin debemos optimizar el cdigo fuente de la aplicacin para no repetir lneas de cdigo.

Memoria SRAM (Static Random Access Memory memoria esttica de acceso aleatorio) en Arduino La memoria SRAM (Static Random Access Memory memoria esttica de acceso aleatorio) es de tipo voltil, es el espacio donde los sketches (programas) almacenan y manipulan variables al ejecutarse. La informacin guardada en esta memoria ser eliminada cuando Arduino pierda la alimentacin.

Esta memoria es de uso exclusivo para el programa en ejecucin. La memoria SRAM de Arduino es muy pequea, por lo que debemos optimizar nuestros programas al mximo y no abusar de variables de tipo char muy grandes. Hay que tener en cuenta que cada carcter de una variable char utiliza un byte. En el microcontrolador ATmega 168 el tamao de la memoria SRAM es de 1024 bytes, para el caso de un chip ATmega328 (como el que incorpora Arduino UNO) el tamao es de 2KB (2048 bytes).

Si la SRAM se queda sin espacio, el programa de Arduino fallar de forma imprevista, aunque se compile y se suba a Arduino correctamente la aplicacin no se ejecutar o se ejecutara de manera extraa.

A continuacin muestro algunos consejos para optimizar los programas y evitar que consuman toda la memoria SRAM disponible:

Si el programa se comunica con una aplicacin ejecutndose en un ordenador, se puede intentar trasladar los datos o clculos al ordenador, reduciendo la carga en el Arduino.

Si el programa usa tablas de referencia u otros arreglos de gran tamao, es recomendable utilizar el tipo de datos ms pequeo que se pueda para almacenar estos datos; por ejemplo, un "int" utliza 2 bytes, mientras que un "byte" utiliza solo 1 byte (pero puede almacenar un rango menor de datos).

Si no se necesita modificar las cadenas o datos mientras el programa se ejecuta, se pueden almacenar en la memoria Flah (de programa) en vez de la SRAM; para esto, hay que utilizar el keyword PROGMEM.

Memoria EEPROM en Arduino

EEPROM es un espacio de memoria que puede ser utilizado por los programadores para almacenar informacin a largo plazo. Este tipo de memoria es no voltil, por lo que los datos guardados en ella permanecern aunque Arduino pierda la alimentacin.

Esta memoria puede ser usada para guardar valores si es necesario. El tamao de la EEPROM para un chip ATmega128 es de 512 bytes, para un chip ATmega328 es de 1KB (1024 bytes). Hay que tener en cuenta que el tamao de la memoria EEPROM interna de Arduino es "pequeo" pero Arduino admite aadir mdulos de memoria EEPROM externa de mayor tamao.

Cmo ampliar las posibilidades de almacenamiento de Arduino


Cmo se ha indicado, las diferentes memorias de los chips de Arduino (Flash, SRAM y EEPROM) son demasiado limitadas para determinadas funcionalidades. Por ejemplo, si conectamos una cmara de fotos o de vdeo a Arduino y queremos guardar capturas de fotos o vdeos no nos servirn estas memorias.

Para esto existen memorias externas que pueden ayudar a solucionar los problemas y tener un mejo manejo de memoria para que no ocurra ningn error.

Ampliar con memoria EEPROM externa

Una posibilidad para ampliar la capacidad de memoria de Arduino es usar memoria EEPROM externa, adquiriendo este tipo de memoria (que no es muy cara) podremos disponer de ms memoria EEPROM para nuestro programa. Pero este tipo de memorias EEPROM no tienen un gran tamao, por ello, no sern tiles para proyectos con grandes requerimientos de espacio. Por supuesto existen libreras para trabajar con estas tarjetas en Arduino.

Ampliar memoria con SD Card

Si vamos a desarrollar un proyecto hardware con Arduino que tenga grandes requerimientos de espacio (Megas, Gigas), por ejemplo si queremos trabajar con audio, vdeo, fotos, almacenamiento de datos, etc., la mejor opcin es utilizar algn tipo de medio de almacenamiento removible. La mayora de los microcontroladores tienen una capacidad de memoria interna extremadamente limitada. Para conseguir este almacenamiento extra utilizaremos las tarjetas flash (SD, microSD). Ests tarjetas permiten almacenar varios GBytes de datos en un espacio muy reducido.

Este es un mdulo SD Card para Arduino, acoplable directamente:

Aqu una SD Card para Arduino que tenemos que conectar manualmente, como se muestra en la imagen:

Flash 16k bytes (de los que 2k son utilizados por el bootloader) SRAM 1024 bytes EEPROM 512 bytes

Como escribir en la memoria EEPROM de Arduino

La comunicacin entre Arduino y la EEPROM se realiza mediante el bus I2C , que se trata de un bus de comunicaciones serie formado por dos lineas: una para los datos y otra para el reloj. La librera Wire permite manejar un bus I2C desde nuestro Arduino, y encontramos 4 funciones que usando la librera anterior implementan la lectura/escritura en la EEPROM.

El parmetro deviceaddress al que hacen referencia estas funciones en el caso de esta memoria se trata del 050. No debemos olvidarnos de inicializar la conexin antes de usar estas funciones

En cuanto a las conexiones de los pines: el pin 5 de la EEPROM (SDA) lo conectamos a la entrada analgica 4 de nuestro Arduino, el pin 6 (SCL) a la entrada analgica 5 (observar en la foto que los cables de color naranja se cruzan), el pin 8 a 5V y todos los dems a tierra.

Los pines analgicos 4 y 5 de Arduino son los que usa la librera Wire.

Arquitectura CISC

En la arquitectura computacional, CISC (complex instruction set computer) es un modelo de arquitectura de computadora. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposicin a la arquitectura RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayora de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones. Los CISC pertenecen a la primera corriente de construccin de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayora de las computadoras personales actuales.

Para realizar una sola instruccin un chip CISC requiere de cuatro a diez ciclos de reloj.

Entre las ventajas de CISC destacan las siguientes:


Reduce la dificultad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de creacin de sftware. Mejora la compactacin de cdigo. Facilita la depuracin de errores.

Ejemplo de microprocesadores basados en la tecnologa CISC:


Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840.

Ejemplo de microprocesadores basados en la tecnologa CISC:


MIPS, Millions Instruction Per Second. PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM.

Conclusin: Hoy en da, los programas cada vez ms grandes y complejos demandan mayor velocidad en el procesamiento de informacin, lo que implica la bsqueda de microprocesadores ms rpidos y eficientes.
http://antares.itmorelia.edu.mx/~mfraga/arqui/apuntes%20unidad%201.pdf

1.- SISTEMAS NUMERICOS Comencemos por los sistemas de numeracin que ms utilizaremos al programar.

El bsico va a ser el sistema hexadecimal, aunque debemos de explicar antes el binario, el sistema de numeracin que utiliza el ordenador. Los nmeros que conocemos estn escritos en base 10. Esto significa que tenemos, desde el 0 hasta el 9, diez smbolos para representar cada cifra. Es decir, cada cifra ir de 0 a 9, y al superar el valor "9", cambiar a 0 y sumar uno a su cifra de la izquierda: 9+1:10. El sistema binario utiliza tan slo dos smbolos, el "0" y el "1". Imaginemos que tenemos el nmero binario "0". Al sumarle una unidad, este nmero binario cambiar a "1". Sin embargo, si volvemos a aadirle otra unidad, este nmero en formato binario ser el "10" (aumenta la cifra a la izquierda, que era 0, y la anterior toma el valor mnimo). Sumemos ahora otra unidad: el aspecto del nmero ser "11" (tres en decimal). Y podramos seguir: Binario: 0 ; 1 ; 10 ; 11 ; 100 ; 101 ; 110; 111 ; 1000 ; 1001 ; 1010,... Decimal: 0 1 2 3 4 5 6 7 8 9 10 Esto nos permite establecer un sistema bastante sencillo de conversin del binario al decimal; He aqu los valores siendo n el valor de la cifra: Cifra menos significativa: n*2^0 = 1 si n=1 o 0 si n=0 Segunda cifra: n*2^1 = 2 si n=1 o 0 si n=0 Tercera cifra:

n*2^2 = 4 si n=1 o 0 si n=0 Cuarta cifra: n*2^3 = 8 si n=1 o 0 si n=0 Etc.,... Y as continuaramos, aumentando el nmero al que se eleva 2. Traduzcamos entonces el nmero binario '10110111' 2^7+ 0 +2^5+2^4+ 0 +2^2+2^1+2^0 = 128 + 0 + 32 + 16 + 4 + 2 + 1 = 183 10110111 De todos modos, esta transformacin est expuesta simplemente para que se comprenda con ms claridad cmo funcionan los nmeros binarios. Es mucho ms aconsejable el uso de una calculadora cientfica que permita realizar conversiones entre decimales, hexadecimales y binarios. Se hace su uso ya casi imprescindible al programar. La razn del uso de los nmeros binarios es sencilla. Es lo que entiende el ordenador, ya que interpreta diferencias de voltaje como activado ( 1 ) o desactivado ( 0 ), aunque no lo detallar. Cada byte de informacin est compuesto por ocho dgitos binarios, y a cada cifra se le llama bit. El nmero utilizado en el ejemplo, el 10110111, sera un byte, y cada una de sus ocho cifras, un bit. Y a partir de ahora, cuando escriba un nmero binario, lo har con la notacin usual, con una "b" al final del nmero (ej.: 10010101b) Ahora pasamos al hexadecimal, muy utilizado en Ensamblador. Se trata de un sistema de numeracin en base diecisis. Por tanto, hay diecisis

smbolos para cada cifra, y en vez de inventarse para ello nuevos smbolos, se decidi adoptar las primeras letras del abecedario. Por lo tanto, tendremos ahora: Hex Dec 1 --> 1 2 --> 2 3 --> 3 4 --> 4 5 --> 5 6 --> 6 7 --> 7 8 --> 8 9 --> 9 A --> 10 B --> 11 C --> 12 D --> 13 E --> 14 F --> 15 10 --> 16 11 --> 17 Etc.,... Como vemos, este sistema nos planteas bastantes problemas para la

conversin. Repitiendo lo dicho, una calculadora cientfica nos ser imprescindible. Por qu utilizar este sistema?. Volvamos al byte, y traduzcamos su valor ms alto, "11111111". Resulta ser 256. Ahora pasemos esta cifra al sistema hexadecimal, y nos resultar "FF". Obtenemos un nmero ms comprensible que el binario (difcil de recordar), y ante todo mucho ms compacto, en el que dos cifras nos representarn cada byte. Podremos adems traducir fcilmente el binario a hexadecimal con esta tabla; cada cuatro cifras binarias pueden traducirse al hexadecimal: Binario Hexadecimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D

1110 E 1111 F Por ejemplo, el nmero binario: 1111001110101110 En hexadecimal sera: 1111 0011 1010 1110 F3AE Para referirnos a un nmero hexadecimal sin especificarlo, usaremos la notacin que se suele usar al programar, con un 0 al principio, (necesario cuando hay letras), y una h al final. Por ejemplo, el nmero anterior sera 0F3AEh