Arquitectura de Computadoras
domingo, 7 de junio de 2015
RAM
Introducción
La memoria de acceso aleatorio (Random-Access Memory, RAM) se utiliza como memoria de trabajo de computadoras para el sistema operativo, los programas y la mayor parte del software.
En la RAM se cargan todas las instrucciones que ejecutan la unidad central de procesamiento (procesador) y otras unidades de cómputo.
Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder (acceso secuencial) a la información de la manera más rápida posible.
Durante el encendido de la computadora, la rutina POST verifica que los módulos de RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de sonidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma.
Módulos
Los módulos de RAM son tarjetas o placas de circuito impreso que tienen soldados chips de memoria DRAM, por una o ambas caras.
La implementación DRAM se basa en una topología de circuito eléctrico que permite alcanzar densidades altas de memoria por cantidad de transistores, logrando integrados de cientos o miles de megabits. Además de DRAM, los módulos poseen un integrado que permiten la identificación de los mismos ante la computadora por medio del protocolo de comunicación Serial Presence Detect (SPD).
La conexión con los demás componentes se realiza por medio de un área de pines en uno de los filos del circuito impreso, que permiten que el módulo al ser instalado en un zócalo o ranura apropiada de la placa base, tenga buen contacto eléctrico con los controladores de memoria y las fuentes de alimentación.
La necesidad de hacer intercambiable los módulos, y de utilizar integrados de distintos fabricantes, condujo al establecimiento de estándares de la industria como los Joint Electron Device Engineering Council (JEDEC).
1. Paquete DIP (Dual In-line Package, paquete de pines en-línea doble).
2. Paquete SIPP (Single In-line Pin Package, paquete de pines en-línea simple): fueron los primeros módulos comerciales de memoria, de formato propietario, es decir, no había un estándar entre distintas marcas.
3. Módulos RIMM (Rambus In-line Memory Module, módulo de memoria en-línea rambus): Fueron otros módulos propietarios bastante conocidos, ideados por la empresa RAMBUS.
4. Módulos SIMM (Single In-line Memory Module, módulo de memoria en-línea simple): formato usado en computadoras antiguas. Tenían un bus de datos de 16 o 32 bits.
5. Módulos DIMM (Dual In-line Memory Module, módulo de memoria en-línea dual): usado en computadoras de escritorio. Se caracterizan por tener un bus de datos de 64 bits.
6. Módulos SO-DIMM (Small Outline DIMM): usado en computadoras portátiles. Formato miniaturizado de DIMM.
7. Módulos FB-DIMM (Fully-Buffered Dual Inline Memory Module): usado en servidores.
Historia
Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético, desarrollada entre 1949 y 1952 y usada en muchos computadores hasta el desarrollo de circuitos integrados a finales de los años 60 y principios de los 70. Esa memoria requería que cada bit estuviera almacenado en un toroide de material ferromagnético de algunos milímetros de diámetro, lo que resultaba en dispositivos con una capacidad de memoria muy pequeña. Antes que eso, las computadoras usaban relés y líneas de varios tipos construidas para implementar las funciones de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio por parte de Intel con el integrado 3101 de 64 bits de memoria y para el siguiente año se presentó una memoria DRAM de 1024 bytes, referencia 1103 que se constituyó en un hito, ya que fue la primera en ser comercializada con éxito, lo que significó el principio del fin para las memorias de núcleo magnético.
ALU
Introducción
La unidad aritmética lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre dos números.
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el sonido de la alarma, etc.
Por mucho, los circuitos electrónicos más complejos son los que están construidos dentro de los chips de microprocesadores modernos. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y potente. De hecho, un microprocesador moderno (y los mainframes) puede tener múltiples núcleos, cada núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples ALU.
La ALU se compone básicamente de: Circuito Operacional, Registros de Entradas, Registro Acumulador y un Registro, conjunto de registros que hacen posible la realización de cada una de las operaciones.
La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma datos de los registros. Estos datos son procesados y los resultados de esta operación se almacenan en los registros de salida de la ALU. Otros mecanismos mueven datos entre estos registros y la memoria.2
Una unidad de control controla a la ALU, al ajustar los circuitos que le señala a la ALU qué operaciones realizar.
En la imagen se detalla una ALU de 2 bits con dos entradas (operandos) llamadas A y B: A [0] y B [0] corresponden al bit menos significativo y A [1] y B [1] corresponden al bit más significativo.
Cada bit de la ALU se procesa de manera idéntica, con la excepción del direccionamiento del bit del acarreo. El manejo de este bit es explicado más adelante.
Las entradas A y B van hacia las cuatro puertas de la izquierda, de arriba a abajo, XOR, AND, OR. Las tres primeras puertas realizan las operaciones XOR, AND, y OR sobre los datos A y B. La última puerta XOR es la puerta inicial de un sumador completo.
El paso final de las operaciones sobre cada bit es la multiplexación de los datos. La entrada OP de 3 bits, OP [0], OP [1] y OP [2] (desde la unidad de control) determina cuál de las funciones se van a realizar:
· OP = 000 → XOR
· OP = 001 → AND
· OP = 010 → OR
· OP = 011 → Adición
Claramente se ve que las otras cuatro entradas del multiplexor están libres para otras operaciones (sustracción, multiplicación, división, NOT A, NOT B, etc.). Aunque OP [2] actualmente no es usada en este montaje (a pesar de estar incluida y conectada), ésta sería usada en el momento de realizar otras operaciones además de las 4 operaciones listadas arriba.
Los datos de acarreo de entrada y acarreo de salida, llamados flags (banderas), son típicamente conectados a algún tipo de registro de estado.
HISTORIA
El matemático John von Neumann propuso el concepto de la ALU en 1945, cuando escribió un informe sobre las fundaciones para un nuevo computador llamado EDVAC(Electronic Discrete Variable Automatic Computer) (Computador Automático Variable Discreto Electrónico). Más adelante, en 1946, trabajó con sus colegas diseñando un computador para el Princeton Institute of Advanced Studies (IAS) (Instituto de Princeton de Estudios Avanzados). El IAS computer se convirtió en el prototipo para muchos computadores posteriores. En esta propuesta, von Neumann esbozó lo que él creyó sería necesario en su máquina, incluyendo una ALU.
Von Neumann explicó que una ALU es un requisito fundamental para una computadora porque necesita efectuar operaciones matemáticas básicas: adición, sustracción, multiplicación, y división.1 Por lo tanto, creyó que era "razonable que una computadora debería contener los órganos especializados para estas operaciones".
sábado, 21 de febrero de 2015
Interrupciones
Existen tres tipos principales de
interrupciones que producen una detención en la ejecución normal de un
programa. Se clasifican de la manera siguiente:
- Interrupciones requeridas por hardware
- Interrupciones requerida por software para interactuar con periférico
Es
iniciada por un periférico que demanda atención ya que ha ocurrido un evento
relativo a este periférico que demanda algún procedimiento de parte de la CPU.
En un PC las primeras 16 interrupciones son de este tipo por lo que los
primeros 64 bytes de la memoria RAM son direcciones que apuntan bloques de
instrucciones residentes en otras áreas de la memoria RAM.
INTERRUPCIONES REQUERIDA POR SOFTWARE PARA INTERACTUAR CON PERIFÉRICO
Una
característica importante de la operación de interrupciones es que ellas están
jerarquizadas para resolver conflictos entre las múltiples interrupciones. Este
mecanismo está basado en la priorización de interrupciones de modo que una
interrupción de mayor prioridad puede interrumpir una de menor prioridad pero
no al revés. De este modo el sistema de interrupciones funciona ordenadamente
lo que permite por ende un funcionamiento robusto del computador.
INTERRUPCIÓN EXTERNA
Las interrupciones externas
provienen de dispositivos de entrada y salida (E/S), de un dispositivo de
temporización, de un circuito que monitorea la fuente de almacenamiento o de
cualquier otra fuente externa.
Estas interrupciones se pueden
disparar desde el exterior del micro cambiando el nivel de tensión de uno de
sus pines, todas tienen asociadas una o varias patillas del micro controlador y
son las que usaremos para los botones.
Algunos ejemplos de lo que
produce interrupciones externas son dispositivos de E/S que solicitan
transferencia de datos, dispositivos de E/S que terminan transferencia de
datos, tiempo transcurrido de un evento o una falla de energía.
INTERRUPCIONES INTERNAS
Son aquellas provocadas dentro
del propio procesador por una situación anormal de funcionamiento de alguna de
sus partes. Las interrupciones internas surgen debido a la utilización ilegal o
errónea de una instrucción o datos. Las interrupciones internas también se
llaman trampas. Algunos ejemplos de las interrupciones provocadas por
condiciones de error internas son los sobreflujos de registro, intentar dividir
entre cero, un código de operación no válido, desbordamiento de pila, y
violación de la protección.
INTERRUPCIONES DE PROGRAMA
Son aquellas que son programables
y que podemos cambiar. Las interrupciones de software podemos llegar a
manejarlas y por ello el ensamblador nos proporciona una instrucción que nos
permita poner en funcionamiento una determinada rutina de interrupción; esta
instrucción es INT.
La interrupción de programa se
inicia al ejecutar una instrucción de solicitud especial que se comporta como
una interrupción más que como una solicitud de subrutina. El programador puede
utilizarla para iniciar un procedimiento de interrupción de programa se asocia
con una instrucción de llamada de supervisor.
TIPOS DE INTERRUPCIONES DE HARDWARE
Interrupción enmascarable: bajo
control del software, el procesador puede aceptar o ignorar (enmascarar) la
señal de interrupción. La primera señal es simplemente un aviso; la segunda es
una petición para que el PIC coloque en el bus de datos un Byte con el número
de interrupción, de forma que el procesador pueda localizar el servicio
solicitado.
Interrupción no enmascarable: la interrupción no puede ser deshabilitada por
software.
CICLO DE INTERRUPCIÓN
Suscribirse a:
Entradas (Atom)