Arquitectura de Computadoras

Roberto Yair Tellez


Temario

Unidad 1

1.1 Modelos de arquitecturas de cómputo.

1.1.1 Clásicas.

1.1.2 Segmentadas.

1.1.3 De multiprocesamiento.

1.2 Análisis de los componentes. 1.2.1 Arquitecturas.

1.2.1.1 Unidad Central de Procesamiento.

1.2.1.2 Unidad Aritmetica lógica.

1.2.1.3 Registros.

1.2.1.4 Buses.

1.2.2 Memoria.

1.2.2.1 Conceptos básicos del manejo de la memoria.

1.2.2.2 Memoria principal.

1.2.2.3 Memoria caché.

1.2.3 Manejo de la entrada/salida.

1.2.3.1 Módulos de entrada/salida.

1.2.3.2 Entrada/salida programada.

1.2.3.3 Entrada/salida mediante interrupciones.

1.2.3.4 Acceso directo a memoria.

1.2.3.5 Canales y procesadores de entrada/salida.

1.2.4 Buses.

1.2.4.1 Tipos de buses.

1.2.4.2 Estructura de los buses.

1.2.4.3 Jerarquías de buses.

1.2.5 Interrupciones.


Introducción


Unidad 2


Unidad 3


Unidad 4


Bibliografía


