Está en la página 1de 47

Arquitectura de

computo
T EM A1
Arquitectura
• Arte y técnica de diseñar, proyectar y construir

Computadora El término proviene del latín computare (“calcular”).


• Máquina electrónica capaz de almacenar información y tratarla
automáticamente mediante operaciones matemáticas y lógicas
controladas por programas informáticos
Concepto de arquitectura de computo
• La arquitectura de computadoras es el diseño conceptual y la
estructura operacional fundamental de un sistema que conforma una
computadora. Es decir, es un modelo y una descripción funcional de
los requerimientos y las implementaciones de diseño para varias
partes de una computadora, con especial interés en la forma en que
la unidad central de proceso (CPU) trabaja internamente y accede a
las direcciones de memoria.
• La arquitectura de una computadora explica la situación de sus
componentes y permite determinar las posibilidades de
un sistema informático, con una determinada configuración, pueda
realizar las operaciones para las que se va a utilizar. La arquitectura
básica de cualquier ordenador completo está formado por solo 5
componentes básicos:
• Procesador
• Memoria RAM,
• Disco duro,
• Dispositivos de entrada/salida
• software.
Modelos de arquitectura de cómputo

• 1.1.1 Clásica
• 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)
• ¿Quién fue Von Neumann?
• fue un matemático húngaro-estadounidense que
realizó contribuciones fundamentales en física
cuántica, análisis funcional, teoría de conjuntos, teoría
de juegos, ciencias de la computación, economía,
análisis numérico, cibernética, hidrodinámica,
estadística y muchos otros campos.1​Se le considera
uno de los matemáticos más importantes de la historia
moderna.
• 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.
• Diagrama a bloques de la arquitectura 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 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)
• el procesador se subdivide en una unidad de control (C.U.),
• una unidad lógica aritmética (A.L.U.)
• 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.
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.

El hecho de tener un bus separado para el programa y otro para los datos permite que se
lea el código de operación de una instrucción, al mismo tiempo se lee de la memoria de
datos los operandos de la instrucción previa. Así se evita el problema del cuello de botella
de Von Newman y se obtiene un mejor desempeño
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.
• 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
En un procesador con segmentación del cause, 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
Es una técnica de implementación por medio de la cual se puede
traslapar la ejecución de instrucciones.

• En la actualidad la segmentación es una de las tecnologías


utilizadas para hacer procesadores más rápidos.
• Ejemplo una lavandería
• Luis, Juan, Gabriela,
Lucrecia cada uno tiene una
carga de ropa para lavar,
secar y doblar.

• Las lavadoras toman 30


minutos
• Las secadoras toman 30
minutos
• Doblarla toma 30 minutos
• Acomodarla toma 30
minutos
1.1.3 Arquitecturas de multiprocesamiento.
Cuando se desea incrementar el desempeño más allá 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:

● SISO – (Single Instruction, Single Operand ) computadoras independientes


Solo siguen una instrucción y una operación

● SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales


Solo siguen una instrucción pero varias operaciones para resolver algoritmos matemáticos mediante
matrices se usa mucho en la simulación físicas como para predecir el clima o una castastrofe nuclear

● MISO – (Multiple Instruction, Single Operand ) No implementado

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


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.
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 aplicar el
mismo algoritmo numérico.
1.2.1 CPU.

El procesador, también conocido como CPU o micro, está formado por millones
de transistores y componentes electrónicos de un tamaño microscópico. Sus
funciones principales incluyen el manejo del sistema operativo, la ejecución de
las aplicaciones y la coordinación de los diferentes dispositivos que componen el
equipo.

El procesamiento de las tareas o eventos que este realiza va en función de los


nanosegundos, haciendo que los miles de transistores que contiene este
trabajen en el orden de los MHz.

En el aspecto físico, no es más que una pequeña pastilla de sustrato con un chip
de silicio la cual está recubierta de lo que llamamos encapsulado. Este se inserta
en la placa base sobre un conector que se denomina socket, aunque esto no
siempre es así, en un laptop o portátil lo normal es que se suelde directamente.

Existen tres modelos de encapsulado, PGA, LGA y BGA.


La placa se convierte así en la encargada de la conexión con los restante cs
dispositivos, como son la memoria RAM, la tarjeta gráfica o el disco duro
usando para ello un conjunto de circuitos y chips que te encuentras sobre ella
al que llamamos chipset.

Desde un punto de vista histórico el procesador es uno de los elementos del


