BRPI0610159A2 - método para entregar interrupções para acionadores em modo usuário - Google Patents

método para entregar interrupções para acionadores em modo usuário Download PDF

Info

Publication number
BRPI0610159A2
BRPI0610159A2 BRPI0610159-3A BRPI0610159A BRPI0610159A2 BR PI0610159 A2 BRPI0610159 A2 BR PI0610159A2 BR PI0610159 A BRPI0610159 A BR PI0610159A BR PI0610159 A2 BRPI0610159 A2 BR PI0610159A2
Authority
BR
Brazil
Prior art keywords
interrupt
mode
user
interruption
service
Prior art date
Application number
BRPI0610159-3A
Other languages
English (en)
Inventor
Madhusudhan Talluri
J Smith Frederik Iv
Jeff L Havens
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0610159A2 publication Critical patent/BRPI0610159A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Stored Programmes (AREA)

Abstract

Sistemas e métodos para fornecer uma estrutura dentro da qual acionadores de dispositivo podem executar um nível em modo usuário. Um recurso genérico de plataforma (por exemplo, APIC) ou barramento barramento (barramento PCI) é usado para levar a CPU para fora do modo de interrupção sem ter que esperar por um acionador em nível usuário para liberar a interrupção de dispositivo. Isto permite gravar o acionador de dispositivo completo em espaço de usuário. O acionador de dispositivo ainda recebe notificações em interrupções, mas não em prioridade de interrupção. O mesmo esquema pode ser estendido para interrupções compartilhadas, onde múltiplos dispositivos compartilham uma única linha de interrupção.

Description

