A la hora de gestionar la comunicación del procesador con elementos externos (disco duro, tarjeta de red, etc...) hay varias estrategias posibles.
La forma más sencilla de tratar una petición de entrada/salida es la espera de respuesta o espera activa. El funcionamiento es muy sencillo. El procesador consulta cíclicamente al dispositivo en cuestión hasta que la operación por la que se esperaba se ha realizado. Mientras tanto el procesador no hace ninguna tarea útil, desaprovechando un tiempo que podría dedicarse a otras tareas. Por este motivo, este patrón de funcionamiento debería evitarse siempre que sea posible.
Otra forma de gestionar la entrada/salida es el uso de interrupciones. Una interrupción es una señal asíncrona que es recibida por el procesador. En ese momento el flujo de ejecución normal se detiene, se guarda el estado del procesador y se pasa a ejecutar lo que se denomina manejador de la excepción. Este manejador consiste en código que puede estar establecido por el sistema operativo o por el programador. De esta manera el procesador puede dedicarse a ejecutar tareas útiles que interrumpe cuando un dispositivo de entrada/salida avisa mediante una interrupción de un evento que necesita ser conocido por el procesador como la finalización de una operación, la llegada de un paquete a un interfaz de red u otros. Entonces el procesador realiza las operaciones necesarias, como copiar datos o procesarlos en el código del manejador.
Un tercer método es el denominado acceso directo a memoria (DMA, Direct Memory Access). Con este método se permite leer y escribir de la memoria a un dispositivo distinto a la CPU y se utiliza para agilizar las operaciones de entrada/salida. Con esta tecnología se libera a la CPU de la tarea de copiar datos entre un dispositivo de entrada salida y la memoria. Normalmente la CPU inicia la transferencia mediante un comando DMA. Mientras se realiza la copia entre un dispositivo y la memoria (o viceversa) el procesador puede realizar trabajo útil. Mediante una interrupción se notifica el final de la copia.
El objetivo final de los métodos anteriores es conseguir que la gestión de entrada/salida suponga el menor esfuerzo posible a la CPU. El siguiente paso es utilizar hardware especializado. El hardware utilizado es generalmente un procesador especializado al que la CPU envía pequeños programas. Estos coprocesadores tienen una memoria local y acceso a la memoria principal y se utiliza cuando se necesitan altas prestaciones en la entrada/salida de la arquitectura.De esta manera el coprocesador puede gestionar la entrada/salida de manera autónoma sin necesidad de mayor intervención por parte de la CPU.
La forma más sencilla de tratar una petición de entrada/salida es la espera de respuesta o espera activa. El funcionamiento es muy sencillo. El procesador consulta cíclicamente al dispositivo en cuestión hasta que la operación por la que se esperaba se ha realizado. Mientras tanto el procesador no hace ninguna tarea útil, desaprovechando un tiempo que podría dedicarse a otras tareas. Por este motivo, este patrón de funcionamiento debería evitarse siempre que sea posible.
Otra forma de gestionar la entrada/salida es el uso de interrupciones. Una interrupción es una señal asíncrona que es recibida por el procesador. En ese momento el flujo de ejecución normal se detiene, se guarda el estado del procesador y se pasa a ejecutar lo que se denomina manejador de la excepción. Este manejador consiste en código que puede estar establecido por el sistema operativo o por el programador. De esta manera el procesador puede dedicarse a ejecutar tareas útiles que interrumpe cuando un dispositivo de entrada/salida avisa mediante una interrupción de un evento que necesita ser conocido por el procesador como la finalización de una operación, la llegada de un paquete a un interfaz de red u otros. Entonces el procesador realiza las operaciones necesarias, como copiar datos o procesarlos en el código del manejador.
Un tercer método es el denominado acceso directo a memoria (DMA, Direct Memory Access). Con este método se permite leer y escribir de la memoria a un dispositivo distinto a la CPU y se utiliza para agilizar las operaciones de entrada/salida. Con esta tecnología se libera a la CPU de la tarea de copiar datos entre un dispositivo de entrada salida y la memoria. Normalmente la CPU inicia la transferencia mediante un comando DMA. Mientras se realiza la copia entre un dispositivo y la memoria (o viceversa) el procesador puede realizar trabajo útil. Mediante una interrupción se notifica el final de la copia.
El objetivo final de los métodos anteriores es conseguir que la gestión de entrada/salida suponga el menor esfuerzo posible a la CPU. El siguiente paso es utilizar hardware especializado. El hardware utilizado es generalmente un procesador especializado al que la CPU envía pequeños programas. Estos coprocesadores tienen una memoria local y acceso a la memoria principal y se utiliza cuando se necesitan altas prestaciones en la entrada/salida de la arquitectura.De esta manera el coprocesador puede gestionar la entrada/salida de manera autónoma sin necesidad de mayor intervención por parte de la CPU.
Patxi Astiz
No hay comentarios:
Publicar un comentario