viernes, 23 de marzo de 2012

1.2.2 Memoria.
Una memoria es un dispositivo que puede mantenerse en por lo menos dos estados estables por un
cierto periodo de tiempo. Cada uno de estos estados estables puede utilizarse para representar un bit. A
un dispositivo con la capacidad de almacenar por lo menos un bit se le conoce como celda básica de.
memoria
Un dispositivo de memoria completo se forma con varias celdas básicas y los circuitos asociados para
poder leer y escribir dichas celdas básicas, agrupadas como localidades de memoria que permitan
almacenar un grupo de N bits. El número de bits que puede almacenar cada localidad de memoria es
conocido como el ancho de palabra de la memoria. Coincide con el ancho del bus de datos. Uno de los
circuitos auxiliares que integran la memoria es el decodificador de direcciones. Su función es la de
activar a las celdas básicas que van a ser leídas o escritas a partir de la dirección presente en el bus de
direcciones. Tiene como entradas las n lineas del bus de direcciones y 2N lineas de habilitación de
localidad, cada una correspondiente a una combinación binaria distinta de los bits de direcciones. Por
lo tanto, el número de localidades de memoria disponibles en un dispositivo (T) se relaciona con el
número de lineas de dirección N por T= 2N .
1.2.2.1 Arquitecturas.
Desde hace unas decenas de años, los procesadores han estado aumentando su velocidad de operación a
un paso mucho más rápido que las memorias, lo que ha llevado a la situación en que los procesadores
actuales operan mucho más rápidamente que la memoria principal de las computadoras. Esto hace que
el procesador tenga que quedarse detenido por varios ciclos de reloj (estados de espera) cada vez que
tiene que leer o escribir a la memoria principal.
Para aliviar un poco esta situación conservando el precio de la computadora razonablemente bajo, se ha
organizado a la memoria como una jerarquía de diversos niveles con distintos tamaños y velocidades.
Hay que recordar que la memoria más rápida es mucho más cara que la más lenta y que por lo tanto, es
menor la cantidad de memoria de este tipo que se puede usar. Esta estructura jerárquica se ilustra en la
figura 1.2.2.1. De esta manera, la mayor parte de la capacidad de almacenamiento de la maquina se
encuentra en el disco duro, que tiene un costo por Gbyte muy bajo, pero que también es muy lento
debido a que hay que mover piezas mecánicas para leer o escribir en él. En seguida se encuentra la
memoria principal, que normalmente es del tipo RAM dinámica. Es en esta memoria donde se
almacenan los programas para que los pueda ejecutar el procesador, así como los datos con que
trabajan dichos programas. Con el objetivo de mejorar la velocidad del procesador al ejecutar ciclos y
al leer repetidamente datos de uso común, se coloca una pequeña cantidad de memoria RAM estática
entre el procesador y la memoria principal. Esta memoria es conocida como memoria cache y guarda
una copia de una pequeña región de la memoria principal, para que si se requiere volver a leer los datos
almacenados en esta región de memoria, no se tenga que esperar a que se lea la memoria principal, que
es mucho más lenta que la cache y que el procesador. Finalmente, en la cima de la jerarquía, se
encuentran los registros del procesador que aunque son muy pocos, son los que se pueden leer y
escribir más rápidamente.
Menor tamaño, Mayor Velocidad
Registros del
procesador
Memoria Cache
Memoria principal
Disco Duro
Menor velocidad, mayor tamaño
1.2.2.2 Tipos.
Los diversos tipos de memorias se clasifican como memorias volátiles y memorias no volátiles. Las
memorias volátiles pierden la información que almacenan al momento en que se les desconecta la
energía, mientras que las no volátiles conservan su contenido aunque no estén alimentadas.
Las memorias volátiles son conocidas desde las primeras computadoras como memorias de acceso
aleatorio (RAM), ya que en esa época las memorias volátiles eran de acceso secuencial. Dentro de las
memorias volátiles se encuentran las subclases RAM Dinámica y RAM Estática.
Las memorias no volátiles conservan sus datos a pesar de que en este conectadas el voltaje del
alimentación. De hecho pueden conservar sus datos por un periodo de tiempo relativamente largo,
usualmente entre cien y 200 años. Conforme evolucionado la tecnología, se han desarrollado diversas
familias de rumores no volátiles, entre las cuales se encuentran: la memoria de solo lectura (ROM -
Read only Memory), la memoria de solo lectura programable (PROM -Programable Read only
Memory), la memoria de solo lectura programable y borrable (EPROM - Erasable Read only Memory),
la memoria de solo lectura programable y borrable eléctricamente (EEPROM Electricaly Erasable Read
only Memory) y la memoria flash.
MEMORIA RAM
MEMORIA ROM
MEMORIA CACHE
1.2.2.3 Características.
En cuanto a las memorias volátiles, la memoria RAM dinámica es muy rápida pero muy cara. En
contraste, la memoria RAM estática es muy barata pero muy lenta.
En general, las memorias no volátiles son baratas y su precio depende sobre todo de su capacidad de
almacenamiento. Algunas de estas tecnologías son consideradas obsoletas y por lo tanto casi no son
utilizadas en actualidad.

