BR112013020341B1 - sistema de controle de dados e método de controle de dados - Google Patents

sistema de controle de dados e método de controle de dados Download PDF

Info

Publication number
BR112013020341B1
BR112013020341B1 BR112013020341-2A BR112013020341A BR112013020341B1 BR 112013020341 B1 BR112013020341 B1 BR 112013020341B1 BR 112013020341 A BR112013020341 A BR 112013020341A BR 112013020341 B1 BR112013020341 B1 BR 112013020341B1
Authority
BR
Brazil
Prior art keywords
data
memory
operating unit
read
transfer
Prior art date
Application number
BR112013020341-2A
Other languages
English (en)
Other versions
BR112013020341A2 (pt
Inventor
Jun Suzuki
Masahiko Takahashi
Youichi Hidaka
Teruyuki Baba
Takashi Yoshikawa
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Publication of BR112013020341A2 publication Critical patent/BR112013020341A2/pt
Publication of BR112013020341B1 publication Critical patent/BR112013020341B1/pt

Links

Images

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)

Abstract

SISTEMA DE CONTROLE DE DADOS, MÉTODO DE CONTROLE DE DADOS E PROGRAMA DE CONTROLE DE DADOS Uma CPU (80) controla transferência de dados de um primeiro dispositivo a um segundo dispositivo em modo de núcleo. Uma memória principal (90) armazena dados a serem transferidos de um primeiro dispositivo a um segundo dispositivo. A CPU (80) contém: um meio de controle do primeiro dispositivo (81) que controla o primeiro dispositivo; um meio de controle do segundo dispositivo que controla o segundo dispositivo; e um meio de controle de transferência de dados (83) que emite uma instrução de leitura que instrui o meio de controle do primeiro dispositivo (81) a armazenar na memória principal (3) dados lidos do primeiro dispositivo, e emite uma instrução de gravação que instrui o meio de controle do segundo dispositivo (82) a gravar no segundo dispositivo os dados armazenados na memória principal (3).

Description