"MÉTODO - PARA ENTREGAR INTERRUPÇÕES PARAACIONADORES EM MODO USUÁRIO"
CAMPO DA INVENÇÃO
Esta invenção diz respeito de uma maneira geral aocampo de acionadores de dispositivo de hardware de computa-dor. Mais particularmente, esta invenção diz respeito a umsistema e método para fornecer e manusear interrupções emmodo usuário em vez em modo núcleo.
ANTECEDENTES DA INVENÇÃO
Acionadores no sistema operacional MICROSOFT WIN-DOWS e em outro sistema operacional podem executar tanto emmodo usuário quanto em modo núcleo. Acionadores em modo usu-ário executam no modo de processador não privilegiado em queoutro código de aplicação, incluindo código de subsistemaprotegido, executa. Acionadores em modo usuário não podemobter acesso aos dados de sistema exceto pela chamada de umAPI que, por sua vez, chama serviços de sistema. Acionadoresem modo núcleo funcionam como parte do executivo do sistemaoperacional, o componente de sistema operacional subjacenteque suporta um ou mais subsistemas protegidos.
Acionadores em modo usuário e em modo núcleo têmdiferentes estruturas, diferentes pontos de entrada e dife-rentes interfaces de sistema. Se um dispositivo exige um a-cionador em modo usuário ou em modo núcleo depende do tipode dispositivo e do suporte já fornecido para ele no sistemaoperacional. A maioria dos acionadores de dispositivo execu-ta em modo núcleo. Acionadores em modo núcleo podem executarcertas operações protegidas e podem acessar estruturas desistema que acionadores em modo usuário não podem acessar.
Quando um dispositivo de hardware interrompe aCPU, a CPU responde mascarando internamente todas as inter-rupções (no nivel de CPU), e chamando uma exceção de sistemaoperacional manuseando rotina projetada para servir à inter-rupção. Tipicamente esta rotina programará o APIC para mas-carar interrupções na atual interrupção e abaixo do niveldesta, e então recapacitará interrupções no nivel de CPU. Aseguir a rotina de serviço de interrupção (ISR) para o acio-nador servindo ao dispositivo que gerou a interrupção seráchamada. No caso de uma interrupção compartilhada, as ISRsserão chamadas por sua vez até que uma das ISRs indicar termanuseado a interrupção. Neste ponto, a interrupção deve tersido manuseada, ,e a rotina de OS libera interrupções no ni-vel APIC e retorna. Este processo completo executa no con-texto do encadeamento que estava executando quando a inter-rupção ocorreu, e executa em IRQL aumentado. Portanto, o có-digo de ISR executa em um ambiente altamente controlado, queé somente apropriado para código em modo núcleo (isto é, ocódigo executado, e os dados acessados pelo código devem sernão paginados. 0 código não pode bloquear, etc, etc.) . A-cionadores de dispositivo que necessitam manusear interrup-ções convencionalmente executam em modo núcleo em virtude dafalta de suporte para manusear interrupções em modo usuário.
Desta maneira, existe uma necessidade de um mecanismo de sistema operacional para entregar interrupções emmodo usuário de maneira tal que classes adicionais de dispo-sitivos possam usar acionadores em modo usuário. A presenteinvenção fornece uma solução como esta.
SUMÁRIO DA INVENÇÃO
A presente invenção diz respeito a sistemas e mé-todos para permitir acionadores de dispositivo executar emum nivel em modo usuário. Um recurso genérico de plataforma(por exemplo, APIC) ou barramento (barramento PCI) é usadopara mascarar interrupções até que a ISR em modo usuáriopossa ser escalonada para liberar a interrupção de disposi-tivo. Manipuladores de interrupção podem ser assim gravadoscomo código de modo usuário, em um ambiente de modo usuáriopadrão. Isto permite que uma classe de acionadores que ante-riormente teve que ser gravada como acionadores em modo nú-cleo, puramente para a sua necessidade de manusear interrup-ções, seja conduzida para modo usuário. O acionador de dis-positivo ainda recebe notificações em interrupções, mas nãoem prioridade de interrupção. O mesmo esquema pode ser es-tendido para interrupções compartilhadas, onde múltiplosdispositivos compartilham uma única linha de interrupção.
De acordo com um recurso da invenção, um serviçode núcleo é fornecido que age como uma funcionalidade de in-terrupção genérica. Um mecanismo IPC permite que os compo-nentes comuniquem uns com os outros. Um Administrador E/Sexecuta alocação/inicialização/orquestração de recurso doscomponentes. O serviço de interrupção fornece uma interfacede fábrica para o administrador E/S para alocar um objeto deinterrupção a ser passado para acionadores. O serviço de in-terrupção exibe uma segunda interface em que acionadores emmodo usuário podem chamar quando eles estão prontos para re-ceber uma interrupção. 0 retorno desta chamada implica emque uma interrupção de hardware ocorreu e que o acionadordeve comunicar/manejar o dispositivo.
Recursos e vantagens adicionais da invenção estarão aparentes a partir da descrição detalhada a seguir demodalidades ilustrativas que prossegue com referência aosdesenhos anexos.
DESCRIÇÃO RESUMIDA DOS DESENHOS
0 sumário exposto anteriormente, assim como a des-crição detalhada a seguir de modalidades preferidas, é maisbem entendido quando lido em conjunto com os desenhos ane-xos. Com o propósito de ilustrar a invenção, estão mostradasnos desenhos construções exemplares da invenção; entretanto,a invenção não está limitada aos métodos e meios específicosrevelados. Nos desenhos:
A Figura 1 é um diagrama de blocos mostrando umambiente de computação exemplar em que aspectos da invençãopodem ser implementados;
A Figura 2 mostra uma arquitetura tipica dentro deum dispositivo de computação, tal como aquele da figura 1;
A Figura 3 ilustra uma linha de tempo para um mé-todo convencional para manusear interrupções, onde o aciona-dor de dispositivo reside em modo núcleo; e
As Figuras 4-5 ilustram linhas de tempo para manu-sear interrupções de acordo com a presente invenção.
DESCRIÇÃO DETALHADA DE MODALIDADES PREFERIDAS
Ambiente de Computação Exemplar
A Figura 1 ilustra um exemplo de um ambiente desistema de computação adequado 100 no qual a invenção podeser implementada. O ambiente de sistema de computação 100 ésomente um exemplo de um ambiente de computação adequado enão pretende sugerir qualquer limitação quanto ao escopo deuso ou funcionalidade da invenção. Tampouco deve o ambientede computação 100 ser interpretado como tendo qualquer de-pendência ou exigência em relação a qualquer um ou combina-ção de componentes ilustrados no ambiente de operação exem-plar 100.
A invenção é operacional com inúmeros outros ambi-entes ou configurações de sistema de computação de uso geralou uso especial. Exemplos de sistemas de computação, ambien-tes e/ou configurações bem conhecidos que podem ser adequa-dos para uso com a invenção incluem, mas não se limitando aestes, computadores pessoais, computadores servidores, dis-positivos de mão ou portáteis, sistemas multiprocessadores,sistemas baseados em microprocessadores, aparelhos converso-res de sinais, aparelhos eletrônicos de consumidor programá-veis, PCs de rede, minicomputadores, computadores de grandeporte, ambientes de computação distribuída que incluamquaisquer dos sistemas ou dispositivos citados anteriormen-te, e outros mais.
A invenção pode ser descrita no contexto geral deinstruções executáveis por computador, tais como módulos deprograma, sendo executadas por um computador. De uma maneirageral, módulos de programa incluem rotinas, programas, obje-tos, componentes, estruturas de dados, etc. que executam ta-refas particulares ou implementam tipos de dados abstratosparticulares. A invenção também pode ser praticada em ambi-entes de computação distribuída onde tarefas são executadaspor dispositivos de processamento remoto que são ligados pormeio de uma rede de comunicações ou por outra midia detransmissão de dados. Em um ambiente de computação distribu-ída, módulos de programa e outros dados podem estar locali-zados tanto em midia de armazenamento de computador localquanto remoto incluindo dispositivos de armazenamento de memória .
Com referência à figura 1, um sistema exemplar pa-ra implementação da invenção inclui um dispositivo de compu-tação de uso geral na forma de um computador 110. Componen-tes do computador 110 podem incluir, mas não se limitando aestes, uma unidade de processamento 120, uma memória de sis-tema 130 e um barramento de sistema 121 que acopla várioscomponentes de sistema incluindo a memória de sistema à uni-dade de processamento 120. O barramento de sistema 121 podeser qualquer um dos diversos tipos de estruturas de barra-mento incluindo um barramento de memória ou controlador dememória, um barramento periférico e um barramento local u-sando qualquer uma de uma variedade de arquiteturas de bar-ramento. A titulo de exemplo, e não de limitação, tais ar-quiteturas incluem barramento de Arquitetura Padrão da In-dústria (ISA), barramento de Arquitetura de Micro Canal(MCA), barramento ISA Aprimorado (EISA), barramento local deAssociação de Padrões Eletrônicos de Video (VESA), barramen-to de Interconexão de Componentes Periféricos (PCI) (tambémconhecido como barramento Mezanino), Interconexão de Compo-nentes Periféricos Expresso (PCI-Expresso) e Barramento deGerenciamento de Sistemas (SMBus).
0 computador 110 inclui tipicamente uma variedadede midias legíveis por computador. Midia legível por compu-tador pode ser qualquer midia disponível que pode ser aces-sada pelo computador 110 e inclui tanto midia volátil comonão volátil e midia removível como não removível. A titulode exemplo, e não de limitação, midia legível por computadorpode compreender midia de armazenamento de computador e mi-dia de comunicação. Midia de armazenamento de computador in-clui tanto midia volátil como não volátil e removível comonão removível implementada em qualquer método ou tecnologiapara armazenamento de informação tal como instruções legí-veis por computador, estruturas de dados, módulos de progra-ma ou outros dados. Midia de armazenamento de computador in-clui, mas não se limitando a estas, RAM, ROM, EEPROM, memó-ria relâmpago ou outra tecnologia de memória, CD-ROM, discosversáteis digitais (DVD) ou outro armazenamento de disco ó-tico, cassetes magnéticos, fita magnética, armazenamento dedisco magnético ou outros dispositivos de armazenamento mag-nético, ou qualquer outra midia que pode ser usada para ar-mazenar a informação desejada e que pode ser acessada pelocomputador 110. Midia de comunicação tipicamente incorporainstruções legíveis por computador, estruturas de dados, mó-dulos de programa ou outros dados em um sinal de dados modu-lado tal como uma onda portadora ou outro mecanismo detransporte e inclui qualquer midia de distribuição de infor-mação. O termo "sinal de dados modulado" significa um sinalque tem uma ou mais de suas características estabelecidas oumudadas de uma tal maneira como para codificar informação nosinal. A titulo de exemplo, e não de limitação, midia de co-municação inclui midia a fio tal como uma rede com fio ouconexão direta com fio, e midia sem fio tal como acústica,RF, infravermelho e outra midia sem fio. Combinações dequaisquer das indicadas anteriormente também devem ser in-cluídas no escopo de midia legivel por computador.
A memória de sistema 130 inclui midia de armazena-mento de computador na forma de memória volátil e/ou não vo-látil tal como a ROM 131 e a RAM 132. O sistema de entra-da/saída básico 133 (BIOS), contendo as rotinas básicas queajudam a transferir informação entre elementos dentro docomputador 110, tal como durante a partida, é tipicamentearmazenado na ROM 131. A RAM 132 tipicamente contém dadose/ou módulos de programa que são imediatamente acessíveispela unidade de processamento 120 e/ou atualmente sendo ope-rados por ela. A titulo de exemplo, e não de limitação, afigura 1 ilustra o sistema operacional 134, os programas deaplicação 135, os outros módulos de programa 136 e os dadosde programa 137.
O computador 110 também pode incluir outras midiasde armazenamento de computador removiveis/não removíveis,voláteis/não voláteis. Somente a titulo de exemplo, a figura1 ilustra uma unidade de disco rigido 141 que lê midia mag-nética não removível não volátil ou grava nesta, uma unidadede disco magnético 151 que lê um disco magnético 152 removí-vel não volátil ou grava neste, e uma unidade de disco ótico155 que lê um disco ótico 156 removível não volátil ou gravaneste, tal como um CD-ROM ou outra midia ótica. Outras mí-dias de armazenamento de computador removiveis/não removí-veis, voláteis/não voláteis que podem ser usadas no ambientede operação exemplar incluem, mas não se limitando a estas,cassetes de fita magnética, placas de memória relâmpago,discos versáteis digitais, fita de video digital, RAM de es-tado sólido, ROM de estado sólido, e outras mais. A unidadede disco rigido 141 é tipicamente conectada ao barramento desistema 121 por meio de uma interface de memória não removí-vel tal como a interface 140, e a unidade de disco magnético151 e a unidade de disco ótico 155 são tipicamente conecta-das ao barramento de sistema 121 por uma interface de memó-ria removível, tal como a interface 150.
As unidades e as suas midias de armazenamento decomputador associadas, discutidas anteriormente e ilustradasna figura 1, fornecem armazenamento de instruções legíveispor computador, estruturas de dados, módulos de programa ede outros dados para o computador 110. Na figura 1, por e-xemplo, a unidade de disco rigido 141 está ilustrada comoarmazenando o sistema operacional 144, os programas de apli-cação 145, os outros módulos de programa 146 e os dados deprograma 147. Nota-se que estes componentes tanto podem seros mesmos do sistema operacional 134, programas de aplicação135, outros módulos de programa 136, e dos dados de programa137 como diferentes destes. O sistema operacional 144, pro-gramas de aplicação 145, outros módulos de programa 146 e osdados de programa 147 receberam números diferentes aqui parailustrar que, no minimo, eles são cópias diferentes. Um usu-ário pode entrar com comandos e informação no computador 110por meio de dispositivos de entrada tais como um teclado 162e o dispositivo apontador 161, comumente referido como ummouse, mouse estacionário ou superfície sensível ao toque.
Outros dispositivos de entrada (não mostrados) podem incluirum microfone, comando de jogos, controle manual de jogos,antena parabólica, digitalizador, ou coisa parecida. Estes eoutros dispositivos de entrada são freqüentemente conectadosà unidade de processamento 120 por meio de uma interface deentrada de usuário 160 que é acoplada ao barramento de sis-tema, mas podem ser conectados por outras interface e estru-turas de barramento, tais como uma porta paralela, porta dejogos ou um barramento serial universal (USB). Um monitor191 ou outro tipo de dispositivo de exibição também é conec-tado ao barramento de sistema 121 por meio de uma interface,tal como uma interface de video 190. Além do monitor, compu-tadores também podem incluir outros dispositivos periféricosde saida tais como os alto-falantes 197 e a impressora 196,que podem ser conectados por meio de uma interface periféri-ca de saida 195.
O computador 110 pode operar em um ambiente de re-de usando conexões lógicas para um ou mais computadores re-motos, tal como um computador remoto 180. O computador remo-to 180 pode ser um computador pessoal, um servidor, um rote-ador, um PC de rede, um dispositivo de pares ou outro nó derede comum, e inclui tipicamente muitos dos elementos des-critos anteriormente relativos ao computador 110 ou todoseles, embora somente um dispositivo de armazenamento de me-mória 181 tenha sido ilustrado na figura 1. As conexões ló-gicas representadas incluem uma rede de área local (LAN) 171e uma rede de área estendida (WAN) 173, mas também podem in-cluir outras redes. Tais ambientes de comunicação inter-redesão comuns em escritórios, redes de computadores estendidasde empresa, intranets e na Internet.
Quando usado em um ambiente de comunicação inter-rede LAN, o computador 110 é conectado à LAN 171 por meio deuma interface ou adaptador de rede 170. Quando usado em umambiente de comunicação inter-rede WAN, o computador 110 in-clui tipicamente um modem 172 ou outro dispositivo para es-tabelecer comunicações através da WAN 173, tal como a Inter-net. O modem 172, que pode ser interno ou externo, pode serconectado ao barramento de sistema 121 por meio da interfacede entrada de usuário 160, ou por outro mecanismo apropria-do. Em um ambiente de rede, módulos de programa representa-dos relativos ao computador 110, ou partes do mesmo, podemser armazenados no dispositivo remoto de armazenamento dememória. A titulo de exemplo, e não de limitação, a figura 1ilustra os programas de aplicação remota 185 como residindono dispositivo de memória 181. Deve ser percebido que as co-nexões de rede mostradas são exemplares e que outros dispo-sitivos de se estabelecer um elo de comunicações entre oscomputadores podem ser usados.
Modalidades Exemplares
A presente invenção implementa sistemas e métodosusando um recurso genérico de plataforma (por exemplo, APIC)ou barramento (barramento PCI) para trazer a CPU 120 parafora do modo de interrupção sem ter que esperar por um acio-nador em modo usuário para liberar uma interrupção de dispo-sitivo. Isto vantajosamente permite que um acionador de dis-positivo seja gravado em modo usuário. 0 acionador de dispo-sitivo em modo usuário recebe notificações a respeito dasinterrupções, mas não em alta prioridade de interrupção. Talcomo será descrito a seguir, a presente invenção pode serestendida para interrupções compartilhadas, onde múltiplosdispositivos compartilham uma única linha de interrupção.
Aludindo agora à figura 2, está mostrada uma ar-quitetura tipica dentro de um dispositivo de computação. Umaou mais CPUs 120 são conectadas a um APIC E/S 200 (isto é,um controlador E/S) e um Barramento/Ponte PCI 202. Na arqui-tetura INTEL, podem existir até oito APICs E/S em um siste-ma. Eles coletam sinais de interrupção provenientes dos dis-positivos E/S e enviam mensagens para os APICs locais quandoesses dispositivos necessitam de interrupção. Cada APIC E/Stem um número arbitrário de entradas de interrupção (ou IRQs) .
Vários barramentos de sistema 121 são fornecidos,tais como um Barramento ISA 201, o Barramento PCI 203, aosquais os dispositivos 204 são conectados. Os dispositivos204 que são conectados ao barramento PCI 203 incluem os re-gistradores PCI 205, tal como conhecido pelos versados natécnica. Uma interrupção gerada pelo dispositivo 204 é enca-minhada para o controlador de interrupção 200 e eventualmen-te para a CPU 120. Existe um caminho da CPU para o disposi-tivo 204, assim um acionador executando na CPU 120 pode a-cessar/manejar o dispositivo de hardware 204.
Aludindo à figura 3, está ilustrada uma linha detempo para um método convencional de manusear interrupções,onde os acionadores de dispositivo residem em modo núcleo.
Inicialmente, um acionador de dispositivo registra a sua ro-tina de serviço de interrupção (ISR) em um estágio de intro-dução. Quando uma interrupção ocorre em TO, ela é mascaradapela CPU em TI de maneira que o processador não é interrom-pido continuamente. Em T2, o sistema operacional chama a ISRde acionador e o acionador manuseia a interrupção em T3 paraliberar a interrupção. Em T4, o controle retorna da ISR e emT5, o sistema operacional pára de mascarar a interrupção,assim uma próxima interrupção pode ser manuseada, se neces-sário .
Por causa do processamento convencional da figura3, as ISRs de acionador são chamadas, o que ocorre em IRQLaumentado, e assim o modelo não leva em conta código de ISRgravado em modo usuário. Para permitir ISRs em modo usuárioé exigido que se possa mascarar a interrupção (em um niveltão próximo do dispositivo quanto possivel) até que o códigode ISR em modo usuário possa ser escalonado. A presente in-venção permite que um ou mais acionadores de dispositivopossam ser executados como programas/processos em modo usuá-rio. Um serviço de núcleo é fornecido que age como uma fun-cionalidade de interrupção genérica. Interrupções são masca-radas em um nivel mais baixo (isto é, abaixo do nivel deCPU, tal como descrito a seguir) até que o código no aciona-dor em modo usuário estimula e manuseia a interrupção.O serviço de interrupção da presente invenção ex-põe uma interface (por exemplo, "esperar_por_interrupção")que é chamada pelos acionadores em modo usuário quando elesestão prontos para receber uma interrupção. 0 serviço de in-terrupção fornece uma interface a um administrador E/S paraalocar um objeto de interrupção a ser passado para os acio-nadores. Durante a partida de um acionador de dispositivo, oadministrador E/S usa a interface para criar um objeto deinterrupção e o passa para o acionador de dispositivo dando-lhe acesso a uma linha de interrupção especifica. 0 aciona-dor chama a interface esperar_por_interrupção quando ele es-tá pronto para receber uma interrupção e/ou espera uma. 0retorno desta chamada implica em que uma interrupção dehardware ocorreu e que o acionador deve comunicar/manejar odispositivo.
Antes de chamar a interface espe-rar por interrupção para esperar pela próxima interrupção, oacionador preferivelmente completa todas as atividades queele estiver executando para o dispositivo e libera o motivoda interrupção de dispositivo. A próxima interrupção de dis-positivo fará com que esta interface esperar_por_interrupçãoretorne. Um encadeamento dedicado (preferivelmente não o en-cadeamento principal) é usado para este processo de espera eprioridade elevada pode ser aplicada a ele. 0 serviço de in-terrupção mascara interrupções por alcançarem a CPU em ummodo independente de dispositivo para acionadores em modousuário. Por exemplo, a linha de interrupção particular podeser mascarada em um APIC tipico. Certos barramentos tais co-mo o PCI 2.3 têm uma articulação no espaço de configuraçãoque pode ser incapacitada/capacitada em um modo especificode barramento.
De acordo com a presente invenção, interrompermascaramento em uma área independente de dispositivo é ummecanismo para incapacitar interrupções no dispositivo (oumascaramento delas) sem programar o dispositivo em um modoespecifico de dispositivo. A ISR em modo usuário é o códigopara a rotina de serviço de interrupção que é localizada nocontexto de um encadeamento em modo usuário e executa nele,tal como descrito a seguir. A figura 4 ilustra uma linha detempo para um mecanismo de interrupção em modo usuário nãocompartilhado. Este mecanismo trabalha para dispositivos quenão estão compartilhando uma linha de interrupção, disposi-tivos usando interrupções sinalizadas de mensagem, ou paradispositivos compartilhando uma linha de interrupção (comacionadores em usuário ou núcleo), mas em um barramento quesuporta um mecanismo independente de dispositivo para masca-rar interrupções de dispositivo.
Aludindo agora à figura 4, o serviço de interrup-ção inicia por incapacitar ou mascarar todas as interrupçõesem um modo independente de dispositivo em um estágio de in-trodução. Quando um acionador chama a interface espe-rar_por_interrupção em TO para paralisar um encadeamento noserviço, essa interrupção particular é capacitada/não masca-rada em TI. Quando um dispositivo associado com o acionadorcausa uma interrupção ou uma estava pendente quando inter-rupções foram capacitadas em TI, um evento ocorre e a CPU éinterrompida em T2. 0 evento pode ser auto-restauração a serliberada.
Um manipulador de interrupção em modo núcleo gené-rico registrado para a interrupção é chamado em T3, o qualincapacita/mascara novamente a linha de interrupção em T4.Isto é feito em um nivel mais baixo ao da CPU (por exemplo,no APIC E/S 200, Barramento/Ponte PCI 202, no sistema opera-cional, etc). Em outras palavras, a interrupção de disposi-tivo é preferivelmente incapacitada tão próxima do disposi-tivo 204 quanto possível em T4. O processador então sai domodo de interrupção em T5 e o encadeamento de interrupção emmodo usuário é escalonado em T6 para chamar o acionador es-perando por essa interrupção. O acionador processa a inter-rupção em T7 e retorna. A linha de interrupção é capacitadade novo para a próxima interrupção.
Um problema com compartilhar interrupções para IS-Rs em nivel usuário é um problema de latência. Em geral, édesejável manter interrupções mascaradas pela menor quanti-dade de tempo possivel. No caso de uma ISR em modo usuário,a interrupção fica mascarada até que a ISR execute. Isto po-de levar uma quantidade significativa de tempo. Um disposi-tivo compartilhando a mesma linha de interrupção teria suasinterrupções bloqueadas até que interrupções para a linhafossem não mascaradas de novo. Portanto, a menos que todosos acionadores com uma ISR em modo usuário compartilhandouma dada linha de interrupção estejam esperando por uma in-terrupção, a linha é mascarada.
Aludindo agora à figura 5, existe uma linha detempo exemplar para um mecanismo de interrupção em modo usu-ário compartilhado em um barramento que não suporta mascara-mento de interrupção de dispositivo. Inicialmente, a inter-rupção para cada um dos dispositivos compartilhando a inter-rupção é mascarada no nivel de barramento ou dispositivo.Aqui de novo, é preferível mascarar a interrupção no nivelmais baixo possivel, entretanto, algumas vezes é mais conve-niente mascarar em um nivel ou em um outro. Neste caso apresente invenção pode mascarar no nivel de dispositivo ouno nivel de barramento. Mascarar em um nivel de barramento éum recurso que fornece um modo para mascarar interrupçõesgeradas por um dado dispositivo. Este é um recurso de barra-mento, com granularidade de nivel de dispositivo. Por masca-rar a interrupção de dispositivo neste modo, o sistema podecontinuar a executar até que o código de ISR em modo usuáriopossa ser escalonado para liberar a interrupção no nivel dedispositivo em um modo especifico de dispositivo.
Mais tarde em TO, o(s) acionador(s) em modo usuá-rio (s) para o(s) dispositivo(s) espera por uma interrupçãopor chamar o método Esperar Por Interrupção em seu objeto deinterrupção. Existe um contador (estabelecido inicialmentepara a quantidade de acionadores compartilhando a interrup-ção) que é decrementado cada vez que um acionador chama ométodo Esperar Por Interrupção e o encadeamento subseqüente-mente paralisa no objeto de evento para a dada linha de in-terrupção. Quando o contador mencionado anteriormente vaipara zero, significando que todos os acionadores de disposi-tivo em modo usuário compartilhando a dada linha de inter-rupção estão esperando por interrupções, o método EsperarPor Interrupção não mascarara interrupções para o dispositi-vo sendo controlado (TI).
Em um tempo depois de as interrupções de disposi-tivo estiverem não mascaradas, uma interrupção pode ocorrer(T2) . Quando uma interrupção ocorre, a rotina de serviço deinterrupção (ISR) em modo núcleo genérico registrada para ainterrupção será chamada (T3) . 0 sistema manuseia esta in-terrupção substancialmente da mesma maneira em que interrup-ções em modo núcleo são manuseadas no sistema convencional.A ISR primeiramente mascarara de novo a interrupção de dis-positivo (T4), e então sinalizará o evento em que a ISR emmodo usuário está bloqueada. 0 contador de linha por inter-rupção é então restaurado para a quantidade de acionadorescompartilhando a linha de interrupção. 0 processador sai en-tão do modo de interrupção (T5). 0(s) encadeamento(s) em mo-do usuário agora se estimulará totalmente (T6). Cada encade-amento testa se o hardware está controlando a interrupçãogerada, e neste caso, serve à interrupção (T7). Quando com-pletado, o Esperar Por Interrupção é chamado de novo.
De acordo com a presente invenção, compartilhamen-to de interrupções entre componentes em modo usuário e emmodo núcleo é similar ao compartilhamento delas com compo-nentes somente em modo usuário. A diferença está em como aISR em núcleo genérico trabalha. Neste cenário, a ISR em mo-do núcleo genérico é chamada depois das ISRs para os aciona-dores em modo núcleo compartilhando a linha de interrupção.Deste modo, se o dispositivo gerando a interrupção for umdispositivo em modo núcleo ele pode ser servido rapidamenteno núcleo e não estimulará as ISRs em modo usuário. Com aexceção de aumento de latência, em virtude de a linha de in-terrupção ser mascarada mais freqüentemente, acionadores emnúcleo não são afetados por este esquema. Além do mais, osacionadores em modo núcleo não são incluídos na conta dequantos acionadores estão compartilhando a linha de interrupção.
De acordo com o exposto anteriormente, a presenteinvenção é capaz de manusear interrupções em uma maneira ge-nérica de sistema operacional sem a necessidade de um acio-nador especifico para cada dispositivo, já que qualquer in-terrupção de dispositivo pode ser incapacitada sem conheci-mento do dispositivo. Isto é em virtude, de uma maneira ge-ral, de o sistema operacional ter conhecimento do APIC E/S200 e poder incapacitar interrupções pelo menos nesse nivel.Tal como notado anteriormente, é preferível manusear inter-rupções tão próximo do dispositivo quanto possível.
A presente invenção também permite um acionadorque falha ao registrar com o sistema operacional. Se uma in-terrupção é gerada por um dispositivo cujo acionador de dis-positivo falhou ao registrar, ou é desconhecido, a interrup-ção é desligada no nivel de dispositivo e o dispositivo éincapacitado para impedir quaisquer interrupções adicionais.Alternativamente, sob um esquema de controle comum, quandooutros acionadores registrados relatam que a interrupção é"não suas", a interrupção é incapacitada para efetivamentedesligar o dispositivo.Embora a presente invenção tenha sido descrita emconexão com as modalidades preferidas das várias figuras,deve ser entendido que outras modalidades similares podemser usadas ou que modificações e adições podem ser feitas àmodalidade descrita para executar a mesma função da presenteinvenção sem desvio desta. Por exemplo, os versados na téc-nica reconhecem que a presente invenção tal como descrita nopresente pedido pode se aplicar a qualquer dispositivo ouambiente de computação, se com fio ou sem fio, e pode seraplicada a qualquer quantidade de tais dispositivos de com-putação conectados por meio de uma rede de comunicações, einteragindo através da rede. Além disso, deve ser enfatizadoque uma variedade de plataformas de computadores, incluindosistemas de operação de dispositivo portátil e outros siste-mas de operação específicos de aplicação, é considerada, es-pecialmente já que a quantidade de dispositivos de rede semfio continua a proliferar. Ainda adicionalmente, a presenteinvenção pode ser implementada em uma pluralidade de micro-plaquetas ou dispositivos de processamento ou através deles,e de forma similar armazenamento pode ser efetuado atravésde uma pluralidade de dispositivos. Portanto, a presente in-venção não deve ser limitada a qualquer modalidade única,mas sem dúvida deve ser interpretada em amplitude e escopode acordo com as reivindicações anexas.