PC que más ha evolucionado, tanto en su proceso de fabricación, como en su
arquitectura interna.

Gracias a estas mejoras, se han podido incluir más bloques funcionales en su


interior. En un principio fue el controlador de memoria, después la tarjeta
gráfica y en un futuro muy cercano, pasaremos del concepto de procesador a
lo que se denomina SOC, es decir, un chip con todos los elementos de la placa
base en su interior mejorando así el tamaño y reduciendo el consumo.
¿Qué componentes tiene un procesador moderno?

Ten en cuenta que no todos son iguales pero la mayoría de ellos incluyen
entre otros elementos:
Núcleos. Un núcleo no es más que un procesador en miniatura.
Los procesadores modernos tienen varios de ellos lo cual hace que puedan
acelerar ciertos tipos de aplicaciones y evitar bloqueos.

Cache. La memoria cache es el elemento del sistema de memoria de un


PC que se encuentra en el interior del micro, se usa para acelerar la
velocidad de los accesos a la RAM.

La cache se encuentra, a su vez, organizada en varios niveles cada uno


más lento y grande que el anterior. Será tarea del micro dejar los datos
que más se usen lo más cerca posible para así acelerar la ejecución de los
programas.
Controlador de memoria. Este fue uno de los primeros elementos que se
integro consiguiendo acelerar el acceso la memoria RAM. Esto tiene un
inconveniente y es que sólo puedes usar el tipo de memoria para la que tu
procesador este preparado.
Esto no ha sido siempre así ya que antes el tipo de memoria que podías usar
dependía de la placa base y no era raro que esta estuviera preparada para
poder funcionar con varios tipos de RAM.

Tarjeta gráfica. Si integran este componente ya no hablamos de CPUs sino


de APUs. Ya no estaríamos ante un micro convencional si no ante un hibrido
entre procesador y tarjeta gráfica. En la actualidad y parece que en
desarrollos futuros casi todos los micros con los que te encuentres serán de
este tipo.

Otros elementos. Los micros han incorporado aún mas funcionalidad que
antes se encontraba sobre la placa base. Por ejemplo, el controlador de
PCI Express, aumentando la velocidad con la que el micro es capaz de
comunicarse con otros dispositivos.
¿Cómo funciona un procesador?

Todo el sistema está gobernado por un reloj que se usa para sincronizar los
diferentes bloques funcionales. La velocidad a la que este cambia de estado se
denomina frecuencia de funcionamiento y está relacionada con la capacidad de
cómputo del sistema.

El funcionamiento de un procesador se puede dividir en las siguientes etapas:

Se lee una instrucción de memoria. El conjunto de instrucciones de cualquier


procesador actual incluye más de mil diferentes y va creciendo con el tiempo. Se
añaden para mejorar la velocidad de procesamiento de ciertas aplicaciones.

Se buscan los datos. Algunas instrucciones necesitaran de datos para realizar


sus cálculos que pueden no encontrarse dentro del procesador y tendrán que
buscarse por tanto en el sistema de memoria.

Se realiza la operación. Una vez que se tiene todo se ejecuta la operación, para
esto puede ser necesario el trabajo de varios bloques como la
unidad aritmética lógica o la de punto flotante.
Se pasa a la siguiente instrucción. Que no es siempre la que se encuentra a continuación
en la memoria. Muchas instrucciones pueden cambiar el flujo del programa y permitir
saltos o repetir ciertas acciones hasta que se cumpla una determinada condición.

Una de las técnicas más usadas para aumentar la velocidad incluye la ejecución de
instrucciones fuera de orden intentando optimizar el uso de los bloques funcionales. En
estos procesadores se ejecutan las operaciones cuando están sus datos y no en el orden en
que fueron escritas. Esto por supuesto lleva a una arquitectura más compleja que debe de
controlar que los resultados sean coherentes.

Otra de las mejoras es el predictor de saltos. Este elemento trata de acertar si en una
determinada operación se va a producir una bifurcación en el código o no. De esta forma
puede ejecutar las instrucciones de una determinada rama incluso antes de saber si se va a
producir un salto a ella.
Todas estas técnicas lo que tratan es de mejorar el IPC es decir la capacidad del procesador
de ejecutar más instrucciones en la misma cantidad de tiempo.
1.2.2 Memoria

la memoria es uno de los componentes fundamentales para el correcto