1.2.2.4 Funcionamiento.
El tipo más común de memorias volátiles es la RAM dinámica, que utiliza la capacitancia parásita de
los transistores MOSFET con los que esta construida para almacenar un bit. Como solo se requiere de
un transistor por celda de memoria, esta memoria es muy económica, pero debido al tiempo que toma
cargar la gran capacitancia de los transistores con los que esta construida, es muy lenta.

El otro tipo de memoria RAM utilizado en la actualidad, es la RAM estática. Esta memoria se
construye con el mismo tipo de transistores con los que se construyen los procesadores, por lo que
pueden operar a una velocidad similar a la del procesador. Sin embargo, como se requieren alrededor
de 8 transistores por bit, el costo de esta memoria es mucho más alto que el de la RAM dinámica.
Selección de renglon I/O de columna

En cuanto a las memorias no volátiles, En cuanto a las memorias no volátiles, históricamente han
existido varios tipos. Los primeros sólo podían ser leídos, por lo que fueron conocidos como memorias
de solo lectura (ROM - Read Only Memory). A pesar de que los tipos más modernos permiten que su
contenido se ha modificado por el usuario, aún son conocidos como memorias de solo lectura.
En las memorias de solo lectura originales (ROM), el almacenar en uno o un cero, depende de si el
fabricante colocó o no un diodo físicamente en el circuito de la memoria. De esta manera, el contenido
de la memoria queda establecido por el fabricante desde el momento de su construcción y no es posible
que el usuario no modifique. Sin embargo, este tipo de memoria es aún muy usada debido a que es muy
económica y por lo tanto, ideal para la producción en masa de muchos artefactos de consumo masivo.

Con el objetivo de hacer a la memoria de solo lectura un dispositivo más versátil, algunos fabricantes
de memorias sustituyeron a los diodos por fusibles semiconductores que el usuario podía quemar
usando un programador especial. Esto permitió a los usuarios tener dispositivos de memoria de solo
lectura cuyo contenido ellos mismos podían programar, por lo que estos dispositivos fueron conocidos
como memorias de solo lectura programables (PROM - Programable Read Only Memory). El único
inconveniente que presentaban estas memorias era que si se necesitaba hacer un pequeño cambio, debía
descartarse a la memoria ya programada y utilizar un dispositivo nuevo en blanco.
Este problema pudo eliminarse al sustituir los fusibles semiconductores por transistores con una
compuerta flotante que les permitía almacenar una carga eléctrica por un tiempo muy grande. Esta
compuerta flotante permite almacenar una carga eléctrica que reduce el voltaje que debe ser aplicado a
la compuerta principal para hacer que el rector conduzca. De esta manera, aplicando un voltaje de
prueba a la compuerta principal y observando si el transistor conduce, se puede saber si un transistor no
tiene carga en su compuerta flotante (está borrado o almacena un uno) o sí (estaba programado o
almacena un cero).
La primera generación de dispositivos que utilizó esta tecnología, conocidos como memorias de solo
lectura programables y borrables (EPROM), podían grabarse eléctricamente aplicando un voltaje más
alto de lo normal a la compuerta principal. Sin embargo, para eliminar la carga tendría que aplicarse
una luz ultravioleta intensa al dispositivo, lo cual eliminaba la carga almacenada en la compuerta
flotante. Para realizar este proceso de borrado era necesario retirar al dispositivo del circuito de
aplicación y colocarlo en el borrador de luz ultravioleta por aproximadamente media hora .
En la segunda generación de dispositivos de memoria que utilizaban transistores con compuertas
flotante se logró eliminar la carga eléctricamente, con lo que dichos dispositivos se volvieron más
versátiles. Los dispositivos de esta generación se conocieron como memorias de solo lectura
programables y borrables eléctricamente (EEPROM). Como cada byte de la memoria podía ser borrado
de forma independiente, requerían de muchos circuitos auxiliares para permitir este tipo de borrado, lo
que aumentaba su costo.
Para la tercera generación, se buscó reducir el costo de los dispositivos reduciendo la cantidades
circuitos auxiliares necesarios para el borrado. Esto se logró permitiendo únicamente el borrado de
bloques de memoria de tamaño relativamente grande. También se buscó almacenar más de un bit por
celda de memoria controlando la cantidad de carga almacenada en cada celda, de manera que con ocho
voltajes discretos se pueden representar las ocho combinaciones correspondientes a tres bits. Los
dispositivos de esta generación son conocidos como memorias FLASH.

