Transcript
Page 1: Antología Arquitectura de Computadoras

1.1 Modelos de arquitecturas de cómputo.

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)

La principal desventaja de esta arquitectura, es que el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria, obligando a que todos los accesos a esta sean secuenciales. Esto limita el grado de paralelismo (acciones que se pueden realizar al mismo tiempo) y por lo tanto, el desempeño de la computadora.

Este efecto se conoce como el cuello de botella de Von Newman

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 unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones

Arquitecturas 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.

Page 2: Antología Arquitectura de Computadoras

Las CPU de multiprocesamiento:

SISO – (Single Instruction, Single Operand ) computadoras independientes

SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales

MISO – (Multiple Instruction, Single Operand ) No implementado

MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters

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 sobre los que se deben se aplicar el mismo algoritmo numérico.

En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoria principal y periféricos de I/O, Normalmente conectados por un bus común. Se conocen como simétricos, ya que ningún procesador toma el papel de maestro y los demás de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema operativo.

Page 3: Antología Arquitectura de Computadoras

1.2.1 CPU

La unidad central de procesamiento, CPU (por sus siglas del inglés Central Processing Unit), o, simplemente, el procesador, es el componente en una computadora digital que interpreta las instrucciones y procesa los datos contenidos en los programas de computadora. Las CPU proporcionan la característica fundamental de la computadora digital, la programabilidad, y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores.

La unidad de lógica/aritmética (ALU), que realiza operaciones aritméticas y lógicas.

La unidad de control (CU), que extrae instrucciones de la memoria, las descifra y ejecuta, llamando a la ALU cuando es necesario.

1.2.1.1 Arquitecturas

En ingeniería de computación, la microarquitectura (a veces abreviada como µarch o uarch), también llamada como organización de la computadora, es la manera que una arquitectura del conjunto de instrucciones (ISA) es implementada por el procesador. Un ISA dado puede ser implementado con diferentes microarquitecturas. Las implementaciones pudieran variar debido a diferentes objetivos de un diseño dado o debido a los cambios en la tecnología. La arquitectura de computadora es la combinación del diseño determinado de la micro arquitectura y del conjunto de instrucciones.

Una microarquitectura describe, entre otros:

El nombre de los segmentos y su tamaño, el nombre de las memorias caché y su asociabilidad respectiva, la existencia de un renombre de registros, de una unidad de ejecución fuera de orden, de una unidad de predictor de saltos.

La microarquitectura y la arquitectura de conjunto de instrucciones forman la arquitectura de una computadora.

Page 4: Antología Arquitectura de Computadoras

Todas las CPU, así como las implementaciones de microprocesadores en un simple chip o multichips en general, ejecutan los programas realizando los siguientes pasos:

1. Se lee una instrucción

2. Se decodifica la instrucción

3. Se encuentra cualquier dato asociado que sea necesario para procesar la instrucción

4. Se procesa la instrucción

5. Se escriben los resultados

Esta serie de pasos, simple en apariencia, se complican debido a la jerarquía de memoria, en la que se incluye la memoria caché, la memoria principal y el almacenamiento no volátil como pueden ser los discos duros, (donde se almacenan las instrucciones y los datos del programa), que son más lentos que el procesador en sí mismo.

Algunas técnicas microarquitectónicas comunes en los CPU modernos son:

Selección del conjunto de instrucciones

Entubado de instrucciones (Instruction pipelining)

Memoria caché

Predicción de bifurcación

Superescalar

Ejecución fuera de orden

Renombrado de registros

Multiprocesamiento y multihilo

Page 5: Antología Arquitectura de Computadoras

1.2.1.2 Tipos

MICROPROCESADOR DE PROPOSITO GENERAL: como su nombre lo indica, esta clase de microprocesador se utiliza en la realización de variadas tareas en referencia al tratamiento de la información. Es empleado principalmente en la confección de computadoras cuyo propósito también es de carácter general.

MICROPROCESADOR DE PROPOSITO DETERMINADO: esta clase de microprocesador fue creado con el fin de realizar una tarea concreta, específica. Por este motivo, una vez programados ejecutan el mismo programa, el cual es almacenado en ROM.

De acuerdo a las instrucciones presentes en su repertorio:

CISC (Complex Instruction Set Computer): el término corresponde a aquellas computadoras conformadas por un conjunto extendido de instrucciones, permitiendo así la realización de operaciones complejas entre operandos ubicados en la memoria. Es decir que esta clase de computadoras está compuestas por instrucciones, pero de carácter desigual y amplio cada una. Los CISC se ubican dentro del primer grupo de realización de procesadores, por lo que su producción tuvo lugar antes del avance de los RISC. Algunos de los ejemplos típicos de esta clase de microprocesador son Intel 80×86, Motorola 6800, Zilog Z80, etc.

RISC (Reduced Instruction Set Computer): Tal como su nombre lo señala, los microprocesadores RISC se caracterizan por contener un pequeño conjunto de instrucciones. Éstas son de dimensiones fijas y confeccionadas en una cantidad limitada de formatos.

Otra de sus características con respecto a las instrucciones, es que sólo las de carga y las de almacenamiento pueden tener acceso a la memoria de datos.