funcionamiento de nuestra PC, ya que su existencia permite que la computadora puede
arrancar, se procesen los datos, se ejecuten las instrucciones para los distintos
programas y demás.

la memoria es el 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.

cuanto mayor es la cantidad de memoria que posea una PC, mayor será el
rendimiento y la mejora en la performance del equipo.
No obstante, una computadora trabaja con cuatro tipos de memorias diferentes, que sirven para
realizar diversas funciones. Estas son la memoria RAM, la memoria ROM, la memoria SRAM o
Caché y la memoria Virtual o de Swap.

Entre todas ellas, la más importante es la denominada memoria RAM (Random Access Memory),
ya que nuestra computadora no podría funcionar sin su existencia.

En la RAM se guarda distinto tipo de información, desde los procesos temporales como
modificaciones de archivos, hasta las instrucciones que posibilitan la ejecución de las
aplicaciones que tenemos instaladas en nuestra PC.

Por tal motivo, es utilizada constantemente por el microprocesador, que accede a ella para
buscar o guardar temporalmente información referente a los procesos que se realizan en la
computadora.
Dentro de las memorias RAM existen distintos tipos de tecnologías que se diferencian principalmente por
su velocidad de acceso y su forma física. Entre ellas encontramos las DRAM, SDRAM, RDRAM, entre otras.

Las denominadas DRAM (Dynamyc Random Acces Memory) han sido utilizadas en las computadoras
desde los primeros años de la década de los 80's, y aún en la actualidad continúan utilizándose. Se trata de
uno de los tipos de memorias más económicas, aunque su mayor desventaja está relacionada con la
velocidad de proceso, ya que es una de las más lentas, lo que ha llevado a los fabricantes a modificar su
tecnología para ofrecer un producto mejor.

En cuanto al tipo de tecnología SDRAM, derivada de la primera, comenzó a comercializarse a finales de la


década de los 90's, y gracias a este tipo de memoria se lograron agilizar notablemente los procesos, ya
que puede funcionar a la misma velocidad que la motherboard a la que se encuentra incorporada.

Por su parte, la tecnología RDRAM es una de las más costosas debido a su complejidad de fabricación, y
sólo se utilizan en procesadores grandes, tales como los Pentim IV y superiores.
Además de la memoria RAM, las computadoras trabajan con la memoria denominada ROM, Read
Only Memory, que como su nombre lo indica se trata de una memoria sólo de lectura, ya que la mayoría
de estas memorias no pueden ser modificadas debido a que no permiten su escritura.

La memoria ROM viene incorporada a la motherboard y es utilizada por la PC para dar inicio a la
BIOS, lo cual es básicamente un programa que posee las instrucciones adecuadas para guiar a la
computadora durante el arranque.

Entre sus funciones, la BIOS comienza con el proceso denominado POST (Power On Self Test) durante el
cual inspeccionará todo el sistema para corroborar que todos sus componentes funcionan
adecuadamente para dar lugar al arranque.

Para ello, la BIOS consulta un registro en el que se halla toda la información referente al hardware que
tenemos instalado en nuestra PC, para comprobar que todo se encuentre en orden. Dicho registro es
denominado CMOS Setup.
Si bien mencionamos que en muchos casos la memoria ROM no puede ser
modificada, en la actualidad gran cantidad de motherboards incorporan nuevos
modelos de ROM que permiten su escritura, para que el usuario pueda realizar
cambios en la BIOS con el fin de mejorar su funcionamiento.

La diferencia fundamental que existe entre la memoria RAM y la ROM radica


en la velocidad, ya que la ROM al tratarse de un tipo de memorial secuencial
necesita recorrer todos los datos hasta hallar la información que está
buscando, mientras que la RAM trabaja de manera aleatoria, lo que hace que
acceda a la información específica de manera directa.

Este factor hace que la velocidad de la RAM sea notablemente superior.


Asimismo, la capacidad de ésta es mayor a la de la memoria ROM, y a diferencia
de esta última, la RAM no viene integrada al motherboard, lo que permite que el
usuario pueda expandir la cantidad de memoria RAM de su PC.
Otro de los tipos de memoria utilizados por las computadoras es la denominada SRAM, más
conocida como memoria Caché.

Tanto el procesador como el disco rígido y la motherboard poseen su propia memoria caché,
que básicamente resguarda distintas direcciones que son utilizadas por la memoria RAM
para realizar diferentes funciones, tales como ejecutar programas instalados en la PC.

