BRPI1102360B1 - método e sistema para detecção de exceção de quantum de ponto flutuante decimal - Google Patents

método e sistema para detecção de exceção de quantum de ponto flutuante decimal Download PDF

Info

Publication number
BRPI1102360B1
BRPI1102360B1 BRPI1102360-0A BRPI1102360A BRPI1102360B1 BR PI1102360 B1 BRPI1102360 B1 BR PI1102360B1 BR PI1102360 A BRPI1102360 A BR PI1102360A BR PI1102360 B1 BRPI1102360 B1 BR PI1102360B1
Authority
BR
Brazil
Prior art keywords
quantum
floating point
exception
decimal
result
Prior art date
Application number
BRPI1102360-0A
Other languages
English (en)
Inventor
Michael F. Cowlishaw
Silvia Melitta Mueller
Eric Schwarz
Phil C. Yeh
Original Assignee
International Business Machines 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 International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of BRPI1102360A2 publication Critical patent/BRPI1102360A2/pt
Publication of BRPI1102360B1 publication Critical patent/BRPI1102360B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/491Indexing scheme relating to groups G06F7/491 - G06F7/4917
    • G06F2207/4911Decimal floating-point representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

DETECÇÃO DE EXCEÇÃO DE QUANTUM DE PONTO FLUTUANTE DECIMAL Método compreendendo as seguintes etapas: desempenhar as seguintes funções com um processador: aceitar pelo menos um operando com ponto flutuante decimal; executar uma operação de ponto flutuante decimal sobre pelo menos um ponto flutuante decimal operando para produzir um resultado de ponto flutuante decimal; determinar, em resposta à execução, que o resultado de ponto flutuante decimal não consegue manter um quantum preferido, o quantum preferido indicando um valor definido representado por um dígito menos significativo, de um significando do resultado ponto flutuante decimal, e fornecer, em resposta à determinação de que o resultado do ponto flutuante decimal não consegue manter o quantum preferido, uma saída indicando uma exceção quântica, a exceção quântica que ocorre em resposta ao resultado do ponto flutuante decimal não manter o quantum preferido.

Description

