MX2008010873A - Procesador de punto de flotacion con requerimientos de potencia reducidos para suprecision seleccionable. - Google Patents

Procesador de punto de flotacion con requerimientos de potencia reducidos para suprecision seleccionable.

Info

Publication number
MX2008010873A
MX2008010873A MX2008010873A MX2008010873A MX2008010873A MX 2008010873 A MX2008010873 A MX 2008010873A MX 2008010873 A MX2008010873 A MX 2008010873A MX 2008010873 A MX2008010873 A MX 2008010873A MX 2008010873 A MX2008010873 A MX 2008010873A
Authority
MX
Mexico
Prior art keywords
floating point
point
bits
flotation
excess
Prior art date
Application number
MX2008010873A
Other languages
English (en)
Inventor
Kenneth Alan Dockser
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of MX2008010873A publication Critical patent/MX2008010873A/es

Links

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/49942Significance control
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)
  • Complex Calculations (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Abstract

Se describe un método y aparato para ejecutar una operación de punto de flotación con un procesador de punto de flotación que tiene una precisión determinada; se selecciona una subprecisión para la operación de punto de flotación en uno o más números de punto de flotación; la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de uno o más números de punto de flotación; la potencia puede ser removida de uno o más componentes en el procesador de punto de flotación que de otra forma sería utilizada pata almacenar procesar uno más bits en exceso, y la operación de punto de flotación es ejecutada con potencia removida de uno o más componentes.

Description

PROCESADOR DE PUNTO DE FLOTACION CON REQUERIMIENTOS DE POTENCIA REDUCIDOS PARA SUBPRECISION SELECCIONABLE CAMPO DE LA INVENCION Los procesadores de punto de flotación son unidades de cómputo especializadas que ejecutan algunas operaciones matemáticas, por ejemplo, multiplicación, división, funciones trigonométricas y funciones exponenciales, a alta velocidad. Por consiguiente, los sistemas de cómputo potentes con frecuencia incorporan procesadores de punto de flotación, ya sea como parte del procesador principal o como un co-procesador . Una representación de punto de flotación de un número comúnmente incluye un componente de signo, un exponente, y una mantisa. Para encontrar el valor de un número de punto de flotación, la mantisa es multiplicada por una base (comúnmente 2 en computadoras) elevada a la potencia del exponente. El signo se aplica al valor resultante .
ANTECEDENTES DE LA INVENCION La precisión del procesador de punto de' flotación queda definida por el número de bits utilizados para representar la mantisa. Mientras más bits en la mantisa, mayor la precisión. La precisión del procesador de punto de flotación generalmente depende de la aplicación particular. Por ejemplo, la norma ANSI/IEEE-754 (comúnmente seguida por computadoras modernas) especifica un formato sencillo de 32 bits que tiene un signo de 1 bit, un exponente de 8 bits, y una mantisa de 23 bits. Únicamente 23 bits de fracción de la mantisa son almacenados en la codificación de 32 bits, un bit entero, inmediatamente a la izquierda del punto binario queda implicado. La IEEE-754 también especifica un formato doble de 64 bits que tiene un signo de 1 bit, un exponente de 11 bits, y una mantisa de 53 bits. Análogo a la codificación sencilla, únicamente los 52 bits de fracción de la mantisa son almacenados en la codificación de 64 bits, un bit de entero, inmediatamente a la izquierda del punto binario, queda implicado. Una precisión más elevada produce como resultado una exactitud más elevada, pero comúnmente produce como resultado un consumo de potencia incrementado . El rendimiento de las operaciones aritméticas de punto de flotación puede acarrear ineficiencia de cómputo debido a que los procesadores de punto de flotación comúnmente quedan limitados a la precisión proporcionada ya sea por el formato sencillo, o por los formatos sencillo y doble. Aunque algunas aplicaciones pueden requerir estos tipos de precisión, otras aplicaciones pudieran no requerirlos. Por ejemplo, algunas aplicaciones de gráficos sólo pueden requerir una mantisa de 16 bits. Para estas aplicaciones gráficas, cualquier precisión más allá de los 16 bits de precisión tiende a producir como resultado un consumo de potencia innecesario. Esto es una preocupación particular en dispositivos operados por batería en donde la potencia es de gran importancia, tales como teléfonos c inalámbricos, asistentes digitales personales (PDA), computadoras portátiles, consolas de juegos, localizadores, y cámaras por mencionar algunos. Si se sabe que una aplicación siempre requiere una precisión reducida determinada, el procesador de punto de flotación se puede diseñar y construir a esa precisión reducida. Sin embargo, para procesadores de propósito general, la situación común es que para algunas aplicaciones, por ejemplo generación de gráficos 3D, puede ser aceptable una precisión reducida, y para otras aplicaciones, por ejemplo, ejecución de funciones del Sistema de Posicionamiento Global (GPS) , pudiera necesitarse una mayor precisión. Por consiguiente, existe la necesidad en la técnica de un procesador de punto de flotación en el cual sea seleccionable la precisión reducida, o subprecisión , del formato de punto de flotación. También se pueden utilizar técnicas de manejo de potencia para asegurar que ese procesador de punto de flotación no consuma más potencia de la necesaria para soportar la subprecisión seleccionada.
SUMARIO DE LA INVENCION Se describe un aspecto de un método para ejecutar una operación de punto de flotación con un procesador de punto de flotación que tiene un formato de precisión. El método incluye seleccionar una subprecisión para la operación de punto de flotación en uno o más números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de los números de punto de flotación. El método además incluye remover la potencia de uno o más componentes en el procesador de punto de flotación que de otra forma seria utilizada para almacenar o procesar uno o más bits en exceso, y ejecutar la operación de punto de flotación con la potencia removida de uno o más componentes. Se describe un aspecto de un procesador de punto de flotación que tiene un formato de precisión. El procesador de punto de flotación incluye un controlador de punto de flotación configurado para seleccionar una subprecisión para una operación de punto de flotación en uno o más números de punto de flotación, la selección de la subprecisión resulta en uno o más bits en exceso para cada uno de los números de punto de flotación, el controlador de punto de flotación además está configurado para remover la potencia de uno o más componentes en el procesador de punto de flotación que de otra forma seria utilizada para almacenar o procesar uno o más bits en exceso. El procesador de punto de flotación además incluye un operador de punto de flotación configurado para ejecutar la operación de punto de flotación. Se describe otro aspecto de un procesador de punto de flotación que tiene un formato de precisión. El procesador de punto de flotación incluye un registro de punto de flotación que tiene una pluralidad de elementos de almacenamiento configurados para almacenar una pluralidad de números de punto de flotación, y un operador de punto de flotación configurado para ejecutar una operación de punto de flotación en uno o más de los números de punto de flotación almacenados en el registro de punto de flotación. El procesador de punto de flotación además incluye un controlador de punto de flotación configurado para seleccionar una subprecisión para una operación de punto de flotación en dichos números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de los números de punto de flotación, uno o más bits en exceso son almacenados en uno o más de los elementos de almacenamiento del registro de punto de flotación, y en donde el controlador de punto de flotación además está configurado para remover la potencia de los elementos de almacenamiento para uno o más bits en exceso. Se describe un aspecto adicional de un procesador de punto de flotación que tiene un formato de precisión. El procesador de punto de flotación incluye un registro de punto de flotación configurado para almacenar una pluralidad de números de punto de flotación, y un operador de punto de flotación que tiene lógica configurada para ejecutar una operación de punto de flotación en uno o más de los números de punto de flotación almacenados en el registro de punto de flotación. El procesador de punto de flotación además incluye un controlador de punto de flotación configurado para seleccionar una subprecisión para una operación de punto de flotación en uno o más de los números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de los números de punto de flotación, y en donde el controlador de punto de flotación además está configurado para remover la potencia de una porción de la lógica que de otra forma seria utilizada para procesar uno o más bits en exceso. Se deberá entender que otras modalidades del procesador de punto de flotación, y del método para ejecutar operaciones de punto de flotación, serán fácilmente aparentes para aquellos expertos en la técnica a partir de la siguiente descripción detallada, en donde diversas modalidades del procesador de punto de flotación y del método para ejecutar operaciones de punto de flotación se muestran y describen a manera de ilustración. Tal como se podrá observar, son posibles otras modalidades diferentes del procesador de punto de flotación y del método para realizar las operaciones de punto de flotación, y los detalles utilizados para describir estas modalidades pueden experimentar modificación en muchos aspectos. Por consiguiente, las figuras y la descripción detallada se observarán como ilustrativas en naturaleza, y no como restrictivas.
BREVE DESCRIPCION DE LAS FIGURAS La figura 1 es un diagrama en bloques funcional que ilustra un ejemplo de un procesador de punto de flotación con subprecisión seleccionable ; La figura 2 es una ilustración gráfica de un ejemplo de un archivo de registro de punto de flotación utilizado en un procesador de punto de flotación con subprecisión seleccionable; La figura 3A es un diagrama conceptual que ilustra un ejemplo de una suma de punto de flotación realizada mediante el uso de un procesador de punto de flotación con subprecisión seleccionable; y La figura 3B es un diagrama conceptual que ilustra un ejemplo de una multiplicación de punto de flotación que es realizada mediante el uso de un procesador de punto de flotación con subprecisión seleccionable .
DESCRIPCION DETALLADA DE LA INVENCION La descripción detallada que se establece a continuación en relación con las figuras anexas pretende describir varias modalidades de la presente descripción, pero no pretende representar las únicas modalidades en las cuales se puede practicar la presente descripción. La descripción detallada incluye detalles específicos a fin de permitir un completo entendimiento de la presente descripción. Aquellos expertos en la técnica podrán apreciar, sin embargo, que la presente descripción se puede practicar sin estos detalles específicos. En algunos casos, estructuras y componentes bien conocidos se muestran en forma de diagrama de bloques a fin de ilustrar de manera más clara los conceptos de la presente descripción. Por lo menos en una modalidad de un procesador de punto de flotación, la precisión para una o más operaciones de punto de flotación se puede reducir de aquella del formato especificado. Además, las técnicas de administración de potencia se pueden emplear para garantizar que el procesador de punto de flotación no consuma más potencia de la necesaria para soportar la subprecisión seleccionada. Instrucciones proporcionadas al procesador de punto de flotación para ejecutar operaciones matemáticas pueden incluir un campo de control programable. El campo de control se puede utilizar para seleccionar la subprecisión del formato de punto de flotación y administrar el consumo de potencia. Al seleccionar la subprecisión del formato de punto de flotación, a aquél necesario para una operación particular, reduciendo asi el consumo de potencia del procesador de punto de flotación para soportar la subprecisión seleccionada, se puede lograr una mayor eficiencia asi como ahorros de potencia considerables. La figura 1 es un diagrama en bloques funcional que ilustra un ejemplo de un procesador de punto de flotación (FPP) 100 con subprecisión seleccionable . El procesador de punto de flotación 100 incluye un archivo de registro de punto de flotación (FPR) 110; un controlador de punto de flotación (CTL) 130; y un operador matemático de punto de flotación (FPO) 140. El procesador de punto de flotación 100 se puede ejecutar como parte del procesador principal, un coprocesador , o una entidad separada conectada al procesador principal a través de un enlace u otro canal. El archivo de registro de punto de flotación 110 puede ser cualquier medio de almacenamiento conveniente. En la modalidad que se muestra en la figura 1, el archivo de registro de punto de flotación 110 incluye varias ubicaciones de registro direccionables 115-1 (REGI), 115-2 ( REG2 ) , ... 115-N (REGN), cada uno configurado para almacenar un operando para una operación de punto de flotación. Los operandos pueden incluir, por ejemplo, datos de una memoria y/o los resultados de operaciones previas de punto de flotación. Las instrucciones proporcionadas al procesador de punto de flotación se pueden utilizar para mover los operandos hacia y desde la memoria principal. La figura 2 ilustra de manera esquemática un ejemplo de la estructura de datos para el archivo de registro de punto de flotación 110 que se utiliza en un procesador de punto de flotación 100 con subprecisión seleccionable, tal como se describió en conjunto con la figura 1. En la modalidad ilustrada en la figura 2, el archivo de registro de punto de flotación 110 incluye dieciséis ubicaciones de registro direccionables, a cada ubicación de registro se hace referencia con el número de referencia 200 en la figura 2 por conveniencia. Cada ubicación de registro 200 está configurada para almacenar un número de punto de flotación binario de 32 bits, en un formato sencillo de 32 bits de IEEE-754. En particular, cada ubicación de registro 200 contiene un signo de 1 bit 202, un exponente de 8 bits 204 , y una fracción de 24 bits 206. Sin embargo, se debería entender que otras modalidades del procesador de punto de flotación 100 pueden incluir un archivo de registro de punto de flotación 110 que esté formateado diferente al formato sencillo de 32 bits IEEE (incluyendo, pero no limitado al formato doble de 64 bits IEEE) , y/o puede contener un número diferente de ubicaciones de registro. Haciendo referencia nuevamente a la figura 1, el controlador de punto de flotación 130 se puede utilizar para seleccionar la subprecisión de las operaciones de punto de flotación utilizando una señal de control 133. Un registro de control (CRG) 137 se puede cargar con bits de selección de subprecisión por ejemplo transmitidos en el campo de control de una o más instrucciones. En una forma que se va a describir con mayor detalle a continuación, los bits de selección de subprecisión pueden ser utilizados por el controlador de punto de flotación 130 para reducir la precisión de los operandos. Los bits de selección de subprecisión también pueden ser utilizados para apagar porciones del procesador de punto de flotación 100. A manera de ejemplo, los bits de selección de subprecisión se pueden utilizar para remover la potencia de los elementos de registro de punto de flotación para los bits que no son requeridos para la subprecisión seleccionada. Los bits de selección de subprecisión también se pueden utilizar para remover la potencia de la lógica en el operador de punto de flotación FPO 140 que no es utilizado cuando se reduce la subprecisión seleccionada. Se puede utilizar una serie de conmutadores para remover y aplicar potencia a los elementos de registro de punto de flotación y lógica en el operador de punto de flotación 140. Los conmutadores, los cuales pueden ser internos o externos al registro de punto de flotación 110 y al operador de punto de flotación 140, pueden ser transistores de efecto en campo o cualquier otro tipo de conmutadores . El operador de punto de flotación 140 puede incluir uno o más componentes configurados para ejecutar las operaciones de punto de flotación. Estos componentes pueden incluir, pero no están limitados a, unidades de cómputo tales como sumadora de punto de flotación (ADD) 142 configurada para ejecutar instrucciones de suma y resta de punto de flotación, y un multiplicador de punto de flotación (MUL) 144 configurado para ejecutar instrucciones de multiplicación de punto de flotación. Tal como se puede apreciar en la figura 1, cada una de las unidades de cómputo ADD 142 y MUL 144 en el operador de punto de flotación 140, está acoplada con la otra y al archivo de registro de punto de flotación 110 en una forma para permitir que operandos sean transferidos entre las unidades de cómputo, asi como entre cada unidad de cómputo y el archivo de registro de punto de flotación 110. El operador de punto de flotación se puede acoplar al registro de punto de flotación a través de conexiones individuales 134, 135, 136, 137, 138 y 139, tal como se ilustra o se pueden acoplar a través de un enlace o cualquier otro acoplamiento conveniente. Por lo menos en una modalidad del procesador de punto de flotación 100, la salida de cualquiera de las unidades de cómputo (ADD 142 y MUL 144) puede ser la entrada de cualquier otra unidad de cómputo. El archivo de registro de punto de flotación 110 se puede utilizar para almacenar resultados intermedios, asi como los resultados que son emitidos desde el operador de punto de flotación 140. La sumadora 142 puede ser una sumadora de punto de flotación convencional, configurada para ejecutar operaciones aritméticas estándar en un formato de punto de flotación. El multiplicador 144 puede ser un multiplicador de punto de flotación convencional, configurado para ejecutar multiplicación de punto de flotación. El multiplicador 144 se puede ejecutar con, a manera de ejemplo, un algoritmo Booth o Booth modificado, y puede incluir lógica de generación de producto parcial que genere productos parciales, y un número de sumadoras de carga - guardar que suman los productos parciales. Aunque por simplicidad en la figura 1 únicamente se muestra una sumadora 142 y un multiplicador 144, el operador de punto de flotación 140 también puede incluir otras unidades de cómputo (que no se muestran) , las cuales son conocidas en la técnica, y que están configuradas para ejecutar otros tipos de operaciones matemáticas de punto de flotación. Estas unidades de cómputo pueden incluir, pero no se limitan a: un divisor de punto de flotación configurado para ejecutar instrucciones de división de punto de flotación; un extractor de raíz cuadrada de punto de flotación configurado para ejecutar instrucciones de extracción de raíz cuadrada de punto de flotación; un operador exponencial de punto de flotación configurado para ejecutar instrucciones exponenciales de punto de flotación; un operador logarítmico de punto de flotación configurado para ejecutar instrucciones para el cálculo de funciones logarítmicas, y un operador trigonométrico de punto de flotación configurado para ejecutar instrucciones para el cálculo de funciones trigonométricas. Diferentes modalidades del procesador de punto de flotación 100 pueden incluir únicamente una, o algunas, o todas las unidades de cómputo que se enlistaron anteriormente. Por ejemplo, la sumadora 142 y el multiplicador 144 pueden incluir, cada uno, una o más subunidades convencionales bien conocidas, tales como alineadores que alinean los operandos de entrada, normali zadores que desplazan el resultado en formato estándar, y redondeadores que redondean el resultado con base en un modo de redondeo especificado. Elementos de circuito bien conocidos tales como inversores de bit, mult iplexores , contadores, y circuitos lógicos combinatorios también se incluyen en la sumadora 142 y el multiplicador 144. Tal como se ilustra en la figura 1, el operador de punto de flotación 140 está acoplado al archivo de registro de punto de flotación 110 de manera que, para cada instrucción de una operación de punto de flotación solicitado, la unidad de cómputo relevante, es decir, la sumadora 142 o el multiplicador 144, pueden recibir desde el archivo de registro de punto de flotación 110 uno o más operandos almacenados en una o más de las ubicaciones de registro REGI,..., REGN. Al momento de recibir los operandos desde el archivo de registro de punto de flotación 110, una o más unidades de cómputo en el operador de punto de flotación 140 pueden ejecutar las instrucciones de la operación de punto de flotación solicitada en los operandos recibidos, a la subprecisión seleccionada por el controlador de punto de flotación 130. La salida puede ser enviada de regreso al registro de punto de flotación 110 para almacenamiento, tal como se muestra en la figura 1. En una modalidad del procesador de punto de flotación 100, se puede utilizar un modo seleccionable de software para reducir la precisión de las operaciones de punto de flotación bajo el control de programa o tal como se explicó anteriormente, las instrucciones proporcionadas al procesador de punto de flotación 100 pueden incluir un campo de control programable que contiene los bits de selección de subprecisión . Los bits de selección de subprecisión son escritos en el registro de control 137, el cual a su vez controla la longitud de los bits de la mantisa para cada operando durante la operación de punto de flotación. De manera alternativa, los bits de selección de subprecisión pueden ser escritos para el registro de control 137 directamente desde cualquier interfaz de usuario conveniente, incluyendo por ejemplo, pero no limitado a una pantalla de monitor/teclado o ratón 150 que se muestran en la figura 1. En otra modalidad del procesador de punto de flotación 100, los bits de selección de subprecisión pueden ser escritos para el registro de control 137 directamente desde el procesador principal, o su sistema operativo. El registro de control 137, el cual se muestra en el controlador de punto de flotación 130, puede residir en algún otro lado como una entidad autónoma, integrado en otra entidad, o distribuido a través de múltiples entidades. Los bits de selección de subprecisión se pueden utilizar para reducir la precisión de la operación de punto de flotación. Esto se puede lograr en una variedad de formas. En una modalidad, el controlador de punto de flotación 130 puede ocasionar que la potencia sea removida de los elementos de registro de punto de flotación para los bits en exceso de la fracción que no se requieren para cumplir con la precisión especificada por los bits de selección de subprecisión . A manera de ejemplo, si cada ubicación en el archivo de registro de punto de flotación contiene una fracción de 23 bits, y la subprecisión requerida para la operación de punto de flotación es de 10 bits, únicamente los 9 bits comúnmente significativos (MSB) de la fracción son requeridos; el bit entero u oculto constituye el décimo. La potencia puede ser removida de los elementos de registro de punto de flotación para los 14 bits de fracción restantes. Si la subprecisión para una o más instrucciones se incrementa a 16 bits, entonces los 15 MSB de la mantisa serán requeridos. En este último caso, la potencia puede ser removida de los elementos de registro de punto de flotación para los 8 bits menos significativos (LSB) de la fracción. Además, la lógica en el operador de punto de flotación 140 correspondiente a los bits de mantisa en exceso no requiere potencia. Por lo tanto, los ahorros de potencia se pueden lograr removiendo potencia a la lógica en el operador de punto de flotación 140 que permanece sin ser utilizada como resultado de la subprecisión seleccionada. La figura 3A es un diagrama conceptual que ilustra un ejemplo de una operación de suma de punto de flotación con potencia selectivamente aplicada a la lógica en el operador de punto de flotación. En particular, la figura 3A ilustra de manera conceptual una operación de suma de punto de flotación con dos números de punto de flotación de entrada 302 y 304, cada uno caracterizado por la subprecisión seleccionada, sumados juntos. Por simplicidad, se asume que los dos números 302 y 304 ya han sido alineados, de manera que no se necesita realizar algún desplazamiento. La operación de suma de punto de flotación en el modo de precisión completa se realiza a través de una sucesión de etapas, denominadas en la figura 3A con los números de referencia 310i, 3102,..., 310i, ... 310n. De acuerdo con la convención estándar, el registro de punto de flotación almacena en orden los bits que constituyen cada número, oscilando del LSB más a la derecha al MSB más a la izquierda. Cada etapa sucesiva de las diferentes etapas que se mueven de derecho a izquierda a través de la figura 3A, involucra bits que tienen una importancia incrementada en comparación con bits involucrados en las etapas precedentes. En el ejemplo que se ilustra en la figura 3A, la subprecisión seleccionada es representada con una linea 305. La potencia puede ser removida de la lógica utilizada para ejecutar cada etapa a la derecha de la línea 305. A partir de la última etapa de apagado 310i; es forzada a cero. La potencia es suministrada únicamente a la lógica utilizada para ejecutar cada etapa a la izquierda de la línea 305. En la figura 3A, los bits energizados proporcionados a las etapas activas del operador de punto de flotación se muestran como X, utilizando el número de referencia 322, mientras que los bits no energizados proporcionados a las etapas con potencia removida se muestran como círculos, utilizando el número de referencia 324. La figura 3B es un diagrama conceptual que ilustra un ejemplo de una operación de multiplicación de punto de flotación con potencia selectivamente aplicada a la lógica en el operador de punto de flotación. La operación de multiplicación de punto de flotación se realiza en el multiplicador de punto de flotación MUL, que se muestra en la figura 1 con el número de referencia 144. Es en el multiplicador donde una cantidad sustancial de lógica puede ser apagada, proporcionando ahorros de potencia significativos. La multiplicación binaria, tal como se ilustra en la figura 3B básicamente es una serie de sumas de números de punto de flotación desplazados. En la modalidad ilustrada, la multiplicación binaria se realiza entre un multiplicando de k bits 402 y un multiplicador de k bits 404, utilizando una técnica de desplazamiento y suma. La técnica de desplazamiento y suma se puede reemplazar por un algoritmo de Booth, o un multiplicador de algoritmo de Booth modificado. Tal como en el caso de la suma de punto de flotación, la multiplicación de punto de flotación se realiza en una serie de etapas, que se ilustran en la figura 3B como 410- 1, ... , 410—m. Asumiendo por simplicidad que se utiliza el algoritmo de Booth, un producto parcial es generado por cada bit en el multiplicador 404, un producto parcial 420-i es generado durante una etapa correspondiente 410-i. Si el valor del multiplicador es 0, su producto parcial correspondiente consta únicamente de 0; si el valor del bit es 1, su producto parcial correspondiente es una copia del multiplicando. Cada producto parcial 420-i es desplazado a la izquierda, como una función del bit multiplicador con el cual está asociado, después de lo cual, la operación continúa en la siguiente etapa. Cada producto parcial puede entonces ser visto como un número desplazado. El producto parcial asociado con el bit 0 en el multiplicador es de 0 bits desplazados a la izquierda, y el producto parcial asociado con el bit 1 es de un bit desplazado a la izquierda. Los productos parciales o números de punto de flotación desplazados 420-i se suman juntos para generar el valor de salida 430 para la multiplicación. En la modalidad que se ilustra en la figura 3B, la selección de una precisión reducida deseada por el controlador 130 queda indicada con una linea 405. Tal como en el caso de la suma de punto de flotación, que se describe en conjunto con la figura 3A, la potencia puede ser removida de la lógica utilizada para ejecutar las etapas a la derecha de la linea 405. La potencia únicamente se aplica a las etapas que en realidad se necesitan para soportar la subprecisión seleccionada, es decir, las etapas a la izquierda de la linea 405. En la figura 3B, los bits proporcionados a la lógica de encendido se muestran como X, mientras que los bits proporcionados a las etapas de apagado se muestran como circuios . Tal como se aprecia a partir de la figura 3B, para el primer producto parcial 420-1, la lógica para un número de bits N, que se muestran utilizando el número de referencia 402, no está energizada. Para el segundo producto parcial, la lógica para N-l bits no está energizada, y asi sucesivamente. Para el producto parcial m-avo o número de punto de flotación desplazado 420-m, la lógica para un número (N - m+1) de bits, que se muestra utilizando el número de referencia 414, no está energizada. El número de bits N es elegido de manera que la precisión de las etapas restantes no se vea afectada de manera adversa. El valor de salida, resultante de la multiplicación de punto de flotación que se describió anteriormente, tiene un ancho (es decir, número de bits) que es igual a la suma de los anchos de los dos valores de entrada 402 y 404 que están siendo multiplicados juntos. El valor de salida 430 puede ser truncado a la subprecisión seleccionada, es decir, cualquiera de los bits del valor de salida 430 que están en menos de la precisión seleccionada pueden ser truncados, para generar un número de salida truncado caracterizado por la precisión seleccionada. De manera alternativa, el valor de salida 430 puede ser redondeado a la precisión seleccionada. En cualquier caso, los bits de salida menos significativos que la precisión seleccionada también pueden no estar energizados. Las diversas unidades lógicas ilustrativas, bloques, módulos, circuitos, elementos y/o componentes descritos en relación con las modalidades aquí analizadas se pueden ejecutar o realizar en un procesador de punto de flotación que es parte de un procesador de propósito general, un procesador de señal digital (DSP), un circuito integrado de aplicación especifica (ASIC) , un arreglo de puerta programable en campo (FPGA) u otro componente lógico programable, puerta discreta o lógica de transistor, componentes de hardware discretos o cualquier combinación de los mismos diseñada para ejecutar las funciones aquí descritas. Un procesador de propósito general puede ser un microprocesador, pero en la alternativa, el procesador puede ser cualquier procesador convencional, controlador, microcontrolador o máquina de estado. El procesador también se puede ejecutar como una combinación de componentes de cómputo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en conjunto con un DSP núcleo, o cualquier otra configuración. Los métodos o algoritmos descritos en relación con las modalidades aquí analizadas se pueden incorporar directamente en hardware, en un módulo de software ejecutado por un procesador, o en una combinación de los dos. Un módulo de software puede residir en memoria RAM, memoria rápida, memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro, un disco removible, un CD-ROM, o cualquier otra forma de medio de almacenamiento conocida en la técnica. Un medio de almacenamiento se puede acoplar al procesador de manera que el procesador pueda leer la información desde, y escribir información en el medio de almacenamiento. En la alternativa, el medio de almacenamiento puede ser parte integral del procesador. La descripción previa de las modalidades analizadas se proporciona para permitir a cualquier persona experta en la técnica hacer o utilizar la presente invención. Diversas modificaciones a estas modalidades serán fácilmente aparentes para aquellos expertos en la técnica, y los principios genéricos aquí definidos se pueden aplicar a otras modalidades sin apartarse del espíritu o alcance de la descripción. Por lo tanto, la presente descripción no pretende quedar limitada a las modalidades aquí mostradas, sino que se le acordará el alcance más amplio consistente con las reivindicaciones, en donde referencia a un elemento en el singular no pretende indicar "uno y solamente uno" a menos que específicamente así se estipule, sino más bien "uno o más". Todos los equivalentes estructurales y funcionales a los elementos de las diversas modalidades descritas en este documento que se conocen o que serán del conocimiento de aquellos expertos en la técnica más adelante, quedan expresamente incorporados aquí por referencia, y pretenden quedar abarcados por las reivindicaciones. Además, nada de lo aquí descrito pretende ser dedicado al público a menos que dicha descripción de manera explícita se recite en las reivindicaciones. Ningún elemento reclamado se interpretará conforme a las disposiciones de 35 U.S.C. §112, párrafo sexto, a menos que el elemento quede expresamente recitado utilizado la frase "medios para" o, en el caso de una reivindicación de método, el elemento se recite utilizando la frase "paso para".

Claims (24)

NOVEDAD DE LA INVENCION Habiendo descrito el presente invento, considera como una novedad y, por lo tanto, se reclama propiedad lo contenido en las siguientes : REIVINDICACIONES
1. - Un método para ejecutar una operación de punto de flotación con un procesador de punto de flotación que tiene una precisión máxima que comprende: seleccionar una subprecisión menor que la precisión máxima para la operación de punto de flotación en uno o más números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de uno o más números de punto de flotación; remover la potencia de uno o más componentes en el procesador de punto de flotación que de otra forma serian utilizados para almacenar o procesar uno o más bits en exceso; y ejecutar la operación de punto de flotación con potencia removida de uno o más componentes,
2. - El método de conformidad con la reivindicación 1, que además comprende utilizar un registro de punto de flotación con una pluralidad de elementos de almacenamiento, uno o más bits en exceso son almacenados en uno o más de los elementos de almacenamiento, y en donde uno o más componentes de los cuales se retira la potencia incluye los elementos de almacenamiento para uno o más bits en exceso. 3.- El método de conformidad con la reivindicación 2, que además comprende utilizar un operador de punto de flotación con lógica para ejecutar la operación de punto de flotación, y en donde uno o más componentes de los cuales se remueve la potencia, incluye una porción de la lógica que de otra forma seria utilizada para procesar uno o más bits en exceso. 4. - El método de conformidad con la reivindicación 1, que además comprende utilizar un operador de punto de flotación con lógica para realizar la operación de punto de flotación, y en donde uno o más de los componentes de los cuales se retira la potencia, incluye una porción de la lógica que de otra forma seria utilizada para procesar uno o más bits en exceso. 5. - El método de conformidad con la reivindicación 4, caracterizado porque la operación de punto de flotación comprende suma. 6. - El método de conformidad con la reivindicación 5, que además comprende forzar una ejecución a partir de la porción de la lógica a cero. 7.- El método de conformidad con la reivindicación 4, caracterizado porque la operación de punto de flotación comprende multiplicación. 8. - Un procesador de punto de flotación que tiene una precisión máxima que comprende: un controlador de punto de flotación configurado para seleccionar una subprecisión menor que la precisión máxima para una operación de punto de flotación en uno o más números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de uno o más números de puntos de flotación, el controlador de punto de flotación además está configurado para remover la potencia de uno o más componentes en el procesador de punto de flotación que de otra forma serian utilizados para almacenar o procesar uno o más bits en exceso; y un operador de punto de flotación configurado para ejecutar la operación de punto de flotación. 9.- El procesador de punto de flotación de conformidad con la reivindicación 8, que además comprende un registro de punto de flotación que tiene una pluralidad de elementos de almacenamiento, uno o más bits en exceso son almacenados en uno o más de los elementos de almacenamiento, y en donde uno o más componentes de los cuales se remueve la potencia, incluye los elementos de almacenamiento para uno o más bits en exceso. 10. - El procesador de punto de flotación de conformidad con la reivindicación 9, caracterizado porque el operador de punto de flotación comprende lógica para ejecutar la operación de punto de flotación, y en donde uno o más componentes de los cuales se remueve la potencia incluye una porción de la lógica que de otra forma seria utilizada para procesar uno o más bits en exceso. 11. - El procesador de punto de flotación de conformidad con la reivindicación 8, caracterizado porque el operador de punto de flotación comprende lógica para ejecutar la operación de punto de flotación, y en donde uno o más componentes de los cuales se remueve la potencia, incluye una porción de la lógica que de otra forma seria utilizada para procesar uno o más bits en exceso. 12.- El procesador de punto de flotación de conformidad con la reivindicación 11, caracterizado porque el operador de punto de flotación incluye una sumadora de punto de flotación. 13.- El procesador de punto de flotación de conformidad con la reivindicación 12, caracterizado porque el operador de punto de flotación además está configurado para forzar una ejecución de la porción de la lógica a cero cuando se remueve la potencia. 14. - El procesador de punto de flotación de conformidad con la reivindicación 11, caracterizado porque el operador de punto de flotación incluye un multiplicador de punto de flotación. 15. - Un procesador de punto de flotación que tiene una precisión máxima que comprende: un registro de punto de flotación que tiene una pluralidad de elementos de almacenamiento configurados para almacenar una pluralidad de números de punto de flotación; un operador de punto de flotación configurado para ejecutar una operación de punto de flotación en uno o más de los números de punto de flotación almacenados en el registro de punto de flotación; y un controlador de punto de flotación configurado para seleccionar una subprecisión menor que la precisión máxima para una operación de punto de flotación en uno o más de los números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de uno o más de los números de punto de flotación, uno o más bits en exceso son almacenados en uno o más de los elementos de almacenamiento del registro de punto de flotación, y en donde el controlador de punto de flotación además está configurado para remover la potencia de los elementos de almacenamiento para uno o más bits en exceso. 16. - El procesador de punto de flotación de conformidad con la reivindicación 15, caracterizado porque el operador de punto de flotación comprende lógica configurada para ejecutar la operación de punto de flotación, y en donde el controlador de punto de flotación además está configurado para remover potencia de una porción de la lógica que de otra forma se utilizaría para procesar uno o más bits en exceso. 17. - El procesador de punto de flotación de conformidad con la reivindicación 16, caracterizado porque el operador de punto de flotación incluye una sumadora de punto de flotación. 18. - El procesador de punto de flotación de conformidad con la reivindicación 17, caracterizado porque el operador de punto de flotación además está configurado para forzar una ejecución a partir de la porción de la lógica a cero cuando la potencia es removida . 19. - El procesador de punto de flotación de conformidad con la reivindicación 16, caracterizado porque el operador de punto de flotación incluye un multiplicador de punto de flotación. 20. - Un procesador de punto de flotación que tiene una precisión máxima que comprende: un registro de punto de flotación configurado para almacenar una pluralidad de números de punto de flotación ; un operador de punto de flotación que tiene lógica configurada para ejecutar una operación de punto de flotación en uno o más de los números de punto de flotación almacenados en el registro de punto de flotación; y un controlador de punto de flotación configurado para seleccionar una subprecisión menor que la precisión máxima para una operación de punto de flotación en uno o más de los números de punto de flotación, la selección de la subprecisión produce como resultado uno o más bits en exceso para cada uno de uno o más de los números de punto de flotación, y en donde el controlador de punto de flotación además está configurado para remover la potencia de una porción de la lógica que de otra forma seria utilizada para procesar uno o más bits en exceso. 21. - El procesador de punto de flotación de conformidad con la reivindicación 20, caracterizado porque el registro de flotación comprende una pluralidad de elementos de almacenamiento configurados para almacenar el número de punto de flotación, uno o más bits en exceso son almacenados en uno o más de los elementos de almacenamiento, y en donde el controlador de punto de flotación además está configurado para remover la potencia de los elementos de almacenamiento para uno o más bits en exceso. 22. - El procesador de punto de flotación de conformidad con la reivindicación 20, caracterizado porque el operador de punto de flotación incluye una sumadora de punto de flotación. 2
3. - El procesador de punto de flotación de conformidad con la reivindicación 22, caracterizado porque el operador de punto de flotación además está configurado para forzar una ejecución a partir de la porción de la lógica a cero cuando la potencia es removida . 2
4. - El procesador de punto de flotación de conformidad con la reivindicación 20, caracterizado porque el operador de punto de flotación incluye un multiplicador de punto de flotación, y la energía es removida de las porciones de los elementos que comprenden los productos parciales dentro del multiplicador de punto de flotación.
MX2008010873A 2006-02-27 2007-02-27 Procesador de punto de flotacion con requerimientos de potencia reducidos para suprecision seleccionable. MX2008010873A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/363,118 US8595279B2 (en) 2006-02-27 2006-02-27 Floating-point processor with reduced power requirements for selectable subprecision
PCT/US2007/062908 WO2007101216A2 (en) 2006-02-27 2007-02-27 Floating-point processor with reduced power requirements for selectable subprecision

Publications (1)

Publication Number Publication Date
MX2008010873A true MX2008010873A (es) 2008-09-04

Family

ID=38445306

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2008010873A MX2008010873A (es) 2006-02-27 2007-02-27 Procesador de punto de flotacion con requerimientos de potencia reducidos para suprecision seleccionable.

Country Status (10)

Country Link
US (1) US8595279B2 (es)
EP (1) EP1989614A2 (es)
JP (4) JP5113089B2 (es)
KR (1) KR100994862B1 (es)
CN (1) CN101390045B (es)
BR (1) BRPI0708284A2 (es)
CA (1) CA2641334C (es)
MX (1) MX2008010873A (es)
RU (1) RU2412462C2 (es)
WO (1) WO2007101216A2 (es)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412760B2 (en) * 2008-07-22 2013-04-02 International Business Machines Corporation Dynamic range adjusting floating point execution unit
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US8375078B2 (en) * 2009-09-09 2013-02-12 Via Technologies, Inc. Fast floating point result forwarding using non-architected data format
CN101916182B (zh) * 2009-09-09 2014-08-20 威盛电子股份有限公司 使用非架构的数据格式的快速浮点结果的转送
US8219605B2 (en) * 2010-05-28 2012-07-10 International Business Machines Corporation Decimal floating-pointing quantum exception detection
US8918446B2 (en) * 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers
US20120215825A1 (en) * 2011-02-22 2012-08-23 Mavalankar Abhay M Efficient multiplication techniques
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US9128697B1 (en) * 2011-07-18 2015-09-08 Apple Inc. Computer numerical storage format with precision type indicator
US10157060B2 (en) 2011-12-29 2018-12-18 Intel Corporation Method, device and system for control signaling in a data path module of a data stream processing engine
US10289412B2 (en) 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US9829956B2 (en) * 2012-11-21 2017-11-28 Nvidia Corporation Approach to power reduction in floating-point operations
US9189200B1 (en) * 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9268528B2 (en) * 2013-05-23 2016-02-23 Nvidia Corporation System and method for dynamically reducing power consumption of floating-point logic
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US9461667B2 (en) * 2013-12-30 2016-10-04 Samsung Electronics Co., Ltd. Rounding injection scheme for floating-point to integer conversion
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
US10235232B2 (en) 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
SG11201608536QA (en) * 2014-05-08 2016-11-29 Micro Motion Inc Method for performing failsafe calculations
US9916130B2 (en) * 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
US10297001B2 (en) 2014-12-26 2019-05-21 Intel Corporation Reduced power implementation of computer instructions
US9927862B2 (en) 2015-05-21 2018-03-27 Microsoft Technology Licensing, Llc Variable precision in hardware pipelines for power conservation
US11010166B2 (en) * 2016-03-31 2021-05-18 Intel Corporation Arithmetic logic unit with normal and accelerated performance modes using differing numbers of computational circuits
US20170322808A1 (en) * 2016-05-05 2017-11-09 Cirrus Logic International Semiconductor Ltd. Low-power processor with support for multiple precision modes
CN107688854B (zh) * 2016-08-05 2021-10-19 中科寒武纪科技股份有限公司 一种能支持不同位宽运算数据的运算单元、方法及装置
US10042607B2 (en) 2016-08-22 2018-08-07 Altera Corporation Variable precision floating-point multiplier
US10402168B2 (en) * 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
WO2018213636A1 (en) 2017-05-17 2018-11-22 Google Llc Performing matrix multiplication in hardware
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
RU2686628C1 (ru) * 2017-12-25 2019-04-29 Акционерное общество "Ангстрем" (АО "Ангстрем") Устройство сложения-вычитания чисел для цифро-сигнального процессора
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
CN109086815B (zh) * 2018-07-24 2021-08-31 中国人民解放军国防科技大学 基于fpga的决策树模型中的浮点数离散化方法
US10713012B2 (en) * 2018-10-15 2020-07-14 Intel Corporation Method and apparatus for efficient binary and ternary support in fused multiply-add (FMA) circuits
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
EP3792752A1 (en) * 2019-09-11 2021-03-17 Nokia Solutions and Networks Oy Arithmetic unit
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
GB2600915B (en) * 2020-10-07 2023-02-15 Graphcore Ltd Floating point number format
US11797074B2 (en) * 2021-05-25 2023-10-24 Google Llc Multi-mode integrated circuits with balanced energy consumption

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1280624A1 (ru) 1985-07-01 1986-12-30 Предприятие П/Я А-7638 Устройство дл умножени чисел с плавающей зап той
JPH0269822A (ja) 1988-09-06 1990-03-08 Fujitsu Ltd 浮動小数点演算回路
US5200912A (en) 1991-11-19 1993-04-06 Advanced Micro Devices, Inc. Apparatus for providing power to selected portions of a multiplying device
JPH07146777A (ja) 1993-11-24 1995-06-06 Matsushita Electric Ind Co Ltd 演算装置
JP3428741B2 (ja) * 1994-02-14 2003-07-22 松下電器産業株式会社 演算装置とアドレス発生装置及びプログラム制御装置
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US6233672B1 (en) * 1997-03-06 2001-05-15 Advanced Micro Devices, Inc. Piping rounding mode bits with floating point instructions to eliminate serialization
JPH10326129A (ja) * 1997-05-23 1998-12-08 Mitsubishi Electric Corp 半導体装置
AU2002246904A1 (en) 2000-10-27 2002-07-30 Arc International (Uk) Limited Method and apparatus for reducing power consuption in a digital processor
US7020789B2 (en) * 2002-12-31 2006-03-28 Intel Corporation Processor core and methods to reduce power by not using components dedicated to wide operands when a micro-instruction has narrow operands
TWI269228B (en) * 2003-01-07 2006-12-21 Ibm Floating point unit, processor chip, and computer system to resolve data dependencies
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
JP2005078518A (ja) * 2003-09-02 2005-03-24 Renesas Technology Corp マイクロコントローラユニットおよびそのコンパイラ
US7418606B2 (en) 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
US7290024B2 (en) * 2003-12-18 2007-10-30 Intel Corporation Methods and apparatus for performing mathematical operations using scaled integers

Also Published As

Publication number Publication date
CN101390045A (zh) 2009-03-18
JP2009528638A (ja) 2009-08-06
WO2007101216A3 (en) 2008-01-03
CA2641334A1 (en) 2007-09-07
RU2412462C2 (ru) 2011-02-20
JP2012230684A (ja) 2012-11-22
JP6495220B2 (ja) 2019-04-03
CA2641334C (en) 2015-07-21
CN101390045B (zh) 2011-12-21
US8595279B2 (en) 2013-11-26
KR20080098440A (ko) 2008-11-07
BRPI0708284A2 (pt) 2011-05-24
KR100994862B1 (ko) 2010-11-16
JP5113089B2 (ja) 2013-01-09
JP2017062804A (ja) 2017-03-30
WO2007101216A2 (en) 2007-09-07
US20070203967A1 (en) 2007-08-30
RU2008138564A (ru) 2010-04-10
JP2015133111A (ja) 2015-07-23
EP1989614A2 (en) 2008-11-12

Similar Documents

Publication Publication Date Title
KR100994862B1 (ko) 선택가능한 하위 정밀도에 대하여 감소된 전력 요구조건들을 가지는 부동 소수점 프로세서
EP1934710B1 (en) Floating-point processor with selectable subprecision
US9519460B1 (en) Universal single instruction multiple data multiplier and wide accumulator unit
US6697832B1 (en) Floating-point processor with improved intermediate result handling
JPH08185309A (ja) 4倍精度演算の実行方法
JP2002108606A (ja) スティッキービット生成回路及び乗算器
CN106250098B (zh) 用于在执行浮点运算时控制舍入的装置及方法
US20100125621A1 (en) Arithmetic processing device and methods thereof
US20230092574A1 (en) Single-cycle kulisch accumulator
JP2009536409A (ja) 精度制御反復算術論理演算ユニット
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
US9430190B2 (en) Fused multiply add pipeline
US6542915B1 (en) Floating point pipeline with a leading zeros anticipator circuit
US20040117421A1 (en) Methods and systems for computing floating-point intervals
US20200293281A1 (en) Apparatus and method for rounding
US20140052767A1 (en) Apparatus and architecture for general powering computation
US9753690B2 (en) Splitable and scalable normalizer for vector data
JP2002023997A (ja) 浮動小数点演算のための選択ベースの丸め方法
Chen et al. Decimal floating-point antilogarithmic converter based on selection by rounding: Algorithm and architecture
EP2884403A1 (en) Apparatus and method for calculating exponentiation operations and root extraction
JPWO2002029546A1 (ja) 演算器及びそれを用いた電子回路装置
MX2008004592A (es) Procesador de punto de flotacion con sub-precision seleccionable

Legal Events

Date Code Title Description
FG Grant or registration