miércoles, 7 de octubre de 2009

MEMORIAS SEMICONDUCTORAS

ORGANIZACION: Elemento basico de una memoria semiconductor es la celda de memoria y comparten ciertas propiedades.

-Presentan 2 estados stables con lo que representa 1 o 0.
-Puede escribir en ella para fijar su estado.
-Se pueden leer para detectar su estado.

Los tipos de memoria pueden ser de acceso aleatorio (RAM) o solo lectura (ROM). La RAM es una memoria volatil y debe estar siempre alimentada. Hay 2 tipos de RAM que son:

-DRAM (RAM Dinamica): La tecnologia RAM dinamica esta hecha con celdas que almacenan los datos como cargas electricas en condensadores. Como los condensadores tienden a descargarselas RAM dinamicas requieren refrescos periodicos para mantener memorizados sus datos.
-SRAM (RAM Estatica): La RAM estatica es un dispositivo digital. Una RAM estatica retendra sus datos en cuanto se mantenga alimentada.

ramonrb_06@hotmail.com

martes, 6 de octubre de 2009

MEMORIA CACHE

El Caché es una tecnología basada en el subsistema de memoria de la computadora. Su objetivo principal es acelerar la computadora a un bajo costo.
El Caché facilita a la computadora ejecutar tareas más fácilmente.

Para entender lo básico del Caché, hagámoslo con un ejemplo muy sencillo, donde interviene un bibliotecario.

Imaginemos que el bibliotecario está detrás del mostrador. Su función es proporcionar los libros que se le piden. Para hacer más sencilla la explicación digamos que un usuario no puede tomar los libros por si solo: se le deben pedir al bibliotecario, mismo que buscará en todos los estantes relacionados con lo que queremos. Supongamos ahora que el bibliotecario no posee un caché.

Llega el primer usuario y pide un libro de Historia Universal. El bibliotecario va hacia los estantes, toma el libro, regresa al mostrador y le da el libro al usuario. Cuando el usuario lo devuelve, el bibliotecario lo deposita en el estante. Regresa al mostrador y atiende al siguiente usuario. Digamos que el próximo lector pide el mismo libro de Historia Universal. El bibliotecario debe repetir el proceso. ¿Existirá alguna manera en la cual el bibliotecario no invierta tanto tiempo y pueda proporcionar los libros más populares rápidamente?

En efecto, hay una forma. Debemos ponerle un caché al bibliotecario. Por ejemplo, que tuviese una mochila en la espalda en donde pudiese guardar 10 libros, los más populares.

Con este nuevo concepto, al iniciar el día el bibliotecario tiene la mochila vacía. El primer cliente llega y pide el libro de Historia Universal. Todo sigue igual: el bibliotecario va a los estantes, toma el libro y se lo da al lector. Ahora el lector lo devuelve. Pero la historia cambia. En lugar de que el bibliotecario lo ponga en un estante, lo coloca en su mochila y espera al siguiente lector (claro, si tiene espacio disponible en la mochila). Otro lector llega y pide el mismo libro. Ahora el bibliotecario lo busca en su mochila y lo tiene a la mano, dándoselo de inmediato al usuario.

¿Y qué pasa si el siguiente usuario pide un libro que no está en el caché (la mochila)? En este caso el bibliotecario sería menos eficiente con un caché que si él, ya que le toma tiempo verificar que no trae el libro en la mochila. Sin embargo, uno de los retos en el diseño de chachés es que no sean tan grandes de forma que no impacten el funcionamiento del equipo. SI el bibliotecario tiene un caché de 10 libros será muy rápida la localización, pero si el caché fuera de 200 libros, eso equivale a buscar en una pequeña biblioteca.

Con el ejemplo anterior se pueden detectar varios detalles de la memoria Caché.

1.- La tecnología Caché es usar un tipo de memoria más rápida pero más pequeña, para acelerar el acceso a una mayor memoria que es más lenta.

2.- Cuando se usa un caché se debe verificar si lo que se pide está en el caché. Si la búsqueda es positiva, entonces se aceleran muchos procesos de la computadora. Si la respuesta es negativa, entonces se debe buscar en todo el espacio disponible.

3.- Todo Caché es mucho menor en tamaño que la memoria a la cual acelera.

4.- Puede haber múltiples capas de caché. En el ejemplo usado la mochila del bibliotecario es caché de primer nivel. Un segundo nivel sería un estante con los 100 textos más pedidos.

5.- Existen cachés para memoria RAM, discos duros y otros dispositivos de almacenamiento, como las cintas.

6.- La consulta de información en Internet, por ejemplo, es almacenada en un caché, que consiste en copias de las páginas WWW que se han visitado. Si el caché es muy grande se tiene la ventaja de no bajar toda la información de una página visitada continuamente, porque mucho de su contenido reside aún en la computadora local. Sin embargo, tiene un efecto contrario, y es que si el caché es tan grande y se visita una página nueva, el sistema puede tardar mucho en buscarla en su caché, para de todas formas tener que bajarla del servidor remoto.