Campo da Invenção
[001] A presente invenção geralmente refere-se a processadores aritméticos electrónicos e mais particularmente à detecção das condições de cálculo aritmético particular.
Antecedentes Da Invenção
[002] Números de ponto flutuante decimal e os números de ponto flutuante de outros radices, tais como os definidos pelo padrão de ponto flutuante IEEE 754-2008, são úteis para a realização de certos tipos de processamento de dados. O padrão IEEE 754-2008 baseados em projetos de processadores foi criado diretamente para suportar o processamento definido por essa norma. Formatos de hardware de exemplo para processadores IEEE 754-2008 incluem formatos de dados de ponto flutuante decimais que são 32, 64 e 128 bits de comprimento, com coeficientes definidos de 7, 16 e 34 dígitos com uma gama de expoente especificada. Ambientes de processamento de software, tais como linguagens de programação, incluindo Java que suporta números de ponto flutuante decimais, às vezes usam coeficientes de comprimentos diferentes, o que é referido como "precisão", com diferentes faixas de expoentes que são usados pelo hardware em que os ambientes executam.
[003] Números de ponto flutuante decimais mantêm mais do que apenas o valor do número, eles também contêm informações que representam a escala do número. Por exemplo, a adição de números que representam dinheiro em centavos de dólar geralmente produzem uma soma que também está representada em centavos de dólar. Alguns ambientes de software emular número decimal de precisão de ponto flutuante e alcance de tal forma que algumas operações de ponto flutuante decimais produzem resultados que excedem a precisão e o alcance do hardware de processamento disponível. Tal condição pode inadvertidamente levar a resultados imprecisos. Exceções já existentes, tais como exceções de estouro, de inexatidão, e de underflow, ocorrem quando a precisão ou o intervalo foi ultrapassado, mas estas exceções não conseguem detectar com precisão todas as mudanças inesperadas na precisão ou resultado de uma operação.
[004] Um exemplo de um erro detectado potencial é uma operação de ponto flutuante decimal da adição de dois valores monetários de sete (7) dígitos representados em centavos de dólar. Cada um destes elementos de fonte de dados seria uma quantidade na gama de $ 10.000. Somando estes dois valores é capaz de levar a um resultado exato na faixa de US$ 100.000. No entanto, representar o resultado como centavos na gama $ 100.000, com sete dígitos requer o expoente de não ser o expoente preferido, o que poderia indicar centavos, e a precisão do valor do resultado será correspondentemente reduzida. Realizando o mesmo cálculo com mais precisão conduziria a um expoente indicando centavos (10-2) como a escala do resultado. Exceções existentes não detectam esta perda de escala no resultado produzido. a. Algumas implementações de hardware proporcionar um método de detectar o caso acima descrito. Num exemplo, os dados são verificados para determinar se o dígito mais significativo é diferente de zero. Essa verificação é uma indicação a mais que o resultado não pode ter o expoente preferido porque alguns resultados precisos resultariam em uma indicação de "falso positivo". Esta abordagem reduz eficazmente a precisão útil para a emulação de um dígito uma vez que o dígito mais significativo é utilizado como um indicador da perda potencial de escala.
[005] Portanto, as precisões de cálculo são limitadas por não detectar mudanças inesperadas em escala ou precisão de resultados decimais de ponto flutuante produzida por limitações de formatação do processador.
Sumário da Invenção
[006] Em uma concretização, um método para a detecção de exceções de processamento inclui um processador que aceita, pelo menos, uma casa decimal operando de ponto flutuante e realiza uma operação de ponto flutuante decimal sobre o pelo menos um operando de ponto flutuante decimal para produzir um resultado de ponto flutuante decimal. É feita uma determinação sobre se o resultado do ponto flutuante decimal deixa de manter um quantum preferido. O quantum preferido indica um valor definido representado por pelo menos um dígito significativo de um significando do resultado do ponto flutuante decimal. Em resposta à determinação de que o resultado do ponto flutuante decimal deixa de manter o quantum preferido, uma saída é fornecida indicando a ocorrência de uma exceção quântica.
[007] Numa outra concretização, um sistema para a detecção de exceções de processamento inclui uma memória e um processador comunicativamente acoplado à memória. O processador inclui um processador de instruções. O processador de instrução aceita pelo menos um operando em ponto flutuante decimal e executa uma operação de ponto flutuante decimal no pelo menos um operando de ponto flutuante para decimal produzir um resultado de ponto flutuante decimal. O processador também inclui um detector de exceção quântica. O detector de exceção quântica determina, em resposta a instruções do processador para executar a operação de ponto flutuante decimal, que o resultado do ponto flutuante decimal deixa de manter um quantum preferido. O quantum preferido indicando um valor definido representado por um pelo menos dígito, significativo de um significando do resultado do ponto flutuante decimal. O processador inclui ainda uma unidade de resposta de exceção quântica. A unidade de resposta exceção de quantum fornece, em resposta ao detector de exceção quântica a determinação de que o resultado do ponto flutuante decimal deixa de manter o quantum preferido, uma saída indicando uma exceção quântica. A exceção do quantum que ocorre em resposta ao resultado do ponto flutuante decimal de não manter o quantum preferido. a. Numa outra concretização, um produto de programa de computador para a detecção de exceções de processamento inclui um meio de armazenamento legível por um circuito de processamento e armazenamento de instruções para a execução pelo circuito de processamento para a realização de um método. O método inclui aceitar pelo menos uma operando de ponto flutuante decimal e executar uma operação de ponto flutuante decimal no pelo menos um operando de ponto flutuante decimal para produzir um resultado de ponto flutuante decimal. É feita uma determinação sobre se o resultado do ponto flutuante decimal deixa de manter um quantum preferido. O quantum preferido indica um valor definido representado por pelo menos um dígito significativo de um significando do resultado do ponto flutuante decimal. Em resposta à determinação de que o resultado do ponto flutuante decimal deixa de manter o quantum preferido, uma saída é fornecida indicando a ocorrência de uma exceção quântica.
Breve Descrição Dos Desenhos
[008] As figuras anexas em que números de referência semelhantes referem-se elementos idênticos ou funcionalmente semelhantes ao longo das vistas separadas, e que, juntamente com a descrição detalhada abaixo são incorporadas na e fazem parte da especificação, servem para ilustrar ainda mais várias concretizações e para explicar vários princípios e vantagens todos de acordo com a presente invenção, em que:
[009] A Figura 1 ilustra um processador do computador, de acordo com uma concretização da presente invenção.
[0010] A Figura 2 ilustra uma execução da operação decimal de ponto flutuante, de acordo com uma concretização da presente invenção; e
[0011] A Figura 3 é um diagrama de blocos que ilustra um sistema de processamento de informação de acordo com uma concretização da presente invenção.
Descrição Pormenorizada
[0012] Como requerido, concretizações pormenorizadas da presente invenção são aqui descritas, no entanto, é para ser entendido que as concretizações divulgadas são meramente exemplos da invenção, que podem ser incorporadas em várias formas. Portanto, detalhes específicos estruturais e funcionais aqui descritos não são para ser interpretados como limitando, mas meramente como uma base para as reivindicações e, como uma base representativa para o ensino de uma pessoa versada na técnica para variadamente empregar a presente invenção em virtualmente qualquer estrutura adequada detalhada e função. Além disso, os termos e expressões utilizados neste documento não se destinam a ser limitantes, mas em vez disso, para fornecer uma descrição compreensível da invenção. 1. Os termos "um" ou "uma", como aqui utilizado, são definidos como um ou mais de um. O termo pluralidade, tal como aqui utilizado, é definido como duas ou mais do que duas. O termo outro, tal como aqui utilizado, é definido como pelo menos um segundo ou mais. Os termos incluindo e / ou tendo, como aqui utilizado, são definidos como compreendendo (isto é, linguagem aberta). O termo acoplado, como aqui utilizado, é definido como ligado, embora não necessariamente diretamente, e não necessariamente mecanicamente.
[0013] O sistema e métodos descritos abaixo incluem um processador de ponto flutuante decimal que é capaz de gerar uma exceção, aqui referida como uma "exceção quântica", quando um resultado de uma operação de ponto flutuante decimal não representa o quantum preferido, tal como o expoente preferido, tal como definido pelo IEEE 754-2008. Isto é especialmente útil para o software ou linguagens de programação que suportam um formato decimal que tem uma maior precisão ou intervalo do que o hardware em cima com ele executa porque permite a detecção de processamento que excede o formato de hardware. a. No contexto da presente discussão, "quantum" se refere a "unidades" dos dígitos menos significativos de uma representação de ponto flutuante. Definidos anteriormente exceções de ponto flutuante detectam algumas imprecisões de processamento, mas não completamente detectam o caso de um resultado de uma operação de ponto flutuante decimal que tem uma representação à sua dimensão ou expoente que não é o expoente preferido. Em outras palavras, exceções de ponto flutuante existentes não completamente indicam o caso de um resultado da operação de ponto flutuante decimal que não tem o expoente que teria sido criado se houvesse uma maior precisão no processador para representar o coeficiente. O padrão IEEE 754-2008 define o valor de um quantum preferido, mas não define uma exceção para não atingir esse valor preferido no resultado de operações de ponto flutuante decimais. A exceção do quantum dos métodos e sistemas descritos abaixo é definida para ter um controle semelhante como outras exceções do IEEE. A exceção quântica também tem uma máscara associada, indicador e código de exceção. Isto permite que as linguagens de programação com precisão e intervalos diferentes sejam facilmente emuladas sobre os modelos normalizados e proporciona toda a precisão e gama dos formatos enquanto a detecção de mudanças de expoente inesperadas. b. O evento de exceção de quantum de uma concretização ocorre quando uma operação de ponto flutuante decimal produz um resultado que é arredondado ou fixado. Embora algumas implementações de Java incluam eventos separados chamados arredondado e fixados, a exceção do quantum de uma concretização essencialmente indica que a precisão ou alcance do resultado foi excedido. O mecanismo de informação quântica de exceção em uma concretização é controlável e tem um pouco de máscara para controlar a ação resultante da afirmação da exceção. Em uma concretização, um bit de máscara é dedicado na palavra de controle de ponto flutuante (FPC) de um processador para mascarar a exceção do quantum da captura para o manipulador de exceção do programa. Quando o bit de máscara é uma exceção e um quantum ocorre, o resultado da operação de ponto flutuante decimal causando a exceção está inscrita nos registros de ponto flutuante (FPRs) e um código que identifica o tipo de exceção está escrito na palavra de Controle de Ponto Flutuante (FPC) e a execução do programa está aprisionada para o manipulador de interrupção do programa. Quando o bit de máscara não está definido, a indicação de exceção quântica, que é uma indicação pegajosa, está definida e nenhuma armadilha é tomada.
[0014] Concretizações da presente invenção operam com números decimais em ponto flutuante. Um número de ponto flutuante decimal como definidos por vários padrões, incluindo IEEE 754-2008, tem três componentes: um bit de sinal, um expoente, e significando. A magnitude do número, que é um valor assinado, é o produto do significando e a raiz elevada à potência do expoente. Em um número de ponto flutuante decimal, a raiz é dez (10). O sinal do número é positivo ou negativo dependendo se o bit de sinal ser zero ou um, respectivamente. a. O significando tem um ponto de raiz implícito, e sua posição depende de qual interpretação, ou vista, do dado de ponto flutuante está sendo aplicado. Concretizações da presente invenção representam números de ponto flutuante decimais, com vista unidades direita, onde o dígito mais à direita do significando é o dígito de unidades e o ponto de raiz está implícito para estar imediatamente à direita do significando inteiro.
[0015] A Figura 1 ilustra um processador do computador 100, de acordo com uma concretização da presente invenção. O processador do computador 100 inclui um processador de instrução que inclui uma unidade de ponto flutuante decimal 110, registradores de ponto flutuante 108 e controlador de programa 124. A unidade de ponto flutuante decimal 110 recebe instruções de ponto flutuante decimais de um controlador de programa 124, que recebe instruções de programa armazenadas em uma da memória do programa 152. Os instruções de ponto flutuante decimais emitidas para a unidade de ponto flutuante decimal 110 incluem, por exemplo, instruções especificando a conversão de dados e / ou cálculos de ponto flutuante decimais para executar em um ou mais números de ponto flutuante decimais. A unidade de ponto flutuante decimal 110 aceita operandos de ponto flutuante decimais por leitura dados de ponto flutuante decimais de um ou mais registradores de fonte dentro dos registradores de ponto flutuante 108, executa uma operação de ponto flutuante decimal especificada e armazena o resultado em um registrador de destino dentro dos registradores de ponto flutuante. Os dados são geralmente trocados entre o registrador de ponto flutuante 108 e uma memória de dados 150. a. A unidade de ponto flutuante decimal de uma concretização realiza operações com números decimais de ponto flutuante de acordo com as normas aplicáveis de processamento de ponto flutuante, tais como o padrão de ponto flutuante IEEE-754-2008. Os valores de quantum dos operandos de origem que são as entradas para uma operação de ponto flutuante decimal são geralmente uma base para definir um quantum preferido, tal como definido pela norma relevante para a saída daquela operação. Devido à precisão disponível na unidade de ponto flutuante decimal 110, os valores dos operandos de fonte podem produzir um resultado que tem um quantum que é diferente do quantum preferido. O quantum do resultado pode alterar a partir do quantum preferido devido, por exemplo, à precisão limitada de hardware da unidade de ponto flutuante decimal 110 que faz com que o arredondamento dos intermediários ou resultados finais da operação especificada. As diferenças entre a precisão de cálculo de hardware e a precisão de arquiteturas de software que incorporam a aritmética do ponto flutuante decimal são detectados por esta perda de mecanismo de detecção de quantum que permite que o software detecte quando existe uma necessidade de mudar a precisão de hardware para emular uma maior precisão, o que fornece uma implementação de desempenho optimizado.
[0016] A unidade de ponto flutuante decimal 110 de uma concretização inclui um detector de exceção de quantum 112. O detector de exceção quântica 112 detecta a ocorrência de um resultado produzido por uma operação de ponto flutuante decimal que tem um quantum que é diferente do quantum preferido, onde o quantum preferido é um valor definido, que é determinado, por exemplo, com base nos valores e / ou quantum dos operandos fonte. As diferenças entre o quantum preferido e o quantum do resultado de uma operação particular, são capazes de ser causada por, por exemplo, um excesso de hardware ou condição causada por underflow os valores reais dos operandos de origem. a. O detector de exceção quântica 112 de uma concretização afirma uma "exceção quântica"para indicar que um resultado produzido pela unidade de ponto flutuante decimal 110 tem um quantum, ou expoente, valor que é diferente do valor quântico preferido. A afirmação e o tratamento de exceção de quantum de uma concretização é semelhante à de outras exceções de processamento de ponto flutuante. A afirmação da exceção quântica em uma concretização é refletida nos indicadores de exceção quânticas 122, que são mantidos pela unidade de ponto flutuante 110 de uma concretização e são capazes de ser atribuídas, de modo intercambiável, a um código de exceção para identificar a exceção de ponto flutuante decimal sendo afirmada, tal como a exceção de quantum.
[0017] A concretização da invenção suporta controlar as medidas tomadas em resposta a uma afirmação de uma exceção de quantum pelo detector de exceção de quantum 112. Uma concretização da presente invenção mantém um registrador de controle de exceção 106 que inclui uma ou mais máscaras de exceção de controle que são atribuídas, de modo intercambiável, a um estado definido ou não definido. Em uma concretização da presente invenção, o processador inclui uma palavra de controle de ponto flutuante (FPC) como um exemplo de registrador de controle de exceção 106.
[0018] O registrador de controle exceção 106 permite, por exemplo, a configuração de máscaras para controlar as respostas a várias exceções de ponto flutuante, tais como as exceções definidas pelo padrão IEEE 754-2008. Além de permitir que a definição de máscaras para exceções definidas por vários padrões, uma concretização da presente invenção inclui um bit de máscara adicional para controlar o processamento que ocorre em resposta a uma afirmação de exceção quântica acima descrita. Em uma concretização, se uma exceção quântica ocorre quando o bit de máscara de exceção de quantum atribuído a um estado ativado, o resultado aritmético produzido pela unidade de ponto flutuante decimal, que tem um quantum diferente quântico do quantum preferido, é escrito no registrador de resultado 120 nos registradores de ponto flutuante 108 e o controlador de programa 124 é sinalizado para interceptar a execução do programa para o manipulador de interrupção do programa. Se a exceção quântica ocorre quando o bit de máscara de exceção quântica é atribuído a um estado não definido, uma indicação de exceção de quantum 122 é definida como uma indicação pegajosa e a execução do programa continua sem uma armadilha para o manipulador de interrupção do programa. A exceção quântica de indicador "pegajoso" 122 em uma concretização permanece definida durante o processamento de instruções subsequentes para permitir a detecção diferido, e o processamento, resultando em resposta à exceção quântica após a execução da qual a sequência de instruções após a ocorrência da exceção de quantum.
[0019] Uma concretização da presente invenção proporciona um campo de controle adicional, em algumas instruções de código de máquina para detecção de controle adicional, e as medidas tomadas em resposta às mesmas, de exceções quânticass. Em um exemplo, algumas instruções em linguagem de máquina, tais como instruções de linguagem de máquina de ponto flutuante decimal, incluem um bit de controle de exceção quântica (bit XqC), ou um campo de controle de exceção de quantum, no texto de instrução em linguagem de máquina para permitir a detecção de exceção de quantum individualmente para aquelas instruções. Exemplos de tais instruções incluem, por exemplo, um Convert da instrução Integer, uma instrução Divide, uma instrução Load FP Integer, uma instrução de carga arredondada, uma instrução de Multiplicar, uma instrução de Quantizar, uma instrução Rearredondar, uma instrução de Subtrair, e assim por diante.
[0020] Incluindo um bit de controle de exceção quântica ou de campo em instruções individuais permite a utilização da mesma instrução de maneiras diferentes para detectar ou não detectar exceções quânticass e proporciona flexibilidade na detecção de exceções de resultados inexatos. A flexibilidade na detecção de exceções de resultados inexatos permite realizar o processamento diferente quando uma operação aritmética é esperada para produzir um resultado com, por exemplo, a conversão implícita ou conversão explícita entre tipos de dados, ou quando um resultado de operação aritmética, por exemplo, operações de floor e Ceil, tal como definido por várias linguagens de programação de software. Um exemplo de um ambiente onde inesperadas conversões implícitas podem ocorrer é um caso em que implementações de software de ponto flutuante decimal são emuladas com maior precisão do que o hardware sobre o qual o software é executado. Em tal caso, o ambiente de software, com base na sua maior precisão, determina que o cálculo especificado é capaz de manter o quantum preferido. No entanto, o hardware, que tem menos precisão, deve arredondar o resultado e uma condição de inexatidão é inesperadamente encontrada. No entanto, a "inexatidão"resultante de conversões explícitas, por exemplo, cortando pedaços, não deve resultar na alteração da execução do programa. Em caso de uma conversão implícita entre tipos de dados do qual o programador não estaria consciente, então a inexatidão deve ser detectada e a execução do programa deve ser alterada para esse caso. Uma vez que a inexatidão é um componente de uma perda quântica, o controle adicional é fornecido em uma concretização para controlar a detecção de exceção quântico, e o processamento de respostas para a ocorrência destas exceções quânticass, numa base de instruções. a. Em uma concretização, o campo de controle das instruções de ponto flutuante decimais selecionadas que é usado para controlar outras exceções é expandido para também codificar um campo de controle de exceção quântica incluindo os bits de controle de exceção quântica (por exemplo, bits XqC). Num exemplo, os bits de controle de exceção quântica (bits XqC) são codificados em um campo de controle de Modo de arredondamento (RMC) das instruções de ponto flutuante decimais selecionadas. O campo RMC de um exemplo é um campo de quatro (4) bits, onde os valores igual a 0 e 8 até 15 tinha sido previamente definidos para controlar exceções associadas com modos de arredondamento explícitos particulares. Neste exemplo, o campo de controle exceção de quantum de uma concretização é atribuído a valores do campo RMC igual a 1 até 7. Os valores do campo RMC igual a 1 até 7 habilitam exceções quânticass e escolhem modos de arredondamento específicos para esses valores. Definir o campo RMC destas instruções selecionadas para valores de 0 ou 8 até 15 não resulta em detecção de exceções quânticass quando as instruções são executadas. Os valores de campo RMC iguais a um valor de 1 até 7, no entanto, resultaram na detecção de exceções quânticas e correspondente alteração da execução do programa.
[0021] A Figura 2 ilustra uma execução da operação de ponto flutuante decimal 200, de acordo com uma concretização da presente invenção. A execução da operação de ponto flutuante decimal 200 começa por receber, em 202, uma instrução de operação de ponto flutuante decimal para a execução de uma unidade de ponto flutuante decimal 102. Em uma concretização, a instrução de operação de ponto flutuante decimal recebida é parte de um programa armazenado na memória de programa 152 e é recebida pelo controlador de programa 124 de um processador do computador 100. O controlador de programa 124 emite a instrução de operação de ponto flutuante decimal recebida a uma unidade de ponto flutuante decimal 110 para execução. Em uma concretização, a instrução de ponto flutuante decimal especifica um primeiro operando fonte, Operando A 102, e um segundo operando fonte, Operando B 104. Embora estes dois operandos fonte são ilustrados como residindo no registrador de ponto flutuante 108, vários modos de endereçamento são capazes de serem usado para especificar operandos de origem e destino que estão localizados em vários locais, como é compreendido pelos praticantes de conhecimento ordinário na técnica à luz da presente discussão. a. O tratamento continua com a leitura, em 204, do primeiro operando fonte, operando A 102, e lendo, em 206, o segundo operando fonte, o operando B 104. Concretizações são capazes de aceitar um ou mais operandos em um processador de instrução através de quaisquer meios adequados. O quantum preferido para o resultado a ser produzido pela operação de ponto flutuante decimal recebida é, então, determinada, em 208. Em uma concretização, o quantum preferido é determinado com base, pelo menos, em parte, dos valores dos dois operandos de origem, operando A 102 e Operando B 104.
[0022] A operação de ponto flutuante decimal especificada pela instrução do ponto flutuante decimal recebida é, então, executada, em 210. A determinação é feita, em 212, se o resultado da instrução do ponto flutuante decimal executada mantém o quantum preferido para esse resultado.
[0023] Se o resultado da operação de ponto flutuante decimal não conseguiu manter o quantum preferido, o processamento continua para determinar, em 220, se uma máscara de controle de exceção quântica está definida. Como descrito acima, várias concretizações fornecem uma ou mais máscaras de controle para afetar o resultado de uma ocorrência de uma exceção quântica. Uma máscara controle de exceção de quantum é capaz de ser definida em um registrador de controle de exceção 106, ou um bit de controle exceção quântica ou o campo é capaz de ser codificado em instruções de ponto flutuante decimais individuais em linguagem de máquina. Num caso de codificação de bits de controle de exceção de quantum em instruções individuais, uma concretização lê o bit de controle de exceção quântica, ou a máscara, que é codificada na instrução de linguagem máquina e usa esse valor para a duração da execução daquela instrução de linguagem de máquina.
[0024] Se a máscara de exceção quântica é determinada, em 220, para ser fixada, o processador armazena, em 230, o resultado da operação de ponto flutuante decimal em um resultado ou local de destino 120, tal como o registrador de resultado 120 dos registradores de ponto flutuante 108. A exceção do quantum é indicada por uma saída para o controlador de programa 124 causando uma armadilha, em 232, da execução do programa para o manipulador de interrupção do programa.
[0025] Se a máscara de exceção de quantum é determinada, em 220, para ser não definida, a exceção do quantum não causa uma armadilha da execução do programa, mas sim a exceção quântica é observada para processamento posterior. No caso de a máscara de exceção quântica sendo definida, o processamento de uma concretização armazena, em 222, o resultado em um resultado ou local de destino 120, tal como o registrador de resultado 120 dos registradores de ponto flutuante 108. A exceção do quantum é indicada pela fixação de um sinalizador de exceção quântica 122 através de uma indicação pegajoso para indicar que uma exceção quântica ocorreu.
[0026] Se a operação de ponto flutuante decimal realizada em 210 produziu um resultado que manteve o quantum preferido, que resultado é armazenado, em 214. Em uma concretização, o resultado é armazenado em um resultado ou local de destino 120 do registrador de ponto flutuante 108. Deve ser notado que, se o resultado da operação de ponto flutuante decimal manteve o quantum preferido, o valor ou o estado do indicador de exceção quântica 122 não é afetado. Ao deixar o estado do indicador de exceção de quantum 122 não afetado, a indicação de uma ocorrência de uma exceção quântica que ocorreu em uma instrução de ponto flutuante decimal executada anteriormente é mantido na indicação de exceção quântica, e posterior processamento é capaz de examinar a indicação de exceção de quantum 122 para determinar se o resultado produzido por uma sequência de instruções pode ter sido afetado por uma exceção quântica ocorrendo durante a execução daquela sequência de instruções. a. Depois de armazenar o resultado, em 214, ou definindo o sinalizador de exceção do quantum, em 224, o processamento determina, em 240, se existem mais instruções para executar. Uma concretização da presente invenção permite que uma sequência de instruções a ser definida para ser executada com a máscara de exceção quântica não definida de tal forma que uma exceção quântica ocorrendo durante qualquer instrução de que a sequência irá causar uma indicação pegajosa de exceção quântico 122 a ser definida e permitir continuar com a execução daquela sequência de instruções. A indicação pegajoso de exceção quântica 122 é então examinada, como descrito abaixo, para determinar se uma exceção quântica ocorreu durante a sequência de instruções. Se a indicação pegajosa de exceção quântica 122 é determinada para estar no estado ativado no final de uma tal sequência de instruções, a execução do programa é alterado para executar o processamento especial, em resposta à ocorrência da mudança quântica que aborda a ocorrência da exceção quântica. b. Se não existem mais instruções, é feita uma determinação, em 242, se a próxima instrução é uma instrução de ponto flutuante decimal. Se a próxima instrução é uma instrução do ponto flutuante decimal, o processamento retorna para receber, em 202, aquela instrução ponto flutuante decimal. Se a próxima instrução não é uma instrução do ponto flutuante decimal, o processamento retorna para a determinação, em 240, se houver mais instruções para executar.
[0027] Quando não há mais instruções a serem executadas, o processamento de uma concretização continua a determinar, em 244, se a indicação de exceção de quantum 122 foi definida. Como descrito acima, o processamento define o sinalizador de exceção quântica se a máscara de exceção quântica não tiver sido definida e uma exceção quântica ocorreu durante uma sequência de instruções de programa. No caso de a indicação de exceção quântica ter sido fixada, o processamento realiza, em 246, o processamento para acomodar o evento de exceção quântica previamente detectado. O processamento então termina.
Sistema de Processamento de Informação
[0028] Como será apreciado por uma pessoa versada na técnica, os aspectos da presente invenção podem ser concretizados como um sistema, método ou um produto programa de computador. Por conseguinte, os aspectos da presente invenção podem tomar a forma de uma concretização totalmente em hardware, uma concretização em software inteiramente (incluindo firmware, software residente, micro-código, etc) ou uma concretização combinando aspectos de software e hardware que podem todos ser geralmente referido aqui como um "circuito", "módulo"ou "sistema". Além disso, aspectos da presente invenção pode assumir a forma de um produto programa de computador incorporado em um ou mais meio de computador com o código de programa legível por computador no mesmo embarcado. a. Qualquer combinação de um ou mais meios legível por computador podem ser utilizados. O meio legível por computador pode ser um meio de armazenamento legível por computador. Um meio de armazenamento legível por computador pode ser, por exemplo, mas não limitado a, um sistema eletrônico, magnético, óptico, eletromagnéticos, infravermelho ou de semicondutores, o aparelho ou o dispositivo, ou qualquer combinação adequada destes. Exemplos mais específicos (uma lista não exaustiva) do meio de armazenamento legível por computador incluiria o seguinte: uma ligação eléctrica tendo um ou mais fios, uma disquete de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória apenas de leitura (ROM), uma memória só de leitura programável apagável (EPROM ou memória flash), uma fibra óptica, uma memória só de leitura de disco compacto portátil (CD-ROM), um dispositivo de armazenamento óptico, um dispositivo de armazenamento magnético, ou qualquer combinação adequada destes materiais. No contexto do presente documento, um meio de armazenamento legível por computador pode ser qualquer meio tangível que pode conter, ou armazenar um programa para o uso por ou em conexão com um sistema de execução da instrução, o aparelho ou o dispositivo.
[0029] O código de programa de computador para a realização de operações para os aspectos da presente invenção podem ser escritos em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada para objetos tais como Java, Smalltalk, C+ + ou outras linguagens de programação semelhantes e convencionais processuais, tais como a linguagem de programação "C" ou linguagens de programação similares. O código do programa pode ser executado exclusivamente no computador do usuário, em parte no computador do usuário, como um pacote de software standalone, em parte no computador do usuário e, em parte, em um computador remoto ou inteiramente no computador remoto ou servidor.
[0030] Aspectos da presente invenção são descritos abaixo com referência às ilustrações fluxograma e / ou diagramas de blocos de métodos, aparelhos (sistemas) e produtos de programa de computador de acordo com concretizações da invenção. Será entendido que cada bloco das ilustrações fluxograma e / ou diagramas de blocos, e combinações de blocos nas ilustrações fluxograma e / ou diagramas de blocos, podem ser implementados por instruções de programa de computador. Estas instruções de programa de computador podem ser fornecidas a um processador de um computador de uso geral, computador para fins especiais, ou outro aparelho de processamento de dados programável para produzir uma máquina, de tal modo que as instruções, que executam, através do processador do computador ou outro aparelho de processamento de dados programável, criam meios para a execução das funções / atos especificados no fluxograma e / ou bloco de diagrama de blocos ou blocos. Estas instruções de programa de computador pode também ser armazenadas num meio legível por computador, que pode dirigir um computador, outro aparelho de processamento de dados programável, ou outros dispositivos para funcionar de uma maneira particular, de tal modo que as instruções armazenadas no meio legível por computador produz um artigo de fabricação, incluindo instruções que implementam a função / ato especificado no fluxograma e / ou bloco de diagrama de blocos ou blocos.
[0031] As instruções de programa de computador podem também ser carregadas em um computador, outro aparelho de processamento de dados programável, ou outros dispositivos para causar uma série de etapas operacionais para ser executadas no computador, de outro aparelho programável ou outros dispositivos para produzir um processo de computador implementado de tal modo que as instruções que executam no computador ou outro equipamento programável proporcionam processos para a execução das funções / atos especificados no fluxograma e / ou bloco de diagrama de blocos ou blocos.
[0032] Referindo-nos agora à Figura 3, que é um diagrama de blocos que ilustra um sistema de processamento de informação 300 que pode ser utilizado em conjugação com o processador 100 discutido acima com respeito à Figura 1. O sistema de processamento de informação 300 baseia-se um sistema de processamento adequadamente configurado adaptado para aplicar uma ou mais concretizações da presente invenção. Do mesmo modo, qualquer sistema de processamento adequadamente configurado pode ser usado como o sistema de processamento de informação 300 para concretizações da presente invenção. a. O sistema de processamento de informação 300 inclui um computador 302. O computador 302 tem um processador (s) 304 que está ligado a uma memória cache 306, a memória 322, uma interface de armazenamento em massa 308, e hardware do adaptador de rede 310. Um barramento do sistema 312 interliga esses componentes do sistema.
[0033] A interface de armazenamento em massa 308 é usada para conectar dispositivos de armazenamento em massa, tais como dispositivo de armazenamento de dados 314, para o sistema de processamento de informações 300. Um tipo específico de dispositivo de armazenamento de dados é uma unidade óptica, tal como uma unidade de CD / DVD, que pode ser usada para armazenar dados de e para ler os dados a partir de um meio legível por computador ou um produto de armazenamento, tal como (mas não limitado a) um CD / DVD 316. Outro tipo de dispositivo de armazenamento de dados é um dispositivo de armazenamento de dados configurado para suportar, por exemplo, operações do sistema de arquivos do tipo NTFS.
[0034] Um sistema operacional (não mostrado) incluído na memória 322 é um sistema operacional multitarefa adequado como o Linux, UNIX, Windows XP e sistema operacional Windows Server 2003. Concretizações da presente invenção são capazes de utilizar qualquer outro sistema operacional adequado. Algumas concretizações da presente invenção utilizam arquiteturas, tais como um mecanismo de quadro de trabalho orientado a objetos, que permite que as instruções dos componentes do sistema operacional (não mostradas) para serem executadas em qualquer processador localizado dentro do sistema de processamento de informação 300. O hardware de adaptador de rede 310, em uma concretização, proporciona interfaces de comunicações de rede a uma ou mais redes 320. As concretizações da presente invenção são capazes de serem adaptadas para trabalhar com quaisquer ligações de comunicações de dados analógicos incluindo técnicas digitais dos dias presentes e / ou através de um mecanismo de rede futura.
[0035] O fluxograma e os diagramas de blocos nas figuras ilustram a arquitetura, a funcionalidade e a operação de implementações possíveis de sistemas, os métodos e produtos de programa de computador de acordo com várias concretizações da presente invenção. A este respeito, cada bloco nos diagramas de fluxograma ou bloco podem representar um módulo de segmento, ou porção de código, o qual compreende uma ou mais instruções executáveis para implementar a função lógica especificada (s). Deve também ser notado que, em algumas implementações alternativas, as funções observadas no bloco podem ocorrer fora da ordem observadas nas figuras. Por exemplo, dois blocos mostrados na sucessão podem, de fato, ser executados substancialmente simultaneamente, ou os blocos podem, por vezes, ser executados na ordem inversa, dependendo da funcionalidade envolvida. Também será notado que cada bloco dos diagramas de bloco e / ou a ilustração do fluxograma, e combinações de blocos nos diagramas de bloco e / ou ilustração do fluxograma, podem ser implementados por sistemas baseados em hardware para fins especiais que desempenham as funções específicas ou atos, ou combinações de hardware de propósito específico e instruções de computador.
Exemplos não limitativos
[0036] Embora concretizações específicas da invenção tenham sido divulgadas, os que têm conhecimentos ordinários na técnica compreenderão que as alterações podem ser feitas às concretizações específicas sem se afastar do espírito e do escopo da invenção. O escpo da invenção não é para ser limitado, por conseguinte, às concretizações específicas, e pretende-se que as reivindicações anexas cobram todas e quaisquer tais aplicações, modificações e concretizações dentro do escopo da presente invenção.

