BR112013004408A2 - envio de interrupção con energia otimizada - Google Patents

envio de interrupção con energia otimizada Download PDF

Info

Publication number
BR112013004408A2
BR112013004408A2 BR112013004408-0A BR112013004408A BR112013004408A2 BR 112013004408 A2 BR112013004408 A2 BR 112013004408A2 BR 112013004408 A BR112013004408 A BR 112013004408A BR 112013004408 A2 BR112013004408 A2 BR 112013004408A2
Authority
BR
Brazil
Prior art keywords
hardware thread
thread
hardware
interrupt
processor
Prior art date
Application number
BR112013004408-0A
Other languages
English (en)
Inventor
Ramakrishna Saripall
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Publication of BR112013004408A2 publication Critical patent/BR112013004408A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/5033Allocation 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 data affinity
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Bus Control (AREA)

Abstract

ENVIO DE INTERRUPÇÃO COM ENERGIA OTIMIZADA A presente invenção descreve um aparelho, método, sistema e meio legível por computador. Em urna modalidade, o aparelho é um processador. O processador inclui lógica de remapeamento da thread que é capaz de rastrear informações de equivalência de interrupção de thread de hardware para uma primeira thread de hardware e uma segunda thread de hardware. O processador também inclui lógica para receber uma interrupção emitida a partir de um dispositivo, em que a interrupção tendo uma afinidade ligada à primeira thread de hardware. O processador também inclui lógica para redirecionar a interrupção para a segunda thread de hardware quando a informação de equivalência de interrupção da thread de hardware valida que a segunda thread de hardware é capaz de gerenciar a interrupção.

Description