En conclusión, una buena y eficiente memoria caché es sinónimo de equilibrio.

ramonrb_06@hotmail.com

DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

Tiene 12 modos de direccionamiento básicos. Estos pueden clasificarse en 5 grupos:
1. Direccionamientos accesando dato inmediato y registro de datos (modos inmediato y de registro).
2. Direccionamiento accesando datos en memoria (modo memoria)
3. Direccionamiento accesando puertos E/S. (modo E/S)
4. Direccionamiento relativo
5. Direccionamiento implícito.

1. DIRECCIONAMIENTO ACCESANDO DATO Y REGISTRO INMEDIATO
1.1 Direccionamiento de registro.

Especifica el operando fuente y el operando destino. Los registros deben ser del mismo tamaño. ej. MOV DX, CX
MOV CL, DL.

1.2 Direccionamiento inmediato.

Un dato de 8 o 16 bits se especifica como parte de la instrucción. p.ej. MOV CL, 03H. Aquí el operando fuente está en modo inmediato y el destino en modo registro.

2. DIRECCIONAMIENTO ACCESANDO DATOS EN MEMORIA
2.1 Direccionamiento directo.

La dirección efectiva (EA) de 16 bits se toma directamente del campo de desplazamiento de la instrucción. El desplazamiento se coloca en la localidad siguiente al código de operación. Esta EA o desplazamiento es la distancia de la localidad de memoria al valor actual en el segmento de datos (DS) en el cual el dato está colocado. Ej. MOV CX, START. START puede definirse como una localidad de memoria usando las pseudoinstrucciones DB o DW.

2.2 Direccionamiento de registro indirecto.

La dirección efectiva EA está especificada en un registro apuntador o un registro índice. El apuntador puede ser el registro base BX o el apuntador base BP; el registro índice puede ser el Indice Fuente (SI) o el Indice Destino (DI).
Ej. MOV (DI),BX.

2.3 Direccionamiento base

EA se obtiene sumando un desplazamiento (8 bits con signo o 16 bits sin signo) a los contenidos de BX o BP. Los segmentos usados son DS y SS. Cuando la memoria es accesada, la dirección física de 20 bits es calculada de BX y DS, por otra parte, cuando la pila es Accesada, la dirección es calculada de BP y SS.
Ej. MOV AL, START (BX). el operando fuente está en modo base, y la EA se obtiene sumando los valores de START y BX.

2.4 Direccionamiento indexado.

EA se calcula sumando un desplazamiento (8 o 16 bits) a los contenidos de SI o DI. Ej. MOV BH,START (SI).

2.5 Direccionamento base indexado.

EA se calcula sumando un registro base (BX o BP), un registro índice (DI o SI), y un desplazamiento (8 o 16 bits).
Ej. MOV ALPHA (SI)(BX),CL.
Este direccionamiento proporciona una forma conveniente para direccionar un arreglo localizado en la pila.

2.6 Direccionamiento (cadena?)

Este modo usa registros índice. La cadena de instrucciones automáticamente asume que SI apunta al primer byte o palabra del operando destino. Los contenidos de SI y DI son incrementados automáticamente (poniendo a 0 DF mediante la instrucción CLD) o decrementados (poniendo a 1 DF mediante la instrucción STD) para apuntar al siguiente byte o palabra. El segmento del operando fuente es DS y puede ser encimado.
El segmento del operando destino debe ser ES y no puede ser encimado. Ej. MOVS BYTE.

3. DIRECCIONAMIENTO ACCESANDO PUERTOS (E/S)

Hay dos tipos de direccionamiento usando puertos: directo e indirecto.
En el modo directo, el número de puerto es el operando inmediato de 8 bits, lo cual permite accesar puertos numerados del 0 al 255. Ej. OUT 05H,AL.
En el modo indirecto, el número de puerto se toma de DX, permitiendo así 64K puertos de 8 bits o 32K puertos de 16 bits.
Las transferencias E/S de 8 y 16 bits deben hacerse vía AX y AL, respectivamente.

4. DIRECCIONAMIENTO RELATIVO.

En este modo el operando se especifica como un desplazamiento de 8 bits con signo, relativo al PC. Ej. JNC START. Si C=0, entonces el PC se carga con PC+el valor de START.

5. DIRECCIONAMIENTO IMPLICITO.

DISPOSITIVOS DE ENTRADA/SALIDA

En computación, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), es la colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta. El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red.
Es importante notar que la designación de un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada.
En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.
Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica.

Dispositivos de entrada y salida

• Entrada:

o Teclado
o Ratón
o Joystick
o Lápiz óptico
o Micrófono
o Webcam
o Escáner
o Escáner de código de barras
o Pantalla táctil

• Salida:

o Monitor
o Altavoz
o Auriculares
o Impresora
o Plotter
o Proyector

• Entrada/salida:

o Unidades de almacenamiento
o CD
o DVD
o Módem
o Fax
o USB

BUSES

BUSES
En Arquitectura de computadores , el bus es un sistema digital que transfiere datos entre los componentes de un computador o entre computadores. Están formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados.
En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes de computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La tendencia en los últimos años es el uso de buses seriales como el USB, Firewire para comunicaciones con periféricos y el reemplazo de buses paralelos para conectar toda clase de dispositivos, incluyendo el microprocesador con el chipset en la propia placa base. Son conexiones con lógica compleja que requieren en algunos casos gran poder de computo en los propios dispositivos, pero que poseen grandes ventajas frente al bus paralelo que es menos inteligente.
Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.

Funcionamiento
La función del Bus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos ordenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras.
La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de direcciones o señales de control.
Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.
Todos los buses de computador tiene funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periferico acceda a una CPU o a la memoria usando el minimo de recursos.

Primera Generación
Los primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro para los demás dispositivos. La CPU tenia que acceder a dos sistemas con instrucciones para cada uno, protocolos y sincronizaciones diferentes.
La empresa DEC notó que el uso de dos buses no era necesario si se combinaban las direcciones de memoria con los de los periféricos en un solo espacio de memoria (mapeo), de manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos fabricados en masa, como eran los primeros minicomputadores.
Los primeros microcomputadores se basaban en la conexión de varias tarjetas de circuito impreso a un bus Backplane pasivo que servía de eje al sistema. En ese bus se conectaba la tarjeta de CPU que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a través del bus principal.
Entre las implementaciones mas conocidas, están los buses Bus S-100 y el Bus ISA usados en varios microcomputadores de los 70's y 80's. En ambos, el bus era simplemente una extensión del bus del procesador de manera que funcionaba a la misma frecuencia. Por ejemplo en los sistemas con procesador Intel 80286 el bus ISA tenia 6 u 8 Mhz de frecuencia dependiendo del procesador.1
Segunda generación
El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios problemas para la ampliación y modernización de cualquier sistema con esa arquitectura. Ademas que la CPU utilizaba una parte considerable de su potencia en controlar el bus. Desde que los procesadores empezaron a funcionar con frecuencias mas altas, se hizo necesario jerararquizar los buses de acuerdo a su frecuencia: se creo el concepto de bus de sistema (conexión entre el procesador y la RAM) y de buses de expansión, haciendo necesario el uso de un Chipset para conectar todo el sistema.
El bus ISA utilizado como backplane en el PC IBM original paso de ser un bus de sistema a uno de expasión, dejando su arbitraje a un integrado del chipset e implementando un bus a una frecuencia más alta para conectar la memoria con el procesador.
En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y presentaba una interfaz estandar al resto del sistema, permitiendo su inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo algunos de Apple y se caracterizaba por tener un ancho de 32 bits y algunas capacidades Plug and play (autoconfiguración), que lo hacían muy versatil y adelantado a su tiempo. Entre otros ejemplos de estos buses autonomos, estan el AGP y el bus PCI.es algo que sirve para trasladar información
Tercera generación
Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a diferencia de los buses arriba nombrados en los que se comparten señales de reloj, y otras partes del bus. Esto se logra reduciendo fuertemente el numero de conexiones que presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones. Entre los ejemplos mas notables, estan los buses PCI-Express, el Infiniband y el HyperTransport.
Tipos de Bus
Existen dos grandes tipos clasificados por el método de envió de la información: bus paralelo o serial. Hay diferencias en el desempeño y hasta hace unos años se consideraba que el uso apropiado dependía de la longitud física de la conexión: para cortas distancias el bus paralelo,para largas el serial.
Bus paralelo
Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias lineas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En los computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses de discos duros, tarjetas de expansión y de vídeo, hasta las impresoras.
El Front Side Bus de los procesadores Intel es un bus de este tipo y como cualquier bus presenta unas funciones en lineas dedicadas:
• LasLineas de Dirección son las encargadas de indicar la posición de memoria o el dispositivo con el que se desea establecer comunicación.
• Las Lineas de Control son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más importantes están las lineas de interrupción, DMA y los indicadores de estado.
• Las Lineas de Datos trasmiten los bits, de manera que por lo general un bus tiene un ancho que es potencia de 2.
Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil en sistemas con poco poder de computo. En los primeros microcomputadores, el bus era simplemente la extensión del bus del procesador y los demás integrados "escuchan" las linea de direcciones, en espera de recibir instrucciones. En el PC IBM original, el diseño del bus fue determinante a la hora de elegir un procesador con I/O de 8 bits (Intel 8088), sobre uno de 16 (el 8086), porque era posible usar hardware diseñado para otros procesadores, abaratando el producto.
Bus serie
En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de software. Está formado por pocos conductores y su ancho de banda depende de la frecuencia. Es usado desde hace menos de 10 años en buses para discos duros, tarjetas de expansión y para el bus del procesador.