Page 6: Antología Arquitectura de Computadoras

1.2.1.3 Características

Compatibilidad: No todo el software es compatible con todas las UCP.

En algunos casos se pueden resolver los problemas de compatibilidad usando software especial.

Velocidad: La velocidad de una computadora está determinada por la velocidad de su reloj interno, el dispositivo cronométrico que produce pulsos eléctricos para sincronizar las operaciones de la computadora. Las computadoras se describen en términos de su velocidad de reloj, que se mide en megahertz. La velocidad también está determinada por la arquitectura del procesador, es decir el diseño que establece de qué manera están colocados en el chip los componentes individuales de la CPU.

1.2.1.4 Funcionamiento (ALU, Unidad de control, Registros y Buses internos)

ALU

La información se procesa matemáticamente y se compara lógicamente dentro de la Unidad Aritmético-Lógica, conocida como ALU.

La unidad de procesos aritméticos (UPA) se encarga de realizar las operaciones lógico aritméticas básicas. Para ello, cuenta con una unidad lógico aritmética que le permite hacer sumas, restas, y operaciones lógicas AND, OR exclusiva, OR exclusiva negada, entre otras. La UPA también cuenta con un registro de corrimiento auxiliar para guardar valores intermedios que posteriormente operará.

Page 7: Antología Arquitectura de Computadoras

Unidad de Control

Se encarga de que las operaciones se realicen en las secuencias que correspondan (por ejemplo no calcular antes de recibir los datos, no comunicar información al exterior mientras no se terminen los cálculos, etc.).

Si el procesador es el núcleo del sistema de computación, la unidad de control lo es del procesador. Tiene 3 funciones principales:

- Leer e interpretar instrucciones del programa.

- Dirigir la operación de los componentes internos del procesador.

- Controlar el flujo de programas y datos hacia y desde la RAM.

La unidad de control dirige otros componentes del procesador para realizar las operaciones necesarias y ejecutar la instrucción.

Registros

Áreas de almacenamiento de trabajo de alta velocidad que contiene la unidad de control, que no pueden almacenar más que unos cuantos bytes. Los registros manejan instrucciones y datos a una velocidad unas 10 veces mayor que la de la memoria caché y se usan para una variedad de funciones de procesamiento. Los registros facilitan el movimiento de datos e instrucciones entre la RAM, la unidad de control y la unidad aritmético-lógica.

- Registro de la instrucción: registro que contiene la instrucción que se está ejecutando.

- Registros de uso general: almacenan los datos necesarios para el procesamiento inmediato.

Page 8: Antología Arquitectura de Computadoras

El bus opera de la siguiente forma:

- Un módulo desea enviar datos a otro:

1. Obtiene el uso del bus.

2. transfiere los datos a través del bus.

- Un módulo desea obtener datos de otro módulo:

1. Obtiene el uso del bus

2. Solicita la transferencia al otro módulo mediante las líneas de dirección y control apropiadas, y esperar hasta el envío de los datos desde el otro módulo.

Físicamente, el bus del sistema consiste en conductores eléctricos paralelos, dispuestos en la placa de cilicio, y que se extiende a todos los componentes del sistema, cada uno de los cuales se conecta a algunas o a todas las líneas del bus. Una forma usual y económica de implementar este tipo de bus es conectar a él diferentes placas que contienen los módulos, lo que hace al sistema fácilmente expansible sin más que añadir nuevas placas, a la vez que facilita la determinación de fallos.

Buses internos

La terminología bus, en una computadora representa a las rutas entre los componentes de una computadora, principalmente los hay de dos tipos.

Bus de datos y Bus de dirección.

Bus de datos: Los datos viajan de un lugar a otro dentro de la computadora en un trayecto o circuito electrónico llamado bus de datos, es el encargado de conectar la CPU, la memoria RAM los otros dispositivos del hardware en la tarjeta madre.

Bus de Dirección: Son una red de líneas de comunicación que conectan los elementos internos del procesador con la memoria RAM y transporta las direcciones de memoria, dependiendo de la cantidad de cables en éste, se determina la cantidad máxima de direcciones de memoria. En la actualidad existen buses de 32 bits que puede direccionar hasta 4GB de memoria RAM.

Page 9: Antología Arquitectura de Computadoras

1.2.2 Memoria

Dispositivo que retiene, memoriza o almacena datos informáticos durante algún intervalo de tiempo. La memoria proporciona una de las principales funciones de la computación moderna: el almacenamiento de información y conocimiento. Es uno de los componentes fundamentales de la computadora, que interconectada a la unidad central de procesamiento (CPU, por las siglas en inglés de Central Processing Unit) y los dispositivos de entrada/salida, implementan lo fundamental del modelo de computadora de la arquitectura de von Neumann.

En la actualidad, «memoria» suele referirse a una forma de almacenamiento de estado sólido, conocida como memoria RAM (memoria de acceso aleatorio; RAM por sus siglas en inglés, de random access memory), y otras veces se refiere a otras formas de almacenamiento rápido, pero temporal. De forma similar, se refiere a formas de almacenamiento masivo, como discos ópticos, y tipos de almacenamiento magnético, como discos duros y otros tipos de almacenamiento, más lentos que las memorias RAM, pero de naturaleza más permanente. Estas distinciones contemporáneas son de ayuda, porque son fundamentales para la arquitectura de computadores en general

