Procesamiento paralelo en FPGA para convolución de imágenes usando Matlab
|
|
- Adolfo Caballero Murillo
- hace 8 años
- Vistas:
Transcripción
1 Procesamiento paralelo en FPGA para convolución de imágenes usando Matlab Parallel processing on FPGA for image convolution using Matlab DIEGO ARMANDO GIRAL RAMÍREZ Ingeniero eléctrico, estudiante de Maestría en Ingeniería Eléctrica, Universidad de los Andes, Bogotá, Colombia. Contacto: RICARDO ROMERO ROMERO Ingeniero eléctrico, Universidad Distrital Francisco José de Caldas, Bogotá, Colombia. Contacto: FERNANDO MARTÍNEZ SANTA Ingeniero eléctrico, magíster en Ingeniera Electrónica y de Computadores, docente de la Universidad Distrital Francisco José de Caldas, Bogotá, Colombia. Contacto: fmartinezs@udistrital.edu.co. Fecha de recepción: 15 de febrero del 2014 Fecha de aceptación: 15 de agosto del 2014 Clasificación del artículo: investigación Financiamiento: Universidad Distrital Francisco José de Caldas DOI: Palabras clave: arreglos de compuertas programables, convolución, grado de paralelismo, cosimulación de hardware, Xilinx System Generator. Keywords: tion, Xilinx System Generator. RESUMEN Este artículo describe el diseño de dos arquitec- que mediante Hardware co-simulation del toolbox de Matlab Xilinx System Generator son implementadas en una FPGA Xilinx Spartan 3AN. El proyecto nace con el propósito de evaluar el rendimiento del procesamiento paralelo de imágenes con respecto al procesamiento en serie. Inicialmente se realiza el diseño y la implementación en hardware de las dos arquitecturas. Después, a partir de la medición de variables espe- alternativa de paralelización. Haciendo uso de las herramientas que brinda el toolbox, se evalúa la relación entre grado de paralelismo, tiempos de ejecución y recursos hardware utilizados. Finalmente, y entre las conclusiones más importantes, se obtiene que el tiempo de procesamiento de la imagen es reducido notablemente a medida que aumenta su grado de paralelización. Tecnura Vol. 19 No. 43 pp enero - marzo de
2 ABSTRACT This paper shows the design of two convolution co-simulation through Xilinx System Generator Matlab toolbox to be implemented in a Xilinx Spartan 3AN FPGA. The purpose of the project is to evaluate the performance of parallel image processing versus the serial one. Initially the design and hardware implementation of the two architectures are performed, after, from the measurement lected as an alternative for parallelization, using the tools provided by the toolbox evaluates the relationship between the degree of parallelism, execution times and hardware resources used, and obtained that the processing time of the image is of parallelization of the image. * * * INTRODUCCIÓN El origen del procesamiento digital de imágenes, por el alto nivel de procesamiento que estas requieren, se encuentra directamente relacionado con el desarrollo y la evolución de las computa- enfocan, desenfocan, realzan bordes y detectan bordes, entre otras, utilizan la convolución como operación matemática. El procesamiento de imágenes es un área de investigación muy extensa con un gran número de aplicaciones en múltiples campos como: las ciencias exactas, la medicina, la ingeniería (eléctrica, mecánica, automotriz, civil, etc.), la navegación aeronáutica, la navegación marítima, entre otras; sin embargo, presenta problemas en su implementación por la velocidad de procesamiento y los tiempos de desarrollo (Gonzales y Woods, 2002). El diseño de algoritmos para múltiples aplicaciones, tradicionalmente se fundamenta en procesos seriales, que requieren la culminación de una instrucción para la ejecución de la siguiente. El procesamiento en paralelo como técnica de programación permite ejecutar de manera simultánea varias instrucciones, resolviendo a bajo gramación en serie y los problemas de implementación y tiempos de desarrollo en el procesamiento de imágenes (Rodríguez Pérez, 2010; Garces Socarras, 2012). Las FPGA (Field Programmable Gate Array) son dispositivos compuestos por bloques lógicos que permiten ser reprogramados a voluntad del usuario. Los lenguajes de programación para FPGA más utilizados, entre otros, son: VHDL, ABEL y Verilog. Su objetivo es acelerar el proceso del diseño; sin embargo, hoy existe software que permite realizar la programación de este tipo de dispositivos, sin necesidad de tener un conocimiento exhaustivo de algún lenguaje de descripción de hardware, como por ejemplo Matlab y LabView, que son programas de uso frecuente por sus amplias herramientas (Boemo Scalvinoni, 2005; López Vallejo, 2004; Sánchez Élez, 2014). METODOLOGÍA El diseño de la arquitectura y la implementación se ejecuta en cuatro etapas: en la primera se selecciona la herramienta de trabajo, en la segunda se realiza el estudio de la etapa de preprocesamiento, procesamiento y posprocesamiento basado en el análisis matemático, en la tercera se diseña la arquitectura y en la cuarta se implementa y se obtienen las respectivas métricas de evaluación. 120 Tecnura Vol. 19 No. 43 enero - marzo de 2015
3 Xilinx System Generator Xilinx System Generator cuenta con la posibilidad de realizar cosimulaciones, esta herramienta permite utilizar la FPGA como unidad de procesamiento, con señales de entrada y salida desde Cabrerae Ibarra, 2009). Adicionalmente a la cosimulación y entre muchas más herramientas, el toolbox cuenta el con el Xilinx Mcode, que permite incorporar códigos basados en funciones de Matlab. El bloque traduce los M-code en un equivalente de lenguajes de descripción de hardware (Verilog/VHDL). Cuando se realiza la implementación en la tarjeta, el bloque admite un subconjunto limitado de instrucciones implementar funciones aritméticas, máquinas de que: Resource Estimator proporciona una estimación de los recursos que requiere la FPGA para implementar el diseño creado en Simulink. En la etapa de diseño y medición se profundizará en detalle sobre estos bloques (Xilinx, 2012; Moctezuma, Sánchez, Álvarez y Sánchez, 2007). directamente con los bloques de Simulink, mientras que el procesamiento será con la librería de Las entradas y las salidas de la arquitectura dependen directamente del procesamiento. Por este motivo, el diseño general de la arquitectura Procesamiento. El diseño de la etapa de proce- convolución que se va a implementar. Se considera f(x,y) como una imagen de m n píxeles (ecuación (1)), donde cada uno de los elementos que componen la matriz representa un pixel de la imagen (Garces Socarrás, 2012; Forero Vargas y Arias Cruz, 2001; Rodríguez Cruz, Rivero Flores y Castillo Atoche, 2006). Preprocesamiento, procesamiento y posprocesamiento La base del diseño de la arquitectura son las etapas del procesamiento digital de imágenes. - Woods, 2002). Con el propósito de obtener la mejor arquitectura basada en resultados comparativos se realizan dos cuentra en la cantidad de datos que llegan a la etapa de procesamiento. El preprocesamiento y el posprocesamiento para ambos diseños se realizan Figura 1. Flujo de diseño con System Generator Fuente: Xilinx (2012). Adquisición [Pre-procesamiento] Procesamiento Visualización [Pos-procesamiento] Figura 2. Proceso para el tratamiento de imágenes Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 121
4 Figura 3. Tratamiento de imágenes utilizando Simulink A(0,0) A(0,1) A(0, n1) A(1, 0) A(1,1) A(1, n1) f( x, y) Am ( 1,0) Am ( 1,1) Am ( 1, n1) (1) La matriz de convolución o matriz kernel K(x,y) puede tomar cualquier tamaño dependiendo del trabajo se utiliza un kernel de 3 x 3 (ecuación (2)). K K K K( x, y) K K K K K K (2) imagen, es necesario proporcionarle un marco que no altere la imagen. La ecuación (3) muestra el marco de ceros adicional que se agrega a la matriz f(x,y)f(x,y) a (m+2) (n+2) pixeles A(0, 0) A(0,1) A(0, n 1) 0 0 A(1, 0) A(1,1) A(1, n 1) 0 f( x, y) Am ( 1, 0) Am ( 1,1) Am ( 1, n1) (3) modelos bidimensionales a partir de la ecuación (4), donde g(x,y) representa el resultado de convolución entre la imagen f(x,y) de (m+2) (n+2) pixeles y un kernel de tamaño h h (Forero Vargas y Arias Cruz, 2001; Rodríguez Escudero, 2013). gxy (, ) f( xy, ) Kxy (, ) gxy (, ) fij (, ) Kx ( iy, j) gxy (, ) fij (, ) Kx ( iy, j) i0 j0 (4) Para el caso particular cuando h = 3 (ecuación (2)), la ecuación (4) se transforma en la expresión descrita en la ecuación (5) (Rodríguez Escudero, 2013). 2 2 gxy (, ) fij (, ) Kx ( iy, j) i0 j0 (5) La ecuación (5) se traduce en la sumatoria de la multiplicación de todos lo pixeles de la imagen kernel. Finalmente, se obtiene una imagen procesada en todos los puntos de la imagen original menos en el marco de ceros adicionado (Garces 122 Tecnura Vol. 19 No. 43 enero - marzo de 2015
5 Socarras, 2012; Rodríguez Cruz, Rivero Flores y Castillo Atoche, 2006). El procesamiento de imágenes con convolución trabaja a partir del radio de los pixeles circundantes al pixel (x,y), el radio se determina a partir de la ecuación (6) (Garces Socarrás, 2012; Rodríguez Cruz, Rivero Floresy Castillo Atoche, 2006). h 1 radio (6) 2 Remplazando en la ecuación (6) el valor de h=3, se obtiene que el radio=1 para la arquitectura que se va a implementar. sultado de convolución g(x,y) entre la imagen f(x,y) de (m+2) (n+2) pixeles y un kernel de tamaño 3 3 con radio=1. A2; es la puerta de enlace entre los bloques de Simulink y los bloques de Xilinx System Generator. Cuando se realiza la implementación en hardware de la arquitectura, cada Xilinx Gateway In de- de hardware, y por lo tanto en la FPGA (Garces Socarrás, 2012; Xilinx, 2012). Sin embargo, el Xilinx Gateway In recibe únicamente datos de tipo integer, single o doublé; no recibe arreglo de datos (Garces Socarras, 2012; Xilinx, 2012), por lo tanto, no es posible bloque de procesamiento en forma matricial; sin embargo, se pueden usar múltiples entradas que permitan construir el arreglo de datos en forma de un vector columna de nueve elementos, donde cada dato representa el pixel circundante al pixel (x,y) de f(x,y). La etapa de preprocesamiento consiste en diseñar el algoritmo que permita entregarle en forma de vector y de manera lógica los datos al bloque de procesamiento. Figura 4. Resultado grafico de convolución g(x,y) Fuente: Garces Socarrás (2012) nen en el algoritmo de preprocesamiento: de 3 3 el bloque de convolución debe procesar 9 datos al mismo tiempo, este criterio es la base del diseño de la etapa de preprocesamiento. Preprocesamiento. ra 3, el preprocesamiento se realiza llamando un archivo *.mat creado desde el workspace de Matlab. La conexión entre el preprocesamiento y el procesamiento se realiza a partir del Xilinx Gateway In. Este bloque realiza la conversión del dato de Simulink a datos de tipo booleano, punto Adquisición de la imagen: se lee la imagen a a escala de grises para que el procesamiento se realice sobre una única matriz. Asignación de marco: se enmarca con ceros la matriz de la imagen. Construcción del vector: se convierte la matriz en un vector. Este tiene una construcción espe- la primera diferencia entre arquitecturas. Conexión: se realiza la conexión entre el preprocesamiento y el procesamiento. Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 123
6 Figura 5. Construcción del vector de procesamiento El preprocesamiento tiene una etapa adicional a ubicada entre la segunda y la tercera parte y consiste en dividir la matriz principal en pequeñas la arquitectura tantas veces como sea posible en hardware. El número de veces que se pueda dividir en pequeñas submatrices se datos que se espera determinar a partir de las cosimulaciones. Posprocesamiento. El posprocesamiento es la etapa encargada de construir la matriz de datos g(x,y). A diferencia del preprocesamiento trabaja con un único dato de entrada y es el resultado de la convolución entre los nueve datos de la matriz f(x,y) y la matriz kernel de 3 3. El algoritmo de posprocesamiento tiene la misma estructura para las dos arquitecturas. miento se realiza llevando los datos de salida del Xilinx System Generator al workspace de Matlab. Al igual que en el preprocesamiento, la conexión entre el procesamiento y el posprocesamiento se realiza a partir del Xilinx Gateway Out, este bloque realiza la conversión del dato de Xilinx System Generator a datos de tipo integer, single o doublé de Simulink (Garces Socarras, 2012; Xilinx, 2012). Cuando se realiza la división de la matriz f(x,y) en - cada subprocesamiento para reconstruir nuevamente la imagen en una sola matriz. 124 Tecnura Vol. 19 No. 43 enero - marzo de 2015
7 Primera arquitectura (memoria para nueve datos). ques en Simulink de las tres etapas de la arquitectura. Figura 6. Paralelización del preprocesamiento Figura 7. Diagrama de bloques en Simulink de la primera arquitectura Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 125
8 Preprocesamiento. - gura 7, el preprocesamiento le entrega a la nueva etapa de procesamiento datos de entrada, el principio de funcionamiento consiste en posicionar cada elemento del vector a partir de un contador ascendente entre 0 y 8. El objetivo es que el bloque de procesamiento realice la operación de convolución únicamente cuando los nueve datos estén posicionados, para mantener los datos hasta que se cumpla esta condición el bloque de preprocesamiento retroalimenta sus salidas. El vector se construye a partir del radio de los pixeles circundantes al pixel Segunda arquitectura (memoria con corrimiento). La construcción de la segunda arquitectura, además de comparar resultados, se diseña con el objetivo de reducir la cantidad de datos que de bloques en Simulink de las tres etapas de la arquitectura. Para determinar el tamaño del vector se utiliza la ecuación (7), la cantidad de datos que envía esta arquitectura es j veces mayor que la imagen original. Donde Datos = (m n) j m: j = h h (7) n: cantidad de columna de la imagen h: Procesamiento La etapa de preprocesamiento se implementa mediante el bloque Mcode del toolbox de Xilinx System Generator, cuenta con once entradas, una para el contador que permite posicionar cada dato, nueve para los datos que se van a procesar y la última para mantener el dato retroalimentado la salida. Figura 8. Construcción del vector 126 Tecnura Vol. 19 No. 43 enero - marzo de 2015
9 Figura 9. Diagrama de bloques en Simulink de la segunda arquitectura Preprocesamiento. A diferencia del primer diseño, la etapa de preprocesamiento se encarga únicamente de posicionar tres datos con el contador ascendente. La construcción del vector de nueve datos se diseña para que sea realizada en la etapa de se incorporan tres bloques adicionales. Procesamiento. Para la construcción del vector de nueve datos, la arquitectura realiza un corrimiento de posición de los tres datos entregados por la etapa de preprocesamiento, este corrimiento se realiza hasta que se acumulen la totalidad de los datos necesarios para hacer la convolución. nera en que se realiza el corrimiento. Para determinar el tamaño del vector que equivale a la cantidad de datos que se van a enviar a la etapa de procesamiento, se utiliza la ecuación (8). Donde Datos = hm (n + 2) (8) m: n: cantidad de columnas de la imagen h: En la demostración descrita en la ecuación (9) se determina que la segunda arquitectura reduce la cantidad de datos que se van a procesar, para cualquier valor de m y n el resultado de la ecuación (8) siempre es menor que el resultado de la ecuación (7). Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 127
10 n a h n 2 Como n /N, entonces n lim h n n 2 n h lim h(1) h n n 2 Luego a = h Se concluye que a > 1 si h > 1 (9) realizar el corrimiento dispone de tres sistemas adicionales: un bloque de memorias para la retroalimentación (se implementa para mantener los datos) y dos contadores, el primero es un contador libre ascendente que inicia en cero y se utiliza para posicionar los primeros nueve datos, en Figura 10. Construcción del vector por corrimiento de datos Sea y = h 2 mn x = hm(n + 2) j = hh Probar que x < y Si y = ax, si ax < y Entonces: y = ax h 2 mn = a(hm(n + 2)) h, m, n, 0 h 2 mn = a(hm(n + 2)) Debe iniciar el conteo después de que se posicionan los primeros nueves datos. Después de ser activado debe contar de cero a tres una sola vez, luego debe contar de uno a tres. Para poder cumplir con las características espe- con dos entradas (d0, d1), la señal de control (sel) se programa mediante un bloque Xilinx Mcode y las entradas son dos contadores adicionales (Counter 1, Counter 2), uno que cuenta de cero a tres y el otro que lo hace de uno a tres. 128 Tecnura Vol. 19 No. 43 enero - marzo de 2015
11 Figura 11. Multiplexor par el diseño del contador con características específicas Figura 12. Forma de onda del contador con características específicas Implementación La implementación de las arquitecturas se realiza en dos partes, la primera consiste en realizar la comprobación mediante la simulación (directamente sobre software), y en la segunda se compila el algoritmo para que genere el bloque de cosimulación y poder correr la arquitectura en la FPGA. En ambos casos los ajustes se deben realizar sobre el System Generator Token, que es el panel de control principal del toolbox que se utiliza para jeta. Todos los modelos de Simulink que contengan blockset de Xilinx deben contener este panel de control para poder simular (Xilinx, 2012). Simulación por software. Realizados los ajustes del System Generator Token se realiza la simulación de las arquitecturas, como cualquier otro modelo realizado en Simulink. Con esta simula- los objetivos esperados. Implementación en FPGA. La tarjeta sobre la cual se implementa la arquitectura es una Xilinx Spartan 3AN - XC3S700AN. Para utilizar la FPGA como unidad de procesamiento, se debe crear el bloque de cosimulación. Cuando se genere la compilación para Hardware Co-Simula- tarjeta que se va a utilizar, Matlab genera el archi- Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 129
12 segunda arquitectura con el bloque de cosimulación. Como se puede observar, toda la etapa de bloque de cosimulación (Xilinx, 2012). Simulink, los resultados son calculados en hardware y son regresados a la computadora por medio de la conexión JTAG. Esto permite probar el diseño a nivel hardware, pero corriendo la simulación desde Simulink. Para la simulación de las arquitecturas con los bloques de cosimulación, es necesario que Matlab responda rápidamente. Además, debe trabajar por encima de los servicios de primer y segundo plano que ejecute el sistema operativo en el momento de la simulación, y esto se logra dándole prioridad de tiempo real en el administrador de tareas de Windows. Timing and power analysis. Adicionalmente a la compilación Hardware Co-Simulation, el System Generator Token cuenta con un análisis de tiempo y potencia llamado Timing and Power Analysis, que permite a los diseñadores analizar los requerimientos de potencia-energía y las frecuencias de reloj máximas. Esta herramienta se utiliza para determinar los tiempos según las frecuencias de reloj máximo y poder concluir según los resultados obtenidos (Xilinx, 2012). Recursos de hardware. cursos que requiere la FPGA para implementar el diseño de la arquitectura creado en Simulink, se utiliza el bloque Xilinx Resource Estimator. La estimación de estos recursos se realiza para siete campos: slices (generalmente compuestos por dos, dos LUTs, algunos multiplexores y una pequeña lógica de control), lookuptables (LUTs), (FFs), bloques de memoria (BRAM), multiplicadores 18x18, buffers tri-estado y puertos de entrada/salida (IOBs) (Xilinx, 2012;Moctezuma Eugenio y Torres Huitzil, 2006). ANÁLISIS DE RESULTADOS Terminada la etapa de diseño de las arquitecturas se realizan las respectivas pruebas de funcionamiento. Estas consisten en: 1. lación de las arquitecturas diseñadas. Figura 13. Compilación por Hardware Co-Simulation 130 Tecnura Vol. 19 No. 43 enero - marzo de 2015
13 2. Estimación de los tiempos de comunicación entre la FPGA y el software de desarrollo. 3. Comparación de los tiempos promedios del procesamiento en paralelo de la imagen en la FPGA corriendo la simulación desde Simulink para las dos arquitecturas diseñadas. 4. Establecer el grado de paralelismo de la arquitectura seleccionada. Se realiza la comparación del rendimiento del procesamiento paralelo vs. el procesamiento en serie. 5. Analizar la relación entre el grado de paralelismo y la cantidad de recursos hardware utilizados en la implementación de la arquitectura. ras diseñadas como alternativa de paralelización, se realiza una comparación de las imágenes resultantes entre las dos arquitecturas y un script. La motor eléctrico en funcionamiento, esta es la imagen que se va a procesar en las dos arquitecturas y con la cual se realizará el análisis comparativo. Se gen se convierte a escala de grises con el objetivo de procesar una única matriz. Los resultados de la imagen procesada por la primera y por la segunda arquitectura se muestran en Debido a que la implementación de las arquitecturas depende de la relación software (Matlab) hardware (FPGA), es importante mencionar que las respectivas pruebas de funcionamiento y mediciones se realizaron sobre un computador Intel(R) Core (TM) i5-2450m CPU 2,50 GHz (4 CPU), con memoria ram de 6 GB. Generación de la imagen aplicando un filtro de convolución Figura 14. Imagen RGB original sin filtro de convolución Fuente: Services (2013). a b Figura 15. Imagen en escala de grises procesada con filtro de realce Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 131
14 La comparación se realiza a partir de la matriz de datos de cada una de las imágenes, utilizando la instrucción isequal (A,B) de Matlab (Math Works, 2013). Si el resultado es cero las matrices A y B son diferentes, pero sí es uno las dos matrices son iguales. El resultado de la compara- lo cual indica que las dos arquitecturas están convolución. Es importante resaltar que las dos arquitecturas están en la capacidad de aplicar kernel sea de 3x3. Para realizar la comparación entre arquitecturas y el script se selecciona la también fue de uno. Medición de los tiempos de comunicación Para realizar una medición estimada de los tiempos de comunicación, se implementa una metodología que incluye un diseño adicional, el cual permite enviar diferentes cantidades de datos sin n datos, donde n es un número natural. La medición de los tiempos se realiza utilizando las instrucciones tic toc de Matlab, a partir de los datos medi- para valores menores a 50, debido a que hay una mayor concentración de puntos, además se observa una variación no considerable en el tiempo que varía entre 1 y 1,6 [s]. Para datos mayores a 50 se presenta un comportamiento lineal en aumento, con una variación pequeña en el tiempo muestra que para una mayor cantidad de datos, el tiempo de comunicación aumenta. La ecuación Figura 16. Modelo en Simulink para medición estimada de tiempos de comunicación 132 Tecnura Vol. 19 No. 43 enero - marzo de 2015
15 Tiempos de comunicación [s] Tiempos de comunicación vs. Datos enviados Regresión Datos enviados Figura 17. Tiempo de comunicación para datos menores a 1000 Comparación de los tiempos promedios del procesamiento En la tabla 1 se muestra la comparación de los tiempos promedios del grado de paralelismo de la imagen en la FPGA, utilizando las dos arquitecturas y para dos tamaños de imágenes diferentes: una de 300 x 300 y otra de 480 x 640 pixeles. En en razón de la considerable disminución del tiempo de procesamiento de la imagen, casi a la tercera parte del tiempo utilizado por la arquitectura 1. Este resultado era de esperarse, debido la demostración realizada en la ecuación (9). Tabla 1. Tiempos de procesamiento en segundos Tiempos de comunicación [s] Tiempos de comunicación vs. Datos enviados Regresión Datos enviados x 10 5 Figura 18. Tiempo de comunicación para datos mayores a 1000 Grado Arquitectura 1 Arquitectura x x x x , ,45 301, , , ,80 152,29 543, ,06 814,78 80,03 288, ,15 348,65 43,40 155,21 Fuente: elaboración propia A partir de los resultados de la tabla 1, la arquitectura 2 fue escogida para continuar con la investigación. Se aumentó el grado de paralelización utilizando la imagen de tamaño 480 x 640 pixeles, puesto que es un tamaño estándar. Grado de paralelismo y comparación del rendimiento del procesamiento f(x) = 0,0011x + 1,5304 R 2 = 0,9997 (10) La ecuación (10) permitirá estimar el tiempo de comunicación y establecer un parámetro de medición de los tiempos de implementación de las arquitecturas. Grado de paralelismo. tan los resultados del tiempo del procesamiento para diferentes valores de paralelización, se observa un comportamiento exponencial decreciente el cual evidencia que existe una reducción en el tiempo de procesamiento a medida que aumenta el grado de paralelización de la imagen. Cabe anotar que solo fue posible llegar hasta el grado de paralelización 32, debido a que Matlab no per- Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 133
16 mitió generar la compilación del bloque de cosimulación para un valor mayor. Procesamiento se obtiene al restarle al Total promedio la columna de Comunicación. Tiempos de procesamiento [s] Tiempos de procesamiento vs. Dato de paralelización Regresión Grado de paralelización Figura 19. Tiempo de procesamiento para diferentes valores de paralelización con una correlación de 0,9996. f(x) = 996,9x -0,9724 R 2 = 0,9996 (11) Procesamiento serie y paralelo. La comparación entre el procesamiento en serie y en paralelo se realiza por dos métodos diferentes. Primer método. La medición del tiempo total se realiza haciendo uso de la instrucción de Matlab tic toc, desde que se entregan los datos a la etapa de procesamiento hasta la construcción del vector de salida, teniendo en cuenta la comunicación con la FPGA. De los resultados obtenidos se construyen las tablas 2 y 3, las cuales contienen el tiempo total promedio medido. En las dos tablas la columna Comunicación contiene el tiempo estimado de comunicación que se demoran los datos en pasar del software al hardware. Estos datos se obtienen aplicando las ecuaciones (8) y (10); la columna En los valores mostrados en las tablas 2 y 3 se observa que el tiempo de procesamiento fue menor en el serial si se compara con los diferentes grados de paralelización, aunque el tiempo total del proceso fue mayor en el serial que en los de paralelización. Tabla 2. Tiempos de procesamiento serial Tiempos [S] Total promedio Comunicación Procesamiento 1024, ,46 6,08 Tabla 3. Tiempos de procesamiento en paralelo Grado de paralelización Tiempos [S] Total Comunicación Procesamiento promedio 2 543,11 509,99 33, ,67 256,55 32, ,21 129,84 25, ,78 66,48 21, ,97 34,80 40,18 Segundo método. Se utiliza la herramienta Timing and Power Analysis, la cual permite obtener para un ciclo de reloj, el tiempo que tarda un dato en recorrer la etapa de procesamiento de la arquitectura cuando el diseño es implementado en la FPGA. Si se implementaran las etapas de preprocesamiento, procesamiento y posprocesamiento directamente sobre la FPGA, se requeriría más de un ciclo de reloj para procesar un solo pixel. Se estima que si se utilizara la memoria RAM de la tarjeta para almacenar la imagen en forma de vector, se requeriría un ciclo de reloj para ubicar el pixel al- 134 Tecnura Vol. 19 No. 43 enero - marzo de 2015
17 macenado, un segundo ciclo para leer el pixel, un tercero para ubicar la posición de memoria donde se va guardar el pixel procesado, y un cuarto ciclo para la escritura sobre la memoria que almacena combinacional y no secuencial, no se necesita un ciclo de reloj para el procesamiento del pixel, por lo tanto, se estima un total de cuatro ciclos de reloj para procesar un solo dato. Los tiempos obtenidos para un solo ciclo son los que se muestran en la columna Obtenido de las tablas 4 y 5, este valor al ser multiplicado por el número de datos calculados utilizando la ecuación (8) y los cuatro ciclos estimados, permite determinar el tiempo total de procesamiento (columna de las tablas 4 y 5 llamada Total ). En las tablas 4 y 5 se observa que el tiempo obtenido en el procesamiento serial es menor que los tiempos en el procesamiento paralelo; sin embargo, los tiempos totales son menores para el procesamiento en paralelo. Es importante aclarar que dicha herramienta no permitió obtener los tiempos de los grados de paralelismo 16 y 32. Tabla 4. Tiempo de procesamiento serial utilizando Timming and Power Analysis Procesamiento software y hardware. Adicionalmente a la comparación efectuada con los dos métodos para el procesamiento serie y paralelo, se mide el tiempo de un código M que realiza la convolución de imágenes utilizando la instrucción conv2 (Math Works, 2013).El resultado obtenido se compara con los tiempos calculados a partir del Timming and Power Analysis. El tiempo promedio medido mediante la instrucción tic toc para el código M creado fue de t = 197,8x10-5 [s]. Comparando el tiempo t con los datos de la columna Total de la tablas 4 y 5, se puede determinar que los tiempos obtenidos mediante el análisis del Timming and Power Analysis son menores que el tiempo promedio medido para el código M. Este resultado se obtiene para todos los grados de paralelismo y además para el modelo serial. Cantidad de recursos hardware. En la tabla 7 se muestran los datos obtenidos para los recursos estimados de la FPGA si la segunda arquitectura se implementa en hardware, a partir de los datos de duciendo tendencias lineales en aumento para el casos de los recursos Slices, FFs, y IOBs y constante para el caso de LUTs. Grado Datos Ciclos estimados Tiempos [S] Obtenido Total Tabla 6. Recursos estimados de hardware ,07 x ,67 x 10-5 Grado de paralelización Slices FFs LUTs IOBs Tabla 5. Tiempo de procesamiento en paralelo utilizando Timming and Power Analysis Grado Datos Ciclos Tiempos [S] estimados Obtenido Total ,11 x ,91 x ,19 x ,03 x ,33 x ,09 x Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 135
18 Recursos estimados m = 92 m = 46 m = Regresión Slices Regresión FFs Regresión LUTs Regresión IOBs m = Grado de paralelización Figura 20 Recursos estimados de hardware para la segunda arquitectura hardware en tiempo real. Para este proyecto se implementó un algoritmo que permite paralelizarse (convolución); sin embargo, existen múltiples algoritmos para el procesamiento digital de imágenes que no pueden ser paralelizados. Una propuesta para un trabajo futuro sería diseñar e implementar este tipo de algoritmos mediante Xilinx System Generator; por ejemplo, el de esqueletización. El objetivo sería poder realizar un análisis comparativo entre un algoritmo no paralelizable y uno paralelizable. Teniendo en cuenta que los slices están compuestos por dos y dos LUT, el análisis se puede realizar directamente sobre este recurso. La ecuación (12) describe el comportamiento de los slices según el grado de paralelización (GP). Slices = 46 * GP + 24,8 (12) XC3S700AN indica que la tarjeta cuenta con un total de 5888 slices. TRABAJO FUTURO Además de las herramientas utilizadas de Xilinx System Generator para la elaboración de este proyecto, el toolbox cuenta con múltiples recursos adicionales, pero que en algunos casos están limitados a la tarjeta. Una propuesta para un trabajo futuro sería implementar la segunda arquitectura diseñada en una tarjeta más robusta, que permita realizar otro tipo de estrategia aparte de la cosimulación. Hoy existen en el mercado una serie de FPGA de la familia de Xilinx que trabajan con un protocolo de comunicación diferentes al JTAG para la comunicación con Matlab, el propósito de estos protocolos adicionales es poder simular CONCLUSIONES cesamiento de imágenes que no depende de resultados anteriores, es decir, que con independencia de las veces en que se divida la imagen, el algoritmo de convolución va a funcionar; por lo tanto, la convolución es un algoritmo paralelizable. El grado de paralelismo tiene un comportamiento exponencial decreciente en función del tiempo de procesamiento, este comportamiento indica que existe un rango hasta donde es viable paralelizar. Aunque los tiempos seguirán disminuyendo, la reducción no será tan notable como en los primeros grados de paralelización. Se plantea una metodología para estimar los tiempos de comunicación a través de una arquitectura adicional, donde se obtuvo que los tiempos estimados de comunicación en la paralelización de la imagen son menores que en el serial; sin embargo, la diferencia entre el tiempo total y el de comunicación muestra que el tiempo de procesamiento es menor en el serial que en el paralelo, lo cual indica que la forma en la que se está estimando el tiempo de comunicación no es correcta. Este método no es útil para medir. 136 Tecnura Vol. 19 No. 43 enero - marzo de 2015
19 Con respecto al tiempo t = 197,8x10-5,medido para el código M creado a partir de la instrucción conv2, la razón entre t y el tiempo medido con el Timming and Power Analysis aumentan a medida que los tiempos totales de las tablas 4 y 5 disminuyen; es decir, que los tiempos del Timming and Power Analysis son inversamente proporcionales a dicha razón, la relación para el procesamiento en serie es de 25 y para los grados de paralelización 2, 4 y 8 es de 51, 97 y 181, respectivamente. Los mejores tiempos de procesamiento se obtuvieron cuando se utilizó la herramienta Timming and Power Analysis. Los tiempos medidos para las cosimualciones no alcanzaron valores tan bajos, debido al tiempo de comunicación que requieren para enviar la información a la FPGA. Debido a las restricciones del System Generator, el máximo grado de paralelización que se pudo cosimular fue de 32 para una imagen estándar de 480 x 640, para el cual se usó un recurso estimado de 1497 slices; sin embargo, si la limitante no fueran las restricciones del software, sino la cantidad de recursos de la tarjeta, el máximo grado de paralelización que se podría obtener sería de 80. No se puede obtener una paralelización de 128, debido a que superaría los recursos en aproximadamente 24,8 slices. En los recursos estimados en el proceso de paralelización de la imagen se observan tendencias lineales a medida que aumenta el grado de paralelización, de las cuales se obtiene una mayor pendiente en los FF de un valor m = 92, y una menor de m = 44 para los IOB. Además de una pendiente igual a 0 para los LUT, lo cual muestra que sin importar el grado de paralelización, dicho recurso se mantendrá constante. REFERENCIAS Boemo Scalvinoni, E. (2005). Estado del arte de la tecnología FPGA. Recuperado de gob.ar/electronicaeinformatica/instrumentacion/utic/publicaciones/cuadernilloue/ CT_Microelectronica17_FPGA.pdf Garces Socarrás, L. M. (2012). Aceleración de rable. La Habana: CUJAE. Electrical Professional Service (2013). Termografía infrarroja. Recuperado de Escalante Ramírez, B. (2006). Procesamiento digital de imágenes. Apuntes de clase de la Universidad Nacional Autónoma de México, Distrito Federal, México. Forero Vargas, M. G. y Arias Cruz, E. A. (2001). Estudio del efecto de las máscaras de convolución en imágenes mediante el uso de la transformada de Fourier. Revista de Ingeniería e Investigación, 48, Gonzales, R. y Woods, R. (2002). Digital Image Proccesing. Estados Unidos: Prentice Hall. López Vallejo, M. (2004). FPGA: Nociones básicas e implementación. Recuperado de Math Works (2013). Image Processing Toolbox. Recuperado de com/help/images/index.html Moctezuma Eugenio, J. C. y Torres Huitzil, C. (2006). Estudio sobre la implementación xi- Procesamiento paralelo en FPGA para convulsión de imágenes usando Matlab DIEGO ARMANDO GIRAL RAMÍREZ / RICARDO ROMERO ROMERO / FERNANDO MARTÍNEZ SANTA 137
20 linx system generator. Puebla, México: Departamento de Ciencias Computacionales, Universidad Autónoma de Puebla, Mexico. Moctezuma, J. C., Sánchez, S., Álvarez, R. y Sánchez, A. (2007). Architecture for Filtering Images Using Xilinx System Generator. International Journal of Mathematics and Computers in Simulation, 1 (2), Raygoza, J., Ortega, S., Cabrera, H. y Ibarra, F. tema de procesamiento de audio en FPGA s mediante hardware in the loop. XXIV Congreso de Instrumentación SOMI. México. Rodríguez Cruz, C., Rivero Flores, R. y Castillo Atoche, A. (2006). Procesamiento de imágenes con Xilinx System Generator. Primer Congreso Internacional de Sistemas de Computacionales y Electrónicos (CIS- CE). México. Rodríguez Escudero, A. A. (2013). Convolución bidimensional. Recuperado de Rodríguez Pérez, J. F. (2010). Programación MATLAB en paralelo sobre clúster computacional: evaluación de prestaciones (tesis de grado en ingeniería). Universidad Politécnica de Cartagena, España. Sánchez Élez, M. (2014). Introducción a la programación en VHDL. Recuperado de eprints.ucm.es/26200/1/intro_vhdl.pdf Electrical Professional Service (2013). Termografía infrarroja. Recuperado de epspan.com/ Xilinx (2012). Xilinx System Generator for DSP User s Guide. Recuperado de xilinx.com/support/documentation/sw_ manuals/xilinx14_1/sysgen_user.pdf 138 Tecnura Vol. 19 No. 43 pp enero - marzo de 2015
Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl
1 Colección de Tesis Digitales Universidad de las Américas Puebla Morales Salcedo, Raúl En este último capitulo se hace un recuento de los logros alcanzados durante la elaboración de este proyecto de tesis,
Más detallesIntroducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006
Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006 Qué son los FPGAs? Matriz de bloques lógicos configurables (CLB) y una matriz de interconexión. Los bloques lógicos
Más detallesDispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar
Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar Temario Introducción Circuitos Digitales FPGAs Flujo y Herramientas de Diseño Diseño para Síntesis Simulación Ejemplos
Más detallesINSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES CÁRDENAS ESPINOSA CÉSAR OCTAVIO racsec_05@hotmail.com Boleta: 2009350122 CASTILLO GUTIÉRREZ
Más detallesDiagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases
El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los
Más detallesPalabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN
Procesamiento de Vídeo en Tiempo Real Utilizando FPGA J. G. Velásquez-Aguilar, A. Zamudio-Lara Centro de Investigación en Ingeniería y Ciencias Aplicadas, Universidad Autónoma del Estado de Morelos, Cuernavaca,
Más detallesPROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL
PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL N. E. Chávez Rodríguez*, A. M. Vázquez Vargas** *Departamento de Computación **Departamento de Procesamiento Digital de Señales
Más detallesCentro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Más detallesCapítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias
Capítulo 5: Pruebas y evaluación del sistema 5.1 Definición de pruebas para la aplicación A continuación se muestran una serie de pruebas propuestas para evaluar varias características importantes del
Más detalles3.8 Construcción de una ALU básica
3.8 Construcción de una ALU básica En este punto veremos como por medio de compuertas lógicas y multiplexores, se pueden implementar las operaciones aritméticas básicas de una ALU. Esencialmente en este
Más detallesUn filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.
Filtros Digitales Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. En electrónica, ciencias computacionales y matemáticas, un filtro
Más detallesPRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI
PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI Versión: 1.0 Fecha de la versión: Febrero del 2012 Creado por: PwC Costa Rica Aprobado
Más detallesCONTROL DE ASISTENCIA DE PERSONAL
CONTROL DE ASISTENCIA DE PERSONAL PARA UNA EMPRESA INITE, S.C. no es responsable del contenido, de la veracidad de los datos, opiniones y acontecimientos vertidos en el presente proyecto. La finalidad
Más detalles1. Introducción. Universidad de Cantabria 1-1
1. Introducción Las empresas de transporte y distribución de energía eléctrica tuvieron que afrontar históricamente el problema que suponía el aumento de la energía reactiva que circulaba por sus líneas.
Más detallesARREGLOS DEFINICION GENERAL DE ARREGLO
ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un
Más detallesLa presente tesis pretende que los estudiantes observen la teoría de las acciones de control
CAPÍTULO V. CONCLUSIONES. La presente tesis pretende que los estudiantes observen la teoría de las acciones de control de forma virtual al mismo tiempo analicen físicamente los sistemas electrónicos cuando
Más detallesImplementación de la transformada wavelet discreta para imágenes en un FPGA
Implementación de la transformada wavelet discreta para imágenes en un FPGA Madeleine León 1, Carlos A. Murgas 1, Lorena Vargas 2, Leiner Barba 2, Cesar Torres 2 1 Estudiantes de pregrado de la Universidad
Más detallesINTRODUCCIÓN AL DISEÑO FPGA-DSP. Cristian Sisterna, MSc UNSJ-C7T
INTRODUCCIÓN AL DISEÑO FPGA-DSP Cristian Sisterna, MSc UNSJ-C7T AGENDA Introducción Bloques DSPs en ilinx FPGAs MatLab/Simulink Simulink ilinx System Generator Ejemplo de Diseño con SysGen 2 ALGORITMOS
Más detallesPROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04
Autorización Este documento entra en vigor a partir del 2 de agosto del 2005, a través de su autorización por parte del Dr. Francisco Javier Rojas Monroy, Coordinador de Operaciones, Calidad y Teclogía
Más detallesHOY en día, los arreglos de compuertas
ENINV IE 2010 Encuentro de Investigación en Ingeniería Eléctrica Zacatecas, Zac, Marzo 25 26, 2010 Plataforma para la implementación de algoritmos de Procesamiento Digital de Imágenes en arquitecturas
Más detallesUniversidad Autónoma de Baja California Facultad de Ingeniería Mexicali
Sumadores En este documento se describe el funcionamiento del circuito integrado 7483, el cual implementa un sumador binario de 4 bits. Adicionalmente, se muestra la manera de conectarlo con otros dispositivos
Más detallesFUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013
FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS CNCA Abril 2013 6. COMPUTACIÓN DE ALTO RENDIMIENTO Ricardo Román DEFINICIÓN High Performance Computing - Computación de Alto Rendimiento Técnicas, investigación
Más detallesCálculo Simbólico también es posible con GeoGebra
www.fisem.org/web/union ISSN: 1815-0640 Número 34. Junio de 2013 páginas 151-167 Coordinado por Agustín Carrillo de Albornoz Cálculo Simbólico también es posible con GeoGebra Antes de exponer las posibilidades
Más detallesConclusiones. Particionado Consciente de los Datos
Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser
Más detallesIntroducción a la Computación
UNIVERSIDAD RAFAEL BELLOSO CHACÍN INTRODUCCIÓN A LA COMPUTACION UNIDAD II: http://www.urbe.edu/info-consultas/web-profesor/12697883/ DEFINICIÓN Es el conjunto de los programas de cómputo, procedimientos,
Más detallesMODELOS DE RECUPERACION
RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN
Más detallesCapítulo I. Convertidores de CA-CD y CD-CA
Capítulo I. Convertidores de CA-CD y CD-CA 1.1 Convertidor CA-CD Un convertidor de corriente alterna a corriente directa parte de un rectificador de onda completa. Su carga puede ser puramente resistiva,
Más detallesEvaluación del Software
Evaluación del Software Evaluación de Software El avance informático actual es muy alto comparado con lo se tenía en los años 90, al hablar de desarrollo de software se hace más notable, en el hecho por
Más detallesMemoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).
Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria Típica. Los datos almacenados en memoria tienen que pasar, en un momento
Más detallesUNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval
UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I Licda. Consuelo Eleticia Sandoval OBJETIVO: ANALIZAR LAS VENTAJAS Y DESVENTAJAS DE LAS REDES DE COMPUTADORAS. Que es una red de computadoras?
Más detallesCapitulo V Administración de memoria
Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal
Más detalles5. Despliegue en la PC
5 DESPLIEGUE EN LA PC 62 5.1 Conexión a la PC por medio de la tarjeta de audio La adquisición de señales analógicas es un trabajo que cada vez se hace más necesario en todos los campos relacionados con
Más detallesGUÍAS. Módulo de Diseño de software SABER PRO 2013-2
GUÍAS Módulo de Diseño de software SABER PRO 2013-2 GUÍAS Módulo de diseño en ingeniería El diseño de productos tecnológicos (artefactos, procesos, sistemas e infraestructura) está en el centro de la naturaleza
Más detallesCapítulo 1. Introducción
Capítulo 1 Introducción 1.1 Antecedentes La producción musical, en su mayoría, se ha valido de distintos tipos de software computacional para realizar la edición de composiciones musicales. De toda la
Más detallesU.N.Sa. - Facultad de Cs.Económicas, Jurídicas y Sociales. Seminario de Informática Presentación
U.N.Sa. - Facultad de Cs.Económicas, Jurídicas y Sociales Seminario de Informática Presentación 1 El Seminario de Informática en el Plan de Estudios El fenómeno del procesamiento electrónico de datos,
Más detallesIntroducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Más detallesCAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM
CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM 59 En este tercer capítulo se presenta el diseño de un mecanismo de detección de tráfico malicioso para RedUNAM. Abarca
Más detallesFigura 1.4. Elementos que integran a la Tecnología de Información.
1.5. Organización, estructura y arquitectura de computadoras La Gráfica siguiente muestra la descomposición de la tecnología de información en los elementos que la conforman: Figura 1.4. Elementos que
Más detallesUNIDAD Nº IV ANALISIS FINANCIERO. Administración de Empresas. Prof. Robert Leal
UNIDAD Nº IV ANALISIS FINANCIERO Administración de Empresas. Prof. Robert Leal LAS FINANZAS Las finanzas son las actividades relacionadas con los flujos de capital y dinero entre individuos, empresas,
Más detalles1. Generalidades. Nombre de la asignatura o unidad de aprendizaje. Apertura de negocios. Clave asignatura. Ciclo LA945. Modulo tercero (integración)
Nombre de la asignatura o unidad de aprendizaje Apertura de negocios Ciclo Modulo tercero (integración) Clave asignatura LA945 Objetivo general de la asignatura: El alumno analizará las bases para la apertura
Más detallesActividades Complementarias.
4.1. Balanceo de Líneas. Unidad IV Monitoreo y Control de Operaciones El análisis de las líneas de producción es el foco central del análisis de disposiciones físicas por productos. El diseño del producto
Más detallesEscuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE
Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE OBJETIVOS Aprender el manejo de entrada/salida con ficheros
Más detallesMatrices Invertibles y Elementos de Álgebra Matricial
Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices
Más detallesFormato para prácticas de laboratorio
CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5040 Circuitos Digitales Avanzados PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA DURACIÓN (HORA) Multiplicador binario 4
Más detallesSistema de Mensajería Empresarial para generación Masiva de DTE
Sistema de Mensajería Empresarial para generación Masiva de DTE TIPO DE DOCUMENTO: OFERTA TÉCNICA Y COMERCIAL VERSIÓN 1.0, 7 de Mayo de 2008 CONTENIDO 1 INTRODUCCIÓN 4 2 DESCRIPCIÓN DE ARQUITECTURA DE
Más detallesUNIDAD 4. Producción: proceso por el cual los insumos se combinan, se transforman y se convierten en productos.
UNIDAD 4 Dra. Elena Alfonso Producción: proceso por el cual los insumos se combinan, se transforman y se convierten en productos. La relación entre la cantidad de factores productivos requerida y la cantidad
Más detallesAmbiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca
Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca Ing. WILSON ALFREDO ORTEGA ORDOÑEZ Ing. JUAN CARLOS MENDEZ CAMACHO Universidad del Cauca Facultad
Más detallesVI PLAN DE PRUEBAS, RESULTADOS Y RECOMENDACIONES
VI PLAN DE PRUEBAS, RESULTADOS Y RECOMENDACIONES En la presente sección, se realiza el correspondiente plan de pruebas del prototipo con la finalidad de exponer las estrategias y recursos necesarios para
Más detallesNombre de la asignatura: Clave de la asignatura: SIB-1307 1-4-5. Carrera:
1. Datos generales de la asignatura Nombre de la asignatura: Clave de la asignatura: Créditos(Ht-Hp_créditos): Carrera: Sistemas Embebidos SIB-1307 1-4-5 Ingeniería Electrónica 2. Presentación Caracterización
Más detallesPartes, módulos y aplicaciones de un Controlador de Procesos
Partes, módulos y aplicaciones de un Controlador de Procesos Conceptos PLC Un controlador lógico programable es un sistema que originalmente fue desarrollado para la industria de manufactura, en particular
Más detallesCONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción
Anexo A: FPGA Introducción Cuando se requiere del diseño de un sistema electrónico y surge la necesidad de implementar una parte con hardware dedicado son varias las posibilidades que hay. Una es un diseño
Más detallesCAPITULO I INTRODUCCION. Conforme la informática avanza, las imágenes se han convertido en un área muy
Introducción 4 CAPITULO I INTRODUCCION 1.1 Compresión de Imágenes. Conforme la informática avanza, las imágenes se han convertido en un área muy importante de esta. Hoy en día surgen más entornos gráficos
Más detallesPor el rápido crecimiento de Internet la tecnología se ha tenido que adaptar para cubrir las
Capítulo 1 Introducción Por el rápido crecimiento de Internet la tecnología se ha tenido que adaptar para cubrir las demandas de mayor ancho de banda. Para cubrir esta demanda los proveedores de Internet
Más detallesMANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.
MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA Elaborado por: Julián A. Hernández M. PONTIFICIA UNIVERSIDAD JAVERIANA CALI SANTIAGO DE CALI 2011 CONTENIDO Pág. INTRODUCCIÓN...3 1. ANÁLISIS
Más detallesSISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública
JEFATURA DE GABINETE DE MINISTROS SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública Manual para los Organismos Índice Índice... 2 Descripción... 3 Cómo solicitar la intervención
Más detallesCOPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE
COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE Creado en May/14 Objetivo: Contar con una guía de las actividades que se deben realizar en esta fase,
Más detallesInstituto Tecnológico de Costa Rica
Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación Proyecto Programado: Revisión de Utilización Médica: Aplicación Web para el control de pacientes en hospitales de Puerto Rico Práctica
Más detallesSimulador Interactivo para Sistemas de Generación Distribuida Basados en Energías Renovables
Simulador Interactivo para Sistemas de Generación Distribuida Basados en Energías Renovables M.C. Rafael Peña Gallardo Dr. J. Aurelio Medina Ríos Universidad Michoacana de San Nicolás de Hidalgo Facultad
Más detallesPatrones de Diseño Orientados a Objetos 2 Parte
Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia
Más detallesHARDWARE DE UN ORDENADOR. Elementos básicos
HARDWARE DE UN ORDENADOR Elementos básicos Componentes de un ordenador Hardware: todos los componentes físicos, tanto internos como externos: monitor, teclado, disco duro, memoria, etc. Software: todos
Más detallesDispensador de alimentos para animales automatizado.
Dispensador de alimentos para animales automatizado. Alumnos: Gustavo Enrique García Aguilera, Yiran Jiménez Huesca y Hugo Sánchez Molina. 1. Introducción. Los alimentadores automatizados son usados en
Más detallesFigura 4.1 Clasificación de los lenguajes de bases de datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje
Más detallesCapítulo 6: Conclusiones
Capítulo 6: Conclusiones 6.1 Conclusiones generales Sobre el presente trabajo se obtuvieron varias conclusiones sobre la administración del ancho de banda en una red inalámbrica, basadas en la investigación
Más detallesXerox 700 Digital Color Press con Integrated Fiery Color Server. Impresión de datos variables
Xerox 700 Digital Color Press con Integrated Fiery Color Server Impresión de datos variables 2008 Electronics for Imaging, Inc. La información de esta publicación está cubierta por los Avisos legales para
Más detallesMANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO
MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Marzo 2016 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 2 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 2 HERRAMIENTA
Más detallesTEMA VII: DISEÑO SECUENCIAL PROGRAMABLE
TEMA VII: ISEÑO SECUENCIAL PROGRAMABLE e igual forma que podíamos disponer de dispositivos combinacionales programables para poder implementar funciones combinacionales en un solo integrado, en el dominio
Más detalles1 La Resolución de Problemas utilizando la Computadora
La Resolución de Problemas utilizando la Computadora Lissette Alvarez Abril-Julio, 2004 El Computador es una máquina que no puede trabajar por si sola, únicamente realiza aquellas órdenes que el hombre
Más detallesCriterios para seleccionar tecnología de Modelos de Toma de Decisiones
Estado del Arte Por Eduardo Cantú y Stephen Sellers Criterios para seleccionar tecnología de Modelos de Toma de Decisiones Seleccionar la herramienta apropiada para desarrollar sus Modelos de Cadena de
Más detalles7.1 Estimación de Costos
7.1 Estimación de Costos Procesos de un Área de Conocimiento Iniciación Planificación Ejecución Seguimiento y Control Cierre 4. Gestión de la Integración de Proyectos 4.1 Desarrollar el Acta de Constitución
Más detallesPrograma para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones
Fracciones. Las fracciones y los números Racionales Las fracciones se utilizan cotidianamente en contextos relacionados con la medida, el reparto o como forma de relacionar dos cantidades. Tenemos entonces
Más detallesCAPÍTULO 4. DISEÑO CONCEPTUAL Y DE CONFIGURACIÓN. Figura 4.1.Caja Negra. Generar. Sistema de control. Acumular. Figura 4.2. Diagrama de funciones
CAPÍTULO 4 37 CAPÍTULO 4. DISEÑO CONCEPTUAL Y DE CONFIGURACIÓN Para diseñar el SGE, lo primero que se necesita es plantear diferentes formas en las que se pueda resolver el problema para finalmente decidir
Más detallesCapítulo 5 Programación del algoritmo en LabVIEW
Programación del algoritmo en LabVIEW En este capítulo se describen las funciones que se emplearon para implementar el control PID wavenet en LabVIEW. El algoritmo wavenet fue implementado en LabVIEW para
Más detallesRevista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol. 8, N o 2. 2007
Sección Tecnologías de Internet Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol. 8, N o 2. 2007 Hacia una propuesta didáctica para la enseñanza de Métodos Numéricos
Más detallesGuía para la elaboración de Proyectos de Formación Sindical Ambiental e Investigación en Trabajo y Desarrollo Sustentable
Guía para la elaboración de Proyectos de Formación Sindical Ambiental e Investigación en Trabajo y Desarrollo Sustentable 1- Denominación del Proyecto Esto se hace indicando, de manera sintética y mediante
Más detallesCAPÍTULO III MARCO TEÓRICO. Cada día cambian las condiciones de los mercados debido a diferentes factores como: el
CAPÍTULO III MARCO TEÓRICO 3.1 Introducción Cada día cambian las condiciones de los mercados debido a diferentes factores como: el incremento de la competencia, la globalización, la dinámica de la economía,
Más detallesESTUDIO SOBRE LA IMPLEMENTACIÓN DE REDES NEURONALES ARTIFICIALES USANDO XILINX SYSTEM GENERATOR
ESTUDIO SOBRE LA IMPLEMENTACIÓN DE REDES NEURONALES ARTIFICIALES USANDO XILINX SYSTEM GENERATOR (1) Juan Carlos Moctezuma Eugenio, (2) César Torres Huitzil (1) Facultad de Ciencias de la Computación, Benemérita
Más detallesSemana 1. El software y su aplicación en la vida diaria. Semana El software 1 y su aplicación en la vida diaria. Empecemos! Qué sabes de...?
Semana El software 1 y su aplicación en la vida diaria El software y su aplicación en la vida diaria Empecemos! Bienvenido y bienvenida! En esta primera semana queremos que explores y aprendas sobre el
Más detallesTemas de electricidad II
Temas de electricidad II CAMBIANDO MATERIALES Ahora volvemos al circuito patrón ya usado. Tal como se indica en la figura, conecte un hilo de cobre y luego uno de níquel-cromo. Qué ocurre con el brillo
Más detallesUniversidad Tec Milenio: Profesional SP04005 Reingeniería de procesos
Relación con la reingeniería Sesión 9 - Metodologías para el diseño de sistemas En un proyecto de reingeniería, una vez que la empresa ha: Seleccionado los procesos que serán rediseñados Desarrollado una
Más detallesHERRAMIENTAS GENERALES PARA EL DESARROLLO DE JUEGOS Y SOFTWARE EDUCATIVO. Fernando Galindo Soria IPN UPIICSA Dpto. de Computación México, D.
HERRAMIENTAS GENERALES PARA EL DESARROLLO DE JUEGOS Y SOFTWARE EDUCATIVO Fernando Galindo Soria IPN UPIICSA Dpto. de Computación México, D.F DGIT CENIDET Cuernavaca, Mor. Septiembre de 1989 R E S U M E
Más detallesDesarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales.
1 Arquitectura de una Aplicación Android Para empezar con el desarrollo de aplicaciones en Android es importante conocer cómo está estructurado este sistema operativo. A esto le llamamos arquitectura y
Más detallesEJEMPLO DE REPORTE DE LIBERTAD FINANCIERA
EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA 1. Introduccio n El propósito de este reporte es describir de manera detallada un diagnóstico de su habilidad para generar ingresos pasivos, es decir, ingresos
Más detallesEn el presente capítulo se describe la programación del instrumento virtual y cómo
Capítulo 6. Instrumentación virtual En el presente capítulo se describe la programación del instrumento virtual y cómo éste controla el circuito de captura de señales, la llamada telefónica y escribe los
Más detallesIntroducción a la estadística y SPSS
Introducción a la estadística y SPSS Marcelo Rodríguez Ingeniero Estadístico - Magister en Estadística Universidad Católica del Maule Facultad de Ciencias Básicas Pedagogía en Matemática Estadística I
Más detallesSoftware de identificación y ubicación mediante GPS para radios digitales MOTOROLA Con Control de rondas y Gestión de control del riesgo
Software de identificación y ubicación mediante GPS para radios digitales MOTOROLA Con Control de rondas y Gestión de control del riesgo Para atender eficientemente las necesidades de nuestros clientes,
Más detallesAct 1: Revisión de Presaberes. Lectura No. 1. Título de la Lectura: El Computador
Act 1: Revisión de Presaberes Lectura No. 1 Título de la Lectura: El Computador Computador, dispositivo electrónico capaz de recibir un conjunto de instrucciones (input) y ejecutarlas realizando cálculos
Más detallesMATERIAL 2 EXCEL 2007
INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta
Más detallesMetodología de diseño en FPGA usando Xilinx System Generator
Metodología de diseño en FPGA usando Xilinx System Generator Manuel Rodriguez Valido mrvalido@ull.es Eduardo Magdaleno Castello emagcas@ull.es Fernando Pérez Nava Dpto. Estadística, Investigación Operativa
Más detallesEl conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras.
1 Conceptos Generales 1.1 Definición de Informática Una posible definición de informática podría ser: El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática
Más detallesPráctica 0. Emulador XENON de la computadora CESIUS
Práctica 0. Emulador XENON de la computadora CESIUS 1. Introducción El objeto de la presente práctica es permitir al alumno ensayar y familiarizarse con los conceptos de programación de computadoras digitales
Más detallesEDITOR E INTÉRPRETE DE ALGORITMOS REPRESENTADOS EN DIAGRAMAS DE FLUJO 1 RESUMEN
Informática Educativa Vol 11, No, 1, 1998 UNIANDES - LIDIE pp. 101-106 EDITOR E INTÉRPRETE DE ALGORITMOS REPRESENTADOS EN DIAGRAMAS DE FLUJO 1 Fabián CÁRDENAS VARELA Nelson CASTILLO IZQUIERDO Eduardo DAZA
Más detallesAplicaciones Lineales
Aplicaciones Lineales Ejercicio Dada la matriz A = 0 2 0 a) Escribir explícitamente la aplicación lineal f : 2 cuya matriz asociada con respecto a las bases canónicas es A. En primer lugar definimos las
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases
Más detallesTALLER DE CONOCIMIENTOS APRENDICES JORGE LEONARDO MAZA CARLOS DAVID ZAMBRANO JOSE G. RODRIGUEZ PROFESOR RONALD MARTELO
TALLER DE CONOCIMIENTOS APRENDICES JORGE LEONARDO MAZA CARLOS DAVID ZAMBRANO JOSE G. RODRIGUEZ PROFESOR RONALD MARTELO ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION CENTRO PARA LA INDUSTRIA PETROQUIMICA
Más detallesCapítulo 4 Implementación
Capítulo 4 Implementación Este capítulo describe los detalles de implementación del sistema. La sección 4.1 habla sobre las herramientas utilizadas y detalla la arquitectura para la implementación de ATEXEM.
Más detallesPor qué es importante la planificación?
Por qué es importante la planificación? La planificación ayuda a los empresarios a mejorar las probabilidades de que la empresa logre sus objetivos. Así como también a identificar problemas claves, oportunidades
Más detallesEl rincón de los problemas. Oportunidades para estimular el pensamiento matemático. Triángulos de área máxima o de área mínima Problema
www.fisem.org/web/union El rincón de los problemas ISSN: 1815-0640 Número 37. Marzo 2014 páginas 139-145 Pontificia Universidad Católica del Perú umalasp@pucp.edu.pe Oportunidades para estimular el pensamiento
Más detallesDIPLOMADO: LA DOCENCIA EN INTERNET
DIPLOMADO: LA DOCENCIA EN INTERNET Módulos. Módulo 1. Navegación por Internet. Unidad 1. Navegación en la Red. Unidad 2. El correo electrónico. Módulo 2. Internet en el ámbito científico-técnico. Unidad
Más detallesPlanificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco
Planificación de Procesos Módulo 5 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Conceptos Básicos Criterios de Planificación
Más detalles