Você está na página 1de 19

Desarrollo de una arquitectura hardware segmentada para la aceleraci on del c alculo de trayectorias para m aquinas herramienta

Jos e P erez Mart nez jperez@dtic.ua.es


Dpto. de Ciencia de la Tecnolog a y Computaci on Universidad de Alicante Apdo. de Correos 99 03080, Alicante

Resumen Para la adaptaci on de las m aquinasherramienta al nuevo est andar ISO14649, es necesario incorporar el c alculo de trayectoria a los computadores de control num erico (CNC). Sin embargo, estos algoritmos demandan una alta capacidad de c omputo, lo que diculta en gran manera su adaptaci on. En este trabajo se propone la incorporaci on de coprocesadores recongurables para la aceleraci on de estos c alculos, evitando de esta forma el alto coste que supone la sustituci on de los CNC. Para el dise no de los coprocesadores hardware, se ha desarrollado la librer a DTS, que permite describir rutas de datos segmentadas de forma a gil y exible. Para vericar su viabilidad se ha implementado un prototipo hardware del algoritmo de Digitalizaci on Virtual y se ha comparado con realizaciones previas.

1.

Introducci on

Las m aquinas herramientas de control num erico por computador (CNC) han sido utilizadas ampliamente durante d ecadas en numerosas industrias manufactureras. Originalmente, estos sistemas fueron desarrollados con la norma ISO 6983 [14]. A ra z de esta norma, la mayor a de m aquinas CNC son programadas en el lenguaje ((G-code )), que se ha utilizado desde la d ecada de 1950. Este lenguaje ya obsoleto se centra en la descripci on de la trayectoria de la herramienta con respecto a los ejes de la m aquina. Con el n de paliar las limitaciones de la norma, los vendedores de maquinaria suelen ofrecer versiones propietarias del lenguaje. Sin embargo, esto reduce notablemente la portabilidad de los programas de CNC y los hace dependientes de la m aquina. El nuevo est andar ISO 14649 [16],[15] (tambi en conocida como STEP-NC) pretende superar estas limitaciones y presumiblemente dominar a el mercado en los pr oximos a nos. STEP-NC espec ca el proceso de mecanizado con respecto al producto, tal y como hacen las herramientas CAD modernas, por lo que el c alculo de la trayectoria de la herramienta se convierte en una de las tareas importantes

a realizar por el CNC [17]. Por desgracia, las antiguas m aquinas CNC e incluso algunos de los nuevos modelos no pueden aprovechar las ventajas del nuevo est andar, ya que la mayor a de algoritmos para el c alculo de la trayectoria de la herramienta necesitan una alta capacidad de c omputo. Debido al alto coste de sustituci on de estas m aquinas, en la mayor a de los casos la u nica alternativa viable para adaptar los procesos de fabricaci on al est andar STEP-NC es la modicaci on de los computadores CNC. Para este n, la soluci on m as directa consiste en reemplazar los m odulos CNC por otros nuevos basados en microprocesadores m as modernos y potentes. Esto puede parecer simple y barato, sin embargo, el tiempo de desarrollo resulta muy alto dado que la nueva implantaci on necesita una gran cantidad de vericaciones para ser igual de able que la anterior haciendo muy costosa la sustituci on. Por otro lado debe tenerse en cuenta que la alta frecuencia de los computadores modernos reduce su abilidad y robustez en el ambito industrial, principalmente debido a su menor inmunidad a las interferencias electromagn eticas. Ambos factores justican la necesidad de buscar soluciones alternativas. En este trabajo se propone, como alternativa a la sustituci on de los CNC, la adici on de un componente hardware a medida que acelere la ejecuci on de los algoritmos de c alculo de trayectorias. Esta es una soluci on mucho m as limpia, que no modica la robustez y abilidad de la m aquina, con un tiempo de desarrollo m as corto y un menor coste. Adicionalmente a estas ventajas, el hardware a medida (en adelante HW), proporciona alto grado de seguridad a la hora de proteger la propiedad intelectual (IP) de los algoritmos y sus implementaciones. Este es un factor de creciente importancia en el sector industrial debido principalmente a la competencia desleal del mercado asi atico. En las implementaciones software, el c odigo ejecutable se encuentra en memoria principal y queda expuesto a todo aquel dispuesto a analizarlo. Los hackers pueden usar varias herramientas para comprender su funcionalidad y en general no se tarda demasiado en romper el sistema de protecci on mediante licencias. Una vez hecho esto, las copias ilegales se pueden distribuir sin coste alguno. El HW, por el contrario, es una caja negra que u nicamente permite observar sus entradas y salidas, haciendo extremadamente costoso y dif cil la ingenier a inversa. Incluso en el caso hipot etico de que se pueda replicar su funcionalidad, su distribuci on no ser a gratuita, ya que sigue habiendo un coste asociado al dispositivo HW. En este trabajo se hace uso de las FPGA (del ingl es, ((Field Programmable Gate Arrays ))) para acelerar el c alculo de trayectoria en el propio CNC y de esta forma satisfacer los requisitos de la nueva norma. Las FPGA son dispositivos programables que pueden ser conguradas por el usuario para realizar diferentes tareas. Las pruebas y modicaciones sobre el dise no se pueden realizar muy r apidamente en comparaci on con otras soluciones hardware, reduciendo as el coste del ciclo de desarrollo. Su capacidad de reconguraci on proporciona la exibilidad necesaria para adaptar el sistema a diferentes herramientas (seg un su geometr a) y estrategias de c alculo de la trayectoria, a la vez que se mantiene el rendimiento del hardware a medida. Adem as, los dispositivos recongurables modernos aseguran la privacidad e imposibilitan la clonaci on del dise no utilizan-

