ES2449965T3 - Facilitar operaciones de entrada/salida en modo transporte entre un subsistema de canal y dispositivos de entrada/salida - Google Patents

Facilitar operaciones de entrada/salida en modo transporte entre un subsistema de canal y dispositivos de entrada/salida Download PDF

Info

Publication number
ES2449965T3
ES2449965T3 ES12716322.8T ES12716322T ES2449965T3 ES 2449965 T3 ES2449965 T3 ES 2449965T3 ES 12716322 T ES12716322 T ES 12716322T ES 2449965 T3 ES2449965 T3 ES 2449965T3
Authority
ES
Spain
Prior art keywords
control unit
data
dcw
transfer
transport
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12716322.8T
Other languages
English (en)
Inventor
Roger Hathorn
John Flanagan
Louis William Ricci
Scott Carlson
Matthew Joseph Kalos
Harry Yudenfriend
Dale Riedy
Daniel Francis Casper
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2449965T3 publication Critical patent/ES2449965T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E10/00Energy generation through renewable energy sources
    • Y02E10/70Wind energy
    • Y02E10/72Wind turbines with rotation axis in wind direction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

Un método para realizar una operación de entrada/salida (I/O) iniciada por una instrucción de operación I/O en unsistema de ordenador anfitrión (102) configurado para comunicación con una unidad de control (118), comprendiendoel método: enviar, mediante un subsistema de canal (114) en el sistema de ordenador anfitrión, un mensaje de solicitud de registrode proceso (PRLI) a la unidad de control para inicializar un enlace entre el subsistema de canal y la unidad de control,incluyendo el mensaje (400) de solicitud de PRLI un campo que tiene un valor que indica si el subsistema de canalsoporta transferencia de datos bidireccional; recibir un mensaje (420) de respuesta de PRLI procedente de la unidad de control, incluyendo el mensaje de respuestade PRLI un campo que tiene un valor que indica si la unidad de control soporta transferencia de datos bidireccional;proporcionar una indicación a un sistema operativo anfitrión de que la transferencia de datos bidireccional essoportada; y en respuesta a la ejecución de la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión,realizar un método que comprende: reunir una pluralidad de comandos (202) asociados con la instrucción de operación de I/O recibida desde el sistema deordenador anfitrión, especificando al menos uno de la pluralidad de comandos una transferencia de datos de entrada yespecificando al menos uno de la pluralidad de comandos una transferencia de datos de salida; transferir la pluralidad de comandos a la unidad de control; enviar al menos un mensaje de datos de salida a la unidad de control incluyendo datos de salida que han de sertransferidos a la unidad de control, especificando el mensaje de datos de salida asociado con al menos uno de lapluralidad de comandos una transferencia de datos de salida; y recibir al menos un mensaje de entrada procedente de la unidad de control que incluye datos de entrada que han deser almacenados en un almacenamiento principal (106) del sistema ordenador anfitrión, especificando el mensaje dedatos de entrada asociado con al menos uno de la pluralidad de comandos una transferencia de datos de entrada.

Description

