ES2349376T3 - Reducción de contiendas de acceso a dispositivos reservados. - Google Patents

Reducción de contiendas de acceso a dispositivos reservados. Download PDF

Info

Publication number
ES2349376T3
ES2349376T3 ES09711029T ES09711029T ES2349376T3 ES 2349376 T3 ES2349376 T3 ES 2349376T3 ES 09711029 T ES09711029 T ES 09711029T ES 09711029 T ES09711029 T ES 09711029T ES 2349376 T3 ES2349376 T3 ES 2349376T3
Authority
ES
Spain
Prior art keywords
order
busy
control unit
queue
message
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
ES09711029T
Other languages
English (en)
Inventor
John Flanagan
Daniel Casper
Mark Bendyk
Clint Hardy
Harry Yudenfriend
Roger Hathorn
Louis Ricci
Gustav Sittmann Iii
Catherine Huang
Matthew Kalos
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 ES2349376T3 publication Critical patent/ES2349376T3/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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Selective Calling Equipment (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Details Of Television Systems (AREA)

Abstract

Un método para reducir la contienda de acceso a dispositivos reservados en una unidad de control, en comunicación con una pluralidad de sistemas operativos a través de uno o más canales, comprendiendo el método: recibir (1102) un mensaje de órdenes en la unidad de control desde un primer sistema operativo de la pluralidad de sistemas operativos a través de uno o más canales, donde el mensaje de órdenes incluye una orden de operación de E/S para el dispositivo que está en comunicación con la unidad de control; recibir (1104) un indicador de dispositivo ocupado desde el dispositivo, donde el indicador de dispositivo ocupado notifica a la unidad de control que el dispositivo está reservado por un segundo sistema operativo de la pluralidad de sistemas operativos; poner en cola (1106) el mensaje de órdenes en la cola de dispositivos ocupados, como respuesta al indicador de dispositivo ocupado; supervisar (1108) el dispositivo esperando un indicador de dispositivo terminado, donde el indicador de dispositivo terminado notifica a la unidad de control que el dispositivo está listo para recibir una nuevo orden de operación de E/S; y dar servicio (1110) a la cola de dispositivos ocupados para efectuar la orden de operación de E/S, como respuesta al indicador de dispositivo terminado; caracterizado porque: donde el mensaje de órdenes es un mensaje de la unidad de información de órdenes de transporte, incluyendo un bloque de control de órdenes de transporte (TCCB) que mantiene la orden de operación de E/S como parte de un programa del canal de la palabra de control de transporte (TCW) y que comprende además: iniciar un temporizador de dispositivo ocupado como respuesta a la puesta en cola del mensaje de órdenes en la cola de dispositivos ocupados; leer un valor del temporizador de dispositivos ocupados como respuesta al servicio a la cola de dispositivos ocupados, para efectuar la orden de la operación de E/S; y entregar el valor del temporizador de dispositivos ocupados en un mensaje de la unidad de información de respuesta de transporte al primer sistema operativo, a través de uno o más canales.

Description

Reducción de contiendas de acceso a dispositivos reservados.
Campo de la invención
La presente divulgación está relacionada en general con procesos de entrada/salida y, en particular, con reducir los problemas de competencia de dispositivos asociados con múltiples peticiones para acceder a un dispositivo reservado.
Antecedentes de la invención
Las operaciones de entrada/salida (E/S) se utilizan para transferir datos entre la memoria y los dispositivos de E/S de un sistema de procesos de E/S. Específicamente, los datos se graban desde la memoria a uno o más dispositivos de E/S, y los datos se leen desde uno o más dispositivos de E/S a la memoria, ejecutando operaciones de E/S.
Para facilitar el proceso de las operaciones de E/S, se emplea un subsistema de E/S del sistema de proceso de E/S. El subsistema de E/S está acoplado a la memoria principal y a los dispositivos de E/S del sistema de proceso de E/S y dirige el flujo de información entre la memoria y los dispositivos de E/S. Un ejemplo de subsistema de E/S es un subsistema de canales. El subsistema de canales utiliza caminos de canales como medios de comunicaciones. Cada camino de canal incluye un canal acoplado a una unidad de control (CU), estando acoplada además la unidad de control a uno o más dispositivos de E/S.
El subsistema de canales puede emplear palabras de órdenes del canal (CCW) para transferir datos entre los dispositivos de E/S y la memoria. Una CCW especifica la orden a ejecutar. Para órdenes que inician ciertas operaciones de E/S, la CCW designa la zona de memoria asociada con la operación, la acción a tomar cuando ha de completarse una transferencia hacia o desde la zona, y otras opciones.
Durante el proceso de E/S, se extrae una lista de CCW desde la memoria por un canal. El canal analiza cada orden en la lista de CCW y reenvía un número de órdenes, cada una de las órdenes con su propia entidad, a una unidad de control acoplada al canal. La unidad de control procesa entonces las órdenes. El canal hace un seguimiento del estado de cada orden y controla cuándo ha de enviarse el siguiente conjunto de órdenes a la unidad de control para su proceso. El canal asegura que cada orden es enviada a la unidad de control en su propia entidad. Además, el canal infiere cierta información asociada con el proceso de la respuesta desde la unidad de control para cada orden.
La realización del proceso de E/S en base a las CCW puede implicar una gran cantidad de sobrecarga de proceso para el subsistema de canales, ya que los canales analizan las CCW, hacen el seguimiento de la información de estado, y reaccionan a respuestas desde las unidades de control. Por tanto, puede ser beneficioso desviar mucha de la carga de proceso asociada con la interpretación y gestión de las CCW y la información de estado desde el subsistema de canales a las unidades de control. La simplificación del papel de los canales en la comunicación entre las unidades de control y un sistema operativo en el sistema de proceso de E/S puede aumentar el rendimiento de la comunicación, ya que se realizan menos comprobaciones iniciales.
Pueden surgir problemas adicionales al gestionar peticiones de canales controlados por múltiples sistemas operativos para dar órdenes a un dispositivo común de E/S a través de una unidad de control. Los sistemas operativos múltiples pueden existir en un sistema central común o bien a través de múltiples sistemas centrales, donde cada sistema central incluya un subsistema de canales y elementos de proceso. Cuando múltiples sistemas operativos intentan acceder a un dispositivo común de E/S que ha de ser reservado, la unidad de control recibe típicamente un indicador de dispositivo ocupado desde el dispositivo de E/S y envía el indicador de dispositivo ocupado a los canales controlados por los sistemas operativos que solicitan el acceso. La petición de acceso puede ser una orden para realizar una operación de E/S con o sin reserva. Una vez que el dispositivo de E/S queda libre, la unidad de control envía un indicador de final del dispositivo a los sistemas operativos, a través de sus respectivos canales, para notificarles que el dispositivo de E/S está disponible. Los subsistemas de canales pueden hacer entonces nuevamente la solicitud que se intentó previamente, siendo el primer canal del momento apropiado el que gana la carrera con respecto a los demás canales que compiten por el acceso al dispositivo de E/S. Un sistema central que responda más rápido puede bloquear efectivamente los sistemas centrales que respondan más lentamente, ya que se conceden las solicitudes de reserva al primer solicitante en ese momento. Por ejemplo, a un sistema operativo que está ejecutándose en un sistema central que está más lejos en distancia desde el dispositivo de E/S puede impedírsele el acceso al dispositivo de E/S durante periodos de tiempo largos, ya que un sistema operativo que se ejecute en un sistema central que esté más cercano al dispositivo de E/S, experimenta un retardo más corto en el transporte de las comunicaciones. Así, a medida que aumenta la lucha por reservar el dispositivo de E/S y las subsiguientes peticiones de acceso, la disparidad entre los sistemas operativos para acceder al dispositivo de E/S aumenta también. Consecuentemente, existe la necesidad en la técnica para la reducción de la contienda de los dispositivos de E/S reservados en la unidad de control en comunicación con una pluralidad de sistemas operativos a través de uno o más canales.
El documento US 2005/0102456 divulga un método para llevar a cabo el arbitraje de los accesos a un recurso compartido, de acuerdo con la parte pre-caracterizadora de la reivindicación 1.
Breve sumario de la invención
La invención proporciona un método como se reivindica en la reivindicación 1 y los correspondientes sistema y programa de ordenador.
Breve descripción de los dibujos
La materia objeto que se considera como invención está particularmente indicada y distintamente reivindicada en las reivindicaciones al final de la memoria. Los objetos anteriores y otros objetos, características y ventajas de la invención son evidentes a partir de la siguiente descripción detallada, tomada conjuntamente con los dibujos que se acompañan, en los cuales:
La figura 1 representa un modo de realización del sistema de proceso de E/S que incorpora y utiliza uno o más aspectos de la presente invención;
La figura 2A representa un ejemplo de la palabra de órdenes del canal de la técnica anterior;
La figura 2B representa un ejemplo del programa de un canal de la palabra de órdenes del canal de la técnica anterior;
La figura 3 representa un modo de realización del protocolo de enlace de la técnica anterior, utilizado en la comunicación entre un canal y la unidad de control, para ejecutar el programa del canal de la palabra de órdenes del canal de la figura 2B;
La figura 4 representa un modo de realización de un programa de canal de la palabra de control del transporte, de acuerdo con un aspecto de la presente invención;
La figura 5 representa un modo de realización de un protocolo de enlace utilizado para comunicarse entre un canal y una unidad de control, para ejecutar el programa del canal de la palabra de control del transporte de la figura 4, de acuerdo con un aspecto de la presente invención;
La figura 6 representa un modo de realización de un protocolo de enlace de la técnica anterior utilizado para comunicarse entre un canal y una unidad de control, con el fin de ejecutar cuatro órdenes de lectura de un programa de canal de palabra de órdenes del canal;
La figura 7 representa un modo de realización de un protocolo de enlace utilizado para comunicarse entre un canal y una unidad de control, para procesar las cuatro órdenes de lectura de un programa de canal de la palabra de control del transporte, de acuerdo con un aspecto de la presente invención;
La figura 8 representa un modo de realización de una unidad de control y un canal, de acuerdo con un aspecto de la presente invención;
La figura 9 representa un modo de realización de un mensaje de respuesta comunicado desde una unidad de control a un canal, de acuerdo con un aspecto de la presente invención;
La figura 10 representa un modo de realización de una unidad de control en comunicación con una pluralidad de sistemas centrales, de acuerdo con un aspecto de la presente invención;
La figura 11 representa un modo de realización de un proceso para la reducción de contiendas de acceso a un dispositivo reservado; y
La figura 12 representa un modo de realización de un producto de programa de ordenador que incorpora uno o más aspectos de la presente invención.
La descripción detallada explica los modos de realización preferidos de la invención, conjuntamente con las ventajas y características, a modo de ejemplo, con referencia a los dibujos.
Descripción detallada de la invención
De acuerdo con un aspecto de la presente invención, el proceso de entrada/salida (E/S) se facilita con la reducción en la lucha por acceder a un dispositivo de E/S reservado. Por ejemplo, se facilita el proceso de E/S habilitando fácilmente el acceso a la información, tal como datos de estado y de mediciones, asociada con el proceso de E/S. Además, el proceso de E/S se facilita, en un ejemplo, reduciendo las comunicaciones entre componentes de un sistema de proceso de E/S utilizado para realizar el proceso de E/S. Por ejemplo, el número de intercambios y secuencias entre un adaptador de comunicaciones de E/S de un sistema central, tal como un canal y la unidad de control, se reduce. Esto se consigue enviando una pluralidad de órdenes desde el adaptador de comunicaciones de E/S a la unidad de control como una sola entidad, para la ejecución por la unidad de control, y mediante el envío de datos de la unidad de control, que resulten de las órdenes, si las hay, como una sola entidad.
La pluralidad de órdenes se incluye en un bloque, denominado en esta memoria bloque de control de órdenes de transporte (TCCB), una dirección del cual se especifica en una palabra de control del transporte (TCW). La TCW es enviada desde un sistema operativo u otra aplicación al adaptador de comunicaciones de E/S, que a su vez reenvía el TCCB en un mensaje de órdenes a la unidad de control para su proceso. La unidad de control procesa cada una de las órdenes ausentes un seguimiento del estado relativo a esas órdenes individuales por el adaptador de comunicaciones de E/S. La pluralidad de órdenes es también denominada programa del canal, que es analizado y ejecutado en la unidad de control en lugar de hacerlo en el adaptador de comunicaciones de E/S.
En un ejemplo de modo de realización, la unidad de control genera un mensaje de respuesta que incluye la información de estado y la información extendida del estado, como respuesta a la ejecución del programa del canal. La unidad de control puede generar también un mensaje de respuesta sin ejecutar el programa del canal bajo un número limitado de escenarios de comunicaciones, por ejemplo, para informar al adaptador de comunicaciones de E/S de que el programa no será ejecutado. La unidad de control puede incluir un cierto número de elementos para dar soporte a la comunicación entre el adaptador de comunicaciones de E/S y los dispositivos de E/S, así como para el soporte de la ejecución del programa del canal. Por ejemplo, la unidad de control puede incluir una lógica de control para analizar y procesar mensajes, además de una o más colas, temporizadores y registradores para facilitar la comunicación y la supervisión del estado. El adaptador de comunicaciones de E/S analiza el mensaje de respuesta, extrayendo el estado y la información extendida del estado, y realiza cálculos adicionales utilizando la información extraída.
Cuando múltiples sistemas operativos que se ejecutan en uno o más sistemas centrales intentan acceder a un dispositivo de E/S reservado, a través de una unidad de control en comunicación con uno o más adaptadores de E/S del uno o más sistemas centrales, puede surgir la contienda de acceso. Con el fin de realizar ciertas operaciones de E/S, el dispositivo de E/S puede ser reservado para acceso exclusivo a un conjunto de canales (grupo de caminos) bajo el control de un sistema operativo solicitante. Puede establecerse un grupo de caminos con el fin de permitir que exista una reserva de dispositivo de múltiples canales con vuelta al mismo sistema central. Una vez que se ha reservado el dispositivo de E/S, los subsiguientes intentos de otros sistemas operativos para reservar o utilizar el dispositivo de E/S quedan bloqueados, y el dispositivo de E/S devuelve un indicador de dispositivo ocupado. En un ejemplo de modo de realización, se ponen en cola múltiples órdenes que incluyen peticiones de reserva recibidas en la unidad de control para el dispositivo de E/S, mientras que esté presente el indicador de dispositivo ocupado. Como respuesta a la supresión por el dispositivo de E/S del indicador de dispositivo ocupado, por ejemplo, con un indicador de terminación de dispositivo, la unidad de control da servicio a la cola y determina la siguiente orden a procesar. La cola puede emplear diversas técnicas de gestión de colas, tales como el servicio de primera en entrar primera en salir (FIFO), el servicio basado en prioridades, y el servicio de todos contra todos. El servicio FIFO gestiona órdenes en el orden en que se reciben. El servicio basado en prioridades permite servir las órdenes de prioridad más alta por delante de las órdenes de prioridad más baja. El servicio de todos contra todos gestiona por turno cada conexión de comunicaciones de sistemas operativos diferentes. Utilizando una cola para gestionar peticiones de acceso a un dispositivo de E/S reservado, se simplifica la comunicación entre la unidad de control y los adaptadores de E/S controlados por los sistemas operativos, y reduce la lucha para impedir una respuesta más lenta de los sistemas centrales para que no queden bloqueados desproporcionadamente por los sistemas centrales que responden más rápidamente.
Con referencia a la figura 1, se describe un ejemplo de sistema de proceso de E/S que incorpora y utiliza uno o más aspectos de la presente invención. El sistema 100 de proceso de E/S incluye un sistema central 101 que incluye a su vez, por ejemplo, una memoria principal 102, una o más unidades centrales de proceso (CPU) 104, un elemento 106 de control de almacenamiento y un subsistema 108 de canales. El sistema central 101 puede ser un sistema de computación a gran escala, tal como un ordenador o servidor principal. El sistema 100 de proceso de E/S incluye también una o más unidades 110 de control y uno o más dispositivos 112 de E/S, cada uno de los cuales se describe a continuación.
La memoria principal 102 almacena datos y programas, que pueden ser introducidos desde los dispositivos 112 de E/S. Por ejemplo, la memoria principal 102 puede incluir uno o más sistemas operativos (OS) 103, que se ejecutan por una o más de las CPU 104. Por ejemplo, una CPU 104 puede ejecutar un sistema operativo Linux® 103 y un sistema operativo z/OS® 103 como diferentes ejemplos de máquinas virtuales. La memoria principal 102 puede ser direccionada directamente y proporciona un proceso de datos de alta velocidad por las CPU 104 y por el subsistema 108 de canales.
La CPU 104 es el centro de control del sistema 100 de proceso de E/S. Contiene recursos de secuenciación y proceso para la ejecución de instrucciones, la acción de interrupción, funciones de sincronismo, carga inicial de programas y otras funciones relativas a la máquina. La CPU 104 está acoplada al elemento 106 de control a través de la conexión 114, tal como un bus bidireccional o unidireccional.
El elemento 106 de control del almacenamiento está acoplado a la memoria principal 102 a través de una conexión 116, tal como un bus; a las CPU 104 a través de la conexión 114; y al subsistema 108 de canales a través de la conexión 118. El elemento 106 de control del almacenamiento controla, por ejemplo, las colas y la ejecución de peticiones hechas por la CPU 104 y el subsistema 108 de canales.
En un ejemplo de modo de realización, el subsistema 108 de canales proporciona un interfaz de comunicaciones entre el sistema central 101 y las unidades 110 de control. El subsistema 108 de canales está acoplado al elemento 106 de control del almacenamiento, como se ha descrito anteriormente, y a cada una de las unidades 110 de control a través de una conexión 120, tal como un enlace serie. La conexión 120 puede ser implementada como un enlace óptico, empleando guías de ondas de modo único o de modos múltiples en una estructura de Canales de Fibra. El subsistema 108 de canales dirige el flujo de información entre dispositivos 112 de E/S y la memoria principal 102. Alivia la tarea de las CPU 104 de comunicarse directamente con los dispositivos 112 de E/S y permite el proceso de datos para continuar concurrentemente con el proceso de E/S. El subsistema 108 de canales utiliza uno o más caminos 122 de canales como enlaces de comunicaciones al gestionar el flujo de información hacia y desde los dispositivos 112 de E/S. Como parte del proceso de E/S, el subsistema 108 de canales realiza también las funciones de gestión de caminos de comprobación de la disponibilidad de caminos de canales, seleccionando un camino de canal disponible 122 e iniciando la ejecución de la operación con los dispositivos 112 de E/S.
Cada camino 122 de canal incluye un canal 124 (los canales 124 está situados dentro del subsistema 108 de canales, en un ejemplo, como se ilustra en la figura 1), una o más unidades 110 de control y una o más conexiones 120. En otro ejemplo, es posible también tener uno o más interruptores dinámicos (no representados) como parte del camino 122 del canal. Un interruptor dinámico está acoplado a un canal 124 y una unidad 110 de control proporciona la capacidad de interconectar físicamente dos enlaces cualesquiera que estén unidos al interruptor. En otro ejemplo, también es posible tener múltiples sistemas, y por tanto múltiples subsistemas de canales (no representados) unidos a la unidad 110 de control.
Situados también dentro del subsistema 108 de canales, hay subcanales (no ilustrados). Se proporciona un subcanal que es exclusivo para cada dispositivo 112 de E/S accesible a un programa a través del subsistema 108 de canales. Un subcanal (por ejemplo, una estructura de datos, tal como una tabla) proporciona la apariencia lógica de un dispositivo para el programa. Cada subcanal proporciona información concerniente al dispositivo 112 de E/S asociado y su unión al subsistema 108 de canales. El subcanal proporciona también información concerniente a las operaciones de E/S y otras funciones que implican al dispositivo 112 de E/S asociado. El subcanal es el medio por el cual el subsistema 108 de canales proporciona información sobre los dispositivos 112 de E/S asociados a las CPU 104, que obtienen esta información ejecutando instrucciones de E/S.
El subsistema 108 de canales está acoplado a una o más unidades 110 de control. Cada unidad 110 de control proporciona la lógica para accionar y controlar uno o más dispositivos 112 de E/S y adapta, a través del uso de recursos comunes, las características de cada dispositivo 112 de E/S, al interfaz de enlace proporcionado por el canal 124. Los recursos comunes proporcionan la ejecución de las operaciones de E/S, las indicaciones concernientes al estado del dispositivo 112 de E/S y de la unidad 110 de control, el control de los tiempos de transferencias de datos sobre el camino 122 del canal y ciertos niveles de control del dispositivo 112 de E/S.
Cada unidad 110 de control está unida a través de una conexión 126 (por ejemplo, un bus) a uno o más dispositivos 112 de E/S. Los dispositivos 112 de E/S reciben información o almacenan información en la memoria principal 102 y/o en otra memoria. Ejemplos de dispositivos 112 de E/S incluyen lectores y perforadores de tarjetas, unidades de cinta magnética, dispositivos de almacenamiento de acceso directo, pantallas, teclados, impresoras, dispositivos de apuntamiento, dispositivos de teleproceso, controladores de comunicaciones y equipos basados en sensores, por nombrar algunos.
Uno o más de los componentes del sistema 100 de proceso de E/S están descritos con más detalle en "IBM® z/Arquitecture Principles of Operation" (Principios de funcionamiento de la Arquitectura z de IBM®) Publicación núm. SA22-7832-05, 6ª edición, Abril de 2007; la Patente de Estados Unidos núm. 5.461.721 titulada "System for transfering Data Between I/O Devices And Main or Expanded Storage Under Dynamic Control Of Independent Indirect Address Words (IDAWS)" (Sistema para la transferencia de datos entre dispositivos de E/S y almacenamiento principal o expandido bajo el control dinámico de palabras de direcciones indirectas independientes (IDAWS)), de Cormier y otros colaboradores, publicada el 24 de Octubre de 1995; y la patente de Estados Unidos núm. 5.526.484 titulada "Method And System For Pipelining The Processing Of Channel Command Words", (Método y sistema para yuxtaposición del proceso de palabras de órdenes del canal) de Casper y otros colaboradores, publicada el 11 de Junio de 1996. IBM es una marca comercial registrada de International Business Machines Corporation, Armonk, Nueva York, USA. Otros nombres utilizados en esta memoria pueden ser marcas comerciales registradas, marcas comerciales o nombres de productos de International Business Machines Corporation o de otras compañías.
En un modo de realización, para transferir datos entre dispositivos 112 de E/S y la memoria 102, se utilizan las palabras de órdenes del canal (CCW). Una CCW especifica la orden a ejecutar, e incluye otros campos para controlar el proceso. Se describe un ejemplo de CCW con referencia a la figura 2A. Una CCW 200 incluye, por ejemplo, un código 202 de órdenes que especifica la orden a ejecutar (por ejemplo, lectura, lectura hacia atrás, control, sentido y escritura); una pluralidad de señalizadores 204 utilizados para controlar la operación de E/S; para órdenes que especifican la transferencia de datos, un campo 206 de conteo que especifica el número de bytes en la zona de almacenamiento designada por la CCW a transferir; y una dirección 208 de datos que apunta a un lugar de la memoria principal que incluye datos, cuando se emplea el direccionamiento, o a una lista (por ejemplo, una lista contigua) de palabras de direcciones indirectas modificadas de datos (MIDAW) a procesar, cuando se emplea el direccionamiento indirecto modificado de datos. El direccionamiento indirecto modificado se describe con más detalle en la Solicitud de Patente publicada de Estados Unidos con el número 2008/0043563, titulada "Flexibly Controlling The Transfer Of Data Between Input/Output Devices And Memory" ("Control flexible de la transferencia de datos entre dispositivos de Entrada/Salida y memoria") de Brice y otros colaboradores, presentada el 15 de Agosto de 2006.
Una o más CCW organizadas para la ejecución secuencial forman un programa de canal, denominado también en esta memoria como programa de canal CCW. El programa de canal CCW se establece, por ejemplo, por un sistema operativo u otro software. El software establece las CCW y obtiene las direcciones de memoria asignadas al programa del canal. Se describe un ejemplo de programa de canal CCW con referencia a la figura 2B. Un programa 210 de canal CCW incluye, por ejemplo, una CCW 112 de definición de alcance que tiene un puntero 214 a un lugar de memoria de datos 216 de definición de alcance a utilizar con la orden de definición de alcance. En este ejemplo, una transferencia en el canal (TIC) 218 sigue la orden de definición de alcance que lleva al programa del canal a otra zona de la memoria (por ejemplo, una zona de aplicaciones) que incluye una o más de otras CCW, tales como un registro 217 de localización que tiene un puntero 219 para localizar datos 220 de registro, y una o más CCW 221 de lectura. Cada CCW 220 de lectura tiene un puntero 222 a una zona 224 de datos. La zona de datos incluye una dirección para acceder directamente a los datos o una lista de palabras de direcciones de datos (por ejemplo las MIDAW o las IDAW) para acceder indirectamente a los datos. Además, el programa 210 de canal CCW incluye una zona predeterminada en el subsistema del canal, definida por la dirección del dispositivo, llamado subcanal, para el estado 226 resultante de la ejecución del programa de canal CCW.
Se describe el proceso de un programa de canal CCW con referencia a la figura 3, así como con referencia a la figura 2B. En particular, la figura 3 muestra un ejemplo de diversos intercambios y secuencias que tienen lugar entre un canal y una unidad de control cuando se está ejecutando un programa de canal CCW. El protocolo de enlace utilizado para la comunicación es el FICON (Conectividad de Fibra), en este ejemplo. La información relativa a FICON está descrita en ``Protocolo de correspondencia para Conjuntos de Código de Órdenes de un solo byte para Canales de Fibra - 3 (FC-SB-3), Proyecto 1357-D de T11/Rev. 1.6, INCITS (Marzo de 2003).
Haciendo referencia a la figura 3, un canal 300 abre un intercambio con una unidad 302 de control y envía una orden de definición de alcance y datos 304 asociados con ella, a la unidad 302 de control. La orden es extraída desde la CCW 212 de definición de alcance (figura 2B) y se obtienen los datos desde la zona 216 de datos de definición de alcance. El canal 300 usa una TIC 218 para localizar la CCW de localización de registros y la CCW de lectura. Extrae la orden 305 de localización de registros (figura 3) desde la CCW 217 de localización de registros (figura 2B) y obtiene los datos a partir de los datos 220 de localización de registros. La orden 306 de lectura (figura 3) es extraída desde la CCW 221 de lectura (figura 2B). Cada una es enviada a la unidad 302 de control.
La unidad 302 de control abre un intercambio 308 con el canal 300, como respuesta al intercambio abierto del canal 300. Esto puede tener lugar antes o después de una orden 305 de localización y/o de una orden 306 de lectura. Junto con el intercambio abierto, se reenvía una respuesta (CMR) al canal 300. La CMR proporciona una indicación al canal 300 de que la unidad 302 de control está activa y operativa.
La unidad 302 de control envía los datos 310 solicitados al canal 300. Además, la unidad 302 de control proporciona el estado al canal 300 y cierra el intercambio 312. Como respuesta a eso, el canal 300 almacena datos, examina el estado y cierra el intercambio 314, lo cual indica a la unidad 302 de control que se ha recibido el estado.
El proceso del programa de canal CCW citado para leer 4k de datos requiere abrir y cerrar dos intercambios y siete secuencias. El número total de intercambios y secuencias entre el canal y la unidad de control se reduce colapsando múltiples órdenes del programa del canal en un TCCB. El canal, por ejemplo el canal 124 de la figura 1, utiliza una TCW para identificar el lugar del TCCB, así como los lugares para acceder y almacenar el estado y los datos asociados con la ejecución del programa del canal. La TCW es interpretada por el canal y no es enviada ni vista por la unidad de control.
En la figura 4 se describe un ejemplo de un programa de canal para leer 4k de datos, como en la figura 2B, pero que incluye un TCCB, en lugar de las CCW individuales independientes. Como está ilustrado, un programa 400 de canal, denominado en esta memoria como programa de canal TCW, incluye una TCW 402 que especifica un lugar en la memoria de un TCCB 404, así como un lugar en la memoria de una zona 406 de datos o una TIDAL 410 (es decir, una lista de palabras de direcciones de datos de modo indirecto de transferencia (TIDAW), similares a las MIDAW) que apunta a la zona 406 de datos, y una zona 408 de estado. Las TCW, los TCCB y los estados se describen con más detalle a continuación.
Se describe el proceso de un programa de canal TCW haciendo referencia a la figura 5. El protocolo de enlace utilizado para estas comunicaciones es, por ejemplo, el Protocolo de Canal de Fibra (FCP). En particular, se utilizan tres fases del protocolo de enlace FCP, que permiten utilizar los adaptadores del bus del ordenador principal que dan soporte a FCP para realizar transferencias de datos controlados por las CCW. El FCP y sus fases se describen con más detalle en "Information Technology - Protocolo de Canal de Fibra para SCSI, Tercera versión (FCP-3)" Proyecto 1560-D de T10, Revisión 4, 13 de Septiembre de 2005.
Haciendo referencia a la figura 5, un canal 500 abre un intercambio con una unidad 502 de control y envía el TCCB 504 a la unidad 502 de control. En un ejemplo, el TCCB 504 y la iniciativa de secuencia son transferidos a la unidad 502 de control en una orden FCP, denominada unidad de información (IU) de FCP_CMND u orden IU de transporte. La unidad 502 de control ejecuta las múltiples órdenes del TCCB 504 (por ejemplo, la orden de definición de alcance, la orden de localización de registro, la orden de lectura, como palabras de control del dispositivo (DCW)) y reenvía los datos 506 al canal 500 a través, por ejemplo, de una FCP_Data IU. También proporciona el estado y cierra el intercambio 508. Como ejemplo, el estado final es enviado en un marco de estados de FCP que tiene un bit activo, por ejemplo, en el byte 10 u 11 de la carga útil de una FCP_RSP IU, denominada también como respuesta IU del transporte. La carga útil de la FCP_RSP IU se puede utilizar para transportar el estado de finalización de FICON junto con información adicional de estado, incluyendo parámetros que dan soporte al cálculo de las palabras de medición extendida y notifican al canal 500 el número máximo de intercambios abiertos admitidos por la unidad 502 de control.
En un ejemplo adicional, para grabar 4k de datos de clientes, el canal 500 utiliza las fases del protocolo de enlace FCP, como sigue:
1.
Transferir un TCCB en la FCP_CMND IU.
2.
Transferir la IU de datos, y la iniciativa de secuencia a la unidad 502 de control.
3.
El estado final es enviado en un marco de estados de FCP que tiene un bit activo, por ejemplo, en el byte 10 u 11 de la carga útil de la FCP_RSP IU. El campo FCP_RSP_INFO o campo de detección, se utiliza para transportar el estado de finalización de FICON junto con información adicional de estado, incluyendo parámetros que dan soporte al cálculo de palabras de medición extendida y notifican al canal 500 el número máximo de intercambios abiertos admitidos por la unidad 502 de control.
Al ejecutar el programa del canal TCW de la figura 4, solamente hay abierto y cerrado un intercambio (véase también la figura 5), en lugar de dos intercambios para el programa de canal CCW de la figura 2B (véase también la figura 3). Además, para el programa del canal TCW, hay tres secuencias de comunicaciones (véanse las figuras 4-5), en comparación con las siete secuencias del programa de canal CCW (véanse las figuras 2B-3).
El número de intercambios y secuencias permanece inalterado para un programa de canal TCW, aún cuando se añadan órdenes adicionales al programa. Compárese, por ejemplo, las comunicaciones para el programa de canal CCW de la figura 6, con las comunicaciones del programa de canal TCW de la figura 7. En el programa de canal CCW de la figura 6, cada una de las órdenes (por ejemplo, la orden 600 de definición de alcance, la orden 601 de definición de localización de registro, la orden 602 de lectura, la orden 604 de lectura, la orden 606 de lectura, la orden 607 de localización de registro y la orden 608 de lectura) son enviadas en secuencias independientes desde el canal 610 a la unidad 612 de control. Además, cada bloque de 4k de datos (por ejemplo, los datos 614-620) es enviado en secuencias independientes desde la unidad 612 de control al canal 610. Este programa de canal CCW requiere abrir y cerrar dos intercambios (por ejemplo, abrir intercambios 622, 624 y cerrar intercambios 626, 628), y catorce secuencias de comunicaciones. Esto puede compararse con las tres secuencias y un intercambio del programa de canal TCW de la figura 7, que consigue la misma tarea que el programa del canal CCW de la figura 6.
Como se representa en la figura 7, un canal 700 abre un intercambio con una unidad 702 de control y envía un TCCB 704 a la unidad 702 de control. El TCCB 704 incluye la orden de definición de alcance, las dos órdenes de localización de registro, y las cuatro órdenes de lectura de las DCW, como se ha descrito anteriormente. Como respuesta a la recepción de la TCCB 704, la unidad 702 de control ejecuta las órdenes y envía, en una sola secuencia, los 16k de datos 706 al canal 700. Además, la unidad 702 de control proporciona el estado al canal 700 y cierra el intercambio 708. Así, el programa del canal TCW requiere muchas menos comunicaciones para transferir la misma cantidad de datos que el programa de canal CCW de la figura 6.
Volviendo ahora a la figura 8, se representa con mayor detalle un modo de realización de la unidad 110 de control y del canal 124 de la figura 1, que dan soporte a la ejecución del programa del canal TCW. La unidad 110 de control incluye la lógica 802 de control de la CU para analizar y procesar mensajes de órdenes de proceso que contienen un TCCB, tal como el TCCB 704 de la figura 7, recibido desde el canal 124 a través de la conexión 120. La lógica 802 de control de la CU puede extraer las DCW y los datos de control desde el TCCB recibido en la unidad 110 de control para controlar un dispositivo, por ejemplo, el dispositivo 112 de E/S a través de la conexión 126, para realizar una o más órdenes de operación de E/S. La lógica 802 de control de la CU envía órdenes de dispositivo y datos al dispositivo 112 de E/S, y recibe información de estado y otra retro-información desde el dispositivo 112 de E/S. Por ejemplo, el dispositivo 112 de E/S puede estar ocupado debido a una solicitud previa de reserva que tenga como objetivo el dispositivo 112 de E/S. Para gestionar los problemas potenciales de lucha por la reserva del dispositivo, que pueden surgir cuando la unidad 110 de control recibe múltiples solicitudes para acceder al mismo dispositivo 112 de E/S, la lógica 802 de control de la CU mantiene el seguimiento y almacena los mensajes de dispositivo ocupado y los datos asociados en una cola 804 de dispositivos ocupados (DB). En un ejemplo de modo de realización, un sistema operativo (OS) 103 de la figura 1, reserva el dispositivo 112 de E/S para evitar que otros OS 103 accedan al dispositivo 112 de E/S mientras la reserva está activa. Aunque la reserva del dispositivo no se requiere en todas las operaciones de E/S, la reserva de dispositivos se puede utilizar para dar soporte a operaciones que necesitan acceso exclusivo durante un tiempo fijo, por ejemplo, el formateo de un disco.
La lógica 802 de control puede acceder y controlar otros elementos dentro de la unidad 110 de control, tales como temporizadores 806 de CU y registros 808 de CU. Los temporizadores 806 de CU pueden incluir múltiples funciones de temporización para hacer el seguimiento de cuánto tiempo tarda en completarse una secuencia de operaciones de E/S. Los temporizadores 806 de CU pueden incluir además uno o más temporizadores de cuenta atrás para supervisar y abortar las operaciones de E/S y las órdenes que no se completan dentro de un periodo predeterminado. Los registradores 808 de CU pueden incluir valores fijos que proporcionan información de configuración e información de estado, así como información dinámica de estado que es actualizada como órdenes cuando se ejecutan por la lógica 802 de control. La unidad 110 de control puede incluir además otros elementos de memoria intermedia o de memoria principal (no representados) para almacenar múltiples mensajes o información de estado asociada con las comunicaciones entre el canal 124 y el dispositivo 112 de E/S. Los registradores 808 de CU pueden incluir un parámetro máximo de intercambios de la unidad de control que define el número máximo de intercambios de apertura de la unidad de control, que puede admitir la unidad 110 de control.
El canal 124 del subsistema 108 de canales incluye múltiples elementos para dar soporte a las comunicaciones con la unidad 110 de control. Por ejemplo, el canal 124 puede incluir una lógica 810 de control de CHN que hace de interfaz con los temporizadores 812 del subsistema CHN y con los registradores 814 del subsistema de CHN. En un ejemplo de modo de realización, la lógica 810 de control de CHN controla la comunicación entre el subsistema 108 de canales y la unidad 110 de control. La lógica 810 de control de CHN puede tener un interfaz directo con la lógica 802 de control de la CU a través de la conexión 120, para enviar órdenes y recibir respuestas, tales como las IU de órdenes y respuesta del transporte. Alternativamente, los interfaces de mensajería y/o las memorias intermedias (no representadas) pueden ser colocadas entre la lógica 810 de control de CHN y la lógica 802 de control de la CU. Los temporizadores 812 del subsistema de CHN pueden incluir múltiples funciones de temporizador para hacer un seguimiento de cuánto tiempo tarda en completarse una secuencia de operaciones de E/S, además del tiempo en el que ha hecho un seguimiento la unidad 110 de control. Los temporizadores 812 del subsistema de CHN pueden incluir además uno o más temporizadores de cuenta atrás para supervisar y abortar secuencias de órdenes que no se completan dentro de un periodo predeterminado. Los registradores 814 del subsistema de CHN pueden incluir valores fijos que proporcionan información sobre la configuración y el estado, así como información dinámica del estado, actualizada cuando las órdenes son transportadas y se reciben las respuestas.
En la figura 9 se representa un ejemplo de mensaje 900 de respuesta, por ejemplo, una IU de respuesta de transporte, comunicada desde la unidad 110 de control al canal 124 al terminar un programa de canal TCW. El mensaje 900 de respuesta proporciona información de estado al canal 124 y puede indicar que debe cerrarse un intercambio abierto entre el canal 124 y la unidad 110 de control. La información de estado proporcionada cuando se ejecuta un programa de canal TCW (por ejemplo, como se representa en las figuras 5 y 7) incluye información adicional más allá de la información de estado enviado al completarse un programa de canal CCW (por ejemplo, como se representa en las figuras 3 y 6). El mensaje 900 de respuesta incluye una sección 902 de estado y una sección 904 de estado extendida. Cuando el canal 124 recibe el mensaje 900 de respuesta, almacena partes de la sección 902 de estado en el subcanal para el dispositivo sobre el que estaba operando la TCW y de la sección 904 de estado extendida en un lugar de la memoria definido por la TCW asociada con el programa de canal TCW que disparó el mensaje 900 de respuesta. Por ejemplo, una TCW puede designar una sección de la memoria principal 102 de la figura 1, para el almacenamiento de la sección 904 de estado extendido.
La sección 902 de estado del mensaje 900 de respuesta puede incluir múltiples campos, tales como una cabecera 906 de direcciones, señalizadores 914 de estado (1), un parámetro máximo 910 de intercambio de la unidad de control, señalizadores 912 de respuesta, código 914 de respuesta, cuenta residual 916, longitud 918 de la respuesta, lugar reservado 920, tipo 922 de detección de SPC-4, señalizadores 924 de estado (2), señalizadores 926 de estado (3), estado 928 del dispositivo, y una palabra 930 de comprobación de redundancia longitudinal (LRC). Cada campo de la sección 902 de estado está asignado a una dirección de byte en particular para dar soporte al análisis del mensaje 900 de respuesta. Aunque en la figura 9 se representa una configuración de campos dentro de la sección 902 de estado, se comprenderá que el orden de los campos puede ser reorganizado para alternar las órdenes dentro del alcance de la divulgación. Más aún, los campos del mensaje 900 de respuesta pueden ser omitidos o combinados dentro del alcance de la invención, por ejemplo, combinando los señalizadores 924 de estado (2) y los 926 (3) en un solo campo. El SPC-4 se describe con más detalle en "Órdenes Principales SCSI - 4 (SPC-4)" Proyecto T10/1731-D, Rev. 11, INCITS (Mayo de 2007).
En un ejemplo de modo de realización, la cabecera 906 de direcciones está fijada con el mismo valor que el recibido por la unidad 110 de control en el TCCB que inició el programa de canal TCW. Aunque no se requiere la cabecera 906 de direcciones, la inclusión de la cabecera 906 de direcciones puede dar soporte a las pruebas para hacer un seguimiento de los mensajes de órdenes y respuestas sobre un dispositivo 112 de E/S, mientras se accede a múltiples dispositivos 112 de E/S.
Los señalizadores 908 de estado (1) pueden indicar información tal como el estado de éxito de una operación de E/S. Múltiples bits dentro de los señalizadores 908 de estado (1) pueden proporcionar información de estado adicional.
El parámetro máximo 910 de intercambios de la unidad de control identifica el número máximo de intercambios que la unidad 110 de control permite abrir al canal 124. Un valor de cero puede informar al canal 124 que la unidad 110 de control no está alterando el valor actual que está utilizando el canal 124. En un ejemplo de modo de realización, el canal 124 establece un valor por defecto para el número máximo de intercambios abiertos, por ejemplo 64, que la unidad 110 de control puede modificar a través del parámetro máximo 910 de intercambios de la unidad de control. El valor del parámetro máximo 910 de intercambios de la unidad de control enviado en el mensaje 900 de repuesta, puede ser el valor real deseado o un valor simiente para una ecuación. Por ejemplo, el valor en el parámetro máximo 910 de intercambios de la unidad de control puede ser incrementado y/o multiplicado por el canal 124 para determinar el número real máximo de intercambios abiertos, por ejemplo, un valor "1" interpretado como "32" por el canal
124.
Utilizando el valor por defecto para el número máximo de intercambios abiertos, se entrega a cada unidad 110 de control y al canal 124 un punto de partida común que puede ser modificado según determine la unidad 110 de control. En un modo de realización, el canal 124 comprueba el parámetro máximo 910 de intercambios de la unidad de control, recibido en el mensaje 900 de respuesta desde la unidad 110 de control, para determinar si el parámetro máximo 910 de intercambios de la unidad de control es menor que el valor por defecto o el valor recibido previamente. Si el nuevo número es menor que el número actual de intercambios abiertos, el canal 124 no dirige nuevas órdenes de E/S a la unidad 110 de control hasta que el número actual de intercambios utilizado sea menor que el nuevo límite.
En un ejemplo de modo de realización, el campo 912 de señalizadores de respuesta utiliza la definición estándar como definida en el FCP (mencionado anteriormente) y puede ser fijado a un valor por defecto, por ejemplo, dos. El código 914 de respuesta puede ser equivalente al campo de estado del Interfaz de Pequeños Sistemas de Ordenador (SCSI) y puede ser fijado a un valor por defecto, tal como cero. La cuenta residual 916 para las órdenes de lectura o escritura indica la diferencia entre cuántos bytes se ordenó leer o grabar, y el número de bytes realmente leídos o grabados. La longitud 918 de la respuesta es una cuenta adicional de bytes de información en el mensaje 900 de respuesta, tras el lugar 920 reservado. La longitud 918 de respuesta da soporte a los mensajes 900 de respuesta de tamaño variable. El tipo 922 de detección de SPC-4 puede ser asignado a un valor particular basado en el tipo de mensaje, por ejemplo una IU de respuesta de transporte = 7F hexadecimal. En un modo de realización los señalizadores 924 de estado (2) son fijados a un valor de 80 hexadecimal, para indicar que la operación de E/S se ha completado, con un valor válido de la cuenta residual 916. Los señalizadores 926 de estado (3) se fijan en un valor de uno cuando la operación de E/S se ha completado, indicando que el estado extendido 904 está incluido como parte del mensaje 900 de respuesta. El estado 928 del dispositivo retransmite información de estado generada por el dispositivo 112 de E/S. La palabra 930 de LRC es una palabra de comprobación que cubre los demás campos de la sección 902 de estado del mensaje 900 de respuesta, para verificar la integridad de la sección 902 de estado. La palabra 930 de LRC puede ser generada mediante la aplicación
de una operación "o-exclusiva" en un valor simiente inicial con cada campo incluido en el cálculo de LRC en sucesión.
La sección 904 de estado extendido proporciona información al subsistema 108 de canales y al OS 103 asociado con la unidad 110 de control de la operación, en un modo de transporte capaz de ejecutar un programa de canal TCW. La sección 904 de estado extendido puede dar soporte a definiciones configurables con distintos tipos de definiciones de estado para cada tipo. En un ejemplo de modo de realización, la sección 904 de estado extendido incluye una cabecera de estado del transporte (TSH) 932, una zona de estado de transporte (TSA) 934 y una palabra 936 de LRC de la TSH 932 y de la TSA 934. La TSH 932 puede incluir la longitud 940 del estado extendido, los señalizadores 942 de estado extendido, una compensación 944 de DCW, una cuenta residual 946 de DCW y un lugar reservado 948. La TSH 932 es común para los distintos formatos, estando definido cada formato por un código tipo en los señalizadores 942 de estado extendido. La TSA 934 puede incluir un parámetro 950 de tiempo total del dispositivo, un parámetro 952 de tiempo diferido, un parámetro 954 de tiempo en cola, un parámetro 956 de tiempo de ocupación del dispositivo, un parámetro 958 de solamente tiempo activo del dispositivo y datos añadidos 960 de detección del dispositivo. Cada uno de estos campos se describe con más detalle a su vez.
La longitud 940 de estado extendido es el tamaño de la sección 904 de estado extendido. En un ejemplo de modo de realización, los señalizadores 942 de estado extendido tienen la definición siguiente:
Bit 0 - La compensación 944 de la DCW es válida.
Bit 1 - La cuenta residual 946 de la DCW es válida.
Bit 2 - Este bit fijado en uno informa al OS 103 de la figura 1 de una manera definitiva cuando la unidad 110 de control tuvo que acceder a medios lentos para datos, por ejemplo, una falta de caché.
Bit 3 - Los parámetros 950 - 958 son válidos. El código tipo fijado en uno y este bit fijado en uno indica que todos los parámetros o los parámetros de tiempos 950-958 son válidos.
Bit 4 - Reservado.
Bits 5 a 7 - Estos tres bits son del código tipo que define el formato de la TSA 934 de la sección 904 de estado extendido. Los nombres de las codificaciones son:
0. Reservado.
1. Estado de E/S. La sección 904 de estado extendido contiene estado de finalización válido para la operación E/S de modo-transporte.
2. Excepción de E/S. La sección 904 de estado extendido contiene información relativa a la terminación de la operación E/S de modo-transporte, debido a una condición de excepción.
3. Estado de interrogación. La sección 904 de estado extendido contiene el estado de una operación de interrogación.
4 a 7. Reservados.
La compensación 944 de la DCW indica una compensación en el TCCB de una DCW que ha fallado. De forma similar, la cuenta residual 946 de la DCW indica la cuenta residual de bytes de una DCW que ha fallado (es decir, cuando se interrumpió la ejecución de la DCW).
En un ejemplo de modo de realización, la definición de TSA 934 cuando el código tipo de los señalizadores 942 de E/S indica un tipo de estado de E/S, incluye parámetros 950-958 de tiempo, así como opcionalmente los datos añadidos 960 de detección del dispositivo. Los parámetros 950-958 de tiempo representan valores de tiempo y pueden ser convertidos a escala en cualquier unidad de tiempo, tal como microsegundos. Los temporizadores 806 de CU de la figura 8 se utilizan para calcular los parámetros 950-958 de tiempo, y se pueden emplear también los registradores 808 de CU para capturar los valores de los temporizadores 806 de CU en un evento de disparo.
El parámetro 950 de tiempo total del dispositivo es el tiempo transcurrido desde el momento en que la unidad 110 de control recibió la IU de la orden de transporte, hasta que envió la IU de respuesta del transporte (es decir, el mensaje 900 de respuesta) para la operación de E/S. El parámetro 952 de tiempo diferido indica el tiempo diferido de la unidad de control. Este es el tiempo acumulado por la unidad 110 de control trabajando con el dispositivo 112 de E/S cuando no se realiza ninguna comunicación con el canal 124. En los programas de canal CCW, tal como el representado en la figura 3, la unidad 302 de control se desconecta del canal 300 durante este tiempo.
El parámetro 954 de tiempo en la cola es el tiempo en el que la operación de E/S está en cola en la unidad 110 de control, pero no incluye el tiempo en cola con el dispositivo ocupado cuando el dispositivo 112 de E/S está reservado por un OS 103 diferente del mismo u otro sistema principal 101. El parámetro 956 de tiempo de ocupación del dispositivo es el tiempo en el que la IU de la orden de transporte está en cola en la unidad 110 de control, esperando por causa de la ocupación de un dispositivo originada porque el dispositivo 112 de E/S ha sido reservado por un OS 103 diferente en el mismo o en otro sistema principal 101.
El parámetro 958 de solamente el tiempo en que el dispositivo está activo, es el tiempo transcurrido entre la terminación de un canal (CE) y la terminación de un dispositivo (DE) en la unidad 110 de control, cuando la unidad 110 de control mantiene la CE hasta que hay disponible una DE. La CE puede indicar que la parte de una operación de E/S que implique una transferencia de datos o información de control entre el canal 124 y la unidad 110 de control, ha sido completada. La DE puede indicar que la parte del dispositivo de una operación de E/S se ha completado.
Los datos añadidos 960 de detección del dispositivo es un estado complementario que la unidad 110 de control proporciona condicionalmente como respuesta a un bit de comprobación de unidad activa (UC) en el estado 928 del dispositivo.
La palabra 936 de LRC es una palabra de comprobación de redundancia longitudinal de la TSH 932 y de la TSA 934, calculadas de una manera similar a la de la palabra 930 de LRC en la sección 902 de estado del mensaje 900 de respuesta. La palabra 936 de LRC puede ser calculada con un número variable de palabras, dependiendo del número de palabras incluidas en los datos añadidos 960 de detección del dispositivo.
Volviendo ahora a la figura 10, se representan múltiples sistemas principales 101 en comunicación con la unidad 110 de control, a través de las conexiones 120. Cada sistema principal 101 incluye un subsistema 108 de canales con uno o más canales 124. Aunque solamente se ha representado un canal 124 en cada sistema principal 101 de la figura 10, se comprenderá que cada sistema principal 101 puede incluir múltiples canales 124 controlados por múltiples OS 103. Los sistemas principales 101 incluyen también otros elementos del sistema de proceso, como se ha reasentado anteriormente y se ha descrito con referencia a la figura 1, es decir, una o más CPU 104 acopladas al elemento 106 de almacenamiento y a la memoria principal 102. Cada sistema principal 101 puede ejecutar uno o más OS 103, siendo cada OS 103 capaz de hacer una solicitud de reserva para acceso exclusivo al dispositivo 112 de E/S. El OS 103 de cada sistema principal 101 puede controlar individualmente uno o más canales 124, para iniciar las operaciones de E/S. Los OS 103 pueden utilizar diferentes subcanales (no representados) sobre uno o más canales 124, para comunicarse con la unidad 110 de control.
Cada conexión 120 entre un canal 124 y la unidad 110 de control, puede ser una conexión directa. Alternativamente, las conexiones 120 pueden pasar a través de uno o más interruptores dinámicos 1002, como parte de una construcción de fibra óptica, para reducir el número de conexiones físicas en la unidad 110 de control.
Como se ha descrito anteriormente con referencia a la figura 8, la lógica 802 de control de la CU analiza y procesa los mensajes de órdenes que contienen los TCCB, tal como el TCCB 704 de la figura 7, recibidos desde los canales 124 a través de las conexiones 120. Algunas órdenes recibidas en la lógica 802 de control de la CU pueden incluir una petición de reserva de dispositivo. Aunque no se requiere la reserva de dispositivos en todas las operaciones de E/S, la reserva de dispositivos puede ser solicitada en base a los OS 103 para las operaciones de E/S que requieren un acceso exclusivo al dispositivo 112 de E/S. Por ejemplo, distintos OS 103 puede solicitar ambos la lectura de bloques de datos en el dispositivo 112 de E/S. La unidad 110 de control puede dar servicio a cada solicitud de lectura sin reservar el dispositivo 112 de E/S. Sin embargo, cuando uno de los OS 103 reserva el dispositivo 112 de E/S en uno de los canales 124, se bloquean otros OS 103 que intenten acceder al dispositivo 112 de E/S cuando el dispositivo 112 de E/S está reservado.
\newpage
En un ejemplo de modo de realización, la lógica 802 de control de la CU recibe un indicador de dispositivo ocupado desde el dispositivo 112 de E/S, cuando el dispositivo 112 de E/S está reservado para un OS 113. Como la lógica 802 de control recibe mensajes de órdenes mientras el indicador de dispositivo ocupado está presente, la lógica 802 de control puede colocar los mensajes de órdenes en la cola 804 de DB. Los mensajes de órdenes pueden contener información de identificación que establece un OS 103 en particular y/o un canal 124 asociado con cada mensaje de órdenes. En un ejemplo alternativo de modo de realización, la lógica 802 de control mantiene el seguimiento del OS 103 en particular y/o del canal 124 asociado con cada mensaje de órdenes de los registradores 808 de CU. Cuando el dispositivo 112 de E/S deja de estar reservado, lo notifica a la lógica 802 de control a través de un indicador de dispositivo terminado. Como respuesta al indicador de dispositivo terminado, la lógica 802 de control de la CU da servicio a la cola 804 de DB para extraer un mensaje de órdenes para que lo realice el dispositivo 112 de E/S. El mensaje de órdenes extraído puede dar como resultado nuevamente una reserva del dispositivo 112 de E/S, ocasionando retardos adicionales en el servicio a mensajes de órdenes pendientes. Alternativamente, el mensaje de órdenes extraído puede no requerir una reserva del dispositivo 112 de E/S (por ejemplo, no se necesita un acceso exclusivo al dispositivo 112 de E/S), permitiendo el servicio adicional de la cola 804 de DB para realizar mensajes adicionales de órdenes en sucesión.
El servicio a la cola 804 de DB se puede realizar utilizando una diversidad de técnicas para gestionar la cola 804 de DB. Por ejemplo, la cola 804 de DB se puede gestionar como una FIFO para extraer cada mensaje de órdenes en el orden en que fue colocado en la cola 804 de DB. Alternativamente, la cola 804 de DB puede ser servida como una cola de prioridades. La prioridad de los mensajes de órdenes grabados en la cola 804 de DB pueden ser incluidos en un campo dentro de cada mensaje de órdenes que es transportado por la unidad 110 d control. Se puede establecer cualquier número de prioridades para una gama de opciones programadas. Cuando se da servicio a la cola 804 de DB como una cola de prioridad, se extrae el mensaje de prioridad más alta en la cola 804 de DB antes que los mensajes de órdenes de prioridad inferior cuando son servidos. La cantidad de tiempo que los mensajes de órdenes permanecen en la cola 804 de DB puede ser supervisada para aumentar la prioridad de los mensajes de órdenes en un cierto periodo de tiempo, para asegurar que son servidos. Otro enfoque para dar servicio a la cola 804 de DB es el servicio de "todos contra todos". Utilizando el servicio de todos contra todos, el OS 103 (o el canal 124) asociado con cada mensaje de órdenes de la cola 804 de DB, es analizado para dar servicio a la cola 804 de DB en base a cada OS 103. El servicio de todos contra todos proporciona acceso para cada enlace de comunicaciones, para impedir la disparidad potencial que puede surgir si un OS 103 envía una ráfaga de múltiples solicitudes de acceso a la unidad 110 de control.
Cuando un mensaje de órdenes se pone en cola en la cola 804 de DB, se inicia un temporizador de dispositivo ocupado en los registradores 808 de CU. Al dar servicio a la cola 804 de DB para realizar una orden de operaciones de E/S, se lee el valor del temporizador de dispositivo ocupado de los registradores 808 de CU, para determinar cuánto tiempo estaba pendiente el mensaje de órdenes en la cola 804 de DB. El valor del temporizador de dispositivo ocupado en informado en el parámetro 956 de tiempo de dispositivo ocupado del mensaje 900 de respuesta de la figura 9. Puede haber múltiples temporizadores de dispositivo ocupado en los registradores 808 de CU para dar soporte a múltiples OS 103. Alternativamente, el temporizador de dispositivo ocupado en los registradores 808 de CU puede ser un temporizador funcionando continuamente con valores de tiempo de dispositivo ocupado capturados en los registradores 808 de CU para múltiples OS 103, y entregados a cada respectivo OS 103 a través de los canales 124.
A medida que se ponen en cola múltiples mensajes de órdenes en la cola 804 de DB, se supervisa la profundidad de la cola 804 de DB. Si la cola 804 de DB está llena de manera que no se pueden poner en cola más mensajes de órdenes, la lógica 802 de control de la CU puede entregar un mensaje de dispositivo ocupado a todos los OS 103 que envían nuevos mensajes de órdenes cuando la cola 804 de DB está llena. La lógica 802 de control de la CU puede entonces enviar un mensaje de finalización del dispositivo para indicar que el dispositivo 112 de E/S está listo, lo cual puede disparar los OS 103 para que reenvíen los mensajes de órdenes a través de uno o más canales 124. Alternativamente, algunos de los mensajes de órdenes de la cola 804 de DB pueden ser devueltos a los OS 103 con una indicación de dispositivo ocupado y limpiarlo de la cola 804 de DB. De nuevo, la lógica 802 de control de la CU puede enviar un mensaje de dispositivo finalizado para indicar que el dispositivo 112 de E/S está listo, lo cual puede disparar a los OS 103 para que reenvíen los mensajes de órdenes a través de uno o más canales 124.
Al gestionar la cola 804 de DB, la lógica 802 de control de la CU puede notificar a los OS 103 una condición de ocupación bajo una diversidad de escenarios, más allá de la condición de cola llena. Por ejemplo, la lógica 802 de control puede utilizar los temporizadores 806 de CU para supervisar el tiempo en que los mensajes de órdenes permanecen en la cola 804 de DB. Cuando se pone en cola un mensaje de órdenes durante un periodo de tiempo mayor que un periodo de expiración de órdenes, mientras el dispositivo 112 de E/S está reservado (por ejemplo, el indicador de finalización de dispositivo no ha sido recibido), entonces el mensaje de órdenes se elimina de la cola 804 de DB y se envía un mensaje de dispositivo ocupado en una IU de FCP_RSP al que origina el mensaje de órdenes. El periodo de expiración de órdenes puede ser fijado en un valor fijo, tal como 30 segundos, o ser configurable. En un ejemplo de modo de realización, cuando se recibe un nuevo mensaje de órdenes mientras el dispositivo 112 de E/S ha sido reservado durante un periodo mayor que el periodo de expiración de dispositivo ocupado, la lógica 802 de control de la CU no coloca el nuevo mensaje de órdenes en la cola 804 de DB. La lógica 802 de control de la CU envía un mensaje de dispositivo ocupado en la IU de FCP_RSP al que origina el nuevo mensaje de órdenes.
El OS 103 puede supervisar también el tiempo transcurrido hasta que se completa un mensaje de órdenes de solicitud. Como respuesta a la determinación de que ya ha transcurrido el periodo de expiración del sistema operativo, el OS 103 puede enviar la reposición de un mensaje de fidelidad a la unidad 110 de control, para intentar liberar el dispositivo 112 de E/S. Como respuesta a eso, la unidad 110 de control entra en un periodo de recuperación de la expiración del sistema operativo. Si se recibe un nuevo mensaje de órdenes durante el periodo de recuperación de la expiración del sistema operativo, la lógica 802 de control de la CU no coloca el nuevo mensaje de órdenes en la cola 804 de DB. La lógica 802 de control de la CU responde con un mensaje de dispositivo ocupado en la IU de FCP_RSP al que origina el nuevo mensaje de órdenes.
Volviendo ahora a la figura 11, se describirá ahora un proceso 1100 para reducir la contienda de acceso a un dispositivo reservado, en una unidad de control en comunicación con una pluralidad de OS a través de uno o más canales, de acuerdo con ejemplos de modos de realización, y con referencia al sistema 100 de proceso de E/S de la figura 1 y la vista detallada de la unidad 110 de control de la figura 10. En el bloque 1102, la unidad 110 de control recibe un mensaje de órdenes desde un primer OS de una pluralidad de OS 103, a través de uno o más canales 124, donde el mensaje de órdenes incluye una orden de operación de E/S para el dispositivo 112 de E/S en comunicación con la unidad 110 de control. El mensaje de órdenes puede ser una IU de órdenes de transporte, incluyendo un TCCB con múltiples DCW como parte de un programa de canal TCW. En el bloque 1104, la unidad 110 de control recibe un indicador de dispositivo ocupado desde el dispositivo 112 de E/S. El indicador de dispositivo ocupado notifica a la unidad 110 de control que un segundo OS de la pluralidad de OS 103 ha reservado el dispositivo 112 de E/S.
En el bloque 1106, la unidad 110 de control pone en cola el mensaje de órdenes en la cola 804 de DB, como respuesta al indicador de dispositivo ocupado. A medida que se reciben mensajes de órdenes adicionales en la unidad 110 de control, los mensajes de órdenes se ponen en cola en la cola 804 de DB.
En el bloque 1108, la unidad 110 de control supervisa el dispositivo 112 de E/S a la espera de un indicador de dispositivo terminado, donde el indicador de dispositivo terminado notifica a la unidad 110 de control que el dispositivo 112 de E/S está listo para recibir una nueva orden de operaciones de E/S. En el bloque 1110, la unidad 110 de control da servicio a la cola 804 de DB para extraer un mensaje de órdenes y realizar las órdenes de operaciones de E/S, como respuesta al indicador de dispositivo terminado. La cola 804 de DB puede ser servida utilizando un servicio FIFO, un servicio basado en prioridad, o un servicio de todos contra todos, como se ha descrito previamente.
Los efectos técnicos de los ejemplos de modos de realización incluyen una reducción en la contienda de acceso a un dispositivo reservado en un sistema de proceso de E/S. Utilizando una cola de dispositivo ocupado para almacenar temporalmente mensajes de órdenes recibidos mientras un dispositivo está reservado, se permite a una unidad de control gestionar el orden del servicio de mensajes de órdenes desde diferentes OS, sin sobrecargar los subsistemas de canales de los sistemas principales que originaron los mensajes de órdenes. Las ventajas incluyen manejar múltiples mensajes de órdenes sin interrumpir la ejecución de un programa de canal TCW sobre una unidad de control. Así, la cola de dispositivo ocupado gestiona la contienda de acceso a un dispositivo reservado, mientras que se ganan también ventajas de un mayor rendimiento de las comunicaciones debido en parte al intercambio de menos mensajes por programa de canal. Se puede utilizar una diversidad de técnicas de servicio de colas de dispositivo ocupado, dependiendo de las preferencias del diseñador del sistema o del cliente. En ejemplos de modos de realización, los mensajes de órdenes que se originan desde sistemas principales que responden más lentamente, son servidos equitativamente con respecto a los sistemas principales que responden más rápidamente.
Como se ha descrito anteriormente, los modos de realización pueden ser materializados en forma de procesos implementados por ordenador y por aparatos para poner en práctica esos procesos. En ejemplos de modos de realización, la invención está materializada en código de programa de ordenador ejecutado por uno o más elementos de red. Los modos de realización incluyen un producto 1200 de programa de ordenador, como se representa en la figura 12, sobre un medio 1202 utilizable en ordenador con una lógica 1204 de código de programa de ordenador que contiene instrucciones materializadas en medios tangibles, como un artículo de fábrica. Ejemplos de artículos de fábrica para el medio 1202 utilizable por ordenador pueden incluir disquetes, CD-ROM, unidades de disco, unidades flash del bus serie universal (USB), o cualquier otro medio de almacenamiento legible por ordenador, donde, cuando la lógica 1204 del código de programa de ordenador está cargada y ejecutada por un ordenador, este ordenador se convierte en un aparato para poner en práctica la invención. Los modos de realización incluyen una lógica 1204 de código de programa de ordenador, por ejemplo, ya esté almacenada en un medio de almacenamiento, cargada y ejecutada por un ordenador, o transmitida por un medio de transmisión, por ejemplo por hilos o cableado eléctrico, a través de fibra óptica, o a través de radiación electromagnética, donde, cuando la lógica 1204 de código de programa de ordenador está cargada y ejecutada por un ordenador, este ordenador se convierte en un aparato para poner en práctica la invención. Cuando se implementa en un microprocesador de propósito general, los segmentos de la lógica 1204 de código de programa de ordenador configuran el microprocesador para crear circuitos lógicos específicos.

Claims (5)

1. Un método para reducir la contienda de acceso a dispositivos reservados en una unidad de control, en comunicación con una pluralidad de sistemas operativos a través de uno o más canales, comprendiendo el método:
recibir (1102) un mensaje de órdenes en la unidad de control desde un primer sistema operativo de la pluralidad de sistemas operativos a través de uno o más canales, donde el mensaje de órdenes incluye una orden de operación de E/S para el dispositivo que está en comunicación con la unidad de control;
recibir (1104) un indicador de dispositivo ocupado desde el dispositivo, donde el indicador de dispositivo ocupado notifica a la unidad de control que el dispositivo está reservado por un segundo sistema operativo de la pluralidad de sistemas operativos;
poner en cola (1106) el mensaje de órdenes en la cola de dispositivos ocupados, como respuesta al indicador de dispositivo ocupado;
supervisar (1108) el dispositivo esperando un indicador de dispositivo terminado, donde el indicador de dispositivo terminado notifica a la unidad de control que el dispositivo está listo para recibir una nuevo orden de operación de E/S; y
dar servicio (1110) a la cola de dispositivos ocupados para efectuar la orden de operación de E/S, como respuesta al indicador de dispositivo terminado;
caracterizado porque:
donde el mensaje de órdenes es un mensaje de la unidad de información de órdenes de transporte, incluyendo un bloque de control de órdenes de transporte (TCCB) que mantiene la orden de operación de E/S como parte de un programa del canal de la palabra de control de transporte (TCW) y que comprende además:
iniciar un temporizador de dispositivo ocupado como respuesta a la puesta en cola del mensaje de órdenes en la cola de dispositivos ocupados;
leer un valor del temporizador de dispositivos ocupados como respuesta al servicio a la cola de dispositivos ocupados, para efectuar la orden de la operación de E/S; y
entregar el valor del temporizador de dispositivos ocupados en un mensaje de la unidad de información de respuesta de transporte al primer sistema operativo, a través de uno o más canales.
\vskip1.000000\baselineskip
2. El método de la reivindicación 1, que comprende además:
recibir mensajes de órdenes adicionales que incluyen órdenes adicionales de operaciones de E/S en la unidad de control, desde la pluralidad de sistemas operativos a través de uno o más canales;
poner en cola los mensajes de órdenes adicionales en la cola de dispositivos ocupados, como respuesta al indicador de dispositivo ocupado; y
dar servicio a la cola de dispositivos ocupados para realizar las órdenes adicionales de operaciones de E/S, donde el servicio de la cola de dispositivos ocupados se realiza como uno entre un servicio de primero en entrar primero en salir (FIFO), un servicio basado en prioridades y un servicio de todos contra todos.
\vskip1.000000\baselineskip
3. El método de la reivindicación 1, que comprende además:
entregar un mensaje de dispositivo ocupado como respuesta a uno o más entre:
la recepción de un mensaje de órdenes adicional en la unidad de control mientras la cola de dispositivos ocupados está llena;
la recepción de un mensaje adicional de órdenes en la unidad de control mientras el indicador de final de dispositivo no se ha recibido dentro del periodo de expiración del dispositivo ocupado;
la recepción del mensaje de órdenes adicional en la unidad de control, dentro de un periodo de recuperación de la expiración del sistema operativo; y
la determinación de que el indicador de final de dispositivo no se ha recibido dentro del periodo de expiración de la orden.
\vskip1.000000\baselineskip
4. Un sistema que comprende medios adaptados para llevar a cabo todos los pasos del método de acuerdo con cualquier reivindicación precedente del método.
5. Un programa de ordenador que comprende instrucciones para llevar a cabo todos los pasos del método de acuerdo con cualquier reivindicación precedente del método, cuando dicho programa de ordenador se ejecuta en un sistema de ordenador.
ES09711029T 2008-02-14 2009-02-09 Reducción de contiendas de acceso a dispositivos reservados. Active ES2349376T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/030,961 US7908403B2 (en) 2008-02-14 2008-02-14 Reserved device access contention reduction
US30961 2008-02-14

Publications (1)

Publication Number Publication Date
ES2349376T3 true ES2349376T3 (es) 2010-12-30

Family

ID=40671405

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09711029T Active ES2349376T3 (es) 2008-02-14 2009-02-09 Reducción de contiendas de acceso a dispositivos reservados.

Country Status (14)

Country Link
US (1) US7908403B2 (es)
EP (1) EP2174227B1 (es)
JP (1) JP5159900B2 (es)
KR (1) KR101231555B1 (es)
CN (1) CN101946244B (es)
AT (1) ATE482430T1 (es)
CY (1) CY1111221T1 (es)
DE (1) DE602009000227D1 (es)
DK (1) DK2174227T3 (es)
ES (1) ES2349376T3 (es)
PL (1) PL2174227T3 (es)
PT (1) PT2174227E (es)
SI (1) SI2174227T1 (es)
WO (1) WO2009101050A1 (es)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI237771B (en) * 2004-03-22 2005-08-11 Via Tech Inc Media player control system and control method used therein
US7502873B2 (en) 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
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
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
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
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
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
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US7899944B2 (en) 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in 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
US8001298B2 (en) 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
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
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
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
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
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
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
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
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
US8055807B2 (en) * 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7937504B2 (en) 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US7904606B2 (en) 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8725923B1 (en) * 2011-03-31 2014-05-13 Emc Corporation BMC-based communication system
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) * 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
KR101412706B1 (ko) * 2012-05-15 2014-06-30 엠디에스테크놀로지 주식회사 엠투엠 단말기의 응용프로그램 통신 제어 시스템 및 그 방법
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
TWI575384B (zh) * 2015-09-04 2017-03-21 慧榮科技股份有限公司 通道控制裝置
US10025727B2 (en) * 2016-02-05 2018-07-17 Honeywell International Inc. Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US10901654B2 (en) * 2018-10-30 2021-01-26 International Business Machines Corporation Buffer credit management in a data storage system
KR102491362B1 (ko) * 2021-02-01 2023-01-26 주식회사 드림에이스 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1264096A (es) 1970-06-27 1972-02-16
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
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
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 汎用チャネル制御方式
JPS63236152A (ja) * 1987-03-24 1988-10-03 Fujitsu Ltd I/oキユ−イング制御方法
US4926320A (en) 1987-04-07 1990-05-15 Nec Corporation Information processing system having microprogram-controlled type arithmetic processing unit
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
EP0424618A3 (en) 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
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
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
US5388219A (en) * 1992-03-02 1995-02-07 International Business Machines Corporation Efficient channel and control unit for host computer
US5526484A (en) 1992-12-10 1996-06-11 International Business Machines Corporation Method and system for pipelining the processing of channel command words
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
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
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
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
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
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
US6044444A (en) 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
TW384611B (en) 1997-02-14 2000-03-11 Canon Kk Data communication apparatus and method
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
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
JP3990833B2 (ja) 1998-12-11 2007-10-17 キヤノン株式会社 通信制御方法及び装置
US6772207B1 (en) 1999-01-28 2004-08-03 Brocade Communications Systems, Inc. System and method for managing fibre channel switching devices
US6484217B1 (en) 1999-04-20 2002-11-19 International Business Machines Corporation Managing shared devices in a data processing system
US6718139B1 (en) 1999-09-13 2004-04-06 Ciena Corporation Optical fiber ring communication system
US6651125B2 (en) 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
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
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 伝送方法、伝送システム、伝送装置及び伝送制御装置
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
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
US6834363B2 (en) 2001-03-22 2004-12-21 International Business Machines Corporation Method for prioritizing bus errors
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
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
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
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
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
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
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
US20040136241A1 (en) 2002-10-31 2004-07-15 Lockheed Martin Corporation Pipeline accelerator for improved computing architecture 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
US7000036B2 (en) * 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7085898B2 (en) 2003-05-12 2006-08-01 International Business Machines Corporation Coherency management for a “switchless” distributed shared memory computer system
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
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
US20050223291A1 (en) 2004-03-24 2005-10-06 Zimmer Vincent J Methods and apparatus to provide an execution mode transition
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
US7443798B2 (en) 2004-09-03 2008-10-28 Agere Systems Inc. Transmit adaptive equalization for communication system with one or more serial data channels
GB2419198A (en) 2004-10-14 2006-04-19 Hewlett Packard Development Co Identifying performance affecting causes in a data storage system
US7672323B2 (en) 2005-01-14 2010-03-02 Cisco Technology, Inc. Dynamic and intelligent buffer management for SAN extension
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 データ処理システム、データ処理方法、及びプログラム
US7718917B2 (en) 2005-07-08 2010-05-18 Gm Global Technology Operations, Inc. Hybrid laser and resistance welding system and method
CN100458757C (zh) * 2005-07-28 2009-02-04 大唐移动通信设备有限公司 嵌入式实时操作系统中多核处理器的核间通信方法及装置
US7386636B2 (en) * 2005-08-19 2008-06-10 International Business Machines Corporation System and method for communicating command parameters between a processor and a memory flow controller
JP2007058646A (ja) 2005-08-25 2007-03-08 Hitachi Ltd データ処理システム
US20070072543A1 (en) * 2005-09-06 2007-03-29 Nokia Corporation Enhanced signaling of pre-configured interaction message in service guide
JP4527640B2 (ja) 2005-09-15 2010-08-18 株式会社ソニー・コンピュータエンタテインメント データ読出装置
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
CN100454278C (zh) * 2006-01-19 2009-01-21 联想(北京)有限公司 计算机系统及其i/o端口访问控制方法
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
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
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
US7502873B2 (en) 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
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
US7797414B2 (en) 2007-01-31 2010-09-14 International Business Machines Corporation Establishing a logical path between servers in a coordinated timing network
US8670746B2 (en) 2007-04-13 2014-03-11 Hart Communication Foundation Enhancing security in a wireless network
US8020074B2 (en) 2007-08-24 2011-09-13 Datadirect Networks, Inc. Method for auto-correction of errors in a RAID memory system
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US7899944B2 (en) 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting 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
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
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
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
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
US8001298B2 (en) 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in 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
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
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
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
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
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
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
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
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