Page 10: Antología Arquitectura de Computadoras

1.2.2.1 Conceptos básicos del manejo de la memoria.

ARQUITECTURA DE LA MEMORIA (ROM)

La arquitectura (estructura) interna de un CI-ROM es muy compleja y no necesitamos conocer todos sus detalles. Sin embargo es constructivo observar un diagrama simplificado de la estructura interna. Existen cuatro partes básicas: decodificador de renglones, arreglo de registros y buffer de salida

Arreglo de registros

El arreglo de registros almacena los datos que han sido programados en la ROM. Cada registro contiene un número de celdas de memoria que es igual al tamaño de la palabra. En este caso, cada registro almacena una palabra de 8 bits. Los registros se disponen en un arreglo de matriz< cuadrada que es común a muchos circuitos de semiconductor. Podemos especificar la posición de cada registro como una ubicada en un reglón y una columna específicos.

Las 8 salidas de datos de cada registro se conectan a un canal de datos interno que corre atreves de todo el circuito. Cada registro tiene dos entradas de habilitación (E); ambas tienen que ser altas a fin de que los datos del registro sean colocados en el canal.

Decodificadores de direcciones.

El código de dirección aplicado A3, A2, A1, A0, determina que registro será habilitado para colocar su palabra de datos en 8 bits en el canal. Los bits de dirección A1, A0, se alimentan de un decodificador uno de 4 que activa una línea de selección de renglón, y los bits de dirección A3, A2, se alimentan de un segundo decodificador uno de cuatro que activa una línea de selección de columna. Solamente un registro estará en el renglón y la columna seleccionados por las entradas de difracción, y estará habilitado.

Page 11: Antología Arquitectura de Computadoras

Buffer de salida

El registro habilitado por las entradas de selección coloca el dato que tiene sobre el canal de datos. Estos datos entraran en los buffers de salida mismos que se encargan de trasmitirlos hacia las salidas externas siempre y cuando CS este en bajo. Si CS esta en alto, los buffers de salida se encuentran en el estado de alta impedancia, con lo que D7 asta D0 estarán flotando0

ARQUITECTURA DE LA MEMORIA (RAM)

Como sucede con la ROM, es útil pensar que la RAM consta de varios registros, cada uno de los cuales almacenan una sola palabra de datos y tiene una dirección única. Las RAMS comúnmente vienen con capacidades de palabras de 1K, 4K, 8K, 16K, 64K, 128K, 256K, y 1024K, y tamaños de palabras de 1, 4, u 8 bits. Como veremos mas adelante , la capacidad de las palabras y el tamaño de estas puede extenderse combinando circuios integrados de memoria.

Operación de lectura.

El código de dirección selecciona un registro del circuito de memoria para leer o escribir. A fin de leer el contenido de registro seleccionado, la entrada lectura/escritura (R/-W)* debe ser un 1. Además, la entrada (CS) selección de CI debe ser activada (un 0 de este caso). La combinación de R/-W es igual a 1 y CS es igual a 0 habilita los buffers de salida de manera que el contenido de registro seleccionado aparecerá en las cuatro salidas de datos. R/-W igual a 1 también deshabilita los buffers de entrada de manera que las entradas de datos no afecten la memoria durante la operación de lectura

Operación de escritura

Para escribir una nueva palabra de cuatro bits en el registro seleccionado se requiere que R/-W igual a 0 y CS igual 0. Esta combinación habilita los buffers de entrada de manera que la palabra de cuatro bits aplicada a las entradas de datos se cargara en el registro seccionado. R/-W igual a 0 también deshabilita los buffers de salida que son de tres estados, de manera que las salidas de datos se encuentran en el estado de alta-z, durante una operación de escritura. La operación de escritura, desde luego, destruye la palabra que antes estaba almacenada en la dirección.

Page 12: Antología Arquitectura de Computadoras

Selección de CI.

Muchos circuitos de memoria tienen una o mas entradas CS que se usan para habilitar o deshabilitar el circuito en su totalidad. En el modo deshabilitado todas las salidas y entradas de datos se deshabilitas (alta-z) de manera que no puede tener lugar no la operación de lectura ni de escritura. En este modo en contenido de la memoria no se afecta. La razón para tener entradas CS será mas clara cuando se combinen CI de memoria para tener mayores memorias. Observe que muchos fabricantes llaman a estas entradas CE (habilitación de circuito). Cuando las entradas CS o CE se encuentran en un estado activo, se dice que el CI de memoria a sido seleccionado; de otro modo se dice que no esta seleccionado. Muchos CI de memoria están diseñados para consumir una potencia mucho menor cuando están seleccionados. En sistemas de memoria grandes, para una operación dada de memoria, serán seleccionados una o más CI de memoria mientras que los demás no.

Terminales comunes de entrada/ salida