domingo, 18 de marzo de 2012

Tipos de procesadores

El procesador es un circuito electrónico que actúa como unidad central de proceso de un ordenador, en inglés CPU “Central Processin Unit” . Es el encargado de proporcionar las operaciones de cálculo, como un cerebro que organiza, da órdenes y envía información al resto del cuerpo. Los microprocesadores se utilizan, sobretodo, en ordenadores pero también en otros sistemas informáticos avanzados, como impresoras, automóviles o aviones.
En sus inicios el tamaño del procesador era el de un armario y después fue perdiendo en dimensiones. De armario pasó a una caja grande y más tarde a 15 por 15 pulgadas (menos de medio metro cuadrado). Eran procesadores para grandes máquinas nada que ver con los ordenadores de sobremesa o portátiles a los que estamos tan acostumbrados.
Para fabricar los ordenadores personales hacía falta un procesador mucho más pequeño, el microprocesador: es un circuito sumamente integrado, es decir un microchip. El microchip es un circuito electrónico complejo cuyos componentes son diminutos y forman una sola pieza plana muy fina y semiconductora.
El funcionamiento del microprocesador es realmente complejo pero conocer mínimamente sus componentes y funciones ayudará a entender mejor la relevancia de los progresos que van haciendo a lo largo de los años.
Hay que entender, por ejemplo, que el tamaño del que hablamos es sumamente pequeño, el microprocesador podría equipararse a un sello postal y los transistores de sus circuitos no alcanzan ni la décima parte de un cabello humano. Con estas dimensiones una simple mota de polvo puede colapsar el sistema.
Hay que entender también que al trabajar a esta escala supone que un pequeño avance en reducción del tamaño es un cambio enorme en la velocidad de la máquina. Si el recorrido que deben hacer los bits (unidad mínima de información, 1 o 0.
Se envía a través del bus de datos en paquetes) se reduce, aminora también el tiempo que se tarda en recibir la información. Si multiplicamos esa diferencia por los millones de “viajes” que se hacen en un segundo el resultado es que el usuario espera mucho menos tiempo a que se ejecute la tarea ordenada.
El microprocesador está compuesto por:
  • Resistencias
  • Diodos
  • Condensadores
  • Conexiones
  • Millones de transistores
Secciones del microprocesador:
  • ALU: unidad aritmético-lógica que hace cálculos con números y toma decisiones lógicas.
  • Registros: zonas de memoria especiales para almacenar información temporalmente.
  • Unidad de control: descodifica los programas.
  • Bus: transportan información digital (en bits) a través del chip y de la computadora.
  • Memoria local: utilizada para los cómputos efectuados en el mismo chip.
  • Memoria cache: memoria especializada que sirve para acelerar el acceso a los dispositivos externos de almacenamiento de datos.