Claims (14)

1. Método para detecção exceção de quantum de ponto flutuante decimal, o método compreendendo as etapas de aceitar pelo menos um operando de ponto flutuante decimal (102, 104); obter (202) um comando para uma operação de ponto flutuante decimal; e caracterizado pelo fato de: executar o comando que compreende: determinar (208) o quantum preferido com base no pelo menos um operando decimal de ponto flutuante, o quantum preferido indicando um valor definido representado por um dígito menos significativo de um significando do resultado decimal do ponto flutuante; realizar (210) uma operação de ponto flutuante decimal no pelo menos um operando de ponto flutuante decimal para produzir um resultado decimal de ponto flutuante; determinar, em resposta a um campo de controle no comando, que o quantum do resultado decimal em ponto flutuante é diferente do quantum preferido; e fornecer, em resposta à etapa de determinação de que o quantum da casa decimal o resultado do ponto flutuante é diferente do quantum preferido, uma saída indicando uma exceção de quantum, a exceção de quantum ocorrendo apenas em resposta ao quantum do resultado decimal do ponto flutuante ser diferente do quantum preferido.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de fornecer uma saída compreende uma etapa de configuração, em resposta à determinação de que o resultado decimal em ponto flutuante falha em manter o quantum preferido, um flag de exceção de quantum.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a etapa de fornecer uma saída compreende uma etapa de acionar uma armadilha de execução.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que compreende ainda as etapas de: manter um flag de exceção de quantum em um estado definido e não definido; manter uma máscara de exceção de quantum em um estado definido e não definido; executar uma sequência de etapas, a sequência de etapas compreendendo um comando para a operação de ponto flutuante decimal, sendo a etapa de executar a operação de ponto flutuante decimal em resposta à etapa de executar o comando para a operação de ponto flutuante decimal; armazenar o resultado de ponto flutuante decimal em um local de armazenamento de destino; continuar, em resposta à máscara de exceção de quantum estar no estado não definido e determinar que o resultado decimal em ponto flutuante não consiga manter o quantum preferido, a execução da sequência de etapas; e capturar, em resposta à máscara de exceção de quantum estar no estado definido e determinar que o resultado de ponto flutuante decimal falha em manter o quantum preferido, execução da sequência de etapas, a captura compreendendo a execução de um manipulador de interrupção e o fornecimento da saída que compreende definir o flag de exceção de quantum no estado definido.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende ainda: determinar, subsequentemente à execução da sequência de etapas, que o flag de exceção de quantum esteja no estado definido; e alterar a execução de etapas, em resposta à determinação de que o flag de exceção de quantum esteja no estado definido e subsequente à execução da sequência de etapas, para resolver a ocorrência da exceção de quantum.
6. Método, de acordo com a reivindicação 4 ou 5, caracterizado pelo fato de que a etapa de manutenção da máscara de exceção de quantum compreende ainda as etapas de: ler um valor de máscara de exceção de quantum codificado em um comando correspondente ao comando para a operação de ponto flutuante decimal, manutenção da máscara de exceção de quantum compreendendo o uso, durante uma execução do comando para a operação de ponto flutuante decimal, o valor da máscara de exceção de quantum.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que o valor da máscara de exceção de quantum é codificado em um campo de controle de exceção do comando, o campo de controle de exceção que codifica ainda máscaras de exceção para outras exceções de ponto flutuante.
8. Sistema para detecção exceção de quantum de ponto flutuante decimal, o sistema compreendendo: uma memória; e um processador (100) acoplado comunicativamente à memória, em que o processador compreende: um processador operável para: aceitar pelo menos um operando de ponto flutuante decimal; obter comando contendo um código de operação para uma operação de ponto flutuante decimal; e caracterizado pelo fato de: executar o comando que compreende: determinar o quantum preferido com base no pelo menos um operando de ponto flutuante decimal, o quantum preferido indicando um valor definido representado por um dígito menos significativo de um significando do resultado do ponto flutuante decimal; realizar uma operação de ponto flutuante decimal no pelo menos um operando de ponto flutuante decimal para produzir um resultado decimal de ponto flutuante; determinar, por um detector de exceção de quantum (112) do processador, em resposta a um campo de controle no comando, que o quantum do resultado decimal em ponto flutuante é diferente do quantum preferido; e fornecer, por uma unidade de resposta de exceção de quantum do processador, em resposta ao detector de exceção de quantum, determinando que o quantum do resultado decimal em ponto flutuante é diferente do quantum preferido, uma saída (122) indicando uma exceção de quantum, a exceção de quantum que ocorre apenas em resposta ao quantum do resultado decimal em ponto flutuante ser diferente do quantum preferido.
9. Sistema, de acordo com a reivindicação 8, caracterizado pelo fato de que a unidade de resposta a exceções de quantum é ainda operável para configuração, responsiva à determinação do detector de exceção de quantum (112) que determina que o resultado do ponto flutuante decimal falha em manter o quantum preferido, um flag de exceção de quantum.
10. Sistema, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que a unidade de resposta de exceção de quantum é ainda operável para fornecer uma saída (122) que compreende acionar uma armadilha de execução.
11. Sistema, de acordo com qualquer uma das reivindicações 8 a 10, caracterizado pelo fato de que: o processador é ainda operável para: manter um flag de exceção de quantum em um estado definido e não definido; manter uma máscara de exceção de quantum em um estado definido e não definido; executar uma sequência de etapas, a sequência de etapas compreendendo um comando para a operação de ponto flutuante decimal; realizar a operação de ponto flutuante decimal, responsiva à execução do comando para a operação de ponto flutuante decimal; armazenar o resultado de ponto flutuante decimal em um local de armazenamento de destino; continuar, em resposta à máscara de exceção de quantum estar no estado não definido e ao detector de exceção de quantum (112), determinar que o resultado do ponto flutuante decimal falha em manter o quantum preferido, a execução da sequência de etapas; e capturar, responsivo à máscara de exceção de quantum estar no estado definido e ao detector de exceção de quantum determinar que o resultado do ponto flutuante decimal falha em manter o quantum preferido, a execução da sequência de etapas, a unidade de resposta de exceção de quantum intercepta a execução causando o processador a executar um manipulador de interrupção; e a unidade de resposta de exceção de quantum é ainda operável para definir o flag de exceção de quantum no estado definido, responsivo à determinação de que o resultado decimal em ponto flutuante falha em manter o quantum preferido.
12. Sistema de acordo com a reivindicação 11, caracterizado pelo fato de que o processador é ainda operável para: determinar, após a execução da sequência de etapas, que o flag de exceção de quantum está no estado definido; e alterar a execução de etapas, responsivo à determinação de que o flag de exceção de quantum esteja no estado definido e subsequente à execução da sequência de etapas, para resolver a ocorrência da exceção de quantum.
13. Sistema, de acordo com a reivindicação 11 ou 12, caracterizado pelo fato de que o processador é ainda operável para: ler um valor de máscara de exceção de quantum codificado em um comando correspondente ao comando para a operação de ponto flutuante decimal; e usar, durante uma execução do comando para a operação de ponto flutuante decimal, o valor da máscara de exceção de quantum.
14. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que o valor da máscara de exceção de quantum é operável para codificação em um campo de controle de exceção do comando, o campo de controle de exceção que codifica ainda máscaras de exceção para outras exceções de ponto flutuante.
BRPI1102360-0A 2010-05-28 2011-05-30 método e sistema para detecção de exceção de quantum de ponto flutuante decimal BRPI1102360B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/789,765 2010-05-28
US12/789,765 US8219605B2 (en) 2010-05-28 2010-05-28 Decimal floating-pointing quantum exception detection

