CAPÍTULO VI. RESULTADOS
6.3 Implementación de la arquitectura paralela
6.3.2 Mediciones experimentales
La metodología de las mediciones, que se detalla en la sección 6.2.4, se aplica para ambas arquitecturas paralela y serie. Como se reseño anteriormente en una primera fase y de acuerdo a los objetivos planteados en la presente tesis, se realiza la implementación en plataformas de FPGAs FLEX 10K y Xilinx XC4010. En la segunda fase se implementa en APEX 20KE.
En las Tablas 6.2A y 6.2B, se muestran algunas comparaciones del área ocupada en cada FPGA de los bloques que conforman la arquitectura paralela, se toma en cuenta el número de LEs (logic element) para Altera y el número de CLBs (configurable logic block) para Xilinx.
En la Tabla 6.2A se observa que para el bloque COMP la implementación en el FPGA FLEX 10K es más eficiente que su implementación en el FPGA XC4010. Esto se deduce porque en las implementaciones de los otros bloques, el área es el doble en número de LEs que el número de CLBs y es la misma relación de área para la implementación del elemento-C que es el bloque de referencia. El bloque COMP es un circuito aritmético por lo cual su implementación mediante LPMs habilita automáticamente opciones para una implementación eficiente y necesita solo 3 LEs. En la Tabla 6.2B se observa para el FPGA APEX 20KE que cuando se incrementa el número de bits de 4 a 16, el bloque COMP necesita un mayor número de LEs en comparación de los otros bloques los cuales mantienen la misma relación de 2 a 1. Por estas observaciones de deduce que el bloque COMP es un componente crítico dentro del diseño.
A continuación se presentan los resultados de la verificación funcional y de las mediciones del throughput para la arquitectura paralela, con el fin de ilustrar mejor los cálculos en los cuales se basa el método descrito en la sección 6.2.4. En las Figuras 6.4A y 6.4B se muestran las principales vistas del analizador lógico TEKTRONIX TLA704 y del osciloscopio digital TEKTRONIX TDS430A.
En la Figura 6.4A se tiene un ejemplo de la vista del analizador lógico para los vectores de salida de la arquitectura paralela, en la entrada se tienen vectores pseudo-aleatorios, cada uno de los 8 vectores tiene 4 bits. Se observa que los 8 vectores son clasificados correctamente de acuerdo a su valor de prioridad. En la parte superior se muestra las señales de control del micropipeline y mediante las cuales se realiza las mediciones para el cálculo del throughput.
En la Figura 6.4B se tiene las vistas en el osciloscopio digital de las señales de control para la arquitectura paralela, siguiendo el método descrito anteriormente, mediante los retardos entre Rin-Rout y Aout-Ain se realizan las mediciones del throughput. Las
Tablas 6.2A - 6.2B: Comparaciones de área en la arquitectura paralela
vistas corresponden a la implementación en el FPGA FLEX 10K20RC240-4 del sistema de desarrollo UP1 y se observa una buena definición de las formas de onda que permiten una correcta medición.
Las Tablas 6.3A, 6.3B, 6.3C, resume los principales resultados de la implementación para arquitectura paralela considerando las normas OC-48 y OC-12, se incluye el circuito de clasificación bitónico y el buffer correspondiente. En todos los casos, las mediciones basadas en dichos instrumentos, permiten medir los valores los tiempos de propagación de las señales de control Rin y Rout, igualmente entre Aout y Ain. Con estos valores y tomando en cuenta el número de etapas del micropipeline se estima el throughput y latencia, los cuales se resumen en las tablas siguientes.
Fig. 6.4A: Vista del analizador lógico para la arquitectura paralela
La Tabla 6.3A muestra el área y el throughput para el FPGA FLEX 10K, un resultado importante es que aún para un número reducido de bits de prioridad el valor del throughput no satisface la especificación de retardo de células de la norma OC-48. También sirve para mostrar el impacto de las correspondientes tecnologías de fabricación comparado con el FPGA APEX 20KE.
Tabla 6.3A: Implementación paralela en FLEX 10K
Tabla 6.3B: Implementación paralela en APEX 20KE
La Tabla 6.3B muestra el área y el throughput para el FPGA APEX 20KE, considerando lo descrito en la sección 3.4.4 sobre las normas OC-48, OC-12 y el throughput necesario para el retardo de células, se observa que la Unidad de Clasificación si puede cumplir dicha especificación y que dicho FPGA es la mejor opción para una implementación final.
En la Tabla 6.3C muestra el área y el throughput del buffer paralelo para el FPGA APEX 20KE, como se describe en la sección3.4.3, este buffer sirve para transportar los vectores con las direcciones de memoria. Se observa que para ambas normas consideradas OC-48 y OC-12 se pueden tener respectivamente la capacidad suficiente de direcciones de memoria para cumplir con el requisito de CLP (probabilidad de pérdida de células) respetando el throughput necesario.
6.4 Implementación de la arquitectura serie
En forma similar, en este caso para la implementación de la arquitectura serie se toma en cuenta los bloques constitutivos y las características tecnológicas de los FPGAs. Para dicha implementación se muestra los cálculos de los parámetros de rendimiento como el throughput y el área, se concluye con los resultados de las mediciones de laboratorio.
6.4.1 Análisis de sus prestaciones
Con las mismas consideraciones mencionadas en la sección 6.2.4 y como en el caso de la arquitectura paralela, se hace hincapié en los parámetros de throughput y el área ocupada, el análisis detallado se muestra en la sección 5.6.1. En esta sección se detalla el procedimiento del cálculo del retardo necesario a ser introducido en los bloques matched delay para la arquitectura serie.
También en referencia a la Tabla 6.4, donde se tienen los niveles de lógica de los bloques constitutivos de la arquitectura serie y a fin de mostrar el método de los cálculos para la arquitectura serie, se considera 8 vectores cada vector de 16 bits, para el FPGA APEX 20KE.
- Cálculo referido a los niveles de lógica.
Para la arquitectura serie Figura 5.4, en el bloque de lógica de procesamiento, el mayor retardo se tiene en la trayectoria:
T(cmp) + T(and) + T(mux)
Si cada nivel lógico tiene un retraso “t” y considerando los niveles de cada bloque: T(total)= 11t + 3t + 3t= 17t
- Cálculo del bloque interno matched delay.
Una vez que se ha calculado la profundidad lógica del mayor retardo, referido al retardo de un nivel lógico, se calcula el número de unidades de retardo para compensar dicha profundidad lógica. En la arquitectura serie, el bloque de procesamiento es un circuito secuencial, por lo cual se tiene un bloque matched delay interno y otro bloque matched delay externo para el control del micropipeline. A continuación se detalla el cálculo del primero.
Para el FPGA APEX 20K100EQC240-2 se tiene: T(ur)= 1.12ns, luego t= 1/3 (1.12)= 0.37ns
Luego el retardo total: T(total)= 17t= 17(0.37ns)= 6.3ns. El retardo debido al routing es similar: T(routing)= 6.3ns El factor de seguridad debido a las variaciones del proceso: T(process)= 30% (6.3ns + 6.3ns)= 3.8ns
El bloque matched delay debe tener un retraso: T(matched)= 6.3ns + 6.3ns + 3.8ns = 16.4ns.
Esto equivale a 16.4ns/1.12ns= 14.6 y se consideran 15 unidades de retardo. - Cálculo del bloque externo matched delay.
Para el bloque externo se debe añadir al bloque interno el retraso de latch micropipeline que es equivalente a 3 unidades, además, se debe añadir el retraso del circuito de control SINCT que es equivalente a 4 unidades.
T(ext)= T(matched) + T(latch) + T(SINCT) T(add)= T(latch) + T(SINCT)= 3t + 4t= 7t
Siguiendo el caso para la plataforma APEX 20K100EQC240-2: T(add)= 7t= 7(0.37ns)= 2.59ns.
El retardo debido al routing es similar, T(routing)= 2.59ns
Debido a las variaciones del proceso T(process)= 30% (2.59ns + 2.59ns)= 1.55ns T(matched)= 2.59ns + 2.59ns + 1.55ns = 6.73ns
Luego:
T(ext)= T(matched) + T(latch) + T(SINCT) = 15T(ur) + 7T(ur)= 22T(ur). El T(ext) equivale a 22 unidades de retraso.
En este caso, el compilador de Altera automáticamente permite que de las 22 unidades externas, se deriven 15 unidades para bloque interno y las 7 adicionales son para el retardo externo. Para la arquitectura serie, el simulador da los valores los tiempos de propagación de las señales de control Rin y Rout, igualmente entre Aout y Ain. Con estos valores y tomando en cuenta el número de etapas del micropipeline se estima el throughput que es verificado mediante simulación.
Para 8 etapas de la arquitectura serie, se comprueba su correcto funcionamiento mediante simulaciones en QUARTUS II [39] se verifican los tiempos y se ajustan los retardos, en este caso se confirma el usar 22 unidades para el bloque de retraso externo y 15 unidades para el bloque retraso interno. Se simula a una tasa de 40ns.
Luego la latencia de cada etapa es: 40ns
El throughput máximo: 1/40ns = 25 M outputs/seg.
De la misma forma que el en caso paralelo, estos valores de consideran como “operación segura”, indicando que el throughput puede ser mayor y cuyo máximo se determina mediante las mediciones experimentales, dicho throughput medido es alrededor de un 5% mayor que el dado por la simulación.
6.4.2 Mediciones experimentales
La metodología de las mediciones, que se detalla en la sección 6.2.4, se aplica para ambas arquitecturas paralela y serie. Como se indicó anteriormente, en una primera fase y de acuerdo a los objetivos planteados en la presente tesis, se realiza la implementación en plataformas de FPGAs FLEX 10K y Xilinx XC4010. En la segunda fase se implementa en el FPGA APEX 20KE.
En las Tablas 6.5A y 6.5B, se muestra la comparación del área ocupada en cada FPGA de los bloques que conforman la arquitectura serie, se toma en cuenta el número de LEs (logic element) para Altera y el número de CLBs (configurable logic block) para Xilinx. En la Tabla 6.5A se observa que para el bloque CMP la implementación en el FPGA FLEX 10K es más eficiente que su implementación en el FPGA XC4010. Esto se deduce porque en las implementaciones de los otros bloques como LATCH o MUX, el área es el doble en número de LEs que el número de CLBs y es la misma relación de área para la implementación del elemento-C que es el bloque de referencia. El bloque COMP es un circuito aritmético por lo cual su implementación mediante LPMs habilita automáticamente opciones para una implementación eficiente y necesita solo 3 LEs. En la Tabla 6.5B se observa para el FPGA APEX 20KE que cuando se incrementa el número de bits de 4 a 16, el bloque CMP necesita un mayor número de LEs en comparación de los otros bloques LATCH o MUX los cuales mantienen la misma
relación de 2 a 1. Por estas observaciones de deduce que el bloque CMP es un componente crítico dentro del diseño. Dentro de los otros circuitos de control el bloque DETEC depende del número de bits de los vectores de entrada y los otros bloques como AND o SINCT tienen el mismo número de LEs.
A continuación se presentan los resultados de la verificación funcional y de las mediciones del throughput para la arquitectura serie, con el fin de ilustrar mejor los cálculos en los cuales se basa el método descrito en la sección 6.2.4. En las Figuras 6.5A y 6.5B, se muestran las principales vistas del analizador lógico TEKTRONIX TLA704 y del osciloscopio digital TEKTRONIX TDS430A.
En la Figura 6.5A se tiene un ejemplo de la vista del analizador lógico para los vectores de salida de la arquitectura serie, en la entrada serie ingresan vectores pseudo-aleatorios en bloques de 8 vectores, cada uno de los 8 vectores tiene 4 bits. Se observa en la salida serie que los 8 vectores son clasificados correctamente de acuerdo a su valor de prioridad. En la parte superior se muestra las señales de control del micropipeline y mediante las cuales se realiza las mediciones para el cálculo del throughput.
En la Figura 6.5B, se tiene las vistas en el osciloscopio digital de las señales de control para la arquitectura serie, siguiendo el método descrito anteriormente, mediante los retardos entre Rin-Rout y Aout-Ain se realizan las mediciones del throughput. Para esta arquitectura serie, las vistas corresponden a la implementación en el FPGA
Tablas 6.5A- 6.5B: Comparaciones de área en la arquitectura serie
Tabla 6.5A
XC4010XLPC84-3 del sistema de desarrollo XS40 y se observa una buena definición de las formas de onda que permiten una correcta medición.
Las Tablas 6.6A, 6.6B, 6.6C, resumen los principales resultados de la implementación para arquitectura serie considerando las normas OC-48 y OC-12, se incluye el circuito de clasificación serie y el buffer correspondiente. En todos los casos, las mediciones basadas en dichos instrumentos, permiten medir los tiempos de propagación de las señales de control Rin y Rout, igualmente entre Aout y Ain. Con estos valores y tomando en cuenta el número de etapas del micropipeline se estima el throughput y latencia, los cuales se resumen en las tablas siguientes.
La Tabla 6.6A muestra el área y el throughput para el FPGA XC 4010 y FLEX 10K, un resultado importante es que aún para un número reducido de bits de prioridad los
Fig. 6.5A: Vista del analizador lógico para la arquitectura serie
valores del throughput no satisfacen la especificación de retardo de células de la norma OC-48. También sirve para mostrar el impacto de las correspondientes tecnologías de fabricación comparados ambos y con el FPGA APEX 20KE.
Tabla 6.6A: Implementación serie en XC4010 y FLEX10K
Tabla 6.6B: Implementación serie en APEX 20KE
La Tabla 6.6B muestra el área y el throughput del circuito serie para el FPGA APEX 20KE, considerando lo descrito en la sección 3.4.3 sobre las normas OC-48, OC-12 y el throughput necesario para el retardo de células, se observa que la Unidad de Clasificación si puede cumplir dicha especificación y que dicho FPGA es la mejor opción para una implementación final.
En la Tabla 6.6C muestra el área y el throughput del buffer serie para el FPGA APEX 20KE, como se describe en la sección 3.4.3 este buffer sirve para transportar los vectores con las direcciones de memoria. Se observa que para ambas normas consideradas OC-48 y OC-12 se pueden tener respectivamente la capacidad suficiente de direcciones de memoria para cumplir con el requisito de CLP (probabilidad de pérdida de células) respetando el throughput necesario.
6.5 Evaluación de los resultados
En la evaluación para las implementaciones particulares consideradas, se toma en cuenta los procesos tecnológicos de fabricación y las características del dispositivo. Las ventajas y limitaciones se basan en el protocolo al cual está dirigida la aplicación y su posible extensión a otros tipos de tráfico.