stringtranslate.com

Canal de E/S

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

Descripción general

Muchas tareas de E/S pueden ser complejas y requieren que se aplique lógica a los datos para convertir formatos y realizar otras tareas similares. En estas situaciones, la solución más simple es pedirle a la CPU que se encargue de la lógica, pero como los dispositivos de E/S son relativamente lentos, una CPU podría perder tiempo esperando los datos del dispositivo. Esta situación se denomina "limitada por 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 una 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 como para usarse como una computadora por sí solos 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. Normalmente, hay interfaces estándar [b] entre los canales y los dispositivos periféricos externos, y varios canales pueden operar simultáneamente.

Una CPU generalmente designa un bloque de almacenamiento como, 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 intervención adicional de la CPU (excepción: aquellos programas de canal que utilizan "interrupciones controladas por programa", PCI, para facilitar la carga del programa, la paginación de 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 lo suele denominar controlador de acceso directo a memoria (DMA).

En las implementaciones más recientes, se inicia el programa de canal y el procesador de 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 de finalización, 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, cualquier error, sin importar cuán pequeño fuera, requería la intervención de la CPU y, en consecuencia, la sobrecarga era mucho mayor. Una interrupción controlada por programa (PCI) todavía se utiliza en ciertas operaciones heredadas, pero la tendencia es alejarse de dichas PCI, excepto cuando sea inevitable.

Historia

El primer uso de E/S de canal fue con el mainframe de tubo 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 canal (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.

Mientras que IBM utilizaba comandos de canal de datos en algunas de sus computadoras y permitía el encadenamiento de comandos, por ejemplo, en la 7090, la mayoría de los demás proveedores utilizaban canales que se ocupaban de registros individuales. Sin embargo, algunos sistemas, por ejemplo, la serie GE-600 , tenían arquitecturas de E/S más sofisticadas.

Más tarde, las familias de ordenadores IBM System/360 y System/370 ofrecieron E/S por canal en todos los modelos. Para los modelos System/360 de gama baja 50 y anteriores y System/370 modelo 158 y anteriores, los canales se implementaron en microcódigo en la CPU, y la CPU en sí funcionaba en uno de dos modos, "modo CPU" o "modo canal", con el modo canal "robando" ciclos del modo CPU. Para los ordenadores 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 (uno a tres canales selectores en una sola caja), el canal multiplexor de bytes IBM 2870 (un canal multiplexor y, opcionalmente, un subcanal selector 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 implementaron en directores de canales independientes en el mismo gabinete que la CPU, y cada director de canal implementaba 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 normalmente era un procesador RISC , pero que podía ser un microprocesador System/390 con microcódigo especial como en los mainframes CMOS de IBM .

La implementación de hardware de los canales compatibles con System/370 por parte de Amdahl Corporation era bastante diferente. Una única unidad interna, llamada "C-Unit", admitía hasta dieciséis canales utilizando el mismo hardware para todos los canales admitidos. Eran posibles dos "C-Unit" internas, que admitían hasta 32 canales en total. Cada "C-Unit" realizaba de forma independiente un proceso generalmente llamado "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 el 470V/6 y /5 y cada 26 nanosegundos en el 470V/7 y /8, la "C-unit" leía el estado completo del siguiente canal en la secuencia de prioridad y sus etiquetas de entrada de canal de E/S . Se llevaron a cabo las acciones necesarias definidas por el último estado de ese canal y sus etiquetas de entrada : se leyeron o escribieron datos en el almacenamiento 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 , y luego pasó al siguiente canal de menor prioridad. La prelación fue posible, en algunos casos. Se proporcionó suficiente almacenamiento FIFO dentro de la "Unidad C" para todos los canales que fueron emulados por este FSM. Los canales se podían reconfigurar fácilmente según la elección del cliente de selector, multiplexor de bytes o canal multiplexor de bloques, sin restricciones significativas mediante el uso de comandos de consola de mantenimiento. También se admitía la "interfaz de dos bytes", así como "Entrada de datos/Salida de datos" y otras opciones de canal IBM de alto rendimiento. También se ofrecían adaptadores de canal a canal integrados , llamados CCA en lenguaje Amdahl, pero llamados CTC o CTCA en lenguaje IBM. Un verdadero punto de inflexión que obligó a IBM a rediseñar sus mainframes para ofrecer una capacidad y una flexibilidad de canal similares. La respuesta inicial de IBM fue incluir unidades de canal del Modelo 158 simplificadas, que funcionaran únicamente en "Modo Canal", como las 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 en algunos modelos de IBM.

Algunos de los primeros sistemas de canal comerciales que no eran de IBM fueron los UNIVAC 490 , CDC 1604 , Burroughs B5000 , UNIVAC 1107 y GE 635. Desde entonces, los controladores de canal han sido una parte estándar de la mayoría de los diseños de mainframes y la principal ventaja que tienen estos últimos sobre las computadoras personales más pequeñas y rápidas y la informática 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 usaba instrucciones sincrónicas [c] para transferir datos entre el canal y el registro A o la memoria PP.

SCSI, introducido en 1981 como un canal de bajo coste equivalente al IBM Block Multiplexer Channel [5], es ahora omnipresente en la forma del Protocolo de Canal de Fibra y el Serial Attached SCSI .

Las computadoras modernas pueden tener canales en forma de dispositivos periféricos que controlan el bus , como los dispositivos de acceso directo a memoria (DMA) PCI . La lógica de estos dispositivos es la misma que la de los controladores de canal originales, es decir, descargar la transferencia, las interrupciones y el cambio de contexto de la CPU principal.

Los controladores de canal se han fabricado en diseños tan pequeños como de un solo chip con múltiples canales, utilizados en las computadoras NeXT , por ejemplo.

Descripción

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

Los sistemas informáticos que utilizan E/S de canal tienen componentes de hardware especiales que gestionan todas las operaciones de entrada/salida en su totalidad, independientemente de la CPU del sistema. La CPU de un sistema que utiliza E/S de canal normalmente tiene solo una instrucción de máquina en su repertorio para entrada y salida; esta instrucción se utiliza para pasar comandos de entrada/salida al hardware de E/S especializado en forma de programas de canal . A partir de entonces, la E/S continúa sin intervención de la CPU hasta que se produce un evento que requiere la notificación del sistema operativo, momento en el que el hardware de E/S envía una señal de interrupción a la CPU.

Un canal es un componente de hardware independiente que coordina todas las E/S de un conjunto de controladores o dispositivos. No es simplemente un medio de comunicación, a pesar del nombre; es un dispositivo programable que maneja todos los detalles de E/S después de recibir una lista de operaciones de E/S para llevar a cabo (el programa de 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 esos dispositivos conectados. Un programa de canal contiene listas de comandos para el canal en sí y para el controlador y el dispositivo al 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 entonces, el canal asume el control de las operaciones de E/S hasta que se completen.

Es posible desarrollar programas de canal muy complejos, incluidas las pruebas de datos y la ramificación condicional dentro de ese programa de canal. Esta flexibilidad libera a la CPU de la sobrecarga que supone iniciar, supervisar y gestionar operaciones de E/S individuales. El hardware de canal especializado, a su vez, está dedicado a la E/S y puede llevarla a cabo de forma más eficiente que la CPU (y totalmente en paralelo con la CPU). La E/S de canal no es muy diferente del acceso directo a memoria (DMA) de los microordenadores, sólo que más compleja y avanzada.

En los grandes sistemas de mainframe, las CPU son sólo uno de los varios componentes de hardware potentes que funcionan en paralelo. Los controladores especiales de entrada/salida (cuyos nombres exactos varían de un fabricante a otro) manejan exclusivamente la E/S, y estos, a su vez, están conectados a canales de hardware que también están dedicados a la entrada y la salida. Puede haber varias CPU y varios procesadores de E/S. 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 del mundo real de los sistemas mainframe son aplicaciones comerciales con un uso intensivo de E/S, esta arquitectura ayuda a proporcionar los niveles muy altos de rendimiento que distinguen a los mainframes de otros tipos de computadoras.

En la terminología IBM ESA/390 , un canal es una conexión de datos paralela dentro de un subsistema de E/S organizado en forma de árbol o jerárquicamente. En las jaulas de E/S System/390, los canales se conectan directamente a dispositivos que están instalados dentro de la jaula (adaptador de comunicación como ESCON , FICON , adaptador de sistemas abiertos ) o se extienden fuera de la jaula, debajo del piso elevado como cables del grosor de un pulgar y se conectan directamente a interfaces de canal en 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 difieren en la cantidad y el tipo de operaciones de E/S simultáneas que admiten. En la terminología de IBM, un canal multiplexor admite varias operaciones intercaladas simultáneas 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, que transfiere un bloque de datos a la vez. Un multiplexor de bloques admite varios programas de canal lógicamente simultáneos, 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 UNIVAC, un canal puede ser un índice especificado internamente (ISI), con un único búfer y dispositivo activo a la vez, o un índice especificado externamente (ESI), con el dispositivo seleccionando qué búfer utilizar.

Programa del canal

En IBM System/360 y arquitecturas posteriores, un programa de canal es una secuencia de palabras de comando de canal (CCW) que son 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 envía una señal al subsistema de canal de E/S para que comience a ejecutar el programa de canal con una instrucción SSCH (iniciar subcanal). El procesador central queda entonces libre para continuar con instrucciones que no sean de E/S hasta que se lo interrumpa. Cuando se completan las operaciones de canal, el canal interrumpe al procesador central con una interrupción de E/S. En 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 utilizando un procesador RISC independiente, el procesador de canal, uno para todos los canales. IBM System/370 Extended Architecture [6] y sus sucesores reemplazaron las instrucciones de máquina SIO ( inicio de E/S ) y SIOF ( inicio de E/S de liberación rápida ) anteriores (System/360 y primeros System/370) con la instrucción SSCH ( inicio de subcanal ) (ESA/370 y sucesores).

La entrada/salida de canal permite ahorrar mucho en entradas y salidas. Por ejemplo, en Linux de IBM en IBM Z , el formateo de una pista completa de un DASD requiere solo un programa de canal (y, por lo tanto, solo una instrucción de entrada/salida), pero múltiples palabras de comando de canal (una por bloque). El programa lo ejecuta el procesador de entrada/salida dedicado , mientras que el procesador de aplicaciones (la CPU) queda libre para realizar 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, de hecho, es una máquina de estados finitos. Se utiliza para iniciar una operación de E/S, como "leer", "escribir" o "detectar", en un dispositivo conectado a un canal. En las arquitecturas de sistemas que implementan E/S de canal, normalmente todos los dispositivos están conectados por canales y, por lo tanto, todas las E/S requieren el uso de CCW.

Los CCW se organizan en programas de canal por el sistema operativo, una subrutina de E/S, un programa de utilidad o un software independiente (como programas de prueba y diagnóstico). Una capacidad de "ramificación" limitada, por lo tanto una capacidad de programación dinámica, está disponible dentro de dichos programas de canal mediante el uso del indicador de canal "modificador de estado" y el CCW "transferencia en canal".

Encadenamiento

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

Programas de canales automodificables

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 ISAM de OS/360 . [8]

Ejemplo de programa de canal

El siguiente ejemplo [9] lee un registro de disco identificado por una clave grabada . 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 para encontrar 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/cabeza> CLAVE DE BUSQUEDA IGUAL <valor de clave> TIC *-8 Volver a la búsqueda si no es igual LEER DATOS <buffer>

La TIC (transferencia en el canal) hará que el programa del canal se ramifique al comando SEARCH hasta que se encuentre un registro con una clave coincidente (o el final de la pista). Cuando se encuentra 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 TIC CCW; por lo tanto, el programa del canal no se ramificará y el canal ejecutará el comando READ.

El ejemplo anterior es correcto para registros desbloqueados (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/cabeza> CLAVE DE BUSQUEDA ALTA O IGUAL <valor de clave> TIC *-8 Volver a la búsqueda si no es alto o igual LEER DATOS <buffer>

Si el conjunto de datos se asigna en pistas y se llega al final de la pista sin que se encuentre el registro solicitado, el programa de canal finaliza y devuelve una indicación de estado de "no se encontró ningún registro". De manera similar, si el conjunto de datos se asigna en cilindros y se llega al final del cilindro sin que se encuentre el registro solicitado, el programa de canal finaliza y devuelve una indicación de estado de "no se encontró ningún registro". En algunos casos, el software del sistema tiene la opción de actualizar el número de pista o cilindro y volver a conducir la operación de E/S sin interrumpir el programa de aplicación.

Programas de canales en sistemas de almacenamiento virtual

En la mayoría de los sistemas, los canales funcionan 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 en particular, el Supervisor de Entrada/Salida (IOS) tiene una función especial de reparación rápida que fue diseñada en el Supervisor del SO solo para aquellas "reparaciones" que son de duración relativamente corta (es decir, significativamente más cortas que el "tiempo de reloj de pared"). Las páginas que contienen datos que se utilizarán en la operación de E/S se bloquean en la memoria real o se fijan en la página . El programa de canal se copia y todas las direcciones virtuales se reemplazan por direcciones reales antes de que se inicie la operación de E/S. Una vez que se completa la operación, las páginas se desfijan.

Como la fijación y desfijación de páginas es un proceso costoso en términos de CPU, a veces se utiliza la fijación de páginas a largo plazo para reducir el costo de CPU. En este caso, la memoria virtual se fija en páginas durante la vida útil de la aplicación, en lugar de fijarse y liberarse en cada operación de E/S. Un ejemplo de un programa que puede utilizar la fijación de páginas a largo plazo es Db2 .

Una alternativa a la fijación de páginas a largo plazo es mover toda la aplicación, incluidos todos sus buffers de datos, a un área preferida del almacenamiento principal. Esto se logra mediante un SYSEVENT especial en los sistemas operativos MVS/370 a z/OS, en donde la aplicación, primero, se intercambia desde donde sea que se encuentre, presumiblemente desde un área no preferida , al almacenamiento externo de intercambio y paginación, y, segundo, se intercambia hacia un área preferida (SYSEVENT TRANSWAP). A partir de entonces, la aplicación puede marcarse como no intercambiable mediante otro SYSEVENT especial (SYSEVENT DONTSWAP). Siempre que una aplicación de este tipo finaliza, ya sea de manera normal o anormal, el sistema operativo emite implícitamente otro SYSEVENT especial en nombre de la aplicación si aún no lo ha hecho (SYSEVENT OKSWAP).

Arranque con canal de E/S

Incluso el arranque del sistema, o carga inicial del programa (IPL) en la nomenclatura de IBM, se lleva a cabo por canales, aunque el proceso es parcialmente simulado por la CPU a través de una instrucción implícita de inicio de E/S (SIO), una palabra de dirección de canal (CAW) implícita en la ubicación 0 y una palabra de comando de canal (CCW) implícita con un código de operación de lectura IPL, también en la ubicación 0. Se supone un encadenamiento de comandos, por lo que la CCW implícita en la ubicación 0 se transmite a la continuación del programa de canal en las ubicaciones 8 y 16, y posiblemente en otras partes si una de esas CCW es una transferencia en canal (TIC). [11]

Para cargar un sistema, la palabra doble de lectura implícita IPL CCW lee el primer bloque del dispositivo IPL seleccionado en el área de datos de 24 bytes en la ubicación 0, el canal continúa con la segunda y tercera palabras dobles, que son CCW, y este programa de canal carga la primera parte del software de carga del sistema en otra parte del almacenamiento principal. La primera palabra doble contiene una palabra doble de lectura que, cuando se obtiene al finalizar la IPL, hace que la CPU ejecute el texto IPL (cargador de arranque) leído por la palabra doble de lectura en la ubicación 8. A continuación, el texto IPL localiza, carga y transfiere el control al núcleo del sistema operativo. El núcleo realiza o inicia cualquier inicialización necesaria y luego comienza las operaciones normales del sistema operativo.

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

Los controladores DASD aceptan el comando X'02', buscan el cilindro X'0000' encabezado X'0000', saltan al 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, la IPL independiente del dispositivo no sería posible. En un DASD, el texto de la 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 residir 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 en 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 una IPL desde un dispositivo que no se inicializó con texto IPL, el sistema simplemente entra en un estado de espera. El programa de inicialización de DASD (dispositivo de almacenamiento de acceso directo), IBCDASDI, o la aplicación de inicialización de DASD, ICKDSF, coloca un PSW de estado de espera y una cadena CCW ficticia en los 24 bytes, en caso de que 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.

Véase también

Referencias

  1. ^ "IBM 3705 Communications Controller" (PDF) . Informes de Datapro sobre comunicaciones de datos . McGraw-Hili. Abril de 1990 [mayo de 1987] . Consultado el 3 de abril de 2022 . El robo de ciclos 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 IBM: 709 Data Processing System". 03.ibm.com. 23 de enero de 2003. Archivado desde el original el 14 de enero de 2005. Consultado el 22 de enero de 2014 .
  3. ^ "Archivos IBM: Sistema de procesamiento de datos 7090 (continuación)". 03.ibm.com. 1958-12-30. Archivado desde el original el 13 de marzo de 2005. Consultado el 22 de enero de 2014 .
  4. ^ Una guía para el complejo de procesadores IBM 3033, el complejo de procesadores adjuntos y el complejo de multiprocesadores del System/370 (PDF) (Quinta edición). IBM . Abril de 1979. pág. 3. GC20-1859-4.
  5. ^ SCSI Forum . Technology Forums. Octubre de 1986. p. 202. * Similitudes con el mainframe, * Canal multiplexado por bloques System 360, * Tendencia hacia los microordenadores
  6. ^ Principios de funcionamiento de la arquitectura extendida del IBM System/370, SA22-7085-0
  7. ^ IBM Corporation (1968). Texto para estudiantes: Introducción a la arquitectura IBM System/360 (PDF) . IBM Corporation. pág. 22.
  8. ^ Attanasio, CR; Markstein, PW; Phillips, RJ (1976). "Penetración en 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 de IBM System/360: 2314 Direct Access Storage Facility y 2844 Auxiliary Storage Control (PDF) . IBM Corporation. pág. 50.2. Archivado desde el 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 desde el original (PDF) el 16 de marzo de 2011.
  11. ^ Consulte Principios de funcionamiento del sistema/370, GA22–7000–4, págs. 54—55, Carga inicial del programa; la arquitectura extendida del sistema/370 es bastante similar, aunque XA utiliza un subcanal de inicio "implícito" (SSCH) en lugar de una E/S de inicio "implícita".

Notas

  1. ^ ab Algunos canales microcodificados se ejecutaban mediante robo de ciclos [1] en lugar de hacerlo 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 IÁN
    Entrada a A desde el canal d
    71 soy yo
    Entrada (A) palabras a m desde el canal d
    72 OAN
    Salida de A al canal d
    73 años de edad
    Palabras de salida (A) del canal m al canal d
    74 ACN
    Activar canal d
    75 DCN
    Desconectar el canal d
    76 VENTILADOR
    Función (A) en el canal d
    77 FNC
    Función m en el canal d

Enlaces externos