Claims (20)

1. Método independente de dispositivo para manuse-ar interrupções, CARACTERIZADO pelo fato de que compreende:registrar um acionador de dispositivo com um sis-tema operacional;fornecer um serviço de interrupção independente dedispositivo como um serviço de núcleo;exibir uma interface que é chamada pelo dito acio-nador para capacitar uma interrupção;executar uma rotina de serviço de interrupção ge-nérico mediante recebimento da dita interrupção; emanusear a dita interrupção pelo dito acionador dedispositivo.
2. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que compreende adicionalmente:mascarar a dita interrupção em um processador an-tes de executar a dita rotina de serviço de interrupção;incapacitar a dita interrupção em um nivel maisbaixo do que o dito processador para impedir que a dita in-terrupção alcance o dito processador;não mascarar a dita interrupção no dito processa-dor; ecapacitar a dita interrupção no dito nivel maisbaixo do que o dito processador depois de manusear a ditainterrupção.
3. Método, de acordo com a reivindicação 2,CARACTERIZADO pelo fato de que a dita incapacitação da ditainterrupção ocorre em um de um APIC ou um controlador debarramento.
4. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que compreende adicionalmente:fornecer um mecanismo de escalonamento para com-partilhar a dita interrupção;chamar todos acionadores compartilhando a dita in-terrupção; emanter a dita incapacitação da dita interrupçãoaté que todos acionadores retornem do dito manuseio da ditainterrupção.
5. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que compreende adicionalmente es-tabelecer um contador para diversos acionadores comparti-lhando a dita interrupção.
6. Método, de acordo com a reivindicação 5,CARACTERIZADO pelo fato de que compreende adicionalmente de-crementar o dito contador para zero antes de capacitar a di-ta interrupção.
7. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que um segundo acionador é forne-cido em um nivel em modo núcleo, e o dito método é executadotanto por acionadores em modo usuário quanto em modo núcleo.
8. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o dito serviço de núcleo é umserviço genérico independente de um dispositivo manuseadopelo dito acionador, e em que o dito acionador é um aciona-dor em modo usuário.
9. Método para manusear acionadores de dispositivoem modo usuário, CARACTERIZADO pelo fato de que compreende:registrar os ditos acionadores de dispositivo emmodo usuário com um sistema operacional; efornecer um serviço de interrupção genérico comoum serviço de núcleo, o dito serviço de interrupção exibindouma interface que é chamada pelos ditos acionadores de dis-positivo em modo usuário;mascarar a dita interrupção em um processador an-tes de executar a dita rotina de serviço de interrupção ge-nérico; eincapacitar a dita interrupção em um nivel maisbaixo do que o dito processador para impedir que a dita in-terrupção alcance o dito processador.
10. Método, de acordo com a reivindicação 9,CARACTERIZADO pelo fato de que compreende adicionalmente:capacitar a dita interrupção quando um acionadorde dispositivo em modo usuário chama a dita interface; ecapacitar a dita interrupção no dito nivel maisbaixo do que o dito processador depois de um acionador dedispositivo em modo usuário apropriado manusear a dita in-terrupção.
11. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que a dita incapacitação da ditainterrupção ocorre em um de um APIC ou um controlador debarramento.
12. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que compreende adicionalmente:fornecer um mecanismo de escalonamento para inter-rupções compartilhadas;chamar todos acionadores de dispositivo em modousuário associados com as ditas interrupções compartilhadas; emanter a dita incapacitação da dita interrupçãoaté que todos acionadores de dispositivo em modo usuário re-tornem do manuseio da dita interrupção.
13. Método, de acordo com a reivindicação 12,CARACTERIZADO pelo fato de que compreende adicionalmente:executar o dito mecanismo de escalonamento paradispositivos não registrados ou desconhecidos; eincapacitar o dito dispositivo não registrado oudesconhecido.
14. Método, de acordo com a reivindicação 9,CARACTERIZADO pelo fato de que são acionadores de dispositi-vo em modo núcleo, e o dito método é executado tanto pelosditos acionadores de dispositivo em modo usuário quanto pe-los ditos acionadores de dispositivo em modo núcleo.
15. Midia legivel por computador, CARACTERIZADApelo fato de que tem armazenada na mesma instruções para ma-nusear acionadores de dispositivo em modo usuário, as ditasinstruções executando um método compreendendo:registrar os ditos acionadores de dispositivo emmodo usuário com um sistema operacional;fornecer um serviço de interrupção como um serviçode núcleo, o dito serviço de interrupção exibindo uma inter-face que é chamada pelos ditos acionadores de dispositivo emmodo usuário; efornecer uma rotina de serviço de interrupção ge-nérico independente de dispositivos associados com os ditosacionadores de dispositivo em modo usuário.
16. Midia legível por computador, de acordo com areivindicação 15, CARACTERIZADA pelo fato de que compreendeadicionalmente instruções para:capacitar a dita interrupção quando um acionadorde dispositivo em modo usuário chama a dita interface; eincapacitar a dita interrupção em um nivel maisbaixo do que um processador depois de executar a dita rotinade serviço de interrupção genérico para impedir que a ditainterrupção alcance o dito processador; ecapacitar a dita interrupção depois de o dito ser-viço de interrupção genérico ser executado.
17. Midia legivel por computador, de acordo com areivindicação 16, CARACTERIZADA pelo fato de que a dita in-capacitação da dita interrupção ocorre em um de um APIC ouum controlador de barramento.
18. Midia legivel por computador, de acordo com areivindicação 16, CARACTERIZADA pelo fato de que compreendeadicionalmente instruções para:fornecer um mecanismo de escalonamento para inter-rupções compartilhadas;chamar todos acionadores de dispositivo em modousuário associados com as ditas interrupções compartilhadas; emanter a dita incapacitação da dita interrupçãoaté que todos acionadores de dispositivo em modo usuário re-tornem do manuseio da dita interrupção.
19. Midia legivel por computador, de acordo com areivindicação 18, CARACTERIZADA pelo fato de que compreendeadicionalmente instruções para:executar o dito mecanismo de escalonamento paradispositivos não registrados ou desconhecidos; eincapacitar o dito dispositivo não registrado oudesconhecido.
20. Midia legível por computador, de acordo com areivindicação 18, CARACTERIZADA pelo fato de que são aciona-dores de dispositivo em modo núcleo, e as ditas instruçõessão executadas tanto pelos ditos acionadores de dispositivoem modo usuário quanto pelos ditos acionadores de dispositi-vo em modo núcleo.
BRPI0610159-3A 2005-05-16 2006-05-16 método para entregar interrupções para acionadores em modo usuário BRPI0610159A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/129,802 US7581051B2 (en) 2005-05-16 2005-05-16 Method for delivering interrupts to user mode drivers
US11/129.802 2005-05-16
PCT/US2006/018928 WO2006124905A2 (en) 2005-05-16 2006-05-16 Method for delivering interrupts to user mode drivers