| s : “ENVIO DE INTERRUPÇÃO COM ENERGIA OTIMIZADA”
CAMPO DA INVENÇÃO A invenção refere-se à remapeamento de interrupção para otimizações de energia de thread (linha de execução) de hardware.
HISTÓRICO DA INVENÇÃO Uma thread de hardware (por exemplo, um núcleo operacional dentro de um processador) pode ter a capacidade de entrar em um estado otimizado de energia, tal como uma dormência de baixa energia ou estado de dormência profunda. O tráfego de Entrada/Saída (1/0) pode enviar uma interrupção para a thread de hardware, que geralmente faria com que a thread despertasse do estado de baixa energia para atender a interrupção. Por exemplo, interrupções que requerem que à thread de hardware desperte podem vir de um dispositivo de interconexão de componente de plataforma | (PCI) -express, de um dispositivo PCI ou de um controlador de interrupção programável avançado de entrada/saída (IOAPIC), entre outros. Quando essas interrupções chegam frequentemente e cada uma delas requer que a thread de hardware desperte, o propósito de | colocar a thread de hardware em um estado otimizado de energia falha.
BREVE DESCRIÇÃO DOS DESENHOS A presente invenção é ilustrada a título de exemplo e não é limitada pelos desenhos, nos quais as referências semelhantes indicam elementos similares, e em que: A Figura 1 ilustra uma modalidade de um sistema de computador capaz de envio de interrupção com energia otimizada. A Figura 2 ilustra outra modalidade de um sistema de computador capaz de envio de interrupção com energia otimizada. A Figura 3 ilustra uma estrutura de dados que armazena uma matriz de informações de equivalência de thread de hardware/tipo de interrupção, bem como uma estrutura de dados que armazena o estado de energia atual de cada thread de hardware. |
. 7 ' 2/15 = A Figura 4 ilustra uma modalidade de um sistema de computador com dois soquetes capaz de envio de interrupção com energia otimizada. A Figura 5 ilustra uma modalidade de um sistema de computador de dois nós capaz de envio de interrupção com energia otimizada. A Figura 6 é um fluxograma de uma modalidade de um processo para envio de interrupção com energia otimizada.
DESCRIÇÃO DETALHADA DOS DESENHOS | 10 São descritas modalidades de um processador, sistema, método e meio legível por computador capazes de envio de interrupção com energia otimizada. Um sistema de computador pode incluir várias threads de hardware. Se uma thread de hardware é concebida como um núcleo dentro de um processador, em um sistema de múltiplos processadores onde cada processador tem vários núcleos, há potencialmente muitas threads de hardware. Uma thread de hardware pode ter a capacidade de entrar em um estado de baixa energia quando não é requisitada para estar trabalhando. Quanto mais threads de hardware estiverem em estado de baixa energia, mais 1 baixo se torna o consumo geral de energia do sistema do computador. Quando ocorre uma interrupção de 1/0 que requer atendimento por uma thread de hardware específica, a thread de hardware de destino seria geralmente despertada, o que negaria a economia de energia em curso da thread de hardware dormente. Assim, pode estar presente dentro do sistema de computador a lógica de remapeamento de thread que controla o estado de energia de cada thread de hardware, bem como o gerenciamento da equivalência de interrupção de cada thread de hardware. Por exemplo, para uma dada interrupção, pode haver quatro threads diferentes que podem gerenciar essa interrupção. Assim, se a interrupção se destina a uma primeira thread de hardware e a primeira thread estiver em um estado de baixa energia, a lógica de remapeamento de thread pode procurar outra thread de hardware que esteja disponível e possa gerenciar a interrupção. Se uma thread equivalente para fins de gerenciamento da interrupção está
' 3/15 = disponível, então a lógica de remapeamento de thread transferirá/remapeará a interrupção para fazer com que a outra thread de hardware encontrada gerencie a interrupção, permitindo assim que a thread de hardware originalmente objetivada permaneça no estado de baixa energia. | A Figura 1 ilustra uma modalidade de um sistema de computador capaz de envio de interrupção com energia otimizada.
É mostrado o sistema de computador 100. O sistema de computador pode ser um computador de mesa (desktop), um servidor, uma estação de trabalho, um laptop, um dispositivo portátil, set-top de televisão, mídia center, console de jogos, sistema integrado (tal como em um carro) ou outro tipo de sistema de computador.
Em várias modalidades, o sistema de computador 100 inclui uma ou mais unidades de processamento central (CPUs), tambén referidas como “processadores”. Embora em muitas modalidades haja potencialmente muitas CPUs, na modalidade mostrada na Figura 1 somente a CPU 102 é mostrada para maior 1 clareza.
A CPU 102 pode ser uma CPU da Intel& Corporation ou CPUs de outra marca.
A CPU 102 inclui um ou mais núcleos em diferentes | modalidades.
A CPU 102 é mostrada incluindo quatro núcleos (núcleos 104, 106, 108 e 110). Em muitas modalidades, cada núcleo inclui blocos funcionais internos, tais como uma ou mais unidades de execução, unidades de retirada (retirement units), um conjunto de registros de uso geral e específico, etc.
Em um núcleo de thread única, cada núcleo pode ser referido como uma thread de hardware.
Quando um núcleo é de múltiplas threads ou hyper-threaded, então cada thread operando dentro de cada núcleo também pode ser referida como uma thread de hardware.
Assim, qualquer uma thread de execução sendo executada no sistema de computador 100 pode ser referida como uma thread de hardware.
Por exemplo, na Figura 1, se cada núcleo é de thread única, então há quatro threads de hardware presentes no sistema (quatro núcleos). Por outro lado, se cada núcleo é de múltiplas threads e tem a capacidade de manter os estados de duas threads simultaneamente, então há oito threads de hardware | presentes no sistema (quatro núcleos com duas threads por núcleo).
à : 4/15 A CPU 102 também pode incluir um ou mais caches, tais como o cache 112. Em muitas modalidades que não são mostradas, são implementados caches adicionais além do cache 112 de modo que existam múltiplos níveis de cache entre as unidades de execução em cada núcleo e memória.
Em diferentes modalidades o cache 112 pode ser repartido de diferentes maneiras.
Adicionalmente, o cache 112 pode ter um dos muitos tamanhos diferentes em diferentes modalidades.
Por exemplo, o cache 112 pode ser um cache de 8 megabytes (MB), um cache de 16 MB, etc. : 10 Adicionalmente, em diferentes modalidades o cache pode ser um cache de mapeamento direto, um cache totalmente associativo, um cache associativo por conjunto de múltiplos percursos ou um cache | com outro tipo de mapeamento.
Em muitas modalidades, o cache 112 pode incluir uma grande porção compartilhada entre todos os núcleos ou pode ser dividida em várias fatias separadamente funcionais (por exemplo, uma fatia para cada núcleo). O cache 112 pode também incluir uma parte compartilhada entre todos os núcleos | e várias outras porções que são fatias funcionais separadas por | núcleo.
Í Em muitas modalidades, a CPU 102 inclui um controlador de memória do sistema 114 integrado para prover uma interface para se comunicar com à memória de sistema 116. Em outras modalidades que não são mostradas, o controlador de memória 114 pode estar localizado em um outro lugar discreto no sistema de computador 100. A memória de sistema 116 pode compreender memória de acesso aleatório dinâmico (DRAM), tal como um tipo de dupla taxa de transferência (DDR) DRAM, memória não volátil, tal como memória flash, memória de mudança de fase (PCM), ou outro tipo de tecnologia de memória.
A memória de sistema 116 pode ser uma memória de uso geral para armazenar dados e instruções para ser operada pela CPU 102. Adicionalmente, pode haver outros dispositivos potenciais no sistema de computador 100 que tenham a capacidade de ler e gravar nas memórias do sistema, tal como um dispositivo de 1/0 (entrada/saída) capaz de acesso direto à memória (DMA). | ê ' 5/15 O link (i. e. barramento, interconexão, etc.) que acopla a CPU 102 à memória de sistema 116 pode incluir um ou mais fios óticos, metálicos ou outros (isto é, linhas) que são capazes de transportar informações de dados, endereço, controle e relógio.
O complexo de 1/0 118 (por exemplo, um hub controlador de 1/0) inclui uma interface de 1/0 120 que habilita a comunicação entre a CPU 102 e dispositivos de 1/0 externos. O complexo pode incluir um ou mais adaptadores de I/O, tais como os adaptadores de 1/0 122 e 124. Os adaptadores de 1/0 traduzem um protocolo de comunicação de host utilizado dentro da CPU 102 para um protocolo compatível com um determinado dispositivo de 1/0, tal como o dispositivo de 1/0 126. Alguns dos protocolos que um determinado — adaptador de 1/0 pode traduzir incluem uma | interconexão de componente periférico (PCI), barramento serial universal (USB), IDE, SCSI e “Firewire” 1394, entre outros. Adicionalmente, pode haver um ou mais adaptadores de 1/0 com protocolo sem fio. Exemplos de protocolos sem fio são Bluetooth, protocolos sem fio baseados no padrão IEEE 802.11, e os protocolos de celulares, entre outros.
Em muitas modalidades, um BIOS 128 (basic input/output system - sistema básico de entrada/saída) está integrado no complexo de 1/0 118 ou acoplado ao complexo de 1/0
118. O BIOS é um firmware armazenado no sistema do computador que contém instruções para inicializar componentes essenciais de sistema do computador durante o processo de inicialização.
Embora não mostrado para fins de clareza, a CPU pode ter interfaces adicionais, tais como interfaces de 1/0 de alta velocidade para lidar com gráficos e tráfego de rede. Em muitas modalidades, essas interfaces de 1/0 de alta velocidade podem incluir uma ou mais interfaces PCI-Express.
Em muitas modalidades, o sistema de computador 100 inclui lógica de hardware e software capaz de prover um ambiente virtualizado com um ou mais sistemas operacionais (OSs) convidados em execução em ambientes de máquina virtual (VM). Um monitor de máquina virtual (VMM) ou hipervisor pode ser implementado na lógica dentro do sistema para isolar o ambiente operacional de cada VM, de modo que cada VM e o OS e os
: 6/15 aplicativos executados dentro dela, desconhece e é isolada de outras VMs presentes no sistema. Por exemplo, em algumas modalidades, o VMM 134, presente no armazenamento da memória 116 pode gerenciar os recursos para as VM 136 e VM 140, como também os OS 138 e OS 142 sendo executados em cada VM, respectivamente.
Além disso, A CPU 102 pode incluir lógica de regulagem de tensão 144 que regula a energia (VCC) fornecida para a CPU 102.
Para criar um ambiente virtualizado contínuo, é geralmente utilizada 1/0 virtualizada. A lógica de virtualização de 1/0 130 provê a capacidade de virtualizar e isolar dispositivos de 1/0 no subsistema de 1/0, tal como o dispositivo de 1/0 126. Em algumas modalidades, a lógica de virtualização de 1/0 130 inclui arquitetura Intelo VT-d. Em outras modalidades, é utilizado um outro tipo de tecnologia de 1/0O mapeada na memória, como uma instalação IOMMU classe x86 ou não x86.
Transferências de dispositivo (DMAs) e interrupções que são iniciadas por um dispositivo de 1/0 são os processos essenciais que requerem isolamento de dispositivo para uma dada VM. Em muitas modalidades, a lógica de virtualização de 1/0 130 pode habilitar o software de sistema a criar múltiplos domínios de proteção de DMA. Um domínio de proteção é um ambiente isolado ao qual é atribuído um subconjunto de memória do sistema. | Dependendo do modelo de uso do software, um domínio de proteção de DMA pode representar a memória alocada a uma VM, ou memória DMA alocada por um driver de OS convidado em execução em uma VM ou como parte do próprio VMM/hipervisor. A lógica de virtualização de 1/0 130 pode habilitar o software de sistema a atribuir um ou mais dispositivos de 1I/O para um domínio de proteção. O isolamento de DMA é alcançado restringindo o acesso à memória física de um domínio de proteção a partir de dispositivos de 1/0 não atribuídos a ele.
Para gerenciar a interrupção, a lógica de virtualização de 1/0 130 pode modificar o formato de mensagem de interrupção para ser uma solicitação de gravação em DMA que inclui um “identificador de mensagem” e não os atributos reais da interrupção. A solicitação de gravação, como qualquer solicitação
É ' 7/15 DMA, pode especificar a ID do solicitante da função do dispositivo de 1/0 gerando a interrupção. Então, quando a solicitação de interrupção é recebida pela lógica de virtualização de 1/0 130, a interrupção é remapeada através de uma estrutura de tabela de interrupções. Cada entrada na tabela de remapeamento-interrupção corresponde a um identificador de mensagem de interrupção exclusivo a partir de um dispositivo, incluindo quaisquer atributos necessários de interrupção (por exemplo, CPU de destino, vetor, etc.).
Na modalidade mostrada na Figura 1, a lógica de virtualização de 1/0 130 recebe solicitações a partir de um ou mais dispositivos de I/O através da interface de 1/0 120. A lógica de virtualização de 1/0 130 gerencia essas solicitações, como descrito acima, antes de permitir que passem através do controlador de memória 114.
Em muitas modalidades, tal como a modalidade mostrada na Figura 1, a lógica de remapeamento de thread (TRL) 132 está presente dentro da lógica de virtualização de 1/0 130. Em outras modalidades, a TRL 130 está presente em outro lugar no sistema de computador 100, tal como em outro local dentro da CPU 102 ou possivelmente mesmo totalmente externo à CPU 102, o que é 1 mostrado na Figura 2.
A Figura 2 ilustra outra modalidade de um sistema de computador capaz de envio de interrupção com energia otimizada.
Na modalidade mostrada na Figura 2, a CPU 102 é semelhante à CPU da Figura 1, exceto que o complexo de 1/0 200 é diferente no fato de que situa-se externamente à CPU 102. O complexo de 1/0 200 inclui a lógica de virtualização de 1/0 202 e a TRL 204, que desempenham as mesmas funções como descritas na Figura 1, somente que a partir de uma locação externa à CPU 102. Os adaptadores de 1/O 206 e 208 também desempenham as mesmas funções, ou seja, prover uma interface comunicativa para um ou mais dispositivos de 1/0, tal como o dispositivo de 1/0 126. Em muitas modalidades, o complexo de 1/0 200 é um hub controlador de 1/0 discreto localizado em uma placa-mãe do sistema e acoplado à CPU 102 através de uma série de linhas/fios de cobre, óticos, ou de outros tipos físicos.
zt : 8/15 Retornando à Figura 1, a TRL 132 desempenha várias funções. Em primeiro lugar, a lógica na TRL 132 rastreia o atual estado de energia de cada thread de hardware. Muitos sistemas de computador implementam um esquema de gerenciamento de energia ACPI (Advanced Configuration and Power Interface - interface avançada de configuração e energia). A ACPI permite uma forma de gerenciamento de energia padrão da indústria e é potencialmente implementada em software, no BIOS e no hardware. Em qualquer momento determinado, uma thread de hardware está em um dos muitos estados de energia ou está em transição entre dois estados de energia. O número de estados de energia em que uma | thread de hardware é capaz de entrar é específico da | implementação. Por exemplo, alguns dos estados em que uma thread de hardware pode estar são CO (plena operação), Cl (parar), C2 (parar-relógio), C3 (sono) e estados de sono mais profundo, tais como C4 e C6. Outros estados de energia otimizada podem utilizar as instruções de thread MONITOR e MWAIT. Cada estado de energia em que uma thread de hardware é capaz de entrar tem diferente quantidade ou falta de funcionalidade. Geralmente, quanto mais extensa a economia de energia, mais longa é a transição para uma thread de hardware sair do estado.
A limitação ou bloqueio total de interrupções enviadas a partir de um dispositivo de 1/0 para uma thread de hardware que está tentando entrar ou permanecer em um estado de economia de energia, geralmente economizará energia do sistema. O problema é que um dispositivo necessita que suas interrupções sejam atendidas. Portanto, o redirecionamento das interrupções que chegan de um dispositivo de 1/0 para threads de hardware alternativas que não estejam em estados de economia de energia pode ajudar a manter a economia de energia do sistema ao permitir que a thread originalmente destinada permaneça em um estado de baixo consumo de energia.
A TRL 132 tem acesso a uma lista, tabela ou outro tipo de estrutura de dados que armazena informações sobre threads de hardware que são compatíveis com o atendimento de cada tipo de interrupção. Em outras palavras, para um dado tipo de interrupção, haverá um conjunto de threads de hardware capazes de atender a
| $% . “ | : 9/15 | .
NE | interrupção em questão. Por exemplo, se uma certa interrupção (por | exemplo, interrupção do tipo “A”) pode ser atendida pelas threads | de hardware 1 e 2, a tabela de tipo de interrupção sob essa interrupção específica teria as threads de hardware 1 e 2 | 5 presentes. Portanto, se um dispositivo de 1/0, tal como o dispositivo de 1/0 126, envia uma interrupção “A” para a thread de harâware 1 e a thread de hardware 1 está em um estado de baixa energia, então a TRL 132 pode remapear de modo transparente o destino da interrupção da thread de hardware 1 para a thread de hardware 2. Um OS ou VMM pode ser capaz de configurar o conjunto de threads de hardware capazes de gerenciar um determinado tipo de interrupção. O conjunto de threads de hardware capazes de gerenciar uma determinada interrupção pode ser baseado na afinidade de thread, topologias de compartilhamento de cache, ou outros fatores estáticos ou dinâmicos.
A Figura 3 ilustra uma estrutura de dados que armazena uma matriz de informações de equivalência de thread de hardware/tipo de interrupção, bem como uma estrutura de dados que armazena o estado de energia atual de cada thread de hardware.
Como discutido acima, a tabela de matriz de equivalência de thread de hardware/ de tipo interrupção armazena informações sobre o conjunto de threads que são capazes de | gerenciar um determinado tipo de interrupção. Na modalidade mostrada na Figura 3, há quatro núcleos (Núcleos 0-3) para oS quais a lógica de remapeamento de thread 300 tem acesso às informações. A tabela de matriz de thread de hardware/tipo de interrupção 302 inclui uma lista de threads de hardware que são compatíveis com o gerenciamento de um determinado tipo de interrupção. Por exemplo, a interrupção do tipo A pode ser gerenciada por todas as threads de hardware presentes, enquanto a interrupção do tipo B pode ser gerenciada somente pelas threads de hardware 0 e 2.
A tabela 304 de estado atual de energia da thread de hardware inclui o atual estado de energia de cada thread de hardware. Para fins ilustrativos, a tabela está mostrando somente se cada thread está desperta ou dormente, embora, na prática, pode 1 haver muitos estados que podem ser listados. Por exemplo, uma |
E o çv 10/15 z thread pode estar em qualquer estado C de energia (por exemplo, Cl, C2, C6, etc.). Quando uma interrupção proveniente do dispositivo de 1/0 306 alcança a TRL 300, a TRL pode consultar primeiro a tabela 304 do estado atual de energia da thread de hardware para verificar se a thread de hardware de destino está desperta ou dormente. Se a thread de hardware está desperta, então a TRL 300 pode logo enviar a interrupção para a thread de hardware originalmente destinada. Por outro lado, se a thread de hardware originalmente destinada não está desperta, a TRL 300 pode então consultar a tabela 302 da matriz thread de hardware/tipo de interrupção à procura de equivalência da thread de gerenciamento para encontrar outra thread de hardware capaz de gerenciar a interrupção entrante e se outra thread de hardware capaz estiver disponível, então a TRL 300 pode remapear a interrupção para a thread capaz e disponível (isto é, não dormente). | Em muitas modalidades, uma TRL está presente | dentro de cada CPU presente no sistema, de modo que um sistema de computador de múltiplos soquetes, têm múltiplas TRLS.
A Figura 4 ilustra uma modalidade de um sistema de computador de dois soquetes capaz de enviar interrupções com energia otimizada.
Na modalidade mostrada na Figura 4 há duas CPUs presentes (CPU A 400 e CPU B 402). Adicionalmente, cada CPU inclui dois núcleos (núcleos AO e Al dentro da CPU A 400 e núcleos BO e B] dentro da CPU B 402). Adicionalmente, a CPU A 400 inclui a TRL A 404 e a CPU B 402 inclui a TRL B 406. Em muitas modalidades, cada TRL inclui sua própria cópia local da tabela da matriz thread de hardware/tipo de interrupção (302 na Figura 3) e da tabela de estado atual de energia da thread de hardware (304 na Figura 3). Embora haja múltiplas cópias dessas tabelas, as informações dentro dessas tabelas devem ser uniformes em todas as cópias, de modo que cada TRL tenha as mesmas informações. Essas cópias espelhadas das informações dentro dessas duas tabelas podem ser mantidas por mensagens de difusão 408 entre as CPUs que são transmitidas através de um link 410 entre as CPUs acoplado a uma interface de |
. Í 11/15 | = link entre as CPUs em cada CPU (interface 412 na CPU A 400 e interface 414 na CPU B 402).
Por exemplo, quando uma thread de hardware faz a transição entre dois estados de energia, uma mensagem de transição de estado de energia pode ser transmitida através da interconexão entre as CPUs para todas as TRLS presentes no sistema de computador. Cada TRL pode captar esta mensagem e atualizar a sua tabela de estado atual de energia das threads de hardware armazenadas localmente (item 304 na Figura 3) para mostrar O novo estado de energia, para o qual a thread de hardware em questão fez a transição.
Em algumas modalidades, a thread de hardware que está em transição entre estados de energia transmite sua própria mensagem para todas as TRLS. Em outras modalidades, a thread de hardware que está em transição entre estados de energia envia a informação de transição para a TRL local, que por sua vez, transmite a transição de estados para todas as outras TRLS.
A Figura 5 ilustra uma modalidade de um sistema de computador de dois nós capaz de envio de interrupção com energia otimizada.
Na modalidade mostrada na Figura 4, há dois nós presentes (Nó A e Nó B). O nó A inclui duas CPUs (CPU AO e CPU Al). Cada CPU inclui dois núcleos: núcleos A0a e AO0b na CPU AO, núcleos Ala e Alb na CPU Al, núcleos B0Oa e BOb na CPU BO e núcleos Bla e BlbnaCcCPUBl.OnóAeonóB são acoplados através do link entre nós 500. Um controlador de nó está presente em cada nó. O controlador de nó A 502 ajuda a gerenciar o nó A e o controlador de nó B ajuda a gerenciar o nó B. O tráfego de comunicação entre os nós precisa ser roteado por meio de cada controlador de nó respectivo. Assim, uma mensagem enviada por uma thread de hardware quando ela faz a transição para um estado de energia é capaz de ser roteada entre os nós através dos controladores de nós (representados por linhas tracejadas roteadas entre os dois nós).
A Figura 6 é um fluxograma de uma modalidade de um processo para otimizar a energia do envio da interrupção.
o processo é realizado pela lógica de processamento, que pode ser executada por hardware, software,
| | + ] 12/15 3 firmware ou qualquer combinação dos tipos listados de lógica de processamento. O processo começa com a lógica de processamento recebendo uma interrupção do dispositivo de 1/0 (bloco de processamento 600).
A lógica de processamento determina então se a thread de hardware que é o destino da interrupção (isto é, a interrupção tem afinidade com à thread) está em um estado de economia de energia (bloco de processamento 602). Se a thread de hardware de destino não estiver em um estado de economia de energia, então a lógica de processamento pode simplesmente enviar a interrupção do dispositivo de 1/0 para a thread de hardware originalmente destinada (bloco de processamento 604).
Por outro lado, se a thread de hardware de destino estiver em um estado de economia de energia, então a lógica de processamento determina se outra thread de hardware é compatível (isto é, obtido a partir de informações de equivalência da thread de hardware acessíveis à lógica de processamento, tais como dentro de uma matriz de equivalência thread de hardware/tipo de interrupção 302 na Figura 3) (bloco de processamento 606).
Na modalidade mostrada no fluxo de processo da Figura 6, se não houver uma thread de hardware compatível, então a lógica de processamento desperta a thread de hardware de destino (bloco de processamento 608) e envia a interrupção para a thread de hardware de destino 604. Em outras modalidades não mostradas, a lógica de processamento pode segurar a interrupção até que uma thread de hardware de CPU equivalente se torne disponível (sujeita a requisitos de solicitação).
Se existir uma thread de hardware compatível, então a lógica de processamento determina se a thread de hardware compatível está disponível (bloco de processamento 610). Por exemplo, pode haver uma thread de hardware compatível, mas essa thread também está em um estado de economia de energia de sono profundo e, portanto, não está prontamente disponível. Em muitas | modalidades, há ordens de classificação de estados de economia de energia de modo que se duas threads compatíveis separadas estão, | ambas, em estados de economia de energia, a lógica de processamento pode despertar a thread que estiver no estado menos
E 5A=)>2 222" a &imis2º%“%)bm == º“º““) ir A“ )óriº ,s lÉSA11)1)M:!aaA 2] S*- oo " PP o = > —oH2/ a f o 13/15 | * “profundo” e assim a thread de sono mais profundo tem permissão de manter seu estado de sono.
Isso iria realizar duas coisas simultaneamente.
Em primeiro lugar, a thread de sono mais profundo, que está economizando energia adicional do sistema tem permissão de permanecer no modo de maior economia de energia.
Em segundo lugar, a thread em estado de sono menos profundo pode ser capaz de fazer a transição para o estado desperto com uma latência menor, pois quanto mais profundo o estado de sono geralmente maior é a latência no despertar.
Retornando ao processo ilustrado na Figura 6, se | a thread de hardware compatível não estiver disponível, então a lógica de processamento retorna ao bloco 606 para determinar se há ainda um outra thread de hardware compatível.
De outra forma, se a thread compatível estiver disponível, então a lógica de | processamento remapeia a interrupção do dispositivo de I/O para a i thread de hardware alternativa equivalente que foi encontrada (bloco de processamento 612) e envia a interrupção remapeada para aquela thread de hardware alternativa (bloco de processamento 614). Essencialmente, a lógica de processamento é capaz de fazer a transição de uma interrupção de uma thread de hardware para outra thread de hardware de maneira transparente (isto é, em que o dispositivo de 1/0 essencialmente desconhece a transição entre threads para gerenciar a interrupção). Elementos de modalidades da presente invenção também podem ser providos como um meio legível por máquina para armazenar as instruções executáveis por máquina.
O meio legível por máquina pode incluir, mas não está limitado a, memória flash, discos óticos, memória somente de leitura em discos compactos (CD- ROM), discos de vídeo versáteis digitais (DVD) ROM, memória de acesso aleatório (RAM), memória somente de leitura programável apagável (EPROM), memória somente de leitura programável apagável eletricamente (EEPROM), cartões magnéticos ou óticos, mídia de propagação ou outro tipo de meio legível por máquina apropriada para armazenar instruções eletrônicas. 1 Na descrição acima e nas reivindicações, os termos “incluem” e “compreendem”, juntamente com seus derivados,
o f : 14/15 e podem ser usados e pretende-se que sejam tratados como sinônimos.
Adicionalmente, na seguinte descrição e reivindicações, os termos “acoplado” e “conectado”, juntamente com seus derivados podem ser | usados.
Deve ser entendido que estes termos não pretendem ser sinônimos.
Antes, em modalidades particulares, “conectado” pode ser usado para indicar que dois ou mais elementos estão em contato físico ou elétrico direto uns com os outros. “Acoplado” pode significar que dois ou mais elementos estão em contato físico ou elétrico direto.
Porém, “acoplado” também pode significar que dois ou mais elementos não estão em contato direto uns com os outros, mas ainda assim cooperam, interagem ou se comunicar uns com os outros. | Na descrição acima, determinada terminologia é | usada para descrever modalidades da invenção.
Por exemplo, o termo “lógica” é representativo de hardware, firmware, software (ou qualquer combinação destes) para desempenhar uma ou mais funções.
Assim, exemplos de “hardware” incluem, mas não estão limitados a, um circuito integrado, uma máquina de estados finitos ou mesmo lógica combinatorial.
O circuito integrado pode assumir a forma de um processador, tal como um microprocessador, um circuito integrado de aplicação específica, um processador de sinais digitais, um microcontrolador ou similares.
Deve ser apreciado que a referência em toda este relatório para “uma modalidade” significa que uma feição, estrutura ou característica particular descrita em conexão com a modalidade é incluída em pelo menos uma modalidade da presente invenção.
Portanto, é enfatizado e deve ser apreciado que duas ou mais referências a “uma modalidade” ou “modalidade alternativa” em várias partes deste relatório não são necessariamente todas referindo-se à mesma modalidade.
Ademais, as feições, estruturas ou características particulares podem ser combinadas como adequadas em uma ou mais modalidades da invenção.
De modo semelhante, deve ser apreciado que na descrição acima de modalidades da invenção, várias características são por vezes agrupadas em uma única modalidade, figura ou descrição com a finalidade de simplificar a divulgação, auxiliando na compreensão de um ou mais dos vários aspectos inventivos.
Este í 7? t 15/15 Fr método de descrição, entretanto, não deve ser interpretado como refletindo a intenção de que o objeto reivindicado exija mais características do que expressamente citadas em cada | reivindicação.
Em vez disso, como as reivindicações seguintes | 5 refletem, os aspectos inventivos comportam menos do que todas as características de uma única modalidade acima descrita.
Assim, as reivindicações seguintes à descrição detalhada são expressamente incorporadas a esta descrição detalhada. | | | | |