El ordenador posee un cristal oscilante que proporciona una señal de sincronización. Esta señal es la que coordina todas las actividades del microprocesador y es más conocida como señal de reloj. La velocidad de reloj se mide en MHz, a lo largo de la historia de los microprocesadores iremos viendo como la velocidad de esta señal aumenta y nos permite ejecutar millones de instrucciones por segundo.

El primer microprocesador

Según muchos Intel Inside creó el primer microprocesador de la historia (para otros el mérito es de Texas Instruments) pero además se ha mantenido en primera fila desde el inicio hasta nuestros días. Su poder en el mercado es tal que se le ha acusado de monopolio y no hay señal de que sus cuotas puedan reducirse sustancialmente.
Si hablamos de PC prácticamente siempre nos referimos a su procesador por el modelo de Intel. Incluso en los 90, cuando aparecía la familia Pentium en microprocesadores, era frecuente referirse a Pentium como modelo de ordenador.
Por esta razón la historia de Intel y la de los microprocesadores van tan de la mano que es casi imposible separarlas. Empezaremos por el principio, cuando Intel Inside sacaba al mercado su primer y revolucionario modelo de microprocesador.
Era el año 1971 y una empresa japonesa, Busicom, tenía un proyecto para una nueva calculadora. Ted Hoff, ingeniero de Intel, diseñó un chip (circuito integrado) con una memoria capaz de hacer varias acciones. Con 4 chips como este y dos chips más de memoria se diseñó el primer microprocesador de Intel, el 4004. Antes de crear el microprocesador hacía falta un chip para cada parte de la calculadora, con el 4004 todas las funciones estaban integradas en un solo circuito.
Este microprocesador contenía 2.300 transistores y transmitía con un bus de 4 bits. El 4004 podía realizar 60.000 operaciones por segundo, una miseria para nuestros días, todo un logro en los años 70.

La evolución

El siguiente paso de Intel fue en 1974. Creó el 8080, un microprocesador con 4.500 transistores, un bus de 8 bits y capaz de ejecutar 200.000 instrucciones por segundo. El gran éxito de la empresa llegó con el 8088 y el 8086, microprocesadores que IBM utilizaría para su primer ordenador personal.
Debido a la buena respuesta de los consumidores por este ordenador se convirtió en un estándar y, en consecuencia, también sería un estándar el microprocesador de Intel. Muchas empresas lo utilizarían para sus nuevos ordenadores e incluso fabricantes de hardware clonarían a Intel.
Los siguientes productos de Intel Inside fueron siempre compatibles con sus predecesores así como los microprocesadores de otros fabricantes. Empresas como IBM, AMD o Apple se han dedicado también a fabricar microprocesadores pero estos son compatibles a nivel ensamblador con el juego de instrucciones Intel, de manera que no todos los PCs tienen que ser obligatoriamente “Intel Inside”.
Durante los primeros años de la historia de los microprocesadores las aportaciones de otras empresas eran pocas, en la mayoría de los casos lo que se fabricaba eran clones de los productos de Intel. AMD, por ejemplo, entró fuerte en el mercado cuando la contrató IBM como segundo fabricante de sus microprocesadores.
Según la política interna del gigante azul debía tener dos fabricantes y no solo Intel. Las tres empresas trabajaron en conjunto hasta que Intel decide rescindir el contrato e ir por su cuenta, a partir de ese momento ya no comparte información ni códigos con AMD que la demanda por incumplimiento de contrato.
A pesar de ganar la batalla contra Intel, AMD empieza a crear sus propios modelos ya que se da cuenta de que creando clones de Intel siempre estará por detrás de la gran empresa. A continuación una tabla resumen de los principales microprocesadores de Intel permite observar el gran crecimiento de esta industria.
Microprocesadores

Aunque no se observa en la tabla es importante resaltar que hasta el momento Intel ha cumplido siempre con la Ley de Moore. Gordon Moore era miembro cofundador de Intel y en 1965 formuló la ley empírica conocida como Ley de Moore. Según la ley los microprocesadores duplicarán su número de transistores.

viernes, 9 de marzo de 2012

Organización y arquitectura de computación

