Articulo de referencia

Entrada/salida 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 diversas formas en varias arquitecturas de computadoras, es...

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

Descripción general

Muchas tareas de entrada/salida pueden ser complejas y requieren aplicar lógica a los datos para convertir formatos y realizar otras funciones similares. En estos casos, la solución más sencilla es que la CPU se encargue de la lógica, pero debido a la relativa lentitud de los dispositivos de entrada/salida, la CPU podría perder tiempo esperando los datos. Esta situación se conoce como "limitación de entrada/salida".

La arquitectura de canales evita este problema al procesar parte o la totalidad de la tarea de E/S sin la ayuda de la CPU, descargando el trabajo a lógica dedicada. Los canales son lógicamente [ a ] autónomos, con lógica y almacenamiento de trabajo suficientes para manejar tareas de E/S. Algunos son lo suficientemente potentes o flexibles como 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, hay interfaces estándar [ b ] entre los canales y los dispositivos periféricos externos, y varios canales pueden operar concurrentemente.

Normalmente, la CPU designa un bloque de almacenamiento como canal o le envía un programa de canal relativamente pequeño para gestionar las tareas de E/S, que el canal y el controlador pueden, en muchos casos, completar sin más intervención de la CPU (con la excepción de aquellos programas de canal que utilizan interrupciones controladas por programa, PCI, para facilitar la carga de programas, 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 normalmente se comunica con la CPU a través del canal mediante una interrupción . Dado que el canal normalmente tiene acceso directo a la memoria principal, también se le suele denominar controlador de acceso directo a memoria (DMA).

En las implementaciones más recientes, el programa del canal se inicia y el procesador del canal realiza todo el procesamiento necesario 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 considerablemente el rendimiento general del sistema. El canal puede informar de varios tipos diferentes de condiciones de finalización, que pueden ser claramente normales, indicar claramente un error o cuyo significado puede depender del contexto y de 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, cualquier error, por pequeño que fuera, requería la intervención de la CPU, y la sobrecarga era, en consecuencia, mucho mayor. Las interrupciones controladas por programa (PCI) todavía se utilizan en ciertas operaciones heredadas, pero la tendencia es a abandonarlas, salvo cuando sean inevitables.

Historia

El primer uso de E/S de canal se dio con el ordenador central de tubos de vacío IBM 709 [ 2 ] en 1957, cuyo sincronizador de datos Modelo 766 fue el primer controlador de canal. El sucesor transistorizado del 709, el IBM 7090 [ 3 ], tenía de dos a ocho canales de 6 bits (el 7607) y un multiplexor de canales (el 7606) que podía controlar hasta ocho canales. El 7090 y el 7094 también podían tener hasta ocho canales de 8 bits con el 7909.

Si bien IBM utilizaba comandos de canal de datos en algunos de sus ordenadores y permitía el encadenamiento de comandos , por ejemplo, en el 7090, la mayoría de los demás proveedores utilizaban canales que gestionaban registros individuales. Sin embargo, algunos sistemas, como la serie GE-600 , contaban con arquitecturas de E/S más sofisticadas.

Posteriormente, las familias de computadoras IBM System/360 y System/370 ofrecieron E/S de canal en todos los modelos. Para los modelos System/360 de gama baja (modelos 50 e inferiores) y System/370 (modelos 158 e inferiores), los canales se implementan en microcódigo en la CPU, y la propia CPU opera en uno de dos modos: "Modo CPU" o "Modo Canal", donde el modo canal "roba" ciclos del modo CPU. Para las computadoras IBM System/360 y System/370 más grandes , los canales seguían siendo componentes separados, voluminosos y costosos, como el canal selector IBM 2860 (de uno a tres canales selectores en una sola caja), el canal multiplexor de bytes IBM 2870 (un canal multiplexor y, opcionalmente, de uno a cuatro subcanales selectores en una sola caja) y el canal multiplexor de bloques IBM 2880 (uno o dos canales multiplexores de bloques en una sola caja). En los complejos de procesadores 303x , los canales se implementan en directores de canal independientes en el mismo gabinete que la CPU, y cada director de canal implementa un grupo de canales. [ 4 ]

Mucho más tarde, los canales se implementaron como un procesador integrado que residía en la misma caja que la CPU, generalmente denominado "procesador de canal", y que solía ser un procesador RISC , pero que podía ser un microprocesador System/390 con microcódigo especial, como en los mainframes CMOS de IBM .

Perfeccionamientos de Amdahl

La implementación de hardware de Amdahl Corporation para los canales compatibles con System/370 era bastante diferente. Una única unidad interna, llamada "Unidad C", admitía hasta dieciséis canales utilizando el mismo hardware para todos los canales compatibles. Era posible utilizar dos "Unidades C" internas, que admitían hasta 32 canales en total. Cada "Unidad C" realizaba de forma independiente un proceso generalmente denominado "procesador de estado de canal cambiante" (un tipo de procesador de barril ), que implementaba una máquina de estados finitos (FSM) especializada. En cada ciclo de CPU, cada 32 nanosegundos en los modelos 470V/6 y /5, y cada 26 nanosegundos en los modelos 470V/7 y /8, la "Unidad C" leía el estado completo del siguiente canal en la secuencia de prioridad y sus etiquetas de entrada de canal de E/S . Se realizaron las acciones necesarias definidas por el último estado de ese canal y sus etiquetas de entrada : se leyeron o escribieron datos en la memoria principal, se interrumpió el programa del sistema operativo si dicha interrupción estaba especificada por el indicador de interrupción de control de programa del programa del canal, y la "Unidad C" finalmente almacenó el siguiente estado de ese canal y estableció sus etiquetas de salida del canal de E/S , para luego pasar al siguiente canal de menor prioridad. En algunos casos, era posible la interrupción.

La unidad C proporcionaba suficiente almacenamiento FIFO para todos los canales emulados por esta máquina de estados finitos (FSM). Los canales podían reconfigurarse fácilmente según las preferencias del cliente (selector, multiplexor de bytes o multiplexor de bloques) mediante comandos de la consola de mantenimiento, sin restricciones significativas. También se admitía la interfaz de dos bytes, la entrada y salida de datos y otras opciones de canales IBM de alto rendimiento.

También se ofrecían adaptadores de canal a canal integrados , denominados CCA en la nomenclatura de Amdahl, pero CTC o CTCA en la de IBM. Esto supuso un verdadero cambio radical y obligó a IBM a rediseñar sus mainframes para ofrecer una capacidad y flexibilidad de canal similares. La respuesta inicial de IBM fue incluir versiones simplificadas del Modelo 158, que operaban únicamente en "Modo Canal", como unidades de canal del Modelo 303x. En la "unidad C" de Amdahl, cualquier canal podía ser de cualquier tipo: selector, multiplexor de bytes o multiplexor de bloques, sin reservar los canales 0 y 4 para los multiplexores de bytes, como ocurría en algunos modelos de IBM.

Otras implementaciones

Algunos de los primeros sistemas de canal comerciales que no eran de IBM se encontraban en los equipos UNIVAC 490 , CDC 1604 , Burroughs B5000 , UNIVAC 1107 y GE 635. Desde entonces, los controladores de canal se han convertido en un componente estándar de la mayoría de los diseños de mainframes y siguen siendo una característica fundamental de estos en comparación con las computadoras personales más pequeñas y la computación en red.

La supercomputadora CDC 6600 de 1965 utilizaba 10 computadoras lógicamente independientes llamadas procesadores periféricos (PP) y 12 canales de E/S simples para esta función. Los PP eran una versión modificada de las primeras computadoras personales de CDC, las CDC 160 y 160A de 12 bits. El sistema operativo residía y se ejecutaba inicialmente en PP0. Los canales no tenían acceso directo a la memoria y no podían causar interrupciones; el software en un PP utilizaba instrucciones síncronas [ c ] para transferir datos entre el canal y el registro A o la memoria del PP.

SCSI se introdujo en 1981 como un canal de bajo coste equivalente al IBM Block Multiplexer Channel, [ 5 ] y posteriormente se generalizó en forma del Fibre Channel Protocol y Serial Attached SCSI .

Los ordenadores modernos pueden tener canales en forma de dispositivos periféricos de gestión de bus , como los dispositivos de acceso directo a memoria (DMA) PCI . La razón de ser de estos dispositivos es la misma que la de los controladores de canal originales: descargar de la CPU principal las tareas de transferencia, interrupciones y cambio de contexto .

Se han fabricado controladores de canal tan pequeños como diseños de un solo chip con múltiples canales, utilizados, por ejemplo, en los ordenadores NeXT .

Descripción

En los grandes sistemas informáticos centrales (mainframes), las CPU son solo uno de los varios componentes de hardware que funcionan en paralelo. Los canales son componentes de hardware independientes que coordinan todas las entradas y salidas a un conjunto de controladores de E/S especiales (cuyos nombres exactos varían según el fabricante) o dispositivos. Puede haber varias CPU y canales. La arquitectura general optimiza el rendimiento de entrada/salida sin degradar el rendimiento puro de la CPU. Dado que la mayoría de las aplicaciones reales de los sistemas centrales son aplicaciones empresariales con un alto uso de E/S, esta arquitectura contribuye a proporcionar los elevados niveles de rendimiento que distinguen a los mainframes de otros tipos de ordenadores.

Las instrucciones de máquina de la CPU para la entrada y salida de un sistema que utiliza E/S por canal se utilizan para transmitir comandos de entrada/salida al hardware de E/S especializado en forma de programas de canal . A partir de ese momento, la E/S continúa sin intervención de la CPU hasta que se produce un evento que requiere la notificación al sistema operativo, momento en el que el hardware de E/S envía una señal de interrupción a la CPU.

En algunos sistemas de gama baja, como los mainframes System/360 y System/370 de gama baja, las operaciones de E/S de canal se implementaban utilizando rutas de datos de CPU y microcódigo; esto permitía que el software se ejecutara en máquinas con canales independientes y en máquinas con canales basados ​​en CPU sin necesidad de modificaciones.

Un canal no es simplemente un medio de comunicación, a pesar de su nombre; es un dispositivo programable que gestiona todos los detalles de entrada/salida tras recibir una lista de operaciones de entrada/salida a realizar (el programa del canal).

Cada canal puede admitir uno o más controladores y/o dispositivos, pero cada programa de canal solo puede estar dirigido a uno de los dispositivos conectados. Un programa de canal contiene listas de comandos para el propio canal y para el controlador y el dispositivo a los que está dirigido. Una vez que el sistema operativo ha preparado una lista completa de comandos de canal, ejecuta una única instrucción de máquina de E/S para iniciar el programa de canal; a partir de ese momento, el canal toma el control de las operaciones de E/S hasta que finalizan.

Es posible desarrollar programas de canal muy complejos, incluyendo pruebas de datos y bifurcaciones condicionales dentro del mismo. Esta flexibilidad libera a la CPU de la sobrecarga que supone iniciar, supervisar y gestionar operaciones de E/S individuales. El hardware especializado del canal, a su vez, está dedicado a las operaciones de E/S y puede realizarlas de forma más eficiente que la CPU (y completamente en paralelo con ella). Las operaciones de E/S del canal son similares al acceso directo a memoria (DMA) de los microordenadores, solo que más complejas y avanzadas.

La implementación más conocida de E/S de canal es la de la familia de mainframes IBM System/360 y sus sucesores, pero IBM ha adoptado implementaciones similares en líneas de ordenadores anteriores, por ejemplo, 1410 y 7010 , 7030 , y otros proveedores de mainframes, como Control Data , Bull ( General Electric / Honeywell ) y Unisys .

En la terminología de IBM ESA/390 , un canal es una conexión de datos paralela dentro del subsistema de E/S organizado jerárquicamente o en forma de árbol. En las jaulas de E/S del System/390, los canales se conectan directamente a los dispositivos instalados dentro de la jaula (adaptadores de comunicación como ESCON , FICON , Open Systems Adapter ) o bien discurren fuera de la jaula, por debajo del suelo elevado , como cables del grosor de un pulgar, y se conectan directamente a las interfaces de canal de dispositivos más grandes, como subsistemas de cinta, dispositivos de almacenamiento de acceso directo (DASD), concentradores de terminales y otros sistemas ESA/390.

Tipos de canales

Los canales se diferencian en la cantidad y el tipo de operaciones de E/S concurrentes que admiten. En la terminología de IBM, un canal multiplexor admite varias operaciones concurrentes intercaladas de baja velocidad, cada una de las cuales transfiere un byte desde un dispositivo a la vez. Un canal selector admite una operación de alta velocidad, transfiriendo un bloque de datos a la vez. Un multiplexor de bloques admite varios programas de canal lógicamente concurrentes, pero solo una transferencia de datos de alta velocidad a la vez.

Los canales también pueden diferir en la forma en que asocian los dispositivos periféricos con los búferes de almacenamiento. En la terminología de UNIVAC, un canal puede ser de índice especificado internamente (ISI), con un solo búfer y dispositivo activos a la vez, o de índice especificado externamente (ESI), donde el dispositivo selecciona qué búfer usar.

Programación del canal

En el IBM System/360 y arquitecturas posteriores, un programa de canal es una secuencia de palabras de comando de canal (CCW) ejecutadas por el subsistema de canal de E/S. Un programa de canal consta de una o más palabras de comando de canal. El sistema operativo indica al subsistema de canal de E/S que comience a ejecutar el programa de canal mediante una instrucción SIO (inicio de E/S) o SSCH (inicio de subcanal). El procesador central puede entonces continuar con instrucciones que no sean de E/S hasta que se interrumpa. Cuando las operaciones del canal finalizan, el canal interrumpe al procesador central con una interrupción de E/S. En los modelos anteriores de la línea de mainframes de IBM , la unidad de canal era un componente identificable, uno para cada canal. En los mainframes modernos, los canales se implementan mediante un procesador RISC independiente, el procesador de canal, uno para todos los canales. La arquitectura extendida IBM System/370 [ 6 ] y sus sucesores reemplazaron las instrucciones de máquina anteriores SIO ( start I/O ) y SIOF ( start I/O fast release ) (System/360 y los primeros System/370) con la instrucción SSCH ( start sub-channel ) (ESA/370 y sucesores).

La E/S por canal ofrece un ahorro considerable en la entrada/salida. Por ejemplo, en el sistema Linux de IBM Z , el formateo de una pista completa de una DASD requiere solo un programa de canal (y, por lo tanto, solo una instrucción de E/S), pero varias palabras de comando de canal (una por bloque). El programa es ejecutado por el procesador de E/S dedicado , mientras que el procesador de aplicaciones (la CPU) queda libre para otras tareas.

Palabras de comando del canal

Una palabra de comando de canal ( CCW ) es una instrucción para un procesador de canal de E/S especializado, que en realidad es una máquina de estados finitos (FSM). Se utiliza para iniciar una operación de E/S, como "leer", "escribir" o "detectar", en un dispositivo conectado a un canal. En arquitecturas de sistema que implementan E/S por canal, normalmente todos los dispositivos están conectados por canales, por lo que todas las operaciones de E/S requieren el uso de CCW.

Los CCW se organizan en programas de canal por el sistema operativo, la subrutina de E/S, un programa de utilidad o software independiente (como programas de prueba y diagnóstico). Dentro de estos programas de canal, se dispone de una capacidad de ramificación limitada, es decir, una capacidad programable dinámicamente, mediante el uso del indicador de canal "modificador de estado" y el CCW "transferencia en canal".

Encadenamiento

Los CCW de IBM se encadenan para formar el programa del canal. Los bits en el CCW indican que la siguiente ubicación en el almacenamiento contiene un CCW que forma parte del mismo programa del canal. El programa del canal normalmente ejecuta CCW secuenciales hasta que ocurre una excepción, se ejecuta un CCW de transferencia en canal (TIC) o se ejecuta un CCW sin indicación de encadenamiento. El encadenamiento de comandos indica al canal que el siguiente CCW contiene un nuevo comando. El encadenamiento de datos indica que el siguiente CCW contiene la dirección de datos adicionales para el mismo comando, lo que permite, por ejemplo, escribir o leer partes de un registro en múltiples áreas de datos en el almacenamiento (escritura de recopilación y lectura dispersa). [ 7 ]

Programas de canales auto-modificables

Los programas de canal pueden modificar su propio funcionamiento durante la ejecución en función de los datos leídos. Por ejemplo, la automodificación se utiliza ampliamente en OS/360 ISAM . [ 8 ]

Ejemplo de programa de canal

El siguiente ejemplo [ 9 ] lee un registro de disco identificado por una clave registrada . Se conoce la pista que contiene el registro y el valor deseado de la clave. La unidad de control del dispositivo buscará en la pista el registro solicitado. En este ejemplo, <> indica que el programa de canal contiene la dirección de almacenamiento del campo especificado.

 BUSCAR <número de cilindro/cabezal> CLAVE DE BÚSQUEDA IGUAL <valor de clave> TIC *-8 Volver a la búsqueda si no es igual LEER DATOS <búfer> 

La transferencia en el canal (TIC) provocará que el programa del canal salte al comando BÚSQUEDA hasta que se encuentre un registro con una clave coincidente (o el final de la pista). Cuando se encuentre un registro con una clave coincidente, el controlador DASD incluirá el modificador de estado en el estado del canal, lo que hará que el canal omita la transferencia en sentido antihorario; por lo tanto, el programa del canal no saltará y el canal ejecutará el comando LECTURA.

El ejemplo anterior es correcto para registros no bloqueados (un registro por bloque). Para registros bloqueados (más de un registro por bloque), la clave registrada debe ser la misma que la clave más alta dentro de ese bloque (y los registros deben estar en secuencia de claves), y se utilizaría el siguiente programa de canal:

 BUSCAR <número de cilindro/cabezal> BUSCAR CLAVE ALTA O IGUAL <valor de clave> TIC *-8 Volver a la búsqueda si no es alto o igual LEER DATOS <búfer> 

Si el conjunto de datos se asigna en pistas y se llega al final de una pista sin encontrar el registro solicitado, el programa del canal finaliza y devuelve un estado de "registro no encontrado". Del mismo modo, si el conjunto de datos se asigna en cilindros y se llega al final de un cilindro sin encontrar el registro solicitado, el programa del canal finaliza y devuelve un estado de "registro no encontrado". En algunos casos, el software del sistema tiene la opción de actualizar el número de pista o cilindro y volver a ejecutar la operación de E/S sin interrumpir el programa de aplicación.

Programas de canal en sistemas de almacenamiento virtual

En la mayoría de los sistemas, los canales operan utilizando direcciones reales (o físicas) , mientras que los programas de canal se construyen utilizando direcciones virtuales . [ 10 ] El sistema operativo es responsable de traducir estos programas de canal antes de ejecutarlos, y para este propósito particular, el Supervisor de Entrada/Salida (IOS) tiene una función especial de corrección rápida que fue diseñada en el Supervisor del SO solo para aquellas "correcciones" que son de duración relativamente corta (es decir, significativamente más cortas que el "tiempo de reloj"). Las páginas que contienen datos que serán utilizados por la operación de E/S se bloquean en la memoria real, o página fijada . El programa de canal se copia y todas las direcciones virtuales se reemplazan por direcciones reales antes de que comience la operación de E/S. Una vez que la operación se completa, las páginas se liberan.

As page fixing and unfixing is a CPU-expensive process long-term page fixing is sometimes used to reduce the CPU cost. Here the virtual memory is page-fixed for the life of the application, rather than fixing and freeing around each I/O operation. An example of a program that can use long-term page fixing is Db2.

An alternative to long-term page fixing is moving the entire application, including all its data buffers, to a preferred area of main storage. This is accomplished by a special SYSEVENT in MVS/370 through z/OS operating systems, wherein the application is, first, swapped-out from wherever it may be, presumably from a non-preferred area, to swap and page external storage, and is, second, swapped-in to a preferred area (SYSEVENT TRANSWAP). Thereafter, the application may be marked non-swappable by another special SYSEVENT (SYSEVENT DONTSWAP). Whenever such an application terminates, whether normally or abnormally, the operating system implicitly issues yet another special SYSEVENT on the application's behalf if it has not already done so (SYSEVENT OKSWAP).

Booting with channel I/O

Even bootstrapping of the system, or Initial Program Load (IPL) in IBM nomenclature, is carried out by channels. On IBM System/360 and System/370, the process is partially simulated by the CPU through an implied Start I/O (SIO) instruction, an implied Channel Address Word (CAW) at location 0 and an implied channel command word (CCW) with an opcode of Read IPL, also at location 0. Command chaining is assumed, so the implied CCW at location 0 falls through to the continuation of the channel program at locations 8 and 16, and possibly elsewhere should one of those CCWs be a transfer-in-channel (TIC).[11]

To load a system, the implied Read IPL CCW reads the first block of the selected IPL device into the 24-byte data area at location 0, the channel continues with the second and third double words, which are CCWs, and this channel program loads the first portion of the system loading software elsewhere in main storage. The first double word contains a PSW which, when fetched at the conclusion of the IPL, causes the CPU to execute the IPL Text (bootstrap loader) read in by the CCW at location 8. The IPL Text then locates, loads and transfers control to the operating system's Nucleus. The Nucleus performs or initiates any necessary initialization and then commences normal OS operations.

Este concepto de IPL es independiente del dispositivo. Es capaz de realizar el IPL desde un lector de tarjetas, una cinta magnética o un dispositivo de almacenamiento de acceso directo (DASD), por ejemplo, un disco o un tambor. El comando Read IPL (X'02'), que es simulado por la CPU, es un comando de lectura Read EBCDIC Select Stacker 1 en el lector de tarjetas y un comando Read en soportes de cinta (que son inherentemente de acceso secuencial ), pero un comando Read-IPL especial en DASD.

Los controladores DASD aceptan el comando X'02', se dirigen al cilindro X'0000', se desplazan hasta el punto de índice (es decir, justo después del registro descriptor de pista (R0)) y luego tratan el comando Read IPL como si fuera un comando Read Data (X'06'). Sin este comportamiento especial del controlador DASD, el IPL independiente del dispositivo no sería posible. En un DASD, el texto IPL está contenido en el cilindro X'0000', pista X'0000' y registro X'01' (24 bytes), y en el cilindro X'0000', pista X'0000' y registro X'02' (bastante grande, ciertamente algo más de 3000 bytes). La etiqueta de volumen siempre está contenida en el cilindro X'0000', pista X'0000' y bloque X'03' (80 bytes). La etiqueta de volumen siempre apunta al VTOC, con un puntero de la forma HHHH (es decir, el VTOC debe estar dentro de las primeras 65.536 pistas). El DSCB de formato 4 del VTOC define la extensión (tamaño) del VTOC, por lo que la etiqueta de volumen solo necesita un puntero a la primera pista dentro de la extensión del VTOC, y como el DSCB de formato 4, que describe el VTOC, es siempre el primer DSCB del VTOC, HHHH también apunta al DSCB de formato 4.

Si se intenta realizar un IPL desde un dispositivo que no se inicializó con el texto IPL, el sistema simplemente entra en un estado de espera . El programa de inicialización del DASD (dispositivo de almacenamiento de acceso directo), IBCDASDI, o la aplicación de inicialización del DASD, ICKDSF, colocan un estado de espera PSW y una cadena CCW ficticia en los 24 bytes, si el dispositivo está designado solo para datos, no para IPL, después de lo cual estos programas formatean el VTOC y realizan otras funciones de inicialización del disco duro.

Los sistemas de arranque de otros proveedores son similares, aunque los detalles, como por ejemplo la participación del operador, son diferentes.

Véase también

Referencias

  1. "Controlador de comunicaciones IBM 3705" (PDF) . Informes de Datapro sobre comunicaciones de datos . McGraw-Hill. Abril de 1990 [Mayo de 1987] . Consultado el 3 de abril de 2022. El robo de ciclo es una forma de interrupción en la que el componente que necesita acceso a la memoria o al procesador toma el control durante un ciclo de máquina completo.
  2. "Archivos de IBM: Sistema de procesamiento de datos 709" . 03.ibm.com. 23 de enero de 2003. Archivado del original el 14 de enero de 2005. Consultado el 22 de enero de 2014 .
  3. "Archivos de IBM: Sistema de procesamiento de datos 7090 (continuación)" . 03.ibm.com. 30 de diciembre de 1958. Archivado del original el 13 de marzo de 2005. Consultado el 22 de enero de 2014 .
  4. Guía del complejo de procesadores IBM 3033, el complejo de procesadores adjuntos y el complejo multiprocesador del sistema/370 (PDF) (Quinta edición). IBM . Abril de 1979. pág. 3. GC20-1859-4.  
  5. Foro SCSI . Foros de tecnología. Octubre de 1986. pág. 202. * Similitudes con el mainframe, * Canal multiplexado por bloques del sistema 360, * Tendencia hacia los microordenadores 
  6. Principios de funcionamiento de la arquitectura extendida del IBM System/370 (PDF) . IBM. SA22-7085-0.
  7. IBM Corporation (1968). Texto para estudiantes: Introducción a la arquitectura del sistema IBM/360 (PDF) . IBM Corporation. pág. 22. 
  8. Attanasio, CR; Markstein, PW; Phillips, RJ (1976). "Penetrando un sistema operativo: un estudio de la integridad de VM/370". IBM Systems Journal . 15 (1): 102– 116. doi : 10.1147/sj.151.0102 .
  9. IBM Corporation (1969). Descripciones de componentes del sistema IBM/360: 2314 Instalación de almacenamiento de acceso directo y 2844 Control de almacenamiento auxiliar (PDF) . IBM Corporation. pág. 50.2. Archivado del original (PDF) el 22 de marzo de 2011. 
  10. IBM Corporation (1978). Descripción general de OS/VS2 MVS (PDF) . págs. 8–12 . Archivado del original (PDF) el 16 de marzo de 2011. 
  11. Véase System/370 Principles of Operation, GA22–7000–4, pp 54—55, Initial Program Loading; System/370 Extended Architecture (XA), Enterprise Systems Architecture (ESA) y z/Architecture son bastante similares, aunque utilizan un Start Subchannel (SSCH) implícito con formato 0 CCW en lugar de un Start I/O implícito.

Notas

  1. 1 2 Algunos canales microcodificados funcionaban mediante robo de ciclo [ 1 ] en lugar de con hardware completamente independiente.
  2. Normalmente, la especificación de la interfaz incluye tanto las señales como el cableado externo.
  3. Utilizando pruebas explícitas del estado del canal y las instrucciones
    70 IAN
    Entrada a A desde el canal d
    71 IAM
    Entrada (A) palabras a m desde el canal d
    72 OAN
    Salida de A al canal d
    73 OAM
    Salida (A) palabras de m al canal d
    74 ACN
    Activar el canal d
    75 DCN
    Desconectar canal d
    76 VENTILADOR
    Función (A) en el canal d
    77 FNC
    Función m en el canal d
  • Principios de funcionamiento del sistema IBM System/370 (GA22-7000-4), consulte el capítulo sobre operaciones de entrada/salida.
  • Especificación IOM de Honeywell