A fin de conservar terminales en un encapsulado de CI, los fabricantes a menudo combinan los funciones de entradas y salida de datos utilizando terminales comunes de entrada/salida. La entrada R/-W controla la función de estas terminales E/S. Durante una operación de lectura, las terminales de entrada y salida actúan como salida de datos que reproducen el contenido de la localidad de dirección seleccionada. Durante una operación de escritura, las terminales de S/E actúan como entrada de datos. A las cuales se aplican los datos al ser escritos.

ARQUITECTURA DE LA MEMORIA (EPROM)

ROM programable y borrable

Una EPROM puede ser programada por el usuario y también puede borrarse y reprogramarse tantas veces como desee. Una vez programada, la EPROM es una memoria no volátil que contendrá sus datos almacenados indefinidamente. El proceso para programar una EPROM implica la aplicación de niveles de voltaje especiales (comúnmente en un orden de 10 a 25 volts) a las entradas adecuadas del circuito en una cantidad de tiempo especificada (por lo general 50 minutos) por la localidad de dirección. El proceso de programación generalmente es efectuado por un circuito especial de programación que esta separando del circuito en el cual la EPROM eventualmente trabajara. El proceso de programación completo puede llevar barios minutos para un microcircuito EPROM.

Page 13: Antología Arquitectura de Computadoras

En una EPROM las celdas de almacenamiento son transistores MOSFET que tienen una compuerta de cilicio sin ninguna conexión eléctrica (es decir, una compuerta flotante). En un estado normal, cada transistor está apagado y cada celda guarda un 1 lógico un transistor puede encenderse mediante la aplicación de un curso de programación de alto voltaje, el cual inyecta electrones de alta energía en la región formada por la compuerta flotante. Estos electrones permanecen en esta región una vez que ha finalizado el pulso ya que no existe ninguna trayectoria de descarga.

Una vez que sea programado una celda de la EPROM se puede borrar su contenida exponiendo la EPROM a la luz ultravioleta (UV), la cual se aplica a través de la ventana que se encuentra sobre el encapsulado del circuito. La luz (UV) produce una foto corriente que va desde la compuerta flotante hacia el sustrato de cilicio; con esto se apaga el transistor y se lleva de nuevo la celda hacia el estado uno lógico. Este proceso de borrado requiere entre 15 a 20 minutos de exposición a los rayos (UV). Desafortunadamente, no existe ninguna forma de borrar solo algunas celdas; la luz (UV) borra todas las celdas al mismo tiempo por lo que una EPROM barrada almacena solamente unos lógicos. Una vez borrada puede volverse a programar.

1.2.2.2 Memoria principal semiconductora

La memoria de semiconductor usa circuitos integrados basados en semiconductores para almacenar información. Un chip de memoria de semiconductor puede contener millones de minúsculos transistores o condensadores. Existen memorias de semiconductor de ambos tipos: volátiles y no volátiles. En las computadoras modernas, la memoria principal consiste casi exclusivamente en memoria de semiconductor volátil y dinámica, también conocida como memoria dinámica de acceso aleatorio o más comúnmente RAM, su acrónimo inglés. Con el cambio de siglo, ha habido un crecimiento constante en el uso de un nuevo tipo de memoria de semiconductor no volátil llamado memoria flash. Dicho crecimiento se ha dado, principalmente en el campo de las memorias fuera de línea en computadoras domésticas. Las memorias de semiconductor no volátiles se están usando también como memorias secundarias en varios dispositivos de electrónica avanzada y computadoras especializadas y no especializadas.

1.2.2.3 Memoria cache

Page 14: Antología Arquitectura de Computadoras

En informática, la caché es la memoria de acceso rápido de una computadora, que guarda temporalmente las últimas informaciones procesadas.

La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera similar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia.

La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos.

Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la memoria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal.

1.2.3 Manejo de la entrada/salida

Módulo de E/S

Cada controlador está a cargo de un tipo específico de dispositivo.

Dependiendo del controlador, pueden estar varios dispositivos conectados al mismo controlador.

El controlador se encarga de mover datos entre el dispositivo periférico que controla y el buffer de almacenamiento local. El tamaño del buffer varía de un controlador a otro y depende del dispositivo que controla.

Son posibles tres técnicas para las operaciones de E/S:

Page 15: Antología Arquitectura de Computadoras

E/S programada

E/S mediante interrupciones

DMA

E/S Programada

Los datos se intercambian entre el CPU y el módulo de E/S. El CPU ejecuta un programa que controla directamente la operación de E/S, incluyendo la comprobación del estado del dispositivo, el envío de la orden de lectura o escritura y la transferencia del dato. Cuando el CPU envía la orden debe esperar hasta que la operación de E/S concluya. Si el CPU es más rápido, éste estará ocioso. El CPU es el responsable de comprobar periódicamente el estado del módulo de E/S hasta que encuentre que la operación ha finalizado.

Normalmente habrá muchos dispositivos de E/S conectados al sistema a través de los módulos de E/S. Cada dispositivo tiene asociado un identificador o dirección. Cuando el CPU envía una orden de E/S, la orden contiene la dirección del dispositivo deseado.

E/S mediante Interrupciones

Page 16: Antología Arquitectura de Computadoras

El problema con E/S programada es que el CPU tiene que esperar un tiempo considerable a que el módulo de E/S en cuestión esté preparado para recibir o transmitir los datos. El CPU debe estar comprobando continuamente el estado del módulo de E/S. Se degrada el desempeño del sistema.

