Información en inglés
Processors
Programa de sustitución fdiv
Análisis estadísticos de punto flotante Error: Documentación técnica de Intel

Sección 4: procesador Pentium® Algoritmo división
El procesador Pentium es la próxima generación de los microprocesadores compatibles con los siguientes CPU Intel486™ familia. La meta principal era combinar compilador y la tecnología de hardware para maximizar el rendimiento al tiempo que preservan compatibilidad de software. Más concretamente, el desempeño de coma flotante meta es lograr hasta un 5 veces aceleración del punto flotante y un código vector 3x escalar aceleración del código en el momento en comparación con un procesador Intel486 de idéntico frecuencia de reloj[1]. En parte, esto significa que proporciona un rendimiento superior coma flotante divisor.

El procesador Intel486™ utiliza el clásico no restauración Shift" y "deduzca" Division algoritmo coma flotante para su operación de división. Este inherentemente permite solamente un Cociente bits para ser generado por ciclo de reloj. Para mejorar la división de coma flotante el rendimiento en la Pentium, un radix 4 SRT algoritmo se eligió. Este algoritmo, como se implementó, permite que el hardware división para generar 2 bits de Cociente por reloj, por lo cual aproximadamente duplicar la división el desempeño.

4.1 SRT Algoritmo
Para ayudarle a comprender mejor el defecto, hemos adjuntado un breve introducción al SRT división técnica.

El SRT división algoritmo puede Básicamente se describe en los pasos como:

1. Muestra la más importante dígitos de la divisor y dividendos.

2. Utilice las muestras como índices a una tabla para obtener una estimación de la siguiente Cociente dígitos. (En este caso el Cociente Imagino que puede ser -2, -1, 0, +1, +2).

3. Multiplique el divisor por el Cociente adivinar y Reste a partir de dividendos (Tenga en cuenta que ésta es una adición si el Cociente Imagino que fue negativo).

4. Guarde el Cociente dígitos del menos dígitos significativos de un Cociente registrarse.

5. Cambio del resto izquierda por 2 y Mayús el Cociente registros izquierda por 2 (por ejemplo, radix 4)

6. Muestra la más importante dígitos de la nueva parcial diferido restante.

7. Vaya al paso 2 a menos que haya suficiente considerables Cociente dígitos.

8. Generar el formato binario Cociente reuniendo los valores en el Cociente registrarse.

9. Si la última parcial resto fue negativo luego, ajuste el Cociente restando el valor.

Para un tratamiento completo sobre el tema de división SRT referencia al documento escrito por Daniel E. Atkins[2].

Matemáticamente, el algoritmo SRT se pueden representar con las ecuaciones se muestra en (EQ 1) y (EQ 2) a continuación. La primera ecuación muestra el primer paso del algoritmo donde P0, la inicial parcial resto, es la dividendos. La segunda ecuación indica la naturaleza de recursiva el algoritmo. Aquí, para generar el siguiente parcial resto (Pj+1) uno debe multiplique el Cociente adivinar (qj+1) por el divisor (d) y Reste que cantidad en el resto de la iteración anterior parcial diferido (rPj). Donde (r) es el radix de la operación (en este caso 4). El número de iteraciones es determinada por el número de dígitos significativos requeridas en el Cociente no olvidar que la primera iteración sólo produce un dígito significativo.

Equation

Tenga en cuenta que cuando el radix es igual a la base, esta ecuación recursiva genere un dígito de Cociente por iteración. Para un mayor radix división a multi-dígitos Cociente puede ser generado cada iteración. En el caso de la división 4 procesador Pentium, radix se realizan pruebas en números binarios proporcionando binario Cociente 2 dígitos por iteración. Esta relación es cierto si la restricción siguiente (para la convergencia) se coloca sobre el resto:

Equation

La cantidad n/(r-1) se conoce como la medida de redundancia (MoR) y en el procesador Pentium división implementación evalúa a 2/(4-1)=2/3. Este valor se utiliza a partir de este punto.

