Tema 1.5 - Aritmética de punto flotante **Material basado en las notas del Prof. Oscar Alvarado Nava Eduardo Rodrı́guez Martı́nez Departamento de Electrónica División de Ciencias Básicas e Ingenierı́a Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx Oficina: H-285 Sitio Web: http://kali.azc.uam.mx/erm/ 1121060 Arquitectura de Computadoras page 1 Tema 1.5 - Aritmética de alto rendimiento Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ 1. Sumador con predicción de acarreos (Look-Ahead Adder) 2. Algoritmo de Booth 1121060 Arquitectura de Computadoras page 2 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ El diagrama del sumador en rizo o sumador con acarreo en cascada es el siguiente de donde podemos inferir la funcion para el acarreo de salida de la i-ésima etapa como ci+1 = xi yi + xi ci + yi ci Tema 1 Introducción page 3 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth Si factorizamos el acarreo ci de la expresión anterior tenemos ⊲ ci+1 = xi yi + (xi + yi )ci = gi + pi ci El término gi = xi yi se le conoce como de generación, ya que independientemente del valor del acarreo de entrada ci , generara un acarreo de salida ci+1 cuando ambas xi y yi sean igual a uno. El término pi = xi + yi se le conoce como de propagación, ya que propaga el acarreo de entrada ci cuando cualquiera de las entradas xi o yi sea igual a uno. Tema 1 Introducción page 4 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ Expandiendo la expresión anterior en terminos de la etapa i − 1 tenemos ci+1 = gi + pi (gi−1 + pi−1 ci−1 ) = gi + pi gi−1 + pi pi−1 ci−1 y expandiendo hasta la etapa 0 ci+1 = gi + pi gi−1 + pi pi−1 gi−2 + . . . + pi pi−1 . . . p2 p2 g0 +pi pi−1 . . . p1 p0 c0 La ultima expresión representa un circuito de dos niveles implementado con compuertas AND y OR. Un sumador implementado de esta manera se conoce como sumador con predicción de acarreos o sumador con acarreo anticipado. Tema 1 Introducción page 5 Sumador con predicción de acarreos. Sumador en rizo ci+ 1 = gi + pi ci Retardo crı́tico de 2n + 1 retardos de compuerta Tema 1 Introducción page 6 Sumador con predicción de acarreos. Sumador con predicción de acarreos Retardo crı́tico de 4 retardos de compuerta Su complejidad aumenta al incrementar el numero de bits Tema 1 Introducción page 7 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ Existen dos alternativas para reducir la complejidad del sumador con predicción de acarreos. Dividir el diseño en partes mas pequeñas y usar sumadores con predicción de acarreos conectados en rizo Tema 1 Introducción page 8 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth Usar un segundo nivel de predicción de acarreos ⊲ Tema 1 Introducción page 9 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ Señales de generación Gj y propagación Pj . Analizando c8 tenemos c8 = g7 + p7 g6 + p7 p6 g5 + p7 p6 p5 g4 + p7 p6 p5 p4 g3 +p7 p6 p5 p4 p3 g2 + p7 p6 p5 p4 p3 p2 g1 + p7 p6 p5 p4 p3 p2 p1 g0 +p7 p6 p5 p4 p3 p2 p1 p0 c0 El último término en la expresión anterior define la propagación del acarreo de entrada c0 P0 = p7 p6 p5 p4 p3 p2 p1 p0 El resto de los términos definen la señal de generación G0 = g7 + p7 g6 + p7 p6 g5 + . . . + p7 p6 p5 p4 p3 p2 p1 g0 Por lo que la expresión para el acarreo es c 8 = G0 + P 0 c 0 Tema 1 Introducción page 10 Sumador con predicción de acarreos. Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ Expandiendo para las demas señales Gj = g8j+7 + p8j+7 g8j+6 + p8j+7 p8j+6 g8j+5 + . . . +p8j+7 p8j+6 . . . p8j+2 p8j+1 g8j Pj = p8j+7 p8j+6 p8j+5 . . . p8j c8(j+1) = Gj + Pj c8j Tema 1 Introducción page 11 Algoritmo de Booth Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ Realiza un análisis inicial del multiplicador para detectar las transiciones entre secuencias de unos o ceros Los lı́mites de las secuencias indican si se realiza una suma o una resta del multiplicando, multiplicado por el peso del bit Analizando el multiplicador de derecha a izquierda, si se detecta una transición • • 0 → 1, implica una resta 1 → 0, implica una suma Considere un cero en la extrema derecha para poder tener una transición en caso de que el dı́gito menos significativo sea un uno Tema 1 Introducción page 12 Algoritmo de Booth: Ejemplo Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ 0 0 0 1 0 +1 +24 0 1 0 1 1 0 0 1 –1 –21 111111010110 000101010000 000100100110 Tema 1 Introducción 1 0 0 (21)10 (14)10 (21 × −21 )10 (21 × +24 )10 (294)10 Multiplicando Multiplicador Codificación Valores Producto page 13 Algoritmo de Booth: Peor caso Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ 0 0 +1 +25 0 1 –1 –24 1 0 +1 +23 1 1 –1 –22 111111110010 000000011100 111111001000 000000111000 111100100000 000011100000 000100100110 Tema 1 Introducción 1 0 +1 +21 0 1 –1 –20 (14)10 (21)10 (14 × −20 )10 (14 × +21 )10 (14 × −22 )10 (14 × +23 )10 (14 × −24 )10 (14 × +25 )10 (294)10 Multiplicando Multiplicador Codificación Valores Producto page 14 Algoritmo de Booth mejorado Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ Los bits del multiplicador codificado se recodifican por pares Asegura que el producto se encuentre con a lo mas n/2 sumas i+1 0 0 0 +1 +1 –1 –1 Tema 1 Introducción i 0 +1 –1 0 -1 0 +1 codificación 0 +1 –1 +2 +1 –2 –1 page 15 Algoritmo de Booth: Recodificación Tema 1.6 Contenido LAA Algoritmo de Booth ⊲ 0 0 +1 0 1 –1 +1 z }| { +25 − 24 1 0 +1 1 1 –1 +1 z }| { +23 − 22 000000001110 000000111000 000011100000 000100100110 Tema 1 Introducción 1 0 +1 0 1 –1 +1 z }| { +21 − 20 (14)10 (21)10 (14 × +21 )10 (14 × +22 )10 (14 × +24 )10 (294)10 Multiplicando Multiplicador Codificación Producto page 16