Una alternativa es que el CPU tras enviar una orden de E/S continue realizando algún trabajo útil. El módulo de E/S interrumpirá al CPU para solicitar su servicio cuando esté preparado para intercambiar datos. El CPU ejecuta la transferencia de datos y después continua con el procesamiento previo.

Se pueden distinguir dos tipos: E/S síncrona y E/S asíncrona

E/S Síncrona: cuando la operación de E/S finaliza, el control es retornado al proceso que la generó. La espera por E/S se lleva a cabo por medio de una instrucción wait que coloca al CPU en un estado ocioso hasta que ocurre otra interrupción. Aquellas máquinas que no tienen esta instrucción utilizan un loop. Este loop continua hasta que ocurre una insterrupción transfiriendo el control a otra parte del sistema de operación. Sólo se atiende una solicitud de E/S por vez. El sistema de operación conoce exactamente que dispositivo está interrumpiendo. Esta alternativa excluye procesamiento simultáneo de E/S.

E/S Asíncrona: retorna al programa usuario sin esperar que la operación de E/S finalice. Se necesita una llamada al sistema que le permita al usuario esperar por la finalización de E/S (si es requerido). También es necesario llevar un control de las distintas solicitudes de E/S. Para ello el sistema de operación utiliza una tabla que contiene una entrada por cada dispositivo de E/S (Tabla de Estado de Dispositivos). La ventaja de este tipo de E/S es el incremento de la eficiencia del sistema. Mientras se lleva a cabo E/S, el CPU puede ser usado para procesar o para planificar otras E/S. Como la E/S puede ser bastante lenta comparada con la velocidad del CPU, el sistema hace un mejor uso de las facilidades.

Inicio de la Operación de E/S

Page 17: Antología Arquitectura de Computadoras

Para iniciar una operación de E/S, el CPU actualiza los registros necesarios en el módulo de E/S.

El módulo de E/S examina el contenido de estos registros pare determinar el tipo de acción a ser llevada a cabo. Por ejemplo, si encuentra un requerimiento de lectura, el módulo de E/S empezará a transferir data desde el dispositivo a los buffers locales. Una vez terminada la transferencia, el módulo informa al CPU que la operación ha terminado por medio de una interrupción.

Procesamiento de la Interrupción

Cuando un dispositivo de E/S termina una operación de E/S, se produce la siguiente secuencia de eventos:

El dispositivo envía una señal de interrupción al procesador

El procesador termina la ejecución de la instrucción en curso antes de responder a la interrupción.

El procesador comprueba si hay alguna interrupción. Si hay alguna, envía una señal de reconocimiento al dispositivo que la originó

El procesador debe prepararse para transferir el control a la rutina de interrupción. Debe guardar la información necesaria para continuar con el proceso en curso en el punto en que se interrumpió. Guarda en la pila del sistema el contenido de los registros, etc.

El procesador carga en el PC la dirección de inicio del programa de gestión o servicio de interrupción solicitada.

Una vez modificado el PC, el procesador continúa con el ciclo de instrucción siguiente. Es decir, se transfiere el control a la rutina servidora de la interrupción.

Cuando finaliza el servicio de la interrupción, se restauran los valores de los registros.

Tabla de Estado de Dispositivos

Page 18: Antología Arquitectura de Computadoras

Cuando el CPU recibe una interrupción que indica que se ha finalizado una operación de E/S, el sistema de operación debe saber a cuál proceso pertenece. Para esto se mantiene una tabla de estado de dispositivos. Cada entrada en la tabla contiene el tipo de dispositivo, su dirección y su estado (ocioso, ocupado, no funcionando). Si es dispositivo se encuentra ocupado, entonces el tipo de solicitud junto con otros parametros son almacenados en la tabla (lista).

Las operaciones TYPEAHEAD son un esquema usado por algunos dispositivos que permiten a los usuarios "adelantar" la entrada de datos antes de ser requeridas. Cuando sucede la interrupción de final de E/S no hay proceso que la requirió, por lo tanto se necesita un buffer para almacenar los caracteres adelantados hasta que algún programa los requiera. En general, se requiere un buffer para cada terminal de entrada.

DMA (Direct Memory Access)

La E/S con interrupciones, aunque más eficiente que la E/S programada, también requiere la intervención del CPU para transferir datos entre la memoria y el módulo de E/S.

Consideren el siguiente ejemplo. Cuando se va a leer una línea desde un terminal, el primer carácter escrito es enviado al computador. Cuando el carácter es recibido por el controlador, éste interrumpe al CPU. El CPU le da servicio a la interrupción y luego continua con el proceso que estaba ejecutando. Esto es posible cuando el dispositivo es muy lento comparado con el CPU. Entre un carácter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero qué sucede cuando estamos trabajando con dispositivos de E/S más veloces? Tendríamos interrupciones muy seguidas y se estaría desperdiciando mucho tiempo.

Para evitar esto, se utiliza DMA para dispositivos de E/S de alta velocidad. E1 controlador del dispositivo transfiere un bloque de datos desde o para sus buffers de almacenamiento a memoria directamente sin intervención del CPU. Solo se produce una interrupción por bloque en lugar de tener una interrupción por cada byte (o palabra).

