BR112016016326B1 - Computador, dispositivo de controle, e método de processamento de dados - Google Patents

Computador, dispositivo de controle, e método de processamento de dados Download PDF

Info

Publication number
BR112016016326B1
BR112016016326B1 BR112016016326-5A BR112016016326A BR112016016326B1 BR 112016016326 B1 BR112016016326 B1 BR 112016016326B1 BR 112016016326 A BR112016016326 A BR 112016016326A BR 112016016326 B1 BR112016016326 B1 BR 112016016326B1
Authority
BR
Brazil
Prior art keywords
application request
tag
control device
processor
amount
Prior art date
Application number
BR112016016326-5A
Other languages
English (en)
Other versions
BR112016016326A2 (pt
Inventor
Yungang BAO
Jiuyue MA
Xiufeng SUI
Rui REN
Lixin Zhang
Original Assignee
Huawei Technologies Co., Ltd
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 Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112016016326A2 publication Critical patent/BR112016016326A2/pt
Publication of BR112016016326B1 publication Critical patent/BR112016016326B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

COMPUTADOR, DISPOSITIVO DE CONTROLE, E MÉTODO DE PROCESSAMENTO DE DADOS. Modalidades da presente invenção fornecem um computador (10), um dispositivo de controle (66), e um método de processamento de dados. O computador (10) inclui uma unidade de processamento (11) e um dispositivo de controle (66), onde a unidade de processamento (11) é configurada para anexar uma etiqueta em uma solicitação de aplicativo, e enviar, para o dispositivo de controle (66), a solicitação de aplicativo anexada; e o dispositivo de controle (66) é configurado para receber a solicitação de aplicativo anexada, e determinar, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e configurado adicionalmente para instruir um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, de modo a aperfeiçoar qualidade de serviço de um programa de aplicativo.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção se refere ao campo de computadores e, em particular, a um computador, um dispositivo de controle, e um método de processamento de dados.
ANTECEDENTES
[0002] A fim de aperfeiçoar a eficiência de operação de um computador ou servidor, múltiplos programas de aplicativos podem implantar compartilhamento de recurso dentro do computador. Por exemplo, os múltiplos programas de aplicativos podem requerer uma memória para um recurso ao mesmo tempo, desse modo aperfeiçoando a utilização do recurso de memória. Entretanto, múltiplos programas de aplicativos interferem um no outro quando compartilham um recurso, e, portanto, alguns importantes programas de aplicativo não podem ser processados preferencialmente, desse modo afetando a qualidade de serviço.
SUMÁRIO
[0003] As modalidades da presente invenção fornecem um computador, um dispositivo de controle, e um método de processamento de dados, os quais são usados para aperfeiçoar a qualidade de serviço de um programa de aplicativo.
[0004] Um primeiro aspecto das modalidades da presente invenção fornece um computador, onde o computador inclui uma unidade de processamento e um dispositivo de controle, onde: a unidade de processamento é configurada para anexar uma etiqueta em uma solicitação de aplicativo, e enviar, para o dispositivo de controle, a solicitação de aplicativo anexada; e o dispositivo de controle é configurado para receber a solicitação de aplicativo anexada, e determinar, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e configurado adicionalmente para instruir um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0005] Com referência ao primeiro aspecto, em uma primeira maneira de implantação possível, o dispositivo de controle inclui adicionalmente um buffer, o buffer inclui pelo menos duas filas, cada fila corresponde a uma faixa de quantidades de recursos, e uma prioridade de cada fila é diferente; o dispositivo de controle é especificamente configurado para selecionar, a partir das pelo menos duas filas de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, uma fila que corresponde à solicitação de aplicativo, e armazenar a solicitação de aplicativo na fila que corresponde à solicitação de aplicativo; e o componente do computador é configurado para obter a solicitação de aplicativo a partir da fila que corresponde à solicitação de aplicativo e executar a solicitação de aplicativo.
[0006] Com referência ao primeiro aspecto, em uma segunda maneira de implantação possível, o dispositivo de controle inclui adicionalmente um processador e um cache, onde o cache armazena a política de alocação de recurso; e o processador é configurado adicionalmente para adquirir a política de alocação de recurso a partir do cache.
[0007] Com referência à segunda maneira de implantação possível do primeiro aspecto, em uma terceira maneira de implantação possível, a política de alocação de recurso inclui uma tabela de controle, a tabela de controle inclui múltiplos itens, e um item dentre os múltiplos itens inclui a correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; o processador é especificamente configurado para enviar uma instrução de consulta para o cache, onde a instrução de consulta inclui a etiqueta; e o cache é configurado para obter, de acordo com a instrução de consulta, um item que corresponde à etiqueta, e enviar o item que corresponde à etiqueta para o processador do dispositivo de controle.
[0008] Com referência ao primeiro aspecto ou a primeira à terceira maneiras de implantação possíveis do primeiro aspecto, em uma quarta maneira de implantação possível da presente invenção, o dispositivo de controle inclui adicionalmente uma interface de programação, e a interface de programação é configurada para modificar a política de alocação de recurso.
[0009] Com referência ao primeiro aspecto ou a primeira à quarta maneiras de implantação possíveis do primeiro aspecto, em uma quinta maneira de implantação possível, o computador inclui adicionalmente uma memória, onde a memória armazena software de gerenciamento de nó; a unidade de processamento é configurada adicionalmente para definir a política de alocação de recurso usando-se o software de gerenciamento de nó; e o dispositivo de controle é configurado adicionalmente para adquirir a política de alocação de recurso a partir do software de gerenciamento de nó, e escrever a política de alocação de recurso dentro do cache.
[0010] Com referência à quinta maneira de implantação possível do primeiro aspecto, em uma sexta maneira de implantação possível, a unidade de processamento inclui adicionalmente um registro de etiqueta; a unidade de processamento é configurada adicionalmente para definir a etiqueta usando-se o software de gerenciamento de nó, e escrever a etiqueta dentro do registro de etiqueta usando-se o software de gerenciamento de nó; e a unidade de processamento é configurada adicionalmente para ler a etiqueta a partir do registro de etiqueta.
[0011] Um segundo aspecto das modalidades da presente invenção fornece um dispositivo de controle, onde o dispositivo de controle é disposto em um componente de um computador, e o dispositivo de controle inclui um processador, onde o processador é configurado para receber uma solicitação de aplicativo na qual a etiqueta é anexada, e determinar, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e configurado adicionalmente para instruir o componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0012] Com referência ao segundo aspecto, em uma primeira maneira de implantação possível, o dispositivo de controle inclui adicionalmente um buffer, o buffer inclui pelo menos duas filas, cada fila corresponde a uma faixa de quantidades de recursos, e uma prioridade de cada fila é diferente; o processador é especificamente configurado para selecionar, a partir das pelo menos duas filas de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, uma fila que corresponde à solicitação de aplicativo, e armazenar a solicitação de aplicativo na fila que corresponde à solicitação de aplicativo; e o componente do computador é configurado para obter a solicitação de aplicativo que está dentro da fila que corresponde à solicitação de aplicativo e executar a solicitação de aplicativo.
[0013] Com referência ao segundo aspecto, em uma segunda maneira de implantação possível, o dispositivo de controle inclui adicionalmente um cache, onde o cache armazena a política de alocação de recurso; e o processador é configurado adicionalmente para adquirir a política de alocação de recurso a partir do cache.
[0014] Com referência à segunda maneira de implantação possível do segundo aspecto, em uma terceira maneira de implantação possível, a política de alocação de recurso inclui uma tabela de controle, a tabela de controle inclui múltiplos itens, e um item dentre os múltiplos itens inclui a correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; o processador é especificamente configurado para enviar uma instrução de consulta para o cache, onde a instrução de consulta inclui a etiqueta; e o cache é configurado para obter, de acordo com a instrução de consulta, um item que corresponde à etiqueta, e enviar o item que corresponde à etiqueta para o processador.
[0015] Com referência ao segundo aspecto ou à primeira à terceira maneiras de implantação possíveis do segundo aspecto, em uma quarta maneira de implantação possível, o dispositivo de controle inclui adicionalmente uma interface de programação, e a interface de programação é configurada para modificar a política de alocação de recurso.
[0016] Com referência ao segundo aspecto ou a primeira à quarta maneiras de implantação possíveis do segundo aspecto, em uma quinta maneira de implantação possível, a política de alocação de recurso é definida pelo computador usando-se software de gerenciamento de nó e é enviada para o dispositivo de controle, onde o software de gerenciamento de nó é armazenado em uma memória do computador.
[0017] Um terceiro aspecto das modalidades da presente invenção fornece um método de processamento de dados, onde o método é aplicado em um dispositivo de controle, o dispositivo de controle é disposto em um componente de um computador, e o método inclui: receber, pelo dispositivo de controle, uma solicitação de aplicativo que inclui uma etiqueta; determinar, pelo dispositivo de controle de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e instruir, pelo dispositivo de controle, o componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0018] Com referência ao terceiro aspecto, em uma primeira maneira de implantação possível, o dispositivo de controle inclui adicionalmente um buffer, o buffer inclui pelo menos duas filas, cada fila corresponde a uma faixa de quantidades de recursos, e uma prioridade de cada fila é diferente; e o ato de instruir, pelo dispositivo de controle, o componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo inclui: selecionar, pelo dispositivo de controle a partir das pelo menos duas filas de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, uma fila que corresponde à solicitação de aplicativo, e armazenar a solicitação de aplicativo dentro da fila que corresponde à solicitação de aplicativo, de modo que o componente do computador obtenha a solicitação de aplicativo que está dentro da fila que corresponde à solicitação de aplicativo e executar a solicitação de aplicativo.
[0019] Com referência ao terceiro aspecto, em uma segunda maneira de implantação possível, o dispositivo de controle inclui adicionalmente um processador e um cache, onde o cache armazena a política de alocação de recurso; e o método inclui adicionalmente: adquirir, pelo processador do dispositivo de controle, a política de alocação de recurso a partir do cache.
[0020] Com referência à segunda maneira de implantação possível do terceiro aspecto, em uma terceira maneira de implantação possível, a política de alocação de recurso inclui uma tabela de controle, a tabela de controle inclui múltiplos itens, e um item dentre os múltiplos itens inclui a correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; a aquisição, pelo processador do dispositivo de controle, da política de alocação de recurso a partir do cache inclui: enviar, pelo processador do dispositivo de controle, uma instrução de consulta para o cache, onde a instrução de consulta inclui a etiqueta; e obter, pelo cache de acordo com a instrução de consulta, um item que corresponde à etiqueta, e enviar o item que corresponde à etiqueta para o processador do dispositivo de controle.
[0021] As modalidades da presente invenção fornecem um computador, onde o computador inclui uma unidade de processamento e um dispositivo de controle. A unidade de processamento anexa uma etiqueta em uma solicitação de aplicativo, e envia, para o dispositivo de controle, a solicitação de aplicativo anexada; o dispositivo de controle determina, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, e instrui um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo. Desse modo, quando se processa a solicitação de aplicativo, o componente do computador pode realizar o processamento de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, a qual, em parte, impede que uma quantidade de recursos seja mutuamente apropriada por múltiplas solicitações de aplicativo, desse modo aperfeiçoando a qualidade de serviço.
BREVE DESCRIÇÃO DOS DESENHOS
[0022] Para descrever as soluções técnicas nas modalidades presente invenção ou na técnica anterior mais claramente, a seguir se apresenta resumidamente os desenhos anexos exigidos para descrever as modalidades ou a técnica anterior. Evidentemente, os desenhos anexos na descrição a seguir mostram meramente algumas modalidades da presente invenção, e uma pessoa de habilidade comum na técnica pode ainda derivar outros desenhos a partir desses desenhos anexos sem esforços criativos.
[0023] A Figura 1 é um diagrama de uma arquitetura de sistema de um computador de acordo com uma modalidade da presente invenção;
[0024] A Figura 2a é um diagrama de uma arquitetura de sistema de outro computador de acordo com uma modalidade da presente invenção;
[0025] A Figura 2b é um diagrama estrutural esquemático de um dispositivo de controle de acordo com uma modalidade da presente invenção;
[0026] A Figura 3 é um diagrama estrutural esquemático de outro dispositivo de controle de acordo com uma modalidade da presente invenção;
[0027] A Figura 4 é um diagrama estrutural esquemático de ainda outro dispositivo de controle de acordo com uma modalidade da presente invenção;
[0028] A Figura 5 é um diagrama estrutural esquemático de mais outro dispositivo de controle de acordo com uma modalidade da presente invenção;
[0029] A Figura 6 é um diagrama esquemático de uma arquitetura de rede de um plano de controle de acordo com uma modalidade da presente invenção;
[0030] A Figura 7 é um diagrama estrutural esquemático de software de gerenciamento de nó de acordo com uma modalidade da presente invenção;
[0031] A Figura 8 é um fluxograma esquemático de um método de processamento de dados de acordo com uma modalidade da presente invenção;
[0032] A Figura 9 é um fluxograma esquemático de outro método de processamento de dados de acordo com uma modalidade da presente invenção; e
[0033] A Figura 10 é um fluxograma esquemático de ainda outro método de processamento de dados de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DE MODALIDADES
[0034] A seguir se descreve clara e completamente as soluções técnicas nas modalidades da presente invenção com referência aos desenhos anexos nas modalidades da presente invenção. Evidentemente, as modalidades descritas são algumas, mas não todas as modalidades da presente invenção. Todas as outras modalidades obtidas por uma pessoa de habilidade comum na técnica com base nas modalidades da presente invenção sem esforços criativos estarão abrangidas pelo escopo de proteção da presente invenção.
[0035] As modalidades da presente invenção fornecem um computador, um dispositivo de controle, e um método de processamento de dados, os quais são usados para aperfeiçoar a qualidade de serviço de um programa de aplicativo.
[0036] A Figura 1 é um diagrama esquemático de uma arquitetura de sistema de um computador 10 de acordo com uma modalidade da presente invenção. Conforme mostrado na Figura 1, o computador 10 inclui múltiplas unidades de processamento 11, múltiplos dispositivos de controle 66, e múltiplos componentes 33 (os quais são referidos abreviadamente como partes na Figura 1) do computador. O componente do computador nessa modalidade da presente invenção se refere a um componente de um computador cujo recurso pode ser ocupado por múltiplos programas de aplicativos.
[0037] A unidade de processamento 11 se refere a um dentre núcleos processadores que estão em uma unidade de processamento central (Unidade de Processamento Central, CPU) e que têm uma mesma função, e é configurada para executar vários comandos de operação tais como ler e escrever.
[0038] O componente 33 do computador inclui uma rede de interconexão em chip de alta velocidade e um componente que é do computador e diretamente conectado à rede de interconexão em chip de alta velocidade, por exemplo, um cache (também referido como um cache), uma memória, uma unidade de processamento gráfico (Unidade de Processamento Gráfico, GPU), e uma RAM de vídeo, e pode incluir adicionalmente uma rede de interconexão de I/O e um dispositivo de I/O conectado à rede de interconexão de I/O, por exemplo, um disco magnético (também referido como um disco rígido), um adaptador de rede, e um monitor.
[0039] A rede de interconexão em chip de alta velocidade é um conector para conectar as múltiplas unidades de processamento 11; a rede de interconexão em chip de alta velocidade é também conectada a um cache, uma memória, uma unidade de processamento gráfico, uma RAM de vídeo, e similares.
[0040] Para o cache, um recurso alocado pelo cache para um programa de aplicativo pode ser espaço de cache; para a memória, um recurso alocado pela memória para um programa de aplicativo pode ser espaço de memória; para a unidade de processamento gráfico, um recurso alocado pela unidade de processamento gráfico para um programa de aplicativo pode ser um recurso de aceleração de hardware; para a RAM de vídeo, um recurso alocado pela RAM de vídeo para um programa de aplicativo pode ser espaço de RAM de vídeo.
[0041] Além disso, a rede de interconexão em chip de alta velocidade pode também ser conectada à rede de interconexão de I/O (também referida como uma ponte sul).
[0042] A rede de interconexão de I/O é um dispositivo para controlar um dispositivo de I/O.
[0043] O componente 33 do computador inclui adicionalmente o dispositivo de I/O diretamente conectado à rede de interconexão de I/O, por exemplo, um disco magnético (também referido como um disco rígido), um adaptador de rede, e um monitor.
[0044] Por exemplo, em um período de tempo, o computador 10 pode processar múltiplos programas de aplicativos, e todos esses programas de aplicativo precisam ocupar um recurso de um componente (por exemplo, uma memória) do computador. Entretanto, uma vez que os recursos na memória são limitados, alguns importantes programas de aplicativo não podem ser processados em uma maneira oportuna e, portanto, a qualidade de serviço é afetada.
[0045] Portanto, nessa modalidade da presente invenção, os dispositivos de controle 66 são dispostos em componentes do computador, onde recursos dos componentes podem ser solicitados ou ocupados por múltiplos programas de aplicativos. Os dispositivos de controle 66 são configurados para alocar diferentes quantidades de recursos para os programas de aplicativo de acordo com diferentes tipos dos programas de aplicativo, de modo a processar os programas de aplicativo. No presente documento, os componentes do computador, cujos recursos podem ser solicitados ou ocupados pelos múltiplos programas de aplicativos, incluem, mas não são limitados a: uma rede de interconexão em chip de alta velocidade, um cache, uma memória, uma unidade de processamento gráfico, uma RAM de vídeo, e uma rede de interconexão de I/O.
[0046] Deve ser notado que nessa modalidade da presente invenção, o dispositivo de controle 66 pode ser disposto somente em um componente do computador entre múltiplos componentes do computador; ou os dispositivos de controle 66 podem ser dispostos em múltiplos componentes do computador ou mesmo os dispositivos de controle 66 podem ser dispostos em todos os componentes do computador mencionados acima.
[0047] A fim de habilitar o dispositivo de controle 66 para identificar os programas de aplicativo de diferentes tipos, tipos de solicitações de aplicativo precisam ser identificados e etiquetados em uma extremidade de fonte na qual as solicitações de aplicativo (solicitações que correspondem aos programas de aplicativo) são geradas. Portanto, quando as solicitações de aplicativo são enviadas para o dispositivo de controle 66 em um componente do computador posteriormente, o dispositivo de controle 66 pode realizar um processamento diferente nos programas de aplicativo de diferentes tipos de acordo com etiquetas. Deve ser notado que nessa modalidade da presente invenção, os programas de aplicativo e as solicitações de aplicativo representam um mesmo significado. Além disso, as solicitações de aplicativo nessa modalidade da presente invenção incluem várias instruções geradas dentro do computador e várias instruções recebidas a partir de uma parte externa do computador, por exemplo, uma solicitação de acesso a um arquivo, uma solicitação de reprodução de vídeo, uma solicitação de acesso à memória, uma solicitação de I/O, e uma solicitação de interconexão (Interconexão).
[0048] No presente documento, a extremidade de fonte na qual as solicitações de aplicativo são geradas pode ser a unidade de processamento 11 ou o dispositivo de I/O (por exemplo, um adaptador de rede). Quando as solicitações de aplicativo são localmente a partir do computador 10, a extremidade de fonte na qual as solicitações de aplicativo são geradas pode ser a unidade de processamento 11; quando as solicitações de aplicativo são a partir da parte externa do computador 10, por exemplo, quando solicitações de aplicativo enviadas usando-se a Internet são recebidas, a extremidade de fonte na qual as solicitações de aplicativo são geradas pode ser o adaptador de rede ou outro dispositivo de entrada-saída.
[0049] Quando uma solicitação de aplicativo é a partir de um lado interno do computador 10, uma maneira de etiquetar pode ser conforme a seguir:
[0050] Um registro de etiqueta 77 (conforme mostrado na Figura 2a) é disposto na unidade de processamento 11, e o registro de etiqueta 77 armazena um valor de registro. Quando a unidade de processamento 11 gera uma solicitação de aplicativo, a unidade de processamento 11 anexa uma etiqueta para a solicitação de aplicativo pela leitura do valor de registro, onde a etiqueta é o valor de registro.
[0051] Especificamente, a etiqueta é definida por software de gerenciamento de nó (o qual é descrito em detalhe a seguir) para a solicitação de aplicativo. O software de gerenciamento de nó pode ser um módulo em um sistema operante, ou um módulo em uma camada de software intermediária (Hipervisor) entre o sistema operante e o hardware de computador, e roda na unidade de processamento 11. Após o software de gerenciamento de nó definir uma etiqueta para uma solicitação de aplicativo, o sistema operante pode escrever a etiqueta em um contexto de um processo que corresponde à solicitação de aplicativo, e então escrever o contexto do processo que corresponde à solicitação de aplicativo dentro do registro.
[0052] Uma maneira de implantação opcional é conforme a seguir:
[0053] Uma vez que a própria unidade de processamento 11 pode incluir múltiplos registros, um registro dos múltiplos registros pode ser definido como o registro de etiqueta 77, onde o registro de etiqueta 77 é configurado para armazenar uma etiqueta de um programa de aplicativo. Quando se gera uma solicitação de aplicativo, a unidade de processamento 11 lê um valor de registro no registro de etiqueta 77, usa o valor de registro como uma etiqueta, e escreve o valor de registro na solicitação de aplicativo. Pode ser entendido que a etiqueta pode ser representada por uma ID do programa de aplicativo, uma carta, um número, ou similares, não havendo limitação no presente documento.
[0054] Outra maneira de implantação opcional é conforme a seguir:
[0055] Um novo registro é anexado à unidade de processamento 11, e o novo registro é definido como o registro de etiqueta 77, onde o registro de etiqueta 77 é configurado para armazenar uma etiqueta de um programa de aplicativo. Uma maneira de processamento subsequente é a mesma que a supracitada maneira de implantação e não é descrita no presente documento novamente.
[0056] Quando o adaptador de rede servir como uma extremidade de fonte de uma solicitação de aplicativo, em uma maneira de implantação, o adaptador de rede em si não executa uma ação de etiquetar a solicitação de aplicativo. Por exemplo, quando o adaptador de rede recebe a solicitação de aplicativo, a solicitação de aplicativo é uma solicitação de aplicativo que inclui uma etiqueta. Isto é, uma extremidade de envio da solicitação de aplicativo pode etiquetar a solicitação de aplicativo antes de enviar a solicitação de aplicativo. Pode ser entendido que, em um sistema distribuído, servidores (ou computadores) podem determinar uma etiqueta de uma solicitação de aplicativo por meio de negociação; ou um servidor de etiqueta pode ser disposto para definir e enviar uma etiqueta de uma solicitação de aplicativo para cada servidor. Todas as maneiras de implantação e similares estarão abrangidas pelo escopo de proteção dessa modalidade da presente invenção. Outra maneira de implantação é conforme a seguir: quando o adaptador de rede recebe um pacote de mensagem, uma solicitação de aplicativo é obtida por análise do pacote de mensagem, e então a solicitação de aplicativo é etiquetada. Nesse caso, uma maneira de etiquetar a solicitação de aplicativo pelo adaptador de rede é similar à maneira, a qual é descrita acima, de etiquetagem pela unidade de processamento 11 e não é descrita no presente documento novamente.
[0057] Deve ser notado que outro componente, por exemplo, uma rede de interconexão de I/O, dentro do computador 10 pode também anexar uma etiqueta em uma solicitação de aplicativo, uma maneira de implantação da mesma é similar àquela da unidade de processamento 11 ou do adaptador de rede, e essa modalidade da presente invenção não define um limite para um componente para etiquetagem.
[0058] A seguir se descreve um procedimento de processamento subsequente usando-se um exemplo no qual a unidade de processamento 11 anexa uma etiqueta em uma solicitação de aplicativo.
[0059] Após a etiqueta ser anexada na solicitação de aplicativo e quando a unidade de processamento 11 envia a solicitação de aplicativo para o dispositivo de controle 66, a etiqueta da solicitação de aplicativo é portada.
[0060] Especificamente, o dispositivo de controle 66 é configurado para receber a solicitação de aplicativo anexada, e determinar, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e configurado adicionalmente para instruir um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0061] Essa modalidade da presente invenção fornece um computador, onde o computador inclui uma unidade de processamento e um dispositivo de controle. A unidade de processamento anexa uma etiqueta em uma solicitação de aplicativo, e envia, para o dispositivo de controle, a solicitação de aplicativo anexada; o dispositivo de controle determina, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, e instrui um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo. Desse modo, quando se processa a solicitação de aplicativo, o componente do computador pode realizar processamento de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, o que, em parte, impede que uma quantidade de recursos seja mutuamente apropriada por múltiplas solicitações de aplicativo, desse modo aperfeiçoando a qualidade de serviço.
[0062] A seguir se descreve principalmente uma estrutura e uma função do dispositivo de controle 66.
[0063] O dispositivo de controle 66 se refere a um dispositivo, dentro do computador 10, em qualquer componente dos componentes do computador. Quando alguns componentes do computador incluem um controlador (por exemplo, uma memória inclui um controlador de memória, ou um adaptador de rede inclui um controlador de adaptador de rede), o dispositivo de controle 66 pode ser um dispositivo de controle embutido no controlador ou um dispositivo de controle recém-anexado conectado ao controlador original; quando alguns componentes do computador não incluem um controlador, o dispositivo de controle 66 pode ser um controlador ou dispositivo de controle recém-anexado conectado aos componentes do computador.
[0064] Conforme mostrado na Figura 2b, o dispositivo de controle 66 inclui um processador 600a.
[0065] O dispositivo de controle 66 é configurado para receber uma solicitação de aplicativo na qual uma etiqueta é anexada, e determinar, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e configurado adicionalmente para instruir um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0066] Além disso, o dispositivo de controle 66 pode incluir adicionalmente um buffer (também referido como um buffer) 600b.
[0067] Por exemplo, o processador 600a é configurado para armazenar, no buffer 600b, a solicitação de aplicativo anexada; ler a etiqueta a partir do buffer 600b, e determinar, de acordo com a etiqueta e a política de alocação de recurso pré-armazenada, a quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui a correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e instruir o componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0068] Deve ser notado que o buffer 600b pode também ser um registro no processador 600a. Nesse caso, uma maneira de processamento do mesmo pode ser conforme a seguir: o processador 600a é configurado para armazenar, no registro do processador 600a, a solicitação de aplicativo anexada; ler a etiqueta a partir do registro, e determinar, de acordo com a etiqueta e a política de alocação de recurso pré-armazenada, a quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui a correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo; e instruir o componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[0069] Por exemplo, conforme mostrado na Figura 3, uma maneira de implantação opcional é conforme a seguir: o dispositivo de controle 66 pode incluir um processador 600i, um buffer (também referido como um buffer) 600b, e uma fila 600c.
[0070] O processador 600i pode ser um arranjo de porta programável por campo (Arranjo de Porta Programável por Campo, FPGA) ou outro dispositivo programável. Uma política de alocação de recurso é construída no processador 600i, onde a política de alocação de recurso pode ser uma tabela de controle (conforme mostrado na Tabela 1) e a tabela de controle é editável.Tabela 1
Figure img0001
[0071] Especificamente, cada item na Tabela 1 corresponde a uma etiqueta. Além disso, cada item da tabela de controle inclui múltiplos "atributos", onde o “atributo" representa uma quantidade de recursos alocados para uma solicitação de aplicativo que corresponde à etiqueta. Pode haver múltiplos tipos de quantidades de recursos, por exemplo, qualidade de serviço alvo, uma IPC (Instrução por Ciclo), um tempo de resposta, uma tolerância máxima ou similares podem ser incluídos. Uma faixa de valor do “atributo" pode ser definida por um usuário. Por exemplo, a faixa de valor pode ser definida como uma faixa não menor que 30% ou não maior que 80%. Além disso, cada item inclui adicionalmente múltiplos "estados", onde o “estado" representa uma quantidade de recursos correntemente consumida pela solicitação de aplicativo que corresponde à etiqueta, e um valor do “estado" pode ser exibido em tempo real e atualizado.
[0072] Além disso, a política de alocação de recurso pode também ser um código de firmware e é construída em um FPGA. Essa modalidade da presente invenção não define um limite para uma maneira de armazenar uma política de alocação de recurso.
[0073] O buffer 600b é um buffer temporário. Quando o dispositivo de controle 66 recebe uma solicitação de aplicativo que inclui uma etiqueta, a solicitação de aplicativo é primeiro colocada dentro do buffer 600b para armazenamento temporário.
[0074] A fila 600c é também um buffer temporário, o qual pode ser localizado em um mesmo buffer temporário como o buffer 600b, ou pode ser separado do buffer 600b para servir de maneira independente como um buffer temporário. A fila 600c é configurada para armazenar uma solicitação de aplicativo processada pelo processador 600i. A fila 600c pode incluir múltiplas filas, e diferentes filas são correspondentes a diferentes segmentos de endereço no buffer 600b. Diferentes filas têm diferentes prioridades, e as prioridades são representadas em diferentes sequências para executar, por um componente do computador, solicitações de aplicativo nas filas, o que significa que diferentes quantidades de recursos são alocados para diferentes filas.
[0075] Além disso, o dispositivo de controle 66 pode incluir adicionalmente uma interface de programação 600d.
[0076] A interface de programação 600d é configurada para implantar um mecanismo de mapeamento de espaço de endereço, e pode mapear a tabela de controle construída no processador 600i para o espaço de endereço físico do computador 10. Um software de gerenciamento de nó pode acessar o espaço de endereço físico do computador 10 para editar a tabela de controle. Por exemplo, a interface de programação 600d pode fornecer várias funções, as quais são usadas para adicionar, modificar ou deletar um item armazenado na tabela de controle. Além disso, o processador 600i pode fornecer adicionalmente valores de todos os "estados" em cada item da tabela de controle do processador 600i para o software de gerenciamento de nó, de modo que o software de gerenciamento de nó ajuste adicionalmente a política de alocação de recurso após coletar estatísticas sobre os valores dos “estados" de todas as solicitações de aplicativo.
[0077] Por exemplo, o processador 600i pode adquirir, a partir do buffer 600b, uma solicitação de aplicativo que inclui uma etiqueta, e consultar um item correspondente na Tabela 1 de acordo com a etiqueta, de modo a obter um "atributo" da solicitação de aplicativo. Uma vez que o “atributo" da solicitação de aplicativo indica uma quantidade de recursos alocados para a solicitação de aplicativo, o processador 600i pode selecionar, a partir das pelo menos duas filas de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, uma fila que corresponde à solicitação de aplicativo, e colocar a solicitação de aplicativo dentro da fila correspondente.
[0078] Após colocar a solicitação de aplicativo dentro da fila correspondente, o processador 600i pode instruir um componente correspondente do computador para realizar processamento na solicitação de aplicativo. No presente documento, o "componente correspondente do computador" se refere a um componente, ao qual o dispositivo de controle pertence, do computador. Por exemplo, se o dispositivo de controle se refere a um dispositivo de controle em um cache, o "componente correspondente do computador" no presente documento se refere ao cache.
[0079] No presente documento, "instruir um componente correspondente do computador para realizar processamento na solicitação de aplicativo" pode ser que o processador 600i retira da fila a solicitação de aplicativo a partir da fila correspondente, e envia a solicitação de aplicativo para o componente correspondente do computador, ou pode ser que o componente correspondente do computador obtenha a solicitação de aplicativo a partir da fila correspondente.
[0080] Além disso, o dispositivo de controle 66 pode incluir adicionalmente um enviador de dados 600j. Após colocar diferentes solicitações de aplicativo em diferentes filas 600c, o processador 600i pode enviar uma solicitação de aplicativo para o enviador de dados 600j após retirar da fila a solicitação de aplicativo a partir das filas; e o enviador de dados 600j é configurado para enviar a solicitação de aplicativo para um componente correspondente do computador. Isto é, o componente correspondente do computador no presente documento pode obter a solicitação de aplicativo a partir da fila correspondente usando-se o enviador de dados 600j.
[0081] Além disso, antes de colocar a solicitação de aplicativo dentro da fila correspondente 600c, o processador 600i pode realizar algumas operações pré-processamento, tais como compressão e criptografia, na solicitação de aplicativo, e então colocar a solicitação de aplicativo que tenha passado pelas operações pré-processamento dentro da fila correspondente 600c.
[0082] Conforme mostrado na Figura 4, para o dispositivo de controle 66, outra maneira de implantação opcional é conforme a seguir:
[0083] O dispositivo de controle 66 inclui um buffer (também referido como um buffer) 600b, uma fila 600c, um microprocessador 600e, e um cache (também referido como um cache) 600f.
[0084] O buffer (também referido como um buffer) 600b e a fila 600c são iguais ao buffer e à fila mostrados na Figura 3 e não são descritos no presente documento novamente.
[0085] O microprocessador 600e pode ser uma CPU ou outro controlador cuja função é similar àquela de uma CPU. Uma diferença entre o microprocessador 600e e o processador 600i mostrado na Figura 3 se encontra em que: o processador 600i serve como um dispositivo programável, uma política de alocação de recurso é construída no processador 600i, e a política de alocação de recurso é editável; o microprocessador 600e executa uma função de uma CPU, mas uma tabela de controle não pode ser construída no microprocessador 600e. Portanto, o dispositivo de controle 66 mostrado na Figura 4 inclui adicionalmente o cache 600f. O cache 600f armazena uma política de alocação de recurso, onde a política de alocação de recurso se refere a um código de programa cujo função é similar àquela da tabela de controle.
[0086] Por exemplo, quando o dispositivo de controle 66 recebe uma solicitação de aplicativo que inclui uma etiqueta, a solicitação de aplicativo é primeiro colocada dentro do buffer 600b. O microprocessador 600e pode adquirir, a partir de uma fila de solicitações de aplicativo armazenada no buffer 600b, a solicitação de aplicativo que inclui a etiqueta; ler a política de alocação de recurso a partir do cache 600f dentro do buffer 600b; determinar, de acordo com a etiqueta e a política de alocação de recurso, uma quantidade de recursos alocados para a solicitação de aplicativo; selecionar, a partir das pelo menos duas filas, uma fila que corresponde à solicitação de aplicativo; e colocar a solicitação de aplicativo dentro da fila correspondente. O microprocessador 600e então retira da fila a solicitação de aplicativo a partir da fila correspondente, e envia a solicitação de aplicativo para um componente correspondente do computador.
[0087] Alternativamente, o dispositivo de controle 66 pode incluir adicionalmente um enviador de dados 600j. Após colocar diferentes solicitações de aplicativo em diferentes filas 600c, o microprocessador 600e pode enviar uma solicitação de aplicativo para o enviador de dados 600j após retirar da fila a solicitação de aplicativo a partir das filas, e o enviador de dados 600j é configurado para enviar a solicitação de aplicativo para um componente correspondente do computador. Uma maneira de processamento subsequente é a mesma maneira de implantação mostrada na Figura 3 e não é descrita no presente documento novamente.
[0088] Além disso, o dispositivo de controle 66 mostrado na Figura 4 pode incluir adicionalmente lógica de controle (a qual não é mostrada na Figura 4), a qual é usada para modificar a política de alocação de recurso armazenada no cache 600f.
[0089] Similarmente, antes de colocar a solicitação de aplicativo dentro da fila correspondente 600c, o microprocessador 600e pode realizar algumas operações pré-processamento, tais como compressão e criptografia, na solicitação de aplicativo, e então colocar a solicitação de aplicativo que passou pelas operações pré-processamento dentro da fila correspondente 600c.
[0090] Pode ser entendido que, se existe um buffer dentro do microprocessador 600e, o microprocessador 600e pode também ler, dentro do buffer do microprocessador 600e, a solicitação de aplicativo que inclui a etiqueta e a política de alocação de recurso armazenadas no cache 600f, processar a solicitação de aplicativo no buffer do microprocessador 600e, e colocar a solicitação de aplicativo dentro da fila correspondente 600c de acordo com um resultado de processamento.
[0091] Para o dispositivo de controle 66, outra maneira ainda de implantação opcional é conforme a seguir:
[0092] Conforme mostrado na Figura 5, o dispositivo de controle 66 pode incluir um buffer 600b, uma lógica de controle de comparação 600g, um cache 600f, e uma fila 600c.
[0093] No presente documento, a lógica de controle de comparação 600g pode ser um circuito integrado específico de aplicativo (Circuitos Integrados Específicos de Aplicativo, ASIC) ou outro circuito integrado.
[0094] O buffer 600b condiz com o buffer descrito acima.
[0095] O cache 600f armazena uma tabela de controle (Tabela 1).
[0096] Quando o dispositivo de controle 66 recebe uma solicitação de aplicativo que inclui uma etiqueta, a solicitação de aplicativo é primeiro colocada em uma fila correspondente. A fila pode ser uma parte de espaço de cache no buffer 600b, ou um buffer independente. A lógica de controle de comparação 600g lê a solicitação de aplicativo que está dentro da fila dentro do buffer 600b (ou um buffer da lógica de controle de comparação 600g), e envia uma instrução de leitura para o cache 600f de acordo com a etiqueta da solicitação de aplicativo, para solicitar ao cache 600f que devolva um item que corresponde à etiqueta. O teor do item é carregado para o buffer 600b (ou o buffer da lógica de controle de comparação 600g); a lógica de controle de comparação 600g seleciona a fila correspondente a partir das pelo menos duas filas de acordo com o teor do item no buffer 600b (ou o buffer da lógica de controle de comparação 600g), de modo a colocar a solicitação de aplicativo dentro da fila 600c. A lógica de controle de comparação 600g então retira da fila a solicitação de aplicativo a partir da fila correspondente, e envia a solicitação de aplicativo para um componente correspondente do computador.
[0097] Alternativamente, o dispositivo de controle 66 pode incluir adicionalmente um enviador de dados 600j. Após colocar diferentes solicitações de aplicativo em diferentes filas 600c, a lógica de controle de comparação 600g pode enviar uma solicitação de aplicativo para o enviador de dados 600j após retirar da fila a solicitação de aplicativo a partir das filas, e o enviador de dados 600j é configurado para enviar a solicitação de aplicativo para um componente correspondente do computador.
[0098] De modo similar, a lógica de controle de comparação 600g pode adicionalmente realizar, no buffer 600b, algumas operações pré- processamento, tais como compressão e criptografia, na solicitação de aplicativo.
[0099] Além disso, o dispositivo de controle 66 pode incluir adicionalmente uma interface de programação 600d, a qual é configurada para editar a tabela de controle armazenada no cache 600f. Para uma função específica da interface de programação 600d, referência pode ser feita às descrições da interface de programação 600d na modalidade mostrada na Figura 3.
[00100] Deve ser notado que os dispositivos de controle 66 nos componentes do computador 10 podem não ser absolutamente os mesmos. Especificamente, políticas de alocação de recurso armazenadas pelos dispositivos de controle 66 podem não ser absolutamente as mesmas. Por exemplo, para uma mesma solicitação de aplicativo, quando a solicitação de aplicativo precisa acessar uma memória, uma quantidade de recursos alocados para a solicitação de aplicativo pela memória pode atingir 80%; quando a solicitação de aplicativo precisa ser emitida usando-se um dispositivo de I/O, uma quantidade de recursos alocados para a solicitação de aplicativo por uma rede de interconexão de I/O pode ser somente 70%.
[00101] Usando-se o dispositivo de controle fornecido por essa modalidade da presente invenção, uma quantidade de recursos alocados para uma solicitação de aplicativo pode ser determinada de acordo com uma etiqueta da solicitação de aplicativo e uma política de alocação de recurso pré- armazenada, e um componente de um computador é instruído para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo. Desse modo, quando se processa a solicitação de aplicativo, o componente do computador pode realizar processamento de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, a qual, em parte, impede que uma quantidade de recursos seja mutuamente apropriada por múltiplas solicitações de aplicativo, desse modo aperfeiçoando a qualidade de serviço.
[00102] Nessa modalidade da presente invenção, os dispositivos de controle 66 nos componentes do computador podem formar uma rede de dispositivo de controle, a qual é usada para conectar todos os dispositivos de controle 66, conforme mostrado por uma linha tracejada na Figura 1 ou na Figura 2a. Cada dispositivo de controle inclui um ponto de acesso físico, e acessa a rede de dispositivo de controle usando o ponto de acesso físico. A rede de dispositivo de controle pode transmitir dados pelo usando o protocolo de Componente de Interconexão de Periféricos Expresso, (Componente de Interconexão de Periféricos Expresso, PCIe) ou outro protocolo, e um tipo do protocolo não é limitado nessa modalidade da presente invenção.
[00103] Nessa modalidade da presente invenção, software de gerenciamento de nó (o qual não é mostrado na Figura 1) pode ser adicionalmente incluído, onde o software de gerenciamento de nó pode ser um módulo em um sistema operante, ou um módulo em uma camada de software intermediária (Hipervisor) entre o sistema operante e o hardware de computador, e roda em uma ou múltiplas unidades de processamento 11. O software de gerenciamento de nó é configurado para gerenciar todos os dispositivos de controle 66 através da rede de dispositivo de controle, por exemplo, realizar uma operação de inicialização nos dispositivos de controle 66, coletar valores de "estado" dos dispositivos de controle 66, determinar ou ajustar a política de alocação de recurso de acordo com os valores de "estado" coletados, enviar a política de alocação de recurso para os dispositivos de controle 66, e similares.
[00104] Opcionalmente, conforme mostrado na Figura 6, uma maneira de implantação é conforme a seguir: uma rede dedicada é estabelecida no computador 10, e todos os dispositivos de controle 66 são conectados usando-se um roteador de raiz, onde os pontos de acesso físico de todos os dispositivos de controle 66 são conectados na rede dedicada. A rede dedicada pode fornecer um protocolo de comunicação, onde o protocolo de comunicação é responsável por definir um formato de um pacote de mensagem para acessar os dispositivos de controle 66. Por exemplo, o pacote de mensagem pode incluir, porém, sem limitação, um número de dispositivo de controle ou ID de dispositivo de controle, um comando de dispositivo de controle (por exemplo, adicionar uma política de alocação de recurso, deletar uma política de alocação de recurso ou modificar uma política de alocação de recurso), e um parâmetro de comando de dispositivo de controle. Além disso, a fim de habilitar os dispositivos de controle 66 para se comunicar com um dispositivo externo do computador 10 ou o software de gerenciamento de nó, o pacote de mensagem pode também ser transmitido após ser encapsulado usando-se o protocolo PCIe ou outro protocolo.
[00105] Opcionalmente, outra maneira de implantação é conforme a seguir: cada dispositivo de controle 66 realiza troca de dados com o software de gerenciamento de nó em uma maneira de mapeamento de espaço de endereço. Especificamente, cada dispositivo de controle 66 mapeia a tabela de controle ou a política de alocação de recurso do dispositivo de controle 66 dentro do espaço de endereço físico do computador 10. O software de gerenciamento de nó pode acessar o espaço de endereço para implantar a edição da tabela de controle ou a política de alocação de recurso.
[00106] Conforme mostrado na Figura 7, o software de gerenciamento de nó pode incluir um módulo de acionador de dispositivo de controle 701, um módulo de monitoramento e gerenciamento 702, e uma interface de programação de usuário 703.
[00107] O módulo de acionador de dispositivo de controle 701 é configurado para varrer e identificar um novo dispositivo de controle 66 de um componente de um computador, e inicializar o dispositivo de controle 66; e enviar uma política de alocação de recurso para o dispositivo de controle 66. Além disso, o módulo de acionador de dispositivo de controle 701 é configurado adicionalmente para adicionar, modificar ou deletar a política de alocação de recurso.
[00108] O módulo de monitoramento e gerenciamento 702 é configurado para armazenar um valor de “estado” coletado de cada dispositivo de controle 66, realizar análise de correlação no valor de “estado” coletado de cada dispositivo de controle 66, e determinar a política de alocação de recurso em combinação com uma demanda de usuário.
[00109] A interface de programação de usuário 703 é configurada para fornecer uma interface de programação de aplicativo (Interface de Programação de Aplicativo, API), de modo que outro software ou programa de aplicativo possa implantar programação do dispositivo de controle 66 usando a API. Por exemplo, a API inclui pelo menos as seguintes interfaces: um comando de inicialização, um comando para adicionar uma política de alocação de recurso, um comando para modificar uma política de alocação de recurso, um comando para deletar uma política de alocação de recurso, e similares.
[00110] O dispositivo de controle, mostrado na Figura 2b, Figura 3, Figura 4 ou Figura 5, nas modalidades da presente invenção é somente um exemplo que é aplicável às modalidades da presente invenção, e não é destinado a definir um limite específico para aplicação da presente invenção. Por exemplo, o dispositivo de controle pode também ser um circuito integrado específico de aplicativo. Independente da forma na qual o dispositivo de controle se encontra, o dispositivo de controle implanta, em um computador, uma função de um dispositivo de controle. O computador descrito nas modalidades da presente invenção pode ser um computador pessoal, um servidor, um telefone móvel, ou um computador de mão; a presente invenção não define um limite para uma forma de implantação específica do computador. Esse documento de pedido não descreve outras modalidades de sistema ou cenários de aplicação um por um.
[00111] A seguir se descreve um procedimento no qual um dispositivo de controle é disposto dentro de um computador para implantar processamento de dados em uma modalidade da presente invenção. Um método de processamento de dados nessa modalidade da presente invenção pode ser implantado no dispositivo de controle mostrado na Figura 2b, Figura 3, Figura 4, ou Figura 5. Conforme mostrado na Figura 8, o método inclui:
[00112] Etapa S101: O dispositivo de controle recebe uma solicitação de aplicativo que inclui uma etiqueta.
[00113] A solicitação de aplicativo que inclui a etiqueta pode ser a partir da unidade de processamento 11 mostrada na Figura 1 ou Figura 2a, ou pode ser a partir de um adaptador de rede. Quando a solicitação de aplicativo que inclui a etiqueta é a partir da unidade de processamento 11, a unidade de processamento 11 precisa anexar à etiqueta na solicitação de aplicativo quando recebe ou gera a solicitação de aplicativo. Especificamente, para uma maneira de anexar a etiqueta na solicitação de aplicativo pela unidade de processamento 11, referência pode ser feita à modalidade mostrada na Figura 2a, e detalhes não são descritos no presente documento novamente.
[00114] Quando a solicitação de aplicativo que inclui a etiqueta é a partir do adaptador de rede, um caso é que: quando o adaptador de rede recebe a solicitação de aplicativo, a solicitação de aplicativo é uma solicitação de aplicativo que inclui uma etiqueta. Outro caso é que: quando o adaptador de rede recebe um pacote de mensagem, a solicitação de aplicativo é obtida por análise do pacote de mensagem, e então a solicitação de aplicativo é etiquetada.
[00115] Além disso, antes da etapa S101, um sistema operante ou um Hipervisor pode realizar uma operação de inicialização em cada dispositivo de controle 66 em um computador usando software de gerenciamento de nó, de modo que cada dispositivo de controle esteja em um estado de funcionamento. Após o dispositivo de controle 66 ter passado pela operação de inicialização, o software de gerenciamento de nó envia uma política de alocação de recurso para cada dispositivo de controle 66 através de uma rede de dispositivo de controle.
[00116] Etapa S102: O dispositivo de controle determina, de acordo com a etiqueta e uma política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo, onde a política de alocação de recurso inclui uma correspondência entre a etiqueta e a quantidade de recursos alocados para a solicitação de aplicativo.
[00117] Especificamente, o dispositivo de controle escreve, em um primeiro buffer (o buffer 600b mostrado na Figura 2b) do dispositivo de controle, a solicitação de aplicativo que inclui a etiqueta, e lê a etiqueta a partir do primeiro buffer.
[00118] A política de alocação de recurso é enviada para o dispositivo de controle 66 usando-se o software de gerenciamento de nó, e a etiqueta anexada à solicitação de aplicativo pela unidade de processamento 11 é também definida usando-se o software de gerenciamento de nó; portanto, a etiqueta portada na solicitação de aplicativo pode ser associada com uma etiqueta na política de alocação de recurso, e o dispositivo de controle pode determinar, de acordo com a etiqueta e a política de alocação de recurso pré- armazenada, a quantidade de recursos alocados para a solicitação de aplicativo.
[00119] A quantidade de recursos no presente documento pode ser uma quantidade de recursos alocados para a solicitação de aplicativo por um componente do computador no qual o dispositivo de controle é localizado, ou pode ser um valor percentual, ou pode incluir adicionalmente informações prioritárias e similares. Por exemplo, quando o componente do computador no qual o dispositivo de controle é localizado é uma memória, a quantidade de recursos pode ser um tamanho de espaço de memória, ou um valor percentual (por exemplo, 80%) de espaço de memória, ou outras informações (referência é feita às descrições do “atributo" na Tabela 1). Essa modalidade da presente invenção não define um limite a uma forma de expressão da quantidade de recursos, e qualquer uma estará abrangida pelo escopo de proteção dessa modalidade da presente invenção contanto que represente uma prioridade ou velocidade de processamento da solicitação de aplicativo pelo componente.
[00120] Além disso, a política de alocação de recurso no presente documento pode ser construída em um processador do dispositivo de controle (referência é feita à maneira de implantação mostrada na Figura 3), ou pode ser armazenada em um cache do dispositivo de controle (referência é feita à maneira de implantação mostrada na Figura 3).
[00121] Etapa S103: O dispositivo de controle instrui um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo.
[00122] O ato de instruir um componente do computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo pode ser enviar a quantidade de recursos alocados para a solicitação de aplicativo e a solicitação de aplicativo para o componente, ou pode ser enviar a solicitação de aplicativo para o componente e notificar o componente de uma maneira de processamento da solicitação de aplicativo.
[00123] Nessa modalidade da presente invenção, um dispositivo de controle pode determinar, de acordo com uma etiqueta portada em uma solicitação de aplicativo e uma correspondência entre a etiqueta e uma quantidade de recursos alocados para a solicitação de aplicativo, a quantidade de recursos alocados para a solicitação de aplicativo, e então instruir um componente de um computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo. Portanto, diferentes quantidades de recursos podem ser alocados para diferentes solicitações de aplicativo, desse modo aperfeiçoando a qualidade de serviço.
[00124] Opcionalmente, quando o processamento da solicitação de aplicativo não está completo após a etapa S103, ainda se exige solicitar um recurso a partir de outro componente do computador e processar a solicitação de aplicativo, a solicitação de aplicativo processada pode ser enviada para um dispositivo de controle no outro componente do computador para processamento, e uma maneira de processamento da mesma é similar para a etapa S101 e para a etapa S103. Deve ser notado que a solicitação de aplicativo que é enviada para o dispositivo de controle no outro componente do computador também porta a etiqueta.
[00125] A seguir se descreve outra maneira de implantação de um método de processamento de dados em uma modalidade da presente invenção. Conforme mostrado na Figura 9, o método inclui:
[00126] Etapa S201: É igual à etapa S101.
[00127] Etapa S202: O dispositivo de controle obtém uma política de alocação de recurso a partir de um cache (a qual pode ser referida como um cache abreviadamente).
[00128] Quando a política de alocação de recurso é um código de software, o dispositivo de controle pode carregar a política de alocação de recurso em um buffer de um processador do dispositivo de controle. Quando a política de alocação de recurso é a tabela de controle mostrada na Tabela 1, o dispositivo de controle pode enviar uma instrução de consulta para o cache, onde a instrução de consulta inclui a etiqueta, e o cache busca a tabela de controle para um item correspondente de acordo com a etiqueta e devolve o item para o dispositivo de controle. O dispositivo de controle carrega o item no buffer do processador do dispositivo de controle. Especificamente, o item inclui uma correspondência entre a etiqueta e uma quantidade de recursos alocados para a solicitação de aplicativo.
[00129] Etapa S203: O dispositivo de controle determina, de acordo com a etiqueta e a política de alocação de recurso pré-armazenada, uma quantidade de recursos alocados para a solicitação de aplicativo.
[00130] Etapa S204: É igual à etapa S103.
[00131] Nessa modalidade da presente invenção, um dispositivo de controle pode determinar, de acordo com uma etiqueta portada em uma solicitação de aplicativo e uma correspondência entre a etiqueta e uma quantidade de recursos alocados para a solicitação de aplicativo, a quantidade de recursos alocados para a solicitação de aplicativo, e então instruir um componente de um computador para processar a solicitação de aplicativo de acordo com a quantidade de recursos alocados para a solicitação de aplicativo. Portanto, diferentes quantidades de recursos podem ser alocadas para diferentes solicitações de aplicativo, desse modo aperfeiçoando a qualidade de serviço.
[00132] A seguir se descreve outra maneira de implantação de um método de processamento de dados em uma modalidade da presente invenção. Conforme mostrado na Figura 10, o método inclui:
[00133] Etapa S301: É igual à etapa S101.
[00134] Etapa S302: É igual à etapa S102 e é igual às etapas S202 e S203.
[00135] Etapa S303: O dispositivo de controle seleciona, a partir de pelo menos duas filas de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, uma fila que corresponde à solicitação de aplicativo, e armazena a solicitação de aplicativo dentro da fila que corresponde à solicitação de aplicativo.
[00136] Especificamente, o dispositivo de controle pode incluir um segundo buffer, e a fila é armazenada no segundo buffer (referência pode ser feita à maneira de implantação mostrada na Figura 3, Figura 4, ou Figura 5). O segundo buffer inclui pelo menos duas filas, onde cada fila corresponde a uma faixa de quantidades de recursos, e uma prioridade de cada fila é diferente.
[00137] Etapa S304: Um enviador de dados (por exemplo, o enviador de dados 600j na Figura 3 à Figura 5) do dispositivo de controle obtém a solicitação de aplicativo que está dentro da fila que corresponde à solicitação de aplicativo, e envia a solicitação de aplicativo para um componente do computador.
[00138] Etapa S305: O componente do computador obtém e executa a solicitação de aplicativo.
[00139] Deve ser notado que a etapa S304 é uma etapa opcional, e o componente do computador pode também obter diretamente a solicitação de aplicativo a partir da fila correspondente.
[00140] Por exemplo, o segundo buffer pode incluir três filas, as quais são uma fila de alta prioridade, uma fila de média prioridade, e uma fila de baixa prioridade. Um valor percentual de uma quantidade de recursos que corresponde à fila de alta prioridade é 70%-80%. Se a quantidade de recursos alocados para a solicitação de aplicativo é 76%, a solicitação de aplicativo é colocada dentro da fila de alta prioridade. A fila de alta prioridade significa uma sequência de processamento preferencial ou uma velocidade de processamento relativamente alta. O componente do computador pode preferencialmente obter a solicitação de aplicativo que está dentro da fila de alta prioridade e executar a solicitação de aplicativo. Opcionalmente, o dispositivo de controle pode adicionalmente se referir a outro fator, por exemplo, uma quantidade de recursos que foram usados pela solicitação de aplicativo correntemente, para considerar em qual fila a solicitação de aplicativo é colocada. Nesse documento de pedido, os cenários de aplicação não são descritos um por um.
[00141] Pode ser entendido que cada fila pode incluir múltiplas solicitações de aplicativo a serem processadas. Para as múltiplas solicitações de aplicativo a serem processadas em cada fila, o componente do computador pode realizar processamento de acordo com um princípio de primeiro a entrar primeiro a sair ou outro princípio.
[00142] Além disso, após o dispositivo de controle colocar as solicitações de aplicativo dentro da fila correspondente, o dispositivo de controle pode também retirar da fila as solicitações de aplicativo que estão dentro da fila em sequência (quando existem múltiplas solicitações de aplicativo dentro da fila), e então enviar as solicitações de aplicativo para o componente do computador para processamento.
[00143] Nessa modalidade da presente invenção, um dispositivo de controle pode determinar, de acordo com uma etiqueta portada em uma solicitação de aplicativo e uma correspondência entre a etiqueta e uma quantidade de recursos alocados para a solicitação de aplicativo, a quantidade de recursos alocados para a solicitação de aplicativo, colocar a solicitação de aplicativo em uma fila correspondente de acordo com a quantidade de recursos alocados para a solicitação de aplicativo, e então obter a solicitação de aplicativo que está dentro da fila que corresponde à solicitação de aplicativo e enviar a solicitação de aplicativo para um enviador de dados. O enviador de dados envia a solicitação de aplicativo para um componente de um computador para execução, desse modo aperfeiçoando a qualidade de serviço.
[00144] Opcionalmente, na maneira de implantação do método de processamento de dados mostrado na Figura 8, Figura 9, ou Figura 10, as seguintes etapas podem ser adicionalmente incluídas:
[00145] Após a execução da solicitação de aplicativo estar completa, o componente do computador pode realimentar uma mensagem para um sistema operante, para explicar que a solicitação de aplicativo foi processada. Nesse caso, uma mensagem de reclamação de recurso pode ser enviada para o dispositivo de controle usando-se o software de gerenciamento de nó, onde a mensagem de reclamação de recurso é usada para deletar a política de alocação de recurso no dispositivo de controle.
[00146] A seguir se descreve adicionalmente os procedimentos de processamento na Figura 8 à Figura 10 usando-se um exemplo no qual uma solicitação de aplicativo para reprodução de vídeo é processada.
[00147] Etapa 1: Um usuário clica em um arquivo de vídeo em um computador local.
[00148] Etapa 2: Uma CPU gera uma solicitação de acesso à memória para ler o arquivo de vídeo.
[00149] Etapa 3: A CPU etiqueta a solicitação de acesso à memória, e envia, para um dispositivo de controle em uma memória, a solicitação de acesso à memória que inclui uma etiqueta.
[00150] Etapa 4: O dispositivo de controle na memória determina, de acordo com a etiqueta, espaço de memória alocado para a solicitação de acesso à memória, e adicionalmente coloca a solicitação de acesso à memória em uma fila correspondente de acordo com o espaço de memória alocado.
[00151] Etapa 5: O dispositivo de controle na memória retira da fila a solicitação de acesso à memória que está dentro da fila, e envia a solicitação de acesso à memória para a memória, de modo a executar a solicitação de acesso à memória.
[00152] Etapa 6: A memória envia uma resposta para a CPU após carregar o arquivo de vídeo.
[00153] Etapa 7: A CPU obtém o arquivo de vídeo a partir da memória, e envia uma solicitação de aceleração de hardware para uma GPU, para solicitar à GPU que realize decodificação de hardware no arquivo de vídeo, onde a solicitação de aceleração de hardware porta o arquivo de vídeo e a etiqueta.
[00154] Etapa 8: Um dispositivo de controle na GPU determina, de acordo com a etiqueta, uma quantidade de recursos de aceleração de hardware alocados para o arquivo de vídeo, e então coloca a solicitação de aceleração de hardware em uma fila correspondente de acordo com a quantidade de recursos de aceleração de hardware alocados.
[00155] Etapa 9: O dispositivo de controle na GPU retira da fila a solicitação de aceleração de hardware que está dentro da fila, e envia a solicitação de aceleração de hardware para a GPU.
[00156] Etapa 10: A GPU realiza processamento de aceleração de hardware no arquivo de vídeo de acordo com a solicitação de aceleração de hardware.
[00157] Etapa 11: Após o processamento estar completo, caso não seja exigido realizar outro processamento no arquivo de vídeo, a GPU pode enviar uma solicitação de saída para uma ponte sul (por exemplo, a rede de controle I/O mostrada na Figura 1 ou na Figura 2a), onde a solicitação de saída inclui o arquivo de vídeo que passou pelo processamento de aceleração de hardware e a etiqueta.
[00158] Etapa 12: Um dispositivo de controle na ponte sul determina, de acordo com a etiqueta, a largura de banda alocada para o arquivo de vídeo, e então coloca a solicitação de saída em uma fila correspondente de acordo com a largura de banda alocada.
[00159] Etapa 13: A ponte sul retira da fila o arquivo de vídeo que está dentro da fila, e envia o arquivo de vídeo para um monitor.
[00160] Etapa 14: O monitor monitora o arquivo de vídeo.
[00161] Uma pessoa de habilidade mediana na técnica pode estar ciente que, em combinação com os exemplos descritos nas modalidades reveladas nesse relatório descritivo, unidades e etapas de algoritmo podem ser implantadas por hardware eletrônico, software de computador, ou uma combinação dos mesmos. Para descrever claramente a alternância entre o hardware e o software, o que foi dito acima descreveu de forma geral composições e etapas de cada exemplo de acordo com as funções. Se ou não as funções são realizadas por hardware ou software depende das aplicações particulares e condições de restrição de projeto das soluções técnicas. Uma pessoa habilitada na técnica pode usar métodos diferentes para implantar as funções descritas para cada aplicação em particular, mas não deve ser considerado que a implantação vá além do escopo da presente invenção.
[00162] Pode ser claramente entendido por uma pessoa habilitada na técnica que, para o propósito de descrição conveniente e breve, para um processo de funcionamento detalhado do sistema, aparelho, e unidade supracitados, referência pode ser feita a um processo correspondente nas modalidades de método supracitadas, e detalhes não são descritos no presente documento novamente.
[00163] Nas diversas modalidades fornecidas no presente pedido, deve ser entendido que o sistema, aparelho, e método revelados podem ser implantados em outras maneiras. Por exemplo, o aparelho descrito é meramente exemplificativo. Por exemplo, a divisão de unidade é meramente divisão de função lógica e pode ser outra divisão na implantação efetiva. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrada em outro sistema, ou algumas funcionalidades podem ser ignoradas ou não realizadas. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implantados através de algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em formas eletrônicas, mecânicas, ou outras formas.
[00164] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e partes exibidas como unidades podem ou não ser unidades físicas, podem ser localizadas em uma posição, ou podem ser distribuídas em uma pluralidade de unidades de rede. Algumas das ou todas as unidades podem ser selecionadas de acordo com necessidades efetivas para atingir os objetivos das soluções das modalidades da presente invenção.
[00165] Além disso, unidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento, ou cada uma das unidades pode existir sozinha fisicamente, ou duas ou mais unidades são integradas em uma unidade. A unidade integrada pode ser implantada em uma forma de hardware, ou pode ser implantada em uma forma de uma unidade funcional de software.
[00166] Quando a unidade integrada é implantada na forma de uma unidade funcional de software e vendida ou usada como um produto independente, a unidade integrada pode ser armazenada em um meio de armazenamento legível por computador. Com base nesse entendimento, as soluções técnicas da presente invenção de modo essencial, ou a parte que contribui para a técnica anterior, ou todas as ou uma parte das soluções técnicas podem ser implantadas na forma de um produto de software. O produto de software é armazenado em um meio de armazenamento e inclui diversas instruções para instruir um dispositivo de computador (o qual pode ser um computador pessoal, um servidor, ou um dispositivo de rede) para realizar todas as ou algumas das etapas dos métodos descritos nas modalidades da presente invenção. O supracitado meio de armazenamento inclui: qualquer meio que possa armazenar código de programa, tal como um pen drive USB, um disco rígido removível, uma memória apenas para leitura (ROM, Memória Apenas para Leitura), uma memória de acesso aleatório (RAM, Memória de Acesso Aleatório), um disco magnético, ou um disco óptico.
[00167] As descrições supracitadas são meramente modalidades específicas da presente invenção, mas não são destinadas a limitar o escopo de proteção da presente invenção. Qualquer modificação ou substituição prontamente concebida por uma pessoa habilitada na técnica dentro do escopo técnico revelado na presente invenção estará abrangido pelo escopo de proteção da presente invenção. Portanto, o escopo de proteção da presente invenção estará sujeito a ser o escopo de proteção das reivindicações.

Claims (12)

1. Sistema de computador, CARACTERIZADO pelo fato de que compreende: um processador e uma pluralidade de componentes direta ou indiretamente conectados ao processador, em que cada um dentre a pluralidade de componentes é acoplado a um dispositivo de controle, e é configurado para fornecer recursos para um ou mais programas de aplicativo rodando no sistema de computador, em que o processador, ao executar um programa de aplicativo, é configurado para anexar uma etiqueta a uma solicitação de aplicativo, e enviar a solicitação de aplicativo com etiqueta anexada a um primeiro dispositivo de controle acoplado a um primeiro componente e um segundo dispositivo de controle acoplado a um segundo componente; em que o primeiro dispositivo de controle é configurado para: determinar, com base na etiqueta e em uma primeira política de alocação de recurso, primeiros recursos alocados para a solicitação de aplicativo; e instruir o primeiro componente a alocar uma primeira quantidade de recursos correspondentes ao primeiro nível de recurso à solicitação de aplicativo, e instruir o primeiro componente a processar a solicitação de aplicativo de acordo com a primeira quantidade de recursos alocados à solicitação de aplicativo; em que o segundo dispositivo de controle é configurado para: determinar, com base na etiqueta e em uma segunda política de alocação de recurso, um segundo nível de recurso para a solicitação de aplicativo; e instruir o segundo componente a alocar uma segunda quantidade de recursos correspondentes ao segundo nível de recurso para a solicitação de aplicativo, e instruir o segundo componente a processar a solicitação de aplicativo de acordo com a segunda quantidade de recursos alocados à solicitação de aplicativo; em que o primeiro dispositivo de controle compreende um buffer que armazena pelo menos duas filas, cada uma dentre as pelo menos duas filas corresponde a uma faixa de níveis de recurso, e as pelo menos duas filas têm diferentes prioridades de processamento, em que o primeiro dispositivo de controle é configurado adicionalmente para identificar uma fila a partir das pelo menos duas filas com base no primeiro nível de recurso determinado e gravar a solicitação de aplicativo com etiqueta anexada na fila identificada, e em que o primeiro componente é configurado para: obter a solicitação de aplicativo a partir da fila identificada; alocar a primeira quantidade de recursos correspondentes ao primeiro nível de recurso à solicitação de aplicativo; e processar a solicitação de aplicativo de acordo com a primeira quantidade de recursos alocados à solicitação de aplicativo.
2. Sistema de computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a pluralidade de componentes compreende um ou mais dentre os seguintes: uma rede de interconexão em chip de alta velocidade, uma unidade de cache, uma unidade de memória, uma unidade de processamento gráfico, uma rede de interconexão de entrada/saída (I/O), um disco rígido, um adaptador de rede, e uma unidade de exibição.
3. Sistema de computador, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o processador é conectado à rede de interconexão em chip de alta velocidade, e a rede de interconexão em chip de alta velocidade é conectada a um ou mais dentre: a unidade de cache, a unidade de memória, a unidade de processamento gráfico, e a rede de interconexão de entrada/saída (I/O); e em que a rede de interconexão de I/O é conectada a um ou mais dentre: o disco rígido, o adaptador de rede, e a unidade de exibição.
4. Sistema de computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que uma tabela de controle é armazenada no primeiro dispositivo de controle, a tabela de controle inclui uma pluralidade de entradas, cada entrada corresponde a uma etiqueta e a um ou mais níveis de recursos para a etiqueta, em que ao instruir o primeiro componente a alocar a primeira quantidade de recursos correspondentes ao primeiro nível de recurso à solicitação de aplicativo, o primeiro dispositivo de controle é configurado para: consultar a tabela de controle para obter o primeiro nível de recurso de acordo com a primeira política de alocação de recurso e com a etiqueta; e determinar a primeira quantidade de recursos alocados à solicitação de aplicativo com base no primeiro nível de recurso.
5. Sistema de computador, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que compreende adicionalmente uma memória que armazena um programa de gerenciamento para execução pelo processador, e o processador, ao executar o programa de gerenciamento, é configurado para definir a primeira política de alocação de recurso, e gravar a primeira política de alocação de recurso na tabela de controle no primeiro dispositivo de controle.
6. Sistema de computador, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o processador, ao executar o programa de gerenciamento, é configurado adicionalmente para definir uma ou mais etiquetas, e gravar as etiquetas definidas em um registro de etiqueta.
7. Método para um sistema de computador para processar múltiplos programas de aplicativo, em que o sistema de computador compreende um processador e uma pluralidade de componentes direta ou indiretamente conectados ao processador, e cada um dentre a pluralidade de componentes é acoplado a um dispositivo de controle, CARACTERIZADO pelo fato de que o método compreende: anexar, pelo processador ao executar um programa de aplicativo, uma etiqueta a uma solicitação de aplicativo; enviar, pelo processador, a solicitação de aplicativo com etiqueta anexada a um primeiro dispositivo de controle acoplado a um primeiro componente e um segundo dispositivo de controle acoplado a um segundo componente; determinar, pelo primeiro dispositivo de controle com base na etiqueta e em uma primeira política de alocação de recurso, um primeiro nível de recurso para a solicitação de aplicativo; alocar, pelo primeiro componente, uma primeira quantidade de recursos correspondentes ao primeiro nível de recurso à solicitação de aplicativo; processar, pelo primeiro componente, a solicitação de aplicativo de acordo com a primeira quantidade de recursos alocados à solicitação de aplicativo; determinar, pelo segundo dispositivo de controle com base na etiqueta e em uma segunda política de alocação de recurso, um segundo nível de recurso para a solicitação de aplicativo; alocar, pelo segundo componente, uma segunda quantidade de recursos correspondentes ao segundo nível de recurso à solicitação de aplicativo; e processar, pelo segundo componente, a solicitação de aplicativo de acordo com a segunda quantidade de recursos alocados à solicitação de aplicativo; em que o primeiro dispositivo de controle compreende um buffer que armazena pelo menos duas filas, cada uma dentre as pelo menos duas filas corresponde a uma faixa de níveis de recurso, e as pelo menos duas filas têm diferentes prioridades de processamento, o método compreendendo adicionalmente: identificar, pelo primeiro dispositivo de controle, uma fila a partir das pelo menos duas filas com base no primeiro nível de recurso determinado e gravar a solicitação de aplicativo com etiqueta anexada na fila identificada; e obter, pelo primeiro componente, a solicitação de aplicativo a partir da fila identificada.
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que uma tabela de controle é armazenada no primeiro dispositivo de controle, a tabela de controle inclui uma pluralidade de entradas, cada entrada corresponde a uma etiqueta e a um ou mais níveis de recursos para a etiqueta, em que o método compreende adicionalmente: consultar, pelo primeiro dispositivo de controle, a tabela de controle para obter um primeiro nível de recurso de acordo com a primeira política de alocação de recurso e com a etiqueta; e determinar, pelo primeiro dispositivo de controle, a quantidade de recursos alocados à solicitação de aplicativo com base no primeiro nível de recurso determinado.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o sistema de computador compreende adicionalmente uma memória para armazenar um programa de gerenciamento para execução pelo processador, e o método compreende adicionalmente: definir, pelo processador, a primeira política de alocação de recurso executando-se o programa de gerenciamento, e gravar a primeira política de alocação de recurso na tabela de controle.
10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o processador inclui um registro de etiqueta, e o método compreende adicionalmente: definir, pelo processador, a etiqueta executando-se o programa de gerenciamento; e gravar, pelo processador, a etiqueta no registro de etiqueta.
11. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a pluralidade de componentes compreende um ou mais dentre os seguintes: uma rede de interconexão em chip de alta velocidade, uma unidade de cache, uma unidade de memória, uma unidade de processamento gráfico, uma rede de interconexão de entrada/saída (I/O), um disco rígido, um adaptador de rede, e uma unidade de exibição.
12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o processador é conectado à rede de interconexão em chip de alta velocidade, e a rede de interconexão em chip de alta velocidade é conectada a um ou mais dentre: a unidade de cache, a unidade de memória, a unidade de processamento gráfico, e a rede de interconexão de entrada/saída (I/O); e em que a rede de interconexão de I/O é conectada a um ou mais dentre: o disco rígido, o adaptador de rede, e a unidade de exibição.
BR112016016326-5A 2014-04-30 2015-02-10 Computador, dispositivo de controle, e método de processamento de dados BR112016016326B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201410182148.1 2014-04-30
CN201410182148 2014-04-30
CN201410682375.0 2014-11-24
CN201410682375.0A CN105094983B (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法
PCT/CN2015/072672 WO2015165298A1 (zh) 2014-04-30 2015-02-10 计算机,控制设备和数据处理方法

Publications (2)

Publication Number Publication Date
BR112016016326A2 BR112016016326A2 (pt) 2017-08-08
BR112016016326B1 true BR112016016326B1 (pt) 2023-04-11

Family

ID=54358145

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016016326-5A BR112016016326B1 (pt) 2014-04-30 2015-02-10 Computador, dispositivo de controle, e método de processamento de dados

Country Status (13)

Country Link
US (1) US10572309B2 (pt)
EP (1) EP3076296A4 (pt)
JP (1) JP6475256B2 (pt)
KR (1) KR101784900B1 (pt)
CN (2) CN105094983B (pt)
AU (1) AU2015252673B2 (pt)
BR (1) BR112016016326B1 (pt)
CA (1) CA2935114C (pt)
MX (1) MX360278B (pt)
PH (1) PH12016501374B1 (pt)
RU (1) RU2651219C2 (pt)
SG (1) SG11201605623PA (pt)
WO (1) WO2015165298A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980463A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 存储系统的服务质量控制方法和装置
US10452395B2 (en) 2016-07-20 2019-10-22 International Business Machines Corporation Instruction to query cache residency
US10621095B2 (en) * 2016-07-20 2020-04-14 International Business Machines Corporation Processing data based on cache residency
US10169239B2 (en) 2016-07-20 2019-01-01 International Business Machines Corporation Managing a prefetch queue based on priority indications of prefetch requests
US10521350B2 (en) 2016-07-20 2019-12-31 International Business Machines Corporation Determining the effectiveness of prefetch instructions
CN108123924B (zh) * 2016-11-30 2021-02-12 中兴通讯股份有限公司 一种资源管理方法及系统
US10936490B2 (en) * 2017-06-27 2021-03-02 Intel Corporation System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms
CN109582600B (zh) * 2017-09-25 2020-12-01 华为技术有限公司 一种数据处理方法及装置
CN109726005B (zh) * 2017-10-27 2023-02-28 伊姆西Ip控股有限责任公司 用于管理资源的方法、服务器系统和计算机可读介质
CN110968418A (zh) * 2018-09-30 2020-04-07 北京忆恒创源科技有限公司 基于信号-槽的大规模有约束并发任务的调度方法与装置
CN109542622A (zh) * 2018-11-21 2019-03-29 新华三技术有限公司 一种数据处理方法及装置
US10601740B1 (en) * 2019-04-03 2020-03-24 Progressive Casuality Insurance Company Chatbot artificial intelligence
PH12019050292A1 (en) * 2019-12-22 2021-11-08 Samsung Electronics Ltd Method for scaling gpu in the cloud
CN114945009B (zh) * 2022-02-24 2023-04-25 摩尔线程智能科技(北京)有限责任公司 PCIe总线连接的设备间进行通信的方法、设备及系统
CN114979131B (zh) * 2022-04-07 2024-04-19 中国科学院深圳先进技术研究院 面向云计算的标签化冯诺依曼体系结构通信方法及装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787469A (en) * 1996-09-06 1998-07-28 Intel Corporation System and method for exclusively writing tag during write allocate requests
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
US7058947B1 (en) * 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US6785756B2 (en) * 2001-05-10 2004-08-31 Oracle International Corporation Methods and systems for multi-policy resource scheduling
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
JP4071668B2 (ja) 2003-04-16 2008-04-02 富士通株式会社 システムの使用資源を調整する装置および方法
US20050016042A1 (en) * 2003-04-28 2005-01-27 Baratta Adam M. Motion picture memorabilia and method for promoting motion pictures using same
US7430741B2 (en) 2004-01-20 2008-09-30 International Business Machines Corporation Application-aware system that dynamically partitions and allocates resources on demand
US7797699B2 (en) * 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US7356631B2 (en) 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
CN100479374C (zh) 2005-04-25 2009-04-15 华为技术有限公司 网络通信中处理紧急业务的方法
GB0524008D0 (en) * 2005-11-25 2006-01-04 Ibm Method and system for controlling the processing of requests for web resources
JP4594877B2 (ja) * 2006-02-21 2010-12-08 株式会社日立製作所 計算機リソース割当管理方法および計算機リソース割当管理装置
CN101438256B (zh) * 2006-03-07 2011-12-21 索尼株式会社 信息处理设备、信息通信系统、信息处理方法
JP2007272868A (ja) 2006-03-07 2007-10-18 Sony Corp 情報処理装置、情報通信システム、および情報処理方法、並びにコンピュータ・プログラム
JP5061544B2 (ja) * 2006-09-05 2012-10-31 トヨタ自動車株式会社 燃料電池
CN100459581C (zh) 2006-09-21 2009-02-04 电子科技大学 一种用于实时混合业务环境的可变参数分组调度方法
US8458711B2 (en) * 2006-09-25 2013-06-04 Intel Corporation Quality of service implementation for platform resources
US8065682B2 (en) * 2007-02-27 2011-11-22 Microsoft Corporation Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools
US8886918B2 (en) * 2007-11-28 2014-11-11 International Business Machines Corporation Dynamic instruction execution based on transaction priority tagging
US8396929B2 (en) * 2008-07-02 2013-03-12 Sap Portals Israel Ltd. Method and apparatus for distributed application context aware transaction processing
US8676976B2 (en) 2009-02-25 2014-03-18 International Business Machines Corporation Microprocessor with software control over allocation of shared resources among multiple virtual servers
KR20120024848A (ko) 2009-05-26 2012-03-14 노키아 코포레이션 미디어 세션의 전달 방법 및 장치
EP2388700A3 (en) * 2010-05-18 2013-08-07 Kaspersky Lab Zao Systems and methods for policy-based program configuration
JP5533315B2 (ja) 2010-06-16 2014-06-25 富士ゼロックス株式会社 情報処理システム、管理装置、処理要求装置及びプログラム
US8560897B2 (en) * 2010-12-07 2013-10-15 International Business Machines Corporation Hard memory array failure recovery utilizing locking structure
CN102195882B (zh) * 2011-05-18 2016-04-06 深信服网络科技(深圳)有限公司 根据数据流应用类型选路的方法及装置
CN102958166B (zh) * 2011-08-29 2017-07-21 华为技术有限公司 一种资源分配方法及资源管理平台
JP5884595B2 (ja) * 2012-03-29 2016-03-15 富士通株式会社 メッセージ通信方法,メッセージ通信プログラムおよびコンピュータ
CN102739770B (zh) * 2012-04-18 2015-06-17 上海和辰信息技术有限公司 一种基于云计算的资源调度方法及系统

Also Published As

Publication number Publication date
RU2651219C2 (ru) 2018-04-18
CN111666148A (zh) 2020-09-15
BR112016016326A2 (pt) 2017-08-08
US20170046202A1 (en) 2017-02-16
CA2935114A1 (en) 2015-11-05
EP3076296A4 (en) 2017-01-25
WO2015165298A1 (zh) 2015-11-05
MX360278B (es) 2018-10-26
EP3076296A1 (en) 2016-10-05
CA2935114C (en) 2020-07-14
SG11201605623PA (en) 2016-08-30
AU2015252673A1 (en) 2016-07-28
PH12016501374A1 (en) 2016-08-15
JP2017513096A (ja) 2017-05-25
US10572309B2 (en) 2020-02-25
RU2016134457A3 (pt) 2018-03-01
MX2016011157A (es) 2016-12-09
CN105094983B (zh) 2020-04-28
RU2016134457A (ru) 2018-03-01
KR101784900B1 (ko) 2017-10-12
KR20160098438A (ko) 2016-08-18
AU2015252673B2 (en) 2017-12-14
CN105094983A (zh) 2015-11-25
JP6475256B2 (ja) 2019-02-27
PH12016501374B1 (en) 2016-08-15

Similar Documents

Publication Publication Date Title
BR112016016326B1 (pt) Computador, dispositivo de controle, e método de processamento de dados
US20200278880A1 (en) Method, apparatus, and system for accessing storage device
KR101747518B1 (ko) 소프트웨어 정의 네트워크에서의 가상화된 컨테이너 및 가상 머신을 통한 로컬 서비스 체이닝
US11888710B2 (en) Technologies for managing cache quality of service
US10178054B2 (en) Method and apparatus for accelerating VM-to-VM network traffic using CPU cache
WO2015078219A1 (zh) 一种信息缓存方法、装置和通信设备
EP4220419B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
JP6763984B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
BR112017005195B1 (pt) Método de gerenciamento de recursos, hospedeiro e ponto final
EP3598310B1 (en) Network interface device and host processing device
US20190102107A1 (en) Techniques for batch operations to storage devices
EP4214603A1 (en) Mechanism to automatically prioritize i/o for nfv workloads at platform overload
US11474880B2 (en) Network state synchronization for workload migrations in edge devices
US20190317796A1 (en) Techniques to facilitate out of band management in a virtualization environment
US11429438B2 (en) Network interface device and host processing device
US11929926B2 (en) Traffic service threads for large pools of network addresses
US10802828B1 (en) Instruction memory
US8898353B1 (en) System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface
US9104637B2 (en) System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.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 10/02/2015, OBSERVADAS AS CONDICOES LEGAIS