Facilitar operaciones de entrada/salida en modo transporte entre un subsistema de canal y dispositivos de entrada/salida
Antecedentes
La presente descripción se refiere en general al tratamiento de entrada/salida (I/O), y en particular, a proporcionar características para facilitar las operaciones de I/O en modo transporte.
Las operaciones de entrada/salida (I/O) se utilizan para transferir datos entre la memoria y los dispositivos de I/O de un sistema de tratamiento de I/O. Específicamente, los datos son escritos desde la memoria a uno o más dispositivos de I/O, y los datos son leídos desde uno o más dispositivos de I/O a la memoria mediante la ejecución de operaciones de I/O.
Ejemplos de sistemas de tratamiento de I/O convencionales están descritos en el documento US2009/0210884 y en el documento US 7743172.
Para facilitar el tratamiento de operaciones de I/O, se emplea un subsistema de I/O del sistema de tratamiento de I/O. El subsistema de I/O está acoplado a la memoria principal y a los dispositivos de I/O del sistema de tratamiento de I/O y dirige el flujo de información entre memoria y la dispositivos de I/O. Un ejemplo de un subsistema de I/O es un subsistema del canal. El subsistema de canal utiliza trayectos de canal como medios de comunicaciones. Cada trayecto de canal incluye un canal acoplado a una unidad de control, estando además la unidad de control acoplada a uno o más dispositivos de I/O.
El subsistema de canal y el dispositivo de I/O pueden operar en un modo de transporte que soporta la transferencia de uno o más bloques de control de comando para transferir datos entre los dispositivos de I/O y la memoria. Una palabra de control de transporte (TCW) especifica uno o más comandos de I/O que han de ser ejecutados. Para comandos que inician ciertas operaciones de I/O, la TCW designa áreas de memoria asociadas con la operación, la acción que ha de ser tomada siempre que una transferencia a un área o desde ella es completada, y otras opciones.
Tales sistemas de operación de I/O están típicamente concernidos con operaciones individuales de tratamiento bien como operaciones de datos de entrada (por ejemplo operaciones de lectura) o bien como operaciones de datos de salida (por ejemplo, operaciones de escritura). Estos sistemas típicamente no soportan operaciones bidireccionales, y particularmente no incluyen capacidad para generar o transferir indicaciones de soporte bidireccional.
Resumen
Una realización incluye un producto de programa informático para realizar una operación de entrada/salida (I/O) y iniciada por una instrucción de operación I/O en un sistema de ordenador anfitrión configurado para comunicación con una unidad de control. El producto del programa informático incluye un medio de almacenamiento tangible legible mediante un circuito de tratamiento e instrucciones de almacenamiento para ejecución por el circuito de tratamiento para realizar un método que incluye: enviar, mediante un subsistema de canal en el sistema de ordenador anfitrión, un mensaje de solicitud de registro de proceso (PRLI) a la unidad de control para inicializar un enlace entre el subsistema de canal y la unidad de control, incluyendo el mensaje de solicitud de PRLI un campo que tiene un valor que indica si el subsistema de canal soporta transferencia de datos bidireccional, recibir un mensaje de respuesta de PRLI procedente de la unidad de control, incluyendo el mensaje de respuesta de PRLI un campo que tiene un valor que indica si la unidad de control soporta transferencia de datos bidireccional, proporcionar una indicación a un sistema operativo anfitrión de que la transferencia de datos bidireccional es soportada; y en respuesta a la ejecución de la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, realizar un método. El método incluye: reunir una pluralidad de comandos asociados con la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, especificando al menos uno de la pluralidad de comandos una transferencia de datos de entrada y especificando al menos uno de la pluralidad de comandos una transferencia de datos de salida; transferir la pluralidad de comandos a la unidad de control; enviar al menos un mensaje de datos de salida a la unidad de control que incluye datos de salida que han de ser transferidos a la unidad de control, especificando el mensaje de datos de salida asociado con al menos uno de la pluralidad de comandos una transferencia de datos de salida; y recibir al menos un mensaje de entrada procedente de la unidad de control que incluye datos de entrada que han de ser almacenados en un almacenamiento principal del sistema ordenador anfitrión, especificando el mensaje de datos de entrada asociado con al menos uno de la pluralidad de comandos una transferencia de datos de entrada.
Otra realización incluye un aparato para realizar una operación de entrada/salida (I/O) iniciada por una instrucción de operación del I/O en un sistema de ordenador anfitrión configurado para comunicación con una unidad de control. El sistema de ordenador anfitrión está configurado para realizar: enviar, mediante un subsistema de canal en el sistema ordenador anfitrión, un mensaje de solicitud de registro de proceso (PRLI) a la unidad de control para inicializar un enlace entre el subsistema de canal y la unidad de control, incluyendo el mensaje de solicitud de PRLI un campo que
tiene un valor que indica si el subsistema de canal soporta transferencia de datos bidireccional; recibir un mensaje de respuesta de PRLI procedente de la unidad de control, incluyendo el mensaje de respuesta de PRLI un campo que tiene un valor que indica si el subsistema de canal soporta transferencia de datos bidireccional; proporcionar una indicación a un sistema operativo anfitrión de que la transferencia de datos bidireccional es soportada; y en respuesta a la ejecución de la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, realizar un método que incluye: reunir una pluralidad de comandos asociados con la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, especificando al menos uno de la pluralidad de comandos una transferencia de datos de entrada y especificando al menos uno de la pluralidad de comandos una transferencia de datos de salida; transferir la pluralidad de comandos a la unidad de control; enviar al menos un mensaje de datos de salida a la unidad de control que incluye datos de salida que han de ser transferidos a la unidad de control, especificando el mensaje de datos de salida asociado con al menos uno de la pluralidad de comandos una transferencia de datos de salida; y recibir al menos un mensaje de entrada procedente de la unión de control que incluye datos de entrada que han de ser almacenados en un almacenamiento principal del sistema ordenador anfitrión, especificando el mensaje de datos de entrada asociado con al menos uno de la pluralidad de comandos una transferencia de datos de entrada.
Otra realización incluye un método para realizar una operación de entrada/salida (I/O) iniciada por una instrucción de operación de I/O en un sistema de ordenador anfitrión configurado para comunicación con una unidad de control. El método incluye: enviar, mediante un subsistema de canal en el sistema ordenador anfitrión, un mensaje de solicitud de registro de proceso (PRLI) a la unidad de control para inicializar un enlace entre el subsistema del canal y la unidad de control, incluyendo el mensaje de solicitud de PRLI un campo que tiene un valor que indica si el subsistema de canal soporta la transferencia de datos bidireccional; recibir un mensaje de respuesta de PRLI procedente de la unidad de control, incluyendo el mensaje de respuesta de PRLI un campo que tiene un valor que indica si la unidad de control soporta la transferencia de datos bidireccional; proporcionar una indicación a un sistema operativo anfitrión de que la transferencia de datos bidireccional es soportada; y en respuesta a la ejecución de la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, realizar un método que incluye: reunir una pluralidad de comandos asociados con la instrucción de operación de I/O recibidos desde el sistema de ordenador anfitrión, especificando al menos uno de la pluralidad de comandos una transferencia de datos de entrada y especificando al menos uno de la pluralidad de comandos una transferencia de datos de salida; transferir la pluralidad de comandos a la unidad de control; enviar al menos un mensaje de datos de salida a la unidad de control que incluye datos de salida que han de ser transferidos a la unidad de control, especificando el mensaje de datos de salida asociado con al menos uno de la pluralidad de comandos una transferencia de datos de salida; y recibir al menos un mensaje de entrada procedente de la unión de control que incluye datos de entrada que han de ser almacenados en un almacenamiento principal del sistema de ordenador anfitrión, especificando el mensaje de datos de entrada asociado con al menos uno de la pluralidad de comandos una transferencia de datos de entrada.
Características y ventajas adicionales son conseguidas a través de las técnicas de la presente realización. Otras realizaciones y aspectos se han descrito aquí y son considerados una parte del invento reivindicado. Para una mejor comprensión del invento con las ventajas y características, se hace referencia a la descripción y a los dibujos.
Breve descripción de los dibujos
La materia que es considerada como el invento está particularmente indicado y reivindicado de forma distintiva en las reivindicaciones en la conclusión de la memoria. Los anteriores y otros objetos, características, y ventajas del invento son evidentes a partir de la siguiente descripción detallada tomada en unión con los dibujos adjuntos, en los que:
La fig. 1 representa una realización de un sistema de tratamiento de I/O que incorpora y utiliza uno o más aspectos del presente invento.
La fig. 2 representa una realización de una palabra de control del transporte (TCW).
La fig. 3 representa una realización de un bloque de control de comando de transporte (TCCB).
La fig. 4 representa una realización de una unidad de información (IU) de comando de transporte que incluye el TCCB de la fig. 3.
La fig. 5 representa una realización de una cabecera de comando de transporte de la IU de comando de transporte de la fig. 4.
La fig. 6 representa una realización de una cabecera de comando de transporte (TCAH) del TCCB de la fig. 4.
La fig. 7 representa una realización de un área de comando de transporte (TCA) del TCCB de la fig. 4.
La fig. 8 es una tabla que describe determinaciones ejemplares de distintos cómputos de datos para operaciones de transferencia de datos unidireccional.
La fig. 9 es una tabla que describe determinaciones ejemplares de distintos cómputos de datos para operaciones de transferencia de datos bidireccional.
La fig. 10 representa una realización de una palabra de comando del dispositivo (DCW).
La fig. 11 se representa una realización de un campo de banderolas o indicadores de control de la DCW de la fig. 10.
La fig. 12 representa una realización de una extensión de área de comando de transporte (TCAX).
La fig. 13 representa una realización de un bloque de desplazamiento de CBC.
La fig. 14 es un diagrama de flujo que ilustra una realización de un método para realizar una operación de I/O en modo transporte.
La fig. 15 representa realizaciones de las IU datos de transporte para transportar datos de entrada y salida entre un canal y una unidad de control y/o dispositivo de I/O.
La fig. 16 representa una realización de una IU de respuesta de transporte.
La fig. 17 representa una realización de un área de estado de la IU de respuesta de transporte de la fig. 16.
La fig. 18 representa componentes de una solicitud de registro de proceso ejemplar (PRLI).
Fig. 19 representa componentes de una respuesta de PRLI ejemplar.
La fig. 20 representa un bloque de descripción del trayecto de canal ejemplar proporcionado a un sistema de ordenador anfitrión OS desde un subsistema de canal; y
La fig. 21 representa datos de descripción de canal ejemplares del bloque de descripción de la fig. 20 que incluye datos de capacidad del subsistema de canal.
Descripción detallada
Realizaciones del presente invento facilitan el tratamiento de entrada/salida (I/O) en un sistema informático. En una realización, se proporcionan comandos de transporte para gestionar la operación de I/O y la transferencia de datos a través de un trayecto de canal. Los comandos de transporte transfieren meta-información de comandos (TCMI) que es utilizada para gestionar la comprobación de transferencia de datos y la transferencia de DCW adicionales. La TCMI es definida en una o más unidades de información (IU) de transporte de datos para definir, especificar y verificar información relativa a datos que han de ser transferidos en una operación de I/O. Los comandos de transporte pueden incluir un comando de interrogación, un comando de Bloque de Desplazamiento de CBC de transferencia (TCOB) y un comando de Extensión de TCA de transferencia (TTE).
En una realización, el tratamiento de I/O es facilitado habilitando a un ordenador anfitrión para que aumente el número de comandos que pueden ser enviados a un dispositivo para una operación de I/O. Por ejemplo, la TCMI en forma de una Extensión de Área de Comando de Transporte (TCAX) puede ser enviada desde el anfitrión a un dispositivo para aumentar el número de comandos que pueden ser asociados con una operación de I/O. En una realización, la TCAX es enviada mediante una palabra de comando de dispositivo (DCW), denominada como una Extensión de TCA de Transferencia, que incluye comandos que han de ser realizados además de comandos enviados en un Área de Comando de Transporte (TCA).
El tratamiento de I/O puede ser también facilitado previendo medios por los que un dispositivo de I/O puede continuar una operación de I/O cuando es encontrado un registro de longitud incorrecta. Por ejemplo, una función de longitud incorrecta de DCW puede ser instalada en el sistema anfitrión y en una unidad de control o dispositivo. La función proporciona medios para una comprobación de Longitud Incorrecta (IL) que puede ser realizada por una unidad de control. Un campo de suprimir la longitud incorrecta o de Suprimir la Indicación de Longitud (SLI) puede ser añadido a una DCW enviada a un dispositivo. Cuando este bit es activado, se permite que el encadenamiento de DCW continúe cuando una condición o estado de longitud incorrecta es detectado por la unidad de control.
El tratamiento de I/O también puede ser facilitado previendo medios para enviar comandos tanto de lectura como de escritura a un dispositivo en una única operación de I/O. Los programas de canal de TCW de la técnica anterior especifican o bien todos los comandos de escritura, o bien todos los comandos de lectura. Una operación bidireccional puede ser especificada estableciendo una o más banderolas en una cabecera de comando de transporte (TCH) de una IU de comando, por ejemplo, estableciendo tanto banderolas de lectura como de escritura a uno y proporcionando tanto un cómputo de datos de lectura como de escritura. Además, una banderola en un mensaje de iniciación o de registro tal como un mensaje de solicitud de Registro de Proceso (PRLI) puede ser establecida para indicar que el subsistema de canal soporta transferencia de datos bidireccional. Un mensaje de respuesta tal como un mensaje de
aceptación de PRLI puede incluir una banderola que puede ser establecida para indicar si el dispositivo soporta transferencia de datos bidireccional. Si la transferencia de datos bidireccional es soportada tanto por el anfitrión como por la unidad de control, el dispositivo no informará de un error si tanto las banderolas de lectura como de escritura están establecidas en la IU de comando. Esta capacidad es una mejora sobre los protocolos de Canal de Fibra de la técnica anterior, que no soportan operaciones de transferencia de datos bidireccional. Como se ha descrito aquí, "transferencias de datos bidireccionales" son transferencias de datos tanto de entrada como de salida que son realizadas dentro de una única operación de I/O de TCW, por ejemplo enviando y ejecutando tanto comandos de lectura como de escritura dentro de una única operación de I/O de TCW.
La fig. 1 ilustra una realización ejemplar de un sistema 100 de tratamiento de I/O que incluye un sistema 102 de ordenador anfitrión que incluye un sistema de almacenamiento y/o de tratamiento de datos tal como un ordenador central de zSeries® por International Business Machines Corporation (IBM®). IBM es una marca registrada de International Business Machines Corporation, Armonk, New York, Estados Unidos de Norteamérica. Otros nombres utilizados aquí pueden ser nombres de marcas registradas, marcas o productos de International Business Machines Corporation o de otras compañías. El sistema 102 de ordenador anfitrión incluye distintos elementos de tratamiento, almacenamiento y comunicación. En una realización, el sistema 102 de ordenador anfitrión incluye una o más unidades de tratamiento centrales (CPU) 104, componentes de memoria tales como un almacenamiento o memoria central 106, un almacenamiento o memoria expandida 108, uno o más sistemas operativos (OS) 110 que son ejecutados por una o más de las CPU 104. Por ejemplo, una CPU 104 puede ejecutar un sistema operativo Linux® 110 y/o un sistema operativo z/OS® 110 como diferentes ejemplos de máquina virtual. La CPU 104 es el centro de control del sistema 100 de tratamiento de I/O. Contiene funciones de secuenciación y tratamiento para ejecución de instrucciones, acción de interrupción, funciones de temporización, carga de programa inicial, y otras funciones relacionadas con máquina. La CPU 104 está acoplada a la memoria principal 106 y/o a la memoria expandida 108 mediante una conexión 113, tal como un bus bidireccional o unidireccional.
El sistema 102 de ordenador anfitrión también incluye un subsistema de canal 114 que proporciona una interfaz de comunicación entre el sistema anfitrión 101 y distintos dispositivos de I/O 116, que pueden ser controlados por una o más unidades de control 118. Los dispositivos de I/O incluyen equipamiento tal como impresoras, unidades de cinta magnética, dispositivos de almacenamiento de acceso directo, pantallas de presentación, teclados, controladores de comunicación, dispositivos de teletratamiento, y equipamiento basado en sensores. En la descripción siguiente, los términos "unidad de control" y "dispositivo" pueden ser utilizados de forma intercambiable, o puede considerarse que una unidad de control incluye uno o más dispositivos. El subsistema de canal 114 dirige el flujo de información entre los dispositivos de I/O 116 y el sistema 102 de ordenador anfitrión. Releva a las CPU 104 de la tarea de comunicar directamente con los dispositivos de I/O 116 y permite que el tratamiento de datos prosiga al mismo tiempo que el tratamiento de I/O. El subsistema de canal 114 está acoplado a las CPU 104, a la memoria principal 106 y/o a la memoria expandida 108 mediante una conexión 120, tal como un bus.
En una realización, el subsistema de canal 114 está conectado a cada dispositivo de I/O 116 mediante un "trayecto de canal" respectivo 122 que conecta el subsistema de canal 114 a cada unidad de control 118 mediante una conexión 124 tal como un enlace serie o paralelo. Las unidades de control 118 puede estar unidas al subsistema de canal 114 mediante más de un trayecto de canal 122, y un dispositivo de I/O 116 puede estar unido a más de una unidad de control 118 y/o dispositivo de I/O 116. En total, un dispositivo individual de I/O 116 puede ser accesible por múltiples trayectos de canal. Un trayecto de canal pueden utilizar distintos tipos de conexiones, tales como una interfaz paralela, una interfaz de I/O en serie y la interfaz de I/O FICON. Por ejemplo, un trayecto de canal en serie puede incluir una o más fibras ópticas conectadas a una unidad de control 118 mediante, por ejemplo, un interruptor dinámico 126 en un tejido de canal de Fibra, y una interfaz paralela puede incluir un número de conductores eléctricos o de fibra óptica.
En una realización, sistema de canal 114 incluye uno o más canales individuales 128 que están conectados a una o más unidades de control 118 y/o dispositivos de I/O 116 mediante uno o más trayectos de canal 122. Cada canal 128 incluye electrónica de tratamiento tal como un microprocesador 130 de canal local y una memoria 132 de canal local que esta conectada y es accesible por el microprocesador 130 de canal local. La memoria 132 de canal local puede incluir información tal como una designación del programa de canal, un identificador del trayecto de canal, un número de dispositivo, un cómputo de dispositivo, indicaciones de estado, así como información sobre disponibilidad del trayecto y funciones pendientes o que se están realizando.
También situado dentro de cada canal 128 hay uno o más subcanales. Cada subcanal es una estructura de datos situada dentro de una memoria de canal 132 que proporciona información relativa a un dispositivo de I/O asociado 116 y su unión al subsistema de canal 114. El subcanal también proporciona operaciones de I/O relativas a información y otras funciones que implican al dispositivo de I/O asociado 116. El subcanal es el medio por el que el subsistema de canal 114 proporciona información acerca de los dispositivos de I/O asociados 116 a las CPU 104. En una realización, el número de subcanales proporcionado por el subsistema de canal es independiente del número de trayectos de canal 122 a los dispositivos de I/O asociados 116. Por ejemplo, un dispositivo 116 accesible a través de canales de trayecto alternativos 122 está representado aún por un único subcanal.
Cada unidad de control 118 proporciona lógica para operar y controlar uno o más dispositivos de I/O 116 y adapta, a través del uso de funciones comunes, las características de cada dispositivo de I/O 116 a la interfaz de enlace proporcionada por un canal 128. Las funciones comunes proporcionan medios para la ejecución de operaciones del I/O, indicaciones relativas al estado de dispositivos de I/O 116 y de la unidad de control 118, control de la temporización de transferencias de datos sobre un trayecto de canal 122 y ciertos niveles de control del dispositivo de I/O. Una unidad de control 118 puede estar alojada separadamente, o puede estar física y lógicamente integrada por un dispositivo de I/O, el subsistema de canal, o una CPU.
Uno o más de los anteriores componentes del sistema 100 de tratamiento de I/O están descritos además en "Principios de Operación de z/Architecture de IBM®", Publicación Nº SA22-7832-08, 9ª Edición Agosto de 2010.
Las operaciones de I/O son descritas como cualquier operación que implica la transferencia de datos entre el sistema 102 de ordenador anfitrión y los dispositivos de I/O 116. Como se ha descrito aquí, una operación de I/O incluye las comunicaciones entre el subsistema de canal 114 y un dispositivo 116 (a través, en una realización, de una unidad de control 118) en que un único comando (por ejemplo una palabra de comando de canal o CCW), un único mensaje de comando que incluye múltiples comandos (por ejemplo una unidad de información de comando o bloque de control de comando de transporte (TCCB)), o múltiples comandos encadenados (por ejemplo múltiples CCW) son enviados desde el subsistema de canal 114 a un dispositivo. La operación de I/O puede también incluir una o más mensajes de respuesta generados por el dispositivo 116 o una unidad de control asociado 118 en respuesta a la recepción y/o ejecución del comando o comandos encadenados.
En una realización, las operaciones de I/O son iniciadas con un dispositivo 116 por la ejecución de las instrucciones de I/O generadas por un OS 110 que designa el subcanal asociado con el dispositivo 116. Tales instrucciones son ejecutadas en el sistema anfitrión por una CPU 104 enviando parámetros a un canal 128 o subcanal para solicitar que el subsistema de canal 114 realice distintas funciones en una operación de I/O.
Por ejemplo, la CPU 104 ejecuta una instrucción de "INICIAR SUBCANAL" haciendo pasar parámetros al subcanal objetivo que solicitan que el subsistema de canal 114 realice una función de inicio o puesta en marcha con el dispositivo de I/O 116 asociado con el subcanal. El subsistema de canal 114 realiza la función de inicio utilizando información en el subcanal, incluyendo la información hecha pasar durante la ejecución de la instrucción de INICIAR SUBCANAL, para encontrar un trayecto de canal accesible al dispositivo 116, y para ejecutar la operación de I/O una vez que se ha seleccionado un trayecto de canal.
Cuando una instrucción tal como una instrucción de INICIAR SUBCANAL es ejecutada por la CPU 104, un canal 128 comienza a realizar la operación de I/O. En una realización, el subsistema de canal 114 opera bajo un protocolo de FICON de Alto Rendimiento (HPF) para comunicación entre el subsistema de canal 114 y los dispositivos 116 y/o unidades de control 118. FICON y HPF son descritos además en "Canal de Fibra: Protocolo de Correspondencia de Conjuntos de Código de Comando de un Sólo Byte - 4 (FC-SB-4)," T11 Proyecto 2122-D, Revisión 3.00, 22 de septiembre de 2009.
En una realización, la ejecución de la instrucción INICIAR SUBCANAL hace pasar el contenido de un bloque de solicitud de operación (ORB) al subsistema de canal 114. El ORB especifica un programa de canal en una dirección de una o más palabras de comando (por ejemplo, una palabra de comando de canal con una palabra de comando de transporte descritas adicionalmente a continuación). Hay dos modos de operación de subcanal. En una realización, el sistema 102 de ordenador anfitrión opera en un modo de comando y específica palabra o palabras de comando en forma de una palabra de comando de canal (CCW). En otra realización, el sistema anfitrión opera en un modo transporte y específica palabra o palabras de comando en forma de una palabra de comando de transporte (TCW).
Un subcanal puede entrar en modo transporte de cuando una función de FCX (Extensiones de Canal de Fibra) está instalada y la función de inicio es establecida en el subcanal como un resultado de la ejecución de una instrucción de INICIAR SUBCANAL que especifica un programa de canal de TCW. El subcanal permanece en modo transporte hasta que la función de iniciar es repuesta en el subcanal. En otros instantes, el subcanal está en modo comando.
En modo comando, el canal ejecuta un programa de canal de CCW que incluye una única palabra de comando de canal o una secuencia de palabras de comando de canal ejecutadas secuencialmente que controlan una secuencia específica de operaciones del canal. Una unidad de control ejecuta una operación de I/O de CCW descodificando, aceptando, y ejecutando comandos de CCW por un dispositivo de I/O. Una o más CCW dispuestas para ejecución secuencial forman un programa de canal de CCW y son ejecutadas como una o más operaciones de I/O, respectivamente.
La función de extensiones de canal de fibra (FCX) es una función opcional que proporciona medios para la formación de un programa de canal en modo de transporte que está compuesto de una palabra de control del transporte (TCW) que designa un bloque de control de comando de transporte (TCCB) y un bloque de estado de transporte (TSB). El TCCB incluye un área de comando de transporte (TCA) que contiene una lista de uno o más comandos de I/O (por
ejemplo hasta 30) que tienen la forma de palabras de comando de dispositivo (DCW). Una TCW y su TCCB pueden especificar bien una operación de lectura o bien de escritura. En una realización, una función de transferencia de datos bidireccional de FCX puede ser instalada en un sistema que soporta operaciones en modo de transporte, que permite que el sistema 102 de ordenador anfitrión especifique transferencia tanto de datos de entrada como de salida en una única operación de I/O en modo transporte si el dispositivo conectado 116 y la unidad de control 118 soportan transferencia de datos bidireccional. Cuando una unidad de control 118 reconoce transferencias de datos bidireccionales, una TCW y su TCCB pueden, dependiendo del dispositivo, especificar tanto transferencias de datos de lectura como de escritura.
En el modo transporte, una única palabra de comando de transporte (TCW) especifica una ubicación en memoria de un TCCB (así como una ubicación en memoria 106 ó 108 de una o más áreas de datos) que es enviado en un solo mensaje en lugar de CCW individuales separadas en el modo comando. Una unidad de control 118 ejecuta una operación de I/O en modo transporte descodificando, aceptando, y ejecutando un TCCB y las DCW individuales incluida en él. Si el ORB especifica un programa de canal de la TCW, el subsistema de canal 114 utiliza información en la TCW designada para transferir el TCCB a una unidad de control 118. El contenido del TCCB es ignorado por el subsistema de canal 114 después de que el TCCB es transferido a la unidad de control 118 y solo tiene significado a la unidad de control 118 y al dispositivo de I/O asociado 116.
En una realización ejemplar, la unidad de control 118 genera un mensaje de respuesta en respuesta a la ejecución del programa de canal. La unidad de control 118 puede también generar un mensaje de respuesta sin ejecutar el programa de canal bajo un número limitado de escenarios de comunicación, por ejemplo, para informar al subsistema de canal 114 de que el programa de canal no será ejecutado. La unidad de control 118 puede incluir un número de elementos para soportar comunicación entre el adaptador de comunicaciones de I/O y los dispositivos de I/O, así como soportar la ejecución de programa de canal. Por ejemplo, la unidad de control 118 puede incluir lógica de control para analizar y tratar mensajes, además de una o más colas, temporizadores, y registros para facilitar vigilancia de comunicación y del estado.
La fig. 2 ilustra una realización de una palabra de control de transporte (TCW) 140, que está almacenada en el sistema anfitrión (por ejemplo en la memoria principal 106) y especifica al menos un bloque de control que ha de ser transferido a una unidad de control 118 desde un canal 128. En una realización, el bloque de control es un bloque de control de comando de transporte (TCCB) cuyo contenido ha de ser transportado a la unidad de control 118 y al dispositivo de I/O 116 para su tratamiento. Cuando la TCW 140 especifica un TCCB, el TCCB incluye una TCA que especifica una o más palabras de comando de dispositivo (DCW) y opciones asociadas. Para una DCW que especifica un comando que inicia la transferencia de datos (con la excepción de datos de control contenidos dentro del TCCB), la TCW 140 designa una o más áreas de almacenamiento donde los datos están situados.
En una realización, la TCA incluye un comando de Extensión de TCA de Transferencia (TTE) que está previsto para transferir DCW adicionales y/o datos de control además de los que pueden estar acomodados en el TCCB. La TTE transfiere una extensión de TCA (TCAX) a una unidad de control (que incluye al menos una DCW) y es considerada una extensión lógica de la TCA a la que está asociada por ejemplo, encadenando la última DCW del TCCB a la primera DCW del TTE.
Con referencia de nuevo a la fig. 2, una realización de la TCW 140 es un bloque de control de 64 bytes que está designado sobre un límite de 64 bytes. La TCW incluye distintos campos descritos a continuación.
Por ejemplo, un número de campos de banderola 142 indica si se está utilizando el direccionamiento de datos directo o indirecto para situar los datos de entrada, los datos de salida o el TCCB. Un campo de direccionamiento de datos indirectos de transporte (TIDA) de Salida indica si los datos de salida son abordados directa o indirectamente. Por ejemplo, cuando la palabra 0, bit 7 de la TCW 140 es cero y los datos de salida son especificados, un campo 144 de dirección de datos de salida designa una ubicación de datos de salida en almacenamiento absoluto. Cuando el bit 7 es uno, el campo 144 de dirección de datos de salida designa una dirección absoluta de una palabra de TIDA (TIDAW) o la primera TIDAW en una lista de TIDAWS (una TIDAL) que designa la ubicación o ubicaciones de almacenamiento de salida, respectivamente. Un campo de TIDA de Entrada indica si los datos de entrada son abordados directa o indirectamente. Por ejemplo, cuando la palabra 0, bit 5 es cero y los datos de entrada son especificados, un campo 146 de dirección de datos de entrada designa la dirección absoluta de la ubicación de almacenamiento de entrada (es decir donde han de ser almacenados los datos de entrada). Cuando el bit 5 es uno, el campo 146 de dirección de datos de entrada designa la dirección absoluta de una TIDAW o la primera TIDAW en una TIDAL que designa la ubicación o ubicaciones de almacenamiento de entrada. Un campo de TIDA de bloque de control de mando de transporte (TCCB-TIDA) indica si el TCCB es abordado directa o indirectamente. Por ejemplo, cuando la palabra 0, bit 6 es cero, un campo 148 de dirección de TCCB designa la dirección absoluta del TCCB para la TCW, y cuando el bit 6 es uno, el campo 148 de dirección de TCCB designa la dirección absoluta de una TIDAW o TIDAL que designa la ubicación o ubicaciones del TCCB.
La TCW 140 incluye también un campo 150 de Longitud de Bloque de Control de Comando de Transporte (TCCCBL)
que especifica la longitud en bytes del TCCB. Por ejemplo, el campo de TCCBL incluye un número entero sin signo cuyo valor (por ejemplo, cuando es añadido a 20 para transferencias de datos unidireccionales o cuando es añadido a 24 para transferencias de datos bidireccionales) especifica la longitud del TCCB en bytes.
Un campo 152 de Operaciones de Lectura (R) es distinto de cero (por ejemplo bit 14 de palabra 1 es uno) cuando indica el número de bytes que han de ser transferidos a la memoria principal 106. Un campo 154 de Operaciones de Escritura (W) es distinto de cero (por ejemplo bit 15 de palabra 1 es uno) cuando indica el número de bytes que ha de ser transferido desde el almacenamiento principal. Si el campo R 152 y el campo W 154 son ambos uno, se reconoce una condición de comprobación de programa, a menos que el dispositivo objetivo 116 y la unidad de control 118 soporten transferencia de datos bidireccionales. Si el bit W es uno y la TCW es una TCW de interrogación, se reconoce una condición de comprobación de programa.
El campo 144 de Dirección de Datos de Salida indica la ubicación en almacenamiento de cualesquiera datos de salida que han de ser enviados a un dispositivo. Por ejemplo, cuando el bit 15 de la palabra 1 (el bit 154 de campo W) es uno y el bit 7 del campo 142 de banderolas (la banderola de TIDA de salida) es cero, las palabras 2-3 designan la ubicación de salida de 64 bits en almacenamiento absoluto. Cuando el bit W es uno y la banderola TIDA de salida es uno, las palabras 2-3 designan la ubicación de 64 bits en almacenamiento absoluto de una TIDAW o lista de TIDAW que designa la ubicación o ubicaciones de almacenamiento de salida. El campo 146 de Dirección de Datos de Entrada indica la ubicación a la que cualquier dato ha de ser almacenado cuando es recibido procedente de un dispositivo. Por ejemplo, cuando el bit 14 de la palabra 1 (el bit 152 de campo R) es uno y el bit 5 del campo 142 de banderolas (la banderola de TIDA de entrada) es cero, las palabras 4-5 designan la ubicación de entrada de 64 bits en almacenamiento absoluto. Cuando el bit R es uno y la banderola de TIDA de entrada es uno, las palabras 4-5 designan la ubicación en almacenamiento absoluto de una TIDAW o lista de TIDAW que designan la ubicación o ubicaciones de almacenamiento de entrada.
Una Dirección 156 de Bloque de Estado de Transporte especifica una ubicación en almacenamiento de un bloque de estado de transporte para la TCW. Por ejemplo, las palabras 6-7 designan la ubicación de 64 bits en almacenamiento absoluto del bloque de estado de transporte para la TCW.
Un campo 148 de Dirección de Bloque de Control de Comando de Transporte especifica una o más (directa o indirecta) direcciones del TCCB. Por ejemplo, si el bit de TCCB-TIDA (bit 6 del campo de banderolas) es cero, las palabras 8-9 designan una ubicación de 64 bits en almacenamiento absoluto del TCCB. Cuando el bit de TCCB-TIDA es cero, se especifica que el TCCB reside en un área de almacenamiento contigua. Si el bit de bloque de control de comando de transporte-TIDA es uno, las palabras 8-9 designan una ubicación de 64 bits en almacenamiento absoluto de una TIDAW o lista de TIDAW que designan la ubicación en almacenamiento absoluto del TCCB. Cuando el bit de TCCB-TIDA es uno, puede especificarse que el TCCB reside en un área de almacenamiento no contigua.
El campo 158 de Cómputo de Salida especifica el número de bytes de salida para la TCW. Por ejemplo, cuando el bit 15 de la palabra 1 (el bit W) es uno, la palabra 10 contiene el cómputo total entero sin signo de bytes de salida para la TCW. El campo 160 de Cómputo de Entrada especifica el número de bytes de entrada para la TCW. Por ejemplo, cuando el bit 14 de la palabra 1 (el bit R) es uno, la palabra 11 contiene el cómputo total entero sin signo de bytes de entrada para la TCW.
Si la TCW especifica una operación de interrogación, un campo 162 de Dirección de TCW de Interrogación indica una ubicación en almacenamiento de una TCW de Interrogación. Por ejemplo, cuando una instrucción de INICIAR SUBCANAL designa una TCW, la palabra 15 de la TCW no es comprobada. Sin embargo, cuando una instrucción de CANCELAR SUBCANAL designa un subcanal que está pendiente de la puesta en marcha para un programa de canal de TCW y no está pendiente del estado, los bits 1-31 de la palabra 15 de la TCW designada por INICIAR SUBCANAL especifica la ubicación de 31 bits en almacenamiento absoluto de la TCW de interrogación que es utilizada para iniciar una operación de interrogación para el subcanal. Si la palabra 15 contiene ceros cuando es emitido CANCELAR SUBCANAL, no se inicia una operación de interrogación. Cuando es emitido CANCELAR SUBCANAL, el bit 0 de la palabra 15 debe ser cero, de otro modo se reconoce una condición de comprobación de programa con estado de interrogación fallido indicado. Cuando es emitido CANCELAR SUBCANAL y los bits 1-31 de la palabra 15 no contienen ceros, los bits 1-31 de la palabra 15 deben designar una ubicación de almacenamiento en un límite de 64 bytes, de otro modo se reconoce una condición de comprobación de programa con un estado de interrogación fallida indicado. La palabra 14 puede ser reservada para extender el campo de dirección de TCW de interrogación a 64 bits.
Con referencia a las figs. 3 y 4, el bloque de control de comando de transporte (TCCB) 170 incluye uno o más comandos individuales como parte de una operación de I/O de TCW, y es enviado a una unidad de control 118 y/o dispositivo 116 por un canal 128 a través de un trayecto de canal. El TCCB 170 releva al canal de tener que enviar múltiples mensajes o unidades de información, y también transfiere la responsabilidad de ejecutar la operación a la unidad de control y elimina la necesidad de que la unidad de control 118 envíe respuestas para cada comando. En su lugar, la unidad de control 118 puede ejecutar todos los comandos y enviar una respuesta a la terminación de la operación.
El TCCB 170 es de longitud variable, puede contener información de cabecera y de cola, y uno o más comandos (por ejemplo de 1 a 30) como palabras de comando de dispositivo (DCW) que están enlazadas lógicamente (por ejemplo encadenadas) de tal modo que son ejecutadas por la unidad de control 118 de una manera secuencial. El TCCB 170 puede residir como un solo bloque de almacenamiento contiguo o puede residir como múltiples bloques de almacenamiento no contiguo. Por ejemplo, la banderola de TCCB-TIDA en la TCW 140 descrita anteriormente es utilizada para especificar si el TCCB reside en almacenamiento contiguo.
Ejemplos de un TCCB están mostrados en las figs. 3 y 4. Como se ha mostrado en la fig. 4, el TCCB 170 puede ser enviado desde un canal 128 a una unidad de control 118 como parte de una unidad (IU) 172 de información de comando de transporte que es enviada a la unidad de control 118 para iniciar una operación de I/O. En una realización, la IU 172 de comando de transporte está constituida por una cabecera 174 SB-4 de 8 bytes, seguida por una cabecera (TCH) 176 de comando de transporte de 4 bytes, y el TCCB 170. El TCCB 170 incluye una cabecera de área de comando de transporte (TCAH) 178 de 16 bytes, y un área de comando de transporte (TCA) 180 de longitud variable, y una cola de área de comando de transporte (TCAT) 182. La TCAT 182 puede además incluir un campo 184 de LRC de 4 bytes, un campo 186 de longitud de transferencia de datos (DL) de 4 bytes, y para operaciones bidireccionales, un campo 188 de longitud de transferencia de datos de lectura bidireccional (BRDL) de 4 bytes. Estos campos son descritos adicionalmente a continuación.
Con referencia a la fig. 4, la cabecera 174 SB-4 proporciona información de direccionamiento de FC-4 para identificar el trayecto lógico y el dispositivo 116 para la transferencia de datos. La cabecera 174 SB-4 proporciona información que incluye un ID de imagen de canal y un ID de unidad de control para un trayecto lógico entre el canal 128 y una unidad de control 118, así como un ID del dispositivo.
Con referencia a la fig. 5, el TCH 176 incluye información acerca del TCCB 170 y las operaciones de dispositivo asociado. En una realización, el TCH 176 contiene 4 bytes e inmediatamente sigue a la cabecera 174 SB-4 en la IU de comando de transporte 172. El TCH 176 incluye campos tales como un campo de longitud ("L1") 190, un campo de lectura ("R") 192 y un campo de escritura ("W") 194. El campo L1 (situado por ejemplo en los bits 24-29), especifica la longitud, en palabras, del TCA 180 más el campo 184 de LRC de palabra 1 que sigue directamente al TCA 180. Por ejemplo, para unidades de control 118 que no soportan operaciones bidireccionales, la cantidad total de datos transferidos en la IU de comando de transporte 172 es igual al campo L1 más 8 (es decir, el campo L1 más la cabecera SB-4 de 2 palabras, la TCH de 1 palabra, la TCAH de 4 palabras y la DL de 1 palabra); de otro modo, la unidad de control reconoce un error de integridad de IU de comando de transporte debido a un error de cómputo de datos. Para unidades de control que soportan operaciones bidireccionales, la cantidad total de datos transferidos en la IU 172 de comando de transporte es igual al campo L1 más 8 (es decir, el campo L1 más la cabecera SB-4 de 2 palabras, la TCH de 1 palabra, la TCAH de 4 palabras y la DL de 1 palabra), o el campo L1 más 9 (es decir, el campo L1 más la cabecera SB-4 de 2 palabras, la TCH de 1 palabra, la TCAH de 4 palabras y la DL de 1 palabra, y la BRDL de 1 palabras para una operación bidireccional) de otro modo, la unidad de control reconocerá un error de integridad de IU de comando de transporte debido a un error de cómputo de datos. Si no se reconoce un error de integridad de IU de comando de transporte, la ubicación del LRC en el TCCB está situada basándose en el campo L1 y la comprobación de LRC puede ser realizada.
El campo 192 de lectura (R) especifica que el TCA 180 incluye uno o más comandos de lectura o de entrada. En la realización de la fig. 5 el campo R 192 es un bit R, el bit 30, que indica, cuando es establecido a uno, que el TCA 180 contiene uno o más comandos que transfieren datos de lectura. Cuando el bit R es establecido a cero, el TCA 180 no contiene ningún comando que transfiera datos de lectura. Cuando el bit R es uno, y el bit W (por ejemplo bit 31) es cero, la operación es denominada como una operación de lectura. Cuando tanto el bit R como el W son establecidos a cero, el TCA 180 no contiene ningún comando que transfiera datos de lectura o de escritura, indicando que la operación de I/O no realiza transferencia de datos. Cuando tanto el bit R como el W son establecidos a uno, el TCA 180 puede contener comandos que transfieren tanto datos de lectura como de escritura, y la operación es denominada como una operación bidireccional. El dispositivo 116 o la unidad de control 118 reconocen un error de contenido de TCH debido a un conflicto de lectura-escritura si una operación bidireccional es especificada y la unidad de control 118 no soporta operaciones bidireccionales, o la unidad de control 118 soporta operaciones bidireccionales pero la IU 172 de comando de transporte no contiene el campo 188 de BRDL. Cuando el bit R es cero y la unidad de control 118 o el dispositivo 116 encuentran un comando en el TCA 180 que intenta transferir datos de lectura, es reconocido un error de contenido de TCCB debido a un intento de lectura inválido.
El campo 194 de escritura (W) especifica que el TCA 180 incluye uno o más comandos de escritura o de salida. En la realización de la fig. 5, el campo W es un bit W, bit 31, que, cuando es establecido a uno, indica que el TCA 180 incluye uno o más comandos que transfieren datos de escritura. Cuando el bit es establecido a cero, el TCA no incluye ningún comando que transfiera datos de escritura. Cuando el bit W es uno y el bit R (bit 30) es cero, la operación es denominada como una operación de escritura. Cuando el bit W es cero y la unidad de control 118 o el dispositivo 116 encuentran un comando en el TCA 180 que especifica un comando de escritura, un error de contenido de TCCB es reconocido debido a una condición de escritura inválida.
Con referencia a la fig. 6, una realización de la cabecera de TCA (TCAH) 178 incluye información acerca del TCA 180 y las operaciones descritas aquí, tales como las indicaciones de longitud del TCA y de dispositivo. En esta realización, el byte 3 de la palabra 1 es un campo 196 de longitud "L2" que contiene un número entero binario sin signo que especifica la longitud, en bytes, del TCA 180 más palabras 2 y 3 de la cabecera de TCA, más el campo 184 de LRC de 4 bytes que sigue directamente al TCA 180. Un campo 198 de Código de Acción de Servicio (por ejemplo bytes 0-1 de palabra 2) incluye un valor entero sin signo que especifica el tipo de operación especificada por el TCCB. Por ejemplo, un valor Hex de '1FFE' indica una operación de I/O de Dispositivo de SB-4, y un valor Hex de 'IFFF' indica funciones de soporte de Dispositivo SB-4. El campo 200 del Número de Prioridad (por ejemplo byte 3 de palabra 2) incluye el número de prioridad de I/O de la unidad de control.
Con referencia a la fig. 7, el área de comando de transporte (TCA) 180 es un área de longitud variable que contiene uno o más comandos (por ejemplo de 1 a 30) como palabras de comando de dispositivo (DCW) 202. La longitud del TCA 180, en una realización, es un número entero de palabras de 4 bytes. Para las DCW 202 que especifican datos de control del dispositivo, el TCA 180 también contiene datos de control asociados con cada DCW 202. Cada DCW 202 que especifica datos de control reduce la capacidad de DCW máxima en una o más DCW, dependiendo del tamaño de los datos asociados al comando. Para las DCW 202 que especifican datos de entrada o de salida, la TCW 140 designa el área o áreas de almacenamiento asociadas y la DCW designa el cómputo de bytes a transferir. En una realización, el tamaño máximo del TCA es 240 bytes. Como se ha mostrado en la realización de la fig. 7, cuando existe suficiente espacio en el TCA 180 para la DCW 202 completa, la DCW 202 comienza sobre el límite de palabras que sigue a la DCW 202 previa o a los datos de control asociados con la DCW 202 previa. Cuando la última DCW 202 en el TCA 180 especifica datos de control que no son un número entero de palabras, el campo 184 de LRC subsiguiente comienza en el límite de palabra que sigue a los datos de control.
Para algunos dispositivos, la lista de DCW 202 puede extenderse más allá de lo que lo hará en el TCA 180. En tales casos, puede ser especificado un campo de extensión de TCA (TCAX) que incluye DCW adicionales y transferidas como si la TCAX fueran datos de salida (por ejemplo transferida como parte de una IU de datos de transporte de salida). Sin embargo, la TCAX es tratada como una continuación lógica del TCA 180 en vez de como datos de transferencia. La TCAX es especificada en el TCA 180 por una DCW de extensión de TCA de transferencia (TTE). La TCAX y la TTE DCW son descritas adicionalmente a continuación, y realizaciones de la TCAX están mostradas en las figs. 12 y 13.
Como se ha mostrado en las figs. 3 y 4, el TCCB puede incluir una cola de área de comando de transporte (TCAT) 182 que proporciona información adicional acerca del TCCB, incluyendo distintas informaciones de cómputo. En una realización, cuando la transferencia de datos unidireccional es especificada (bien el bit R o bien el bit W es establecido a uno) o no se ha especificado transferencia de datos (tanto el bit R como el bit W en la TCW son establecidos a cero), el TCAT 182 es de dos palabras de longitud. Cuando se ha especificado transferencia de datos bidireccional (tanto el bit R como el bit W en la TCW son establecidos a uno), el TLAT 182 es de tres palabras de longitud.
Por ejemplo, cuando se ha especificado transferencia de datos unidireccional, el campo 186 de cómputo de transporte
o de longitud de datos (DL) especifica el cómputo en un número entero sin signo de 32 bits de datos totales que han de ser transferidos (el "valor de cómputo de transporte"). Cuando una operación de lectura es especificada (el bit R de la TCW es uno), el valor en el campo del cómputo del transporte en el TCAT puede ser determinado sumando los valores de campo de cómputo en las DCW 202 que especifican cada una un comando de tipo lectura. La suma es redondeada en sentido ascendente al múltiplo más próximo de 4, y la suma redondeada es incrementada en 4 para llegar al valor del cómputo de transporte. Cuando es especificada una operación de lectura, el valor de cómputo de transporte debe ser igual al valor en el campo 160 de cómputo de entrada de TCW, redondeado hacia arriba al siguiente múltiplo de 4, más 4.
Cuando se ha especificado una operación de escritura (el bit W en la TCW es uno), los valores de campo de cómputo en las DCW 202 que especifican un comando de escritura son sumados. Además, los valores de campo de cómputo en todas las DCW de comando de transporte (descritas adicionalmente a continuación) que es que verifican la transferencia de meta información de comando de transporte (TCMI), más el tamaño de los campos reservados en la TCMI son añadidos a la suma. (Obsérvese que el tamaño de un campo de TCMI reservado puede ser cero). El total de los cómputos de cualquier comprobación de bloque de control (CBC) especificado de TIDAW o bytes de comprobación de redundancia cíclica (CRC) y bytes de relleno son añadidos a la suma. La suma es redondeada hacia arriba al múltiplo más próximo de 4, y la suma redondeada es incrementada en 4 dando el valor de cómputo de transporte. Cuando es especificada una operación de escritura, el valor de cómputo de transporte debe ser igual al valor en el campo 158 de cómputo de salida de TCW, redondeado hacia arriba al siguiente múltiplo de 4, más 4. Cuando es especificada ni una operación de lectura ni de escritura (tanto el bit W como el bit R en la TCW son cero), el valor de cómputo del transporte debe ser cero.
Cuando es especificada una transferencia de datos bidireccional, el campo 186 de DL es el cómputo de escritura y especifica el cómputo entero sin signo de 32 bits de datos de salida total que han de ser transferidos. El valor de cómputo de transporte en el campo DL (campo de cómputo de escritura) en el TCAT 182 es determinado como se ha
descrito anteriormente para una operación de escritura. El campo 188 de longitud de datos de lectura bidireccional (BRDL) especifica el cómputo entero sin signo de 32 bits de datos de entrada totales que han de ser transferidos. El valor de cómputo de transporte para el campo 188 de BDRL es determinado como se ha descrito antes para operaciones de lectura.
En una realización, para una operación de escritura u operación bidireccional, el campo DL contendrá un número entero binario sin signo de 4 bytes que especifica el número de bytes que ha de ser transferido por el canal a la unidad de control para la operación e incluye todos los bytes de relleno y de CRC intermedios y finales, y si un COB está incluido en la primera IU de datos de transporte de la operación de escritura, también incluye el COB, cualesquiera bytes de relleno y los bytes de COB CRC. Si una DCW TTE está presente en el TCA, el campo DL también incluye la TCAX, cualesquiera bytes de relleno de TCAX y bytes de TCAX CRC.
Las figs. 8 y 9 son tablas que resumen la determinación de los valores de cómputo de entrada, cómputo de salida de TCW, y de cómputo del transporte TCAT para transferencias unidireccionales y bidireccionales respectivamente.
Para una operación bidireccional, un campo de longitud de datos de lectura bidireccional (BRDL) incluye un entero binario sin signo de 4 bytes que especifica el número de bytes que han de ser transferidos por la unidad de control al canal para la operación e incluye cualesquiera bytes de relleno requeridos para redondear a un límite de palabra sí no está ya sobre un límite de palabra más 4 bytes para CRC. Para operaciones que no son operaciones bidireccionales, el dispositivo reconocerá un error de contenido de TCH de debido a un conflicto de lectura-escritura si la IU de comando de transporte contiene el campo de BRDL.
Con referencia a la fig. 10, una palabra de comando de dispositivo (DCW) 202 especifica un comando que ha de ser ejecutado. Para comandos que inician ciertas operaciones de I/O, designa el cómputo de bytes sobre el que es realizada la operación, la acción que ha de ser tomada siempre y cuando la transferencia al almacenamiento o desde él este completada, y otras opciones. El área o áreas de almacenamiento asociadas con una operación de transferencia de datos de DCW son designadas, dependiendo de la operación especificada por el comando, por el campo 146 de dirección de datos de entrada o el campo 144 de dirección de datos de salida de la TCW 140 que designa el TCCB 170 que incluye la DCW 202. Si el campo 146 de dirección de datos de entrada o el campo 144 de dirección de datos de salida designa el almacenamiento directa o indirectamente es especificado por las banderolas de TIDA de entrada y TIDA de salida en la TCW 140.
En una realización, la DCW 202 es un bloque de control de 8 bytes que está designado en la TCW 140 sobre un límite de palabras. La DCW 202 incluye campos tales como un campo 204 de código de comando, un campo 206 de banderolas de control, un cómputo 208 de datos de control y un cómputo 210 de datos de DCW.
El campo 204 de Código de Comando (por ejemplo bits 0-7 de la palabra 0) especifica la operación que ha de ser realizada. Si un comando es válido depende del dispositivo y depende del valor del campo 198 del código de acción de servicio en la TCAH 178. Comandos básicos incluyen lectura, escritura, control, detección y transporte. El subsistema de canal 114 distingue entre las siguientes operaciones: controlar, reenviar salida (escribir), reenviar entrada (leer, detectar, detectar ID), retroceder a la entrada (retroceder a la lectura), derivar (transferencia en canal) y transportar. Algunos comandos, cuando son ejecutados, no dan como resultado la transferencia de datos pero hacen que el dispositivo encadene e inicie la ejecución del siguiente comando cuando todas las condiciones para el encadenamiento de comandos son satisfechas. Cada una de las operaciones básicas es descrita a continuación.
Un comando de lectura inicia la ejecución de una operación de dispositivo que realiza una transferencia de datos de dispositivo a canal. Un comando de escritura inicia la ejecución de una operación de dispositivo que realiza transferencia de datos de canal a dispositivo. Un comando de control inicia la ejecución de una operación de dispositivo que utiliza los datos de control proporcionados en la DCW. El comando de detección es similar a un comando de lectura excepto en que los datos son obtenidos a partir de indicadores de detección en vez de a partir de una fuente de registro. Los comandos de control y los datos de control asociados son proporcionados para gestión del dispositivo de I/O específico y control del dispositivo durante la ejecución de un comando de I/O. Un comando de transporte está previsto para gestionar la operación de I/O y la transferencia de datos a través de un trayecto de canal, y no es un dispositivo específico. Tales comandos gestionan el transporte de datos de comprobación del bloque de control tales como los datos de comprobación de redundancia cíclica (CRC) y el transporte de DCW adicionales en las IU de datos de transporte.
El campo 208 de Cómputo de Datos de Control (CD) especifica el número de bytes de datos de control asociados con una DCW 202. Por ejemplo, el byte 3 de la palabra 0 especifica la longitud de los datos de control, en bytes. Si el código de comando especifica un comando que requiere datos de control y el byte 3 de la palabra 0 especifica un cómputo de datos de control que es menor que el requerido para el comando, se reconoce una condición de comprobación de unidad o de error de contenido de TCCB. Si el código de comando especifica un comando que requiere datos de control y el byte 3 de la palabra 0 contiene cero o contiene un valor que especifica datos más allá del final de la TCA (o más allá del final de la TCAX especificada), se reconoce una condición de comprobación del
programa detectado o un error de contenido de TCCB.
El campo 210 de Cómputo de Datos de DCW específica el cómputo de bytes de los datos (por ejemplo datos que han de ser transferidos para la operación de lectura o escritura, es decir datos del cliente) designados por la TCW para la DCW 202 actual. Por ejemplo, el cómputo de datos de DCW está incluido en la palabra uno de la DCW 202 de la fig. 10, y especifica el cómputo de bytes entero sin signo de 32 bits en el área de almacenamiento designada por la TCW para esta DCW. El campo 210 de cómputo de datos de DCW indica el número de bytes que ha de ser transferido entre el canal y la unidad de control durante la ejecución de la DCW, no incluyendo ningún byte de relleno o de CRC.
Con referencia a la fig. 11, en una realización, la DCW 202 incluye distintas banderolas 206 de control. Una banderola 212 de comando de cadena (CC) especifica un intento de realizar el encadenamiento de comandos. A la terminación normal de la operación del dispositivo actual y después del reconocimiento del final del dispositivo en el dispositivo, el encadenamiento de comandos hace que la siguiente DCW 202 en el TCA 180 sea ejecutada. La banderola 212 de CC es establecida a cero en la última DCW en el TCA. En la realización de la fig. 10, el bit 9 de la palaba 0 (el bit CC), cuando es uno, especifica el encadenamiento de comandos. Cuando es uno, el bit provoca la operación especificada por la siguiente DCW para que sea iniciada a la terminación normal de la DCW actual. Cuando el cómputo de datos de control es cero, la siguiente DCW sigue inmediatamente a la DCW en el TCA o en una TCAX. Cuando el cómputo de datos de control no es cero, la siguiente DCW sigue inmediatamente a los datos de control, redondeados a un límite de palabras, especificado para la DCW. Cuando la banderola de comando de cadena es uno, en una realización, la siguiente ubicación de DCW en el TCA o en una TCAX es determinada añadiendo ocho y el valor en el campo de cómputo de CD a la ubicación de la DCW actual y redondeando hacia arriba al límite de palabra más próximo. Si la banderola de comando de cadena es uno en una DCW en un TCA, y la siguiente ubicación de DCW está más allá del final del TCA, y se ha especificado una TCAX, la siguiente DCW está al comienzo de la TCAX especificada.
El campo de banderolas de control, en una realización, incluye un campo 214 de Suprimir Indicación de Longitud (SLI). Cuando la función de longitud incorrecta de DCW está soportada por un canal 128 y una unidad de control 118, un bit (por ejemplo el bit 2) es proporcionado en el campo 214 de banderola de SLI que controla si el encadenamiento de comandos ha de ocurrir en un estado de longitud incorrecta y si la longitud incorrecta ha de ser indicada en una IU de respuesta de transporte por la unidad de control cuando se detecta una condición de longitud incorrecta por la unidad de control 118. Una condición de longitud incorrecta es detectada por la unidad de control si el cómputo de datos de DCW no coincide con la cantidad de datos requeridos por el dispositivo para una DCW de escritura o sí el cómputo de datos de DCW no coincide con la cantidad de datos disponibles en el positivo para una DCW de lectura. Cuando la función de longitud incorrecta de DCW no está soportada por el canal y la unidad de control, el bit 2 es reservado y establecido a cero por el canal e ignorado por la unidad de control. Cuando la banderola 214 de SLI es uno y existe una condición de longitud incorrecta para la DCW actual el encadenamiento de comandos, si está indicado, será permitido y la unidad de control continúa la ejecución de la siguiente DCW a continuación. Si la banderola de SLI es cero y existe una condición de longitud incorrecta para una DCW, el encadenamiento de comandos, si está indicado, no es permitido y la unidad de control 118 aborta la operación de I/O. Cuando existe una condición de longitud incorrecta para una DCW 202 y la banderola 214 de SLI en la DCW es establecida a uno, la transferencia de datos es realizada como se ha descrito a continuación, de otro modo la operación es acabada y una condición de terminación anormal será informada para la operación.
Para una DCW 202 de lectura, si el cómputo de datos de DCW es mayor que la cantidad de datos disponibles en el dispositivo 116 para el comando, entonces se aplica lo siguiente. Si la banderola 212 de CC es uno (el encadenamiento es indicado) los datos disponibles en el dispositivo 116 son transferidos al canal 128 y los bytes de relleno (que son establecidos a cero) son transferidos de modo que la cantidad de datos transferidos para la DCW 202 es igual al cómputo de datos de DCW. Todos los datos transferidos, incluyendo bytes de relleno, son incluidos en cualquier cálculo de CRC requerido para la operación. Si la banderola 212 de CC es cero (el encadenamiento no está indicado), los datos disponibles en el dispositivo serán transferidos al canal y o bien no serán transferidos datos adicionales o bien no son transferidos bytes de relleno (establecidos a cero) de modo que la cantidad de datos transferidos para la DCW es igual al cómputo de datos de DCW. Los datos transferidos más cualesquiera bytes de relleno serán incluidos en el cálculo de CRC requerido para la operación. Es dependiente del modelo si los bytes de relleno son transferidos para este caso. Si el cómputo de datos de DCW es menor que la cantidad de datos disponibles en el dispositivo para el comando, solo una cantidad de datos igual al cómputo de datos de DCW es transferida al canal 128 para la DCW 202. Solo los datos transferidos serán incluidos en el cálculo de CRC requerido para la operación.
Para una DCW 202 de escritura, si el cómputo de datos de DCW es mayor que la cantidad de datos requeridos por el dispositivo 116 para el comando, entonces se aplica lo siguiente. Si la banderola 212 de CC es uno (el encadenamiento está indicado) la cantidad de datos especificados por el cómputo de datos de DCW será transferida a la unidad de control 118. Los datos transferidos serán utilizados en el cálculo de cualquier CRC requerido para la operación, y los datos no requeridos por el dispositivo 116 son desechados. Si la banderola de CC es cero (el encadenamiento no está indicado), la cantidad de datos requeridos por el dispositivo 116 es transferida a la unidad de
control 118. Datos adicionales son transferidos a la siguiente palabra de CRC intermedia o hasta que el cómputo de datos para la DCW es agotado. Todos los datos transferidos son utilizados en el cálculo de cualquier CRC requerido para la operación. Si el cómputo de datos de DCW es menor que la cantidad de datos requeridos por el dispositivo 116 para el comando, la cantidad de datos especificados por el cómputo de datos de DCW es transferida a la unidad de control 118. Los datos transferidos son utilizados en el cálculo de cualquier CRC requerido para la operación.
Una DCW de comando de transporte es un tipo de DCW que no especifica un comando de transferencia de datos específico (es decir, datos de cliente que se requiere sean transferidos por una instrucción de ordenador anfitrión), sino que en vez de ello especifica un comando de transporte que realiza una función de soporte asociada con una operación de I/O en modo transporte. Una DCW de comando de transporte puede especificar datos de control y puede también especificar la transferencia de meta información de comando de transporte (TCMI). La TCMI incluye datos que son utilizados para controlar funciones de transferencia de control en la operación de I/O, tales como el estado de una operación de I/O en un dispositivo, información relativa a DCW adicionales que no se ajustan o pueden ser acomodadas por un TCCB actual, e información de comprobación de bloque de control (CBC) tal como datos de comprobación de redundancia cíclica (CRC).
Cuando una DCW de comando de transporte especifica la transferencia de la TCMI a un dispositivo, la TCMI es transferida como datos de salida (por ejemplo, en una IU de datos de transporte). El tamaño de la TCMI es dependiente del comando y es, por ejemplo, un múltiplo de 4. La TCMI puede ser extendida o prolongada por 4 bytes reservados cuando el tamaño de la TCMI es un número par múltiplo de 4, las TIDAW son utilizadas para especificar las áreas de almacenamiento de salida, la banderola de CBC de inserción es una de las últimas TIDAW utilizadas para especificar el almacenamiento que contiene la TCMI, el bit de comando de cadena es uno en la DCW de comando de transporte que especifica la TCMI, y una DCW subsiguiente especifica la transferencia de una TCMI o datos de salida. Obsérvese que cuando un comando de transporte especifica la transferencia de una TCMI a un dispositivo y la TCMI es prolongada por 4 bytes reservados debido a que todas las condiciones precedentes son satisfechas, los 4 bytes reservados no están incluidos en el valor de cómputo de datos en la DCW de comando de transporte sino que son incluidos en el siguiente valor de cómputo en la última TIDAW utilizada para especificar el almacenamiento que contiene la TCMI, el valor de cómputo de salida en la TCW y el valor de cómputo de transporte en el TCCB asociado (para transferencias de datos unidireccionales o el valor de cómputo de escritura en el TCCB asociado para transferencia bidireccional).
En una realización, la TCMI incluye información de interrogación (a través de una DCW de Interrogación), un Bloque de Desplazamiento de CBC (a través de una DCW de Bloque de Desplazamiento de CBC de Transferencia) y una extensión de TCA (a través de una DCW de Extensión de TCA de Transferencia).
La fig. 12 ilustra una realización de datos especificados por un tipo de DCW de comando de transporte, denominado como un comando de Extensión de TCA de Transferencia (TTE), que está incluido en un TCA 180 de un TCCB 170 y especifica una extensión de TCA (TCAX) 220 que ha de ser transferida a una unidad de control 118. La TCAX es considerada una extensión lógica del TCA 180. Para algunos dispositivos 116, la lista de DCW 202 asociadas con una operación de I/O excede del número de DCW que pueden ser acomodadas en el TCA 180. En tal caso, una TTE DCW puede ser incluida al final de la TCW 140, que especifica una TCAX 220 que es transferida como datos de salida (por ejemplo, en una IU de transporte de datos). El contenido de la TTE DCW puede incluir un código de comando que incluye el comando de extensión de TCA de transferencia (por ejemplo, valor de 50 hex).
Por ejemplo, un TCA 180 es de longitud variable con un tamaño máximo de 240, y una DCW es 8 bytes. Así, en este ejemplo, un máximo de 30 DCW puede ser transmitido en un TCCB 170. Sin embargo, para las DCW 202 que especifican comandos de control que requieren datos de control, los datos de control siguen inmediatamente a cada DCW 202 en el TCCB. Así, los TCCB 170 que contienen tales comandos están limitados a menos de 30 DCW. La TTE DCW puede ser utilizada para especificar DCW adicionales necesarias para la operación de I/O que no se ajustan en el TCA 180.
Como se ha mostrado en la fig. 12, la Extensión de TCA (TCAX) es un área de longitud variable que es la continuación lógica del TCA 180 en otra IU de comando de transporte o TCCB, e incluye una lista de DCW y datos de control asociados. La TCAX contiene una o más DCW adicionales y datos de control asociados para una Operación de I/O de TCW (además de los transferidos en un TCCB inicial),y puede ser enviada en otro TCCB o en una IU de datos de transporte para extender una lista de DCW requeridas para una operación de I/O. En una realización, la longitud de la TCAX es un número entero múltiplo de 4.
Como se ha mostrado en la fig. 12, en una realización, la TCAX 220 incluye una DCW 202 y/o datos de control para una DCW previa 202. Cuando la última información en la TCAX 220 es una DCW 202, el final de esa DCW 202 define el final de la información significativa en la TCAX 220. Cuando la última información en la TCAX 220 son datos de control y los datos de control terminan en un límite de 4 bytes, el final de los datos de control define el final de la información significativa en la TCAX 220. Cuando la última información en la TCAX 220 son datos de control y los datos de control no terminan en un límite de 4 bytes, se añaden bytes de relleno a los datos de control para alcanzar un límite
de 4 bytes y el final de los bytes de relleno define el final de la información significativa en la TCAX 220. Cuando el tamaño de la información significativa en la TCAX 220 dividido por cuatro es un número impar, no hay bytes reservados, de otro modo, los cuatro bytes que siguen inmediatamente a la información significativa en la TCAX 220 son reservados y deben contener ceros. Cuando los datos de control para la última DCW 202 en el TCA 180 está contenido en la TCAX 220, los datos de control son los primeros datos en la TCAX 220. DCW y datos de control adicionales en la TCAX 220 son tratados como se ha definido para el TCA 180.
En una realización, cuando una DCW de TCOB (descrita adicionalmente más adelante) no está presente en el TCA 180, la TTE DCW es la primera DCW 202 en el TCA 180. Cuando una DCW de TCOB está presente en el TCA 180, la TTE DCW es la segunda DCW 202 en el TCA 180. El conjunto de datos de la TTE DCW especifica la longitud de la TCAX 220 y puede ser un múltiplo entero de 4 bytes. El cómputo de datos de control de la TTE DCW es cero y la banderola de comando de cadena en la TTE DCW es establecido a uno. Los datos de TTE DCW no incluyen los bytes de CRC de TCAX ni los de relleno de TCAX.
Un comando TTE (TTE DCW) debe ser enviado a un dispositivo que indica soporte para el comando TTE y es enviado cuando la longitud de TCA tiene un cierto máximo (por ejemplo 60 palabras) y los datos de control para la última DCW en el TCA se extiende en más allá del último byte en el TCA o la longitud de TCA es mayor que, por ejemplo, 58 palabras, y una o más DCW tradicionales son requeridas para la operación de I/O. Cuando un COB está previsto en la IU de datos de transporte de escritura, la TCAX seguirá al CRC de COB. Cuando no hay previsto un COB, la TCAX será enviada en la primera IU de datos de transporte de escritura de la operación de I/O.
Otro tipo de DCW es una DCW de Bloque de Desplazamiento de CBC de Transferencia (TCOB), que es un comando que transfiere un Bloque de Desplazamiento de CBC (COB) a una unidad de control. Los datos de CBC se refieren a datos de comprobación de bloque de control que son utilizados para verificar que la cantidad correcta de datos de entrada o de salida está siendo transferida en una operación de I/O. En una realización, los datos de CBC son datos de comprobación de redundancia cíclica (CRC), el COB es un Bloque de Desplazamiento de CRC, y la DCW de TCOB es una DCW de Bloque de Desplazamiento de CRC. Generalmente, una comprobación de redundancia cíclica (CRC) es un código de detección de error configurado para detectar cambios accidentales en los datos en bruto que son enviados entre un canal 128 y una unidad de control 118. Un dispositivo de CRC habilitada (por ejemplo el canal 128) calcula una secuencia binaria corta, de longitud fija para cada bloque de datos que ha de ser enviado o almacenado y la añade a los datos, formando una palabra de código o "palabra de CRC". Por ejemplo, cuando se ha previsto generación de CRC, el canal 128 genera un CRC sobre los datos enviados e inserta el valor calculado al final del último byte de datos. Cuando se recibe o lee una palabra de CRC, el dispositivo receptor (por ejemplo la unidad de control 118) o bien compara su valor de comprobación con uno recién calculado del bloque de datos, o de manera equivalente, realizar una CRC sobre la palabra de código completa y compara el valor de comprobación resultante con una constante residual esperada. Si los valores de comprobación no coinciden, entonces el bloque contiene un error en los datos transferidos. Aunque los datos de CBC están descritos en la realizaciones aquí como datos de CRC, no están limitados a ello.
Como se ha mostrado en la fig. 13, un COB 222 especifica la ubicación de palabras intermedias de CRC dentro de los datos de transporte para una transferencia de datos de escritura o lectura (por ejemplo en una IU de datos de transporte). En una realización, es proporcionado un COB cuando la primera DCW 202 en un TCA 180 contiene el comando de TCOB, es decir, es una DCW de TCOB. Los desplazamientos intermedios de CRC son palabras de CRC situadas entre datos en una IU de transferencia de datos y situadas antes del final de la IU. El COB 222 contiene una lista de valores de 1 palabra, denominados como Desplazamientos 224 de CRC, cada uno de los cuales identifica el desplazamiento de byte de cada palabra de CRC intermedia en los datos de transporte. Por ejemplo, el COB es un bloque de control de longitud variable que incluye una lista de entradas de 4 bytes, cada una de las cuales identifica el desplazamiento de un CRC especificado por una TIDAW que ha de ser insertada en los datos de salida.
En la realización mostrada en la fig. 13, el COB 222 incluye de 1 a N+1 palabras (palabras 224 de Desplazamiento de CRC) de desplazamientos de CRC intermedios. Si el COB 222 es proporcionado en una IU de datos de transporte, entonces el COB puede también incluir de 0 a 1 palabras de bytes de relleno y 1 palabra de CRC. Los bytes de relleno puede ser proporcionados de modo que la palabra que contiene el CRC estará en un límite de palabra que no es un límite de dobles palabras. La última palabra del COB contendrá un CRC que cubre desplazamientos de CRC intermedios de 0 a N y la palabra de relleno, si está presente. Si el COB es proporcionado como datos de control para la DCW de TCOB, entonces no habrá relleno de COB o CRC y el cómputo de datos de control será igual a 4 veces el número de campos de desplazamiento de CRC intermedio en el COB.
Para operaciones de escritura, la DCW de TCOB especifica que un COB es transportado a un dispositivo 116. El código de comando de DCW de TCOB incluye el comando de TCOB que es un valor de por ejemplo, 60 hex. La ubicación del COB es determinada por el cómputo de datos de control y puede ser proporcionada o bien en la primera IU de datos de transporte de escritura de una operación de I/O, o bien como datos de control que siguen a la DCW de TCOB de una operación de I/O. Por ejemplo, cuando el cómputo de CD de la DCW de TCOB no es cero, el COB 222 sigue inmediatamente a la DCW de TCOB en el TCA 180 y el cómputo de CD especifica el número de
desplazamientos de CRC en el COB multiplicado por 4. Cuando el cómputo de CD es cero, el COB 222 es especificado como la TCMI que es transferida con los datos de salida, y la ubicación del COB es especificada por el campo 144 de dirección de datos de salida en la TCW 140.
Cada desplazamiento 224 de CRC intermedio en el COB 222 indica el desplazamiento relativo en bytes, desde el primer byte de datos en una IU de datos de transporte. Si el COB 222 es proporcionado en una IU de datos de transporte, el primer byte de datos para la transferencia de escritura es o bien el primer byte después del CRC de COB si una TCAX 220 no está siendo proporcionada o bien el primer byte después del CRC de TCAX si está siendo proporcionada una TCAX. Si el COB es proporcionado en el TCA 180 como datos de control de DCW, el primer byte de datos para la transferencia de escritura es o bien el primer byte en la IU de datos de transporte si no está siendo proporcionada una TCAX 220 o bien el primer byte después del CRC de TCAX si está siendo proporcionada una TCAX
220. Cuando se ha proporcionado en una IU de datos de transporte, el COB es proporcionado en la primera IU de datos de transporte de escritura de una operación de I/O.
Aún otro tipo de DCW de comando de transporte es una DCW de interrogación que es utilizada para determinar el estado de una operación de I/O de TCW en un dispositivo 116. El comando de interrogación no inicia una operación en el dispositivo 116, no afecta al estado del dispositivo 116 y no repone fidelidades o lealtades asociadas con el dispositivo 116 y un trayecto lógico asociado. Una DCW de interrogación ejemplar incluye un código de comando de interrogación (por ejemplo contiene un valor de 40 hex). Con las excepciones de los campos de código de comando, de cómputo y de cómputo de CD, todos los demás campos en la DCW deben contener ceros, de otro modo una condición de comprobación de programa es detectada por un dispositivo. Si el cómputo de CD de la DCW de interrogación es mayor que cero, se especifican los datos de interrogación.
Se realiza una operación de interrogación sobre un trayecto lógico y el dispositivo 116 que tiene una operación de I/O de TCW en progreso con el fin de obtener información relativa al estado de la operación en el dispositivo 116. En una realización, el TCCB 170 para una operación de interrogación incluye una única DCW con un código de comando de dispositivo de interrogación (por ejemplo X'40). La TCAH 178 para una operación de interrogación puede contener el bit R establecido a uno para especificar una transferencia de datos de lectura para la operación. Una operación de interrogación es reconocida en la unidad de control 118 cuando la unidad de control 118 acepta una IU de comando de transporte que especifica el comando de interrogación. Cuando una operación de interrogación ha sido reconocida en la unidad de control 118 y la unidad de control 118 es capaz de realizar satisfactoriamente el comando de interrogación, la unidad de control 118 puede proporcionar estado en una IU de respuesta de transporte que incluye un estado de interrogación extendido que describe el estado del trayecto lógico y la dirección del dispositivo especificada por la IU de comando de transporte de interrogación.
Con referencia a la fig. 14, se ha mostrado una realización de un método para realizar una operación de I/O 300 en modo transporte. El método incluye una o más etapas 301-305. En una realización, el método incluye la ejecución de todas las etapas 301-305 en el orden descrito. Sin embargo, ciertas etapas pueden ser omitidas, pueden ser añadidas etapas, o puede ser cambiado en orden de las etapas.
En la etapa 301, el ordenador anfitrión (por ejemplo el OS 110) ejecuta una instrucción (por ejemplo INICIAR SUBCANAL) que hace que un ORB sea transferido a un subsistema de canal 114, que especifica una TCW 140. En una realización, se comprueban condiciones de comprobación de programa relacionadas con la validez de campos de TCW específicos para capturar estado y transportar un TCCB 170 especificado mediante el subsistema de canal 114 para determinar si transportar el TCCB 170 a un dispositivo de I/O 116. Si tal condición de comprobación de programa existe, el TCCB 170 no es transportado y la condición de comprobación de programa es reconocida. Por ejemplo, se comprueba el campo 148 de dirección de TCCB que designa una ubicación de almacenamiento disponible. Si la banderola de TCCB-TIDA es uno, el campo 148 de dirección de TCCB es también comprobado que designa una dirección que está en un límite de palabra cuádruple. Las condiciones de comprobación de programa adicionales son descritas adicionalmente a continuación.
En la etapa 302, se inicia una operación de I/O de TCW con un dispositivo de I/O (a través por ejemplo, de una unidad de control 118) cuando un canal 128 transfiere una IU 172 de comando de transporte que incluye un bloque de control, tal como un bloque de control de comando de transporte (TCCB) 170 e información de control asociado para una TCW 140 a un dispositivo seleccionado 116. En una realización, la información asociada con la ejecución de una operación de I/O y la operación de un dispositivo (por ejemplo comando, datos de entrada y datos de salida) es transferida entre el canal 128 y la unidad de control 118 como Unidades de Información (IU). En una realización, las IU tienen la forma de Unidades de Información (IU) SB-4.
En una realización, las IU u otros mensajes son enviados entre el canal y la unidad de control mediante uno o más intercambios. Un par de intercambios consistentes en dos intercambios unidireccionales, uno utilizado por un canal 128 para enviar las IU y uno utilizado por una unidad de control 118 para enviar las IU, son requeridos para todas las funciones de control de enlace SB-4 y para todas las funciones de nivel de dispositivo SB-4 que son ejecutadas en modo comando. Un único intercambio bidireccional, denominado como un intercambio de transporte, es utilizado para
funciones de nivel del dispositivo ejecutadas en modo transporte. Las IU que un canal 128 envía durante la ejecución de una función de control de enlace SB-4 o la ejecución de una función de nivel de dispositivo de SB-4 en modo comando son restringidas a un intercambio, y las IU que un canal recibe durante una operación son restringidas a un intercambio diferente. El intercambio sobre el que el canal 128 envía las IU es denominado como un intercambio fuera de límite, y el intercambio sobre el que el canal 128 recibe las IU es denominado como un intercambio dentro de límite. Cuando tanto un intercambio fuera de límite como un intercambio dentro de límite existen simultáneamente entre un canal 128 y una unidad de control 118 para la ejecución de la misma función del nivel de enlace o del nivel del dispositivo, se dice que existe un par de intercambios, y la unidad de control 118 se dice que está conectada al canal
128. Un programa de canal que es ejecutado en una única conexión utiliza sólo un par de intercambios. Si la conexión es retirada mediante el cierre de los intercambios durante el programa de canal, se genera un nuevo par de intercambios para completar el programa de canal. Un canal 128 puede iniciar un par de intercambios enviando una IU que abre un nuevo intercambio (o, una IU de iniciación) como un comando no solicitado o una categoría de información de control no solicitada. Una unidad de control 118 puede iniciar un par de intercambios enviando una IU de iniciación como un control no solicitado o como una categoría de información de datos no solicitada.
Las IU, que un canal y unidad de control envían durante la ejecución de una operación de I/O que es realizada en modo transporte son restringidas a un único intercambio bidireccional denominado como un intercambio de transporte. Un canal 128 abre un intercambio de transporte enviando una IU de comando de transporte como una categoría de comando no solicitada (una IU de Iniciación). Un canal 128 puede abrir múltiples intercambios de transporte, cada uno para un dispositivo 116 diferente o para el mismo dispositivo 116 en diferentes trayectos lógicos. Un nuevo intercambio de transporte puede ser abierto para un dispositivo específico en un trayecto lógico cuando un intercambio de transporte existe ya para ese dispositivo y trayecto lógico para realizar una operación de interrogación; de otro modo, el canal 128 espera que el intercambio de transporte o el par de intercambios existentes sean cerrados antes de iniciar un nuevo intercambio de transporte para el dispositivo en el trayecto lógico.
En una etapa 303, la unidad de control 118 recibe el TCCB 170 y la IU de comando de transporte 172, y puede aceptar el TCCB 170 si se satisfacen ciertas condiciones. Cuando una IU de comando de transporte 172 es aceptada, el TCCB 170 es considerado actual y la unidad de control 118 hasta que la ejecución del TCCB 170 en la unidad de control 118 se considera terminada. Si la IU de comando de transporte 172 no es aceptada debido a una condición de error, una IU de respuesta de transporte es devuelta al canal 128 con una banderola de estado inicial establecida a uno para indicar que el error ha ocurrido antes de iniciar la ejecución del TCCB 170 en el dispositivo 116. La unidad de control 118 puede proporcionar información de error en estado y los campos de estado extendido de I/O en la IU de respuesta de transporte (descrita a continuación) para identificar el error de la IU de comando de transporte. En una realización, las condiciones ejemplares descritas a continuación deben ser satisfechas con el fin de que la IU de comando de transporte 172 sea aceptada en la unidad de control 118:
1) La IU de comando de transporte de satisfacer las siguientes comprobaciones de integridad:
a) Para unidades de control que no soportan operaciones bidireccionales, el campo L1 en la TCH más 8 especificará una cantidad de datos que es igual a la cantidad de datos recibidos por la unidad de control para la IU de comando de transporte, de otro modo, se reconocerá un error de integridad de la IU de comando de transporte debido a un error de cómputo de datos.
b) Para unidades de control que soportan operaciones bidireccionales, el campo L1 en la TCH más 8 ó 9 especificará una cantidad de datos que es igual a la cantidad de datos recibida por la unidad de control para la IU de comando de transporte, de otro modo, se reconocerá un error de integridad de la IU de comando de transporte debido a un error de cómputo de datos; y
c) El campo LRC en el TCCB será válido, de otro modo se reconocerá un error de integridad de la IU de comando de transporte debido a error de LRC inválido.
2) El trayecto lógico será establecido, de otro modo se reconocerá un error de trayecto lógico no establecido;
3) Para aquellos comandos que requieren que el dispositivo esté instalado y listo, la dirección del dispositivo especificará un dispositivo que está instalado y listo, de otro modo se reconocerá una condición de excepción de dirección;
4) Los bits R y W no serán establecidos a uno en la TCH si la transferencia de datos bidireccional no es soportada por la unidad de control o la IU de comando de transporte no contiene el campo BDRL, de otro modo se reconocerá un error de contenido de TCH.
5) El TCCB en la IU de comando de transporte satisfará todas las siguientes condiciones, de otro modo, será reconocido un error de contenido de TCCB:
a) El campo L2 especificará una longitud que es exactamente 8 bytes mayor que el campo L1 y contiene un
valor que es al menos 20 bytes y no más de 252 bytes.
b) El byte 1 de la palabra 0 de la TCAH será cero;
c) El campo de control de formato en la TCAH será igual a "7F" hex;
d) El código de acción de servicio en la TCAH contendrá un valor válido (véase 8.13.4.4);
e) Si los bits R y W son ambos establecidos a cero, el campo de longitud de datos (DL) será cero; y
6) Si otra operación de I/O de TCW está en progreso para el trayecto lógico y la dirección de dispositivo especificada en la IU de comando de transporte, el código de acción de servicio especificará '1FFF' hex y el código de comando en la primera DCW del TCA especificará el código de comando de interrogación, de otro modo se reconocerá un error de segunda operación de no interrogación.
En una realización, el canal 128 considera que existe una conexión cuando la IU 172 de comando de transporte es enviada, y la unidad de control 118 considera que existe una conexión cuando la IU 172 de comando de transporte es aceptada. El canal 128 no es así conocedor de si la unidad de control 118 ha aceptado el TCCB 170 o del progreso de la operación de I/O en el dispositivo 116 hasta que la operación de I/O es terminada por la unidad de control 118 con una IU de respuesta de transporte. En una realización, el canal 128 puede establecer una ventana de tiempo para la que recibir una respuesta desde la unidad de control, de manera que si el canal no recibe una IU de respuesta de transporte dentro de la ventana, el canal reconoce un comando de transporte fuera de tiempo.
En la etapa 304, cuando el TCCB 170 ha sido aceptado, la unidad de control 118 trata el TCA 180 y ejecuta cada DCW
202. La DCW 202 que es ejecutada es reconocida como la DCW actual. Una DCW 202 resulta actual cuando es la primera DCW de un programa en modo transporte (es decir la primera DCW en un TCCB) y ha sido seleccionada por el dispositivo de I/O 116 para su ejecución o cuando, durante el encadenamiento de comandos, una DCW 202 subsiguiente toma el control de la operación I/O. La primera DCW que ha de ser ejecutada puede ser considerada que está situada en desplazamiento cero del TCA 180 en el TCCB 170. Cada DCW adicional en el programa de canal está situada en el TCA 180 (o en una TCAX 220) y es utilizada cuando la DCW es necesitada por el dispositivo de I/O 116.
El encadenamiento de comandos es controlado por la banderola del comando de cadena (CC) de DCW en la DCW. Esta banderola especifica la acción que ha de ser tomada al agotamiento de la DCW actual. El encadenamiento tiene lugar entre DCW sucesivas dentro del TCA. Cuando se ha especificado una TCAX, el encadenamiento también tiene lugar entre la última DCW en el TCA y la primera TCW en la TCAX, y entre DCW sucesivas dentro de la TCAX. Cuando la DCW actual especifica encadenamiento de comandos y no se han detectado condiciones inusuales durante la operación, la terminación de la DCW actual hace que la siguiente DCW resulte la DCW actual y sea ejecutada por el dispositivo. Si una TCAX es especificada y el desplazamiento de la siguiente DCW es más allá del final del TCA, el encadenamiento continúa, con la primera DCW de la TCAX cuyo desplazamiento de TCAX es determinado sustrayendo la longitud del TCA del desplazamiento calculado. Así, el encadenamiento de comandos prosigue en orden ascendente de desplazamientos de TCA, y a continuación de desplazamientos de TCAX cuando es especificada una TCAX. Si una condición tal como una atención, comprobación de unidad, excepción de unidad, o longitud incorrecta ha ocurrido (a menos que un campo 214 de SLI en la DCW es activado), la secuencia de operaciones es concluida, y el estado asociado con la operación actual hace que se genere una condición de interrupción. La nueva DCW en este caso no es ejecutada.
Los datos que se requiere sean transferidos a través de la operación de I/O son enviados entre el canal 128 y la unidad de control 118 a través de una o más IU de datos de transporte durante el tratamiento de las DCW 202 en un TCCB
170. Una operación de lectura realiza solo una transferencia de datos de lectura, una operación de escritura realiza solo una transferencia de datos de escritura y una operación bidireccional puede realizar tanto transferencia de datos de lectura como de escritura.
Con referencia a la fig. 15, para una operación de escritura o bidireccional, el canal 128 envía una o más IU 310 de datos de transporte a la unidad de control 118 para transferir datos de escritura 312 para la operación. Para una operación de lectura o bidireccional, la unidad de control 118 envía al menos una IU 314 de datos de transporte al canal 128 para transferir datos de lectura 316 especificados para la operación. Los bytes de relleno 318 pueden estar incluidos en la última palabra de un área de datos para la que ha de ser calculada la CRC y son utilizados para rellenar el área de datos al siguiente límite de palabras cuando el área de datos que ha de ser cubierta no es un número entero de palabras de datos. Esto se aplica a áreas de datos que han de ser cubiertas por COB, CRC intermedia y final. El valor utilizado para un byte de relleno depende del modelo.
Un campo 320 de CRC final está incluido en una IU de datos de transporte 310, 314 cuando la IU de datos del transporte es la última IU de datos de transporte enviada por el canal 128 o la unidad de control 118 para una operación de I/O de TCW. En una realización, el campo 320 de CRC final incluye un código de comprobación de redundancia de 32 bits alineado en palabras. Para operaciones de lectura o escritura, el campo DL en el TCCB 170
especifica la cantidad de datos que han de ser transferidos durante una operación, que puede incluir todos los bytes de relleno y de CRC requeridos. Para operaciones bidireccionales, el campo DL en el TCCB 170 especifica la cantidad de datos que han de ser transferidos para la parte de transferencia de datos de escritura de la operación y el campo BRDL especifica la cantidad de datos que han de ser transferidos para la parte de transferencia de datos de lectura de la operación. Estas cantidades pueden incluir todos los bytes de relleno y de CRC requeridos.
Durante una transferencia de datos de escritura o bidireccional, los datos de salida son transferidos en una o más IU 310 de datos del transporte a la unidad de control 118 sobre el intercambio de transporte asociado con la operación de I/O de TCW. En una realización, cuando la primera lista para transferencia es inhabilitada, excepto para la primera IU 310 de datos de transporte de escritura de una operación, el canal 128 requiere una IU lista para transferencia desde la unidad de control 118 antes de enviar cada IU de datos de transporte 310. La unidad de control 118 puede requerir datos adicionales enviando las IU listas para transferencia adicionales hasta que ha solicitado todos los datos especificados por el campo DL 186 del TCCB 170 para la operación de escritura. Para una operación de escritura, la siguiente IU enviada por la unidad de control 118 después de la terminación de la transferencia de datos especificada por el campo DL en el TCCB es una IU de respuesta del transporte. Para una operación bidireccional, la siguiente IU enviada por la unidad de control 118 después de la terminación de la transferencia de datos especificada por el campo DL en el TCCB puede ser una IU de datos de transporte o una IU de respuesta de transporte.
Durante una transferencia de datos de lectura, los datos son transferidos en una o más IU 314 de datos de transporte al canal 128 sobre el intercambio de transporte asociado con la operación de I/O de TCW. La cantidad de datos enviados en cada IU de datos de transporte es determinada por la unidad de control 118 puede ser establecida a cualquier valor siempre que la cantidad total de datos transferidos en todas las IU 314 de datos de transporte para la operación no exceda del valor en el campo 186 de DL o, para operaciones bidireccionales, el valor en el campo 188 de BRDL. Para operaciones de lectura, si la cantidad de datos enviada por la unidad de control es menor que el campo DL en el TCCB, el cómputo residual de DL en la IU de respuesta de transporte será la diferencia entre la cantidad de datos enviados por la CU y el campo DL en el TCCB. El canal reconoce un error de protocolo de nivel de dispositivo si el cómputo residual proporcionado por la unidad de control en la IU de respuesta de transporte no coincide con la diferencia entre el DL y el número de bytes realmente recibidos por el canal.
Para operaciones de escritura y bidireccionales, el cómputo residual de DL en la IU de respuesta de transporte será la diferencia entre la cantidad de datos enviados por el canal y el campo DL en el TCCB. El canal reconoce un error de protocolo del nivel de dispositivo si el cómputo residual de DL proporcionado por la unidad de control en la IU de respuesta de transporte no coincide con la diferencia entre la DL y el número de bytes realmente enviados al canal. Para operaciones bidireccionales, si la cantidad de datos enviados por la unidad de control es menor que el campo BRDL en el TCCB, el cómputo residual de BRDL en la IU de respuesta de transporte será la diferencia entre la cantidad de datos enviados por la CU y el campo BRDL en el TCCB. El canal reconoce un error de protocolo de nivel de dispositivo si el cómputo residual de BRDL proporcionado por la unidad de control en la IU de respuesta de transporte no coincide con la diferencia entre la BRDL y el número de bytes realmente recibidos por el canal.
Para una operación de escritura o bidireccional, cuando está inhabilitada la primera lista para transferencia, el canal envía una IU de datos de transporte que sigue inmediatamente a la IU de comando de transporte. Para todas las IU de datos de transporte procedentes del canal después de la primera IU de datos de transporte y para todas las IU de datos de transporte procedentes del canal cuando no está inhabilitada la primera lista para transferencia, el canal enviará una IU de datos de transporte sólo después de recibir una IU lista para transferencia. El canal enviará una IU de datos de transporte después de que cada IU lista para transferencia es recibida hasta que todos los datos de escritura especificados por el TCCB son transferidos o es recibida una IU de respuesta de transporte.
Para una operación de lectura o bidireccional, la unidad de control envía al menos una unidad de datos de transporte al canal para transferir los datos de lectura especificados para la operación.
Para operaciones bidireccionales, cuando la primera lista para transferencia inhabilitada no existe en efecto, la unidad de control selecciona la primera IU de datos del transporte que ha de ser transferida. La unidad de control o bien envía una IU lista para transferencia al canal para solicitar una IU de datos de transporte, o bien envía una IU de datos de transporte al canal. Si la primera listo para transferencia inhabilitada existe en efecto para la operación, el canal envía una IU de datos de transporte después de una IU de comando de transporte.
Para operaciones bidireccionales, puede realizarse tanto una transferencia de datos de escritura como de lectura. La transferencia de datos de escritura y la transferencia de datos de lectura pueden ser realizadas como se ha descrito anteriormente. Excepto para la primera IU de datos de transporte cuando la primera lista para transferencia inhabilitada existe en efecto, la transferencia de datos entre el canal y la unidad de control es controlada por la unidad de control, bien enviando una IU de datos de transporte de lectura, o bien enviando una IU lista para transferencia para solicitar una IU de datos de transporte de escritura.
El orden en que los datos que han sido recibidos en una IU de datos de transporte es almacenado en el
almacenamiento anfitrión en relación con el orden en que los datos son recogidos del almacenamiento anfitrión para enviar en una IU de datos de transporte puede ser impredecible para una operación bidireccional.
Cuando el canal transfiere una primera IU de datos del transporte cuando la primera lista para transferencia inhabilitada existe en efecto o cuando la unidad de control solicita una IU de datos de transporte procedentes del canal enviando una IU lista para transferencia, los datos enviados por el canal en la IU de datos de transporte pueden ser para DCW de escritura que son ejecutadas subsiguientemente a la ejecución de las DCW de lectura en el TCA.
Como se ha mostrado en la fig. 15, una o más palabras 320 de CRC intermedia pueden estar presentes en una IU 310 de datos de transporte enviada por el canal 128. Las palabras 320 de CRC intermedia proporcionan una comprobación de CRC de áreas de datos antes de transmisión del área de datos completa especificada por el TCA 180. Una palabra 322 de CRC de COB puede estar presente en una IU 310 de datos de transporte cuando un COB 222 está siendo transferido en la IU de datos de transporte.
Con referencia de nuevo a la fig. 14, en la etapa 305, la operación de I/O de TCW es terminada bien por el canal 128 o bien por la unidad de control 118. El canal 128 puede iniciar la terminación de una operación de I/O de TCW como el resultado de una condición anormal o de una terminación del programa iniciado. La unidad de control 128 puede iniciar la terminación de la operación como resultado de la terminación de la ejecución de la operación o como el resultado de una condición anormal detectada durante la ejecución del comando. La unidad de control 128 puede iniciar el final de una operación de I/O de TCW enviando una IU de respuesta del transporte o, en el caso de ciertos errores, abortando el intercambio. En una realización, la unidad de control 118 puede iniciar la terminación de una operación de I/O de TCW bajo cualquiera de las siguientes circunstancias: todas las DCW 202 en el TCA 180 (y una TCAX si es especificada) han sido ejecutadas; una condición de longitud incorrecta ha sido detectada para una DCW cuando la función de longitud incorrecta de DCW está soportada y la banderola 214 de SLI es establecida a cero; una condición de comprobación de unidad ha sido detectada; una condición anormal tal como un error de transporte; o ha sido reconocido otro error que requería que el intercambio fuera abortado.
Las figs. 16 -18 ilustran una IU 330 de respuesta de transporte ejemplar que puede ser enviada por una unidad de control 118. La IU 330 de respuesta de transporte proporciona un estado para una operación de I/O de TCW, que puede incluir un estado de terminación normal o, cuando ha sido detectada una condición anormal, estado de terminación que indica la causa para la terminación anormal de la operación. La IU 330 de respuesta de transporte puede incluir también un campo de estado extendido que proporciona otros estados para la operación. Una IU de respuesta de transporte puede o no cerrar un intercambio de transporte. En una realización, si se ha cerrado o no el intercambio por una IU de respuesta de transporte es indicado en la cabecera de FC-FS-3. Si el intercambio de transporte no ha sido cerrado por la IU de respuesta de transporte, el canal puede enviar una IU de confirmación de transporte que cierra el intercambio después de recibir la IU de respuesta de transporte.
En una realización, la IU 330 de respuesta de transporte incluye una cabecera de SB-4 332 seguida por un campo de estado 334, un LRC de estado 344, y un campo 346 de estado extendido opcional que contiene por ejemplo de 32 a 64 bytes. Cuando se proporciona el estado extendido, puede proporcionarse un campo 340 de LRC de estado extendido de 4 bytes como la última palabra de la IU 330 de respuesta de transporte. Los bytes de relleno son añadidos al estado extendido para redondear al siguiente límite de palabra sí el número de bytes de estado extendido no está en un límite de palabra. La cabecera de SB-4 332 tiene un formato similar al de la IU de comando de transporte y es establecida igual a la cabecera SB-4 en la IU de comando de transporte para este intercambio.
Con referencia a la fig. 17, una realización el área de estado 334 es, por ejemplo 20 bytes y contiene información acerca de la operación de I/O de TCW. Un campo 336 de "banderolas 1 de estado" incluye uno o más códigos de excepción que son establecidos por la unidad de control 118 para referirse a una condición anormal detectada durante una operación de I/O de TCW. Los códigos ejemplares incluyen:
0 - Excepción de nivel del dispositivo debida a una condición de excepción de dirección;
2 - Rechazo de nivel de enlace debido a una condición de trayecto lógico no establecido;
3 - Notificación de evento de reposición - un evento de reposición ha ocurrido en el trayecto lógico y el dispositivo asociado con la IU de comando de transporte. Cuando este código es establecido en la IU de respuesta de transporte, la unidad de control solicita confirmación del estado para el estado. Si se recibe la confirmación del estado, la condición del evento de reposición es repuesta en el dispositivo para el trayecto lógico; de otro modo, la condición de evento de reposición permanece pendiente;
4 - Comprobación/IFCC de programa de dispositivo detectado - la unidad de control ha detectado una condición que puede dar como resultado una comprobación de programa o IFCC que ha de ser informado. Los errores que caen dentro de esta categoría incluye errores que indican que la IU de comando de transporte ha llegado en un estado corrupto (por ejemplo, error de integridad de TCCB), CRC inválida detectada para datos de escritura, y recepción de una segunda operación de I/O para un trayecto lógico y dirección de dispositivo que no es una operación de
interrogación.
5 - Comprobación de programa de dispositivo detectado - la unidad de control ha detectado un error en el contenido de la TCH.
En una realización, el campo 336 de banderolas 1 de estado incluye una banderola 338 de longitud incorrecta (IL). Cuando la función de longitud incorrecta de DCW es soportada por el canal y la unidad de control, el bit 0 es la banderola IL y, cuando es establecido a uno, indicará que la operación de I/O de TCW ha terminado debido a una condición de longitud incorrecta para la DCW indicada por el desplazamiento de DCW. Una longitud incorrecta es detectada por la unidad de control 118 si el cómputo de datos de DCW no coincide con la cantidad de datos requeridos por el dispositivo para una DCW de escritura o si el cómputo de datos de DCW no coincide con la cantidad de datos disponibles en el dispositivo para una DCW de lectura.
En una realización, si la DCW 202 incluye una banderola 214 de SLI, la banderola 338 de IL es establecida a uno solo cuando la banderola 214 de SLI es cero y cuando el estado del dispositivo incluye un estado de final de canal sin estado de comprobación de unidad. Cuando la banderola 338 de IL es establecida a uno en una IU de respuesta de transporte, el desplazamiento de DCW identifica la DCW que contiene la condición de longitud incorrecta y el cómputo residual de DCW indica la cantidad de transferencia de datos, si los hay, que fueron transferidos para la DCW de longitud incorrecta. La transferencia de datos, si la hay, para DCW que han precedido a la DCW de longitud incorrecta en el TCA se habrá completado y toda la comprobación de CRC sobre datos transferidos habrá sido realizada como se ha descrito a continuación.
Cuando la DCW que contiene la condición de longitud incorrecta es una DCW de lectura, la última IU de datos de transporte enviada al canal INCLUYE CRC para todos los datos de lectura transferidos al canal durante la operación de I/O de TCW. Si las DCW de escritura han precedido a la DCW de lectura de longitud incorrecta en el TCA, los datos para aquellas DCW de escritura habrán sido recibidos por la unidad de control y la comprobación de CRC habrá sido realizada en los datos. Los datos para las DCW de escritura en el TCA que siguen a la DCW de lectura de longitud incorrecta serán transferidos a la unidad de control cuando sea necesario para obtener la CRC para los datos de escritura y para realizar la comprobación de CRC.
La condición de longitud incorrecta no es reconocida por un comando de interrogación, un comando de desplazamiento de CRC de transferencia o un comando de TTE independientemente de si la función de longitud incorrecta es soportada por el canal y la unidad de control.
La IU 330 de respuesta de transporte puede también incluir un campo 340 de Cómputo Residual de Longitud de Datos (DLRC). Para operaciones de escritura y bidireccionales, el cómputo residual de DL es un número entero binario sin signo de 32 bits, que especifica la diferencia entre el campo DL en la IU de comando de transporte y el número de bytes realmente recibidos procedentes del canal. Para operaciones de lectura el cómputo residual de DL es un número entero binario sin signo de 32 bits, que especifica la diferencia entre el campo DL en la IU de comando de transporte y el número de bytes realmente enviados al canal.
Para operaciones bidireccionales, un campo 342 de cómputo residual de BRDL puede también ser incluido en la IU 330 de respuesta de transporte. Para operaciones bidireccionales, el cómputo residual de BRDL es un número entero binario sin signo de 32 bits, que especifica la diferencia entre el campo BRDL en la IU de comando de transporte y el número de bytes realmente enviados al canal.
Un campo 344 de Banderolas 3 de Estado puede ser utilizado por la unidad de control 118 para proporcionar información adicional acerca de la operación en modo transporte asociada. Este campo puede incluir un bit de Envío de Estado Extendido (ESS) para indicar que el estado extendido, incluyendo posibles datos de detección, ha sido enviado en la IU de respuesta de transporte. El estado extendido incluye Banderolas de estado extendido (ES) que incluyen campos tales como un campo de Código de Tipo ES. Los códigos tipo incluyen el estado de I/O (el área de estado extendido contiene un estado de finalización válido para la operación de I/O en modo transporte), Excepción de I/O (el área de estado extendido contiene información relativa a la terminación de la operación de I/O en modo transporte debido a una condición de excepción), y estado de Interrogación (el área de estado extendido contiene estado para una operación de interrogación).
Cuando el código de tipo ES en las Banderolas de ES es una excepción de I/O, el ES incluye códigos de razón (RC). Los códigos de razón ejemplares incluyen:
1 - Error de integridad de TCCB: la unidad de control ha determinado que el TCCB ha llegado en un estado corrupto (proporcionado cuando el código 4 de excepción está indicado en el campo de las banderolas 1 de estado);
2 - CRC inválida detectado: la CRC inválida fue detectado en los datos recibidos (proporcionados cuando el código 4 de excepción está indicado en el campo de banderolas 1 de estado).
3 - Especificación de longitud incorrecta de TCCB (proporcionado cuando el código de excepción 5 está indicado en el campo de banderolas 1 de estado);
4 - Error de especificación de TCAH (proporcionado cuando el código 5 de excepción es indicado en el campo de banderolas 1 de estado);
5 - Error de especificación de DCW: hay un error con la DCW designada por el campo de desplazamiento de DCW en el estado extendido (proporcionado cuando el código 5 de excepción es indicado en el campo de banderolas 1 de estado;
6 - Error de especificación de dirección de transferencia: el comando especificado por la DCW designada por el campo de desplazamiento de DCW en el estado extendido especifica una dirección de transferencia de datos que no concuerda con la dirección de transferencia especificada en la TCH o ambos bits R y W son establecidos a uno en la TCH y la transferencia de datos bidireccional no es soportada por la unidad de control (proporcionada cuando el código 5 de excepción está indicado en el campo de banderolas 1 de estado);
7 - Error de especificación de cómputo de transporte (proporcionado cuando el código 5 de excepción está indicado en el campo de banderolas 1 de estado);
8 - Activo de dos operaciones de I/O: Mientras una operación de I/O está activa en el dispositivo un segundo TCCB de no interrogación ha sido transportado al dispositivo para su ejecución. El campo RCQ no tiene significado. Este código de razón es proporcionado cuando el código 4 de excepción está indicado en el campo de banderolas 1 de estado; y
9 - Una o más entradas en el bloque de desplazamiento de CR indican que una CRC intermedia no está en una ubicación que es apropiada para el dispositivo y/o comando que es ejecutado proporcionado cuando el código 4 de excepción está indicado en el campo de banderolas 1 de estado.
El Estado Extendido puede también proporcionar un Calificador de Código de Razón (RCQ) que proporciona información adicional acerca de la razón o razones para la excepción de I/O. Pueden utilizarse diferentes tipos de calificador de código de razón para diferentes tipos de errores, tales como errores de integridad de TCCB, Errores de CRC de Datos de Salida, Especificaciones de Longitud de TCCB Incorrectas, Errores de Especificación de TCAH y Errores de Especificación de DCW. Los RCQ ejemplares para un error de integridad de TCCB incluye:
0 - Sin información adicional;
1 - Error de Cómputo de Datos - la cantidad de datos transferidos para la IU de comando de transporte no es equivalente a la cantidad de datos especificados por el campo L1 más 8 en la TCH para unidades de control que no soportan operaciones bidireccionales o no es equivalente a la cantidad especificada por el campo L1 más o bien 8 o bien 9 para unidades de control que no soportan operaciones bidireccionales de soporte, y
2 - Error de LRC - el LRC sobre la IU de comando de transporte es inválido.
RCQ ejemplares para un error de especificación de DCW incluyen:
1 - Error de especificación de campo reservado: Un campo reservado en la DCW que se requiere que contenga ceros contiene un valor distinto de cero;
2 - Error de especificación de encadenamiento de comando de campo de banderolas: El bit de encadenamiento de comandos es uno y el desplazamiento de la siguiente DCW es tal que la totalidad o parte de la siguiente DCW se extiende más allá del final del TCA, o el bit de encadenamiento de comando es cero y más de 3 bytes sin utilizar permanecen en el TCA;
3 - Error de especificación de cómputo de datos de control: El cómputo de CD especifica datos de control más allá del final del TCA;
4 - Error de ubicación de DCW de TCOB: La primera DCW de TCOB no es la primera DCW en el TCA;
5 - Error de duplicación de DCW de TCOB: Más de una DCW de TCOB está especificada en el TCA;
6 - Error de especificación de múltiples cómputos de DCW de TCOB: Tanto el cómputo de CD como el cómputo de datos de DCW son o bien cero, o bien distintos de cero;
7 - Error de dirección de DCW de TCOB: Una DCW de TCOB es especificada en el TCA y el bit W en la TCH es cero;
8 - Error de encadenamiento de DCW de TCOB: El bit de comando de cadena en la DCW de TCOB es cero;
9 - Error de especificación de cómputo de TCOB: Una DCW de TCOB tiene un cómputo de CD distinto de cero o un
cómputo de datos que no es un múltiplo de 4;
10 - Error de ubicación de DCW de TTE: Una DCW de TCOB no fue especificada y se encontró una DCW de TTE que no era la primera DCW en el TCA o se especificó una DCW de TCOB y la primera DCW de TTE encontrada no era la segunda DCW en el TCA;
11 - Error de duplicación de DCW de TTE: Se encontró más de una DCW de TTE en el TCA;
12 - Error de especificación de cómputo de CD en DCW de TTE: El cómputo de datos de control en la DCW de TTE especifica un valor distinto de cero;
13 - Error de especificación de cómputo de datos de DCW de TTE: El cómputo de datos en la DCW de TTE especifica un valor que es menor que 8 o un valor que no es un múltiplo de 4.
14 - Error de dirección de DCW de TTE: Una DCW de TTTE es especificada y el bit W en la TCH es cero;
15 - Error de encadenamiento de DCW de TTE: El bit de comando de cadena en la DCW de TTE es cero; y
16 - Error de especificación de TCAX: Una DCW de TTE es especificada y algo de lo siguiente es verdadero:
La longitud del TCA es de 58 palabras o menos, o
La longitud del TCA es de 59 palabras, la última DCW en el TCA especifica datos de control y la longitud de los datos de control se extiende más allá de 59 palabras, o
La longitud del TCA es la longitud máxima de 60 palabras y la última palabra en el TCA contiene la primera palabra de una DCW.
RCQ ejemplares para un Error de Especificación de Dirección de Transferencia incluyen:
1 - Error de especificación de dirección de lectura: La DCW especifica una operación de entrada y el bit R en la TCH es cero;
2 - Error de especificación de dirección de escritura: La DCW especifica una operación de salida y el bit W en la TCH es cero. Nota - Una especificación de DCW es reconocida cuando una DCW de TCOB o de TTE es especificada y el bit W en la TCH es cero;
3 -Conflicto de lectura-escritura: Tanto el bit R como el W en la TCH son uno y la unidad de control no soporta operaciones bidireccionales o la unidad de control soporta operaciones bidireccionales pero la IU de comando de transporte no contenía el campo BRDL, o tanto el bit R como el W no son uno y la IU de comando de transporte contiene el campo de BRDL;
RCQ ejemplares para un Error de Especificación de Cómputo de Transporte incluyen:
1 - Error de especificación de cómputo de lectura: para operaciones de lectura, el campo DL en el TCCB especifica un valor que no es equivalente al cómputo total de bytes de datos especificados por las DCW en el TCA más bytes de relleno y de CRC, para operaciones bidireccionales, el campo BRDL en el TCCB especifica un valor que no es equivalente al cómputo total de bytes de datos especificado por las DCW de lectura en el TCA más bytes de relleno y de CRC; y
2 - Error de especificación de cómputo de escritura: El campo DL en el TCCB especifica un valor que no es equivalente al cómputo total de bytes de datos especificados por las DCW de escritura en el TCA más bytes de relleno intermedios, de CRC intermedio, bytes de relleno final y bytes de CRC finales, y si un COB está incluido en la primera IU de datos de transporte de la transferencia de datos de escritura, el cómputo incluye el COB, cualesquiera bytes de relleno de COB y los bytes de CRC de COB. Si hay presente una DCW de TTE en el TCA, el cómputo también incluye la TCAX y bytes de CRC de TCAX.
Una comprobación de programa ocurre cuando el subsistema de canal detecta errores de programa. Para una operación en modo transporte, los errores de programación también pueden ser detectados por el dispositivo de I/O 116 y son informados como comprobaciones de programa. Una condición de comprobación de programa puede ser debida a cualquiera de las siguientes razones:
Especificación de TCW inválida: Cuando cualquiera de las condiciones siguientes es detectada, se reconoce una especificación de TCW inválida:
1 Un campo reservado que es comprobado en cuanto a ceros en la TCW no contiene ceros.
2 Un valor distintos de cero es especificado en el campo de formato de TCW.
3 Los bits de lectura y escritura en la TCW son ambos uno, el bit 10 del campo de banderolas de TCW es cero, y o bien la función de transferencia de datos bidireccional FCX no está instalada o bien el dispositivo especificado no soporta transferencias de datos bidireccionales.
4 El bit 10 del campo de banderolas de TCW es cero y el campo de longitud de TCCB en una TCW especifica una longitud que es menor que 12 o mayor que 244.
5 El bit 10 del campo de banderolas de TCW es uno y el bit de las operaciones de escritura (W) de la TCW es cero, el bit de las operaciones de lectura (R) de la TCW es cero, o ambos son cero.
6 El bit 10 del campo de banderolas de TCW es uno y el subcanal designado no está asociado con una unidad de control que ha sido configurada para transportar solicitudes de servicios de canal de fibra.
Cuando es utilizada una DCW de TTE, una comprobación de programa detectada por el dispositivo es reconocida cuando existe alguna de las siguientes condiciones:
1.
Cuando no se ha especificado una DCW de TCOB, la DCW de TTE no es la primera DCW en el TCA. Cuando se ha especificado una DCW de TCOB, la DCW de TTE no es la segunda DCW en el TCA.
2.
La DCW de TTE es especificada y una operación de escritura no es especificada (es decir, el bit W en la TCW es cero).
3.
La banderola de comando de cadena en la DCW de TTE es cero.
4.
Más de una TCW de TTE es especificada.
5.
El campo de datos de control en la DCW de TTE no contiene cero.
6.
El campo de cómputo contiene menos de 8 o un valor que no es un múltiplo de 4.
7.
Algo de lo siguiente es verdad para el TCA:
El TCA no contiene al menos una DCW que no sea una DCW de comando de transporte.
El TCA contiene una o más DCW que no son DCW de comando de transporte y la banderola de comando de cadena en la última DCW del TCA es cero.
Cuando una DCW de TTE es utilizada y datos de TCMI adicionales y/o de salida siguen a la TCAX, lo siguiente debe ser verdadero, de otro modo, puede reconocerse una comprobación de programa detectado por el dispositivo.
La banderola de TIDA de salida (bit 7 de banderolas) en la TCW debe ser uno, o
Cuando se utilizan las TIDAW para la transferencia de una TCAX y para la transferencia de datos, el control de CBC de inserción debe ser establecido a uno en la última o sola TIDAW que es utilizada para transferir la TCAX. Cuando las TIDAW son utilizadas para la transferencia solamente de la TCAX, no es necesario establecer el control de CBC de inserción en la última o sola TIDAW.
Durante el tratamiento de un TCA, puede reconocerse un error de contenido de TCCB cuando se detectan algunas de las siguientes condiciones:
1.
La primera DCW de TCOB encontrada no es la primera DCW en el TCA.
2.
Una segunda DCW de TCOB es encontrada en el TCA;
3.
Una DCW de TCOB es encontrada en el TCA cuando el bit W en la TCAH es cero.
4.
Una DCW de TCOB no tiene la banderola de encadenamiento establecida;
5.
Una DCW de TCOB es encontrada en la que tanto el cómputo de CD como el cómputo de datos son cero;
6.
Una DCW de TCOB es encontrada en la que tanto el cómputo de CD como el cómputo de datos son distintos de cero;
7.
Una DCW de TCOB es encontrada en la que el cómputo de CD es cero y el cómputo de datos no es un múltiplo de 4;
8. Una DCW de TCOB es encontrada en la que el cómputo de datos es cero y el cómputo de CD no es un múltiplo de
4.
9.
Una DCW de TCOB no es especificada y la DCW de TTE no es la primera DCW en el TCA o un TCOB es especificado y la DCW de TTE no es la segunda DCW en el TCA;
10.
Una DCW de TTE es encontrada en el TCA cuando el bit W en la TCAH es cero;
11.
Una DCW de TTE no tiene el conjunto de banderola de encadenamiento;
12.
Una segunda DCW de TTE es encontrada en el TCA;
13.
Una DCW de TTE es encontrada en la que el cómputo de CD es distinto de cero;
14.
Una DCW de TTE es encontrada en la que el cómputo de datos es cero o no es un múltiplo de 4;
15.
Una DCW de TTE es especificada y algo de lo siguientes es verdadero: la longitud del TCA es de 58 palabras o menos; la longitud del TCA es de 59 palabras, la última DCW en el TCA especifica datos de control y la longitud de los datos de control se extiende más allá de 59 palabras, o la longitud del TCA es la longitud máxima de 60 palabras y la última palabra en el TCA contiene la primera palabra de una DCW;
16.
Una DCW contiene un comando que requiere datos de control y el campo de cómputo de CD es cero o contiene un valor que especifica datos más allá del final del TCA;
17.
Una DCW contiene un campo de cómputo de CD que es distinto de cero y el comando no permite que se proporcionen datos de control.
18.
Durante una operación de escritura, el dispositivo ha encontrado un comando en el TCA que ha intentado realizar una transferencia de datos de lectura;
19.
Durante una operación de lectura, el dispositivo ha encontrado un comando en el TCA que ha intentado realizar una transferencia de datos de escritura;
20.
El bit de CC es cero en una DCW y más de 3 bytes inutilizados permanecen en el TCA;
21.
El bit de CC es uno en una DCW y la siguiente ubicación de DCW es determinada para que sea menor de 8 bytes a partir del final del TCA indicador y una TCAX no ha sido proporcionada, o una TCAX ha sido proporcionada y la siguiente ubicación de DCW es determinada para que sea menor de 8 bytes a partir del final de la TCAX.
22.
Para una operación de lectura o bidireccional, cuando una DCW de lectura en el TCA resulta actual, la suma de los cómputos de datos para todas las DCW de lectura previas y la DCW actual más todos los bytes de relleno y de CRC excede del campo de DL en el TCCB o, para operaciones bidireccionales, excede del campo de BRDL en el TCCB,
23.
Para una operación de lectura o bidireccional, cuando la última DCW en el TCA resulta actual, la suma de los cómputos de datos para todas las DCW de lectura más todos los bytes de relleno y de CRC no es igual al campo de DL en el TCCB o, para operaciones bidireccionales, no es igual al campo de BRDL en el TCCB;
24.
Para una operación de escritura o bidireccional, cuando una DCW en el TCA resulta actual, la suma de los cómputos de datos para todas las DCW de escritura más todos los bytes de relleno y de CRC (incluyendo todos los bytes de relleno intermedios y de CRC), y si hay incluido un COB en la IU de datos de transporte, de los bytes de COB, de relleno de COB y de CRC de COB, y si hay presente una TCAX, de los bytes de TCAX, de relleno de TCAX y de CRC de TCAX, excede el campo de DL en el TCCB; o
25.
Para una operación de escritura o bidireccional, cuando la última DCW en el TCA resulta actual, la suma de los cómputos de datos para todas las DCW de escritura más todos los bytes de relleno y de CRC (incluyendo todos los bytes de relleno intermedios y de CRC), y si hay incluido un COB en la IU de datos de transporte, de los bytes de COB, de relleno de COB y de CRC de COB, y si hay presente una TCAX, de los bytes de TCAX, de relleno de TCAX y de CRC de TCAX, no es igual al campo de DL en el TCCB.
En una realización, antes de realizar operaciones en modo comando o en modo transporte, se establecen enlaces entre el subsistema de canal 114 y las unidades de control 118 y/o los dispositivos 116. Cada canal 128 en el sistema de I/O que tiene una conexión física con una o más unidades de control puede ser denominado como un “N_port” que tiene un identificador único (un “N_Port_ID”). De modo similar, cada unidad de control 118 también puede ser denominada como un N_Port que tiene un N_Port_ID asociado. Tanto un canal 128 como una unidad de control 118 pueden incluir múltiples imágenes de canal o imágenes de unidad de control, respectivamente. Cada N_Port incluye un identificador de dirección que es asignado durante la inicialización y el rendimiento de un procedimiento de registro. Un
registro explícito de N_Port puede ser realizado por medio del servicio de enlace extendido de registro N_Port (PLOGI) durante el proceso de inicialización. Cuando un N_Port ha realizado el registro de N_Port con otro N_Port distinto del N_Port se dice que ha sido registrado con el otro N_Port.
En una realización, la inicialización de enlace entre el subsistema de canal y las unidades de control es realizada utilizando el protocolo de servicio de enlace extendido (ELS) del registro de proceso (PRLI). Aspectos generales del ELS de PRLI que incluyen el formato de la solicitud y respuesta de ELS de PRLI, están dados en “Canal de Fibra: Servicios de Enlace (FC-LS-2)” Proyecto T11 2103-D, Revisión 2.00, 26 de Junio de 2008, con ajustes específicos para FC-SB-4 definidos en las secciones que siguen.
Durante un procedimiento de PRLI, un canal 128 que soporta PRLI envía una solicitud a cada unida de control 118 en su configuración que también soporte el registro de proceso ELS para determinar si la unidad de control 118 soporta operaciones en modo transporte. En una realización, la solicitud de PRLI es enviada durante la inicialización de canal antes de establecer trayectos lógicos y puede también ser enviada como el resultado de una salida de registro de proceso (PRLO). El ELS de PLRI es utilizado para intercambiar parámetros de servicio de registro de proceso entre un canal 128 y una unidad de control 118. Una solicitud de ELS de PRLI puede ser enviada por un canal a una unidad de control cuando se han establecido trayectos lógicos con la unidad de control y se aplica a todos los trayectos lógicos establecidos. Los parámetros pueden ser intercambiados entre un canal y una unidad de control mediante una solicitud de PRLI y una respuesta de PRLI.
En una realización, si una unidad de control recibe una solicitud de ELS de PRLI que modificaría los parámetros de servicio para un registro de proceso ya en efecto con el canal, la unidad de control responde a la solicitud de ELS de PRLI con un rechazo de servicio de enlace (LS_RJT). La respuesta de LS_RJT es enviada con el código de razón ‘09’ hex, ”incapaz de realizar una solicitud de comando en este momento”. Después de que la unidad de control envía el LS_RJT, la unidad de control enviará una solicitud de ELS de salida de registro de proceso (PRLO) al canal para permitir una recuperación de la solicitud de ELS de PRLI desde el canal para ser realizada satisfactoriamente.
Con referencia a la fig. 18 la solicitud de PRLI incluye una página de parámetros de servicio, que incluye distintos campos utilizados para establecer parámetros de servicio. Por ejemplo, la página 400 de parámetros de servicio puede incluir un campo 402 de Código Tipo que identifica un modo de transporte o protocolo FC-4 (por ejemplo es configurado a ‘1B’ hex para indicar el protocolo SB-4). Un campo 404 de extensión de código tipo (por ejemplo byte 1 de palabra 0) es establecido a cero. Un campo 406 de Banderolas FC-LS-2 (por ejemplo, bits 16-19 de palabra 0) puede ser establecido por el canal como sigue:
Bit 16 – Validez de Asociado de Proceso Generador: este bit es establecido a cero por el canal e ignorado por la unidad de control;
Bit 17 - Validez de Asociado de Proceso Respondedor: este bit es establecido a cero por el canal e ignorado por la unidad de control;
Bit 18 – Par de Imagen Establecido: este bit es establecido a cero por el canal e ignorado por la unidad de control; y
Bit 19 – Reservado: este bit es establecido a cero por el canal e ignorado por la unidad de control.
La página de parámetros de servicio puede incluir campos adicionales tales como un campo 408 de Asociado de Proceso Generador (por ejemplo, palabra 1) que es establecido a cero por el canal, y un campo 410 de Asociado de Proceso de Respondedor (por ejemplo, palabra 2). Un campo 412 de Tiempo de Retardo de Iniciación Máximo (por ejemplo byte 0 de palabra 3) contiene un número entero binario que especifica en unidades de segundos el valor máximo que la unidad de control puede establecer como el tiempo de retardo de iniciación en una solicitud de salida de registro de proceso (PRLO). Una solicitud de PRLO es utilizada por el canal o la unidad de control para terminar una operación en modo transporte entre el canal y la unidad de control. El valor del Tiempo de Retardo de Iniciación Máximo está basado generalmente en la cantidad de tiempo que el canal puede aguantar iniciando nuevas operaciones de I/O sin interrumpir al sistema anfitrión.
Un campo 414 de Banderolas FC-SB-4 (por ejemplo, Byte 3 de palabra 3 de la página de solicitud de PRLI) incluye una
o más banderolas descritas a continuación.
0 – Modo de Transporte Soportado. Cuando el bit 0 es establecido a cero, el canal no soporta las operaciones en modo transporte. Cuanto el bit 0 es establecido a uno, el canal soporta las operaciones en modo transporte.
1 – Reservado.
2 – Función Soportada de Longitud Incorrecta (IL) de DCW. Por ejemplo, cuando una banderola de IL es activa (por ejemplo, cuando el bit 2 es establecido a uno), la función de IL de DCW está soportada por el canal 128. Cuando el bit
2 es establecido a cero, la función IL de DCW no es soportada por el canal 128. La función de IL de DCW incluye soporte para la banderola 214 de suprimir indicador de longitud (SLI) y la banderola 338 de longitud incorrecta. Cuando el bit soportado en modo transporte (bit 0) es igual a cero, el bit 2 será establecido a cero.
5 – Transferencia de Datos Bidireccional Soportada. Cuando una indicación de transferencia bidireccional es activa (por ejemplo el bit 5 es establecido a uno) la transferencia de datos bidireccional es soportada por el canal 128. Cuando el bit 5 es establecido a cero, la transferencia de datos bidireccional no es soportada por el canal. Este bit es solo significativo cuando el bit soportado en modo transporte es igual a uno.
7 – Primera Lista para Transferencia Inhabilitada Soportada. Cuando el bit 7 es establecido a uno, la primera operación inhabilitada lista para transferencia es soportada por el canal. Cuando el bit 7 es establecido a cero, la primera operación lista para transferencia inhabilitada no es soportada por el canal. Cuando el bit soportado en modo transporte (bit 0) es igual a cero, el bit 7 será establecido a cero.
Cuando tanto el canal como la unidad de control indican soporte para la primera lista para transferencia inhabilitada, entonces la transferencia de datos de escritura en modo transporte es realizada con la primera lista para transferencia inhabilitada en efecto, de manera que el canal puede enviar una primera IU de datos de transporte a la unidad de control sin tener que esperar a una IU lista para transferencia procedente de la unidad de control. Si o bien el canal o bien la unidad de control indican que no soportan una primera lista para transferencia inhabilitada entonces la primera lista para transferencia inhabilitada no tiene efecto para operaciones en modo transporte.
Con referencia a la fig. 19, en una realización, la respuesta de PRLI incluye una Página 420 de Parámetros de Servicio de Aceptación de PRLI, que puede incluir campos tales como un campo 402 de Código Tipo que identifica el modo transporte o protocolo FC-4 (por ejemplo es establecido a '1B' hex para indicar el protocolo SB-4), y un campo 404 de extensión de código tipo (por ejemplo, byte 1 de palabra 0) que es establecido a cero. Un campo 406 de Banderolas de FC-LS-2 (por ejemplo bits 16-19 de palabra 0) puede ser establecido por el canal como sigue:
Bit 16 – Validez de Asociado de Proceso Generador: este bit es establecido a cero por la unidad de control e ignorado por el canal;
Bit 17 - Validez de Asociado de Proceso Respondedor: este bit es establecido a cero por la unidad de control e ignorado por el canal;
Bit 18 – Par de Imagen Establecido: este bit es establecido a cero por la unidad de control e ignorado por el canal; y
Bit 19 – Reservado: este bit es establecido a cero por la unidad de control e ignorado por el canal.
Un campo 422 de Código de Respuesta (por ejemplo bits 20-23 de palabra 0) contiene un número entero binario que indica el resultado de la Solicitud de PRLI. Los significados de los valores de códigos de respuesta son definidos por FC-LS-2. Un campo 424 de Primer Tamaño de Ráfaga (por ejemplo, bytes 0-1 de palabra 3) contiene un número entero binario que especifica la cantidad máxima de datos (por ejemplo, en unidades de 4k bytes) que se permite sean enviados en la primera IU de datos de transporte para una transferencia de datos de escritura cuando la primera lista para transferencia inhabilitada es soportada tanto por el canal como por la unidad de control. Un valor de cero indica que no hay un límite para el primer tamaño de ráfaga. El campo 424 de primer tamaño de ráfaga puede ser implementado por todas las unidad de control que soportan una primera lista para transferencia inhabilitada.
La Página 420 de Parámetros de Servicio de Aceptación de PRLI puede también incluir un campo 414 de Banderolas de FC-SB-4 (por ejemplo, byte 3 de palabra 3) que incluye una o más banderolas definidas descritas a continuación:
0 – Modo de Transporte Soportado. Cuando el bit 0 es establecido a cero, la unidad de control no soporta las operaciones en modo transporte. Cuanto el bit 0 es establecido a uno, la unidad de control 118 soporta operaciones en modo transporte.
2 – Función de Longitud Incorrecta (IL) de DCW Soportada. Cuando el bit 2 es establecido a uno, la función de longitud incorrecta (IL) es soportada por la unidad de control 118. Cuando el bit 2 es establecido a cero, la función de IL de DCW no es soportada por la unidad de control 118. La función de longitud incorrecta de DCW incluye soporte para la banderola 214 de SLI y la banderola 338 de longitud incorrecta. Cuando el bit (bit 0) soportado en modo transporte es igual a cero, el bit será establecido a cero.
5 – Transferencia de Datos Bidireccional Soportada. Cuando una indicación de transferencia de datos bidireccional es activa (por ejemplo, bit 5 es establecido a uno) la transferencia de datos bidireccional es soportada por la unidad de control 118. Cuando el bit 5 es establecido a cero, la transferencia de datos bidireccional no es soportada por la unidad de control 118. Este bit es solo significativo cuando el bit soportado en modo transporte es igual a uno.
7 – Primera Lista para Transferencia Inhabilitada Soportada. Cuando el bit 7 es establecido a uno, la primera lista para
transferencia inhabilitada es soportada por la unidad de control. Cuando el bit 7 es establecido a cero, la primera operación lista para transferencia inhabilitada no es soportada por la unidad de control. Cuando el bit soportado en modo de transporte (bit 0) es igual a cero, el bit 7 será establecido a cero.
Así, el subsistema de canal y la unidad de control pueden utilizar mensajes de registro tales como un mensaje de PRLI para proporcionar indicaciones a otro con relación a su soporte respectivo para transferencias de datos bidireccionales. El subsistema de canal y/o la unidad de control puede también proporcionar indicaciones al sistema anfitrión (por ejemplo el OS 110). Por ejemplo, una indicación puede ser proporcionada a partir de la unidad de control al OS de que la unidad de control soporta transferencias de datos bidireccionales. En una realización, el subsistema de canal proporciona una indicación de capacidades de subsistema de canal y/o de unidad de control, incluyendo la capacidad de soportar transferencias de datos bidireccionales. Por ejemplo, el subsistema de canal puede proporcionar información de capacidad en respuesta a una instrucción procedente del OS.
Un ejemplo de indicación de capacidad está mostrado en las figs. 20 y 21. Como se ha mostrado en la fig. 20, el subsistema de canal puede enviar un bloque 500 de descripción de trayecto de canal al OS en respuesta a una instrucción de OS (por ejemplo una instrucción de ALMACENAR DESCRIPCIÓN DE TRAYECTO DE CANAL). El bloque 500 de descripción de trayecto de canal incluye campos tales como un campo 502 de identificador de trayecto de canal (CHPID), un descriptor 504 y un campo 506 de datos específicos de descripción de canal (CDSD). Con referencia a la fig. 21, un campo 506 de CDSD ejemplar es una palabra (por ejemplo palabra 5) del bloque 500 de descripción de trayecto de canal, e incluye un campo 508 de longitud de datos máxima (por ejemplo longitud de datos máxima soportada para un TCW/TCCB). Por ejemplo, los bits 0-15 del campo 506 de CDSD establecido a (00 01h) significa que los bytes máximos por TCW/TCCB son 64k. Un campo 510 de soporte de extensión (por ejemplo, bit 31) indica soporte para un protocolo o extensión de protocolo tal como el protocolo FCX. Un campo adicional 512 (por ejemplo bits 16-30) puede incluir información relativa a capacidades de subsistema de canal. Por ejemplo, un bit BIDI (por ejemplo bit 28) del campo 512 indica que el subsistema de canal soporta transferencias de datos bidireccionales.
Una descripción adicional es proporcionada en la Solicitud de Patente Norteamericana Nº 12/030.912, titulada “Determinación de la Capacidad Extendida de un Trayecto de Canal”, presentada el 14 de Febrero de 2008, publicada como la Publicación de Patente Norteamericana Nº 2009/0210557.
Los efectos técnicos y los beneficios de realizaciones ejemplares incluyen la capacidad para transferir datos de soporte de transporte así como comandos adicionales a la unidad de control, además de comandos de I/O y datos de soporte de dispositivo situados en un TCCB. Los efectos técnicos también incluyen la capacidad para continuar el tratamiento de las DCW a pesar de la detección de una condición de longitud incorrecta, que permite que una unidad de control continúe tratando comandos de I/O sin necesidad de terminar una operación de I/O. Otros efectos técnicos incluyen la capacidad para transportar tanto datos de entrada como de salida entre un canal y una unidad de control durante una sola operación de I/O.
La terminología utilizada aquí tiene el propósito de describir realizaciones particulares solo y no está destinada a ser limitativa del invento. Como son usadas aquí, las formas en singular “un”, “una”, y “el”, “la” pretenden también incluir las formas plurales, a menos que el contexto indique claramente otra cosa. Se comprenderá además que los términos “comprende” y/o “que comprende”, cuando son utilizados en esta memoria, especifican la presencia de características, números enteros, pasos, operaciones, elementos, y/o componentes establecidos pero no excluyen la presencia o adición de una o más de otras características, números enteros, pasos, operaciones, elementos componentes, y/o grupos de los mismos.
Las estructuras, materiales, actos correspondientes, y las equivalencias de todos los medios o pasos más elementos de función en las reivindicaciones siguientes están destinados a incluir cualquier estructura, material, o acto para realizar la función en combinación con otros elementos reivindicados como se ha reivindicado específicamente. La descripción del presente invento ha sido presentada con propósitos de ilustración y descripción, pero no pretende ser exhaustiva o limitativa del invento en la forma descrita. Muchas modificaciones y variaciones serán evidentes para los expertos en la técnica sin salir del marco del invento. La realización ha sido elegida y descrita con el fin de explicar mejor los principios del invento y la aplicación práctica, y para permitir a personas no expertas en la técnica comprender el invento para distintas realizaciones con distintas modificaciones según sean adecuadas al uso particular considerado.
Como será apreciado por un experto en la técnica, aspectos del invento pueden ser llevados a la práctica como un sistema, método o producto de programa informático. Por consiguiente, aspectos del presente invento pueden tomar la forma de una realización totalmente de hardware, una realización totalmente de software (incluyendo firmware, software residente, microcódigo, etc.) o una realización que combina aspectos de software y hardware que pueden todos ser denominados generalmente aquí como un “circuito”, “módulo” o “sistema”. Además, aspectos del presente invento pueden tomar la forma de un producto de programa informático llevado a la práctica en uno más medios legibles por ordenador que tienen un código de programa legible por ordenador llevado a la práctica en él.
Puede ser utilizada cualquier combinación de uno o más medios legibles por ordenador. El medio legible por ordenador puede ser un medio de señal legible por ordenador o un medio de almacenamiento legible por ordenador. Un medio de almacenamiento legible por ordenador puede ser, por ejemplo, pero no estar limitado a, un sistema electrónico, magnético, óptico, electromagnético, de infrarrojos, o sistema, aparato o dispositivo semiconductor, o cualquier combinación adecuada de los anteriores. Más ejemplos específicos (una lista no exhaustiva) del medio de almacenamiento legible por ordenador incluirían lo siguiente: una conexión eléctrica que tiene uno o más cables, un disquete de ordenador portátil, un disco duro, una memoria de acceso aleatorio (RAM), una memoria solo de lectura (ROM), una memoria solo de lectura programable que se puede borrar (EEPROM o memoria Flash), una fibra óptica, una memoria solo de lectura de disco compacto portátil (CD-ROM), un dispositivo de almacenamiento óptico, un dispositivo de almacenamiento magnético, o cualquier combinación adecuada de los anteriores. En el contexto de este documento, un medio de almacenamiento legible por ordenador puede ser cualquier medio tangible que pueda contener, o almacenar un programa para utilizar con un sistema, aparato, o dispositivo de ejecución de instrucciones o en conexión con ellos.
Un medio de señal legible por ordenador puede incluir una señal de datos propagada con un código de programa legible por ordenador realizado en él, por ejemplo, en banda de base o como parte de una onda portadora. Tal señal propagada puede tener cualquiera de una variedad de formas, incluyendo, pero no estando limitado a, electromagnética, óptica, o cualquier combinación de las mismas. Un medio de señal legible por ordenador puede ser cualquier medio legible por ordenador que no sea un medio de almacenamiento legible por ordenador y que puede comunicar, propagar, o transportar un programa para uso con un sistema, aparato, o dispositivo de ejecución de instrucciones o en conexión con ellos.
Un código de programa puesto en práctica en un medio legible por ordenador puede ser transmitido utilizando un medio apropiado, incluyendo pero no estando limitado a inalámbrico, línea de cable, cable de fibra óptica, RF, etc., o cualquier combinación apropiada de los anteriores.
El código de programa informático para realizar operaciones para aspectos del presente invento puede ser escrito en cualquier combinación de uno o más lenguajes de programación, incluyendo un lenguaje de programación orientado al objeto, tal como Java, Smaltalk, C++ o similar y lenguajes de programación de procedimiento convencionales, tales como el lenguaje de programación “C” o lenguajes de programación similares. El código de programa puede ejecutarse totalmente sobre el ordenador del usuario, parcialmente sobre el ordenador del usuario, como un paquete de software en solitario, parcialmente sobre el ordenador del usuario y parcialmente sobre un ordenador remoto o totalmente sobre el ordenador remoto o servidor. En el último escenario, el ordenador remoto puede estar conectado al ordenador del usuario a través de cualquier tipo de red, incluyendo una red de área local (LAN) o una red de área global (WAN), o la conexión puede ser hecha a un ordenador externo (por ejemplo, mediante Internet utilizando un Proveedor de Servicios de Internet).
Aspectos del presente invento son descritos a continuación con referencia a ilustraciones de diagrama de flujo y/o diagramas de bloques de métodos, aparato (sistemas) y productos de programa informático de acuerdo a realizaciones del invento. Se comprenderá que cada bloque de las ilustraciones de diagrama de flujo y/o diagramas de bloques, y combinaciones de bloques en las ilustraciones de diagramas de flujo y/o diagramas de bloques, pueden ser implementadas por instrucciones de programa informático. Estas instrucciones de programa informático pueden ser proporcionadas a un procesador de un ordenador de propósito general, ordenador de propósito especial, u otro aparato de tratamiento de datos para producir una máquina de tal modo que las instrucciones, que se ejecutan mediante el procesador del ordenador u otro aparato de tratamiento de datos programable, creen medios para implementar las funciones/actos especificados en el diagrama de flujo y/o diagrama de bloque o bloques.
Estas instrucciones de programa informático pueden también ser almacenadas en un medio legible por ordenador que puede dirigir un ordenador, otro aparato de tratamiento de datos programable, u otros dispositivos para funcionar de una manera particular, de tal modo que las instrucciones almacenadas en el medio legible por ordenador producen un artículo de fabricación que incluye instrucciones que implementan la función/acto especificado en el diagrama de flujo y/o bloque o bloques del diagrama de bloques.
Las instrucciones de programa informático pueden ser también cargadas sobre un ordenador, otro aparato de tratamiento de datos programable, u otros dispositivos para hacer que una serie de pasos operativos sean realizados sobre el ordenador, sobre otro aparato programable u otros dispositivos para producir un proceso implementado por ordenador de tal modo que las instrucciones que se ejecutan sobre el ordenador u otro aparato programable proporcionen procesos para implementar las funciones/actos especificados en el diagrama de flujo y/o bloque o bloques del diagrama de bloques.
Los diagramas de flujo representados aquí son solo un ejemplo. Puede haber muchas variaciones a este diagrama o los pasos (operaciones) descritos en ellos sin salir del marco del invento. Por ejemplo, los pasos pueden ser realizados en un orden diferente o pueden añadirse, borrarse o modificarse pasos. Todas estas variaciones son consideradas una parte del invento reivindicado.
Aunque la realización preferida del invento ha sido descrita, se comprenderá que los expertos en la técnica, tanto ahora como en el futuro, pueden hacer distintos perfeccionamientos y mejoras que caen dentro del marco de las reivindicaciones que siguen. Estas reivindicaciones deben ser construidas para mantener la protección apropiada del invento descrito en primer lugar.

Claims (15)

  1. REIVINDICACIONES
    1.- Un método para realizar una operación de entrada/salida (I/O) iniciada por una instrucción de operación I/O en un sistema de ordenador anfitrión (102) configurado para comunicación con una unidad de control (118), comprendiendo el método:
    enviar, mediante un subsistema de canal (114) en el sistema de ordenador anfitrión, un mensaje de solicitud de registro de proceso (PRLI) a la unidad de control para inicializar un enlace entre el subsistema de canal y la unidad de control, incluyendo el mensaje (400) de solicitud de PRLI un campo que tiene un valor que indica si el subsistema de canal soporta transferencia de datos bidireccional;
    recibir un mensaje (420) de respuesta de PRLI procedente de la unidad de control, incluyendo el mensaje de respuesta de PRLI un campo que tiene un valor que indica si la unidad de control soporta transferencia de datos bidireccional;
    proporcionar una indicación a un sistema operativo anfitrión de que la transferencia de datos bidireccional es soportada; y
    en respuesta a la ejecución de la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, realizar un método que comprende:
    reunir una pluralidad de comandos (202) asociados con la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, especificando al menos uno de la pluralidad de comandos una transferencia de datos de entrada y especificando al menos uno de la pluralidad de comandos una transferencia de datos de salida;
    transferir la pluralidad de comandos a la unidad de control;
    enviar al menos un mensaje de datos de salida a la unidad de control incluyendo datos de salida que han de ser transferidos a la unidad de control, especificando el mensaje de datos de salida asociado con al menos uno de la pluralidad de comandos una transferencia de datos de salida; y
    recibir al menos un mensaje de entrada procedente de la unidad de control que incluye datos de entrada que han de ser almacenados en un almacenamiento principal (106) del sistema ordenador anfitrión, especificando el mensaje de datos de entrada asociado con al menos uno de la pluralidad de comandos una transferencia de datos de entrada.
  2. 2.- El método según la reivindicación 1, en el que la pluralidad de comandos es una pluralidad de palabras de comando de dispositivo (DCW) (202) cada una de las cuales está asociada con un comando de I/O, y la reunión incluye la obtención de una palabra de comando de transporte (TCW) (140) en el subsistema de canal en el sistema de ordenador anfitrión para la operación de I/O, incluyendo la TCW un campo (148) de dirección del bloque de control de comando de transporte (TCCB) que incluye una dirección de un TCCB (170) en el almacenamiento principal del sistema de ordenador anfitrión, incluyendo el TCCB la pluralidad de DCW, especificando al menos una de las DCW una transferencia de datos de entrada y especificando al menos una de las DCW una transferencia de datos de salida.
  3. 3.- El método según la reivindicación 2, en el que transferir la pluralidad de comandos incluye transferir el TCCB que incluye la pluralidad de DCW a la unidad de control.
  4. 4.- El método según la reivindicación 3, en el que la indicación está configurada para especificar si una condición de primera lista para transferencia inhabilitada existe en efecto, y el método comprende además:
    en respuesta a la condición de que la primera lista para transferencia inhabilitada existe en efecto, enviar al menos un mensaje de datos de salida a la unidad de control después de la transferencia del TCCB y antes de recibir al menos un mensaje desde la unidad de control; y
    en respuesta a la condición de que la primera lista para transferencia inhabilitada no existe en efecto, recibir al menos un mensaje desde la unidad de control antes de enviar al menos el mensaje de datos de salida.
  5. 5.- El método según la reivindicación 4, en el que el mensaje procedente de la unidad de control incluye uno de un mensaje listo para transferencia que solicita que el subsistema de canal envíe un mensaje de datos de salida y de datos de entrada.
  6. 6.- El método según la reivindicación 2, en el que el TCCB está incluido en una unidad de información (IU) (172) de comando de transporte enviada a la unidad de control, incluyendo la IU de comando de transporte una cabecera de comando de transporte (TCH) (176), incluyendo la TCH un campo que indica si el subsistema de canal está solicitando una transferencia de datos bidireccional.
  7. 7.- El método según la reivindicación 6, en el que el TCCB incluye un campo (186) de longitud de datos de escritura (DL) que especifica una cantidad de datos de salida que han de ser transferidos y un campo (188) de longitud de datos
    de lectura bidireccional (BRDL) que especifica una cantidad de datos de entrada que han de ser transferidos.
  8. 8.- El método según la reivindicación 7, que comprende además, en respuesta a que la unidad de control no soporta operaciones de datos bidireccionales, recibir un mensaje (330) de respuesta de transporte procedente de la unidad de control que indica que la operación de I/O ha terminado, incluyendo el mensaje de respuesta de transporte una indicación de error de contenido de TCH en respuesta al menos a uno de:
    la unidad de control que detecta que un bit de lectura (R) (192) y un bit de escritura (W) (194) en la TCH son ajustados ambos a uno y de que el TCCB no incluye la BRDL; y
    la unidad de control que detecta que el bit R y el bit W están ambos establecidos a uno y que la unidad de control no soporta transferencia de datos bidireccional.
  9. 9.- El método según la reivindicación 7, en el que el método comprende además recibir un mensaje (330) de respuesta de transporte procedente de la unidad de control que indica que la operación de I/O ha terminado, y el mensaje de respuesta de transporte incluye:
    un campo (340) de Cómputo Residual de Longitud de Datos (DLRC) que especifica una diferencia entre un valor de campo DL en el TCCB y una cantidad de datos de salida recibidos por la unidad de control; y
    un cómputo (342) residual de BRDL que especifica una diferencia entre un valor de campo de BRDL en el TCCB y una cantidad de datos de entrada enviados por la unidad de control.
  10. 10.- El método según la reivindicación 9, en el que el subsistema de canal detecta un error en respuesta al menos a uno de:
    un valor de DLRC que no corresponde a una diferencia entre el valor de campo DL en el TCCB y una cantidad de datos de salida enviados a la unidad de control; y
    un valor de cómputo residual de BRDL que no corresponde a una diferencia entre el valor de campo de BRDL y una cantidad de datos de entrada recibidos desde la unidad de control.
  11. 11.- El método según la reivindicación 2, en el que el mensaje (400) de solicitud de PRLI indica una solicitud a la unidad de control para indicar si la unidad de control soporta un protocolo en modo transporte, soportando el protocolo en modo transporte el uso de la TCW y del TCCB, y el mensaje de respuesta de PRLI incluye un campo que indica si la unidad de control soporta el protocolo en modo transporte.
  12. 12.- Un producto de programa informático para realizar una operación de entrada/salida (I/O) iniciada por una instrucción de operación de I/O en un sistema de ordenador anfitrión (102) configurado para comunicación con una unidad de control (118), comprendiendo el producto de programa informático:
    un medio de almacenamiento tangible legible por un circuito de tratamiento (104) y que almacena instrucciones para ejecución por el circuito de tratamiento para realizar un método según cualquiera de las reivindicaciones 1 a 11.
  13. 13.- Un aparato para realizar una operación de entrada/salida (I/O) iniciada por una instrucción de operación de I/O en un sistema de ordenador anfitrión (102) configurado para comunicación con una unidad de control (118), estando el sistema de ordenador anfitrión configurado para realizar:
    enviar, mediante un subsistema de canal (114) en el sistema de ordenador anfitrión, un mensaje (400) de solicitud de registro de proceso (PRLI) a la unidad de control para inicializar un enlace entre el subsistema de canal y la unidad de control, incluyendo el mensaje de solicitud de PRLI un campo que tiene un valor que indica si el subsistema de canal soporta transferencia de datos bidireccional;
    recibir un mensaje (420) de respuesta de PRLI procedente de la unidad de control, incluyendo el mensaje de respuesta de PRLI un campo que tiene un valor que indica si la unidad de control soporta transferencia de datos bidireccional;
    proporcionar una indicación a un sistema operativo anfitrión de que la transferencia de datos bidireccional es soportada; y
    en respuesta a la ejecución de la instrucción de operación de I/O recibida desde el sistema de ordenador anfitrión, realizar un método que comprende:
    reunir una pluralidad de comandos (202) asociados con la instrucción de operación de I/O recibida procedente del sistema de ordenador anfitrión, especificando al menos uno de la pluralidad de comandos una transferencia de datos de entrada y especificando al menos uno de la pluralidad de comandos una transferencia de datos de salida;
    transferir la pluralidad de comandos a la unidad de control; enviar al menos un mensaje de datos de salida a la unidad de control incluyendo datos de salida que han de ser transferidos a la unidad de control, especificando el mensaje de datos de salida asociado con al menos uno de la pluralidad de comandos una transferencia de datos de salida; y
    recibir al menos un mensaje de entrada procedente de la unidad de control que incluye datos de entrada que han de 5 ser almacenados en un almacenamiento principal (106) del sistema ordenador anfitrión, especificando el mensaje de datos de entrada asociado con al menos uno de la pluralidad de comandos una transferencia de datos de entrada.
  14. 14.- El aparato según la reivindicación 13, en el que la pluralidad de comandos es una pluralidad de palabras de comando de dispositivo (DCW) (202) cada una de las cuales está asociada con un comando de I/O, y la reunión incluye la obtención de una palabra de comando de transporte (TCW) (140) en el subsistema de canal en el sistema de
    10 ordenador anfitrión para la operación de I/O, incluyendo la TCW un campo (148) de dirección del bloque de control de comando de transporte (TCCB) que incluye una dirección de un TCCB (170) en el almacenamiento principal del sistema de ordenador anfitrión, incluyendo el TCCB la pluralidad de DCW, especificando al menos una de las DCW una transferencia de datos de entrada y especificando al menos una de las DCW una transferencia de datos de salida.
  15. 15.- El aparato según la reivindicación 14, en el que indicación está configurada para especificar si una condición de 15 primera lista para transferencia inhabilitada existe en efecto, y el método comprende además:
    en respuesta a la condición de que la primera lista para transferencia inhabilitada existe en efecto, enviar al menos un mensaje de datos de salida a la unidad de control después de la transferencia del TCCB y antes de recibir al menos un mensaje desde la unidad de control; y
    en respuesta a la condición de que la primera lista para transferencia inhabilitada no existe en efecto, recibir al menos 20 un mensaje desde la unidad de control antes de enviar al menos el mensaje de datos de salida.
ES12716322.8T 2011-06-30 2012-04-11 Facilitar operaciones de entrada/salida en modo transporte entre un subsistema de canal y dispositivos de entrada/salida Active ES2449965T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201113173772 2011-06-30
US13/173,772 US8312176B1 (en) 2011-06-30 2011-06-30 Facilitating transport mode input/output operations between a channel subsystem and input/output devices
PCT/EP2012/056534 WO2013000596A1 (en) 2011-06-30 2012-04-11 Facilitating transport mode input/output operations between a channel subsystem and input/output devices

Publications (1)

Publication Number Publication Date
ES2449965T3 true ES2449965T3 (es) 2014-03-21

Family

ID=45999804

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12716322.8T Active ES2449965T3 (es) 2011-06-30 2012-04-11 Facilitar operaciones de entrada/salida en modo transporte entre un subsistema de canal y dispositivos de entrada/salida

Country Status (17)

Country Link
US (1) US8312176B1 (es)
EP (1) EP2593878B1 (es)
JP (1) JP6074415B2 (es)
CN (1) CN103562899B (es)
AU (1) AU2012278225B2 (es)
BR (1) BR112013034067B1 (es)
CA (1) CA2819159C (es)
DK (1) DK2593878T3 (es)
ES (1) ES2449965T3 (es)
IL (1) IL224385A (es)
MX (1) MX354282B (es)
PL (1) PL2593878T3 (es)
PT (1) PT2593878E (es)
RU (1) RU2520356C1 (es)
SG (1) SG194172A1 (es)
SI (1) SI2593878T1 (es)
WO (1) WO2013000596A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220064786A (ko) * 2020-11-12 2022-05-19 삼성전자주식회사 Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템

Family Cites Families (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1264096A (es) 1970-06-27 1972-02-16
US3693161A (en) 1970-07-09 1972-09-19 Burroughs Corp Apparatus for interrogating the availability of a communication path to a peripheral device
US4004277A (en) 1974-05-29 1977-01-18 Gavril Bruce D Switching system for non-symmetrical sharing of computer peripheral equipment
US3943283A (en) 1974-06-17 1976-03-09 International Business Machines Corporation Bidirectional single wire data transmission and wrap control
US4080649A (en) 1976-12-16 1978-03-21 Honeywell Information Systems Inc. Balancing the utilization of I/O system processors
US4207609A (en) 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5852249B2 (ja) * 1978-12-25 1983-11-21 株式会社日立製作所 チヤネル装置
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4374415A (en) 1980-07-14 1983-02-15 International Business Machines Corp. Host control of suspension and resumption of channel program execution
US4414644A (en) 1981-04-03 1983-11-08 International Business Machines Corporation Method and apparatus for discarding data from a buffer after reading such data
US4455605A (en) 1981-07-23 1984-06-19 International Business Machines Corporation Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices
US4497022A (en) 1982-10-19 1985-01-29 International Business Machines Corporation Method and apparatus for measurements of channel operation
US4564903A (en) 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US4779188A (en) 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
US4870566A (en) 1984-08-27 1989-09-26 International Business Machines Corp. Scannerless message concentrator and communications multiplexer
US4837677A (en) 1985-06-14 1989-06-06 International Business Machines Corporation Multiple port service expansion adapter for a communications controller
US4760518A (en) 1986-02-28 1988-07-26 Scientific Computer Systems Corporation Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
JPS6336461A (ja) 1986-07-31 1988-02-17 Pfu Ltd 汎用チャネル制御方式
US4926320A (en) 1987-04-07 1990-05-15 Nec Corporation Information processing system having microprogram-controlled type arithmetic processing unit
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4866609A (en) 1988-06-22 1989-09-12 International Business Machines Corporation Byte count handling in serial channel extender with buffering for data pre-fetch
JPH0283757A (ja) 1988-09-21 1990-03-23 Hitachi Ltd 通信制御システム
US5016160A (en) 1988-12-15 1991-05-14 International Business Machines Corporation Computer system having efficient data transfer operations
US5185736A (en) 1989-05-12 1993-02-09 Alcatel Na Network Systems Corp. Synchronous optical transmission system
DE69028462T2 (de) 1989-08-11 1997-03-27 Ibm Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung
GB9012970D0 (en) 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
EP0424618A3 (en) 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
DE3938520A1 (de) 1989-11-21 1991-05-29 Teves Gmbh Alfred Verfahren und system zur messdatenerfassung und -auswertung
AU650242B2 (en) 1989-11-28 1994-06-16 International Business Machines Corporation Methods and apparatus for dynamically managing input/output (I/O) connectivity
JPH04649A (ja) 1990-04-18 1992-01-06 Nec Corp リモートチャネル装置の障害情報転送方式
CA2037708C (en) 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
RU2017211C1 (ru) * 1990-08-23 1994-07-30 Институт ядерных исследований РАН Устройство для сопряжения эвм с каналами связи
US5170472A (en) 1991-03-28 1992-12-08 International Business Machines Corp. Dynamically changing a system i/o configuration definition
US5644712A (en) 1991-06-05 1997-07-01 International Business Machines Corporation Indirect addressing of channels via logical channel groups
US5386512A (en) 1991-07-19 1995-01-31 International Business Machines Corporation System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information
JPH0580104A (ja) 1991-09-20 1993-04-02 Cmk Corp モータ用プリント配線板の製造方法
US5388219A (en) 1992-03-02 1995-02-07 International Business Machines Corporation Efficient channel and control unit for host computer
CA2086691C (en) 1992-03-30 1997-04-08 David A. Elko Communicating messages between processors and a coupling facility
US5317739A (en) 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5452455A (en) 1992-06-15 1995-09-19 International Business Machines Corporation Asynchronous command support for shared channels for a computer complex having multiple operating systems
US5414851A (en) 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5600805A (en) 1992-06-15 1997-02-04 International Business Machines Corporation Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems
US5301323A (en) 1992-10-30 1994-04-05 International Business Machines Corp. Data processing system including dynamic channel path management
JP2566728B2 (ja) 1992-10-30 1996-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 論理径路スケジューリング装置及び実行方法
JP2840511B2 (ja) 1992-12-10 1998-12-24 富士通株式会社 磁気テープ装置を用いたサブシステムのエラー回復処理装置及び方法
US5526484A (en) 1992-12-10 1996-06-11 International Business Machines Corporation Method and system for pipelining the processing of channel command words
US5528755A (en) 1992-12-22 1996-06-18 International Business Machines Corporation Invalid data detection, recording and nullification
US5517670A (en) 1992-12-30 1996-05-14 International Business Machines Corporation Adaptive data transfer channel employing extended data block capability
US5461721A (en) 1993-04-14 1995-10-24 International Business Machines Corporation System for transferring data between I/O devices and main or expanded storage under dynamic control of independent indirect address words (IDAWs)
US5465359A (en) 1993-11-01 1995-11-07 International Business Machines Corporation Method and system for managing data and users of data in a data processing system
US5584039A (en) 1993-11-08 1996-12-10 International Business Machines Corporation System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices
JP3528094B2 (ja) 1994-02-09 2004-05-17 株式会社日立製作所 バス利用方法および記憶制御装置
US6769009B1 (en) 1994-05-31 2004-07-27 Richard R. Reisman Method and system for selecting a personalized set of information channels
US5907684A (en) 1994-06-17 1999-05-25 International Business Machines Corporation Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image
US5548791A (en) 1994-07-25 1996-08-20 International Business Machines Corporation Input/output control system with plural channel paths to I/O devices
US5860022A (en) 1994-07-26 1999-01-12 Hitachi, Ltd. Computer system and method of issuing input/output commands therefrom
EP0712220A1 (en) 1994-11-08 1996-05-15 International Business Machines Corporation Hop-by-hop flow control in an ATM network
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5613163A (en) 1994-11-18 1997-03-18 International Business Machines Corporation Method and system for predefined suspension and resumption control over I/O programs
US5671441A (en) 1994-11-29 1997-09-23 International Business Machines Corporation Method and apparatus for automatic generation of I/O configuration descriptions
US5600793A (en) 1994-12-20 1997-02-04 International Business Machines Corporation Method and system of bi-directional parallel port data transfer between data processing systems
US5680580A (en) 1995-02-28 1997-10-21 International Business Machines Corporation Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request connect frame in response to the setting bit
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
JP3225804B2 (ja) 1995-09-05 2001-11-05 株式会社日立製作所 入出力チャネルの拡張方式
US5996026A (en) 1995-09-05 1999-11-30 Hitachi, Ltd. Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information
US6125411A (en) 1995-09-13 2000-09-26 Hitachi, Ltd. System storing plural I/O arrangement information wherein each I/O arrangement information corresponding to each operating system is created in response to more than two operating systems
GB2291990A (en) 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
US5831985A (en) 1995-11-09 1998-11-03 Emc Corporation Method and apparatus for controlling concurrent data transmission from multiple sources in a channel communication system
US5793983A (en) 1996-01-22 1998-08-11 International Business Machines Corp. Input/output channel interface which automatically deallocates failed subchannel and re-segments data block for transmitting over a reassigned subchannel
US5812877A (en) 1996-03-15 1998-09-22 Adaptec, Inc. I/O command block chain structure in a memory
US5758190A (en) 1996-04-09 1998-05-26 International Business Machines Corporation Control unit threshold timeout controls for software missing interrupt handlers in operating systems
US5768620A (en) 1996-04-09 1998-06-16 International Business Machines Corporation Variable timeout method in a missing-interrupt-handler for I/O requests issued by the same operating system
US5894583A (en) 1996-04-09 1999-04-13 International Business Machines Corporation Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
US5889935A (en) 1996-05-28 1999-03-30 Emc Corporation Disaster control features for remote data mirroring
US6108655A (en) 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
SG74611A1 (en) 1997-02-14 2000-08-22 Canon Kk Data communication apparatus and method
JP3697831B2 (ja) 1997-04-18 2005-09-21 株式会社日立製作所 コンピュータシステム
TW375529B (en) 1997-05-14 1999-12-01 Sega Corp Data transmission method and game system using the same
US5918028A (en) 1997-07-08 1999-06-29 Motorola, Inc. Apparatus and method for smart host bus adapter for personal computer cards
US6263380B1 (en) 1997-10-14 2001-07-17 Mitutoyo Corporation Measurement data processing unit
US6460087B1 (en) 1998-02-25 2002-10-01 Kdd Corporation Method of transferring file
US6360282B1 (en) 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6353612B1 (en) 1998-06-19 2002-03-05 Brocade Communications Systems, Inc. Probing device
US6693880B2 (en) 1998-09-10 2004-02-17 International Business Machines Corporation System of controlling the flow of information between senders and receivers across links being used as channels
US6230218B1 (en) 1998-10-14 2001-05-08 International Business Machines Corporation Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6185631B1 (en) 1998-10-14 2001-02-06 International Business Machines Corporation Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6343335B1 (en) 1998-10-29 2002-01-29 International Business Machines Corporation System for repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry
US6195330B1 (en) 1998-11-05 2001-02-27 David C. Sawey Method and system for hit-less switching
KR100273641B1 (ko) 1998-11-11 2000-12-15 윤종용 공통 메모리 스위치에서 셀 그룹 처리장치 및 그 처리방법
JP3990833B2 (ja) 1998-12-11 2007-10-17 キヤノン株式会社 通信制御方法及び装置
US6347334B1 (en) 1999-01-06 2002-02-12 Mcdata Corporation Self-description extended link service for networks
US6772207B1 (en) 1999-01-28 2004-08-03 Brocade Communications Systems, Inc. System and method for managing fibre channel switching devices
US6351779B1 (en) 1999-03-12 2002-02-26 Agilent Technologies, Inc. Extension library to standard visa library for support of complex I/O functions
US6484217B1 (en) 1999-04-20 2002-11-19 International Business Machines Corporation Managing shared devices in a data processing system
US6401223B1 (en) 1999-05-21 2002-06-04 Unisys Corporation Programmable system for invalidating pending requests within a data processing system
TW549004B (en) 1999-06-15 2003-08-21 Matsushita Electric Works Ltd Portable programming device for supervisory remote control system
US6718139B1 (en) 1999-09-13 2004-04-06 Ciena Corporation Optical fiber ring communication system
US6609165B1 (en) 1999-09-27 2003-08-19 International Business Machines Corporation Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration
US6651125B2 (en) 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6584511B1 (en) 2000-03-24 2003-06-24 Unisys Corporation Loop initialization procedure exception handling for fibre channel transmissions
US6658603B1 (en) 2000-04-17 2003-12-02 International Business Machines Corporation Method and apparatus for efficiently generating and implementing engine error codes and verifying the correctness of the implementation of the engine error codes
US6594785B1 (en) 2000-04-28 2003-07-15 Unisys Corporation System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
US6862322B1 (en) 2000-05-19 2005-03-01 International Business Machines Corporation Switchable-bandwidth optical receiver
US6609161B1 (en) 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters
JP2002016655A (ja) 2000-06-28 2002-01-18 Sony Corp 伝送方法、伝送システム、伝送装置及び伝送制御装置
AU8852801A (en) 2000-08-31 2002-03-13 Dolby Lab Licensing Corp Method for apparatus for audio matrix decoding
US6662319B1 (en) 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
US6694390B1 (en) 2000-09-11 2004-02-17 Intel Corporation Managing bus transaction dependencies
US6751683B1 (en) 2000-09-29 2004-06-15 International Business Machines Corporation Method, system and program products for projecting the impact of configuration changes on controllers
US6665738B2 (en) 2000-09-29 2003-12-16 Emc Corporation Method for enabling overlapped input/output requests to a logical device from multiple hosts with explicit allegiances
US6950888B1 (en) 2000-09-29 2005-09-27 International Business Machines Corporation Method, system and program products for determining whether I/O constraints exist for controllers of a computing environment
US6697983B1 (en) 2000-10-24 2004-02-24 At&T Wireless Services, Inc. Data link layer tunneling technique for high-speed data in a noisy wireless environment
US6622268B2 (en) 2000-11-29 2003-09-16 Intel Corp Method and apparatus for propagating error status over an ECC protected channel
US7127514B2 (en) 2000-12-28 2006-10-24 Microsoft Corporation Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
US7155569B2 (en) 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list
US6834363B2 (en) 2001-03-22 2004-12-21 International Business Machines Corporation Method for prioritizing bus errors
US6898202B2 (en) * 2001-06-27 2005-05-24 International Business Machines Corporation Method, apparatus and computer program for informing a requesting device of port configuration changes in a computer network switching device
US20030056000A1 (en) 2001-07-26 2003-03-20 Nishan Systems, Inc. Transfer ready frame reordering
US7315911B2 (en) 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US6754738B2 (en) 2001-09-28 2004-06-22 International Business Machines Corporation Low overhead I/O interrupt
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US6745299B2 (en) 2001-11-19 2004-06-01 Hewlett-Packard Development Company, L.P. Method for evaluation of scalable symmetric multiple processor cache coherency protocols and algorithms
US7512133B2 (en) 2001-12-03 2009-03-31 International Business Machines Corporation Method and apparatus for obtaining multiple port addresses by a fibre channel from a network fabric
US7599360B2 (en) 2001-12-26 2009-10-06 Cisco Technology, Inc. Methods and apparatus for encapsulating a frame for transmission in a storage area network
US7085860B2 (en) 2002-01-11 2006-08-01 International Business Machines Corporation Method and apparatus for a non-disruptive recovery of a single partition in a multipartitioned data processing system
US7007142B2 (en) 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
US7099814B2 (en) 2002-03-29 2006-08-29 International Business Machines Corportion I/O velocity projection for bridge attached channel
US6898723B2 (en) 2002-04-01 2005-05-24 Mitac International Corp. Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
JP4704659B2 (ja) 2002-04-26 2011-06-15 株式会社日立製作所 記憶装置システムの制御方法および記憶制御装置
US20030208581A1 (en) 2002-05-02 2003-11-06 Behren Paul D. Von Discovery of fabric devices using information from devices and switches
US7120728B2 (en) 2002-07-31 2006-10-10 Brocade Communications Systems, Inc. Hardware-based translating virtualization switch
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US6826661B2 (en) 2002-08-30 2004-11-30 Veritas Operating Corporation Methods and systems for storage architectures
US20040054776A1 (en) 2002-09-16 2004-03-18 Finisar Corporation Network expert analysis process
US7539777B1 (en) 2002-10-25 2009-05-26 Cisco Technology, Inc. Method and system for network time protocol forwarding
US7080094B2 (en) 2002-10-29 2006-07-18 Lockheed Martin Corporation Hardware accelerated validating parser
US7386704B2 (en) 2002-10-31 2008-06-10 Lockheed Martin Corporation Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method
US7202801B2 (en) 2002-12-11 2007-04-10 Geospatial Technologies, Inc. Method and apparatus for an automated location-based, dynamic notification system (ALDNS)
US7277387B2 (en) 2003-01-30 2007-10-02 Wind River Systems, Inc. Package manager
US7324455B2 (en) 2003-03-14 2008-01-29 International Business Machines Corporation Transfer of error-analysis and statistical data in a fibre channel input/output system
US6915378B2 (en) 2003-04-23 2005-07-05 Hypernova Technologies, Inc. Method and system for improving the performance of a processing system
US7085898B2 (en) 2003-05-12 2006-08-01 International Business Machines Corporation Coherency management for a “switchless” distributed shared memory computer system
US7000036B2 (en) 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7058735B2 (en) 2003-06-02 2006-06-06 Emulex Design & Manufacturing Corporation Method and apparatus for local and distributed data memory access (“DMA”) control
TWI271626B (en) 2003-06-17 2007-01-21 Delta Electronics Inc Data transmission method for microprocessors of programmable logic controller
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7124207B1 (en) 2003-08-14 2006-10-17 Adaptec, Inc. I2O command and status batching
US7149823B2 (en) 2003-08-29 2006-12-12 Emulex Corporation System and method for direct memory access from host without processor intervention wherein automatic access to memory during host start up does not occur
WO2005039130A1 (ja) 2003-10-17 2005-04-28 Nippon Telegraph And Telephone Corporation メール配送システム、メール配送方法およびメール配送プログラム
KR20050043426A (ko) 2003-11-06 2005-05-11 삼성전자주식회사 파이프라인 버스 시스템에서 커맨드 전송 방법 및 장치
US20050105456A1 (en) 2003-11-18 2005-05-19 Cookson Christopher J. Double-sided optical disc
US7634582B2 (en) 2003-12-19 2009-12-15 Intel Corporation Method and architecture for optical networking between server and storage area networks
US7564791B2 (en) 2003-12-29 2009-07-21 Intel Corporation Monitoring packet flows
US7382733B2 (en) 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
US7133988B2 (en) 2004-02-25 2006-11-07 Hitachi, Ltd. Method and apparatus for managing direct I/O to storage systems in virtualization
US20050223291A1 (en) 2004-03-24 2005-10-06 Zimmer Vincent J Methods and apparatus to provide an execution mode transition
JP2005293363A (ja) 2004-04-01 2005-10-20 Toshiba Corp ディスクアレイコントローラおよび情報処理装置
US7308516B2 (en) * 2004-04-26 2007-12-11 Atmel Corporation Bi-directional serial interface for communication control
US8171170B2 (en) 2004-04-30 2012-05-01 Emc Corporation Storage switch task processing synchronization
US7240273B2 (en) 2004-05-13 2007-07-03 Industrial Technology Research Institute Cyclic redundancy check modification for message length detection and error detection
US7555554B2 (en) 2004-08-06 2009-06-30 Microsoft Corporation System and method for generating selectable extension to media transport protocol
US7711871B1 (en) 2004-08-30 2010-05-04 Crossroads Systems, Inc. Interface device and method for command processing
US7443798B2 (en) 2004-09-03 2008-10-28 Agere Systems Inc. Transmit adaptive equalization for communication system with one or more serial data channels
US7577772B2 (en) 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
GB2419198A (en) 2004-10-14 2006-04-19 Hewlett Packard Development Co Identifying performance affecting causes in a data storage system
US7398335B2 (en) 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
JP4575119B2 (ja) 2004-11-25 2010-11-04 株式会社日立製作所 ストレージシステム
US7164425B2 (en) 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7672323B2 (en) 2005-01-14 2010-03-02 Cisco Technology, Inc. Dynamic and intelligent buffer management for SAN extension
EP1688847B1 (en) * 2005-02-03 2011-05-04 Texas Instruments Incorporated Die-to-die interconnect interface and protocol for stacked semiconductor dies
US7526633B2 (en) 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
JP2006277583A (ja) 2005-03-30 2006-10-12 Hitachi Ltd データ処理システム、データ処理方法、及びプログラム
US7970953B2 (en) 2005-06-30 2011-06-28 Intel Corporation Serial ATA port addressing
JP2007058646A (ja) 2005-08-25 2007-03-08 Hitachi Ltd データ処理システム
TW200733733A (en) 2005-09-06 2007-09-01 Nokia Corp Enhanced signaling of pre-configured interaction message in service guide
US7577773B1 (en) 2005-09-09 2009-08-18 Qlogic, Corporation Method and system for DMA optimization
JP4527640B2 (ja) 2005-09-15 2010-08-18 株式会社ソニー・コンピュータエンタテインメント データ読出装置
US7895237B2 (en) * 2005-09-19 2011-02-22 Polytechnic Institute Of New York University Reassembling fragmented files or documents in an order-independent manner that ensures each of the fragments belongs to only one reassembled file
JP2007122108A (ja) 2005-10-25 2007-05-17 Hitachi Ltd セルフチェック機能を有するディスクドライブ装置を用いたストレージシステムの制御
US7484021B2 (en) 2005-10-27 2009-01-27 Cisco Technology, Inc. Technique for implementing virtual fabric membership assignments for devices in a storage area network
US20070162631A1 (en) 2005-12-28 2007-07-12 International Business Machines Corporation Method for selectable software-hardware internet SCSI
US7594057B1 (en) 2006-01-09 2009-09-22 Qlogic, Corporation Method and system for processing DMA requests
JP2007199975A (ja) 2006-01-26 2007-08-09 Hitachi Ltd データ処理システム及びデータ処理方法
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US7743197B2 (en) 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
US20080040519A1 (en) 2006-05-02 2008-02-14 Alacritech, Inc. Network interface device with 10 Gb/s full-duplex transfer rate
US8381214B2 (en) 2006-05-05 2013-02-19 Microsoft Corporation Extensible job submission
US7826349B2 (en) 2006-05-30 2010-11-02 Intel Corporation Connection management mechanism
US20080043563A1 (en) 2006-08-15 2008-02-21 International Business Machines Corporation Flexibly controlling the transfer of data between input/output devices and memory
US7500030B2 (en) 2006-08-30 2009-03-03 International Business Machines Corporation Control of information units in fibre channel communications
US8032581B2 (en) 2006-08-30 2011-10-04 International Business Machines Corporation Persistent information unit pacing
US7500023B2 (en) 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7502873B2 (en) 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US7797414B2 (en) 2007-01-31 2010-09-14 International Business Machines Corporation Establishing a logical path between servers in a coordinated timing network
US8660108B2 (en) 2007-04-13 2014-02-25 Hart Communication Foundation Synchronizing timeslots in a wireless communication protocol
US7765336B2 (en) 2007-06-11 2010-07-27 Emulex Design & Manufacturing Corporation Autonomous mapping of protected data streams to fibre channel frames
US8020074B2 (en) 2007-08-24 2011-09-13 Datadirect Networks, Inc. Method for auto-correction of errors in a RAID memory system
US8095847B2 (en) 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8001298B2 (en) 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US7840717B2 (en) 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US7840718B2 (en) 2008-02-14 2010-11-23 International Business Machines Corporation Processing of data to suspend operations in an input/output processing log-out system
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US7917813B2 (en) 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US8214562B2 (en) 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US7908403B2 (en) 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US7899944B2 (en) 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US7941570B2 (en) * 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US7937507B2 (en) 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7904605B2 (en) 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
GB2460841B (en) 2008-06-10 2012-01-11 Virtensys Ltd Methods of providing access to I/O devices
US7983257B2 (en) 2008-07-18 2011-07-19 Emulex Design & Manufacturing Corporation Hardware switch for hypervisors and blade servers
US7904606B2 (en) * 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US7937504B2 (en) * 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US8055807B2 (en) * 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US20100064072A1 (en) 2008-09-09 2010-03-11 Emulex Design & Manufacturing Corporation Dynamically Adjustable Arbitration Scheme
JP5107880B2 (ja) 2008-12-10 2012-12-26 株式会社日立製作所 データ転送処理装置及び方法

Also Published As

Publication number Publication date
CA2819159C (en) 2020-04-14
SG194172A1 (en) 2013-12-30
PL2593878T3 (pl) 2014-05-30
RU2520356C1 (ru) 2014-06-20
CN103562899B (zh) 2016-10-19
SI2593878T1 (sl) 2014-04-30
AU2012278225A1 (en) 2013-05-02
MX354282B (es) 2018-02-21
MX2013011408A (es) 2013-12-09
KR20130095780A (ko) 2013-08-28
CA2819159A1 (en) 2013-01-03
BR112013034067A2 (pt) 2018-06-19
JP2014522021A (ja) 2014-08-28
JP6074415B2 (ja) 2017-02-01
CN103562899A (zh) 2014-02-05
DK2593878T3 (en) 2014-02-24
RU2012149011A (ru) 2014-05-27
EP2593878B1 (en) 2014-01-29
WO2013000596A1 (en) 2013-01-03
AU2012278225B2 (en) 2015-08-13
PT2593878E (pt) 2014-03-07
BR112013034067B1 (pt) 2021-01-19
IL224385A (en) 2017-01-31
US8312176B1 (en) 2012-11-13
EP2593878A1 (en) 2013-05-22

Similar Documents

Publication Publication Date Title
US10845868B2 (en) Methods and apparatus for running and booting an inter-processor communication link between independently operable processors
US8549185B2 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8631175B2 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8918542B2 (en) Facilitating transport mode data transfer between a channel subsystem and input/output devices
US20120324078A1 (en) Apparatus and method for sharing i/o device
ES2449965T3 (es) Facilitar operaciones de entrada/salida en modo transporte entre un subsistema de canal y dispositivos de entrada/salida
US8346978B1 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
KR101476075B1 (ko) 채널 서브시스템과 입력/출력 디바이스들 사이에 트랜스포트 모드 입력/출력 동작들을 용이하게 하는 방법, 장치 및 컴퓨터 프로그램 제품
KR101476073B1 (ko) 채널 서브시스템과 입력/출력 디바이스들 사이에 트랜스포트 모드 입력/출력 동작들을 용이하게 하는 방법, 장치 및 컴퓨터 프로그램 제품