PT2593878E - Facilitar as operações de entrada/saída em modo de transporte entre um subsistema de canal e dispositivos de entrada/saída - Google Patents

Facilitar as operações de entrada/saída em modo de transporte entre um subsistema de canal e dispositivos de entrada/saída Download PDF

Info

Publication number
PT2593878E
PT2593878E PT127163228T PT12716322T PT2593878E PT 2593878 E PT2593878 E PT 2593878E PT 127163228 T PT127163228 T PT 127163228T PT 12716322 T PT12716322 T PT 12716322T PT 2593878 E PT2593878 E PT 2593878E
Authority
PT
Portugal
Prior art keywords
control unit
data
transport
dcw
tccb
Prior art date
Application number
PT127163228T
Other languages
English (en)
Inventor
Harry Yudenfriend
Roger Hathorn
John Flanagan
Louis William Ricci
Scott Carlson
Matthew Joseph Kalos
Dale Riedy
Daniel Francis Casper
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of PT2593878E publication Critical patent/PT2593878E/pt

Links

Classifications

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

Landscapes

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

Description

ΡΕ2593878 1
DESCRIÇÃO "FACILITAR AS OPERAÇÕES DE ENTRADA/SAÍDA EM MODO DE TRANSPORTE ENTRE UM SUBSISTEMA DE CANAL E DISPOSITIVOS DE ENTRADA/SAÍDA"
ANTECEDENTES A presente divulgação relaciona-se na generalidade com o processamento de entrada/saida (1/0), e em particular, com o proporcionar de caracteristicas para facilitar as operações de 1/0 em modo de transporte.
As operações de entrada/saida (I/O) são utilizadas para transferir dados entre a memória e dispositivos de 1/0 de um sistema de processamento de 1/0. Especificamente, são escritos dados da memória para um ou mais dispositivos de 1/0, e são lidos dados de um ou mais dispositivos para a memória pela execução de operações de 1/0.
Estão descritos exemplos de sistemas de processamento de 1/0 convencionais nas Patentes US2009/0210884 e US7743172.
Para facilitar o processamento de operações de I/0, é utilizado um subsistema de 1/0 do sistema de processamento de 1/0. 0 subsistema de 1/0 está acoplado à 2 ΡΕ2593878 memória principal e aos dispositivos de 1/0 do sistema de processamento de 1/0 e dirige o fluxo de informação entre a memória e os dispositivos de 1/0. Um exemplo de um subsistema de 1/0 é um subsistema de canal. 0 subsistema de canal utiliza percursos de canal como meio de comunicações. Cada percurso de canal inclui um canal acoplado a uma unidade de controlo, estando a unidade de controlo acoplada adicionalmente a um ou mais dispositivos de 1/0. 0 subsistema de canal e o dispositivo de 1/0 podem operar num modo de transporte que suporta a transferência de um ou mais blocos de controlo de comandos para transferir dados entre os dispositivos de 1/0 e a memória. Uma palavra de controlo de transporte (TCW) especifica um ou mais comandos de 1/0 a serem executados. Para os comandos iniciarem certas operações de 1/0, a TCW designa áreas de memória associadas à operação, a acção a ser tomada sempre que seja completada uma transferência para ou a partir da área, e outras opções.
Tais sistemas de operação de 1/0 estão tipicamente relacionados com o processamento de operações individuais sejam operações de entrada de dados (por exemplo, operações de leitura) ou operações de saída de dados (por exemplo, operações de escrita). Estes sistemas tipicamente não suportam operações bidireccionais, e particularmente não incluem a capacidade de gerar ou transferir indicações de suporte bidireccional. ΡΕ2593878 3
SUMÁRIO
Uma forma de realização inclui um produto que é um programa de computador para realizar uma operação de entrada/saída (1/0) iniciada por uma instrução de operação de I /0 num sistema de computador hospedeiro configurado para comunicação com uma unidade de controlo. 0 produto que é um programa de computador inclui um meio de armazenamento tangível que pode ser lido por um circuito de processamento e instruções de armazenamento para execução pelo circuito de processamento para realizar um método incluindo: enviar, por um subsistema de canal no sistema de computador hospedeiro, uma mensagem de pedido de início de processo (PRLI) para a unidade de controlo para inicializar uma ligação entre o subsistema de canal e a unidade de controlo, incluindo a mensagem de pedido PRLI um campo tendo um valor que indica se o subsistema de canal suporta a transferência bidireccional de dados; receber uma mensagem de resposta à PRLI proveniente da unidade de controlo, incluindo a mensagem de resposta à PRLI um campo tendo um valor que indica se a unidade de controlo suporta a transferência bidireccional de dados; proporcionando uma indicação para um sistema operativo hospedeiro que é suportada a transferência bidireccional de dados; e realizar um método reagindo à execução da instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro. 0 método inclui: recolher uma pluralidade de comandos associados à instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro, pelo menos um 4 ΡΕ2593878 da pluralidade de comandos especificando uma transferência de dados de entrada e pelo menos um da pluralidade de comandos especificando uma transferência de dados de saída; transferir a pluralidade de comandos para a unidade de controlo; enviar pelo menos uma mensagem de dados de saída para a unidade de controlo incluindo dados de saída para serem transferidos para a unidade de controlo, especificando a mensagem de dados de saída associada ao pelo menos um da pluralidade de comandos uma transferência de dados de saída; e receber pelo menos uma mensagem de entrada proveniente da unidade de controlo incluindo dados de entrada para serem armazenados no armazenamento principal do sistema de computador hospedeiro, especificando a mensagem de dados de entrada associada ao pelo menos um de uma pluralidade de comandos uma transferência de dados de entrada.
Outra forma de realização inclui um aparelho para realizar uma operação de entrada/saída (1/0) iniciada por uma instrução de operação de 1/0 num sistema de computador hospedeiro configurado para comunicação com uma unidade de controlo. 0 sistema de computador hospedeiro está configurado para realizar: enviar, por um subsistema de canal no sistema de computador hospedeiro, uma mensagem de pedido de início de processo (PRLI) para a unidade de controlo para inicializar uma ligação entre o subsistema de canal e a unidade de controlo, incluindo a mensagem de pedido PRLI um campo tendo um valor que indica se o subsistema de canal suporta a transferência de dados 5 ΡΕ2593878 bidireccional; receber uma mensagem de resposta ao PRLI proveniente da unidade de controlo, incluindo a mensagem de resposta ao PRLI um campo tendo um valor que indica se a unidade de controlo suporta a transferência de dados bidireccional; proporcionando uma indicação para um sistema operativo hospedeiro que é suportada a transferência de dados bidireccional; e realizar um método reagindo à execução da instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro, incluindo: recolher uma pluralidade de comandos associados à instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro, pelo menos um da pluralidade de comandos especificando uma transferência de dados de entrada e pelo menos um da pluralidade de comandos especificando uma transferência de dados de saída; transferir a pluralidade de comandos para a unidade de controlo; enviar pelo menos uma mensagem de dados de saída para a unidade de controlo incluindo dados de saída para serem transferidos para a unidade de controlo, especificando a mensagem de dados de saída associada ao pelo menos um da pluralidade de comandos uma transferência de dados de saída; e receber pelo menos uma mensagem de entrada proveniente da unidade de controlo incluindo dados de entrada para serem armazenados no armazenamento principal do sistema de computador hospedeiro, especificando a mensagem de dados de entrada associada ao pelo menos um de uma pluralidade de comandos uma transferência de dados de entrada.
Outra forma de realização inclui um método de 6 ΡΕ2593878 realização de uma operação de entrada/saída (1/0) iniciada por uma instrução de operação de 1/0 num sistema de computador hospedeiro configurado para comunicação com uma unidade de controlo. 0 método inclui: enviar, por um subsistema de canal no sistema de computador hospedeiro, uma mensagem de pedido de inicio de processo (PRLI) para a unidade de controlo para inicializar uma ligação entre o subsistema de canal e a unidade de controlo, incluindo a mensagem de pedido PRLI um campo tendo um valor que indica se o subsistema de canal suporta a transferência de dados bidireccional; receber uma mensagem de resposta ao PRLI proveniente da unidade de controlo, incluindo a mensagem de resposta ao PRLI um campo tendo um valor que indica se a unidade de controlo suporta a transferência de dados bidireccional; proporcionando uma indicação para um sistema operativo hospedeiro que é suportada a transferência de dados bidireccional; e realizar um método reagindo à execução da instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro, incluindo: recolher uma pluralidade de comandos associados à instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro, pelo menos um da pluralidade de comandos especificando uma transferência de dados de entrada e pelo menos um da pluralidade de comandos especificando uma transferência de dados de saída; transferir a pluralidade de comandos para a unidade de controlo; enviar pelo menos uma mensagem de dados de saída para a unidade de controlo incluindo dados de saída para serem transferidos para a unidade de controlo, especificando a mensagem de dados de 7 ΡΕ2593878 saída associada ao pelo menos um da pluralidade de comandos uma transferência de dados de saída; e receber pelo menos uma mensagem de entrada proveniente da unidade de controlo incluindo dados de entrada para serem armazenados no armazenamento principal do sistema de computador hospedeiro, especificando a mensagem de dados de entrada associada ao pelo menos um de uma pluralidade de comandos uma transferência de dados de entrada. São realizadas características e vantagens adicionais através das técnicas da presente forma de realização. Outras formas de realização e aspectos estão aqui descritos e são considerados como uma parte da invenção reivindicada. Para uma melhor compreensão da invenção com as vantagens e características, faça-se referência à descrição e aos desenhos.
BREVE DESCRIÇÃO DOS DESENHOS 0 assunto que é visto como a invenção é particularmente posto em evidência e reivindicado claramente nas reivindicações no final da especificação. 0 precedente e outros objectos, características, e vantagens da invenção são evidentes a partir da seguinte descrição detalhada tomada em conjunção com os desenhos acompanhantes nos quais: A Figura 1 descreve uma forma de realizaçao de um sistema de processamento de 1/0 incorporando e utilizando ΡΕ2593878 um ou mais aspectos da presente invenção; A Figura 2 descreve uma forma de realização de uma palavra de controlo de transporte (TCW); A Figura 3 descreve uma forma de realização de um bloco de controlo de comando de transporte (TCCB); A Figura 4 descreve uma forma de realização de uma unidade de informação de comando de transporte (IU) que inclui o TCCB da Figura 3; A Figura 5 descreve uma forma de realização de um cabeçalho de comando de transporte do comando de transporte IU da Figura 4; A Figura 6 descreve uma forma de realização de um cabeçalho de uma área de comando de transporte (TCAH) do TCCB da Figura 4; A Figura 7 descreve uma forma de realização de uma área de comando de transporte (TCA) do TCCB da Figura 4; A Figura 8 é um quadro descrevendo determinações exemplificadoras de vários valores de contagens de dados para operações de transferência de dados unidireccionais; A Figura 9 é um quadro descrevendo determinações 9 ΡΕ2593878 exemplificadoras de vários valores de contagens de dados para operações de transferência de dados bidireccionais; A Figura 10 descreve uma forma de realização de uma palavra de comando de dispositivo (DCW); A Figura 11 descreve uma forma de realização de um campo de sinalizadores de controlo da DCW da Figura 10; A Figura 12 descreve uma forma de realização de uma extensão de área de comando de transporte (TCAX); A Figura descreve uma forma de realização de um bloco de desfasamento CBC; A Figura 14 é um fluxograma ilustrando uma forma de realização de um método para realizar uma operação de I/O no modo de transporte; A Figura descreve formas de realização de IUs de dados de transporte utilizados para transportar dados de entrada e de saída entre um canal e uma unidade de controlo e/ou dispositivo de I/O; A Figura 16 descreve uma forma de realização de um IU de resposta a transporte; A Figura 17 descreve uma forma de realização de uma área de estado do IU de resposta ao transporte da 10 ΡΕ2593878
Figura 16; A Figura 18 descreve componentes de um pedido de inicio de processo (PRLI) exemplificativo; A Figura 19 descreve componentes de uma resposta a PRLI exemplificadora; A Figura 20 descreve um bloco de descrição de percurso de canal exemplificativo proporcionado a um Sistema Operativo de um sistema de computador hospedeiro proveniente de um subsistema de canal; e A Figura 21 descreve dados de descrição de canal exemplificadores do bloco de descrição da Figura 20, incluindo dados de aptidão do subsistema de canal.
DESCRIÇÃO DETALHADA
As formas de realização da presente invenção facilitam o processamento de entrada/saida (I/O) num sistema de computador. Numa forma de realização, são proporcionados comandos de transporte para gerir a operação de I/O e a transferência de dados por via de um percurso de canal. Os comandos de transporte transferem meta-informação de comandos (TCMI) que é utilizada para gerir a verificação da transferência de dados e a transferência de DCWs adicionais. O TCMI é definido em uma ou mais unidades de informação de transporte de dados (IUs) para definir, 11 ΡΕ2593878 especificar e verificar a informação a respeito de dados a serem transferidos numa operação de 1/0. Os comandos de transporte podem incluir um comando de interrogação, um comando de Bloco de Desfasamento-transferência-CBC (TCOB), e um comando de Extensão de TCA de transferência (TTE).
Numa forma de realização, o processamento da 1/0 é facilitado permitindo a um computador hospedeiro aumentar o número de comandos que podem ser enviados para um dispositivo para uma operação de 1/0. Por exemplo, pode ser enviado um TCMI na forma de uma Extensão de Área de Comando de Transporte (TCAX) a partir do hospedeiro para um dispositivo para aumentar o número de comandos que podem ser associados a uma operação de 1/0. Numa forma de realização, a TCAX é enviado por via de uma palavra de comando de dispositivo (DCW), referida como uma Extensão TCA de Transferência (TTE), que inclui comandos a serem executados adicionalmente a comandos enviados numa Área de Comando de Transporte (TCA). 0 processamento de 1/0 pode também ser facilitado proporcionando meios pelo quais um dispositivo de 1/0 pode continuar uma operação de 1/0 quando é encontrado um registo de comprimento incorrecto. Por exemplo, pode ser instalada uma função de comprimento incorrecto de DCW no sistema hospedeiro e numa unidade de controlo ou dispositivo. A função proporciona a verificação do Comprimento Incorrecto (IL) que pode ser executado por uma unidade de controlo. Pode ser adicionado um campo de 12 ΡΕ2593878 supressão de comprimento incorrecto ou de Indicação de Supressão de Comprimento (SLI) a uma DCW enviada para um dispositivo. Quando este bit é activado, é permitido que continue o encadeamento de DCW quando é detectada uma condição de comprimento incorrecto pela unidade de controlo . 0 processamento de 1/0 pode também ser facilitado proporcionando meios para enviar tanto comandos de leitura como de escrita para um dispositivo numa única operação de 1/0. Os programas de canal TCW na arte precedente especificam ou apenas comandos de escrita ou apenas comandos de leitura. Pode ser especificada uma operação bidireccional definindo um ou mais sinalizadores num cabeçalho de comando de transporte (TCH) de um comando IU, por exemplo, definindo tanto o sinalizador de leitura como o de escrita como um e proporcionando valores de contagens de dados tanto de leitura como de escrita. Adicionalmente, pode ser activado um sinalizador numa mensagem de inicio de processo ou de iniciação tal como um pedido de Inicio de Processo (PRLI) para indicar que o subsistema de canal suporta a transferência bidireccional de dados. Uma mensagem de resposta tal como uma mensagem de aceitação de PRLI pode incluir um sinalizador que pode ser activado para indicar se o dispositivo suporta a transferência de dados bidireccional. Se a transferência de dados bidireccional é suportada tanto pelo hospedeiro como pela unidade de controlo, o dispositivo não reportará um erro se tanto o sinalizador de leitura como o de escrita estão activados no 13 ΡΕ2593878 IU de comando. Esta capacidade é uma melhoria em relação aos protocolos de Canal de Fibra da arte precedente, que não suportam operações de transferência de dados bidireccionais. Como aqui descrito, “transferências de dados bidireccionais" são transferências de dados tanto de entrada como de saída que são executadas numa única operação TCW de 1/0, por exemplo, enviar e executar comandos tanto de leitura como de escrita dentro de uma única operação TCW de 1/0. A Figura 1 ilustra uma forma de realização exemplificadora de um sistema de processamento de 1/0 100 que inclui um sistema de computador hospedeiro 102 que inclui um sistema de armazenamento de dados e/ou de processamento tal como um computador central de processamento zSeries® da International Business Machines Corporation (IBM®) . A IBM é uma marca comercial registada da International Business Machines Corporation, Armonk, Nova Iorque, USA. Outros nomes aqui utilizados podem ser marcas comerciais registadas, marcas comerciais ou nomes de produtos da International Business Machines Corporation ou de outras companhias. O sistema de computador hospedeiro 102 inclui vários elementos de processamento, armazenamento e de comunicações. Numa forma de realização, o sistema de computador hospedeiro 102 inclui uma ou mais unidades de processamento centrais (CPUs) 104, componentes de memória tais como um armazenamento central ou memória 106, um armazenamento ou memória expandida 108, um ou mais sistemas operativos (OSs) 110 que são executados por uma ou mais das 14 ΡΕ2593878 CPUs 104. Por exemplo, uma CPU 104 pode executar um sistema operativo Linux® 110 e/ou um sistema operativo z/OS® 110 como diferentes processos de máquina virtual. A CPU 104 é o centro de controlo do sistema de processamento de I/O 100. Ele contém recursos de sequenciação e de processamento para a execução de instruções, acção de interrupção, funções de temporização, carregamento de programa inicial, e outras funções relacionadas com a máquina. A CPU 104 está acoplada à memória principal 106 e/ou à memória expandida 108 por via de uma ligação 113, tal como um barramento bidireccional ou unidireccional. O sistema de computador hospedeiro 102 também inclui um subsistema de canal 114 que proporciona uma interface de comunicações entre o sistema hospedeiro 101 e vários dispositivos de I/O 116, que podem ser controlados por uma ou mais unidades de controlo 118. Os dispositivos de I/O incluem equipamento tal como impressoras, unidades de fita magnética, dispositivos de armazenamento de acesso directo, ecrãs, teclados, controladores de comunicações, dispositivos de teleprocessamento, e equipamento baseado em sensores. Aqui na descrição, os termos "unidade de controlo" e "dispositivo" podem ser utilizados intermutavelmente, ou uma unidade de controlo pode ser considerada como incluindo um ou mais dispositivos. O subsistema de canal 114 dirige o fluxo de informação entre os dispositivos de I/O 116 e o sistema de computador hospedeiro 102. Ele alivia as CPUs 104 da tarefa de comunicar directamente com os dispositivos de I/O 116 e 15 ΡΕ2593878 permite que o processamento de dados prossiga concorrentemente com o processamento de 1/0. 0 subsistema de canal 114 está acoplado às CPUs 104, à memória principal 106 e/ou à memória expandida 108 por via de uma ligação 120, tal como um barramento.
Numa forma de realização, o subsistema de canal 114 está ligado a cada dispositivo de I/O 116 por via de um respectivo “percurso de canal" 122 que liga o subsistema de canal 114 a cada unidade de controlo 118 por via de uma ligação 124 tal como uma ligação série ou paralelo. As unidades de controlo 118 pode estar ligadas ao subsistema de canal 114 por via de mais do que um percurso de canal 122, e um dispositivo de I/O 116 pode estar ligado a mais do que uma unidade de controlo 118 e/ou dispositivo de I/O 116. Ao todo, um dispositivo de I/O individual 116 pode estar acessível a múltiplos percursos de canal. Um percurso de canal pode utilizar vários tipos de ligações, tais como uma interface paralelo, uma interface de I/O série e uma interface de I/O FICON. Por exemplo, um percurso de canal série pode incluir uma ou mais fibras ópticas ligadas a uma unidade de controlo 118 por via, por exemplo, de um comutador dinâmico 126 num tecido de canal de Fibra, e uma interface paralelo pode incluir um número de condutores eléctricos ou de fibra óptica.
Numa forma de realização, o subsistema de canal 114 inclui um ou mais canais individuais 128 que estão cada um ligados a uma ou mais unidades de controlo 118 e/ou 16 ΡΕ2593878 dispositivos de 1/0 116 por via de um ou mais percursos de canal 122. Cada canal 128 inclui electrónica de processamento tal como um microprocessador de canal local 130 e uma memória de canal local 132 que estão ligados a e acessíveis ao microprocessador de canal local 130. A memória de canal local 132 pode incluir informação tal como uma designação de programa de canal, um identificador de percurso de canal, um número de dispositivo, um contador de dispositivo, indicações de estado, bem como informação sobre a disponibilidade do percurso e de funções pendentes ou a serem realizadas.
Também localizados em cada canal 128 estão um ou mais subcanais. Cada subcanal é uma estrutura de dados localizada no interior de uma memória de canal 132 que proporciona informação concernente a um dispositivo de I/O associado 116 e à sua ligação ao subsistema de canal 114. O subcanal também, proporciona informação concernente a operações de 1/0 e a outras funções envolvendo o dispositivo de I/O associado 116. 0 subcanal é o meio pelo qual o subsistema de canal 114 proporciona informação acerca dos dispositivos de 1/0 associados 116 às CPUs 104. Numa forma de realização, o número de subcanais proporcionados pelo subsistema de canais é independente do número de percursos de canal 122 para os dispositivos de I/O associados. Por exemplo, um dispositivo 116 acessível através de percursos de canal alternativos 122 ainda é representado por um único subcanal. 17 ΡΕ2593878
Cada unidade de controlo 118 proporciona lógica para operar e controlar um ou mais dispositivos de 1/0 116 e adapta, através da utilização de funcionalidades comuns, as características de cada dispositivo de 1/0 116 à interface de ligação proporcionada por um canal 128. As funcionalidades comuns proporcionadas para a execução de operações de 1/0, indicações concernentes ao estado dos dispositivos de 1/0 116 e da unidade de controlo 118, o controlo da temporização das transferências de dados através de um percurso de canal 122 e certos níveis de controlo do dispositivo de 1/0. Uma unidade de controlo 118 pode estar alojada separadamente, ou pode estar fisicamente e logicamente integrada num dispositivo de 1/0, no subsistema de canal, ou numa CPU.
Um ou mais dos componentes acima do sistema de processamento de 1/0 100 estão descritos adicionalmente em "IBM® z/Architecture Principies of Operation", Publicação N.° SA22-7832-08, 9a Edição, Agosto de 2010.
As operações de I/O estão descritas como qualquer operação que envolva a transferência de dados entre o sistema de computador hospedeiro 102 e dispositivos de I/O 116. Como aqui descrito, uma operação de 1/0 inclui as comunicações entre o subsistema de canal 114 e um dispositivo 116 (por via, numa forma de realização, de uma unidade de controlo 118) nas quais um único comando (por exemplo, uma palavra de comando de canal ou CCW), uma única mensagem de comando incluindo múltiplos comandos (por 18 ΡΕ2593878 exemplo, uma unidade de informação de comando de transporte ou bloco de controlo de comando de transporte (TCCB)), ou múltiplos comandos encadeados (por exemplo, múltiplas CCWs) são enviados a partir do subsistema de canal 114 para um dispositivo. A operação de 1/0 pode também incluir uma ou mais mensagens de resposta geradas pelo dispositivo 116 ou por uma unidade de controlo associada 118 em resposta à recepção e/ou execução do comando ou comandos encadeados.
Numa forma de realização, as operações de 1/0 são iniciadas com um dispositivo 116 pela execução de instruções de 1/0 geradas por um OS 110 que designa o subcanal associado ao dispositivo 116. Tais instruções são executadas no sistema hospedeiro por uma CPU 104 pelo envio de parâmetros para um canal 128 ou subcanal para pedir que o subsistema de canal 114 realize várias funções numa operação de I/O.
Por exemplo, a CPU 104 executa uma instrução "START SUBCHANNEL" passando parâmetros para o subcanal alvo requerendo que o subsistema de canal 114 realize uma função de inicio com o dispositivo de I/O 116 associado ao subcanal. O subsistema de canal 114 executa a função de inicio utilizando informação no subcanal, incluindo a informação passada durante a execução da instrução START SUBCHANNEL, para encontrar um percurso de canal acessível ao dispositivo 116, e para executar a operação de I/O assim que tenha sido seleccionado um percurso de canal. 19 ΡΕ2593878
Quando uma instrução tal como a instrução START SUBCHANNEL é executada pela CPU 104, um canal 128 começa a executar a operação de I/O. Numa forma de realização, o subsistema de canal 114 opera sob um protocolo de Elevado Desempenho FICON (HPF) para comunicações entre o subsistema de canal 114 e os dispositivos 116 e/ou as unidades de controlo 118. Os FICON e HPF estão descritos adicionalmente em "Fibre Channel: Single-Byte Command Code Sets Mapping Protocol - 4 (FC-SB-4)", Til Project 2122-D, Revision 3.00, 22 de Setembro de 2009.
Numa forma de realização, a execução da instrução "START SUBCHANNEL" passa o conteúdo de um bloco de pedido de operação (ORB) para o subsistema de canal 114. O ORB especifica um programa de canal que inclui um endereço de uma ou mais palavras de comando (por exemplo, uma palavra de comando de canal ou uma palavra de comando de transporte descrita adicionalmente abaixo). Existem dois modos de operação de subcanal. Numa forma de realização, o sistema de computador hospedeiro 102 opera num modo de comando e especifica palavra(s) de comando na forma de uma palavra de comando de canal (CCW). Noutra forma de realização, o sistema hospedeiro opera num modo de transporte e especifica palavra(s) de comando na forma de uma palavra de comando de transporte (TCW).
Um subcanal pode entrar em modo de transporte quando uma função FCX (Fibre Channel Extensions) está instalada e a função de inicio está activada no subcanal 20 ΡΕ2593878 como resultado da execução de uma instrução START SUBCHANNEL que especifica uma TCW de programa de canal. O subcanal permanece em modo de transporte até que a função de inicio seja reiniciada no subcanal. Em todos os outros instantes, o subcanal está em modo de comando.
No modo de comando, o canal executa uma CCW de programa de canal que inclui uma única palavra de comando de canal ou uma sequência de palavras de comando de canal executadas sequencialmente que controlam uma sequência específica de operações de canal. Uma unidade de controlo executa uma CCW de operação de I/O pela descodificação, aceitação, e execução de CCW de comando por um dispositivo de 1/0. Uma ou mais CCWs organizadas para a execução sequencial formam uma CCW de programa de canal e são executadas como uma ou mais operações de I/O, respectivamente. A função de extensões de canal de fibra (FCX) é uma função opcional que proporciona a formação de um programa de canal em modo de transporte que é composto por uma palavra de controlo de transporte (TCW) que designa um bloco de controlo de comando de transporte (TCCB) e um bloco de estado de transporte (TSB). O TCCB inclui uma área de comando de transporte (TCA) que contém uma lista de um ou mais (por exemplo, até 30) comandos de I/O que estão na forma de palavras de comando de dispositivo (DCWs). Uma TCW e o seu TCCB podem especificar tanto uma operação de leitura como de escrita. Numa forma de realização, uma 21 ΡΕ2593878 função de transferência de dados bidireccional FCX pode ser instalada num sistema que suporte operações em modo de transporte, que permita ao sistema de computador hospedeiro 102 especificar a transferência de dados tanto de entrada como de saída numa única operação de I/O em modo de transporte se o dispositivo ligado 116 e a unidade de controlo 118 suportam a transferência de dados bidireccional. Quando uma unidade de controlo 118 reconhece as transferências de dados bidireccionais, uma TCW e o seu TCCB podem, dependendo do dispositivo, especificar tanto transferências de dados de leitura como de escrita.
No modo de transporte, uma única palavra de comando de transporte (TCW) especifica uma localização na memória de um TCCB (bem como uma localização na memória 106 ou 108 de uma ou mais áreas de dados) que é enviada numa única mensagem em vez de CCWs individuais separadas no modo de comando. Uma unidade de controlo 118 executa uma operação de I/O em modo de transporte pela descodificação, aceitação, e execução de um TCCB e das DCWs individuais nele incluídas. Se o ORB especifica uma TCW de programa de canal, o subsistema de canal 114 utiliza informação na TCW designada para transferir o TCCB para uma unidade de controlo 118. Os conteúdos do TCCB são ignorados pelo subsistema de canal 114 após o TCCB ser transferido para a unidade de controlo 118 e apenas têm significado para a unidade de controlo 118 e para o dispositivo de I/O associado 116. 22 ΡΕ2593878
Numa forma de realização exemplificativa, a unidade de controlo 118 gera uma mensagem de resposta em resposta à execução do programa de canal. A unidade de controlo 118 pode também gerar uma mensagem de resposta sem executar o programa de canal sob um número limitado de cenários de comunicações, por exemplo, para informar o subsistema de canal 114 que o programa de canal não será executado. A unidade de controlo 118 pode incluir um número de elementos para suportar a comunicação entre o adaptador de comunicações de 1/0 e os dispositivos de 1/0, bem como em suporte da execução do programa de canal. Por exemplo, a unidade de controlo 118 pode incluir lógica de controlo para analisar sintaticamente e processar mensagens, para além de uma ou mais filas de espera, temporizadores, e registos para facilitar a comunicação e a monitorização do estado. A Figura 2 ilustra uma forma de realização de uma palavra de controlo de transporte (TCW) 140, que está armazenada no sistema hospedeiro (por exemplo, memória principal 106) e especifica pelo menos um bloco de controlo que é para ser transferido para uma unidade de controlo 118 a partir de um canal 128. Numa forma de realização, o bloco de controlo é um bloco de controlo de comando de transporte (TCCB) cujo conteúdo é para ser transportado para a unidade de controlo 118 e para o dispositivo de I/O 116 para processamento. Quando a TCW 140 especifica um TCCB, o TCCB inclui uma TCA que especifica uma ou mais palavras de comando de dispositivo (DCWs) e opções associadas. Para uma 23 ΡΕ2593878 DCW que especifica um comando que inicia a transferência de dados (com a excepção de dados de controlo contidos no TCCB), a TCW 140 designa uma ou mais áreas de armazenamento onde os dados estão localizados.
Numa forma de realização, a TCA inclui um comando de Extensão de TCA de Transferência (TTE) que é proporcionado para DCWs adicionais de transferência e/ou dados de controlo em adição aos que podem ser acomodados no TCCB. O TTE transfere uma extensão de TCA (TCAX) para uma unidade de controlo (que inclui pelo menos uma DCW) e é considerada uma extensão lógica da TCA à qual está associada, por, por exemplo, encadeando a última DCW do TCCB com a primeira DCW do TTE.
Em referência novamente à Figura 2, e à forma de realização da TCW 140 é um bloco de controlo de 64 bytes que é designado num limite de 64 bytes. A TCW inclui vários campos descritos abaixo.
Por exemplo, um número de campos de sinalizadores 142 indicam se está a ser utilizado o endereçamento de dados directo ou indirecto para localizar dados de entrada, dados de saída ou o TCCB. Um campo de endereçamento indirecto de dados de transporte de Saída (TIDA) indica se os dados de saída estão endereçados directa ou indirectamente. Por exemplo, quando a palavra 0, bit 7 da TCW 140 é zero e são especificados dados de saída, um campo de endereço de dados de saída 144 designa uma localização 24 ΡΕ2593878 de dados de saída no armazenamento absoluto. Quando o bit 7 é um, o campo de endereço de dados de saída 144 designa um endereço absoluto de uma palavra TIDA (TIDAW) da primeira TIDAW numa lista de TIDAWS (uma TIDAL) que designa a localização ou localizações do armazenamento de saída, respectivamente. Um campo TIDA de Entrada indica se os dados de entrada estão endereçados directa ou indirectamente. Por exemplo, quando a palavra 0, bit 5 é zero e são especificados dados de entrada, um campo de endereços de dados de entrada 146 designa o endereço absoluto da localização do armazenamento de entrada (isto é, onde os dados de entrada são para serem armazenados) . Quando o bit 5 é um, o campo de endereço de dados de entrada 146 designa o endereço absoluto de uma TIDAW ou a primeira TIDAW numa TIDA que designa a localização ou localizações do armazenamento de entrada. Um campo de bloco de controlo de comando de Transporte TIDA (TCCB-TIDA) indica se o TCCB está endereçado directa ou indirectamente. Por exemplo, quando a palavra 0, bit 6 é zero, um campo de endereço TCCB 148 designa o endereço absoluto do TCCB para a TCW, e quando o bit 6 é um, o campo de endereço TCCB 148 designa o endereço absoluto de uma TIDAW ou TIDA que designa a localização ou localizações do TCCB. A TCW 140 também inclui um campo de Comprimento de Bloco de Controlo de Comando de Transporte (TCCBL) 150 que especifica o comprimento em bytes do TCCB. Por exemplo, o campo TCCBL inclui um inteiro sem sinal cujo valor (por exemplo, quando adicionado a 20 para transferências de 25 ΡΕ2593878 dados unidireccionais ou quando adicionado a 24 para transferências de dados bidireccionais) especifica o comprimento do TCCB em bytes.
Um campo de Operações de Leitura (R) 152 é não zero (por exemplo, o bit 14 da palavra 1 é um) quando indica o número de bytes a serem transferidos para uma memória principal 106. Um campo de Operações de Escrita (W) 154 é não zero (por exemplo, o bit 15 da palavra 1 é um) quando indica o número de bytes a serem transferidos a partir da memória principal. Se o campo R 152 e o campo W 154 são ambos um, é reconhecida uma condição de verificação do programa, a menos que o dispositivo alvo 116 e a unidade de controlo 118 suportem a transferência de dados bidireccional. Se o bit W é um e a TCW é uma TCW de interrogação, é reconhecida uma condição de verificação do programa.
Um campo de Endereço de Dados de Saída 144 indica a localização no armazenamento de quaisquer dados de saída a serem enviados para um dispositivo. Por exemplo, quando o bit 15 da palavra 1 (o bit do campo W 154) é um e o bit 7 do campo de sinalizadores 142 (o sinalizador de TIDA de saída) é zero, as palavras 2-3 designam a localização de saída de 64 bits no armazenamento absoluto. Quando o bit W é um e o sinalizador de TIDA de saída é um, as palavras 2-3 designam a localização de 64 bits no armazenamento absoluto de uma TIDAW ou uma lista de TIDAWs que designam a localização ou localizações dos dados de saída. O campo de 26 ΡΕ2593878
Endereço de Dados de Entrada 146 indica a localização na qual quaisquer dados de entrada são para serem armazenados quando recebidos a partir de um dispositivo. Por exemplo, quando o bit 14 da palavra 1 (o bit do campo R 152) é um e o bit 5 do campo de sinalizadores 142 (o sinalizador de TIDA de entrada) é zero, as palavras 4-5 designam a localização de 64 bits de entrada no armazenamento absoluto. Quando o bit R é um e o sinalizador de TIDA de entrada é um, as palavras 4-5 designam a localização no armazenamento absoluto de uma TIDAW ou de uma lista de TIDAWs que designam a localização ou localizações do armazenamento de entrada.
Um Endereço de Bloco de Estado de Transporte 156 especifica uma localização no armazenamento de um bloco de estado de transporte para a TCW. Por exemplo, as palavras 6-7 designam a localização de 64 bits no armazenamento absoluto do bloco de estado de transporte para a TCW.
Um campo de Endereço de Bloco de Controlo de Comando de Transporte 148 especifica um ou mais endereços (directos ou indirectos) do TCCB. Por exemplo, se o bit TCCB-TIDA (bit 6 do campo de sinalizadores) é zero, as palavras 8-9 designam a localização de 64 bits no armazenamento absoluto do TCCB. Quando o bit TCCB-TIDA é zero, o TCCB é especificado como residindo numa área contígua do armazenamento.
Se o bit TIDA do bloco de controlo de comando de 27 ΡΕ2593878 transporte é um, as palavras 8-9 designam a localização de 6 4 bits no armazenamento absoluto de uma TIDAW ou de uma lista de TIDAWs que designam a localização no armazenamento absoluto do TCCB. Quando o bit TCCB-TIDA é um, o TCCB pode ser especificado como residindo em áreas não contíguas do armazenamento. 0 campo de Contagem de Saída 158 especifica o número de bytes de saída para a TCW. Por exemplo, quando o bit 15 da palavra 1 (o bit W) é um, a palavra 10 contém o inteiro sem sinal da contagem total de bytes de saída para a TCW. O campo de Contagem de Entrada 160 especifica o número de bytes de entrada para a TCW. Por exemplo, quando o bit 14 da palavra 1 (o bit R) é um, a palavra 11 contém o inteiro sem sinal da contagem total de bytes de entrada para a TCW.
Se a TCW especifica uma operação de interrogação, um campo de Endereço de TCW de Interrogação 162 indica uma localização no armazenamento de uma TCW de Interrogação. Por exemplo, quando uma instrução START SUBCHANNEL designa uma TCW, a palavra 15 da TCW não é verificada. No entanto, quando uma instrução CANCEL SUBCHANNEL designa um subcanal que está à espera de iniciação para um programa de canal TCW e não está à espera de estado, os bits 1-31 da palavra 15 da TCW designada pela START SUBCHANNEL especificam a localização de 31 bits no armazenamento absoluto da TCW de Interrogação que é utilizada para iniciar uma operação de interrogação para o subcanal. Se a palavra 15 contém zeros 28 ΡΕ2593878 quando é emitida uma CANCEL SUBCHANNEL, não é iniciada uma operação de interrogação. Quando é emitida uma CANCEL SUBCHANNEL, o bit 0 da palavra 15 deverá ser zero, de outra forma é reconhecida uma condição de verificação de programa com a indicação de estado de interrogação falhada. Quando é emitida uma CANCEL SUBCHANNEL e os bits 1-31 da palavra 15 não contêm zeros, os bits 1-31 da palavra 15 deverão designar uma localização do armazenamento numa extremidade de 64 bytes, caso contrário é reconhecida uma condição de verificação do programa com a indicação de estado de interrogação falhada. A palavra 14 pode ser reservada para estender o campo de endereço de TCW de interrogação até 64 bits.
Em referência às Figuras 3 e 4, o bloco de controlo de comando de transporte (TCCB) 170 inclui um ou mais comandos individuais como parte de uma operação de TCW de I/0, e é enviado para uma unidade de controlo 118 e/ou dispositivo 116 por um canal 128 por via de um percurso de canal. 0 TCCB 170 liberta o canal de ter que enviar múltiplas mensagens ou unidades de informação, e também transfere a responsabilidade da execução da operação para a unidade de controlo e remove a necessidade para a unidade de controlo 118 de enviar respostas para cada comendo. Em vez disso, a unidade de controlo 118 pode executar a totalidade dos comandos e enviar uma resposta após a finalizaçao da operação. O TCCB 170 é variável em comprimento, pode conter 29 ΡΕ2593878 informação de cabeçalho e rodapé, e um ou mais (por exemplo, de 1 a 30) comandos como palavras de comando de dispositivo (DCWs) que estão ligadas logicamente (por exemplo, encadeadas) de forma que elas sejam executadas pela unidade de controlo 118 de uma forma sequencial. O TCCB 170 pode residir como um único bloco de armazenamento contíguo ou pode residir como blocos múltiplos de armazenamento não contíguo. Por exemplo, o sinalizador TCCB-TIDA na TCW 140 descrito acima é utilizado para especificar se o TCCB reside em armazenamento contíguo.
Estão apresentados exemplos de um TCCB nas Figuras 3 e 4. Como se mostra na Figura 4, o TCCB 170 pode ser enviado a partir de um canal 128 para uma unidade de controlo 118 como parte de uma unidade de informação de comando de transporte (IU) 172 que é enviada para a unidade de controlo 118 para iniciar uma operação de I/O. Numa forma de realização, o comando de transporte IU 172 é constituído por um cabeçalho de 8 bytes SB-4 174, seguido de um cabeçalho de comando de transporte de 4 bytes (TCH) 176, e o TCCB 170. O TCCB 170 inclui um cabeçalho de área de comando de transporte de 16 bytes (TCAH) 178, uma área de comando de transporte (TCA) 182 de comprimento variável, e um rodapé de área de comando de transporte (TCAT) 182. O TC AT 182 pode incluir adicionalmente um campo LRC de 4 bytes 184, um campo de comprimento de transferência de dados (DL) de 4 bytes 186, e para operações bidireccionais, um campo de comprimento de transferência de dados de leitura (BRDL) 188 de 4 bytes. Estes campos estão 30 ΡΕ2593878 adicionalmente descritos abaixo.
Em referência à Figura 4, o cabeçalho SB-4 174 proporciona informação de endereçamento FC-4 para identificar o percurso lógico e o dispositivo 116 para a transferência de dados. O cabeçalho SB-4 174 proporciona informação incluindo uma imagem de canal ID e uma unidade de controlo ID para um percurso lógico entre um canal 128 e uma unidade de controlo 118, bem como uma ID de dispositivo.
Em referência à Figura 5, o TCH 176 inclui informação acerca do TCCB 170 e das operações de dispositivo associadas. Numa forma de realização, o TCH 176 contém 4 bytes e segue-se imediatamente ao cabeçalho SB-4 174 no comando de transporte IU 172. O TCH 176 inclui campos tais como um campo de comprimento ("Ll") 190, um campo de leitura ("R") 192 e um campo de escrita ("W") 194. 0 campo Ll (localizado, por exemplo, nos bits 24-29), especifica o comprimento, em palavras, da TCA 180 mais o campo LRC de 1 palavra 184 que se segue directamente à TCA 180. Por exemplo, para unidades de controlo 118 que não suportem operações bidireccionais, a quantidade total de dados transferidos no comando de transporte IU 172 é igual ao campo Ll mais 8 (ou seja, o campo Ll mais o cabeçalho SB-4 de 2 palavras, o TCH de 1 palavra, o TCAH de 4 palavras e o DL de 1 palavra); de outra forma, a unidade de controlo reconhece um erro de integridade do comando de transporte IU devido a um erro de contagem de dados. Para 31 ΡΕ2593878 unidades de controlo que suportem operações bidireccionais, a quantidade total de dados transferidos no comando de transporte IU 172 é igual ao campo LI mais 8 (ou seja, o campo LI mais o cabeçalho SB-4 de 2 palavras, o TCH de 1 palavra, o TCAH de 4 palavras e o DL de 1 palavra) ou o campo LI mais 9 (ou seja, o campo Ll mais o cabeçalho SB-4 de 2 palavras, o TCH de 1 palavra, o TCAH de 4 palavras, o DL de 1 palavra, e o BRDL de 1 palavra para a operação bidireccional); de outra forma, a unidade de controlo deverá reconhecer um erro de integridade do comando de transporte IU devido a um erro de contagem de dados . Se um erro de integridade do comando de transporte IU não é reconhecido, a localização do LRC no TCCB é localizada com base no campo Ll e pode ser realizada a verificação do LRC. 0 campo de Leitura (R) 192 especifica que a TCA 180 inclui um ou mais comandos de leitura ou de entrada. Na forma de realização da Figura 5, o campo R 192 é um bit R, bit 30, que indica, quando definido como um, que a TCA 180 contém um ou mais comandos que transferem dados de leitura. Quando o bit R é definido como zero, a TCA 180 não contém quaisquer comandos que transfiram dados de leitura. Quando o bit R é um e o bit W (por exemplo, o bit 31) é zero, a operação é referida como sendo uma operação de leitura. Quando ambos os bits R e W são definidos como zero, a TCA 180 não contém quaisquer comandos que transfiram dados de leitura ou de escrita, indicando que a operação de I/O não realiza transferência de dados. Quando ambos os bits R e W são definidos como um, a TCA 180 pode conter comandos que 32 ΡΕ2593878 transfiram dados tanto de leitura como de escrita, e a operação é referida como sendo uma operação bidireccional. 0 dispositivo 116 ou a unidade de controlo 118 reconhece um eero de conteúdo de TCH devido a um conflito de leitura-escrita se uma operação bidireccional é especificada e a unidade de controlo 118 não suporta operações bidireccionais, ou a unidade de controlo 118 suporta operações bidireccionais mas o comando de transporte IU 172 não contém o campo BRDL 188. Quando o bit R é zero e a unidade de controlo 118 ou o dispositivo 116 encontra um comando na TCA 180 que tenta transferir dados de leitura, é reconhecido um erro de conteúdo de TCCB devido a uma tentativa inválida de leitura. O campo de Escrita (W) 194 especifica que a TCA 180 inclui um ou mais comandos de escrita ou de saída. Na forma de realização da Figura 5, o campo W é um bit W, bit 31, que, quando definido como um, indica que a TCA 180 inclui um ou mais comandos que transferem dados de escrita. Quando o bit é definido como zero, a TCA não inclui quaisquer comandos que transfiram dados de escrita. Quando o bit W é um e o bit R (bit 30) é zero, a operação é referida como uma operação de escrita. Quando o bit W é zero e a unidade de controlo 118 ou o dispositivo 116 encontram um comando na TCA 180 que especifica um comando de escrita, é reconhecido um ero de conteúdo do TCCB devido a uma condição de escrita inválida.
Em referência à Figura 6, uma forma de realização 33 ΡΕ2593878 do Cabeçalho TCA (TCAH) 178 inclui informação acerca da TCA 180 e das operações nele descritas, tais como o comprimento da TCA e indicações do dispositivo. Nesta forma de realização, o Byte 3 da palavra 1 é um campo de comprimento "L2" 196 que contém um inteiro binário sem sinal que especifica o comprimento, em bytes, da TCA 180 mais as palavras 2 e 3 do cabeçalho da TCA, mais o campo LRC de 4 palavras 184 que se segue directamente à TCA 180. Um campo de Código de Serviço-Acção 198 (por exemplo, bytes 0-1 da palavra 2) inclui um valor inteiro sem sinal que especifica o tipo de operação especificado pelo TCCB. Por exemplo, um valor em Hexadecimal de "1FFE" indica uma operação de I/O de Dispositivo SB-4, e um valor em Hexadecimal de "1FFF" indica funções de suporte de Dispositivo SB-4. O campo de Número de Prioridade 200 (por exemplo, byte 3 da palavra 2) inclui o número de prioridade de I/O da unidade de controlo.
Em referência à Figura 7, a área de comando de transporte (TCA) 180 é uma área de comprimento variável que contém um ou mais (por exemplo, de 1 a 30) comandos como palavras de comando de dispositivo (DCWs) 202. O comprimento do TCA 180, numa forma de realização, é um número inteiro de palavras de 4 bytes. Para DCWs 202 que especifiquem dados de controlo de dispositivo, a TCA 180 também contém os dados de controlo associados a cada DCW 202. Cada DCW 202 que especifique dados de controlo reduz a capacidade máxima da DCW em uma ou mais DCWs, dependendo da dimensão dos dados associados ao comando. Para DCWs 202 que 34 ΡΕ2593878 especifiquem dados de entrada ou de saida, o TCW 140 designa a área ou áreas de armazenamento associadas e a DCW designa a contagem de bytes a transferir. Numa forma de realização, a dimensão máxima da TCA é de 240 bytes. Como se mostra na forma de realização da Figura 7, quando existe espaço suficiente na TCA 180 para a DCW 202 inteira, a DCW 202 inicia-se na extremidade de palavra que se segue à DCW 202 anterior ou aos dados de controlo associados à DCW 202 anterior. Quando a última DCW 202 na TCA 180 especifica dados de controlo que não são um número inteiro de palavras, o subsequente campo LRC 184 inicia-se na extremidade de palavra que se segue aos dados de controlo.
Para alguns dispositivos, a lista de DCWs 202 pode estender-se para lá do que cabe na TCA 180. Em tais circunstâncias, pode ser especificado um campo de extensão de TCA (TCAX) que inclui DCWs adicionais e transferido como se a TCAX fosse dados de saida (por exemplo, transferido como parte de dados de um IU de transporte de saida) . No entanto, o TCAX é tratado como uma continuação lógica da TCA 180 em vez de dados de transferência. O TCAX é especificado na TCA 180 por uma DCW de extensão de TCA de transferência (TTE) . O TCAX e a TTE DCW são adicionalmente descritas abaixo, e as formas de realização do TCAX são apresentadas nas Figura s 12 e 13.
Como se mostra nas Figura s 3 e 4, o TCCB pode incluir um rodapé de área de cornado de transporte (TCAT) 182 que proporciona informação adicional acerca do TCCB, 35 ΡΕ2593878 incluindo vária informação de contagem. Numa forma de realização, quando é especificada transferência de dados unidireccional (ou o bit R ou o bit W são definidos como um) ou não é especificada transferência de dados (ambos os bits R e W na TCW estão definidos como zero) , o TCAT 182 tem um comprimento de duas palavras. Quando é especificada a transferência de dados bidireccional (ambos os bits R e W na TCW são definidos como um), o TCAT 182 tem o comprimento de três palavras.
Por exemplo, quando é especificada a transferência de dados unidireccional, o campo de contagem de transporte ou de comprimento de dados (DL) 186 especificam a contagem num inteiro sem sinal de 32 bits dos dados totais a serem transferidos (o "valor de contagem de transporte"). Quando é especificada uma operação de leitura (o bit R da TCW é um) , o valor no campo de contagem de transporte no TCAT pode ser determinado somando os valores do campo de contagem nas DCWs 202 que especificam cada uma um comando do tipo leitura. A soma é arredondada para cima para o mais próximo múltiplo de 4, e a soma arredondada é aumentada de 4 para chegar ao valor de contagem de transporte. Quando é especificada uma operação de leitura, o valor de contagem de transporte deverá ser igual ao valor no campo de contagem de entrada da TCW 160, arredondado para cima para o mais próximo múltiplo de 4, mais 4.
Quando é especificada uma operação de escrita (o bit W na TCW é um) , os valores no campo de contagem nas 36 ΡΕ2593878 DCWs 202 que especificam um comando de escrita são somados. Adicionalmente, os valores do campo de contagem em todas as DCWs de comando de transporte (descritas adicionalmente abaixo) que especificam a transferência de meta-informação de comando de transporte (TCMI), mais a dimensão dos campos reservados no TCMI são adicionados à soma. (Note-se que a dimensão de um campo reservado do TCMI pode ser zero) . O total das contagens de quaisquer bytes de teste de bloco de controlo especificado por TIDAW (CBC) ou teste de redundância cíclica (CRC) e bytes de enchimento é adicionado à soma. A soma é arredondada para cima para o mais próximo múltiplo de 4, e a soma arredondada é aumentada em 4 dando o valor de contagem de transporte. Quando é especificada uma operação de escrita, o valor de contagem de transporte deverá ser igual ao valor no campo de contagem de saída da TCW 158, arredondado para cima para o mais próximo múltiplo de 4, mais 4. Quando não é especificada nem uma operação de escrita nem de leitura (ambos os bits W e R na TCW são zero), o valor de contagem de transporte deverá ser zero.
Quando é especificada a transferência de dados bidireccional, o campo DL 186 é a contagem de escrita e especifica a contagem num inteiro sem sinal de 32 bits da totalidade de dados de saída a serem transferidos. O valor de contagem de transporte no campo DL (campo de contagem de escrita) no TCAT 182 é determinado como descrito acima para uma operação de escrita. O campo de comprimento de dados de leitura bidireccional (BRDL) 188 especifica a contagem num 37 ΡΕ2593878 inteiro sem sinal de 32 bits da totalidade de dados de entrada a serem transferidos. 0 valor de contagem de transporte para o campo BDRL 188 é determinado como descrito acima para operaçoes de leitura.
Numa forma de realização, para uma operação e escrita ou operação bidireccional, o campo DL deverá conter um inteiro binário sem sinal de 4 bytes que especifique o número de bytes a serem transferidos pelo canal para a unidade de controlo para a operação e inclui todos os bytes intermédios e finais de enchimento e de CRC, e se está incluído um COB no primeiro IU de dados de transporte da operação de escrita, ele também inclui o COB, quaisquer bytes de enchimento de COB e os bytes de CRC do COB. Se estiver presente uma palavra TTE DCW na TCA, o campo DL também inclui o TCAX, quaisquer bytes de enchimento do TCAX e os bytes de CRC do TCAX.
As Figura s 8 e 9 são quadros resumindo a determinação dos valores de contagem de entrada da TCW, contagem de saída, e de contagem de transporte do TCAT para as transferências unidireccionais e bidireccionais, respectivamente.
Para uma operação bidireccional, um campo de comprimento de dados de leitura bidireccional (BRDL) inclui um inteiro binário sem sinal de 4 bytes que especifica o número de bytes a serem transferidos pela unidade de controlo para o canal para a operação e inclui quaisquer 38 ΡΕ2593878 bytes de enchimento necessários para arredondar até uma extremidade de palavra se já não estiver numa extremidade de palavra mais 4 bytes para o CRC. Para operações que não sejam operações bidireccionais, o dispositivo deverá reconhecer um erro de conteúdo de TCH devido a um conflito de leitura-escrita se o IU de comando de transporte contiver o campo BRDL.
Em referência à Figura 10, uma palavra de comando de dispositivo (DCW) 202 especifica um comando a ser executado. Para comandos iniciando certas operações de I/O, ela designa a contagem de bytes sobre os quais a operação é realizada, a acção a ser tomada após a transferência para ou a partir do armazenamento estar completada, e outras opções. A área ou áreas de armazenamento associadas a uma operação de transferência de dados de DCW são designadas, dependendo da operação especificada pelo comando, pelo campo de endereço de dados de entrada 146 ou pelo campo de endereço de dados de saída 144 da TCW 140 que designa o TCCB 170 que inclui a DCW 202. Se o campo de endereço de dados de entrada 146 ou o campo de endereço de dados de saída 144 designam o armazenamento directamente ou indirectamente, está especificado nos sinalizadores TIDA de entrada e TIDA de saída na TCW 140.
Numa forma de realização, a DCW 202 é um bloco de controlo de 8 bytes que é designado na TCW 140 numa extremidade de palavra. A DCW 202 inclui campos tais como um campo de código de comando 204, um campo de 39 ΡΕ2593878 sinalizadores de controlo 206, uma contagem de dados de controlo 208 e uma contagem de dados de DCW 210. 0 comando de Código de Comando 204 (por exemplo, bits 0-7 da palavra 0) especifica a operação a ser executada. Se um comando é válido é dependente do dispositivo e depende do valor do campo de código de serviço acção 198 no TCAH 178. Os comandos básicos incluem leitura, escrita, controlo, sentido e transporte. 0 subsistema de canal 114 faz a distinção entre as seguintes operações: controlo, saída para seguinte (escrita), entrada para seguinte (leitura, sentido, ID de sentido), entrada para anterior (leitura para anterior), ramificação (transferência em canal) e transporte. Alguns comandos, quando executados, não resultam na transferência de dados mas leva o dispositivo a encadear e iniciar a execução do comando seguinte quando todas as condições para o encadeamento de comandos estão satisfeitas. Cada uma das operações básicas está descrita abaixo.
Um comando de leitura inicia a execução de uma operação de dispositivo que realiza a transferência de dados de dispositivo para canal. Um comando de escrita inicia a execução de uma operação de dispositivo que realiza a transferência de dados de canal para dispositivo. Um comando de controlo inicia a execução de uma operação de dispositivo que faz uso de dados de controlo proporcionados na DCW. O comando de sentido é similar a um comando de leitura, excepto que os dados são obtidos a partir de 40 ΡΕ2593878 indicadores de sentido em vez de a partir de uma fonte de registo. Os comandos de controlo e dados de controlo associados são proporcionados para a gestão do dispositivo de 1/0 especifico e controlo do dispositivo durante a execução de um comando de I/O. Um comando de transporte é proporcionado para gerir a operação de I/O e a transferência de dados por via do percurso de canal, e não é especifico para o dispositivo. Tais comandos gerem o transporte de dados de verificação de bloco de controlo tais como dados de verificação de redundância cíclica (CRC) e o transporte de DCWs adicionais em IUs de dados de transporte. O campo de Contagem de Dados de Controlo (CD) 208 especifica o número de bytes de dados de controlo associados com uma DCW 202. Por exemplo, o byte 3 da palavra 0 especifica o comprimento dos dados de controlo, em bytes. Se o código de comando especifica um comando que requeira dados de controlo e o byte 3 da palavra 0 especifica uma contagem de dados de controlo que é menor do que o requerido para o comando, é reconhecida uma condição de verificação de unidade ou de erro de conteúdo de TCCB. Se o código de comando especifica um comando que requer dados de controlo e o byte 3 da palavra 0 contém zero ou contém um valor que especifica dados para lá do fim da TCA (ou passe o fim do TCAX especificado) , é reconhecida uma condição de verificação de programa de dispositivo detectado ou de erro de conteúdo de TCCB. 41 ΡΕ2593878 0 campo de Contagem de Dados de DCW 210 especifica a contagem de bytes dos dados (por exemplo, dados a serem transferidos para a operaçao de leitura ou de escrita, isto é, dados de cliente) designados pela TCW para apresente DCW 202. Por exemplo, a contagem de dados da TCW está incluída na palavra um da DCW 202 da Figura 10, e especifica a contagem em inteiro sem sinal de 32 bits de bytes na área de armazenamento designada pela TCW para esta DCW. O campo de contagem de dados da DCW 210 indica o número de bytes a serem transferidos entre o canal e a unidade de controlo durante a execução da DCW, não incluindo quaisquer bytes de enchimento ou de CRC.
Em referência à Figura 11, numa forma de realização, a DCW 202 inclui vários sinalizadores de controlo 206. Um sinalizador de comando de encadeamento (CC) 212 especifica uma intenção de realizar o encadeamento de comandos. Após a finalização normal da corrente operação de dispositivo e após o reconhecimento do fim de dispositivo no dispositivo, o encadeamento de comandos provoca a execução da próxima DCW 202 na TCA 180 . 0 sinalizador CC 212 é definido como zero na última DCW na TCA. Na forma de realização da Figura 10, o bit 9 da palavra 0 (o bit CC), quando um, especifica o encadeamento de comandos. Quando um, o bit origina que seja iniciada a operação especificada pela DCW seguinte após a finalização normal da DCW corrente. Quando a contagem de dados de controlo é zero, a DCW seguinte segue imediatamente a DCW na TCA ou numa TCAX. Quando a contagem de dados de controlo 42 ΡΕ2593878 não é zero, a DCW seguinte segue imediatamente os dados de controlo, arredondado para uma extremidade de palavra, especificada para a DCW. Quando o sinalizador de encadeamento de comandos é um, numa forma de realização, a localização da DCW seguinte na TCA ou numa TCAX é determinada adicionando oito e o valor no campo de contagem CC à localização da DCW corrente e arredondando para cima para a mais próxima extremidade de palavra. Se o sinalizador de encadeamento de comando é um numa DCW numa TCA, e a localização da DCW seguinte passa o fim da TCA, e está especificada uma TCAX, a DCW seguinte está no inicio da TCAX especificada. 0 campo de sinalizadores de controlo, numa forma de realização, inclui um campo de Indicação de Comprimento de Supressão (SLI) 214. Quando a funcionalidade de comprimento incorrecto de DCW está suportada por um canal 128 e uma unidade de controlo 118, um bit (por exemplo, bit 2) é proporcionado no campo de sinalização de SLI 214 que controla se o encadeamento de comandos é para ocorrer numa condição de comprimento incorrecto e se o comprimento incorrecto é para ser indicado numa IU de resposta a transporte pela unidade de controlo quando é detectada uma condição de comprimento incorrecto pela unidade de controlo 118. É detectada uma condição de comprimento incorrecto pela unidade de controlo se a contagem de dados da DCW não corresponde à quantidade de dados requeridos pelo dispositivo para uma DCW de escrita ou se a contagem de dados de DCW não corresponde à quantidade de dados 43 ΡΕ2593878 disponíveis no dispositivo para uma DCW de leitura. Quando a funcionalidade de comprimento incorrecto de DCW não é suportada pelo canal e unidade de controlo, o bit 2 é reservado e definido como zero pelo canal e ignorado pela unidade de controlo. Quando o sinalizador SLI 214 é um e existe uma condição de comprimento incorrecto para a DCW corrente, o encadeamento de comandos, se indicado, deverá ser permitido e a unidade de controlo continua a execução da seguinte DCW. Se o sinalizador SLI é zero e existe uma condição de comprimento incorrecto para uma DCW, o encadeamento de comandos, se indicado, não é permitido e a unidade de controlo 118 aborta a operação de 1/0. Quando existe uma condição de comprimento incorrecto para uma DCW 202 e o sinalizador SLI 214 na DCW é definido como um, é realizada a transferência de dados como se descreve abaixo, de outra forma a operação é terminada e deverá ser reportada uma condição de terminação anormal para a operação.
Para uma DCW 202 de leitura, se a contagem de dados da DCW é maior do que a quantidade de dados disponíveis no dispositivo 116 para o comando, então aplica-se o que se segue. Se o sinalizador CC 212 é um (indicado o encadeamento), os dados disponíveis no dispositivo 115 são transferidos para o canal 128 e são transferidos bytes de enchimento (que são definidos como zero) de forma que a quantidade de dados transferidos para a DCW 202 seja igual à contagem de dados da DCW. Todos os dados transferidos, incluindo bytes de enchimento, são 44 ΡΕ2593878 incluídos em qualquer cálculo de CRC requerida para a operação. Se o sinalizador CC 212 é zero (não indicado o encadeamento) , os dados disponíveis no dispositivo deverão ser transferidos para o canal e ou não serão transferidos dados adicionais ou serão transferidos bytes de enchimento (definidos como zero) de forma que a quantidade de dados transferidos para a DCW seja igual à contagem de dados da DCW. Os dados transferidos mais quaisquer bytes de enchimento deverão ser incluídos no cálculo do CRC requerido para a operação. É dependente do modelo se são transferidos bytes de enchimento para este caso. Se a contagem de dados da DCW é menor do que a quantidade de dados disponíveis no dispositivo para o comando, apenas é transferida uma quantidade de dados igual à contagem de dados da DCW para o canal 128 para a DCW 202. Apenas os dados transferidos deverão ser incluídos no cálculo do CRC requerido para a operação.
Para uma DCW 202 de escrita, se a contagem de dados da DCW é maior do que a quantidade de dados requeridos pelo dispositivo 116 para o comando, então aplica-se o que se segue. Se o sinalizador CC 212 é um (indicado o encadeamento), a quantidade de dados especificada pela contagem de dados da DCW deverá ser transferida para a unidade de controlo 118. Os dados transferidos deverão ser utilizados no cálculo de qualquer CRC requerido para a operação, e os dados não requeridos pelo dispositivo 116 deverão ser descartados. Se o sinalizador CC é zero (não indicado o encadeamento), a 45 ΡΕ2593878 quantidade de dados requeridos pelo dispositivo 116 é transferida para a unidade de controlo 118. São transferidos dados adicionais até à seguinte palavra de CRC intermédia ou até que a contagem de dados para a DCW esteja esgotada. Todos os dados transferidos são utilizados no cálculo de qualquer CRC requerido para a operação. Se a contagem de dados da DCW é menor que a quantidade de dados requeridos pelo dispositivo 116 para o comando, a quantidade de dados especificada pela contagem de dados da DCW é transferida para a unidade de controlo 1118. Os dados transferidos são utilizados no cálculo de qualquer CRC requerido para a operação.
Uma DCW de comando de transporte é um tipo de DCW que não especifica uma transferência de dados especifica (isto é, dados de cliente que é requerido para serem transferidos por uma instrução de computador hospedeiro), mas em vez disso especifica um comando de transporte que realiza uma função de suporte associada a uma operação de 1/0 em modo de transporte. Uma DCW de comando de transporte pode especificar dados de controlo e pode também especificar a transferência de meta-informação de comando de transporte (TCMI) . A TCMI inclui dados que são utilizados para controlar funções de transferência na operação de 1/0, tais como o estado de uma operação de 1/0 no dispositivo, informação a respeito de DCWs adicionais que não cabe no ou possa ser acomodada num TCCB corrente, e informação de verificação de bloco de controlo (CBC) tal como dados de verificação de redundância cíclica (CRC). 46 ΡΕ2593878
Quando uma DCW de comando de transporte especifica a transferência de TCMI para um dispositivo, o TCMI é transferido como dados de saída (por exemplo, num IU de dados de transporte). A dimensão do TCMI está dependente do comando e é, por exemplo, um múltiplo de 4. 0 TCMI pode ser estendido em 4 bytes reservados quando a dimensão do TCMI é um múltiplo par de 4, são utilizados TIDAWs para especificar as áreas de armazenamento de saída, o sinalizador de inserção de CRC é um nesta última TIDAW utilizada para especificar o armazenamento contendo o TCMI, o bit de encadeamento de comandos é um na DCW de comando de transporte que especifica o TCMI, e uma DCW subsequente especifica a transferência de um TCMI ou dados de saída. Note-se que quando um comando de transporte especifica a transferência de um TCMI para um dispositivo e o TCMI está estendido em 4 bytes reservados devido a todas as condições precedentes estarem satisfeitas, os 4 bytes reservados não são incluídos no valor da contagem de dados na DCW de comando de transporte mas são incluídos no seguinte: o valor de contagem na última TIDAW utilizada para especificar o armazenamento contendo o TCMI, o valor de contagem de saída na TCW e no valor de contagem de transporte no TCCB associado (para transferências de dados unidireccionais ou o valor de contagem de escrita no TCCB associado para a transferência bidireccional).
Numa forma de realização, o TCMI inclui informação de interrogação (por via de uma DCW de interrogação) , um Bloco de Desfasamento de CBC (por via de 47 ΡΕ2593878 uma DCW de Bloco de Desfasamento de CBC de Transferência) e uma extensão de TCA (por via de uma DCW de Extensão de TCA de Transferência). A Figura 12 ilustra uma forma de realização de dados especificados por um tipo de DCW de comando de transporte, referido como um comando de Extensão de TCA de Transferência (TTE) , o qual é incluído numa TCA 180 de um TCCB 170 e especifica uma extensão de TCA (TCAX) 220 que é para ser transferida para uma unidade de controlo 118. A TCAX é considerada como uma extensão lógica da TCA 180. Para alguns dispositivos 116, a lista de DCWs 202 associadas a uma operação de I/O excede o número de DCWs que podem ser acomodadas na TCA 180. Num tal caso, uma TTE DCW pode ser incluída no final da TCW 140, que especifica uma TCAX 202 que é transferida como dados de saída (por exemplo, numa IU de transporte de dados). O conteúdo da TTE DCW pode incluir um código de comando que inclui o comando de extensão de TCA de transferência (por exemplo, valor de 50 em Hexadecimal).
Por exemplo, uma TCA 180 é variável no comprimento com uma dimensão máxima de 240, e uma DCW é de 8 bytes. Assim, neste exemplo, podem ser transmitidas um máximo de 30 DCWs num TCCB 170. No entanto, para DCWs 202 que especifiquem comandos de controlo que requeiram dados de controlo, os dados de controlo seguem imediatamente cada DCW 202 no TCCB. Assim, os TCCBs 170 contendo tais comandos estão limitados a menos do que 30 DCWs. A TTE DCW pode ser 48 ΡΕ2593878 utilizada para especificar DCWs adicionais necessárias para a operação de 1/0 que não caibam na TCA 180.
Como se mostra na Figura 12, a Extensão de TCA (TCAX) é uma área de comprimento variável que é a continuação lógica da TCA 180 num outro IU de comando de transporte ou TCCB, e inclui uma lista de DCWs e de dados de controlo associados. A TCAX contém uma ou mais DCWs adicionais e dados de controlo associados para uma operação de I/0 de TCW (em adição às transferidas num TCCB inicial), e pode ser enviada num outro TCCB ou num IU de dados de transporte para estender uma lista de DCWs requeridas para uma operação de I/O. Numa forma de realização, o comprimento da TCAX é um múltiplo inteiro de 4. Como se mostra na Figura 12, numa forma de realização, a TCAX 220 inclui uma DCW 202 e/ou dados de controlo para uma DCW 202 precedente. Quando a última informação na TCAX 220 é uma DCW 202, o final dessa DCW 202 define o fim da informação com significado na TCAX 220. Quando a última informação na TCAX 220 são dados de controlo e os dados de controlo terminam numa extremidade de 4 bytes, o fim dos dados de controlo definem o fim da informação com significado na TCAX 220. Quando a última informação na TCAX 220 são dados de controlo e os dados de controlo não terminam numa extremidade de 4 bytes, são apensos bytes de enchimento aos dados de controlo para se alcançar uma extremidade de 4 bytes e o final dos bytes de enchimento definem o final da informação com significado na 49 ΡΕ2593878 TC ΑΧ 220. Quando a dimensão da informação com significado na TCAX 220 dividida por quatro dá um número impar, não existem bytes reservados; caso contrário, os quatro bytes imediatamente a seguir à informação com significado na TCAX 220 são reservados e deverão conter zeros. Quando dados de controlo para a última DCW 202 na TCA 180 estão contidos na TCAX 220, esses dados de controlo são os primeiros dados na TCAX 220. São processadas DCWs adicionais e dados de controlo na TCAX 220 como definido para a TCA 180.
Numa forma de realização, quando uma DCW de TCOB (descrita adicionalmente abaixo) não está presente na TCA 180, a TTE DCW é a primeira DCW 202 na TCA 180. Quando uma TCOB DCW está presente na TCA 180, a TTE DCW é a segunda DCW 202 na TCA 180. A contagem de dados da TTE DCW especifica o comprimento da TCAX 220 e pode ser um múltiplo inteiro de quatro bytes. A contagem de dados de controlo da TTE DCW é zero e o sinalizador de encadeamento de comandos na TTE DCW é definido como um. Os dados da TTE DCW não incluem o CRC de TCAX ou bytes de enchimento da TCAX.
Um comando TTE (TTE DCW) deverá ser enviado para um dispositivo que indique suporte para o comando TTE e é enviado quando o comprimento da TCA tem um certo máximo (por exemplo, 60 palavras) e os dados de controlo para a última DCW na TCA se estendem para lá do último byte na TCA, ou o comprimento da TCA é maior do que, por exemplo, 58 palavras, e uma ou mais DCWs adicionais são requeridas para a operação de I/O. Quando é proporcionado um COB na IU 50 ΡΕ2593878 de dados de transporte de escrita, a TCAX deverá seguir o COB CRC. Quando não é proporcionado um COB, a TCAX deverá ser enviada no primeiro IU de dados de transporte de escrita da operação de 1/0.
Um outro tipo de DCW é uma DCW de Bloco de Desfasamento de CBC de Transferência (TCOB), que é um comando que transfere um Bloco de Desfasamento de CBC (COB) para uma unidade de controlo. Os dados do CBC referem-se a dados de verificação do bloco de controlo que são utilizados para verificar que a quantidade correcta de dados de entrada ou de saída está a ser transferida numa operação de I/O. Numa forma de realização, os dados de CBC são dados de verificação de redundância cíclica (CRC), o COB é um Bloco de Desfasamento de CRC, e a TCOB DCW é uma DCW de Bloco de Desfasamento de CRC. Geralmente, uma verificação de redundância cíclica (CRC) é um código de detecção de erros configurado para detectar alterações acidentais a dados em bruto a serem enviados entre um canal 128 e uma unidade de controlo 118. Um dispositivo habilitado com CRC (por exemplo, o canal 128) calcula uma sequência binária curta de comprimento fixado para cada bloco de dados a serem enviados ou armazenados e apensa-os aos dados, formando uma palavra de código ou “palavra de CRC". Por exemplo, quando a proporcionada a geração do CRC, o canal 128 gera um CRC sobre os dados enviados e insere o valor calculado no final do último byte de dados. Quando é recebida ou lida uma palavra de CRC, o dispositivo receptor (por exemplo, a unidade de controlo 118) ou compara o seu 51 ΡΕ2593878 valor de teste com um calculado de novo a partir do bloco de dados, ou equivalentemente, realiza um CRC sobre a totalidade da palavra de código e compara o valor de teste resultante com uma constante de resíduo esperada. Se os valores de teste não correspondem, então o bloco contém um erro nos dados transferidos. Embora os dados de CBC sejam descritos nesta forma de realização como dados de CRC, não são limitados a isso.
Como se mostra na Figura 13, um COB 222 especifica a localização de palavras de CRC intermédias dentro de dados de transporte para uma transferência de dados de escrita ou leitura (por exemplo, num IU de dados de transporte). Numa forma de realização, é proporcionado um COB quando a primeira DCW 2 02 numa TCA 180 contém o comando de TCOB, isto é, uma TCOB DCW. Desfasamentos de CRC intermédios são palavras de CRC localizadas entre dados num IU de transferência de dados e localizadas antes do final do IU. O COB 222 contém uma lista de valores de 1 palavra, referidos como Desfasamentos de CRC 224, cada um dos quais identifica o desfasamento de byte de cada palavra de CRC intermédia nos dados de transporte. Por exemplo, o COB é um bloco de controlo de comprimento variável que inclui uma lista de entradas de 4 bytes, cada uma das quais identifica o desfasamento de um CRC especificado por uma TIDAW a ser inserida nos dados de saída.
Na forma de realização apresentada na Figura 13, o COB 222 inclui de 1 a N+l palavras (palavras de 52 ΡΕ2593878
Desfasamento de CRC 224) de desfasamentos de CRC intermédios. Se o COB 222 é proporcionado num IU de dados de transporte, então o COB pode também incluir 0 ou 1 palavras de bytes de enchimento e 1 palavra de CRC. Podem ser proporcionados bytes de enchimento de forma que a palavra contendo o CRC esteja numa extremidade de palavra que não seja uma extremidade de palavra dupla. A última palavra do COB deverá conter um CRC que cubra os desfasamentos de CRC intermédios de 0 a N e a palavra de enchimento, se presente. Se o COB é proporcionado como dados de controlo para a TCOB DCW, então não deverá haver enchimento do COB ou do CRC e a contagem de dados de controlo deverá ser igual a 4 vezes o número de campos de desfasamento de CRC intermédio no COB.
Para operações de escrita, a TCOB DCW especifica que um COB é transportado para um dispositivo 116. 0 código de comando de TCOB DCW inclui o comando TCOB que é um valor de, por exemplo, 60 em Hexadecimal. A localização do COB é determinada pela contagem de dados de controlo e pode ser proporcionada tanto pelo primeiro IU de dados de transporte de escrita de uma operação de I/O como por dados de controlo a seguir à TCOB DCW de uma operação de I/O. Por exemplo, quando a contagem de CD da TCOB DCW não é zero, o COB 222 segue imediatamente a TCOB DCW na TCA 180 e a contagem de CD especifica o número de desfasamentos de CRC no COB multiplicados por 4. Quando a contagem de CD é zero, o COB 222 é especificado como TCMI que é transferido com os dados de saída, e a localização do COB é especificada pelo 53 ΡΕ2593878 campo de endereço de dados de saída 144 na TCW 140.
Cada desfasamento de CRC intermédio 224 no COB 222 indica o desfasamento relativo, em bytes, a partir do primeiro byte de dados num IU de dados de transporte. Se o COB 222 é proporcionado num IU de dados de transporte, o primeiro byte de dados para a transferência de escrita é ou o primeiro byte a seguir ao CRC do COB se uma TCAX 220 não está a ser proporcionada ou o primeiro byte a seguir ao CRC da TCAX se está a ser proporcionada uma TCAX. Se o COB é proporcionado na TCA 180 como uma DCW de dados de controlo, o primeiro byte de dados para a transferência de escrita é ou o primeiro byte no IU de dados de transporte se uma TCAX 220 não está a ser proporcionada ou o primeiro byte a seguir ao CRC da TCAX se está a ser proporcionada uma TCAX 220. Quando proporcionado num IU de dados de transporte, o COB é proporcionado no primeiro IU de dados de transporte de escrita de uma operação de I/O.
Um ainda outro tipo de DCW de comando de transporte é uma DCW de interrogação que é utilizada para determinar o estado de uma operação de I/O de TCW num dispositivo 116. O comando de interrogação não inicia uma operação no dispositivo 116, não afecta o estado do dispositivo 116 e não reinicializa concordâncias associadas ao dispositivo 116 e um percurso lógico associado. Uma DCW de interrogação exemplificadora inclui um código de comando de interrogação (por exemplo, contém um valor de 40 em Hexadecimal). Com as excepções do código de comando, os 54 ΡΕ2593878 campos de contagem e de contagem de CD, todos os outros campos na DCW deverão conter zeros, de outra forma ocorre uma condição de verificação de programa detectada pelo dispositivo. Se a contagem CD da DCW de interrogação é maior do gue zero, é especificado dados de interrogação.
Uma operação de interrogação é realizada num percurso lógico e dispositivo 116 que tenha uma operação de 1/0 de TCW em progresso de forma a obter informação a respeito do estado da operação no dispositivo 116. Numa forma de realização, o TCCB 170 para uma operação de interrogação inclui uma única DCW com um código de comando de interrogação de dispositivo (por exemplo, X'40). O TCAH 178 para uma operação de interrogação pode conter o bit R definido como um para especificar uma transferência de dados de leitura para a operação. Uma operação de interrogação é reconhecida na unidade de controlo 118 quando a unidade de controlo 118 aceita um IU de comando de transporte que especifica o comando de interrogação. Quando uma operação de interrogação tenha sido reconhecida na unidade de controlo 118 e a unidade de controlo 118 é capaz de realizar com sucesso o comando de interrogação, a unidade de controlo 118 pode proporcionar estado nu IU de resposta de transporte que inclua estado estendido de interrogação descrevendo o estado do percurso lógico e o endereço do dispositivo especificado pelo IU de comando de transporte de interrogação.
Em referência à Figura 14, é apresentada uma 55 ΡΕ2593878 forma de realização de um método de realização de uma operação de 1/0 em modo de transporte 300. O método inclui um ou mais estádios 301-305. Numa forma de realização, o método inclui a execução da totalidade dos estádios 301-305 pela ordem descrita. No entanto, certos estádios podem ser omitidos, podem ser adicionados estádios, ou a ordem dos estádios pode ser alterada.
No estádio 301, o computador hospedeiro (por exemplo, o OS 110) executa uma instrução (por exemplo, START SUBCHANNEL) que origina que um ORB seja transferido para um subsistema de canal 114, que especifica uma TCW 140. Numa forma de realização, são verificadas condições de verificação do programa relacionadas com a validade dos campos TCW específicos para capturar estado e transportar um TCCB 170 especificado pelo subsistema de canal 114 para determinar quando transportar o TCCB 170 para um dispositivo de I/O 116. Se existir uma tal condição de verificação do programa, o TCCB 170 não é transportado e é reconhecida a condição de verificação do programa. Por exemplo, verifica-se se o campo de endereço do TCCB 148 para ver se designa uma localização de armazenamento disponível. Se o sinalizador do TCCB-TIDA é um, o campo de endereço de TCCB 148 é também verificado para ver se designa um endereço que esteja numa extremidade de palavra quádrupla. Condições de verificação de programa adicionais são descritas adicionalmente abaixo.
No estádio 302, uma operaçao de I/O de TCW é 56 ΡΕ2593878 iniciada com um dispositivo de 1/0 (por via, por exemplo, de uma unidade de controlo 118) quando um canal 128 transfere um IU de comando de transporte 172 que inclui um bloco de controlo, tal como um bloco de controlo de comando de transporte (TCCB) 170 e informação de controlo associada para uma TCW 140 para um dispositivo 116 seleccionado. Numa forma de realização, a informação associada à execução de uma operação de I/O e a operação de um dispositivo (por exemplo, comandos, dados de entrada e dados de saida) é transferida entre o canal 128 e a unidade de controlo 118 como Unidades de Informação (IUs) . Numa forma de realização, as IUs estão na forma de Unidades de Informação SB-4 (IUs).
Numa forma de realização, as IUs ou outras mensagens são enviadas entre o canal e a unidade de controlo por via de uma ou mais permutas. Um par de permutas consistindo de duas permutas unidireccionais, uma utilizada por um canal 128 para enviar IUs e uma utilizada por uma unidade de controlo 118 para enviar IUs, são requeridas para todas as funções de controlo de ligação SB-4 e para todas as funções de nível de dispositivo SB-4 que sejam executadas em modo de comando. Uma única permuta bidireccional, referida como uma permuta de transporte, é utilizada para funções de nível de dispositivo executadas em modo de transporte. As IUs que um canal 128 envie durante a execução de uma função de controlo de ligação SB-4 ou a execução de uma função de nível de dispositivo SB-4 no modo de comando são restringidas a uma permuta, e 57 ΡΕ2593878 as IUs que um canal receba durante a operação são restringidas a uma permuta diferente. A permuta sobre a qual o canal 128 envia IUs é referida como a permuta de saída, e a permuta sobre a qual o canal 128 recebe IUs é referida como uma permuta da entrada. Quando existem ambas as permutas de saída e permuta de entrada simultaneamente entre um canal 128 e uma unidade de controlo 118 para a execução da mesma função de nível de ligação ou de nível de dispositivo, é dito que existe um par de permutas, e a unidade de controlo 118 é dita como estando ligada ao canal 128. Um programa de canal que seja executado numa única ligação utiliza apenas um par de permutas. Se a ligação é removida pelo fechar das permutas durante o programa de canal, é gerado um novo par de permutas para completar o programa de canal. Um canal 128 pode iniciar um par de permutas enviando uma IU que abra uma nova permuta (ou, um início de IU) como uma categoria de comando não solicitado ou de informação de controlo não solicitada. Uma unidade de controlo 118 pode iniciar um par de permutas enviando uma IU de inicio como uma categoria de controlo não solicitado ou de informação de dados não solicitados.
As IUs, que um canal e uma unidade de controlo enviam durante a execução de uma operação de 1/0 que seja realizada em modo de transporte estão restritas a uma única permuta bidireccional referida como uma permuta de transporte. Um canal 128 abre uma permuta de transporte enviando uma IU de comando de transporte como uma categoria de comando não solicitado (uma IU de Iniciação) . Um canal 58 ΡΕ2593878 128 pode abrir múltiplas permutas de transporte, cada uma para um diferente dispositivo 116 ou para o mesmo dispositivo 116 sobre diferentes percursos lógicos. Uma nova permuta de transporte pode ser aberta para um dispositivo especifico num percurso lógico quando já exista uma permuta de transporte para esse dispositivo e percurso lógico para realizar uma operação de interrogação; de outra forma, o canal 128 espera que a permuta de transporte ou par de permuta existentes sejam fechadas antes de iniciar uma nova permuta de transporte para o dispositivo sobre o percurso lógico.
No estádio 303, a unidade de controlo 118 recebe o TCCB 170 e o IU de comando de transporte 172, e pode aceitar o TCCB 170 se são satisfeitas certas condições. Quando um IU de comando de transporte 172 é aceite, o TCCB 170 é considerado corrente na unidade de controlo 118 até a execução do TCCB 170 na unidade de controlo 118 ser considerada como completada. Se o IU de comando de transporte 172 não é aceite devido a uma condição de erro, é retornado um IU de resposta de transporte para o canal 128 com um sinalizador de estado inicial definido como um para indicar que o erro ocorreu antes do inicio da execução do TCCB 170 no dispositivo 116. A unidade de controlo 118 pode proporcionar informação de erro nos campos de estado e de estado extenso de I/O no IU de resposta de transporte (descrito abaixo) para identificar o erro de IU de comando de transporte. Numa forma de realização, as condições exemplificadoras descritas abaixo deverão ser satisfeitas 59 ΡΕ2593878 de forma a que o IU de comando de transporte 172 seja aceite na unidade de controlo 118: 1) 0 IU de comando de transporte satisfaz as seguintes verificações de integridade: a) Para unidades de controlo que não suportem operações bidireccionais, o campo Ll no TCH mais 8 deverá especificar uma quantidade de dados que seja igual à quantidade de dados recebida pela unidade de controlo para o IU de comando de transporte, de outra forma, deverá ser reconhecido um erro de integridade de IU de comando de transporte devido a um erro de contagem de dados; b) Para unidades de controlo que suportem operações bidireccionais, o campo Ll no TCH mais ou 8 ou 9 deverá especificar uma quantidade de dados que seja igual à quantidade de dados recebidos pela unidade de controlo para o IU de comando de transporte, de outra forma, deverá ser reconhecido um erro de integridade de IU de comando de transporte devido a um erro de contagem de dados; e c) 0 campo LRC no TCCB deverá ser válido, de outra forma deverá ser reconhecido um erro de integridade do IU de comando de transporte devido a um erro de LRC inválido. 2) 0 percurso lógico especificado deverá ser estabelecido, de outra forma deverá ser reconhecido um erro 60 ΡΕ2593878 de percurso lógico não especificado; 3) Para aqueles comandos que requeiram que o dispositivo seja instalado e esteja pronto, o endereço de dispositivo deverá especificar um dispositivo que esteja instalado e pronto, de outra forma deverá ser reconhecida uma condição de excepção de endereço; 4) Os bits R e W não deverão ambos serem definidos como um no TCH se a transferência de dados bidireccional não é suportada pela unidade de controlo ou o IU de comando de transporte não contém o campo BRDL; de outra forma deverá ser reconhecido um erro de conteúdo de THC; 5) 0 TCCB no IU de comando de transporte deverá satisfazer a totalidade das condições seguintes, de outra forma, deverá ser reconhecido um erro de conteúdo de TCCB: a) 0 campo L2 deverá especificar um comprimento que seja exactamente 8 bytes maior do que o campo LI e conter um valor que seja pelo menos 20 bytes e não mais do que 252 bytes; b) 0 byte 1 da palavra 0 do TCAH deverá ser zero;
c) O campo de controlo de formato no TCAH deverá ser igual a "7F" em Hexadecimal; d) O código de serviço-acção no TCAH deverá 61 ΡΕ2593878 conter um valor válido (veja-se 8.13.4.4); e) Se os bits R e W estão ambos definidos como zero, o campo de comprimento de dados (DL) deverá ser zero; e 6) Se outra operação de 1/0 está em progresso para o percurso lógico e endereço de dispositivo especificado no IU de comando de transporte, o código de serviço-acção deverá especificar "1FFF" em Hexadecimal e o código de comando na primeira DCW da TCA deverá especificar o código de comando de interrogação, de outra forma deverá ser reconhecido um erro de segunda operação não interrogada.
Numa forma de realização, o canal 128 considera que existe uma conexão quando o IU de comando de transporte 172 é enviado, e a unidade de controlo 118 considera que existe uma conexão quando o IU de comando de transporte 172 é aceite. 0 canal 118 não está assim consciente se a unidade de controlo 118 tenha aceite o TCCB 170 ou do progresso da operação de I/O no dispositivo 116 até que a operação de I/O seja terminada pela unidade de controlo 118 com um IU de resposta de transporte. Numa forma de realização, o canal 128 pode definir uma janela de tempo durante a qual receba uma resposta proveniente da unidade de controlo, de forma que se o canal não receber um IU de resposta de transporte dentro da janela, o canal reconheça uma situação de tempo de espera esgotado. 62 ΡΕ2593878
No estádio 304, quando o TCCB 170 tenha sido aceite, a unidade de controlo 118 processa a TCA 180 e executa cada uma das DCW 202. A DCW 202 em execução é reconhecida como a DCW corrente. Uma DCW 202 torna-se corrente quando é a primeira DCW de um programa em modo de transporte (isto é, a primeira DCW num TCCB) e tenha sido seleccionada pelo dispositivo de I/O 116 para execução ou quando, durante o encadeamento de comandos, uma DCW 202 subsequente tome controlo da operação de I/O. A primeira DCW a ser executada pode ser considerada como estando localizada com o desfasamento zero da TCA 180 no TCCB 170. Cada DCW adicional no programa de canal está localizada na TCA 180 (ou numa TCAX 220) e é utilizada quando a DCW é necessária ao dispositivo de 1/0 116. O encadeamento de comandos é controlado pelo sinalizador de comando de encadeamento de DCW (CC) na DCW. Este sinalizador especifica a acção a ser tomada após a exaustão da DCW corrente. 0 encadeamento tem lugar entre DCWs sucessivas dentro da TCA. Quando é especificada uma TCAX, o encadeamento também tem lugar entre a última DCW na TCA e a primeira DCW na TCAX, e entre sucessivas DCWs dentro da TCAX. Quando a DCW corrente especifica o encadeamento de comandos e não tenham sido detectadas condições não usuais durante a operação, a finalização da DCW corrente dá origem a que a DCW seguinte se torne a DCW corrente e seja executada pelo dispositivo. Se é especificada uma TCAX e o desfasamento da DCW seguinte passa o fim da TCA, o encadeamento continua com a primeira 63 ΡΕ2593878 DCW da TCΑΧ cujo desfasamento de TCAX é determinado subtraindo o comprimento da TCA ao desfasamento calculado. Assim, o encadeamento de comandos prossegue por ordem ascendente de desfasamentos de TCA, e então a TCAX desfasa quando uma TCAX é especificada. Se uma condição tal como uma atenção, verificação de unidade, excepção de unidade, ou comprimento incorrecto tenha ocorrido(a menos que o campo SLl 214 na DCW esteja activado) , a sequência de operações é concluída, e o estado associado à operação corrente provoca uma condição de interrupção a ser gerada. A nova DCW neste caso não é executada.
Dados que sejam requeridos para serem transferidos por via de operações de 1/0 são enviados entre o canal 128 e a unidade de controlo 118 por via de um ou mais IUs de dados de transporte durante o processamento das DCWs 202 num TCCB 170. Uma operação de leitura realiza apenas uma transferência de dados de leitura, uma operação de escrita realiza apenas uma transferência de dados de escrita e uma operação bidireccional pode realizar tanto uma transferência de dados de leitura como de escrita.
Em referência à Figura 15, para uma operação bidireccional de escrita, o canal 128 envia um ou mais IUs de dados de transporte 310 para a unidade de controlo 118 para transferir dados de escrita 312 para a operação. Para uma operação de leitura ou bidireccional, a unidade de controlo 118 envia pelo menos um IU de dados de transporte 314 para o canal 128 para transferir dados de leitura 316 — 64 — ΡΕ2593878 especificados para a operação. Podem ser incluídos bytes de enchimento 318 na última palavra de uma área de dados para a qual seja para ser calculado o CRC e sejam utilizados para encher a área de dados para a próxima extremidade de palavra quando a área de dados a ser coberta não seja um número inteiro de palavras de dados. Isto aplica-se a áreas de dados a serem cobertas pelo COB, CRC intermédio e final. 0 valor utilizado para um byte de enchimento está dependente do modelo.
Um campo de CRC final 320 está incluído num IU de dados de transporte 310, 314 quando o IU de dados de transporte é o último IU de dados de transporte enviado pelo canal 128 ou pela unidade de controlo 118 para uma operação de I/O de TCW. Numa forma de realização, o campo de CRC final 320 inclui um código de verificação de redundância de 32 bits alinhado por palavra. Para operações de leitura ou de escrita, o campo DL no TCCB 170 especifica a quantidade de dados a serem transferidos durante a operação, o que pode incluir todos os bytes de enchimento e de CRC requeridos. Para operações bidireccionais, o campo DL no TCCB 170 especifica a quantidade de dados a serem transferidos para a porção de transferência de dados de escrita da operação e o campo BRDL especifica a quantidade de dados a serem transferidos para a porção de transferência de dados de leitura da operação. Estas quantidades podem incluir todos os bytes de enchimento e de CRC requeridos. 65 ΡΕ2593878
Durante uma transferência de dados de escrita ou bidireccional, os dados de saída são transferido em um ou mais IUs de dados de transporte 310 para a unidade de controlo 118 na permuta de transporte associada à operação de I /0 de TCW. Numa forma de realização, quando está desactivada a condição pronto para primeira transferência, excepto para o primeiro IU de dados de transporte de escrita 310 de uma operação, o canal 128 requer um IU de pronto de transferência proveniente da unidade de controlo 118 antes de enviar cada IU de pronto de transferência 310. A unidade de controlo 118 pode requerer dados adicionais enviando IUs de pronto de transferência adicionais até que ele tenha requerido a totalidade dos dados especificados pelo campo DL 186 do TCCB 170 para a operação de escrita. Para uma operação de escrita, o IU seguinte enviado pela unidade de controlo 118 a seguir à finalização da transferência de dados especificada pelo campo DL no TCCB é um IU de resposta de transporte. Para uma operação bidireccional, o IU seguinte enviado pela unidade de controlo 118 a seguir à finalização da transferência de dados especificada pelo campo DL no TCCB pode ser um IU de dados de transporte ou um IU de resposta de transporte.
Durante uma transferência de dados de leitura, os dados são transferidos em um ou mais IUs de dados de transporte 314 para o canal 128 na permuta de transporte associada à operação de I/O de TCW. A quantidade de dados enviados em cada IU de dados de transporte é determinada pela unidade de controlo 118 e pode ser definido como 66 ΡΕ2593878 qualquer valor desde que a quantidade total de dados transferidos em todos os IUs de dados de transporte 314 para a operação não exceda o valor no campo DL 186 ou, para operações bidireccionais, o valor no campo BRDL 188. Para operações de leitura, se a quantidade de dados enviados pela unidade de controlo é menor do que o campo DL no TCCB, a contagem residual no DL no IU de resposta de transporte deverá ser a diferença entre a quantidade de dados enviados pela CU e o campo DL no TCCB. 0 canal reconhece um ero de protovolo de nível de dispositivo se a contaqem residual proporcionada pela unidade de controlo no IU de resposta de transporte não corresponde à diferença entre o DL e o número de bytes actualmente recebidos pelo canal.
Para operações de escrita e bidireccionais, a contagem residual do DL no IU de resposta de transporte deverá ser a diferença entre a quantidade de dados enviados pelo canal e o campo DL no TCCB. 0 canal reconhece um erro de protocolo de nível de canal se a contagem residual do DL proporcionada pela unidade de controlo no IU de resposta de transporte não corresponde à diferença entre o DL e o número de bytes actualmente enviados para o canal. Para operações bidireccionais, se a quantidade de dados enviados pela unidade de controlo é menor do que o campo BRDL no TCCB, a contagem residual no BRDL no IU de resposta de transporte deverá ser a diferença entre a quantidade de dados enviados pela CU e o campo BRDL no TCCB. 0 canal reconhece um erro de protocolo de nível de dispositivo se a contagem residual do BRDL proporcionada pela unidade de 67 ΡΕ2593878 controlo no IU de resposta de transporte não corresponde à diferença entre o BRDL e o número de bytes actualmente recebidos pelo canal.
Para uma operação de escrita ou bidireccional, quando está desactivada a condição de pronto para primeira transferência, o canal envia um IU de dados de transporte imediatamente a seguir ao IU de comando de transporte. Para todos os IUs de dados de transporte provenientes do canal após o primeiro IU de dados de transporte e para todos os IUs de dados de transporte provenientes do canal quando a condição de pronto para primeira transferência não está desactivada, o canal deverá enviar um IU de dados de transporte de escrita apenas após ter recebido um IU de pronto para transferência. 0 canal deverá enviar um IU de dados de transporte após cada IU de pronto para transferência ter sido recebido até que todos os dados de escrita especificados pelo TCCB sejam transferidos ou seja recebido um IU de resposta de transporte.
Para uma operação de leitura ou bidireccional, a unidade de controlo envia pelo menos um IU de dados de transporte para o canal para transferir os dados lidos especificados para a operação.
Para operações bidireccionais, quando a condição de pronto para primeira transferência desactivada não está em efeito, a unidade de controlo selecciona o primeiro IU de dados de transporte a ser transferido. A unidade de 68 ΡΕ2593878 controlo ou envia um IU de dados de transferência para o canal para requere um IU de dados de transporte ou envia um IU de dados de transporte para o canal. Se a condição de pronto para primeira transferência desactivada está em efeito para a operação, o canal envia um IU de dados de transporte a seguir ao IU de comando de transporte.
Para operações bidireccionais, podem ser realizadas tanto operações de transferência de dados de escrita como de leitura. A transferência de dados de escrita e a transferência de dados de leitura podem ser realizadas como descrito acima. Excepto para o primeiro IU de dados de transporte quando a condição de pronto para primeira transferência desactivada está em efeito, a transferência de dados entre o canal e a unidade de controlo é controlada pela unidade de controlo tanto pelo envio de um IU de dados de transporte de leitura como pelo envio de um IU de pronto para transferência para requere um IU de dados de transporte de escrita. A ordem pela qual os dados que tenham sido recebidos num IU de dados de transporte estão armazenados no armazenamento do hospedeiro em relação com a ordem pela qual os dados são procurados a partir do armazenamento no hospedeiro para serem enviados num IU de dados de transporte pode ser imprevisível para uma operação bidireccional.
Quando o canal transfere um primeiro IU de dados 69 ΡΕ2593878 de transporte quando a condição de pronto para primeira transferência está desactivada está em efeito ou quando a unidade de controlo requer um IU de dados de transporte do canal enviando um IU de pronto para transferência, os dados enviados pelo canal no IU de dados de transporte podem ser para DCWs de escrita que são executadas subsequentemente à execução de DCWs de leitura na TCA.
Como se mostra na Figura 15, podem estar presentes uma ou mais palavras de CRC intermédias 320 num IU de dados de transporte 310 enviado pelo canal 128. As palavras de CRC intermédias 320 proporcionam a verificação de CRC de áreas de dados antes da transmissão da área de dados inteira especificada pela TCA 180. Uma palavra de CRC de COB 322 pode estar presente num IU de dados de transporte 310 quando um COB 222 está a ser transferido no IU de dados de transporte.
Em referência novamente à Figura 14, no estádio 305, a operação de I/O de TCW é terminada tanto pelo canal 128 como pela unidade de controlo 118. O canal 128 pode iniciar a finalização de uma operação de I/O de TCW como resultado de uma condição anormal ou da finalização de um programa iniciado. A unidade de controlo 128 pode iniciar a finalização da operação como resultado da finalização da execução da operação ou como o resultado de uma condição anormal detectada durante a execução do comando. A unidade de controlo 128 pode iniciar a finalização de uma operação de I/O de TCW enviando um IU de resposta de transporte ou, 70 ΡΕ2593878 no caso de certos erros, abortando a permuta. Numa forma de realização, a unidade de controlo 118 pode iniciar a finalização de uma operação de I/O de TCW sob qualquer das circunstâncias seguintes: tendo sido executadas a totalidade das DCWs 202 na TCA 180 (e uma TCAX se especificada); tenha sido detectada uma condição de comprimento incorrecto para uma DCW quando a funcionalidade de comprimento incorrecto de DCW seja suportada e o sinalizador SLI 214 esteja definido como zero; tenha sido detectada uma condição de verificação de unidade; uma situação anormal tal como um ero de transporte, ou outro erro seja reconhecido que requeira que a permuta seja abortada.
As Figuras 16-18 ilustram um IU de resposta de transporte 330 exemplificativo que pode ser enviado por uma unidade de controlo 118. 0 IU de Resposta de Transporte 330 proporciona estado para a operação de I/O de TCW, que pode incluir um estado de finalização normal ou, quando tenha sido detectada uma condição anormal, estado de finalização que indique a causa para a finalização anormal da operação. O IU de resposta de transporte 330 pode também incluir um campo de estado estendido que proporcione estado adicional para a operação. Um IU de resposta de transporte pode ou não fechar uma permuta de transporte. Numa forma de realização, se uma permuta foi ou não fechada por um IU de resposta de transporte está indicado no cabeçalho FC-FS-3. Se a permuta de transporte não foi fechada pelo IU de resposta de transporte, o canal pode enviar um IU de 71 ΡΕ2593878 confirmação de transporte que feche a permuta após receber o IU de resposta de transporte.
Numa forma de realização, o IU de resposta de transporte 330 inclui um cabeçalho SB-4 332 seguido de um campo de estado 334, um estado LRC 344, e um campo de estado estendido 346 opcional contendo desde, por exemplo, 32 a 64 bytes. Quando é proporcionado estado estendido, pode ser proporcionado um campo de LRC de estado estendido de 4 bytes 340 como a última palavra do IU de resposta de transporte 330. São adicionados bytes de enchimento ao estado estendido para arredondar para a próxima extremidade de palavra se o número de bytes de estado estendido não está numa extremidade de palavra. O cabeçalho SB-4 332 tem um formato similar ao do IU de comando de transporte e é definido de forma igual ao cabeçalho SB-4 no IU de comando de transporte para esta permuta.
Em referência à Figura 17, uma forma de realização da área de estado 334 é, por exemplo, 20 bytes e contém informação acerca da operação de I/O de TCW. Um campo "sinalizadores de estado 1" 336 inclui um ou mais códigos de excepção que são definidos pela unidade de controlo 118 para reportar uma condição anormal detectada durante uma operação de I/O de TCW. Códigos exemplificadores incluem: 0 - Excepção de nível de dispositivo devida a uma condição de excepção de endereço; 72 ΡΕ2593878 2 - Rejeição de nível de ligação devida a uma condição de percurso lógico não estabelecido; 3 - Notificação de evento de reinicialização - ocorreu um evento de reinicialização no percurso lógico e no dispositivo associado ao IU de comando de transporte. Quando este código é definido no IU de resposta de transporte, a unidade de controlo requer confirmação de estado para o estado. Se a confirmação de estado é recebida, a condição de evento de reinicialização é reinicializada no dispositivo para o percurso lógico; caso contrário, a condição de evento de reinicialização permanece pendente; 4 - Verificação de programa detectada por dispositivo/IFCC - a unidade de controlo detectou uma condição que pode resultar numa verificação de programa ou IFCC a ser reportada. Os erros que caem nesta categoria incluem erros que indicam que o IU de comando de transporte chegou num estado corrompido (por exemplo, erro de integridade de TCCB), CRC inválido detectado para dados de escrita, e recepção de uma segunda operação de 1/0 para um percurso lógico e endereço de dispositivo que não é uma operação de interrogação. 5 - Verificação de programa detectada por dispositivo a unidade de controlo detectou um erro no conteúdo do TCH. 73 ΡΕ2593878
Numa forma de realização, o campo de sinalizadores de estado 1 336 inclui um sinalizador de Comprimento Incorrecto (IL) 338. Quando a funcionalidade de comprimento incorrecto de DCW é suportada pelo canal e pela unidade de controlo, o bit 0 é o sinalizador de IL e, quando definido como um, deverá indicar que a operação de I/0 de TCW foi terminada devido a uma condição de comprimento incorrecto para a DCW indicada pelo desfasamento de DCW. Um comprimento incorrecto é detectado pela unidade de controlo 118 se a contagem de dados de DCW não corresponde à quantidade de dados requeridos pelo dispositivo para uma DCW de escrita ou se a contaqem de dados de DCW não corresponde à quantidade de dados disponíveis no dispositivo para uma DCW de leitura.
Numa forma de realização, se a DCW 202 inclui um sinalizador SL1 214, o sinalizador IL 338 é definido como um apenas quando o sinalizador SL1 214 é zero e quando o estado do dispositivo inclui estado de terminação de canal sem estado de verificação de unidade. Quando o sinalizador IL 338 é definido como um num IU de resposta de transporte, o desfasamento de DCW identifica a DCW contendo a condição de comprimento incorrecto e a contagem residual da DCW indica a quantidade de dados transferidos, se algum, que foram transferidos para a DCW de comprimento incorrecto. A transferência de dados, se alguma, para DCWs que precederam a DCW de comprimento incorrecto na TCA deverão ser completadas e todas as verificações de CRC sobre os dados transferidos deverão ser realizadas como descrito abaixo. 74 ΡΕ2593878
Quando a DCW contendo a condição de comprimento incorrecto é uma DCW de leitura, o último IU de dados de transporte enviado para o canal INCLUI CRC para todos os dados de leitura transferidos para o canal durante a operação de 1/0 de TCW. Se DCWs de escrita precederam a DCW de leitura com comprimento incorrecto na TCA, os dados para estas DCWs de escrita deverão ter sido recebidos pela unidade de controlo e a verificação de CRC deverá ter sido realizada sobre os dados. Os dados para DCWs de escrita na TCA que se seguem à DCW de leitura de comprimento incorrecto deverão ser transferidos para a unidade de controlo conforme o necessário para obter o CRC para os dados de escrita e para realizar a verificação de CRC. A condição de comprimento incorrecto não é reconhecida por um comando de interrogação, um comando de desfasamento de CRC de transferência ou por um comando TTE independentemente de a funcionalidade de comprimento incorrecto ser suportada pelo canal e pela unidade de controlo. 0 IU de resposta de transporte 330 pode também incluir um campo de Contagem de Comprimento Residual de Dados (DLRC) 340. Para operações de escrita e bidireccionais, a contagem residual de DL é de 32 bits, inteiro binário sem sinal que especifica a diferença entre o campo DL no IU de comando de transporte e o número de bytes actualmente recebidos a partir do canal. Para operações de leitura, a contagem residual de DL é de 32 75 ΡΕ2593878 bits, inteiro binário sem sinal que especifica a diferença entre o campo DL no IU de comando de transporte e o número de bytes actualmente enviados para o canal.
Para operações bidireccionais, um campo de contagem residual BRDL 342 pode também ser incluído no IU de resposta de transporte 330. Para operações bidireccionais, a contagem residual BRDL é de 32 bits, inteiro binário sem sinal que especifica a diferença entre o campo BRDL no IU de comando de transporte e o número de bytes actualmente enviados para o canal.
Um campo de Sinalizadores de Estado 3 344 pode ser utilizado pela unidade de controlo 118 para proporcionar informação adicional acerca da operação em modo de transporte associada. Este campo pode incluir um bit de Estado Estendido Enviado (ESS) para indicar que o estado estendido, incluindo possíveis dados de sentido, foi enviado no IU de resposta de transporte. O estado estendido inclui sinalizador de estado estendido (ES) que incluem campos tais como um campo de Código de Tipo ES. Os códigos de tipo incluem estado de I/O (a área de estado estendido contém estado de finalização válida para a operação de I/O em modo de transporte), Excepção de I/O (a área de estado estendido contém informação a respeito da finalização da operação de I/O em modo de transporte devido a uma condição de excepção), e estado de Interrogação (a área de estado estendido contém estado para uma operação de interrogação). 76 ΡΕ2593878
Quando o código de tipo ES no Sinalizador ES é uma excepção de 1/0, o ES inclui códigos de razões (RC). Os códigos de razões exemplificativos incluem: 1 - Erro de integridade de TCCB: a unidade de controlo determinou que o TCCB chegou num estado corrompido (proporcionado quando o código de excepção 4 está indicado campo do sinalizador de estado 1); 2 - Detectado CRC inválido: foi detectado um CRC inválido nos dados recebidos (proporcionado quando o código de excepção 4 está indicado no campo de sinalização de estado 1); 3 - Especificação de comprimento de TCCB incorrecta (proporcionado quando o código de excepção 5 está indicado no campo de sinalizador de estado 1); 4 - Erro de especificação de TCAH (proporcionado quando o erro de excepção 5 está indicado no campo de sinalização de estado 1); 5 - Erro de especificação de DCW: há um erro com a DCW designada pelo campo de desfasamento de DCW no estado estendido (proporcionado quando o código de excepção 5 está indicado no campo de sinalizador de estado 1); 6 - Erro de especificação de direcção de transferência: o comando especificado pela DCW designada 77 ΡΕ2593878 pelo campo de desfasamento de DCW no estado estendido especifica uma direcção de transferência de dados que não está em concordância com a direcção de transferência especificada no TCH ou ambos os bits R e W estão definidos como um no TCH e a transferência de dados bidireccional não é suportada pela unidade de controlo (proporcinado quando o código de excepção 5 está indicado no campo de sinalizador de estado 1); 7 - Erro de especificação de contagem de transporte (proporcionado quando o código de excepção 5 está indicado no campo de sinalizador de estado 1); 8 - Duas operações de 1/0 activas: Enquanto uma operação de 1/0 está activa no dispositivo um segundo TCCB não interrogativo foi transportado para o dispositivo para execução. 0 campo RCQ não tem significado. Este código de razão é proporcionado quando o código de excepção 4 está indicado no campo de sinalizador de estado 1; e 9 - Uma ou mais entradas no bloco de desfasamento de CRC indicam que um CRC intermédio não está numa localização que é apropriada para o dispositivo e/ou comando a ser executado proporcionado quando o código de excepção 4 está indicado no campo de sinalizadores de estado 1. 0 Estado Estendido pode também proporcionar um Qualificador de Código de Razão (RCQ) que proporciona 78 ΡΕ2593878 informação adicional acerca da ou das razões para a excepção de 1/0. Podem ser utilizados diferentes tipos de qualificadores de códigos de razão para diferentes tipos de erros, tais como erros de integridade de TCCB, Erros de CRC de Dados de Saída, Especificações de Comprimento de TCCB Incorrectas, Erros de Especificação de TCAH e Erros de Especificação de DCW. Os RCQs exemplificativos para erros de integridade de TCCB incluem: 0 - Sem informação adicional; 1 - Erro de Contagem de Dados - a quantidade de dados transferidos para o IU de comando de transporte não é equivalente à quantidade de dados especificada pelo campo LI mais 8 no TCH para unidades de controlo que não suportam operações bidireccionais ou não é equivalente à quantidade especificada pelo campo LI mais ou 8 ou 9 para unidades de controlo que suportam operações bidireccionais; e 2 - Erro de LRC - o LRC no IU de comando de transporte é inválido. RCQs exemplif icativos para um ero de especificação de DCW incluem: 1 - Erro de especificação de campo reservado: Um campo reservado na DCW que é requerido para conter zeros contém um valor não zero; 79 ΡΕ2593878 2 - Erro de especificação de encadeamento de comandos do campo de sinalizadores: 0 bit de encadeamento de comandos é um e o desfasamento da DCW seguinte é tal que a totalidade ou parte da próxima DCW se estende para lá do fim da TCA, ou o bit de encadeamento de comandos é zero e mais do que 3 bytes não utilizados permanecem na TCA; 3 - Erro de especificação de contagem de dados de controlo: A contagem CD especifica dados de controlo que passam para além do fim da TCA;
4 - Erro de localização da DCW de TCOB: A primeira DCW de TCOB não é a primeira DCW na TCA; 5 - Erro de duplicação de DCW de TCOB: Mais do que uma DCW de TCOB está especificada na TCA; 6 - Erro de especificação de contagem múltipla de DCW de TCOB: Ambas as contagens DC e a contagem de dados de DCW são ou zero ou não zero; 7 - Erro de direcção de DCW de TCOB: Uma DCW de TCOB é especificada na TCA e o bit W na TCH é zero; 8 - Erro de encadeamento de DCW de TCOB: 0 bit de encadeamento de comandos na DCW de TCOB é zero; 9 - Erro de especificação de contagem de TCOB:
Uma DCW de TCOB tem uma contagem CD não zero ou uma 80 ΡΕ2593878 contagem de dados que não é um múltiplo de 4; 10 - Erro de localização da DCW de TTE: Uma DCW de TCOB não foi especificada e foi encontrada uma DCW de TTE que não é a primeira DCW na TCA ou uma DCW de TCOB foi especificada e a primeira DCW de TTE encontrada não é a segunda DCW na TCA; 11 - Erro de duplicação de DCW de TTE: Mais do que uma DCW de TTE foi encontrada na TCA; 12 - Erro de especificação de contagem CD de DCW de TTE: A contagem de dados de controlo na DCW de TTE especifica um valor que não é zero; 13 - Erro de especificação de contagem de dados de DCW de TTE: A contagem de dados na DCW de TTE especifica um valor que é menor que 8 ou um valor que não é um múltiplo de 4; 14 - Erro de direcção de DCW de TTE: Uma DCW de TTE é especificada e o bit W no TCH é zero; 15 - Erro de encadeamento de DCW de TTE: O bit de encadeamento de comandos na DCW de TTE é zero; e 16 - Erro de especificação de TCAX: Uma DCW de TTE é especificada e algum do que se segue é verdadeiro: 81 ΡΕ2593878 0 comprimento da TCA é de 58 palavras ou menos, ou 0 comprimento da TCA é de 59 palavras, a última DCW na TCA especifica dados de controlo e o comprimento dos dados de controlo estendem-se para lá de 59 palavras, ou 0 comprimento da TCA é o comprimento máximo de 60 palavras e a última palavra na TCA contém a primeira palavra de uma DCW. RCQs exemplif icativas para um Erro de Especificação de Direcção de Transferência incluem: 1 - Erro de especificação de direcção de Leitura: A DCW especifica uma operação de entrada e o bit R no TCH é zero; 2 - Erro de especificação de direcção de escrita: A DCW especifica uma operação de saída e o bit W no TCH é zero. Nota - Uma especificação de DCW é reconhecida quando uma DCW de TCOB ou de TTE é especificada e o bit W no TCH é zero; 3 - Conflito de Leitura-Escrita: Ambos os bits R e W no TCH são um e a unidade de controlo não suporta operações bidireccionais ou a unidade de controlo suporta operações bidireccionais mas o IU de comando de transporte 82 ΡΕ2593878 não contém o campo BRDL, ou ambos os bits R e W não são um e o IU de comando de transporte contém o campo BRDL; RCQs exemplif icativos para um Erro de
Especificação de Contagem de Transporte incluem: 1 - Erro de especificação de contagem de leitura: para operações de leitura, o campo DL no TCCB especifica um valor que não é equivalente à contagem total de bytes de dados especificada pelas DCWs na TCA mais bytes de enchimento e de CRC; para operações bidireccionais, o campo BRDL no TCCB especifica um valor que não é equivalente à contagem total de bytes de dados especificada pelas DCWs de leitura na TCA mais bytes de enchimento e de CRC; e 2 - Erro de especificação de contagem de escrita: 0 campo DL no TCCB especifica um valor que não é equivalente à contagem total de bytes de dados especificada pelas DCWs de escritas na TCA mais bytes de enchimento intermédios, CRC intermédio, bytes de enchimento final e bytes de CRC final, e se um COB está incluído no primeiro IU de dados de transporte da transferência de dados de escrita, a contagem inclui o COB, quaisquer bytes de enchimento do COB e os bytes de CRC do COB. Se uma DCW de TTE está presente na TCA, a contagem também inclui os bytes de TCAX e de CRC de TCAX.
Ocorre uma verificação de programa quando são detectados erros de programação pelo subsistema de canal. 83 ΡΕ2593878
Para uma operação em modo de transporte, os erros de programação podem também ser detectados pelo dispositivo de 1/0 116 e são reportados como verificações de programa. Uma condição de verificação de programa pode ser devida a qualquer das seguintes razões:
Especificação de TCW Inválida: Quando é detectada qualquer das seguintes condições, é reconhecida uma especificação de TCW inválida: 1 - Um campo reservado que é verificado em relação a zeros na TCW não contém zeros. 2 - É especificado um valor não zero no campo de formato de TCW. 3 - Os bits de leitura e escrita na TCW são ambos um, o bit 10 do campo de sinalizadores da TCW é zero, e ou a funcionalidade de transferência de dados bidireccional FCX não está instalada ou o dispositivo especificado não suporta as transferências bidireccionais de dados. 4- 0 bit 10 do campo de sinalizadores de TCW é zero e o campo de comprimento de TCCB numa TCW especifica um comprimento que é menor que 12 ou maior que 244. 5- 0 bit 10 do campo de sinalizadores de TCW é um e o bit de operações de escrita (W) da TCW é zero, o bit das operações de leitura (R) da TCW é zero, ou ambos são 84 ΡΕ2593878 zero . 6-0 bit 10 do campo de sinalizadores de TCW é um e o subcanal designado não está associado a uma unidade de controlo que tenha sido configurada para transportar pedidos de serviço de canal de fibra.
Quando é utilizada uma DCW de TTE, é reconhecida uma verificação de programa detectada por dispositivo quando existe qualquer das seguintes condições: 1 - Quando uma DCW de TCOB não é especificada, a DCW de TTE não é a primeira DCW na TCA. Quando uma DCW de TCOB é especificada, a DCW de TTE não é a segunda DCW na TCA. 2 - A DCW de TTE está especificada e uma operação de escrita não está especificada (ou seja, o bit W na TCW é zero). 3-0 sinalizador de encadeamento de comandos na DCW de TTE é zero. 4 - Está especificada mais do que uma DCW de TTE. 5-0 campo de contagem de dados de controlo na DCW de TTE não contém zero. 6-0 campo de contagem contém menos do que 8 ou 85 ΡΕ2593878 um valor que não é um múltiplo de 4. 7 - Quaisquer dos que se seguem são verdadeiros para a TCA: A TCA nao contém pelo menos uma DCW que não seja uma DCW de comando de transporte. A TCA contém uma ou mais DCWs que não são DCWs de comando de transporte e o sinalizador de encadeamento de comandos na última DCW da TCA é zero.
Quando é utilizada uma DCW de TTE e TCMI e/ou dados de saida opcionais se seguem à TCAX, o que se segue deverá ser verdade; caso contrário, pode ser reconhecida uma verificação de programa detectada por dispositivo: 0 sinalizador de TIDA de saida (bit 7 dos sinalizadores) na TCW deve ser um; ou
Quando são utilizadas TIDAWs para a transferência de uma TCAX e para a transferência de dados, o controlo de inserção de CBC deverá ser definido como um na última ou única TIDAW que é utilizada para transferir a TCAX. Quando são utilizadas TIDAWs para a transferência apenas da TCAX, não é necessário definir o controlo de inserção de CBC na última ou única TIDAW.
Durante o processamento de uma TCA, pode ser 86 ΡΕ2593878 reconhecido um erro de conteúdo de TCCB quando quaisquer das seguintes condições são detectadas: 1 - A primeira DCW de TCOB encontrada não é a primeira DCW na TCA; 2 - É encontrada uma segunda DCW de TCOB na TCA; 3 - É encontrada uma DCW de TCOB na TCA quando o bit W no TCAH é zero; 4 - Uma DCW de TCOB não tem o sinalizador de encadeamento activado; 5 - É encontrada uma DCW de TCOB na qual ambas as contagens de CD e contagens de dados são zero; 6 - É encontrada uma DCW de TCOB na qual ambas as contagens de CD e contagens de dados são não zero; 7 - É encontrada uma DCW de TCOB na qual a contagem de CD é zero e a contagem de dados não é um múltiplo de 4; 8 - É encontrada uma DCW de TCOB na qual a contagem de dados é zero e a contagem de CD não é um múltiplo de 4;
9 - Uma DCW de TCOB nao está especificada e a DCW 87 ΡΕ2593878 de TTE nao é a primeira DCW na TCA ou um TCOB é especificado e a DCW de TTE não é a segunda DCW na TCA; 10 - É encontrada uma DCW de TTE na TCA quando o bit W no TCAH é zero; 11 - Uma DCW de TTE não tem o sinalizador de encadeamento activado; 12 - É encontrada uma segunda DCW de TTE na TCA; 13 - É encontrada uma DCW de TTE na qual a contagem CD é não zero; 14 - É encontrada uma DCW de TTE na qual a contagem de dados é zero ou não é um múltiplo de 4; 15 - Uma DCW de TTE é especificada e qualquer do que se segue é verdadeiro: o comprimento da TCA é de 58 palavras ou menos; o comprimento da TCA é de 59 palavras, a última DCW na TCA especifica dados de controlo e o comprimento dos dados de controlo estende-se para lá de 59 palavras; ou o comprimento da TCA é o comprimento máximo de 60 palavras e a última palavra na TCA contém a primeira palavra de uma DCW; 16 - Uma DCW contém um comando que requer dados de controlo e o campo de contagem CD é zero ou contém um valor que especifica dados que ultrapassam o fim da TCA; ΡΕ2593878 17 - Uma DCW contém um campo de contagem CD que é não zero e o comando não permite que sejam proporcionados dados de controlo; 18 - Durante uma operação de escrita, o dispositivo encontra um comando na TCA que tenta realizar uma transferência de dados de leitura; 19 - Durante uma operação de leitura, o dispositivo encontra um comando na TCA que tenta realizar uma transferência de dados de escrita; 20-0 bit CC é um numa DCW e permanecem mais do que 3 bytes não utilizados na TCA; 21 - 0 bit CC é um numa DCW e a próxima localização de DCW é determinada como sendo menos do que 8 bytes desde o fim da TCA que indica e uma TCAX não foi proporcionada, ou uma TCAX foi proporcionada e a próxima localização de DCW é determinada como sendo menos do que 8 bytes desde o fim da TCAX; 22 - Para uma operação de leitura ou bidireccional, quando uma DCW de leitura na TCA se torna corrente, a soma das contagens de dados para todas as DCWs de leitura anteriores e da DCW corrente mais todos os bytes de enchimento e de CRC excede o campo DL no TCCB ou, para operações bidireccionais, excede o campo BRDL no TCCB; 89 ΡΕ2593878 23 - Para uma operação de leitura ou bidireccional, quando a última DCW na TCA se torna corrente, a soma das contagens de dados para todas as DCWs de leitura mais todos os bytes de enchimento e de CRC não é igual ao campo DL no TCCB ou, para operações bidireccionais, não é igual ao campo BRDL no TCCB; 24 Para uma operação de escrita ou bidireccional, quando uma DCW na TCA se torna corrente, a soma das contagens de dados para todas as DCWs de escrita mais todos os bytes de enchimento e de CRC (incluindo todos os bytes de enchimento e de CRC intermédios), e se está incluído um COB no IU de dados de transporte, o COB, os bytes de enchimento do COB e de CRC do COB, e se está presente uma TCAX, a TCAX, os bytes de enchimento da TCAX, e de CRC da TCAX, excede o campo DL no TCCB; ou 25 - Para uma operação de escrita ou
bidireccional, quando a última DCW na TCA se torna corrente, a soma das contagens de dados para todas as DCWs de escrita mais todos os bytes de enchimento e de CRC
(incluindo todos os bytes de enchimento e de CRC intermédios) , e se está incluído um COB no IU de dados de transporte, o COB, os bytes de enchimento do COB e de CRC do COB, e se está presente uma TCAX, a TCAX, os bytes de enchimento da TCAX, e de CRC da TCAX, não é igual ao campo DL no TCCB.
Numa forma de realizaçao, antes de realizar 90 ΡΕ2593878 operações em modo de comando ou em modo de transporte, são estabelecidas ligações entre o subsistema de canal 114 e as unidades de controlo 118 e/ou dispositivos 116. Cada canal 128 no sistema de I/O que tem uma ligação física com uma ou mais unidades de controlo pode ser referido como um "N_Port" que tem um identificador único (um "N_Port_ID") . De forma semelhante, cada unidade de controlo 118 pode também ser referida como um N_Port tendo um N_Port_ID associado. Ambos de um canal 128 e uma unidades de controlo 118 podem incluir múltiplas imagens de canal ou imagens de unidades de controlo, respectivamente. Cada N_Port inclui um identificador de endereço que é atribuído durante a inicialização e o desempenho de um procedimento de início de sessão. Pode ser realizado o início de sessão explícito de N_Port por meio do serviço de ligação estendido de início de sessão a N__Port (PLOGI) durante o processo de inicialização. Quando um N_Port realizou o início de sessão de N_Port com outro N_Port, esse N_Port é dito como estando com sessão iniciada com o outro N_Port.
Numa forma de realização, a inicialização de ligação entre o subsistema de canal e as unidades de controlo é realizada utilizando o protocolo de serviço de ligação estendida (ELS) de início de sessão de processo (PRLI). Aspectos gerais dos ELS de PRLI, incluindo o formato do pedido e resposta de ELS de PRLI, estão dados em "Fibre Channel: Link Services (FC-LS-2)", Til Project 2103-D, Revision 2.00, 26 de Junho de 2008, com definições específicas para FC-SB-4 definido nas secções abaixo. 91 ΡΕ2593878
Durante um procedimento de PRLI, um canal 128 que suporte PRLI envia um pedido para cada unidade de controlo 118 na sua configuração que também suportem o inicio de sessão de processo ELS para determinar qual unidade de controlo 118 suporta operações em modo de transporte. Numa forma de realização, o pedido de PRLI é enviado durante a inicialização do canal antes de estabelecer percursos lógicos e pode também ser enviado como o resultado de um fim de sessão de processo (PRLO). 0 ELS de PRLI é utilizado para permutar parâmetros de serviços de inicio de sessão de processo entre um canal 128 e a unidade de controlo 118. Um pedido de ELS de PRLI pode ser enviado por um canal para uma unidade de controlo quando são estabelecidos percursos lógicos com a unidade de controlo e aplica-se a todos os percursos lógicos estabelecidos. Podem ser permutados parâmetros entre um canal e unidade de controlo por via de um pedido de PRLI e uma resposta a PRLI.
Numa forma de realização, se uma unidade de controlo recebe um pedido de ELS de PRLI que irá modificar os parâmetros de serviço para um inicio de sessão de processo já em efeito com o canal, a unidade de controlo responde ao pedido de ELS de PRLI com uma rejeição de ligação de serviço (LS_RJT). A resposta LS_RJT é enviada com o código de razão "09" em Hexadecimal, "incapaz de realizar pedido de comando neste momento". Após a unidade de controlo enviar a LS_RJT, a unidade de controlo deverá enviar um pedido de fim de sessão de processo (PRLO) ELS para o canal para permitir uma nova tentativa do pedido de 92 ΡΕ2593878 ELS de PRLI a partir do canal para ser realizada com sucesso.
Em referência à Figura 18, o pedido de PRLI inclui uma página de parâmetros de serviço, que inclui vários campos utilizados para estabelecer parâmetros de serviço. Por exemplo, a página de parâmetros de serviço 400 pode incluir um campo de Código de Tipo 402 que identifica um modo de transporte ou protocolo FC-4 (por exemplo, é definido como "1B" em Hexadecimal para indicar o protocolo SB-4) . Um campo de extensão de tipo de código 404 (por exemplo, byte 1 da palavra 0) é definido como zero. Um campo de Sinalizadores FC-LS-2 406 (por exemplo, bits 16-19 da palavra 0) podem ser definidos pelo canal como se segue:
Bit 16 - Originator Process Associator Validity: este bit é definido como zero pelo canal e ignorado pela unidade de controlo;
Bit 17 - Responder Process Associator Validity: este bit é definido como zero pelo canal e ignorado pela unidade de controlo;
Bit 18 - Establish Image Pair: este bit é definido como zero pelo canal e ignorado pela unidade de controlo; e
Bit 19 - Reservado: este bit é definido como zero pelo canal e ignorado pela unidade de controlo. 93 ΡΕ2593878 A página de parâmetros de serviço pode incluir campos adicionais tais como um campo de Originator Process Associator 408 (por exemplo, palavra 1) que é definido como zero pelo canal, e um campo Responder Process Associator 410 (por exemplo, palavra 2) . Um campo de Tempo Máximo de Atraso de Iniciação 412 (por exemplo, byte 0 da palavra 3) contém um inteiro binário que especifica em unidades de segundos o valor máximo que a unidade de controlo pode definir como o tempo de atraso de inicialização num pedido de fim de sessão de processo (PRLO) . Um pedido de PRLO é utilizado pelo canal ou pela unidade de controlo para terminar uma operação em modo de transporte entre o canal e a unidade de controlo. O valor de Tempo de Atraso de Inicialização Máximo é geralmente baseado na quantidade de tempo que o canal pode manter desligado na inicialização de novas operações de I/O sem criar disrupção no sistema hospedeiro.
Um campo de sinalizadores FC-SB-4 (por exemplo, Byte 3 da palavra 3 da página de pedido de PRLI) inclui um ou mais sinalizadores descritos abaixo: 0 - Modo de Transporte Suportado: Quando o bit 0 é definido como zero, o canal não suporta operações em modo de transporte. Quando o bit 0 é definido como um, o canal suporta operações em modo de transporte. 1
Reservado. 94 ΡΕ2593878 2 - Função de Comprimento Incorrecto de DCW (IL) Suportada. Por exemplo, quando um sinalizador IL está activada (por exemplo, quando o bit 2 está definido como um), a função de DCW IL é suportada pelo canal 128. Quando o bit 2 é definido como zero, a função DCW IL não é suportada pelo canal 128. A função DCW IL inclui suporte para o sinalizador de indicador de supressão de comprimento (SLI) 214 e para o sinalizador de comprimento incorrecto 338. Quando o bit de modo de transporte suportado (bit 0) é igual a zero, o bit 2 deverá ser definido como zero. 5 - Transferência de Dados Bidireccional Suportada. Quando uma indicação de transferência bidireccional está activada (por exemplo, o bit 5 é definido como um) a transferência de dados bidireccional é suportada pelo canal 128. Quando o bit 5 é definido como zero, a transferência de dados bidireccional não é suportada pelo canal. Este bit tem apenas significado quando o bit de modo de transporte suportado é igual a um. 7 - Pronto para Primeira Transferência Desactivada Suportada. Quando o bit 7 é definido como um, a operação de pronto para primeira transferência desactivado é suportada pelo canal. Quando o bit 7 é definido como zero, a operação de pronto para primeira transferência desactivado não é suportada pelo canal. Quando o bit de modo de transporte suportado (bit 0) é igual a zero, o bit 7 deverá ser definido como zero. 95 ΡΕ2593878
Quando tanto o canal como a unidade de controlo indicam suporte para pronto ara primeira transmissão desactivado, então é realizada a transferência de dados de escrita em modo de transporte com o pronto para primeira transferência desactivado em efeito, de forma que o canal pode enviar um primeiro IU de dados de transporte para a unidade de controlo sem ter que esperar por um IU de pronto para transferência proveniente da unidade de controlo. Se o canal ou a unidade de controlo indicam que não suportam pronto para primeira transferência desactivado então o pronto para primeira transferência desactivado não está em efeito para operações em modo de transporte.
Em referência à Figura 19, numa forma de realização, a resposta a PRLI inclui uma Página de Parâmetros de Serviço de PRLI Aceite 420, que pode incluir campos tais como um campo de Código de Tipo 402 que identifica o modo de transporte ou protocolo FC-4 (por exemplo, é definido como "1B" em Hexadecimal para indicar o protocolo SB-4), e um campo de extensão de código de tipo 404 (por exemplo, byte 1 da palavra 0) que é definido como zero. Um campo de Sinalizadores FC-LS-2 406 (por exemplo, bits 16-19 da palavra 0) podem ser definidos pelo canal como se segue:
Bit 16 - Originator Process Associator Validity: este bit é definido como zero pela unidade de controlo e ignorado pelo canal; 96 ΡΕ2593878
Bit 17 - Responder Process Associator Validity: este bit é definido como zero pela unidade de controlo e ignorado pelo canal;
Bit 18 - Establish Image Pair: este bit é definido como zero pela unidade de controlo e ignorado pelo canal; e
Bit 19 - Reservado: este bit é definido como zero pela unidade de controlo e ignorado pelo canal.
Um campo de Código de Resposta 422 (por exemplo, bits 20-23 da palavra 0) contém um inteiro binário indicando o resultado do Pedido de PRLI. Os significados dos valores dos códigos de resposta são definidos pelo FC-LS-2. Um campo de Dimensão de Primeira Rajada 424 (por exemplo, bytes 0-1 da palavra 3) contém um inteiro binário gue especifica a máxima quantidade de dados (por exemplo, em unidades de 4k bytes) que é permitido serem enviados no primeiro IU de dados de transporte para uma transferência de dados de escrita quando é suportado o pronto para primeira transferência desactivado tanto pelo canal como pela unidade de controlo. Um valor de zero indica que não há limite para a dimensão da primeira rajada. 0 campo de dimensão de primeira rajada 424 pode ser implementado por todas as unidades de controlo que suportem o pronto para primeira transferência desactivado. A página de Parâmetros de Serviço de PRLI Aceite 97 ΡΕ2593878 420 pode também incluir um campo de Sinalizadores de FC-SB-4 414 (por exemplo, byte 3 da palavra 3) que inclui um ou mais sinalizadores definidos como descrito abaixo: 0 - Modo de Transporte Suportado: Quando o bit 0 é definido como zero, a unidade de controlo 118 não suporta operações em modo de transporte. Quando o bit 0 é definido como um, a unidade de controlo 118 suporta operações em modo de transporte. 2 - Função de Comprimento Incorrecto de DCW (IL) Suportada. Quando o bit 2 está definido como um, a função de comprimento incorrecto de DCW (IL) é suportada pela unidade de controlo 118. Quando o bit 2 é definido como zero, a função DCW IL não é suportada pela unidade de controlo 118. A função comprimento incorrecto da DCW inclui suporte para o sinalizador SLI 214 e para o sinalizador de comprimento incorrecto 338. Quando o bit de modo de transporte suportado (bit 0) é igual a zero, o bit 2 deverá ser definido como zero. 5 - Transferência de Dados Bidireccional Suportada. Quando uma indicação de transferência bidireccional está activada (por exemplo, o bit 5 é definido como um) a transferência de dados bidireccional é suportada pela unidade de controlo 118. Quando o bit 5 é definido como zero, a transferência de dados bidireccional não é suportada pela unidade de controlo 118. Este bit tem apenas significado quando o bit de modo de transporte 98 ΡΕ2593878 suportado é igual a um. 7 - Pronto para Primeira Transferência Desactivada Suportada. Quando o bit 7 é definido como um, o pronto para primeira transferência desactivado é suportada pela unidade de controlo. Quando o bit 7 é definido como zero, a operação de pronto para primeira transferência desactivado não é suportada pela unidade de controlo. Quando o bit de modo de transporte suportado (bit 0) é igual a zero, o bit 7 deverá ser definido como zero.
Assim, o subsistema de canal e a unidade de controlo podem utilizar mensagens de inicio de sessão como mensagem de PRLI para proporcionar indicações de um para a outra a respeito dos seus respectivos suportes para transferências de dados bidireccionais. O subsistema de canal e/ou a unidade de controlo podem também proporcionar indicações para o sistema hospedeiro (por exemplo, o OS 110). Por exemplo, pode ser proporcionada uma indicação proveniente da unidade de controlo para o OS que a unidade de controlo suporta as transferências de dados bidireccionais. Numa forma de realização, o subsistema de canal proporciona uma indicação das capacidades do subsistema de canal e/ou da unidade de controlo, incluindo a capacidade para suportar as transferências de dados bidireccionais. Por exemplo, o subsistema de canal pode proporcionar informação de capacidade em resposta a uma instrução proveniente do OS. 99 ΡΕ2593878
Um exemplo de indicação de capacidade está apresentado nas Figuras 20 e 21. Como se mostra na Figura 20, o subsistema de canal pode enviar um bloco de descrição de percurso de canal 500 para o OS em resposta a uma instrução do OS (por exemplo, uma instrução STORE CHANNEL PATH DESCRIPTION). O bloco de descrição de percurso de canal 500 inclui campos tais como um campo de identificador de percurso de canal (CHPID) 502, um campo descritor 504 e um de dados específicos de descrição de canal (CDSD) 506. Em referência à Figura 21, um campo CDSD 506 exemplificador é uma palavra (por exemplo, palavra 5) do bloco de descrição do percurso de canal 500, e inclui um campo de comprimento de dados máximo (por exemplo, máximo comprimento de dados suportado para uma TCW/TCCB) 508. Por exemplo, os bits 0-15 do campo CDSD 506 definidos como (00 01 H) significam o máximo de bytes por TCW/TCCB é 64k. Um campo de suporte de extensão 510 (por exemplo, bit 31) indica o suporte para um protocolo ou extensão de protocolo tal como o protocolo FCX. Um campo adicional 512 (por exemplo, bits 16-30) pode incluir informação a respeito das capacidades do subsistema de canal. Por exemplo, um bit BIDI (por exemplo, bit 28) do campo 512 indica o suporte do subsistema de canal para transferências de dados bidireccionais. É proporcionada descrição adicional em "Determining Extended Capability of a Channel Path", Pedido de Patente dos Estados Unidos N.° 12/030 912, apresentado a 14 de Fevereiro de 2008, publicado como Publicação de 100 ΡΕ2593878
Patente dos Estados Unidos N.° 2009/0210557.
Efeitos técnicos e benefícios de formas de realização exemplificativas incluem a capacidade para transferir dados de suporte de transporte bem como comandos adicionais para a unidade de controlo, em adição a comandos de I/O e dados de suporte do dispositivo localizados num TCCB. Os efeitos técnicos também incluem a capacidade para continuar o processamento de DCWs apesar da detecção de uma condição de comprimento incorrecto, o que permite a uma unidade de controlo continuar a processar comandos de I/O sem a necessidade de terminar uma operação de I/O. Outros efeitos técnicos incluem a capacidade para transportar tanto dados de entrada como de saída entre um canal e uma unidade de controlo durante uma única operação de I/O. A terminologia aqui empregue é apenas para o propósito de descrever formas de realização particulares e não está intencionada para ser limitadora da invenção. Como aqui se utiliza, a forma singular "um", "uma" e "o" estão intencionadas para incluírem também as formas de plural, a menos que o contexto indique claramente de outra forma. Será adicionalmente entendido que os termos "inclui" e/ou "incluindo", quando utilizados nesta especificação, especificam a presença de características definidas, inteiros, passos, operações, elementos, e/ou componentes, mas não exclui a presença ou adição de uma ou mais outras características, inteiros, passos, operações, componentes de elementos, e/ou grupos deles. 101 ΡΕ2593878
As estruturas, materiais, actos, e equivalentes correspondentes de todos os significados ou passos mais elementos funcionais nas Reivindicações abaixo estão intencionados para incluírem qualquer estrutura, material, ou acto para realizar a função em combinação com outros elementos reivindicados como reivindicado especificamente. A descrição da presente invenção tem sido apresentada para propósitos de ilustração e descrição, mas não está intencionada para ser exaustiva ou limitada para a invenção na forma divulgada. Muitas modificações e variações serão evidentes para os peritos médios na arte sem haver afastamento do objectivo da invenção. A forma de realização foi escolhida e descrita de forma a melhor explicar os princípios da invenção e da aplicação prática, e para permitir a outros com perícia média na arte entenderem a invenção para várias formas de realização com várias modificações como serão adaptadas para a utilização particular contemplada.
Como será avaliado por um perito na arte, aspectos da presente invenção podem ser realizados como um sistema, método ou produto de programa de computador. Concordantemente, aspectos da presente invenção podem tomar a forma de uma forma de realização inteiramente em hardware, como inteiramente realizados como software (incluindo firmware, software residente, micro-código, etc.) ou uma forma de realização combinando aspectos de software e de hardware que podem ser todos geralmente referidos aqui como um “circuito", "módulo" ou "sistema". 102 ΡΕ2593878
Adicionalmente, aspectos da presente invenção podem tomar a forma de um produto de programa de computador enformado em um ou mais meios legíveis por computador tendo neles incorporado código de programa legível por computador.
Pode ser utilizada qualquer combinação de um ou mais meios legíveis por computador. O meio legível por computador pode ser um meio de sinal legível por computador ou um meio de armazenamento legível por computador. Um meio de armazenamento legível por computador pode ser, por exemplo, mas não limitado a, um sistema, ou dispositivo electrónico, magnético, óptico, electromagnético, por infravermelhos, ou de semicondutores, ou qualquer combinação adequada dos precedentes. Exemplos mais específicos (uma lista não exaustiva) do meio de armazenamento legível por computador incluirá o seguinte: uma conexão eléctrica tendo um ou mais fios, uma diskette de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória apenas de leitura (ROM), uma memória apenas de leitura programável apagável (EPROM ou memória Flash), uma fibra óptica, uma memória de disco compacto apenas de leitura portátil (CD-ROM), um dispositivo de armazenamento óptico, um dispositivo de armazenamento magnético, ou uma combinação adequada dos precedentes. No contexto deste documento, um meio de armazenamento legível por computador pode ser qualquer meio tangível que possa conter, ou armazenar um programa para utilização por ou em conexão com um sistema, aparelho, ou dispositivo de execução de instruções. 103 ΡΕ2593878
Um meio de sinal legível por computador pode incluir um sinal de dados propagado com código de programa legível por computador nele incorporado, por exemplo, em banda base ou como parte de uma onda portadora. Um tal sinal propagado pode tomar qualquer uma de uma variedade de formas, incluindo, mas não limitado a, electromagnético, óptico, ou qualquer combinação adequada deles. Um meio de sinal legível por computador pode ser qualquer meio legível por computador que não é um meio de armazenamento legível por computador e que pode comunicar, propagar, ou transportar um programa para utilização por ou em conexão com um sistema, aparelho, ou dispositivo de execução de instruções. O código de programa incorporado num meio legível por computador pode ser transmitido utilizando qualquer meio apropriado, incluindo mas não limitado a sem fios, linha de fio, cabo de fibra óptica, RF, etc., ou qualquer combinação adequada dos precedentes. O código de programa de computador para levar a cabo operações para aspectos da presente invenção pode ser escrito numa combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada por objectos tais como a Java, Smalltalk, C++ ou semelhantes e linguagens de programação processual convencionais, tais como a linguagem de programação "C" ou linguagens de programação similares. O código de programa pode ser executado inteiramente no computador do 104 ΡΕ2593878 utilizador, parcialmente no computador do utilizador, como um pacote de software autónomo, parcialmente no computador do utilizador e parcialmente num computador remoto ou inteiramente no computador remoto ou servidor. No último cenário, o computador remoto pode estar ligado ao computador do utilizador através de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede de área alargada (WAN), ou a ligação pode ser efectuada a um computador externo (por exemplo, através da Internet utilizando um Fornecedor de Serviços de Internet).
Aspectos da presente invenção estão descritos abaixo com referência a ilustrações de fluxogramas e/ou de diagramas de blocos de métodos, aparelhos (sistemas) e produtos de programa de computador de acordo com formas de realização da invenção. Será entendido que cada bloco das ilustrações de fluxograma e/ou diagramas de blocos, e combinações de blocos nas ilustrações de fluxogramas e/ou diagramas de blocos, podem ser implementadas por instruções de programa de computador. Estas instruções de programa de computador podem ser proporcionadas a um processador de um computador de uso geral, computador de uso especial, ou outro aparelho de processamento de dados programável para produzir uma máquina, de forma tal que as instruções, que executa por via do processador do computador ou outro aparelho processador de dados programável, cria meios para implementar as funções/actos especificados no fluxograma e/ou diagrama de blocos ou blocos. 105 ΡΕ2593878
Estas instruções de programa de computador podem também ser armazenadas num meio legivel por computador que possa dirigir um computador, outro aparelho processador de dados programável, ou outros dispositivos para funcionarem de uma maneira particular, de forma que as instruções armazenadas no meio legivel por computador produzam um artigo de manufactura incluindo instruções que implementem as funções/actos especificados no fluxograma e/ou diagrama de blocos ou blocos.
As instruções de programa de computador podem também ser carregadas num computador, outro aparelho processador de dados programável, ou outros dispositivos para originar uma série de passos operacionais a serem realizados no computador, outro aparelho programável ou outros dispositivos para produzir um processo implementado por computador de forma que as instruções que executam no computador ou outro aparelho programável proporcionem processos para implementar as funções/actos especificados no fluxograma e/ou diagrama de bloco ou blocos.
Os fluxogramas aqui esboçados são apenas um exemplo. Podem haver muitas variações a este diagrama ou nos passos (ou operações) neles descritas sem haver afastamento do objectivo da invenção. Por exemplo, os passos podem ser realizados por uma ordem diferente ou podem ser adicionados passos, ou podem ser apagados ou modificados passos. Todas estas variações são consideradas como parte da invenção reivindicada. 106 ΡΕ2593878
Embora tenha sido descrita a forma de realização preferida para a invenção, será entendido que os peritos na arte, tanto agora como no futuro, podem fazer vários aperfeiçoamentos e melhorias que caem dentro do objectivo das reivindicações que se seguem. Estas reivindicações deverão ser interpretadas para manterem a protecção apropriada para a invenção descrita primeiramente.
Lisboa 28 de Fevereiro de 2914