El proceso que realiza la memoria caché es guardar las ubicaciones en el disco que ocupan los
programas que han sido ejecutados, para que cuando vuelvan a ser iniciados el acceso a la
aplicación logre ser más rápido.

Existen tres tipos de caché diferentes:

- El caché L1 que se encuentra en el interior del procesador y funciona a la misma velocidad que
éste, y en el cual se guardan instrucciones y datos.

- El caché L2 que suelen ser de dos tipos: interno y externo. El primero se encuentra dentro de la
motherboard, mientras que el segundo se halla en el procesador pero de manera externa, lo que
lo hace más lento que el caché L1.

- El caché L3 que sólo vienen incorporado a algunos de los microprocesadores más avanzados,
lo que resulta en una mayor velocidad de procesos.
En algunas computadoras, sobre todo en aquellas que poseen sistema operativo Microsoft
Windows o Linux, también encontraremos la denominada memoria virtual o de Swap.

Este tipo de memoria, que funciona de manera similar a la caché, es creada por Windows o
Linux para ser utilizada exclusivamente por el sistema operativo. En el caso de Linux esta
denominada memoria swap generalmente está ubicada en una partición diferente del
disco, mientras que en el sistema de Microsoft es un archivo dentro del sistema operativo
mismo.

En muchas ocasiones la memoria virtual suele producir ciertos problemas que ocasionan
que la PC se cuelgue, ya que este tipo de memoria ha sido creada por el sistema dentro del
disco rígido y a veces puede llegar a superar la capacidad de proceso.

En la ejecución de programas mediante la memoria virtual, sólo obtendremos como


resultado que nuestra PC se vuelva más lenta, ya que le resta velocidad de proceso al disco
rígido.

La mejor forma de evitar este inconveniente


es expandir la cantidad de memoria RAM de nuestra PC, para que el sistema no necesite de
la creación de memoria virtual extra, y por ende relentice los procesos durante nuestro
trabajo.
Con respecto a este punto, en la actualidad coexisten tres tipos de memoria RAM, la
llamadas DDR, DDR2 y DDR3, estos últimos dos tipos todavía muy utilizados, mientras que
Manejo de la entrada/salida

En computación, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), es la
colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de
procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a
través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son
las señales enviadas por ésta.

El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar
una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para
comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de
entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de
salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las
dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red.
Módulos de entrada/salida

En primer termino hablaremos de los dispositivos de entrada, que como su nombre lo


indica, sirven para introducir datos (información) 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.
Estructura del sistema de E/S del computadora

Los elementos principales que forman el sistema de E/S son los siguientes:

• los periféricos,
• los módulos de E/S,
• los sistemas de interconexión externos y
• el mapa de memoria e instrucciones de E/S.
Periféricos
Los periféricos son dispositivos que se conectan al computador mediante los módulos de E/S y que sirven para
almacenar información o para llevar a cabo un tipo determinado de comunicación con el exterior con
humanos, con máquinas o con otros computadores.

La clasificación más habitual es la siguiente:


Para la interacción con humanos:
Entrada.
Salida.
Para la interacción con otros computadores o sistemas físicos (en los que las operaciones que se hacen son
generalmente de E/S):
Almacenamiento.
Comunicación.
En un periférico distinguimos habitualmente dos partes: una parte mecánica y una parte
electrónica. La parte mecánica hace funcionar los elementos principales que forman el periférico,
como el motor para hacer girar un disco o mover el cabezal de una impresora, el botón de un ratón o
el láser de un dispositivo óptico. La parte electrónica nos permite, por una parte, generar las señales
eléctricas para gestionar los elementos mecánicos y, por otra parte, hacer la conversión de los datos
provenientes del computador a señales eléctricas o al revés.

La conexión física entre un periférico y el computador se lleva a cabo mediante lo que


denominamos sistema de interconexión de E/S. Este sistema de interconexión de E/S nos permite
hacer la gestión de las señales de control, de estado y de datos necesarias para llevar a cabo una
transferencia de información que, como veremos más adelante, es gestionada desde el módulo de
E/S del computador.
Módulos 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.
La comunicación entre los módulos de E/S y la computadora es siempre la misma para todos los módulos. Esta
comunicación se establece mediante el bus del sistema, de modo que el procesador ve el módulo de E/S como
un espacio de memoria, pero estas direcciones, físicamente, corresponden (están mapeadas) a cada uno de los
registros que tiene el módulo de E/S de la computadora y se denominan habitualmente puertos de E/S. De esta
manera conseguimos que la comunicación entre la computadora y el módulo de E/S se lleve a cabo mediante
instrucciones de transferencia para leer y escribir en sus registros, de una manera muy parecida a como
hacemos para acceder a la memoria.

