Estas arquitecturas se desarrollaron en las primeras
computadoras electromecánicas y de tubos de vacío.
Hay dos arquitecturas distintas relacionadas con el uso y
distribución de la memoria: Arquitectura de Jonh Von
Neumman y Arquitectura Harvard.
Tradicionalmente los sistemas con microprocesadores se
basan en esta arquitectura, en la cual la unidad central de
proceso (CPU), está conectada a una memoria principal
única (casi siempre sólo RAM) donde se guardan las
instrucciones del programa y los datos. A dicha memoria se
accede a través de un sistema interconexión de buses único
(control, direcciones y datos).
En un sistema con arquitectura Von Neumann el tamaño de
la unidad de datos o instrucciones está fijado por el ancho
del bus que comunica la memoria con la CPU. Así un
microprocesador de 8 bits con un bus de 8 bits, tendrá que
manejar datos e instrucciones de una o más unidades de 8
bits (bytes) de longitud.
Si tiene que acceder a una instrucción o dato de más de un
byte de longitud, tendrá que realizar más de un acceso a la
memoria.
El tener un único bus hace que el microprocesador sea más
lento en su respuesta, ya que no puede buscar en memoria
una nueva instrucción mientras no finalicen las
transferencias de datos de la instrucción anterior.
Las computadoras digitales convencionales presentan un
aspecto Von Neumann. Este modelo consta de cinco
componentes principales.
1.Unidad de Memoria.
2.Unidad de Entrada/Salida.
3.Unidad de Control. Incluidos CPU.
4.Unidad Aritmética Lógica. Incluida en CPU.
5.Registros de Programas. Incluidos en CPU.
Las instrucciones provenientes del sistema de entrada, son
almacenados por la memoria, procesados por la ALU bajo la
dirección de la unidad de control. Los resultados obtenidos
son enviados a la unidad de salida.
El programa almacenado es lo más importante en el modelo.
Los programas se almacenan en la memoria del equipo junto
con los datos a procesar.
Las limitaciones de este modelo son:
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 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.
Esta arquitectura utiliza los Micro controladores, tiene la
unidad central de proceso (CPU) conectada a dos memorias
(una con las instrucciones y otra con los datos) por medio de
dos buses diferentes.
Una de las memorias contiene solamente las instrucciones
del programa (Memoria de Programa), y la otra sólo
almacena datos (Memoria de Datos).
Ambos buses son totalmente independientes lo que permite
que la CPU pueda acceder de forma independiente y
simultánea a la memoria de datos y a la de instrucciones.
Como los buses son independientes estos pueden tener
distintos contenidos en la misma dirección y también distinta
longitud.
También la longitud de los datos y las instrucciones puede
ser distinta, lo que optimiza el uso de la memoria en general.
Para un procesador de Set de Instrucciones Reducido, o
RISC (Reduced Instrucción Set Computer), el set de
instrucciones y el bus de memoria de programa pueden
diseñarse de tal manera que todas las instrucciones tengan
una sola posición de memoria de programa de longitud.
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.
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.
Limita el grado de paralelismo (acciones que se pueden
realizar al mismo tiempo) y por lo tanto, el desempeño de la
computadora.
Es una de las tecnologías utilizadas para realizar la
segmentación o paralelismo. Divide el procesador, en etapas,
procesa una instrucción diferente en cada una y trabaja con
varias a la vez.
Pueden trabajar de forma paralela, en diferentes
instrucciones, utilizando una cola de instrucciones para su
comunicación, denominado entubamiento.
La dependencia de datos y de control, que tiene como efecto
la disminución del rendimiento del pipelining.
La segmentación de cauce (pipelining) es una forma efectiva
de organizar el hardware del CPU para realizar más de una
operación al mismo tiempo.
Consiste en descomponer el proceso de ejecución de las
instrucciones en fases o etapas que permitan una ejecución
simultánea.
La segmentación es una técnica de implementación por la
cual se solapa la ejecución de múltiples instrucciones.
La técnica de implementación clave utilizada para hacer
CPU rápidas.
La segmentación es como una línea de ensamblaje: cada
etapa de la segmentación completa una parte de la
instrucción.
Como en una línea de ensamblaje, la acción a realizar en una
instrucción se descompone en partes más pequeñas, cada una
de las cuales necesita una fracción del tiempo necesario para
completar la instrucción completa.
La segmentación es una técnica de implementación, que
explota el paralelismo entre las instrucciones de un flujo
secuencial. Tiene la ventaja sustancial que, de forma distinta
a algunas técnicas de aumento de velocidad, no es visible al
programador.