Campo técnico
[0001] A presente invenção refere-se a um sistema de controle de dados, a um método de controle de dados e a um programa de controle de dados que executa um controle de dados que se movem em alta velocidade entre dispositivos de E/S (Entrada/Saída). Histórico da Invenção
[0002] A Documentação da Patente 1 exibe um sistema de computação que pode transferir facilmente dados de uma interface de DVD (Digital Versatile Disc - Disco Versátil Digital)-ROM (Read Only Memory - Memória só para Leitura) para um decodificador de DVD sem memória principal. No sistema de computador exibido na Documentação 1 da Patente, o decodificador de DVD tem uma unidade de controle principal de transação que pode iniciar uma transação de Entrada/Saída, e, a seguir, controla tanto o decodificador de DVD quanto a interface de DVD por meio de um acionador de controle de DVD. De acordo com esta configuração, dados móveis são transferidos diretamente da interface do DVD para a unidade decodificadora de DVD sem memória principal.
[0003] A Documentação 2 da Patente exibe um sistema calculador que pode executar uma pluralidade de comandos de entrada/saída relativos a uma pluralidade de dispositivos através de um comando de entrada/saída. O sistema calculador exibido na Documentação 2 da Patente inicia uma operação de entrada/saída quando um adaptador de entrada/saída recebe um comando de entrada/saída de uma CPU. O adaptador de entrada/saída transfere dados especificados por uma unidade de memória para um dispositivo adequado de controle de entrada/saída após a transmissão de dados, e transfere dados do dispositivo de controle de entrada/saída para uma área especificada da unidade de memória após a recepção dos dados. No entanto, o dispositivo de controle de entrada/saída contém um compensador (buffer) que armazena dados.
[0004] Além disto, a Documentação 3 da Patente exibe um subsistema de armazenamento que substitui o programa interno sem interromper a operação. No sistema exibido na Documentação 3 da Patente, uma CPU reserva uma área de reserva de dados numa área da memória e controla uma unidade de controle de disco para ler dados de um disco lógico. A seguir, a CPU armazena os dados lidos na área de reserva de dados da área de memória. Lista de Referência Documentação da Patente PLT 1: Pedido aberto de Patente Japonesa No. 10-143437 PLT 2: Pedido aberto de Patente Japonesa No. 8-44652 PLT 3: Pedido aberto de Patente Japonesa No. 2009-230484
Sumário da Invenção Problema Técnico
[0005] Descreve-se aqui um exemplo de um sistema comum que usa o sistema de computação exibido na Documentação 1 da Patente. A figura 15 representa uma vista explicativa que mostra um exemplo de um sistema comum de transferência de dados que usa o sistema de computação exibido na Documentação 1 da Patente. O sistema mostrado na figura 15 contém uma CPU 1, uma memória principal 3, um decodificador de DVD 406, uma interface de DVD 407, e uma ponte 2 que liga os respectivos dispositivos. O decodificador de DVD 406 e a interface de DVD 407 estão ligados à ponte 2 através de um barramento CIP expresso (Componente de Interconexão Periférica) [PCI (Peripheral Component Interconnect)] 501 e de um barramento CIP expresso (Componente de Interconexão Periférica) [PCI (Peripheral Component Interconnect)] 502.
[0006] A memória principal 3 armazena um programa 305. O programa 305 é lido pela CPU 1, e trabalha como uma unidade operacional de aplicação 111, uma unidade operacional de sistema operacional 112 e uma unidade acionadora de controle de DVD 113. A seguir, a unidade operacional de aplicação 111 trabalha de acordo com um programa que reproduz dados de filme. A unidade operacional acionadora do controle do DVD controla um decodificador de DVD 406 e uma interface de DVD 407. O sistema comum que emprega esta configuração trabalha da maneira seguinte.
[0007] Isto é, quando a unidade operacional de aplicação 111 faz um pedido de reprodução de dados de filme, a unidade acionadora de controle de DVD 113 instrui a interface de DVD 407 para se preparar para uma transferência de dados. Em seguida, a unidade acionadora de controle de DVD 113 instrui o decodificador de DVD 406 para iniciar uma transação de E/S (entrada/saída) para ler dados de filme da interface de DVD 407. Através disto, os dados de filme são transferidos diretamente da interface de DVD 407 para o decodificador de DVD 406.
[0008] Este sistema comum transfere diretamente dados da interface de DVD 407 ao decodificador de DVD 406 sem a memória principal 3, de forma que é possível reduzir o tráfego no barramento. Ainda, este sistema comum não transfere dados através de um software, e, consequentemente, pode fazer transferência de dados em alta velocidade.
[0009] No entanto, o sistema exibido na Documentação 1 da Patente contém um problema pelo qual não é possível fazer uma transferência de dados em alta velocidade entre dois dispositivos de E/S que não suportam uma operação de transferência direta. Isto é, como no sistema exibido na Documentação 1 de Patente, quando dois dispositivos de E/S ligados a um barramento expresso PCI transferem dados diretamente, há o problema dos dispositivos de E/S precisarem suportar este processo de transferência. Em geral, um dispositivo de E/S transfere dados somente para e de uma memória principal que é controlada por um dispositivo acionador operado por uma CPU, e, portanto, não suporta uma operação de transferência direta de dados entre dois dispositivos de E/S.
[0010] Além disto, para transferir dados de em dispositivo de E/S para outro dispositivo de E/S, o sistema calculador exibido na Documentação 2 da Patente precisa apresentar outro dispositivo tal como um adaptador de entrada/saída que desempenha um papel alternativo de desempenho do dispositivo de E/S, num sistema.
[0011] Por isso, mesmo após ter processado a transferência entre dispositivos de E/S que não suportam uma operação de transferência direta de dados como no sistema calculador exibido na Documentação 2 da Patente, é desejável reduzir uma sobrecarga e transferir dados em alta velocidade.
[0012] Prover um sistema de controle de dados, um método de controle de dados e um programa de controle de dados que pode transferir dados em alta velocidade entre dois dispositivos de E/S que não suportam uma operação de transferência direta de dados é, portanto, um objetivo que exemplifica a presente invenção. Solução do Problema
[0013] Um sistema de controle de dados de acordo com a presente invenção contém: uma CPU que controla a transferência de dados de um primeiro dispositivo a um segundo dispositivo em modo de núcleo; uma memória principal que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, e a CPU contém: um primeiro meio de controle de dispositivo que controle o primeiro dispositivo; e um segundo meio de controle de dispositivo que controla o segundo dispositivo; e um meio de controle de transferência de dados que instrui o meio de controle do primeiro dispositivo a armazenar na memória principal dados lidos do primeiro dispositivo, e emite uma instrução de gravação que instrui o segundo meio de controle de dispositivo a gravar no segundo dispositivo os dados armazenados na memória principal.
[0014] Um método de controle de dados de acordo com a presente invenção contém: uma CPU que controla a transferência de dados de um primeiro dispositivo a um segundo dispositivo em modo de núcleo, instruindo um meio de controle do primeiro dispositivo que controla o primeiro dispositivo da CPU a armazenar, numa memória principal, dados lidos do primeiro dispositivo; e a CPU, que instrui um segundo meio de controle de dispositivo que controle o segundo dispositivo da CPU a gravar, no segundo dispositivo, os dados armazenados na memória principal.
[0015] Um programa de controle de dados de acordo com a presente invenção é um programa de controle de dados que é aplicado a um computador que contém: uma CPU que controla a transferência de dados de um primeiro dispositivo a um segundo dispositivo em modo de núcleo; e uma memória principal que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, e faz com que o computador execute: o processamento de controle de primeiro dispositivo que controla o primeiro dispositivo; o processamento de controle do segundo dispositivo que controla o segundo dispositivo; e um processamento de controle de transferência de dados que emite uma instrução de leitura que instrui o processamento de controle do primeiro dispositivo a armazenar, na memória principal, dados lidos do primeiro dispositivo, e que emite uma instrução de gravação que instrui o processamento de controle do segundo dispositivo a gravar, no segundo dispositivo, os dados armazenados na memória principal.
Efeitos vantajosos da Invenção
[0016] A presente invenção pode transferir dados em alta velocidade entre dois dispositivos de E/S que não suportam uma operação de transferência direta de dados.
Breve Descrição dos Desenhos
[0017] A figura 1 representa um diagrama de blocos que mostra um exemplo de um sistema de controle de dados de acordo com uma primeira configuração que exemplifica a presente invenção;
[0018] A figura 2 representa um diagrama de blocos que mostra um exemplo de uma unidade operacional acionadora de transferência de dados de E/S;
[0019] A figura 3 representa uma vista explicativa que mostra um exemplo de uma memória de dados;
[0020] A figura 4 representa um fluxograma que mostra um exemplo operacional do sistema de controle de dados conforme a primeira configuração de exemplo;
[0021] A figura 5 representa um fluxograma que mostra outro exemplo operacional do sistema de controle de dados conforme a primeira configuração de exemplo;
[0022] A figura 6 representa um fluxograma que mostra parte de outro exemplo operacional do sistema de controle de dados conforme a primeira configuração de exemplo;
[0023] A figura 7 representa um diagrama de blocos que mostra um exemplo de um sistema de controle de dados de acordo com uma segunda configuração de exemplo da presente invenção;
[0024] A figura 8 representa um diagrama de blocos que mostra um exemplo de uma unidade operacional de acionamento de transferência de dados de E/S;
[0025] A figura 9 representa um diagrama de blocos que mostra um exemplo de um sistema de controle de dados de acordo com uma terceira configuração da presente invenção;
[0026] A figura 10 representa um diagrama de blocos que mostra um exemplo de uma unidade operacional acionadora de cópia de armazenamento;
[0027] A figura 11 representa um fluxograma que mostra um exemplo operacional do sistema de controle de dados conforme a terceira configuração de exemplo;
[0028] A figura 12 representa um fluxograma que mostra outro exemplo operacional do sistema de controle de dados conforme a terceira configuração;
[0029] A figura 13 representa um fluxograma que mostra parte de outro exemplo operacional do sistema de controle de dados conforme a terceira configuração;
[0030] A figura 14 representa um diagrama de blocos que mostra um exemplo de uma configuração mínima de um sistema de controle de dados de acordo com a presente invenção; e
[0031] A figura 15 representa uma vista explicativa que mostra um exemplo de um sistema comum de transferência de dados. Descrição das Configurações
[0032] Descrevem-se, a seguir, configurações exemplificadoras da presente invenção referidas aos desenhos. Primeira Configuração de Exemplo
[0033] A figura 1 representa um diagrama de blocos que mostra um exemplo de um sistema de controle de dados de acordo com uma primeira configuração de exemplo da presente invenção. O sistema de controle de dados conforme a presente configuração de exemplo contém uma CPU 1, uma memória principal 3, um dispositivo de E/S 401 que é um primeiro dispositivo de E/S, um dispositivo de E/S 402 que é um segundo dispositivo de E/S e uma ponte 2 que liga estes dois dispositivos de E/S. Além disto, na presente configuração de exemplo, os dados são transferidos do primeiro dispositivo de E/S 401 para o dispositivo de E/S 402.
[0034] O dispositivo de E/S 401 e o dispositivo de E/S 402 são dispositivos de E/S que possuem interfaces que estão em conformidade com CIP expressos tais como dispositivos de armazenamento e interfaces de rede que estão em conformidade com normas tais como ISCP (Interface de Sistema de Computador Pequeno) [SCSI (Small Computer System Interface)] ou ASTA (Anexo Serial de Tecnologia Avançada [SATA (Serial Advanced Technology Attachment)]. O dispositivo de E/S 401 e o dispositivo de E/S 402 estão ligados à ponte 2 através de um barramento expressa CIP (Componente de Interconexão Periférica) 501 e um barramento CIP expresso 502, respectivamente.
[0035] A memória principal 3 contém uma memória de transferência de dados de E/S 301. A memória de transferência de dados de E/S 301 é usada para transferir dados entre o dispositivo de E/S 401 e o dispositivo de E/S 402.
[0036] A memória de transferência de dados de E/S 301 contém uma memória de comandos de E/S 3011, uma memória de lista 3012 e uma memória de dados 3013. A memória de comandos de E/S 3011 é uma área que armazena comandos de E/S a serem emitidos ao dispositivo de E/S 401 e ao dispositivo de E/S 402. A memória de dados 3013 é uma área compensadora (buffer área) dos dados transferidos entre o dispositivo de E/S 401 e o dispositivo 402. A memória de lista ADM 3012 é uma área que armazena informações obtidas por listas de endereços na memória de dados 3013 para permitir que o dispositivo de E/S 401 e o dispositivo de E/S 402 façam comunicação de dados com a memória de dados 3013 por intermédio do ADM (Acesso Direto à Memória) [DMA (Direct Memory Access)].
[0037] Ainda, a memória principal 3 armazena um programa 302. O programa 302 é lido pela CPU 1, e trabalha como uma unidade operacional de aplicação de transferência de dados de E/S 101, uma unidade operacional do sistema operacional 102, uma unidade operacional acionadora de transferência de dados de E/S 103, uma unidade operacional acionadora de dispositivo de E/S 104 que controla o dispositivo de E/S 401, e uma unidade operacional acionadora de dispositivo de E/S 105 que controla o dispositivo de E/S 402 abaixo descrito.
[0038] A CPU 1 contém a unidade operacional de aplicação de transferência de dados de E/S 101, a unidade operacional do sistema operacional 102, a unidade operacional acionadora de transferência de dados de E/S 103, a unidade operacional acionadora do dispositivo de E/S 104, a unidade operacional acionadora do dispositivo de E/S 105 e uma unidade de memória de tabela de dispositivo de E/S 114.
[0039] A unidade de memória de tabela de dispositivo de E/S 114 armazena informações do dispositivo de E/S 401 e do dispositivo de E/S 402 que são objetivos da transferência de dados. Mais precisamente, a unidade de memória de tabela do dispositivo de E/S 114 armazena nomes do dispositivo de E/S 401 e do dispositivo de E/S 402 associados a endereços (abaixo mencionados como “endereços de informação de gestão”) que indicam as posições nas quais as informações de gestão do dispositivo de E/S 401 e do dispositivo de E/S 402 são suportadas pela unidade operacional do sistema de operação 102. Além disto, as informações de gestão de um dispositivo contêm, por exemplo, atributos e um modo de acesso do dispositivo.
[0040] A unidade operacional de aplicação de transferência de dados de E/S 101 requer que a unidade operacional acionadora da transferência de dados 103 transfira dados entre o dispositivo de E/S 401 e o dispositivo de E/S 402. A solicitação de transferência de dados é feita, por exemplo, por um usuário ou por outro dispositivo.
[0041] A unidade operacional do sistema operacional 102 faz com que a unidade operacional acionadora de transferência de dados de E/S 103, a unidade operacional acionadora do dispositivo de E/S 104 e a unidade operacional acionadora do dispositivo de E/S 105 trabalhem como acionador de software. Ainda, a unidade operacional do sistema operacional 102 cria informações obtidas pela associação de um nome de dispositivo a um endereço de informação de gestão na unidade de memória de tabela do dispositivo de E/S 114. Quando, por exemplo, um dispositivo de E/S é ligado, a unidade do sistema operacional 102 pode associar e armazenar um nome de dispositivo do dispositivo de E/S ligado a um endereço no qual está armazenada a informação de gestão deste dispositivo na unidade de memória de tabela de E/S 114.
[0042] A unidade operacional acionadora de transferência de dados de E/S 103 controla a transferência de dados do dispositivo de E/S 401 ao dispositivo de E/S 402. A figura 2 representa um diagrama de blocos que mostra um exemplo da unidade operacional acionadora de transferência de dados de E/S 103. A unidade operacional acionadora de transferência de dados de E/S 103 de acordo com a presente configuração de exemplo contém uma unidade operacional do programa de controle de transferência 1031, uma unidade operacional do programa de reserva de memória 1032, uma unidade operacional do programa de liberação de memória 1033 e uma unidade operacional do programa de processamento de dados de E/S 1034.
[0043] Além disto, descreve-se um exemplo com a presente configuração de exemplo na qual a unidade operacional do sistema operacional 102 e a unidade operacional acionadora de transferência de dados de E/S 103 são montadas em separado. Um exemplo de montagem das unidades é um método de montagem da unidade operacional acionadora de transferência de dados de E/S 103 como uma acionadora de dispositivo. As unidades são montadas deste modo, de forma a ser possível conter uma alteração que resulte de uma adição de uma função à unidade operacional do sistema operacional 102 em pequena escala. Ainda, a unidade operacional acionadora de transferência de dados de E/S 103 e a unidade operacional do sistema operacional 102 podem ser montadas integralmente. Neste caso, os dispositivos podem ser geridos como um software, de forma que desenvolvimento e gestão ficam fáceis.
[0044] A unidade operacional do programa de controle de transferência 1031 transfere dados entre os dispositivos de E/S emitindo comandos de E/S ao dispositivo de E/S 401 e ao dispositivo 402. A unidade operacional do programa de controle de transferência 1031 trabalha quando a CPU 1 lê um programa de controle de transferência.
[0045] A unidade operacional de reserva de memória 1032 é solicitada pela unidade operacional do programa de controle de transferência 1031 a reservar memória de transferência de dados de E/S 301 na memória principal 3. A unidade operacional do programa de reserva de memória 1032 trabalha quando a CPU 1 lê o programa de reserva de memória.
[0046] A unidade operacional do programa de liberação de memória 1033 é solicitada pela unidade operacional do programa de controle de transferência 1031 a liberar a memória de transferência de dados de E/S 301. A unidade operacional do programa de liberação de memória 1033 trabalha quando a CPU 1 lê o programa de liberação de memória.
[0047] A unidade operacional do programa de transferência de dados de E/S 1034 é solicitada pela unidade operacional do programa de controle de transferência 1031 a processar os dados a serem transferidos entre o dispositivo de E/S 401 e o dispositivo de E/S 402. A unidade operacional do programa de processamento de dados 1034 trabalha quando a CPU 1 lê o programa de processamento de dados de E/S.
[0048] Portanto, a unidade operacional acionadora de transferência de dados de E/S 103 lê o programa de controle de transferência, o programa de reserva de memória, o programa de liberação de memória e o programa de processamento de dados de E/S, e trabalha de acordo com estes programas. Neste caso, a unidade operacional acionadora de transferência de dados de E/S 103 trabalha em modo de núcleo da CPU 1. Além disto, é feita referência, também, a um programa que contém o programa de controle de transferência, o programa de reserva de memória, o programa de liberação de memória e o programa de processamento de dados de E/S como a um “Programa de controle de dados".
[0049] A seguir, descrevem-se em detalhes as respectivas operações na unidade operacional acionadora de transferência de dados de E/S 103. A unidade operacional de controle de transferência de dados 1031 recebe um formulário de solicitação da unidade operacional de aplicação de transferência de dados de E/S 101, e transfere dados entre o dispositivo de E/S 401 e o dispositivo 402.
[0050] Mais precisamente, a unidade operacional do programa de controle de transferência 1031 chama a unidade operacional do programa de reserva de memória 1032, e reserva a memória de transferência de dados de E/S 301 na memória principal 3. Ainda, a unidade operacional do programa de controle de transferência 1031 dirige-se à unidade de memória de tabela do dispositivo de E/S 114, e busca a partir de nomes do dispositivo de E/S 401 e do dispositivo de E/S 402 endereços de informação de gestão destes dispositivos suportados pela unidade operacional do sistema operacional 102.
[0051] Além disto, a unidade operacional do programa de controle de transferência 1031 cria um comando de leitura de dados em relação ao dispositivo de E/S 401 na memória de comando de E/S 3011. Ainda mais, a unidade operacional do programa de controle de transferência 1031 cria numa memória de lista de ADM (Acesso Direto à Memória) 3012 uma lista de endereços da memória de dados 3013 que é um destino de gravação dos dados a serem lidos (abaixo citados como “lidos”) a partir do dispositivo de E/S 401. Além disto tudo, a unidade operacional do programa de controle de transferência 1031 cria um comando de leitura de E/S passando estes itens de dados (mais precisamente, o comando de leitura de dados e a lista de ADM) à unidade operacional acionadora do dispositivo de E/S 104. Além disto, a unidade operacional do programa de controle de transferência 1031 cria um comando de leitura de dados usando os endereços das informações de gestão suportados pela unidade operacional do sistema operacional 102.
[0052] Portanto, a unidade operacional do programa de controle de transferência 1031 instrui a unidade operacional acionadora de E/S 104 a armazenar os dados lidos do dispositivo de E/S 401 na memória de dados 3013.
[0053] Ainda, se necessário, a unidade operacional do programa de controle de transferência 1031 pode solicitar à unidade operacional do programa de processamento de dados de E/S 1034 que execute processamentos pré-determinados tais como conversão de formato e compactação de dados lidos do dispositivo de E/S 401 e armazenados na memória de dados 3013. Além disto, conversão de formato e compactação são exemplos pré-determinados de processamento de dados, e processamentos de dados solicitados pela unidade operacional do programa de controle de transferência de dados solicitados pela unidade operacional do programa de controle de transferência 1031 podem ser outros processamentos de dados que não conversão de formato e compactação.
[0054] Ainda, a unidade operacional do programa de controle de transferência 1031 cria um comando de gravação de dados em relação ao dispositivo de E/S 402, na memória de comando de E/S 3011. Mais ainda, a unidade operacional do programa de controle de transferência 1031 cria na memória de lista de ADM 3012 uma lista de endereços da memória de dados 3013 que é um destino de gravação dos dados a serem gravados (abaixo citado como “gravar”) no dispositivo de E/S 402. Mais ainda, a unidade operacional do programa de controle de transferência 1031 emite uma solicitação gravada de E/S passando estes itens de dados (mais precisamente, o comando de gravação de dados e a lista de ADM) à unidade operacional acionadora do dispositivo de E/S 105. Além disto, a unidade operacional do programa de controle de transferência 1031 cria um comando de gravação de dados usando os endereços das informações de gestão suportados pela unidade operacional do sistema operacional 102.
[0055] Desta forma, a unidade operacional do programa do controle de transferência 1031 instrui a unidade operacional acionadora do dispositivo de E/S 105 a gravar no dispositivo de E/S 402os dados armazenados na memória de dados 3013.
[0056] Em seguida, a unidade operacional do programa de controle de transferência 1031 repete uma série de processamentos tais como processamento de leitura de dados do dispositivo de E/S 401 e processamento de gravação de dados no dispositivo de E/S 402 até que a transferência da quantidade de dados solicitada pela unidade operacional de aplicação de transferência de dados de E/S 101 esteja completa. Além disto, entre o processamento de leitura de dados e o processamento de gravação de dados, a unidade operacional do programa de processamento de dados de E/S 1034 pode executar o processamento dos dados lidos do dispositivo de E/S 401. Então, pela execução do processamento de dados tais como conversão de formato e compactação entre o processamento de dados lidos e o processamento de dados gravados (isto é, antes dos dados serem gravados), é possível reduzir o tempo total de processamento.
[0057] Ainda, a unidade operacional do programa de controle de transferência 1031 pode multiplexar e emitir uma solicitação de leitura em relação ao dispositivo de E/S 401 e uma solicitação de gravação em relação ao dispositivo de E/S 402. A figura 3 representa uma vista explicativa que mostra um exemplo da memória de dados 3013. No exemplo mostrado na figura 3, a unidade operacional do programa de controle de transferência 1031 reserva uma pluralidade de compensadores 30131 na memória de dados 3013.
[0058] Pela utilização de cada compensador 30131, a unidade operacional do programa do controle de transferência 1031 executa o processamento da leitura de dados do dispositivo de E/S 401 e, paralelamente, o processamento da gravação de dados no dispositivo de E/S 402. Ainda, neste caso, a unidade operacional de E/S de processamento de dados 1034 pode fazer, paralelamente, o processamento de dados dos dados lidos no dispositivo de E/S 401. Neste caso também, a unidade operacional do programa de controle de transferência 1031 somente precisa repetir o processamento de leitura dos dados e o processamento de gravação dos dados até que a soma das quantidades de transferência de dados alcance o montante de transferência de dados solicitado pela unidade operacional de aplicação de transferência de dados de E/S 101.
[0059] A seguir, descreve-se uma operação do sistema de controle de dados conforme a configuração de exemplo. Primeiramente, descreve-se uma operação em que são feitas duas solicitações: uma de leitura em relação ao dispositivo de E/S 401 e uma de gravação em relação ao dispositivo de E/S 402 sem serem multiplexadas. A figura 4 representa um fluxograma que mostra um exemplo de operação do sistema de controle de dados conforme a presente configuração de exemplo. Primeiro, a unidade operacional de aplicação de transferência de dados de E/S 101 solicita à unidade operacional acionadora da transferência de dados 103 que transfira os dados entre dispositivos de E/S (passo A1).
[0060] A unidade operacional do programa de controle de transferência 1031 da unidade operacional acionadora de transferência de dados de E/S 103 recebe uma solicitação de transferência de dados e chama a unidade operacional do programa de reserva de memória 1032, e a unidade operacional do programa de reserva de memória 1032 reserva a memória de transferência de dados de E/S 301 na memória principal 3 (passo A2).
[0061] Posteriormente, a unidade operacional do programa de controle de transferência 1031 cria um comando de E/S na memória de comando de E/S 3011, e de uma lista de ADM na memória de lista de ADM 3012. Além disto, a unidade operacional do programa de controle de transferência 1031 emite uma solicitação de leitura de E/S passando estes itens de dados (isto é, o comando de E/S de leitura e a lista de ADM) à unidade operacional acionadora do dispositivo de E/S 104, lê os dados de E/S do dispositivo de E/S 401 e armazena os dados lidos na memória de dados 3013 (passo A3).
[0062] Em seguida, se necessário, a unidade operacional do programa de controle de transferência 1031 chama a unidade operacional do programa de processamento de dados de E/S 1034, e executa o processamento de dados tais como conversão de formato e compactação dos dados armazenados na memória de dados 3013 (passo A4).
[0063] Em seguida, a unidade operacional do programa de controle de transferência 1031 cria um comando de E/S na memória de comando de E/S 3011, e uma lista de ADM na memória de lista de ADM 3012. Além disto, a unidade operacional do programa de controle de transferência 1031 emite uma solicitação de gravação de E/S passando estes itens de dados à unidade operacional acionadora do dispositivo de E/S 105, e grava no dispositivo de E/S 402 os dados armazenados na memória de dados 3013 (passo A5).
[0064] Então, a unidade operacional do programa de controle de transferência 1031 decide se a transferência de dados de uma quantidade solicitada foi ou não totalmente atendida (passo A6). Se a transferência dos dados da quantidade solicitada não estiver totalmente atendida (Não, no passo A6), a unidade operacional acionadora de transferência de dados de E/S 103 repete o processamento do passo A3 ao passo A5. No entanto, se a transferência dos dados da quantidade solicitada foi totalmente atendida (Sim, no passo A6), a unidade operacional do programa de controle de transferência 1031 chama a unidade operacional do programa de liberação de memória 1033, e a unidade do programa de liberação de memória 1033 libera a memória de E/S de transferência 301 (passo A7). Portanto, a unidade operacional acionadora de transferência de dados de E/S 103 repete o processamento do passo A3 ao passo A5 até que o procedimento de transferência de dados da quantidade solicitada pela unidade operacional 101 de aplicação de transferência de dados de E/S esteja terminado.
[0065] Em seguida, descreve-se uma operação quando uma solicitação de leitura em relação ao dispositivo de E/S 401 e uma solicitação de gravação em relação ao dispositivo de E/S 402 são multiplexadas e feitas. As Figuras 5 e 6 representam fluxogramas que mostram outros exemplos de operação do sistema de controle de dados conforme a presente configuração de exemplo. O processamento no passo A1 e no passo A2 no qual a unidade operacional de aplicação de transferência de dados de E/S 101 solicita à unidade operacional acionadora de transferência de dados de E/S 103 que transfira dados entre os dispositivos de E/S, e a unidade operacional do programa de reserva de memória 1032 reserva memória de transferência de dados 301 e o mesmo do processamento mostrado na figura 4.
[0066] A unidade operacional do programa de controle de transferência 1031 cria na memória de comando de E/S 3011 uma pluralidade de comandos de E/S de leitura para gravar dados numa pluralidade de compensadores 30131 na memória de dados 3013. Além disto, a unidade operacional do programa de controle de transferência 1031 cria na memória de lista de ADM 3012 listas ADM que correspondem aos comandos respectivos de leitura de E/S. Ainda, a unidade operacional do programa de controle de transferência 1031 solicita à unidade operacional 104 acionadora do dispositivo de E/S que leia uma pluralidade de itens de dados de E/S usando estes itens de dados (isto é, os comandos de E/S de leitura e as listas ADM) (passo A8 na figura 5).
[0067] Em seguida, a unidade operacional do programa de controle de transferência 1031 fica de prontidão até que a solicitação emitida ao dispositivo de E/S esteja totalmente atendida. Quando uma solicitação de E/S está totalmente atendida (passo A9), a unidade operacional do programa de transferência 1031 decide se a solicitação de E/S atendida é uma solicitação de leitura ou não (passo A10). Se a solicitação de E/S atendida é uma solicitação de leitura (Sim, no passo A10), a unidade operacional do programa de controle de transferência 1031 executa os processamentos do passo A4 e do passo A5 em relação aos dados lidos do dispositivo de E/S 401 e armazenados no compensador da memória de dados 301 semelhante à operação em que as solicitações de E/S não são multiplexadas. Em seguida, a unidade operacional do programa de controle de transferência 1031 fica de prontidão até que uma solicitação de E/S seja totalmente atendida novamente.
[0068] A seguir, descreve-se um caso em que a solicitação de E/S atendida não é uma solicitação de leitura (isto é, uma solicitação de gravação) no passo A10. Se a solicitação de E/S atendida é uma solicitação de gravação no passo A10 (Não, no passo A10), a unidade operacional do programa de controle de transferência 1031 decide se o montante de dados lidos em resposta à solicitação de leitura feita em relação ao dispositivo de E/S 401 atinge ou não o montante de dados solicitados pela unidade operacional de aplicação de transferência de dados de E/S 101 (passo A11).
[0069] Se o montante de dados não atinge o montante solicitado (Não, no passo A11), a unidade operacional do programa de controle de transferência 1031 executa o mesmo processamento do passo A3 de emitir uma solicitação de E/S à unidade operacional acionadora do dispositivo de E/S 104, armazenando os dados lidos na memória de dados 3013. A seguir, a unidade operacional do programa de controle de transferência 1031 fica de prontidão até que uma solicitação de E/S seja novamente atendida totalmente.
[0070] No entanto, se o montante de dados atinge o montante de dados solicitado no passo A11 (Sim, no passo A11), a unidade operacional do programa de controle de transferência 1031 decide se todas as solicitações emitidas à unidade operacional 105 acionadora do dispositivo de E/S foram totalmente atendidas ou não (passo A12). Se todas as solicitações de gravação não estão totalmente atendidas (Não, no passo A12), a unidade operacional do programa de controle de transferência 1031 fica de prontidão até que uma solicitação de E/S seja totalmente atendida novamente. No entanto, se todas as solicitações de gravação emitidas estiverem totalmente atendidas (Sim, no passo A12), a unidade operacional do programa de liberação da memória 1033 libera a memória de transferência de dados de E/S 301 (passo A7).
[0071] Na presente configuração de exemplo, os barramentos CIP expressos são mostrados como barramentos que ligam a ponte 2 ao dispositivo de E/S 401, e a ponte 2 com o dispositivo de E/S 402. Além disto, a ponte 2 e os dispositivos de E/S 401 e 402 podem ser ligados usando outros barramentos como barramentos CIP ou barramentos CIP-X. Semelhantemente, um padrão de barramentos CPI que atendem o dispositivo de E/S 401 e o dispositivo de E/S 402 podem ser CIP ou CIP-X.
[0072] A seguir, foi descrito um caso na presente configuração de exemplo em que o dispositivo de E/S 401 que lê dados e o dispositivo de E/S 402 que grava dados são dispositivos de E/S diferentes. No entanto, o dispositivo de E/S 401 e o dispositivo de E/S 402 podem ser um único dispositivo. Neste caso, a transferência de dados entre dois dispositivos pode ser feita entre módulos diferentes de um único dispositivo de E/S ou entre endereços diferentes de um único módulo de um único dispositivo de E/S.
[0073] Como descrito acima, de acordo com a presente configuração de exemplo, a unidade operacional acionadora de transferência de dados de E/S 103 (mais precisamente, a unidade operacional do programa de controle de transferência 1031), que controla a transferência de dados do dispositivo de E/S 401 ao dispositivo de E/S 402 no modo de núcleo, instrui a unidade operacional acionadora do dispositivo de E/S 104 a armazenar os dados lidos do dispositivo de E/S 401 na memória de dados 3013. Ainda, a unidade operacional acionadora de transferência de dados de E/S 103 (mais precisamente, a unidade operacional do programa de controle de transferência 1031) instrui a unidade operacional acionadora do dispositivo de E/S 105 a gravar, no dispositivo de E/S 402, os dados armazenados na memória de dados 3013.
[0074] Isto é, no sistema de controle de dados conforme a presente configuração de exemplo, a unidade operacional acionadora de transferência de dados de E/S 103 trabalha no modo de núcleo da CPU, e grava os dados lidos do primeiro dispositivo de E/S 401, através da unidade operacional acionadora do dispositivo de E/S 104, no segundo dispositivo de E/S 402 através da unidade operacional acionadora de dispositivo de E/S 105. Consequentemente, é possível transferir dados a uma velocidade alta entre dois dispositivos de E/S que não suportam uma operação de transferência direta de dados entre dispositivos de E/S.
[0075] Ainda, quando o processamento de dados é executado no modo do usuário como é, em geral, em um sistema de computador, se for executado um processamento tal como copia de dados ou comutador de contexto, acontece uma sobrecarga. No entanto, na presente configuração de exemplo, o processamento de dados é feito no modo de núcleo, de modo que é possível transferir dados a uma alta velocidade.
[0076] Ainda, o sistema de controle de dados conforme a presente configuração de exemplo executa processamentos pré-determinados tais como conversão de formato e compactação dos dados lidos do dispositivo de E/S 401, e grava dados no segundo dispositivo de E/S 402. Consequentemente, dados são transferidos entre os dois dispositivos de E/S que não têm funções de processar transferência de dados enquanto executam vários tipos de processamentos de dados a serem transferidos, de forma que é possível reduzir o tempo todo de processamento.
[0077] Além disto, uma solicitação de leitura em relação ao primeiro dispositivo de E/S 401 e uma solicitação de gravação em relação ao segundo dispositivo de E/S 402 podem ser multiplexadas e feitas. De acordo com esta configuração, comparada com a transferência de dados feita sem multiplexar solicitações de E/S, é possível transferir dados a uma velocidade maior entre dois dispositivos de E/S que não suportam uma operação de transferência direta de dados.
Segunda Configuração de Exemplo
[0078] A figura 7 representa um diagrama de blocos que mostra um exemplo de um sistema de controle de dados conforme a presente invenção. Além disto, as configurações iguais àquelas da primeira configuração de exemplo serão identificadas com os mesmos números de referência como aqueles da figura 1, e não serão descritas. O sistema de controle de dados conforme a presente configuração de exemplo contém uma CPU 1, uma memória principal 3, um dispositivo de E/S 401 que é um primeiro dispositivo de E/S, um dispositivo de E/S 402 que é um segundo dispositivo de E/S, um dispositivo de E/S 403 e uma ponte 2 que liga estes dois dispositivos de E/S. Isto é, o sistema de controle de dados conforme a segunda configuração de exemplo é o sistema de controle de dados conforme a primeira configuração de exemplo por contar com o dispositivo de E/S 403.
[0079] A memória principal 3 contém uma memória de transferência de dados de E/S 301. Ainda, a memória de transferência de dados de E/S 301 contém uma memória de comando de E/S 3011 e uma memória de lista de ADM 3012. Além disto, o dispositivo de E/S 403 contém uma memória de dados 4031. A memória de dados 4031 é mapeada em um endereço físico de um computador com a finalidade de ler e gravar dados de e para a CPU 1. Isto é, a memória de dados 4031 corresponde a uma memória de dados 3013 conforme a primeira configuração de exemplo.
[0080] A CPU 1 contém uma unidade operacional de aplicação de transferência de dados de E/S 101, uma unidade operacional do sistema operacional 102, uma unidade operacional acionadora de transferência de dados de E/S 106, uma unidade operacional acionadora de dispositivo de E/S 104, uma unidade operacional acionadora de dispositivo de E/S 105 e uma unidade de memória de tabela de dispositivo de E/S 114.
[0081] Ainda, a memória principal 3 armazena um programa 303. O programa 303 é lido pela CPU 1, e trabalha como uma unidade operacional de aplicação de transferência de dados de E/S 101, a unidade operacional do sistema operacional 102, a unidade operacional acionadora de transferência de dados de E/S 106, a unidade operacional acionadora do dispositivo de E/S 104 que controla o dispositivo de E/S 401, e a unidade operacional acionadora do dispositivo de E/S 105 que controla o dispositivo de E/S 402.
[0082] A unidade operacional acionadora do dispositivo de E/S 106 executa a mesma operação que aquela de uma unidade operacional acionadora de E/S de transferência 103 conforme a primeira configuração de exemplo. No entretanto, a unidade operacional acionadora de E/S de transferência 106 difere da unidade operacional acionadora de E/S de transferência 103 conforme a primeira configuração de exemplo no uso da memória de dados 4031 como um compensador de dados para E/S de transferência de dados.
[0083] A figura 8 representa um diagrama de blocos que mostra um exemplo de unidade operacional acionadora de transferência de dados de E/S 106. A unidade operacional acionadora de E/S de transferência 106 conforme a presente configuração de exemplo contém uma unidade operacional do programa de controle de transferência 1031, uma unidade operacional do programa de reserva de memória 1061, uma unidade operacional do programa de liberação de memória 1062 e uma unidade operacional do programa de E/S de processamento de dados 1034.
[0084] A unidade operacional do programa de reserva de memória 1061 é chamada pela unidade operacional do programa de controle de transferência 1031 para que reserve uma área de memória de transferência na memória de dados 4031. Ainda, a unidade operacional do programa de liberação de memória 1062 é chamada pela unidade operacional do programa de controle de transferência 1031 para liberar uma área de memória de transferência na memória de dados 4031. Além disto, a unidade operacional do programa de reserva de memória 1061 trabalha quando a CPU 1 lê o programa de reserva de memória. Ainda, a unidade operacional do programa de liberação de memória 1062 trabalha quando a CPU 1 lê o programa de liberação de memória.
[0085] As outras configurações e operações são as mesmas da primeira configuração de exemplo.
[0086] Como acima descrito, no sistema de controle de dados conforme a presente configuração de exemplo, a unidade operacional acionadora de transferência de dados de E/S 106 usa uma área de memória (isto é, a memória de dados 4031) suportada por um terceiro dispositivo de E/S como um compensador de dados que medeia E/S de transferência de dados. Por estes meios, não é necessário usar a memória principal 3 como um compensador de dados após uma transferência de dados entre dois dispositivos de E/S, de modo que é possível reduzir o consumo de recursos de memória principal e de recursos de barramento de memória principal para além de um efeito de acordo com a primeira configuração de exemplo. Terceira Configuração de Exemplo
[0087] Em seguida, descreve-se uma terceira configuração de exemplo. Num sistema de controle de dados conforme a terceira configuração de exemplo, os dispositivos de E/S entre os quais dados são transferidos na primeira configuração de exemplo são dispositivos de armazenamento. No entretanto, um dispositivo de armazenamento é um dispositivo de armazenamento de dados que cumpre uma norma de armazenamento de dados tal como SCSI, ASS (Anexos Periódicos SCSI) [SAS (Serial Attached SCSI)] ou SATA. Na presente configuração de exemplo, descreve-se em detalhes a transferência de dados que é feita após cópia de armazenamento.
[0088] A figura 9 mostra um diagrama de bloco que ilustra um exemplo de sistema de controle de dados de acordo com a terceira configuração exemplar da presente invenção. Além disto, as mesmas corporificações da primeira configuração de exemplo são identificadas com os mesmos números de referência que os da figura 1, e não são descritas. O sistema de controle de dados conforme a presente configuração de exemplo contém uma CPU 1, uma memória principal 3, um dispositivo de armazenamento 404 que é um primeiro dispositivo de armazenamento, um dispositivo de armazenamento 405 que é um segundo dispositivo de armazenamento e uma ponte 2 que liga estes dispositivos de armazenamento.
[0089] A CPU 1 contém uma unidade operacional de aplicação de cópia de armazenamento 107, uma unidade operacional do sistema operacional 102, uma unidade operacional acionadora de dispositivo de armazenamento 108, uma unidade operacional acionadora de dispositivo de armazenamento 109, uma unidade operacional acionadora de dispositivo de armazenamento 110 e uma unidade de memória de tabela de dispositivo de E/S 114.
[0090] Isto é, a unidade operacional de aplicação de cópia de armazenamento 107, a unidade operacional acionadora de cópia de armazenamento 108, a unidade operacional acionadora do dispositivo de armazenamento 109, a unidade operacional acionadora do dispositivo de armazenamento 110, o dispositivo de armazenamento 404 e o dispositivo de armazenamento 405 conforme a terceira configuração de exemplo correspondem a uma unidade operacional de aplicação de transferência de dados de E/S 101, uma unidade operacional acionadora de transferência de dados de E/S 103, uma unidade operacional acionadora de dispositivo de E/S 104, uma unidade operacional acionadora de dispositivo de E/S 105, um dispositivo de E/S 401 e um dispositivo de E/S 402 conforme a primeira configuração de exemplo, respectivamente.
[0091] A memória principal 3 contém uma memória de transferência de dados 301. Além disto, o detalhe da memória de transferência de dados de E/S 301 é o mesmo da primeira configuração de exemplo. Ainda, a memória principal 3 armazena um programa 304. O programa 304 corresponde a um programa 302 conforme a primeira configuração de exemplo. O programa 304 é lido pela CPU 1, e trabalha como a unidade operacional de aplicação de cópia de armazenamento 107, a unidade operacional do sistema operacional 102, a unidade operacional acionadora de cópia de armazenamento 108, a unidade operacional acionadora do dispositivo de armazenamento 109 e a unidade operacional acionador do dispositivo de armazenamento 110.
[0092] A unidade operacional acionadora de cópia de armazenamento 108 executa o controle de cópia do dispositivo de armazenamento 404 para o dispositivo de armazenamento 405. A figura 10 representa um diagrama de blocos que mostra um exemplo da unidade operacional de cópia de armazenamento 108. A unidade operacional acionadora de cópia de armazenamento 108 conforme a presente configuração de exemplo contém uma unidade operacional de controle de cópia de armazenamento 1081, uma unidade operacional do programa de reserva de memória 1032 e uma unidade operacional do programa de liberação de memória 1033.
[0093] A unidade operacional do programa de controle de cópia de armazenamento 1081 copia dados entre os dispositivos de armazenamento pela emissão de comando de E/S ao dispositivo de armazenamento 404 e ao dispositivo de armazenamento 405. A unidade operacional do programa de controle de cópia de armazenamento 1081 trabalha quando a CPU 1 lê um programa de controle de cópia de armazenamento.
[0094] Além disto, a unidade operacional do programa de reserva de memória 1032 e a unidade operacional do programa de liberação de memória 1033 são as mesmas da primeira configuração de exemplo.
[0095] Portanto, a unidade operacional acionadora de cópia de armazenamento 108 lê o programa de controle de cópia de armazenamento, o programa de reserva de memória e o programa de liberação de memória, e trabalha de acordo com estes programas. Neste caso, a unidade operacional acionadora de armazenamento de cópia 108 trabalha no modo de núcleo da CPU 1.
[0096] A seguir, descrevem-se em detalhes as respectivas unidades operacionais da unidade operacional acionadora de cópia de armazenamento 108. A unidade operacional do programa de controle de cópia de armazenamento 1081 recebe uma solicitação da unidade operacional de cópia de armazenamento 107, e copia dados entre o dispositivo de armazenamento 404 e o dispositivo de armazenamento 405.
[0097] Mais precisamente, a unidade operacional do programa de controle de cópia de armazenamento 1081 chama a unidade operacional do programa de reserva de memória 1032, e reserva uma memória de transferência de dados de E/S 301 na memória principal 3. Ainda, a unidade operacional do programa de controle de cópia de armazenamento 1081 recorre à unidade de memória de tabela do dispositivo de E/S 114, e busca entre nomes do dispositivo de armazenamento 404 e do dispositivo de armazenamento 405 endereços de informação de gestão destes dispositivos suportados pela unidade operacional do sistema operacional 102.
[0098] Além disto, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria um comando de leitura de dados em relação ao dispositivo de armazenamento 404 na memória de comando de E/S 3011. Mais ainda, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria numa memória de lista de ADM 3012 uma lista de endereços da memória de dados 3013 que é um destino de gravação de dados lidos do dispositivo de armazenamento 404. Além disto ainda, a unidade operacional do programa de controle de cópia de armazenamento 1081 emite uma solicitação de leitura de E/S passando estes itens de dados (mais precisamente, o comando de leitura de dados e a lista de ADM) à unidade operacional acionadora do dispositivo de armazenamento 109. Além disto, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria um comando de leitura de dados fazendo uso dos endereços de informação de gestão suportados pela unidade operacional do sistema operacional 102.
[0099] A seguir, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria um comando de gravação de dados em relação ao dispositivo de armazenamento 405 na memória de comando de E/S 3011. Ainda mais, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria na memória de lista de ADM 3012 uma lista de endereços da memória de dados 3013 que é um destino de gravação dos dados a serem gravados no dispositivo de armazenamento 405. Mais ainda, a unidade operacional do programa de controle de armazenamento 1081 emite uma solicitação gravada de E/S passando estes itens de dados (mais precisamente, o comando de gravação de dados e a lista de ADM) à unidade operacional acionadora do dispositivo de armazenamento 110. Além disto, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria um comando de gravação de dados fazendo uso dos endereços de informação de gestão suportados pela unidade operacional do sistema operacional 102.
[0100] Imediatamente a seguir, a unidade operacional do programa de controle de cópia de armazenamento 1081 repete uma série de processamentos tais como processamento de leitura de dados do dispositivo de armazenamento 404 e processamento de gravação de dados no dispositivo de armazenamento 405 até que a transferência do montante de dados solicitado pela unidade operacional de aplicação de cópia de armazenamento 107 seja totalmente atendida.
[0101] Ainda, a unidade operacional do programa de controle de cópia de armazenamento 1081 pode multiplexar e emitir uma solicitação de leitura em relação ao dispositivo de armazenamento 404 e uma solicitação de gravação em relação ao dispositivo de armazenamento 405. Neste caso, como mostrado na figura 3, uma pluralidade de compensadores 30131 pode ser reservada na memória de dados 3013.
[0102] Mais precisamente, a unidade operacional do programa de controle de cópia de armazenamento 1081 executa, paralelamente, o processamento dos dados de leitura do dispositivo de armazenamento 404 e o processamento dos dados de gravação no dispositivo de armazenamento 405 pela utilização de cada compensador 30131. Além disto, a unidade operacional do programa de controle de cópia de armazenamento 1081 repete o processamento dos dados lidos e o processamento dos dados de gravação até que a soma dos montantes de transferência de dados atinja o montante de transferência de dados solicitado pela unidade operacional de aplicação de cópia de armazenamento 107.
[0103] A seguir, descreve-se uma operação do sistema de controle de dados conforme a presente configuração de exemplo. Primeiro, descreve-se uma operação em que são feitas duas solicitações, uma de leitura em relação ao dispositivo de armazenamento 404 e outra de gravação em relação ao dispositivo de armazenamento 405 sem serem multiplexadas. A figura 11 representa um fluxograma que mostra um exemplo de operação do sistema de controle de dados de acordo com a presente configuração de exemplo. Primeiro, a unidade operacional de aplicação de cópia de armazenamento 107 solicita à unidade operacional acionadora de cópia de armazenamento 108 que copie os dados entre os dispositivos de armazenamento (passo B1).
[0104] A unidade operacional do programa de controle de cópia de armazenamento 1081 da unidade operacional acionadora de cópia de armazenamento 108 recebe uma solicitação de cópia de dados e chama a unidade operacional do programa de reserva de memória 1032, e a unidade operacional do programa de reserva de memória 1032 reserva memória de transferência de dados de E/S 301 na memória principal 3 (passo B2).
[0105] A seguir, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria um comando de E/S na memória de comando de E/S 3011, e uma lista de ADM na memória de lista de ADM 3012. A seguir, a unidade operacional do programa de controle de cópia de armazenamento 1081 emite uma solicitação de leitura de E/S passando estes itens de dados (isto é, o comando de E/S de leitura e a lista de ADM) à unidade operacional acionadora do dispositivo de armazenamento 109, lê os dados de E/S do dispositivo de armazenamento 404 e armazena os dados lidos na memória de dados 3013 (passo B3).
[0106] Imediatamente depois, a unidade operacional do programa de controle de cópia de armazenamento 1081 cria um comando de E/S na memória de comando de E/S 3011, e uma lista de ADM na memória de lista de ADM 3012. A seguir, a unidade operacional do programa de controle de cópia de armazenamento 1081 emite uma solicitação de gravação de E/S passando estes itens de dados à unidade operacional acionadora do dispositivo de armazenamento 110, e grava no dispositivo de armazenamento 405 os dados armazenados na memória de dados 3013 (passo B4).
[0107] A seguir, a unidade operacional do programa de controle de armazenamento de cópia 1081 decide se o processamento solicitado de cópia do montante de dados solicitado foi totalmente atendido ou não (passo B5). Se o processamento de cópia do montante de dados não tiver sido totalmente atendido (Não, no passo B5), a unidade operacional do programa de controle de cópia de armazenamento 1081 repete o processamento dos passos B3 e B4. No entanto, se o processamento de cópia do montante de dados solicitado tiver sido totalmente atendido (Sim, no passo B5), a unidade operacional do programa de controle de cópia de armazenamento 1081 chama a unidade operacional do programa de liberação de memória 1033, e a unidade operacional de liberação de memória 1033 libera a memória de transferência de dados de E/S 301 (passo B6). Então, a unidade operacional do programa de controle de armazenamento de cópia 1081 repete os passos B3 e B4 do processamento até que o processamento de cópia do montante de dados solicitado pela unidade operacional de aplicação de cópia de armazenamento 107 esteja totalmente atendido.
[0108] A seguir, descreve-se uma operação em que uma solicitação de leitura em relação ao dispositivo de armazenamento 404 e uma solicitação de gravação em relação ao dispositivo de armazenamento 405 são multiplexadas e feitas. As Figuras 12 e 13 representam fluxogramas que mostram outros exemplos de operação do sistema de controle de dados de acordo com a presente configuração de exemplo. Os passos B1 e B2 de processamento em que a unidade operacional de aplicação de cópia de armazenamento 107 solicita à unidade operacional acionadora de cópia de armazenamento 108 que copie dados entre dispositivos de armazenamento, e a unidade operacional do programa de reserva de memória 1032 reserva a memória de transferência de dados de E/S 301 são os mesmos do processamento mostrado na figura 11.
[0109] A unidade operacional do programa de controle de armazenamento de cópia 1081 cria na memória de comando de E/S 3011 uma pluralidade de comandos de leitura de E/S para gravar dados na memória de dados 3013 numa pluralidade de compensadores 30131. Além disto, a unidade operacional de controle de cópia de armazenamento 1081 cria na memória da lista de ADM 3012 listas de ADM correspondendo aos respectivos comandos de leitura de E/S. Ainda, a unidade operacional do programa de controle de cópia de armazenamento 1081 solicita à unidade operacional acionadora do dispositivo de armazenamento 109 que leia uma pluralidade de itens de dados de E/S fazendo uso destes itens de dados (isto é, os comandos de leitura de E/S e as listas de ADM) (passo B7).
[0110] Imediatamente a seguir, a unidade operacional do programa de controle de cópia de armazenamento 1081 fica de prontidão até que uma solicitação emitida a um dispositivo de armazenamento seja totalmente atendida. Quando uma solicitação de E/S é totalmente atendida (passo B8), a unidade operacional do programa de controle de cópia de armazenamento 1081 decide se a solicitação de E/S atendida é uma solicitação de leitura ou não (passo B9). Se a solicitação de E/S atendida é uma solicitação de leitura (Sim, no passo B9), a unidade operacional do programa de controle de cópia de armazenamento 1081 executa o processamento do passo B4 (isto é, grava dados no dispositivo de armazenamento 405) em relação aos dados lidos do dispositivo de armazenamento 404 e armazenados no compensador da memória de dados 301 semelhante à operação em que as solicitações de E/S não são multiplexadas. Imediatamente a seguir, a unidade operacional de controle de cópia de armazenamento 1081 fica de prontidão até que uma solicitação de E/S seja novamente totalmente atendida.
[0111] A seguir, descreve-se um caso em que a solicitação de E/S totalmente atendida não é uma solicitação de leitura (isto é, uma solicitação de gravação) no passo B9. Se a solicitação de E/S atendida é uma solicitação de gravação no passo B9, (Não, no passo B9), a unidade operacional do programa de controle de cópia de armazenamento 1081 decide se o montante de dados lidos em resposta à solicitação de leitura feita em relação ao dispositivo de armazenamento 404 atinge o montante de dados solicitado pela unidade operacional de aplicação de cópia de armazenamento 107 (passo B10).
[0112] Quando o montante de dados não atinge o montante solicitado de dados (Não, no passo B10), a unidade operacional do programa de controle de cópia de armazenamento 1081 executa o mesmo processamento do passo B3 de emitir uma solicitação de leitura de E/S à unidade operacional acionadora do dispositivo de armazenamento 109, e de armazenar os dados lidos na memória de dados 3013. Em seguida, a unidade operacional do programa de controle de cópia de armazenamento 1081 fica de prontidão até que uma solicitação de E/S seja novamente totalmente atendida.
[0113] No entanto, se o montante de dados atinge o montante solicitado de dados no passo B10 (Sim no passo B10), a unidade operacional do programa de controle de cópia de armazenamento 1081 decide se todas as solicitações de gravação emitidas à unidade operacional acionadora do dispositivo de armazenamento 110 foram totalmente atendidas ou não (passo B11). Se todas as solicitações de gravação não foram totalmente atendidas (Não, no passo B11), a unidade operacional do programa de controle de armazenamento 1081 fica de prontidão até que uma solicitação de E/S seja novamente totalmente atendida. No entanto, se todas as solicitações de gravação foram totalmente atendidas (Sim, no passo B11), a unidade operacional do programa de liberação de memória 1033 libera a memória de transferência de dados de E/S 301 (passo B6).
[0114] Além disto, semelhantemente à primeira configuração de exemplo, a unidade operacional de controle de cópia de armazenamento 1081 pode executar pré-determinados processamentos de dados tais como conversão de formato e compactação enquanto os dados são copiados.
[0115] Como acima descrito, de acordo com a presente configuração de exemplo, a unidade operacional acionadora de cópia de armazenamento 108 (mais precisamente, a unidade operacional do programa de controle de cópia de armazenamento 1081) que copia dados do dispositivo de armazenamento 404 para o dispositivo de armazenamento 405 no modo de núcleo instrui a unidade operacional acionadora do dispositivo de armazenamento 109 para que armazene os dados lidos do dispositivo de armazenamento 404, na memória de dados 3013. Ainda, a unidade operacional acionadora de cópia de armazenamento 108 (mais precisamente, a unidade operacional do programa de controle de cópia de armazenamento 1081) instrui a unidade operacional acionadora do dispositivo de armazenamento 110 a gravar os dados armazenados na memória de dados 3013 no dispositivo de armazenamento 405. Consequentemente, é possível copiar dados a uma alta velocidade entre dois dispositivos de armazenamento que não suportam uma operação direta de cópia de dados.
[0116] A seguir, descreve-se um exemplo de uma configuração mínima da presente invenção. A figura 14 representa um diagrama de blocos que mostra um exemplo de uma configuração mínima de um sistema de controle de dados de acordo com a presente invenção. Um sistema de controle de dados conforme a presente invenção contém: uma CPU 80 (por exemplo, uma CPU 1) que controla transferência de dados de um primeiro dispositivo (por exemplo, um dispositivo de E/S 401) a um segundo dispositivo (por exemplo, um dispositivo de E/S 402) no modo de núcleo; e uma memória principal 90 (por exemplo, uma memória principal 3) que armazena dados a serem transferidos do primeiro dispositivo para o segundo dispositivo.
[0117] A CPU 80 contém: um meio de controle do primeiro dispositivo 81 (por exemplo, uma unidade operacional acionadora de dispositivo de E/S 104) que controla o primeiro dispositivo; um meio de controle do segundo dispositivo (por exemplo, uma unidade operacional acionadora de dispositivo de E/S 105) que controla o segundo dispositivo; e um meio de controle de transferência de dados 83 (por exemplo, uma unidade operacional acionadora de transferência de dados de E/S 103) que emite uma instrução de leitura que instrui o meio de controle do primeiro dispositivo 81 a armazenar os dados lidos do primeiro dispositivo na memória principal 3, e emite uma instrução de gravação que instrui o meio de controle do segundo dispositivo 82 a gravar no segundo dispositivo os dados armazenados na memória principal 3.
[0118] De acordo com esta configuração, é possível transferir dados a uma alta velocidade entre dois dispositivos de E/S que não suportam uma operação de transferência direta de dados.
[0119] Parte ou a totalidade das configurações de exemplo acima podem ser descritas nas observações seguintes, mas, no entanto, não estão limitadas de nenhuma maneira às observações seguintes.
[0120] Observação Suplementar 1: Um sistema de controle de dados contém: uma CPU que controla a transferência de dados de um primeiro dispositivo a um segundo dispositivo em modo de núcleo; e uma memória principal que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, e a CPU contém: um meio de controle de um primeiro dispositivo que controla o primeiro dispositivo; um meio de controle do segundo dispositivo que controla o segundo dispositivo; e um meio de controle de transferência de dados que emite uma instrução de leitura que instrui o primeiro meio de controle de dispositivo a armazenar dados lidos do primeiro dispositivo na memória principal, e emite uma instrução de gravação que instrui o meio de controle do segundo dispositivo a gravar no segundo dispositivo os dados armazenados na memória principal.
[0121] Observação Suplementar 2 : No sistema de controle de dados descrito na Observação Suplementar 1, o meio de controle de transferência de dados executa pré-determinados processamentos em relação aos dados armazenados na memória principal antes de emitir a instrução de gravar ao segundo dispositivo.
[0122] Observação Suplementar 3 : No sistema de controle de dados descrito na Observação Suplementar 1 ou 2, quando o primeiro dispositivo emite uma solicitação de transferência de dados ao segundo dispositivo, o meio de controle de transferência de dados repete a instrução de leitura ao meio de controle do primeiro dispositivo e a instrução de gravação ao segundo dispositivo até que a transferência do montante de dados solicitado seja terminada.
[0123] Observação Suplementar 4: O sistema de controle de dados descrito em qualquer uma das Observações Suplementares 1 a 3 contém: um meio de reservar área que reserva na memória principal uma área na qual os dados a serem transferidos são armazenados; e um meio de liberar área que libera a área.
[0124] Observação Suplementar 5 : No sistema de controle de dados descrito em qualquer uma das Observações Suplementares 1 a 4, a memória principal contém: um meio de memória de comando de instrução que armazena um comando de instrução de leitura que indica a instrução de leitura e um comando de instrução de gravação que indica uma instrução de gravação; e um meio de memória de lista de destino de armazenamento que armazena uma lista de destino de armazenamento que é uma lista que indica um destino de armazenamento de transferência de dados na memória principal, e o meio de controle de transferência de dados cria o comando de instrução de leitura e o comando de instrução de gravação e armazena o comando de instrução de leitura e o comando de instrução de gravação no meio de memória de comando de instrução, e cria a lista de destino de armazenamento e armazena a lista de destino de armazenamento no meio da memória da lista de destino de armazenamento, o meio de controle do primeiro dispositivo armazena os dados lidos do primeiro dispositivo no destino de armazenamento indicado pela lista de destino de armazenamento, baseado no comando de instrução de leitura armazenado no meio de memória de comando de instrução e a lista de destino de armazenamento, e o meio de controle do segundo dispositivo grava os dados lidos do destino de armazenamento indicado pela lista de destino de armazenamento, no segundo dispositivo baseado no comando de instrução de gravação armazenado no meio de memória de comando de instrução e na lista de destino de armazenamento.
[0125] Observação Suplementar 6: O sistema de controle de dados descrito na Observação Suplementar 5, ainda contém um meio de memória de endereço de informação de gestão que armazena endereços de informações de gestão que são endereços que indicam posições nas quais são armazenadas informações de gestão do primeiro dispositivo e do segundo dispositivo, em associação com nomes do primeiro dispositivo e do segundo dispositivo, e o meio de controle de transferência de dados cria um comando de instrução de leitura baseado nas informações de gestão armazenadas nas posições indicadas pelos endereços de informações de gestão.
[0126] Observação Suplementar 7 : No sistema de controle de dados descrito em qualquer uma das Observações Suplementares 1 a 6, a memória principal contém uma pluralidade de compensadores que armazenam dados de transferência, e o meio de controle de transferência de dados emite a instrução de leitura ao meio de controle do primeiro dispositivo por compensador em paralelo, e emite a instrução de gravação ao meio de controle do segundo dispositivo por compensador em paralelo.
[0127] Observação Suplementar 8 : No sistema de controle de dados descrito em qualquer uma das Observações Suplementares 1 a 7, a CPU controla a cópia de dados de um primeiro dispositivo de armazenamento a um segundo dispositivo de armazenamento no modo de núcleo, a memória principal armazena dados a serem copiados do primeiro dispositivo de armazenamento ao segundo dispositivo de armazenamento; o meio de controle do primeiro dispositivo controla o primeiro dispositivo de armazenamento, e o meio de controle do segundo dispositivo controla o segundo dispositivo de armazenamento.
[0128] Observação Suplementar 9: O sistema de controle de dados descrito em qualquer uma das Observações Suplementares 1 a 8 contém um terceiro dispositivo que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, e um meio de controle de transferência de dados emite uma instrução de leitura que instrui o meio de controle do primeiro dispositivo a armazenar dados lidos do primeiro dispositivo no terceiro dispositivo, e emite uma instrução de gravação que instrui meio de controle do segundo dispositivo a gravar no segundo dispositivo os dados armazenados no terceiro dispositivo.
[0129] Observação Suplementar 10: Um método de controle de dados contém: na CPU o controle da transferência de dados de um primeiro dispositivo a um segundo dispositivo no modo de núcleo, a instrução a um meio de controle de um primeiro dispositivo que controla o primeiro dispositivo da CPU a armazenar dados lidos de um primeiro dispositivo numa memória principal; e na CPU, a instrução a um meio de controle de um segundo dispositivo que controla o segundo dispositivo da CPU a gravar no segundo dispositivo os dados armazenados na memória principal.
[0130] Observação Suplementar 11: O método de controle de dados descrito na Observação Suplementar 10, ainda inclui, na CPU, a execução pré-determinada de processamento em relação aos dados armazenados na memória principal antes de emitir instrução de gravação ao segundo dispositivo.
[0131] Observação Suplementar 12: O método de controle de dados descrito na Observação Suplementar 10 ou 11, ainda contém na CPU, quando o primeiro dispositivo emite uma solicitação de transferência de dados ao segundo dispositivo, a repetição da instrução de leitura ao meio de controle do primeiro dispositivo e a instrução de gravação ao segundo dispositivo até que a transferência de um montante de dados solicitados seja totalmente atendida.
[0132] Observação Suplementar 13: O método de controle de dados descrito em qualquer uma das Observações Suplementares 10 a 12, ainda contém: na CPU, a reserva de uma área na qual os dados a serem transferidos são armazenados; e na CPU, a liberação da área.
[0133] Observação Suplementar 14: O método de controle de dados descrito em qualquer uma das Observações Suplementares 10 a 13, ainda contém:na CPU, a criação de um comando de instrução que indica a instrução de leitura e um comando da instrução de gravação que indica uma instrução de gravação, e o armazenamento do comando de instrução de leitura e do comando de instrução de gravação num meio de memória de comando de instrução da memória principal; na CPU, a criação de uma lista de destino de armazenamento que é uma lista que indica um destino de armazenamento de transferência de dados na memória principal, e o armazenamento da lista de destino de armazenamento num meio de memória da lista de destino de armazenamento da memória principal; na CPU, o armazenamento dos dados lidos do primeiro dispositivo no destino de armazenamento indicado pela lista de destino de armazenamento, baseado no comando de instrução de leitura armazenado no meio de memória de comando de instrução e a lista de destino de armazenamento; e na CPU, a gravação dos dados lidos do destino de armazenamento indicado pela lista de destino de armazenamento, no segundo dispositivo baseado no comando de instrução de gravação armazenado no meio de memória de comando de instrução e na lista de destino de armazenamento.
[0134] Observação Suplementar 15: O método de controle de dados descrito na Observação Suplementar 14, ainda contém, na CPU, a referência a um meio de memória de endereço de informações de gestão que armazena endereços de informações de gestão que são endereços que indicam posições nas quais informações de gestão do primeiro dispositivo e do segundo dispositivo são armazenadas, em associação com nomes do primeiro dispositivo e do segundo dispositivo, e a criação de comando de instrução de leitura e de comando de instrução de gravação baseada nas informações de gestão armazenadas nas posições indicadas pelos endereços de informações de gestão.
[0135] Observação Suplementar 16: O método de controle de dados descrito em qualquer uma das Observações Suplementares 10 a 15, ainda contém, na CPU, a emissão de instrução de leitura ao meio de controle do primeiro dispositivo para cada um de uma pluralidade de compensadores em paralelo da memória principal, e a emissão de instrução de gravação ao meio de controle do segundo dispositivo para cada compensador em paralelo.
[0136] Observação Suplementar 17: O método de controle de dados descrito em qualquer uma das Observações Suplementares 10 a 16, ainda contém: na CPU o controle de transferência de dados de um primeiro dispositivo de armazenamento a um segundo dispositivo de armazenamento em modo de núcleo, a instrução a um meio de controle do primeiro dispositivo para armazenar os dados lidos do primeiro dispositivo de armazenamento numa memória principal; e na CPU, a instrução ao meio de controle do segundo dispositivo para gravar no segundo dispositivo de armazenamento os dados armazenados na memória principal.
[0137] Observação Suplementar 18: O método de controle de dados descrito em qualquer uma das Observações Suplementares 10 a 17, ainda contém: a emissão de uma instrução de leitura que instrui o meio de controle do primeiro dispositivo a armazenar os dados lidos do primeiro dispositivo no terceiro dispositivo que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, e uma instrução de gravação que instrui o meio de controle do segundo dispositivo a gravar no segundo dispositivo os dados armazenados no terceiro dispositivo.
[0138] Observação Suplementar 19: Um programa de controle que é aplicado a um computador que contém: uma CPU que controla transferência de dados de um primeiro dispositivo a um segundo dispositivo num modo de núcleo; e uma memória principal que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, faz o computador executar: processamento do controle do primeiro dispositivo de controlar o primeiro dispositivo; processamento de controle do segundo dispositivo de controlar o segundo dispositivo; e um processamento de controle de transferência de dados de emissão de instrução de leitura que instrui no processamento do controle do primeiro dispositivo a armazenar dados lidos do primeiro dispositivo na memória principal, e a emissão de instrução de gravação que instrui no processamento do controle do segundo dispositivo a gravar no segundo dispositivo os dados armazenados na memória principal.
[0139] Observação Suplementar 20: O programa de controle de dados descrito na Observação Suplementar 19, ainda faz com que o computador, no processamento do controle da transferência de dados, execute pré-determinados processamentos em relação aos dados armazenados na memória principal antes de emitir a instrução de gravação ao segundo dispositivo.
[0140] Observação Suplementar 21: O programa de controle de dados descrito na Observação Suplementar 19 ou 20, ainda faz com que o computador, no processamento do controle de transferência de dados, quando o primeiro dispositivo emite uma solicitação de transferência de dados ao segundo dispositivo, repita a instrução de leitura no processamento de controle do primeiro dispositivo e no processamento de gravação no segundo dispositivo até que a transferência do montante solicitado de dados esteja terminada.
[0141] Observação Suplementar 22: O programa de controle de dados descrito em qualquer uma das Observações Suplementares 19 a 21, ainda faz com que o computador execute: processamento de reserva de área que reserva uma área na memória principal na qual os dados a serem transferidos são armazenados; e processamento de liberação de área que libera a área.
[0142] Observação Suplementar 23: O programa de controle de dados conforme qualquer uma das Observações Suplementares 19 a 22, ainda faz com que o computador: no processamento da transferência de dados, crie um comando de instrução de leitura que indica uma instrução de leitura e um comando de instrução de gravação que indica uma instrução de gravação, e armazene o comando de instrução de leitura e o comando de instrução de gravação num meio de memória de comando de instrução na memória principal e crie uma lista de destinos de armazenamento que é uma lista que indica um destino de armazenamento da transferência de dados na memória principal, e armazene a lista de destino de armazenamento num meio de memória de lista de destinos de armazenamento da memória principal; no processamento do controle do primeiro dispositivo, armazene os dados lidos do primeiro dispositivo no destino de armazenamento indicado pela lista de destino de armazenamento, baseado no comando de instrução de leitura armazenado no meio de memória de comando de instrução e na lista de destino de armazenamento; e no processamento do controle do segundo dispositivo, grave no segundo dispositivo os dados lidos dos destinos de armazenamento indicados pela lista de destinos de armazenamento, baseado no comando de instrução de gravação armazenado no meio de memória de comando de instrução e na lista de destinos de armazenamento.
[0143] Observação Suplementar 24: O programa de controle de dados descrito na Observação Suplementar 23, ainda faz com que o computador: crie o comando de instrução de leitura e o comando de instrução de gravação, no processamento do controle de transferência de dados, baseado nas informações de gestão armazenadas em posições indicadas pelos endereços de informações de gestão armazenados por um meio de memória de endereços de informações de gestão que armazena endereços de informações de gestão que são endereços que indicam posições nas quais as informações de gestão do primeiro dispositivo e do segundo dispositivo são armazenados, em associação com nomes do primeiro dispositivo e do segundo dispositivo.
[0144] Observação Suplementar 25: O programa de controle de dados descrito em qualquer uma das Observações Suplementares 19 a 24, ainda faz com que o computador: no processamento do controle de transferência de dados, emita uma instrução de leitura no processamento do controle do primeiro dispositivo para cada um da pluralidade de compensadores em paralelo da memória principal, e emita uma instrução de gravação no processamento do controle do segundo dispositivo por compensador em paralelo.
[0145] Observação Suplementar 26: O programa de controle de dados descrito em qualquer uma das Observações Suplementares 19 a 25 que é aplicado a um computador que tem: uma CPU que controla transferência de dados de um primeiro dispositivo de armazenamento a um segundo dispositivo de armazenamento em modo de núcleo; e uma memória principal que armazena dados a serem transferidos de um primeiro dispositivo de armazenamento a um segundo dispositivo de armazenamento, ainda faz com que o computador: no processamento de controle do primeiro dispositivo, controle o primeiro dispositivo de armazenamento; e no meio de controle do segundo dispositivo, controle o segundo dispositivo de armazenamento.
[0146] Observação Suplementar 27: O programa de controle de dados descrito em qualquer uma das Observações Suplementares 19 a 26, ainda faz com que o computador, no processamento do controle de transferência de dados, emita uma instrução de leitura que instrui, no processamento do controle do primeiro dispositivo, a armazenar os dados lidos do primeiro dispositivo em um terceiro dispositivo que armazena dados a serem transferidos do primeiro dispositivo ao segundo dispositivo, e emita uma instrução de gravação que instrui, no processamento de controle do segundo dispositivo, a gravar no segundo dispositivo, os dados armazenados no terceiro dispositivo.
[0147] Apesar da presente invenção ter sido descrita com referência a configurações de exemplo e a exemplos, a presente invenção não está limitada, a qualquer título, às configurações de exemplo nem aos exemplos. As configurações e os detalhes da presente invenção podem ser mudados de várias maneiras dentro do escopo da presente invenção que uma pessoa de experiência comum no ofício pode compreender.
[0148] Este requerimento reivindica prioridade ao pedido Japonês de Patente No. 2011-044951, registrado em 02 de Março de 2011, cujo conteúdo integral é aqui incorporado para referência. Aplicabilidade Industrial
[0149] A presente invenção é convenientemente aplicada a um sistema de computador que executa o controle de dados móveis a alta velocidade entre dois dispositivos de E/S. Ainda, a presente invenção é também convenientemente aplicada a um sistema de computador que transfere dados a alta velocidade enquanto processa dados a serem transferidos entre dois dispositivos de E/S. Lista de Referência de Sinais 1 CPU 2 Ponte 3 Memória Principal 101 Unidade de aplicação de transferência de dados de E/S 102 Unidade operacional do sistema operacional 103 Unidade operacional acionadora de transferência de dados de E/S 104,105 Unidade operacional acionadora de dispositivo de E/S 106 Unidade operacional acionadora de transferência de dados de E/S 107 Unidade Operacional de aplicação de cópia de armazenamento 108 Unidade operacional acionadora de cópia de Armazenamento 109,110 Unidade operacional acionadora de dispositivo de armazenamento 301 Memória de transferência de dados de E/S 302,303,304 Programa 401,402,403 dispositivo de E/S 404,405 Dispositivo de armazenamento 501,502 Barramento CIP.

Claims (9)

1. Sistema de controle de dados, caracterizado pelo fato de compreender: - uma CPU (1, 80) que controla transferência de dados de um primeiro dispositivo (401) a um segundo dispositivo (402) em modo de núcleo; e - uma memória principal (3, 90) que armazena dados a serem transferidos do primeiro dispositivo (401) ao segundo dispositivo (402), onde a CPU (1, 80) compreende: - um primeiro meio de controle de dispositivo (81) que controla o primeiro dispositivo (401); - um segundo meio de controle de dispositivo (82) que controla o segundo dispositivo (402); e - um meio de controle de transferência de dados (83) que emite instrução de leitura que instrui o meio de controle do primeiro dispositivo (81) a armazenar dados lidos de um primeiro dispositivo (401) na memória principal, e emite uma instrução de gravação que instrui o meio de controle do segundo dispositivo (82) a gravar, no segundo dispositivo (402), os dados armazenados na memória principal (3, 90), sendo que a unidade de controle de transferência de dados (83) reserva área na memória principal (3, 90), sendo que a unidade de controle do primeiro dispositivo (81) é configurada para fazer com que o primeiro dispositivo (401) grave dados na área da memória usando acesso direto à memória, e sendo que a unidade de controle do segundo dispositivo (82) é configurada para fazer com que o segundo dispositivo (402) leia os dados gravados pelo primeiro dispositivo a partir da área da memória usando acesso direto à memória.
2. Sistema de controle de dados, de acordo com a reivindicação 1, caracterizado pelo fato de o meio de controle de transferência de dados (83) executar processamentos pré-determinados em relação aos dados armazenados na memória principal (3, 90) antes de emitir a instrução de gravação ao segundo dispositivo (402).
3. Sistema de controle de dados, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de quando a unidade de controle do segundo dispositivo (82) ter finalizado um processo de gravação de dados ao segundo dispositivo (402) o meio de controle de transferência de dados (83) repete a instrução de leitura ao meio de controle do primeiro dispositivo (81) e a instrução de gravação ao segundo dispositivo (82) até que a transferência de um montante solicitado de dados esteja terminada.
4. Sistema de controle de dados, de acordo com qualquer uma das reivindicações de 1 a 3, caracterizado pelo fato de compreender ainda: - um meio de reserva de área que reserva uma área na memória principal (3, 90) na qual dados a serem transferidos são armazenados; e - um meio de liberação de área que libera a área.
5. Sistema de controle de dados, de acordo com qualquer uma das reivindicações de 1 a 4, caracterizado pelo fato de a memória principal (3, 90) compreender: - um meio de memória de comando de instrução que armazena um comando de instrução de leitura que indica a instrução de leitura e um comando de instrução de gravação que indica uma instrução de gravação; e - um meio de memória de lista de destino de armazenamento que armazena uma lista de destinos de armazenamento que é a lista que indica um destino de armazenamento de transferência de dados na memória principal (3, 90); - o meio de controle de transferência de dados (83) cria o comando de instrução de leitura e o comando de instrução de gravação e armazena o comando de instrução de leitura e o comando de instrução de gravação no meio de memória de comando de instrução, e cria a lista de destinos de armazenamento e armazena a lista de destinos de armazenamento no meio de memória de lista de destinos de armazenamento;
6. Sistema de controle de dados, de acordo com a reivindicação 5, caracterizado pelo fato de compreender ainda: um meio de memória de endereços de informações de gestão que são endereços que indicam posições nas quais informações de gestão do primeiro dispositivo (401) e do segundo dispositivo (402) são armazenadas, em associação com nomes do primeiro dispositivo (401) e do segundo dispositivo (402), onde o meio de controle de transferência de dados (83) cria um comando de instrução de leitura e um comando de instrução de gravação baseado nas informações de gestão armazenadas nas posições indicadas pelos endereços de informações de gestão.
7. Sistema de controle de dados, de acordo com qualquer uma das reivindicações de 1 a 6, caracterizado pelo fato de uma memória principal (3, 90) compreender uma pluralidade de compensadores que armazenam transferência de dados; e o meio de controle de transferência de dados (83) emite a instrução de leitura ao meio de controle do primeiro dispositivo (81) por compensador em paralelo, e emite uma instrução de gravação ao segundo dispositivo por compensador em paralelo.
8. Sistema de controle de dados, de acordo com qualquer uma das reivindicações de 1 a 7, caracterizado pelo fato de: - a CPU (1, 80) controla cópia de dados de um primeiro dispositivo de armazenamento (404) a um segundo dispositivo de armazenamento (405) no modo de núcleo; -a memória principal armazena dados a serem copiados do primeiro dispositivo de armazenamento (404) ao segundo dispositivo de armazenamento (405); - o meio de controle do primeiro dispositivo (81) controla o primeiro dispositivo de armazenamento (404); e - o meio de controle do segundo dispositivo (82) controla o segundo dispositivo de armazenamento (405).
9. Método de controle de dados, caracterizado pelo fato de compreender: - em uma CPU (1, 80) que reserva área de memória em uma memória principal (3, 90); - em uma CPU (1, 80) que controla transferência de dados de um primeiro dispositivo (401) a um segundo dispositivo (402) em um modo de núcleo, a instrução de um meio de controle do primeiro dispositivo que controla o primeiro dispositivo da CPU (1, 80) a armazenar os dados lidos do primeiro dispositivo (401) numa memória principal (3, 90), e a unidade de controle do primeiro dispositivo (81) com o primeiro dispositivo (401) gravando dados na área da memória usando acesso direto à memória; e - em uma CPU (1, 80), a instrução de um meio de controle do segundo dispositivo (82) que controla o segundo dispositivo (402) da CPU (1, 80) a gravar no segundo dispositivo (402) os dados armazenados na memória principal (3,90), e a unidade de controle do segundo dispositivo (82) com o segundo dispositivo (402) lendo dados gravados pelo primeiro dispositivo (401) a partir da área da memória usando acesso direto à memória.
BR112013020341-2A 2011-03-02 2012-02-23 sistema de controle de dados e método de controle de dados BR112013020341B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-044951 2011-03-02
JP2011044951 2011-03-02
PCT/JP2012/001229 WO2012117701A1 (ja) 2011-03-02 2012-02-23 データ制御システム、データ制御方法およびデータ制御用プログラム

Publications (2)

Publication Number Publication Date
BR112013020341A2 BR112013020341A2 (pt) 2017-11-14
BR112013020341B1 true BR112013020341B1 (pt) 2021-06-08

Family

ID=46757646

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013020341-2A BR112013020341B1 (pt) 2011-03-02 2012-02-23 sistema de controle de dados e método de controle de dados

Country Status (6)

Country Link
US (1) US9280498B2 (pt)
EP (1) EP2682870B1 (pt)
JP (1) JP6395203B2 (pt)
CN (1) CN103370697B (pt)
BR (1) BR112013020341B1 (pt)
WO (1) WO2012117701A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6810962B2 (ja) * 2017-03-30 2021-01-13 株式会社アクセル データ処理装置、データ転送装置、データ処理方法、及びデータ転送プログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6459446A (en) * 1987-08-31 1989-03-07 Toshiba Corp Information processing system
JPS6476343A (en) * 1987-09-18 1989-03-22 Fujitsu Ltd Cache memory control system
JPH05151137A (ja) * 1991-11-29 1993-06-18 Nec Corp 電子計算機装置
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
JPH0785308A (ja) * 1993-07-02 1995-03-31 Sony Corp 画像表示方法
FR2717921B1 (fr) * 1994-03-24 1996-06-21 Texas Instruments France Dispositif de gestion de conflit d'accès entre un CPU et des mémoires.
JP2901882B2 (ja) 1994-07-26 1999-06-07 株式会社日立製作所 計算機システムおよび入出力命令の発行方法
JPH08106443A (ja) * 1994-10-05 1996-04-23 Hitachi Ltd データ処理システム及び並列コンピュータ
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
JPH10143437A (ja) 1996-11-14 1998-05-29 Toshiba Corp コンピュータシステムおよび動画像転送方法
US6016515A (en) * 1997-04-04 2000-01-18 Microsoft Corporation Method, computer program product, and data structure for validating creation of and routing messages to file object
US6330623B1 (en) * 1999-01-08 2001-12-11 Vlsi Technology, Inc. System and method for maximizing DMA transfers of arbitrarily aligned data
JP2001159956A (ja) * 1999-12-01 2001-06-12 Hitachi Ltd ディスクアクセス制御方法および装置
JP2002262099A (ja) * 2001-02-27 2002-09-13 Canon Inc 画像処理装置及び画像処理装置用dmaコントローラ
US7020724B2 (en) * 2001-09-28 2006-03-28 Intel Corporation Enhanced power reduction capabilities for streaming direct memory access engine
US7240350B1 (en) * 2002-01-07 2007-07-03 Slt Logic, Llc System and method for providing communications to processes
US7287273B2 (en) 2002-02-15 2007-10-23 Science Park Corporation Individual authentication method using input characteristic of input apparatus by network, program thereof, and recording medium containing the program
US7130933B2 (en) * 2002-07-24 2006-10-31 Intel Corporation Method, system, and program for handling input/output commands
US7406481B2 (en) * 2002-12-17 2008-07-29 Oracle International Corporation Using direct memory access for performing database operations between two or more machines
KR100630052B1 (ko) * 2004-01-26 2006-09-27 삼성전자주식회사 실시간 전송 프로토콜 데이터의 전송을 위한 처리 시스템 및 방법
US20050256977A1 (en) * 2004-05-14 2005-11-17 Dehaemer Eric J Integrated circuit having processor and switch capabilities
JP2006287715A (ja) * 2005-04-01 2006-10-19 Seiko Epson Corp 画像処理コントローラ及び電子機器
US8046506B2 (en) * 2006-03-21 2011-10-25 Mediatek Inc. FIFO system and operating method thereof
JP4895394B2 (ja) * 2007-11-16 2012-03-14 株式会社リコー 画像処理装置
JP2009230484A (ja) 2008-03-24 2009-10-08 Nec Corp ストレージサブシステム、ストレージシステム、ファームウェア置換方法、及びプログラム
US8327040B2 (en) * 2009-01-26 2012-12-04 Micron Technology, Inc. Host controller
JP5293283B2 (ja) * 2009-03-09 2013-09-18 株式会社リコー 半導体集積回路及びメモリアクセス制御方法
US9063561B2 (en) * 2009-05-06 2015-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct memory access for loopback transfers in a media controller architecture
WO2011161722A1 (en) * 2010-06-24 2011-12-29 Hitachi, Ltd. Data transfer system and data transfer method

Also Published As

Publication number Publication date
WO2012117701A1 (ja) 2012-09-07
EP2682870A1 (en) 2014-01-08
JPWO2012117701A1 (ja) 2014-07-07
CN103370697B (zh) 2016-09-07
US9280498B2 (en) 2016-03-08
BR112013020341A2 (pt) 2017-11-14
EP2682870A4 (en) 2015-02-25
EP2682870B1 (en) 2016-11-02
CN103370697A (zh) 2013-10-23
JP6395203B2 (ja) 2018-09-26
US20130346643A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
EP3608792B1 (en) Managed switching between one or more hosts and solid state drives (ssds) based on the nvme protocol to provide host storage services
JP4472617B2 (ja) Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
JP4817783B2 (ja) Raidシステム及びそのリビルド/コピーバック処理方法
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
JP5068108B2 (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
TW200846910A (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
JP2012133405A (ja) ストレージ装置及びそのデータ転送制御方法
KR101355105B1 (ko) 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
TW200413917A (en) Method and system of managing virtualized physical memory in a multi-processor system
US20040103247A1 (en) Storage control apparatus and control method thereof
US10802971B2 (en) Cache memory transaction shielding via prefetch suppression
JP2002049511A (ja) アドレスの割付変更方法及びこれを用いた外部記憶サブシステム
WO2018139223A1 (ja) 情報処理装置,制御プログラムおよび情報処理方法
JP2019204463A (ja) ストレージシステム及びその制御方法
BR112013020341B1 (pt) sistema de controle de dados e método de controle de dados
US7913028B2 (en) Data processing system having multiplexed data relaying devices, data processing aparatus having multiplexed data relaying devices, and a method of incorporating data relaying devices in data processing system having multiplexed data relaying devices
JP2004206424A (ja) データ処理装置及びデータ処理装置におけるデータ転送方法
US11163680B2 (en) Dynamic write-back to non-volatile memory
JP6825263B2 (ja) ストレージ制御装置、およびストレージシステム
JP2015215641A (ja) 情報処理装置,エミュレーションプログラム,及びエミュレーション方法
JPH0877062A (ja) アドレス管理装置
JP2010257481A (ja) データ記憶システムおよびキャッシュデータの一貫性保証方法
JP2004355039A (ja) ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法
JP2013037589A (ja) 画像形成装置および画像形成プログラム
JP2013037588A (ja) 画像形成装置および画像形成プログラム

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 23/02/2012, OBSERVADAS AS CONDICOES LEGAIS.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 11A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2711 DE 20-12-2022 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.