Claims (25)

Y + : X REIVINDICAÇÕES
1. Primeiro processador, caracterizado por compreender uma lógica de remapeamento de thread para: rastrear a informação de equivalência de interrupção de thread de hardware para uma primeira thread de hardware e uma segunda thread de hardware; receber uma interrupção emitida a partir de um dispositivo, em que a interrupção tem uma afinidade ligada à primeira thread de hardware; e redirecionar a interrupção para a segunda thread de hardware, quando a informação de equivalência de interrupção da thread de hardware valida que a segunda thread de hardware é capaz de gerenciar a interrupção.
2. Primeiro — processador, de acordo com a reivindicação 1, caracterizado pelo fato de que a lógica de remapeamento da thread é operável adicionalmente para: rastrear a informação de estado de energia para as primeira e segunda threads de hardware.
3. Primeiro — processador, de acordo com a reivindicação 1, caracterizado pelo fato de que o redirecionamento da interrupção desde a primeira thread de hardware para a segunda thread de hardware ocorre, pelo menos quando a primeira thread de hardware está em um estado de baixa energia e a segunda thread de hardware está em um pleno estado de operação.
4. Primeiro — processador, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira thread de hardware é operável adicionalmente para: enviar uma mensagem de transição de energia, significando uma mudança de um estado de energia dentro do qual a primeira thread de hardware opera, para um segundo processador em resposta às mudanças dos estados de energia da primeira thread de hardware.
5. Primeiro processador, de acordo com a reivindicação 4, caracterizado pelo fato de que a lógica de remapeamento da thread é operável adicionalmente para: permitir de forma transparente que o dispositivo continue a operação normal, sem redirecionamento programado de
| : 3 2/6 t interrupção quando a primeira thread de hardware faz a transição para um estado de baixa energia.
6. Primeiro — processador, de acordo com a reivindicação 5, caracterizado pelo fato de que à segunda thread de hardware atende a interrupção.
7. Primeiro processador, de acordo com a reivindicação 4, caracterizado pelo fato de que a primeira thread de hardware está presente no primeiro processador, e a segunda thread de harâdáware está presente em um segundo processador, a mensagem de transição de energia sendo enviada através de um link de comunicação entre os processadores, acoplado ao primeiro e ao segundo processadores. |
8. Primeiro — processador, de acordo com a | reivindicação 7, caracterizado pelo fato de que a informação de | 15 equivalência de interrupção da thread de hardware e a informação de estado de energia para cada uma das threads de hardware, a primeira e a segunda, são rastreadas simultaneamente em uma segunda lógica de remapeamento de thread presente no segundo processador.
9. Método, caracterizado por compreender: rastrear a informação de equivalência de | interrupção da thread de hardware para uma primeira thread de Í hardware e uma segunda thread de hardware; receber uma interrupção emitida a partir de um dispositivo, em que a interrupção tem uma afinidade ligada à primeira thread de hardware; e redirecionar a interrupção para a segunda thread de hardware, quando a informação de equivalência de interrupção da thread de hardware valida que a segunda thread de hardware é capaz de gerenciar a interrupção.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente: rastrear a informação de estado de energia para as primeira e segunda threads de hardware.
11. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o redirecionamento da interrupção desde a primeira thread de hardware para a segunda thread de
R & , - 7 3/6 í hardware ocorre pelo menos quando a primeira thread de hardware está em um estado de baixa energia e a segunda thread de hardware está em um pleno estado de operação.
12. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que compreende adicionalmente: enviar uma mensagem de transição de energia, significando uma mudança de um estado de energia dentro do qual a primeira thread de hardware opera, para a segunda thread de | hardware em resposta às mudanças dos estados de energia da primeira thread de hardware. |
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que, compreende adicionalmente: permitir de forma transparente que o dispositivo continue a operação normal, sem redirecionamento programado de interrupção quando a primeira thread de hardware faz a transição para um estado de baixa energia.
14. Método de acordo com a reivindicação 13, caracterizado pelo fato de que compreende adicionalmente: manter a interrupção com a segunda thread do processador.
15. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que o envio a mensagem de transição de energia através de um link de comunicação entre os processadores, acoplado ao primeiro processador e a um segundo processador, a primeira thread de hardware está presente no primeiro processador e a segunda thread de hardware está presente no segundo processador.
16. Método, de acordo com a reivindicação 15, | caracterizado pelo fato de que compreende adicionalmente: | rastrear simultaneamente, em uma segunda lógica de remapeamento de thread presente no segundo processador, a informação de equivalência de interrupção da thread de hardware e a informação do estado de energia para cada uma das threads de hardware, a primeira e a segunda.
17. Sistema, caracterizado por compreender:
RO NNE E. : o 4/6 ob um link de comunicação entre as threads de hardware para transferir informações entre uma primeira thread de hardware e uma segunda thread de hardware; um primeiro armazenamento de memória para armazenar informações de equivalência de interrupção de thread de hardware pelo menos para a primeira thread de hardware e a segunda thread de hardware; um segundo armazenamento de memória para armazenar informações de estado de energia pelo menos para a primeira thread de hardware e a segunda thread de hardware; e uma primeira unidade lógica de remapeamento de thread para: rastrear a informação de equivalência de interrupção da thread de hardware para a primeira thread de | 15 hardware e a segunda thread de hardware; | receber uma interrupção emitida a partir de um dispositivo, em que a interrupção tem uma afinidade ligada à primeira thread de hardware; e redirecionar a interrupção para a segunda thread de hardware, quando a informação de equivalência de interrupção da thread de hardware valida que a segunda thread de hardware é capaz de gerenciar a interrupção.
18. Sistema, de acordo com a reivindicação 17, caracterizado pelo fato de que o redirecionamento da interrupção a partir da primeira thread de hardware para a segunda thread de hardware ocorre, pelo menos quando a primeira thread de hardware está em um estado de baixa energia e a segunda thread de hardware está em um pleno estado de operação.
19. Sistema, de acordo com a reivindicação 17, caracterizado pelo fato de que a unidade lógica de remapeamento da primeira thread é operável adicionalmente para: enviar uma mensagem de transição de energia, significando uma mudança de um estado de energia dentro do qual a primeira thread de hardware opera, para a segunda thread de hardware em resposta às mudanças dos estados de energia da primeira thread de hardware.
o í : 5/6 : E
20. Meio legível por computador, contendo instruções armazenadas no mesmo que, as quais quando executadas por um processador fazem com que Oo processador execute um método, caracterizado por compreender: rastrear informação de equivalência de interrupção de thread de hardware para uma primeira thread de hardware e uma segunda thread de hardware; receber uma interrupção emitida a partir de um dispositivo, a interrupção tendo uma afinidade ligada à primeira thread de hardware; e redirecionar a interrupção para a segunda thread de hardware, quando à informação de equivalência de interrupção da thread de hardware valida que a segunda thread de hardware é capaz de gerenciar a interrupção.
21. Meio legível por computador, de acordo com a reivindicação 20, caracterizado pelo fato de que compreende adicionalmente rastrear a informação de estado de energia para a primeira e a segunda threads de hardware.
22. Meio legível por computador, de acordo com à reivindicação 20, caracterizado pelo fato de que o | redirecionamento da interrupção a partir da primeira thread de | hardware para a segunda thread de hardware ocorre pelo menos | quando a primeira thread de hardware está em um estado de baixa | energia e a segunda thread de hardware está em um pleno estado de operação.
23. Meio legível por computador, de acordo com a reivindicação 22, caracterizado pelo fato de que compreende adicionalmente: enviar uma mensagem de transição de energia, significando uma mudança de um estado de energia dentro do qual a primeira thread de hardware opera, para a segunda thread de hardware em resposta às mudanças dos estados de energia da primeira thread de hardware.
24, Meio legível por computador, de acordo com a reivindicação 23, caracterizado por enviar a mensagem de transição | de energia através de um link de comunicação entre os processadores, acoplado ao primeiro processador e a um segundo
' ? 6/6 3 : 1 processador, a primeira thread de hardware estando presente no 1 primeiro processador e a segunda thread de hardware estando presente no segundo processador.
25. Meio legível por computador, de acordo com a reivindicação 24, caracterizado pelo fato de que compreende adicionalmente: 1 rastrear simultaneamente, em uma segunda lógica | de remapeamento de thread presente no segundo processador, a | informação de equivalência de interrupção da thread de hardware e a informação do estado de energia para cada uma das primeira e segunda threads de hardware.
Í
: |; 1/5 t 190 e e&e&w rogoadeReg| . - | daTensão Núcleo| |Núcleo 1 : 144 | | - no — — Complexo de O Núcleo| | Núcleo 18 | 108 110 ee | Lógica de Virtuali) — Adaptador | zaçãodelO de O Í 1 Cache | o 12 | 112 | | Lógica de Re- | Fm | | mapeamento Adaptador i ) | | daThread de l/O | j e il 188 124 Controlador XL | de Memória Interface de 1/O Í 114 120 Í Fa > rm r—
A | Armazenamento í - - L | deMemória ispositivo | 116 | SS de O | VMM i e = | VM 136 | i os | | i 138 ! | dE pa Is É | VM 140 | | os |) [EA FIG. 1 | r Ns 2/5 t 100 [ vce i Lógica de Reg.
CPU Í - : daTensão Núcleo —Núcleo 192 i 144 Núcleo | | Núcleo 198 | 119 — Iommi Cache 12 [| controlador | ss de Memória Interface de VO 114 118 — od | | Armazenamento | | Lógica de | Lógica de Re- | deMemória | | Virtualização — mapeamento Í 1168 ||) delO | da Thread | Í VMM | Í 202 Í 204 A | Lo =| | VM 136 | (adaptador Adaptador Compiexo | os | | devo || devo e Í 138 1) 2068 | 208 20 Í | E
À À | ã VM 140 Í FA a Í os Í À io) Í Dispositivo NEC | deto | se | 126 Le] FIG. 2
' A 3/5 Matriz Thread de HardwareíTipo de Interrupção 302 O Tuwro uwr | uwro | pwra | a! A Ino) INSÁIRA o ANTO | WTI HWI2 | ANWVTS Núeleo| Núcleo Núcleo Núcleo Tipo A 11 A 1 1 HWTO || HWT1 mea HWwT3 Tmo8 | to e TipoC | 9 À — o si 1 " Db .. N À / | TipoD | 1 1 o Mo ORA A cm mm SS Lógica de Remapeamento Estado Atual de Energia da Thread de Hardware 304 — deThread es ea es ] ur 320 HWTO | — Dormente = | ur | HWT1 Desperto [o HWT2 Desperto | Interrupções de entrada Trem ==] do disposítivo de V/O HWT3 Dormente | 306 FIG. 3 pa o
CPU A H CPUB | 400 | 402 | e [ Interface | interface || [5 | Núcleo Núcleo | de Link | Link de Link Núcleo Núcleo i Entre | 410 Entre Í CPUs | CPUs | Lógicade | e 2 one tonemerêarensr eo DE [ Lógica de | | — Remapeamento, B 408 + Remapeamento Í | deThreadA | Í | de Thgsd 8 Í 44 | 46 FIG. 4
Í
É . E 4/5 + | —Memóriade | Memória de Í Sistema | Sistema | Ao A = L " TE. oe | Controlador =) Controlador . — deMemória CPU AO CPU A1 de Memória L Ao o Nó A AM | | Núcleo Núcleo | Interface Núcleo | | Núcleo | 1 Aa Aos | de Link Interface| | Ala Alb 1 Entre de Link |O sea eo Lógica de Re- | CPUs À Ee Lógica de Re- | mapeamento Controlador Í mapeamento da Thread | À de N6A o da Thread | — AO Lo SS so O Al j do Link Entre Nós | | A sm — 1 controlador “|, E | Lógica de Re- | | de Nó B [a Lógica de Re- | mapeamento i 504 | mapeamento daThread interface | | interface da Thread Bo | |deLink P. delink| Lo.Bl | Entre Entre Fa Da CPU: | | Núcleo | [Núcleo : CPUs [nasteo Núcleo | Boa | Bob | | Bia B1b — Controlador =— | Nó B Controlador =— | deMemória | CPUBO CPU BI de Memória BO Í B1 nt A Memória de Memória de Í Sistema Sistema Bo | B1 FIG.5 |
Nm e ” gr 5/5 a t i Receber Interrupção do Dispositivo de /O 600
TA tre d de Enviar a Interrupção do read de Não “S FW de destino em estado. | Dispositivo de 1O à Thread "de economia de energia? de HW de destino. Ts 802 804
E A sm | o D To dd —— Qutra Threadde Não espertar a Thread de — HM compativel? A HW de Destino TU 806 | 608 o Lo LE | sim L. > DP Ea I Não TR Threadde HM Eee ompativel Disponível => Ds Pp 810 p DA Das Sim | Remapear a interrupção do [Fo Enviarainterrupção — dispositivo de O para a —.. | Femapeadaàthreadde HW Thread de HW Alternativa | alternativa. Encontrada 612 814 "É
BR112013004408-0A 2010-08-26 2011-08-02 envio de interrupção con energia otimizada BR112013004408A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/869,192 US8762994B2 (en) 2010-08-26 2010-08-26 Power-optimized interrupt delivery
US12/869,192 2010-08-26
PCT/US2011/046255 WO2012027074A1 (en) 2010-08-26 2011-08-02 Power-optimized interrupt delivery

Publications (1)

Publication Number Publication Date
BR112013004408A2 true BR112013004408A2 (pt) 2020-08-25

Family

ID=45698893

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013004408-0A BR112013004408A2 (pt) 2010-08-26 2011-08-02 envio de interrupção con energia otimizada

Country Status (9)

Country Link
US (2) US8762994B2 (pt)
JP (1) JP5690403B2 (pt)
KR (1) KR101773224B1 (pt)
CN (1) CN103080918B (pt)
BR (1) BR112013004408A2 (pt)
DE (1) DE112011102822T5 (pt)
GB (1) GB2496810B (pt)
TW (1) TWI454902B (pt)
WO (1) WO2012027074A1 (pt)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5169731B2 (ja) * 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
US8762994B2 (en) 2010-08-26 2014-06-24 Intel Corporation Power-optimized interrupt delivery
EP2458501A1 (en) * 2010-11-30 2012-05-30 France Telecom Method of operating a communication device and related communication device
US8990602B2 (en) * 2010-12-21 2015-03-24 Intel Corporation Apparatus, method, and system for early deep sleep state exit of a processing element
US8656079B2 (en) * 2011-12-19 2014-02-18 Advanced Micro Devices, Inc. Method and apparatus for remapping interrupt types
JP5981020B2 (ja) * 2012-04-24 2016-08-31 インテル コーポレイション 効率的な消費電力管理のための動的インタラプト再コンフィグレーション
US9116750B2 (en) * 2012-08-08 2015-08-25 International Business Machines Corporation Optimizing collective communications within a parallel computer
US9026705B2 (en) * 2012-08-09 2015-05-05 Oracle International Corporation Interrupt processing unit for preventing interrupt loss
US9009508B2 (en) 2012-08-28 2015-04-14 Advanced Micro Devices, Inc. Mechanism for reducing interrupt latency and power consumption using heterogeneous cores
US9027029B2 (en) * 2013-03-28 2015-05-05 International Business Machines Corporation Method for activating processor cores within a computer system
KR101638088B1 (ko) 2015-11-04 2016-07-08 주식회사 영화키스톤건축사사무소 미장공사용 개량형 피니셔
US20170300101A1 (en) * 2016-04-14 2017-10-19 Advanced Micro Devices, Inc. Redirecting messages from idle compute units of a processor
US10318428B2 (en) 2016-09-12 2019-06-11 Microsoft Technology Licensing, Llc Power aware hash function for cache memory mapping
US10235202B2 (en) 2016-11-08 2019-03-19 International Business Machines Corporation Thread interrupt offload re-prioritization
US10620983B2 (en) 2016-11-08 2020-04-14 International Business Machines Corporation Memory stripe with selectable size
WO2018176360A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Scalable interrupt virtualization for input/output devices
US10241561B2 (en) 2017-06-13 2019-03-26 Microsoft Technology Licensing, Llc Adaptive power down of intra-chip interconnect
US10599596B2 (en) * 2018-01-08 2020-03-24 Intel Corporation Management of processor performance based on user interrupts
CN112470125B (zh) * 2018-07-24 2024-02-20 三菱电机株式会社 中断处理方法、计算机系统以及存储介质
CN111459626B (zh) * 2020-03-11 2021-06-01 完美世界(北京)软件科技发展有限公司 一种用于实现不分线无缝游戏世界的方法和装置
DE102021111180A1 (de) * 2021-04-30 2022-11-03 Intel Corporation Verarbeitungsvorrichtung, Steuereinheit, elektronische Vorrichtung, Verfahren für die elektronische Vorrichtung und Computerprogramm für die elektronische Vorrichtung
CN114003363B (zh) * 2021-11-01 2022-07-22 支付宝(杭州)信息技术有限公司 线程间中断信号发送方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772241B1 (en) 2000-09-29 2004-08-03 Intel Corporation Selective interrupt delivery to multiple processors having independent operating systems
US6880030B2 (en) * 2000-12-13 2005-04-12 Wind River Systems, Inc. Unified exception handling for hierarchical multi-interrupt architectures
US7454012B2 (en) 2002-04-29 2008-11-18 Adc Dsl Systems, Inc. Managing power in a line powered network element
US7117285B2 (en) * 2003-08-29 2006-10-03 Sun Microsystems, Inc. Method and system for efficiently directing interrupts
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
JP2004094966A (ja) * 2003-10-17 2004-03-25 Mitsubishi Electric Corp 計算機および計算機システム
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
US20060095624A1 (en) 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
US20060112208A1 (en) 2004-11-22 2006-05-25 International Business Machines Corporation Interrupt thresholding for SMT and multi processor systems
TWI309765B (en) 2006-03-17 2009-05-11 Asustek Comp Inc Method and apparatus for controlling power supply in a computer system
US20090164820A1 (en) 2007-12-24 2009-06-25 Hewlett-Packard Development Company, L.P. Methods and apparatus for managing power on a computer in the event of a power interruption
JP5173714B2 (ja) * 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ及びその割り込み処理方法
JP5169731B2 (ja) * 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
JP5352848B2 (ja) 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
US8566492B2 (en) * 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US8762994B2 (en) 2010-08-26 2014-06-24 Intel Corporation Power-optimized interrupt delivery

Also Published As

Publication number Publication date
GB201303290D0 (en) 2013-04-10
CN103080918B (zh) 2016-08-03
GB2496810A (en) 2013-05-22
DE112011102822T5 (de) 2013-06-06
GB2496810B (en) 2019-05-29
TWI454902B (zh) 2014-10-01
KR20130032402A (ko) 2013-04-01
KR101773224B1 (ko) 2017-08-31
JP5690403B2 (ja) 2015-03-25
TW201229742A (en) 2012-07-16
JP2013545150A (ja) 2013-12-19
US9141573B2 (en) 2015-09-22
CN103080918A (zh) 2013-05-01
US20140250250A1 (en) 2014-09-04
US20120054750A1 (en) 2012-03-01
WO2012027074A1 (en) 2012-03-01
US8762994B2 (en) 2014-06-24

Similar Documents

Publication Publication Date Title
BR112013004408A2 (pt) envio de interrupção con energia otimizada
US10133677B2 (en) Opportunistic migration of memory pages in a unified virtual memory system
US8843733B2 (en) Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
US8595723B2 (en) Method and apparatus for configuring a hypervisor during a downtime state
US9690353B2 (en) System and method for initiating a reduced power mode for one or more functional blocks of a processor based on various types of mode request
US9424201B2 (en) Migrating pages of different sizes between heterogeneous processors
US20080005516A1 (en) Memory power management through high-speed intra-memory data transfer and dynamic memory address remapping
US10216413B2 (en) Migration of peer-mapped memory pages
US20200348973A1 (en) Performance monitoring and resource management
JP2015135696A (ja) ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
US10296356B2 (en) Implementation of reset functions in an SoC virtualized device
US20210200667A1 (en) Memory thin provisioning using memory pools
US9836378B2 (en) Methods for managing performance states in an information handling system
JP2011258193A (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
JP2017033375A (ja) 並列計算システム、マイグレーション方法、及びマイグレーションプログラム
CN115087961A (zh) 用于相干及非相干存储器请求的仲裁方案
US20230409478A1 (en) Method and apparatus to reduce latency of a memory-side cache
US12001329B2 (en) System and method for storage class memory tiering
US20220214965A1 (en) System and method for storage class memory tiering
US20240028209A1 (en) Distributed region tracking for tiered memory systems

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 9A ANUIDADE.

B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements
B350 Update of information on the portal [chapter 15.35 patent gazette]