Publications (1)

Publication Number Publication Date
BRPI0610159A2 true BRPI0610159A2 (pt) 2010-06-01

Family

ID=37420515

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0610159-3A BRPI0610159A2 (pt) 2005-05-16 2006-05-16 método para entregar interrupções para acionadores em modo usuário

Country Status (12)

Country Link
US (1) US7581051B2 (pt)
EP (1) EP1889165B1 (pt)
JP (1) JP4840945B2 (pt)
KR (1) KR20080013914A (pt)
CN (1) CN101176084B (pt)
AT (1) ATE538436T1 (pt)
BR (1) BRPI0610159A2 (pt)
CA (1) CA2608081A1 (pt)
MX (1) MX2007014338A (pt)
NO (1) NO20075837L (pt)
RU (1) RU2417413C2 (pt)
WO (1) WO2006124905A2 (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7950022B1 (en) * 2007-06-29 2011-05-24 Emc Corporation Techniques for use with device drivers in a common software environment
US7950025B1 (en) * 2007-06-29 2011-05-24 Emc Corporation Common software environment
US8434098B2 (en) * 2008-02-07 2013-04-30 Microsoft Corporation Synchronizing split user-mode/kernel-mode device driver architecture
US20090210888A1 (en) * 2008-02-14 2009-08-20 Microsoft Corporation Software isolated device driver architecture
US8387075B1 (en) * 2008-03-28 2013-02-26 Emc Corporation Common scheduling and synchronization primitives
US8285904B2 (en) * 2009-08-14 2012-10-09 Advanced Micro Devices, Inc. Flexible notification mechanism for user-level interrupts
US8806511B2 (en) 2010-11-18 2014-08-12 International Business Machines Corporation Executing a kernel device driver as a user space process
US9075985B2 (en) * 2013-05-31 2015-07-07 Microsoft Technology Licensing, Llc Restricted transmogrifying driver platform
US9921984B2 (en) 2014-12-23 2018-03-20 Intel Corporation Delivering interrupts to user-level applications
US9672173B2 (en) * 2015-02-26 2017-06-06 Red Hat Israel, Ltd. Shared PCI interrupt line management
US9465617B1 (en) * 2015-06-29 2016-10-11 Vmware, Inc. Implementing upcall from secure to non-secure mode by injecting exception into non-secure mode
KR102085899B1 (ko) * 2018-12-10 2020-03-06 현대오트론 주식회사 자동차 전자제어장치의 사용량 모니터링 방법 및 모니터링 유닛
EP3819776B1 (en) * 2019-11-05 2021-12-29 Shenzhen Goodix Technology Co., Ltd. Method and apparatus for aborting blocked bus access between a master controller and connected peripherals

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN171220B (pt) * 1987-07-01 1992-08-15 Digital Equipment Corp
JPH01145751A (ja) * 1987-12-01 1989-06-07 Pfu Ltd 入出力制御方式
JPH02170237A (ja) * 1988-12-23 1990-07-02 Fujitsu Ltd 割り込み制御方式
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
US5297282A (en) * 1991-05-29 1994-03-22 Toshiba America Information Systems, Inc. Resume processing function for the OS/2 operating system
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
JPH05108507A (ja) * 1991-10-17 1993-04-30 Ricoh Co Ltd バスエラー処理回路
US5438677A (en) * 1992-08-17 1995-08-01 Intel Corporation Mutual exclusion for computer system
JP3242508B2 (ja) * 1993-11-05 2001-12-25 松下電器産業株式会社 マイクロコンピュータ
US5566346A (en) * 1993-12-21 1996-10-15 Taligent, Inc. System for constructing hardware device interface software systems independent of operating systems including capability of installing and removing interrupt handlers
US6732138B1 (en) * 1995-07-26 2004-05-04 International Business Machines Corporation Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process
US6412035B1 (en) * 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
US6212574B1 (en) * 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
US6021446A (en) * 1997-07-11 2000-02-01 Sun Microsystems, Inc. Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine
US5926775A (en) * 1997-10-08 1999-07-20 National Instruments Corporation Mini driver software architecture for a data acquisition system
US6871350B2 (en) * 1998-12-15 2005-03-22 Microsoft Corporation User mode device driver interface for translating source code from the user mode device driver to be executed in the kernel mode or user mode
US6785894B1 (en) * 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
US6598169B1 (en) * 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
US6957432B2 (en) * 2000-03-21 2005-10-18 Microsoft Corporation Real-time scheduler
US6766398B2 (en) * 2001-04-17 2004-07-20 International Business Machines Corporation Method for processing PCI interrupt signals in a logically partitioned guest operating system
US7024672B2 (en) * 2002-06-26 2006-04-04 Microsoft Corporation Process-mode independent driver model
KR20040085906A (ko) * 2003-04-02 2004-10-08 삼성전자주식회사 라이트 인터럽트 모드에서 라이트/리드 주파수를 향상시킬수 있는 반도체 메모리 장치
CN1208721C (zh) * 2003-09-19 2005-06-29 清华大学 基于PowerPC处理器结构的分级任务切换方法
US7149832B2 (en) * 2004-11-10 2006-12-12 Microsoft Corporation System and method for interrupt handling

Also Published As

Publication number Publication date
EP1889165A2 (en) 2008-02-20
WO2006124905A2 (en) 2006-11-23
JP4840945B2 (ja) 2011-12-21
KR20080013914A (ko) 2008-02-13
US20060259675A1 (en) 2006-11-16
RU2007142279A (ru) 2009-05-27
CN101176084A (zh) 2008-05-07
JP2008541306A (ja) 2008-11-20
ATE538436T1 (de) 2012-01-15
CN101176084B (zh) 2010-05-19
CA2608081A1 (en) 2006-11-23
WO2006124905A3 (en) 2007-06-07
NO20075837L (no) 2007-12-11
HK1112305A1 (en) 2008-08-29
MX2007014338A (es) 2008-02-12
EP1889165B1 (en) 2011-12-21
EP1889165A4 (en) 2009-09-16
RU2417413C2 (ru) 2011-04-27
US7581051B2 (en) 2009-08-25

Similar Documents

Publication Publication Date Title
US8151027B2 (en) System management mode inter-processor interrupt redirection
US7581219B2 (en) Transitioning between virtual machine monitor domains in a virtual machine environment
JP6082787B2 (ja) セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
JP5860504B2 (ja) サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのusbプロキシ
US8533735B2 (en) System for execution context isolation in response to invoking a BIOS kernel function during a driver execution environment (DXE) phase of boot-up of a computer
US7209994B1 (en) Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
US9633231B2 (en) Hardware-protective data processing systems and methods using an application executing in a secure domain
BRPI0610159A2 (pt) método para entregar interrupções para acionadores em modo usuário
US20090125901A1 (en) Providing virtualization of a server management controller
TW201502772A (zh) 虛擬基板管理控制器
US6931553B1 (en) Preventing general purpose event interrupt storms in a computer system
KR20160108517A (ko) 멀티-운영 체제 디바이스들에 대한 액세스 격리
US9244797B2 (en) Methods for managing performance states in an information handling system
US11222119B2 (en) Technologies for secure and efficient native code invocation for firmware services
US10496439B1 (en) Finite resource allocator with intrinsically subordinate operating system
US20130275791A1 (en) Method and System for Tracking and Selecting Optimal Power Conserving Modes of a PCD
US20190171505A1 (en) Management controller-based solution for processor ras in smi-free environment
JPWO2008117411A1 (ja) グリッド処理制御装置
US12254322B2 (en) Virtual pseudo PCIe (VVP) device nodes for fast reliable OS and virtual memory (VM) boot
US10248786B2 (en) Platform security using processor assists
Zhang et al. Achieving deterministic, hard real-time control on an IBM-compatible PC: A general configuration guideline

Legal Events

Date Code Title Description
B08L Patent application lapsed because of non payment of annual fee [chapter 8.12 patent gazette]

Free format text: REFERENTE AO NAO RECOLHIMENTO DAS 7A E 8A ANUIDADES.

B08I Publication cancelled [chapter 8.9 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 8.12 NA RPI NO 2260 DE 29/04/2014 POR TER SIDO INDEVIDA.

B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE AS 7A, 8A, 9A, 10A, 11A, 12A, 13A E 14A ANUIDADES.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2602 DE 17-11-2020 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.