Tipos de cauces:
Unifunción: ejecutan un único proceso.
Multifunción: pueden ejecutar varios procesos.
Estáticos: en un instante determinado sólo pueden ejecutar uno.
Dinámicos: pueden ejecutar simultáneamente varios procesos.
Lineal: a cada etapa sólo le puede seguir otra etapa concreta.
No lineal: se pueden establecer recorridos complejos de las etapas.
Se denomina multiprocesador a un computador que cuenta
con dos o más microprocesadores (CPUs).
El multiprocesador puede ejecutar simultáneamente varios
hilos pertenecientes a un mismo proceso o bien a procesos
diferentes.
La arquitectura NUMA, donde cada procesador tiene acceso
y control exclusivo a una parte de la memoria.
La arquitectura SMP, donde todos los procesadores
comparten toda la memoria.
Para que un multiprocesador opere correctamente necesita
un sistema operativo especialmente diseñado para ello.
La mayoría de los sistemas operativos actuales poseen esta
capacidad.
Cuando se desea incrementar el desempeño más de lo que
permite la técnica de segmentación (pipeline), se requiere
utilizar más de un procesador para la ejecución del programa
de aplicación.
Los CPU de multiprocesamiento según Flynn se clasifican de la siguiente manera:
SISO - (Single Instruction, Single Operand) computadoras Monoprocesador.
SIMO - (Single Instruction, Multiple Operand) procesadores vectoriales, Exenciones MMX.
MISO - (Multiple Instruction, Single Operand) No implementado.
MIMO - (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters, GPUs.

Los 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 de clima,
explosiones atómicas, reacciones químicas, 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.
En los sistemas SMP (Simetric Multiprocessing), varios
procesadores comparten la misma memoria principal y
periféricos de Entrada /Salida, 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.
Clusters
Conjuntos de computadoras independientes conectadas en
una red de área local o por un bus de interconexión y que
trabajan cooperativamente. Con un sistema de procesamiento
paralelo o distribuido. Consta de un conjunto
de computadoras independientes, interconectadas entre sí, de
tal manera que funcionan como un solo recurso
computacional.
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.

Procesadores Gráficos (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.

Una computadora está formada fundamentalmente por dos aspectos básicos: Hardware y software.
Tenemos componentes esenciales y específicos para tareas puntuales.
Componentes Internos.
Cuando hablamos de una computadora nos referimos al conjunto
de componentes internos que se encuentra colocados dentro del gabinete.
Como sabes, los componentes internos son los que componen el hardware de
la computadora.
Los principales componentes internos de la computadora son:
-Tarjeta madre (Motherboard)/placa base.
-CPU o procesador.
-Memoria RAM.
-Disco duro (HD).
-Fuente de alimentación.
Además por lo general para evitar que en el interior de gabinete se acumule
calor que generan estos componentes, se añaden otros elementos que también
son considerados componentes internos.
Estos pueden ser:
-Disipadores.
-Ventiladores.
-Refrigeración líquida.
Tarjeta Madre (MotherBoard).
La tarjeta madre (MB) , también llamada “placa base” es de los componentes
esenciales de las computadoras. En ella se conectan los diferentes
componentes internos, incluyendo el procesador CPU, la memoria RAM, la
tarjeta gráfica, los discos duros, es decir todos los elementos internos.

Memoria RAM.
La Random Access Memory o más conocida como memoria RAM se conecta
a la tarjeta madre y en ella se guardan y se cargan las instrucciones que se
ejecutan en el procesador.
Esas instrucciones son enviadas desde los componentes y dispositivos
conectados a la tarjeta madre y a los puertos de la computadora.
Las características principales que definen el funcionamiento de la memoria
RAM son (soportadas por la tarjeta madre):
-Cantidad de memoria en GB.
-Tipo de memoria RAM.
-Velocidad de la memoria.
-Tipo de ranura.

Disco duro.
El disco duro de tu computadora es el componente encargado de almacenar de
forma permanente sistemas operativos así como los datos que ingresan en la
computadora.
Todo la información que contiene la computadora, incluyendo documentos
(archivos, aplicaciones, fotografías música, descargas de internet, etc.) Pero
además en él también se almacena el sistema operativo y todos los
programas instalados en la computadora.

Fuente de alimentación.
La fuente de alimentación es el componente que proporciona corriente
eléctrica a todos los elementos de la computadora. Esta se encuentra dentro
del gabinete.
Para ello, la fuente de alimentación transforma la corriente alterna de la red de
tu casa en corriente continua. Luego de ello la distribuye a todos los
componentes que estén conectados a la computadora.

Tarjeta gráfica.
La tarjeta gráfica, también llamada placa o tarjeta de video es un dispositivo
que se conecta a la ranura de expansión de la placa base.
La misma incluye un procesador gráfico o GPU, el cual se encarga de procesar
los gráficos de la computadora.
Lo cierto es que por lo general la tarjeta gráfica de alta capacidad no viene
incluida en la computadora, ya que la mayoría de las placas base incluyen de
fábrica un circuito capaz de encargarse de realizar el procesamiento de los
gráficos.

Disipadores y ventiladores.
Un disipador recoge el calor que genera un componente y lo disipa para que
reduzca la temperatura de ese elemento electrónico.
Se suma a ello los ventiladores internos de gabinete, que cumplen la función
de mantener un flujo de aire constante en el interior del gabinete. Existen
sistemas para mantener la temperatura de la computadora llamados
refrigeración líquida.
Componentes Externos.
- Gabinete.
- Monitor.
- Mouse.
- Teclado.
- Bocinas.
- Micrófono.
Según aplicación de usuario.
- Cámara web.
- Escáneres.
- Controles de juegos de video.
- Sensor de huellas digitales.
- Lector de código de barras.
- Equipos especializados (médicos y musicales, entre otros) etc.
El CPU es algo así como el cerebro de tu computadora. En realidad es el
elemento encargado de analizar y procesar toda la información que ingresa y
sale de la computadora.

Los CPUs modernos pueden clasificarse de acuerdo a varias
características, tales como:
Tamaño de la Unidad Aritmética Lógica (ALU).
Bus de conexión al exterior (8, 16, 32, 64 bits).
Si su arquitectura tiene cauce (pipeline).
Si son de arquitectura CISC o RISC.
Si son Von Newmann o Harvard.
Si manejan instrucciones enteras o implementan también
instrucciones de punto flotante.
Características:
Las características más importantes a considerar al escoger
un CPU en una aplicación, son:
Modelo del programador (Conjunto de registros que el
programador puede utilizar), forman el modelo mental del
CPU que el programador utiliza al programar en
ensamblador.
Conjunto de instrucciones que puede ejecutar el CPU.
Los modos de direccionamiento que pueden usarse para
obtener los operandos de las instrucciones.
Ciclo de instrucción (el conjunto de pasos que realiza el CPU
para procesar cada instrucción)
Buses de interconexión, usados para que el CPU lea y
escriba a la memoria.
Dispositivos de entrada y salida.
Es un circuito logico digital que realiza operaciones aritmeticas y logicas entres los datos de un circuito:
suma resta, division y multiplicacion, asi como establece comparaciones logicas a traves de los condicionales
logicos "si", "no", y "o".
Todos los microprocesadores incluyen al menos una ALU, que varia su poder y complejidadsegún su finalidad Además,
la ALU cuenta con una serie de registros para almacenar los datos y bits de informacion sobre los resultados.
Operaciones a realizar por la ALU:
- Suma aritmetica
- Resta aritmetica
- Operaciones loficas
- Desplazamiento o retacion
- Transferencia

Registros del procesador (CPU).
Los registros que encuentran dentro de cada procesador su
función principales almacenar los valores de cada uno de los
datos,comandos,instrucciones o estados binarios que son los
que ordenan qué dato debe procesarse, así como la forma en
la que se debe realizar.
Un registro no deja de ser una memoria de velocidad alta y
con poca capacidad.
Cada registro puede contener una instrucción, una dirección
de almacenamiento o cualquier tipo de dato.
En un procesador encontramos espacios con una capacidad
que oscila entre 4 y 64 bits porque cada registro debe tener un
tamaño suficiente para contener una instrucción. En el caso de
que un ordenador de 64 bit, cada registro de tener un tamaño
de 64 bits.

Tipos de registros
Los registros del procesador se dividen o clasifican
atendiendo al propósito que sirven o a las instrucciones que
les ordenan.
- Registros de datos:
Guardan valores de datos numéricos, como son los
caracteres o pequeñas órdenes.
Los procesadores antiguos tenían un registro especial de
datos: el acumulador, el cual era usado para operaciones
determinadas.
- Registro de datos de memoria (MDR):
Es un registro que se encuentra en el procesador y que está
conectado al bus de datos. Tiene poca capacidad y una
velocidad alta por la que escribe o lee los datos del bus que
van dirigidos a la memoria o al puerto E/S, es decir, un
periférico.
- Registros de direcciones:
Guardan direcciones que son usadas para acceder a la
memoria principal o primaria, que solemos conocer como
ROM o RAM. En este sentido, podemos ver procesadores con
registros que se usan solo para guardar direcciones o valores
numéricos.
- Registros de propósito general (GPRs):
Son registros que sirven para almacenar direcciones o datos
generales. Se trata de una especie de registros mixtos que,
como su propio indica, no tienen una función específica.
- Registros de propósito específico (SPRs).
En esta ocasión, estamos ante registros que guardan datos del
estado del sistema, como puede ser el registro de estado o el
instruction pointer.
- Registros de estado:
Sirven para guardar valores reales cuya función es determinar
cuándo una instrucción debe ejecutarse o no.
Registros constantes:
Su cometido es guardar valores de sólo lectura como son el
0, 1 ó π.
Existen dos tipos primordiales de buses (conexiones) para el
envío de la información: bus paralelo o serial.
Hay diferencias en el desempeño y hasta hace unos años se
consideraba que el uso apropiado dependía de la longitud
física de la conexión: para cortas distancias el bus paralelo,
para largas el serial.
Bus paralelo: Es un bus en el cual los datos son enviados por
bytes al mismo tiempo, con la ayuda de varias líneas que
tienen funciones fijas. La cantidad de datos enviada es
bastante grande con una frecuencia moderada y es igual al
ancho de los datos por la frecuencia de funcionamiento.
Bus serie: En este los datos son enviados, bit a bit y se
reconstruyen por medio de registros o rutinas de software.
Está formado por pocos conductores y su ancho de banda
depende de la frecuencia. Es usado desde hace menos de 10
años en buses para discos duros, tarjetas de expansión y para
el bus del procesador.
Buses del procesadror.
Bus de Direcciones: Es unidireccional debido a que la
información fluye es una solo sentido, del CPU a la memoria
ó a los elementos de entrada y salida.
El CPU puede colocar niveles lógicos en las 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 ó dispositivo de E / S.
Bus de Datos: Es bidireccional, pues los datos pueden fluir
hacia ó desde el CPU.Las terminales pueden ser entradas ó
salidas, según la operación que se este realizando ( lectura ó
escritura ).En todos los casos, las palabras de datos
transmitidas tiene m bits de longitud debido a que el CPU
maneja palabras de datos de m bits; del número de bits del
bus de datos, depende la clasificación del procesador.
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
Lectura o Escritura R / W , son señales que el 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 al
CPU, como son INT, RESET, BUS RQ.

Tecnología de buses.
Un bus se puede definir como una línea de interconexión
portadora de información, constituida por varios hilos
conductores (en sentido físico) o varios canales (en sentido
de la lógica), por cada una de las cuales se transporta un bit
de información. El número de líneas que forman los buses
(ancho del bus) es fundamental: Si un bus está compuesto
por 16 líneas, podrá enviar 16 bits al mismo tiempo.
Bus Interno: Este mueve datos entre los componentes
internos del microprocesador.
Bus local: De alta velocidad que conecta el procesador a la
caché, el controlador de la caché también puede acceder al
bus del sistema, con esta implementación, la mayor parte de
los datos a los que va a acceder el procesador, que están en la
caché, serán entregados a una alta velocidad, otro punto a
destacar de esta parte es que los accesos a memoria por parte
de la caché no van a interrumpir el flujo de datos entre
procesador y caché.
Bus del sistema: En el está conectada la memoria y por
debajo el bus de expansión, al cual se pueden conectar una
amplia diversidad de dispositivos, entre el bus del sistema y
el bus de expansión se encuentra una interface, que entre las
principales tareas está la de adaptar las velocidades de
transmisión, por ejemplo para un dispositivo muy lento
conectado al bus de expansión la interface podría acumular
una cierta cantidad de datos y luego transmitirla a través del
bus del sistema.
Bus Externo: Este se utiliza para comunicar el procesador y
otras partes, como periféricos y memoria.
Buses multiplexados básicos: En las computadora, el microprocesador controla
(y se comunica con) las memorias y los dispositivos de entrada/salida (E/S) a
través de la estructura de bus interna. El bus está multiplexado de manera que
cualquiera de los dispositivos que están conectados al mismo pueda enviar o recibir
datos hacia o desde los otros dispositivos.
Es un dispositivo que puede mantenerse en por lo menos dos
estados estables por un cierto periodo de tiempo.
Cada uno de estos estados estables puede utilizarse para
representar un bit.
A un dispositivo con la capacidad de almacenar por lo menos
un bit se le conoce como celda básica de memoria.
Un dispositivo de memoria completo se forma con varias
celdas básicas y los circuitos asociados para poder leer y
escribir dichas celdas básicas, agrupadas como localidades
de memoria que permitan almacenar un grupo de N bits.
El número de bits que puede almacenar cada localidad de
memoria es conocido como el ancho de palabra de la
memoria. Coincide con el ancho del bus de datos.
Uno de los circuitos auxiliares que integran la memoria es el
decodificador de direcciones. Su función es la de activar a
las celdas básicas que van a ser leídas o escritas a partir de la
dirección presente en el bus de direcciones.
La memoria del semiconductor utiliza en su arquitectura
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
(Random Access Memory).

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
principalmente de escritorio.
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
especializada.
Dentro de nuestro procesador no sólo se encuentran los
componentes que hacen posible sus enormes capacidades de
computación, también hay una pequeña memoria que se
encarga de conseguir que el trabajo de nuestro
procesador pueda realizarse a la velocidad que este opera.
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 procesador para reducir el
tiempo de acceso a datos ubicados en la memoria principal
que se utilizan con más frecuencia.

Memoria caché nivel 1 ( L1).
También llamada memoria interna, se encuentra en el núcleo
del procesador. Es utilizada para almacenar y acceder a datos
e instrucciones importantes y de uso frecuente, agilizando
los procesos al ser el nivel que ofrece un tiempo de respuesta
menor. Se divide en dos subniveles:
Nivel 1 Data caché: se encarga de almacenar datos usados
frecuentemente.
Nivel 1 Instruction caché: se encarga de almacenar
instrucciones usadas frecuentemente.
Memoria caché nivel 2 (L2).
Se encarga de almacenar datos de uso frecuente, es mayor
que la caché L1, pero a costa de ser más lenta, aun así es más
rápida que la memoria principal (RAM).
Puede ser inclusiva y contener una copia del nivel 1 además
de información extra, o exclusiva y que su contenido sea
totalmente diferente de la cache L1, proporcionando así
mayor capacidad total.
Memoria caché nivel 3 ( L3).
Es más rápida que la memoria principal (RAM), pero más
lenta que L2, ayuda a que el sistema guarde gran cantidad de
información agilizando las tareas del procesador.
En esta memoria se agiliza el acceso a datos e instrucciones
que no fueron localizadas en L1 o L2.
Al igual que la L2, puede ser inclusiva y contener una copia
de L2 además de información extra o, por el contrario, ser
exclusiva y contener información totalmente diferente a la de
los niveles anteriores, consiguiendo así una mayor capacidad total.

Para poder hacer una operación entre el procesador y un periférico, se necesita
conectar estos dispositivos a la computadora y gestionar de manera correcta la
transferencia de datos. Esto, se puede realizar mediante los sistemas de módulos de
Entrada/Salida. Estos módulos están conectados con el procesador y la memoria principal,
cada uno controla uno o más dispositivos externos.
El módulo de E/S también almacena datos temporalmente debido a las diferencias de velocidades entre los periféricos y el CPU o la memoria.
Dispone de un mecanismo de detección de errores tales como el uso del bit de paridad.
Los términos “controlador”, “procesador de E/S” y “módulo de E/S” son equivalentes.
La diferencia radica en su complejidad.
La forma de comunicación con el módulo de E/S se hace mediante:
•SEÑALES DE CONTROL (mandatos/comandos enviados por el CPU).
•ESTADO (información sobre el funcionamiento del dispositivo).
•DATOS.
•Internamente suele haber una serie de buffers que son capaces de almacenar temporalmente datos o información
adicional de contexto.
•Un componente importante suele ser el transductor que transforma la información analógica en digital.

•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.
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).
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.
Mientras se lleva a cabo la sincronización, el procesador está dedicado al cien por cien a esta tarea y, por lo tanto, no puede atender a otros procesos o aplicaciones.
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.
Esta técnica pretende evitar que el procesador pare o haga trabajo improductivo, mientras que espera a que el periférico esté
preparado para hacer una nueva operación. El hardware de la computadora, necesita tener un conjunto de líneas de control del bus del sistema y de petición 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.
Las interrupciones pueden ser:
- Enmascarables(se pueden dejar de atender por software).
- NO Enmascarables(siempre atendidas).
- Dos formas de conocer la dirección/posición (vector) donde se encuentra la rutina de servicio de la interrupción.
- Vector de interrupciones siempre FIJO ó el periférico suministra el vector de interrupción.
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.
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.
- El procesador no se encarga de la transferencia de datos.
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.
La programación de la operación de E/S por parte del procesador se realiza escribiendo en memoria los datos y las
instrucciones que necesita el canal de E/S para gestionar toda la operación de E/S. La información que se especifica
incluye el dispositivo al que tenemos que acceder, la operación que se debe realizar indicando el nivel de prioridad,
la dirección del bloque de datos donde tenemos que leer o escribir los datos que se han de transferir, el tamaño del
bloque de datos que se tienen que transferir, cómo se tiene que hacer el tratamiento de errores y cómo se ha de informar
al procesador del final de la operación de E/S.