E/S de canal


En informática , la E/S de canal es una arquitectura de entrada/salida (E/S) de alto rendimiento que se implementa de varias formas en varias arquitecturas de computadora, especialmente en computadoras centrales . En el pasado, los canales se implementaban generalmente [a] con dispositivos personalizados, con diversos nombres de canal , procesador de E/S, controlador de E/S , sincronizador de E/S o controlador DMA .

Muchas tareas de E/S pueden ser complejas y requieren que se aplique lógica a los datos para convertir formatos y otras tareas similares. En estas situaciones, la solución más simple es pedirle a la CPU que maneje la lógica, pero debido a que los dispositivos de E/S son relativamente lentos, una CPU podría perder tiempo (desde la perspectiva de la computadora) esperando los datos del dispositivo. Esta situación se denomina 'límite de E/S'.

La arquitectura de canal evita este problema al procesar parte o la totalidad de la tarea de E/S sin la ayuda de la CPU al descargar el trabajo a la lógica dedicada. Los canales son lógicamente [a] autónomos, con suficiente lógica y almacenamiento de trabajo para manejar tareas de E/S. Algunos son lo suficientemente potentes o flexibles para usarse como una computadora por sí mismos y pueden interpretarse como una forma de coprocesador , por ejemplo, el canal de datos 7909 en un IBM 7090 o IBM 7094; sin embargo, la mayoría no lo son. En algunos sistemas, los canales usan memoria o registros direccionables por el procesador central como su almacenamiento de trabajo, mientras que en otros sistemas está presente en el hardware del canal. Por lo general, existen interfaces estándar entre los canales y los dispositivos periféricos externos, y varios canales pueden operar simultáneamente.

Una CPU generalmente designa un bloque de almacenamiento o envía un programa de canal relativamente pequeño al canal para manejar tareas de E/S, que el canal y el controlador pueden, en muchos casos, completar sin más intervención de la CPU (excepción: aquellas tareas de canal programas que utilizan 'interrupciones controladas por programa', PCI, para facilitar la carga del programa, la paginación bajo demanda y otras tareas esenciales del sistema).

Cuando se completa la transferencia de E/S o se detecta un error, el controlador generalmente se comunica con la CPU a través del canal usando una interrupción . Dado que el canal normalmente tiene acceso directo a la memoria principal, a menudo también se lo denomina controlador de acceso directo a la memoria (DMA).

En las implementaciones más recientes, el programa del canal se inicia y el procesador del canal realiza todo el procesamiento requerido hasta que se produce una condición de finalización o una interrupción controlada por programa (PCI). Esto elimina gran parte de la interacción entre la CPU y el canal y mejora en gran medida el rendimiento general del sistema. El canal puede informar varios tipos diferentes de condiciones finales, que pueden ser inequívocamente normales, pueden indicar inequívocamente un error o cuyo significado puede depender del contexto y los resultados de una operación de detección posterior. En algunos sistemas, un controlador de E/S puede solicitar un reintento automático de algunas operaciones sin intervención de la CPU. En implementaciones anteriores, cualquierEl error, por pequeño que fuera, requería la intervención de la CPU y, en consecuencia, la sobrecarga era mucho mayor. Ciertas operaciones heredadas todavía utilizan una interrupción controlada por programa (PCI), pero la tendencia es alejarse de tales PCI, excepto cuando sea inevitable.