Claims (15)

  1. ΡΕ2593878 1 REIVINDICAÇÕES 1. Método de realização de uma operação de entrada/saída (1/0) iniciada por uma instrução de operação de I/0 num sistema de computador hospedeiro (102) configurado para comunicação com uma unidade de controlo (118), incluindo o método: enviar, por um subsistema de canal (114) no sistema de computador hospedeiro, uma mensagem de pedido de inicio de sessão de processo (PRLI) para a unidade de controlo para inicializar uma ligação entre o subsistema de canal e a unidade de controlo, incluindo a mensagem de pedido de PRLI (400) um campo tendo um valor que indica se o subsistema de canal suporta a transferência de dados bidireccional; receber uma mensagem de resposta ao PRLI (420) proveniente da unidade de controlo, incluindo a mensagem de resposta ao PRLI um campo tendo um valor que indica se a unidade de controlo suporta a transferência de dados bidireccional; proporcionar uma indicação para um sistema operativo hospedeiro que a transferência de dados bidireccional é suportada; e em resposta à execução da instrução de operação de 1/0 recebida a partir do sistema de computador hospedeiro, realizar um método incluindo: 2 ΡΕ2593878 recolher uma pluralidade de comandos (202) associados à instrução de operação de I/O recebida a partir do sistema de computador hospedeiro, pelo menos um da pluralidade de comandos especificando uma transferência de dados de entrada e pelo menos um da pluralidade de comandos especificando uma transferência de dados de saída; transferir a pluralidade de comandos para a unidade de controlo; enviar pelo menos uma mensagem de dados de saída para a unidade de controlo incluindo dados de saída para serem transferidos para a unidade de controlo, especificando a mensagem de dados de saída, associada ao pelo menos um da pluralidade de comandos, uma transferência de dados de saída; e receber pelo menos uma mensagem de entrada proveniente da unidade de controlo incluindo dados de entrada para serem armazenados num armazenamento principal (106) do sistema de computador hospedeiro, especificando a mensagem de dados de entrada, associada ao pelo menos um da pluralidade de comandos, uma transferência de dados de entrada.
  2. 2. Método da Reivindicação 1, em que a pluralidade de comandos são uma pluralidade de palavras de comando de dispositivo (DCW) (202) que cada uma está associada a um comando de I/O, e recolher inclui obter uma palavra de comando de transporte (TCW) (140) no subsistema 3 ΡΕ2593878 de canal no sistema de computador hospedeiro para a operação de 1/0, incluindo a TCW um campo de endereço de um bloco de controlo de comando de transporte (TCCB) (148) incluindo um endereço de um TCCB (170) no armazenamento principal do sistema de computador hospedeiro, incluindo o TCCB a pluralidade de DCWs, especificando pelo menos uma das DCWs uma transferência de dados de entrada e especificando, pelo menos uma das DCWs, uma transferência de dados de saída.
  3. 3. Método da Reivindicação 2, em que a transferência da pluralidade de comandos inclui transferir o TCCB incluindo a pluralidade de DCWs para a unidade de controlo.
  4. 4. Método da Reivindicação 3, em que a indicação está configurada para especificar se está em efeito uma condição de pronto para primeira transferência desactivada, e o método inclui adicionalmente: em resposta à condição de pronto para primeira transferência desactivada estar em efeito, enviar a pelo menos uma mensagem de dados de saída para a unidade de controlo a seguir à transferência do TCCB e antes de receber pelo menos uma mensagem proveniente da unidade de controlo; e em resposta à condição de pronto para primeira transferência desactivada não estar em efeito, receber a 4 ΡΕ2593878 pelo menos uma mensagem proveniente da unidade de controlo antes de enviar a pelo menos uma mensagem de dados de saida.
  5. 5. Método da Reivindicação 4 em que a mensagem proveniente da unidade de controlo inclui um de uma mensagem de pronto para transferência requerendo que o subsistema de canal envie dados de saida e a mensagem de dados de entrada.
  6. 6. Método da Reivindicação 2, em que o TCCB está incluído numa unidade de informação de comando de transporte (IU) (172) enviada para a unidade de controlo, incluindo a IU de comando de transporte um cabeçalho de comando de transporte (TCH) (176), incluindo o TCH um campo que indica se o subsistema de canal está a pedir uma transferência de dados bidireccional.
  7. 7. Método da Reivindicação 6, em que o TCCB inclui um campo de comprimento de dados de escrita (DL) (186) especificando uma quantidade de dados de saída a serem transferidos e um campo de comprimento de dados de leitura bidireccional (BRDL) (188) especificando uma quantidade de dados de entrada a serem transferidos.
  8. 8. Método da Reivindicação 7, incluindo adicionalmente, em resposta à unidade de controlo não suportar operações de dados bidireccionais, receber uma mensagem de resposta de transporte (330) proveniente da 5 ΡΕ2593878 unidade de controlo indicando que a operação de 1/0 tinha terminado, incluindo a mensagem de resposta de transporte uma indicação de erro de conteúdo de TCH em resposta a pelo menos um de: a unidade de controlo detectar que um bit de leitura (R) (192) e um bit de escrita (W) (194) no TCH estão ambos definidos como um e que o TCCB não inclui o BRDL; e a unidade de controlo detectar que o bit R e o bit W estão ambos definidos como um e a unidade de controlo não suportar a transferência de dados bidireccional.
  9. 9. Método da Reivindicação 7, em que o método inclui adicionalmente receber uma mensagem de resposta de transporte (330) proveniente da unidade de controlo indicando que a operação de I/O tinha terminado, e a mensagem de resposta de transporte inclui: um campo de Contagem Residual de Comprimento de Dados (DLRC) (340) que especifica uma diferença entre um valor do campo DL no TCCB e uma quantidade de dados de saida recebidos pela unidade de controlo; e uma contagem residual de BRDL (342) que especifica uma diferença entre um valor do campo BRDL no TCCB e uma quantidade dedados de entrada enviados pela unidade de controlo. 6 ΡΕ2593878
  10. 10. Método da Reivindicação 9, em que o subsistema de canal detecta um erro em resposta a pelo menos um de: um valor do DLRC não correspondendo a uma diferença entre o valor do campo DL no TCCB e uma quantidade de dados de saída enviados para a unidade de controlo; e um valor de contagem de BRDL residual não correspondendo a uma diferença entre o valor do campo BRDL e uma quantidade de dados de entrada recebidos provenientes da unidade de controlo.
  11. 11. Método da Reivindicação 2, em que a mensagem de pedido de PRLI (400) indica um pedido para a unidade de controlo para indicar se a unidade de controlo suporta um protocolo em modo de transporte, suportando o protocolo em modo de transporte a utilização da TCW e do TCCB, e a mensagem de resposta ao PRLI inclui um campo que indica se a unidade de controlo suporta o protocolo em modo de transporte.
  12. 12. Produto programa de computador para realizar uma operação de entrada/saída (I/O) iniciada por uma instrução de operação de I/O num sistema de computador hospedeiro (102) configurado para comunicação com uma unidade de controlo (118), incluindo o produto programa de computador: 7 ΡΕ2593878 um meio de armazenamento tangível legível por um circuito de processamento (104) e instruções de armazenamento para execução pelo circuito de processamento para realizar um método como reivindicado em qualquer das Reivindicações 1 a 11.
  13. 13. Aparelho para realizar uma operação de entrada/saída (1/0) iniciada por uma instrução de operação de I/O num sistema de computador hospedeiro (102) configurado para comunicação com uma unidade de controlo (118), o sistema de computador hospedeiro configurado para realizar: enviar, por um subsistema de canal (114) no sistema de computador hospedeiro, uma mensagem de pedido de início de sessão de processo (PRLI) (400) para a unidade de controlo para inicializar uma ligação entre o subsistema de canal e a unidade de controlo, incluindo a mensagem de pedido de PRLI um campo tendo um valor que indica se o subsistema de canal suporta a transferência de dados bidireccional; receber uma mensagem de resposta a PRLI (420) proveniente da unidade de controlo, incluindo a mensagem de resposta a PRLI um campo tendo um valor que indica se a unidade de controlo suporta a transferência de dados bidireccional; proporcionar uma indicação para um sistema operativo hospedeiro que a transferência de dados bidireccional é suportada; e ΡΕ2593878 em resposta à execução da instrução de operação de 1/0 recebida do sistema de computador hospedeiro, realizar um método incluindo: recolher uma pluralidade de comandos (202) associados à instrução de operação de I/O recebida do sistema de computador hospedeiro, pelo menos um de uma pluralidade de comandos especificando uma transferência de dados de entrada e pelo menos um de uma pluralidade de comandos especificando uma transferência de dados de saída; transferir a pluralidade de comandos para a unidade de controlo; enviar pelo menos uma mensagem de dados de saída para a unidade de controlo incluindo dados de saída para serem transferidos para a unidade de controlo, especificando a mensagem de dados de saída, associada ao pelo menos um de uma pluralidade de comandos, uma transferência de dados de saída; e receber pelo menos uma mensagem de entrada proveniente da unidade de controlo incluindo dados de entrada para serem armazenados num armazenamento principal (106) do sistema de computador hospedeiro, especificando a mensagem de dados de entrada, associada ao pelo menos um de uma pluralidade de comandos, uma transferência de dados de entrada.
  14. 14. Aparelho da Reivindicação 13, em que a 9 ΡΕ2593878 pluralidade de comandos são uma pluralidade de palavras de comando de dispositivo (DCW) (202) em que cada uma está associada a um comando de I/O, e recolher inclui obter uma palavra de comando de transporte (TCW) (140) no subsistema de canal no sistema de computador hospedeiro para a operação de I/O, incluindo a TCW um campo de endereço de bloco de controlo de comando de transporte (TCCB) (148) incluindo um endereço de um TCCB (170) no armazenamento principal do sistema de computador hospedeiro, incluindo o TCCB a pluralidade de DCWs, especificando, pelo menos uma das DCWs, uma transferência de dados de entrada e especificando, pelo menos uma das DCWs, uma transferência de dados de saída.
  15. 15. Aparelho da Reivindicação 14, em que a indicação está configurada para especificar se uma condição de pronto para primeira transferência desactivado está em efeito, e o sistema de computador hospedeiro está configurado para realizar adicionalmente: em resposta à condição de pronto para primeira transferência desactivado estar em efeito, enviar a pelo menos uma mensagem de dados de saída para a unidade de controlo a seguir à transferência do TCCB e antes de receber pelo menos uma mensagem proveniente da unidade de controlo; e em resposta à condição de pronto para primeira transferência desactivado não estar em efeito, receber a ΡΕ2593878 10 pelo menos antes de saída. Lisboa, 28 uma mensagem proveniente da unidade de controlo enviar a pelo menos uma mensagem de dados de de fevereiro de 2014