Publications (2)

Publication Number Publication Date
BRPI1102360A2 BRPI1102360A2 (pt) 2015-07-28
BRPI1102360B1 true BRPI1102360B1 (pt) 2021-03-02

Family

ID=43263979

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1102360-0A BRPI1102360B1 (pt) 2010-05-28 2011-05-30 método e sistema para detecção de exceção de quantum de ponto flutuante decimal

Country Status (14)

Country Link
US (2) US8219605B2 (pt)
EP (1) EP2430522B1 (pt)
JP (1) JP5005102B2 (pt)
KR (1) KR101464810B1 (pt)
CN (1) CN102331921B (pt)
AU (1) AU2010353843B2 (pt)
BR (1) BRPI1102360B1 (pt)
CA (1) CA2800643C (pt)
DK (1) DK2430522T3 (pt)
ES (1) ES2637205T3 (pt)
IL (1) IL223305A (pt)
RU (1) RU2526004C2 (pt)
SG (2) SG185620A1 (pt)
WO (1) WO2011147483A1 (pt)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170212763A1 (en) * 2014-07-25 2017-07-27 Hewlettt Packard Enterprise Development Lp Exception handling predicate register
CA2881033C (en) 2015-02-03 2016-03-15 1Qb Information Technologies Inc. Method and system for solving lagrangian dual of a constrained binary quadratic programming problem
US11797641B2 (en) 2015-02-03 2023-10-24 1Qb Information Technologies Inc. Method and system for solving the lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer
US10324728B2 (en) * 2015-12-17 2019-06-18 International Business Machines Corporation Lightweight interrupts for condition checking
US10114642B2 (en) * 2015-12-20 2018-10-30 Intel Corporation Instruction and logic for detecting the floating point cancellation effect
JP6966177B2 (ja) 2016-03-11 2021-11-10 ワンキュービー インフォメーション テクノロジーズ インク. 量子計算のための方法及びシステム
US9870273B2 (en) 2016-06-13 2018-01-16 1Qb Information Technologies Inc. Methods and systems for quantum ready and quantum enabled computations
US10044638B2 (en) 2016-05-26 2018-08-07 1Qb Information Technologies Inc. Methods and systems for quantum computing
US9537953B1 (en) * 2016-06-13 2017-01-03 1Qb Information Technologies Inc. Methods and systems for quantum ready computations on the cloud
WO2020056764A1 (zh) * 2018-09-21 2020-03-26 华为技术有限公司 一种浮点精度检测方法与装置
US11620153B2 (en) * 2019-02-04 2023-04-04 International Business Machines Corporation Instruction interrupt suppression of overflow exception
CA3126553A1 (en) 2019-06-19 2020-12-24 1Qb Information Technologies Inc. Method and system for mapping a dataset from a hilbert space of a given dimension to a hilbert space of a different dimension

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4958718A (pt) 1972-10-04 1974-06-07
JPS63208939A (ja) 1987-02-26 1988-08-30 Toshiba Corp 10進演算回路
JPS63214835A (ja) 1987-03-03 1988-09-07 Nec Corp 多項算術式の浮動10進数計算方式
JPS6412332A (en) 1987-07-07 1989-01-17 Oki Electric Ind Co Ltd Decimal arithmetic unit
JPH07248902A (ja) 1994-03-11 1995-09-26 Fujitsu Ltd 浮動小数点演算装置とその誤差補正方法および線形計画問題最適化装置とその最適解の求解方法
KR970022528A (ko) * 1995-10-31 1997-05-30 김광호 부동소수점 제산기에서의 익셉션 처리방법
US5892697A (en) 1995-12-19 1999-04-06 Brakefield; James Charles Method and apparatus for handling overflow and underflow in processing floating-point numbers
JP2000305750A (ja) 1999-04-26 2000-11-02 Denso Corp 車載用電子制御装置
US6427160B1 (en) 1999-08-10 2002-07-30 Sun Microsystems, Inc. Method and system for testing floating point logic
US6571265B1 (en) * 1999-10-29 2003-05-27 Intel Corporation Mechanism to detect IEEE underflow exceptions on speculative floating-point operations
US7069289B2 (en) 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US7299170B2 (en) 2003-06-28 2007-11-20 Transitive Limited Method and apparatus for the emulation of high precision floating point instructions
US7290023B2 (en) * 2003-11-20 2007-10-30 International Business Machines Corporation High performance implementation of exponent adjustment in a floating point design
US7102552B1 (en) 2005-06-07 2006-09-05 Windspring, Inc. Data compression with edit-in-place capability for compressed data
US8595279B2 (en) * 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
US8443029B2 (en) 2007-03-01 2013-05-14 International Business Machines Corporation Round for reround mode in a decimal floating point instruction
US8560591B2 (en) 2007-04-25 2013-10-15 International Business Machines Corporation Detection of potential need to use a larger data format in performing floating point operations
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data