UNIDAD I MODELO DE ARQUITECTURAS DE CÓMPUTO
1.1 Modelos de arquitecturas de cómputo.
1.1.1 Arquitecturas Clásicas.
Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Aun son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las arquitecturas modernas
Arquitectura Mauchly-Eckert (Von Newman)
Esta arquitectura fue utilizada en la computadora ENIAC. Consiste en una unidad central de proceso que se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos de instrucción del programa, como los datos que serán procesados por este.
Esta arquitectura es la más empleada en la actualidad ya, que es muy versátil. Ejemplo de esta versatilidad es el funcionamiento de los compiladores, los cuales son programas que toman como entrada un archivo de texto conteniendo código fuente y generan como datos de salida, el código maquina que corresponde a dicho código fuente (Son programas que crean o modifican otros programas). Estos datos de salida pueden ejecutarse como un programa posteriormente ya que se usa la misma memoria para datos y para el código del programa.

Arquitectura Harvard
Esta arquitectura surgió en la universidad del mismo nombre, poco después de que la arquitectura Von Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman, el programa se almacena como un código numérico en la memoria, pero no en el mismo espacio de memoria ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las instrucciones en doce bits en la memoria de programa, mientras los datos de almacenan en 8 bits en una memoria aparte.
1.1.2 Arquitecturas Segmentadas.
Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando
paralelamente varias etapas del ciclo de instrucción al mismo tiempo. El procesador se divide en varias
Procesador Memoria de datos
Entrada y salida
Bus de
datos
Memoria de
programa
Bus de
programa
Registros
ALU
Unidad de
Control
unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Para comprender mejor esto, supongamos que un procesador simple tiene un ciclo de instrucción sencillo consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera secuencial para cada una de la instrucciones, como lo muestra la siguiente figura.
1.1.3Arquitecturas de multiprocesamiento.
Cuando se desea incrementar el desempeño más aya de lo que permite la técnica de segmentación del cauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesador para la ejecución del programa de aplicación.
Las CPU de multiprocesamiento se clasifican de la siguiente manera:
Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico a una serie de datos matriciales, en especial en la simulación de sistemas físicos complejos, tales como simuladores para predecir el clima, explosiones atómicas, reacciones químicas complejas, etc., donde los datos son representados como grandes números de datos en forma matricial sobr los que se deben se aplicar el mismo algoritmo numérico.

1.2 Análisis de los componentes.
1.2.1 CPU
1.2.1.1 Arquitecturas.

Ademas de las arquitecturas clásicas mencionadas anteriormente, en la actualidad han aparecido arquitecturas híbridas entre la Von Newman y la Harvard, buscando conservar la flexibilidad, pero mejorando el rendimiento.
El cambio más importante de los últimos años en diseño de las computadoras de los últimos años se dio durante los años 1980, con la aparición de la corriente de diseño conocida como computadoras de conjunto reducido de instrucciones (RISC, por sus siglas en ingles). Esta escuela pretende aplicar un
enfoque totalmente distinto al tradicional hasta entonces, que paso a conocerse como computadoras de conjunto complejo de instrucciones (CISC) para diferenciarla de la nueva tendencia.

1.2.1.2 Tipos.
Los CPUs modernos pueden clasificarse de acuerdo a varias características, tales como: el tamaño del ALU o del Bus de conexión al exterior (8, 16, 32, 64 bits),si tienen cauce segmentado o no segmentado, si con tipo CISC o RISC, Von Newan o Harvard y si solo tienen instrucciones enteras o implementan también instrucciones de punto flotante

1.2.1.3 Características.
Las características más importantes a considerar al escoger un CPU para usarlo en una aplicación, son:
mental del CPU que el programador utiliza al programar en ensamblador.
entrada y salida.
 
Buses de interconexión, usados para que el CPU lea y escriba a la memoria y a los dispositivos de
Ciclo de instrucción (el conjunto de pasos que realiza el CPU para procesar cada instrucción)
Modos de direccionamiento que pueden usarse para obtener los operandos de las instrucciones.
Conjunto de instrucciones que puede ejecutar el CPU
Modelo del programador (Conjunto de registros que el programador puede utilizar), forman el modelo
MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters
MISO – (Multiple Instruction, Single Operand ) No implementado
SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales
SISO – (Single Instruction, Single Operand ) computadoras independientes