Page 19: Antología Arquitectura de Computadoras

Por ejemplo, un programa solicita una transferencia de datos. El Sistema de Operación busca un buffer disponible. El controlador de DMA tiene sus registros actualizados con las direcciones del fuente y del destino y la longitud de la transferencia. Por lo general esta actualización es realizada por el manejador de dispositivo (rutina). Se indica al controlador de DMA a través de bits de control en un registro de control pare que inicie la operación de E/S. Mientras tanto el CPU puede llevar a cabo otras operaciones. El controlador de DMA interrumpe el CPU cuando la transferencia ha sido terminada. El CPU interviene solo al comienzo y al final de la transferencia.

1.2.3.5 Canales y procesadores de entrada/salida

DISPOSITIVOS DE ENTRADA:

Son aquellos que sirven para introducir datos a la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria central.

Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos, palancas de mando (joystick), CD-ROM, discos compactos (CD), etc. Hoy en día es muy frecuente que el usuario utilice un dispositivo de entrada llamado ratón que mueve un puntero electrónico sobre una pantalla que facilita la interacción usuario-máquina

DISPOSITIVOS DE SALIDA:

Son los que permiten representar los resultados (salida) del proceso de datos. El dispositivo de salida típico es la pantalla o monitor. Otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores gráficos (plotters), bocinas, entre otros

Mouse:

Page 20: Antología Arquitectura de Computadoras

La función principal del ratón es transmitir los movimientos de nuestra mano sobre una superficie plana hacia el ordenador. Allí, el software denominado driver se encarga realmente de transformarlo a un movimiento del puntero por la pantalla dependiendo de varios parámetros

Teclado:

Es el dispositivo más común de entrada de datos. Se lo utiliza para introducir comandos, textos y números. Estrictamente hablando, es un dispositivo de entrada y de salida, ya que los LEDs también pueden ser controlados por la máquina

Scanner:

A teniéndonos a los criterios de la Real Academia de la Lengua, famosa por la genial introducción del término cederrón para denominar al CD-ROM, probablemente nada; para el resto de comunes mortales, digamos que es la palabra que se utiliza en informática para designar a un aparato digitalizador de imagen.

Por digitalizar se entiende la operación de transformar algo analógico (algo físico, real, de precisión infinita) en algo digital (un conjunto finito y de precisión determinada de unidades lógicas denominadas bits). En fin, que dejándonos de tanto formalismo sintáctico, en el caso que nos ocupa se trata de coger una imagen (fotografía, dibujo o texto) y convertirla a un formato que podamos almacenar y modificar con el ordenador. Realmente un escáner no es ni más ni menos que los ojos del ordenador

Webcam

Una cámara web en la simple definición, es una cámara que esta simplemente conectada a la red o INTERNET. Como te puede imaginar tomando esta definición, las cámaras Web pueden tomar diferentes formas y usos

Lápiz Óptico:

Page 21: Antología Arquitectura de Computadoras

Dispositivo señalador que permite sostener sobre la pantalla (fotosensible) un lápiz que está conectado al ordenador con un mecanismo de resorte en la punta o en un botón lateral, mediante el cual se puede seleccionar información visualizada en la pantalla. Cuando se dispone de información desplegada, con el lápiz óptico se puede escoger una opción entre las diferentes alternativas, presionándolo sobre la ventana respectiva o presionando el botón lateral, permitiendo de ese modo que se proyecte un rayo láser desde el lápiz hacia la pantalla fotosensible

Joystick:

Palanca que se mueve apoyada en una base. Se trata, como el ratón, de un manejador de cursor. Consta de una palanca con una rótula en un extremo, que permite efectuar rotaciones según dos ejes perpendiculares. La orientación de la palanca es detectada por dos medidores angulares perpendiculares, siendo enviada esta información al ordenador. Un programa adecuado convertirá los ángulos de orientación de la palanca en desplazamiento del cursor sobre la misma

Monitor o Pantalla:

Es el dispositivo en el que se muestran las imágenes generadas por el adaptador de vídeo del ordenador o computadora. El término monitor se refiere normalmente a la pantalla de vídeo y su carcasa. El monitor se conecta al adaptador de vídeo mediante un cable. Evidentemente, es la pantalla en la que se ve la información suministrada por el ordenador. En el caso más habitual se trata de un aparato basado en un tubo de rayos catódicos (CRT) como el de los televisores, mientras que en los portátiles es una pantalla plana de cristal líquido (LCD)

Impresoras:

Como indica su nombre, la impresora es el periférico que el ordenador utiliza para presentar información impresa en papel. Las primeras impresoras nacieron muchos años antes que el PC e incluso antes que los monitores, siendo durante años el método más usual para presentar los resultados de los cálculos en aquellos primitivos ordenadores, todo un avance respecto a las tarjetas y cintas perforadas que se usaban hasta entonces

1.2.4 Buses

Page 22: Antología Arquitectura de Computadoras

En arquitectura de computadores, el bus (o canal) es un sistema digital que transfiere datos entre los componentes de una computadora o entre varias computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores 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 del 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.