do diferentes mecanismos, como son el cifrado del bistream de conguraci on [18] o la autenticaci on mediante dispositivos de ADN [2]. Como caso de estudio se ha implementado un algoritmo espec co denominado ((Digitalizaci on Virtual)) (VD, del ingl es ((Virtual Digitizing ))) [13], [10]. Este algoritmo forma parte del software comercial Forma3D R , desarrollado en el Instituto Tecnol ogico del Calzado y Conexas (INESCOP) [9]. Forma3D es actualmente l der mundial en el software CAD/CAM para hormas de zapatos. Utilizando HW a medida, los c alculos complejos del algoritmo VD se pueden hacer en tiempo real sin tener que reemplazar el equipo de control num erico y manteniendo una frecuencia de reloj baja. S olo se debe acoplar un coprocesador recongurable al bus del sistema. Los antecedentes de este trabajo se pueden encontrar en [12] donde se realiza un estudio sobre el impacto te orico de la implementaci on HW del algoritmo VD utilizando tecnolog a basada en FPGA. Adicionalmente, en el trabajo previo [11] se analiza una propuesta de sistema h brido HW/SW y en [3] se muestran los resultados experimentales. Por u ltimo en [4] se comparan los resultados obtenidos en distintas conguraciones HW/SW incluyendo varias realizaciones puramente HW. La principal contribuci on de este trabajo consiste en el desarrollo de una librer a hardware, denominada DTS (DaTa Stream), que facilita la descripci on de cauces segmentados (pipelines) para el procesamiento de ujos de datos (streams). Los componentes de esta librer a son polim orcos, en el sentido de que aceptan como entrada cualquier formato (de punto jo) y tama no de datos, sintetiz andose en cada caso las primitivas correspondientes sin intervenci on del usuario. La utilizaci on de esta librer a acelera la exploraci on del espacio de dise no ya que una vez denida la estructura del pipeline es posible generar distintas instancias simplemente cambiando el tipo y tama no de los streams. En este trabajo se emple o la librer a DTS para obtener una nueva versi on HW del algoritmo VD y se compararon los resultados con implementaciones previas.

2.

Caracterizaci on del problema

Un algoritmo para el c alculo de la trayectoria de una herramienta genera la secuencia de coordenadas en un espacio tridimensional que debe seguir el centro de la herramienta de corte. Esta trayectoria, as como la morfolog a y tama no de la herramienta de corte determinan un vocamente la supercie restante. La herramienta de corte elimina todo el material que toque en su camino a trav es de la ruta calculada, por lo que su tama no y forma limitan la precisi on de la supercie resultante. En consecuencia, no todas las supercies pueden ser generadas por una herramienta de corte dada [1] y el problema general de la computaci on de la trayectoria de la herramienta se puede denir como: ((Encontrar la trayectoria para el centro de la herramienta de corte, tal que, genera la supercie m as cercana de las que contienen el objeto deseado )) [6] (v ease la gura 1). Uno de los problemas m as importante en el c alculo de trayector as es es el denominado ((colisi on de la herramienta con la supercie)) (tool-surface collision ),

Figura 1: (a) Sin colisi on, la trayectoria produce un objeto m as grande que el modelo. (b) Una trayectoria con colisi on que quita demasiado material.

la gura 1a ilustra el problema de la colisi on en dos dimensiones. En la gura 1b se ha eliminado esta colisi on, aunque el objeto resultante ser a ligeramente m as grande que el esperado. Las soluciones parciales a este problema utilizan supercies de compensaci on (surface osets ) generadas mediante diferentes m etodos [20]-[7]. Sin embargo, este m etodo s olo puede ser aplicado a herramientas de un radio (es decir, esf ericas, cil ndricas y c onicas) y no son v alidas para herramientas m as complejas, como un toroide con dos radios. Por otra parte, en la mayor a de los casos, los problemas de auto-intersecci on surgen de acuerdo con la curvatura de la supercie [19]. As , t ecnicas de c alculo m as sosticadas y con costes m as altos son necesarias para detectar y resolver estos problemas. Existen otros m etodos basado en ruled surfaces, pero igualmente su aplicaci on est a limitada a herramientas de un s olo radio y el mecanizado isoparam etrico de tres ejes [5]. La digitalizaci on virtual, por su propia denici on, evita el problema de las colisiones entre la herramienta y la supercie. Est a inspirada en el funcionamiento de las copiadoras mec anicas. Estas m aquinas se desplazan a lo largo de la supercie del modelo de referencia tocando cada punto de la misma, mientras que un grupo de brazos transmiten instant aneamente ese movimiento a las cuchillas de corte con el n de dar forma a la pieza copiada. En la aproximaci on VD, la herramienta de corte ((toca virtualmente)) la supercie de referencia (realmente se calcula la posici on de la herramienta), y de esta forma se asegura que la m aquina no elimina ning un punto interior al objeto que se pretende mecanizar. Debido al hecho de que todos los procesos de mecanizado son similares, este algoritmo no tiene restricciones con respecto a la herramienta o especicaciones mec anicas, por lo que el algoritmo se puede utilizar incluso en el mecanizado no est andar (por ejemplo, en el retro-tting, esto es en el caso de m aquinas antiguas a las que se les ha a nadido el control por computador) El algoritmo de digitalizaci on se convierte en una tarea simple una vez que la supercie y el movimiento de la herramienta quedan bien denidos. B asicamente, el comportamiento puede ser descrito de la siguiente manera: Para cada punto de la trayectoria se transforma la supercie de la pieza para hacer frente a la herramienta de corte. A continuaci on, el algoritmo selecciona el punto que toca

la supercie de la herramienta en primer lugar cuando la herramienta se mueve a lo largo del eje de ataque. Este punto determina la localizaci on del centro de la herramienta para el paso actual en el proceso de digitalizaci on virtual (gura 2).