Also Published As

Publication number Publication date
JP5159900B2 (ja) 2013-03-13
SI2174227T1 (sl) 2010-12-31
WO2009101050A1 (en) 2009-08-20
US20090210583A1 (en) 2009-08-20
ATE482430T1 (de) 2010-10-15
DK2174227T3 (da) 2010-11-08
CY1111221T1 (el) 2015-06-11
PL2174227T3 (pl) 2011-02-28
EP2174227B1 (en) 2010-09-22
KR101231555B1 (ko) 2013-02-08
EP2174227A1 (en) 2010-04-14
JP2011512585A (ja) 2011-04-21
CN101946244A (zh) 2011-01-12
PT2174227E (pt) 2010-10-22
US7908403B2 (en) 2011-03-15
DE602009000227D1 (de) 2010-11-04
KR20100107484A (ko) 2010-10-05
CN101946244B (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
ES2349376T3 (es) Reducción de contiendas de acceso a dispositivos reservados.
JP5159901B2 (ja) 制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作に関するi/o処理を容易にするための方法
JP4917174B2 (ja) 制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作用の入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法
EP3462326B1 (en) Nvme device, and methods for reading and writing nvme data
US7937507B2 (en) Extended measurement word determination at a channel subsystem of an I/O processing system
KR101243005B1 (ko) I/o 처리 시스템의 제어 유닛에서 가변 길이 디바이스 명령어 워드의 처리
KR101190998B1 (ko) 입력/출력 동작을 모니터링하기 위한 데이터 처리
ES2358314T3 (es) Facilitación de direccionamiento de datos indirectos en un sistema de tratamiento de entrada/salida, en donde la lista de direcciones de datos indirectos es no contigua.
EP2849076B1 (en) Dma transmission method and system
WO2016127552A1 (zh) 一种直接内存存取dma控制器及数据传输的方法
EP3470971B1 (en) Method, apparatus, and system for accessing memory device
US7689744B1 (en) Methods and structure for a SAS/SATA converter
JP2011529589A (ja) チェーン・リンク分岐を有するトランスポート制御チャネル・プログラムを処理するための方法、コンピュータ・プログラム及び装置
EP3077914B1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
US8868806B2 (en) Methods and structure for hardware management of serial advanced technology attachment (SATA) DMA Non-Zero Offsets in a serial attached SCSI (SAS) expander
CN110515535A (zh) 硬盘读写控制方法、装置、电子设备及存储介质
CN117218773A (zh) 一种硬盘柜控制方法、装置、介质
JP2021082096A (ja) 情報処理装置及び情報処理プログラム
CN116149453A (zh) 控制器、电子设备和数据传输系统
JPH065521B2 (ja) メツセージ・バツフア・システム
JPH04364556A (ja) データ転送方法