Modelos de arquitecturas de cómputo

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 máquina 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.

Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son:

  • La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador
    tenga que realizar varios accesos a memoria para buscar instrucciones complejas.
  • La limitación de la velocidad de operación a causa del bus único para datos e instrucciones que no deja
    acceder simultáneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso.
  • En esta arquitectura apareció por primera vez el concepto de programa almacenado. Anteriormente la secuencia de las operaciones era dictada por el alambrado de la unidad de control, y cambiarla implicaba un proceso de recableado laborioso, lento (hasta tres semanas) y propenso a errores. En esta arquitectura se asigna un código numérico a cada instrucción. Dichos códigos se almacenan en la misma unidad de memoria que los datos que van a procesarse, para ser ejecutados en el orden en que se encuentran almacenados en memoria. Esto permite cambiar rápidamente la aplicación de la computadora y dio origen a las computadoras de propósito general.
    Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica aritmética (A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del procesador. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y lógicas. La unidad de control genera las señales de control para leer el código de las instrucciones, decodificarlas y hacer que la ALU las ejecute.
    Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:


    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 ocho bits en una memoria aparte.

    Ventajas de esta arquitectura:

  • El tamaño de las instrucciones no está relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa.
  • El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operación.
  • Desventajas en general de las arquitecturas clásicas

  • La principal desventaja de esta arquitectura; 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.
  • En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a a la arquitectura Von Newman, con un banco de memoria masivo único, pero internamente incluyen varios niveles de memoria cache con bancos separados en cache de programa y cache de datos, buscando un mejor desempeño sin perder la versatilidad.

    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. Para Procesador Memoria de datos Entrada y salida Bus de datos Memoria de programa Bus de programa Registros ALU Unidad de Control 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 las instrucciones, como lo muestra la siguiente figura.

    En un procesador con segmentación del cauce, cada una de estas etapas se asigna a una unidad funcional diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución. Estas unidades pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de instrucción que leyó para que la unidad de ejecución los tome de la cola y los ejecute. Esta cola se parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. De esta analogía proviene el nombre en inglés: Pipelining o entubamiento.

    De multiprocesamiento

    Se trata de un tipo de arquitectura de ordenadores en que dos o más procesadores comparten una única memoria central. Se caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria 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, sino que todos tienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema operativo.
    Los sistemas multiprocesos simétricos permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.

    Las CPU de multiprocesamiento se clasifican de la siguiente manera (Clasificación de Flynn):

  • 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 de multiprocesamiento, Clusters.
  • La ventaja de un sistema multiproceso reside en la operación llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada. Debido a que este sistema comparte globalmente la memoria RAM, tiene solamente un espacio de memoria, lo que simplifica tanto el sistema físico como la programación de aplicaciones. Este espacio de memoria único permite que un Sistema Operativo multitarea distribuya las tareas entre varios procesadores.

    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. La mayoría de los procesadores modernos incluye algunas instrucciones de tipo vectorial, tales como las extensiones al conjunto de instrucciones tales como MMX y SSE.
    Estas instrucciones les permiten procesar flujos multimedia más eficientemente. Los Procesadores Digitales de Señales (DSP), son procesadores especializados en el procesamiento de señales tales como audio, vídeo, radar, sonar, radio, etc. Cuentan con instrucciones tipo vectorial que los hace muy aptos para dicha aplicación. Suelen utilizarse en conjunto con un microcontrolador en dispositivos como reproductores de audio, reproductores de dvd y Blueray, teléfonos celulares, sistemas de entretenimiento, sistemas de adquisición de datos, instrumentos médicos, controles industriales, etc.

    Los Clusters son conjuntos de computadoras independientes conectadas en una red de área local o por un bis de interconexión y que trabajan cooperativamente para resolver un problema. Es clave en su funcionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir el trabajo entre las computadoras de la red. Este tipo de computadora paralela se ha vuelto muy popular por que permite usar los avances en los procesadores comerciales que tienen una muy buena relación costo rendimiento y se puede incorporar rápidamente los avances que proporciona las nuevas tecnologías en cuanto es económicamente viable. Sin embargo, se debe tener cuidado al implementar la aplicación, ya que, si los datos que hay que pasar de un procesador a otro son demasiados, el tiempo empleado en pasar información de un nodo a otro puede sobrepasar a la ganancia que se tiene al dividir el trabajo entre varios procesadores.

    Las unidades de procesamiento gráfico (Graphics Processing Unit GPU) – sistemas diseñados originalmente para el procesamiento de Gráficos, con múltiples procesadores vectoriales sencillos compartiendo la misma memoria, la cual también puede ser accedida por el CPU. Por la gran cantidad de núcleos con los que cuenta, logran un excelente desempeño al ejecutar algoritmos que se adaptan a ser paralelizados, a tal grado que muchas de las supercomputadoras más rápidas de la actualidad utilizan estos procesadores, y los fabricantes de tarjetas gráficas producen versiones de sus productos especializadas en acelerar los cálculos de propósito general.


    Análisis de los componentes

    Arquitecturas

    Arquitectura CISC
    Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.

    Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales actuales.
    Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj.
    Entre las ventajas de CISC destacan las siguientes:

  • Reduce la dificultad de crear compiladores.
  • Permite reducir el costo total del sistema.
  • Reduce los costos de creación de sftware.
  • Mejora la compactación de código.
  • Facilita la depuración de errores.
  • Ejemplo de microprocesadores basados en la tecnología CISC:

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


  • Arquitectura RISC
    En la arquitectura computacional, RISC (del inglés reduced instruction set computer) es un tipo de microprocesador con las siguientes características fundamentales:

  • Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  • Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
  • El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

    Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC… son ejemplos de algunos de ellos.
    RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse.
    El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.

    Entre las ventajas de RISC tenemos las siguientes:

  • La CPU trabaja mas rápido al utilizar menos ciclos de reloj para ejecutar instrucciones.
  • Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que, a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones.
  • Cada instrucción puede ser ejecutada en un solo ciclo del CPU.
  • Ejemplo de microprocesadores basados en la tecnología RISC:

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

  • Unidad Central de Procesamiento

    CPU son las siglas de Central Processing Unit su traducción seria Unidad Central de Procesamiento. Es uno de los componentes vitales para cualquier dispositivo electrónico, sin este componente cualquier dispositivo no podría funcionar. Se la suele llamar coloquialmente como microprocesador o simplemente procesador, y puedes considerarla como el cerebro de cualquier dispositivo.

    Se encarga de procesar todas las instrucciones del dispositivo, leyendo las órdenes y requisitos del sistema operativo, así como las instrucciones de cada uno de los componentes y las aplicaciones.
    La CPU es la que se encarga de que todo funcione correctamente, y de interpretar todo lo que quiere hacer el sistema operativo o los componentes, estableciendo las conexiones y realizando todos los cálculos precisos para que funcione. Cuanto más potente sea el procesador, más rápido podrá hacer las operaciones y más rápido funcionará tu dispositivo en general. La CPU tiene un mínimo de un procesador o núcleo en su interior, un chip para realizar los cálculos y operaciones.
    Sin embargo hay CPU con mas núcleos o chips que normalmente se les llama cores.
    Cada uno de estos núcleos o chips funciona a una frecuencia medida en hercios, que es el ritmo en que el procesador trabaja, siendo 1 hercio la acción que se repite 1 vez por segundo.
    ¿Comó funciona el CPU?
    Las aplicaciones le dan al ordenador las instrucciones con los cálculos o acciones que necesita realizar para llevar a cabo la tarea.
    Las instrucciones se ponen en la RAM, donde son recogidas por la CPU, que es la que las lleva a cabo.
    Para ello se siguen varios pasos diferentes. El primero es el de leer los datos e instrucciones para realizar cada una de las tareas de las aplicaciones. Los datos se decodifican y se dividen para que puedan ser entendidos por las diferentes partes de la CPU, las cuales ejecutan las acciones, realizan los cálculos, y escriben los resultados en la memoria principal, ya sea como resultado o para utilizarlos después en otras operaciones.
    características

  • Consumo energético. Se refiere a la cantidad de energía que consume el CPU al ejecutar acciones, a mayor calidad, mayor el consumo energético.
  • Frecuencia de reloj. Refiere a la velocidad de reloj que tiene el CPU y que determina la cantidad de acciones que puede ejecutar en un período de tiempo.
  • Número de núcleos. A mayor cantidad de núcleos, mayor la cantidad de acciones que pueden realizarse en forma simultánea.
  • Número de hilos. Ayuda al procesador a manejar y ejecutar acciones de forma más eficiente. Divide las tareas o procesos para optimizar los tiempos de espera entre una acción y la otra.
  • Memoria caché. Almacena datos y permite acceder a ellos de manera rápida. La velocidad y capacidad de la memoria caché mejora el desempeño del dispositivo.
  • Tipo de bus. Refiere a la comunicación que establece el CPU con el resto del sistema.

  • Partes del CPU

  • Núcleo. Es la unidad base que constituye a un CPU, que interpreta y ejecuta acciones. Originariamente los procesadores solo tenían uno (single core), pero actualmente lo mínimo es dos.
  • Unidad de control. Es un circuito digital que extrae la instrucción de la memoria, la descifra y la ejecuta.
  • Unidad aritmética lógica. Es un circuito digital que lleva a cabo las operaciones lógicas, matemáticas y aritméticas entre los datos.
  • Unidad de coma flotante. Es un componente especializado en el cálculo de operaciones con coma flotante.
  • Memoria caché. Es la memoria en la que se almacenan los datos que el usuario consulta con frecuencia, esto permite ganar velocidad al procesador.
  • Registros. Es una memoria de alta velocidad que permite controlar y almacenar las instrucciones en ejecución.
  • Controlador de memoria. Es un circuito que puede estar integrado al procesador y que regula el flujo de datos entre el procesador y la memoria.
  • Bus. Es un sistema digital que envía y recibe datos entre los componentes.
  • Tarjeta gráfica. Es el componente que procesa los datos de video e imagen, que puede estar incluido o no en el CPU.
  • Exposición sobre la Unidad Central de Procesamiento CPU

    Unidad Aritmetica Lógica

    La Unidad aritmético-lógica (ALU por sus siglas en inglés: Arithmetic Logic Unit) es un contador digital capaz de realizar las operaciones aritméticas y lógicas entre los datos de un circuito; suma, resta, multiplica y divide, así como establece comparaciones lógicas a través de los condicionales lógicos “si”, “no”, y, “o”. Desde los circuitos más simples, como relojes y calculadoras, hasta complejos circuitos, como los microchips actuales, todos incluyen al menos una Unidad aritmético-lógica, que varía su poder y complejidad según su finalidad.
    Además de los operadores lógicos y aritméticos, la ALU cuenta con una serie de registros para almacenar los datos, y bits de información sobre los resultados, también llamados banderas.

    Las computadoras más modernas, que incluyen procesadores de múltiples núcleos, incorporan a su vez múltiples dispositivos ALU, con una diagramación compleja y potente. Pero yendo a los orígenes, fue el matemático húngaro-estadounidense John von Neumann quien, en el año 1945, a través de un informe fundacional sobre el desarrollo del Computador Automático Variable Discreto Electrónico (EDVAC, por sus siglas en inglés), propuso la idea de la ALU, explicando que es un requisito indispensable para cualquier computadora el poder efectuar operaciones matemáticas básicas. En la actualidad, las operaciones que realiza una ALU entre los distintos datos, que deben ser iguales a los que emplea el circuito digital, es la representación del número binario de complemento a dos. Sin embargo no siempre fue así: en sus comienzos, las distintas computadoras utilizaron una amplia gama de sistemas numéricos, como el Complemento a uno, o el sistema decimal, adecuando el diseño de las ALU a cada sistema. A través del tiempo, el Complemento a dos resultó ser el preferido por la industria, al ser el de mayor simplicidad para la diagramación del circuito de la ALU.

    Partes de la ALU:

  • Sumador/restador rápido
  • Operadores lógicos (AND, OR, XOR, NOT)
  • Un acumulador y un registro auxiliar
  • Un registro de salida
  • Señales de control que indiquen la operación a realizar
  • Registro de banderas de estatus
  • Registros

    Un registro es una memoria que esta ubicada en el procesador y se encuentra en el nivel más alto en la jerarquía de memoria, por lo tanto tiene una alta velocidad pero con poca capacidad para almacenar datos que va desde los 4 bits hasta los 64 bits dependiendo del procesador que se utilice. Los datos que almacena son los que se usan frecuentemente.

    Registros GPR:
    Registros de propósito general (en inglés GPRs o General Purpose Registers), en arquitectura de ordenadores, un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador.
    AX, AH, AL (Acumulador): a menudo conserva el resultado temporal después de una operación aritmética o lógica.
    BX, BH, BL (Base): Se utiliza para guardar la dirección base de listas de datos en la memoria.
    CX, CH, CL (Contador): Contiene el conteo para ciertas instrucciones de corrimientos y rotaciones, de iteraciones en el ciclo loop y operaciones repetidas de cadenas.
    DX, DH, DL (Datos): Contiene la parte más significativa de un producto después de una multiplicación; la parte más significativa del dividendo antes de la división.

    Registros de Control:
    Se utilizan para controlar las operaciones del procesador, la mayor parte de estos registros no son visibles al usuario y algunos pueden ser accesibles a las instrucciones de maquina ejecutadas en un modo de control. Los registros utilizados son los siguientes:

  • Registro de direcciones de memoria (MAR), el cual contiene la dirección en donde se efectuará la próxima lectura o escritura de datos. El número de direcciones depende del tamaño de la MAR.
  • Registro de datos de memoria (MBR), contiene los datos que van a ser escritos en la memoria o los que fueron leídos en ella.
  • Registro de direcciones de entrada y salida (I/O AR), especifica al dispositivo ya sea de entrada o salida.
  • Registro de datos de entrada y salida (I/O BR), es un área temporal en donde se lleva a cabo el intercambio de datos entre el procesador y el dispositivo de entrada y salida que esta especificado en IOAR.
  • Registro de instrucciones (IR), contiene la dirección de la siguiente instrucción que se va a ejecutar.
  • Palabras de estado del programa (PSW), contiene códigos de condición junto con otras informaciones de estado como el signo, acarro, desbordamiento, entre otras.

  • Buses

    Un bus es un conjunto de conductores eléctricos en forma de pistas metálicas impresas sobre la tarjeta madre del computador, por donde circulan las señales que corresponden a los datos binarios del lenguaje máquina con que opera el Microprocesador.
    Haga click para ver más informacion sobre buses en la sección 1.2.4 de la Unidad


    Memoria

    Conceptos básicos del manejo de la memoria

    Una unidad de memoria es un conjunto de celdas de almacenamiento junto con los circuitos asociados que se necesitan para ingresar y sacar la información de almacenamiento. La memoria almacena información binaria en grupos de bits que se denominan palabras. Una palabra en la memoria es una entidad de bits que se introducen o se sacan del almacenamiento como una unidad. Una palabra de memoria es un grupo de números 1 y 0 que puede representar un número, un código de instrucción, uno o mas caracteres alfanuméricos o cualquier otra información en código binario. La mayo parte de las memorias de las computadoras utilizan palabras cuyo número de bits es un múltiplo de 8, por lo tanto, una palabra de 16 bits contiene dos bytes, y una palabra de 32 bits está formada de cuatro bytes. La capacidad de las memorias en las computadoras comerciales por lo general se define como la cantidad total de bytes que pueden almacenarse.

    Memoria principal

    La memoria principal en una computadora se denomina memoria de acceso aleatorio. También es conocida como RAM. Esta es la parte de la computadora que almacena software del sistema operativo, aplicaciones de software y otra información para la unidad de procesamiento central (CPU) y así tener acceso rápido y directo cuando sea necesario para realizar las tareas. Se llama "acceso aleatorio" porque la CPU puede acceder directamente a una sección de la memoria principal, y no debe emprender el proceso en un orden secuencial.

    Memoria caché

    Se conoce como memoria caché o memoria de acceso rápido a uno de los recursos con los que cuenta una CPU (Central Processing Unit, o sea, Unidad Central de Procesamiento) para almacenar temporalmente los datos recientemente procesados en un búfer especial, es decir, en una memoria auxiliar.

    Existen varios tipos de memoria caché, como los siguientes:


    Manejo de la entrada/salida

    Módulos de entrada/salida

    Un módulo de E/S es un controlador de uno o varios periféricos que establece una interfaz entre el periférico y el computador (procesador y memoria) para facilitar la comunicación entre el uno y el otro de manera que buena parte de los detalles técnicos del periférico queden ocultos al resto del computador.

    Del módulo de E/S distinguimos tres partes básicas:

    1. Una interfaz interna normalizada con el resto del computador mediante el bus de sistema que nos da acceso al banco de registros del módulo de E/S.
    2. Una interfaz externa específica para el periférico que controla. Habitualmente la conexión con el periférico se realiza mediante un sistema de interconexión normalizado de E/S.
    3. La lógica necesaria para gestionar el módulo de E/S. Es responsable del paso de información entre la interfaz interna y externa.

    Entrada/salida programada

    Para hacer la operación de E/S entre el procesador y el módulo de E/S, el procesador ejecuta un programa que controla toda la operación de E/S (programación, transferencia de datos y finalización).

    1. Sincronización. Durante la sincronización, el procesador, como responsable de la transferencia, ejecuta un programa que mira constantemente el estado del periférico consultando el registro de estado del módulo de E/S. Este programa tiene un bucle que se ejecuta continuamente hasta que detecta el cambio de estado e indica que el periférico está preparado. Este método de sincronización se denomina sincronización por encuesta o espera activa.
    2. Intercambio del dato. Durante el intercambio del dato, si es una operación de lectura (entrada), el procesador lee el registro de datos del módulo de E/S para recoger el dato enviado por el periférico, y lo guarda en memoria; si es una operación de escritura (salida), el procesador toma de la memoria el dato que queremos enviar al periférico y lo escribe en el registro de datos del módulo de E/S.

    Entrada/salida mediante interrupciones

    Esta técnica de E/S pretende evitar que el procesador tenga que estar parado o haciendo trabajo improductivo mientras espera a que el periférico esté preparado para hacer una nueva operación de E/S y pueda aprovechar este tiempo para ejecutar otros programas.
    Usando la técnica de E/S por interrupciones la sincronización entre el periférico y el procesador es llevada a cabo por el módulo de E/S, de forma que se descarga al procesador de esta responsabilidad.
    Para utilizar esta técnica de E/S en un computador, es necesario considerar tanto aspectos del software como del hardware.

    Acceso directo a memoria

    En esta técnica el procesador programa la transferencia de un bloque de datos entre el periférico y la memoria encargando a un nuevo elemento conectado al bus del sistema hacer toda la transferencia. Una vez acabada, este nuevo elemento avisa el procesador. De esta manera, el procesador puede dedicar todo el tiempo que dura la transferencia del bloque a otras tareas. Este nuevo elemento que gestiona toda la transferencia de datos entre el periférico y la memoria principal lo denominamos módulo o controlador de DMA o también en versiones más evolucionadas canal o procesador de E/S.

    Canales y procesadores de entrada/salida

    Los canales de E/S son una mejora de los controladores de DMA. Pueden ejecutar instrucciones que leen directamente de memoria. Eso permite gestionar con más autonomía las operaciones de E/S y de esta manera se pueden controlar múltiples operaciones de E/S con dispositivos con una mínima intervención del procesador.
    Estos canales todavía se pueden hacer más complejos añadiendo una memoria local propia que los convierte en procesadores específicos de E/S.


    Buses

    Tipos de buses

    Estructura de los buses

    Jerarquías de buses

    Actualmente existe un conjunto de buses conectados entre sí que forman una jerarquía.
    Facilita la mejora del rendimiento de todo el computador al agrupar dentro de los diferentes tipos de buses aquellos componentes del ordenador que tienen aproximadamente la misma velocidad de transmisión de la información.
    Mientras más lejos del CPU, buses más lentos y normalmente de menos líneas de datos.

    Existen varios tipos de buses en función de su posición dentro de la jerarquía:


    Interrupciones

    Recursos que utiliza un dispositivo cuando necesita detener el proceso que está realizando la CPU.
    Es una señal que capta la atención de la CPU y que usualmente se genera cuando se requiere una entrada/salida. Por ejemplo, cuando se presiona una tecla o se desplaza el mouse, se generan interrupciones de hardware. Las interrupciones de software son generadas por un programa que requiere entrada o salida de disco.


    Exposición Unidad 1:


    Practica 1