4.1.1 Cociente selección
Debido a que la que no es la restauración división es utilizado y los resultados se almacena en "redundante" forma, la adivinarse fácilmente Cociente solamente necesitan cumplir con el anterior resto criterios. Mediante la manipulación las ecuaciones anteriores, MIN y máx ecuaciones que ligado el siguiente parcial resto de un determinado divisor y Cociente dígitos se producen.

Equation

Planear estas ecuaciones genera una trama de la parcial resto divisor (conocido comúnmente como el "P-D" trazar), que se utiliza en el Cociente proceso de selección. El cambio positivo mitad de esta trazado en se muestra en la ilustración 4-1 . Sombreada regiones en esta trazar indican la región de la superposición Cociente opciones, donde uno de los dígitos indicado pueden ser escogida.

4.1.2 Región de incertidumbre
Debido a que el divisor y el resto se truncan parcial diferido existe cierta incertidumbre en la generación de la Cociente bits. Hay que tener en cuenta al seleccionar esta incertidumbre Cociente dígitos, es decir, un Cociente dígitos sólo se pueden seleccionar si la región de incertidumbre para la parcialmente: resto/divisor par reside enteramente dentro de un Cociente región delimitadas por las ecuaciones anteriormente. Aquí es donde la superposición de estas regiones útil.

Para la incertidumbre en la divisor que es picado después de la cuarta poco a la derecha de los binarios punto (es decir, manteniendo 4 bits a la derecha del punto binario).

Equation

Para el resto, la estimación parcial proviene de 7 bits más significativos de la formulario redundante (guardar) "parcial diferido resto" (4 bits a la izquierda y 3 bits a la derecha del binario punto) así:

Equation

Figura 4-2 ilustra un ejemplo de la misma alumno binario sencilla ecuación para radix 4 SRT. Tome nota de la manera que Qpos y Qneg se utilizan para almacenar positivas como negativas ponderados cocientes, el final Cociente se deriva de los dos, y que los bits se muestreo a índices en la tabla (el sombreada regiones parcial de los residuos).

4.2 La Causa subyacente después de que el cuantizar P-D parcela (tabla) fue numéricamente generados como en Figura 4-1 , una secuencia fue escrito para descargar las entradas en un hardware PLA (programable requiere matriz). Un error en este script que resultó en unos requiere entradas (que pertenecen a la positiva plano de la P-D parcela) omitía del PLA. Los 5 crítico las entradas aparecen en la Figura 4-3 como el sombreada regiones. Como resultado de la omisión, un divisor/resto par que llegue estas entradas durante la búsqueda fase del SRT algoritmo que incorrectamente leer un Cociente valor de 0 dígitos en lugar de +2. Posteriormente, el alumno algoritmo devuelve una Cociente resultado con un menor precisión.

Como puede verse en el P-D parcela, único situaciones en las que existe la probabilidad de que este defecto es la manera en que el binario divisor tiene las siguientes patrones de bits en los bits más significativos: 1,0001, 1,0100, 1,0111, 1,1010 y 1,1101. Empíricamente, se ha observado que estos patrones de bits tiene que ser seguido por un largo cadena de 1 todo lo que necesita para acelerar todavía más la probabilidad de incurrir en la inexactitud debido a la defecto. Nota también, que desde la división hardware sólo opera en la mantisa los exponentes de los operandos no tienen efecto sobre si este defecto es o no.

4,3 Instrucciones afectado
Debido a que es el divisor hardware que exhibe el defecto, instrucciones que exhibirán el defecto incluyen:

FDIV

FDIVP

FDIVR

FDIVRP

FIDIV

FIDIVR

FPREM

FPREM1

Las siguientes instrucciones utilizan la división transcendentales para hardware dentro de sus intensivos pero empírica de miles de millones de los casos no han mostrado error:

FPTAN

FPATAN

FYL2X

FYL2XP1

Esto se aplica a:
Programa de sustitución fdiv

 

ID de solución: CS-013008
Fecha de creación: 08 de julio de 2004
Última modificación: 16-nov-2009
al inicio de la página