P u n to s d e s u p e rfic ie P u n to ganador
D m in

H e rra m ie n ta

S U P E R F IC IE
D ire c c i n d e m o v im ie n to d e la h e rra m ie n ta

Figura 2: Selecci on del punto ganador para el c alculo de la trayectoria de la herramienta en funci on de la supercie y el a rea de inuencia sobre la que se encuentre la herramienta.

Para el caso particular del mecanizado con torno (turning lathe ) (gura 3) un bloque de material gira a una velocidad angular constante ( ) en torno a un eje dado (eje de rotaci on, x). El centro de la herramienta de corte con coordenadas (Tx , Ty , Tz ) est a limitado a un plano 2D (para Tz = 0) y se mueve a lo largo de este eje, el eje de la traslaci on, a una velocidad ja (vx ). El sistema CNC calcula y controla su movimiento a lo largo una direcci on ortogonal (eje de ataque, y ). Si la posici on de la herramienta de corte no cambia (Ty = cte) durante el proceso de mecanizado, el objeto resultante ser a un cilindro. Estrictamente hablando, la forma resultante ser a una h elice (como una rosca) muy cercana a un cilindro.

E je d e ro ta c i n

E je d e a ta q u e

E je d e tra s la c i n

Figura 3: Esquema del problema. Puede verse la posici on de la pieza y la herramienta de corte. Adem as podemos apreciar el eje de giro, el eje de desplazamiento y el eje de ataque de la herramienta.