1.2.4.1 Tipos de buses

Bus de Direcciones: Este es un bus unidireccional debido a que la información fluye es una sola dirección, de la CPU a la memoria o a los elementos de entrada y salida. La CPU sola puede colocar niveles lógicos en la n líneas de dirección, con la cual se genera 2n posibles direcciones diferentes. Cada una de estas direcciones corresponde a una localidad de la memoria o dispositivo de E / S.

Los microprocesadores 8086 y 8088 usados en los primeros computadores personales (PC) podían direccionar hasta 1 megabyte de memoria (1.048.576 bytes). Es necesario contar con 20 líneas de dirección. Para poder manejar más de 1 megabyte de memoria , en los computadores AT (con procesadores 80286) se utilizó un bus de direcciones de 24 bits, permitiendo así direccionar hasta 16 MB de memoria RAM (16.777.216 bytes). En la actualidad los procesadores 80386DX pueden direccionar directamente 4 gigabytes de memoria principal y el procesador 80486DX hasta 64 GB.

Bus de Datos: Este es un bus bidireccional, pues los datos pueden fluir hacia ó desde la CPU. Los m terminales de la CPU, de D0 - Dm-1 , pueden ser entradas ó salidas, según la operación que se esté realizando ( lectura ó escritura ) . en todos los casos, las palabras de datos transmitidas tiene m bits de longitud debido a que la CPU maneja palabras de datos de m bits; del número de bits del bus de datos, depende la clasificación del microprocesador.

En algunos microprocesadores, el bus de datos se usa para transmitir otra información además de los datos (por ejemplo, bits de dirección ó información de condiciones ). Es decir, el bus de datos es compartido en el tiempo ó multiplexado. En general se adoptó 8 bits como ancho estándar para el bus de datos de los primeros computadores PC y XT. Usualmente el computador transmite un caracter por cada pulsación de reloj que controla

Page 23: Antología Arquitectura de Computadoras

el bus (bus clock), el cual deriva sus pulsaciones del reloj del sistema (system clock). Algunos computadores lentos necesitan hasta dos pulsaciones de reloj para transmitir un caracter.

Los computadores con procesador 80286 usan un bus de datos de 16 bits de ancho, lo cual permite la comunicación de dos caracteres o bytes a la vez por cada pulsación de reloj en el bus. Los procesadores 80386 y 80486 usan buses de 32 bits. El PENTIUM de Intel utiliza bus externo de datos de 64 bits, y uno de 32 bits interno en el microprocesador.

Bus de Control : Este conjunto de señales se usa para sincronizar las actividades y transacciones con los periféricos del sistema. Algunas de estas señales, como R / W , son señales que la CPU envía para indicar que tipo de operación se espera en ese momento. Los periféricos también pueden remitir señales de control a la CPU, como son INT, RESET, BUS RQ.

Las señales más importantes en el bus de control son las señales de cronómetro, que generan los intervalos de tiempo durante los cuales se realizan las operaciones. Este tipo de señales depende directamente del tipo del microprocesador.

1.2.4.2 Estructura de los buses

Page 24: Antología Arquitectura de Computadoras

Existen dos organizaciones físicas de operaciones E/S que tienen que ver con los buses que son:

· Bus único

· Bus dedicado

La primera gran diferencia entre estas dos tipos de estructuras es que el bus único no permite un controlador DMA (todo se controla desde la CPU), mientras que el bus dedicado si que soporta este controlador.

 

 

El bus dedicado trata a la memoria de manera distinta que a los periféricos (utiliza un bus especial) al contrario que el bus único que los considera a ambos como posiciones de memoria (incluso equipara las operaciones E/S con las de lectura/escritura en memoria). Este bus especial que utiliza el bus dedicado tiene 4 componentes fundamentales:

 Datos: Intercambio de información entre la CPU y los periféricos.

 Control: Lleva información referente al estado de los periféricos (petición de interrupciones).

 Direcciones: Identifica el periférico referido.

 Sincronización: Temporiza las señales de reloj.

 

Page 25: Antología Arquitectura de Computadoras

La mayor ventaja del bus único es su simplicidad de estructura que le hace ser más económico, pero no permite que se realice a la vez transferencia de información entre la memoria y el procesador y entre los periféricos y el procesador.

Por otro lado el bus dedicado es mucho más flexible y permite transferencias simultáneas. Por contra su estructura es más compleja y por tanto sus costes son mayores.

1.2.4.3 Jerarquías de buses

Page 26: Antología Arquitectura de Computadoras

Buses de tipo 0

Los buses de tipo 0 son los buses internos de las pastillas. La utilización de buses internos de gran ancho de palabra unido a la incorporación de memoria caché interna facilita que se puedan conseguir microprocesadores de grandes prestaciones.

Buses de tipo 1

El bus de tipo 1 es el bus de interconexión de componentes de una placa o circuito impreso.

Buses de tipo 2

Estos buses sirven para interconectar las distintas placas de un modulo, formando lo que se llama el panel posterior. La práctica totalidad de los computadores actuales se componen de un solo módulo, por lo que no existe bus de nivel 3 y este bus se convierte en el bus del sistema.

