tesis doctoral - facultad de ingeniería unmdp · tesis doctoral generadores de números...

255
UNIVERSIDAD NACIONAL DE MAR DEL PLATA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS ARTURO GAYOSO Directores de Tesis: Dr. Eduardo I. Boemo – Dra. Hilda A. Larrondo MAR DEL PLATA, 17 DE ABRIL DE 2009

Upload: vodien

Post on 25-Sep-2018

240 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

UNIVERSIDAD NACIONAL DE MAR DEL PLATA

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA

TESIS DOCTORAL

Generadores de números pseudoaleatorios en aritmética de residuos: teoría e

implementación en FPGAs

ING. CARLOS ARTURO GAYOSO Directores de Tesis: Dr. Eduardo I. Boemo – Dra. Hilda A. Larrondo

MAR DEL PLATA, 17 DE ABRIL DE 2009

Page 2: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

A mi esposa Hady,

a mis hijos Arturo, Hady Isabel y Alejandro,

a mis padres.

Page 3: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

AGRADECIMIENTOS Deseo expresar mi agradecimiento a mis directores de tesis la Dra. Hilda Larrondo y al Dr. Eduardo Boemo por su dirección, asesoramiento y su apoyo gracias a los cuales ha sido posible la realización de esta tesis doctoral. Quiero agradecer también a mis compañeros de laboratorio Claudio González, Leonardo Arnone, Miguel Rabini y Juan Carlos García y a Fernando Nuño por su amistad y por ser fuente de consulta permanente. Al Dr. Antonio García Rios de la Universidad de Granada y al Dr. Jordi Carrabina Bordoll de la Universidad Autónoma de Barcelona por su apoyo y colaboración en distintas etapas del desarrollo de esta tesis doctoral. A mis compañeros de trabajo Daniel Carrica, sin su ayuda no estaría aquí, a Alfonso Chacón Rodríguez, por su amistad y ayuda en asuntos musicales, a Fernando Nuño, por las discusiones continuas sobre todos los temas conocidos y a Esteban Lúcio González por las compras imaginarias de árticulos de “primera necesidad” que no podemos comprar. A Roxana Vandenberghe y a María Graciela Caldentey por su permanente ayuda en mis actividades dentro de la Universidad y por su amistad. A mi esposa y a mis hijos por su amor, comprensión, paciencia y por ser mi sostén en este camino. A mis padres por haberme dado parte de sus vidas para que yo pueda caminar por la mía. A mis hermanos Hugo y Mariela por tenerlos siempre a mi lado, querernos y cuidamos mutuamente.

Page 4: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Resumen y Trabajos Previos

Resumen y Trabajos Previos

Trabajos previos realizados con mi mujer Hady Lilian.

Page 5: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Resumen y Trabajos Previos

ABSTRACT

This thesis deals with the implementation of Hardware Pseudo Random Number Generators (PRNG) in Field Programmable Gate Arrays (FPGA). The Residue Number System (RNS) is studied in order to improve the speed of generation. All the proposed PRNG are statistically tested using standard techniques (autocorrelation, spectral analysis, etc.), tests benchmarks provided in the open literature (specially those proposed by Marsaglia to test his Diehard PRNG) and new tests based on the study of chaotic systems using information theory: statistical complexity, zipping complexity and Hurst exponents.

This work is organizad in six chapters numbered 0 to 5. Chapter 0 contains the introduction and it is a review of digital arithmetics. It includes a short description of hardware implementation evolution, from the first integrated circuits to the new programmable logic devices, that use Hardware Description Language. Many original contributions made during the last 20 years are included in this chapter.

Chapter 1 is devoted to the description of residue arithmetics and it presents the Basic operations using RNS. Several variations of the RNS and the use of Galois Fields is also described. An original proposal for a one-hot residue system (ORNS2) and several applications are also included in this chapter.

Chapter 2 deals with the conversión between binary and RNS. It is also described the implementation of conversors in FPGA.

Chapter 3 describes with more detail the four Basic arithmetic operations, using RNS.

Chapter 4 is the main chapter of this thesis. It starts with a description of random and pseudo random numbers. Basic statistical tests as well as new tests to quantify PRNG’s quality are described. New measures based on the study of non linear systems are presented. Several PRNG’s using RNS are proposed. For each one three different design strategies are described. Results of the tests applied to the proponed PRNG’s are reported. The chapter ends with an Image Encoding example and the comparison of the proposed generators with linear congruential generators

Finally, Chapter 5 deals with the conclusions and a guidance for possible future work.

A number of original contributions are included in this thesis. Many of them have been pusblished in national and international journals and conference proceedings. Original contributions not yet published are also included (see References). A table containing all the acronyms and abbreviations used in this thesis is included at the end.

Page 6: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Resumen y Trabajos Previos

RESUMEN

Esta tesis estudia la implementación en hardware de generadores de números pseudo aleatorios (Pseudo Random Number Generators o PRNGs), en lógica programable (Field Programmable Gate Arrays o FPGA). Se investiga el empelo del sistema numérico de residuos (Residue Number System o RNS) para incrementar la velocidad a la que los generadores producen los números aleatorios. También se proponen nuevos esquemas de PRNGs, basados en el RNS, todos se evalúan desde el punto de vista estadístico mediante tests básicos (autocorrelación y análisis espectral), baterías de tests disponibles en la literatura (en especial el banco de tests propuesto por Marsaglia para su generador Diehard), y mediante nuevas técnicas estadísticas basadas en el estudio de los sistemas caóticos empleando teoría de la información: la complejidad estadística, la complejidad de zipping y el exponente de Hurst.

La tesis está organizada en seis capítulos numerados 0 a 5. El Capítulo 0 contiene la introducción y es una revisión de la aritmética digital. Se incluye asimismo una breve descripción de la evolución de las técnicas de implementación en hardware, desde los primeros circuitos integrados hasta las lógicas programables actuales, en los que el diseño se realiza a través de Lenguajes de Descripción de Hardware. Se incluyen en este capítulo un número importante de contribuciones realizadas en los últimos 20 años.

El Capítulo 1 está dedicado a la descripción de la aritmética de residuos, presentando las distintas operaciones aritméticas en RNS. Se describe además variantes que presenta este sistema y el uso de campos de Galois. Se incluye una propuesta original del sistema de residuos one-hot (ORNS2) y una serie de aplicaciones del RNS.

El Capítulo 2 describe las técnicas de conversión entre el sistema Binario y el RNS. Se describe asimismo la implementación de conversores en lógica programable.

En el Capítulo 3 se retoma con mayor detalle la descripción de las cuatro operaciones aritméticas básicas mediante residuos. Se realiza un estudio profundo de la implementación de sumadores y multiplicadores descriptos en VHDL y para distintas configuraciones en FPGAs, para determinar la opción más conveniente.

El Capítulo 4 es el contenido central de esta tesis. Comienza con una descripción de los números aleatorios y pseudo aleatorios. Describe los tests básicos de aleatoriedad así como nuevas medidas basadas en el estudio de sistemas no lineales. Se proponen varios generadores pseudoaleatorios empleando el sistema numérico de residuos y para cada uno de ellos se describen distintas estrategias de diseño. Se reportan asimismo los resultados de todos los tests aplicados para la evaluación de calidad de los generadores propuestos. El capítulo finaliza con un ejemplo de aplicación y con el análisis circuital de los generadores propuestos así como su comparación con los generadores lineales congruentes.

Finalmente en el Capítulo 5 se presentan las conclusiones y una guía de futuros trabajos que surgen como continuación de esta tesis.

La tesis incluye un número importante de contribuciones originales, muchas de ellas publicadas en revistas y proceedings de congresos, nacionales e internacionales. También incluye contribuciones originales que aún no han sido publicadas en la literatura abierta (ver Referencias). Para comodidad del lector se incluye al final una tabla con las siglas y símbolos utilizados.

Page 7: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Resumen y Trabajos Previos

TRABAJOS PREVIOS Esta tesis surge a partir de la evolución del trabajo que como docente investigador he venido realizando en la Facultad de Ingeniería de la Universidad Nacional de Mar del Plata, desde el año 1987 en que comenzara mi carrera docente como Ayudante de Primera con dedicación parcial hasta llegar a la actualidad al cargo de Profesor Asociado con dedicación exclusiva. Los frutos más significativos en mi función docente han sido la creación y dictado de las asignaturas optativas: “Introducción al Diseño de Circuitos Integrados”1 y “Diseño Digital con Técnicas de Alto Nivel”2 que iniciaron el dictado de esta temática en Argentina. Gracias a la ayuda financiera de la OEA, la SECyT y el Centro Nacional de Microelectrónica de España pudo concretarse el material didáctico y el soporte de software y hardware necesario para su dictado así como la posibilidad que los alumnos pudieran fabricar los integrados diseñados en España o Francia para testear el resultado de su trabajo. El libro3 “Microelectrónica Circuitos Integrados CMOS Digitales, Teoría y Práctica.”, que publicáramos en coautoría con los restantes miembros del grupo de investigación fue también posible con apoyo de la OEA y la SECyT. Una de las experiencias más enriquecedoras fue el diseño del primer circuito integrado CMOS digital diseñado en universidades argentinas. El circuito integrado se fabricó en la empresa ESII Francia, a través del Centro Nacional de Microelectrónica de Barcelona, España, mediante un proyecto multiusuario. La experiencia se repitió luego en la Universidad Politécnica Salesiana de Cuenca, Ecuador, en oportunidad de dictar un curso de Postgrado en Microelectrónica. El desarrollo de la microelectrónica no puede realizarse en forma aislada de ahí la participación del grupo en los programas IBERCHIP (programa coordinado por al Centro Nacional de Microelectrónica, España), SURLABS (programa coordinado por mi director de tesis el Dr. Eduardo Boemo de la Universidad Autónoma de Madrid) y LACIS (Latin American Consortium of Integrated Services), constituido por un grupo de universidades latinoamericanas para el desarrollo de actividades comunes en microelectrónica. En lo referente a Software un aporte importante fue el Sistema de Diseño de Circuitos Integrados Mediante Matrices de Compuertas, Empleando Redes Neuronales y Enfriamiento Simulado. Se trata de una herramienta de CAD, tipo compilador de silicio que tiene como entrada la descripción del problema mediante diagrama de estados, tabla de estados, tablas de verdad, diagramas esquemáticos o archivos de descripción de red, y como salida el layout del circuito que cumple con las especificaciones del problema y que posee toda la información necesaria para que el fabricante lo construya. De esta manera, se realizan automáticamente el conexionado de los transistores, el de los distintos bloques funcionales y el dimensionamiento y ubicación de los dispositivos activos, por lo que se reducen los errores y el tiempo de diseño. Existen distintas metodologías para realizar un compilador de silicio. La metodología que se utilizó fue la de Matrices de Compuertas (Gate Matrix). Para nuestro país, las herramientas de diseño, la información disponible y las bibliotecas necesarias son tópicos, básicamente por cuestiones económicas, de difícil acceso. En un intento por reducir la brecha con los países que nos adelantan tecnológica y económicamente en el Laboratorio de Componentes Electrónicos, mediante la ejecución de 1 En coautoría con: Jorge A. Galatro y Claudio M. González. 2 Claudio M. González y Leonardo Arnone. 3 Autores: Jorge A. Galatro, Carlos A. Gayoso, Claudio M. González y Leonardo Arnone.

Page 8: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Resumen y Trabajos Previos

distintos proyectos se desarrollaron distintas herramientas para el diseño de circuitos integrados. Se construyó una biblioteca de arreglos de compuertas pero con la particularidad de ser paramétrica es decir que no dependen del fabricante de circuitos integrados o de la tecnología presente, dado que para ajustarla al diseño en que se esté trabajando sólo es necesaria su compilación. Se diseñó un ruteador automático de canal, también paramétrico, para el interconexionado de las celdas. Un constructor y posicionador automático de celdas de biblioteca y de ruteo. Y finalmente para validar las herramientas desarrolladas, es decir verificar que en la realidad las cosas ocurrían tal cual nuestro software lo quería, se diseñaron integrados CMOS de distinta complejidad y en tecnología de 1,0 y 1,5 micrones. El método de enfriamiento simulado es un excelente camino para encontrar mínimos en una función costo, siempre que se pueda expresar el sistema de forma que le sea aplicable. En particular la función costo que se minimiza es el número de interconexiones que presentan los bloques particionados, presentados mediante una red neuronal de Hopfield que es particularmente apta para este tratamiento. En esta red cada neurona representa un transistor y las interacciones entre ellas las interconexiones.

En lo referente a lógica programable un proyecto representativo, previo a esta tesis, fue el desarrollo de un Microprocesador Flexible para FPGA, con su correspondiente software de programación y emulación realizado en Visual Basic. El microprocesador tiene un núcleo fijo para realizar un conjunto de instrucciones y modos de direccionamiento que sirven como base para el desarrollo de un microprocesador más complejo mediante el agregado de instrucciones adicionales y elementos de entrada salida según la necesidad. Permite agregar las ventajas de un microprocesador en un solo circuito integrado junto con la memoria RAM y ROM que poseen algunas FPGAs. Y luego, si el volumen de producción es grande, realizarlo mediante MPGA, circuitos integrados full custom o semicustom. La traslación de un sistema a otro es relativamente sencilla puesto que el diseño se realizó en VHDL.

Por último deseo mencionar un proyecto que me es muy caro pues me dio la

oportunidad de devolver a la sociedad lo que ésta me brindó al permitirme crecer dentro de una Universidad Nacional. Es el de Accesibilidad Informática Para Discapacitados Motrices Severos. Los discapacitados motrices severos, por caso, sólo pueden presionar un pulsador, emitir un sonido o mover los ojos, el uso de una computadora (teclado y mouse), y el control de equipos electrónicos hogareños, suelen ser barreras, en muchos casos, infranqueables.

Para gobernar una computadora en estos casos existen paquetes de software pero que presentan los siguientes problemas: a) el software es dependiente del sistema operativo empleado, b) el software presenta problemas de portabilidad y compatibilidad, c) el programa de control ocupa un lugar en la pantalla quitando espacio visual a la aplicación que se desea utilizar y d) no está previsto el uso de mouse.

El enfoque propuesto, en los trabajos que se hicieron en esta área, fue otro. En lugar de buscar la solución vía software se eligió el camino de construir un sistema externo a la computadora, es decir una solución realizada enteramente en hardware. Además se le agregó la posibilidad de emular el mouse, con todas sus variantes, es decir, movimientos, presionar cualquiera de sus botones, etc. De esta forma el usuario puede aprovechar por completo las posibilidades de una computadora moderna, esto es, escribir, dibujar, usar el correo electrónico, navegar por Internet, etc.

Siguiendo las premisas antes mencionadas, se diseñaron tres sistemas para distintos

usuarios. La idea es que el equipo diseñado emule la pulsación de una tecla o el movimiento del mouse mediante algún tipo de comando que le da el discapacitado.

Page 9: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Resumen y Trabajos Previos

En el primer caso los caracteres se visualizan mediante una matriz de leds,

encendiéndose uno cada vez. Cuando el usuario desea “presionar una tecla” o “mover el mouse en una determinada dirección” espera a que se ilumine el led correspondiente y presiona un pulsador. El circuito envía entonces a la computadora, por el conector del teclado o del mouse, las señales correspondientes. Tanto el teclado como el mouse siguen trabajando en paralelo y siguen activos como si el sistema diseñado no estuviera conectado. La implementación del sistema se realizó mediante microprocesador.

Con dos diferencias el segundo y el tercer equipo diseñados son idénticos. En el

segundo sistema la parte circuital se resolvió mediante FPGA y se comanda mediante un micrófono, en el tercero, mediante microprocesador y se dirige mediante movimientos oculares. Además a este último caso se le agregó un control remoto para TV conectado al sistema diseñado, de manera que el usuario puede encender o apagar el televisor, cambiar de canal, de volumen, etc.

Page 10: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Índice

I

ÍNDICE

CAPÍTULO 0. INTRODUCCIÓN______________________________________________ 2

ARITMÉTICA DIGITAL________________________________________________________ 2 Asynchronous Self-Timing Addition ____________________________________________________ 2 Carry-Completion Sensing Adders ______________________________________________________ 3 Conditional-Sum Adder ______________________________________________________________ 3 Carry-Select Adder __________________________________________________________________ 3 Carrylookahead _____________________________________________________________________ 3 Otras estrategias para el diseño de circuitos aritméticos ______________________________________ 3

Sistemas numéricos, distintas representaciones ______________________________________________ 4 Sistemas ponderados _________________________________________________________________ 4 Sistemas no ponderados ______________________________________________________________ 4

EJEMPLOS DE OTROS TIPOS DE ARITMÉTICAS ________________________________ 4 Aritmética con signo ___________________________________________________________________ 4 Aritmética racional ____________________________________________________________________ 5 Aritmética mediante la representación Zeckendorf____________________________________________ 5 Aritmética mediante otras representaciones _________________________________________________ 6

EL SISTEMA NUMÉRICO DE RESIDUOS ________________________________________ 6 Características de interés del Sistema Numérico de Residuos ___________________________________ 7 Actualidad y perspectiva del sistema numérico de residuos _____________________________________ 9

TÉCNICAS INTEGRADAS DE IMPLEMENTACIÓN DE SISTEMAS DIGITALES ____ 10 Full Custom_________________________________________________________________________ 10 Standard Cells _______________________________________________________________________ 14 Gate Array__________________________________________________________________________ 16 Tecnologías digitales programables (FPGAs)_______________________________________________ 19

Introducción ______________________________________________________________________ 19 Lógica programable ________________________________________________________________ 20

LENGUAJES DE DESCRIPCIÓN DE HARDWARE _______________________________ 28

CAPÍTULO 1. ARITMÉTICA DE RESIDUOS __________________________________ 32

DEFINICIONES Y PROPIEDADES ELEMENTALES ______________________________ 32 Propiedades de los sistemas numéricos____________________________________________________ 32 Grupos, campos y anillos ______________________________________________________________ 33

TEORÍA DE LAS CONGRUENCIAS ____________________________________________ 34 Definiciones y propiedades elementales ___________________________________________________ 34 Algunos teoremas sobre congruencias ____________________________________________________ 35 Operaciones aritméticas en módulo ______________________________________________________ 36 Tablas de suma, producto, resta y división. ________________________________________________ 37 Diferencias entre la aritmética en módulo y la aritmética Euclidiana _____________________________ 37 Similitudes entre la aritmética en módulo y la aritmética Euclidiana _____________________________ 39 Pequeño teorema de Fermat ____________________________________________________________ 40 Álgebra de polinomios ________________________________________________________________ 41

SISTEMA NUMÉRICO DE RESIDUOS __________________________________________ 41 Presentación ________________________________________________________________________ 41 Representación de números negativos ____________________________________________________ 43 Operaciones aritméticas en el sistema numérico de residuos ___________________________________ 43 Isomorfismo ________________________________________________________________________ 44 Adición y substracción en RNS _________________________________________________________ 44 Multiplicación en RNS ________________________________________________________________ 45 División en RNS _____________________________________________________________________ 46 Ejemplo de operaciones en RNS_________________________________________________________ 46 Otras operaciones en RNS _____________________________________________________________ 49 Técnicas de conversión ________________________________________________________________ 50 Conversión de binario a residuos ________________________________________________________ 50 Teorema Chino del Residuo (CRT) ______________________________________________________ 51 Conversión de RNS a binario ___________________________________________________________ 52

Page 11: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Índice

II

Sistemas de base múltiple (Mixed Radix System, MRS) ______________________________________ 53 Extensión de base ____________________________________________________________________ 56

OTROS SISTEMAS NUMÉRICOS DE RESIDUOS ________________________________ 56 Sistema numérico de residuos redundante (Redundant Residue Number System RRNS) _____________ 56 Sistema numérico de residuos complejo (Complex Residue Number System CRNS) ________________ 57 Sistema numérico de residuos cuadrático (Quadratic Residue Number System QRNS) ______________ 59 Sistema numérico de residuos one-hot (ORNS) _____________________________________________ 61 Sistema numérico de residuos one-hot propuesto (ORNS2) ____________________________________ 63

CAMPOS DE GALOIS_________________________________________________________ 65

APLICACIONES DEL SISTEMA NUMÉRICO DE RESIDUOS ______________________ 68 Filtros de respuesta finita a la función impulso (FIR)_________________________________________ 69 Transformada discreta de Fourier (DFT) y transformadas numéricas teóricas (NTT) ________________ 71 Generadores RNS cuasicaóticos _________________________________________________________ 75

CAPÍTULO 2. TÉCNICAS DE CONVERSIÓN BINARIO-RNS-BINARIO ___________ 78

CONVERSIÓN DE BINARIO A RNS ____________________________________________ 78 Conversor binario a RNS secuencial mediante tablas de búsqueda ______________________________ 79 Conversor binario a RNS en paralelo mediante tablas de búsqueda ______________________________ 80 Conversor binario a RNS basado en la periodicidad de los residuos _____________________________ 82 Conversores binario a RNS basados en la exponenciación en módulo ____________________________ 85

CONVERSIÓN DE RNS A BINARIO ____________________________________________ 88 Conversión mediante el Teorema Chino del Residuo _________________________________________ 88 Conversión mediante el sistema de raíces mixtas ____________________________________________ 90 Conversión RNS a binario mediante variaciones del Teorema Chino del Residuo __________________ 93

Nuevo Teorema Chino del Residuo I ___________________________________________________ 93 Nuevo Teorema Chino del Residuo II___________________________________________________ 96 Conversión mediante el Teorema Chino de Residuo Aproximado _____________________________ 98

Transformación de RNS a binario mediante conjuntos especiales de módulos _____________________ 99

IMPLEMENTACIÓN DE CONVERSORES BINARIO-RNS-BINARIO EN LÓGICA PROGRAMABLE ____________________________________________________________ 100

Conversión de binario a RNS en FPGAs _________________________________________________ 101 Conversión de RNS a binario en FPGAs _________________________________________________ 103

CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE RESIDUOS _________ 106

INTRODUCCIÓN ____________________________________________________________ 106

SUMA EN RNS ______________________________________________________________ 107 Suma en RNS mediante tablas de verdad _________________________________________________ 107 Síntesis mediante sumadores binarios____________________________________________________ 113 Adición en RNS mediante tablas de búsqueda _____________________________________________ 117 Técnica híbrida _____________________________________________________________________ 119 Arquitectura propuesta _______________________________________________________________ 120 Sumadores, estudio comparativo________________________________________________________ 120

RESTA EN RNS _____________________________________________________________ 135 La resta en el RNS se puede realizar mediante cualquiera de los sumadores descriptos en “SUMA EN RNS” si esta se realiza en complemento al módulo de la siguiente manera:____________________________ 135

MULTIPLICACIÓN EN RNS __________________________________________________ 135 Multiplicación mediante tablas de verdad_________________________________________________ 135 Multiplicación por tablas de búsqueda ___________________________________________________ 141 Multiplicador cuadrático ______________________________________________________________ 141 Multiplicador indexado _______________________________________________________________ 145 Multiplicadores, estudio comparativo ____________________________________________________ 147

DIVISIÓN EN RNS ___________________________________________________________ 163

COMPARACIÓN Y DETECCIÓN DE REVASAMIENTO _________________________ 165

CONCLUSIONES ____________________________________________________________ 165

Page 12: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Índice

III

CAPÍTULO 4. GENERADORES PSEUDOALEATORIOS MEDIANTE EL SISTEMA NUMÉRICO DE RESIDUOS _______________________________________________ 169

SERIES DE NÚMEROS ALEATORIOS _________________________________________ 169 Aplicaciones, números aleatorios y pseudoaleatorios ________________________________________ 169 Test de aleatoriedad _________________________________________________________________ 170

Correlación o autocorrelación ________________________________________________________ 170 Espectro y ruido blanco_____________________________________________________________ 171 Entropía y cantidad de información ___________________________________________________ 171 Batería de tests Diehard ____________________________________________________________ 172 Complejidad estadística ____________________________________________________________ 174 Medida de complejidad mediante programas compactadores (zippers) ________________________ 175 Exponente de Hurst o análisis R/S ____________________________________________________ 176

GENERADORES PSEUDOALEATORIOS PROPUESTOS CON EL SISTEMA NUMÉRICO DE RESIDUOS___________________________________________________ 178

Estrategia Clase A___________________________________________________________________ 180 Estrategia Clase B ___________________________________________________________________ 180 Estrategia Clase C ___________________________________________________________________ 181 Generador lineal congruente RNS-LCG __________________________________________________ 183 Generador congruente mediante multiplicación y acarreo RNS-MWCG _________________________ 185 Generador congruente mediante el multiplicativo inverso RNS-ICG____________________________ 187 Generador congruente mediante suma y acarreo RNS-AWCG ________________________________ 188 Generador congruente mediante resta y préstamo RNS-SWBG ________________________________ 190

TESTEO DE LOS GENERADORES PSEUDOALEATORIOS PROPUESTOS_________ 192 Test de autocorrelación _______________________________________________________________ 193 Análisis espectral ___________________________________________________________________ 195 Cálculo de la entropía y de la cantidad de información ______________________________________ 198 Batería de test Diehard _______________________________________________________________ 199 Estudio de la complejidad estadística ____________________________________________________ 204 Complejidad zipping _________________________________________________________________ 206 Cómputo del exponente de Hurst _______________________________________________________ 208

EJEMPLO DE APLICACIÓN DE LOS GENERADORES PROPUESTOS ____________ 210

ANÁLISIS CIRCUITAL DE LOS GNPAs PROPUESTOS __________________________ 211

COMPARACIÓN DE LOS GNPAs PROPUESTOS CON LOS GENERADORES LINEALES CONGRUENTES ____________________________________________________________ 213

CAPÍTULO 5. APORTES Y CONCLUSIONES_________________________________ 215

PRINCIPALES APORTES ____________________________________________________ 215

TRABAJOS FUTUROS _______________________________________________________ 216

REFERENCIAS__________________________________________________________ 219

SIGLAS Y SÍMBOLOS ____________________________________________________ 241

TABLA DE SIGLAS Y SÍMBOLOS _____________________________________________ 241

Page 13: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

1

Introducción

0

Jack Kilby4, para entonces ingeniero de la empresa Texas Instruments, inventó el primer circuito integrado en el año 1958, tratando de resolver otro problema, el de “la tiranía de los números”. En ese momento ni él ni sus superiores llegaron a imaginar la revolución que acarrearía este invento en el campo de la electrónica a corto palazo. Con la creación del circuito integrado se han podido diseñar, entre otras, computadoras de alta velocidad y memorias capaces de albergar una gran cantidad de datos. Este circuito integrado estaba formado por un único transistor y componentes pasivos integrados en una única pastilla de silicio de dimensiones reducidas. Posteriormente, en el año 1967 junto con Jerry Merryman, y James Van Tassel diseñaron la primera minicalculadora. Contenía un solo circuito integrado, a pesar de ello, tenía todos los circuitos electrónicos para realizar las cuatro operaciones básicas. [ELE07]

4 Nació en Missouri, (EEUU), en el año 1923. Se graduó en las universidades de Illinois y de Wisconsin. Kilby comenzó a trabajar en el año 1947 en la Globe Union, en Milwaukee, en el desarrollo de circuitos de base cerámica para los aparatos electrónicos. En el año 1958 pasó a trabajar para la empresa Texas Instruments, donde inventó el primer circuito integrado en el año 1959. En el año 2000 recibió el Premio Nobel de Física compartido con Kroemer y con el ruso Zhores Alferov. Kilby nunca pensó que por su invento recibiría este galardon, declaró que “no había previsto esto y de hecho, creía que era muy improbable”. La invención de Kilby derivó en la gran revolución conceptual que se produjo en todo el campo de la electrónica, de hecho nacio una nueva área del conocimiento denominada microelectrónica. Según Kilby “Yo creí entonces que el microprocesador sería importante, pero no podía imaginar en qué forma crecería la industria electrónica debido a él”. Kilby ha patentado más de 60 inventos para aplicaciones comerciales, militares, de consumo y de tecnología de microprocesadores. [ETS07]

Page 14: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

2

Desde la aparición de la primera computadora digital uno de los principales temas de estudio ha sido el incremento de la velocidad de cálculo. Para ello se han sugerido distintos enfoques, uno de ellos es trabajar mediante un sistema de representación numérica distinto de la aritmética en complemento a 2.

En los últimos años este interés se ha visto reforzado debido a los enormes progresos tecnológicos que se han dado en el campo de la microelectrónica, que permite implementar estrategias que hasta ese tiempo funcionaban muy bien en la teoría pero que en el momento de su construcción se veían limitados, o eran directamente descartados, por barreras tales como, alto costo de circuitos de memoria, baja capacidad de integración, herramientas de CAD inapropiadas o inexistentes, etc. Los recientes y continuos avances en la integración a gran escala y en la “inteligencia” de las herramientas de diseño han permitido que la aritmética de residuos pasara de ser una especulación teórica a ser una alternativa muy recomendable para ciertas aplicaciones. El uso de FPGAs para su empleo en prácticamente todas las aplicaciones digitales, sumado esto a su bajo costo, reusabilidad y rápido prototipado las transforman en una herramienta de trabajo ideal. Además, de ser necesario, partiendo del diagrama esquemático o de su descripción mediante lenguajes de descripción de hardware, se puede volcar el diseño para implementarlo en otra tecnología.

ARITMÉTICA DIGITAL

Un punto importante a tener en cuenta es la elección del sistema numérico de representación que se utilizará, puesto que de ésta selección dependerá la performance del circuito aritmético diseñado. En efecto, los primeros circuitos aritméticos digitales trabajaban en aritmética binaria en Ca2 para representar números enteros, o en punto flotante o fijo para poder representar números reales. El principal problema que tienen estas representaciones es que si se desea realizar, por ejemplo la suma de dos números, se debe propagar el acarreo desde el LSB al MSB, demorando este proceso el cómputo del resultado, retardo tanto mayor cuanto mayor sea el número de bits con el que se trabaje. Este problema se extiende a las otras operaciones básicas. Para mejorar la velocidad de cálculo se crearon distintas soluciones vía hardware. Es decir que se sigue trabajando, por ejemplo en Ca2, pero se emplean técnicas especiales para “anticiparle” al bit ni cual es el acarreo que generan los ni – 1… n0 bits previos. Algunos ejemplos son: Asynchronous Self-Timing Addition [HWA79] La operación suma mediante la técnica de ripple carry tiene un retardo que es igual, en el peor caso a la propagación del acarreo desde el LSB al MSB, de manera que el retardo crece de manera lineal con el número de bits. Mediante el sistema asynchronous self-timing addition se detecta la secuencia más larga por la que se debe propagar el carry, que en la mayoría de los casos será menor que el peor caso, aumentando en promedio la velocidad de cálculo del circuito. Se demuestra estadísticamente que el tiempo de propagación promedio Ep(n) para números de n bits es:

CAPÍTULO 0. INTRODUCCIÓN

Page 15: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

3

( ) nnEp 2log≤

De manera que el retardo crece de forma logarítmica en lugar de hacerlo es forma lineal. Así para la suma de 32 bits se tiene un retardo promedio no mayor a 5 en tanto que para dos números de 64 bits el retardo promedio es de 6. Se denomina autotemporizado (self-timing) porque el retardo depende del problema, en este caso de las combinaciones de los números a sumar y asíncrono porque no se debe contar con un reloj para contar el intervalo de tiempo que transcurre para la suma del peor caso. Carry-Completion Sensing Adders [HWA79] Es igual al anterior. La ventaja adicional que tiene es que se acompaña de un circuito que indica la terminación de la operación. Conditional-Sum Adder [HWA79] Para cada par de bits a sumar se diseña una celda especial que genera dos sumas y acarreos para la etapa siguiente provisionales, esta operación se realiza en paralelo. El paso siguiente es que el acarreo verdadero de la etapa i seleccione mediante un multiplexor la suma para la posición i + 1 y el acarreo para los bits i + 2 correctos. Carry-Select Adder [HWA79] En lugar de generar las sumas y acarreos provisionales para cada par de bits se los toma en grupos. Para cada grupo se genera en paralelo las sumas con acarreo entrante 0 y 1. Luego, con el acarreo del grupo anterior de bits, mediante un multiplexor se selecciona la suma correcta. Carrylookahead [HWA79]

Los acarreos que entran a cada posición se generan en paralelo mediante un circuito adicional. Como resultado se obtiene un sumador cuyo tiempo de cálculo es independiente del número de bits a sumar.

Otras estrategias para el diseño de circuitos aritméticos

Como se puede deducir todas estas implementaciones requieren de hardware adicional, por lo que posteriormente surgió otro enfoque. En lugar de mejorar las prestaciones de los circuitos aritméticos vía hardware, ¿por qué no usar otras formas de representación numérica para agilizar los cálculos? En efecto, a partir de este nuevo paradigma surgieron otros tipos de aritméticas algunas de las cuales, a modo de ilustración, se comentan en “EJEMPLOS DE OTROS TIPOS DE ARITMÉTICAS”.

Page 16: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

4

Si bien la aritmética en Ca2 tiene la mejor performance promedio, esto es cálculo,

comparación de números, detección de revasamiento, etc. Las nuevas aritméticas tienen mejores comportamientos puntuales, esto significa que por ejemplo será muy veloz para multiplicar pero inapropiada en la comparación de dos números. De esta manera cada una de ellas tendrá un campo de aplicaciones para la cual será óptima o cuasi óptima, en tanto que se la deberá descartar para otras.

Sistemas numéricos, distintas representaciones La representación de enteros ha sido objeto de intensa investigación, tanto desde el punto de vista teórico como práctico. En general los sistemas de representación numérica se pueden dividir en dos tipos: los sistemas ponderados y los no ponderados.

Sistemas ponderados En los sistemas ponderados cada entero a, de n dígitos, se puede descomponer en una serie de caracteres ci de manera tal que: ♦ Existe un carácter, denotado con el símbolo 0, para representar una cantidad nula. ♦ El número de caracteres c es finito es decir ci œ 0, 1,… b – 1 en donde b recibe le nombre de base del sistema. ♦ El número a se representa entonces como la suma del polinomio:

∑−

=

=1

0

n

i

ii bca

Sistemas no ponderados En los sistemas no ponderados los dígitos no tienen asignado ningún peso.

EJEMPLOS DE OTROS TIPOS DE ARITMÉTICAS

Aritmética con signo En el año 1961 Avizienis propuso el sistema denominado signed-digit number [MIG00]. En el se elige un número r ≥ 2 denominado radix de manera que cada dígito ya no se representa como un caracter entre 0 y r – 1 sino que se lo hace entre los límites – a y a en

con 12

1−≤≤

−ra

r. Es un sistema ponderado, en donde la cadena genérica de caracteres cn-

1, cn-2,… c0 representa el número:

Page 17: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

5

02

21

1 ... crcrc nn

nn +++ −

−−

Bajo estas condiciones el sistema tiene redundancia, por lo tanto un entero cualquiera

puede tener más de una combinación de caracteres ci válida. Para tener el mínimo de redundancia se puede tomar a = r/2.

Ejemplo: si r = 10 y – 5 § a § 5 cada entero tiene una representación única. Así el número 1572510 se corresponde con la secuencia 2 25 en donde se emplea la notación y para representar los números – 4 y – 3. La importancia de este sistema radica en que la suma de dos números se puede realizar en paralelo, es decir se suman los dígitos correspondientes de cada número simultáneamente, por lo tanto no se debe transportar el acarreo entre los mismos. Lo cual redunda en un aumento de velocidad de cálculo apreciable en comparación con los sistemas tradicionales.

Aritmética racional Debido a que la suma, resta y multiplicación de enteros es una operación cerrada, es decir el resultado es un número entero, pero no lo es para la división, se creo la representación racional [JEN99]. En ella cada número se representa mediante una dupla numerador-denominador, de manera que la división se transforma las operaciones de inversión, sencilla de realizar, y multiplicación. En este sistema hallar el inverso de un determinado número requiere sólo el intercambio del numerador con el denominador, además las cuatro operaciones básicas requieren aproximadamente el mismo tiempo de ejecución.

Aritmética mediante la representación Zeckendorf Cada entero se puede representar de manera única como la suma de uno o más números de la serie de Fibonacci. La suma no debe contener dos números consecutivos de la serie, y se descarta en la formación el primero de ellos [JEN99]. Así el número a se puede representar como:

∑=

=k

ici

Fa0

en donde Fn es el enésimo número de Fibonacci y ci ¥ ci – 1 + 2 para i = 1… k.

Ejemplo: a = 100 100 = 89 + 8 + 3 100 = 89 + 8 + 2 + 1 100 = 55 + 34 + 8 + 3

Page 18: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

6

pero las dos últimas representaciones no son válidas puesto que 1 y 2 y 34 y 55 son números consecutivos de la serie.

El producto de los enteros ∑=

=k

ici

Fa0

y ∑=

=l

jd j

Fb0

en este sistema se realiza

utilizando la siguiente expresión:

∑∑= =

+=k

i

l

jdc ji

Fba0 0

.

Ejemplo: a = 2 y b = 4 tienen la representación F3 y F4 + F2 por lo tanto 2 x 4 = F3 + 4

+ F3 + 2 = 13 + 5 = 18

Mediante esta representación la multiplicación se trasforma en una serie de sumas.

Aritmética mediante otras representaciones Se han propuesto una gran variedad de sistemas numéricos, cada uno con sus fortalezas y debilidades [JEN99]. Para nombrar sólo algunos de ellos tenemos: sistemas numéricos de base mixta, p-adic number system, aritmética basada en el desarrollo de fracciones continuas, sistemas con base negativa, irracional o imaginaria y el sistema numérico logarítmico para simplificar las operaciones de multiplicación y división.

EL SISTEMA NUMÉRICO DE RESIDUOS El esbozo del sistema numérico de residuos es tan temprano que se puede remontar al siglo I [JUL91]5 en China. En el libro Suang-ching de Sun Tsu aparecen los versos: Hay cosas de las que no conocemos el número Si las contamos por trios, nos quedan 2

Si las contamos por quintetos, nos quedan 3 Si las contamos por septetos, nos quedan 2 ¿Cuántas hay? La respuesta, 33.

En este libro se indica el procedimiento para encontrar los restos de las divisiones por 3, 5 y 7 de un número entero y de cómo llegar a la respuesta. Por ello una de las técnicas empleadas para transformar un número expresad en RNS a binario se denomina Teorema Chino del Residuo. Se debió llegar al siglo XIX para que Carl Gauss estudiara este procedimiento y la teoría de residuos en general en su libro Disquisiciones Aritméticas [GAR99]. El RNS resurgió en nuestro siglo con los siguientes trabajos. En 1932 D. H. Lehmet construyó una máquina electromecánica, que llamó criba fotoeléctrica, para factorizar los 5 En otra referencia se discrepa tanto en la fecha como en el nombre. Se habla del siglo III o IV y el nombre es Sun Tzu o Suang-ching Sun Tzu.

Page 19: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

7

números de Mersenne. En el año 1955 Svaboda y Valach diseñaron una máquina a válvulas para trabajar con el RNS en el estudio de códigos de error. Szabo y Tanaka, fueron financiados a mediados de los 60 por el Departamento de Defensa de los Estados Unidos de Norte América, en la empresa Lockheed, para el diseño y construcción de un correlator digital, en tanto que otro grupo lo hacía en el diseño de una máquina de propósito general. Sin embargo, debido a la gran cantidad de memoria requerida, estos estudios encontraron poco éxito a nivel práctico. La tecnología aún no estaba madura para este tipo de desarrollos. [GAR99] [JUL91]. Con la aparición del circuito integrado, la gran capacidad de fabricar circuitos de memoria en un área reducida de silicio y otras técnicas, se ha posibilitado la concreción de los aspectos teóricos del RNS en las distintas técnicas de integración. Como resultando se pueden diseñar circuitos, que en algunas aplicaciones, pueden competir y superar las prestaciones de la aritmética en Ca2. Para citar sólo algunas de ellas tenemos: cálculo de la FFT, filtros digitales y sistemas de detección y corrección de errores.

Características de interés del Sistema Numérico de Residuos6 En la electrónica actual el mundo digital ha ido desplazando al analógico en muchas aplicaciones debido a que esta presenta diversas ventajas. Para citar solo algunas tenemos, aplicaciones en procesamiento de imágenes y sonido de alta calidad, sistemas multimedia, compresión de voz e imágenes, transmisión de datos, telefonía móvil, televisión digital, etc. El procesamiento de este tipo de señales a menudo emplea algoritmos que necesitan operaciones de la forma:

( )∑−

=−=

1

0

N

kknkn xay

Ecuación 1

donde an son coeficientes conocidos, en general, y x e y son las muestras de entrada y salida respectivamente. De querer resolver este tipo de algoritmos mediante circuitos electrónicos analógicos se necesitan circuitos mucho más complejos que los digitales para realizar las, sumas y productos requeridos. Aproximaciones del comportamiento de los distintos componentes, variaciones térmicas y otras complicaciones que pueden llegar a convertir el problema en prácticamente intratable mediante este enfoque. Además de poder realizar los algoritmos descriptos por la “Ecuación 1” los requerimientos actuales determinan que las prestaciones de los circuitos deban ser cada vez más veloces. Como se mencionó este incremento en la velocidad de cálculo se mejora mediante, los avances de la tecnología de fabricación de circuitos integrados, por medio del estudio de los algoritmos empleados y mediante la elección de la aritmética más adecuada. En la aritmética de Ca2, con sus distintos esquemas de cálculo, el punto débil es que se debe transportar el acarreo de una etapa a la siguiente, esto provoca un retardo que será tanto mayor cuanto lo sea el número de bits con que se debe trabajar. En este punto cobra relevancia el RNS, puesto que es un sistema que esta libre de la propagación del acarreo. En efecto, un número de n bits se puede trabajar en una serie de canales independientes y en paralelo, cada uno de los cuales trabaja con un número de bits muy reducido. Mediante ésta 6 En el capítulo Aritmética de Residuos se explica en detalle el RNS.

Page 20: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

8

estrategia se puede incrementar la precisión de trabajo sin tener una penalización en el tiempo de cálculo, simplemente se agregan los canales que sean necesarios. El hecho de trabajar en canales independientes no sólo trae aparejado que el sistema es carry free. Esta estrategia trae además otra ventaja [JEN99], en lugar de necesitarse un interconexionado global, este queda reducido a conexiones dentro de cada canal. Esto redunda en pistas de conexión más cortas, y por lo tanto en el aumento de la velocidad de cálculo del circuito y en la disminución del consumo de energía. En la “Figura 1” se muestra el bosquejo de las operaciones requeridas para realizar el cálculo de la DCT de 15 puntos. Se toma este caso porque resulta muy apropiado para tratarlo con el RNS. Este esquema presenta una única multiplicación, en el centro, en tanto que el resto de las operaciones son sumas o restas. En la “Figura 2” se ilustra como se puede realizar este computo sobre canales independientes con el empleo de la aritmética en el RNS. La misma estructura se “copia” en cada canal de manera que las interconexiones necesarias quedan confinadas a cada uno de ellos. Finalmente cada canal se puede sincronizar de forma independiente, en tanto que las entradas y salidas lo estén.

Figura 1 Transformada Discreta Coseno de 15 puntos. [JEN99]

Otro punto a tener en cuenta en muchos diseños, por ejemplo, en los equipos electrónicos portátiles, es que tengan un bajo consumo de energía. En [STO01] se realiza un estudio de la reducción de disipación de potencia en algunos circuitos implementados en RNS con su contraparte binaria. En particular para un filtro FIR la arquitectura que emplea RNS reduce el consumo de potencia debido a que se reduce: ♦ El costo del hardware. ♦ la actividad de cada bit. Por ejemplo en un multiplicador de 4 x 4 esta disminución es de

hasta un 38%. ♦ La fuente de alimentación.

Page 21: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

9

Más aún, la comparación entre un filtro FIR, en su forma directa y trabajando con números complejos con su contraparte QRNS7 para la misma prestación de datos procesados por unidad de tiempo, requiere para ésta última la mitad de área y la tercera parte de consumo de potencia que en la implementación tradicional.

Figura 2 Cómputo de de la DCT sobre canales independientes. [JEN99]

Actualidad y perspectiva del sistema numérico de residuos Originalmente los circuitos aritméticos basados en el RNS, como se verá más adelante, se implementaban sobre memorias que actuaban como tablas de búsqueda. El costo de las memorias era demasiado alto y su capacidad reducida, dos razones para que esta estrategia fuera poco práctica. Sin embargo hoy en día, gracias al gran avance en el campo de la microelectrónica, se ha reducido considerablemente el costo por bit de memoria, a esto se suma el hecho de que su capacidad se ha incrementado de manera exponencial. Además la gran escala de integración alcanzada también permite otro tipo de soluciones que no necesitan el empleo de tablas de búsqueda. Es por ello que la llegada de los dispositivos VLSI o ULSI ha dado un nuevo impulso a la aritmética de residuos, así como también a otras, con la posibilidad de incluir todo un sistema en un único circuito integrado. Por otro lado, en los últimos años, ha surgido con fuerza la idea de los circuitos lógicos programables, más aún, su costo por compuerta decrece de manera asombrosa y su velocidad de funcionamiento crece permanentemente. Éstas son razones de peso para hacerlos competitivos en muchas aplicaciones. Como ha ocurrido con todos los dispositivos electrónicos, desde su aparición, los circuitos lógicos programables se han ido especializando. Desde las primeras PAL en las que el usuario tenía, siempre que la capacidad del dispositivo lo permitiera, sintetizar todo sistema digital, hasta las modernas FPGAs más especializadas. En efecto hay FPGAs con bloques de

7 Variación del RNS que sirve para trabajar con números complejos y que se verá en “Sistema numérico de residuos cuadrático (Quadratic Residue Number System QRNS) [BIZ97]”

Page 22: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

10

memoria, con conversores analógico a digital, con microprocesadores, con circuitos de comunicación bajo distintas normas, con bloques aritméticos, etc. Los circuitos lógicos programables son una alternativa interesante en la implementación de todo tipo de sistemas digitales, más aún teniendo en cuenta que si se parte de una descripción mediante el empleo de lenguajes de descripción de hardware se puede prototipar a corto plazo y trasladar el resultado a un ASIC, con las ventajas que trae aparejadas ésta técnica.

TÉCNICAS INTEGRADAS DE IMPLEMENTACIÓN DE SISTEMAS DIGITALES8 Supóngase que se desea implementar un sistema digital cualquiera. El punto de partida es una descripción de muy alto nivel, es decir, del comportamiento deseado del sistema. En este punto se determinan las entradas y salidas que debe tener, la velocidad de funcionamiento mínima necesaria, consumo máximo permitido, etc. Para simplificar el diseño, si este es complejo, se lo puede dividir en bloques. Cada uno con un propósito determinado pero también con una descripción que indica que es lo que se desea que haga, pero no como hacerlo ni con que. Esto es posible gracias al poder de síntesis de los actuales compiladores de circuitos descriptos en lenguajes de alto nivel. El resultado puede ser algo como lo indicado en la “Figura 3”.

Una de las preguntas que surgen es con que tecnología implementar dicho circuito. ¿Microcontrolador, Procesador Digital de Señales, Circuito Integrado Full Custom, Semi Custom o mediante Circuitos Integrados de Lógica programable? Esta pregunta, a priori, no tiene respuesta y no la tiene hasta tanto no se determinen, entre otras, las condiciones de contorno del sistema, tales como: ¿se usará para cálculo numérico intensivo? ¿para control? ¿son importantes el bajo consumo y la velocidad? ¿cuántas unidades se fabricarán, decenas, miles, millones? ¿para cuándo se necesitará el prototipo, semanas o meses?, etc. A medida que estas preguntas van teniendo respuesta se van descartando posibilidades hasta que se llega a la solución óptima o cuasi óptima [GAL95] [MAR96] [SCH97]. En los siguientes apartados se da una breve descripción las distintas alternativas, descartando las soluciones con microcontrolador y DSP puesto que son las más conocidas.

Full Custom En un circuito integrado full custom el diseñador diseña parte o todos los bloques que integran el sistema, transistor por transistor y conexión por conexión. Ejemplo: Supóngase que se desea realizar la implementación Full Custom de un circuito multiplicador de 4 bits. Los pasos a seguir son los siguientes: 8 Todas las figuras y layouts de este apartado han sido realizadas por el autor de esta tesis para el dictado de la asignatura de grado optativa “Introducción a la Microelectrónica”. En ésta los alumnos diseñaban y se enviaba a fabricar un circuito integrado a la empresa ESII de Francia como parte de un chip multiusuario junto con otras universidades de América Latina y España.

Page 23: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

11

Figura 3 Ejemplo de sistema digital a sintetizar.

♦ Primero. Seleccionar el algoritmo de multiplicación. Para el caso se tomó la forma tradicional de realizar el producto de dos números, sean estos x e y.

♦ Segundo paso. Ver si en el circuito existe algún tipo de regularidad, si la hay, en lugar de diseñar todo el sistema se podrán planear pequeñas celdas que se repetirán en el proyecto. En este caso particular vemos que se puede partir de una celda que realice la operación lógica and de dos bits (igual a la multiplicación aritmética de los mismos) y a la suma total de los bits previos más el acarreo de la celda adyacente. Esta celda se ilustra en la “Figura 4”:

+

P C XI I I

I+1I+1

I

P

Y

C

+

P C XI I I

I+1I+1

I

P

Y

C

Figura 4 Celda elemental de un circuito multiplicador.

Si se analiza el circuito se puede ver que es posible descomponerlo en otras celdas

elementales. Este hecho, además de simplificar el trabajo, permite realizar un diseño paramétrico, es decir que se pueden emplear las mismas celdas elementales para multiplicar dos enteros con un mayor número bits, minimizar retardos y realizar bloques que se “ajusten” entre si fácilmente. Ver “Figura 5”

X3 X2 X1 X0 Y3 Y2 Y1 Y0 X3Y0 X2Y0 X1Y0 X0Y0 X3Y1 X2Y1 X1Y1 X0Y1 X3Y2 X2Y2 X1Y2 X0Y2 X3Y3 X2Y3 X1Y3 X0Y3

P7 P6 P5 P4 P3 P2 P1 P0

Page 24: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

12

♦ Tercer paso ver “Figura 6” y “Figura 7”: Diseñar el layout9 de cada celda. En la “Figura 8” se puede apreciar el layout final del circuito multiplicador.

+ ++

+ ++

+ ++

+++

X3 X2 X1 X0

Y0

Y1

Y2

Y3

P0

P1

P2

P3

P7 P6 P5 P4

Figura 5 Disposición y celdas que componen el multiplicador de 4 bits.

Como se puede apreciar para este tipo de técnica se requiere una mano de obra altamente especializada con herramientas de diseño de alto costo y tiempos de salida al mercado mayores que con las técnicas que se detallan en los apartados siguientes. Sin embargo cuando lo que importa es el bajo consumo, la alta velocidad, un área reducida de silicio y una producción elevada seguramente será la mejor opción. Como contrapartida cuando el número de sistemas a realizar no es elevado, no se posee mano de obra especializada o las herramientas de diseño con que se cuenta deben ser de bajo a mediano costo tal vez una de las alternativas siguientes sea una posibilidad mejor. 9 Layout. Descripción geometrica de un ciruito integrado en la que cada figura, generalmente un rectángulo, le indica al fabricante el proceso a realizar; región n, región p, silicio policristalino, etc.

Page 25: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

13

Finalmente, como elemento adverso al diseño Full Custom se tiene el hecho que en el mundo existen muchos más ingenieros que diseñan sistemas digitales que aquellos que diseñan circuitos integrados. Por ésta razón estos últimos no pueden satisfacer la demanda de los primeros. Para superar este “cuello de botella” se crearon las soluciones alternativas que se describen a continuación. En estas el diseñador de sistemas ya tiene parte del problema resuelto.

Figura 6 Layout de una de las celdas elementales del multiplicador.

Figura 7 Layout de las otras celdas elementales que componen el multiplicador.

+

P C X I I I

I+1 I+1

I

P

Y

C

VDD VSS

Xi

Yi

Page 26: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

14

Figura 8 Layout final del multiplicador.

Como ejemplos de realización de sistemas mediante circuitos integrados full custom se pueden ver las referencias [FIS97] [GAO95] [GAO97b] [GAO97c] [GAO99] [GAO99a] [PAG99] [PEL98] [PEL98a] [PEL99]. En tanto que en [BEL97] [BEL97a] [GAL95] [GAO92] [GAO92a] [GAO93] [GAO96] [GAO96a] [GAO97d] [GAO98] [GAO98a] [GAO98b] [GAO98c] [GAO99b] [GOM95] se presentan distintos trabajos de desarrollo de herramientas de CAD para ayudar al diseñador de circuitos integrados en la tarea de llegar al layout del sistema con menor probabilidad de errores y una mayor automatización en las distintas etapas del diseño.

Standard Cells Cuando se trabaja con ésta técnica se dispone de una biblioteca de celdas normalizadas que provee el fabricante de circuitos integrados. Se cuenta con la ventaja de que cada celda ha sido testeada rigurosamente. Cada celda debe cumplir con los siguientes requisitos, “Figura 9”: a) todas las celdas tienen la misma altura, b) el largo de la celda depende de la complejidad de la misma, c) los puntos de entrada y salida están en la parte superior e inferior de la misma, d) las líneas de alimentación corren de manera horizontal y tienen la misma posición y ancho en todas las celdas. En la “Figura 10” se ven ejemplos de layouts de celdas normalizadas. La forma de trabajar del diseñador es escoger las celdas que necesita e ir colocándolas una a continuación de otra. A fin de que el layout final tenga una relación de aspecto aproximadamente cuadrada, regularmente se “cambia de renglón”. De forma que la apariencia que va cobrando el diseño es como la que se observa en la “Figura 11”. En la “Figura 12” se puede ver un ejemplo de layout final de un circuito integrado realizado mediante celdas normalizadas.

Page 27: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

15

Puesto que el fabricante no sabe que celdas ni en que lugar las empleará el diseñador debe fabricar el diseño que este le envía desde cero, es decir partir del primer proceso que es el “pozo” y finalizarlo con las interconexiones metálicas.

Figura 9 Esquema de layout de una standard cell.

Figura 10 Ejemplos de layouts de standard cells.

Figura 11 Esbozo de un circuito integrado con la estrategia de standard cells.

Celda 1 Celda 2 Celda 3

Celda 4 Celda 5 Celda 6

Celda 7 Celda 8 Celda 9

Ancho decanal variable

VV SSDD

Largo variable

Alto fijo

VSS

VDD

Puntos de entrada y salida

Page 28: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

16

Figura 12 Ejemplo de un circuito integrado standard cell.

Como ejemplos y desarrollo de herramientas de circuitos integrados realizados mediante esta técnica ver [GAO94] [GAO94a] [GAO97] [GON00].

Gate Array Al contrario de las dos técnicas anteriores el fabricante ya tiene en stock miles de circuitos integrados cuasi terminados, solo falta que le diseñador le indique como interconectar las celdas que hay en el. De ésta manera el tiempo de diseño y fabricación se reduce notablemente [GAO00b]. En efecto, el fabricante ya posee circuitos integrados cuyo esquema se ve en la “Figura 13”.

Page 29: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

17

Figura 13 Esquema de un circuito integrado gate array.

Si bien el circuito esta formado por una serie de celdas, a diferencia de standard cells, estas son todas iguales, conteniendo un número de transistores variable, generalmente entre 4 y 10, parcialmente conectados. Las líneas de alimentación también se dispones horizontalmente y los puntos de acceso están el las caras superior e inferior. Si se indica que es una celda 2N2P significa que contiene dos transistores MOS de canal N y dos de canal P, ver “Figura 14”. En la “Figura 15” se muestra un ejemplo de personalización.

Figura 14 Ejemplo de celdas de un gate array.

Figura 15 Personalización de una celda como una compuerta nand de dos entradas.

VVSS DD

Celda 3N3P

VSS

B

VDD

Z

A

ZA

B

V VSS DD

Celda 2N2P

V VSS DD

Celda 3N3P

V VSS DD

Celda 3N3P + 2N2P

Celdas de entrada salidaLíneas de transistores

Canales de interconexión

Page 30: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

18

El diseñador personaliza cada celda indicando como deben conectarse los transistores mediante, por ejemplo, dos niveles de metal. En la “Figura 16” se indica el layout de una celda 2N2P + 3N3P y en la “Figura 17” la metalización que debe realizar el fabricante para convertirla en la compuerta nand de 2 entradas que se aprecia en la “Figura 18”.

Figura 16 Layout de una celda 2N2P + 3N3P.

Figura 17 Metalización necesaria para formar una compuerta nand de 2 entradas.

Figura 18 Layout final para una celda tipo gata array, para funcionar como una compuerta nand de 2 entradas.

Page 31: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

19

Como también es necesario conectar las celdas entre si, las filas están separadas por un canal destinado a tal propósito, “Figura 19”. Finalmente las celdas de entrada-salida también se pueden personalizar individualmente, por ejemplo para que actúen como entradas, salidas, bidireccionales, con resistencia de “pull up”, etc.

Figura 19 Líneas de celdas continuas y equiespaciadas.

Tecnologías digitales programables (FPGAs)10

Introducción

La principal diferencia entre productos y procesos es el diseño. El diseño es un proceso creativo que determina la función, forma, capacidad, y finalmente la utilidad del producto o proceso.

Las decisiones durante la etapa de diseño determinan la facilidad con la que se puede

fabricar el producto o realizar un proceso o en el que se puede organizar su construcción. En general, durante el primer 10% del tiempo de desarrollo total de un nuevo producto se deben tomar el 80 % de las decisiones. Un diseño pobre prácticamente no se puede transformar en un producto superior, sin importar cuanto esfuerzo se le dedique.

Mientras que las tecnologías de fabricación han mejorado en mucho su eficiencia, esta

mejoría no se ha visto acompañada en la misma medida por métodos de diseño que las acompañen. Acompañado a esto hay un cambio rápido en la tecnología de componentes semiconductores, tales como microprocesadores y memorias. Los microprocesadores mejoran 10 El autor de esta tesis dicta desde hace unos ocho años la asignatura optativa “Diseño Digital con Técnicas de Alto Nivel” el material de la misma está a disposición de los lectores. Esta asignatura fue creada junto con el Dr. Claudio González. Hasta donde sabemos nuestra facultad es el único lugar donde se dicta una materia dedicada enteramente a FPGAs y VHDL. En otras universidades a lo sumo es un pequeño capítulo de otra materia o se dicta como un curso exepcional fuera de la curricula de la carrera correspondiente. Es importante destacar este tema puesto que a nuestro entender hoy día debería ser una materia obligatoria de grado, no porque los circuitos de lógica programable sean la mejor solución pero si una alternativa importante que se debe tener en cuenta al momento de decidir que técnica usar para la realización física de un sistema digital.

Page 32: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

20

sus prestaciones un 60% cada año, en tanto que, las memorias cuadruplican su capacidad cada tres años. Estos cambios que se producen tan rápidamente en la tecnología conducen a que los nuevos productos queden, en un período de tiempo relativamente corto, obsoletos. Las principales compañías de productos electrónicos obtienen la principal parte de sus ingresos de productos que tienen menos de tres años de antigüedad. A lo cual se le suma el efecto de la gran competencia a nivel mundial, que las obliga a introducir permanentemente productos nuevos. Muchos de los artículos electrónicos de hoy en día tienen un ciclo de diseño y fabricación inferior a los seis meses. Una proyección de esta tendencia nos dice que en un futuro no muy lejano se podrán fabricar productos enteramente personalizados sobre demanda. Para tener éxito se requiere entonces de un ciclo de diseño, construcción de prototipos y fabricación de sistemas digitales complejos, que ocupe el menor tiempo posible. El diseño es un proceso iterativo, en el que se debe obtener primero un prototipo en un tiempo lo más breve posible, para realizar una experimentación, evaluación y testeo lo más precisa posible. En este punto es donde se vuelven valiosas las nuevas estrategias de diseño basadas en circuitos lógicos programables y lenguajes de descripción de hardware.

Durante el desarrollo de esta tesis se sintetizaron todos los circuitos mediante FPGAs (Field Programmable Logic Array). No porque como se dijo antes sea, a priori, la mejor solución, sino porque es una herramienta de bajo costo con la cual se pueden prototipar y evaluar en poco tiempo las distintas implementaciones de un circuito determinado, con resultados muy satisfactorios. Además con el diseño descripto en VHDL se puede pasar rápidamente a cualquiera de las implementaciones anteriores.

Lógica programable

Los dispositivos lógicos programables, denominados FPGAs11, permiten realizar un prototipo en un tiempo increíblemente breve en comparación con los métodos tradicionales. Realizado el prototipo, y una vez que se encuentra perfectamente testeado hay varios caminos a seguir, los cuales dependen principalmente del volumen de sistemas a construir, la tecnología en el cual se debe insertar, costo de oportunidad, etc. Estas alternativas son, además de realizarlo directamente en FPGA, las señaladas con anterioridad en este mismo apartado.

Los conceptos claves involucrados en una FPGA son12:

♦ Debe ser un componente standard a fin de poder fabricarlos en grandes volúmenes y reducir su costo. En la “Figura 20” se ilustra la arquitectura general de una FPGA. ♦ Deber de configurable o reconfigurable por el usuario. Por ello debe tener:

• Interconexiones reconfigurables. • Funciones lógicas reconfigurables. • Celdas de entrada y salida reconfigurables.

11 Los dispositivos lógicos programbles, dependiendo del fabricante, de la forma de programación o de su arquitectura, reciben distintos nombres EPLDs (Erasable Programmable Logic Device), CPLDs (Complex Programmable Logic Device), PALs (Programmable Logic Device), GALs (Generic Array Logic), etc. La tendencia actual es englobarlos bajo la denominación única de FPGAs. 12 El concepto de dispositivo lógico programable fue inventado y patentado por S. Wahlstrom en 1967, pero era una idea demasiado adelantada para la técnologia de la época, por lo que quedó relegada durante muchos años.

Page 33: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

21

La idea de interconexionado programable se puede realizar, ver “Figura 21”, distribuyendo pistas de metal a lo largo del circuito integrado y disponiendo entre ellos algún elemento que permita conectarlos a voluntad. Estos elementos son:

Figura 20 Arquitectura general de una FPGA.

Figura 21 Interconexionado programable mediante transistores MOS.

♦ Fusibles. Son aleaciones, de distintos tipos, que colocados entre dos pistas de metal, dan una alta continuidad eléctrica entre ellos. Para impedir la circulación de corriente entre dos pistas se debe fundir el fusible haciendo circular por el una corriente de valor elevado. Fue el primer elemento de programación que se empleó. Características:

• Se puede programar una sola vez. • Los tests que se realizan en fábrica son destructivos. • Requiere circuitos especiales para hacer circular una alta corriente. • Necesita procesos especiales de fabricación. • No tienen una alta confiabilidad. • Alta densidad de integración. • Bajo costo.

♦ Antifusibles. Son conexiones entre pistas de metal normalmente abiertas. Mediante la circulación de una alta corriente el material de separación entre las pistas se transforma en un medio conductor de baja resistencia. Hay dos tipos. El primero desarrollado por Actel y denominado PLICE (Programmable Low-Impedance Circuit Element) [ACT07] y el segundo

Page 34: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

22

es el que emplea la empresa QuickLogic y que denomina Via Link [QUI07]. En el primer caso el paso a conducción se debe a la fusión de un dieléctrico entre dos capas de silicio, en el segundo por fusión de silicio amorfo entre dos pistas de metal. En la “Figura 22” se muestra de manera esquemática la tecnología empleada por Actel. Entre el nivel de polisilicio y el de difusión n+ existe un dieléctrico que la empresa denomina ONO (Óxido-Nitruro-Óxido, SiO2-Si3N4-SiO2). Al aplicar la corriente de programación, aproximadamente 5mA, se produce la fusión de la delgada capa de dieléctrico transformándose la región en una resistencia de aproximadamente 500 Ω, si la corriente de programación es mayor el valor de la resistencia disminuye. El la “Figura 23” se muestra el diagrama esquemático de los antifusible Via Link. El dieléctrico que separa los dos niveles de metal es una aleación de tungsteno-titanio-silicio. De la misma manera que en el caso anterior el paso de una corriente elevada, unos 15 mA, cambia las propiedades de la unión que la transforman es una resistencia aproximadamente 80 Ω. Con respecto a la tecnología anterior presenta dos ventajes. En primer lugar se tiene una interconexión directa entre metal y metal, por lo que requiere un área menor y presenta menor capacidad parásita, en segundo lugar se tiene una menor resistencia de interconexión. Características principales:

• Se pueden programar una sola vez. • Los tests que se realizan en fábrica son destructivos. • Requiere circuitos especiales para hacer circular una alta corriente. • Necesita procesos especiales de fabricación. • Son más confiable que los fusibles. • Alta densidad de integración. • Bajo costo.

Figura 22 Antifusible polisilicio difusión.

Figura 23 Antifusible metal-metal.

♦ Transistores MOS. Las interconexiones SRAM, ver “Figura 24” y “Figura 21” están formadas por un transistor MOS cuyo estado, abierto o cerrado se memoriza mediante un flip flop en el momento de programación. Particularidades:

• Se requiere de un proceso CMOS standard. • Se pueden testear de manera exhaustiva en fábrica. • Para la reconfiguración no hay necesidad de retirar la FPGA de la plaqueta, se puede programar directamente sobre esta, propiedad que se denomina ISP (In System Programming). • Cada conexión necesita seis o más transistores. Es la técnica de interconexionado que requiere mayor área de silicio.

Page 35: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

23

• La programación es volátil. • Se requiere de una memoria no volátil externa de programación.

Figura 24 Interconexión SRAM.

♦ Transistores EPROM o EEPROM. En esta estrategia, como se muestra en la “Figura 25”, se emplean transistores MOS con doble gate. La idea es que mediante una programación adecuada se puede modificar la tensión umbral de los transistores, por ejemplo llevándola a un valor más alto que el de la fuente de alimentación, “Figura 26”. En ambos casos la programación se realiza de manera eléctrica. Para el borrado en las EPROM se emplea luz de una determinada longitud de onda mientras que en la EEPROM este procedimiento se realiza eléctricamente, lo que permite la programación sin necesidad de retirar la FPGA del circuito impreso . Características:

• Alta densidad de integración. Consumen un área algo mayor que un antifusible. • Son reprogramables. Se pueden realizar tests completos en fábrica. • Programación no volátil. • Se requiere un proceso de fabricación más complejo que el CMOS común.

Figura 25 Interconexión programable EPROM/EEPROM.

Figura 26 Tensión umbral para el transistor sin programar y luego de la programación.

Page 36: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

24

Las celdas para la síntesis lógica de los circuitos digitales están basadas prácticamente en dos esquemas, sumas de términos producto, “Figura 27”, y tablas de búsqueda (Look-up Table, LUT), “Figura 28”.

Figura 27 Celda de síntesis lógica basada en suma de términos producto.

Figura 28 Celda de síntesis lógica basada en tablas de búsqueda.

Cada celda lógica es capaz de resolver una función booleana. Hay celdas lógicas muy sencillas, de “grano fino” y otras más complejas, de “grano grueso”. Cuanto más compleja sea la celda se pueden sintetizar en un único bloque funciones con mayor número de variables, pero también es mayor la posibilidad de subempleo de las mismas. A menor

Page 37: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

25

granuralidad el empleo de las celdas es casi total pero se requieren mayores recursos de interconexión a fin de vincular celdas que resuelven pequeñas partes del problema. En la “Figura 27” se ilustra la celda elemental utilizada por Altera en la serie MAX, denominada macrocelda. Esta disposición es muy parecida a la de las primitivas PAL, síntesis mediante términos producto, difieren con estas en que se pueden reprogramar mediante transistores EEPROM. En la “Figura 28” se muestra la celda elemental que emplea la familia FLEX de Altera, denominada LE (Logic Element), basada en LUTs. Cada celda puede sintetizar cualquier función de cuatro variables. La salida puede ser combinacional o registrada mediante el flip flop que posee a su salida. Además, para sintetizar de manera mas eficiente circuitos aritméticos, cuenta con un bloque especial que permite generar el acarreo, que le entrega a la celda siguiente, mediante el cálculo de la suma de los dos bits que ingresan a la celda y el acarreo que proviene de la anterior. También, mediante el diseño especial que tiene esta celda (cascade chain), permite encadenar varias celdas para sintetizar funciones booleanas de más de cuatro variables con caminos de bajo retardo. En la “Figura 29” se muestra la celda elemental utilizada por Xilinx [XIL07] en la serie 4000. Puede sintetizar dos funciones de cuatro variables o una de cinco. Las salidas pueden ser combinacionales o secuenciales dependiendo de su paso o no por los flip flops de salida. Xilinx denomina a sus celdas elementales CLBs (Configurable Logic Block).

Figura 29 Celda lógica de la familia 4000 de Xilinx.

Existen otros esquemas de celdas elementales menos empleados por la industria. Uno de ellos es el caso de Actel [ACT07] en el denominado S-Module. Cada celda está compuesta de tres multiplexores de 2 a 1, una compuerta AND, una OR y un flip flop. Se trata de celdas

Page 38: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

26

de grano fino. Actel puede trabajar con estas celdas tan simples debido a que posee grandes recursos de interconexión por realizarlos mediante antifusibles.

Figura 30 Celda de entrada/salida se la familia 7000 de Altera.

Figura 31 Celda de entrada/salida en la serie FLEX de Altera.

Finalmente las celdas de entrada salida también son configurables. Desde esquemas sencillos como el caso de la familia MAX 7000 de Altera, “Figura 30” hasta otros más

Page 39: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

27

sofisticados como el de la serie FLEX de la misma empresa, “Figura 31”. En el primer caso se trata de un circuito sencillo que permite definir la celda como de entrada o salida y que además posee un buffer tri-state. En el caso de la familia FLEX las celdas son más sofisticadas, en efecto, además de las características señaladas en el caso MAX 7000, posee flip flops que pueden capturar datos desde el exterior o registrar los datos de salida, control de slew rate, resistencias de pullup o pulldown, etc. En la “Figura 32” se muestra el esquema parcial de una FPGA de Xilinx, la XC3020. Se puede apreciar que los CLBs de distribuyen de manera uniforme sobre la pastilla de silicio. Las celdas de entrada/salida cubren la periferia y el interconexionado es segmentado, es decir que existen distribuidas pistas de metal de distinta longitud a lo largo de la FPGA. Altera por el contrario, ver “Figura 33”, realiza un interconexionado jerárquico.

Figura 32 Esquema parcial de una FPGA. Caso XC3020.

En el caso de Altera existen interconexiones locales, que conectan una celda con la contigua, por ejemplo las líneas de acarreo, vecinales, que sirven para conectar grupos de celdas cercanas y agrupadas en los denominados LABs (Logic Array Block) y globales, es decir líneas que se utilizan para conectar celdas que pertenecen a distintos LABs. Xilinx, por el contrario, emplea el interconexionado segmentado, no existe jerarquía entre las distintas pistas de metal. Posee sin embargo algunas pistas especiales. Por ejemplo cada celda está unida con sus cuatro adyacentes mediante pistas rápidas. Líneas especiales ligadas a buffers tri-state, destinadas a formar buses, línea largas, para propagar una señal a varias celdas, etc.

Page 40: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

28

Figura 33 Interconexionado jerárquico en la familia FLEX de Altera.

Las aplicaciones de las FPGAs abarcan prácticamente todo el campo de la electrónica, así podemos encontrar desarrollos, entre muchos otros, en transmisión de datos basados en rayos infrarrojos [ARN01] [ARN02a] [ARN02b] [ARN03] [ARN03a] [ARN03b], codificadores decodificadores [ARN04] [ARN05] [ARN05a] [ARN05b] [ARN06a] [ARN07] [ARN07a] [ARN07b] [ARN07c], aplicaciones médicas [ARN01a] [ARN02] [GAO02a], microprocesadores softcore [GAO00] [GAO00a] [GAO00c], educación [GAO03a], ayuda a discapacitados [GAO06] [GON07], generadores de ruido [ZAB08], cursos de diseño de circuitos integrados [SCH97] [SCH95] [SCH95] [SCH97], etc.

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

El crecimiento espectacular del conocimiento humano, con su consiguiente incremento en complejidad, en nuestro caso particular, diseño, simulación, verificación e implementación de sistemas digitales complejos, ha dejado obsoletas las antiguas estrategias que tenía el diseñador de sistemas. No sólo se hace necesario desarrollar nuevas técnicas sino que también se produce una revolución conceptual en el diseño. El ingeniero ya no puede estar tan próximo a los circuitos a nivel transistores sino que, debido a la complejidad del problema a resolver, debe cambiar su filosofía de trabajo. En efecto, es necesario que pueda describir el sistema a diseñar cada vez con un mayor grado de abstracción. Tratar de describir el comportamiento deseado del sistema sin importar, en primera instancia, como se resuelve ni con que elementos.

Page 41: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

29

Este crecimiento vertiginoso de la microelectrónica ha dado pie a que la metodología

de diseño sea top-down, basada en el empleo de lenguajes de descripción de hardware, que han transformado los procedimientos de diseño de sistemas electrónicos. Existen numerosos lenguajes de descripción de hardware, el VHDL y el Verilog son los más empleados [PER03] [PRE03a]. Además, se tiene la facilidad de que permiten la simulación y síntesis de partes del sistema con diferentes niveles de abstracción. Esto, unido a la posibilidad de realizar la síntesis automática, y a la creación de bloques circuitales reutilizables y parametrizables en función de las necesidades de la aplicación, ha permitido dotar al diseñador de enormes recursos que hacen posible abordar la creciente complejidad con mayores garantías de éxito. Ejemplo: Descripción VHDL de un multiplexor de dos entradas.

architecture comportamiento of mux21 is begin process( a, b, ctrl ) begin if ( ctrl = ‘0’ ) then z <= a; else z <= b; end if; end process; end comportamiento; Como se puede apreciar13, se le dice al compilador que se desea que haga el circuito a

sintetizar, pero no se le indica ni con que resolverlo ni como. VHDL, más aún en su nueva versión 2008 que incorpora poderosas herramientas de

verificación funcional, se está convirtiendo, junto con Verilog, en uno de los lenguajes de descripción de hardware más empleados. Si bien esta herramienta facilita el diseño y verificación de sistemas digitales, su elevado grado de abstracción puede hacer perder de vista el contexto de aplicación, costos, plazos, consumo, etc. Por lo que se hace necesario un conocimiento profundo de las estrategias de síntesis que emplean las herramientas de diseño y de la tecnología en que se lo concretará, FPGA, Fullcustom, etc. Cuanto mayor sea este conocimiento mejores serán los resultados.

Los lenguajes de descripción de hardware están eliminando las técnicas de diseño

tradicionales, basadas en bibliotecas de componentes, módulos de captura esquemática, etc. Esto es válido para los sistemas digitales, en los analógicos la situación es más compleja, puesto que el diseño de circuitos de este tipo requiere de un alto grado de comportamiento “humano”, como intuición, focalizar rápidamente los posibles mejores caminos sin necesidad de recorrerlos a todos, etc., características difíciles de modelizar en una herramienta de síntesis.

Los lenguajes de descripción de hardware permiten lograr un grado de abstracción

mayor que los viejos esquemas de diseño al permitir, por ejemplo, indicarle al compilador cual es el comportamiento deseado del circuito o sistema, sin tener que preocuparse en decidir que elementos emplear ni en como utilizarlos. Este es un problema transparente al diseñador, lo resuelve de manera automática la herramienta de desarrollo que esté empleando, por ejemplo Quartus en Altera [ALT08] o ISE en Xilinx [XIL08].

13 En rojo se indican las palabras reservadas del sistema.

Page 42: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Introducción

30

Otra de las tendencias actuales, denominada hardwiring, es la de implementar algoritmos en hardware en lugar de resolverlos por software. Cada vez es más frecuente ver como algoritmos que se desarrollan y verifican sobre computadoras finalmente se implementan en hardware, en cualquiera de sus variantes. Un ejemplo, ya antiguo, son las unidades aritméticas con que vienen provistos los microprocesadores o los más modernos DSPs. Otro ejemplo son los circuitos de comunicación standard más comunes, caso de Lucent y Siemens, en las que se integran los protocolos de comunicación con sus distintas rutinas, esto, además de mejorar la performance, permite liberar al microprocesador de este trabajo dejándole tiempo disponible para otras tareas. Como ejemplo final podemos ver como los algoritmos de codificación de video y criptografía se implementan en hardware a fin de mejorar la velocidad de funcionamiento. Es decir que si bien en un principio un algoritmo se piensa para ser ejecutado en una computadora hoy día es cada vez más frecuente que termine siendo realizado en alguna de las tecnologías vistas.

Anteriormente existía una clara línea divisoria entre el diseño de hardware y software. Esta separación es cada vez más tenue y difusa ya que se están desarrollando herramientas, con un grado de abstracción aún mayor que los lenguajes de descripción de hardware, denominadas de codiseño hardware-software. El sistema decidirá, aportándole ciertas reglas de contorno, que se resuelve por software, es decir microprocesador, y que por hardware.

Gracias a las nuevas metodologías de diseño y de implementación casi de continuo se acuñan nuevos términos para referirse a modernas estrategias en los procesos de creación de un nuevo sistema. Hoy son comunes términos como FCCMs (custom computers o computadoras a medida basadas en FPGAs), SOC (System on a Chip), SOPC (System on a Programmable Chip), sistemas evolutivos o autoreparables, etc. En los que se emplean las técnicas señaladas anteriormente.

Por lo señalado a lo largo de este capítulo se decidió sintetizar los circuitos en FPGAs

y realizar su descripción en VHDL.

Page 43: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

31

Aritmética de Residuos

1

En el periodo comprendido entre los siglos IV y III a. C., los sacerdotes mayas inventaron un sistema de numeración basado en la posición de valores, que implica la concepción y uso de la cantidad matemática cero14. [WAN00] La unidad del calendario maya era el día o kin. Al segundo orden de unidades, compuesto de 20 kines se le dio el nombre de unial. En un sistema perfecto y lógico de numeración vigesimal el siguiente término será el 400 (1 x 20 x20), pero al llegar a este punto los mayas introdujeron una variante para cálculos calendarios. El tercer orden del sistema maya, el tun, se componía de 18 (en lugar de 20) uniales o 360 (en lugar de 400 kines). Esto se aproxima más a la duración del año solar. Después del tercer orden, las unidades de progresión son de a 20, como se muestra en la tabla siguiente, en que constan los valores numéricos y los valores de periodo de tiempo. 20 kines = 1 uinal o 20 días 18 uniales = 1 tun o 360 días 20 tunes = 1 katún o 7.200 días 20 katunes = 1 baktún o 144.000 días 20 baktunes = 1 picún o 2.880.000 días 20 pictunes = 1 calabtún o 57.600.000 días 20 calabtunes = 1 kinchiltún o 1.152.000.000 días 20 kinchiltunes = 1 alautún o 23.040.000.000 días

14 Fragmento del códice Tro-Cortesiano o códice Madrid. Depositado en el museo de América de Madrid.

Page 44: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

32

CAPÍTULO 1. ARITMÉTICA DE RESIDUOS

En el presente capítulo se realiza una breve introducción a la teoría de las congruencias, comenzando por una serie de definiciones y propiedades elementales, que se prosigue con un resumen de las principales diferencias y similitudes que presentan las aritméticas de Euler y la Gaussiana. Se presenta el sistema numérico de residuos o RNS (Residue Number System) con sus variantes, ejemplos de las cuatro operaciones básicas y de conversión binario a RNS y RNS a binario. Y finalmente se detallan algunas de las aplicaciones del RNS.

DEFINICIONES Y PROPIEDADES ELEMENTALES

Propiedades de los sistemas numéricos

Las principales propiedades, que son comunes a la mayoría de los sistemas numéricos, se detallan en las siguientes definiciones. Estas propiedades son necesarias a fin de lograr un sistema coherente que sea capaz de representar el mundo real mediante una serie de reglas concisas que posibiliten su manipulación, desde las operaciones aritméticas más sencillas, hasta algoritmos complejos, tales como transformadas y procesamiento digital de señales en general. Rango dinámico (M) [JUL91]: El rango dinámico de un sistema numérico se define como el intervalo sobre el cual se pueden representar los enteros con los cuales se está trabajando. Representación única [JUL91]: En este caso cada número perteneciente al sistema tiene una única representación.

Redundancia [JUL91]: Se dice que un sistema numérico es redundante cuando existen menos números (o cantidades a representar) que combinaciones de dígitos. Es decir que diferentes combinaciones de caracteres pueden representar una misma cantidad. Obviamente la no representación única implica redundancia.

Sistema numérico ponderado o pesado [JUL91]: Se dice que un sistema numérico es

ponderado cuando existe un conjunto de pesos w y otro a de dígitos permitidos tal que cualquier número X se puede expresar mediante:

∑=

=n

i iwiaX1

Page 45: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

33

Si los valores de w corresponden a potencias consecutivas de un único número se dice que el sistema es de base o raíz única, este es el caso del sistema decimal. Por el contrario, si los wi no son potencias del mismo número se dice que el sistema es de base mixta. Entre las ventajas más significativas que poseen los sistemas de base única se pueden destacar la facilidad con que se pueden realizar las comparaciones de magnitudes, detección de signo y revasamiento.

Grupos, campos y anillos [KRI94] La aritmética de residuos trata con números enteros, más aún, para trabajar en ella se han desarrollado una serie de algoritmos basados, en algunos casos, en algún tipo particular de propiedad que presentan conjuntos especiales de números y las operaciones que los relacionan. Estos conjuntos de números, según sus características, se pueden clasificar como grupos, anillos o campos, según las siguientes definiciones: ♦ Grupo (GGGG). Se dice que un conjunto GGGG de M elementos relacionados mediante una operación aritmética o forman un grupo si satisfacen los siguientes requisitos:

• Para dos elementos cualquiera a, b ∈ GGGG, si a o b = c entonces c ∈ GGGG. • Ley asociativa para la operación o. ( a o b ) o c = a o ( b o c ) ∀ a, b, c ∈ GGGG . • Elemento identidad. Existe un elemento e ∈ GGGG / a o e = a ∀ a ∈ GGGG. • Elemento inverso. Para cada a ∈ GGGG existe un elemento b ∈ GGGG / a o b = e.

De estas definiciones se desprende que un grupo es un sistema numérico con una única

operación, la suma (+) o el producto (.). Si además satisface la ley conmutativa (a o b = b o a), se dice que se trata de un grupo conmutativo o Abeliano. Se denomina orden de GGGG al número de elementos, M, que pertenecen al mismo.

♦ Anillo (A). Un anillo es un conjunto que contiene M elementos y que satisface las

siguientes condiciones: • AAAA es conmutativo bajo la operación de suma. Posee los elementos identidad, denominado cero, y el inverso que pertenecen a AAAA y se denotan por 0 y – a respectivamente. • Para dos elementos cualquiera a, b ∈ AAAA, si a .b = c entonces c ∈ AAAA. • Ley asociativa para el producto. ( a . b ) . c = a . ( b . c ) ∀ a, b, c ∈ AAAA. • Ley distributiva del producto respecto de la suma. a . ( b + c ) = a . b + a . c ∀ a, b, c ∈ GGGG.

Si el anillo bajo estudio satisface además la ley conmutativa para el producto, se dice que es un anillo conmutativo. El número de elementos, M, determina el orden del anillo. Un anillo es un conjunto de elementos con dos operaciones aritméticas, la suma y el producto.

♦ Campo (CCCC). Un campo es un conjunto de elementos sobre los cuales están definidas todas

las operaciones. Un campo se puede definir como un anillo conmutativo que contiene el elemento identidad para el producto (denominado unidad) y denotado como 1 y el multiplicativo inverso para cada elemento no nulo de CCCC denotado a-1 es decir:

a.1 = a y a.a-1 = 1

Page 46: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

34

El orden de CCCC es el número de elementos que contiene.

En la siguiente tabla se indican las características de algunos conjuntos de números según las definiciones dadas anteriormente:

Conjunto de números

Anillo Campo Orden

Enteros √ ∞ Racionales √ ∞ Reales √ ∞ Complejos √ ∞ ZZZZ(M), M compuesto15 √ M GGGG(p)16 √ p

Tabla 1 Propiedades de algunos conjuntos de números [KRI94].

TEORÍA DE LAS CONGRUENCIAS

Definiciones y propiedades elementales La aritmética en módulo fue desarrollada por K. F. Gauss (1777-1855) en 1801 [BOG96]. Gauss encontró que las soluciones de muchos problemas de teoría de números dependen de las propiedades que tienen los restos cuando se dividen los números por ciertos enteros positivos. Se dice que dos números a y b son congruentes o iguales en módulo m si y solo si m | (a – b), es decir si su diferencia es divisible en forma exacta por m [BOG96][PET72]. Esto se denota mediante:

a ≡ b (mód m)

Por ejemplo: 7 ≡ 2 (mód 5), 31 ≡ -2 (mód 3). La definición que se acaba de dar de congruencia es equivalente a decir que se

cumplen las relaciones:

mkba =−

mkba += donde k es un entero. Se denota con |a|m al conjunto de los números congruentes en módulo m. Si el número b ∈ |a|m entonces, por definición, a y b tienen el mismo resto (o residuo) cuando se los divide por m. Puesto que existen m posibles restos cuando se divide por m, hay entonces m diferentes conjuntos |a|m. Estos conjuntos son: 15 Sistema numérico de residuos. 16 Campo de Galois.

Page 47: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

35

|0|m = 0, |1|m = 1, |2|m = 2, |3|m = 3, |4|m = 4,... |a|m = m - 1

Las relaciones de congruencia en módulo m son también relaciones de equivalencia en el conjunto de enteros puesto que cumplen con [PET72]: ♦ reflexiva: a ≡ a ( mód m ) para todo entero a; ♦ simétrica: si a ≡ b ( mód m ) entonces b ≡ a ( mód m ) para todo par de enteros a y b; ♦ transitiva: si a ≡ b ( mód m ) y b ≡ c ( mód m ) entonces a ≡ c ( mód m ) ∀ terna de enteros a, b y c.

Algunos teoremas sobre congruencias A continuación se listan algunos teoremas sobre congruencias, que se dan sin su demostración, la misma se puede encontrar en [PET72]. ♦ Si a ≡ b ( mód m ) y c es un entero, entonces:

a + c ≡ b + c ( mód m ) ♦ Si a ≡ b ( mód m ) y c es un entero, entonces:

ac ≡ bc ( mód m ) ♦ Si a ≡ b ( mód m ) y c ≡ d ( mód m ) entonces:

a + c ≡ b + d ( mód m ) ♦ Si a ≡ b ( mód m ) y c ≡ d ( mód m ) entonces:

a - c ≡ b - d (mód m) ♦ Si a ≡ b ( mód m ) y c ≡ d ( mód m ) entonces:

a c ≡ b d (mód m) ♦ Si a ≡ b ( mód m ) y n es un entero positivo entonces:

an ≡ bn ( mód m ) ♦ Si a ≡ b ( mód m ) y c ≡ d ( mód m ) y r y s son enteros entonces:

a r + c s ≡ b r + d s ( mód m ) ♦ Si a ≡ b ( mód m ) y P( x ) es una función polinómica de x con coeficientes enteros entonces:

P(a) ≡ P (b) (mód m)

Page 48: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

36

Operaciones aritméticas en módulo

Se demuestra [BIZ97]: ♦ Suma en módulo:

| a + b |m = | | a |m + | b |m |m = | | a |m + b |m

Identidad que se puede generalizar:

m

n

imix

m

n

iix ∑

==∑

= 11

De aquí en más la suma en módulo se denotará:

a⊕mb o |a + b|m

♦ Multiplicación en módulo:

|a * b|m = ||a|m * |b|m|m = ||a|m*b|m

m

n

i mix

m

n

iix ∏

==∏

= 11

El producto en módulo se denotará de aquí en más:

a⊗mb o |a*b|m

♦ Resta en módulo:

|a - b|m = ||a|m - |b|m|m = ||a|m - b|m

| a - b|m = |a - b + m – m|m = |a + m - b – m|m = | |a + m - b |m – |m|m |m = |a + |m – b|m|m

Esta operación se simbolizará:

a θm b o | a - b |m ♦ No siempre se pude definir la división [BOG96], por ejemplo:

5 ⊗10 1 = 5 ⊗10 3 = 5 ⊗10 5 = 5 ⊗10 7 = 5 ⊗10 9 = | 5 |10 Por lo que el cociente | | 5 |10 / | 5 |10 |10 no es único. También:

5 ⊗10 2 = 5 ⊗10 4 = 5 ⊗10 6 = 5 ⊗10 8 = 5 ⊗10 0 = | 0 |10

Page 49: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

37

algo que no ocurre en la aritmética común, el resultado de un producto da cero, sólo si uno o los dos operandos son iguales a cero. Sin embargo si se puede definir la división cuando el módulo de trabajo es un número primo. La notación empleada para la división en módulo será:

a ∅m b o | a / b |m

Tablas de suma, producto, resta y división.

A continuación, a modo de ejemplo, y de acuerdo con los enunciados del punto anterior, se muestran las “Tabla 2” a la “Tabla 5” necesarias para realizar las cuatro operaciones básicas en módulo 7. Estas tablas presentan, entre otras, las siguientes propiedades [BOG96]: ♦ Para la operación suma, las filas consecutivas se generan rotando la anterior un lugar a la izquierda. ♦ Las tablas de suma y producto son simétricas con respecto a la diagonal principal. ♦ Las tablas de substracción no son simétricas pero, al igual que en el caso de la suma, las filas se obtienen rotando la anterior un lugar, en este caso, a la derecha. ♦ En las tablas de multiplicación la última fila es siempre la inversa de la primera (rotación completa). ♦ Para el número primo (m + 1), las tablas de multiplicación dan la solución para el problema de la torre del juego de ajedrez. En un tablero de m x m se pueden colocar m torres de forma tal que ninguna de ellas ataca a otra, esto se obtiene reemplazando un dígito determinado por una torre y eliminando el resto. ♦ Bajo las mismas condiciones del punto anterior el número 1 aparece en el casillero superior izquierdo y en el inferior derecho y en ningún otro punto de la diagonal principal. ♦ Para las tablas de multiplicar las diagonales mayores son palindrómicas. ♦ En las tablas de adición con un número par de filas la diagonal principal contiene solamente la mitad de los restos. En la diagonal principal aparece cada resto dos veces.

Diferencias entre la aritmética en módulo y la aritmética Euclidiana ♦ Números. En la aritmética Euclidiana se opera con un conjunto infinito de números, es decir todos los enteros, en aritmética en módulo se trabaja con un conjunto finito, también llamado clase residual, 0, 1, 2, 3,... m – 1. ♦ a b = 0 En la aritmética de base única a b = 0 es posible solamente cuando a, b o ambos son cero. Por el contrario, por ejemplo, 2 ⊗6 3 = 0 en aritmética en módulo, sin embargo ni 2 ni 3 son iguales a cero en módulo 6.

Page 50: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

38

♦ Raíces de polinomios.

+ 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 2 2 3 4 5 6 0 1 3 3 4 5 6 0 1 2 4 4 5 6 0 1 2 3 5 5 6 0 1 2 3 4 6 6 0 1 2 3 4 5

Tabla 2 Tabla de suma en módulo 7.

-17 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 6 0 1 2 3 4 5 2 5 6 0 1 2 3 4 3 4 5 6 0 1 2 3 4 3 4 5 6 0 1 2 5 2 3 4 5 6 0 1 6 1 2 3 4 5 6 0

Tabla 3 Tabla de sustracción en módulo 7.

x 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 0 2 4 6 1 3 5 3 0 3 6 2 5 1 4 4 0 4 1 5 2 6 3 5 0 5 3 1 6 4 2 6 0 6 5 4 3 2 1

Tabla 4 Tabla de multiplicación en módulo 7.

/18 0 1 2 3 4 5 6 0 - 0 0 0 0 0 0 1 - 1 2 3 4 5 6 2 - 4 1 5 2 6 3 3 - 5 3 1 6 4 2 4 - 2 4 6 1 3 5 5 - 3 6 2 5 4 1 6 - 6 5 4 3 2 1

Tabla 5 Tabla de división en módulo 7.

17 La tabla se obtiene restando los números de la primera columna de los ubicados en la primera fila. 18 La tabla se obtiene dividiendo los números de la primera columna por los ubicados en la primera fila.

Page 51: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

39

El teorema fundamental del álgebra enuncia que para todo polinomio de orden n se tienen exactamente n raíces, en cambio, en la aritmética Gaussiana, el número de raíces depende del polinomio. Por ejemplo, para ecuaciones lineales se puede tener: | 3 x + 1 = 0 |5 tiene una única solución, 3. | 3 x + 1 = 0 |6 no tiene solución. | 3 x - 6 = 0 |9 tiene tres soluciones: 2, 5 y 8. ♦ Ecuaciones lineales simultaneas En aritmética en módulo un sistema de ecuaciones lineales puede tener distintas soluciones. ♦ Multiplicativo inverso. Si 0 ≤ a < m y a ⊗m b = 1 se dice que a es el multiplicativo inverso de b, que se denota, a = |b-1|m. Se puede garantizar la existencia del multiplicativo inverso, | b-1 |m, si y sólo si el mcd(b, m) = 1 y | b |m ≠ 0, y, en este caso, es único. En la aritmética Euclidiana ningún entero, salvo el 1, tiene inverso. En aritmética Gaussiana, con módulo primo, todo número tiene su multiplicativo inverso. Si el multiplicativo inverso de b en módulo m, | b-1 |m, es | a |m, entonces: | a-1 |m = | b |m

Ejemplo: | a |7 = 4 | a-1 |7 = 2 puesto que 4 ⊗7 2 = 1 ♦ Representación geométrica Los números enteros se pueden representar geométricamente como puntos sobre una recta. Sobre ella se define un valor constante y los enteros estarán ubicados sobre valores múltiplos de esta constante a partir del 0 y en ambas direcciones. De manera que se obtiene una correspondencia entre algunos puntos de esta recta y el conjunto de los enteros. En cambio, para la relación de congruencia módulo m, la representación geométrica se pude ver como un círculo dividido en m arcos de la misma longitud. Cada extremo de estos arcos se hace corresponder con una clase residual módulo m. Esta relación se puede apreciar en la siguiente figura para m = 5:

…, -7, -2, 3, 8, 13,…

…, -6, -1, 4, 9, 14,… …, -7, -3, 2, 7, 12,…

…, -10, -5, 0, 5, 10,… …, -9, -4, 1, 6, 11,…

Similitudes entre la aritmética en módulo y la aritmética Euclidiana ♦ Propiedad conmutativa.

a + b = b + a a * b = b * a

Page 52: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

40

♦ Propiedad asociativa.

a + ( b + c ) = ( a + b ) + c a ( b * c ) = ( a * b ) c ♦ Propiedad distributiva

( a + b ) c = a * c + b * c ♦ Elemento nulo

0 + a = a ♦ Elemento unidad

1 * a = a ♦ Aditivo inverso

a + ( - a ) = 0 ♦ Factoreo Si un polinomio f(x) = 0 tiene una raíz a, entonces: f(x) = g(x) ( x – a )

Pequeño teorema de Fermat

Si p es un número primo se cumple [BIZ97]:

| ap |p = | a |p otra forma equivalente de enunciarlo es:

| ap - 1 |p = | 1 |p La importancia de este teorema radica en la facilidad con que se puede hallar el multiplicativo inverso de un número. En efecto, el multiplicativo inverso de un número | a |p ≠ 0 es:

| ap - 2 |p puesto que por el teorema de Fermat

ap – 2 ⊗p a = 1 Como consecuencia de este teorema una ecuación de la forma

a ⊗p X = | b |p tiene una solución única y es

Page 53: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

41

| X |p = a – 1 ⊗p b = ap – 2 ⊗p b

Álgebra de polinomios [KRI94] Definición: Dado un campo CCCC o un anillo AAAA un polinomio a(x) se define como

a(x) = a0 + a1 x + a2 x2 +… + an x

n con x se denota una cantidad indeterminada sobre CCCC o AAAA y los coeficientes a0, a1, a2,… an

pertenecen a CCCC (para un polinomio definido sobre CCCC) o AAAA (para un polinomio definido sobre CCCC). El grado de a(x) es el mayor entero i para el cual ai ∫ 0. Todos los elementos de GGGG o AAAA se pueden expresar como polinomios de grado 0 y se denominan escalares. Definición: La suma y multiplicación de polinomios se realiza de la siguiente manera

( )∑ +=+i

iii xbaxbxa )()(

y

( )∑ ∑

= −

t i

tjtj xbaxbxa .)(.)(

respectivamente. Donde “+” y “.” Están definidas sobre CCCC o AAAA.

SISTEMA NUMÉRICO DE RESIDUOS

Presentación

En la aritmética común el tiempo de cálculo está directamente relacionado con el tiempo de propagación del acarreo o préstamo necesario para realizar las operaciones de suma y resta, el tiempo para realizar la operación aumenta al incrementarse el número de dígitos con que se trabaja. En el sistema numérico de residuos o RNS (Residue Number System) cada residuo es independiente de los demás, no se requiere transferir información entre los mismos, por lo que en este sistema no hay necesidad de acarreo y es, por lo tanto, especialmente apto para implementar sistemas aritméticos de alta velocidad.

Para representar cualquier entero a en RNS se comienza eligiendo un conjunto de

módulos m1, m2, m3,... mn, mediante el cual se codifica a en un conjunto a1, a2, a3, ... an que son los residuos de a en cada uno de los módulos. Por ejemplo, con m = 3, 4, 5 se tiene para a = 25, a = 1, 1, 0.

Page 54: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

42

La condición para que a, con 0 ≤ a < M, tenga una única representación RNS es que los módulos mi sean relativamente primos tomados de a pares, es decir:

mcd( mi, mj ) = 1 ∀ i ≠ j

de esta manera la representación es única para cada número x que cumple con:

∏=

=<≤n

iMimx

10

donde n es el número de módulos con que se trabaja y M el rango dinámico, o el número de cantidades distintas que se pueden representar para un conjunto de módulos determinado. Demostración: Supóngase que existen dos números x y z que tienen la misma representación en el sistema numérico de residuos y ambos menores que M:

yi = y mód mi zi = z mód mi

en donde yi = zi " mi. De manera que y – z es múltiplo de cada mi y a la vez del mínimo común múltiplo del conjunto de los mi. Pero el mínimo común múltiplo de este conjunto es M puesto que los mi son relativamente primos con lo que y – z sería múltiplo de M e y y z no podrían ser simultáneamente menores que M.

Por ejemplo, si m = 3, 4 la codificación de los números del 0 al 12 es la siguiente:

a m = 3 m = 4 0 0 0 1 1 1 2 2 2 3 0 3 4 1 0 5 2 1 6 0 2 7 1 3 8 2 0 9 0 1 10 1 2 11 2 3 12 0 0

Tabla 6 Representación RNS de los números positivos para m = 3, 4.

esta representación se repite con período 12. Como se puede observar en la “Tabla 6” surgen las siguientes dificultades para el sistema RNS: ♦ Comparación de números. ♦ Extensión del rango dinámico. ♦ Detección de signo y rebasamiento.

Page 55: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

43

problemas que no tiene el sistema binario natural. Por último, si los módulos m no son relativamente primos la cantidad de números que

se pueden representar ya no es el producto de los módulos sino que es el mínimo común múltiplo de ellos [MON86], por ejemplo, si m = 4, 6 se pueden representar las cantidades desde 0 hasta 11, en lugar de 0 a 23.

Representación de números negativos [MON86] [BIZ97]

De manera similar a como ocurre en el sistema binario existen dos formas de representar los números negativos en RNS. La primera de ellas consiste tomar el valor absoluto del número y agregar un bit de signo, en tanto que, la segunda, es idéntica a la representación en complemento. En efecto, para un rango dinámico M se reservan los números comprendidos en el rango [0, M / 2 – 1] para representar los números positivos y el rango [- M / 2, – 1] para los negativos. Por lo que el número a se representa como a1, a2,... an en tanto que - a será m1 – a1, m2 - a2,...mn - an.

En la “Tabla 7” se representan los números del – 6 al 5 en RNS con módulos 3 y 4.

a m = 3 m = 4 5 2 1 4 1 0 3 0 3 2 2 2 1 1 1 0 0 0 -1 2 3 -2 1 2 -3 0 1 -4 2 0 -5 1 3 -6 0 2

Tabla 7 Representación RNS de los números naturales para m = 3, 4.

Operaciones aritméticas en el sistema numérico de residuos

Los bloques constructivos esenciales de circuitos aritméticos en VLSI para DSP o CDSP son aquellos que realizan las cuatro operaciones básicas, por lo que son de importancia fundamental en la implementación de cualquier sistema basado en RNS. Se explican a continuación las características principales de cada una de ellas en el sistema numérico de residuos, a nivel matemático, dejando su implementación en hardware para el “CAPÍTULO 3.

OPERACIONES ARITMÉTICAS MEDIANTE RESIDUOS”. Siempre que no se diga lo contrario se supondrá que se trabaja con el entero a,

representado mediante el conjunto a1, a2,... an definido mediante los módulos m1, m2,... mn en donde el rango dinámico M es m1. m2... mn.

Page 56: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

44

Isomorfismo

Siguiendo la antigua idea de Aristóteles sobre la materia y la forma, en el siglo XX se definió la noción intuitiva de estructura. Según esta representación una estructura es un conjunto X al que se le pueden aplicar ciertas operaciones, como suma y producto, o relaciones, como ordenación, o descomponerlo en ciertos subconjuntos bajo determinadas reglas. Según la idea aristotélica el conjunto X es la materia y las operaciones, relaciones, etc., en él definidas son la forma.

En matemáticas se toma el concepto de isomorfismo del pensamiento de Platón, según el cual lo que importa es la forma. Una aplicación o relación, simbolizada f:X→Y, entre dos conjuntos que tienen el mismo tipo de estructura es un isomorfismo cuando cada elemento de Y proviene de un único elemento de X y f transforma las operaciones, relaciones, etc. que hay en X en las que hay en Y. Cuando entre dos estructuras hay isomorfismo, ambas son indistinguibles, tienen las mismas propiedades, y cualquier enunciado es simultáneamente cierto o falso para los dos conjuntos.

Ejemplos: a) Si X es el conjunto de los números reales positivos en el que está definida la

operación producto e Y es el conjunto de los números reales en el que esta definida la suma, el logaritmo ln: X→Y es un isomorfismo, porque ln(ab) = ln(a) + ln(b) y cada número real es el logaritmo de un único número real positivo. Esto significa que cada enunciado sobre el producto de números reales positivos tiene (sin más que sustituir cada número por su logaritmo) un enunciado equivalente en términos de la suma de números reales.

b) Si en el espacio E se elige una unidad de longitud y tres ejes mutuamente perpendiculares que concurren en un punto, entonces a cada punto del espacio podemos asociarles sus tres coordenadas cartesianas, obteniendo así una aplicación f:E→R³ en el conjunto de las sucesiones de tres números reales. Cuando en E consideramos la distancia que define la unidad de longitud fijada y en R³ consideramos la distancia que define la raíz cuadrada de la suma de los cuadrados de las diferencias, f es un isomorfismo. Éste descubrimiento fundamental de Descartes permite enunciar cualquier problema de la geometría del espacio en términos de sucesiones de tres números reales, y este método de abordar los problemas geométricos es el corazón de la llamada geometría analítica. El descubrimiento de un isomorfismo entre dos estructuras significa esencialmente que

el estudio de cada una puede reducirse al de la otra, lo que nos da dos puntos de vista diferentes sobre cada cuestión y suele ser esencial en su adecuada comprensión. También significa una analogía como una forma de inferencia lógica basada en la asunción de que dos cosas son la misma en algunos aspectos, aquellos sobre los que está hecha la comparación. En ciencias sociales se puede aplicar una ley análoga por no existir una específica o también la comparación de un sistema biológico con un sistema social, cuando se trata definir la palabra sistema. Lo es igualmente la imitación o copia de una estructura tribal en un hábitat con una estructura urbana.

Adición y substracción en RNS

Page 57: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

45

Al estar definida la aritmética de residuos sobre el anillo de los enteros módulo M, y por ser este a su vez isomórfico [BIZ97][GAR95] a la suma directa de los anillos correspondientes a los diferentes módulos que definen el RNS, las operaciones se realizan directamente y en forma separada en cada canal. Las operaciones de adición y substracción de dos enteros a y b en el sistema numérico de residuos están dadas por el siguiente procedimiento: si | z |M = | a ± b |M, tiene una representación RNS dada por z1, z2,... zn los zi se obtienen de la siguiente manera:

| zi |mi = | ai ± bi |mi,

o bien

| z |M ö a1 ⊕m1 b1, a2 ⊕m2 b2, a3 ⊕m3 b3,... an ⊕mn bn para la suma, y

| z |M ö a1 θm1 b1, a2 θm2 b2, a3 θm3 b3,... an θmn bn para la resta. Como puede apreciarse cada dígito zi se obtiene en forma independiente de los demás, de manera que no hay necesidad de acarreo o préstamo, por lo que se puede operar con todos los dígitos en forma simultanea. También se debe resaltar que el resultado se obtiene en módulo M, por lo que el rango dinámico se debe elegir lo suficientemente grande a fin de evitar revasamiento.

Multiplicación en RNS

Por lo expresado en el parágrafo anterior, si | z |M = | a * b |M, la representación de z en RNS se obtiene [BIZ97]:

| z |M ö a1 ⊗m1 b1, a2 ⊗m2 b2, a3 ⊗m3 b3,... an ⊗mn bn dentro del intervalo [0, M - 1] solamente el entero | a * b |M tiene esta codificación. Al igual que la suma y la resta, la multiplicación está libre de propagación de ningún tipo de acarreo, no es necesario transportar ningún tipo de información entre dígitos, cada uno es independiente de los demás. Finalmente el resultado debe ser menor que M. Un aspecto interesante de la multiplicación mediante residuos, para módulos pequeños, es que se puede realizar mediante tablas de búsqueda de tamaños razonables. Este no es el caso cuando se trabaja en el sistema binario, en efecto, si se trabaja con una longitud de palabra de n bits la tabla de verdad tiene 22n variables y 2 n funciones, lo que la hace poco práctica aún para módulos pequeños. Por el contrario en RNS cada dígito requiere una tabla con mi

2 entradas y tantas funciones como bits tenga ese canal. Como puede verse, al extender este razonamiento, la complejidad de implementar cualquier operación mediante LUTs es la misma, sea suma, resta, producto o división, puesto que el resultado tiene tantos bits como cada uno de los operandos con los que se está trabajando.

Page 58: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

46

División en RNS

La operación de división mediante residuos se puede dividir en tres categorías [BIZ97]: Primer caso: división con resto cero. En este caso el dividendo es un múltiplo exacto del divisor y este y M son relativamente primos. Para cada mi se tiene:

bmiamia

b ⊗−= 1

si y sólo si a divide a b en forma exacta y mcd(a, mi) = 1. Segundo caso: operación de escala. El cambio de escala es un procedimiento, empleado en procesamiento de señales, mediante el cual uno de los operandos es un factor fijo, lo que permite una gran simplificación en comparación con el mecanismo general de división [BOG96]. En los sistemas numéricos ponderados, o de base única, el cambio de escala es muy sencillo cuando el factor es una potencia exacta de la base, puesto que basta con realizar operaciones de desplazamiento para obtener el resultado. En residuos esta operación no es tan simple, sin embargo es más sencilla de realizar que la operación de división general, y relativamente fácil si el factor de escala es el producto de algunos de los módulos con los que se trabaja. Tercer caso: división general. Se trata de la división de un entero arbitrario por otro entero cualquiera.

Ejemplo de operaciones en RNS [TAY84]

Sea m = 3, 4, 5, por lo tanto será M = 60 con lo que, si se trabaja sólo con números naturales, se pueden representar las cantidades de 0 a 59, en tanto que si se trabaja con números enteros se puede definir el intervalo [0, 29] para los positivos y el [-1, -30] para los negativos, como se ilustra en la “Tabla 8”.

En la “Tabla 9” se muestran ejemplos de operaciones realizadas sólo con números

naturales. En la “Tabla 10” se muestran las mismas operaciones realizadas con números enteros.

Se toma el conjunto de módulos m = 3, 4, 5, 7. Con este conjunto se pueden representar en el RNS los números comprendidos entre – 210 y 209. Para cada operación se toman las cuatro posibilidades, si los operandos son a y b, se tiene: a > 0, b > 0; a > 0, b < 0; a < 0, b > 0 y a < 0, b < 0.

Page 59: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

47

Sin signo Con signo m = 3 m = 4 m = 5 59 -1 2 3 4 58 -2 1 2 3 57 -3 0 1 2 56 -4 2 0 1 ... ... ... ... ... 30 -30 0 2 0 29 29 2 1 4 ... ... ... ... ... 21 21 ... ... ... ... ... 10 10 1 2 0 ... ... ... ... ... 7 7 1 3 2 ... ... ... ... ... 5 5 2 1 0 4 4 1 0 4 3 3 0 3 3 2 2 2 2 2 1 1 1 1 1 0 0 0 0 0

Tabla 8 Representación con signo y sin signo para m = 3, 4, 5.

Decimal m = 3 m = 4 m = 5

7 1 3 2 + 3 0 3 3

10 1 mód 3 6 mód 4 5 mód 5 = 1, 2, 0

7 1 3 2 - 3 0 3 3

4 1 mód 3 0 mód 4 -1 mód 5 = 1, 0, 4

7 1 3 2 x 3 0 3 3

21 0 mód 3 9 mód 4 6 mód 5 = 0, 1, 1

Tabla 9 Operaciones realizadas con números naturales en el RNS.

Page 60: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

48

Decimal m = 3 m = 4 m = 5 m = 7 Resultado RNS

17 2 1 2 3 + 12 0 0 2 5

29 2 mód 3 1 mód 4 4 mód 5 1 mód 7 = 2, 1, 4, 1

17 2 1 2 3 + (- 12) 0 0 3 2

5 2 mód 3 1 mód 4 5 mód 5 5 mód 7 = 2, 1, 0, 5

-17 1 3 3 4 + 12 0 0 2 5

-5 1 mód 3 3 mód 4 5 mód 5 9 mód 7 = 1, 3, 0, 2

-17 1 3 3 4 + (- 12) 0 0 3 2

-29 1 mód 3 3 mód 4 6 mód 5 6 mód 7 = 1, 3, 1, 6

17 2 1 2 3 - 12 0 0 2 5

5 2 mód 3 1 mód 4 0 mód 5 -2 mód 7 = 2, 1, 0, 5

17 2 1 2 3 - (- 12) 0 0 3 2

29 2 mód 3 1 mód 4 -1 mód 5 1 mód 7 = 2, 1, 4, 1

-17 1 3 3 4 - 12 0 0 2 5

-29 1 mód 3 3 mód 4 1 mód 5 -1 mód 7 = 1, 3, 1, 6

-17 1 3 3 4 - (- 12) 0 0 3 2

-5 1 mód 3 3 mód 4 0 mód 5 2 mód 7 = 1, 3, 0, 2

17 2 1 2 3 x 12 0 0 2 5

204 0 mód 3 0 mód 4 4 mód 5 15 mód 7 = 0, 0, 4, 1

17 2 1 2 3 x (- 12) 0 0 3 2

-204 0 mód 3 0 mód 4 6 mód 5 6 mód 7 = 0, 0, 1, 6

-17 1 3 3 4 x 12 0 0 2 5 -204 0 mód 3 0 mód 4 6 mód 5 20 mód 7 = 0, 0, 1, 6

-17 1 3 3 4

x (- 12) 0 0 3 2 204 0 mód 3 0 mód 4 9 mód 5 6 mód 7 = 0, 0, 4, 1

Tabla 10 Operaciones básicas en el RNS para números naturales.

Page 61: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

49

Otras operaciones en RNS [GAR99b]

En los sistemas convencionales cada posición tiene asignado un peso, de manera que si se desean comparar dos números se lo hace dígito a dígito y es sencillo realizar el hardware para realizar esta operación. De la misma manera, por ejemplo si se trabaja en binario, es fácil determinar el signo, basta con ver el bit más significativo, tanto si se trabaja en complemento a la base o a la base menos uno. En el sistema numérico de residuos esta operación no es tan sencilla. Por ejemplo si m = 3, 4, 5 no se puede afirmar que el conjunto de residuos 2, 1, 3 es menor que 7, puesto que la información no esta presente en cada residuo sino en el conjunto en cuestión. La información está distribuida por igual en cada residuo.

Esta característica restringe o limita la aplicación de este tipo de aritmética, en general,

a aquellos casos en que se deben procesar los datos mediante un número importante de sumas-restas, multiplicaciones y en las que el número de bits con que se debe trabajar es elevado.

Dado que las operaciones aritméticas en RNS están definidas sobre un grupo cíclico

no existe desbordamiento u overflow. Esto no quita, sin embargo, que si se desea sintetizar un algoritmo determinado, por ejemplo un filtro FIR, no se deba asegurar que en cada etapa ningún resultado supere el rango dinámico M, puesto que si así ocurriera el resultado sería erróneo. En los sistemas tradicionales la detección de desbordamiento es sencilla, en el RNS hay que realizar una comparación de magnitud que no es una tarea fácil. Se debe trabajar con un número de bits tal que en ningún momento se supere el rango dinámico.

Al tratarse de una aritmética no ponderada la corrección de errores es un problema

importante, más aún teniendo en cuenta que la detección/corrección es en algunos casos necesaria para la protección de circuitos aritméticos y de transmisión de datos. La pérdida o error en un bit se puede transformar en un cambio sustancial del resultado, mientras que en los sistemas ponderados el error es función de la posición del bit erróneo. Sin embargo el sistema RNS tiene dos propiedades importantes que lo hacen especialmente interesante en el procesamiento digital de señales. RNS esta libre de la propagación de acarreo y cada residuo no tiene ponderación, por lo que estas dos propiedades lo hacen jugar un rol importante en los sistemas tolerantes a fallas. En efecto, el que sea libre de los problemas de la propagación del acarreo determina que si se produce un error en un determinado residuo, en una operación aritmética o durante su transmisión, este no se propague a los siguientes sino que queda confinado a su posición original. La segunda propiedad implica que si se produce un error en un dígito este puede ser descartado sin afectar el resultado, si se le ha agregado al sistema la redundancia necesaria [KRI94].

[MAN72] propuso un método para la detección de errores simples en los sistemas de

transmisión de datos mediante el empleo de dos módulos redundantes, con posterioridad esta estrategia se ha extendido a la detección de errores múltiples. La idea consiste en realizar una codificación bidimensional como la siguiente:

x0 = … bk0 … bj

0…b20

b10

p00

x1 = …bk1 … bj

1…b21

b11

p01

: xi = …bk

i … bji…b2

i b1

i p0

i

: xn-2 = …bk

i … bji…b2

i b1

i p0

i

xn-1 = …bkn-1 … bj

n-1…b2n-1

b1n-1

p0n-1

c = … pkc … pj

c…p2c p1

c p0

c

Page 62: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

50

A cada residuo se le agrega un bit de paridad, además se agrega una palabra adicional. En esta el bit j-ésimo es el bit de paridad de los bits j-ésimos de cada residuo. Si ocurre un único error en el bit j del residuo i, este se detectará en el bit de paridad del residuo i y en el j de la palabra de paridad. En el Sistema Numérico de Residuos Redundante (RRNS) se generaliza esta forma de codificación de manera que no quede limitado a la detección de un error simple.

Técnicas de conversión

Si bien el sistema numérico de residuos provee, sobre todo cuando se trabaja con enteros de gran magnitud, un mecanismo altamente eficaz cuando se desean realizar operaciones entre ellos, un cuello de botella en el sistema puede ser la conversión de binario a RNS y viceversa. Por esta razón se encuentran una gran cantidad de artículos abocados a mejorar, ya sea en velocidad o en ahorro de hardware, distintos algoritmos de conversión, tal es así que en esta tesis se le dedica un capítulo especial.

El pasaje de binario a RNS no presenta mayores dificultades, no ocurre lo mismo en el

sentido inverso. Para este caso la mayoría de los algoritmos se basan en el Teorema Chino del Residuo o CRT (Chinese Remainder Theorem), que recibe este nombre por haber sido formulado por Sun Tsu en el libro Suan-Ching en siglo IV DC [BOG96].

Conversión de binario a residuos

En el sistema binario natural un número b se puede expresar como un polinomio de potencias de 2:

b = 2n bn +... + 22 b2 + 21 b1 + 20 b0 donde los bi son los dígitos 1 y 0. Tomando módulo m en ambos miembros se tiene:

| b |m = | 2n bn +... + 22 b2 + 21 b1 + 20 b0 |m o lo que es idéntico:

| b |m = (2n ⊗m bn) ⊕m ... ⊕m (22 ⊗m b2 ) ⊕m (21 ⊗m b1 ) ⊕m (20 ⊗m b0)19

La idea de esta implementación directa es tener almacenado en una memoria las

potencias de 2 en módulo m y realizar la suma de estas, en módulo m, para aquellas posiciones con bi = 1. Por ejemplo, con m = 7 la representación RNS de a = 2410 = 110002 se obtiene según lo mostrado en la “Tabla 11”. Para mejorar el algoritmo se trabaja con grupos de bits en lugar de tomarlos individualmente.

Si el número entero x esta representado en Ca2 con n + 1 bit [GAR95]:

19 Los paréntesis son innecesarios y solo se incluyen para dar mayor claridad a la expresión.

Page 63: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

51

∑−

=

+−=1

0

22n

j

jj

nn bbx

con bn el bit de signo. El residuo xi = |x|mi se calcula de la siguiente manera:

( )i

ii

m

n

jm

jjm

nini bmbx ∑

=

+−=1

0

22

Se define la función Fi(j) como:

( )

=−

−==

njm

njjF

i

i

mj

i

m

j

i2

1...,,02

por lo que:

( )im

n

jiji jFbx ∑

=

=0

2n 2n en m = 7 2n en m = 7 en

binario Dígitos de a Suma en m = 7

20 1 001 0 21 2 010 0 22 4 100 0 23 1 001 1 001 24 2 010 1 + 010 ( 3 ) = 011

Tabla 11 Ejemplo de conversión de binario a RNS.

Teorema Chino del Residuo (CRT)

De acuerdo con D. Wells [BOG96], en el siglo IV DC Sun Tsu Suan-Ching propuso el siguiente problema: “... Hay ciertas cosas cuyo número es desconocido. Dividiéndolas repetidamente por 3 el residuo es 2, por 5 el residuo es 3 y por 7 el resto es 2. ¿Cuál es el número? ...”

Oystein Ore [BOG96] cita el siguiente acertijo de origen hindú: “... Una mujer va al

mercado con una cesta de huevos, que es pisada por un caballo. El jinete le ofrece pagar por el daño producido y le pregunta cuantos huevos se han roto. Ella no recuerda exactamente el número de huevos que había en la cesta, pero cuando los ha retirado de la misma de a dos ha quedado en ella un huevo. Lo mismo ocurrió cuando los fue retirando de a tres, cuatro, cinco y seis, sin embargo, cuando los retiró de a siete no quedo ninguno. ¿Cuál es el menor número de huevos que la mujer tenía en la cesta? ...”

Page 64: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

52

Matemáticamente estos acertijos se pueden enunciar de la siguiente manera. Dado un conjunto de módulos m = m1, m2 ,... mn tal que mcd(mi, mj) = 1 ∀ i ≠ j y m1 .m2 ... mn = M el sistema de congruencias lineales:

x ≡ x1 (mód m1) x ≡ x2 (mód m2) x ≡ x3 (mód m3)

... x ≡ xn (mód mn)

tiene una solución única en módulo M que está dada por el Teorema Chino de Residuo [GAR95]:

Mimiixin

iMx 1.1

−∑=

= ωω

donde: im

Mi =ω y 1−

iω el multiplicativo inverso de iω en modulo mi.

Como ejemplo se puede aplicar este teorema al acertijo de Sun Tsu Suan-Ching, se

tiene el siguiente sistema de ecuaciones congruentes lineales:

x ≡ 2 (mód 3) x ≡ 3 (mód 5) x ≡ 2 (mód 7)

con M = 3 * 5 * 7 = 105 y

mi ωi ωi-1

m1 = 3 ω1 = 35 ω1-1 = 2

m2 = 5 ω2 = 21 ω2-1 = 1

m3 = 7 ω3 = 15 ω3-1 = 1

de manera que aplicando el Teorema Chino del Residuo se tiene:

| x |105 = | 35 | 2 . 2 |3 + 21 | 3 . 1 |5 + 15 | 2 . 1 |7 |105

| x |105 = | 35 + 63 + 30 |105 = | 128 |105 = 23

Conversión de RNS a binario

Como se vio en el parágrafo anterior el Teorema Chino del Residuo provee un mecanismo directo, aunque complicado de implementar en hardware puesto que se requiere realizar operaciones con módulo grande (M), para la conversión de un número representado en RNS a su correspondiente representación decimal.

Page 65: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

53

Puesto que la conversión RNS-binario es el cuello de botella que presentan los sistemas aritméticos basados en la representación RNS existe en esta área un gran campo de investigación. Como se verá en el capítulo correspondiente la mayoría de los algoritmos de conversión se basan, de una forma u otra en el CRT, aunque tratan de tomar ciertas ventajas que presentan algunos conjuntos de módulos, por ejemplo m =2n – 1, 2n, 2n + 1.

Sistemas de base múltiple (Mixed Radix System, MRS)

El sistema de base múltiple presenta una gran ventaja en la implementación del CRT puesto que no es necesario contar con sumadores en módulo M, sino que se realiza solamente tomando residuos en módulo mi. Además es de gran importancia en la aritmética de residuos por dos características fundamentales: ♦ El sistema MRS es ponderado, por lo que es sencillo realizar comparaciones de magnitud. ♦ La conversión de RNS a MRS, en ciertos casos, se puede realizar a gran velocidad.

La representación de un número X en el sistema de bases múltiples tiene la siguiente forma [BIZ97]:

11221

1

1 3... ararrn

iairnaX ++∏

=++=

donde ri son las raíces o bases, ai son los dígitos, que cumplen con 0 ≤ ai < ri. Para un conjunto dado de bases la representación MRS de un entero X se denota <an, an-1,... a1 > con los dígitos ordenados de manera decreciente en significación y, además, esta representación

será única dentro del intervalo

−∏

=1

1,0

n

i ir .

En el caso particular en que se hace coincidir un conjunto de módulos m1, m2,... mn con el conjunto de bases r1, r2,... rn tal que mi = ri se dice que los dos sistemas están asociados y presentan el mismo rango dinámico M. En este caso la representación de un entero X en base mixta se puede denotar:

112211

13... amamm

n

iaimnaX ++∏

=++=

Los dígitos ai se pueden determinar desde el menos significativo, a1, de la siguiente

manera. Tomando módulo m1 en la expresión anterior se obtiene el último término de la sumatoria:

| X |m1 = a1 puesto que todos los demás son múltiplos de m1 y por lo tanto su residuo será cero. Para obtener a2 primero se realiza la resta X – a1, que es divisible por m1 con resto cero, por lo tanto:

Page 66: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

54

21

12

mm

aXa

−=

Realizando este procedimiento de manera iterativa se pueden obtener el resto de los

dígitos. La representación matemática de este algoritmo es [JUL91]:

( ) X=Φ 1

11 xa =

( ) ( ) 111

1 −−⊗−−

−Φ=Φ

nnmnmna

nn

( )nm

nnna Φ=

donde 11

− nnm es el multiplicativo inverso del módulo mn-1 en módulo mn.

Ejemplo: determinar la representación MRS del número 16 con m = 3, 4, 5.

m1 = 5, |m1

-1|4 = 1 m2 = 4, |m2

-1|5 = 1 m3 = 3 Para a1:

( ) 161 ==Φ X

116551 === Xa

para a2 se tiene:

( ) ( ) ( ) ( ) 1511161211

2 =−=−−=Φ maX

( ) 3152

44

2 ==Φ=a

para a3:

( ) ( ) ( ) ( ) ( ) ( ) ( )( ) 12131162

12112

23 1

321

32 =−−=

−−−=

−Φ=Φ −− mamaXma

( ) 0123

33

3 ==Φ=a

por lo tanto 16 ≡ < 0, 3, 1 >, en efecto:

Page 67: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

55

15.34.5.011221316 ++=++= amamma

La importancia del MRS radica en que se puede convertir fácilmente un número en RNS a su representación ponderada, bajo la cual es sencillo realizar comparaciones de magnitud y detección de revasamiento. También se lo emplea para convertir de RNS a binario, técnica conocida como MRC (Mixed Radix Convertion). Ejemplo [HAN02]: Para el RNS con m1 = 3, m2 = 4 y m3 = 5, convertir el número X con residuos x1 = 1, x2 = 3 y x3 = 4 a su representación en el MRS. Se desea obtener entonces los ai de la ecuación:

X = a3 (3 . 4) + a2 (3) + a1 para poder calcular la representación decimal X. Para el primer coeficiente se tiene: a1 = | X |m1 = x1 = 1 se realiza la resta X - a1 pero en el RNS:

m1 = 3 m2 = 4 m3 = 5 X 1 3 4

- a1 1 1 1 X - a1 0 2 3

la diferencia X - a1 es divisible por m1 con resto igual a cero, en lugar de dividir se realiza el producto con el multiplicativo inverso, Ij, de m1 en modulo mj:

m2 = 4 m3 = 5 X - a1 2 3

Ij 3 2 X - a1

m1 2 1

para a2 se tiene

21

12

mm

aXa

−= = 2

se resta a2:

m2 = 4 m3 = 5 X - a1

m1 2 1

- a2 2 2 a2 0 4

nuevamente se realiza el producto con el multiplicativo inverso Ij:

Page 68: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

56

m3 = 5 X - a1

m1 - a2 4

Ij 4 X - a1

m1 - a2

m2 1

por lo que a3 = 1. De manera que X se puede calcular como:

X = 1 (3 . 4) + 2 (3) + 1 = 19

Extensión de base

En ocasiones es necesario encontrar la representación RNS de un número con m = m1, m2,... mn en otra representación RNS con un rango dinámico mayor, es decir, con uno o más módulos extra, a este procedimiento se lo llama extensión de base [BIZ97]. Mediante

este procedimiento se pasa de un rango dinámico

−∏=

11

,0n

iim a

−∏+

=1

1

1,0n

iim y la

representación en el MRS tendrá el siguiente aspecto:

112211

13...

11 amamm

n

iaimna

n

iimnaX ++∏

=+++∏

=+=

De esta manera para cualquier número comprendido en el rango dinámico original an +1 será igual a cero.

OTROS SISTEMAS NUMÉRICOS DE RESIDUOS Existe un gran número de modificaciones al RNS original, todas ellas pensadas para mejorar o cubrir algunos aspectos en el que el RNS no se puede aplicar, por ejemplo trabajar con números complejos. Se describen algunas de las implementaciones más usadas.

Sistema numérico de residuos redundante (Redundant Residue Number System RRNS) [BIZ97]

Si a un sistema RNS con un conjunto de n módulos se le agregan r módulos adicionales se obtiene un sistema numérico de residuos redundante. Los n + r módulos deben ser relativamente primos tomados de a pares y la representación constará de n + r dígitos, n de los cuales serán no redundantes y el resto redundantes. El rango dinámico en RRNS, MT, será [0,

MT – 1] con ∏+

==

rn

iimTM

1. Al intervalo [0, M – 1] se lo denomina rango legítimo o

correcto, en tanto que al [M, MT – 1] se lo llama ilegítimo o incorrecto. Existe una

Page 69: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

57

correspondencia unívoca entre los enteros comprendidos en [0, M – 1] y los del conjunto del rango legítimo. Para la detección y corrección de revasamiento se usan de manera conjunta el MRS y el RRNS. El RRNS también se emplea para la detección y corrección de errores en sistemas de comunicación.

Sistema numérico de residuos complejo (Complex Residue Number System CRNS) [BIZ97] [MEL93] [LEL89]

Sean a y m números enteros relativamente primos. Se dice que a es un residuo cuadrático módulo m si existe un entero x tal que se cumple:

max mód2 =

Ejemplo: 2 es un residuo cuadrático módulo 7 puesto que existe el entero x = 4 tal que:

7mód224 = Si tal número no existe se dice que a no es un residuo cuadrático módulo m. Hasta aquí la discusión se ha centrado en enteros reales definidos sobre un anillo AAAA(m), o si m es primo, sobre campos CCCC(p) con los elementos M = 0,..., m – 1 . En esta sección se definirán y darán las propiedades fundamentales de la aritmética en módulo para trabajar con números complejos. La creación de los números complejos obedeció a que el polinomio x2 = - 1 no tiene solución posible dentro del campo de los números reales. Para permitir una solución a este tipo de problemas se introdujo el número j como unidad de los números imaginarios, que es igual a la raíz cuadrada de - 1. De manera análoga, en aritmética Gaussiana, es necesario determinar la solución de la ecuación:

mx mód12 −= que puede no existir. Si existe se dice que la ecuación tiene solución, j ∈ AAAA(m) y – 1 es un residuo cuadrático en mód m. Por el contrario, si la ecuación no tiene solución se dice que – 1 no es un residuo cuadrático en mód m.

Teorema: Si se está en el caso en que m es un número primo, – 1 es un residuo cuadrático si m es de la forma p = 4 k + 1 y será un residuo no cuadrático si es de la forma p = 4 k + 3. En el caso que m no sea primo es suficiente con que – 1 sea un residuo cuadrático de todos los primos que dividen a m.

Ejemplos:

a) Forma p = 4 k + 1. Si k = 3 se tiene p = 13 primo con la solución de

Page 70: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

58

13mód12 −=x igual a 8 puesto que, por la definición de congruencia (m | (a – b)), es:

13 | ( 82 – ( – 1 ) ) = 0

O, visto de otra manera, |-1|13 = 12 y |82|13 = 12. Para este caso j tiene entonces un valor real e igual a 8. b) Forma p = 4 k + 3. Si k = 2 se tiene p = 11 primo sin solución para

11mód12 −=x puesto que ∀ xi ∈ 0, 1,... 10 la relación:

11 | ( xi2 – ( – 1 ) )

es siempre ≠ 0.

Para el caso en que m = p = 4 k + 3 la ecuación mmódx 12 −= no tiene solución

en CCCC(p) y 1−=j ∉ CCCC(p). En este caso se puede definir una estructura compleja en

módulo, con p2 elementos, isomórfica a un campo de Galois de segundo orden, denotado CCCC(p2), que estará compuesta por los pares ordenados (xr, xi) ≡ xr + jxi con xr y xi ∈ CCCC(p). Las operaciones de suma, resta y multiplicación en este caso se definen como:

(xr, xi) ⊕p (yr, yi) = (ur, ui) (xr, xi) θp (yr, yi) = (vr, vi) (xr, xi) ⊗p (yr, yi) = (zr, zi)

en donde:

ur = xr ⊕p yr ui = xi ⊕p yi vr = xr θp yr vi = xi θp yi zr = xr yr ⊕p (- xi yi) zi = xi yr ⊕p xr yi

Ejemplo: (2, 4) ⊗7 (5, 3) = ( |2 . 5|7 ⊕7 |-4 . 3|7, |4 . 5|7⊕7|2 . 3|7) = ( 3 ⊕7 2 , 6 ⊕7 6) = (5, 5)

Como se puede apreciar las operaciones complejas en módulo son similares a las realizadas en la aritmética Euclidiana. Para realizar la suma en necesario realizar dos adiciones en módulo en el campo real, en tanto que para la multiplicación, se necesita calcular cuatro productos y dos sumas en módulo. Si m no es un número primo, se puede definir un anillo complejo en módulo AAAA(m2) que se forma y trabaja de idéntica manera a la señalada en el caso anterior

Page 71: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

59

Si m = p = 4 k + 1 la ecuación mmódx 12 −= tiene solución j ∈ AAAA(m) y – 1 es un residuo cuadrático mód m. Este caso conduce a la definición de una correspondencia de AAAA(m2) a un anillo cuadrático QAQAQAQA(m2) que es isomórfico con AAAA(m2). Este caso se trata con más detalle en el parágrafo siguiente.

Sistema numérico de residuos cuadrático (Quadratic Residue Number System QRNS) [BIZ97] [MEL93] [LEL89]

El sistema numérico de residuos cuadrático provee un mecanismo mediante el cual se puede trabajar con números complejos procesando de manera independiente la parte real de la imaginaria. Con este método se realiza una correspondencia entre los datos reales e imaginarios con dos canales que se computan sobre campos finitos. Los anillos se construyen aplicando el teorema del parágrafo anterior.

El QRNS se basa en el hecho que 1−=j tiene solución real si se trabaja con

determinados tipos de módulos, que son los que satisfacen la ecuación mmódx 12 −= (o

mmódj 12 −= ), condición que se cumple si m = 4 k + 1, con m primo. Por ejemplo: en el anillo finito definido por los enteros (0, 1, 2, 3, 4), se puede tener la suma 3 ⊕5 4 = 2 o la resta 2 θ5 3 = - 1 mód 5 = 4. Y puesto que j2 = -1 significa que

trabajando en módulo 5, 2451 ==− mód . Por lo tanto j tiene un valor real en este

sistema. En la “Tabla 12” se muestra el conjunto de módulos para los cuales -1 es un residuo cuadrático, con m comprendido entre 0 y 63.

Módulo j -j 5 2 3

13 5 8 17 13 4 29 12 17 37 6 31 41 9 32 53 30 23 61 11 50

Tabla 12 Módulos, de hasta seis bits, apropiados para trabajar en el QRNS.

De manera que un CRNS formado por módulos para los cuales -1 es un residuo cuadrático se puede reducir a valores reales pues allí ± j lo son. Si se emplea solamente j se pierde información puesto que el número complejo queda reducido a un valor real. Por lo tanto se debe convertir también el complejo conjugado y realizar las mismas operaciones sobre el. Para el canal mi las ecuaciones de transformación son:

s ≡ (i + j q) mód mi

Page 72: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

60

d ≡ (i - j q) mód mi

y

i ≡ |(s + d) (mi + 1) / 2 |mi

q ≡ | (d - s) j (mi + 1) / 2 |mi

para la transformación inversa. Estas ecuaciones de transformación relacionan de manera isomórfica el par complejo (s, d) definido en el QRNS con el par complejo (i, q) definido en el CRNS. Ejemplo: Sean m = 5 y el par (3 + j4) en el CRNS, calcular su equivalente en el QRNS. Valiéndose de las ecuaciones de transformación y de la “Tabla 12” se tiene:

s = | 3 + 2 . 4 |5 = 1 d = | 3 + 3 . 4 |5 = 0

para volver a la representación CRNS:

i = | (1 + 0) (5 + 1) / 2 |5 = 3 q = | (0 – 1 ) 2 (5 + 1) / 2 |5 = 4

La conversión entre CRNS y QRNS es sencilla pues requiere solo sumas y multiplicaciones por constantes. La suma, resta y multiplicación de dos números complejos z y w en el QRNS están dadas por:

(sz, dz) + (sw, dw) = (sz + sw, dz + dw)

(sz, dz) – (sw, dw) = (sz – sw, dz – dw)

(sz, dz) . (sw, dw) = (sz . sw, dz . dw) respectivamente. Ejemplo: Sea m = 5 y los números complejos z = (3 + j4) y w = (1 – j3) en el CRNS, hallar la suma, resta y producto de ellos, primero en el CNRS y luego empleando el QRNS. En el CNRS se tiene:

|z + w|5 = |(3 + j4) + (1 – j3)| 5 = |(4 + j1)| 5

|z – w|5 = |(3 + j4) – (1 – j3)| 5 = |(2 + j7)| 5 = |(2 + j2)| 5

|z . w|5 = |(3 + j4) . (1 – j3)| 5 = |(3 – j9 + j4 – j212)| 5 = |(15 – j5)| 5 = |(0 – j0)| 5 Para trabajar en el QRNS se debe encontrar primero la representación de z y w en este sistema:

sz = | 3 + 2 . 4 |5 = 1; dz = | 3 + 3 . 4 |5 = 0 sw = | 1 – 2 . 3 |5 = 0; dw = | 1 – 3 . 3 |5 = 2

Page 73: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

61

|z + w|5 CRNS→ QRNR (sz, dz) + (sw, dw) = (1 + 0, 0 + 2) = (1, 2) =

= QRNR → CRNS (| (1 + 2) (5 + 1) / 2 |5, | (2 – 1 ) 2 (5 + 1) / 2 |5) = (4 + j 1)

|z – w|5 CRNS→ QRNR (sz, dz) – (sw, dw) = (1 – 0, 0 – 2) = (1, – 2) = (1, 3) = QRNR → CRNS (| (1 + 3) (5 + 1) / 2 |5, | (3 – 1 ) 2 (5 + 1) / 2 |5) = (2 + j 2)

|z . w|5 CRNS→ QRNR (sz, dz) . (sw, dw) = (1 . 0, 0 . 2) = (0, 0)

= QRNR → CRNS (| (0 + 0) (5 + 1) / 2 |5, | (0 – 0) 2 (5 + 1) / 2 |5) = (0 + j 0) Las ventajas del QRNS sobre el CRNS son evidentes. En el QRNS, para cada canal, parte real e imaginaria se computan de manera independiente. Para la resta y la suma el número de operaciones a realizar en ambos sistemas es la misma. Pero para el producto se necesitan 4 multiplicaciones y dos sumas en el CRNS, en tanto que en el QRNS, se necesitan realizar sólo dos productos. La desventaja en el CRNS con respecto al QRNS es que hay menos libertad al momento de elegir el conjunto de módulos con los cuales trabajar.

Sistema numérico de residuos one-hot (ORNS)

En [CHR98] se presenta el One-hot RNS o ORNS. La idea es sencilla, tomar ventaja, ver “Tabla 2” y “Tabla 3”, de que la suma y la resta en módulo se pueden realizar mediante rotaciones. La técnica consiste en encontrar una codificación que sea apropiada para trabajar de esta manera. La representación ORNS de un determinado número es sencilla. Para un dado módulo m cada operando se representa mediante n = m bits y de manera tal que se tiene un 1 sólo en la posición del valor que se quiere representar. Por ejemplo: si m = 7 y se quieren representar los enteros 67, 47, 07, se tiene; 67 = 10000007ORNS, 47 = 00100007ORNS, 07 = 00000017ORNS. Esto significa que realizar una operación en el ORNS es equivalente a cambiar el valor de a lo sumo dos líneas, con la consecuente actividad mínima del circuito y ahorro de energía.

La operación de suma mediante codificación ORNS consiste entonces en rotar el primer operando un número de veces igual al valor del segundo. Esta operación se puede realizar mediante un desplazador de tonel (barrel shifter), como se puede apreciar en la “Figura

34” La indexación y desindexación (ver “CAMPOS DE GALOIS”), para la

multiplicación, no necesita hardware, se realiza mediante la permutación de las líneas de los buses de cada canal. Con lo que el hardware empleado para una operación de multiplicación es el mismo que el necesario para realizar una suma. Lo mismo ocurre con el cálculo del multiplicativo inverso. Más aún, la conversión de módulo, es decir representar un residuo en otro módulo, consiste en el agregado de compuertas OR. Finalmente, otras dos características importantes del OHR, son las siguientes: si se desea sumar o multiplicar por un valor constante tampoco se debe agregar hardware, simplemente se permutan las señales del canal. En [CHR98] se muestra el producto retardo x consumo para sumadores y multiplicadores en ORNS contrastados con aritmética binaria. El trabajo se realizó mediante simulación Spice versión 3f4 LEVEL 2, para tecnología de 1,2 µm y con transistores de tamaño mínimo. Para los circuitos aritméticos binarios se eligió el ripple-carry adder debido a su menor consumo entre distintas alternativas, en tanto que, para la multiplicación, se tomó la

Page 74: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

62

arquitectura en árbol de Wallace. La comparación determina que la reducción en la cifra de mérito retardo . consumo va desde un 35% para la suma a un 95% para la multiplicación con respecto a la aritmética binaria.

Figura 34 Circuito sumador para m = 4 y ejemplo con a y b iguales a 2.

Page 75: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

63

El problema que presenta la implementación de sumadores y multiplicadores mediante el algoritmo de rotación es que el número de transistores crece con m2, dificultad que se acentúa a medida que m crece.

Sistema numérico de residuos one-hot propuesto (ORNS2)

En [GAO03][GAO03b] se propone una variante, denominada ORNS2, sencilla pero eficaz para reducir el número de transistores cuando m es grande.

La idea es construir un desplazador de tonel de m x m/2 transistores en lugar de m x m. Luego se ve en el multiplicador si el 1, cuya posición indica el número de desplazamientos-rotaciones que se deben realizar, está en la parte más significativa o en la menos significativa. Si el 1 está en la parte menos significativa el desplazador de tonel funciona como en el caso de la “Figura 34”, pero si está en la mitad más significativa se produce un desplazamiento anticipado de m/2 posiciones. En la “Figura 35” se muestra un ejemplo para m = 4. Se debe notar que este ejemplo es sólo a título ilustrativo, pues la reducción en el número de transistores se aprecia a medida que el módulo crece. En detalle. Sean los números a sumar a = a3, a2, a1, a0 y b = b3, b2, b1, b0. La compuerta NOR detecta si b1 o b0 es igual a 1, en caso que así sea se tiene un 1 en el nodo x, con lo que la información de las rotaciones a realizar, contenidas en los bits b1, b0, pasa a las filas. Simultáneamente se activan los transistores NMOS verticales que dejan al número a sin modificar. En caso contrario las filas reciben la información de los bits b3, b2 y se produce una rotación-desplazamiento de 2 posiciones mediante las señales x e y, previa a la que se realiza por el desplazador de tonel.

Figura 35 ORNS2 para m = 4.

Un análisis cuantitativo del número de transistores necesarios para construir el circuito propuesto es el siguiente. Se necesitan m x m / 2 transistores para el núcleo, 2 x m para el desplazamiento-rotación anticipado, 2 x (m / 2) para la compuerta NOR, 2 para el inversor y (m / 2) x 2 para las filas. Matemáticamente:

242

2

++= mm

NT

Page 76: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

64

En la “Figura 36” se ilustra el número de transistores requeridos para cada uno de los

esquemas, ORNS y ORNS2. En tanto que, en la “Figura 37”, el ahorro de área con el método propuesto.

50 100 150 200 250

0

10000

20000

30000

40000

50000

60000

70000

Método propuesto ORNS2

ORNS

me

ro d

e t

ran

sis

tore

s

Módulo

Figura 36 Número de transistores requeridos para realizar sumadores en módulo m según ORNS y ORNS2.

50 100 150 200 250

40

60

80

100

120

140

160

180

200

220

Aho

rro d

e á

rea

Módulo

Figura 37 Ahorro de área del método propuesto (ORNS2) con respecto al ORNS en función del módulo.

El esquema propuesto se puede extender de la siguiente forma (ORNS3). En lugar de

detectar si el 1 ocurre en la parte más o menos significativa del segundo operando, éste se puede dividir en tres partes y aplicar el mismo procedimiento indicado precedentemente. En

Page 77: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

65

este caso se necesitan 2 compuertas NOR para detectar en que tercio se encuentra el 1. La cuenta de transistores es: m x m / 3 transistores para el núcleo, 3 x m para el desplazamiento-rotación anticipado, 2 x 2 x (m / 3) para las dos compuertas NOR, 4 para dos inversores, 4 para una compuerta NOR de 2 entradas, que indica si el 1 está en el tercio más significativo, y (m / 3) x 3 para las filas. Esto es:

3

1624

3

2 mmNT

++=

A medida que m crece se puede subdividir aún más, con el consiguiente ahorro de área.

CAMPOS DE GALOIS

Uno de los métodos que se utilizan para realizar productos en el sistema numérico de residuos convierte las multiplicaciones, mediante una indexación apropiada, en sumas en módulo. Este procedimiento tiene su fundamento matemático en la teoría de campos desarrollada por el matemático francés Evariste Galois (1811 – 1832)20.

Para definir los campos de Galois se necesitan dos conceptos de teoría de números, la

función de Euler y la raíz primitiva. Si n es un entero positivo la función de Euler, φ( n ), se define como el número de

enteros positivos menores que n y relativamente primos con él, ver “Tabla 13”.

n φ( n ) n φ( n ) n φ( n ) n φ( n ) n φ( n ) n φ( n ) n φ( n ) 1 1 10 4 19 18 28 12 37 36 46 22 55 40 2 1 11 10 20 8 29 28 38 18 47 46 56 24 3 2 12 4 21 12 30 8 39 24 48 16 57 36 4 2 13 12 22 10 31 30 40 16 49 42 58 28 5 4 14 6 23 22 32 16 41 40 50 20 59 58 6 2 15 8 24 8 33 20 42 12 51 32 60 16 7 6 16 8 25 20 34 16 43 42 52 24 61 60 8 4 17 16 26 12 35 24 44 20 53 52 62 30 9 6 18 6 27 18 36 12 45 24 54 18 63 36

Tabla 13 Función de Euler φφφφ( n) para los primeros 63 números.

De manera general n tiene a g, como raíz primitiva si:

|gφ( n )|n = 1

pero se debe cumplir 20 Nació en un suburbio de París y recibió su educación en su hogar. Fue rechazado dos veces su admisión en la Ecole Polytechnique, la principal escuela de enseñanza de matemáticas de Francia. También envió tres trabajos a la Academia de Ciencias pero se perdieron o fueron rechazados por considerárselos incomprensibles. Poco antes de su muerte, a la edad de 21 años, escribió algunas de sus teorías algebraicas que fueron publicadas en 1846 y 1870 momento a partir del cual fue considerado como uno de los gigantes de las matemáticas. Algunos de sus conceptos, tales como grupos de Galois, campos de Galois y teoría de Galois, son fundamentales en el álgebra moderna.

Page 78: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

66

|gk|n ≠ 1 para todos los enteros positivos k < φ( n ). Además g satisface la condición:

1 ≤ g ≤ n - 1

Un entero n puede tener más de una raíz primitiva, en la “Tabla 14” se ilustra este caso para los primeros números que pertenecen a este conjunto, en tanto que, en la “Tabla 15” los primeros números que tienen raíz primitiva.

n g n g 2 1 7 3, 5 3 2 9 2, 5 4 3 10 3, 7 5 2, 3 11 2, 6, 7, 8 6 5 13 2, 6, 7, 11

Tabla 14 Primeros enteros con sus raíces primitivas.

1 2 3 4 5 6 7 9 10 11 13 14 17 18 19 22 23 25 26 27 29 31 34 37 38 41 43 46 47 49 50 53 54 58 59 61 62 67 71 73 74 79 81 82 83 86 89 94 97 98 101 103 106 107 109 113 118 121 122 125 127 131 134 137 139

Tabla 15 Primeros números que tienen raíz primitiva.

Un número a tiene raíces primitivas si es de la forma 2, 4, una potencia de pα, o 2 pα,

donde p es un número primo impar21 y α ≥ 1. Esto significa que todos los números primos tienen al menos una raíz primitiva.

Si n tiene raíz primitiva, entonces tiene exactamente φ( φ( n ) ) raíces primitivas [NEU00] [WOL02]. En la “Tabla 16” se dan los valores de φ( φ( n ) ) para los primeros enteros positivos. n n n n n n n n n n 1 1 10 2 19 6 28 0 37 12 4 10 55 0 64 0 73 24 82 16 2 1 11 4 20 0 29 12 38 6 47 22 56 0 65 0 74 12 83 40 3 1 12 0 21 0 30 0 39 0 48 0 57 0 66 0 75 0 84 0 4 1 13 4 22 4 31 8 40 0 49 12 58 12 67 20 76 0 85 0 5 2 14 2 23 10 32 0 41 16 50 8 59 28 68 0 77 0 86 12 6 1 15 0 24 0 33 0 42 0 51 0 60 0 69 0 78 0 87 0 7 2 16 0 25 8 34 8 43 12 52 0 61 16 70 0 79 24 88 0 8 0 17 8 26 4 35 0 44 0 53 24 62 8 71 24 80 0 89 40 9 2 18 2 27 6 36 0 45 0 54 6 63 0 72 0 81 18 90 0

Tabla 16 Número de raíces primitivas de los primeros enteros.

En la “Tabla 17” se muestran las menores raíces primitivas para algunos de los primeros

enteros (se omite n cuando no tiene raíz primitiva).

21 El conjunto de todos los números primos impares está formado por todos los números primos salvo el 2.

Page 79: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

67

n g n g n g n g 2 1 38 3 94 5 158 3 3 2 41 6 97 5 162 5 4 3 43 3 98 3 163 2 5 2 46 5 101 2 166 5 6 5 47 5 103 5 167 5 7 3 49 3 106 3 169 2 9 2 50 3 107 2 173 2

10 3 53 2 109 6 178 3 11 2 54 5 113 3 179 2 13 2 58 3 118 11 181 2 14 3 59 2 121 2 191 19 17 3 61 2 122 7 193 5 18 5 62 3 125 2 194 25 19 2 67 2 127 3 197 2 22 7 71 7 131 2 199 3 23 5 73 5 134 7 202 3 25 2 74 5 137 3 206 5 26 7 79 3 139 2 211 2 27 2 81 2 142 7 214 5 29 2 82 7 146 5 218 11 31 3 83 2 149 2 223 3 34 3 86 3 151 6 226 3 37 2 89 3 157 5 227 2

Tabla 17 Menores raíces primitivas de los primeros 92 números que la tienen.

Los campos de Galois [RAD92][YAU76][JUL80] pueden ser de dos tipos, primos y

polinomiales, denotados respectivamente GGGG( p ) y GGGG( pq ), donde p es un número primo y q un entero positivo. Si p es un número primo tiene raíz primitiva y además se cumple que las clases de residuos en módulo p; g1, g2, g3, g4,... gp – 1 son todos distintos, es decir g mód p tiene orden p – 1. Los campos de Galois primos tienen la propiedad de que todos sus elementos, salvo el cero, se pueden generar a partir de su raíz primitiva mediante la siguiente ecuación:

p

i

pnngq =

Ecuación 2 Función de relación entre el grupo multiplicativo q y el aditivo i.

Ejemplo: si p = 19 mediante g = 2 se puede establecer una relación entre el campo

GGGG(p ) = 1, 2,... 18, y el conjunto índice i = 0, 1, 2,... 17 dada por la “Ecuación 2”, con lo que se puede establecer la siguiente tabla de equivalencias: in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - qn 1 2 4 8 16 13 7 14 9 18 17 15 11 3 6 12 5 10 0

Tabla 18 Isomorfismo entre el grupo multiplicativo q y el aditivo i.

Como se vio un número puede tener más de una raíz primitiva, más aún, un entero a

puede tener raíces primitivas sin ser primo [WEI00], pero en este caso no puede formar un campo de Galois.

Page 80: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

68

Por la forma en que se generan los campos primos de Galois se desprende que cuando

se desea realizar un producto entre dos elementos de GGGG( p ) en módulo p la operación se reduce a la suma de sus respectivos índices en módulo p – 1 puesto que:

p

ii

pkjpkj

gqq 1−=

Ejemplo, p = 19 será GGGG( 19 ) = 0, 1, 2,... 18, el producto 14 por 11 en módulo 19

que es:

| 14 . 11 |19 = 219 se puede calcular buscando en la “Tabla 18” los índices correspondientes a 14 y 11, que son 7 y 12, sumarlos en módulo 18:

| 7 + 12 |18 = 118, y buscando el entero que le corresponde al índice 1 que es 2.

Como se desprende de lo anterior la importancia de esta técnica es que los productos se convierten en sumas en módulo y operaciones simples de búsqueda.

Finalmente, por su empleo en capítulos posteriores, por ejemplo multiplicación en

RNS mediante el método de indexación explicado, se listan en la siguiente tabla los primeros cien números primos.

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541

Tabla 19 Primeros cien números primos.

APLICACIONES DEL SISTEMA NUMÉRICO DE RESIDUOS Para ejemplificar el empleo del RNS y sus derivados se verán en detalle tres aplicaciones, síntesis de filtros FIR, transformadas numéricas teóricas y generadores de números cuasicaóticos. En la bibliografía se ha encontrado, además de las aplicaciones señaladas, el empleo del RNS en: criptografía pública en el sistema RSA [BAJ04][CIE03][SCH94], protección intelectual de módulos IP [CAS06][CAS05], operaciones con curvas elípticas para criptografía [SCN94][SCH06][SCH06a], codificación caótica [WEI05], transformada discreta coseno [FER99][FER00][FER00b] [FER01][FER02]

Page 81: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

69

[FER03][YON04], transformada ondita discreta [RAM00][RAM00a][RAM00b][RAM01] [RAM01a][GAR05], estimación espectral mediante el método de Winger-Ville [WIL91], transformada discreta de Hartley [DIM99], codificación de imágenes [LAM99], sintetizador digital de frecuencias [CHR95][MOH01], DSP en RNS22 y circuitos tolerantes23 a fallas entre otras aplicaciones.

Filtros de respuesta finita a la función impulso (FIR) Existe una amplia bibliografía sobre la aplicación del RNS en la implementación de filtros FIR e IIR. En [CAR00] se muestra como el empleo del RNS reduce el consumo de potencia con respecto a su contraparte en Ca2. En [BAR82] se estudia el error de cuantización al momento de construir un filtro FIR en RNS. En [CAR92] se presenta una implementación de un filtro IIR en aritmética de residuos construido en VLSI. En [CAR97a] se comparan distintas arquitecturas para la construcción de un filtro FIR, por ejemplo la directa y la inversa, con la conclusión de que en RNS esta última es la mejor. En [CHI94] para la implementación de los filtros FIR, además del empleo del RNS, se propone el uso de la aritmética serie en cada canal. [GAR98b] desarrolla la implementación de un filtro Hogenauer CIC en FPGA y con RNS. En [GAR99a] se presenta el empleo conjunto de la aritmética distribuida y el RNS para la construcción de filtros FIR. [HUI91] presenta una estrategia para la combinación de aritmética en punto fijo y RNS para el diseño de filtros FIR. En [JEN93] se presenta el uso del RRNS para el diseño de filtros adaptativos tolerantes a fallas basados en el algoritmo LMS24. En [KRI88] y [KRI92] se emplean los sistemas QRNS y el MQRNS (QRNS modificado) para el diseño de filtros complejos. Y en [PAL97] se estudia la performance área-retardo en la realización VLSI de filtros FIR en RNS.

Se explicará en detalle el trabajo presentado en [RAM02] porque, además de ser uno de los trabajos más recientes basado en las mejores estrategias de diseño presentadas con anterioridad, se emplean dispositivos lógicos programables para la implementación de los circuitos y se eligió una FPGA de Altera.

El sistema consta de tres etapas: a) un circuito de conversión de Ca2 a RNS, b) n

canales, en la forma inversa, con multiplicación en RNS mediante indexación y c) el circuito de conversión de RNS a Ca2. La “Figura 38” ilustra uno de los canales, cada uno tiene l etapas, una tabla de indexación, si el canal trabaja en módulo p, l sumadores en módulo p – 1, l tablas de desindexación, l – 1 sumadores binarios y, finalmente, un conversor a módulo p. Para la conversión de RNS a Ca2 se emplearon dos estrategias, la aplicación directa del Teorema Chino de Residuo (CRT) y la, más eficiente, Teorema Chino del Residuo Escalado (ε-CRT) (ver “CAPÍTULO 2. TÉCNICAS DE CONVERSIÓN BINARIO-RNS-BINARIO”).

Los circuitos se implementaron en una APEX20K. En la “Tabla 20” se muestran los

resultados, de los circuitos en Ca2 y en RNS, para distintos números de etapas y rangos dinámicos. Para los circuitos en Ca2 los multiplicadores se segmentaron en cinco etapas. Los dos modelos se describieron en VHDL de manera paramétrica y sin el empleo de memoria. La complejidad es aproximadamente la misma pero la frecuencia de funcionamiento crece hasta un 66% en la realización RNS.

22 Más de 20 citas, ver bibliografía. 23 Más de 20 citas, ver bibliografía. 24 El algoritmo LMS (del inglés, Least-Mean-Square algorithm) se usa en filtros adaptativos para encontrar los coeficientes del filtro que permiten obtener el valor esperado mínimo del cuadrado de la señal de error, definida como la diferencia entre la señal deseada y la señal producida a la salida del filtro.

Page 82: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

70

Figura 38 Estructura inversa de un filtro FIR para uno de los canales en el RNS.

Ca2 RNS CRT/ε-CRT

l M LEs

F [MHz]

LEs Reducción

en % F

[MHz] Incremento

en % m

8 34 3764 91 5034 3785

-34 -1

130 140

43 64

11, 13, 17, 19, 23, 29, 31, 32

16 35 7530 84 8479 6757

-13 10

128 137

52 63

11, 13, 17, 19, 23, 29, 31, 64

24 36 11311 80 12467 10218

-10 10

122 133

53 66

7, 11, 13, 17, 19, 23, 29, 31, 32

32 36 15079 79 15612 13115

-4 13

119 131

51 66

7, 11, 13, 17, 19, 23, 29, 31, 32

Tabla 20 Incremento en la frecuencia de funcionamiento y reducción de recursos de filtros FIR en RNS con respecto a su implementación en Ca2.

Los resultados son aún mejores en la implementación de filtros complejos. El sistema está compuesto de: a) dos conversores de Ca2 al QRNS, b) n pares de canales que trabajan en el QRNS y c) dos conversores de QRNS a Ca225. Para la síntesis de los circuitos en Ca2 se emplearon dos enfoques en el diseño. El producto de dos números complejos a = x + j y y b = c + j s, que tiene como resultado R + j I = (x + j y) (c + j s) se puede realizar de dos maneras, con cuatro o con tres multiplicadores. Con cuatro multiplicadores:

R = x . c – y . s I = j ( y . c + x . s)

O mediante tres multiplicadores si previamente se computa z = c . (x – y), entonces:

R = (c – s) . y + z I = (c + s) . x – z

25 En el artículo no se aclara si se emplea el CRT o el ε-CRT.

Page 83: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

71

El circuito implementado en QRNS requiere solo dos multiplicadores en módulo por etapa. En la “Tabla 21” se muestran los resultados.

Ca2 RNS 4/3

multiplicadores por coeficiente

l

LEs F [MHz]

LEs Reducción

en % F [MHz]

Incremento en %

m

4 7357 5984

83 85

7958 -8

-33 140,38

68 65

13, 17, 29, 37, 41, 53, 63

8 14651 11787

78 85

12104 17 -3

134,80 73 59

5, 13, 17, 29, 37, 41, 53, 61

16 29269 23559

74 79

20186 31 14

125,7 70

59,11 5, 13, 17, 29, 37, 41, 53, 61

32 58571 47056

- 35774 39 24

- - 5, 13, 17, 29, 37, 41, 53, 61

Tabla 21 Incremento en la frecuencia de funcionamiento y reducción de recursos de filtros FIR complejos en RNS con respecto a su implementación en Ca2.

Transformada discreta de Fourier (DFT) y transformadas numéricas teóricas (NTT) La transformada discreta de Fourier (DFT) transforma la serie de n números complejos x0,… xn-1 en la serie de puntos y0,… yn-1 según la fórmula:

∑−

=

=

1

0

2n

k

kt

n

j

kt exyπ

Ecuación 3 Transformada discreta de Fourier.

Y la transformada discreta de Fourier inversa mediante:

∑−

=

=

1

0

21 n

t

kt

n

j

tk eyn

Ecuación 4 Transformada discreta inversa de Fourier.

En el RNS la DFT para una secuencia de n números se define, para el canal l en

módulo p, como [BAY86]:

p

n

k

kt

n

j

kt exy ∑−

=

=

1

0

Ecuación 5 Transformada discreta de Fourier para el canal l en RNS.

Con k = 0,… n – 1 y xk e yt son los residuos del l-ésimo canal de las señales de entrada y salida. Si se realiza la sustitución:

Page 84: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

72

n

j

ewπ

ξ2

−=

la “Ecuación 5” se transforma en:

( )p

n

k

kt

kt wxy ∑−

=

=1

0

ξ

Ecuación 6 Transformada discreta de Fourier en RNS para un canal genérico.

La idea clave consiste en encontrar algún tipo de relación para la cual |wt = 1|p. Se cumple por el pequeño teorema de Fermat:

| ap - 1 |p = | 1 |p Si además p es un número primo tiene raíz primitiva g, y si es de la forma p = ξ . t + 1 se tiene p – 1 = ξ . t, con ξ cualquier entero positivo. Entonces se hace:

|w = gξ |p con lo que:

|wt = gξ t = gp – 1 = 1|p entonces |wt = 1|p pero |wm ≠ 1|p si m < t. A diferencia de, por ejemplo, la transformada de Fourier la transformada numérica teórica no tiene significación física, como la transformada de Fourier transforma de tiempo a frecuencia. Aquí se trata de realizar las operaciones, por ejemplo convolución, de manera más eficiente. Además dado que todos los números involucrados en la transformación son enteros la transformada es exacta. La transformada inversa en RNS:

( )p

n

t

th

tp

h wynx ∑−

=

−−=1

0

2 ξ

Ecuación 7 Transformada discreta inversa de Fourier en RNS para un canal genérico.

con h = 0,… n – 1. Por ejemplo [JUL91]: calcular la convolución para x = 1, 2, 3, 4, 0, 0, 0, 0 con n = 8. Si se elige uno de los canales con p = 17, de la “Tabla 17” se tiene g = w = 3 y de 17 = ξ . 8 + 1 sale ξ = 2. Con lo que la transformada para este canal tiene la forma:

17

7

0

9∑=

=k

ktkt xy

y la inversa:

Page 85: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

73

17

7

0

915∑=

−=t

thth yx

La convolución de la serie se puede calcular mediante:

∑=

−=7

0kktkt xxc

que da por resultado c = 1, 4, 10, 20, 25, 24, 16, 0.

Ahora bien como la convolución en el tiempo es igual al producto de sus transformadas se puede calcular la transformada numérica teórica para cada canal, realizar la multiplicación y antitransformar. Usando notación matricial:

y = T . x en donde T es la matriz de transformación cuyos elementos están dados por |9kn|17.

El cálculo de la transformación para el canal en que se está trabajando, p = 17, se realiza mediante:

=

0

0

0

0

4

3

2

1

91315168421

131641131641

15491621381

161161161161

81321694151

416131416131

24816151391

11111111

15

7

13

15

11

6

16

10

17

El producto en el campo transformado:

=

15

7

13

15

11

6

16

10

15

7

13

15

11

6

16

10

4

15

16

4

2

2

1

15

17

La transformada inversa:

Page 86: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

74

⊗=

4

15

16

4

2

2

1

15

24816151391

416131416131

81321694151

161161161161

15491621381

131641131641

91315168421

11111111

15

0

16

7

8

3

10

4

1

1717

Que coincide con la serie c para el canal con p = 17. Si se realizara la misma operación mediante el procedimiento clásico, es decir con la con la DFT, en la que se trabaja con números complejos, se tiene para la transformada:

=

−−

−−

24,741,0

00,200,2

24,141,2

00,000,2

24,141,2

00,200,2

24,741,0

00,000,10

−−−−−−

−−−−

−−−−−−

−−−−

−−−−−−

−−−−

−−−−−−

00,000,0

00,000,0

00,000,0

00,000,0

00,000,4

00,000,3

00,000,2

00,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,100,000,000,100,100,000,000,100,100,000,000,100,100,000,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,000,100,000,100,000,100,000,100,000,100,000,100,000,100,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,100,000,000,100,100,000,000,100,100,000,000,100,100,000,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,000,100,000,100,000,100,000,100,000,100,000,100,000,100,000,1

El producto en el campo transformado:

=

−−

−−

−−

−−

−−

24,741,0

00,200,2

24,141,2

00,000,2

24,141,2

00,200,2

24,741,0

00,000,10

24,741,0

00,200,2

24,141,2

00,000,2

24,141,2

00,200,2

24,741,0

00,000,10

00,628,52

00,800,0

00,628,4

00,000,4

00,628,4

00,800,0

00,628,52

00,000.100

La transformada inversa:

=

00,000,0

00,000,16

00,000,24

00,000,25

00,000,20

00,000,10

00,000,4

00,000,1

Page 87: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

75

−−

−−−−−−

−−−−

−−−−−−

−−−−

−−−−−−

−−−−

−−−−−−

00,628,52

00,800,0

00,628,4

00,000,4

00,628,4

00,800,0

00,628,52

00,000.100

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,100,000,000,100,100,000,000,100,100,000,000,100,100,000,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,000,100,000,100,000,100,000,100,000,100,000,100,000,100,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,100,000,000,100,100,000,000,100,100,000,000,100,100,000,000,1

71,071,000,100,071,071,000,000,171,071,000,100,071,071,000,000,1

00,000,100,000,100,000,100,000,100,000,100,000,100,000,100,000,1

8

1

Los números en las matrices se muestran con dos decimales, sin embargo los cálculos se realizaron con gran precisión por lo que no se nota el error introducido al redondear los coeficientes de la matriz T y en la división final.

Generadores RNS cuasicaóticos En [PAN00] [PAN01] se propone un esquema formado por una cascada se filtros de primer orden, cuyos polos coinciden con la raíz primitiva de primer orden del modulo correspondiente a esa etapa. Este esquema se muestra en la “Figura 39”. El circuito está compuesto por n etapas en cascada, en cada uno de ellos los cómputos se realizan sobre un módulo primo. Así, por ejemplo, la salida y para la k-ésima muestra, con k ≥ 1 se puede calcular como:

1

11

11 .mkkk uxgx += −

2

121

22 .mkkk xxgx += −

.

.

.

mn

nk

nk

nnkk xxgxy 1

1. −− +==

donde uk es la entrada al sistema y xk

i con i = 1,… n es la salida de la i-ésima sección. Aún con entrada nula el generador se comporta como un generador cuasicaótico. En efecto, dadas las condiciones iniciales x0

i, la salida es periódica con un periodo igual al mínimo común múltiplo de los (mi – 1). Por ejemplo: con n = 8 y m = 257, 263, 347, 359, 383, 467, 479, 503, el periodo es igual a 256 . 131 . 173 . 179 . 191 . 233 . 239 . 251 ≈ 2,7 x 1018. La forma de la señal generada no depende de los valores iniciales, si estos cambian se obtiene la misma secuencia pero desplazada. Por el contrario si se cambian las raíces primitivas se genera una secuencia distinta. Por lo tanto, como se vio en “CAMPOS DE

GALOIS”, cada mi tiene φ( φ( mi ) ) raíces primitivas, siendo m primo, de manera que el número total de secuencias distintas es para el ejemplo dado:

( )( )∏=

=n

iimF

1

φφ

F = 128 . 130 . 172 . 178 . 232 . 258 . 250 ≈ 1,3 x 1018

Page 88: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aritmética de Residuos

76

Con este esquema se pueden construir generadores cusicaóticos con periodos muy largos y cada uno de ellos con un gran número de secuencias distintas.

Figura 39 Generador RNS cuasicaótico.

Page 89: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

77

Técnicas de conversión binario-RNS-binario

2

Hay algunas cosas sobre las cuales no conocemos el número. Si se las cuenta de a tres el resto es 2. Si se las cuenta de a cinco el resto es 3. Si se las cuenta de a 7 el resto es 2. ¿Cuál es el número? La respuesta es 23. El cálculo se realiza así. Contando de a tres, el resto es 2, por lo que el número puede ser 140. Contando de a cinco, el resto es 3, por lo que el número puede ser 63. Contando de a siete, el resto es 2, por lo que el número puede ser 30. Sumando estos números (233) y restando 210 se puede obtener la respuesta inmediatamente. Se puede dar otro ejemplo. Contando de a tres, el resto es 1, por lo que el número puede ser 70. Contando de a cinco, el resto es 1, por lo que el número puede ser 21. Contando de a siete, el resto es 1, por lo que el número puede ser 15. [JUL91]

Page 90: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

78

CAPÍTULO 2. TÉCNICAS DE CONVERSIÓN BINARIO-RNS-

BINARIO En este capítulo se describen las principales técnicas de conversión de binario a RNS y de RNS a binario. En el RNS el segundo tipo de conversión es la tarea más complicada y que en algunas aplicaciones puede ser la causa por la cual no se la pueda emplear. Tal es la importancia de este punto que casi la mitad de la bibliografía investigada trata sobre el estudio de este tema. El capítulo se divide en tres partes. En la primera se presentan las principales técnicas de conversión del sistema binario al RNS, en la segunda la conversión inversa, en tanto que, en la tercera, se implementan circuitalmente las estrategias que presentan las mejores características para su realización en lógica programable. Para la realización circuital, de la misma manera que en el “CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE RESIDUOS”, se emplean dispositivos lógicos programables de Altera.

CONVERSIÓN DE BINARIO A RNS Existen dos caminos principales para la conversión de binario al RNS. La primera se basa en el empleo de tablas de búsqueda en tanto que, la segunda, realiza la transformación mediante el empleo de circuitos enteramente combinacionales. Los algoritmos de conversión basados en tablas de búsqueda consisten en la aplicación directa de la técnica explicada en “Conversión de binario a residuos”. La idea es tener almacenados los residuos de |2n|m en una tabla de búsqueda cuyo contenido es direccionado por los números cuyos residuos se quiere determinar. Si se implementa este criterio de forma directa el tamaño de la memoria ROM requerida es demasiado grande. Por lo que existen distintas alternativas para reducir el tamaño de las tablas de búsqueda requeridas.

Page 91: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

79

Conversor binario a RNS secuencial mediante tablas de búsqueda Una de las estrategias para la conversión de binario a RNS mediante tablas de búsqueda es el conversor secuencial serie que se muestra en la “Figura 40” [OMO07]. Se trata de calcular |X|m, siendo X un número entero de n bits. Al inicio el registro se pone en 0, en cada ciclo, n en total, el contador va direccionando el valor |2j|m para el bit j del número a convertir. La etapa de salida está compuesta por un sumador en módulo26 m y un registro que va acumulando los resultados parciales y el final. Se trata de un diseño de bajo costo pero con un tiempo de conversión elevado. La velocidad de conversión se puede aumentar trabajando con varios circuitos similares trabajando en paralelo. En efecto para aumentar el throughput en [OMO07] se propone dividir

el número X, de n bits, en

=l

nt bloques de l bits cada uno. En cada ciclo de reloj se

convierten l bits. En la “Figura 41” se muestra el esquema para l = 2.

Figura 40 Conversor secuencial serie binario a RNS.

26 Las distintas alternativas para realizar la suma en módulo se explican en el capítulo siguiente.

Page 92: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

80

Figura 41 Conversor secuencial paralelo de binario a RNS.

Conversor binario a RNS en paralelo mediante tablas de búsqueda Ahora bien, el objetivo principal de la aritmética en RNS es maximizar la velocidad de cálculo, en general este incremento en el throughput va acompañado por un mayor costo en hardware. De manera que en lugar de realizar la conversión, como en los métodos precedentes, de manera secuencial, la idea es realizarla totalmente en paralelo.

Page 93: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

81

Entonces el número a convertir X, de n bits, a módulo m de h bits, se divide en

=l

nt bloques de l bits cada uno. Cada bloque de l bits direcciona en una memoria ROM el

residuo correspondiente a la dirección presentada, luego un árbol de sumadores realiza la suma de los t residuos. Aquí hay dos variantes, la primera consiste en utilizar sumadores binarios y realizar una conversión final en tanto que, en la segunda, se emplean sumadores en módulo de manera que a la salida del último sumador se obtiene el residuo de X en módulo m. Ver la “Figura 42” y la “Figura 43”. Naturalmente la velocidad de conversión se puede incrementar mediante segmentación.

Figura 42 Conversor binario a RNS mediante tablas de búsqueda y sumadores binarios.

Page 94: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

82

Figura 43 Conversor binario a RNS mediante tablas de búsqueda y sumadores en módulo.

Conversor binario a RNS basado en la periodicidad de los residuos Como se vio para realizar la conversión de binario al RNS se debe calcular el peso correspondiente a cada bit. Por ejemplo, para el bit j de X en el canal con módulo mi será |2j|mi. Sin embargo puede no ser necesario el cálculo de |2j|mi para cada posición, pues los residuos calculados para cada una de ellas se repiten luego de un cierto número de bits l. En efecto los residuos de 2j tienen las siguientes propiedades [MOH94] [PRE06]: ♦ Para ciertos módulos m impares se cumple l = m – 1. Por ejemplo, si m = 5 los residuos de 2j para j = 0, 1, 2, 3,… son: 1, 2, 4, 3, 1, 2, 4, 3,… El período l = 4. ♦ Los módulos impares que no cumplen la condición anterior tienen un período l < m - 1. ♦ Si m es par existe un transitorio luego del cual los residuos de 2j son periódicos. Si el módulo es una potencia de 2, luego de un transitorio, el periodo es igual a 0, en este caso el residuo es precisamente el transitorio, es decir los ( )m2log bits menos significativos.

Ejemplo: m = 9. Los residuos de |2j|9 siguen la secuencia: 1, 2, 4, 8, 7, 5, 1, 2,… con lo que el período es l = 6 < 9 – 1 = 8.

Page 95: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

83

Ejemplo: m = 10. Los residuos siguen la serie 1, 2, 4, 8, 6, 2, 4, 8, 6,… Se tiene un transitorio igual a primer residuo, 1, luego del cual la serie se vuelve periódica con l = 4.

En la “Tabla 22” se indica el periodo para módulos impares, en tanto que en la “Tabla

23” se da la misma información para módulos pares indicando el transitorio inicial.

m l m l m l m l m l m l m l m l 3 2 16 18 35 12 51 8 67 66 83 57 99 25 115 44 5 4 21 6 37 36 53 52 69 22 85 8 101 100 117 12 7 3 23 11 39 12 55 20 71 35 87 28 103 51 119 24 9 6 25 20 41 20 57 13 73 9 89 11 105 12 121 117 11 10 27 18 43 14 59 45 75 20 91 12 107 100 123 20 13 12 29 28 45 12 61 60 77 29 93 10 109 36 125 100 15 4 31 5 47 23 63 6 79 39 95 36 111 36 127 7 17 8 33 10 49 21 65 12 81 54 97 48 113 28

Tabla 22 Período l para módulos impares de 3 a 127 [MOH94].

m l m l m L m l m l m l m l m l 6 3.2 24 5.8 40 7.8 54 19.2 70 13.2 86 15.2 100 22.4 114 19.2 10 5.2 26 13.2 42 7.2 56 6.8 72 9.8 88 13.8 102 9.2 116 31.4 12 4.4 28 5.4 44 12.4 58 26.2 74 37.2 90 13.2 104 14.16 118 59.2 14 4.2 30 5.2 46 12.2 60 6.4 76 20.4 92 13.4 106 53.2 120 7.8 18 7.2 34 9.2 48 6.16 62 6.2 80 8.16 94 24.2 108 20.4 122 61.2 20 6.4 36 9.4 50 24.2 66 11.2 82 21.2 96 7.32 110 21.2 124 7.4 22 11.2 38 10.2 52 14.4 68 10.4 84 8.4 98 22.2 112 7.16 126 7.2

Tabla 23 Período l para módulos pares de 6 a 126 [MOH94].

Debido al hecho de que 2j, 2j+l, 2j+2l,… tienen el mismo residuo el número a convertir

se puede descomponer en palabras de l bits cada una, de la siguiente manera: (xtl-1),… x(t-1)l),... (x3l-1,… x2l), (x2l-1… xl), (xl-1,… x0). El resultado de esta propiedad es que en lugar de convertir

a RNS un número X de n bits se lo divide en

=l

nt palabras de l bits cada una. Primero se

realiza la suma de las t palabras de l bits, si hay acarreo este se suma al resultado, que será un número de l bits. Por último al número obtenido se le aplica cualquier método para la conversión de RNS a binario con la simplificación en hardware que trae aparejado trabajar con l bits en lugar de n.

Ejemplo: hallar el residuo del número binario de 32 bits 1111 1110 1101 1100 1011

1010 1001 1000 en módulo 89. De la “Tabla 22” l = 11 por lo que se debe realizar la suma:

0101 0011 000 + 0111 0010 111 0111 1111 011 1 0100 0101 010

0100 0101 010 + 1 0100 0101 011

Page 96: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

84

El conversor binario a RNS calcula entonces el residuo ||512|89 + 32 + 8 + 2 + 1|89 = |67 + 32 + 8 + 2 + 1|89 = 21. El esquema de cálculo se muestra en la “Figura 44” . Si se desea aumentar la velocidad de trabajo se debe segmentar cada nivel del conversor mediante el agregado de registros. Es evidente que se debe realizar una elección del conjunto de módulos muy cuidadosa con el objeto de seleccionar aquellos que tienen un período pequeño. Es decir que existe una limitación muy importante al momento de seleccionar m.

Figura 44 Conversor binario a RNS basado en la periodicidad de los residuos.

Page 97: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

85

Conversores binario a RNS basados en la exponenciación en módulo En [PRE02] se presenta un conversor binario a RNS, basado en la exponenciación en módulo. En el contexto de este capítulo la exponenciación en módulo se refiere al cálculo de |2N|m. La expresión |2N|m, con N un número entero de n bits, se puede expresar con su exponente en el sistema de numeración binario:

m

bbbbm

N nnn 0321 ...22 −−−=

o con el exponente representado como un polinomio de potencias de su base:

m

bbbbbbb

m

N knkn

knkn

knkn

nn

nn

00

11

11

11

22

11 22...222...2222 +++++++ −−

−−−

−+−

+−−

−−

=

modificando los primeros k términos:

( ) ( ) ( ) ( )

m

bbb

mknkn

mnnm

N

knkn

knkn

nn

bb

bb

00

11

11

1

21

222

21

2

22

12

22...2

112112

...1121122

−−−−

−+−

−−

×+−+−

×+−+−=

−+−

−−

Ecuación 8

haciendo:

min

in

r 122 −=−

− con i = 1, 2,… k

que reemplazado en los k primeros términos de la “Ecuación 8” da:

( ) ( ) ( ) ( ) mbbb

knknknknnnnnm

N knkn

brbrbrbr 00

11

11 222

112211 22...211...112 −−−−

++++= −−+−+−−−−−

ecuación que es de la forma:

( ) ( ) ( ) ( ) mbbb

knknnnm

N knkn

aaaa 00

11

11 222

121 22...211...112 −−−−

++++= −+−−−

Ecuación 9

donde:

11 +=+ −−− ininin bra

expandiendo la “Ecuación 9”:

( ) ( ) mbbb

p

q q

n

kni

p

q qiim

N knknk

kkkbr 00

11

1111

222

1

1

1

22...211,...1,2 −−−−−

++−+= ∑∏∏ ∑∏

=

−= =

Ecuación 10

Page 98: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

86

donde:

( ) !!1

!

ik

kCp k

ikik −== −−

el término ( )∑∏−

=

−1

1

1,kp

q q

kk representa la suma de los pk-i productos tomando de a (k – i)

términos a la vez, en donde cada término es de la forma rn-i bn-i. La primera parte de la “Ecuación 10” se puede expresar mediante la función lógica g:

( ) ( ) ( )knnn

k

bbb

m

p

q q

n

kni

p

q qii gkkksr

−−−

=++−+ ∑∏∏ ∑∏=

−= =,...,

1

1

121

11

11,...1,

reescribiendo la “Ecuación 10” queda:

( ) mbbb

bbbm

N knkn

knnng 0

01

11

1

21

222,..., 22...22 −−

−−

−−−×=

Los bits bn-k-1 bn-k-2… b0 que aparecen en los exponentes se emplean para multiplexar la función g. Esto requiere que g se modifique para obtener 2n-k funciones lógicas gj, j ∈ [0, 2n-k - 1]. Estas funciones se diseñan de manera tal que los pesos de los bits bn-k-1 bn-k-2… b0 que aparecen como exponentes en cada término sean tomadas en cuenta. De esta manera se elimina, a diferencia de los algoritmos presentados anteriormente en la bibliografía, la necesidad de bloques adicionales para cálculos en módulo. Así:

( ) ( )

( )

( ) 01,...,1

011,...,1

01,...0222

,...,

...

...

...22...2

21

21

1

011

1

21

bbgo

bbbgo

bbgg

knbbbn

knbbb

knbbmb

bbb

knnn

knnn

knn

knkn

knnn

−−−

−−

−−

−−−

−−−

−−

−−−−

−−−=×

Ejemplo: determinar los residuos de 0123 ...2 bbbb en módulo m = 13

( )( )( )( )

13133223

1323

1323

13

13

248

13

...

01

01

01

0123

01230123

241823

241218

241151255

2416256

22

bb

bb

bb

bbbb

bbbbbbbb

bbbb

bb

bb

+++=

++=

++=

=

= +++

Ecuación 11

En la “Ecuación 11” se toman los bits b1 y b0 para multiplexar la función sintetizada que depende de los bits b3 y b2. En la síntesis de la función se pueden dar cuatro casos: ♦ Si b1 = b0 = 0 la “Ecuación 11” se reduce a 1, 3, 9 y 1 para b3 = b2 = 0; b3 = 0, b2 = 1; b3 = 1, b2 = 0 y b3 = b2 = 1 respectivamente. Se puede sintetizar la función g0, de su tabla de verdad, para diferentes combinaciones de b3 y b2 de la siguiente manera:

Page 99: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

87

1208 23230 +++= bbbbg

cuando se evalúa g0 para diferentes combinaciones de b3 y b2 con b1 = b0 = 0 se tiene 1, 3, 9, 1. ♦ Si b1 = 0 y b0 = 1 el resultado es 2, 6, |18|13, 2 para las diferentes combinaciones de b3 y b2. Con lo que se obtiene la función:27

( ) ( ) 2323321 240 bbborbbbg ++⊕+=

♦ De la misma manera se obtiene la función g2 si b1 = 1 y b0 = 0:

( ) ( ) 0248 2332322 +++⊕= bbborbbbg

♦ Por último si b1 = b0 = 1 se tiene g3:

( ) ( ) 232323233 248 bbbbbbborbg ⊕+⊕++=

Figura 45 Conversor binario a RNS basado en la exponenciación en módulo.

27 En g2, g3 y g4 or es la operación lógica or, no se emplea el símbolo + para no confundirlo con la suma aritmética en la evaluación de dichas expresiones.

Page 100: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

88

En la “Figura 45” se ilustra el conversor secuencial basado en la exponenciación en módulo para m de 4 bits. El número a convertir se presenta en forma secuencial desde el bit menos significativo, junto con los valores de b3, b2, b1 y b0 para cada posición. Según los valores de b3 y b2 el generador lógico entrega a su salida los valores de las funciones g3, g2, g1 y g0 que se multiplexan según b1 y b0. El sumador en módulo junto con el registro de salida funciona como un acumulador que debe ser puesto a 0 al inicio de la conversión. En [PRE02], a expensas de un costo mayor en hardware, se propone que la conversión se realice en paralelo en lugar de realizarla en forma secuencial. Este método recibe la denominación de conversor paralelo mediante modulación exponencial. En [PRE06] se presenta un conversor binario a RNS, sin el empleo de tablas de búsqueda. Primero se reduce el número de bits a convertir basado en la periodicidad de los residuos, tal como se vio en “Conversor binario a RNS basado en la periodicidad de los residuos”, y luego se aplica la conversión de binario a RNS mediante modulación exponencial en paralelo. Esta estrategia, para m de cuatro bits, usa un 44% menos de hardware que el conversor basado en la periodicidad de los residuos y un 66% menos que la conversión mediante la exponenciación en módulo. Sin embargo no se indica que ocurre con la velocidad de funcionamiento.

CONVERSIÓN DE RNS A BINARIO La conversión de RNS a binario es la operación contraria al cálculo de los residuos de un número dado. Es una o tal vez la operación más difícil en el RNS, más aún, en algunas aplicaciones es un factor limitante que hace que no pueda competir con, por ejemplo, la aritmética en Ca2. Los principales métodos de conversión se basan en el Teorema Chino del Residuo, como se vio en el apartado “Teorema Chino del Residuo (CRT)” del “CAPÍTULO 1.

ARITMÉTICA DE RESIDUOS”, y en el sistema de bases mixta visto en “Sistemas de base múltiple

(Mixed Radix System, MRS)” del mismo capítulo. Estos dos enfoques se estudian de forma detallada en los apartados “Conversión mediante el Teorema Chino del Residuo” y “Conversión mediante

el sistema de raíces mixtas”.

Mediante variaciones del Teorema Chino del Residuo existe en la bibliografía un gran número de conversores alternativos algunos de los cuales se tratarán en el apartado “Conversión

RNS a binario mediante variaciones del Teorema Chino del Residuo”. Otra estrategia de conversión de RNS a binario consiste en la elección de un conjunto

de módulos que permiten simplificar los cálculos a realizar. Debido a que estos procedimientos están pensados para determinados conjuntos de módulos, en lugar de un conjunto arbitrario, no se los trata en profundidad pero se los presenta brevemente en “Transformación de RNS a binario mediante conjuntos especiales de módulos”.

Conversión mediante el Teorema Chino del Residuo La conversión de RNS a binario se puede realizar de manera relativamente directa mediante el CRT, según la “Ecuación 12”:

Page 101: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

89

Mimiiri

q

iMX 1.0

−∑=

= ωω

Ecuación 12 Teorema Chino del Residuo.

con m = mq,… m1, m0, im

Mi =ω y 1−

iω el multiplicativo inverso de

iω en módulo mi.

La forma directa de implementar la “Ecuación 12” es multiplicar en paralelo las

constantes im

i i1−ωω por los ri y sumar los resultados en módulo M. Aquí hay dos estrategias,

en la primera la reducción en módulo M se va realizando paso a paso, de manera que se emplean sumadores en módulo M, en la segunda se emplean sumadores binarios y se realiza una reducción final a módulo M. La ventaja de la implementación directa del Teorema Chino del Residuo es que los multiplicadores deben realizar el producto de una constante con un número variable por lo que se puede optimizar cada multiplicador para cada canal de cálculo. Más aún, se puede realizar el multiplicador mediante una tabla de búsqueda, ver “Figura 46”.

Figura 46 Conversor RNS a binario mediante el Teorema Chino del Residuo.

Page 102: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

90

Conversión mediante el sistema de raíces mixtas Por claridad se repite lo visto en apartado “Sistemas de base múltiple (Mixed Radix System,

MRS)”. La representación de un número entero X en el sistema de bases múltiples tiene la siguiente forma [BIZ97]:

11221

1

1 3... apappq

iaipqaX ++∏

=++=

Ecuación 13 Representación mediante el sistema de raíces mixtas.

donde pi son las raíces o bases, ai los dígitos, que cumplen con 0 ≤ ai < pi. Esta

representación es única dentro del intervalo

−∏

=1

1,0

q

i ip .

En el caso particular en que se hace coincidir un conjunto de módulos m con el conjunto de bases p1, p2,... pq tal que mi = pi se dice que los dos sistemas están asociados y presentan el mismo rango dinámico M. Por lo que la “Ecuación 13” se puede representar como:

11221

1

1 3... amammq

iaimqaX ++∏

=++=

Ecuación 14 Representación del entero X según el sistema de bases mixtas.

Para el número X en el RNS, representado por el conjunto de residuos r1, r2,... rq, los

dígitos ai se pueden determinar desde el menos significativo, a1, mediante el algoritmo que se muestra a continuación. Aquí la notación empleada es la siguiente: por ejemplo, m16

-1 es |m1-

1|m6, es decir el multiplicativo inverso de m1 en módulo m6. Cálculo de a1:

111

arXm

==

Cálculo de a2:

1221

1

1 3...1

mammq

iaimqaaX +∏

=++=−

( ) 22

1

2 3...1

11

amq

iaimqaaXm +∏

=++=−−

( ) 22

121

12a

marm =−−

Cálculo de a3:

Page 103: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

91

( ) 2

1

2 3234...

211

1m

q

iammaimqaaaXm ∏

=+++=−−−

( ) ∏−

=+++=

−−−− 1

3 334...

211

11

2

q

iamaimqaaaXmm

( )3

3213

113

123

am

aarmm =

−−−−

Cálculo de a4:

( ) ∏−

=+++=

−−−− 1

3 334...

211

11

2

q

iamaimqaaaXmm

( ) ∏−

=++=

−−−−− 1

4 4...

3211

11

21

3

q

iaimqaaaaXmmm

( )4

43214

114

124

134

am

aaarmmm =

−−−−−

Cálculo de a5:

( ) ∏−

=+++=

−−−−− 1

4 445...

3211

11

21

3

q

iamaimqaaaaXmmm

( ) ∏−

=++=

−−−−−− 1

5 5...

43211

11

21

31

4

q

iaimqaaaaaXmmmm

( )5

543215

115

125

135

145

am

aaaarmmmm =

−−−−−−

Cálculo de a6:

( )5

1

5 56...

43211

11

21

31

4a

q

imaimqaaaaaXmmmm +∏

=++=

−−−−−−

( ) ∏−

=++=

−−−−−−− 1

6 6...

543211

11

21

31

41

5

q

iaimqaaaaaaXmmmmm

( )6

6543216

116

126

136

146

156

am

aaaaarmmmmm =

−−−−−−−

Page 104: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

92

… para el término genérico q:

( )( )( )( ) qmqqqqqq aaaarmmmq

=−−− −−−−

− 1211

11

21

,1 ......

El esquema para un conjunto de seis módulos se ilustra en la “Figura 47”. Como se

puede apreciar está compuesto por restadores binarios, sumadores binarios y tablas de búsqueda; que realizan tres tipos de cálculo. En el primer caso, por ejemplo el bloque indicado como 1

16. −m , realiza el producto de la salida del restador superior, r6 – r1, con el

multiplicativo inverso de m1 en módulo m6. El segundo tipo de bloque, por ejemplo 2

112.

mm− ,

realiza el producto de la diferencia r2 – r1 con el multiplicativo inverso de m1 en módulo m2 y al resultado lo presenta en módulo m2. Por último puesto que la “Ecuación 14” se puede reescribir como:

112233... vavavaqvqaX +++=

con v1 = 1, v2 = m1, v3 = m1 m2, v3 = m1 m2 m3,… vq = mq… m1; los bloques vi, por ejemplo v6, realizan el producto de su entrada con m5 . m4 . m3 . m2 . m1.

Se ve que este esquema es claramente secuencial, para determinar el valor de ai antes

se debe conocer el valor de ai-1. Ésta es una consideración menor puesto que si se segmenta según las líneas Si este diseño secuencial se transforma en uno paralelo con un incremento en la velocidad de trabajo sustancial.

Ejemplo: encontrar el valor de X para el conjunto de residuos r = 78, 41, 47, 7 y el de módulos m = 127, 63, 50, 13 [YAS91]

v1 = 1

v2 = 127 v3 = 127 . 63 = 8.001 v4 = 127 . 63 . 50 = 400.050 |m1

-1|m2 = |127-1| 63 = 1 |m1

-1|m3 = |127-1| 50 = 13 |m1

-1|m4 = |127-1| 13 = 4 |m2

-1|m3 = |63-1| 50 = 27 |m2

-1|m4 = |63-1| 13 = 6

|m3-1|m4 = |50-1| 13 = 6

a1 = 78

a2 = |(41 - 78) 1|63 = 26 a3 = |((47 - 78) 13 – 26) 27|50 = 17 a4 = |(((7 – 78) 4 – 26) 6 – 17) 6|13 = 9 X = 78 + 26 (127) + 17 ( 127 . 63) + 9 (127 . 63 . 50) = 3.739.847

Page 105: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

93

Figura 47 Conversor RNS a binario mediante el sistema de bases mixta para seis módulos.

Conversión RNS a binario mediante variaciones del Teorema Chino del Residuo

Nuevo Teorema Chino del Residuo I

Puesto que los i

ω de la “Ecuación 12” pueden ser grandes la idea consiste en reducir el

peso de los i

ω a una matriz de números menores que el módulo mi. Más aún, el NTCR-I es

un algoritmo de conversión basado en el MRC pero que trabaja en paralelo.

Page 106: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

94

Las propiedades de la aritmética de residuos que emplea el NCRT-I son [WAN98]:

1,112121

==⇔=mmmm

aaaSi

1,...11

121 ...==⇔=

kk mmmmmaaaSi

11221

mamammm

=

1121 mmmm aa =

En [WAN98] se da sin demostración el siguiente teorema. El número X con el conjunto de residuos r = r1, r2,… rq y módulos m = m1, m2,… mq se puede representar según el NCRT-I como:

( ) ( ) ( )qmmmqqqq rrmmmkrrmmkrrmkrX

...11211232121211121

...... −−− −++−+−+=

Ecuación 15 Representación del número X según el NCRT-I.

donde

,1...,...1,1 1211...212...11332

=== −−qqq mqqmmmmm

mmmkmmkmk

La “Ecuación 15” difiere del CRT en que no usa los pesos ωi y del MRC en que se trata de un proceso de cálculo que se puede realizar en paralelo. Ejemplo: encontrar el valor de X para el conjunto de residuos r = 1, 2, 3, 4 y el de módulos m = 3, 5, 7, 11.

111.5.3,15.3,1311311.7211.7.51 === kkk

por lo que k1 = 257, k2 = 36 y k3 = 2. Realizando los cálculos:

3677.15.215.363.257111.7.5.3

=+++=X

La “Ecuación 15” se puede reorganizar de la siguiente manera:

Mqqq rmmmarmaraX 121121110 ...... −−+++=

donde:

qqqqq mqqmmqnnqmmmmmkamkkamkkamka 111122...2211...110 ,,...,1

1221−−−−−− =−=−=−=

Los pesos ai m1 m2 m3… mi tienen la forma del sistema de raíces mixtas, más aún se puede asumir que tienen la forma definida en este mismo sistema [WAN98]:

Page 107: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

95

1211,11211

1211,22212,22212

1211,111,111

1211,011,00,00

......

.........

...

......

......

−−−−−

−−−−−−−−

−−

−−

=

+=

++=

+++=

qqqqq

qqqqqqqq

qq

qq

mmmammma

mmmammmammma

mmmamama

mmmamaaa

Representado de forma matricial:

=

−−−−−−

−−−−

1,11,21,11,0

2,22,12,0

1,11,0

0,0

...

0...

...

0...

0...0

qqqqnq

qqqq

aaaa

aaa

aa

a

A

A recibe el nombre de matriz característica del conjunto de módulos m = m1, m2,… mq, donde aj,i < mi+1, es decir que cada número en la matriz característica esta limitado por mi. Dado el conjunto de residuos r = r1, r2,… rq se puede definir el vector B como B = A. r´. El número Bi = a0,i r1 + a1,i r2 +… + ai,i ri+1 es el iésimo pseudodígito.

=

=

−−−−−−

−−−−

q

q

qqqqqq

qqqq

q

q

r

r

r

r

aaaa

aaa

aa

a

B

B

B

B

B

1

2

1

1,11,21,11,0

2,22,12,0

1,11,0

0,0

1

2

1

0

...

...

0...

...

0...

0...0

...

El número X se puede representar entonces:

Mqq mmmBmmBmBBX 1211212110 ...... −−++++=

La diferencia entre el NCRT-I y el CRT es evidente, se emplea una matriz característica que está formada por números pequeños en lugar de los grandes ωi del CRT. Más aún el NCRT-I está representado en el sistema mixto de raíces. En la “Figura 48” se puede ver el hardware requerido para el cálculo de los coeficientes Bi, en tanto que en la “Figura 49” el esquema total. Ejemplo: encontrar el valor de X para el conjunto de residuos r = 1, 2, 3, 4 y el de módulos m = 3, 5, 7, 11 mediante el NCRT-I. Los valores de los ki se determinaron en el ejemplo anterior por lo que la matriz característica es:

=

2323

0114

0023

0001

A

Page 108: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

96

( ) ( ) ( )11553214321213211211 2323423 mmmrrrrmmrrrmrrrX +++++++++=

( ) ( ) ( ) 3671058943153243431

1155=+++++++++=X

Figura 48 Esquema de cálculo de los coeficientes Bi.

Figura 49 Esquema de conversión de RNS a binario mediante el NCRT-I.

Nuevo Teorema Chino del Residuo II El New Chinese Remainder Theorem II (NCRT-II) realiza la conversión del RNS a binario mediante el empleo de operaciones en módulo de tamaño reducido. Por ejemplo, si m = m1, m2 con m1 < m2 y residuos r = r1, r2 en [WAN98] se demuestra que el número X se puede encontrar mediante la fórmula:

( ) 221021mrrkrX

m−+=

donde k0 es un entero positivo, que siempre existe, y que satisface la condición 1

120 =

mmk .

Page 109: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

97

Si ahora se tiene el conjunto genérico de residuos y módulos r = r1, r2,… rq y m = m1, m2,… mq con m1 < m2 <… < mq el algoritmo TRANSLATE encuentra el valor de X así: algoritmo TRANSLATE((r1, r2,… rq), X) comienzo

si q > 2, hacer t = q/2 entonces TRANSLATE((r1, r2,… rt), N1), M1 = m1 m2… mt, TRANSLATE((rt+1,… rq), N2), M2 = mt+1… mq, FINDNO(N1, N2, M1, M2, X),

fin si q = 2, entonces

FINDNO(r1, r2, m1, m2, X), fin

fin algoritmo FINDNO(r1, r2, m1, m2, X) comienzo encontrar k0 tal que 1

120 =

mmk

( ) 221021mrrkrX

m−+=

fin La diferencia entre el NCRT-II y el CRT es evidente. En el NCRT-II no se deben realizar grandes operaciones en módulo. Los multiplicadores en módulo en el NCRT-II están

limitados al tamaño M . Ejemplo: para las mismas condiciones del ejemplo anterior determinar X. Primero se calculan los valores de los ki:

|5 k0|3 = 1, |11 k1|7 = 1, |7.11k2|3.5 = 1 k0 = 2, k1 = 2, k2 = 8

( ) ( ) 751.223221021

1=−+=−+= mrrkrN

m

( ) ( ) 59111.24

74231423

=−+=−+= mrrkrNm

( ) ( )

36730859778.859

77597859

15

1543212221

=+=+==−+=−+= mmNNkNX

mm

El conjunto de módulos m = 3, 5, 7, 11 pueden representar números binarios de 10 bits, con un rango dinámico M = 1.155. Este tipo de conversor, en lugar de necesitar sumadores en módulo 1.155 emplea multiplicadores en módulo 3, 7 y 15, productos que se pueden implementar fácilmente mediante tablas de búsqueda. En la “Figura 50” se muestra la implementación del algoritmo FINDNO en hardware, en tanto que en la “Figura 51” el esquema de conversión de binario a RNS basado en el NCRT-II.

Page 110: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

98

Figura 50 Módulo para la implementación del algoritmo FINDNO.

Figura 51 Esquema de conversión basado en el NCRT-II.

Conversión mediante el Teorema Chino de Residuo Aproximado El Teorema Chino del Residuo Aproximado (CRT-ε) tiene varias aplicaciones, que incluyen detección de signo, división, detección de overflow y conversión de RNS a binario. La precisión de la decodificación puede ir de baja, para detección aproximada de signo, media para decodificación escalada a representación completa para detección exacta de signo [HUN05]. El CRT-ε empleado como mecanismo de conversión de RNS a binario tiene dos versiones, la que emplea redondeo y la que trunca, en ambos casos el hardware necesario es menor que en el CRT. Sin embargo, citando a [HUN05], “However, we have been unable to locate any work that analyses the decoding error formally. Some obtain a simple upper-bond error by treating the problem as rounding or truncation error, while others use exahustive search to find the range of errors for specific moduli. (sic)”. Existen trabajos para conjuntos especiales de módulos, en los que se acota el error máximo, pero no para conjuntos arbitrarios. Más aún, en algunos trabajos se refutan los resultados de trabajos previos.

Page 111: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

99

Dado que el CRT-ε no provee una representación exacta del número que se desea encontrar y puesto que los trabajos vistos exploran un universo limitado de módulos y que, más aún, estos resultados son controvertidos se decidió no estudiar este tipo de conversores.

Transformación de RNS a binario mediante conjuntos especiales de módulos Existen conjuntos especiales de módulos en los que no son necesarias operaciones en módulo para realizar la conversión de RNS a binario. En este apartado se indican los conjuntos encontrados en la bibliografía. No se detalla cada uno de ellos por dos razones. En primer lugar si se trabaja con números enteros de n bits en [CHI83] se demuestra que mediante el RNS se puede pasar de aritmética de n bits a aritmética de log2(n) bits y que se necesitan O(n/log2(n)) canales con operaciones realizadas en módulo. Al trabajar con un conjunto reducido de módulos especiales, por ejemplo una terna, se pierde la propiedad de poder operar con pocos bits por canal. En segundo lugar se pierde generalidad. Por lo expuesto se muestra una de las posibles formas de trabajar con el conjunto más popular y estudiado que es el 2n – 1, 2n, 2n + 1, en tanto que en la “Tabla 24” se enumeran los conjuntos de módulos más comunes con la bibliografía correspondiente. En [WAN96] se demuestra que el número X se puede calcular, a partir de sus residuos r1, r2, r3, con módulos 2n – 1, 2n, 2n + 1, mediante la siguiente expresión:

( ) ( ) ( )12

1321322 2

12222−

− ++−+−+=n

nnn rrrrrrX

que se puede procesar:

YrX n22 +=

1222

−+=

nBAY n

con:

( ) ( ) ( )

−+−−+⊕+=

2

12122 330101nnn rrrr

A

( ) ( )

−−++⊕+=

2

1222 2330101 rrrrrB

nn

donde r10 es el bit menos significativo del residuo r1 y r30 el menos significativo de r3. Ejemplo: con m = 2n – 1, 2n, 2n + 1 = 7, 8, 9 y r = 1, 7, 2 = 001, 111, 0010, que corresponden al número expresado en octal 627. r10 ⊕ r30 = 1

Page 112: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

100

( ) ( ) ( ) 101012122 330101 =−+−−+⊕+ nnn rrrr

A = 1010

( ) ( ) 1011222 2330101 =−−++⊕+ rrrrr nn

B = 101 Y = |1010 + 8 . 101|63 = 50 = 2 + 8 . 6 X = 7 + 8 Y = 7 + 2 . 8 + 6 . 82 como se puede apreciar, si se desea, el número queda representado en octal.

Conjuntos de módulos especiales Referencias

2n – 1, 2n, 2n + 1 [GAL97][WAN96]

[PIE95] 2n – 1, 2n, 2n + 1 [PRE92] 2n, 2n + 1, 2n + 2 [PRE95]

2n+1, 2n – 1, 2n + 1, 2n + 2(n+1)/2 +1, 2n – 2(n+1)/2 +1 [SKA98] n – 2k, n + 2k [CAR98a]

2n -1, 2n + 1, 22n + 1 [LIN06] 2n+1 – 1, 2n, 2n – 1 [PEM07]

2n – 1, 2n, 2n + 1, 2n+1 – 1 [VIN00][MOH07] 2n – 1, 2n, 2n + 1, 2n+1 + 1 [MOH07]

ra, rb – 1, rc + 1 [ABD05] 2n – 3, 2n + 1, 2n – 1, 2n + 3 [SHE04]

2n – 1, 2n, 2n + 1, 2n+1 – 1, 2n-1 – 1 [CAO07] 3n - 1, 3n+1, 3n + 2, 3n - 2 [MEH08]

Tabla 24 Conjuntos de módulos especiales con sus referencias.

IMPLEMENTACIÓN DE CONVERSORES BINARIO-RNS-BINARIO EN LÓGICA PROGRAMABLE En el “CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE RESIDUOS” se trabajó con las FPGAs de Altera de las familias MAX y FLEX. Los dispositivos empleados fueron el EPM7128SLC84-6 para síntesis mediante sumas de términos producto y el EPF10K20RC240-3 para tablas de búsqueda. La elección de estos dispositivos en particular se debe al hecho de que están disponibles en el Laboratorio de Componentes Electrónicos en la plaqueta provista por el Programa Universitario de Altera. De manera que se pueden realizar simulaciones físicas de los circuitos desarrollados en lugar de quedar limitado a la simulación mediante el software correspondiente. Para el desarrollo de este capítulo la situación es distinta, por un lado se trabaja con circuitos que no entran en los dispositivos mencionados, por el otro, tanto para la conversión binario a RNS como para la RNS a binario se requieren bloques de memoria, por lo que queda descartada la familia MAX. Por lo expuesto el dispositivo seleccionado para trabajar fue el EPF10K100GC503-3 de la familia

Page 113: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

101

FLEX. En todos los circuitos, al igual que en el capítulo siguiente, para el cálculo máximo de la frecuencia de operación, se registran las entradas y las salidas. Otro punto a tener en cuenta es el gran número de casos de simulación posible. En efecto, las variables son: número de bits con que se trabaja, el conjunto de módulos seleccionado y el método de conversión. A diferencia de la forma de trabajo empleada en el “CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE RESIDUOS”, en que se realizó un estudio exhaustivo para módulos de hasta 8 bits, aquí es necesario, dado el elevado número de combinaciones posibles, poner limites al universo de casos bajo estudio. Por tal motivo, y por razones que quedarán en claro en el “CAPÍTULO 4. GENERADORES PSEUDOALEATORIOS

MEDIANTE EL SISTEMA NUMÉRICO DE RESIDUOS”, se trabajó con números de 33 bits y con dos conjuntos de módulos: m1 = 3, 11, 17, 19, 23, 29, 31, 37 y m2 = 3, 43, 47, 67, 97, 109.

Conversión de binario a RNS en FPGAs El método de conversión para pasar de binario a RNS fue el que se cita más a menudo en la bibliografía de aplicaciones del RNS detallado en “APLICACIONES DEL SISTEMA

NUMÉRICO DE RESIDUOS”. Consiste el la aplicación directa de la técnica detallada en “Conversión de binario a residuos” empleando tablas de búsqueda, sumadores binarios y una reducción final al módulo del canal de trabajo, con segmentación en cada nivel. Determinado el conjunto de módulos y el número de bits de trabajo sólo resta decidir el número de bits en que se agrupan. Para realizar un estudio comparativo se tomaron grupos de 8, 7, 6 y 5 bits. En las “Tabla 25” a la “Tabla 28” se detallan los resultados para los módulos involucrados en los conjuntos m1 y m2. Con número de bits se indica el número de bits del módulo correspondiente, en tanto que, con numero de bits del resultado se indica en número de bits necesario para representar el resultado final del árbol de sumadores para su reducción final en módulo.

Módulo Número de bits

Número de bits

del resultado

Frec. (Mhzs)

Período (nseg)

LC EABs

3 2 4 86,95 11,5 19 5 11 4 6 74,07 13,5 27 5 17 5 7 84,03 11,9 31 5 19 5 7 84,03 11,9 31 5 23 5 7 84,03 11,9 31 5 29 5 7 84,03 11,9 31 5 31 5 8 84,74 11,8 32 5 37 6 8 83,33 12,0 35 5 43 6 8 83,33 12,0 35 5 47 6 8 83,33 12,0 35 5 67 7 9 81,30 12,3 39 6 97 7 9 81,30 12,3 39 6 109 7 10 75,18 13,3 40 8

Tabla 25 Costo del conversor binario a RNS tomando módulo de a 8 bits.

Page 114: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

102

Módulo Número de bits

Número de bits

del resultado

Frec. (Mhzs)

Período (nseg)

LC EABs

3 2 4 86,95 11,5 19 6 11 4 6 85,47 11,7 31 6 17 5 7 87,71 11,4 37 6 19 5 7 87,71 11,4 37 6 23 5 7 87,71 11,4 37 6 29 5 7 87,71 11,4 37 6 31 5 8 87,71 11,4 38 6 37 6 8 86,20 11,6 43 6 43 6 8 86,20 11,6 43 6 47 6 8 86,20 11,6 43 6 67 7 9 81,30 12,3 49 7 97 7 9 81,30 12,3 49 7 109 7 10 75,18 13,3 50 9

Tabla 26 Costo del conversor binario a RNS tomando módulo de a 7 bits.

Módulo Número de bits

Número de bits

del resultado

Frec. (Mhzs)

Período (nseg)

LC EABs

3 2 4 78,74 12,7 21 7 11 4 6 81,30 12,3 33 7 17 5 7 80,00 12,5 39 7 19 5 7 80,00 12,5 39 7 23 5 8 80,00 12,5 40 7 29 5 8 80,00 12,5 40 7 31 5 8 80,00 12,5 40 7 37 6 8 68,02 14,7 45 7 43 6 8 68,02 14,7 45 7 47 6 9 76,33 13,1 46 8 67 7 9 70,92 14,1 51 8 97 7 10 58,47 17,1 52 10 109 7 10 58,47 17,1 52 10

Tabla 27 Costo del conversor binario a RNS tomando módulo de a 6 bits.

Page 115: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

103

Módulo Número de bits

Número de bits

del resultado

Frec. (Mhzs)

Período (nseg)

LC EABs

3 2 4 76,33 13,1 24 8 11 4 7 85,47 11,7 39 8 17 5 7 84,03 11,9 45 8 19 5 7 84,03 11,9 45 8 23 5 8 84,03 11,9 46 8 29 5 8 84,03 11,9 46 8 31 5 8 84,03 11,9 46 8 37 6 8 82,64 12,1 52 8 43 6 9 68,02 14,7 53 9 47 6 9 68,02 14,7 53 9 67 7 9 68,02 14,7 59 9 97 7 10 63,69 15,7 60 11 109 7 10 63,69 15,7 60 11

Tabla 28 Costo del conversor binario a RNS tomando módulo de a 5 bits.

Para determinar la frecuencia de funcionamiento para cada conjunto de módulos es suficiente con fijarse en cada una de las tablas y buscar el módulo con peor desempeño, este será el que limite de frecuencia del conversor. En cuanto a la complejidad en hardware basta con sumar los LCs y los EABs para cada caso. El resultado de este análisis se muestra en la “Tabla 29”.

Conjunto de módulos

Tomados de a

Frec. (Mhzs) LC EABs

5 bits 82,64 343 64 6 bits 68,02 297 56 7 bits 86,20 279 48

m1

8 bits 83,33 237 40 5 bits 63,69 309 57 6 bits 58,47 267 50 7 bits 75,18 253 41

m2

8 bits 75,18 207 35

Tabla 29 Análisis comparativo de conversión binario a RNS para los conjuntos m1 y m2.

De la “Tabla 29” se desprende que para el conjunto m1 las mejores opciones son convertir de a 7 u 8 bits. En tanto que para el m2 la mejor alternativa es tomar de a 8 bits pues no sólo tiene el mejor comportamiento en frecuencia sino que además es el que necesita menos hardware.

Conversión de RNS a binario en FPGAs En “CONVERSIÓN DE RNS A BINARIO” se han presentado distintas técnicas de conversión. La conversión directa mediante el CRT es muy criticada debido a que se debe trabajar con sumadores en módulo M. Sin embargo en los demás métodos de conversión presentados se debe emplear un número importante de multiplicadores, aunque trabajando en cada uno de ellos en módulos menores que M, además se necesitan tablas de búsqueda

Page 116: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Técnicas de conversión binario-RNS-binario

104

adicionales. Por tal motivo se exploró sólo la conversión de RNS a binario mediante el CRT, con sumadores en módulo M y segmentación a la salida de cada sumador. En la “Tabla 30” se muestra el resultado de la simulación para los dos conjuntos de módulos propuestos. Como se puede apreciar, si bien se necesitan pocos bits de memoria, el número de EABs es elevado, esto se debe a que la arquitectura de los EABs, en este caso, no es la más apropiada para el número de bits con que se está trabajando, puesto que con bloques de 2.048 bits tiene que formar, por ejemplo para m = 29, 29 palabras pero de 33 bits cada una.

Conjunto de módulos

Frec. (Mhzs)

Período (nseg)

LC EABs Número de bits

m1 30,80 32,5 912 40 8.052 m2 30,21 33,1 791 30 17.028

Tabla 30 Costo del conversor de RNS a binario mediante el CRT.

Page 117: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

105

Operaciones Aritméticas Mediante Residuos

3

Se le atribuye a Blaise Pascal la invención de la primera calculadora mecánica operativa28. En efecto, en el año 1640 comenzó a desarrollar una máquina para ayudar a su padre a realizar sumas de dinero, y en 1642 presentó el primer modelo operativo, que fue seguido de quince versiones mejoradas durante los siguientes diez años. La máquina de Pascal sólo podía sumar y restar, las operaciones de multiplicación y división se implementaban mediante una serie de adiciones y substracciones. En realidad la única operación que realizaba era la suma, puesto que la resta se efectuaba en complemento, es decir, que se representa en complemento el número a ser restado y luego se le adiciona al sumando, de forma similar a como realizan esta operación las computadoras modernas.

28 Otros autores citan a Leonardo da Vinci, de quien se han encontrado bocetos que datan del año 1500 en los que se describe una máquina de este tipo.

Page 118: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

106

CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE

RESIDUOS En este capítulo se describen las distintas técnicas que existen para resolver las cuatro operaciones básicas en el Sistema Numérico de Residuos y su implementación en lógica programable. Se emplearon en todos los casos los dispositivos programables de Altera, la familia MAX para síntesis mediante términos producto y la FLEX para hacerlo mediante tablas de búsqueda. Para la simplificación de expresiones booleanas se utilizó el programa Espresso. Para cada operación se presenta una comparación de costo y velocidad29 para distintos módulos de manera de poder determinar la realización óptima en cada caso. Se realizaron aproximadamente unas 7.000 simulaciones.

Finalmente se da una conclusión general para el capítulo.

INTRODUCCIÓN

Cada implementación se designó mediante un código creado especialmente para identificarlo. Este código posee distintos campos, el primero indica la operación que realiza, el segundo el método empleado, el tercero si se sintetizó mediante FPGAs que utilizan tablas de búsqueda o términos producto como elementos de síntesis lógica, y el último, si corresponde, si se empleó la técnica de segmentación para aumentar la velocidad de cálculo. La nomenclatura se indica en la siguiente tabla:

Sigla Significado TP Términos producto (MAX) TB Tabla de búsqueda (FLEX) TV Tabla de verdad S Suma R Resta M Multiplicación D División

SEG Segmentado BIN Sumadores Binarios HIB Híbrido PRO Propuesto CUA Multiplicador cuadrático ROM Memoria ROM INX Multiplicador indexado

Tabla 31 Nomenclatura empleada para los distintos métodos de síntesis de operaciones en el RNS.

29 Para poder determinar la frecuencia de trabajo máxima en todos los casos se registran tanto las entradas como las salidas.

Page 119: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

107

En cada caso primero se presentan los distintos tipos de circuitos y luego un estudio comparativo entre ellos, se simularon tanto para la familia MAX como para la FLEX. Los dispositivos empleados fueron el EPM7160SLC84-6 para síntesis mediante sumas de términos producto y el EPF10K20RC240-3 para tablas de búsqueda. La descripción de los circuitos se realizó en VHDL y se simularon mediante el programa Max + Plus II 9.130.

SUMA EN RNS

Suma en RNS mediante tablas de verdad

El primer método de síntesis de cualquier problema digital es su implementación directa según su tabla de verdad, dependiendo de la complejidad resultante se tomará esta solución o habrá que idear otro mecanismo. Por ejemplo, en el caso de la suma en el sistema binario natural, a medida que el número de bits se incrementa crece la complejidad de la solución mediante dos niveles lógicos, es decir suma de productos o productos de sumas, por ello se han ideado otras técnicas que requieren menos hardware y además son modulares, el costo que hay que pagar es el mayor tiempo de cálculo del sistema.

Figura 52 Implementación del circuito sumador mediante síntesis directa de su tabla de verdad.

Se intentará resolver primero el problema mediante síntesis directa de su tabla de verdad, esto servirá para dar una idea de cómo se incrementa su costo en hardware a medida que se trabaja con un módulo mayor. Existe sin embargo, para algunos casos, una simplificación con respecto a la suma en el sistema binario natural, y es que no todas las combinaciones posibles de las variables estarán presentes [HIA96]. En efecto, cada residuo se puede representar mediante n bits con:

mn 2log=

y m el módulo correspondiente a ese canal de trabajo.

Para evaluar

bmas ⊕=

se debe construir una tabla de verdad con 2 n variables y n funciones. La tabla posee entonces

n22 combinaciones posibles de entrada. Si m < n2 se presentarán una serie de términos

30 Copyright (c) Altera Corporation.

Page 120: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

108

redundantes que ayudarán a simplificar el hardware, más aún, al depender todas las funciones de las mismas variables se realizará la síntesis por el método de simplificación de

multifunciones. De manera más precisa, de las n2

2 combinaciones posibles sólo interesan

m2 de ellas por lo que el número total de términos redundantes es n2

2 - m2.

Por ejemplo: si m = 5 entonces n = 3, el número total de combinaciones posibles es 22.3 = 64 y 22.3 – 52 = 39 es el número de términos redundantes como puede verse en la “Tabla 32”. De manera que para algunos valores de m el ahorro de hardware puede ser significativo.

a b s A b s a b s a B s 000 000 000 010 000 010 100 000 100 110 000 *** 000 001 001 010 001 011 100 001 000 110 001 *** 000 010 010 010 010 100 100 010 001 110 010 *** 000 011 011 010 011 000 100 011 010 110 011 *** 000 100 100 010 100 001 100 100 011 110 100 *** 000 101 *** 010 101 *** 100 101 *** 110 101 *** 000 110 *** 010 110 *** 100 110 *** 110 110 *** 000 111 *** 010 111 *** 100 111 *** 110 111 *** 001 000 001 011 000 011 101 000 *** 111 000 *** 001 001 010 011 001 100 101 001 *** 111 001 *** 001 010 011 011 010 000 101 010 *** 111 010 *** 001 011 100 011 011 001 101 011 *** 111 011 *** 001 100 000 011 100 010 101 100 *** 111 100 *** 001 101 *** 011 101 *** 101 101 *** 111 101 *** 001 110 *** 011 110 *** 101 110 *** 111 110 *** 001 111 *** 011 111 *** 101 111 *** 111 111 ***

Tabla 32 Tabla de verdad para la suma en módulo 5.

m ANDs ORs Total m ANDs ORs Total m ANDs Ors Total

3 16 6 22 19 1078 221 1299 35 3057 562 3619 4 24 8 32 20 794 152 946 36 2393 418 2811 5 68 19 87 21 1416 282 1698 37 3667 675 4342 6 76 20 96 22 1272 244 1516 38 3337 590 3927 7 150 36 186 23 1348 252 1600 39 3434 596 4030 8 92 24 116 24 716 132 848 40 2056 344 2400 9 256 60 316 25 1790 348 2138 41 4227 699 4926

10 258 58 316 26 1775 334 2109 42 4189 717 4906 11 380 85 465 27 1969 365 2334 43 4451 761 5212 12 260 56 316 28 1495 272 1767 44 3461 582 4043 13 572 123 695 29 2317 426 2743 45 4927 842 5769 14 535 113 648 30 2063 366 2429 46 4288 716 5004 15 600 120 720 31 1980 330 2310 47 4074 626 4700 16 276 60 336 32 732 136 868 48 1796 288 2084 17 848 180 1028 33 2561 485 3046 49 5066 850 5916 18 850 171 1021 34 2616 476 3092

Tabla 33 Costo de la operación suma realizada mediante la simplificación directa de su tabla de verdad, según minitérminos. Se indica el número de transistores NMOS para realizar las compuertas and, las or y

el total.

Page 121: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

109

La minimización de la operación suma se realizó mediante el método de Quine-McCluskey con minitérminos mediante el programa Espresso, tomando ventaja de la simplificación con multifunciones. En la “Tabla 33” se muestra el costo para módulos comprendidos entre 3 y 49. El costo se mide según el número de transistores MOS de canal N necesarios para construir el circuito, si se emplea la técnica CMOS estática, el número de transistores será el doble. En la “Figura 53” se muestra el costo total en función del módulo.

0 10 20 30 40 50

0

1000

2000

3000

4000

5000

6000

Costo

Módulo

Figura 53 Costo de la función suma, según el número de transistores NMOS necesarios.

Como se puede observar la complejidad crece de manera exponencial, haciendo intratable el problema mediante esta técnica. Por lo tanto para la síntesis mediante lógica programable se realizó el estudio para 3 ≤ m ≤ 19.

Para la síntesis de este circuito se empleó, a diferencia de la mayoría de los casos, el lenguaje AHDL (Altera Hardware Description Language) además de VHDL. Esta elección se tomó por la facilidad con que se pueden ingresar tablas de verdad en la descripción circuital de un sistema. Si bien se pierde generalidad, pues AHDL no es portable, se decidió en este caso esta estrategia puesto que este tipo de sumador será útil sólo para módulos pequeños, es decir un pequeño conjunto dentro del estudio total.

La notación empleada para esta arquitectura es S_TV_TP y S_TV_TB según se

trate de su implementación mediante sumas de productos o tablas de búsqueda. Los resultados se muestran en la “Tabla 34”, tanto para descripción VHDL como AHDL.

Se puede ver que la implementación directa de la suma en RNS puede ser útil, desde el

punto de vista del costo en hardware para realizarlo, para módulos pequeños, por ejemplo menores que 17.

Estos resultados se pueden visualizar mejor de manera gráfica. En la “Figura 54” se muestra la variación de la frecuencia de operación en función del módulo, en tanto que, en la “Figura 55” la complejidad del hardware requerido, para los circuitos descriptos mediante VHDL. En las “Figura 56” y la “Figura 57” se ilustra la misma información cuando se emplea el lenguaje AHDL.

Page 122: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

110

VHDL AHDL

EPM7128SLC84-6 S_TV_TP

EPF10K20RC240-3 S_TV_TB

EPM7128SLC84-6 S_TV_TP

EPF10K20RC240-3 S_TV_TB Módulo

Período ( nseg )

Frec. ( Mhzs)

LC Período ( nseg )

Frec. ( Mhzs)

LC Período ( nseg )

Frec. ( Mhzs)

LC Período ( nseg )

Frec. ( Mhzs)

LC

3 6,8 147,05 6 8,0 125,00 6 6,8 147,05 6 8,00 125,00 6 4 6,8 147,05 6 8,0 125,00 6 6,7 149,25 6 8,00 125,00 6 5 10,5 95,23 9 11,2 89,28 19 10,5 95,23 9 19,20 52,08 28 6 12,2 81,96 10 8,0 125,00 12 10,5 95,23 9 15,20 65,78 28 7 12,2 81,96 14 14,9 67,11 36 12,2 81,96 14 21,40 46,72 50 8 10,5 95,23 9 8,0 125,00 11 10,5 95,23 9 16,10 62,11 26 9 12,3 81,30 22 18,6 53,76 58 12,3 81,30 22 30,40 32,89 93

10 12,3 81,30 20 21,3 46,94 57 12,3 81,30 21 24,70 40,48 88 11 12,3 81,30 25 24,3 41,15 85 12,3 81,30 27 35,50 28,16 149 12 12,2 81,96 20 8,0 125,00 17 12,3 81,30 20 23,60 42,37 71 13 12,4 80,64 33 23,2 43,10 102 12,4 80,64 33 40,30 24,81 197 14 12,3 81,30 29 24,1 41,49 80 12,3 81,30 30 36,70 27,24 142 15 12,4 80,64 32 20,7 48,30 97 12,3 81,30 27 43,50 22,98 209 16 12,2 81,96 14 11,4 87,71 17 12,2 81,96 14 28,20 35,46 97 17 12,6 79,36 44 26,2 38,16 159 12,5 80,00 49 42,50 23,52 257 18 12,5 80,00 40 25,6 39,06 117 12,5 80,00 45 39,90 25,06 258 19 12,6 79,36 49 31,4 31,84 182 12,5 80,00 57 47,70 20,96 385

Tabla 34 Período, frecuencia y número de celdas lógicas en función del módulo para la adición mediante síntesis por tabla de verdad. Sintetizado mediante VHDL y AHDL.

Como puede apreciarse en casi todos los casos la frecuencia de operación es mayor

para la síntesis mediante sumas de términos producto, aún tratándose de una FPGA grado –6 para TP y de una grado –3 para TB. Más aún, la complejidad en también menor en el caso de la serie MAX que en el de la FLEX. Este comportamiento era previsible, teniendo en cuenta que cuando se emplean tablas de búsqueda para la síntesis lógica, esta se realiza, en el caso de la familia FLEX, a partir de pequeñas tablas de búsqueda de cuatro entradas. Por lo que a medida que la complejidad aumenta, es decir mayor número de variables y de funciones, el compilador deberá realizar el circuito mediante estrategias de simplificación multinivel, no tan eficientes como la de dos niveles y, además, adaptadas a la arquitectura de la FPGA. En tanto que, en el caso de sumas de productos, cada macrocelda, además de tener un gran fanin, puede tomar ventaja de la simplificación lógica, por lo que no necesita implementar todos los minitérminos. Esto determina un menor número de celdas lógicas para realizar los circuitos, con lo cual, además, habrá menos celdas conectadas en cascada, se reducen los tiempos de propagación y por lo tanto aumenta la frecuencia de operación.

Como se explicó, también se realizó la síntesis mediante AHDL. Sorprendentemente los resultados fueron peores que cuando se los describe en VHDL previa simplificación de la tabla de verdad por minitérminos empleando el programa Espresso. Esta diferencia es más notoria cuando se emplean FPGAs que emplean tablas de búsqueda como elementos de síntesis, ver “Tabla 34”.

Page 123: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

111

0 2 4 6 8 10 12 14 16 18 20

20

30

40

50

60

70

80

90

100

110

120

130

140

150 Términos producto

Tablas de búsqueda

Síntesis VHDLF

recuencia

[M

Hz]

Módulo

Figura 54 Frecuencia de trabajo de la operación suma, sintetizada mediante tablas de verdad, en función del módulo. En VHDL.

0 2 4 6 8 10 12 14 16 18 20

0

50

100

150

200

250

300

350

400

Términos producto

Tablas de búsqueda

Síntesis VHDL

Celd

as

Módulo

Figura 55 Número de celdas para realizar la operación de suma, mediante tablas de verdad, en función del módulo. Síntesis en VHDL.

Page 124: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

112

0 2 4 6 8 10 12 14 16 18 20

0

20

40

60

80

100

120

140

160 Términos producto

Tablas de búsqueda

Síntesis AHDL

Fre

cuencia

Módulo

Figura 56 Frecuencia de trabajo de la operación suma, sintetizada mediante tablas de verdad, en función del módulo. Empleando el lenguaje AHDL.31

0 2 4 6 8 10 12 14 16 18 20

0

50

100

150

200

250

300

350

400

Términos producto

Tablas de búsqueda

Síntesis AHDL

Celd

as

Módulo

Figura 57 Número de celdas para realizar la operación de suma, mediante tablas de verdad, en función del módulo. Empleando el lenguaje AHDL.

31 Los puntos en que la frecuencia es de 0 Hhz indican que el circuito no se pudo sintetizar en una única FPGA.

Page 125: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

113

Síntesis mediante sumadores binarios

La suma en módulo de dos enteros a y b se puede descomponer en dos casos:

≥+−+

<++=+

mbasimba

mbasibamba

,

,

en el primero el resultado no excede el valor de m - 1 por lo que no se debe realizar ninguna corrección, en el segundo, para obtener en valor correcto, se le debe restar el módulo con el cual se está trabajando.

Para la adición en RNS se pueden emplear sumadores binarios [BAY87] [DUG92], la complejidad del circuito resultante depende del módulo con que sé este trabajando. Se pueden presentar las siguientes variantes: Primer caso: m = 2n

La adición en módulo m = 2n de dos residuos es igual a la suma binaria convencional,

en donde el bit de acarreo se ignora, puesto que 02

2 =nn . O visto de otra manera, los

resultados mayores que m – 1 se deberán corregir restándole m que es precisamente el acarreo. Segundo caso: m = 2n - 1

En este caso se suman los residuos y, de haber acarreo, se lo suma al resultado anterior. En efecto, si el resultado de la suma es:

1201231,...−− n

aaaaac n

con c el bit de acarreo, an-1 el bit más significativo del resultado y a0 el menos significativo, es equivalente a escribirlo como:

1201231,...2−−+

naaaaan

n

o

12120123112,...2

−−−−+

nnn

aaaaann

con lo que finalmente:

1201231 1,...−− +

naaaaan

Tercer caso: m < 2n - 1

Page 126: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

114

La suma directa de dos residuos presentará n2

2 - m2, como se vio en “Suma en RNS

mediante tablas de verdad”, combinaciones incorrectas, por lo que al resultado se le deberá restar m, o lo que es igual, sumarle su complemento al módulo (2n – m) por ser un anillo, ver “Representación geométrica” en “Diferencias entre la aritmética en módulo y la aritmética ”. Este caso se puede resolver mediante dos sumadores binarios, el primero, SumadorA, calcula a + b en tanto que el segundo, SumadorB, a + b – m. El problema reside en saber cual de los dos da la suma correcta y presentar esta como resultado. En la “Tabla 35” [BAY87] [DUG92] se muestran todos los casos que se pueden presentar:

Entrada SumadorA SumadorB Resultado correcto

0 ≤ a + b < m [ 0...m - 1 ] AcarreoA = 0

[ 0...m - 1 ] + 2n - m = [ (2n - m )...( 2n - 1) ]

AcarreoB = 0

SumadorA

m ≤ a + b ≤ 2n - 1 [ m...( 2n - 1) ] AcarreoA = 0

[ m...( 2n - 1) ] + 2n - m = [ 2n ...( 2n + 1 - ( m + 1 ) ]

= [ 0 ...( 2n - ( m + 1 ) ] AcarreoB = 1

SumadorB

2n ≤ a + b ≤ 2 m - 2 [ 2n ... 2 m - 2 ] = [ 0 ... 2 m - 2 - 2n ]

AcarreoA = 1

[ 0 ... 2 m - 2 - 2n ] + 2n - m = [ 2n - m ... ( m - 2 ) ]

AcarreoB = 0

SumadorB

Tabla 35 Selección del resultado correcto para la suma en módulo mediante sumadores binarios.

Figura 58 Suma en módulo mediante el uso de sumadores binarios.

Observando esta tabla se puede ver que el resultado correcto es el que entrega el

SumadorB siempre que se tenga un acarreo en alguno de los dos sumadores, en tanto que, será

Page 127: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

115

el del SumadorA, cuando no existe acarreo en ninguno de los dos. El problema se puede resolver entonces con dos sumadores binarios, un multiplexor y una compuerta or de dos entradas como se puede ver en la “Figura 58”. Tomando ventaja de las arquitecturas de las FPGAs se puede aumentar la velocidad de funcionamiento con un costo igual o similar segmentando el circuito. En efecto, cada celda, se trate de un elemento lógico o de una macrocelda, posee a su salida un flip flop que en la implementación de la “Figura 58” se desaprovecha, de manera que segmentando según S1 y S2, como se indica en la “Figura 59” se puede mejorar la velocidad de funcionamiento, pagando el costo de un pequeño hardware adicional y de tener un tiempo de latencia inherente a este tipo de estrategia.

La denominación empleada para estos circuitos es S_BIN_TP y S_BIN_TB para el caso sin segmentación y S_BIN_TP_SEG y S_BIN_TB_SEG para el caso en donde se la emplea. BIN significa que en estas arquitecturas se emplean sumadores binarios.

Figura 59 Suma en módulo mediante sumadores binaros, con segmentación.

Otra arquitectura (S_BIN_TP_A y S_BIN_TB_B) para realizar la adición en módulo

mediante sumadores binarios se detalla en [DUG92]. Esta estrategia consiste, ver “Figura 60”, en el empleo de un único sumador binario y realizando la operación en dos ciclos. En primer lugar una señal, llamada Suma controla las entradas de los multiplexores MultA y MultB de manera que, en el primer ciclo, el Sumador realiza la adición de a y b que, con acarreo incluido, queda almacenada en Registro. En el segundo ciclo la señal Suma presenta, mediante los multiplexores, a la entrada del Sumador la constante de corrección y la suma de a con b del paso anterior, y, al mismo tiempo, la compuerta or selecciona el resultado correcto en el multiplexor de salida. En [DUG92], “Figura 61”, se presenta una tercera variante (S_BIN_TP_B y S_BIN_TB_B) para realizar este tipo de sumadores. Como en el caso anterior la operación se

Page 128: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

116

realiza en dos ciclos y con el empleo de un único sumador binario. La señal suma controla las entradas de los multiplexores MultA y MultB. En el primer ciclo, Suma = 1, se computa a + b, operación que junto con el acarreo se almacena en Registro. En el segundo ciclo, Suma = 0, el Comparador indica si la salida de Registro es > m – 1, en cuyo caso entrega un 1, que ingresa negado a la compuerta or, y se realiza la adición de SumaA con la constante de corrección, si así no fuera, en el segundo ciclo se presenta como resultado la suma original. El valor correcto, con o sin corrección, siempre se muestra a la salida del Sumador. Para que el funcionamiento sea correcto la salida del comparador debe estar inicialmente en 0.

Figura 60 Sumador en módulo empleando un único sumador binario.

El circuito comparador se puede realizar de forma sencilla, con compuertas NAND,

NOR e inversores, propagando la señal desde el bit menos significativo [DUG92]. El algoritmo, si el módulo tiene un número impar de bits la salida se debe invertir, es el siguiente, “Figura 62”, la salida de Registro se invierte en las posiciones impares. La compuerta correcta para cada posición, ver “Tabla 36”, queda determinada por dos factores, primero si se trata de una posición par o impar y segundo si m – 1 en esa posición es 0 o 1.

i impar i par

( m – 1 )i = 0 NAND NOR ( m – 1 )i = 1 NOR NAND

Tabla 36 Construcción del circuito comparador.

Page 129: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

117

Figura 61 Sumador en módulo con un único sumador binario y comparador.

Figura 62 Circuito comparador para m = 13.

Adición en RNS mediante tablas de búsqueda

Page 130: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

118

Esta fue una de las primeras técnicas empleadas en la síntesis de circuitos aritméticos en RNS [TAY84] [BAY87]. La arquitectura consiste en el uso de una memoria ROM grabada con la información necesaria para realizar la adición de dos números. Este enfoque es más apropiado para su realización en circuitos integrados full custom que mediante lógica programable, más aún teniendo en cuenta que, como se vio en “Suma en RNS mediante tablas de

verdad”, en la mayoría de los casos no es necesario integrar todas las combinaciones posibles, con el consiguiente ahorro de área en la construcción de la memoria. Un atractivo interesante que presenta la realización de una ROM full custom es que se la puede segmentar, colocando registros en las direcciones, a la salida de los decodificadores, en las entradas de los multiplexores de salida y en las salidas, con el consiguiente incremento en la velocidad de funcionamiento. Sin embargo la construcción de, por ejemplo, un sumador en RNS mediante tablas de búsqueda con FPGA se puede realizar solamente en aquellas FPGAs que tienen bloques dedicados a funcionar como memorias, denominados EABs, en el caso de Altera. Aún en este caso sólo para módulos pequeños, puesto que la memoria necesaria para sintetizar la tabla de verdad crece de manera exponencial con el número de bits a sumar. Tomando el caso de la EPF10K20RC240-3 se tienen 6 EABs, cada uno de los cuales tiene 2.048 bits de capacidad, y se pueden configurar de alguna de las siguientes maneras, ver “Figura 63”,: 256x8, 512x4, 1.024x2 o 2048x1 bits. A partir de estas configuraciones básicas se pueden construir memorias con un mayor número de palabras, con más bits en cada dato o ambas.

Con esta FPGA en particular se pueden sintetizar sumadores con módulos comprendidos entre 3 y 32. En la “Tabla 37” se muestran los módulos con que se puede trabajar en una sola EPF10K20RC240-3, indicando para cada caso el número de líneas para el bus de direcciones, el de datos y el número de EABs necesarios. En todos los casos la frecuencia de funcionamiento es de 93,45 Mhz.

Figura 63 Distintas configuraciones de un EAB para la FLEX EPF10K20RC240-3.

m Bits de

direcciones Bits de datos

EABs

3 4 2 1 [ 4... 8 ] 6 3 1 [ 9... 16 ] 8 4 1 [ 17... 32 ] 10 5 3

Tabla 37 Módulos para los cuales se pueden sintetizar los circuitos sumadores por el método de tablas de búsqueda en una EPF10K20RC240-3.

Page 131: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

119

Técnica híbrida

En [BAY87] [GAR98b] se describe una arquitectura que utiliza solo un sumador binario pero que, a diferencia de los sumadores de la “Figura 60” y la “Figura 61”, realiza la operación en un único ciclo de reloj. El diagrama de este circuito se puede ver en la “Figura

64”. Se emplea un sumador binario que entrega la suma de los n bits, acarreo incluido, y una memoria ROM de n + 1 líneas de direcciones y n de datos para corregir el resultado. La velocidad se puede mejorar segmentando en S132 tomando, además, ventaja de la posibilidad de funcionamiento sincrónico de los EABs en la familia FLEX. Este método se implementó sólo en la familia FLEX pues ésta es la que presenta bloques de memoria. La nomenclatura para estos sumadores es S_HIB_TB y S_HIB_TB_SEG para los casos sin y con segmentación.

En la “Tabla 38” se muestra el número de EABs necesarios para la construcción de los circuitos sumadores en módulo. Como se puede apreciar en una sola EPF10K20RC240-3 se pueden sintetizar circuitos sumadores con módulos comprendidos entre 3 y 256.

Figura 64 Sumador híbrido

m Bits de

direcciones Bits de datos

EABs

3 3 2 1 [ 4... 8 ] 4 3 1 [ 9... 16 ] 5 4 1 [ 17... 32 ] 6 5 1 [ 33... 64 ] 7 6 1 [ 65... 128 ] 8 7 1 [ 129... 256 ] 9 8 2

Tabla 38 Número de EABs necesarios para la construcción de sumadores híbridos.

32 La segmentación en S2 no es necesaria puesto que, como se aclaró oportunamente, las salidas y entradas de todos los circuitos simulados están registradas.

Page 132: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

120

Arquitectura propuesta El sumador híbrido tiene la desventaja de que se puede implementar sólo en aquellas FPGAs que tienen bloques dedicados para funcionar como elementos de memoria. Se propone realizar la etapa de corrección, en lugar de con una tabla de búsqueda, con los elementos combinacionales que resultan de sintetizar su tabla de verdad, ver “Figura 65”. La ventaja, con respecto al sumador construido directamente mediante su tabla de verdad, es que se necesitan menos variables que en aquel. En efecto, si para representar los sumandos se necesitan n bits la tabla de verdad del circuito de corrección tendrá n + 1 variables y n funciones. Además esta arquitectura también se puede segmentar. Para poder sintetizar los circuitos según esta arquitectura se debe, para cada módulo, simplificar la tabla de verdad del circuito de corrección, operación que se realizó mediante el programa Espresso, a continuación las expresiones booleanas correspondientes se deben describir en VHDL según la sintaxis de este lenguaje.

La notación empleada es S_HIB_PRO_TB y S_HIB_PRO_TP para el caso en donde no se emplea segmentación y S_HIB_PRO_ TB_SEG y S_HIB_PRO_TP_SEG cuando si se utiliza esta técnica.

Figura 65 Arquitectura propuesta para el circuito sumador.

Sumadores, estudio comparativo Se realizó un estudio comparativo de las arquitecturas de los sumadores en aritmética de residuos para módulos 3 ≤ m ≤ 256 [GAO01] [GAO02]. En todos los casos, salvo en aquellos que requieren elementos de memoria, se simularon tanto para la familia MAX como para la FLEX, los dispositivos empleados fueron el EPM7160SLC84-6 para sumas de términos producto y el EPF10K20RC240-3 para tablas de búsqueda. La descripción de las

Page 133: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

121

distintas técnicas para los sumadores se realizó en VHDL y se simularon mediante el programa Max + Plus II 9.1. No se realizó la síntesis de los circuitos S_BIN_TP_A, S_BIN_TB_A, S_BIN_TP_B y S_BIN_TB_B, por tres razones. En primer lugar, si bien utilizan un único sumador binario, se requieren tres multiplexores en los tipos A y dos en los B, circuitos que emplean muchos recursos en lógica programable. En segundo lugar, tal como se los presenta, no se les puede aplicar la técnica de segmentación para acelerar el throughput, para lograrlo se debería incrementar el hardware necesario. Finalmente, en estos circuitos, para obtener el resultado final se requiere de dos ciclos. En todos los casos se registran las entradas y salidas con el objeto de poder determinar su frecuencia de funcionamiento máxima. Por ello el número de celdas requeridas en cada caso será en realidad algo menor. Con los datos resultantes se graficaron para cada caso frecuencia máxima de trabajo y el número de celdas requeridas en función del módulo, ver “Figura 66” a la “Figura 85”.

Para poder realizar un estudio comparativo entre las distintas arquitecturas a cada

curva se la ajustó por el método de mínimos cuadrados según la función que mejor la representa. Ver “Figura 86” a la “Figura 89”.

En la “Figura 86” se muestra la frecuencia de operación para las distintas técnicas de adición sintetizadas mediante sumas de productos, familia MAX. Como se puede apreciar, tanto para el caso común como para el segmentado, en el método propuesto la frecuencia de funcionamiento es superior al resto de los circuitos descriptos en la bibliografía. Más aún, “Figura 87”, el número de celdas necesarias es menor. Para el caso de síntesis mediante tablas de búsqueda, familia FLEX, el mejor comportamiento, “Figura 88”, lo tiene la arquitectura realizada mediante sumadores binarios y multiplexor. No sólo es la mejor, además, para los módulos señalados, su frecuencia de funcionamiento se mantiene constante, sin embargo es la que presenta mayor costo en cuanto a hardware, ver “Figura 89”. Le sigue el método propuesto en este trabajo, con segmentación. Finalmente se debe resaltar que el sumador híbrido es el que menos celdas lógicas emplea, pero aquí no están contabilizados los bloques de memoria EABs.

Sumador Frecuencia promedio

Número de celdas promedio

S_BIN_TP 33,67 37,48 S_BIN_TB 66,62 30,15 S_BIN_TP_SEG 61,95 49,18 S_BIN_TB_SEG 125,00 44,50 S_HIB_TB 46,00 22,18 S_HIB_TB_SEG 64,41 22,17 S_HIB_PRO_TP 42,56 32,00 S_HIB_PRO_TB 58,97 41,19 S_HIB_PRO_TP_SEG 63,85 31,72 S_HIB_PRO_TB_SEG 78,62 41,87

Tabla 39 Estudio comparativo promedio para los distintos sumadores.

Page 134: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

122

En la “Tabla 39” se presenta el comportamiento promedio de cada circuito sumador, tanto en su respuesta en frecuencia como en el hardware necesario para construirlo. Los resultados comparativos se muestran de la “Tabla 40” a la “Tabla 43”.

Sumador Frecuencia promedio

Mejora porcentual

S_HIB_PRO_TP_SEG 63,85 90% S_BIN_TP_SEG 61,95 84% S_HIB_PRO_TP 42,56 26% S_BIN_TP 33,67 1

Tabla 40 Mejora en frecuencia promedio para la familia MAX.

Sumador Número de

Celdas promedio Costo en hardware

S_HIB_PRO_TP_SEG 31,72 64% S_HIB_PRO_TP 32,00 65% S_BIN_TP 37,48 76% S_BIN_TP_SEG 49,18 100%

Tabla 41 Costo en hardware promedio para la familia MAX.

Sumador Frecuencia promedio

Mejora porcentual

S_BIN_TB_SEG 125,00 172% S_HIB_PRO_TB_SEG 78,62 70% S_BIN_TB 66,62 45% S_HIB_TB_SEG 64,41 40% S_HIB_PRO_TB 58,97 28% S_HIB_TB 46,00 1

Tabla 42 Mejora en frecuencia promedio para la familia FLEX.

Sumador Número de

Celdas promedio Costo en hardware

S_HIB_TB_SEG 22,17 50% S_HIB_TB 22,18 50% S_BIN_TB 30,15 68% S_HIB_PRO_TB 41,19 93% S_HIB_PRO_TB_SEG 41,87 94% S_BIN_TB_SEG 44,50 100%

Tabla 43 Costo en hardware promedio para la familia FLEX.

Analizando las ventajas promedio, en velocidad o en costo de hardware, de cada tipo de sumador, se puede destacar las siguientes. De los resultados obtenidos para los dispositivos de la familia MAX7000 se puede deducir que la opción propuesta es la mejor todas. Sin embargo, para los dispositivos de la familia FLEX10K, esta elección no es tan directa puesto que la arquitectura que emplea sumadores binarios y segmentación posee la máxima velocidad aunque es la que requiere más recursos.

Page 135: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

123

0 50 100 150 200 250

25

30

35

40

45

50

55

60

65

S_BIN_TP

Fre

cu

encia

[M

Hz]

Módulo

Figura 66 Frecuencia de operación para la suma en módulo, mediante sumadores binarios (S_BIN_TP) realizado mediante suma de productos.

0 50 100 150 200 250

5

10

15

20

25

30

35

40

45

50

S_BIN_TP

Celd

as

Módulo

Figura 67 Número de celdas para la suma en módulo, mediante sumadores binarios (S_BIN_TP) realizado mediante suma de productos.

Page 136: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

124

0 50 100 150 200 250

50

60

70

80

90

100

S_BIN_TB

Fre

cuencia

[M

Hz]

Módulo

Figura 68 Frecuencia de operación para la suma en módulo, mediante sumadores binarios (S_BIN_TB), y realizado mediante tablas de búsqueda.

0 50 100 150 200 250

5

10

15

20

25

30

35

S_BIN_TB

Celd

as

M ódulo

Figura 69 Número de celdas para la suma en módulo, mediante sumadores binarios (S_BIN_TB), y realizado mediante tablas de búsqueda.

Page 137: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

125

0 50 100 150 200 250

55

60

65

70

75

80

85

90

95

100

S_BIN_TP_SEG

Fre

cuencia

[M

Hz]

M ódulo

Figura 70 Frecuencia de operación para la suma en módulo, mediante sumadores binarios con segmentación (S_BIN_TP_SEG), y realizado mediante términos producto.

0 50 100 150 200 250

10

20

30

40

50

60

S_BIN_TP_SEG

Celd

as

M ódulo

Figura 71 Número de celdas para la suma en módulo, mediante sumadores binarios con segmentación (S_BIN_TP_SEG), y realizado mediante términos producto.

Page 138: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

126

0 50 100 150 200 250

115

120

125

130

135 S_BIN_TB_SEG

Fre

cuencia

[M

Hz]

M ódulo

Figura 72 Frecuencia de operación para la suma en módulo, mediante sumadores binarios con segmentación (S_BIN_TB_SEG), y realizado mediante tablas de búsqueda.

0 50 100 150 200 250

10

15

20

25

30

35

40

45

50

55

S_BIN_TB_SEG

Celd

as

M ódulo

Figura 73 Número de celdas para la suma en módulo, mediante sumadores binarios con segmentación (S_BIN_TB_SEG), y realizado mediante tablas de búsqueda.

Page 139: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

127

0 50 100 150 200 250

44

46

48

50

52

54

S_H IB_TBF

recuencia

[M

Hz]

M ódu lo

Figura 74 Frecuencia de operación para la suma en módulo, mediante sumadores híbridos (S_HIB_TB), y realizado mediante tablas de búsqueda.

0 50 100 150 200 250

6

8

10

12

14

16

18

20

22

24

26

S_H IB_TB

Celd

as

M ódu lo

Figura 75 Número de celdas para la suma en módulo, mediante sumadores híbridos (S_HIB_TB), y realizado mediante tablas de búsqueda.

Page 140: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

128

0 50 100 150 200 250

44

46

48

50

52

54

S_H IB_TB_SEG

Fre

cuencia

[M

Hz]

M ódulo

Figura 76 Frecuencia de operación para la suma en módulo, mediante sumadores híbridos con segmentación (S_HIB_TB_SEG), y realizado mediante tablas de búsqueda.

0 50 100 150 200 250

6

8

10

12

14

16

18

20

22

24

26

S_H IB_TB_SEG

Celd

as

M ódulo

Figura 77 Número de celdas para la suma en módulo, mediante sumadores híbridos segmentados (S_HIB_TB_SEG), y realizado mediante tablas de búsqueda.

Page 141: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

129

0 50 100 150 200 250

20

40

60

80

100

120

140

160

S_HIB_PRO_TP

Fre

cue

ncia

[M

Hz]

Módulo

Figura 78 Frecuencia de operación para la suma en módulo, mediante el sumador híbrido propuesto (S_HIB_PRO_TP), y realizado mediante términos producto.

0 50 100 150 200 250

0

10

20

30

40

50

S_HIB_PRO _TP

Celd

as

Módulo

Figura 79 Número de celdas para la suma en módulo, mediante el sumador híbrido propuesto (S_HIB_PRO_TP), y realizado mediante términos producto.

Page 142: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

130

0 50 100 150 200 250

40

60

80

100

120

140

S_HIB_PRO _TB

Fre

cuencia

[M

Hz]

M ódulo

Figura 80 Frecuencia de operación para la suma en módulo, mediante el sumador híbrido propuesto (S_HIB_PRO_TB), y realizado mediante tablas de búsqueda.

0 50 100 150 200 250

0

10

20

30

40

50

60

70

80

S_HIB_PRO _TB

Celd

as

Módulo

Figura 81 Número de celdas para la suma en módulo, mediante el sumador híbrido propuesto (S_HIB_PRO_TB), y realizado mediante tablas de búsqueda.

Page 143: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

131

0 50 100 150 200 250

60

80

100

120

140

160

S_HIB_PRO _TP_SEGF

recuencia

[M

Hz]

M ódu lo

Figura 82 Frecuencia de operación para la suma en módulo, mediante el sumador híbrido propuesto con segmentación (S_HIB_PRO_TP_SEG), y realizado mediante términos producto.

0 50 100 150 200 250

5

10

15

20

25

30

35

40

45

S_HIB_PRO _TP_SEG

Celd

as

Módulo

Figura 83 Número de celdas para la suma en módulo, mediante el sumador híbrido propuesto con segmentación (S_HIB_PRO_TP_SEG), y realizado mediante términos producto.

Page 144: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

132

0 50 100 150 200 250

20

40

60

80

100

120

140

S_HIB_PRO _TB_SEG

Fre

cuencia

[M

Hz]

M ódulo

Figura 84 Frecuencia de operación para la suma en módulo, mediante el sumador híbrido propuesto con segmentación (S_HIB_PRO_TB_SEG), y realizado mediante tablas de búsqueda.

0 50 100 150 200 250

0

10

20

30

40

50

60

70

80

S_HIB_PRO _TB_SEG

Celd

as

M ódulo

Figura 85 Número de celdas para la suma en módulo, mediante el sumador híbrido propuesto con segmentación (S_HIB_PRO_TB_SEG), y realizado mediante tablas de búsqueda.

Page 145: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

133

0 50 100 150 200 250

30

40

50

60

70

80

90

S_HIB_PRO_TP_SEG

S_BIN_TP_SEG

S_HIB_PRO_TP

S_BIN_TP

Fre

cuencia

[M

Hz]

Módulo

Figura 86 Frecuencia de funcionamiento para los distintos circuitos sumadores en función del módulo. Síntesis mediante términos producto.

0 50 100 150 200 250

10

15

20

25

30

35

40

45

50

55

S_HIB_PRO_TP

S_BIN_TP

S_BIN_TP_SEG

S_HIB_PRO_TP_SEG

Celd

as

Módulo

Figura 87 Número de celdas requeridas para los distintos circuitos sumadores en función del módulo. Síntesis mediante términos producto.

Page 146: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

134

0 50 100 150 200 250

40

60

80

100

120

S_HIB_TB_SEG

S_HIB_PRO_TB

S_HIB_PRO_TB_SEG

S_HIB_TB

S_BIN_TB_SEG

S_BIN_TB

Fre

cuencia

[M

Hz]

Módulo

Figura 88 Frecuencia de funcionamiento para los distintos circuitos sumadores en función del módulo. Síntesis mediante tablas de búsqueda.

0 50 100 150 200 250

5

10

15

20

25

30

35

40

45

50

S_HIB_PRO_TB

S_HIB_PRO_TB_SEG

S_HIB_TB_SEG

S_HIB_TB

S_BIN_TB_SEG

S_BIN_TB

Celd

as

Módulo

Figura 89 Número de celdas requeridas para los distintos circuitos sumadores en función del módulo. Síntesis mediante tablas de búsqueda.

Page 147: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

135

RESTA EN RNS

La resta en el RNS se puede realizar mediante cualquiera de los sumadores descriptos en “SUMA EN RNS” si esta se realiza en complemento al módulo de la siguiente manera:

( ) ( ) ( )mmmmmmm

bmambmambmammbaba −+=−−+=−−+=+−−=−

Es decir que cualquiera de los sumadores vistos se puede convertir en un sumador-

restador agregándole una etapa que calcule el complemento a m del sustraendo. Cuando se desea sumar, el segundo número se opera sin modificaciones.

Por otra parte cualquiera de las estrategias vistas en “SUMA EN RNS” se puede emplear

para construir circuitos restadores. Por lo que es de esperar que la complejidad y frecuencia de funcionamiento de estos circuitos sea igual o muy similar a sus contrapartes, razón por la cual no se realizaron las simulaciones correspondientes.

MULTIPLICACIÓN EN RNS

Multiplicación mediante tablas de verdad De la misma forma que se trabajó en “Suma en RNS mediante tablas de verdad” se pueden realizar los circuitos multiplicadores mediante síntesis directa de su tabla de verdad con un esquema igual al de la “Figura 52”. Las consideraciones a tener en cuenta son las mismas que se explicaron en ese caso, por ejemplo la aparición de un gran número de términos redundantes que ayudan en la simplificación de las funciones.

Es decir que para evaluar

bmap ⊗=

se debe construir una tabla de verdad con 2 n variables y n funciones. Igual que en el caso de

la suma de las n2

2 combinaciones posibles sólo interesan m2 de ellas, por lo que el número total de términos redundantes es:

n22 - m2

Aquí aparece una ventaja adicional con respecto al producto en el sistema binario natural. Cuando se trabaja en binario la suma de dos números de n bits da como resultado máximo un número de n + 1 bits, en tanto que para la multiplicación de los mismos números el resultado puede ser de 2 n bits. De manera que si se intenta realizar un circuito multiplicador mediante su síntesis directa por tabla de verdad el hardware requerido será mucho mayor que para la operación suma. Este no es el caso cuando se trabaja con el RNS puesto que tanto la suma como el producto de dos enteros de n bits dan por resultado un número de n bits, ver “Tabla 44”.

Como en el caso de la suma en RNS la simplificación de la operación producto se realizó mediante el método de Quine-McCluskey con minitérminos mediante el programa

Page 148: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

136

Espresso, tomando ventaja de la simplificación por multifunciones. En la “Tabla 45”se muestra el costo, en número de transistores NMOS, para la operación de multiplicación para módulos comprendidos entre 3 y 49. En la “Figura 90” se muestra el costo total en función del módulo.

x y m x y m x y m x y m 000 000 000 010 000 000 100 000 000 110 000 *** 000 001 000 010 001 010 100 001 100 110 001 *** 000 010 000 010 010 100 100 010 011 110 010 *** 000 011 000 010 011 001 100 011 010 110 011 *** 000 100 000 010 100 011 100 100 001 110 100 *** 000 101 *** 010 101 *** 100 101 *** 110 101 *** 000 110 *** 010 110 *** 100 110 *** 110 110 *** 000 111 *** 010 111 *** 100 111 *** 110 111 *** 001 000 000 011 000 000 101 000 *** 111 000 *** 001 001 001 011 001 011 101 001 *** 111 001 *** 001 010 010 011 010 001 101 010 *** 111 010 *** 001 011 011 011 011 100 101 011 *** 111 011 *** 001 100 100 011 100 010 101 100 *** 111 100 *** 001 101 *** 011 101 *** 101 101 *** 111 101 *** 001 110 *** 011 110 *** 101 110 *** 111 110 *** 001 111 *** 011 111 *** 101 111 *** 111 111 ***

Tabla 44 Tabla de verdad para la multiplicación en módulo 5.

m ANDs ORs Total m ANDs ORs Total m ANDs Ors Total

3 8 4 12 16 222 44 266 29 3851 740 4591 4 14 5 19 17 1080 234 1314 30 3206 520 3726 5 46 15 61 18 1127 210 1337 31 4273 907 5180 6 56 15 71 19 1371 295 1666 32 994 147 1141 7 72 18 90 20 1138 180 1318 33 4918 956 5874 8 50 14 64 21 1683 388 2071 34 5161 845 6006 9 219 60 279 22 1802 318 2120 35 5856 1214 7070

10 237 53 290 23 2097 457 2554 36 5093 747 5840 11 364 95 459 24 1210 171 1381 37 7274 1423 8697 12 273 51 324 25 2813 569 3382 38 6702 1076 7778 13 516 118 634 26 2617 432 3049 39 7558 1531 9089 14 453 88 541 27 3167 656 3823 40 5074 633 5707 15 583 131 714 28 2345 346 2691

Tabla 45 Costo de la operación multiplicación realizada mediante la simplificación directa de su tabla de verdad, según minitérminos. Se indica el número de transistores NMOS para realizar las compuertas and,

las or y el total.

Al igual que en la suma la complejidad crece de manera exponencial. Más aún, ver

“Figura 91”, el número de transistores requeridos para realizar el producto crece a mayor velocidad que para el caso de la adición. Esto se debe a que en el caso del producto los minitérminos aparecen, en un diagrama de Veitch-Karnaugh, más separados que en el caso de la suma. Por esta razón se realizó el estudio para 3 ≤ m ≤ 18 en la construcción de circuitos multiplicadores mediante lógica programable.

Page 149: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

137

Estos circuitos, como en el caso de la suma, también se implementaron en AHDL y en VHDL.

0 5 10 15 20 25 30 35 40

0

2000

4000

6000

8000

10000

Costo

Módulo

Figura 90 Costo de la función multiplicación, según el número de transistores NMOS necesarios.

0 5 10 15 20 25 30 35 40 45

0

2000

4000

6000

8000

10000

Multiplicador

Sumador

Costo

Módulo

Figura 91 Comparación, medida en número de transistores NMOS, de costos entre el sumador y el multiplicador sintetizado mediante tablas de verdad.

Page 150: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

138

La notación empleada para esta arquitectura es M_TV_TP y M_TV_TB según se trate de su implementación mediante sumas de productos o por tablas de búsqueda. Los resultados se muestran en la “Tabla 36”.

VHDL AHDL EPM7128SLC84-6

M_TV_TP EPF10K20RC240-3

M_TV_TB EPM7128SLC84-6

M_TV_TP EPF10K20RC240-3

M_TV_TB Módulo

Período ( nseg )

Frec. ( Mhzs)

LC Período ( nseg )

Frec. ( Mhzs)

LC Período ( nseg )

Frec. ( Mhzs)

LC Período ( nseg )

Frec. ( Mhzs)

LC

3 6,8 147,05 6 8,0 125,00 6 6,8 147,05 6 8,0 125,00 6 4 6,8 147,05 6 8,0 125,00 6 6,8 147,05 6 8,0 125,00 6 5 10,5 95,23 9 10,9 91,74 17 10,5 95,23 9 15,5 64,51 24 6 10,5 95,23 9 11,5 86,95 18 10,5 95,23 9 16,6 60,24 31 7 12,2 81,96 10 10,5 95,23 19 12,2 81,96 10 20,5 48,78 49 8 10,5 95,23 9 12,1 82,64 15 10,5 95,23 9 22,5 44,44 41 9 12,3 81,30 20 19,7 50,76 52 12,3 81,30 21 27,0 37,03 89

10 12,3 81,30 20 21,9 45,66 60 12,3 81,30 21 29,7 33,67 110 11 12,3 81,30 27 23,2 43,10 96 12,3 81,30 27 32,8 30,48 138 12 12,3 81,30 19 22,7 44,05 50 12,3 81,30 21 34,2 29,23 144 13 12,3 81,30 31 29,7 33,67 138 12,3 81,30 33 38,5 25,97 209 14 12,3 81,30 27 25,5 39,21 113 12,3 81,30 27 34,2 29,23 190 15 12,5 80,00 30 29,5 33,89 152 12,4 80,64 40 35,4 28,24 203 16 12,2 81,96 17 20,4 49,01 41 12,2 81,96 17 37,2 26,88 131 17 12,9 77,51 51 36,4 27,47 244 12,5 80,00 55 49,7 20,12 379 18 12,7 78,74 47 32,1 31,15 240 12,5 80,00 54 51,0 19,60 377

Tabla 46 Período, frecuencia y número de celdas lógicas en función del módulo para la multiplicación mediante síntesis por tabla de verdad. Sintetizado mediante VHDL y AHDL.

Se puede ver que la implementación directa de la multiplicación en RNS puede ser

útil, desde el punto de vista del costo en hardware para realizarlo, para módulos pequeños, por ejemplo menores que 17.

Estos resultados se pueden visualizar mejor de manera gráfica. En la “Figura 92” se muestra la variación de la frecuencia de operación en función del módulo, en tanto que, en la “Figura 93”, la complejidad del hardware requerido. Empleando lenguaje VHDL. Al igual que en la suma en todos los casos la frecuencia de operación es mayor para la síntesis mediante sumas de términos producto, aún tratándose de una grade –6 para TP y de una grade –3 para TB. Más aún, la complejidad es también menor en el caso de la serie MAX que en el de la FLEX. La explicación para este comportamiento es la misma que la dada en el apartado “Suma en RNS mediante tablas de verdad”. Lo mismo ocurre, ver la “Figura 94” y la “Figura 95”, cuando se emplea el lenguaje AHDL como herramienta de descripción circuital. Nuevamente, como en el caso de suma en RNS, se obtienen mejores resultados cuando se emplea el lenguaje VHDL, previa simplificación mediante el programa Espresso, que cuando se utiliza AHDL.

Page 151: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

139

2 4 6 8 10 12 14 16 18 20

20

40

60

80

100

120

140

160 Términos producto

Tablas de búsqueda

Fre

cuencia

[M

Hz]

Módulo

Figura 92 Frecuencia de trabajo de la operación multiplicación, sintetizada mediante tablas de verdad, en función del módulo. En VHDL.

2 4 6 8 10 12 14 16 18 20

0

50

100

150

200

250

Términos producto

Tablas de búsqueda

Celd

as

Módulo

Figura 93 Número de celdas para realizar la operación multiplicación, mediante tablas de verdad, en función del módulo. En VHDL.

Page 152: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

140

2 4 6 8 10 12 14 16 18 20

20

40

60

80

100

120

140

160 Términos producto

Tabla de búsquedaF

recuencia

[M

Hz]

Modulo

Figura 94 Frecuencia de trabajo de la operación multiplicación, sintetizada mediante tablas de verdad, en función del módulo. Síntesis mediante AHDL.

2 4 6 8 10 12 14 16 18 20

0

50

100

150

200

250

300

350

400

Términos producto

Tablas de búsqueda

Celd

as

Módulo

Figura 95 Número de celdas para realizar la operación multiplicación, mediante tablas de verdad, en función del módulo. Síntesis mediante AHDL.

Page 153: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

141

Multiplicación por tablas de búsqueda El esquema de síntesis es idéntico al visto en “Adición en RNS mediante tablas de búsqueda” por lo que valen las mismas consideraciones que en ese caso. En la “Tabla 47” se muestran los módulos con que se puede trabajar en una sola EPF10K20RC240-3, indicando para cada caso el número de líneas para el bus de direcciones, el de datos y el número de EABs necesarios. En todos los casos la frecuencia de funcionamiento es de 93,45 Mhz.

m Bits de

direcciones Bits de datos

EABs

3 4 2 1 [ 4... 8 ] 6 3 1 [ 9... 16 ] 8 4 1 [ 17... 32 ] 10 5 3

Tabla 47 Módulos para los cuales se pueden sintetizar los circuitos multiplicadores por el método de tablas de búsqueda en una EPF10K20RC240-3.

Multiplicador cuadrático Si se desea evitar una multiplicación directa entre los números a y b se puede emplear el siguiente procedimiento [TAY81]:

22

22

−−

+=

bababa

Ecuación 16 Multiplicador cuadrático.

Así el producto es reemplazado por una suma, una resta, una división por dos y dos cuadrados. La etapa que eleva al cuadrado tiene n bits de entrada y n de salida de manera que su implementación, por ejemplo mediante una memoria ROM, requiere menos recursos que la implementación directa del producto.

Si se trabaja en módulo m la “Ecuación 16” se puede escribir como:

( ) ( )mm

ssba −+ −= φφ

Ecuación 17 Multiplicador cuadrático en módulo.

donde φ(s) = | s2 |m con s+ = ( a + b ) / 2 y s- = ( a - b ) / 2. Es importante señalar que sólo se utiliza la parte entera de φ(s) descartándose la parte fraccional. Por lo que la “Ecuación 17” se transforma en:

( ) ( ) mm

ssba −+ −= φφ

Demostración: Sea:

Page 154: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

142

( ) ( ) m

ssz −+ −= φφ

y a, b y k enteros. Se puede definir dos números racionales:

22

kv

ba+

+> y

22

kq

ba+

−>

en donde k puede tomar sólo los valores 0 o 1. Por lo tanto:

( ) ( )

mmmmmm

kqkq

kvkv

babaz

4444

22

22

22

++−++=−

−+

=

mmmmm

kkqkqvkv

44

2222 −++−+=

( ) ( )m

ss −+ −= φφ

por lo tanto se deben sumar o restar a y b elevar al cuadrado, descartar los dos bits menos significativos y tomar módulo. El esquema general del multiplicador cuadrático con segmentación se ilustra en la “Figura 96”. El conjunto Sumador A, Sumador B y MultiplexorA realizan la operación a ⊕m b, los bloques Restador A, Sumador C y MultiplexorB la resta a θm b; los circuitos RestadorB, SumadorD y MultiplexorC la resta en módulo m de los números que ingresan a el. Los bloques que realizan las operaciones:

mm

staRey

Suma22

22

se pueden realizar mediante una tabla de búsqueda o mediante su síntesis de la tabla de verdad. Por lo que se tienen las siguientes variantes: M_CUA_TV_TP, multiplicador cuadrático mediante síntesis de tabla de verdad en la familia MAX, M_CUA_TV_TB, multiplicador cuadrático mediante síntesis de tabla de verdad en la familia FLEX, M_CUA_ROM_TB, multiplicador cuadrático con el empleo de una memoria ROM en la familia FLEX, y M_CUA_TV_TP_SEG M_CUA_TV_TB_SEG M_CUA_ROM_TB_SEG

Page 155: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

143

para el caso en que se emplea segmentación.

Figura 96 Multiplicador cuadrático con circuitos sumadores y restadores en módulo. La síntesis de las etapas que realizan la operación x ↑↑↑↑ 2 en módulo se pueden realizar mediante tablas de verdad o por

tablas de búsqueda.

Page 156: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

144

Figura 97 Multiplicador cuadrático híbrido.

Otra alternativa para construir el multiplicador cuadrático es emplear sumadores híbridos, en lugar de sumadores binarios, ver “Figura 97”. En este caso el bloque que realiza la corrección es el encargado, además, de elevar al cuadrado, dividir por 4 y calcular el módulo del resultado. La nomenclatura es: M_CUA_HIB_TP, multiplicador cuadrático híbrido con síntesis mediante términos producto, M_CUA_HIB_TB, multiplicador cuadrático híbrido con síntesis mediante tablas de búsqueda, Y M_CUA_HIB_TP_SEG M_CUA_HIB_TB_SEG para los mismos circuitos pero con segmentación.

Page 157: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

145

Multiplicador indexado En [TAY81] [TAY84] se explica el circuito empleado para realizar la multiplicación en módulo mediante Campos de Galois, denominado Multiplicador Indexado o Multiplicador por Campos de Galois. La teoría de estos campos se vio en la sección “CAMPOS DE GALOIS”. Así el producto de dos números qj y qk en módulo p se puede realizar como la suma de sus índices en módulo p - 1:

p

ii

pkjpkj

gqq 1−=

en donde los in cumplen con la condición:

p

i

pnngq =

Por lo que la multiplicación de dos números se puede realizar indexando, es decir encontrar sus índices, sumarlos en módulo p – 1 y finalmente realizar la operación inversa a la indexación. El diagrama circuital del multiplicador indexado se ilustra en la “Figura 98”, en donde si se desea aumentar su throughput se puede segmentar en los puntos indicados33. Se puede apreciar que la salida de los bloques de indexación pueden entregar números de n o n – 1 bits. Por ejemplo si m = 17, a y b están comprendidos entre 0 y 16, n = 5, por lo que la salida del indexador será un número entre 0 y 15 con n = 4. Si se emplea la familia FLEX el circuito se puede realizar mediante EABs, para la indexación y desindexación, un sumador en módulo, de cualquiera de los tipos vistos en “SUMA EN RNS”, más un pequeño circuito para detectar si uno o ambos operandos es cero. La frecuencia de funcionamiento y el hardware necesario para construir este circuito se puede determinar de los resultados de las simulaciones realizadas en la sección mencionada. Una alternativa al empleo de memoria ROM como elemento de indexación y desindexación es el realizar esta tarea mediante la síntesis de la tabla de verdad de la conversión deseada. El esquema es el de la “Figura 98”, con los bloques de indexación y desindexación realizados mediante lógica combinacional. Para poner un límite a todas las alternativas posibles se trabajó sólo con el sumador en módulo construido con sumadores binarios. La notación es la siguiente: M_INX_TV_TP, multiplicador indexado empleando tablas de verdad y sintetizado mediante términos producto, M_INX_TV_TB, multiplicador indexado empleando tablas de verdad y sintetizado mediante tablas de búsqueda, y M_INX_TV_TP_SEG, M_INX_TV_TB_SEG, para el caso segmentado.

33 A modo ilustrativo en la figura se emplea un sumador en módulo realizado mediante sumadores binarios, sin embargo el sumador puede ser cualquiera de los tipos vistos.

Page 158: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

146

Figura 98 Multiplicador indexado.

Page 159: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

147

Multiplicadores, estudio comparativo En la “Tabla 48” se muestran la frecuencia de trabajo y el número de celdas promedio para cada tipo de multiplicador. El promedio se realiza sólo sobre los módulos de cuya realización circuital se pueden obtener datos, como se puede ver en las figuras de cada multiplicador. Por ejemplo, en algunos casos no se puede calcular la frecuencia porque el circuito no entra en una única FPGA, pero si el número total de celdas requeridas (con más de una FPGA).

Multiplicador Frecuencia promedio

Número de celdas promedio

M_CUA_TV_TP 13,36 611 M_CUA_TV_TB 19,96 446 M_CUA_ROM_TB 22,69 62,4234 M_CUA_TV_TP_SEG 64,33 198 M_CUA_TV_TB_SEG 41,23 485 M_CUA_ROM_TB_SEG 93,40 57,4435 M_CUA_HIB_TP 19,43 267,35 M_CUA_HIB_TB 23,20 501,58 M_CUA_HIB_TP_SEG 31,16 285,43 M_CUA_HIB_TB_SEG 32,07 496,25 M_INX_TV_TP 28,15 171,7 M_INX_TV_TB 28,48 249,27 M_INX_TV_TP_SEG 69,34 90,8 M_INX_TV_TB_SEG 59,63 262,77

Tabla 48 Estudio comparativo promedio para los distintos multiplicadores.

Multiplicador Frecuencia promedio

Mejora porcentual

M_INX_TV_TP_SEG 69,34 419,01% M_CUA_TV_TP_SEG 64,33 381,51% M_CUA_HIB_TP_SEG 31,16 133,23% M_INX_TV_TP 28,15 111,70% M_CUA_HIB_TP 19,43 45,43% M_CUA_TV_TP 13,36 1

Tabla 49 Mejora en frecuencia promedio para la familia MAX.

Multiplicador Número de

celdas promedio Costo en hardware

M_INX_TV_TP_SEG 90,8 14,86% M_INX_TV_TP 171,7 28,10% M_CUA_TV_TP_SEG 198 32,41% M_CUA_HIB_TP 267,35 43,77% M_CUA_HIB_TP_SEG 285,43 46,71% M_CUA_TV_TP 611 100

Tabla 50 Costo en hardware promedio para la familia MAX. 34 Más 2 EABs. 35 Más 2 EABs.

Page 160: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

148

Multiplicador Frecuencia promedio

Mejora porcentual

M_CUA_ROM_TB_SEG 93,40 367,94% M_INX_TV_TB_SEG 59,63 198,75% M_CUA_TV_TB_SEG 41,23 106,56% M_CUA_HIB_TB_SEG 32,07 60,67% M_INX_TV_TB 28,48 42,68% M_CUA_HIB_TB 23,20 16,23% M_CUA_ROM_TB 22,69 13,68% M_CUA_TV_TB 19,96 1

Tabla 51 Mejora en frecuencia promedio para la familia FLEX.

Multiplicador Número de

celdas promedio Costo en hardware

M_CUA_ROM_TB_SEG 57,44 11,45% M_CUA_ROM_TB 62,42 12,44% M_INX_TV_TB 249,27 49,7% M_INX_TV_TB_SEG 262,77 52,39% M_CUA_TV_TB 446 88,91% M_CUA_TV_TB_SEG 485 96,69% M_CUA_HIB_TB_SEG 496,25 98,94% M_CUA_HIB_TB 501,58 100

Tabla 52 Costo en hardware promedio para la familia FLEX.

Del análisis de la “Tabla 48” a la “Tabla 52” se desprenden las siguientes conclusiones: ♦ Tal como en el caso de los circuitos sumadores el comportamiento de las FPGAs que emplean términos productos como elemento de síntesis digital tienen un comportamiento superior a aquellas realizadas con tablas de búsqueda, aún cuando las primeras son speed grade -6 y las segundas -3. De la “Tabla 48” se desprende que los mismos circuitos realizados con MAX o FLEX tienen aproximadamente el mismo throughput pero que los sintetizados mediante términos producto requieren menos celdas. ♦ Para la familia MAX el mejor comportamiento en velocidad y en costo lo tiene el circuito M_INX_TV_TP_SEG. ♦ Para la familia FLEX la elección se vuelca de manera clara a favor del M_CUA_ROM_TB_SEG cuando se utilizan los EABs y segmentación. Cuando no se emplean elementos de memoria y no se segmenta el mejor comportamiento lo tiene el multiplicador M_INX_TV_TB.

Page 161: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

149

0 50

0

5

10

15

20

25

30 M_CUA_TV_TP

Fre

cuencia

[M

Hz]

Módulo

Figura 99 Frecuencia de operación para el multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante términos producto (M_CUA_TV_TP).

0 50 100 150 200 250

0

500

1000

1500

2000

2500

M_CUA_TV_TP

Celd

as

Módulo

Figura 100 Número de celdas para el multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante términos producto (M_CUA_TV_TP).

Page 162: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

150

0 50 100 150 200 250

0

5

10

15

20

25

30

35

40

45

50

55

M_CUA_TV_TBF

recuencia

[M

Hz]

Módulo

Figura 101 Frecuencia de operación para el multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante tablas de búsqueda (M_CUA_TV_TB).

0 50 100 150 200 250

0

200

400

600

800

1000

M_CUA_TV_TB

Celd

as

Módulo

Figura 102 Número de celdas del multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante tablas de búsqueda (M_CUA_TV_TB).

Page 163: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

151

0 50 100 150 200 250

0

2

4

6

8

10

12

14

16

18

20

22

24

26

28

30

M_CUA_ROM_TBFre

cuencia

[M

Hz]

Modulo

Figura 103 Frecuencia de operación para el multiplicador cuadrático con el empleo de una memoria ROM, sintetizado mediante tablas de búsqueda, (M_CUA_ROM_TB).

0 50 100 150 200 250

0

10

20

30

40

50

60

70

Más 2 EABs

M_CUA_ROM_TB

Celd

as

Módulo

Figura 104 Número de celdas para el multiplicador cuadrático con el empleo de una memoria ROM, sintetizado mediante tablas de búsqueda, (M_CUA_ROM_TB).

Page 164: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

152

0 50

0

20

40

60

80

100

M_CUA_TV_TP_SEG

Fre

cuencia

[M

Hz]

Módulo

Figura 105 Frecuencia de operación para el multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante términos producto y segmentación (M_CUA_TV_TP_SEG).

0 50 100 150 200 250

0

50

100

150

200

250

300

M_CUA_TV_TP_SEG

Celd

as

Módulo

Figura 106 Número de celdas para el multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante términos producto y segmentación (M_CUA_TV_TP_SEG).

Page 165: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

153

0 50 100 150 200 250

0

20

40

60

80

100

120

140

M_CUA_TV_TB_SEG

Fre

cuencia

[M

Hz]

Módulo

Figura 107 Frecuencia de operación para el multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante tablas de búsqueda y segmentación (M_CUA_TV_TB_SEG).

0 50 100 150 200 250

0

200

400

600

800

1000

M_CUA_TV_TB_SEG

Celd

as

Módulo

Figura 108 Número de celdas del multiplicador cuadrático mediante síntesis de la tabla de verdad, realizado mediante tablas de búsqueda y segmentación (M_CUA_TV_TB_SEG).

Page 166: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

154

0 50 100 150 200 250

0

20

40

60

80

100

M_CUA_ROM_TB_SEG

Fre

cuencia

[M

Hz]

Módulo

Figura 109 Frecuencia de operación para el multiplicador cuadrático con el empleo de una memoria ROM, sintetizado mediante tablas de búsqueda y segmentación (M_CUA_ROM_TB_SEG).

0 50 100 150 200 250

0

10

20

30

40

50

60

70

Más 2 EABs

M_CUA_ROM_TB_SEGCeld

as

Módulo

Figura 110 Número de celdas para el multiplicador cuadrático con el empleo de una memoria ROM, sintetizado mediante tablas de búsqueda y segmentación (M_CUA_ROM_TB_SEG).

Page 167: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

155

0 50 100 150

0

10

20

30

40

50

M_CUA_HIB_TP

Fre

cuencia

[M

Hz]

Módulo

Figura 111 Frecuencia de operación para el multiplicador cuadrático híbrido con síntesis mediante términos producto (M_CUA_HIB_TP).

0 50 100 150 200 250

0

200

400

600

800

1000

1200

1400

M_CUA_HIB_TP

Celd

as

Módulo

Figura 112 Número de celdas para el multiplicador cuadrático híbrido con síntesis mediante términos producto (M_CUA_HIB_TP).

Page 168: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

156

0 50 100 150 200 250

0

20

40

60

80

100

M_CUA_HIB_TBF

recuencia

[M

Hz]

Módulo

Figura 113 Frecuencia de operación para el multiplicador cuadrático híbrido con síntesis mediante tablas de búsqueda (M_CUA_HIB_TB).

0 50 100 150 200 250

0

200

400

600

800

1000

1200

M_CUA_HIB_TB

Celd

as

Módulo

Figura 114 Número de celdas para el multiplicador cuadrático híbrido con síntesis mediante tablas de búsqueda (M_CUA_HIB_TB).

Page 169: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

157

0 50 100 150

0

20

40

60

80

100

M_CUA_HIB_TP_SEG

Fre

cuencia

[M

Hz]

Módulo

Figura 115 Frecuencia de operación para el multiplicador cuadrático híbrido con síntesis mediante términos producto y segmentación (M_CUA_HIB_TP_SEG).

0 50 100 150 200 250

0

200

400

600

800

1000

1200

1400

1600

M_CUA_HIB_TP_SEG

Celd

as

Módulo

Figura 116 Número de celdas para el multiplicador cuadrático híbrido con síntesis mediante términos producto y segmentación (M_CUA_HIB_TP_SEG).

Page 170: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

158

0 50 100 150 200 250

0

20

40

60

80

100

120

140

M_CUA_HIB_TB_SEGF

recuencia

[M

Hz]

Módulo

Figura 117 Frecuencia de operación para el multiplicador cuadrático híbrido con síntesis mediante tablas de búsqueda y segmentación (M_CUA_HIB_TB_SEG).

0 50 100 150 200 250

0

200

400

600

800

1000

1200

M_CUA_HIB_TB_SEG

Celd

as

Módulo

Figura 118 Número de celdas para el multiplicador cuadrático híbrido con síntesis mediante tablas de búsqueda y segmentación (M_CUA_HIB_TB_SEG).

Page 171: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

159

0 20 40

0

20

40

60

80

M_INX_TV_TP

Fre

cuencia

[M

Hz]

Módulo

Figura 119 Frecuencia de operación para el multiplicador indexado empleando tablas de verdad y sintetizado mediante términos producto (M_INX_TV_TP).

0 20 40 60 80 100 120 140

0

50

100

150

200

250

300

350

400

M_INX_TV_TP

Celd

as

Módulo

Figura 120 Número de celdas para el multiplicador indexado empleando tablas de verdad y sintetizado mediante términos producto (M_INX_TV_TP).

Page 172: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

160

0 20 40 60 80 100 120 140

0

20

40

60

80

100

120

140

M_INX_TV_TBF

recuencia

[M

Hz]

Módulo

Figura 121 Frecuencia de operación para el multiplicador indexado empleando tablas de verdad y sintetizado mediante tablas de búsqueda (M_INX_TV_TB).

0 20 40 60 80 100 120 140

0

100

200

300

400

500

600

M_INX_TV_TB

Celd

as

Módulo

Figura 122 Número de celdas para el multiplicador indexado empleando tablas de verdad y sintetizado mediante tablas de búsqueda (M_INX_TV_TB).

Page 173: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

161

0 20 40 60 80

0

20

40

60

80

100

120

140

160

M_INX_TV_TP_SEGF

recuencia

[M

Hz]

Módulo

Figura 123 Frecuencia de operación para el multiplicador indexado empleando tablas de verdad, sintetizado mediante términos producto y segmentación (M_INX_TV_TB_SEG).

0 20 40 60 80 100 120 140

0

20

40

60

80

100

120

140

160

M_INX_TV_TP_SEG

Celd

as

Módulo

Figura 124 Número de celdas para el multiplicador indexado empleando tablas de verdad, sintetizado mediante términos producto y segmentación (M_INX_TV_TB_SEG).

Page 174: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

162

0 20 40 60 80 100 120 140

0

20

40

60

80

100

120

140

M_INX_TV_TB_SEGF

recuencia

[M

Hz]

Módulo

Figura 125 Frecuencia de operación para el multiplicador indexado empleando tablas de verdad, sintetizado mediante tablas de búsqueda y segmentación (M_INX_TV_TB_SEG).

0 20 40 60 80 100 120 140

0

100

200

300

400

500

600

700

M_INX_TV_TB_SEG

Celd

as

Módulo

Figura 126 Número de celdas el multiplicador indexado empleando tablas de verdad, sintetizado mediante tablas de búsqueda y segmentación (M_INX_TV_TB_SEG).

Page 175: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

163

DIVISIÓN EN RNS En [GAR99] [CAR89] [DRA91] [CHI91] [LUM92] [HIT95] [HIA95] [HIA97] [HUS98] y [REJ01] se presentan distintos algoritmos de división. Para mostrar la complejidad de la división en el RNS se ilustra la solución planteada en [HIT95]. En este trabajo se propone el empleo del sistema de residuos extendido, en el que el conjunto de módulos, relativamente primos y enumerados de menor a mayor, es m = m’

1, … m’2n. Este conjunto

de módulos se puede dividir en dos subconjuntos, cada uno de ellos de n elementos, de la siguiente manera:

m1 = m’1, m2 = m’

3,… mn = m’2n-1

y

mn+1 = m’2, mn+2 = m’

4,… m2n = m’2n

En este sistema el conjunto de los n primeros residuos recibe el nombre de RNS base y el resto el de RNS extendido. Los rangos dinámicos de cada conjunto son:

∏+=

=∏=

=n

ni ime

Mn

iyim

bM

2

11

con M = Mb Me el rango dinámico total del sistema. De manera que un entero 0 ≤ X ≤ (Mb – 1)( Me – 1) con residuos xi = X mod mi en el RNS extendido queda determinado por el conjunto:

x1,… xn; xn+1,… x2n En el RNS extendido se demuestran los siguientes puntos de interés: ♦ Mb y Me son relativamente primos, con Mb < Me. Existe el multiplicativo inverso de Mb en módulo Me, por ser relativamente primos y la parte base en la representación de X en el RNS extendido es el residuo módulo Mb. ♦ Para n grande y mi de valores similares la diferencia relativa entre Mb y Me es pequeña. De lo contrario se altera el orden de los módulos para lograrlo, pero sin romper la relación Mb < Me. ♦ El producto de dos números dentro del rango dinámico Mb en el RNS extendido nunca produce desbordamiento puesto que Mb

2 < Mb Me y el resultado se puede llevar al rango inicial escalando por Mb.

Dados dos enteros X e Y, con 0 ≤ X < Mb y 1 ≤ Y < Mb para calcular el cociente entero (Q) y el resto (R) de X/Y el algoritmo a seguir es el siguiente: algoritmo DIVRES entradas(X, Y) salidas(Q, R) comienzo

Page 176: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

164

Q = X . RECIP(Y)/M R = X – Q . Y

si R < Y entonces devuelve(Q, R) en otro caso devuelve(Q + 1, R - Y)

fin fin RECIP es la rutina que calcula M/Y mediante el algoritmo de Newton. algoritmo RECIP entrada(Y) salidas(M/Y) comienzo Z1 = 0 Z2 = 2 mientras Z1 ≠ Z2 Z1 = Z2 Z2 = Z1 . (2M – Y . Z1) / M

si M – Y . Z2 < Y entonces devuelve(Z2) en otro caso devuelve(Z2 + 1) fin fin Ejemplo: X = 90, Y = 30 y M = 257. El algoritmo RECIP devuelve 8 ( 257 / 30); Q = 90 . 8 / 257 = 2; R = 90 – 2 . 30 = 30; R < Y ? no; devuelve( 3, 0). Se demuestra que este algoritmo es correcto y que se puede realizar sobre el RNS extendido con datos de entrada en el RNS base, empleando el RNS extendido para evitar el posible overflow. Se presentó este algoritmo para mostrar la complejidad de la operación de división en el RNS, debida al hecho que ésta implica operaciones de suma, comparación y multiplicaciones durante un número desconocido, en principio, de iteraciones. Por lo que el RNS se centra en aquellos procesos que no requieren la operación división, en última instancia, como es el caso de un filtro Savitzky-Golay por ejemplo, se realizan todas las operaciones en el RNS, se convierte al sistema binario y en el se efectúa el cociente final. Por lo expuesto y porque no se necesita de la operación división en la aplicación del RNS propuesta en esta tesis, cual es la de generar series de números aleatorios, no se realizaron simulaciones como las hechas para las otras operaciones aritméticas vistas en este capítulo.

Page 177: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

165

COMPARACIÓN Y DETECCIÓN DE REVASAMIENTO Por la mismas razones que las expuestas en el apartado “DIVISIÓN EN RNS” no se realizaron las simulaciones correspondientes a estas operaciones.

CONCLUSIONES

En el presente capítulo se presentó el resultado de aproximadamente 7.000

simulaciones de distintos circuitos sumadores y multiplicadores, para módulos comprendidos entre 3 y 255. El objetivo es, dado un determinado problema, determinar con rapidez la mejor manera de implementarlo, es decir elegir aquellos circuitos con las mejores prestaciones para sistema a desarrollar. Para ello se cuenta con el costo, velocidad de funcionamiento y descripción VHDL de cada circuito descripto. En general, para cada caso, no fue suficiente con cambiar un parámetro y simular, sino que se debieron determinar las ecuaciones booleanas simplificadas en dos niveles correspondientes, distintas para cada módulo y circuito. El esfuerzo que demandó esta tarea fue muy grande, sin embargo los resultados sirven para futuros trabajos.

Si se trabaja con una FPGA distinta de las propuestas los resultados de este capítulo se

pueden extrapolar a las misma o en todo caso resimular la descripción VHDL para el dispositivo propuesto. Tarea sencilla, puesto que en este caso se trata sólo de una simulación, puesto que el trabajo más laborioso, su descripción, ya está hecho. Finalmente, para dar una idea del trabajo que demandó la realización de estas simulaciones, se presenta la descripción VHDL del sumandor S_HIB_PRO_TB para m = 103, nótese que para cada módulo se debe encontrar el conjunto de ecuaciones booleanas correspondiente. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity s_hc_103 is generic ( n : positive :=7 -- Número de bits de los sumandos ); port( A : in std_logic_vector( n - 1 downto 0 ); -- Primer sumando B : in std_logic_vector( n – 1 downto 0 ); –– Segundo sumando Reloj : in std_logic; Suma : out std_logic_vector( n – 1 downto 0) –– Resultado ); end s_hc_103;

Page 178: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

166

architecture ROM of s_hc_103 is signal AA : std_logic_vector( n – 1 downto 0 ); signal BB : std_logic_vector( n – 1 downto 0 ); signal v : std_logic_vector( n downto 0 ); –– Salida del sumador signal vs : std_logic_vector( n – 1 downto 0 ); –– Salida del corrector begin process ( Reloj ) begin if Reloj'event and Reloj = '1' then AA( n – 1 downto 0 ) <= A( n – 1 downto 0 ); BB( n – 1 downto 0 ) <= B( n – 1 downto 0 ); Suma( n – 1 downto 0 ) <= vs( n – 1 downto 0 ); end if; end process; v <= AA + BB; vs(6) <= ( ( not( v(7) ) ) and v(6) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(2) ) ) and v(1) and v(0) ) or ( ( not( v(7) ) ) and v(6) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(1) ) ) and v(0) ) or ( v(6) and ( not( v(4) ) ) and not v(3) and ( not( v(0) ) )) or ( v(7) and v(5) and v(2) and v(1) and v(0) ) or ( v(7) and v(5) and v(3) ) or ( v(7) and v(5) and v(4) ) or ( v(6) and ( not( v(5) ))); vs(5) <= ( v(7) and ( not( v(5) ) ) and v(2) and v(1) and v(0) ) or ( v(5) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(2) ) )) or ( v(5) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(1) ) )) or ( ( not( v(7) ) ) and not v(6) and v(5) and v(2) ) or ( v(5) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(0) ) )) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(5) and v(4) ) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(5) and v(3) ) or ( v(7) and ( not( v(5) ) ) and v(3) ) or ( v(7) and ( not( v(5) ) ) and v(4)); vs(4) <= ( v(7) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(2) ) )) or ( v(7) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(1) ) )) or ( v(7) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(0) ) )) or ( v(4) and v(2) and v(1) and v(0) ) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(5) and v(4) ) or ( ( not( v(7) ) ) and ( not( v(5) ) ) and v(4) ) or ( v(4) and v(3)); vs(3) <= ( v(6) and v(5) and v(4) and ( not( v(3) ) ) and ( not( v(2) ) ) and v(1) and v(0) ) or ( v(6) and v(5) and v(4) and ( not( v(3) ) ) and ( not( v(1) ) ) and v(0) ) or ( v(6) and v(5) and v(4) and not v(3) and ( not( v(0) ) )) or ( v(7) and ( not( v(3) ) ) and ( not( v(2) ) )) or ( v(3) and v(2) and v(1) and v(0) ) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(5) and v(3) ) or ( v(7) and ( not( v(3) ) ) and ( not( v(1) ) )) or ( ( not( v(7) ) ) and ( not( v(5) ) ) and v(3) ) or ( v(7) and ( not( v(3) ) ) and ( not( v(0) ))); vs(2) <= ( v(6) and v(5) and v(4) and ( not( v(3) ) ) and ( not( v(2) ) ) and v(1) and v(0) ) or ( v(6) and v(5) and v(3) and ( not( v(2) ) ) and v(1) and v(0) ) or ( ( not( v(7) ) ) and ( not( v(5) ) ) and v(2) ) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(5) and v(2) ) or ( v(7) and ( not( v(2) ) ) and v(1) and v(0) ) or ( v(2) and ( not( v(1) ) )) or ( v(2) and ( not( v(0) ))); vs(1) <= ( ( not( v(7) ) ) and v(6) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(2) ) ) and v(1) and v(0) ) or ( v(6) and v(5) and v(4) and ( not( v(3) ) ) and ( not( v(1) ) ) and v(0) ) or ( v(6) and v(5) and v(3) and not v(1) and v(0) ) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(1) ) or ( ( not( v(7) ) ) and ( not( v(5) ) ) and v(1) ) or ( v(7) and ( not( v(1) ) ) and v(0) ) or ( v(1) and ( not( v(0) )));

Page 179: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Operaciones aritméticas mediante residuos

167

vs(0) <= ( ( not( v(7) ) ) and v(6) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(2) ) ) and v(1) and v(0) ) or ( ( not( v(7) ) ) and v(6) and ( not( v(4) ) ) and ( not( v(3) ) ) and ( not( v(1) ) ) and v(0) ) or ( v(6) and v(5) and v(4) and ( not( v(3) ) ) and ( not( v(0) ) )) or ( v(6) and v(5) and v(3) and ( not( v(0) ) )) or ( ( not( v(7) ) ) and ( not( v(6) ) ) and v(0) ) or ( ( not( v(7) ) ) and ( not( v(5) ) ) and v(0) ) or ( v(7) and ( not( v(0) ))); end ROM;

Page 180: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

168

Generadores

Pseuoaletorios Mediante el RNS

4

Con el nombre de Enigma se denominó a una serie de máquinas diseñadas para encriptar y desencriptar mensajes. Eran una familia de máquinas electromecánicas, formada básicamente por una serie de rotores, un teclado mecánico y un panel con luces indicadoras Uno de los primeros modelos de este sistema se comercializó aproximadamente desde el año 1920. Más aún, fue adoptada por distintos servicios secretos de distintos países y sus fuerzas armadas. El caso más conocido es el del modelo Wehrmacht Enigma, empleado por el ejercito alemán como elemento de cifrado-descifrado de mensajes durante la segunda guerra mundial. Los Aliados, basándose en trabajos previos (1932) de los criptógrafos polacos Marian Rejewski, Jerzy Różycki y Henryk Zygalski, una máquina capturada, mensajes que repetían básicamente lo mismo todos los días (estación meteorológica en Noruega) y la obtención de un libro de claves lograron develar el algoritmo de encriptado-desencriptado. Según algunos autores el conocimiento de los medios de cifrado de las fuerzas armadas alemanas permitió reducir la duración de la guerra en dos años.

Page 181: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

169

CAPÍTULO 4. GENERADORES PSEUDOALEATORIOS MEDIANTE

EL SISTEMA NUMÉRICO DE RESIDUOS

En este capítulo se propone una nueva aplicación del Sistema Numérico de Residuos, su empleo para la generación de secuencias pseudoaleatorias. Se comienza con la presentación y definiciones de las denominadas series pseudoaletorias, sus diferentes aplicaciones y los principales estudios y ensayos que se realizan para determinar si una secuencia de números determinada es aleatoria. Se continúa con la presentación de distintos circuitos propuestos en el RNS para la generación de secuencias pseudoaleatorias. A continuación se le realizan los test de aleatoriedad a cada circuito propuesto. Finalmente se ejemplifica de manera cualitativa una posible aplicación, cual es la de encriptado.

SERIES DE NÚMEROS ALEATORIOS

Se puede afirmar que todo sistema se puede clasificar como determinista, aleatorio o caótico. En los sistemas deterministas se puede precisar cualquiera de sus futuros estados conociendo su estado presente, el azar no está involucrado en ninguna de sus variables o interacciones entre ellas. Por el contrario en los sistemas aleatorios en azar es el componente esencial [GON03] [GON04] [GON04b] [LAR06]. Tal es así, que no se puede determinar la evolución del mismo, ni siquiera su próximo estado, conociendo con una precisión ilimitada su salida actual o las anteriores, no se puede encontrar ningún tipo de patrón o regularidad. En la década de 1960 se comienza a hablar, y posteriormente a formalizar, un tipo de sistemas en los cuales, a pesar de estar descriptos por ecuaciones deterministas bien conocidas, su sensibilidad a las condiciones iniciales o a la precisión del instrumento de cálculo que se esté empleando hacen que su evolución futura, en orbitas que no se superponen, sea impredecible. Este último tipo es un caso intermedio entre los dos primeros, los sistemas que presentan este comportamiento se denominan caóticos [GON02] [GON02a] [GON04a] [GON05] [GON05a] [GON05b] [ZAB08] [ROS07].

En esta tesis se presentan una serie de circuitos, o algoritmos, que tienen la

particularidad de generar secuencias de números que pertenecen al segundo tipo, es decir sistemas estocásticos.

Aplicaciones, números aleatorios y pseudoaleatorios

Page 182: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

170

Los números aleatorios se emplean en las más variadas áreas del conocimiento. Así encuentran aplicaciones, por ejemplo, en ingeniería, economía, estadística, criptografía, ciencias de la atmósfera, meteorología, recreación, etc.

La fuente de generación de números aleatorios puede ser de tipo natural, es decir

aquellos que se basan en algún fenómeno físico, como la tensión de ruido en bornes de un resistor, o computacionales. En estos últimos se utiliza un algoritmo que continuamente entrega una secuencia de números entre los cuales no es posible determinar ningún tipo de comportamiento previsible. En el primer caso la secuencia de números tiene periodo infinito, en el segundo, dado que el número de estados en que se puede encontrar el sistema es finito, su periodo también lo será, aunque este puede ser extremadamente grande. Por esta razón se los llama generadores de números pseudoaleatorios. Si bien el primer tipo tiene la ventaja que su periodo es infinito tiene la contrapartida de su complejidad de implementación, de que sus características pueden variar con el envejecimiento de los componentes, con la temperatura, u otros factores. Los algoritmos para la generación de números pseudoaleatorios son más sencillos de implementar y, por sus características, no dependen de ninguna variable física y permanecen inalterados en el tiempo.

Test de aleatoriedad En primer lugar se busca que el generador bajo estudio, en general, presente una distribución de probabilidad uniforme, pues a partir de ella se puede llegar a cualquier otro tipo de distribución. Esto se logra aplicando a la serie obtenida la función de distribución inversa de la deseada. Ahora bien, el que la distribución sea uniforme no garantiza que no exista un patrón en la secuencia. Por ejemplo, la serie 0, 1, 2,… 7, 0, 1, 2,… 7,… tiene distribución uniforme pero existe en ella un comportamiento de predictibilidad que la hace no estocástica. De manera que la secuencia obtenida, para ser considerada aleatoria, tiene que pasar una serie de tests pensados especialmente con este propósito [GON04]. Al seguir este camino se está razonando de manera inductiva y no deductiva, por lo que los resultados no garantizan de manera concluyente que el generador en estudio sea pseudoaleatorio, pero cuantos más test supera tendremos un mayor número de elementos para dar credibilidad a nuestra hipótesis.

Correlación o autocorrelación

La correlación entre dos señales es una medida de la interdependencia entre las mismas. Se dice que dos variables aleatorias están correlacionadas, es decir que existe una relación lineal entre ellas, cuando los valores de una de ellas varían de manera sistemática con respecto a la otra. Por ejemplo, si se tienen dos series, x e y, existe correlación si al aumentar los valores de x también lo hacen los de y o viceversa.

La autocorrelación se define como la correlación de una señal con si misma. Es una medida de cuanto el valor de la señal en el instante t es capaz de influenciar a sus valores vecinos. Para la señal discreta x con valor medio m y desviación standard σ se define la autocorrelación como:

Page 183: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

171

( )( )( )[ ]

mxmxEkR kii −−

= +

donde E es la esperanza matemática o el valor esperado y k el desplazamiento temporal. El valor de R está comprendido en el rango [1, –1]. En una serie con correlación perfecta la señal se superpone exactamente luego de un desplazamiento k y será R = 1. En tanto que R = –1 indica anticorrelación perfecta. R = 0 indica la ausencia total de correlación, es decir que un valor en un instante determinado no afecta en ninguna medida a sus vecinos. Si la señal es aleatoria su autocorrelación tendrá un valor igual a cero.

Espectro y ruido blanco Se denomina ruido blanco a una señal aleatoria que se caracteriza porque dos valores cualquiera de ella no guardan ningún tipo de relación. La autocorrelación de este tipo de señales es una función delta. Su espectro es un valor constante, esto significa que la señal contiene a todas las frecuencias y con igual intensidad. Dado que el espectro se calcula sobre un número finito de puntos de la serie que se está estudiando y que su periodo es finito, el espectro no será una constante sino que tendrá pequeñas variaciones alrededor de su valor medio. Cuanto mejor sea el generador de números aleatorios menores serán estos apartamientos.

Entropía y cantidad de información Si se tiene la serie aleatoria x con N estados posibles x1, x2, x3,… xN cada uno de los cuales tiene una probabilidad p1, p2, p3,… pN con la condición:

∑=

=N

iip

1

1 pi ≠ 0 ∀ i

es posible encontrar una forma de medir la cantidad de información según lo enunciado por Shannon [LOP95]. La idea de Shannon fue relacionar la cantidad de información de un suceso con su probabilidad de ocurrencia. Aquellos sucesos que tienen una alta probabilidad de ocurrir no son relevantes en cuanto a la información que poseen. Por ejemplo decir que mañana no lloverá en el Desierto de Atacama prácticamente no nos aporta ningún conocimiento nuevo pues las precipitaciones en ese lugar son poco comunes. Por el contrario, si se sabe que ha llovido y de manera torrencial en esa región, es un conocimiento que nos aporta mucha información, pues se trata de un acontecimiento muy poco frecuente. La idea es entonces asociar el suceso con su probabilidad de ocurrencia. Matemáticamente:

( )

N

pp

H

N

iii

ln

ln1∑

=−=

Page 184: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

172

H recibe el nombre de cantidad de información. A continuación se dan dos ejemplos. En el caso de un cristal perfecto, habrá un estado, xc, que será el más probable de manera tal que pc ≈ 1, en tanto que los restantes tienen una probabilidad cercana a cero. Esto nos da Hc ≈ 0. Es decir que si el cristal se encuentra en ese estado la información que obtenemos es poco relevante. Por el contrario si se trata de un fenómeno en el que todos sus estados son equiprobables, pi = 1 / N, tal como el caso de un gas ideal aislado, la información será máxima Hg = 1.

Se toma prestado el concepto de cantidad de información, desarrollado en el área de

las comunicaciones, para medir el grado de desorden o entropía de un sistema. En el caso particular de calcular la entropía de una serie de números supuestos aleatorios, H tendrá un valor cercano a 1, indicando que cada estado es equiprobable.

Batería de tests Diehard

Diehard es un conjunto de tests desarrollados por George Marsaglia [MAR95] para determinar si una serie numérica es aleatoria o no.

Al programa Diehard hay que proporcionarle un archivo binario de entre 10 y 11

Mbytes con la secuencia de números a testear. Cada test entrega como resultado uno, o varios valores, denominados p que tienen una distribución uniforme en el intervalo [0, 1] si la serie de bits analizados es aleatoria. Para que la serie se considere estadísticamente aleatoria debe dar valores de p mayores a 0,025 y menores que 0,975. Sin embargo aún con buenos GNPAs p puede caer fuera de este rango. Es probable que en ocasiones el valor de p se acerque a 0 o 1 como por ejemplo 0,0012 o 0,9983, siendo la serie aleatoria. Cuando realmente la serie falla en pasar el test se obtienen valores de p iguales a 0 o 1 en seis o más lugares.

A continuación se realiza una breve descripción de los tests que contiene este paquete: ♦ Birthday Spacings. En un gran intervalo de puntos se elige un conjunto de ellos al azar. La separación entre estos puntos debe tener una distribución asintóticamente igual a la de Poisson. ♦ GCD test. A dos enteros consecutivos de la serie, u y v, se les calcula el máximo común divisor mediante el algoritmo de Euclides, en k pasos. Entonces k tiene una distribución aproximadamente binomial. Los GNPAs congruentes, a menudo fallan al tratar de pasar este test. ♦ Gorilla test. Es otra versión del test del mono. Se especifica una posición de bit de 0 a 31, con ellos se genera una cadena y se cuentan los segmentos de 26 bits que no aparecen. Este proceso debe tener una distribución aproximadamente normal. ♦ Overlapping Permutations test. Cada conjunto de 5 enteros consecutivos puede estar en uno de los 120 estados (5!) de ordenamientos posibles. Se realiza un conteo acumulado de cada estado. Se construye una matriz de 120x120, los componentes de esta matriz deben tener una determinada distribución. ♦ Ranks of 31x31 and 32x32 matrices test. Se toman 31 enteros al azar y de ellos los 31 bits más significativos. Se obtiene una matriz de 31x31, de ceros y unos a la cual se le determina el rango. El rango está comprendido entre 0 y 31 pero aquellos menores que 28 son poco probables. Se encuentran los rangos para todas las matrices y se cuentan los rangos de 31, 30, 29 y <= 28 a los cuales se los analiza mediante el test de Chi cuadrado. Ídem para 32x32.

Page 185: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

173

♦ Ranks of 6x8 Matrices test. Para cada conjunto de 6 números al azar de 32 bits se selecciona un determinado byte, los resultantes 6 bytes forman una matriz de 6x8 a la que se le determina el rango. Se realiza el test Chi cuadrado para la cuenta de rangos <= 4, 5 y 6. ♦ Monkey Tests on 20-bit Words. Se considera un alfabeto de dos caracteres, 0 y 1. Se consideran palabras de 20 “caracteres”, que se superponen, es decir se va recorriendo la cadena corriéndose un bit cada vez. Se cuenta el número de palabras que faltan. Si la serie es aleatoria el número de palabras faltante debe tener distribución aproximadamente normal. ♦ Monkey Tests, OPSO, OQSO, DNA. El test del mono trata secuencias de un determinado número de bits como si fueran “palabras”. El número de palabras que faltan debe tener una distribución aproximadamente Gaussiana. El test OPSO, Overlapping-Pairs-Sparse-Occupancy, considera palabras de dos letras de un alfabeto de 1024, cada letra se define con 10 bits sobre un entero de 32 bits de la serie a ser testeada. Se cuentan las palabras que faltan, que debe tener una distribución muy aproximadamente normal. El test OQSO, Overlapping-Quadruples-Sparse-Occupancy, es similar al anterior salvo que toma palabras de 4 letras, debe tener distribución casi normal. El test DNA considera un alfabeto de 4 letras C, G, A, T, determinadas por la secuencia de dos bits designados de la secuencia a testear. Toma palabras de 4 letras. La distribución debe ser aproximadamente normal. ♦ Count the 1`s in a Stream of Bytes. Cuenta el número de bits en 1 en cada byte. Convierte a ésta cuenta en una “letra”. Forma palabras de 5 letras que deben seguir una función distribución determinada ♦ Count the 1`s test. Toma la serie como enteros de 32 bits. Para cada entero se elige un determinado byte, por ejemplo, los 8 bits más significativos. Cada byte puede tener entre 0 y 8 bits en 1. Con cada byte de cada entero sucesivo, con corrimiento de 1 bit, se forma una cadena de palabras de 5 bits. La estadística de las palabras que faltan deben tener una distribución Chi cuadrado. ♦ Parking Lot Test. Ubica al azar círculos de radio unidad en un cuadrado de 100x100. Si un círculo se superpone a uno ya ubicado lo rechaza. Luego de 12.000 intentos se cuenta el número de círculos ubicados con éxito, la distribución debe ser normal. Se realiza la operación 10 veces y se los analiza mediante el KS test. ♦ Minimum Distance Test. Coloca al azar 8.000 puntos en un cuadrado de 10.000x10.000, y calcula la distancia mínima entre todos los pares de puntos posibles. El cuadrado de esta distancia debe tener una distribución muy cercana a la exponencial. Se obtienen 10 valores de p a los que se analiza mediante el KS test. ♦ Random Spheres Test. Toma al azar 4.000 puntos de un cubo con arista igual a 1.000. En cada punto se centra una esfera cuyo radio es la distancia al punto más cercano. El volumen de la esfera más pequeña tiene una distribución muy aproximadamente exponencial. El test genera 4.000 esferas 20 veces. ♦ The Sqeeze. Este test multiplica el valor inicial k = 231 por números en punto flotante entre [0,1) con distribución uniforme, elegidos al azar hasta llegar a 1. Lo repite 100.000 veces. Cuenta el número iteraciones para llegar a este valor, al que se le aplica el test de Chi cuadrado. ♦ Overlapping Sums Test. Se genera una gran secuencia de números en punto flotante tomados al azar en el rango [0,1). Realiza la suma de 100 números consecutivos en punto flotante. Las sumas deben tener distribución normal. ♦ Runs Up and Down Test. Se genera una gran secuencia de números tomados al azar y se los convierte a punto flotante en el intervalo [0,1). Se cuenta el número de valores consecutivos ascendentes y descendentes. Esta debe seguir una determinada distribución. ♦ The Craps Test. Juega a los dados 200.000 veces36. Cuenta el número de veces que se gana y el número de tiradas necesario para lograrlo. Ambas deben tener una distribución muy cercana a la normal.

36 No se aclara que juego.

Page 186: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

174

Para finalizar el programa Diehard realiza el test de Kolmogorov–Smirnov (KS test) al conjunto de los p obtenidos, este es el valor que se consigna en la tesis. Este test se emplea para determinar si dos distribuciones de probabilidad difieren y cuanto, teniendo en cuenta un número finito de muestras. Para el conjunto de test realizado por Diehard la variable p debe tener distribución uniforme.

Complejidad estadística Intuitivamente se puede decir que un sistema o procedimiento es complejo cuando no existe, o no se conoce, una estructura o comportamiento que permita describirlo o modelizarlo de manera más simple [LAR01] [GON05] [LAR05] [ROS08] [GON03] [LAR08]. En física la noción de complejidad se puede explicar partiendo de dos sistemas bien conocidos, un cristal perfecto y un gas ideal aislado. En ambos casos su complejidad es prácticamente nula. En el primero porque su descripción queda reducida al enunciado de unos pocos parámetros, la celda unidad, en el segundo porque todos sus estados son equiprobables. La complejidad de un sistema es un concepto fácil de entender pero difícil de cuantificar. Tal es así que existen diversos procedimientos propuestos para medirla. A continuación se explican dos de ellos. En [LOP95] se propone una medida de la complejidad estadística, CLMC (Complejidad López-Mancini-Calvet), basada en las ideas de orden, información y equilibrio. Como se vio en “Entropía y cantidad de información” un cristal ideal, perfectamente ordenado, tiene información mínima, en tanto que un gas ideal completamente desordenado posee información máxima. Cada uno de estos sistemas se encuentra en las antípodas del otro en cuanto a orden y cantidad de información. En [LOP95] se enuncia una medida de la complejidad de un sistema como la distancia a la distribución equiprobable de todos los estados posibles del sistema. Para mensurar esta distancia se define el desequilibrio como un valor que debe ser distinto de cero si existen estados que son más probables que otros. Pero esto sólo no funcionará puesto que en un cristal perfecto sus posibles estados no están equidistribuidos por lo que el desequilibrio debe ser máximo. En tanto que en el gas ideal el desequilibrio será cero por construcción. Sin embargo si se asocian entropía y desequilibrio D, de la manera D x H, se ve que este producto se puede definir como una medida de la complejidad puesto que tanto para el cristal perfecto como para el gas ideal la complejidad tiende a cero. Puesto que D debe ser mayor que cero para tener un valor positivo para la medir la complejidad y debe ser igual a cero para un sistema con estados equiprobables se puede definir el desorden como:

∑=

−=N

iiLMC N

pD1

21

Ecuación 18 Medida de desorden definida por López-Mancini-Calvet.

Así para el cristal perfecto D → 1 y para el gas ideal D → 0. Para otros sistemas D estará comprendido entre estos dos puntos.

Page 187: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

175

Teniendo en cuenta lo expuesto la complejidad estadística de un sistema o proceso según López, Mancini, Calvet (CLMC) se puede calcular mediante la siguiente expresión:

( )

−== ∑∑

=

=N

ii

N

iii

LMCLMC Np

N

pp

DHC1

21 1

ln

ln

Ecuación 19 Complejidad según López-Mancini-Calvet.

En [MAR03] se hacen eco de las críticas que ha recibido la “Ecuación 18” debido a que es equivalente a medir la distancia en el sentido Euclidiano. Principalmente porque se ignora la naturaleza aleatoria de la distribución de probabilidad. De manera que definen la complejidad CMPR, complejidad Martin-Plastino-Rosso, según la “Ecuación 20”.

( )

−== ∑∑

=

=N

ii

N

iii

MPRMPR Np

N

N

pp

DHC1

1 1arccos

1arccos

1

ln

ln

Ecuación 20 Medida de la complejidad según Martin-Plastino-Rosso.

En esta expresión DMPR es la distancia estadística, que no coincide con la Euclidiana. La distancia estadística entre dos puntos en un espacio de probabilidad de N dimensiones es la longitud estadística de la curva más corta que conecta a los puntos en este espacio. La longitud estadística de una curva es el número máximo de puntos mutuamente distinguibles a lo largo de la curva. Matemáticamente se expresa por la “Ecuación 21” con D0 dado por la “Ecuación 22”. Con 0 ≤ DMPR ≤ 1.

= ∑

=

N

iiMPS N

pDD1

0

1arccos

Ecuación 21 Desequilibrio derivado del concepto de distancia estadística.

=

N

D1

arccos

10

Ecuación 22 Factor de desequilibrio basado en los conceptos enunciados por W. K. Wootters [WOO81].

Medida de complejidad mediante programas compactadores (zippers) En [BAR05] se propone el uso de algoritmos empleados para la compactación de archivos como una herramienta para medir la complejidad de un sistema. El teorema de Shannon-McMillan determina que para una dada cadena37 existe un límite máximo al que se 37 En este contexto una cadena puede ser, una secuencia de DNA, texto, bits en comunicación digital de datos, bit en almacenamiento magnético, etc.

Page 188: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

176

la puede comprimir, sin perdida de información. Este límite es proporcional a la entropía, en el contexto de teoría de la información, que ella contiene. De manera que una buena medida de cuantificar la cantidad de información es ver cuanto se puede comprimir una cadena sin perdida de información. Según este razonamiento parece natural tomar los resultados que entregan los compresores de archivos más comunes como una herramienta de medir su entropía. Se dice que un algoritmo de compresión es óptimo si es capaz de alcanzar el límite enunciado por Shannon-McMillan. Uno de los algoritmos más empleados por los compactadores comerciales es el de Lempel-Ziv [FER07], que es capaz de acercarse asintóticamente al límite impuesto por el teorema de Shannon-McMillan. Lempel y Ziv definieron en 1976 como medida de complejidad de una serie de bits el número de patrones diferentes que se pueden encontrar en la secuencia. El programa WinZip 9.038 utiliza una versión mejorada del algoritmo anterior denominado Lempel-Ziv-Welch. Para medir la complejidad de zipping se uso la versión 9.0 de WinZip en el modo de compresión máxima. La complejidad zipping se define como:

compactarsinarchivodelbitsdeNº

compactadoarchivodelbitsdeNCzipping

º=

Exponente de Hurst o análisis R/S H. E. Hurst [PET91] [PET95] trabajó en el proyecto de la represa del Río Nilo a principios del siglo 20. Su problema era determinar la capacidad del reservorio a construir y que volumen de agua se puede dejar salir por año, sin que este se vacíe ni sea superado en su nivel máximo. Hasta entonces, y dada la cantidad de variables involucradas en el sistema del Río Nilo se suponía que el nivel del mismo se podía modelizar mediante la estrategia del camino aleatorio. Einstein había mostrado, que en el fenómeno conocido como movimiento Browniano, la distancia que recorre una partícula se incrementa con la raíz cuadrada del tiempo transcurrido entre una observación y otra. La expresión matemática es:

5,0TR =

Ecuación 23 Distancia recorrida según el tiempo transcurrido entre observaciones.

donde R = distancia recorrida, T = intervalo de tiempo. Hurst descubrió que la “Ecuación 23”, que se aplica sólo a series con valor medio cero y varianza igual a uno, se puede generalizar a:

H

n

ncS

R.=

38 Copyright 1991-2004 WinZip Cmputing Inc.

Page 189: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

177

donde c es un constante, n el número de puntos de la serie y H el hoy denominado exponente de Hurst. Este estudio, también conocido como análisis de rango reescalado, debido a que los datos se procesan para tener valor medio cero y se normaliza con respecto a su desviación standard, divide la serie x de n puntos en b subseries con n / b valores cada una. El algoritmo siguiente se realiza, en general, con n / b variando desde 4 a n / 2 puntos. A cada valor de b se lo llama nivel de agregación.

Para cada nivel de agregación se realiza lo siguiente. Se calcula el valor medio, xm(n/b), y la desviación standard de cada subserie. Se obtienen las nuevas subseries:

b

nrconxxz

b

nm

rr ,...1=−=

z tiene valor medio igual a cero. En el próximo paso se determina la serie acumulada:

b

nkconzy

k

iik ,...1

1

==∑=

y se determina el rango:

=

b

n

b

n

b

n yymínyymáxR ,...,... 11

se calcula la desviación standard, Sn/b, y la relación (R/S)n/b de cada subserie. Se realiza el promedio de (R/S)n/b sobre las b series. Se procede de la misma manera para cada nivel de agregación, se realiza una gráfica doble logarítmica, (R/S)n/b–n/b, que se aproxima linealmente por el método de mínimos cuadrados, su pendiente es el valor de H. Ver “Figura 127”.

El resultado del estudio puede dar:

))

)

<≤

≤<

=

50,00

00,150,0

50,0

Hc

Hb

Ha

Si H = 0,50 se trata de un proceso independiente. Ninguno de sus valores está

relacionado con los anteriores. Es un proceso aleatorio, independientemente del tipo de función distribución de que se trate, uniforme, Gaussiana, t-Student, etc. Si el caso es el b, la serie es persistente y presenta efectos de memoria a largo plazo, lo que ocurre hoy afecta al futuro, para siempre, aunque con un efecto menor a medida que nos alejamos de ese valor en particular. Si en un determinado momento la serie presenta valores consecutivos ascendentes es muy probable que el próximo también lo sea. Si por el contrario los valores son descendentes es muy posible que el consecutivo siga esta tendencia. Por último, si H cae en el caso c la serie es antipersistente, el sistema cubre menos recorrido que en el camino aleatorio, su pendiente se invierte más seguido que en el movimiento Browniano. La fuerza con que un fenómeno es persistente o antipersistente depende del valor de H.

En el caso que nos interesa, testear si una serie es aleatoria, debe ser H = 0,50, o de

manera más rigurosa, debido a los errores propios de todo procesamiento numérico y dado

Page 190: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

178

que se trata de un estudio estadístico, se debe cumplir que H ≈ 0,50 para ser considerada aleatoria.

1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0

0,5

1,0

1,5

2,0

2,5

H = 0,50706

SWBGII Clase A

Aproximación lineal

Log

(R/S

)

Log(n / b)

Figura 127 Gráfica para el cálculo del exponente de Hurst para uno de los GNPAs propuestos.

GENERADORES PSEUDOALEATORIOS PROPUESTOS CON EL SISTEMA NUMÉRICO DE RESIDUOS La idea es construir GNPAs en el RNS con distribución de probabilidad uniforme, para no sólo para tomar ventaja de las propiedades de cálculo que presenta la aritmética de residuos, sino también para proponer nuevos algoritmos para generar series de números aleatorios con un gran número de bits cada uno. En concreto, el camino planteado es tomar un tipo de GNPA conocido, y no sólo, trabajarlo en el RNS, sino que además se tome ventaja de la capacidad que tiene esta estrategia como característica distintiva, cual es la de trabajar en canales paralelos y producir secuencias en la que en cada iteración el número obtenido tenga un elevado número de bits. Se eligió como caso de estudio los generadores congruentes39. En general estos algoritmos obtienen el valor presente de la serie en función de operaciones sencillas sobre un valor o valores anteriores, luego de realizado el cálculo se toma el módulo del resultado. En los apartados siguientes se verán cada uno de ellos en detalle. Para los generadores propuestos cada canal es un pequeño generador aleatorio congruente. Como idea intuitiva, a fin de aumentar el grado de desorden, la complejidad del sistema o romper algún tipo de estructura subyacente, en lugar de trabajar con canales

39 También se trabajó con otro tipo de GNPAs pero no superaron la batería de test Diehard.

Page 191: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

179

independientes, como en cualquier sistema basado en el RNS, se estableció una relación entre ellos. De forma tal que cada canal reciba “ruido” o perturbaciones de los restantes. Para introducir en un canal la información de los otros se siguieron dos estrategias. En la primera, denominada Tipo I, cada vía de cálculo recibe la suma de las salidas de las otras. En la segunda, Tipo II, se recibe la or exclusiva de los acarreos o salidas del resto de los canales. La estrategia II tiene la ventaja de que requiere menos hardware para su implementación. En general el rango M con que trabajan los GNPAs es una potencia de 2, por ejemplo 232. Si bien los generadores propuestos pueden generar enteros de cualquier número de bits, a fin de poder compararlos con otros algoritmos bien conocidos, se decidió trabajar también con secuencias de enteros de 32 bits. Ahora bien si se desea trabajar con números de n bits se presenta la siguiente dificultad. Como se vio en “SISTEMA NUMÉRICO DE RESIDUOS” se debe elegir un conjunto m de módulos relativamente primos con lo que se obtiene un rango dinámico M igual al producto de los módulos, con 2n < M < 2n+1. Es decir que M no es una potencia exacta de 2. Por lo tanto para trabajar con n bits se selecciona un conjunto m que siempre excederá a 2n, lo que trae aparejado el siguiente inconveniente. Aún cuando los números leídos en decimal sean equiprobables, los 0s y 1s en cada posición no lo serán. Este problema se ejemplifica en la “Tabla 53”, para tener M = 11 se necesitan 4 bits. Como se puede observar se tiene:

unosycerosb

unosycerosb

unosycerosb

unosycerosb

posiciónlaPara

38

47

56

56

3

2

1

0

Los 0s y 1s no son equiprobables en cada posición, algo indeseado en un buen GNPAs. Esto ocurre a pesar de que los números del 0 al 10 tengan una distribución uniforme perfecta.

b3 b2 b1 b0

0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1

Tabla 53 Ejemplo, para M = 11, debe ser n = 4.

Page 192: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

180

Para salvar esta situación se implementaron tres estrategias, denominadas Clase A, Clase B y Clase C.

Estrategia Clase A Se toma un conjunto m tal que cumpla con 2n < M < 2n+1. Para el caso, n = 32, se

eligió m = 3, 11, 17, 19, 23, 29, 31, 37 con lo que se obtiene M = 8.154.657.291 > 232 = 4.294.967.296, es decir se puede representar el rango deseado.

Si el GNPA bajo estudio es bueno, cosa que se demostrará mediante los test

posteriores, se pueden tomar sólo aquellos valores que sean menores que 232 y descartar el resto. Por ejemplo, si el GNPA tiene distribución uniforme entre 0 y M – 1, la serie obtenida tendrá distribución uniforme entre 0 y 232 – 1.

Trabajar de esta manera trae dos consecuencias, una intuitiva y otra práctica. La

intuitiva dice que si existiera alguna estructura en la secuencia generada, al quitar algunos de sus elementos, en este caso un número importante, casi uno de cada dos, en la nueva serie esa estructura se desvanecerá o atenuará. En el caso práctico se tiene el problema de que no se entregará, debido al descarte, un número en cada iteración. Esto puede subsanarse mediante el agregado de hardware, por ejemplo una memoria FIFO, para la cual habrá de realizarse un estudio a fin de determinar su capacidad y con el GNPA funcionando a una frecuencia mayor que el circuito que los procesa, por ejemplo el que encripta.

Estrategia Clase B En este caso se trata de seleccionar un conjunto m que cumpla con 2n < M < 2n+1, pero de manera tal que la diferencia M – 232 sea mínima, y puesto que el número de bits es 33 simplemente se descarta el más significativo. En el caso ejemplificado en la tabla “Tabla 53” se obtendrán números comprendidos entre 0 y 10 en la que al descartar el bit de mayor peso se reducirá a una cadena de dígitos entre 0 y 7.

Las consecuencias son las siguientes. Se mejora el throughput, puesto que en cada iteración se obtiene un dato. Se empeora su función distribución puesto que la combinación “000” es más probable que la “111”, dado que la primera puede ocurrir si el número presentado por el generador fue “0000” o “1000” en tanto que la segunda de dará sólo cuando su salida sea “0111”. Cuanto menor sea la diferencia entre M y 2n menor será la “perturbación” en la función distribución, supuesta uniforme. Como ventaja tiene la característica de su sencillez, puesto que ni siquiera es necesario un comparador, en efecto, de las tres clases de circuitos desarrollados es el más sencillo en su hardware.

Para identificar los conjuntos de módulos que mejor se adaptan a esta estrategia se

realizó un estudio exhaustivo con módulos primos de hasta 7 bits es decir con el conjunto 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127. Se buscaron aquellos conjuntos de módulos que superaran a 232 en no más de un 0,01%. Es decir combinaciones de los 30 módulos tomados de a 4, 5, 6, 7 y 8. Con

Page 193: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

181

4 módulos no se puede llegar a 232, en los restantes casos los mejores resultados fueron los que se ilustran en la “Tabla 54”.

Exceso de 232 en porcentaje

m0 m1 m2 m3 m4 m5 m6 m7

0,000171% 3 43 47 67 97 109 0,000329% 5 11 13 17 53 59 113 0,001602% 3 7 13 37 47 83 109 0,001765% 5 11 17 23 29 71 97 0,001930% 11 23 53 59 61 89 0,002493% 5 11 13 19 61 71 73 0,002979% 3 11 13 23 67 73 89 0,003663% 7 31 41 43 103 109 0,003954% 3 7 13 37 53 71 113 0,004044% 13 17 37 61 79 109 0,004114% 13 19 53 59 67 83 0,005759% 3 7 13 19 71 107 109 0,005835% 3 7 11 13 29 31 37 43 0,006079% 3 5 7 53 73 97 109 0,006208% 3 17 23 31 41 43 67 0,006232% 11 17 31 79 83 113 0,006623% 5 37 47 67 73 101 0,006680% 7 17 37 89 97 113 0,007078% 3 7 19 31 67 71 73 0,008061% 13 23 47 53 73 79 0,008383% 17 19 41 47 67 103 0,009021% 3 19 59 89 113 127 0,009294% 11 23 43 67 71 83 0,009370% 3 5 7 13 23 41 47 71 0,009494% 3 7 19 29 43 89 97 0,009509% 5 13 19 23 37 61 67

Tabla 54 Conjuntos de módulos que más se aproximan a 232 en exceso.

Como se puede apreciar si se toma el primer conjunto, m = 3, 43, 47, 67, 97, 109, que es el grupo con el cual se trabajó, la función distribución de probabilidad uniforme se verá “alterada”, habrá números más probable que otros, pero serán sólo el 0,000171% del total. De manera que se puede afirmar que para la mayoría de los fines prácticos los 0s y 1s serán prácticamente equiprobables en cada posición y que la función densidad de probabilidad es uniforme.

Estrategia Clase C Este enfoque elimina las limitaciones que tienen las estrategias Clase A y B. Puesto que entrega un número en cada iteración y la distribución es uniforme en toda su extensión. Como en el enfoque Clase B se toma un conjunto m tal que M sea mayor que 232 pero cercano a él. Es decir que el generador entregará números que requieren para su

Page 194: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

182

representación en binario 33 bits. Los números entregados por el GNPA ingresan al bloque que se ilustra en la “Figura 128” denominado circuito de corrección.

Figura 128 Circuito de corrección empleado en la estrategia Clase C.

Como se puede apreciar en la figura, si el bit más significativo entregado por el conversor RNS a binario es cero (a32 = 0), el número entregado por el GNPAs sigue sin cambios su camino hasta la salida, Registrod. El Registroe periódicamente actualiza su valor de la siguiente manera. Si un determinado número de los bits menos significativos, por ejemplo 5, del Registroc, son iguales a un valor predeterminado, elegido de manera arbitraria, se almacena un nuevo valor. Esto significa que estadísticamente su valor se modifica, en caso de tomar los 5 bits menos significativos del Registroc, con un frecuencia de 1 cada 32 iteraciones y el valor que se almacena es el del Registrod. Se realimenta y almacena el contenido de Registrod y no en el Registroc, de lo contrario los últimos bits de Registroe serian siempre los mismos. La idea es que cuando el conversor RNS a binario entregue un número tal que a32 = 1 los bits a31… a0 sean reemplazados por alguna operación entre estos y el valor de Registroe, que se almacenó en algún momento en el pasado. Estadísticamente tanto más alejados del valor actual cuanto mayor sea el número de bits tomados de Registroc para cargar el Registroe. La operación entre Registroe y a31… a0 debe ser una relación sencilla en la que, además, para cada bit del resultado los 0s y 1s sean equiprobables. El elemento que cumple con esta condición es la or exclusiva realizada bit a bit. Con este circuito de corrección se logran dos cosas. Primero, en cada iteración se obtiene un número de la serie pseudoaleatoria. Segundo, no se altera la distribución uniforme, puesto que no existen valores privilegiados, como en la estrategia denominada Clase B, dado que para cada bit d31 a d0 los 0s y 1s son equiprobables.

Page 195: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

183

En la “Figura 129” se puede ver la simulación del circuito de corrección. El Registroe se carga cuando los cinco bits menos significativos del Registroc son iguales a “00011” y se produce un flanco ascendente en la señal de reloj; en este caso en el cuarto y con Registroc = 0x00000003. Cada vez que a32 = 1 la señal que entrega el multiplexor es la salida del conjunto de or exclusivas y es capturada por el Registroc en el próximo flanco ascendente de reloj, en esta simulación el número 7. En efecto Registroc = 0x00000005 es igual a la or exclusiva bit a bit entre 0xFFFFFFFA y 0xFFFFFFFF.

La simulación se realizó con una FPGA EPF10K30BC356-3, la frecuencia máxima de trabajo a la que puede operar es de 70,92 Mhz y se necesitan 162 celdas para sintetizarlo.

Figura 129 Simulación del circuito de corrección de la estrategia C.

A continuación se describe cada uno de los generadores propuestos. Para la Estrategia A se tomó m = 3, 11, 17, 19, 23, 29, 31, 37, en tanto que para las B y C m = 3, 43, 47, 67, 97, 109. Para los coeficientes que operan sobre valores anteriores de la serie se eligieron las menores raíces primitivas para cada módulo; g = 2, 2, 3, 2, 5, 2, 3, 2 y g = 2, 3, 5, 2, 5, 6. Si se tiene un circuito como el de la “Figura 130”, en donde g es la raíz primitiva de m, se obtiene una serie, s, en la que ésta toma todos los valores entre 0 y m – 1, sólo una vez, hasta que se repite la secuencia. Si se toma otra de las raíces primitivas posibles, se obtiene una serie de idénticas características a la anterior sólo que los números aparecen en otro orden. Parece entonces natural tomar en cada canal, cada vez que se desee realizar una multiplicación por una constante, a la raíz primitiva del módulo con que se está trabajando, por su efecto dispersor y uniformizador.

Figura 130 Circuito para generar una serie a partir de su producto con la raíz primitiva.

Generador lineal congruente RNS-LCG

Page 196: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

184

El generador RNS-LCG (Residue Number System-Linear Congruential Generator) se basa en el LCG, cuya expresión matemática está dada por la “Ecuación 24”, con a y b constantes y M el módulo que determina el rango dinámico del sistema.

( ) Mmódbxax ii += −1

Ecuación 24 Generador Congruente Lineal (LCG).

La implementación circuital para los generadores RNS-LCG Tipo I y II para n canales,

cada uno de los cuales trabaja con hj bits, se muestra en la “Figura 131”. Cada canal es un pequeño generador lineal congruente que realiza el cálculo de la “Ecuación 25”. Se toma residuoi–2 en lugar de residuoi–1, de lo contrario no se pasa el test Diehard. En esta gj y mj son la raíz primitiva y el módulo de trabajo de cada uno de los canales y residuoj, i es el residuo del canal j para la iteración i.

( ) jijijjij mmódbresiduogresiduo ,2,, += −

Ecuación 25 Ecuación para cada canal en el generador RNS-LCG.

Figura 131 Generadores RNS-LCG-I y RNS-LCG-II. Diagrama en bloques para un canal genérico j, arriba. Esquemático total, abajo.

Page 197: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

185

Para introducir un mayor desorden los canales se perturban entre si, de manera que el valor b de la “Ecuación 24” ya no es una constante. En los generadores Tipo I (RNS-LCG-I), con n igual al número de módulos, para el canal j en la iteración i se tiene:

∑−=

=−=

1

01,,

nk

jk

kikij residuob

Ecuación 26 Cálculo del término b para los generadores RNS-LCG-I.

en tanto que para los Tipo II (RNS-LCG-II), con Θ la operación or exclusiva bit a bit, será:

1,

1

0, −

−=

≠=

Θ= ik

nk

jkk

ij residuosb

Ecuación 27 Cálculo del término b para los generadores RNS-LCG-II.

Generador congruente mediante multiplicación y acarreo RNS-MWCG Este tipo de generador RNS se basa en el empleo del generador mediante multiplicación y acarreo congruente, que usa como mecanismo de iteración la “Ecuación 28” y la “Ecuación 29”.

( ) Mmódacarreoxax iii 11 −− +=

Ecuación 28 Fórmula de recurrencia para el generador congruente mediante multiplicación y acarreo.

+= −−

M

acarreoxaacarreo ii

i11

Ecuación 29 Cálculo del acarreo para el generador congruente mediante multiplicación.

Por ejemplo si M = 10 y a = 6 comenzando con x0 = 4 y acarreo = 4 se obtiene la

siguiente secuencia ( xnacarreo): 44, 82, 05, 50, 03, 30, 81, 94, 85, 35, 32, 02, 20, 21, 31,…

En la “Figura 132” se ilustran los bloques componentes de cada canal para el circuito propuesto. Cada uno de ellos, por ejemplo el canal j, es un generador de números aleatorios congruente mediante multiplicación y acarreo que computa la “Ecuación 28” y la “Ecuación 29”. En cada vía se trabaja en uno de los módulos seleccionados del conjunto m, la salida de cada uno de ellos en la iteración i se denomina residuo(j, i) que es un número de hj bits. El lazo interno de cada canal calcula el acarreo correspondiente al mismo para el momento i, acarreo(j, i), según la “Ecuación 30”.

+= −−

j

ijijjij m

acarreoresiduogacarreo 1,1,

,

Ecuación 30 Cálculo del acarreo para cada canal.

Page 198: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

186

El lazo externo computa la “Ecuación 28” pero con la variante presentada en la “Ecuación

31” a fin de poder introducir las perturbaciones de los restantes canales:

( ) jijijijjij mmódbacarreoresiduogresiduo ,1,1,, ++= −−

Ecuación 31 Ecuación de iteración para el generador mediante multiplicación y acarreo propuesto.

Figura 132 Generadores RNS-MWCG-I y RNS-MWCG-II. Diagrama en bloques para un canal genérico j, parte superior. Abajo, circuito esquemático total.

De manera que la constante b para el canal j se reemplaza por un término variable que se calcula mediante la “Ecuación 32” para los generadores Tipo I (RNS-MWCG-I) y por la “Ecuación 33” para los tipo II (RNS-MWCG-II).

∑−=

=−=

1

01,,

nk

jk

kikij residuob

Ecuación 32 Cómputo del término b para los generadores RNS-MWCG-I.

Page 199: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

187

1,

1

0, −

−=

≠=

Θ= ik

nk

jkk

ij residuob

Ecuación 33 Cómputo del término b para los generadores RNS-MWCG-II.

Generador congruente mediante el multiplicativo inverso RNS-ICG En la “Ecuación 34” se muestra la ecuación de iteración para el generador ICG (Inversal Congruential Generator). Donde x–1 es el multiplicativo inverso de x en módulo M, es decir:

(x–1 . x )M = 1, para x ≠ 0 y x–1 = 0 si x = 0. con a y b constantes.

( ) Mmódbxax ii += −−11

Ecuación 34 Algoritmo de iteración para el generador congruente mediante el multiplicativo inverso.

Figura 133 Generadores RNS-ICG-I y RNS-ICG-II. Diagrama en bloques para un canal genérico j, arriba. Abajo diagrama en bloques total.

Page 200: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

188

En la “Figura 133” se muestran los generadores propuestos mediante esta estrategia. En

lugar de trabajar con la “Ecuación 34” en cada canal, se trabajó con la “Ecuación 35”. Se toma residuoi–2 en lugar de residuoi–1, de lo contrario no se pasa el test Diehard. La constante b se reemplaza por un término que introduce información de los otros canales. Así para el canal j y la iteración i, b se calcula mediante la “Ecuación 36” para los generadores Tipo I (RNS-ICG-I) y mediante la “Ecuación 37” para los tipo II (RNS-ICG-II).

( ) jijijij mmódbresiduogresiduo ,12, += −

Ecuación 35 Generador congruente multiplicativo inverso propuesto.

∑−=

=−=

1

01,,

nk

jk

kikij residuob

Ecuación 36 Cálculo del término para los generadores RNS-ICG-I.

1,

1

0, −

−=

≠=

Θ= ik

nk

jkk

ij residuob

Ecuación 37 Cálculo del término b para los generadores RNS-ICG-II.

Generador congruente mediante suma y acarreo RNS-AWCG Marsaglia y Zaman [SHU93] propusieron el generador de números aleatorios denominado suma con acarreo (AWCG). Las fórmulas de iteración son la “Ecuación 38”, la “Ecuación 39” y la “Ecuación 40” con s y r enteros positivos con r > s. El valor actual de la serie y el del acarreo dependen ya no del valor anterior sino de valores pasados.

( ) Mmódacarreoxxx irisii 1−−− ++= 40

Ecuación 38 Formula de recurrencia para el generador congruente mediante suma y acarreo.

( )MacarreoxxIacarreo irisii ≥++= −−− 1

Ecuación 39 I recibe el nombre de función indicación.

=falsoesIsi

verdaderoesIsiacarreoi 0

1

Ecuación 40 Cálculo del acarreo para la iteración i mediante la función I.

En la “Figura 134” se muestra la implementación directa del algoritmo propuesto por Marsaglia y Zaman. Como se puede apreciar no existe interacción entre los canales. Este generador recibe el nombre de RNS-AWCG-I.

40 En [SHU93] se trabaja con dos posibilidades, sumar el acarreo, como en este caso, o restarlo.

Page 201: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

189

Figura 134 Generador RNS-AWCG-I. Diagrama en bloques para un canal genérico j, arriba. Esquemático total, abajo.

En los generadores RNS-AWCG-I cada canal computa la “Ecuación 41” para el cálculo de su residuo y la “Ecuación 42” para el acarreo, con resultado 1 si I es verdadero y 0 si es falso.

( ) jijrijsijij mmódacarreoresiduoresiduoresiduo 1,,,, −−− ++=

Ecuación 41 Cálculo de valor del residuo para cada canal en los generadores RNS-AWCG-I.

( )jijrijsijij macarreoresiduoresiduoIacarreo ≥++= −−− 1,,,,

Ecuación 42 Calculo del acarreo para el canal j en la iteración i.

En la “Figura 135” se ilustra el diagrama en bloques del generador denominado RNS-AWCG-II. Al igual que para los generadores RNS-AWCG-I cada canal realiza la operación descripta en la “Ecuación 41”, pero a diferencia de este cada canal recibe información de los restantes, esto se logra mediante el cálculo del acarreo del canal j por la “Ecuación 43”.

1,

1

01, −

−=

≠=

− Θ= ik

nk

jkk

ij acarreoacarreo

Ecuación 43 Cálculo del acarreo para el canal j para el generador RNS-AWCG-II.

Page 202: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

190

Figura 135 Generador RNS-AWCG-II. Diagrama en bloques para un canal genérico j, arriba. Esquemático total, abajo.

Generador congruente mediante resta y préstamo RNS-SWBG

Como alternativa al AWCG Marsaglia y Zaman [SHU93] propusieron el generador de resta y préstamo (SWBG). Las ecuaciones de iteración son la “Ecuación 44”, la “Ecuación 45” y la “Ecuación 46”. Como en el AWCG s y r son enteros positivos con r > s. El valor actual de la serie y el del acarreo dependen ya no del valor anterior sino de valores pasados.

( ) Mmódpréstamoxxx irisii 1−−− −−= 41

Ecuación 44 Algoritmo de iteración para el SWBG.

( )01 <−−= −−− irisii préstamoxxIpréstamo

Ecuación 45 Cálculo del préstamo mediante la función de indicación I.

41 En [SHU93] se trabaja con dos posibilidades, restar el préstamo, como en este caso, o sumarlo.

Page 203: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

191

=falsoesIsi

verdaderoesIsipréstamoi 0

1

Ecuación 46 Préstamo para la iteración i.

Figura 136 Generador RNS-SWBG-I. Diagrama en bloques para un canal genérico j, arriba. Abajo, circuito esquemático total.

En la “Figura 136” se muestra el generador denominado RNS-SWBG-I en la que cada canal trabaja de forma independiente, según la ecuación “Ecuación 47” y la “Ecuación 48”, es decir que se implementa de manera directa el algoritmo propuesto por Marsaglia y Zaman.

( ) jijrijsijij mmódpréstamoresiduoresiduoresiduo 1,,,, −−− −−=

Ecuación 47 Cálculo del valor del residuo para cada canal en los generadores RNS-SWBG-I.

( )01,,,, <−−= −−− ijrijsijij préstamoresiduoresiduoIpréstamo

Ecuación 48 Cálculo del préstamo para el canal j en la iteración i.

En la “Figura 137” se ilustra el diagrama en bloques del generador llamado RNS-SWBG-II. De la misma manera que en los generadores RNS-SWBG-I se emplean la “Ecuación

47” y la “Ecuación 48” para el cómputo del residuo y el préstamo para cada canal. Pero en este

Page 204: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

192

caso cada canal es perturbado por los restantes, mediante el cálculo realizado por la “Ecuación

49”.

1,

1

01, −

−=

≠=

− Θ= ik

nk

jkk

ij préstamopréstamo

Ecuación 49 Cálculo del préstamo para el canal j para el generador RNS-SWBG-II.

Figura 137 Generador RNS-SWBG-II. Diagrama en bloques para un canal genérico j, arriba. Circuito esquemático total, abajo.

TESTEO DE LOS GENERADORES PSEUDOALEATORIOS PROPUESTOS Para el testeo de los generadores propuestos se tomó m = 3, 11, 17, 19, 23, 29, 31, 37 para los algoritmos Clase A, en tanto que para los B y C m = 3, 43, 47, 67, 97, 109. Los coeficientes que operan sobre los valores anteriores en cada tipo de generador son las raíces primitivas g = 2, 2, 3, 2, 5, 2, 3, 2 en el primer caso y g = 2, 3, 5, 2, 5, 6 en el segundo y tercero.

Page 205: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

193

A fin de poder comparar los generadores propuestos con otros ya testeados y conocidos se generaron las siguientes series, salvo en el primer caso, de números enteros de 32 bits: ♦ Uniforme, computada por el MatLab 7.042. ♦ MWCG, Multiply With Carry Generator, con el programa Makewhat del paquete Diehard. ♦ MTHR4, “the mother of all random number generators” del paquete Diehard. ♦ SWBMWC, es una combinación de los generadores Subtract With Borrow y Multiply With Carry, del paquete Diehard.

Test de autocorrelación

Una herramienta matemática que se emplea frecuentemente en el procesamiento de señales es la autocorrelación.

La correlación cruzada, definida para dos señales, da una medida del parecido o similitud de las mismas. La función de autocorrelación se puede interpretar como la correlación cruzada de una señal con si misma. Con la integral de autocorrelación se pretende encontrar la existencia de patrones repetitivos en la señal bajo estudio, por ejemplo, si existe una periodicidad en la señal pero que se encuentra enmascarada bajo ruido o para identificar la frecuencia fundamental de una señal que no contiene dicha componente, pero en la que aparecen componentes armónicas de esta.

A modo de ejemplo en la “Figura 138” y en la “Figura 139” se muestra la autocorrelación del generador RNS-AWCG-I, Clase A. En la primera el gráfico total y en la segunda una región ampliada del mismo.

Para el cálculo de la autocorrelación en todos los casos se generaron secuencias de 32

bits. Además, con el objeto de realizar una comparación más precisa con otros generadores elegidos para contrastarlos con los propuestos, se normalizaron las series a números en punto flotante comprendidos en el rango [–0,5, 0,5]. Para todos los generadores el cálculo se realizó sobre una serie de 50.000 puntos, pues se vio que el tomar un mayor número de puntos no cambia los resultados pero hace que el tiempo de cómputo aumente. Ahora bien, las figuras anteriores muestran la función de autocorrelación de manera cualitativa. Para poder comparar las series de manera cuantitativa se calculó para cada gráfico de autocorrelación el valor medio y su desviación standard. En el caso ideal ambas deben ser iguales a cero. En la “Tabla 55” se muestra el resultado de este cálculo, tanto para los generadores propuestos como para aquellos elegidos para contrastar. Se puede ver que los resultados obtenidos están dentro de lo esperado. Es decir que la autocorrelación de los generadores propuestos es similar a aquellos ya estandarizados y testeados de manera exhaustiva.

42 Copyright 1984-2004, The MathWorks Inc.

Page 206: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

194

0 1 2 3 4 5 6 7 8 9 10

x 104

-500

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Auto

corr

ela

ció

n

Figura 138 Autocorrelación para el generador RNS-AWCG-I, Clase A.

5.005 5.01 5.015 5.02 5.025 5.03 5.035 5.04

x 104

-60

-40

-20

0

20

40

60

Auto

corr

ela

ció

n

Figura 139 Región ampliada de la autocorrelación para el generador RNS-AWCG-I, Clase A.

Page 207: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

195

Autocorrelación Generador Valor

medio Desviación standard

RNS-AWCG-I 0,00101 18,51 RNS-AWCG-II 2,521x10-5 18,65 RNS-ICG-I 0,01195 18,52 RNS-ICG-II 0,02665 18,66 RNS-LCG-I 0,04999 18,65 RNS-LCG-II 0,09121 18,57 RNS-MWCG-I 0,03124 18,66 RNS-MWCG-II 0,01499 18,57 RNS-SWBG-I 0,07622 18,59

C L A S E

A

RNS-SWBG-II 0,001915 18,58 RNS-AWCG-I 0,0004898 18,62 RNS-AWCG-II 0,02419 18,72 RNS-ICG-I 0,02104 18,58 RNS-ICG-II 0,01261 18,66 RNS-LCG-I 0,003726 18,76 RNS-LCG-II 0,0002325 18,65 RNS-MWCG-I 0,025485 18,94 RNS-MWCG-II 0,1895 18,64 RNS-SWBG-I 0,0001877 18,41

C L A S E

B

RNS-SWBG-II 0,05425 18,65 RNS-AWCG-I 0,009537 18,78 RNS-AWCG-II 0,02429 18,72 RNS-ICG-I 0,002216 18,58 RNS-ICG-II 0,0119 18,66 RNS-LCG-I 0,003801 18,76 RNS-LCG-II 0,0002659 18,64 RNS-MWCG-I 0,188 18,64 RNS-MWCG-II 0,0866 18,71 RNS-SWBG-I 0,0001346 18,41

C L A S E

C

RNS-SWBG-II 0,0536 18,65 Uniforme 0,1207 18,65 MWCG 0,003546 18,63 MTHR4 0,00246 18,48 SWBMWC 0,007468 18,69

Tabla 55 Valor medio de la autocorrelación y su desviación standard para cada generador testeado.

Análisis espectral El análisis espectral se realizó sobre las mismas series con las que se calculó la autocorrelación. En la “Figura 140” y en la “Figura 141” se ilustra el espectro para la serie RNS-AWCG-I Clase A. En la última se muestra una región ampliada de la primera.

Page 208: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

196

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

x 104

0

50

100

150

200

250

Frecuencia

Tra

nsfo

rmada D

iscre

ta d

e F

ourier

Figura 140 Transformada discreta de Fourier para el generador RNS-AWCG-I, Clase A.

0 50 100 150 200 250 300 350 400 450 5000

20

40

60

80

100

120

140

160

180

Frecuencia

Tra

nsfo

rmada D

iscre

ta d

e F

ourier

Figura 141 Región ampliada de la Transformada Discreta de Fourier para el generador RNS-AWCG-I, Clase A.

Page 209: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

197

En la “Tabla 56” se muestra para cada generador de números aleatorios testeados el valor medio y la desviación standard de su espectro. En el caso ideal, ruido blanco, el espectro debe tener un valor constante. Se puede ver que hay una gran coincidencia entre todos los generadores, incluidos los de referencia.

Transformada Discreta de Fourier Generador

Valor medio

Desviación standard

RNS-AWCG-I 57,01 29,91 RNS-AWCG-II 57,25 29,93 RNS-ICG-I 57,14 29,79 RNS-ICG-II 57,16 29,93 RNS-LCG-I 57,1 30,00 RNS-LCG-II 57,05 29,85 RNS-MWCG-I 57,15 30,03 RNS-MWCG-II 57,12 29,81 RNS-SWBG-I 56,97 29,85

C L A S E

A

RNS-SWBG-II 57,14 29,97 RNS-AWCG-I 57,12 29,98 RNS-AWCG-II 57,4 30,02 RNS-ICG-I 57,34 29,66 RNS-ICG-II 57,24 29,93 RNS-LCG-I 57,25 30,06 RNS-LCG-II 57,15 29,87 RNS-MWCG-I 57,23 29,85 RNS-MWCG-II 57,18 29,93 RNS-SWBG-I 56,84 29,87

C L A S E

B

RNS-SWBG-II 57,31 29,88 RNS-AWCG-I 57,34 30,06 RNS-AWCG-II 57,4 30,01 RNS-ICG-I 57,34 29,66 RNS-ICG-II 57,24 29,93 RNS-LCG-I 57,25 30,06 RNS-LCG-II 57,14 29,87 RNS-MWCG-I 57,18 29,94 RNS-MWCG-II 57,22 30,12 RNS-SWBG-I 56,84 29,86

C L A S E

C

RNS-SWBG-II 57,31 29,88 Uniforme 57,49 29,79 MWCG 57,12 29,88 MTHR4 57,13 29,79 SWBMWC 53,89 29,87

Tabla 56 Valor medio y desviación standard de la Transformada Discreta de Fourier para series aleatorias generadas mediante distintos procesos.

Page 210: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

198

Cálculo de la entropía y de la cantidad de información

Para los últimos tres generadores se analizaron series de 2.800.000 valores, dado que es el número de iteraciones que realiza el programa Makewhat. En tanto que para los demás generadores se tomaron series de 6.000.000 de puntos. Todos números de 32 bits. Sin embargo, para tener un histograma razonablemente distribuido, el estudio se realizo en 16 bits, es decir que para cada número de la serie original se tomaron los 16 bits más significativos y los 16 menos significativos como si fueran números distintos. Si se trabajara directamente con 32 bits el primer histograma tendría que estar dividido en 232 intervalos, para lo que habría que generar series extremadamente largas, con la esperanza de que al menos cada valor aparezca una vez.

Entropía Generador Histograma de

0 a 65535 Histograma de

0 a 1000 RNS-AWCG-I 0,9995 1,0000 RNS-AWCG-II 0,9995 1,0000

RNS-ICG-I 0,9995 1,0000 RNS-ICG-II 0,9995 1,0000

RNS-LCG-I 0,9995 1,0000 RNS- LCG-II 0,9995 1,0000

RNS-MWCG-I 0,9995 1,0000 RNS-MWCG-II 0,9995 1,0000

RNS-SWBG-I 0,9995 1,0000

C L A S E

A

RNS-SWBG-II 0,9995 1,0000

RNS-AWCG-I 0,9995 1,0000 RNS-AWCG-II 0,9995 1,0000 RNS-ICG-I 0,9995 1,0000 RNS-ICG-II 0,9995 1,0000 RNS-LCG-I 0,9995 1,0000 RNS-LCG-II 0,9995 1,0000 RNS-MWCG-I 0,9995 1,0000 RNS-MWCG-II 0,9995 1,0000 RNS-SWBG-I 0,9995 1,0000

C L A S E

B

RNS-SWBG-II 0,9995 1,0000 RNS-AWCG-I 0,9995 1,0000 RNS-AWCG-II 0,9995 1,0000 RNS-ICG-I 0,9995 1,0000 RNS-ICG-II 0,9995 1,0000 RNS-LCG-I 0,9995 1,0000 RNS- LCG-II 0,9995 1,0000 RNS-MWCG-I 0,9995 1,0000 RNS- MWCG-II 0,9995 1,0000 RNS-SWBG-I 0,9995 1,0000

C L A S E

C

RNS- SWBG-II 0,9995 1,0000 Uniforme 0,9994 1,0000

MWCG 0,9986 1,0000

MTHR4 0,9987 1,0000

SWBMWC 0,9987 1,0000

Tabla 57 Cálculo de entropía. Primer histograma dividido en 65536 valores y el segundo en 1.000.

Page 211: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

199

En la “Tabla 57” se muestran los resultados obtenidos. En el primer caso para un

histograma dividido en 65.536 intervalos y en el segundo en 1.000. En esta tabla se puede apreciar que los valores calculados se aproximan muy bien a los deseados, más aún, no hay prácticamente diferencia entre los generadores propuestos y los de referencia.

Batería de test Diehard Para realizar este test se generaron 10 series de 3.000.000 de puntos, de 32 bits, para cada GNPA. En los generadores Clase A los archivos no tienen el mismo tamaño, puesto que en este caso se descartan aquellos valores superiores 232, el tamaño de estos archivos está comprendido entre los 11 y los 12 Mbytes. En los generadores Clase B el tamaño es en todos los casos de 12 Mbytes. Finalmente para los Clase C son todos de 11.999.992 de bytes puesto que los primeros valores deben descartarse debido a la latencia del circuito de corrección. Los resultados obtenidos para las 300 series son los que se muestran en las siguientes tablas.

RNS-LCG-I RNS-LCG-II Simulación p p

0 0,407911 0,607689 1 0,269137 0,01269743 2 0,407911 0,143974 3 0,176487 0,789647 4 0,872657 0,510381 5 0,181225 0,110432 6 0,452626 0,292616 7 0,429352 0,312498 8 0,305565 0,119320 9 0,048907 0,619312

Tabla 58 Valores de p calculados por Diehard para 10 series para los generadores RNS-LCG-I y RNS-LCG-II Clase A.

RNS-LCG-I RNS-LCG-II Simulación

p p 0 0,800747 0,316036

1 0,907225 0,263429

2 0,326950 0,473377

3 0,930700 0,649256

4 0,087136 0,541925

5 0,401577 0,972650

6 0,949964 0,027664

7 0,207195 0,141259

8 0,038877 0,885084

9 0,053990 0,855836

Tabla 59 Valores de p calculados por Diehard para 10 series para los generadores RNS-LCG-I y RNS-LCG-II Clase B.

43 De los 229 valores para p calculados mediante el programa Diehard sólo 4 quedan fuera del rango p < 0,025 y p > 0,975. Y no fueron ni 1,000000 ni 0,000000.

Page 212: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

200

RNS-LCG-I RNS-LCG-II Simulación p p

0 0,101530 0,084441 1 0,134149 0,455188 2 0,676679 0,974504 3 0,205915 0,554348 4 0,361947 0,917724 5 0,544443 0,623239 6 0,148867 0,031028 7 0,052875 0,201848 8 0,658070 0,320512 9 0,114893 0,457464

Tabla 60 Valores de p calculados por Diehard para 10 series para los generadores RNS-LCG-I y RNS-LCG-II Clase C.

RNS-MWCG-I RNS-MWCG-II Simulación p p

0 0,440604 0,497502 1 0,777776 0,789254 2 0,867433 0,572907 3 0,305443 0,321188 4 0,625066 0,719019 5 0,097820 0,849035 6 0,746939 0,685208 7 0,877342 0,922695 8 0,909437 0,957817 9 0,305105 0,686681

Tabla 61 Valores de p calculados por Diehard para 10 series para los generadores RNS-MWCG-I y RNS-MWCG-II Clase A.

RNS-MWCG-I RNS-MWCG-II Simulación p p

0 0,751902 0,272995 1 0,065578 0,435835

2 0,814191 0,470154

3 0,162104 0,282429

4 0,814191 0,034479

5 0,506867 0,282429

6 0,173137 0,213517

7 0,460709 0,213517

8 0,917318 0,135189

9 0,430849 0,286100

Tabla 62 Valores de p calculados por Diehard para 10 series para los generadores RNS-MWCG-I y RNS-MWCG-II Clase B.

Page 213: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

201

RNS-MWCG-I RNS-MWCG-II Simulación p p

0 0,607838 0,133090 1 0,838351 0,046135 2 0,330346 0,921848 3 0,054165 0,726954 4 0,936998 0,612497 5 0,320953 0,845904 6 0,048184 0,042158 7 0,220511 0,013477 8 0,513878 0,172401 9 0,152715 0,401958

Tabla 63 Valores de p calculados por Diehard para 10 series para los generadores RNS-MWCG-I y RNS-MWCG-II Clase C.

RNS-ICG-I RNS-ICG-II Simulación p p

0 0,759408 0,938063 1 0,070830 0,094446 2 0,363415 0,353138 3 0,732662 0,105207 4 0,834524 0,399985 5 0,102359 0,622250 6 0,836744 0,134909 7 0,799920 0,201867 8 0,364214 0,659446 9 0,194649 0,569665

Tabla 64 Valores de p calculados por Diehard para 10 series para los generadores RNS-ICG-I y RNS-ICG-II Clase A.

RNS-ICG-I RNS-ICG-II Simulación p p

0 0,653108 0,209772 1 0,534267 0,165843 2 0,283026 0,516257 3 0,488090 0,106113 4 0,755365 0,319848 5 0,267669 0,528632 6 0,619149 0,497950 7 0,412185 0,229261 8 0,773033 0,091080 9 0,562224 0,050897

Tabla 65 Valores de p calculados por Diehard para 10 series para los generadores RNS-ICG-I y RNS-ICG-II Clase B.

Page 214: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

202

RNS-ICG-I RNS-ICG-II Simulación p p

0 0,469149 0,010513 1 0,149563 0,428405 2 0,639931 0,149411 3 0,123876 0,225993 4 0,818532 0,602838 5 0,151925 0,024404 6 0,050745 0,396904 7 0,133014 0,626420 8 0,049635 0,618624 9 0,942691 0,680900

Tabla 66 Valores de p calculados por Diehard para 10 series para los generadores RNS-ICG-I y RNS-ICG-II Clase C.

RNS-AWCG-I RNS-AWCG-II Simulación p p

0 0,466851 0,464460 1 0,684572 0,090714 2 0,988332 0,772659 3 0,514063 0,400580 4 0,401928 0,213999 5 0,744123 0,096883 6 0,178773 0,743856 7 0,079433 0,032049 8 0,367202 0,127293 9 0,176094 0,183204

Tabla 67 Valores de p calculados por Diehard para 10 series para los generadores RNS-AWCG-I y RNS-AWCG-II Clase A.

RNS-AWCG-I RNS-AWCG-II Simulación p p

0 0,658838 0,525299 1 0,258080 0,361768 2 0,661289 0,252234 3 0,074688 0,968681 4 0,068907 0,168181 5 0,823422 0,097932 6 0,020306* 0,680707 7 0,923394 0,594071 8 0,029289 0,264933 9 0,809346 0,655638

Tabla 68 Valores de p calculados por Diehard para 10 series para los generadores RNS-AWCG-I y RNS-AWCG-II Clase B.

Page 215: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

203

RNS-AWCG-I RNS-AWCG-II Simulación p p

0 0,503240 0,552439 1 0,603277 0,859872 2 0,895625 0,177303 3 0,733400 0,218880 4 0,296258 0,008079* 5 0,548085 0,561919 6 0,363544 0,183916 7 0,596650 0,509443 8 0,357647 0,574463 9 0,211529 0,685414

Tabla 69 Valores de p calculados por Diehard para 10 series para los generadores RNS-AWCG-I y RNS-AWCG-II Clase C.

RNS-SWBG-I RNS-SWBG-II Simulación p p

0 0,733291 0,374268 1 0,029801 0,237409 2 0,819236 0,104526 3 0,829265 0,145958 4 0,686622 0,329929 5 0,740867 0,538521 6 0,440120 0,779948 7 0,857058 0,747849 8 0,156544 0,273377 9 0,372844 0,126828

Tabla 70 Valores de p calculados por Diehard para 10 series para los generadores RNS-SWBG-I y RNS-SWBG-II Clase A.

RNS-SWBG-I RNS-SWBG-II Simulación p p

0 0,002686* 0,274198 1 0,431939 0,089033 2 0,700258 0,160564 3 0,198372 0,717864 4 0,190476 0,288971 5 0,030738 0,483444 6 0,218530 0,032202 7 0,483947 0,898278 8 0,072983 0,663908 9 0,919919 0,071710

Tabla 71 Valores de p calculados por Diehard para 10 series para los generadores RNS-SWBG-I y RNS-SWBG-II Clase B.

Page 216: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

204

RNS-SWBG-I RNS-SWBG-II Simulación

p p 0 0,534447 0,180373 1 0,592744 0,044676 2 0,025743 0,925595 3 0,441459 0,515648 4 0,248225 0,375870 5 0,076022 0,592634 6 0,091573 0,870578 7 0,632759 0,668169 8 0,339251 0,633975 9 0,088747 0,153741

Tabla 72 Valores de p calculados por Diehard para 10 series para los generadores RNS-SWBG-I y RNS-SWBG-II Clase C.

Como puede apreciarse las series pasan sin problemas este test. En algunos casos, muy pocos, el valor de p no está comprendido dentro del rango deseado, sin embargo, como se aclara en el software Diehard, cuando la serie realmente falla se obtienen valores de 1,000000 o 0,00000 en 6 o más lugares. Se investigó cada serie que “fallo” en pasar el test y tal como se aclara en la nota al pie Nº “43” de los 229 valores de p en ningún caso ocurrió que este tomara el valor 1 o 0, además nunca se obtuvieron más de 5 valores de p fuera del rango p < 0,025 y p > 0,975. Se puede aseverar entonces que todos los generadores propuestos, en sus distintas variantes, pasan exitosamente una de las baterías de test más exigentes para la determinación de aleatoriedad de una serie de números.

Estudio de la complejidad estadística Tanto para el estudio de la ComplejidadLMC como para la ComplejidadMPR se tomaron las mismas series y se trabajó de la misma manera que en “Cálculo de la entropía y de la cantidad de

información”. Por lo tanto para los últimos tres generadores se analizaron series de 2.800.000 valores, dado que es el número de iteraciones que realiza el programa Makewhat. En tanto que para los demás generadores se tomaron series de 6.000.000 de puntos. Todos números de 32 bits. Sin embargo, para tener un histograma razonablemente distribuido, el estudio se realizo en 16 bits, es decir que para cada número de la serie original se tomaron los 16 bits más significativos y los 16 menos significativos como si fueran números distintos. Si se trabajara directamente con 32 bits el primer histograma tendría que estar dividido en 232 intervalos, para lo que habría que generar series extremadamente largas, con la esperanza de que al menos cada valor aparezca una vez.

Los resultados se pueden ver en la “Tabla 73” y en la “Tabla 74”. Los valores obtenidos son consistentes con la hipótesis de no existencia, o en rigor, de no poder detectar estructuras en las secuencias, también son coherentes con los resultados obtenidos para los generadores de referencia.

Page 217: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

205

ComplejidadLMC

Generador Histograma de 0 a 65535

Histograma de 0 a 1000

RNS-AWCG-I 1,6760x10-7 2,2061x10-7 RNS-AWCG-II 1,6825x10-7 2,2173x10-7 RNS-ICG-I 1,6702x10-7 2,4566x10-7 RNS-ICG-II 1,6518x10-7 2,2599x10-7 RNS-LCG-I 1,6760x10-7 2,2061x10-7 RNS-LCG-II 1,6825x10-7 2,2173x10-7 RNS-MWCG-I 1,6756x10-7 2,0882x10-7 RNS-MWCG-II 1,6797x10-7 2,3436x10-7 RNS-SWBG-I 1,6558x10-7 2,0760x10-7

C L A S E A

RNS-SWBG-II 1,6751x10-7 2,3278x10-7 RNS-AWCG-I 1,6664x10-7 2,1312x10-7 RNS-AWCG-II 1,6744x10-7 2,3412x10-7 RNS-ICG-I 1,6764x10-7 2,2696x10-7 RNS-ICG-II 1,6722x10-7 2,3429x10-7 RNS-LCG-I 1,6717x10-7 2,2204x10-7 RNS-LCG-II 1,6757x10-7 2,2758x10-7 RNS-MWCG-I 1,6688x10-7 2,2186x10-7 RNS-MWCG-II 1,6768x10-7 2,2236x10-7 RNS-SWBG-I 1,6707x10-7 2,2682x10-7

C L A S E B

RNS-SWBG-II 1,6765x10-7 2,1806x10-7 RNS-AWCG-I 1,6661x10-7 2,0375x10-7 RNS-AWCG-II 1,6609x10-7 2,3180x10-7 RNS-ICG-I 1,6757x10-7 2,3442x10-7 RNS-ICG-II 1,6675x10-7 2,2150x10-7 RNS-LCG-I 1,6717x10-7 2,3354x10-7 RNS-LCG-II 1,6758x10-7 2,3196x10-7 RNS-MWCG-I 1,6680x10-7 2,2683x10-7 RNS-MWCG-II 1,6636x10-7 2,1326x10-7 RNS-SWBG-I 1,6717x10-7 2,1728x10-7

C L A S E C

RNS-SWBG-II 1,6774x10-7 2,1661x10-7 Uniforme 1,6629x10-7 1,6887x10-7 MWCG 1,7963x10-7 2,4893x10-7 MTHR4 1,8052x10-7 2,3899x10-7 SWBMWC 1,8018x10-7 2,2474x10-7

Tabla 73 Complejidad según López-Mancini-Calbet para distintos GNPA, para dos histogramas. Uno con 65.536 valores distintos y otro para 1.000.

Page 218: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

206

ComplejidadMPR

Generador Histograma de 0 a 65535

Histograma de 0 a 1000

RNS-AWCG-I 0,0335 0,0049 RNS-AWCG-II 0,0336 0,0049 RNS-ICG-I 0,0335 0,0052 RNS-ICG-II 0,0333 0,0050 RNS-LCG-I 0,0335 0,0049 RNS-LCG-II 0,0336 0,0049 RNS-MWCG-I 0,0335 0,0048 RNS-MWCG-II 0,0336 0,0051 RNS-SWBG-I 0,0333 0,0048

C L A S E A

RNS-SWBG-II 0,0335 0,0051 RNS-AWCG-I 0,0334 0,0048 RNS-AWCG-II 0,0334 0,0051 RNS-ICG-I 0,0335 0,0050 RNS-ICG-II 0,0335 0,0051 RNS-LCG-I 0,0335 0,0049 RNS-LCG-II 0,0335 0,0050 RNS-MWCG-I 0,0335 0,0049 RNS-MWCG-II 0,0335 0,0049 RNS-SWBG-I 0,0335 0,0050

C L A S E B

RNS-SWBG-II 0,0335 0,0049 RNS-AWCG-I 0,0334 0,0046 RNS-AWCG-II 0,0334 0,0049 RNS-ICG-I 0,0335 0,0050 RNS-ICG-II 0,0334 0,0047 RNS-LCG-I 0,0335 0,0050 RNS-LCG-II 0,0335 0,0050 RNS-MWCG-I 0,0334 0,0050 RNS-MWCG-II 0,0334 0,0048 RNS-SWBG-I 0,0335 0,0049

C L A S E C

RNS-SWBG-II 0,0335 0,0049 Uniforme 0,0334 0,0042 MWCG 0,0343 0,0052 MTHR4 0,0344 0,0051 SWBMWC 0,0344 0,0049

Tabla 74 Complejidad según Martin-Plastino-Rosso para distintos GNPA, para dos histogramas. Uno con 65.536 valores distintos y otro para 1.000.

Complejidad zipping Para el cálculo de la Complejidadzipping se tomaron las misma series, 300, que para el estudio del test Diehard. En los generadores Clase A, como se explicó, no se obtienen archivos de la misma longitud, debido al descarte, en tanto que, en los Clase B y C todos tienen el mismo número de bytes.

Page 219: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

207

En las “Tabla 75” a la “Tabla 79” se muestran los resultados del cálculo de la Complejidadzipping para los generadores Clase A. Se puede apreciar que en todos los casos es ligeramente mayor a uno. Esto se debe a que la relación de compresión obtenida es del 0%, es decir incomprimible, pero además al archivo comprimido se le agregan algunos bytes de información adicionales, como por ejemplo el nombre del archivo contenido.

RNS-LCG-I RNS-LCG-II Simulación Complejidadzipping Complejidadzipping

0 1,0001622 1,00016214 1 1,00016211 1,00016219 2 1,00016229 1,00016217 3 1,00016224 1,00016227 4 1,00016214 1,00016203 5 1,0001622 1,00016212 6 1,0001622 1,00016211 7 1,00016221 1,0001622 8 1,00016215 1,00016233 9 1,00016215 1,00016216

Tabla 75 Complejidadzipping de 10 series para los generadores RNS-LCG-I y RNS-LCG-II Clase A.

RNS-MWCG-I RNS-MWCG-II Simulación

Complejidadzipping Complejidadzipping 0 1,0001621 1,0001622 1 1,0001622 1,0001622 2 1,0001622 1,0001622 3 1,0001621 1,0001623 4 1,0001622 1,0001622 5 1,0001622 1,0001622 6 1,0001621 1,0001622 7 1,0001622 1,0001622 8 1,0001622 1,0001622 9 1,0001621 1,0001622

Tabla 76 Complejidadzipping de 10 series para los generadores RNS-MWCG-I y RNS-MWCG-II Clase A.

RNS-ICG-I RNS-ICG-II Simulación

Complejidadzipping Complejidadzipping 0 1,0001622 1,0001622 1 1,0001622 1,0001622 2 1,0001621 1,0001622 3 1,0001622 1,0001623 4 1,0001621 1,0001622 5 1,0001623 1,0001622 6 1,0001622 1,0001622 7 1,0001622 1,0001622 8 1,0001623 1,0001622 9 1,0001622 1,0001622

Tabla 77 Complejidadzipping de 10 series para los generadores RNS-ICG-I y RNS-ICG-II Clase A.

Page 220: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

208

RNS-AWCG-I RNS-AWCG-II Simulación Complejidadzipping Complejidadzipping

0 1,0001622 1,0001622 1 1,0001621 1,0001622 2 1,0001623 1,0001622 3 1,0001622 1,0001622 4 1,0001622 1,0001622 5 1,0001621 1,0001623 6 1,0001622 1,0001621 7 1,0001622 1,0001622 8 1,0001624 1,0001622 9 1,0001621 1,0001622

Tabla 78 Complejidadzipping de 10 series para los generadores RNS-AWCG-I y RNS-AWCG-II Clase A.

RNS-SWBG-I RNS-SWBG-II Simulación

Complejidadzipping Complejidadzipping 0 1,0001621 1,0001622 1 1,0001622 1,0001622 2 1,0001622 1,0001623 3 1,0001622 1,0001623 4 1,0001622 1,0001622 5 1,0001621 1,0001621 6 1,0001621 1,0001623 7 1,0001622 1,0001621 8 1,0001621 1,0001622 9 1,0001622 1,0001622

Tabla 79 Complejidadzipping de 10 series para los generadores RNS-SWBG-I y RNS-SWBG-II Clase A.

Para los generadores Clase B la longitud de todos los archivos sin comprimir es de 12.000.000 de bytes. En todos los casos la relación de compresión es del 0% y el archivo compactado ocupa 12.003.785 bytes. Con lo que se obtiene como resultado: Complejidadzipping = 1,000315417. Los archivos son incomprimibles mediante este procedimiento. Finalmente los generadores Clase C tienen todos una longitud de 11.999.992 bytes sin comprimir. Para cada serie la relación de compresión es del 0% y el archivo compactado ocupa 12.001.947 bytes. Nuevamente los algoritmos que emplea el programa WinZip no logran comprimir a los archivos presentados. El resultado es: Complejidadzipping = 1,000162917.

Cómputo del exponente de Hurst Para el cálculo del exponente de Hurst se trabajó en cada serie con 100.000 puntos de 32 bits cada uno. En cálculo se realizó de manera tal que se pudieran graficar 500 puntos sobre los ejes log(R/S)–log(Nº de observaciones) a fin de lograr resultados con poco error.

Page 221: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

209

Generador Exponente de Hurst

RNS-AWCG-I 0,53606 RNS-AWCG-II 0,51546 RNS-ICG-I 0,51028 RNS-ICG-II 0,52445 RNS-LCG-I 0,52967 RNS-LCG-II 0,52944 RNS-MWCG-I 0,50924 RNS-MWCG-II 0,51272 RNS-SWBG-I 0,51624

C L A S E A

RNS-SWBG-II 0,50706 RNS-AWCG-I 0,52686 RNS-AWCG-II 0,52355 RNS-ICG-I 0,50739 RNS-ICG-II 0,52119 RNS-LCG-I 0,52119 RNS-LCG-II 0,52314 RNS-MWCG-I 0,53294 RNS-MWCG-II 0,52427 RNS-SWBG-I 0,52465

C L A S E B

RNS-SWBG-II 0,52167 RNS-AWCG-I 0,52356 RNS-AWCG-II 0,51965 RNS-ICG-I 0,50670 RNS-ICG-II 0,52476 RNS-LCG-I 0,51033 RNS-LCG-II 0,52219 RNS-MWCG-I 0,53482 RNS-MWCG-II 0,52093 RNS-SWBG-I 0,51715

C L A S E C

RNS-SWBG-II 0,51897 Uniforme 0,52689 MWCG 0,52616 MTHR4 0,52328 SWBMWC 0,52253

Tabla 80 Exponente de Hurst para cada uno de los generadores.

Para el cálculo de H se realizó un programa según el algoritmo descripto en [PET91] y [PET95] en lenguaje C. Nótese que, aún para las series testigo, H no es igual a 0,5 sino que está alrededor de 0,52. Este pequeño apartamiento puede deberse, ver “Figura 127”, a que la gráfica se va apartando de una línea recta a medida que aumenta el número de observaciones, esto se debe a que se promedia sobre un número menor de niveles de agregación. Por lo que en general para el cálculo de la recta por el método de mínimos cuadrados se descartan los valores mayores de la gráfica. Al no existir un criterio claro en la bibliografía que diga sobre que rango de valores hay que trabajar se tomaron todos. Para contrastar los resultados se realizaron los mismos cálculos con el programa H.A.T.A.A. (Herramienta de Análisis de Trafico Telemático Autosemejante) realizado por José Nadal Bravo, de la Universidad de Málaga, y el script para MatLab hecho por Guiovanna

Page 222: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

210

Paola Sabogal Alfaro y José Félix Vega Stavro de la Fundación Universitaria Manuela Beltrán, Colombia. En el primer caso todos los valores de H estuvieron en el entorno de 0,53, en el segundo, alrededor de 0,46. La discrepancia se puede deber a que en estos casos el algoritmo de cálculo es más veloz pero aproximado.

EJEMPLO DE APLICACIÓN DE LOS GENERADORES PROPUESTOS Para ejemplificar el empleo de los generadores propuestos se tomó su uso en el encriptado de imágenes. El algoritmo de encriptamiento es el siguiente. Se tomo la imagen en el formato BMP (Bit MaP) de la “Figura 142” y se realizó la operación orexclusiva bit a bit entre una de las series del generador RNS-LCG-I y el contenido de la imagen. La información de cabecera, a fin de poder ver el resultado en cualquier visualizador de este tipo de imágenes, se dejó inalterada. El resultado se puede ver en la “Figura 143”.

Si bien existen mecanismos de encriptado mucho más elaborados que el presentado aquí, se usa este por su sencillez y al sólo objeto de mostrar cualitativamente una de las aplicaciones de los GNPAs.

Figura 142 Imagen en el formato BMP a encriptar.

Page 223: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

211

Figura 143 Imagen anterior encriptada.

ANÁLISIS CIRCUITAL DE LOS GNPAs PROPUESTOS Como resultado de los estudios realizados en los “CAPÍTULO 2. TÉCNICAS DE

CONVERSIÓN BINARIO-RNS-BINARIO” y “CAPÍTULO 3. OPERACIONES ARITMÉTICAS

MEDIANTE RESIDUOS” es fácil determinar la complejidad de cada GNPA y su frecuencia de funcionamiento siguiendo los siguientes pasos (ver las “Figura 131” a la “Figura 137”): ♦ Puesto que el conversor RNS a binario necesita elementos de memoria, para la elección de los bloques aritméticos se tomaron aquellos que se simularon en la familia FLEX y utilizando la técnica de segmentación. ♦ Los bloques aritméticos elegidos son el sumador híbrido mediante tabla de búsqueda y el multiplicador indexado. Ambos emplean bloques de memoria para su síntesis. ♦ Para los GNPAs propuestos en los que se debe realizar la sumatoria de la salida de todos los canales menos el propio, se emplea una cadena de sumadores binarios con segmentación, se resta el valor del canal correspondiente y se toma módulo mediante una tabla de búsqueda. Esta estrategia emplea menos hardware que realizar la sumatoria para cada canal de manera independiente. ♦ En los generadores en los que hay que calcular la or exclusiva bit a bit de la salida de todos los canales, menos el propio, y realimentar el resultado se procede de la siguiente forma: se computa la or exclusiva de todos los canales y antes de realimentar se hace la or exclusiva con la salida del canal al que se realimenta. Al igual que con la suma esto requiere menos hardware que realizar el cálculo para cada canal de manera independiente. ♦ A los generadores Clase C hay que agregarle el hardware correspondiente al circuito de corrección.

Page 224: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

212

♦ Para el cálculo del multiplicativo inverso en los generadores RNS-ICG se utiliza una tabla de búsqueda para calcular a–1. ♦ En los generadores RNS-MWCG el cálculo del acarreo se realiza mediante una tabla de búsqueda. ♦ En los generadores RNS-AWCG y RNS-SWBG el cálculo del acarreo se realiza mediante una tabla de búsqueda. ♦ La frecuencia de funcionamiento queda limitada por el circuito más lento que es el de conversión de RNS a binario.

Los resultados, para los conjuntos m1 y m2, para los distintos generadores se muestran en la “Tabla 81”.

Generador Frec.

(Mhzs) LC EABs

RNS-LCG-I 30,80 1.161 33 RNS-LCG-II 30,80 1.133 33 RNS-MWCG-I 30,80 1.280 42 RNS-MWCG-II 30,80 1.252 41 RNS-ICG-I 30,80 1.161 34 RNS-ICG-II 30,80 1.133 34 RNS-AWCG-I 30,80 1.150 18 RNS-AWCG-II 30,80 1.170 18 RNS-SWBG-I 30,80 1.150 18

C L A S E

A

RNS-SWBG-II 30,80 1.170 18 RNS-LCG-I 30,21 1.018 25 RNS-LCG-II 30,21 993 25 RNS-MWCG-I 30,21 1.129 32 RNS-MWCG-II 30,21 1.104 31 RNS-ICG-I 30,21 1.018 26 RNS-ICG-II 30,21 993 26 RNS-AWCG-I 30,21 1.013 14 RNS-AWCG-II 30,21 1.028 14 RNS-SWBG-I 30,21 1.013 14

C L A S E

B

RNS-SWBG-II 30,21 1.028 14 RNS-LCG-I 30,21 1.180 25 RNS-LCG-II 30,21 1.155 25 RNS-MWCG-I 30,21 1.129 32 RNS-MWCG-II 30,21 1.266 31 RNS-ICG-I 30,21 1.180 26 RNS-ICG-II 30,21 1.155 26 RNS-AWCG-I 30,21 1.175 14 RNS-AWCG-II 30,21 1.190 14 RNS-SWBG-I 30,21 1.175 14

C L A S E

C

RNS-SWBG-II 30,21 1.190 14

Tabla 81 Comportamiento circuital de los GNPAs propuestos.

Page 225: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Generadores pseudoaleatorios mediante el RNS

213

COMPARACIÓN DE LOS GNPAs PROPUESTOS CON LOS GENERADORES LINEALES CONGRUENTES Si bien la dinámica de GNPAs propuestos es distinta a la de los generadores lineales congruentes se realizó un estudio comparativo para el LCG realizado en aritmética común y en el RNS. El objeto es mostrar las ventajas que presenta la aritmética de residuos con respecto al empleo de la aritmética tradicional en ciertos casos. De manera que se tomaron dos casos testigos. El primero es un generador de 32 bits y el segundo de 33. Para el primer generador se utiliza la ecuación de recurrencia:

3221 723.176.735.469.9631.294.4 += −ii xx

En este caso se trabajó con 32 bits porque es una potencia exacta de 2, razón por la

cual tomar módulo 232 consiste simplemente en tomar los 32 bits menos significativos. Ahora bien, si se desea trabajar con más bits y el número de estos no es una potencia exacta de 2, para darle una mayor generalidad al problema, la situación se complica por el hecho de tener que realizar una división y quedarse con el resto para obtener el resultado. Para este caso se trabajó con 33 bits y módulo M = 8.154.657.291. Se tomó este valor de M pues es el rango dinámico de uno de los conjuntos, m1, con los que se ha venido trabajando en este capítulo. Para el segundo caso se tiene entonces:

291.657.154.81 339.931.359.8055.934.589.8 += −ii xx

Se realizaron los circuitos correspondientes en aritmética euclidiana y se simularon. Además el segundo caso también se implementó en el RNS. En todos los casos se utilizó la técnica de segmentación colocando a la salida de cada bloque un conjunto de registros. Los resultados se muestran el la “Tabla 82”. Se puede apreciar que cuando el rango dinámico es arbitrario el sistema implementado en el RNS es muy superior. A medida que aumenta el número de bits con que trabaja el generador la diferencia es más notable aún.

Número de bits

Módulo Aritmética Frec.

(Mhzs) LC EABs

32 232 Euclidiana 33,55 471 33 8.154.657.291 Euclidiana 1,05 1.902 33 8.154.657.291 RNS 30,80 1.073 32

Tabla 82 Realización de LCGs en aritmética común y en el RNS.

Page 226: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aportes y conclusiones

214

Aportes y Conclusiones

5

[EST08]

El denominado Camino del Inca era una extensa red que integraba todo el imperio. Había cuatro caminos principales: a) de Cusco a Quito (Ecuador) y a Pasto (Colombia), b) de Cusco a Nazca (en el centro de Perú) y a Tumbes (en la actual frontera Perú-Ecuador), c) de Cusco a Chuquiago (La Paz, Bolivia) y d) de Cusco a Arica y Atacama (Chile), con ramales hasta el río Maule (Chile) y a Tucumán (Argentina). El camino más importante y extenso era el denominado Cápac Ñan, o camino real, que tenía una longitud de 5.200 kilómetros, se iniciaba en Quito, pasaba por Cusco y terminaba en Tucumán; durante su recorrido se atravesaban montañas y sierras con alturas de más de 5.000 metros. Otro camino importante era el de la Costa que, tenía una extensión de 4.000 kilómetros, su recorrido era paralelo al mar y disponía de muchas rutas que lo comunicaban con el Cápac Ñan. En ambos caminos existían cada cierta distancia lugares, denominados tambos, donde se almacenaban granos y alimentos en reserva para el paso del ejército imperial cuando salía de campaña o en busca de nuevas conquistas. Los caminos tenían un ancho máximo de cuatro metros. [WIK08]. Luego de recorrer un camino, largo o corto, fácil o sinuoso, se suele encontrar, para decepción o como nueva esperanza para el viajero, una bandera que sólo indica un nuevo punto de partida.

Page 227: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aportes y conclusiones

215

CAPÍTULO 5. APORTES Y CONCLUSIONES

Aunque el RNS ha visto limitada su aplicación hasta hace pocos años debido a sus características especiales, los recientes y continuos avances en el campo de la microelectrónica han posibilitado su aplicación en distintos campos. En efecto, las nuevas escalas de integración y las modernas FPGAs abren todo un nuevo campo de aplicaciones al permitir incluir en un único circuito integrado todo el soporte necesario para realizar procesamiento digital de señales de manera competitiva con la aritmética en complemento a 2. Las características de modularidad e independencia de los canales de trabajo hacen que el RNS no sólo sea una alternativa válida en circuitos aritméticos de alta performance. Las características distintivas del RNS lo hacen una alternativa atractiva en circuitos aritméticos tolerantes a fallas [KRI94]. Este tipo de circuitos proveen resultados correctos aún con una o más fallas en los procesadores de trabajo. De manera que el RNS no sólo permite realizar cómputos aritméticos de altas prestaciones sino que también lo puede realizar de manera más confiable. El estudio de las distintas alternativas para la realización, tanto de conversores binario-RNS-binario como de circuitos aritméticos, mostró que sus prestaciones dependen mucho del soporte o tecnología sobre el que se concreten. Por ejemplo, dentro del campo de las FPGAs, según se vio en el “CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE

RESIDUOS”, se muestra que hay una diferencia importante entre trabajar con dispositivos lógicos programables que realizan la síntesis mediante suma de términos producto o mediante tablas de búsqueda. Los circuitos lógicos programables son una herramienta de bajo costo y muy útil al momento de implementar prototipos y realizar comparaciones de distintas implementaciones o algoritmos de un mismo problema.

PRINCIPALES APORTES

Los principales aportes originales de esta tesis son: ♦ Se propuso una variante del ORNS denominada ORNS2 que permite reducir el número de transistores necesarios para realizar la suma en este sistema a aproximadamente la mitad. Avanzando más en esta línea se puede continuar mejorando las prestaciones, reduciendo el número de transistores a la tercera parte, y así siguiendo (“Sistema numérico de residuos one-hot

propuesto (ORNS2)”).

♦ Se realizó un amplio estudio comparativo entre distintos circuitos sumadores y multiplicadores en módulo sintetizados en circuitos lógicos programables según sumas de productos y según tablas de búsqueda.

Page 228: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aportes y conclusiones

216

♦ Según se vio en “Suma en RNS mediante tablas de verdad” y en “Multiplicación mediante tablas de

verdad” la simplificación previa de la tabla de verdad a sintetizar mediante el programa espresso y su descripción mediante el lenguaje VHDL, da mejores resultados que la representación directa de la misma en AHDL. Al menos en el Max+Plus II.

♦ Se analizó la conveniencia de utilizar una realización del circuito mediante FPGAs con arquitecturas basadas en sumas de términos producto, en lugar de hacerlo con tablas de búsqueda, cuando se debe sintetizar una tabla de verdad con muchas variables y muchas funciones comprobándose que, en estos casos, los resultados en cuanto a velocidad de funcionamiento y recursos de hardware son superiores en la familia MAX. Esta conclusión vale tanto para la suma como para la multiplicación en módulo operandos de n bits dan como resultado un número de n bits. Esto pareciera indicar que los circuitos sintetizados para realizar estas operaciones a partir de sus tablas de verdad tendrían la misma complejidad, sin embargo, según se mostró en “Suma en RNS mediante tablas de verdad” y en “Multiplicación mediante

tablas de verdad” la performance de los circuitos multiplicadores es inferior a la de los sumadores. Esto se debe a que si se ven los minitérminos de ambos circuitos en un mapa de Veitch-Karnaugh, para la suma en módulo, estos aparecen más agrupados que en el caso del producto.

♦ En “Arquitectura propuesta” del “CAPÍTULO 3. OPERACIONES ARITMÉTICAS MEDIANTE

RESIDUOS” se propone un nuevo esquema circuital para los circuitos sumadores híbridos que es claramente superior en cuanto a velocidad y hardware con respecto al sumador híbrido tradicional cuando se implementa en la familia MAX.

♦ Se desarrollaron nuevos generadores de números pseudoaleatorios, que trabajan en el RNS, partiendo de los generadores lineales congruentes, pero que tienen una dinámica distinta a estos. Para cada uno de los generadores se utilizaron distintas estrategias de diseño. Se realizó además el testeo de la aleatoriedad de los mismos mediante distintas técnicas: a) clásica (análisis de autocorrelación y espectro), b) batería de test Diehard, c) teoría de complejidad estadística, d) complejidad de zipping y e) exponente de Hurst. ♦ Se comprobó que la aritmética de residuos presenta mejores prestaciones con respecto a la aritmética en complemento a 2 para los generadores congruentes cuando el rango dinámico no es una potencia de dos.

TRABAJOS FUTUROS ♦ Se continuará investigando para obtener nuevos generadores de números aleatorios. Los GNPAs propuestos trabajan en forma vectorial es decir una serie de canales que trabajan en paralelo. Se pueden pensar otras configuraciones, por ejemplo, una matricial, en la cual cada componente es un generador congruente que es perturbado de la misma forma que los generadores propuestos. ♦ Se propusieron 10 nuevos GNPAs, cada uno en tres versiones (Clase A, B y C) que superaron los tests descriptos. Se estudiaron otras estructuras similares que no superaron los estudios de aleatoriedad. A estos últimos se le correrán test para determinar si las secuencias generadas son caóticas.

Page 229: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Aportes y conclusiones

217

♦ Se estudiará el empleo de otros generadores conocidos, en lugar de los congruentes, y trabajarlos de la misma forma que se hizo en esta tesis. Es decir un pequeño generador en cada canal y perturbado por los restantes. ♦ Uso de la aritmética de residuos para mejorar la performance de otros generadores pseudoaleatorios descriptos en la bibliografía.

Page 230: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

218

Referencias

R

La biblioteca de Alejandría

44 fue

la biblioteca más grande de la antigüedad. En el año 640 DC fue destruida por el fuego. Conservaba más de 700.000 rollos de papiro con obras, entre otras, de literatura, filosofía y ciencias. Cada obra estaba numerada en catálogos que citaban el principio de cada texto. Algunos de esos listados se han conservado hasta hoy. La biblioteca también organizó trabajos de investigación y allí se tradujo la primera Biblia al griego. Por sus pasillos meditaron, por ejemplo, Filon y Arquímedes.

44 Según algunos historiadores, ver imagen, la columna de Pompeyo pertenece al pórtico de la biblioteca anexa a la gran biblioteca que albergaba el Serapeion. Esta columna está hecha de granito rosa de Assuan, con una altura de 26,85 metros y un diámetro de 2,70 metros. En el año 297 fue dedicada por el Prefecto de Egipto al emperador Diocleciano por su victoria frente al cristiano Aquilio.

Page 231: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

219

REFERENCIAS

Se presenta a continuación las referencias de los trabajos sobre aritmética de residuos recogida a lo largo de este trabajo. Se decidió incluir no sólo aquellos trabajos referenciados en esta tesis, sino que también se detallan todos los artículos que tienen que ver con el tema y que posee el autor de esta tesis. De esta manera se cuenta con una base de información lo más completa posible a fin de facilitar la tarea al lector interesado.

Las referencias se encuentran ordenadas según el código empleado por el autor, en este cada referencia se codifica mediante tres letras mayúsculas, que corresponden a las primeras tres letras del apellido del primer autor, y a continuación el año de la publicación. De tener el autor dos o más publicaciones el mismo año se comienza a agregar al final del código una letra minúscula, por ejemplo SKA99, SKA99a, SKA99b.

Código

Título, autor, publicación, fecha.

ABD05 On MultiModuli Residue Number Systems With Moduli of Forms ra, rb-1, rc-1 Abdallah, M.; Skavantzov, A. Transactions on Circuits and Systems I: Regular Papers. Volumen. 52, Nº. 7, Julio 2005. Página(s): 1253-1266

ABD95 A systematic approach for selecting practical moduli sets for residue number systems Abdallah, M.; Skavantzos, A. System Theory, 1995, Proceedings of the Twenty-Seventh Southeastern Symposium on, 1995, Página(s): 445-449

ABD96 New multi-moduli residue and quadratic residue systems for large dynamic ranges Abdallah, M.; Skavantzos, A. Signals, Systems and Computers, 1995. Conference Record of the Twenty-Ninth Asilomar Conference on Volumen: 2, 1996, Página(s): 961-965

ABD97 On the binary quadratic residue system with noncoprime moduli Abdallah, M.; Skavantzos, A. Signal Processing, IEEE Transactions on Volumen: 45 8, Agosto 1997, Página(s): 2085-2091

ABD99 The multipolynomial channel polynomial residue arithmetic system Abdallah, M.; Skavantzov, A. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 46 2, Febrero 1999, Página(s): 165-171

ACT07 http://www.actel.com ALI84 A VLSI algorithm for direct and reverse conversion from weighted binary number system to residue number

system Alia, G.; Martinelli, E.; Circuits and Systems, IEEE Transactions on, Volumen: 31 Número: 12, Diciembre 1984 Página(s): 1033-1039

ALI91 A VLSI modulo m multiplier Alia, G.; Martinelli, E. Computers, IEEE Transactions on Volumen: 40 7, Julio 1991, Página(s): 873-878

ANA91 Novel RNS to binary converters Ananda Mohan, P.V.; Poornaiah, D.V. Circuits and Systems, 1991, IEEE International Sympoisum on, 1991, Página(s): 1541-1544 3

ANA98 Evaluation of fast conversion techniques for binary-residue number systems Ananda Mohan, P.V. Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on Volumen: 45 10, Octubre 1998, Página(s): 1107-1109

AND88 A new efficient memoryless residue to binary converter Andraos, S.; Ahmad, H. Circuits and Systems, IEEE Transactions on Volumen: 35 11, Noviembre 1988, Página(s): 1441-1444

AND88 A new efficient memoryless residue to binary converter Andraos, S.; Ahmad, H.; Circuits and Systems, IEEE Transactions on, Volumen: 35 Número: 11, Noviembre 1988 Página(s): 1441-1444

AND96 Fixed point unsigned fractional representation in residue number system Andraos, S. Circuits and Systems, 1996, IEEE 39th Midwest symposium on Volumen: 1, 1996, Página(s): 555-558 Volumen: 1

Page 232: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

220

ARI95 Hardware implementation of Chinese remainder theorem using redundant binary representation Ariyama, K.; Toyoshima, H. VLSI Signal Processing, VIII, 1995. IEEE Signal Processing Society [Workshop on], 1995, Página(s): 552-561

ARN01 Sistema de transmisión para uso médico basado en rayos infrarrojos. Arnone, L.; González, C. M.; Gayoso, C. A.; Ivorra, A.; Martin, D. Anales Séptimo Workshop Iberchip. http://www.iberchip.org/VII/cd_nav.html. S-3, págs, 1 a 11, Marzo de 2001, Montevideo, Uruguay.

ARN02 Desarrollo de un sistema integral de biotelemetría: monitorización remota de señales biológicas. Arnone L.; Gayoso, C. A. González, C. M. VIII Workshop de Iberchip. http://www.iberchip.org /VIII/click.html. Guadalajara, México, 2002.

ARN02a Diseño de un codificador cíclico programable para ser utilizado en comunicaciones infrarrojas interiores. Arnone L.; Gayoso, C. A.; González, C. M. VIII Workshop de Iberchip. http://www.iberchip.org /VIII/click.html. Guadalajara, México, 2002.

ARN03 Diseño de un decodificador Vitervi para ser utilizado en enlaces infrarrojos. L. Arnone, C. A. Gayoso, C. González, J. García y J. Castiñeira. Anales IX Workshop Iberchip. http://www.iberchip.org /IX/pages/index.html. 26 al 28 de marzo de 2003. Habana, Cuba. Pág. 43

ARN03a Logic programmable implementation of convolutional coding for indoors infrared links. L. Arnone, J. Castiñeira, C. Gayoso, C. González. X RPIC. 10 al 12 de octubre de 2003. Universidad Tecnológica Nacional, Facultad Regional San Nicolas. Anales vol. II pág 781 a 785.

ARN04 Implementación de códigos de paridad de baja densidad en lógica programable usando sumas y restas. Arnone L., Gayoso C., González C. Castiñeyra J. IV Jornadas de Computación Reconfigurable y Aplicaciones. Septiembre de 2004. Barcelona. España.

ARN05 A LDPC logarithmic decoder implementation. Arnone L., Gayoso C., González C., Castiñeyra J. Fuente: 2005 VIII International Symposium on Communications Theory and Applications. Páginas: 356-361. Editorial: Published by HW Communications Ltd. Fecha y lugar de Edición: St. Martin´s College, Ambeside, UK. July 2005. ISBN: 0-85316-2441.

ARN06 Pantalla electrónica inalámbrica. XII Workshop de Iberchip. http://www.iberchip.org /iws2006/index.html. San José de Costa Rica, Costa Rica. 22 de marzo de 2006. Casas R., Giovanazzi D., Arnone L., Castiñeira J., Gayoso, C. A.,Chacón A.

ARN07 Sum-Subtract Fixed Point LDPC Decoder. Latin American Applied Research. (ISSN 0327-0793 ) Vol 37. Pag 17-20. 2007. Arnone L., Gayoso C., González C. and Castiñeyra J.

ARN07a Analisys and Fpga Implementation of Combined Error-Control and Encryption Schemes. Arnone L., Gayoso C., González C., Castiñeyra J. and Liberatori M. Fuente: 2007 3rd Southern Conference on Programmable Logic. Páginas: 87-90. Editores: E. Boemo, G. Sutter, E. Todorovich y S. Lopez-Buedo. Fecha y lugar de Edición: Mar del Plata, febrero 2007. ISBN: 978-84-611-4716-8.

ARN07b Uso de códigos de decodificación iterativa para mejorar la transmisión de mensajes cifrados con AES. Arnone L., Castiñeyra J., Liberatori M., Gayoso C. and González C. Fuente: XIII Workshop de Iberchip. http://www.iberchip.org /iws2007/index.html. Páginas: 245-248. Editores: V. López Guzmán. Editorial HOZLO SRL Fecha y lugar de Edición: Lima, Perú, marzo 2007. ISBN: 978-9972-242-09-0.

ARN07c Security and BER performance trade-off in wireless communication systems applications. Arnone L., González C., Gayoso C., Moreira C., Liberatori M. Décimo Segunda Reunión de Trabajo en Procesamiento de la Información y Control RPIC2007. Editores: Unidad Académica Rio Gallegos, Universidad Nacional de la Patagonia Austral. Fecha y lugar de Edición: Río Gallegos, octubre 2007. ISBN: 978-987-1242-24-5.

BAJ04 A full RNS implementation of RSA Bajard, J.-C.; Imbert, L. Computers, IEEE Transactions on Volumen: 53 6, Junioio 2004, Página(s): 766-774

BAJ97 An RNS Montgomery modular multiplication algorithm Bajard, J.-C.; Didier, L.-S.; Kornerup, P. Computer Arithmetic, 1997. Proceedings, 13th IEEE Symposium on, 1997, Página(s): 234-239

BAJ98 An RNS Montgomery modular multiplication algorithm Bajard, J.-C.; Didier, L.-S.; Kornerup, P. Computers, IEEE Transactions on Volumen: 47 7, Julio 1998, Página(s): 766-776

BAN88 A systolic array for fault tolerant digital signal processing using a residue number system approach Bandyopadhyay, S.; Jullien, G.A.; Sengupta, A. Systolic Arrays, 1988, Proceedings of the International Conference on, 1988, Página(s): 577-586

BAN88 A systolic array for fault tolerant digital signal processing using a residue number system approach Bandyopadhyay, S.; Jullien, G.A.; Sengupta, A.; Systolic Arrays, 1988, Proceedings of the International Conference on, 25-27 Mayo 1988 Página(s): 577-586

BAR05 Measuring complexity with zippers Baronchelli, A. Caglioti, E, Loreto, V. European Journal of Physicas 26 (2005) Página(s): S69 – S77

BAR79 Hardware implementation of convolution using number theoretic transforms Baraniecka, A.; Jullien, G.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '79, Volumen: 4, Abril 1979 Página(s): 490-493

BAR82 Quantization error and limit cycles analysis in residue number system coded recursive filters Baraniecki, A.; Jullien, G.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '82, Volumen: 7, Mayo 1982 Página(s): 52-55

Page 233: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

221

BAR95 Fast base extension and precise scaling in RNS for look-up table implementations Barsi, F.; Pinotti, M.C. Signal Processing, IEEE Transactions on Volumen: 43 10, Octubre 1995, Página(s): 2427-2430

BAY85 An efficient VLSI adder for DSP architectures based on RNS Bayoumi, M.; Jullien, G.; Miller, W.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '85, Volumen: 10, Abril 1985 Página(s): 1457-1460

BAY85 A VLSI implementation of an FFT/NTT computational unit Bayoumi, M.; Jullien, G.; Miller, W.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '85, Volumen: 10, Abril 1985 Página(s): 192-195

BAY86 A VLSI array for computing the DFT based on RNS Bayoumi, M.; Jullien, G.; Miller, W.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '86, Volumen: 11, Abril 1986 Página(s): 2147-2150

BAY87 A VLSI implementation of residue adders Bayoumi, M. A, Jullien, G. A. Circuits and Systems, IEEE Transactions on Volumen: 34 3, Marzo 1987, Página(s): 284- 288

BAY87 A VLSI implementation of residue adders Bayoumi, M.; Jullien, G.; Miller, W.; Circuits and Systems, IEEE Transactions on, Volumen: 34 Número: 3, Mar 1987 Página(s): 284-288

BAY87 A look-up table VLSI design methodology for RNS structures used in DSP applications Bayoumi, M.; Jullien, G.; Miller, W.; Circuits and Systems, IEEE Transactions on, Volumen: 34 Número: 6, Junio 1987 Página(s): 604-616

BAY88 Reliable modulo systolic arrays for DSP algorithms Bayoumi, M.A. Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 1988, Página(s): 2076-2079 Volumen: 4

BAY88 Reliable modulo systolic arrays for DSP algorithms Bayoumi, M.A.; Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 11-14 Abril 1988 Página(s): 2076-2079 Volumen: 4

BEL97 Sistema VLSI CAD para la resolución de circuitos secuenciales. Belforti, G.; Gayoso, C. A.; González, C. M.; Arnone, L. Anales Tercer Workshop Iberchip. Febrero de 1997, México, México. Págs 288 a 297.

BEL97a Sistema VLSI CAD para la resolución de circuitos secuenciales. Belforti, G.; Gayoso, C. A.; González, C. M.; Arnone, L. Anales Comdex Infocom ´97. Marzo de 1997.

BHA98 The Renaissance-a residue number system based vector co-processor for DSP dominated embedded ASICs Bhardwaj, M.; Ljusanin, B. Signals, Systems & Computers, 1998. Conference Record of the Thirty-Second Asilomar Conference on Volumen: 1, 1998, Página(s): 202-207 Volumen: 1

BHA99 VLSI costs of arithmetic parallelism: a residue reverse conversion perspective Bhardwaj, M.; Srikanthan, T.; Clark, C.T. Computer Arithmetic, 1999. Proceedings. 14th IEEE Symposium on, 1999, Página(s): 176-184

BIZ97 Architectures and Implementations for the Polynomial Ring Engine over Small Residue Rings Bizzan, Sami. Windsor University, Ontario, Canada, 1997.

BOB89 A VLSI residue arithmetic multiplier with fault detection capability Bobin, V.; Radhakrishnan, D. Computer Design: VLSI in Computers and Processors, 1989. ICCD '89. Proceedings, 1989 IEEE International Conference on, 1989, Página(s): 348-351

BOG96 An Adventure in Maths Bogomolny Alexander. 1196-2000 http://www.cut-the-knot.com/blue/SB_props.html

BUR88 RNS Fourier transforms Burrascano, P.; Cardarilli, G.C.; Lojacono, R.; Martinelli, G.; Salerno, M. Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 1988, Página(s): 1427-1430 Volumen: 3

BUR88 RNS Fourier transforms Burrascano, P.; Cardarilli, G.C.; Lojacono, R.; Martinelli, G.; Salerno, M.; Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 11-14 Abril 1988 Página(s): 1427-1430 Volumen: 3

BUR89 RNS adaptive lattice predictor Burrascano, P.; Cardarilli, G.C.; Lojacano, R.; Martinelli, G.; Salerno, M. Circuits and Systems, IEEE Transactions on Volumen: 36 1, Jan. 1989, Página(s): 167-169

BUR90 Properties and synthesis of RNS digital circuits Burrascano, P.; Cardarilli, G.C.; Lojacono, R.; Martinelli, G.; Salerno, M. Circuits and Systems, IEEE Transactions on Volumen: 37 7, Julio 1990, Página(s): 903-911

BUR97 Scaled and unscaled residue number system to binary conversion techniques using the core function Burgess, N. Computer Arithmetic, 1997. Proceedings, 13th IEEE Symposium on, 1997, Página(s): 250-257

Page 234: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

222

BUR98 Efficient RNS to binary conversion using high-radix SRT division Burgess, N. Signals, Systems & Computers, 1998. Conference Record of the Thirty-Second Asilomar Conference on Volumen: 2, 1998, Página(s): 1240-1243 Volumen: 2

CAD89 RNS approach to fast dividers Cadarilli, G.C.; Lojacono, R.; Salerno, M. Acoustics, Speech, and Signal Processing, 1989. ICASSP-89, 1989 International Conference on, 1989, Página(s): 2389-2392 Volumen: 4

CAO07 A Residue-to-Binary converter for a new five-moduli set Cao, B.; Chang, C.-H.; Srikanthan, T.; Circuits and Systems I: Regular Papers, IEEE Transactions on [Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on] Volumen 54, Número 5, Mayo 2007 Página(s):1041- 1049

CAP88 Efficient VLSI networks for converting an integer from binary system to residue number system and vice versa Capocelli, R.M.; Giancarlo, R. Circuits and Systems, IEEE Transactions on Volumen: 35 11, Noviembre 1988, Página(s): 1425-1430

CAP88 Efficient VLSI networks for converting an integer from binary system to residue number system and vice versa Capocelli, R.M.; Giancarlo, R.; Circuits and Systems, IEEE Transactions on, Volumen: 35 Número: 11, Noviembre 1988 Página(s): 1425-1430

CAR00 Reducing Power in FIR filters using the Residue Number System Cardarilli, G. C, Nannarelli, A, Re, M. http://dspvlsi.uniroma2.it/people/cardarilli/cardarilli.html

CAR88 Structurally passive digital filters in residue number systems Cardarilli, G.C.; Lojacono, R.; Martinelli, G.; Salerno, M. Circuits and Systems, IEEE Transactions on Volumen: 35 2, Febrero 1988, Página(s): 149-158

CAR88 RNS approach to adaptive Burg algorithm Cardarilli, G.C.; Lojacono, R.; Salerno, M.; Electrotechnics, 1988. Conference Proceedings on Area Communication, EUROCON 88, 8th European Conference on, 13-17 Junioio 1988 Página(s): 130-133

CAR88a Structurally passive digital filters in residue number systems Cardarilli, G.C.; Lojacono, R.; Martinelli, G.; Salerno, M.; Circuits and Systems, IEEE Transactions on, Volumen: 35 Número: 2, Febrero 1988 Página(s): 149 –158

CAR88b RNS approach to adaptive Burg algorithm Cardarilli, G.C.; Lojacono, R.; Salerno, M. Electrotechnics, 1988. Conference Proceedings on Area Communication, EUROCON 88, 8th European Conference on, 1988, Página(s): 130-133

CAR89 RNS realization of fast fixed-point multipliers with large wordlengths Cardarilli, G.C.; Lojacono, R.; Salerno, M. Circuits and Systems, 1989, IEEE International Symposium on, 1989, Página(s): 212-215 Volumen: 1

CAR91 Single-chip RNS two port parallel adaptor for wave digital filters Cardarilli, G.C.; Sargeni, F. Euro ASIC '91, 1991, Página(s): 49-52

CAR92 VLSI RNS implementation of fast IIR filters Cardarilli, G.C.; Lojacono, R.; Salerno, M.; Sargeni, F. Circuits and Systems, 1992, Proceedings of the 35th Midwest Symposium on, 1992, Página(s): 1245-1248 Volumen: 2

CAR92a Single chip implementation of real time RNS IIR digital filters Cardarilli, G.C.; Lojacono, R.; Salerno, M.; Sargeni, F. Euro ASIC '92, Proceedings, 1992, Página(s): 314-317

CAR97 Efficient modulo extraction for CRT based residue to binary converters Cardarilli, G.C.; Re, M.; Lojacono, R. Circuits and Systems, 1997. ISCAS '97, Proceedings of 1997 IEEE International Symposium on Volumen: 3, 1997, Página(s): 2036-2039 Volumen: 3

CAR97a A new RNS FIR filter architecture Cardarilli, G.C.; Re, M.; Lojacono, R. Digital Signal Processing Proceedings, 1997. DSP 97, 1997 13th International Conference on Volumen: 2, 1997, Página(s): 671-674 Volumen: 2

CAR98 A high speed VLSI architecture for scaled residue to binary conversion Cardarilli, G.C.; Re, M.; Lojacono, R.; Ferri, G. Circuits and Systems, 1998. ISCAS '98. Proceedings of the 1998 IEEE International Symposium on Volumen: 2, 1998, Página(s): 414-416 Volumen: 2

CAR98a RNS-to-binary conversion for efficient VLSI implementation Cardarilli, G.C.; Re, M.; Lojacono, R. Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on Volumen: 45 6, Junioio 1998, Página(s): 667-669

CAS05 Watermarking strategies for RNS-based system intellectual property protection Castillo, E.; Parrilla, L.; Garcia, A.; Lloris, A.; Meyer-Baese, U.; Signal Processing Systems Design and Implementation, 2005. IEEE Workshop on 2-4 Noviembre 2005 Página(s):160- 165

CAS06 RNS-based Watermarking for IP Cores Castillo, E.; Garcia, A.; Parrilla, L.; Lloris, A.; Meyer-Baese, U.; Research in Microelectronics and Electronics 2006, Ph. D. 12-15 Junioio 2006 Página(s):357- 360

CHA91 I/O translation circuits for a systolic RNS matrix multiplier Chard, G.F.; Leung, Y.-Y.J. Circuits and Systems, 1990, Proceedings of the 33rd Midwest Symposium on, 1991, Página(s): 385-388 Volumen: 1

Page 235: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

223

CHA95 Multi-reference neighborhood search for vector quantization by self-organized featured map Chan, K.W.; Chan, K.L. Image Processing and its Applications, 1995, Fifth International Conference on, 1995, Página(s): 579-583

CHA95a Multi-reference neighborhood search for vector quantization by neural network prediction and self-organized feature map Chan, K.W.; Chan, K.L. Neural Networks, 1995. Proceedings, IEEE International Conference on Volumen: 4, 1995, Página(s): 1898-1902 Volumen: 4

CHE89 Design of a residue number system digital correlator for real-time processing in ultrasonic blood flow measurements Chen, J.T.; Jenkins, W.K. Circuits and Systems, 1989, IEEE International Symposium on, 1989, Página(s): 208-211 Volumen: 1

CHE90 Design and implementation of a high speed residue number system correlator for ultrasonic time domain blood flow measurement Chen, J.T.; Jenkins, W.K.; Hein, I.A.; O'Brien, W.D, Jr. Circuits and Systems, 1990, IEEE International Symposium on, 1990, Página(s): 2893-2896 Volumen: 4

CHI91 A general division algorithm for residue number systems Chiang, J.-S.; Lu, M. Computer Arithmetic, 1991. Proceedings, 10th IEEE Symposium on, 1991, Página(s): 76-83

CHI94 New bit-serial VLSI implementation of RNS FIR digital filters Chin-Liang Wang Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 41 11, Noviembre 1994, Página(s): 768-772

CHI95 Error analysis of approximate Chinese-remainder-theorem Diciembreoding Ching Yu Hung; Parhami, B. Computers, IEEE Transactions on Volumen: 44 11, Noviembre 1995, Página(s): 1344-1348

CHR94 Area and latency improvements for direct digital synthesis using the residue number system Chren, W.A, Jr. Circuits and Systems, 1994, Proceedings of the 37th Midwest Symposium on Volumen: 1, 1994, Página(s): 269-273 Volumen: 1

CHR95 One-hot residue coding for high-speed non-uniform pseudo-random test pattern generation Chren, W.A. Circuits and Systems, 1995. ISCAS '95, 1995 IEEE International Symposium on Volumen: 1, 1995, Página(s): 401-404 Volumen: 1

CHR95a RNS-based enhancements for direct digital frequency synthesis Chren, W.A. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 42 8, Agosto 1995, Página(s): 516-524

CHR96 Delta-sigma demodulator with large oversampling ratio using the one-hot residue number system Chren, W.A, Jr. Circuits and Systems, 1996. ISCAS '96, Connecting the World, 1996 IEEE International Symposium on Volumen: 2, 1996, Página(s): 473-476 Volumen: 2

CHR98 One-hot residue coding for low delay-power product CMOS design Chren, W.A. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 45 3, Marzo 1998, Página(s): 303-313

CIE03 Parallel FPGA implementation of RSA with residue number systems- can side-channel threats be avoided? Ciet, M.; Neve, M.; Peeters, E.; Quisquater, J.-J.; Circuits and Systems, 2003. MWSCAS '03. Proceedings of the 46th IEEE International Midwest Symposium on Volumen 2, 27-30 Diciembre. 2003 Página(s):806- 810 Volumen: 2

CIR90 RNS neural networks Martinelli, G.; Perfetti, R. Circuits and Systems, 1990, IEEE International Symposium on, 1990, Página(s): 2955-2958 Volumen: 4

CIR96 Proceedings of the 39th Midwest Symposium on Circuits and Systems Circuits and Systems, 1996, IEEE 39th Midwest symposium on Volumen: 1, 1996

CLE85 A modified definition of symmetric RNS improving scaling and overflow-detection Clemens, K.; Circuits and Systems, IEEE Transactions on, Volumen: 32 Número: 4, Abril 1985 Página(s): 412 –413

CON99 Fast converter for 3 moduli RNS using new property of CRT Conway, R.; Nelson, J. Computers, IEEE Transactions on Volumen: 48 8, Agosto 1999, Página(s): 852-860

DAS94 A novel efficient parallel algorithm for RNS to binary conversion for arbitrary moduli set Das, A. Acoustics, Speech, and Signal Processing, 1994. ICASSP-94, 1994 IEEE International Conference on Volumen: ii, 1994, Página(s): II/485-II/488 Volumen: 2

DEM07 Zipping characterization of chaotic sequences used in spread spectrum communication systems De Micco, L.; Arizmendi, C.; Larrondo, H. American Institute of Physics Conference Proceedings 913, ISBN 913 978-0-7354-0421-2, 238 páginas, pp 139-144. (2007)

DEN89 Algorithm and architecture design for the implementation of high order FIR filters using the residue number system Dennis, A.M.; Marshall, C.B.; Burgess, I.A. Signal Processing Applications of Finite Field Mathematics, IEE Colloquium on, 1989, Página(s): 1/1-1/5

Page 236: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

224

DIC88 Parallel error correction algorithm in RNS VLSI digital circuits Di Claudio, E.D.; Orlandi, G.; Piazza, F. Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 1988, Página(s): 1738-1741 Volumen: 3

DIC88 Parallel error correction algorithm in RNS VLSI digital circuits Di Claudio, E.D.; Orlandi, G.; Piazza, F.; Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 11-14 Abril 1988 Página(s): 1738-1741 Volumen: 3

DIC90 A fast binary arithmetic implementation of RNS DSP processors Di Claudio, E.D.; Orlandi, G.; Piazza, F. Circuits and Systems, 1990, IEEE International Symposium on, 1990, Página(s): 2120-2123 Volumen: 3

DIC90a Fast RNS DSP algorithms implemented with binary arithmetic Di Claudio, E.D.; Orlandi, G.; Piazza, F. Acoustics, Speech, and Signal Processing, 1990. ICASSP-90, 1990 International Conference on, 1990, Página(s): 1531-1534 Volumen: 3

DIC95 Fast combinatorial RNS processors for DSP applications Di Claudio, E.D.; Piazza, F.; Orlandi, G. Computers, IEEE Transactions on Volumen: 44 5, Mayo 1995, Página(s): 624-633

DIM96 A residue number system implementation of real orthogonal transforms via approximation over a direct product of quadratic number rings Dimitrov, V.S.; Jullien, G.A.; Miller, W.C. Circuits and Systems, 1996, IEEE 39th Midwest symposium on Volumen: 1, 1996, Página(s): 533-536 Volumen: 1

DIM98 A residue number system implementation of real orthogonal transforms Dimitrov, V.S.; Jullien, G.A.; Miller, W.C. Signal Processing, IEEE Transactions on Volumen: 46 3, Marzo 1998, Página(s): 563-570

DIM98a An algorithm for modular exponentiation Dimitrov, V. S, Jullien, G. A, Miller, W. C. Information Processing Letters Volumen (66)3, 1998, Página(s): 155- 159

DIM99 Complexity and fast algorithms for multi-exponentiations Dimitrov, V. S, Jullien, G. A, Miller, W. C. IEEE Transactions on Computers (en prensa)

DIM99 Computing discrete Hartley transform using algebraic integers Dimitrov, V.; Baghaie, R.; Signals, Systems, and Computers, 1999. Conference Record of the Thirty-Third Asilomar Conference on Volumen 2, 24-27 Octubre 1999 Página(s):1351- 1355 Volumen: 2

DRO97 Processor elements for the standard cell implementation of residue number systems Droishagen, A.; Henkelmann, H.; Anheier, W. Application-Specific Systems, Architectures and Processors, 1997. Proceedings, IEEE International Conference on, 1997, Página(s): 116-123

DRO98 A residue number arithmetic based circuit for pipelined computation of autocorrelation coefficients of speech signal Drolshagen, A.; Sekhar, C.C.; Anheier, W. VLSI Design, 1998. Proceedings, 1998 Eleventh International Conference on, 1998, Página(s): 122-127

DUG92 VLSI implementation of residue adders based on binary adders Dugdale, M. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 5, Mayo 1992, Página(s): 325-329

ELE07 Electrón Red http://electronred.iespana.es/curiosidades.htm

ELL89

A theta (log n) algorithm for modulo multiplication Elleithy, K.M.; Bayoumi, M.A. Circuits and Systems, 1989, Proceedings of the 32nd Midwest Symposium on, 1990, Página(s): 353-356 Volumen: 1

ELL89a theta (logN) architectures for RNS arithmetic Decoding Elleithy, K.M.; Bayoumi, M.A.; Lee, K.P. Computer Arithmetic, 1989, Proceedings of 9th Symposium on, 1989, Página(s): 202-209

ELL90 A theta (1) algorithm for modulo addition Elleithy, K.M.; Bayoumi, M.A. Circuits and Systems, IEEE Transactions on Volumen: 37 5, Mayo 1990, Página(s): 628-631

ELL91 Formal design of RNS processors Elleithy, K.M.; Bayoumi, M.A. Circuits and Systems, 1991. Conference Proceedings, China, 1991 International Conference on, 1991, Página(s): 605-608 Volumen: 2

ELL91a A massively parallel RNS architecture Elleithy, K.M.; Bayoumi, M.A. Signals, Systems and Computers, 1991. 1991 Conference Record of the Twenty-Fifth Asilomar Conference on, 1991, Página(s): 408-412 Volumen: 1

ELL92 Fast and flexible architectures for RNS arithmetic Diciembreoding Elleithy, K.M.; Bayoumi, M.A. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 4, Abril 1992, Página(s): 226-235

ELL95 A systolic architecture for modulo multiplication Elleithy, K.M.; Bayoumi, M.A. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 42 11, Noviembre 1995, Página(s): 725-729

Page 237: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

225

ELL97 Choosing the system moduli of RNS arithmetic processors Elleithy, K.M. Signals, Systems and Computers, 1996. Conference Record of the Thirtieth Asilomar Conference on Volumen: 1, 1997, Página(s): 210-214 Volumen: 1

EST08 http://www.estudiosgeograficos.org ETS07 Escuela Técnica Superior de Ingeniería Informática y Telecomunicación

http://etsiit.ugr.es/alumnos/mlii/Kilby.htm

ETZ82 The design of specialized residue classes for efficient recursive digital filter realization Etzel, M.; Jenkins, W.; Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on, Volumen: 30 Número: 3, Junio 1982 Página(s): 370-380

FER00 A RNS-based matrix-vector-multiply FCT architecture for DCT computation Fernandez, P.G.; Garcia, A.; Ramirez, J.; Parrilla, L.; Lloris, A.; Circuits and Systems, 2000. Proceedings of the 43rd IEEE Midwest Symposium on Volumen 1, 8-11 Agosto 2000 Página(s):350- 353 Volumen: 1

FER00a A new RNS architecture for the computation of the scaled 2D-DCT on field-programmable logic Fernandez, P.G.; Ramirez, J.; Garcia, A.; Parrilla, L.; Lloris, A.; Signals, Systems and Computers, 2000. Conference Record of the Thirty-Fourth Asilomar Conference on Volumen 1, 29 Octubre-1 Noviembre 2000 Página(s):379- 383 Volumen: 1

FER00b Fast RNS-based 2D-DCT computation on field-programmable devices Fernandez, P.G.; Garcia, A.; Ramirez, J.; Lloris, A.; Signal Processing Systems, 2000. SiPS 2000. 2000 IEEE Workshop on 11-13 Octubre 2000 Página(s):365- 373

FER01 Implementation of the one dimensional discrete cosine transform using the residue number system Femandez, P.G.; Ramirez, J.; Garcia, A.; Parrilla, L.; Lloris, A.; Electronics, Circuits and Systems, 2001. ICECS 2001. The 8th IEEE International Conference on Volumen 1, 2-5 Septiembre 2001 Página(s):433- 436 Volumen: 1

FER03 RNS-based implementation of 8 /spl times/ 8 point 2D-DCT over field-programmable devices [image compression] Fernandez, P.G.; Lloris, A.; Electronics Letters Volumen 39, Número 1, 9 Jan 2003 Página(s):21- 23

FER07 Brain maturation changes characterized by Algorithmic Complexity (Lempel and Ziv Complexity) Fernández, J.; Larrondo, H.; Figliola, A.; Serrano, E.; Rostas, J.; Hunter, M.; Rosso, O. American Institute of Physics Conference Proceedings 913, ISBN 913 978-0-7354-0421-2, 238 páginas, pp 196- 202. (2007)

FER99 A new implementation of the discrete cosine transform in the residue number system Fernandez, P.G.; Garcia, A.; Ramirez, J.; Parrilla, L.; Lloris, A.; Signals, Systems, and Computers, 1999. Conference Record of the Thirty-Third Asilomar Conference on Volumen 2, 24-27 Octubre 1999 Página(s):1302- 1306 Volumen: 2

FIS97 Proyecto full custom didáctico, multiplicador binario. Fischer, G.; Lenzo, G.;. González, C. M.; Gayoso, C. A. Anales Tercer Workshop Iberchip. Febrero de 1997, México, México. Págs. 533 a 537.

GAL90 Digital-parallel residue-binary conversion Gallaher, D.M.; Srinivasan, P. System Theory, 1990, Twenty-Second Southeastern Symposium on, 1990, Página(s): 636-640

GAL97 The digit parallel method for fast RNS to weighted number system conversion for specific moduli (2/sup k/-1,2/sup k/,2/sup k/+1) Gallaher, D.; Petry, F.E.; Srinivasan, P. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 44 1, Jan. 1997, Página(s): 53-57

GAM89 Algebraic-integer quantization an residue number system processing Games, R.A.; Moulin, D.; O'Neil, S.D.; Rushanan, J.J. Acoustics, Speech, and Signal Processing, 1989. ICASSP-89, 1989 International Conference on, 1989, Página(s): 948-951 Volumen: 2

GAM89a Incompletely specified numbers in the residue number system-definition and applications Gamberger, D. Computer Arithmetic, 1989, Proceedings of 9th Symposium on, 1989, Página(s): 210-215

GAM90 VLSI design of an algebraic-integer signal processor Games, R.A.; Moulin, D.; Rushanan, J.J. Circuits and Systems, 1989, Proceedings of the 32nd Midwest Symposium on, 1990, Página(s): 808-812 Volumen: 2

GAM91 New approach to integer division in residue number systems Gamberger, D. Computer Arithmetic, 1991. Proceedings, 10th IEEE Symposium on, 1991, Página(s): 84-91

GAO00 Microprocesador flexible para FPGA. Gayoso, C. A.; González, C. M.; Arnone L. Anales Sexto Workshop Iberchip. Vol. 1, págs, 13 a 18, Marzo de 2000, San Pablo, Brasil.

GAO00a Microprocesador flexible para FPGA. Gayoso, C. A.; González, C. M.; Arnone L. Revista Nueva Telegráfica Electrónica ( ISSN 0329-7543 ). Nº 41 junio de 2000, págs. 138 a 144.

GAO00b Simulated annealing and neural networks for gate matrix layout. Gayoso, C. A.; Castiñeira, J. Latin American Applied Research (ISSN 0327-0793) Vol. 30 Nº 2, abril del 2000, págs. 125 a 133.

GAO00c Microprocesador flexible para FPGA. Gayoso, C. A.; González, C. M.; Arnone L. Revista Nueva Telegráfica Electrónica (ISSN 0329-7543). Nº 41, junio de 2000, págs. 138 a 144.

GAO01 Diseño de sumadores en aritmética de residuos con lógica programable. Gayoso, C. A.; González, C. M.; Arnone L.; García, J. C.; Boemo, E. Anales Séptimo Workshop Iberchip http://www.iberchip.org /VII/cd_nav.html. S-11, págs. 1 a 11, Marzo de 2001, Montevideo, Uruguay.

Page 238: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

226

GAO02 Estudio sobre el diseño de sumadores en aritmética de residuos en lógica programable. Gayoso, C. A.; García A., C. M. González, L. Arnone, J. C. García, E. Boemo. II Jornadas sobre Computación Reconfigurable y Aplicaciones . 10 al 20 de septiembre de 2002, Almuñecar, Granada, España. Anales pág 203.

GAO02a Desarrollo de un sistema integral de biotelemetría: monitorización remota de señales biológicas. C. A. Gayoso, C. González, L. Arnone y J. García. Anales VIII Congreso Argentino de Ciencias de la Computación. 15 al 18 de octubre de 2002. Buenos Aires. Págs. 27

GAO03 Reducción del número de transistores en operaciones aritméticas en el sistema numérico de residuos. C. A. Gayoso, L. Arnone, C. González y J. García. Anales IX Workshop Iberchip. http://www.iberchip.org /IX/pages/index.html. 26 al 28 de marzo de 2003. Habana, Cuba. Pág. 42.

GAO03 Reducción del número de transistores en operaciones aritméticas en el sistema numérico de residuos Gayoso, C.; González, C.; Arnone, L.; García, J.; Boemo, E. Anales IX Worshop Iberchip. http://www.iberchip.org. 26 al 28 de marzo de 2003. Habana, Cuba. Pág. 42.

GAO03a Placa Educativa Basada en Lógica Programable con Interfaz AD y DAC. Gayoso, C. A.; González C.; Martínez M. III Jornadas sobre Computación Reconfigurable y Aplicaciones. 11 al 12 de septiembre de 2003, Madrid, España. Anales pág.

GAO03b Reducción del número de transistores en operaciones aritméticas en el sistema numérico de residuos Gayoso, C.; González, C.; Arnone, L.; García, J.; Boemo, E. Anales IX Worshop Iberchip. http://www.iberchip.org /IX/pages/index.html. 26 al 28 de marzo de 2003. Habana, Cuba. Pág. 42.

GAO06 Accesibilidad Informática Para Discapacitados Motrices Severos. XII Workshop de Iberchip. http://www.iberchip.org /iws/index.html. San José de Costa Rica, Costa Rica. 22 de marzo de 2006. Gayoso C., Arnone L., González C., García JC.

GAO92 Diseño automático de canal para circuitos integrados. Gayoso, C. A. Revista Telegráfica Electrónica (ISSN 0035-0516). Nº 934, marzo de 1992, págs. 190 a 194.

GAO92a Herramienta de CAD para diseño de circuitos integrados. Gayoso, C. A. Anales de USUARIA '92. Mayo de 1992. Págs. 162 a 175.

GAO93 Disposición automática de transistores mediante ciclos de Euler. Gayoso, C. A. Anales de USUARIA '93. Mayo de 1993. Págs. 186 a 200.

GAO94 Sistema de diseño de circuitos integrados semidedicados CMOS - AC94. Gayoso, C. A.; González, C. M.; Arnone L. Anales 1º Simposio Nacional de Microelectrónica. Junio de 1994. Págs. 1 a 10.

GAO94a Interconexión automática de terminales a lo largo de un canal. Gayoso, C. A. Anales 1º Simposio Nacional de Microelectrónica. Junio de 1994. Págs. 39 a 51.

GAO95 Libro publicado: "Microelectrónica: Circuitos Integrados CMOS digitales, Teoría y Práctica". Gayoso, Carlos Arturo; González, Claudio y Arnone Leonardo. Editado en conjunto por la Secretaria de Ciencia y Tecnología de la Nación y la OEA. 1995

GAO95a Codificador decodificador integrado que trabaja con los códigos HDB3 y AMI. Gayoso, C. A.; González, C. M.; Arnone L. Anales II Simposio Nacional de Microelectrónica. Noviembre de 1995. Rosario. Págs. 171 a 181.

GAO96 Diseño de Circuitos Integrados, AC94. Gayoso, C. A.; González, C. M.; Arnone L. Anales Segundo Workshop Iberchip. Febrero de 1996, San Pablo, Brasil. Págs. 144 1 153.

GAO96a Introducción de la metodología del diseño de circuitos integrados en materias de grado en la carrera de Ingeniería Electrónica. Experiencias de cátedra y conclusiones. Gayoso, C. A.; González, C. M.; Arnone L. 1º Congreso Argentino de Enseñanza de Ingeniería. Octubre de 1996, Universidad Tecnológica de Río Cuarto. Córdoba.

GAO97 Posicionamiento automático de celdas normalizadas mediante redes neuronales. Gayoso, C. A.; Quijano, A. Stelli, I. Anales Tercer Workshop Iberchip. Febrero de 1997, México, México. Págs. 523 a 532.

GAO97a Codificador/decodificador HDB3 y AMI integrado. Gayoso, C. A.; González, C. M.; Arnone, L. Anales Tercer Workshop Iberchip. Febrero de 1997, México, México. Págs. 538 a 540.

GAO97b Diseño de un modem en banda base integrado. Gayoso, C. A.; González, C. M.; Arnone, L. Revista Nueva Telegráfica Electrónica Nº 21, febrero de 1997, pgs. 21 a 27.

GAO97c Desarrollo de la microelectrónica en el ámbito de la Facultad de Ingeniería de la Universidad Nacional de Mar del Plata. Gayoso, C. A.; González, C. M. Anales Primer Workshop de Microelectrónica, Asociación de Universidades Grupo de Montevideo. Octubre de 1997, Rosario, Argentina. Págs. 11 a 14.

GAO98 Sistema para generación automática de layout mediante gate matrix. Gayoso, C. A.; González, C. M.; Quijano, A. A. Anales Cuarto Workshop Iberchip. Marzo de 1998, Mar del Plata, Argentina. Págs. 269 a 275.

GAO99 ASIC para sistema de sensores y controlador central en sistemas de seguridad industrial y comercial. Gayoso, C. A.; González, C. M.; Lupín, C. Anales Quinto Workshop Iberchip. Marzo de 1999, Lima, Perú. Págs. 64 a 69.

GAO99a Simulated annealing and neural networks for gate matrix layout. Gayoso, C. A.; González, C. M. VIII Reunión de Trabajo en Procesamiento de la Información y Control. Septiembre de 1999, Mar del Plata, Vol. 2, págs, 17-8 a 24-8.

Page 239: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

227

GAR05 Efficient embedded FPL resource usage for RNS-based polyphase DWT filter banks Garcia, A.; Castillo, E.; Lloris, A.; Ramirez, J.; Meyer-Baese, U.; Field Programmable Logic and Applications, 2005. International Conference on 24-26 Agosto 2005 Página(s):531- 534

GAR98 Pipelined RNS multipliers: an application to scaling Garcia, A.; Lloris, A. Electronics, Circuits and Systems, 1998 IEEE International Conference on Volumen: 3, 1998, Página(s): 55-58 Volumen: 3

GAR98a RNS scaling based on pipelined multipliers for prime moduli Garcia, A.; Lloris, A. Signal Processing Systems, 1998. SIPS 98. 1998 IEEE Workshop on, 1998, Página(s): 459-468

GAR98b Pipelined Hogenauer CIC filters using field-programmable logic and residue number system Garcia, A.; Meyer-Baese, U.; Taylor, F. Acoustics, Speech and Signal Processing, 1998. Proceedings of the 1998 IEEE International Conference on Volumen: 5, 1998, Página(s): 3085-3088 Volumen: 5

GAR99 Procesamiento digital de señales de altas prestaciones utilizando el sistema numérico de residuos Garcia, A. Tesis doctoral. Granada abril de 1999.

GAR99a RNS implementation of FIR filters based on distributed arithmetic using field-programmable logic Garcia, A.; Meyer-Base, U.; Lloris, A.; Taylor, F.J. Circuits and Systems, 1999. ISCAS '99. Proceedings of the 1999 IEEE International Symposium on Volumen: 1, 1999, Página(s): 486-489 Volumen: 1

GAR99b Procesamiento digital de señales de altas prestaciones utilizando el sistema numérico de residuos Garcia, A. Tesis doctoral. Universidad de Granada. Abril de 1999.

GAR99c A look-up scheme for scaling in the RNS Garcia, A.; Lloris, A. Computers, IEEE Transactions on Volumen: 48 7, Julio 1999, Página(s): 748-751

GOE89 Real time architecture for vector quantization in residue number system Goel, B.D.; Jamali, M.M.; Kwatra, S.C. Circuits and Systems, 1989, IEEE International Symposium on, 1989, Página(s): 204-207 Volumen: 1

GOM95 Comunicaciones de datos: Diseño de una etapa conversora/codificadora integrada con tecnología CMOS. Gomez Costa, J. L.; Gayoso, C. A.; González, C. M Anales INFOCOM'95. Junio de 1995. Págs. 167 a 176.

GOM98 The thalamus: controller of cortical functional connections (a model based on EEG and brain imaging) Gomez, M.J.F.; Lopera, R.F.J. Neural Networks Proceedings, 1998. IEEE World Congress on Computational Intelligence. The 1998 IEEE International Joint Conference on Volumen: 2, 1998, Página(s): 1564-1568 Volumen: 2

GON00 Diseño de una UART parametrizada como módulo de biblioteca para dispositivos lógicos programables. González, C. M.; Gayoso, C. A.;. Anales Sexto Workshop Iberchip. Vol. 1, págs, 273 a 279, Marzo de 2000, San Pablo, Brasil.

GON02 Generación de secuencias caóticas con FPGA. González, C. M.; Gayoso, C. A.; Arnone L. VIII Workshop de Iberchip. http://www.iberchip.org /VIII/click.html. Guadalajara, México, 2002.

GON03 Generación de secuencias pseudo aleatorias binarias por medio de un mapa caótico 3D. C. González, H. Larrondo, C. A. Gayoso y L. Arnone. Anales IX Workshop Iberchip. http://www.iberchip.org /IX/pages/index.html. 26 al 28 de marzo de 2003. Habana, Cuba. Pág. 44.

GON03 Chaotic Cryptography and Statistical Complexity Measures Larrondo, H.; González, C.; Rosso, O. X Workshop on Instabilities and Nonequilibrium Structures. Viña del Mar, Chile, 15 al 20 de diciembre de 2003.

GON04 Secuencias Binarias Pseudo Aleatorias Generadas por un Mapa Caótico 2D. González C., Larrondo H., Gayoso C., Arnone L. X Workshop de Iberchip. http://www.iberchip.org /iws2004/index.html. 10 al 12 de marzo de 2004. Cartagena de Indias, Colombia

GON04a Digital Signal Tranmission with chaotic encryption: design and evaluation of an FPGA realization. González C., Larrondo H., Gayoso C., Arnone L., Boemo E. Publicado on line en Computer Science. Ref: cs.CR/0402056. http//:arxiv.org/abs/cs.CR/0402056

GON05 Implementación de Sistemas Caóticos en Dispositivos Lógicos Programables. C .M. González, H. A. Larrondo, C. A. Gayoso, L. J. Arnone. XI Workshop de Iberchip. http://www.iberchip.org /iws2005/index.html. 28 a 30 de Marzo de 2005. Salvador, Bahía (Brasil). Pgs. 339-340.

GON05a Implementación de un sistema caótico discretizado en dispositivos lógicos programables. González C., Larrondo H., Gayoso C., Arnone L. Fuente: Décimo Primera Reunión de Trabajo en Procesamiento de la Información y Control RPIC2005. Editores: Dpto de publicaciones e imprenta de Uiversidad Nacional de Río Cuarto. Fecha y lugar de Edición: Río Cuarto, septiembre 2005. ISBN: 950-665-340-2.

GON07 Emulador de teclado y mouse para discapacitados motrices severos utilizando dispositivos lógicos programables. González C., Gayoso C., Garcia, J. C. Décimo Segunda Reunión de Trabajo en Procesamiento de la Información y Control RPIC2007. Editores: Unidad Académica Rio Gallegos, Universidad Nacional de la Patagonia Austral. Fecha y lugar de Edición: Río Gallegos, octubre 2007. ISBN: 978-987-1242-24-5.

GON07 Statistical complexity measure of pseudorandom bit generators González, C.; Larrondo, H.; Rosso, O. Physica A 354 (2005) 281-300.

GON89 The application of core functions to residue number system signal processing Gonnella, J.; Periard, J. Military Communications Conference, 1989. MILCOM '89. Conference Record. Bridging the Gap. Interoperability, Survivability, Security, 1989 IEEE, 1989, Página(s): 604-608 Volumen: 2

Page 240: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

228

GON91 The application of core functions to residue number systems Gonnella, J. Signal Processing, IEEE Transactions on Volumen: 39 1, Jan. 1991, Página(s): 69-75

GRI89 A residue number system reduced instruction set computer (RISC) concept Griffin, M.F.; Taylor, F.J. Acoustics, Speech, and Signal Processing, 1989. ICASSP-89, 1989 International Conference on, 1989, Página(s): 2581-2584 Volumen: 4

GRI89a A residue number system reduced instructions set computer (RISC) Concept. Michael F. Griffin. Fred J. Taylor. 1989.

GRI98 New Scaling Algorithms For The Chinese Remainder Theorem Griffin, M.; Taylor, F.; Sousa, M. Signals, Systems and Computers, 1988. Twenty-Second Asilomar Conference on Volumen: 1, 1988, Página(s): 375-378

HAN02 Turbo coding, turbo equalization and space-time coding for transmission over fading channels Hanzo, L.; Liew, T. H.; Yeap, B. L. 2002 John Wiley and Sons. ISBN 0470847263

HEI93 A real-time ultrasound time-domain correlation blood flowmeter. I. Theory and design Hein, I.A.; Chen, J.T.; Jenkins, W.K.; O'Brien, W.D, Jr. Ultrasonics, Ferroelectrics and Frequency Control, IEEE Transactions on Volumen: 40 6, Noviembre 1993, Página(s): 768-775

HEN98 Automated implementation of RNS-to-binary converters Henkelmann, H.; Drolshagen, A.; Bagherinia, H.; Ahrens, H.; Anheier, W. Circuits and Systems, 1998. ISCAS '98. Proceedings of the 1998 IEEE International Symposium on Volumen: 2, 1998, Página(s): 137-140 Volumen: 2

HEN99 Implementation of sign detection in RNS using mixed radix representation Henkelmann, H.; Anheier, W. Electronics, Circuits and Systems, 1999. Proceedings of ICECS '99. The 6th IEEE International Conference on Volumen: 1, 1999, Página(s): 323-326 Volumen: 1

HIA95 A high-speed division algorithm for residue number system Hiasat, A.A.; Abdel-Aty-Zohdy, H.S. Circuits and Systems, 1995. ISCAS '95, 1995 IEEE International Symposium on Volumen: 3, 1995, Página(s): 1996-1999 Volumen: 3

HIA96 Combinational logic approach for designing RNS multipliers Hiasat, A.A.; Abdel-Aty-Zohdy, H. Circuits and Systems, 1996, IEEE 39th Midwest symposium on Volumen: 1, 1996, Página(s): 541-543 Volumen: 1

HIA97 Design and implementation of an RNS division algorithm Hiasat, A.A.; Abdel-Aty-Zohdy, H.S. Computer Arithmetic, 1997. Proceedings, 13th IEEE Symposium on, 1997, Página(s): 240-249

HIA98 Residue-to-binary arithmetic converter for the moduli set (2/sup k/, 2/sup k/-1, 2/sup k-1/-1) Hiasat, A.A.; Abdel-Aty-Zohdy, S.H. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 45 2, Febrero 1998, Página(s): 204-209

HIT95 Integer division in residue number systems Hitz, M.A.; Kaltofen, E. Computers, IEEE Transactions on Volumen: 44 8, Agosto 1995, Página(s): 983-989

HOH89 A programmable high performance processor using the residue number system and CMOS VLSI technology Hohne, R.A.; Siferd, R. Aerospace and Electronics Conference, 1989. NAECON 1989, Proceedings of the IEEE 1989 National, 1989, Página(s): 41-43 Volumen: 1

HOH95 A comparison of FIR filter implementations based on two's complement and residue number arithmetic Ho, H.; Szwarc, V.; Desormeaux, L. ASIC Conference and Exhibit, 1995, Proceedings of the Eighth Annual IEEE International, 1995, Página(s): 35-38

HOS94 The application of redundant number systems to digital sigma-delta modulators Hossack, D.M.; Sewell, J.I. Circuits and Systems, 1994. ISCAS '94, 1994 IEEE International Symposium on Volumen: 2, 1994, Página(s): 481-484 Volumen: 2

HUI91 Digital filter design with a combination of fixed point and residue number systems Hui, S.; Brown, D.P. Communications, Computers and Signal Processing, 1991, IEEE Pacific Rim Conference on, 1991, Página(s): 331-334 Volumen: 1

HUN05 Error analysis of approximate chinese remainder theorem Diciembreoding Hung, C.; Parhami, B. Transactions on Computers IEEE Volumen 44, Nº 11 november 1995, Página(s): 1344-1348

HUS98 A low power algorithm for division in residue number system (RNS) Hussein, A.E.; Hasan, M.A.; Elmasry, M.I. Electrical and Computer Engineering, 1998. IEEE Canadian Conference on Volumen: 1, 1998, Página(s): 205-208 Volumen: 1

HWA79 Computer arithmetic, principles, architecture and design Hwang, K. Jhon Wiley and Sons, 1979.

IBR88 An efficient residue to binary converter design Ibrahim, K.M.; Saloum, S.N.; Circuits and Systems, IEEE Transactions on, Volumen: 35 Número: 9, Septiembre 1988 Página(s): 1156-1158

Page 241: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

229

IBR89 An efficient residue to binary converter design Ibrahim, K.M.; Saloum, S.N. Circuits and Systems

INS98 VLSI design for an adaptive equalizer using a residue number system architecture for magnetic channels Inseop Lee; Jenkins, W.K. Circuits and Systems, 1997. Proceedings of the 40th Midwest Symposium on Volumen: 2, 1998, Página(s): 782-785 Volumen: 2

JEN77 The use of residue number systems in the design of finite impulse response digital filters Jenkins, W.; Leon, B.; Circuits and Systems, IEEE Transactions on, Volumen: 24 Número: 4, Abril 1977 Página(s): 191-201

JEN79 Recent advances in residue number techniques for recursive digital filtering Jenkins, W.; Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on, Volumen: 27 Número: 1, Feb 1979 Página(s): 19-30

JEN84 A technique for the efficient generation of projections for error correcting residue codes Jenkins, W.; Circuits and Systems, IEEE Transactions on, Volumen: 31 Número: 2, Feb 1984 Página(s): 223-226

JEN91 The design of reliable VLSI electronic systems for digital signal processing Jenkins, W.K. Circuits and Systems, 1991, IEEE International Sympoisum on, 1991, Página(s): 5-8 Volumen: 1

JEN92 Fault tolerant architectures for efficient realization of common DSP kernels Jenkins, W.K.; Schnaufer, B.A. Circuits and Systems, 1992, Proceedings of the 35th Midwest Symposium on, 1992, Página(s): 1320-1323 Volumen: 2

JEN93 Fault tolerant adaptive filters based on the block LMS algorithm Jenkins, W.K.; Schnaufer, B.A. Circuits and Systems, 1993, ISCAS '93, 1993 IEEE International Symposium on, Mayo 1993, Página(s): 862-865 Volumen: 1

JEN93a Combined system-level redundancy and modular arithmetic for fault tolerant digital signal processing Jenkins, W.K.; Schnaufer, B.A.; Mansen, A.J. Computer Arithmetic, 1993. Proceedings, 11th Symposium on, 1993, Página(s): 28-35

JEN93b Variable word length DSP using serial-by-modulus residue arithmetic Jenkins, W.K.; Mansen, A.J. Acoustics, Speech, and Signal Processing, 1993. ICASSP-93, 1993 IEEE International Conference on Volumen: 3, 1993, Página(s): 89-92 Volumen: 3

JEN96 Digital signal processing with digit-serial RNS arithmetic Jenkins, W.K.; Liu, R. Circuits and Systems, 1996, IEEE 39th Midwest symposium on Volumen: 1, 1996, Página(s): 537-540 Volumen: 1

JEN99 Residue arithmetic with application in digital signal processing Jenkins, W.; Jullien, G. A.; Dimitrov, V. S. 3, Junio 1999

JIN91 Efficient residue-to-binary conversion technique with rounding error compensation Jin Yul Kim; Kyu Ho Park; Hwang Soo Lee Circuits and Systems, IEEE Transactions on Volumen: 38 3, Marzo 1991, Página(s): 315-317 PE R

JOH86 Techniques for realization of high-speed recursive digital filters using residue number system arithmetic Johnson, T.; Clark, G.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '86, Volumen: 11, Abril 1986 Página(s): 2623-2626

JOH92 Modeling maintenance-strategies with rainbow nets Johnson, A.M, Jr.; Schoenfelder, M.A.; Lebold, D. Reliability and Maintainability Symposium, 1992. Proceedings, Annual, 1992, Página(s): 449-455

JUL80 Implementation of multiplication, modulo a prime number, with applications to number theoretic transforms Jullien G. A. Computers, IEEE Transactions on Volumen: 29 10, October 1980, Página(s): 899-905

JUL91 Number Theoretic Techniques in Digital Signal Processing Jullien, G. A. Book Chapter. Advances inElectronics and Electron Physics, Academic Press Inc. Volumen: 80, Chapter 2, pp. 69-163, 1991.

KAL96 Instrumentation for Cs-time transfer to calibration laboratory Kalliomaki, K.; Mansten, T. European Frequency and Time Forum, 1996. EFTF 96, Tenth (IEE Conf. Publ. 418), 1996, Página(s): 475

KAO91 A multiplier-free fast transform with efficient VLSI implementation for polynomial RNS processors Kao, R.-S. Acoustics, Speech, and Signal Processing, 1991. ICASSP-91, 1991 International Conference on, 1991, Página(s): 1601-1604 Volumen: 3

KHR99 A dedicated hardware system for a class of nonlinear order statistics rational hybrid filters with applications to image processing Khriji, L.; Bernacchia, G.; Gabbouj, M.; Sicuranza, G. Image Processing, 1999. ICIP 99. Proceedings. 1999 International Conference on Volumen: 2, 1999, Página(s): 419-423 Volumen: 2

KIM91 New implementations of converters for the residue and quadratic residue number system Kim, S.W.; Stouraitis, T. Circuits and Systems, 1991, IEEE International Sympoisum on, 1991, Página(s): 2959-2962 Volumen: 5

KIM93 Full adder-based inner product step processors for residue and quadratic residue number systems Kim, S.W.; Stouraitis, T.; Skavantzos, A. Circuits and Systems, 1993, ISCAS '93, 1993 IEEE International Symposium on, Mayo 1993, Página(s): 1821-1824 Volumen: 3

Page 242: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

230

KIN97 A residue arithmetic extension for reliable scientific computation Kinoshita, E.; Ki-Ja Lee Computers, IEEE Transactions on Volumen: 46 2, Febrero 1997, Página(s): 129-138

KIR93 Adaptive beamforming using RNS arithmetic Kirsch, B.J.; Turner, P.R. Computer Arithmetic, 1993. Proceedings, 11th Symposium on, 1993, Página(s): 36-43

KOB95 A model of arterial pulse propagation and reflection Kobler, H.; Hart, M.; Hunyor, S.N. Computers in Cardiology 1995, 1995, Página(s): 601-604

KOS89 RNS-based GaAs signal processing system Kosek, M.R.; Taylor, F.J.; Griffin, M.; Hardy, R.R. Military Communications Conference, 1989. MILCOM '89. Conference Record. Bridging the Gap. Interoperability, Survivability, Security, 1989 IEEE, 1989, Página(s): 615-619 Volumen: 2

KRI86 Computation of complex number theoretic transforms using quadratic residue number systems Krishnan, R.; Jullien, G.; Miller, W.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '86, Volumen: 11, Abril 1986 Página(s): 233-236

KRI86 Implementation of complex number theoretic transforms using quadratic residue number systems Krishnan, R.; Jullien, G.; Miller, W.; Circuits and Systems, IEEE Transactions on, Volumen: 33 Número: 8, Agosto 1986 Página(s): 759-766

KRI87 Implementation of the generalized FIR filter structure using the residue arithmetic Krishnan, R.; Jullien, G.; Miller, W.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '87, Volumen: 12, Abril 1987 Página(s): 892-895

KRI88 Implementation of recursive and nonrecursive digital filters using the single multiplexed ROM in the quadratic residue number system Krishnan, R. Circuits and Systems, 1988, IEEE International Symposium on, 1988, Página(s): 1297-1300 Volumen: 2

KRI89 A core function based residue to binary Diciembreoder for RNS filter architecture Krishnan, R.; Ehrenberg, J.; Ray, G. Circuits and Systems, 1989, Proceedings of the 32nd Midwest Symposium on, 1990, Página(s): 837-840 Volumen: 2

KRI90 A lay-out level comparison of RNS and BNS systolic architectures for complex digital filtering Krishnan, R. Circuits and Systems, 1990, IEEE International Symposium on, 1990, Página(s): 1628-1631 Volumen: 2

KRI92 Computation of generalized FIR filter structure using the modified quadratic residue number system Krishnan, R.; Jullien, G.A.; Miller, W.C. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 1, Jan. 1992, Página(s): 58-62

KRI92a A coding theory approach to error control in redundant residue number systems. I. Theory and single error correction Krishna, H.; Lin, K.-Y.; Sun, J.-D. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 1, Jan. 1992, Página(s): 8-17

KRI94 Computational number theory and digital signal processing. Fast algorithms and error control techniques. Krishna, Hari, Krishna, Bal, Lin, Kuo-Yu, Sun, Jenn-Dong. CRC Press. 1994.

LAM86 RNS Digital Filtering Structures for Wafer-Scale Integration LaMacchia, B.; Redinbo, G.; Selected Areas in Communications, IEEE Journal on, Volumen: 4 Número: 1, Jan 1986 Página(s): 67-80

LAM94 Reference neighbourhood search (RNS) and its application in image coding Lam, A.T.W.; Leung, S.H.; Luk, A.; Lau, W.H. Speech, Image Processing and Neural Networks, 1994. Proceedings, ISSIPNN '94, 1994 International Symposium on, 1994, Página(s): 184-188 Volumen: 1

LAM94 Reference neighbourhood search (RNS) and its application in image coding Lam, A.T.W.; Leung, S.H.; Luk, A.; Lau, W.H.; Speech, Image Processing and Neural Networks, 1994. Proceedings, ISSIPNN '94, 1994 International Symposium on 13-16 Abril 1994 Página(s):184- 188 Volumen: 1

LAM96 A table-lookup scheme for residue-to-binary conversion Lamb, C.C.; DeBrunner, L.S. Signals, Systems and Computers, 1995. Conference Record of the Twenty-Ninth Asilomar Conference on Volumen: 1, 1996, Página(s): 214-217 Volumen: 1

LAR04 Statistical Complexity Measures of chaotic pseudo random number generators Larrondo, H.; González, C.; Rosso, O. XIV Meeting on Nonequilibrium Statistical Mechanics and Nonlinear Physics. December 6-10, 2004- La Serena, Chile.

LAR05 Intensive Statistical Complexity Measure of pseudorandom bit generators Larrondo, H.; González, C.; Martín, M.; Plastino, A.; Rosso, O. Physica A 356 (2005) 133–138

LEE98 The design of residue number system arithmetic units for a VLSI adaptive equalizer Lee, I.; Jenkins, W.K. VLSI, 1998. Proceedings of the 8th Great Lakes Symposium on, 1998, Página(s): 179-184

LEL89 Digital beamforming techniques and processors based on quadratic residue number system techniques Leland, J.; Hinman, K. 1989, Página(s): 609- 614

LIE99 Ratio statistic test assisted residue number system based parallel communication schemes Lie-Liang Yang; Hanzo, L. Vehicular Technology Conference, 1999 IEEE 49th Volumen: 2, 1999, Página(s): 894-898 Volumen: 2

Page 243: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

231

LIE99a Residue number system based multiple code DS-CDMA systems Lie-Liang Yang; Hanzo, L. Vehicular Technology Conference, 1999 IEEE 49th Volumen: 2, 1999, Página(s): 1450-1454 Volumen: 2

LIM99 A modular approach to the computation of convolution sum using distributed arithmetic principles Lim, K.P.; Premkumar, A.B. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 46 1, Jan. 1999, Página(s): 92-96

LIN06 Efficient VLSI design for RNS reverse converter based on new moduli set 2n-1,2n+1, 2 2n+1 Lin,S.; Sheu M. H. APCCAS 2006, Página(s): 2020-2023

LIZ91 Modulized RNS-Diciembreimal number conversion algorithm and its implementations Li, Z.; Krishnan, R.; Marks, R.J. Communications, Computers and Signal Processing, 1991, IEEE Pacific Rim Conference on, 1991, Página(s): 319-322 Volumen: 1

LOH91 Balanced high-speed residue number VLSI multiplier with error detection Lo, H.-Y.; Yang, T.C. Circuits, Devices and Systems, IEE Proceedings G Volumen: 138 3, Junioio 1991, Página(s): 421-423

LOP80 A dense gate matrix layout method for MOS VLSI López, A. D.; Law, H-F. S. IEEE Trans. Electron. Devices, Volumen: DE-27, Agosto 1980, pág. 1671-1675.

LOP95 A statistical measure of complexity López-Ruiz, R, Mancini, H. L, Calvet, X. Physics Letters A. A 209, Diciembre. 1995, Página(s): 321-326.

LUM92 A novel division algorithm for the residue number system Lu, M.; Chiang, J.-S. Computers, IEEE Transactions on Volumen: 41 8, Agosto 1992, Página(s): 1026-1032

LUO95 An array processor for inner product computations using a Fermat number ALU Luo, W.; Jullien, G.A.; Wigley, N.M.; Miller, W.C.; Wang, Z. Application Specific Array Processors, 1995. Proceedings. International Conference on, 1995, Página(s): 270-281

MAC99 Low-power implementation of a residue-to-weighted conversion unit for a 5-moduli RNS Macii, A.; Macii, E. Electronics, Circuits and Systems, 1999. Proceedings of ICECS '99. The 6th IEEE International Conference on Volumen: 2, 1999, Página(s): 625-628

MAC99a Convertion unit for a 5-moduli RNS Macii, A.; Macii, E.; 1999, Página(s): 625-628

MAH99 Improving performance of high precision signal processing algorithms on programmable DSPs Mahesh, M.N.; Mehendale, M. Circuits and Systems, 1999. ISCAS '99. Proceedings of the 1999 IEEE International Symposium on Volumen: 3, 1999, Página(s): 488-491 Volumen: 3

MAH99a Improving area efficiency of residue number system based implementation of DSP algorithms Mahesh, M.N.; Gupta, S.; Mehendale, M. VLSI Design, 1999. Proceedings. Twelfth International Conference On, 1999, Página(s): 340-345

MAL98 Implementation of RNS addition and RNS multiplication into FPGAs Maltar, L.; Felipe, C.B.; Franca, M.G.; Alves, V.C.; Amorim, C.L. FPGAs for Custom Computing Machines, 1998. Proceedings. IEEE Symposium on, 1998, Página(s): 331-332

MAL98a Reconfigurable hardware for tomographic processing Maltar, L.; Franca, F.M.G.; Alves, V.C.; Amorim, C.L. Integrated Circuit Design, 1998. Proceedings. XI Brazilian Symposium on, 1998, Página(s): 19-24

MAN72 Error correction in residue arithmetic Maldelbaun, D. Transactions on Computers, 1972. Volumen: 16 número 6, Página(s): 538- 545

MAN90 Efficient analog-to-residue conversion schemes Mandyam, S.; Stouraitis, T. Circuits and Systems, 1990, IEEE International Symposium on, 1990, Página(s): 2885-2888 Volumen: 4

MAR03 Statistical complexity and disequilibrium Martin, M. T, Plastino, A, Rosso, O. A. Physics Letters A 2003, en prensa.

MAR95 http://stat.fsu.edu/pub/diehard/ George Marsaglia

MAR96 Algunas consideraciones generales sobre Microelectrónica Marqués, C.; Romero, E.; Romero, C. Revista Mediterránea - Ingeniería & Tecnología, No. 24, Año 3, agosto de 1996 [Pág. 3], publicada por el Colegio de Ingenieros Especialistas de Córdoba (CIEC).

MEE89 A universal input and output RNS converter Meehan, S.; O'Neil, S.; Vaccaro, J. Military Communications Conference, 1989. MILCOM '89. Conference Record. Bridging the Gap. Interoperability, Survivability, Security, 1989 IEEE, 1989, Página(s): 598-603 Volumen: 2

MEE90 An universal input and output RNS converter Meehan, S.J.; O'Neil, S.D.; Vaccaro, J.J. Circuits and Systems, IEEE Transactions on Volumen: 37 6, Junioio 1990, Página(s): 799-803

Page 244: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

232

MEH08 A New Moduli Set 3n- 1,3n+1,3n + 2,3n- 2 in Residue Number System Hosseinzadeh, Mehdi; Jassbi, SoMayoyeh Jafarali; Navi, Keivan; Advanced Communication Technology, 2008. ICACT 2008. 10th International Conference on Volumen 3, 17-20 Febrero 2008 Página(s):1601- 1603

MEL93 The Gauss machine: A Galois-enhanced quadratic residue number system systolic array Mellott, J.D.; Smith, J.C.; Taylor, F.J. Computer Arithmetic, 1993. Proceedings, 11th Symposium on, 1993, Página(s): 156-162

MEL96 ASAP-a 2D DFT VLSI processor and architecture Mellott, J.D.; Lewis, M.; Taylor, F.; Coffield, P. Circuits and Systems, 1996. ISCAS '96, Connecting the World, 1996 IEEE International Symposium on Volumen: 2, 1996, Página(s): 261-264 Volumen: 2

MEY97 Design of RNS frequency sampling filter banks Meyer-Base, U.; Mellott, J.; Taylor, F. Acoustics, Speech, and Signal Processing, 1997. ICASSP-97, 1997 IEEE International Conference on Volumen: 3, 1997, Página(s): 2061-2064 Volumen: 3

MIG00 Design Automation for Embedded Systems. Chap.: Synthesys for mixed arithmetic Mignote, A.; Muller, J.; Peyran, O. Kluwer Academic Publisher, Boston. 2000

MOH01 On RNS-based enhancements for direct digital frequency synthesis Mohan, P.V.A.; Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on [see also Circuits and Systems II: Express Briefs, IEEE Transactions on] Volumen 48, Número 10, Octubre 2001 Página(s):988- 990

MOH07 RNS-to-binary converters for two four-moduli sets 2n-1, 2n, 2n+1, 2n+1- 1 and 2n-1, 2n, 2n+1, 2n+1 + 1 Mohan, P.V.A.; Premkumar, A. B. Transactions on Circuits and Systems I Regular Papers Volumen 54, Nº 6, JUNIOIO 2007, Página(s): 1245-1254

MOH94 Novel design for binary to RNS converters Mohan, P.V.A. Circuits and Systems, 1994. ISCAS '94, 1994 IEEE International Symposium on Volumen: 2, 1994, Página(s): 357-360 Volumen: 2

MON96 PAL/PLE Device Programmable Logic Handbook. Monolithic Memories. Quinta Edición, 1986.

NEU00 Primitive Root http://neuronio.mat.uc.pt/crcmath/math/mat/p/p620.htm

NOW89 Adaptive beamforming in quadratic residue number systems on a cluster array processor Nowacki, C.L.; Harris, J.D.; Richard, M.N. Military Communications Conference, 1989. MILCOM '89. Conference Record. Bridging the Gap. Interoperability, Survivability, Security, 1989 IEEE, 1989, Página(s): 624-628 Volumen: 2

OHS94 Implementation of a parallel DFE using residue number system Oh, S.; Garcia, D. Acoustics, Speech, and Signal Processing, 1994. ICASSP-94, 1994 IEEE International Conference on Volumen: iii, 1994, Página(s): III/237-III/240

PAG99 Trabajo final para asignatura de grado de diseño de circuitos integrados. Paget, M.; Trigall, E.; Murias, J.; Cabral, G.; Arias, F.; Gayoso, C. A.; González, C. M.; Arnone, L. Anales Quinto Workshop Iberchip. Marzo de 1999, Lima, Perú. Págs. 433 a 435.

PAL92 Systematic derivation of the processing element of a systolic array based on residue number system Paliouras, V.; Soudris, D.; Stouraitis, T. Circuits and Systems, 1992. ISCAS '92. Proceedings, 1992 IEEE International Symposium on Volumen: 2, 1992, Página(s): 815-818

PAL94 Systematic design of multi-modulus/multi-function Residue Number System processors Paliouras, V.; Stouraitis, T. Circuits and Systems, 1994. ISCAS '94, 1994 IEEE International Symposium on Volumen: 4, 1994, Página(s): 79-82 Volumen: 4

PAL97 Area-time performance of VLSI FIR filter architectures based on residue arithmetic Paliouras, V.; Stouraitis, T. EUROMICRO 97. New Frontiers of Information Technology, Proceedings of the 23rd EUROMICRO Conference, 1997, Página(s): 576-583

PAL99 Multifunction architectures for RNS processors Paliouras, V.; Stouraitis, T. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 46 8, Agosto 1999, Página(s): 1041-1054

PAN00 RNS quasi-chaotic generators Panella, M.; Martinelli, G. Electonics Leters, IEEE Volumen: 36, 20 de julio de 2000, Página(s): 1325-1326

PAN01 RNS quasi-chaotic generators for self-correcting secure communication Panella, M.; Martinelli, G. Electonics Leters, IEEE Volumen: 37, 1 de marzo de 2001, Página(s): 325-327

PAR94 Fault-tolerant linear convolution using residue number systems Parker, M.G.; Benaissa, M. Circuits and Systems, 1994. ISCAS '94, 1994 IEEE International Symposium on Volumen: 2, 1994, Página(s): 441-444 Volumen: 2

PAR98 Space/wavelength-routed ATM access architecture based on cascaded programmable arrayed-waveguide gratings Parker, M.C.; Fajady, F.; Walker, S.D. Lasers and Electro-Optics, 1998. CLEO 98. Technical Digest. Summaries of papers presented at the Conference on, 1998, Página(s): 392-393

Page 245: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

233

PEL98 Proyecto final de graduación en Electrónica: Unidad Aritmética de 32 bits en punto flotante integrada. Pelaez, N.; Aguirre, F.; Gayoso, C. A.; González, C. M. 2º Congreso Argentino de Enseñanza de Ingeniería. Septiembre de 1998, Universidad Nacional de San Juan. San Juan.

PEL98a Circuitos integrados de aplicaciones específica. Pelaez, N.; Aguirre, F.; Gayoso, C. A.; González, C. M. 2º Congreso Argentino de Enseñanza de Ingeniería. Septiembre de 1998, Universidad Nacional de San Juan. San Juan.

PEL99 Unidad aritmética lógica de 32 bits integrada. Pelaez, N.; Aguirre, F.; Gayoso, C. A.; González, C. M. Anales Quinto Workshop Iberchip. Marzo de 1999, Lima, Perú. Págs. 52 a 57.

PEM07 RNS-to-binary converter for a new three-moduli set 2n+1 1; 2n; 2n-1 Premmaraju, V.; Mohan, A. Transactions on Circuits and Systems II, Eepress Briefs 2007, Página(s): 1-5

PER03 Simulación de fallas en entornos VHDL Perumal, S.; Siferd, R.E. Peretti, G.; Romero, E. Marqués, C. 6º Congreso Interamericano de Computación Aplicada a la Industria de Procesos CAIP 2003, 1/10/2003, Puebla, México. (ISBN 968-6254-61-7).

PER03a Evaluation of Test Strategies in VHDL Descriptions: a Case Study Peretti, G.; Romero E.; Marqués C. IX Workshop Iberchip IWS’2003, Proceedings Iberchip. 26-28 Marzo 2003. La Habana, Cuba. (ISBN 959-261-105-X).

PET72 Introducción a la teoría de los números Pettofrezzo, Anthony J, Byrkit, Donald R. Editorial Prentice Hall Internacional. 1972

PET91 Chaos and order in the capital markets. A new view of cycles, prices and market volatility Peters, E. E. Editorial John Wiley and Sons Inc. 1991

PET95 Fractal market analysis. Aplying chaos theory to investment and economics Peters, E. E. Editorial John Wiley and Sons Inc. 1995

PIE94 Design of high-speed residue-to-binary number system converter based on Chinese Remainder Theorem Piestrak, S.J. Computer Design: VLSI in Computers and Processors, 1994. ICCD '94. Proceedings, IEEE International Conference on, 1994, Página(s): 508-511

PIE94a Design of residue generators and multioperand modular adders using carry-save adders Piestrak, S.J. Computers, IEEE Transactions on Volumen: 43 1, Jan. 1994, Página(s): 68-77

PIE95 A high-speed realization of a residue to binary number system converter Piestrak, S.J. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 42 10, Octubre 1995, Página(s): 661-663

POU94 Simple binary to residue transformation with respect to 2/sup m/+1 moduli Pourbigharaz, F.; Yassine, H.M. Circuits, Devices and Systems, IEE Proceedings- Volumen: 141 6, Diciembre. 1994, Página(s): 522-526

POU97 A signed-digit architecture for residue to binary transformation Pourbigharaz, F. Computers, IEEE Transactions on Volumen: 46 10, Octubre 1997, Página(s): 1146-1150

PRE92 An RNS to binary converter in 2n+1, 2n, 2n-1 moduli set Premkumar, A.B. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 7, Julio 1992, Página(s): 480-482

PRE95 An RNS to binary converter in a three moduli set with common factors Premkumar, A.B. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 42 4, Abril 1995, Página(s): 298-301

QIN95 Single flux quantum circuits using the residue number system Qing Ke; Feldman, M.J. Applied Superconductivity, IEEE Transactions on Volumen: 5 2 3, Junioio 1995, Página(s): 2988-2991

QUI07 http://www.quicklogic.com RAD90 A fast RNS Galois field multiplier

Radhakrishnan, D.; Yuan, Y. Circuits and Systems, 1990, IEEE International Symposium on, 1990, Página(s): 2909-2912 Volumen: 4

RAD90a Fault tolerance in RNS: an efficient approach Radhakrishnan, D.; Pyon, T. Computer Design: VLSI in Computers and Processors, 1990. ICCD '90. Proceedings, 1990 IEEE International Conference on, 1990, Página(s): 41-44

RAD92 Novel approaches to the design of VLSI RNS multipliers Radhakrishnan, D.; Yuan, Y. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 1, Jan. 1992, Página(s): 52-57

RAD98 Modulo multipliers using polynomial rings Radhakrishnan, D. Circuits, Devices and Systems, IEE Proceedings- Volumen: 145 6, Diciembre. 1998, Página(s): 443-445

Page 246: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

234

RAD98a A direct analog-to-residue converter Radhakrishnan, D.; Preethy, A.P. TENCON '98. 1998 IEEE Region 10 International Conference on Global Connectivity in Energy, Computer, Communication and Control Volumen: 2, 1998, Página(s): 336-339 Volumen: 2

RAM00 RNS-FPL merged architectures for orthogonal DWT Ramirez, J.; Garcia, A.; Fernandez, P.G.; Patrilla, L.; Lloris, A.; Electronics Letters Volumen 36, Número 14, 6 Julio 2000 Página(s):1198- 1199

RAM00a Implementation of RNS analysis and synthesis filter banks for the orthogonal discrete wavelet transform over FPL devices Ramirez, J.; Garcia, A.; Parrilla, L.; Lloris, A.; Fernandez, P.G.; Circuits and Systems, 2000. Proceedings of the 43rd IEEE Midwest Symposium on Volumen 3, 8-11 Agosto 2000 Página(s):1170- 1173 Volumen: 3

RAM00b Implementation of canonical and retimed RNS architectures for the orthogonal 1-D DWT over FPL devices Ramirez, J.; Garcia, A.; Fernandez, P.G.; Parrilla, L.; Lloris, A.; Signals, Systems and Computers, 2000. Conference Record of the Thirty-Fourth Asilomar Conference on Volumen 1, 29 Octubre-1 Noviembre 2000 Página(s):384- 388 Volumen: 1

RAM01 Design of RNS-based distributed arithmetic DWT filterbanks Ramirez, J.; Garcia, A.; Meyer Base, U.; Taylor, F.; Fernandez, P.G.; Lloris, A.; Acoustics, Speech, and Signal Processing, 2001. Proceedings. (ICASSP '01). 2001 IEEE International Conference on Volumen 2, 7-11 Mayo 2001 Página(s):1193- 1196 Volumen: 2

RAM01a Index-based RNS DWT architectures for custom IC designs Ramirez, J.; Fernandez, P.G.; Meyer-Base, U.; Taylor, F.; Garcia, A.; Lloris, A.; Signal Processing Systems, 2001 IEEE Workshop on 26-28 Septiembre 2001 Página(s):70- 79

RAM02 High performance, reduced complexity programmable RNS-FPL merged filters Ramírez, J.; Meyer-Baese. Electronics Letters. Volumen: 38 Nº 4, 2002.

RAM82 Analysis of errors in residue number system (RNS) based IIR digital filters Ramnarayan, R.; Taylor, F.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '82, Volumen: 7, Mayo 1982 Página(s): 56-59

RAM85 On large moduli residue number system recursive digital filters Ramnarayan, R.; Taylor, F.; Circuits and Systems, IEEE Transactions on, Volumen: 32 Número: 4, Abril 1985 Página(s): 349-359

RAM86 RNS cellular arrays Ramnarayan, R.; Taylor, F.; Circuits and Systems, IEEE Transactions on, Volumen: 33 Número: 5, Mayo 1986 Página(s): 526-532

RAM86 Limit cycles in large moduli residue number system digital filters Ramnarayan, R.; Taylor, F.; Circuits and Systems, IEEE Transactions on, Volumen: 33 Número: 9, Sep 1986 Página(s): 912-915

RAM89 High-speed ADC using residue number system Ramamoorthy, P.A.; Potu, B. Acoustics, Speech, and Signal Processing, 1989. ICASSP-89, 1989 International Conference on, 1989, Página(s): 1063-1066 Volumen: 2

RAM91 A modified residue number system with applications to signal processing Ramamoorthy, P.A.; Pace, P.E.; Styer, D. Circuits and Systems, 1990, Proceedings of the 33rd Midwest Symposium on, 1991, Página(s): 1018-1021 Volumen: 2

RAM99 A novel RNS-based SIMD RISC processor for digital signal processing Ramirez, J.; Garcia, A.; Parrilla, L.; Fernandez, P.G.; Lloris, A. Signals, Systems, and Computers, 1999. Conference Record of the Thirty-Third Asilomar Conference on Volumen: 2, 1999, Página(s): 1307-1311

RAY89 Systolic RNS arithmetic using feedback shift logic Ray, G.A. Computers and Communications, 1989. Conference Proceedings, Eighth Annual International Phoenix Conference on, 1989, Página(s): 74-79

RAY90 Core-based RNS ALU with customized instructions Ray, G.A. Computers and Communications, 1990. Conference Proceedings, Ninth Annual International Phoenix Conference on, 1990, Página(s): 891

REJ01 Integer division in residue number system Rejeb, B.; Henkelmann, H.; Anheier, W Siemens, Munich, and University of Bremen. 2001.

ROS04 A new statistical test for PRNG’s based on chaos González, C.; Larrondo, H.; Rosso, O. 2do. Taller Regional de Física Estadística y sus Aplicaciones a la Física de la Materia Condensada. TREFEMAC’04. 27 y 28 de Mayo, 2004, Córdoba,Argentina. Presentación poster y publicación en actas.

ROS08 Generalizad statistical complexity measure: a new tool for dynamical systems Rosso, A.; Larrondo, H,; Martín, M.; Plastino, A. Conferencia Invitada (Dr. Rosso) en Net-Works 2008, 9 al 11 de junio de 2008, Pamplona, España.

ROS08a Generalized Statistical Complexity Measure: A New Tool for DynamicalSystems Rosso, O.; Larrondo, H.; Martin, M.; Plastino, A. Proceedings of the Workshop Net-Works 2008, Pamplona, 9–11 June, 2008, pp.1–6. Presentado Rosso.

SAL90 RNS approach to full parallel linear combinators Salerno, M.; Cardarilli, G.C.; Lojacono, R.; Sargeni, F. Acoustics, Speech, and Signal Processing, 1990. ICASSP-90, 1990 International Conference on, 1990, Página(s): 925-928 Volumen: 2

Page 247: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

235

SAL91 Internal wordlength reduction in RNS recursive digital filters Salerno, M.; Cardarilli, G.C.; Lojacono, R.; Sargeni, F. Circuits and Systems, 1991, Proceedings of the 34th Midwest Symposium on, 1992, Página(s): 222-226 Volumen: 1

SAL91a Search of optimal RNS IIR digital filter implementation Salerno, M.; Cardarilli, G.C.; Lojacono, R.; Sargeni, F. Circuits and Systems, 1990, Proceedings of the 33rd Midwest Symposium on, 1991, Página(s): 1074-1077 Volumen: 2

SAN98 RDRN: a rapidly deployable radio network-implementation and experience Sanchez, R.J.; Evans, J.B.; Minden, G.J.; Frost, V.S.; Shanmugan, K.S. Universal Personal Communications, 1998. ICUPC '98. IEEE 1998 International Conference on Volumen: 1, 1998, Página(s): 93-97 Volumen: 1

SAR90 Linear arrays for residue mappers Sarkari, Z.B.; Skavantzos, A. Application Specific Array Processors, 1990. Proceedings of the International Conference on, 1990, Página(s): 309-316

SCH95 Diseño de CI basado en FPGA Schiavon, M. I. Memorias II SIMPOSIO Nacional de Microelectrónica. Rosario. Octubre 1995.

SCH95a Curso de Diseño ASIC basado en FPGA Schiavon, M. I. I WORKSHOP IBERCHIP. Cartagena, Colombia. Febrero1995.

SCH97 Aplicaciones de FPGA Schiavon, M. I. III Workshop IBERCHIP (pág. 545-546). DF, México. Febrero 1997.

SCH97a Dispositivos de Lógica Programable en los cursos de diseño de ASIC Schiavon, M. I. I Workshop de Microelectrónica AUGM (51-54). Rosario, Argentina. 1997.

SCH97b Inserción de la Microelectrónica en la UNR Schiavon, M. I. I Workshop de Microelectrónica AUGM (7-10). Rosario, Argentina. Octubre 1997.

SHA85 A proposed hardware structure for two-dimensional recursive digital filters using the residue number system Shah, A.; Sid-Ahmed, M.; Jullien, G.; Circuits and Systems, IEEE Transactions on, Volumen: 32 Número: 3, Mar 1985 Página(s): 285-288

SHA98 General purpose FIR filter arrays using optimized redundancy over direct product polynomial rings Shahkarami, M.; Jullien, G.A.; Muscedere, R.; Li, B.; Miller, W.C. Signals, Systems & Computers, 1998. Conference Record of the Thirty-Second Asilomar Conference on Volumen: 2, 1998, Página(s): 1209-1213 Volumen: 2

SHE87 An accurate scaling technique in improved residue number system arithmetic Shenoy, A.; Kumaresan, R.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '87, Volumen: 12, Abril 1987 Página(s): 1414-1417

SHE88 Residue to binary conversion for RNS arithmetic using only modular look-up tables Shenoy, A.P.; Kumaresan, R. Circuits and Systems, IEEE Transactions on Volumen: 35 9, Septiembre 1988, Página(s): 1158-1162

SHE88 Residue to binary conversion for RNS arithmetic using only modular look-up tables Shenoy, A.P.; Kumaresan, R.; Circuits and Systems, IEEE Transactions on, Volumen: 35 Número: 9, Septiembre 1988 Página(s): 1158-1162

SHE89 Fast base extension using a redundant modulus in RNS Shenoy, A.P.; Kumaresan, R. Computers, IEEE Transactions on Volumen: 38 2, Febrero 1989, Página(s): 292-297

SHE89a A fast and accurate RNS scaling technique for high speed signal processing Shenoy, M.A.P.; Kumaresan, R. Acoustics, Speech and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on Volumen: 37 6, Junioio 1989, Página(s): 929-937

SHU04 An efficient VLSI design for a residue to binary converter for general balance moduli 2n-3, 2n +1, 2n-1, 2n +3 Sheu, M. H.; Lin, S. H.; Chen, C. Transactions on Circuits and Systems II: Express Briefs Volumen 51, Nº 3, Marzo 2004 Página(s): 152-155

SHU93 On the lattice structure of the Add-With-Carry and Subtract-With-Borrow random number generators Shu, Tezuka; L´ecuyer, Pierre; Couture, Raymond. ACM Transsactions on Modeling Computer Simulation Volumen: 3, Nº 4, October 1993, Página(s): 315-331

SHU98 Residue arithmetic circuits based on the signed-digit multiple-valued arithmetic circuits Shugang Wei; Shimizu, K. Multiple-Valued Logic, 1998. Proceedings. 1998 28th IEEE International Symposium on, 1998, Página(s): 276-281

SIG89 IEE Colloquium on 'Signal Processing Applications of Finite Field Mathematics' (Digest No.90) Signal Processing Applications of Finite Field Mathematics, IEE Colloquium on, 1989

SIV95 VLSI architectures for computing X mod m Sivakumar, R.; Dimopoulos, N.J. Circuits, Devices and Systems, IEE Proceedings- Volumen: 142 5, Octubre 1995, Página(s): 313-320

SKA87 On the multidimensional RNS and its applications to the design of fast digital systems Skavantzos, A.; Griffin, M.; Taylor, F.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '87, Volumen: 12, Abril 1987 Página(s): 1991-1994

SKA91 ROM table reduction techniques for computing the squaring operation using modular arithmetic Skavantzos, A. Signals, Systems and Computers, 1991. 1991 Conference Record of the Twenty-Fifth Asilomar Conference on, 1991, Página(s): 413-417 Volumen: 1

Page 248: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

236

SKA91a Using quadratic residue arithmetic for computing skew cyclic convolutions Skavantzos, A. Electronics Letters Volumen: 27 23, 7 Noviembre 1991, Página(s): 2140-2141

SKA92 Computing large polynomial products using modular arithmetic Skavantzos, A.; Mitash, N. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 39 4, Abril 1992, Página(s): 252-254

SKA93 Implementation números of 2-dimensional polynomial multipliers for signal processing using residue arithmetic Skavantzos, A.; Mitash, N. Computers and Digital Techniques, IEE Proceedings E [see also Computers and DigitalTechniques, IEE Proceedings-] Volumen: 140 1, Jan. 1993, Página(s): 45-53

SKA98 An efficient residue to weighted converter for a new residue number system Skavantzos, A. VLSI, 1998. Proceedings of the 8th Great Lakes Symposium on, 1998, Página(s): 185-191

SKA98a Novel residue arithmetic processors for high speed digital signal processing Skavantzos, A.; Abdallah, M. Signals, Systems & Computers, 1998. Conference Record of the Thirty-Second Asilomar Conference on Volumen: 1, 1998, Página(s): 187-193 Volumen: 1

SKA99 Application of new Chinese remainder theorems to RNS with two pairs of conjugate moduli Skavantzos, A.; Yuke Wang Communications, Computers and Signal Processing, 1999 IEEE Pacific Rim Conference on, 1999, Página(s): 165-168

SKA99a Implementation números of the two-level residue number system with pairs of conjugate moduli Skavantzos, A.; Abdallah, M. Signal Processing, IEEE Transactions on Volumen: 47 3, Marzo 1999, Página(s): 826-838

SKA99b Grouped-moduli residue number systems for fast signal processing Skavantzos, A.; Stouraitis, T. Circuits and Systems, 1999. ISCAS '99. Proceedings of the 1999 IEEE International Symposium on Volumen: 3, 1999, Página(s): 478-483 Volumen: 3

SKA99c New efficient RNS-to-weighted Diciembreoders for conjugate-pair-moduli residue number systems Skavantzos, A.; Yuke Wang Signals, Systems, and Computers, 1999. Conference Record of the Thirty-Third Asilomar Conference on Volumen: 2, 1999, Página(s): 1345-1350

SOD83 An improved residue number system digital-to-analog converter Soderstrand, M.; Vernia, C.; Jui-Hua Chang; Circuits and Systems, IEEE Transactions on, Volumen: 30 Número: 12, Diciembre 1983 Página(s): 903-907

SOD84 A pipelined recursive residue number system digital filter Soderstrand, M.; Sinha, B.; Circuits and Systems, IEEE Transactions on, Volumen: 31 Número: 4, Abril 1984 Página(s): 415-417

SOD86 VLSI implementation in multiple-valued logic of an FIR digital filter using residue number system arithmetic Soderstrand, M.; Escott, R.; Circuits and Systems, IEEE Transactions on, Volumen: 33 Número: 1, Jan 1986 Página(s): 5-25

SOD95 VLSI implementation of very-high-order FIR filters Soderstrand, M.A.; Al-Marayati, K. Circuits and Systems, 1995. ISCAS '95, 1995 IEEE International Symposium on Volumen: 2, 1995, Página(s): 1436-1439 Volumen: 2

SOU88 A DFT using number theoretic logarithms Sousa, M.; Griffin, M.; Taylor, F. Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 1988, Página(s): 1718-1721 Volumen: 3

SOU88 A DFT using number theoretic logarithms Sousa, M.; Griffin, M.; Taylor, F.; Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 11-14 Abril 1988 Página(s): 1718-1721 Volumen: 3

SOU97 A VLSI design methodology for RNS full adder-based inner product architectures Soudris, D.J.; Paliouras, V.; Stouraitis, T.; Goutis, C.E. Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on Volumen: 44 4, Abril 1997, Página(s): 315-318

STA88 Minimization of rounding errors in WFTA programs Stasinski, R.; Lukasik, E. Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 1988, Página(s): 1423-1426 Volumen: 3

STA88 Minimization of rounding errors in WFTA programs Stasinski, R.; Lukasik, E.; Acoustics, Speech, and Signal Processing, 1988. ICASSP-88, 1988 International Conference on, 11-14 Abril 1988 Página(s): 1423-1426 Volumen: 3

STO01 Considering the alternatives in low-power design Stouraitis, T.; Paliouras, V. Circuits and devices, Julio 2001, Página(s): 23-29.

SUC90 An algorithm for scaling and single residue error correction in residue number systems Su, C.-C.; Lo, H.-Y. Computers, IEEE Transactions on Volumen: 39 8, Agosto 1990, Página(s): 1053-1064

SUN92 A superfast algorithm for single-error correction in RRNS and hardware implementation Sun, J.-D.; Krishna, H.; Lin, K.Y. Circuits and Systems, 1992. ISCAS '92. Proceedings, 1992 IEEE International Symposium on Volumen: 2, 1992, Página(s): 795-798 Volumen: 2

Page 249: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

237

TAH87 Systolic ROM arrays for implementing RNS FIR filters Taheri, M.; Jullien, G.; Miller, W.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '87, Volumen: 12, Abril 1987 Página(s): 771-774

TAT95 Image coder based on residue number system for progressive transmission Tatsaki, A.; Stouraitis, T.; Goutis, C. Electronics Letters Volumen: 31 6, 16 Marzo 1995, Página(s): 442-443

TAY81 Large moduli multipliers for signal procesing Taylor, Fred J. IEEE Transactions on circuits and systems, Volumen CAS-28, Número 7, Julio 1981.

TAY84 Residue arithmetic: A tutorial with examples Taylor, Fred J. Computer Magazine, IEEE Mayo. 1984. Página(s): 59-62

TAY85 A sparse RNS system Taylor, F.; Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on, Volumen: 33 Número: 3, Junio 1985 Página(s): 744-748

TAY87 A reconfigurable binary/RNS/LNS architecture for DSP Taylor, F.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '87, Volumen: 12, Abril 1987 Página(s): 503-506

TAY90 An RNS discrete Fourier transform implementation Taylor, F.J. Acoustics, Speech and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on Volumen: 38 8, Agosto 1990, Página(s): 1386-1394

TAY91 The Gauss machine-a DSP processor with a high RNS content Taylor, F.J.; Zelniker, G.S.; Smith, J.C.; Mellott, J. Acoustics, Speech, and Signal Processing, 1991. ICASSP-91, 1991 International Conference on, 1991, Página(s): 1081-1084 Volumen: 2

THU86 On residue number system Diciembreoding Thun, R.; Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on, Volumen: 34 Número: 5, Oct 1986 Página(s): 1346-1347

TOM91 Design method of defect-tolerant WSI systems based on the residue number system Tomabechi, N. Circuits and Systems, 1991, IEEE International Sympoisum on, 1991, Página(s): 3082-3085 Volumen: 5

TOY96 High-speed hardware algorithms for Chinese remainder theorem Toyoshima, H.; Satoh, K.; Ariyama, K. Circuits and Systems, 1996. ISCAS '96, Connecting the World, 1996 IEEE International Symposium on Volumen: 2, 1996, Página(s): 265-268 Volumen: 2

TUR97 Fraction-free RNS algorithms for solving linear systems Turner, P.R. Computer Arithmetic, 1997. Proceedings, 13th IEEE Symposium on, 1997, Página(s): 218-224

UCH97 Development of low-cost high-resolution APD measuring equipment Uchino, M.; Hayashi, Y.; Shinozuka, T.; Sato, R. Electromagnetic Compatibility Proceedings, 1997, 1997 International Symposium on, 1997, Página(s): 253-256

ULM91 Fast division in residue arithmetic Ulman, Z.D.; Czyzak, M.; Zurada, J.M. Communications, Computers and Signal Processing, 1991, IEEE Pacific Rim Conference on, 1991, Página(s): 696-699 Volumen: 2

ULM93 Effective RNS scaling algorithm with the Chinese remainder theorem Diciembreomposition Ulman, Z.; Czyzak, M.; Zurada, J. Communications, Computers and Signal Processing, 1993, IEEE Pacific Rim Conference on Volumen: 2, 1993, Página(s): 528-531 Volumen: 2

ULM98 Highly parallel, fast scaling of numbers in nonredundant residue arithmetic Ulman, Z.D.; Czyzak, M. Signal Processing, IEEE Transactions on Volumen: 46 2, Febrero 1998, Página(s): 487-496

VAC86 A systolic discrete Fourier transform using residue number systems over the ring of Gaussian integers Vaccaro, J.; Johnson, B.; Nowacki, C.; Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP '86, Volumen: 11, Abril 1986 Página(s): 1157-1160

VIN00 A residue to binary converter for the 4-moduli superset 2n-1; 2n ; 2n + 1; 2n+1-1 Vinod, A. P.; Premkumar, A. B. J. Circuits Syst. Comput. Volumen 10, 2000, Página(s): 85–99.

VIN94 Selection of bases for a residue number system Vinnakota, B. Electronics Letters Volumen: 30 11, 26 Mayo 1994, Página(s): 836-837

WAN00 México Antiguo 17-04-2000 [email protected], [email protected] http://perso.wanadoo.es/farolo

Page 250: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

238

WAN00a Residue-to-binary converters based on new chinese remainder theorems Wang, Y. Circuits and Systems II Volumen: 47 Nº3, marzo 2000, Página(s): 197-205

WAN96 A new algorithm for RNS Diciembreoding Wang, Y.; Abd-el-barr, M. Transactions on circuits and systems II Volumen 43, Nº 12, diciembre 1996

WAN98 New chinese remainder theorems Wang, Y. Circuits and Systems, 1998. 1998, Página(s): 165-171

WEI00 Eric Weisstein’s World of Matrhematics Weisstein Eric http://mathworld.wolfram.com/PrimitiveRoot.html

WEI05 RRNS quasi-chaotic coding and its FPGA implementation Wei Wang; Xiaolin Zhang; Chenyang Yang; Swamy, M.N.S.; Ahmad, M.O.; Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, 2005 and First ACIS International Workshop on Self-Assembling Wireless Networks. SNPD/SAWN 2005. Sixth International Conference on 23-25 Mayo 2005 Página(s):274- 280

WEI99 Residue arithmetic multiplier based on the radix-4 signed-digit multiple-valued arithmetic circuits Wei, S.; Shimizu, K. VLSI Design, 1999. Proceedings. Twelfth International Conference On, 1999, Página(s): 212-217

WEI99a A high-speed residue-to-binary converter and a scheme for its VLSI implementation Wei Wang; Swamy, M.N.S.; Ahmad, M.O.; Yuke Wang Circuits and Systems, 1999. ISCAS '99. Proceedings of the 1999 IEEE International Symposium on Volumen: 6, 1999, Página(s): 330-333 Volumen: 6

WEI99b Residue arithmetic circuits based on signed-digit number representation and the VHDL implementation Wei, S.; Shimizu, K. VLSI, 1999. Proceedings. Ninth Great Lakes Symposium on, 1999, Página(s): 218-221

WIK08 http://es.wikipedia.org/wiki/Caminos_del _inca WIL83 On hard errors in RNS architectures

Wilmhoff, R.; Taylor, F.; Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing], IEEE Transactions on, Volumen: 31 Número: 3, Junio 1983 Página(s): 772-774

WIL91 Single-modulus RNS implementation of Wigner-Ville time-varying spectral estimations Wilbur, J.; Taylor, F.J. Signal Processing, IEEE Transactions on Volumen: 39 4, Abril 1991, Página(s): 1020-1023

WIL91 Single-modulus RNS implementation of Wigner-Ville time-varying spectral estimations Wilbur, J.; Taylor, F.J.; Signal Processing, IEEE Transactions on [see also Acoustics, Speech, and Signal Processing, IEEE Transactions on] Volumen 39, Número 4, Abril 1991 Página(s):1020- 1023

WOL02 Wolfram Research http://mathworld.wolfram.com/PrimitiveRoot.html

WRZ96 A new approach to fixed-coefficient inner product computation over finite rings Wrzyszcz, A.; Milford, D.; Dagless, E.L. Computers, IEEE Transactions on Volumen: 45 12, Diciembre. 1996, Página(s): 1345-1355

WRZ97 Computation of fixed-coefficient inner products over finite rings with the use of pass-transistor networks Wrzyszcz, A.; Milford, D.; Dagless, E.L. Signals, Systems and Computers, 1996. Conference Record of the Thirtieth Asilomar Conference on Volumen: 1, 1997, Página(s): 202-205 Volumen: 1

XIL07 http://www.xilinx.com YAS91 Improved mixed-radix conversion for residue number system architectures

Yassine, H.M.; Moore, W.R. Circuits, Devices and Systems, IEE Proceedings G Volumen: 138 1, Febrero 1991, Página(s): 120-124

YAS92 Matrix mixed-radix conversion for RNS arithmetic architectures Yassine, N.M. Circuits and Systems, 1991, Proceedings of the 34th Midwest Symposium on, 1992, Página(s): 273-278 Volumen: 1

YAS92a Hierarchical residue numbering system suitable for VLSI arithmetic architectures Yassine, H.M. Circuits and Systems, 1992. ISCAS '92. Proceedings, 1992 IEEE International Symposium on Volumen: 2, 1992, Página(s): 811-814 Volumen: 2

YAU76 On the design of modulo arithmetic units based on cyclic groups Yau, Stephen, S. Computers, IEEE Transactions on Volumen: 25 11, November 1976, Página(s): 1057-1067

YON04 Design and implementation of an RNS-based 2-D DWT processor Yong Liu; Lai, E.M.-K.; Consumer Electronics, IEEE Transactions on Volumen 50, Número 1, Feb 2004 Página(s):376- 385

YUK96 A new algorithm for RNS Diciembreoding Yuke Wang; Abd-El-Barr, M. Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on Volumen: 43 12, Diciembre. 1996, Página(s): 998-1001

Page 251: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Referencias

239

YUK99 A new algorithm for RNS magnitude comparison based on New Chinese Remainder Theorem II Yuke Wang; Xiaoyu Song; Aboulhamid, M. VLSI, 1999. Proceedings. Ninth Great Lakes Symposium on, 1999, Página(s): 362-365

YUT98 A simplified architecture for module (2/sup n/+1) multiplication Yutai Ma Computers, IEEE Transactions on Volumen: 47 3, Marzo 1998, Página(s): 333-337

ZAB08 Implementación en FPGA de un generador de ruido coloreado Zabaleta, O.; De Micco, L.; González, C.; Arizmendi C.; Larrondo, H. Proceedings of Designer’s Forum. IV Southern Programmable Logic Conference (SPL08) ISBN 978-84-612-2376-3.pp 69-73 Bariloche, Argentina, 26-28 Marzo 2008.

ZHA98 A class of RS-RNS concatenated codes: construction and performance Zhang Xiaowen; Ren Lijuan; Nie Tao; Li Chengshu Communication Technology Proceedings, 1998. ICCT '98. 1998 International Conference on Volumen: Volumen: 2, 1998, Página(s): 5 pp. Volumen: 2

Page 252: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Siglas y símbolos

240

Siglas y Símbolos

S

45

Los símbolos se emplean para representar una realidad perceptible, mediante algún tipo de convención. Es un vínculo convencional entre lo que se desea representar y su designación.

En el ámbito académico, científico y técnico, los signos y letras son abreviaciones para referirce a un determinado ente, con el objeto de simplificar la escritura y la transmición de pensamientos.

45 Fuente: http://www.quepasa.cl/vgn/images/portal/FOTO042005/151843690simbolos-alquimistas-34kb.jpg.

Page 253: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Siglas y símbolos

241

SIGLAS Y SÍMBOLOS TABLA DE SIGLAS Y SÍMBOLOS

Sigla o símbolo

Significado

∏i

im Producto de m1, m2, m3,... mi.

θm Resta en módulo m (θm). ⊕ m Suma en módulo m (⊕m). ⊗ m Producto en módulo m (⊗m). ∅ m División en módulo m (∅m). a ≡ b mod m a es congruente con b en módulo m. AHDL Altera Hardware Description Language. ASIC Application-Specific Integrated Circuit. AWCG Add With Carry Generator. Generador de Suma con Acarreo. Ca2 Complemento a 2. CDSP Custom Digital Signal Processor. CIF Caltech Intermediate Format. Formato intermedio del Caltech (California Institute

of Techonology). CLB Configurable Logic Block. Bloque lógico configurable. CLK CLOCK. Nombre empleado para la señal de sincronismo en los sistemas

digitales. CMOS Complementary Metal-Oxide-Semiconductor. Circuito digital complementario

realizado en proceso metal-óxido-semiconductor. CPLD Complex Programmable Logic Device. Dispositivo lógico programable complejo. CRNS Complex Residue Number System. Sistema numérico de residuos complejo. CRT Chinese Remainder Theorem. Teorema chino del residuo. CRT-ε Approximate Chinese Remainder Theorem. Teorema chino del residuo

aproximado CSA Carry Save Adder. DCT Discrete Cosine Transform. Transformada de coseno discreta. DFT Discrete Fourier Transform. Transformada discreta de Fourier. DSP Digital Signal Processing. Procesamiento digital de señales. EAB Embedded Array Block. Bloque de memoria. EPLD EPROM technology-based complex Programmable Logic Device. Dispositivo

lógico programable basado en EPROM. FA Full Adder. Sumador completo. FCM Fixed Coefficient Multiplication. Multiplicación por coeficientes constantes. FFT Fast Fourier Transform. Transformada rápida de Fourier. FIR Finite Impulse Response. Respuesta finita al impulso. FPGA Field Programmable Gate Array Arreglo de compuertas programable en campo. GNPA Generador de Números Pseudo Aleatorios ICG Inversive Congruential Generator. Generador mediante el multiplicativo inverso. IIR Infinite Impulse Response. Respuesta al impulso infinita. LAB Logic Array Block. Bloque de elementos lógicos. LC Logic Cell Celda lógica.

Page 254: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Siglas y símbolos

242

LCG Linear Congruential Generator. Generador Congruente Lineal. LE Logic Element. Elemento lógico. LSB Least Significant Bit. Bit menos significativo. LUT Look-Up Table. Tabla de búsqueda. Mcd Máximo común divisor. Mp Número de Mersenne. MRRNS Modulus Replication Residue Number System. MSB Most Significant Bit. Bit más significativo. MRS Mixed Radix System. Sistema de bases multiples. MSPS Mega Samples Per Second. Millones de muestras por segundo. NCRT-I Nuevo Teorema Chino del Residuo-I NCRT-II Nuevo Teorema Chino del Residuo-II NQRR Non Quadratic Residue Ring. Anillo de residuos no cuadrático. NTT Number Theoretic Transform. Transformada teórica en forma numérica. P Número primo. PAL Programmable Logic Array. Matriz lógica programable. PNS Polynomial Number System. Sistema numérico polinomial. PRNG Pseudorandom Number Generator PRNS Polynomial Residue Number System. Sistema numérico de residuos polinomial. QLRNS Quadratic Like Residue Number System. Sistema numérico de residuos cuasi

cuadrático. MQRNS Modified Quadratic Residue Number System. Sistema numérico de residuos

cuadrático modificado. MWCG Multiply With Carry Generator. Generador de Multiplicación con Acarreo. QRNS Quadratic Residue Number System. Sistema numérico de residuos cuadrático. QRR Quadratic Residue Ring. Anillo de residuos cuadrático. RCA Ripple Carry Adder. RNS Residue Number System. Sistema numérico de residuos. RRNS Redundant Residue Number System. Sistema numérico de residuos redundante. SC Standard Cell. Celda normalizada. SRNS Symmetric Residue Number System. Sistema numérico de residuos. SWBG Subtract With Borrow Generator. Generador de Resta con Préstamo. ULSI Very-Large-Scale Integration. Muy alta escala de integración. VLSI Ultra-Large-Scale Integration. Escala de integración ultra alta. WT Wavelet Transform. Transformada ondita. X La letra en negrita indica el vector: x = x1, x2, x3,... xn). Z Conjunto de los números enteros. Zm Conjunto de enteros positivos menores que m, incluyendo el 0 (de 0 a m – 1). Z*

m Conjunto de los enteros positivos que ∈ Zm | mcd(a, m) = 1. Z*

p Conjunto de los a | 1 ≤ a ≤ p – 1, con p primo. | a |m a en módulo m. M Rango dinámico. m | ( a – b ) La diferencia a – b es divisible en forma exacta por m. M Módulo m. b-1 Multiplicativo inverso. mcd( a, b ) Máximo común divisor de a y b. AAAA Anillo. CCCC Campo GGGG Grupo. GGGG( p ) Campo da Galois de orden p.

Page 255: TESIS DOCTORAL - Facultad de Ingeniería UNMdP · TESIS DOCTORAL Generadores de números pseudoaleatorios en aritmética de residuos: teoría e implementación en FPGAs ING. CARLOS

Siglas y símbolos

243

o Operación aritmética genérica. N Número de bits. LC Logic Cell. Celda lógica, macrocelda en la familia MAX y elemento lógico (LE)

en la FLEX. & Parágrafo. a Menor entero mayor que a. a Mayor entero menor que a. φ(n) Función phi de Euler.