Also Published As

Publication number Publication date
BRPI1102360A2 (pt) 2015-07-28
KR101464810B1 (ko) 2014-11-24
ES2637205T3 (es) 2017-10-11
EP2430522A1 (en) 2012-03-21
IL223305A (en) 2017-01-31
DK2430522T3 (en) 2017-09-11
AU2010353843B2 (en) 2014-08-28
CN102331921A (zh) 2012-01-25
JP2011248890A (ja) 2011-12-08
CA2800643C (en) 2018-11-20
JP5005102B2 (ja) 2012-08-22
RU2526004C2 (ru) 2014-08-20
WO2011147483A1 (en) 2011-12-01
RU2012150400A (ru) 2014-06-10
CA2800643A1 (en) 2011-12-01
US8219605B2 (en) 2012-07-10
SG185620A1 (en) 2012-12-28
SG193162A1 (en) 2013-09-30
US9244654B2 (en) 2016-01-26
US20110296229A1 (en) 2011-12-01
KR20110131139A (ko) 2011-12-06
IL223305A0 (en) 2013-02-03
AU2010353843A1 (en) 2012-12-20
US20120278374A1 (en) 2012-11-01
EP2430522B1 (en) 2017-07-19
CN102331921B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
BRPI1102360B1 (pt) método e sistema para detecção de exceção de quantum de ponto flutuante decimal
BR112014012398B1 (pt) Plataforma de computação e aparelho para gerenciamento de desempenho e energia de computação com estrutura de dados de desempenho de firmware
EP3571581B1 (en) Test pending external interruption instruction
PT835489E (pt) Metodo e sistema para utilizar dados invertidos para detectar dados corrompidos
FI87704C (fi) Foerfarande och anordning foer sjaelvtestning av flyttalsacceleratorprocessorer
US20160092162A1 (en) Machine instructions for converting to decimal floating point format from packed decimal format
WO2019140850A1 (zh) 测试案例推荐方法、电子装置及可读存储介质
Laguna Fpchecker: Detecting floating-point exceptions in gpu applications
JP5588006B2 (ja) 改良型モニタ機能実装
JP6909297B2 (ja) クロック比較器符号制御
Jorgensen et al. Assurance of accuracy in floating-point calculations-a software model study
JP6914230B2 (ja) フェイルセーフ計算を実施するための方法
BR102015014514A2 (pt) método de isolamento de falha de uma fenda de altitude em uma pluraridade de sensores de altitude, e , sistema de sensores para uso em aeronave
BR112014001918A2 (pt) processo de caracterização de sensibilidade de um componente eletrônico para processo de projeto de equipamento eletrônico

Legal Events

Date Code Title Description
B15G Petition not considered as such [chapter 15.7 patent gazette]

Free format text: NAO CONHECIDA A PETICAO NO 020120063834/RJ DE 11 / 07 / 2012 (VP 25 / 06 / 12) EM VIRTUDE DO DISPOSTO NO ART. 218, INCISO I DA LPI.

B150 Others concerning applications: publication cancelled [chapter 15.30 patent gazette]

Free format text: REFERENTE AO DESPACHO 15.7 DA RPI 2258.

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 30/05/2011, OBSERVADAS AS CONDICOES LEGAIS.