Buses de tipo 3

El bus de tipo 3 o bus del sistema permite interconectar diversos módulos del computador. Hoy en día hay muy pocos sistemas que contengan varios módulos. Por lo que generalmente coinciden los buses de nivel 2 y 3.

La gran diferencia entre los tipos 2 y 3 es la distancia que debe tener el bus, que puede llegar a los 10m en el tipo 3. Ello obliga a tratar este bus como una línea de transmisión. Además, es muy frecuente que el bus de tipo 3 exija unos repetidores o buffers, para pasar de un panel posterior a otro.

Buses de tipo 4

Page 27: Antología Arquitectura de Computadoras

Los buses de tipo 4 lo forman los buses paralelos para conexión de periféricos. En realidad se pueden considerar cuatro situaciones, que a veces se pueden dar simultáneamente en el mismo computador:

En la primera, los controladores de los periféricos se conectan directamente al bus del sistema (bus tipo 2 ó 3).

En la segunda se dispone de un bus especial para la E/S, como es un canal 370 de IBM, como es el Unibus en el caso de la arquitectura VAX, o como son los buses PCI e EISA en un computador personal.

La tercera consiste en diseñar un bus reducido, derivado del bus del sistema, que permita la conexión en paralelo de una serie de periféricos específicos.

La cuarta consiste en emplear un bus paralelo de conexión de periféricos, de acuerdo con una norma preestablecida. La diferencia con el caso anterior es que ahora no se trata de una versión reducida del bus del sistema, sino de una configuración que puede ser muy distinta. El ejemplo clásico es el puerto paralelo o Centronics, previsto para la conexión de impresoras, el bus IEEE-488, previsto para la interconexión de instrumentos de laboratorio a computadores o los buses QIC, SCSI e IPI, para conexión de discos.

Buses de tipo 5

Los buses serie suelen constituir el tipo más elemental del espectro de las comunicaciones de un sistema informático. Se emplean para cubrir las mayores distancias.

El bus serie puede ser simple o doble. El simple puede permitir la transmisión en un solo sentido o en ambos sentidos de forma alternativa (semi-duplex). El doble permite la transmisión en los dos sentidos simultáneamente (full-duplex).

1.2.5. Interrupciones

Page 28: Antología Arquitectura de Computadoras

En el contexto de la informática, una interrupción (del inglés Interrupt Request, también conocida como petición de interrupción) es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.

Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa, sino que pertenece al sistema operativo o al BIOS. Una vez finalizada dicha subrutina, se reanuda la ejecución del programa.

Las interrupciones surgen de la necesidad que tienen los dispositivos periféricos de enviar información al procesador principal de un sistema informático.

Unidad 2.- Estructura y funcionamiento de la CPU

Page 29: Antología Arquitectura de Computadoras

2.1 Organización del procesador

Un procesador, incluye tanto registros visibles por el usuario como registros de control/estado. Los registros visibles por el usuario pueden ser de uso general o tener una utilidad especial, mientras que los registros de control y estado se usan para controlar el funcionamiento del procesador, un claro ejemplo es el contador de programa.

Los procesadores utilizan la segmentación de instrucciones para acelerar la ejecución. La segmentación de cauce se puede dividir en ciclo de instrucción en varias etapas separadas que operan secuencialmente, tales como la captación de instrucción, decodificación de instrucción, cálculo de direcciones de operando, ejecución de instrucción y estructura del operando resultado.

A continuación se muestra cómo se organiza un procesador, para esto se tiene que considerar los siguientes requisitos:Captar instrucciones: el procesador lee una instrucción de memoria (registro, cache o memoria principal).Interpretar instrucción: la instrucción se codifica para determinar qué acción es necesario.Captar datos: la ejecución de una instrucción puede exigir leer datos de memoria o de un módulo de  E/S.Procesar datos: la ejecución e una instrucción puede exigir llevar a cabo alguna operación aritmética o lógica con los datos.Escribir datos: los resultados de una ejecución pueden exigir escribir datos en la memoria o en el módulo de E/S.Para hacer estas cosas, el procesador necesita almacenar instrucciones y datos temporalmente mientras una instrucción está ejecutándose, en otras palabras el procesador necesita una pequeña memoria interna.

Page 30: Antología Arquitectura de Computadoras

En esta figura se muestra  una visión simplificada de un procesador, que indica su conexión con el resto de sistema, a través del bus del sistema. La ALU lleva a cabo el verdadero cálculo o procesamiento de datos. La unidad de control controla la transferencia de datos e instrucciones así a dentro y así afuera del procesador, y el funcionamiento de la ALU. Además la figura muestra una memoria interna mínima, que consta de un conjunto de posiciones de almacenamiento llamadas registros.

En esta figura se indican los caminos de transferencia de datos y de la lógica de control, que incluye un elemento con el rotulo bus interno del procesador. También se muestran los elementos básicos típicos de la ALU. Hay que observar la similitud entre la estructura interna del computador en su totalidad y la estructura interna del procesador. En ambos casos hay una pequeña colección de elementos principales (computador: procesador, E/S, memoria; procesador: unidad de control, ALU, registros) conectados por caminos de datos.