Estos registros se pueden agrupar según el tipo de señales o el tipo de información que necesitamos para hacer
una gestión correcta del periférico:
Registros de control.
Registros de estado.
Registros de datos.
Para gestionar la comunicación entre el procesador y el módulo de E/S son necesarios diferentes tipos
de señales.
Las señales de control las utilizamos generalmente para dar órdenes al módulo de E/S, como empezar
o parar una transferencia, seleccionar modos de operación del periférico o indicar acciones concretas
que debe hacer el periférico, como comprobar si está disponible. Estas señales se pueden recibir
directamente de las líneas de control del bus del sistema o de las líneas de datos del bus del sistema y se
almacenan en el registro de control.
Las señales de estado nos dan información del estado del módulo de E/S, como saber si el módulo está
disponible o está ocupado, si hay un dato preparado, si se ha acabado una operación, si el periférico
está puesto en marcha o parado, qué operación está haciendo, o si se ha producido algún error y qué
tipo de error. Estas señales se actualizan generalmente mediante la lógica del módulo de E/S y se
almacenan en el registro de estado.
Los datos son la información que queremos intercambiar entre el módulo de E/S y el procesador
mediante las líneas de datos del bus del sistema y se almacenan en el registro de datos.

Las direcciones las pone el procesador en el bus de direcciones y el módulo de E/S debe ser capaz de
reconocer estas direcciones (direcciones de los puertos de E/S) correspondientes a los registros de este
módulo. Para saber si la dirección corresponde a uno de los registros del módulo utilizamos un
descodificador. Este descodificador puede formar parte del módulo de E/S o de la misma lógica del bus
del sistema.
Técnicas de E/S

• E/S programada.
• E/S por interrupciones.
• E/S por DMA.
• Canales de E/S.
Entrada/Salida Programada

• El CPU tiene el control absoluto de la operación de E/S: inicia


y lleva a cabo la transferencia. • La CPU está dedicándose por
completo a realizar la operación de E/S: realiza tanto la
comprobación de estado como la transferencia y la
inicialización: poco eficiente. • Hardware mínimo.
Entrada/Salida mediante Interrupciones

La E/S le indica al CPU cuando está preparada para transferir datos (genera una interrupción al CPU),
activando una línea especial conectada al CPU (línea de interrupción).

Funcionamiento
1. El procesador ejecuta instrucciones de un programa. Al finalizar cada instrucción comprueba si se ha
producido una interrupción.
2. En caso afirmativo se salva el estado actual del programa (contador del programa y registros) y se
salta a ejecutar la rutina de servicio correspondiente.
3. La rutina de servicio efectúa las operaciones apropiadas en la E/S para realizar la transferencia de
datos solicitada.
4. Al finalizar la rutina de servicio se recupera el estado de la CPU y se continúa ejecutando el programa
que se estaba ejecutando antes de la interrupción.
E/S por DMA (Acceso directo a memoria)

El DMA (Direct Memory Access) es un procesador/controlador especializado en transferencias “muy


grandes” desde periféricos a memoria y viceversa.

Es programable. La CPU no realiza ninguna tarea (salvo programar el DMA) ya que la inicialización y
transferencia son gobernadas por el periférico.

Para programar el DMA hay que enviarle al menos


los siguientes datos:
• Dirección/puerto periférico E/S.
• Posición/dirección en memoria principal.
• Tamaño (número de bytes a transferir).
• Tipo transferencia: lectura o escritura.
A diferencia del mecanismo por interrupción convencional, una orden DMA puede transferir
muchísimos datos de una sola vez. Por lo tanto, el número de interrupciones por byte transferido es
mucho menor que con las interrupciones convencionales: se gana en rapidez. • El procesador no se
encarga de la transferencia de datos.
Canales y procesadores de E/S
Siguiente evolución en los sistemas de E/S: tener un procesador capaz de interpretar secuencias de
operaciones y de esa forma tener bajo su control un mayor número de operaciones y módulos
de E/S, cada vez más complejas.

• El canal de E/S es un “pequeño” procesador especializado en operaciones de E/S. Si además


tiene memoria propia, entonces se lo llama
procesador de E/S.

También podría gustarte