PT127163228T 2011-06-30 2012-04-11 Facilitar as operações de entrada/saída em modo de transporte entre um subsistema de canal e dispositivos de entrada/saída PT2593878E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/173,772 US8312176B1 (en) 2011-06-30 2011-06-30 Facilitating transport mode input/output operations between a channel subsystem and input/output devices

Publications (1)

Publication Number Publication Date
PT2593878E true PT2593878E (pt) 2014-03-07

Family

ID=45999804

Family Applications (1)

Application Number Title Priority Date Filing Date
PT127163228T PT2593878E (pt) 2011-06-30 2012-04-11 Facilitar as operações de entrada/saída em modo de transporte entre um subsistema de canal e dispositivos de entrada/saída

Country Status (17)

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

Families Citing this family (1)

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

Family Cites Families (228)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US8364853B2 (en) Fibre channel input/output data routing system and method
US8683084B2 (en) Fibre channel input/output data routing system and method
US20120311390A1 (en) Fibre channel input/output data routing system and method
US8549185B2 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8631175B2 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8918542B2 (en) Facilitating transport mode data transfer between a channel subsystem and input/output devices
US20120311192A1 (en) Fibre channel input/output data routing system and method
PT2593878E (pt) Facilitar as operações de entrada/saída em modo de transporte entre um subsistema de canal e dispositivos de entrada/saída
US8346978B1 (en) Facilitating transport mode input/output operations between a channel subsystem and input/output devices
KR101476075B1 (ko) 채널 서브시스템과 입력/출력 디바이스들 사이에 트랜스포트 모드 입력/출력 동작들을 용이하게 하는 방법, 장치 및 컴퓨터 프로그램 제품
KR101476073B1 (ko) 채널 서브시스템과 입력/출력 디바이스들 사이에 트랜스포트 모드 입력/출력 동작들을 용이하게 하는 방법, 장치 및 컴퓨터 프로그램 제품