Puesto que la velocidad de rotaci on del bloque y la velocidad de traslaci on son constantes, la posici on del centro de la herramienta queda totalmente determinada por Ty en un momento dado. N otese que Ty y Tx son las u nicas coordenadas variables del centro de la herramienta y Tx puede calcularse a partir del tiempo y el movimiento a velocidad constante. En otras palabras, el resultado del c alculo de la trayectoria de la herramienta se puede expresar como una secuencia de valores Ty , dados a intervalos regulares de tiempo. Cuando la herramienta de corte se mueve dentro de la pieza, elimina un volumen de material que depende de la forma y el tama no de la herramienta de corte misma. En un momento dado, este volumen no puede incluir punto alguno del objeto deseado, pues de lo contrario ser a eliminado. Tan pronto como la p herramienta de corte toca un punto (p) de la supercie deseada en Ty , no puede cortar m as profundo en la pieza. Esto es cierto para todos los puntos, por lo que el algoritmo debe encontrar para cada posici on de la herramienta (Tx ) la ubicaci on de tal manera que la herramienta de corte quede lo m as a la izquierda posible, matem aticamente:
p }, p S Ty (Tx ) = max{Ty

(1)

La gura 4 contiene el pseudoc odigo para el algoritmo de digitalizaci on virtual aplicado a un torno.

0 n for Tx [Tx , . . . , Tx ] do Ty update(RotM atrix33 ) for p S do pR p RotM atrix33 if pR A then p Ty computeT y (pR , Tx ) p Ty max{Ty , Ty } end if end for AddT rajectoryP oint(Tx , Ty ) end for

Figura 4: Digitalizaci on virtual, pseudoc odigo del algoritmo b asico

Se dene S como la supercie del modelo y A el area de inuencia de la herramienta de corte en momento dado. El mecanizado de hormas de zapatos puede ser considerado un caso extremo en tornos debido a su complejidad. En este caso, las herramientas t picas tienen dos radios, lo que complica mucho el c alculo del area de inuencia y el punto p Ty . Como ya se ha mencionado anteriormente, en un momento dado, Tx queda jo y la herramienta de corte se ve limitada al plano (x, y ). Por lo tanto, s olo

los puntos con x alrededor de Tx y z alrededor de 0 puede ser alcanzados. En la gura 5 encontramos unos ejemplos de torneado de hormas de calzado. En la gura encontramos las im agenes inicial y nal de la horma de zapato, as como la trayectoria de h elice de la herramienta de corte.

Figura 5: Imagen de un torno para mecanizado de hormas de calzado (izquierda y centro) y trayectoria de la herramienta durante el proceso (derecha).

Para una herramienta en forma de toro como la de la gura 6, la siguiente p , para un punto dado p = (x, y, z ): ecuaci on determina la posici on de su centro, Ty
p Ty =y+

(R +

r2 (x Tx )2 )2 z 2

(2)

En la gura 6 se muestra una herramienta de corte en forma de toro con sus dimensiones (R, r) a la izquierda y una vista lateral a la derecha. Esta vista lateral dene el area de inuencia alrededor del centro de toro, que es muy semejante a un rect angulo. El dominio real de la ecuaci on anterior dene la actual area de inuencia (A) para z y x: r2 (x Tx )2 z R r2 (x Tx )2 , Tx + r x Tx r

R+

(3)

3.

Arquitectura del sistema y compromisos en el espacio de dise no

En la gura 7 se muestra la arquitectura del sistema que se plantea para implementar el algoritmo VD. Una tarjeta coprocesadora, basada en FPGA, trabaja de forma conjunta al software que se ejecuta en un computador NC. El computador NC puede elegir las tareas involucradas en un momento dado y recongurar la FPGA con los correspondientes cheros de conguraci on almacenados en disco. Usando la capacidad de reconguraci on parcial de la FPGA, la

V is ta d e la p e rs p e c tiv a fro n ta l E je d e ro t. V is ta s u p e rio r E je d e ro t. V is ta s u p e rio r s in m o v im ie n t o d im e n s io n e s

z R +r

-R -r

E je d e ro t.

Tx - r

Tx

Tx + r

r R

Figura 6: Herramienta de corte en forma de toro (izquierda) as como su a rea de inuencia (derecha).

estructura b asica del algoritmo se mantiene en el coprocesador, mientras que solo algunas partes de la arquitectura se cargan bajo demanda cuando sean precisas. Para la conexi on entre el coprocesador y NC se emplea un bus de alto rendimiento (p. ej: PCI o PCIe), que provea del suciente ancho de banda para soportar las transacciones bidireccionales de datos. Adem as, se utilizan varios bancos de memoria para el almacenamiento temporal de los datos de supercie, par ametros de mecanizado, constantes y resultados. Esta memoria puede ser compartida o local a la FPGA, pero debe ser accedida mediante canales DMA para acelerar las transacciones y reducir la participaci on del SW. Tambi en hay varios puertos dedicados que el computador puede emplear para controlar y monitorizar el estado del HW.

C o m p u ta d o r NC B u s d e l siste m a In te fa z d e l b u s P u e rto s B u s d e d a to s c o n tro l/e sta d o FPGA M e m o ra

P la c a c o p ro c e s a d o ra

Figura 7: Arquitectura gen erica del sistema

Analizando el algoritmo VD, es posible observar dos bucles anidados. El m as interno accede a cada punto de la supercie, y el bucle m as externo recorre todas las posiciones de trayectoria. Con el n de obtener una buena calidad de acabado, es necesario producir, al menos, tantos puntos como puntos de trayectoria tiene la supercie. Suponiendo que n es el n umero m aximo de puntos de supercie, y m el n umero de posiciones en la trayectoria, entonces el coste temporal del algoritmo, es O(mn). Los valores de n y m dependen del tama no del modelo, as como de la precisi on deseada para el mecanizado. T engase en cuenta que el valor de n consiste en una matriz de orden i j , determinando as el tama no para una representaci on de tipo NURBS de la supercie. Adem as, si se emplean m as puntos y por tanto una resoluci on mayor para denir la NURBS entonces obtendremos una discretizaci on mejor con el consecuente aumento de precisi on en el c alculo de la trayectoria. Hay cuatro operaciones diferentes en el algoritmo VD: transformaci on del punto (rotaci on), la estimaci on del area de inuencia, el c alculo de Ty y comparaci on. Estas cuatro operaciones se realizan para cada punto de la trayectoria de la herramienta y por cada punto de la supercie original. Cualquier optimizaci on en este nivel mejorar a de forma signicativa el tiempo de c omputo total. Para la implementaci on del algoritmo VD se han llevado a cabo varias fases de forma progresiva. La primera, realizar la implementaci on software del mismo. Una vez se ha vericado esta fase, todas las etapas cr ticas han sido trasladadas de forma incremental al hardware. Debido a la modularidad de las operaciones, esto se puede hacer en peque nos pasos, lo cual implica ligeros cambios en el hardware, que en gran medida simplica y acelera la depuraci on. El espacio de dise no tiene varios grados de libertad por lo que cambiando los par ametros asociados a estos se obtendr an diferentes compromisos entre el rendimiento, el coste y la precisi on. El primero es el llamado partici on HW/SW (HW/SW partition ), que determina la distribuci on de la funcionalidad entre HW y SW. Partiendo de una codicaci on puramente software del algoritmo se ha comprobado como diferentes funcionalidades pueden ser migradas hacia el HW, cada grupo dene una partici on entre HW/SW. En trabajos anteriores [4] se ha realizado una comparativa entre una partici on h brida, donde se distribu an las operaciones entre HW y SW y otra partici on u nicamente HW. En este art culo continuaremos explorando el espacio de soluciones en los dise nos puramente HW. El tipo de datos y su ancho en bits son otro factor de dise no a tener en cuenta. T picamente esto tiene un mayor impacto en implementaciones HW que SW. Una CPU potente posee unidades HW para operar con datos en punto jo o otante. Una reducci on de bits solo tiene alg un efecto en la memoria o el rendimiento cuando cruzamos algunos l mites (por ejemplo: entre 8 y 9 bits o 16 y 17 bits). A este respecto, el dise no HW es mucho m as exible y permite cualquier n umero de bits para datos. Tanto es as , que cuanto menor es el ancho de bits, menos recursos se necesitan. Los recursos que queden libres en la FPGA se pueden emplear para conseguir mayor aceleraci on, ampliar cualquier funcionalidad o permitiendo utilizar un dispositivo m as peque no (o barato). Por desgracia, una reducci on en el ancho de bits tambi en aumenta el error en el resultado, que

10

establece un l mite inferior a la anchura de bits. Las arquitecturas FPGA se adaptan bien a las operaciones de punto jo mientras que los c alculos en punto otante requieren una cantidad signicativa de recursos. En este trabajo nos centraremos en la aritm etica de punto jo. Para el caso concreto del mecanizado, el formato de los datos tambi en puede jugar un importante papel a la hora de conseguir mejorar la precisi on y/o facilitar la comunicaci on entre el CNC y la maquinaria. Normalmente el dise nador a la hora de generar objetos especica sus dimensiones en decimal por ser este su sistema natural, por lo que resulta interesante que la maquinaria soporte este sistema para evitar las conversiones. Lo mismo ocurre con los operadores que monitoricen el proceso; si la informaci on del sistema les viene dado en decimal les resultar a m as sencilla su inspecci on y una pronta detecci on de los posibles errores que surjan en dicho proceso. En esta l nea, comienzan a aparecer propuestas que plantean la utilizaci on del formato decimal (BCD) en las operaciones del CNC, evitando as la p erdida de precisi on, as como el coste temporal que generalmente acarrean las transformaciones BCD-binario-BCD. El paralelismo es el tercer factor de dise no a tener en cuenta. El bucle principal en VD se compone de funciones que se ejecutan de forma secuencial y que se pueden mapear completamente en una ruta de datos HW. El c alculo se puede dividir en subtareas para la construcci on de un pipeline de k etapas. De esta forma, la ejecuci on de forma aislada de una sola iteraci on del bucle consumir ak ciclos de reloj. Sin embargo, como en el algoritmo VD no existe dependencia de datos entre las distintas iteraciones, una vez transcurrida la latencia inical de k ciclos, el pipeline es capaz de producir un resultado por cada ciclo de reloj. Adem as del paralelismo temporal que introduce la segmentaci on, tambi en hay que tener en cuenta la posibilidad de replicar el pipeline. Cada copia del pipeline trabajar a sobre los mismos datos generando distintos puntos de la trayectoria. De esta forma, si son n los pipelines paralelos que se utilizan, la ejecuci on se acelerar a casi proporcionalmente a n. Por contra, esta replicaci on del procesamiento tambi en requerir a m as recursos HW. Se trata b asicamente de hallar un compromiso entre rendimiento y coste.

4.

Librer a de desarrollo DTS

Para facilitar el desarrollo del HW y la exploraci on de los distintos compromisos entre los par ametros de dise no, se ha codicado la librer a denominada DTS (DaTa Stream). DTS es una librer a hardware codicada por completo en Handel-C [8]. Este lenguaje es un HDL de alto nivel (del ingl es, ((Hardware Description Language ))), desarrollado por la Universidad de Oxford (y actualmente propiedad de Mentor Graphics). Est a basado en C, lo que lo convierte en una herramienta ideal para reescribir el algoritmo VD original. La similitud entre ambos lenguajes proporciona un tiempo corto para portar la aplicaci on. Una vez que se ha obtenido la primera implementaci on, es muy f acil y r apido mejorar el desarrollo iterativamente. Basta volver a compilar y probar nuestro dise no. En general, Handel-C proporciona un buen equilibrio entre la calidad

11

del resultado y el tiempo de desarrollo. Por contra los HDL cl asicos (Verilog, VHDL) permiten un mayor control en los detalles de la implementaci on pero a costa de un desarrollo m as largo y costoso. DTS tiene como principal objetivo el procesamiento de ujos continuos de datos (streams). Un stream es un contenedor que incluye unos varios ujos de datos y ags para sincronizaci on y validaci on. Los stream transportan los datos desde un componente origen, que produce los datos, hasta un componente destino que los consume. De esta forma la conguraci on de un pipeline de procesamiento se dene como un conjunto de componentes interconectados mediante streams. La librer a incluye una gran variedad de primitivas de procesamiento, que abarcan componentes de tipo aritm etico (Add, Sub, Abs, etc . . . ), relacional (Lt, Gt, etc . . . ), operador de memorias (RamRead, RamWrite, RAMPL2Read, RAMPL2Write, etc . . . .), l ogico (And, Or, Not, Xor, etc . . . ), generador de constantes (Constant) y control de ujo (Delayer, Cond, etc . . . ). La principal caracter stica de los componentes Dts es su polimorsmo, es decir, la capacidad de los operadores para adaptarse al tipo de dato que contienen los streams con los que est a conectado. Esta propiedad permite la reutilizaci on del c odigo para generar rutas de datos con distinto tama no y formato. Una vez denida y depurada la estructura fundamental del pipeline s olo es necesario cambiar las declaraciones de los streams y el sintetizador generar a, en tiempo de compilaci on, las instancias hardware correspondientes sin la intervenci on del usuario. De esta forma se facilita enormemente el estudio de los distintos compromisos entre los par ametros de dise no y acelera la obtenci on de soluciones optimas. Por si fuera necesario incluir alguna operatoria no disponible en la misma librer a, DTS permite a nadir m odulos IP (IP cores) de terceras partes al dise no. El usuario u nicamente debe denir el interfaz (entradas y salidas) con el m odulo externo e instanciar unas macros Dts espec cas para la comunicaci on con el m odulo IP. Estas macros realizan autom aticamente la conversi on entre los streams y las se nales y buses propios del elemento externo. En la gura 8 se muestra un sencillo ejemplo de utilizaci on de la librer a DTS. En primer lugar se denen los diferentes streams que interconectan los diferentes bloques del pipeline as como su tipo. En el ejemplo se han denido streams de tipo unsigned de 32 bits (l neas 12). En las l neas 68 se denen las entradas y salidas del pipeline mediante los componentes DtsInput y DtsOutput respectivamente. A continuaci on se disponen todos los elementos que formen el pipeline (l neas 1014). La estructura par{ }, propia de Handel-C, dene que todos estos elementos se sintetizar an en circuitos separados y trabajar an en paralelo. Los componentes del pipeline a su vez pueden estar segmentados. Por ejemplo, el DtsCordic est a segmentado en 36 etapas, esto disminuye la profundidad l ogica del dise no y permite alcanzar una mayor frecuencia funcionamiento. De esta forma, cada componente de la librer a tiene asociada una latencia que dene el n umero de ciclos necesarios para producir el primer resultado. Cuando conuyen en un componente varias ramas de procesamiento, el usuario debe equilibrar las latencias de estas con el n de que los datos de unas y otras lleguen de forma

12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 DTS_UINT32 (A); DTS_UINT32 (B); DTS_UINT32 (C); DTS_UINT32 (D); par { /* pipeline */ DtsInput (&A); DtsInput (&B); DtsInput (&C); DtsInput (&D); DtsOutput (&res); DtsDelayer (&C, &delay_C, 1); /* Retardo de estos valores DtsDelayer (&D, &delay_D, 36); DtsSub (&A, &B, &resta_AB); /* resta_AB = A - B DtsCordic (&resta_AB, &C, &cordic); /* cordic (resta_AB, C) DtsLt (&cordic, &D, &res); /* cordic < D)? /* bloque de control */ seq { par { DtsWrite (&A, 55); DtsWrite (&B, 1); DtsWrite (&C, 0); } par { DtsWrite (&A, 37); DtsWrite (&B, 3); // ... } #ifdef USE_SIM DtsDebug(&res); #else DtsRead (&res); } } Figura 8: Ejemplo de uso de la librer a DTS */ */ */ */

sincronizada. Para este n se dispone del componente DtsDelayer, que introduce etapas sin c alculo en el pipeline. En el ejemplo podemos ver que el stream cordic procede de una rama con latencia 36 (1 de DtsSub + 35 de DtsCordic), mientras que el stream D proviene de una rama con latencia 0 (directamente de DtsInput). Por tanto para que los datos de ambos stream lleguen de forma sincronizada al componente DtsLt, es necesario introducir un retardo de 36 ciclos en el stream D. Tambi en de forma concurrente al pipeline se dispone un conjunto de instrucciones secuenciales que se corresponden con el bloque de control (l neas 1732). Desde este bloque se introducen datos en el pipeline con la macro DtsWrite (l neas 2530) y se espera a que este genere resultados para ser

13

le dos con DtsRead. Con este ejemplo se puede observar la simplicidad de uso y como de sencillo resulta entender un dise no realizado con esta librer a. La librer a DTS ha sido concebida para simplicar la depuraci on utilizando las facilidades del entorno DK. Este entorno de desarrollo para Handel-C es similar a cualquier otro entorno para desarrollo de software y permite visualizar y modicar el valor de las estructuras y variables durante una simulaci on ciclo a ciclo del dise no (cycle accurate simulation). En las l neas 2831 se puede ver como, utilizando las directivas del precompilador, la macro DtsDebug se utiliza para extraer los datos del stream res y direccionarlos hacia la consola de depuraci on.

5.

Dise no del prototipo

Con el n de validar la librer a y explorar sus posibilidades se desarrollaron varios prototipos HW del algoritmo VD. Para la cosimulaci on de todo el sistema, se ha usado la librer a DSM (del ingl es, ((Data Stream Manager ))). Esta API permite conectar de forma transparente al usuario, la parte SW y HW del sistema. Adem as es posible co-simular el sistema en su conjunto para asegurar que sean correctos su funcionalidad y comportamiento. Gracias a DSM, la vericaci on del sistema se llev o a cabo con el banco de pruebas original de la versi on software del algoritmo. Como plataforma de prototipado se ha seleccionado la tarjeta RC2000 de Celoxica. A d a de hoy es un dispositivo con suciente capacidad para albergar la soluci on hardware que buscamos (el algoritmo con varios pipelines). Incluye una FPGA VIRTEX-II (XC2V6000) con seis bancos RAM ZBT s ncrona de 512x32b. Esta familia de FPGA avanzadas se caracterizan por su alta escala de integraci on. Adem as, una gran cantidad de bloques de memoria interna (BRAM) para el acceso r apido a datos, as como una serie de multiplicadores incrustados para la implementaci on de algoritmos complejos. Estos multiplicadores usan l ogica cableada propia y no consumen ning un bloque l ogico. En la gura 9 podemos ver la partici on HW/SW seleccionada. En este caso el computador NC act ua u nicamente como controlador del proceso. S olo env a los datos al HW y queda en espera de que este nalice su proceso. Con la librer a DTS se ha desarrollado una ruta de datos s uper-segmentada en punto jo (78 etapas). La arquitectura hardware se puede ver en la gura 10. Tres bancos de memoria externa almacenan los puntos de la supercie (xi , yI , zi ) y en bloques de memoria interna (BRAM), se almacenan las matrices de rotaci on. Un cuarto banco de memoria externa almacena los resultados del c alculo de trayectoria. Para cada ciclo un punto de supercie es enviado al pipeline y procesado como se muestra en el algoritmo de la gura 9. Un bloque de control secuencial controla toda la ejecuci on del algoritmo VD en el pipeline. Controla todas las transferencias entre las memorias y el pipeline, las comunicaciones desde/hacia el computador NC y genera las direcciones de lectura/escritura para las memorias as como actualizar el valor de los par ametros antes de llevar a cabo un nuevo proceso.

14 ParamInit DmaWrite(Surface,ram0,ram1,ram2) DmaWrite(Param, bram) Send(HWstart) WaitFor(HWdone) ParamInit DmaRead(Surface,ram0,ram1,ram2) DmaRead(Param, bram) Revice(HWstart) 0 n for Tx [Tx , . . . , Tx ] do Ty update(RotM atrix33 ) for p S do pR p RotM atrix33 if pR A then p Ty computeT y (pR , Tx ) p Ty max{Ty , Ty } end if end for AddT rajectoryP oint(Tx , Ty ) end for

DmaRead(Trajectory,ram3)

Figura 9: Divisi on HW/SW. A la izquierda del a gura el SW env a los datos al HW y espera que este termine su tarea. A la derecha vemos las operaciones implementadas en HW.
Ram X Ram Y Ram Z Ram X Ram Y Ram Z

BRAM sin (i)

BRAM s in (i)

BRAM sin (i)

BRAM s in (i)

co s (i) p ip e lin e Tx C o n sta n te s

B lo q u e de C o n tro l

c o s (i) p ip e lin e 1 p ip e lin e 2

co s (i) p ip e lin e n

co s (i) Tx C o n sta n te s

B lo q u e de C o n tro l

W rite R e s (T x, T y) (T x, T y)

Figura 10: Dise no con un s olo cauce de segmentaci on (izquierda) y dise no con dos o m as cauces de segmentaci on (derecha).

Como se ha mencionado en la secci on 3 las iteraciones en el algoritmo VD son completamente independientes unas de otras. De modo que pueden ser ejecutadas paralelamente en diferentes pipelines (v ease la gura 10 (derecha)). Los pipelines trabajan totalmente sincronizados, compartiendo las memorias X, Y, Z. Cada pipeline posee sus propias memorias internas con las matrices de rotaci on. En estas memorias se dispone una parte de las matrices rotaci on, en funci on de las iteraciones que lleve a cabo cada pipeline. El bloque WriteRes

15
Y Z Ty X Tx R c u c h illa R ru e d a

s in
d e la y e r

cos

* YR

* +
ZR d e la y e r

*
d e la y e r

Tx - R

+
Tx + R

d e la y e r

d e la y e r

X - Tx C O R D IC h ip e rb .

< &

>

Ty - YR d e la y e r

Cond X d e la y e r

+
R a d io

C O R D IC h ip e rb .

abs <

abs

const m ax v a lu e

&
Conds

Cond Z

COND m in im o
avance

Figura 11: Ruta de datos segmentada que soluciona el algoritmo VD.

se utiliza para secuenciar las n escrituras de los n resultados generados por los pipeline en cada iteraci on del bucle externo. En la gura 11 se muestra el dise no detallado de cada pipeline. Todos los bloques dibujados con un cuadro blanco son bloques desarrollados con la librer a DTS. Los bloques rayados y marcados como ((delayer )) tambi en se encuentran el la librer a DTS, son elementos de retardos y se emplean para realizar el equilibrado entre diferentes ramas del pipeline. Las operaciones del tipo distacia vistas en la caracterizaci on del problema: dist(a, b) = a2 b2 (4)

16

Han sido sustituidas por un m odulo que implementa el algoritmo CORDIC en modo hiperb olico. Para el caso que nos ocupa, resulta que CORDIC en modo hiperb olico produce una aproximaci on al calculo de la distancia, como se puede ver en la expresi on siguiente: CORDIC(X, Y, m = 1) (k1 X 2 Y 2 , 0, z + tanh1 (y/x) (5)

De la terna resultado del algoritmo CORDIC despreciamos las dos u ltimas componentes y en HW tomaremos el resultado k1 X 2 Y 2 y se multiplicar a por un valor de compensado k . De modo que obtendremos una aproximaci on al c alculo de la distancia como: CORDIC-h(X, Y ) k k1 X 2 Y 2 = dist(a, b) (6)

A partir ahora para referirnos al uso concreto que le damos al algoritmo CORDIC (que tiene una gama amplia de modalidades y opciones) escribiremos CORDIC-h para referirnos al caso expuesto en la expresi on 6. Este de por s ya es un punto de mejora, se ha sustituido la funci on distancia que se compone de varios operadores can onicos exactos (resta, multiplicaci on, ra z cuadrada) por un u nico operador aproximado (el COORDIC en modo hiperb olico). Con este cambio se reduce el consumo de recursos por pipeline a costa de una reducci on en la precisi on. Utilizando las opciones que brinda DTS, se ha optado por incorporar un m odulo CORDIC optimizado para la familia Virtex-II (Cordic v3.0 de Xilinx), que se ha generado con la herramienta Coregen.

6.

Resultados

Como banco de pruebas se utiliz o una implementaci on software del algoritmo VD. Este fue codicado en ANSI-C y fue compilado con MS Visual Studio 2005 Express con el mayor nivel de optimizaci on soportado por el compilador (similar al nivel 3 en los compiladores GCC). El equipo empleado para la implementaci on, desarrollo y validaci on ha sido un Intel Core2 Duo, con una frecuencia de 2,33 GHz y y 2 GB de RAM. Para las operaciones CORDIC se ha empleado el IP CORE de Xilinx Cordic v3.0 y el Multiplier v10.0. El entorno de desarrollo y cosimulaci on ha consistido en el DK Design Suite de Agility en su versi on 5. Adem as del simulador VHDL ModelSim SE 6.1f y la herramienta de implementaci on ISE v10.1 de Xilinx. Para llevar a cabo los experimentos se ha empleado un modelo de una horma de zapato representada como una supercie de 15.270 puntos (131 120). Los datos sobre la ocupaci on de recursos en la FPGA se muestran en el cuadro 1. En este cuadro se puede apreciar como la propuesta DTS proporciona una notable reducci on que se produce en t erminos de l ogica consumida (Slices) y multiplicadores. Con respecto a la replicaci on de los pipelines, en el trabajo previo [4], con la ocupaci on por pipeline se llega hasta un m aximo de 5 pipelines. Mientr as que con la propuesta DTS se puede llegar hasta 10 pipelines.

17 Componentes Resultados en [4] Propuesta DTS Slices 11.263 5.111 BRAM 16 Kb 12 1 Mult18x18 28 3 Cuadro 1: Ocupaci on de recursos por pipeline (Virtex-II XC2V6000)

El error m aximo absoluto para la soluci on DTS resulta de 0, 837 mm, mientras que en el trabajo previo [4] para el mismo caso el error m aximo obtenido ha sido de 0, 018 mm.

7.

Conclusiones y trabajo futuro

El c alculo de trayectoria es una parte importante para adaptar los procesos de fabricaci on al est andar STEP-NC. Sin embargo, estos algoritmos demandan una alta capacidad de c omputo, lo que diculta en gran manera su adaptaci on. Debido al alto coste de sustituci on de estas m aquinas, en la mayor a de los casos la u nica alternativa viable para adaptar los procesos de fabricaci on al nuevo est andar es la modicaci on de los computadores CNC. Para este n, la soluci on m as directa consiste en reemplazar los m odulos CNC por otros nuevos basados en microprocesadores m as modernos y potentes. Debido al alto coste de esta soluci on, a la sensibilidad al ruido electromagn etico en entornos industriales y dado que la aceleraci on hardware siempre proporciona buenos resultados, se propone la adici on de un componente hardware a medida que acelere la ejecuci on de los algoritmos de c alculo de trayectorias. Como caso de estudio se ha implementado una versi on completamente hardware del algoritmo Digitalizaci on Virtual. Para tal n se ha codicado una librer a hardware que permita el dise no de rutas de datos segmentadas. Codicada en Handel-C, que ha sido el HDL empleado para implementar el prototipo. Se ha dise nado una ruta de datos segmentada y sobre este prototipo se han llevado a cabo las pruebas para validar el dise no. Como plataforma de prototipado se ha seleccionado la tarjeta RC2000 de Celoxica. Siendo un dispositivo con suciente capacidad para albergar la soluci on hardware que buscamos dado que incluye una FPGA VIRTEX-II (XC2V6000) con seis bancos RAM ZBT s ncrona de 512x32b. Finalmente los resultados muestran una considerable reducci on en el uso de los recursos de la FPGA con respecto a trabajos anteriores. La precisi on obtenida en los experimentos es aceptable, aunque se seguir a trabajando para tratar de obtener una mejor precisi on. Las l neas futuras de investigaci on se centrar an en realizar diversas mejoras en el trabajo presentado. Llevar a cabo un estudio en busca del mejor compromiso entre precisi on/rendimiento y ampliar las posibilidades de la librer a DTS. Adem as se quiere estudiar la implementaci on de una arquitectura m as gen erica

18

para el algoritmo VD que permita abordar una mayor cantidad de modelos, herramientas de corte y estrategias para el c alculo de la trayectoria. Otro campo de investigaci on para trabajo futuro es el relacionado con la protecci on de la propiedad intelectual. Es cierto que el HW provee un nivel de protecci on m as elevado que el SW al tratarse de una caja negra donde la ingenier a inversa (especialmente en ASICs) resulta una tarea muy complicada, sino imposible. A un as en futuros dise nos se quieren aprovechar los mecanismos de protecci on disponibles en las nuevas FPGAs.

8.

Agradecimientos

El autor quiere agradecer a la Conseller a de Educaci o de la Comunidad n de algoValenciana la nanciaci on aportada para el proyecto ((Aceleracio ritmos industriales y de seguridad en entornos cr ticos mediante n al sector calzado)), (GV 2009/098), sin la cual no hardware: Aplicacio podr a haber sido posible llevar a cabo este trabajo.

Referencias
1. Actel Corp. Design Security in Nonvolatile Flash and Antifuse FPGAs. Actel Corp., 2002. http://www.actel.com/documents/DesignSecurity WP.pdf. 2. Glenn Crow. Advanced Security Schemes for Spartan3A/3AN/3A DSP FPGAs. Xilinx Corp., August 2007. http://www.xilinx.com/support/documentation/white papers/wp267.pdf. 3. S. Cuenca, A. Mart nez, A. Jimeno, and J.L. S anchez. A hardware/software architecture for tool path computation. an application to turning lathe machining. In Proceedings of the International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation, SAMOS 2007, pages 96102, 2007. 4. Sergio Cuenca, Antonio Jimeno-Morenilla, Antonio Mart nez, and Rafael Maestre. Hardware approach to tool path computation for step-nc enabled cnc: A case study of turning lathe machining. Computers in Industry. (Aceptado para su publicaci on en 2011 ). 5. Gershon Elber and Russ Fish. 5-axis freeform surface milling using piecewise surface approximation. ASME Journal of Manufacturing Science and Engineering, 119(3):383387, 2000. 6. G. Farin. Curves and Surfaces for Computer Aided Geometric Design. A Practical Guide. Academic Press, Inc, Orlando, FL, USA, 1993. 7. Martin Held. Voronoi diagrams and oset curves of curvilinear polygons. Computer-Aided Design, 30(4):287300, 1998. 8. Mentor Graphics Inc. Handel-c laguage reference manual: http://www.mentor.com/products/fpga/handel-c/upload/handelc-reference.pdf, July 2010. 9. INESCOP. Forma3d: http://www.inescop.com/inescop/cad/forma/index.htm, July 2010. Sistema para el dise no y fabricaci on de hormas. 10. A. Jimeno, F. Maci a, and J. Garc a-Chamizo. Trajectory-based morphological operators: a morphological model for tool path computation. In Proceedings of the international conference on algorithmic mathematics & computer science, AMCS 2004, 2004.

19 11. A. Jimeno, J.L. S anchez, H. Mora, J. Mora, and J.M. Garc a-Chamizo. Fpgabased tool path computation: An application for shoe last machining on cnc lathes. Computers in Industry, 57(2):103111, 2006. 12. Antonio Jimeno and Sergio Cuenca. Recongurable computing for tool-path computation. The International Journal of Advanced Manufacturing Technology, 21(12):945951, 2003. 13. Salas F. Jimeno A, Garc a J. Shoe lasts machining using virtual digitizing. International Journal of Advanced Manufacturing Technology, 17(10):774750, 2001. 14. International Standards Organization. ISO 6983-1. Numerical control of machinesprogram format and denition of address words-part 1: data format for positioning, line and contouring control systems, 1st. ed. International Standards Organization, 1982. 15. International Standards Organization. ISO 14649-10. Data model for computerized numerical controllers: part 10-general process data. International Standards Organization, 2003. 16. International Standards Organization. ISO 14649-1. Data model for computerized numerical controllers: part 1-overview and fundamental principles. International Standards Organization, 2006. 17. S. H. Shu. Architecture implementation of a shop oor programming system for step compliant cnc. Computer Aided Design, 35:10691083, 2003. 18. Chen Wei Tseng. Lock your designs with the virtex-4 security solution. Xcell journal, 1(52):7577, 2005. 19. J. Wallner and T. Sakkalis. Self-intersections of oset curves and surfaces. Journal of Shape Modeling, 7(1):121, 2001. 20. Y. Wang. Intersection of osets of parametric surfaces. Computer Aided Geometric Design, 13(5):453465, 1996.

Você também pode gostar