Ayuda
Ir al contenido

Dialnet


Uso eficiente de aritmética redundante en fpgas

  • Autores: Manuel A. Ortiz López
  • Directores de la Tesis: Francisco José Bellido Outeiriño (dir. tes.), Julio Villalba Moreno (dir. tes.), Francisco Javier Hormigo Aguilar (dir. tes.)
  • Lectura: En la Universidad de Córdoba (ESP) ( España ) en 2013
  • Idioma: español
  • Tribunal Calificador de la Tesis: Gonzalo Olivares Ruiz (presid.), José María Flores Arias (secret.), Elisardo Antelo Suárez (voc.)
  • Materias:
  • Enlaces
    • Tesis en acceso abierto en: Helvia
  • Resumen
    • RESUMEN DE LA TESIS DOCTORAL DE D. MANUEL AGUSTÍN ORTIZ LÓPEZ El resumen de la tesis para la base de datos Teseo debe ser una presentación de la tesis y tener la extensión suficiente para que quede explicado el argumento de la tesis doctoral. El formato debe facilitar la lectura y comprensión del texto a los usuarios que accedan a Teseo, debiendo diferenciarse las siguientes partes de la tesis:

      1. Introducción o motivación de la tesis La utilización de FPGAs (¿Field Programmable Gate Array¿) se ha extendido con mucha fuerza a nuevos campos de aplicación, como computación de alto rendimiento, computación financiera, criptografía, etc. Estas nuevas aplicaciones requieren una precisión mucho más elevada que las implementadas en los tradicionales bloques DSP (procesamiento digital de señales). Además de las representaciones en punto fijo o en punto flotante, es habitual encontrar hoy día implementaciones en FPGAs que utilizan representaciones en punto flotante con doble precisión o representaciones en punto flotante decimal. En estos casos se utilizan tamaños de operandos muy elevados.

      La implementación de operaciones aritméticas con operandos de tamaño elevado, aumenta el camino crítico de las señales en los sumadores cuando se utiliza la cadena de acarreo que implementan los sumadores de acarreo propagado en las FPGAs, lo que reduce el rendimiento. En la implementación de ASIC (Circuitos integrados para aplicaciones específicas), la aritmética redundante, especialmente carry-save, se ha utilizado para aumentar el rendimiento para operandos de tamaño elevado, o un número elevado de operandos. La aritmética carry-save permite que el camino critico que recorren las señales en los sumadores sea prácticamente independiente del tamaño de operando.

      La utilización de la representación carry-save en FPGAs se descartó hasta hace pocos años debido a varias razones. En primer lugar por el tamaño pequeño de operandos que se utilizaban en las aplicaciones típicas de FPGAs. En segundo lugar, los sumadores de acarreo propagado que poseían de fábrica ofrecían un buen rendimiento debido a que lógica de la cadena de acarreo se había optimizado. Por último, el excesivo consumo de área por las herramientas de síntesis cuando mapeaban unidades que trabajan en carry-save. Sin embargo, en los últimos años, varios trabajos han demostrado los beneficios en el rendimiento, de la utilización de sumadores carry-save, cuando el tamaño de los operandos crece y además es posible mapear de manera eficiente los sumadores carry-save en FPGAs reales con un aumento de área muy pequeño.

      Por tanto, merece la pena estudiar la implementación de sumadores y multiplicadores en FPGAs utilizando aritmética redundante, en especial aritmética carry-save, ya que es una técnica muy utilizada para mejorar el rendimiento de los sumadores en las implementaciones en circuitos dedicados ASICs. Por otro lado, operaciones como la multiplicación en punto fijo se implementan utilizando los multiplicadores empotrados en FPGA altamente optimizados. Estos multiplicadores tienen un tamaño fijo, y se deben combinar para obtener operaciones con operadores de tamaño elevado. En este caso, son necesarios sumadores para los productos parciales que limitan la velocidad del multiplicador. Se intuye que la aritmética carry-save puede ser la mejor alternativa para la realización de multiplicadores de ancho de palabra elevado.

      2. Contenido de la investigación Las acciones de investigación y desarrollo han abarcado tres etapas desarrolladas cronológicamente, pero a la vez solapadas, para llegar a unas conclusiones más certeras.

      La primera etapa se focalizó en el estudio de antecedentes para asegurarse de que las hipótesis de partida eran correctas, y por otro lado, intentar entender las razones por las que la aritmética redundante, especialmente carry-save, no se utilizaba ampliamente en FPGAs, a pesar de los buenos resultados obtenidos en circuitos ASICs. Se ha hecho un minucioso estudio de los trabajos que habían planteado la posibilidad de utilización de aritmética redundante en FPGAs en las aplicaciones que describían, para encontrar las razones por las que la habían descartado. También se han estudiado los trabajos que utilizaban aritmética carry-save, para conocer la causa del elevado consumo de recursos en las síntesis de las aplicaciones. Los trabajos donde se había utilizado planteaban la problemática del deficiente mapeo y el excesivo consumo de recursos, aunque sin embargo, planteaban la aritmética carry-save como una de las mejores alternativas para aumentar el rendimiento de sus aplicaciones. Estos trabajos constataban que podía ser una buena alternativa, si se conseguía un mapeo eficiente, sobre todo en FPGAs de bajo coste. La mayoría de los trabajos que habían utilizado aritmética redundante lo habían hecho en FPGAs de alto rendimiento.

      La segunda etapa consistió en estudiar los recursos lógicos a bajo nivel de las FPGAs, para ver si la implementación de aritmética carry-save se podría conseguir de manera eficiente. Se llega a la conclusión de que es posible y se estudian las razones por las que las herramientas de alto nivel no mapean los sumadores carry-save de manera adecuada. Se ha constatado que los operadores de suma de alto nivel se sintetizan solamente en sumadores de acarreo propagado. Por tanto, se ha sintetizado un conjunto de sumadores carry-save bien caracterizados incluso a bajo nivel. Este trabajo se ha realizado tanto en FPGAs de alto rendimiento como en otras de menor rendimiento pero utilizadas ampliamente. Para aprovechar de manera más eficiente los recursos en FPGAs de alto rendimiento se han creado unos sumadores optimizados en velocidad utilizando la lógica de acarreo para funciones lógicas distintas de las puramente aritméticas. Se ha definido un nuevo formato redundante denominado ¿doble carry-save¿ que saca mayor partido a los recursos lógicos de las FPGAs de alto rendimiento, que el formato carry-save clásico.

      La última etapa de la investigación ha consistido en ampliar los resultados obtenidos en la síntesis de sumadores carry-save para que sean aplicados en multiplicadores de elevado ancho de palabra. Se han realizado distintas implementaciones de estos multiplicadores utilizando los multiplicadores empotrados y los árboles carry-save. Por otro lado, se están divulgando los resultados obtenidos para que sean utilizados en operaciones más complejas, como por ejemplo la operación MAC, donde se ha obtenido una buena mejora en el rendimiento.

      Los distintos resultados de esta tesis han sido publicados en revistas y se han presentado en congresos, todos ellos de ámbito internacional.

      3. Conclusión A lo largo de la Tesis Doctoral demostramos que es posible la implementación eficiente de aritmética carry-save en FPGAs, en contra de lo que se pensaba hasta hace algunos años, y se corrigen algunas de las creencias anteriores, derivadas de dejar completamente la responsabilidad del mapeo de la aritmética carry-save a las herramientas de síntesis. Por otro lado, hemos demostrado con los resultados de las implementaciones, que la manera más eficiente de crear multiplicadores paralelos de elevado ancho de palabra en FPGAs actualmente, se consigue con la combinación de los multiplicadores empotrados con árboles de compresores carry-save.

      En este trabajo se ha definido un nuevo formato de aritmética carry-save, denominado "doble carry-save" obteniendo una mejora en la velocidad de operación sobre los clásicos sumadores carry-save a costa de un pequeño aumento de área.

      Por tanto, es posible la utilización eficiente de aritmética redundante en FPGAs, incluso en FPGAs de bajo coste. Se consigue un aumento de velocidad importante, sin la necesidad de recurrir, en muchas aplicaciones que hacen un uso intensivo de las operaciones de suma y multiplicación, a FPGAs de alto rendimiento, de mayor precio y consumo de potencia.

      4. Bibliografía 1. M.D. Ercegovac and T. Lang, ¿Digital Arithmetic¿, Morgan Kaufmann Publishers, 2004.

      2. Parhami, B. Computer Arithmetic: Algorithms and Hardware Designs, Oxford University Press, New York, NY, USA, 2000.

      3. Jhon P. Hayes, "Introducción al Diseño Lógico Digital", Addison-wesley Iberoamericana, 1996.

      4. M. Ortiz, F. Quiles, J. Hormigo, F. Jaime, J. Villalba, and E. Zapata, ¿Efficient implementation of carry-save adders in FPGAs¿, in Application-specific Systems, Architectures and Processors, 2009. ASAP 2009. 20th IEEE International Conference on, 7-9 2009, pp. 207 ¿210.

      5. Hormigo, J.; Villalba, J.; Zapata, E.L., "Multioperand Redundant Adders on FPGAs," Computers, IEEE Transactions on , vol.62, no.10, pp.2013,2025, Oct. 2013.doi: 10.1109/TC.2012.

      6. J.-L. Beuchat and J.-M. Muller, ¿Automatic generation of modular multipliers for fpga applications¿, IEEE Transactions on Computers, vol. 57, no. 12, pp. 1600¿1613, December 2008.

      7. S. Dormido and M. Canto, ¿Synthesis of generalized parallel counters,¿ IEEE Transactions on Computers, vol. C-30, no. 9, pp. 699¿703, Sep. 1981.

      8. H. Parandeh-Afshar, P. Brisk, and P. Ienne, ¿Efficient synthesis of compressor trees on FPGAs¿, in Design Automation Conference, 2008. ASPDAC 2008. Asia and South Pacific, 2008, pp. 138 ¿143.Trestman, G.A., Electronic Ballast Design. 2007.

      9. H. Parandeh-Afshar, A. Verma, P. Brisk, and P. Ienne, ¿Improving FPGA performance for carry-save arithmetic,¿ IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 18, no. 4, pp. 578¿590, apr. 2010.

      10. Parandeh-Afshar, H.; Ienne, P., "Measuring and Reducing the Performance Gap between Embedded and Soft Multipliers on FPGAs," Field Programmable Logic and Applications (FPL), 2011 International Conference on , vol., no., pp.225,231, 5-7 Sept. 2011, doi: 10.1109/FPL.2011.48.

      11. Moreno, C. D.; Quiles, F.J.; Ortiz, M. A.; Brox, M.; Hormigo, J.; Villalba, J.; Zapata, E.L., "Efficient mapping on FPGA of convolution computation based on combined CSA-CPA accumulator," Electronics, Circuits, and Systems, 2009. ICECS 2009. 16th IEEE International Conference on , vol., no., pp.419,422, 13-16 Dec. 2009, doi: 10.1109/ICECS.2009.5410903.

      12. S. Gao, N. Chabini, D. Al-Khalili, and P. Langlois, ¿Optimized multipliers for large unsigned integers¿, in 23rd NORCHIP Conference 2005, 2005.

      13. S. Gao, D. Al-Khalili, and N. Chabini, ¿Efficient realization of large size two¿s complement multipliers using embedded blocks in FPGAs¿, Circuits, Systems, and Signal Processing, vol. 27, no. 5, pp. 713¿731, 2008.

      14. S. Gao, D. Al-Khalili, and N. Chabini, ¿Implementation of large size multipliers using ternary adders and higher order compressors,¿ International Conference on Microelectronics (ICM), pp. 118¿121, 2009.

      15. Renukuntla Kiran and Sunitha Nampally, "Analyzing the performance of carry tree adders based on FPGA¿s", International Journal of Electronics Signals and Systems (IJESS) ISSN: 2231- 5969, Vol-2, ISS-2,3,4, 2012.

      16. Preusser, T.B.; Spallek, R.G., "Enhancing FPGA Device Capabilities by the Automatic Logic Mapping to Additive Carry Chains," Field Programmable Logic and Applications (FPL), 2010 International Conference on , vol., no., pp.318,325, Aug. 31 2010-Sept. 2 2010, doi: 0.1109/FPL.2010.70.

      17. W. Kamp, A. Bainbridge-Smith, and M. Hayes, ¿Efficient implementation of fast redundant number adders for long wordlengths in FPGAs,¿ International Conference on Field-Programmable Technology (FPT¿09), pp. 239¿246, 2009.

      18. de Dinechin, F.; Joldes, M.; Pasca, B.; Revy, G., "Multiplicative Square Root Algorithms for FPGAs," Field Programmable Logic and Applications (FPL), 2010 International Conference on , vol., no., pp.574,577, Aug. 31 2010-Sept. 2 2010, doi: 10.1109/FPL.2010.112.

      19. Sutter, G.; Deschamps, J.; Iman~a, J.L., "Efficient FPGA Modular Multiplication and Exponentiation Architectures Using Digit Serial Computation," Field Programmable Logic and Applications (FPL), 2010 International Conference on , vol., no., pp.496,501, Aug. 31 2010-Sept. 2 2010, doi: 10.1109/FPL.2010.99.

      20. Xilinx Inc., ¿Spartan-3 Generation FPGA User Guide. Extended Spartan-3A, Spartan-3E, and Spartan-3 FPGA Families UG331 (v1.8)", www.xilinx.com/support/documentation, june 13, 2011.

      21. Xilinx Inc., "Spartan-6 FPGA Configurable Logic Block. User Guide UG384 (v1.1)", www.xilinx.com/support/documentation, february 23, 2010.


Fundación Dialnet

Dialnet Plus

  • Más información sobre Dialnet Plus

Opciones de compartir

Opciones de entorno