Fpga En Sistemas Comerciales
Aquí hay una manera de pensarlo: imagine que puede hacer algo en un ASIC (es decir, directamente en hardware). Sin embargo, el proceso de fabricación es en sí mismo caro, y se obtiene un diseño que no se puede cambiar después. Los ASIC tienen sentido para tareas predefinidas como Bitcoin mining, algoritmos de procesamiento de datos bien conocidos, etc.
Por otro lado, tenemos CPUs ordinarias (así como CPU y GPU de coprocesador) que son de uso general, pero procesan un conjunto pequeño (en términos de instrucciones simultáneas) de instrucciones a una velocidad muy alta.
FPGAs son el medio terreno. Son "emuladores de hardware" y, como tal, pueden considerarse 10 veces más lentos que el hardware real, pero aún así son más eficaces para las operaciones concurrentes que las CPUs siempre y cuando se pueda utilizar el dado para extender su lógica en consecuencia.
Algunos usos de FPGAs son:
La transcodificación de vídeo (por ejemplo, decodificación de vídeo HD en televisores), así como varias tarjetas de adquisición de datos
Análisis fijo de la estructura de datos (Regex parsing)
Simulación de sistemas discretos (por ejemplo, simular el resultado de un juego de cartas)
Muchas aplicaciones "apropiadamente incorporadas" tales como p. En la investigación aeroespacial o científica
El problema con los FPGAs para los usos cuánticos es que no es tan bueno para los cálculos de punto flotante, en particular porque las CPU ordinarias ya están optimizadas para eso con cosas como SIMD. Sin embargo, para cualquier estructura de datos de punto fijo o de tamaño fijo, el diseño FPGA le permite configurar el dispositivo para realizar un gran procesamiento al mismo tiempo.
Algunas cosas que se hacen en el comercio están utilizando FPGA para los manejadores de alimentación (analizar directamente desde el flujo de red), así como la construcción de ciertas partes de la estructura comercial (por ejemplo, libros de pedidos) en el hardware con el fin de poder hacer frente a la rápida evolución de la estructura de datos sin Cargando la CPU.
Los FPGAs tienen como objetivo principal tratar la preocupación de procesar rápidamente los datos sin pagar los costos de propagación. Esto es particularmente en contraste con dispositivos como GPGPU (o cualquier tarjeta de vivienda PCI, como Xeon Phi) que pagan multas de rendimiento por obtener datos desde / hacia el dispositivo. Dicho esto, las opciones de DMA están mejorando en este sentido, también.
Ingeniero FPGA, Sistemas de Trading
Haga clic aquí para aplicar ahora!
Únase a un equipo existente para investigar, diseñar y desarrollar hardware personalizado para el comercio. Las responsabilidades incluyen arquitecturar y codificar diseños de FPGA en un lenguaje de descripción de hardware, producir documentos de diseño, realizar análisis de tiempo y planificación de pisos, y validar y analizar diseños para errores y eficiencia. Esta posición requerirá excelentes habilidades de comunicación, ya que los ingenieros de FPGA interactúan tanto con su equipo inmediato como con los operadores.
Requisitos Requeridos:
-4 años de experiencia en el diseño de FPGA.
-Experiencia con el ciclo de vida completo del diseño FPGA y el flujo de herramientas de diseño ISE.
- Licenciatura en Ingeniería Eléctrica o Informática o un campo relacionado de una universidad de 4 años.
GPA fuerte (3,5 o superior).
-Excelente conocimiento de verilog.
-La capacidad de transición entre lenguajes de hardware y capas de abstracción en una base de necesidad y demostrar excelencia a lo largo.
-Excelentes habilidades de comunicación y una ética de trabajo que se desarrolla de forma independiente y dentro de un equipo.
Calificaciones deseables:
-Experiencia en el diseño FPGA para aplicaciones de red.
-Proficiencia con VHDL y SystemVerilog.
-Proficiencia con un simulador completo como ModelSim.
- La familiaridad con la IP segura y la experiencia de evaluar los núcleos IP de los proveedores.
FPGA's - Perfección Paralela?
Los FPGA (Field Programmable Gate Arrays) pueden no ser una tecnología nueva, pero a medida que la carrera de sincronización de datos en el comercio automatizado / algorítmico continúa intensificándose, podrían ser una idea cuyo tiempo finalmente ha llegado? AT habla con Alistair MacArthur, Ingeniero Senior de Investigación de Celoxica, quien discute la tecnología actual de FPGA y describe su potencial para tareas como el análisis de algoritmos de noticias.
Qué edad tienen los FPGAs como concepto tecnológico?
Más de veinte años. El concepto original fue desarrollado por dos de los fundadores de Xilinx - Ross Freeman y Bernie Vonderschmitt - alrededor de 1984. La idea de Ross Freeman era que en lugar de usar un procesador genérico y software de escritura para ejecutarlo, se podría personalizar chips electrónicos para realizar especificaciones Tareas directamente programándolas. En efecto, los cálculos del programa se implementarían en hardware más que en software. El nombre genérico para este tipo de chip es un Dispositivo Lógico Programable (PLD), con FPGAs un subconjunto de los mismos.
Entonces, en qué consiste realmente un chip FPGA?
Es esencialmente una forma compleja de Memoria de Acceso Aleatorio Estático (SRAM - un tipo muy rápido de memoria comúnmente usado para el caché de chips en procesadores convencionales). Aunque los FPGA modernos pueden contener una serie de componentes adicionales, los tres componentes principales son los registradores, los generadores de funciones (también conocidos como tablas de búsqueda o LUTS) y el reloj FPGA.
Cada generador de funciones contiene un conjunto de puertas lógicas1. Normalmente se dispone de modo que tiene cuatro entradas, una salida y un puerto de configuración a través del cual se configuran las puertas lógicas.
El concepto básico de operación es que cada generador de funciones puede configurarse para producir una salida particular para un conjunto dado de entradas. Esto puede ser pensado como una tabla de verdad. Por ejemplo, un generador de funciones de 4 entradas podría realizar una coincidencia binaria de 2 bits.
Los registros son esencialmente "celdas" de almacenamiento único capaces de almacenar un bit (0 o 1) de datos. Sin embargo, al igual que las puertas lógicas de un generador de funciones pueden ser configuradas por un programador, los registros pueden agruparse de forma similar en secciones de memoria más grandes, como 8, 32 o 64 bits.
El reloj FPGA controla el número de veces por segundo que cada generador de funciones y registro puede recibir entrada y generar salida. Los FPGAs de producción más rápida funcionan actualmente entre 200 y 400MHz, por lo que cada generador de funciones y registro puede por lo tanto procesar teóricamente entrada / salida entre 200m y 400m veces por segundo.
Xilinx Virtex 5 Familia de chips FPGA
Un montón de procesadores de computadora estándar tienen relojes mucho más rápidos que eso, así que dónde sería la ventaja de rendimiento en el uso de un FPGA?
La diferencia importante es que una única CPU convencional sólo puede procesar una única instrucción por ciclo de reloj. Por el contrario, un FPGA puede configurarse como múltiples procesadores virtuales capaces de funcionar en paralelo. Algunos FPGA grandes pueden contener millones de generadores de funciones y registros, por lo que la configuración para una tarea de procesamiento simple, como coincidir con una cadena de texto corto podría dar lugar a un FPGA que rinde decenas de miles de procesadores virtuales. Una configuración como esta, por lo tanto, superará rápidamente una desventaja de velocidad de reloj múltiple de diez o quince.
El otro punto a tener en cuenta es que los FPGAs pueden evitar una gran cantidad de latencia de otro sistema. Con un procesador convencional podría estar recibiendo el feed de noticias que está procesando a través de un socket TCP en un chip Ethernet, pero que luego tiene que pasar por una capa MAC, luego un chip North Bridge, luego al bus principal del procesador, luego una interrupción Tiene que ser marcado, entonces todos los datos tienen que ser transferidos al espacio del usuario. Todas estas cosas, por supuesto, se puede hacer muy rápidamente, pero hay sin embargo un montón de pasos para pasar por que no se aplican a FPGAs.
Por qué no? Es esto una función de cómo FPGAs están conectados a un sistema?
Eso tiene mucho que ver con eso, sí. En un entorno de producción que abarca la actividad de negociación algorítmica / automatizada, FPGAs es más probable que se encuentran en tarjetas PCI o PCI-X, con las tarjetas que están equipadas con FPGAs de Xilinx y Altera. Una innovación más reciente ha sido colocar el FPGA en un módulo co-procesador que se conecta directamente a la placa base del ordenador. (Estos módulos son producidos por empresas como DRC Computer y sólo se pueden utilizar en placas base multiprocesador AMD que admitan la tecnología HyperTransport).
Si un FPGA se monta en una tarjeta PCI, entonces el cuello de botella principal será la velocidad de la conexión PCI. Sin embargo, el advenimiento de la norma PCI-X - con velocidades de transferencia de hasta 4.26 GB / seg (PCI-X 533) - está haciendo esto mucho menos de un problema. Además, los FPGA que se montan en una tarjeta PCI también se pueden alimentar datos directamente desde una toma Ethernet montada en el plano posterior de la tarjeta, pasando por completo el bus PCI.
Los FPGAs de co-procesador tienen un canal de acceso aún más rápido - con la versión 3.0 de la especificación de HyperTransport haciendo velocidades de transferencia de hasta 41.6 GB / seg. Una configuración bastante típica sería utilizar una placa base AMD de procesador dual, con un procesador de CPU convencional montado en un socket y un coprocesador FPGA montado en el otro. Una ventaja adicional de este enfoque es que el coprocesador FPGA tiene
Acceso directo a la memoria principal del sistema. Por lo tanto, cuando se prueban algoritmos basados en noticias, las bases de datos de noticias grandes y cualquier término de búsqueda pueden cargarse directamente en la memoria principal y acceder rápidamente desde allí por el coprocesador FPGA.
Introducción
La mayor parte del comercio se hace cada vez más electrónicamente utilizando computadoras; Ver Figura 1. Períodos de comercio máximo proporcionan entre las mejores oportunidades comerciales para los beneficios, pero también presentan el mayor riesgo de pérdidas potenciales. Durante los periodos de mayor actividad comercial, los datos de mercado que los sistemas comerciales deben consumir y procesar aumentos hasta el punto en que los sistemas comerciales se ralentizan y se vuelven ineficaces.
El comercio de alta frecuencia (HFT) está afectando la dinámica del mercado y ha generado interesantes debates. Para algunos, HFT es un término relativo. Lo que se llama HFT hoy puede ser la forma común de comercio en el futuro. Y independientemente de que una empresa se dedique o no a HFT, seguramente necesitarán proteger sus activos de eventos como el Flash Crash & # 8221; Del 6 de mayo de 2010. Es posible que una empresa comercial que utilice un sistema de cancelación de órdenes basado en FPGA pueda haber salido del mercado con mayor rapidez que cualquier otra empresa comercial, reduciendo así las pérdidas en días como éste; Véase la figura 2 a continuación.
Figura 2 - Promedio industrial de Dow Jones el 6 de mayo de 2010 (Flash Crash & # 8221;)
Protocolo FIX
Las empresas financieras comunican datos de mercado y comercio a través de estándares de mensajería como el protocolo FIX. El Protocolo de intercambio de información financiera (FIX) es un estándar de mensajería para el intercambio electrónico en tiempo real de transacciones de valores. El estándar FIX es administrado por FIX Protocol Limited (FPL), un organismo internacional de estándares sin fines de lucro con miembros de todos los aspectos de la industria de servicios financieros.
El software conocido como FIX Engines se utiliza para procesar y generar mensajes FIX. QuickFIX es el FIX Engine de código abierto de facto. QuickFIX así como la fuente comercial cerrada & # 8221; Los motores FIX son utilizados por las firmas financieras.
Las empresas financieras están recurriendo a la tecnología de computación de alto rendimiento (HPC) para proporcionar esa ventaja adicional sobre sus competidores. Cada nivel de software está optimizado, y en los últimos años, las empresas están optimizando el hardware de sus sistemas de comercio a través del uso de hardware reconfigurable.
FPGAs: hardware reconfigurable
El hardware reconfigurable, como la tecnología Field Programmable Gate Array (FPGA), se utiliza para optimizar los sistemas de negociación a nivel de red. Los FPGAs pueden ayudar en la generación y procesamiento de datos de red, descargando así ciertas tareas del software de un sistema. El uso más común de FPGAs en finanzas es el manejo de datos de mercado. Los FPGA pueden tener hasta 1000 núcleos para procesar los datos en paralelo y no tienen la jitter introducida por los sistemas operativos y la búsqueda de instrucciones.
Un FPGA se programa utilizando un Hardware Description Language (HDL) como Verilog o VHDL. No todos los algoritmos pueden ser implementados en un FPGA. Esto se debe en parte a la naturaleza de los FPGAs como tecnología y también debido al aspecto de bajo nivel del HDL. HDL requiere más conocimiento del hardware de destino que la programación tradicional, como C o C ++. La codificación HDL puede resultar en tiempos de desarrollo de 3 a 5 veces más si el algoritmo puede incluso ser implementado en un FPGA. Estos idiomas son difíciles de aprender y resultan en archivos de código fuente muy largos que a menudo realizan muy poco con mucho esfuerzo. Por ejemplo, el código VHDL para calcular la raíz cuadrada de un número puede tomar desde 117 líneas hasta 396 líneas de código.
El protocolo FIX está basado en cadenas, prestándose a grandes beneficios de un FPGA. Las funciones de cadena están entre las menos eficientes en una CPU.
Plataforma Tecnológica
Las tecnologías utilizadas en este sistema son PXI, FlexRIO y LabVIEW FPGA.
PXI (PCI eXtensions for Instrumentation) es un bus de computadora abierto y estandarizado usando el factor de forma CompactPCI. PXI se basa en el bus PCI con cronometraje y sincronización integrados que se utiliza para enrutar los relojes y disparadores internamente. PXI se desarrolló en 1997 y se puso en marcha en 1998. PXI está actualmente gobernada por PXI Systems Alliance (PXISA), un grupo de más de 70 empresas que han sido fletadas para promover el estándar PXI, garantizar la interoperabilidad y mantener la especificación PXI. PXISA también es responsable del bus PXI Express que se basa en el bus de la computadora PCI Express que se encuentra en las computadoras más nuevas.
Los sistemas PXI se componen de tres componentes básicos & # 8212; Chasis, controlador y módulos periféricos. Por ejemplo, un chasis de 18 ranuras de 19 pulgadas montable en rack tiene un controlador y 17 módulos de una sola ranura. El controlador contiene componentes de tamaño portátil para la compacidad y puede ejecutar Windows, Linux y varios sistemas operativos en tiempo real. Hay módulos 3U y 6U.
Dado que PXI se basa en tecnologías de PC estándar como Windows y el bus PCI, la integración de un sistema PXI a estos sistemas es similar a la integración de estos sistemas con una PC. PXI también soporta una amplia gama de productos Compact PCI, ya que ambos están basados en el mismo factor de forma.
El bus PXI combina el bus PCI de alta velocidad con sincronización y sincronización. El bus de disparo PXI consta de 8 líneas de bus de disparo compartidas, un disparador de estrella de baja inclinación y un reloj de referencia de sistema común de 10 MHz. Usando estas características de sincronización, uno puede pasar el disparador, el reloj, y otras señales entre los módulos de PXI para hacer las medidas exactas, de alto rendimiento.
FlexRIO es una plataforma de hardware reconfigurable PXI y PXI Express desarrollada por National Instruments. Cuenta con dos partes: módulos FlexRIO de puerta programable de campo (FPGA) y módulos adaptadores FlexRIO. Juntos, forman un sistema de hardware de alto rendimiento y reconfigurable programable con el software LabVIEW FPGA y sin conocimientos de diseño de lenguaje de descripción de hardware (HDL).
Módulos NI FlexRIO FPGA
Los módulos FPIO FlexRIO utilizan un FPGA Virtex-5 con hasta 512 MB de DRAM DDR2 integrada. Los módulos FPIO de FlexRIO vienen en formatos PXI y PXI Express e interfieren con módulos adaptadores FlexRIO que proporcionan E / S al FPGA. Los módulos PXI FlexRIO tienen tres (3) canales DMA para transmisión de datos de alta velocidad, mientras que los módulos PXI Express FlexRIO tienen dieciséis (16) canales DMA. Vea la Figura 3.
La interfaz del módulo adaptador consta de 132 líneas de E / S digitales de uso general conectadas directamente a los pines FPGA, además de la alimentación, el reloj y los circuitos adicionales necesarios para definir la interfaz. Estas 132 líneas pueden configurarse para una operación de un solo extremo a velocidades de hasta 400 Mbits / sy funcionamiento diferencial a velocidades de hasta 1 Gbit / s para un ancho de banda de E / S máximo de 66 Gbits / s (8,25 GB / s) . Todas las líneas se enrutan con impedancia controlada, trazos de longitud igualada y los pares diferenciales se encaminan juntos.
La transmisión de datos punto a punto es exclusiva de los módulos PXI Express NI FlexRIO FPGA. Esto permite a los bancos de hasta cuatro (4) tarjetas PXI Express NI FlexRIO FPGA comunicarse de forma determinista entre sí. Son capaces de transmitir datos entre módulos a velocidades superiores a 800 MB / sy latencias de no más de 10 microsegundos, ya que los datos no se enrutan a través del chipset host. Se admiten hasta 16 flujos de este tipo, simplificando complejos esquemas de comunicación multi-FPGA sin gravar los recursos de CPU del host.
Las tarjetas FlexRIO tienen RTSI, o Real Time Signal Integration, que permite sincronizar las tarjetas con el bus PXI. Los dispositivos habilitados para RTSI pueden comunicarse directamente a través de una conexión eléctrica de baja latencia.
Los módulos NI FlexRIO FPGA son accesibles por los sistemas operativos Windows, Linux, PharLap y VxWorks a través de los controladores NI RIO; Versión 3.5.1 de los controladores RIO se utilizaron para esta aplicación.
Figura 3 - Módulo FlexRIO FPGA
Módulos de adaptador FlexRIO
Los módulos adaptadores FlexRIO de National Instruments y terceros interactúan con los módulos FlexRIO FPGA a través de un conector de borde de tarjeta que encamina las señales FPGA necesarias al módulo adaptador. Los módulos adaptadores personalizados se pueden desarrollar con el kit de desarrollo de módulos adaptadores NI FlexRIO (MDK).
El Kit de Desarrollo de Módulos de Adaptador FlexRIO (MDK) se puede utilizar para crear E / S personalizadas para satisfacer las necesidades exactas de la aplicación. El conector de borde de tarjeta FlexRIO ofrece acceso directo a las clavijas de E / S digitales sin procesar del FPGA. Cada clavija es capaz de velocidades de señalización diferencial de bajo voltaje (LVDS) de hasta 1 Gb / sy velocidades de un solo terminal de hasta 400 Mb / s. Los módulos de adaptador son intercambiables y definen las E / S disponibles en el entorno de programación LabVIEW FPGA.
En este documento se utiliza el Adaptador Gigas Ethernet Gigas de Prevas, ver Figura 4 a continuación.
Figura 4 - Módulos Prevas conectados al módulo NI FlexRIO
LabVIEW FPGA
Los FPGA son programables en campo, lo que ahorra costes de desarrollo y modificación. Antes de FPGAs, la lógica personalizada requería el diseño esquemático que llevó a Register Level Transfer (RTL). RTL, que fue sustituido por Verilog y VHDL. El aumento de la capacidad FPGA requiere un mayor nivel de abstracción. En la última década, la industria ha desarrollado HDL de alto nivel. Esto permite implementar algoritmos más complejos de una manera más oportuna.
National Instruments & # 8217; La plataforma LabVIEW FPGA proporciona un enfoque gráfico para desarrollar la lógica de un FPGA. Los algoritmos financieros complejos se pueden programar en FPGAs sin el conocimiento profundo del diseño digital o de las herramientas complejas de la automatización del diseño electrónico (EDA). LabVIEW es claramente adecuado para la programación FPGA, ya que proporciona una representación intuitiva del paralelismo inherente que FPGAs proporcionan. El uso de un entorno de desarrollo gráfico de alto nivel (ver Figura 5) de LabVIEW FPGA reduce el tiempo de desarrollo sin comprometer las ganancias de rendimiento del uso de un FPGA.
Figura 5 - Diagrama de bloques de muestra de LabVIEW FPGA
Bajo el capó, el módulo LabVIEW FPGA utiliza técnicas de generación de código para sintetizar el entorno de desarrollo gráfico en el hardware FPGA que en última instancia ejecuta las herramientas de síntesis FPGA. Los ciclos de ciclo único (SCTL) en LabVIEW FPGA proporcionan un nivel de determinismo garantizado para ejecutarse dentro de un período de tiempo especificado de al menos 40 MHz. En este trabajo, se utilizó un SCTL que funcionaba a 125 MHz.
El hardware personalizado se puede utilizar para crear rutinas únicas de sincronización y activación, control de ultra alta velocidad, interfaz con protocolos digitales y aplicaciones que requieren alta fiabilidad de hardware y determinismo ajustado. En este artículo, LabVIEW FPGA se utiliza para crear un sistema de hardware basado en el protocolo.
Un broker-dealer está conectado a un intercambio. Los mensajes comerciales entre el intermediario y el intercambio utilizan el formato de protocolo FIX. El corredor-distribuidor envía las órdenes que el intercambio intenta emparejar. Todas las órdenes del broker-dealer están abiertas hasta que una orden que empareja entra en el intercambio. Las órdenes emparejadas se envían de vuelta al broker-dealer como ejecutado. En algún momento, el broker-dealer detecta un evento & # 8221; Resultando en su necesidad de cancelar todas las órdenes abiertas. Se supone que el evento detectado es uno que hará que muchos otros corredores-corredores deseen cancelar sus órdenes abiertas al mismo tiempo, por lo que el tiempo sería de la esencia y aquellos que cancelar primero reducirá sus pérdidas potenciales. Véase la figura 6 a continuación.
Implementación
Esto se implementó utilizando dos computadoras conectadas directamente a través de un cable Ethernet cruzado. Se comunican utilizando FIX 4.2 ejecutándose sobre TCP / IP a 1 Gigabit / segundo. Ambos equipos ejecutan Microsoft Windows XP en CPU Intel x86. Una computadora representa al Broker-Dealer y la otra al Exchange. El Corredor-Comerciante envía a la Bolsa varias órdenes de compra o venta que no se ejecutan. Tras la detección de un disparador, el Broker-Dealer envía mensajes FIX Order Cancel para todos los pedidos abiertos. Vea la Figura 7.
Broker-Dealer Computadora
La computadora Broker-Dealer se compone de una computadora conectada a un chasis NI-PXI-1033 de 5 ranuras PXI con controlador MXI-Express integrado. Se conectan dos tarjetas PXI al chasis PXI; Una tarjeta FPIO FlexRIO PXI-7953 con una FPGA Xilinx Virtex-5 LX85 y una tarjeta NIQ PXI-6070E DAQ. La tarjeta FlexRIO tiene un adaptador Gigabit Ethernet de Prevas Mimas que tiene dos conectores RJ-45. El FlexRIO y Prevas Mimas adaptador se combinan para funcionar como la tarjeta de interfaz de red (NIC) de la computadora Broker-Dealer. Todo el tráfico de red pasa a través de la tarjeta FlexRIO y uno de los puertos del adaptador Gigabit de Preimas Mimas Dual (el otro puerto no se utiliza para esta aplicación).
El adaptador Preimas Mimas tiene un PHY & # 8217; Chip que convierte las señales eléctricas entrantes en un cable RJ-45 a Ethernet Frames y viceversa. Las tramas Ethernet entran en el Xilinx Virtex-5 LX85 FPGA en forma de bytes (U8).
Bajo condiciones normales, la tarjeta FlexRIO FPGA permite que los datos de la trama Ethernet de la capa 2 salgan a través del adaptador Prevas Mimas y pasándolo al bus PXI para que sea accesible por programas que interfieran con los controladores NI RIO.
QuickFIX normalmente se interconecta con las funciones de Winsock que interactúan con Windows & # 8217; Pila TCP / IP de origen cerrado. Al ser fuente cerrada, no se puede interconectar con los controladores RIO y, por tanto, se seleccionó lwip, una pila TCP / IP de código abierto. Todas las llamadas de QuickFIX a Winsock se modificaron para llamar a la pila TCP / IP de lwip, que a su vez se modificó para interactuar con los controladores RIO.
La tarjeta de adquisición de datos NI PXI-6070E se utilizó para recibir y transferir el disparador Cancel Orders. Una de las líneas PXI RTSI se utilizó para establecer una conexión eléctrica directa entre ésta y la tarjeta FlexRIO FPGA. Se conectó un botón externo a una de las entradas digitales de la tarjeta DAQ de forma que cuando se pulsaba, una señal digital sería leída por el FPGA. Esto se lee puramente en hardware sin interacción alguna por el ordenador o el software.
Equipo de intercambio
El equipo de Exchange se compone de otro equipo que ejecuta una versión sin modificar de QuickFIX que se ejecuta en modo de servidor. La interfaz de red se realiza a través del puerto Gigabit Ethernet nativo. Su función es mantener una orden abierta hasta que llegue una coincidencia o se cancele la orden.
Varias órdenes no coincidentes se introducen en el programa QuickFIX del Broker-Dealer. Los envía al equipo de Exchange que los mantiene como órdenes abiertas. El programa QuickFIX del Broker-Dealer mantiene una lista de sus propias órdenes abiertas. Siempre que un aspecto de las órdenes abiertas cambie en el Broker-Dealer, el FPGA recibe una copia de la información de cancelación para cada pedido abierto. A continuación se muestra un ejemplo de FIX 4.2 Order Single (etiqueta 35 = D) mensaje en offset hexadecimal y sólo los caracteres legibles.
A continuación se muestra un ejemplo FIX 4.2 ORDER CANCEL REQUEST (etiqueta 35 = F) mensaje en offset hexadecimal y sólo los caracteres legibles.
Al presionar el botón conectado a la tarjeta PQD de PXI-6070E se genera un disparo Cancelar órdenes, lo que hace que el FPGA genere un mensaje de Cancelación de orden FIX para cada uno de los pedidos abiertos. Los mensajes FIX se inyectan en la sesión TCP viva que ya existe entre las máquinas Broker-Dealer y Exchange. El equipo de Exchange recibe los mensajes FIX Order Cancel, sin darse cuenta de que esos mensajes fueron creados por el FPGA [y no por QuickFIX en el equipo Broker-Dealer], cancela todas las órdenes referenciadas como si el Broker-Dealer le indicara que lo hiciera.
Para todo el tráfico FIX normal, la aplicación QuickFIX maneja la creación de cada mensaje FIX, mientras que la pila TCP / IP de software gestiona la creación de segmentos TCP y paquetes IP. En la situación en la que se ha producido un evento de disparo, el FPGA gestiona todas las tareas de QuickFIX y del software TCP / IP generando los mensajes FIX, los segmentos TCP y los paquetes IP. Cuando la carga útil final se transfiere al PHY, la trama Ethernet y CRC también se calcula mediante el FPGA.
Conclusión
Field Field Programmable Gate Array (FPGA) tecnología ha sido establecida para los datos de mercado y ahora está encontrando aplicaciones como la generación de mensajes comerciales. El volumen de comercio y los aumentos de datos están superando la tecnología de los sistemas comerciales. Las empresas financieras buscan optimizar todos los aspectos del sistema comercial. Hasta hace poco, el software ha sido el foco de las optimizaciones.
La optimización del hardware proporciona el atractivo de crear el sistema comercial más rápido y determinista del mundo. Y es la última frontera de personalización. Esto no es sin costo ya que un sistema completamente optimizado por hardware puede convertirse fácilmente en un juego de suma cero.
El uso de las placas FPGA fuera de estantería y un lenguaje de descripción de hardware de alto nivel (HDL) como LabVIEW FPGA, se puede desarrollar un sistema de comercio acelerado por hardware con riesgos y costos administrados. PXI es una plataforma para soluciones basadas en FPGA que pueden integrar las marcas de tiempo IEEE-1588v2 (2008) desde una fuente de tiempo GPS y mediciones de latencia. Las tarjetas FPX de PXI Express pueden comunicarse eficientemente entre sí [sin la CPU anfitriona] utilizando la transmisión de datos punto a punto para proporcionar sistemas de negociación multi-FPGA.
Las empresas financieras ahora pueden optimizar el software y el hardware de sus sistemas comerciales para proporcionar una mayor diferenciación y aumentar su competitividad.
Acerca de Wall Street FPGA, LLC
Wall Street FPGA, LLC (www. WallStreetFPGA. com) es una empresa de tecnología financiera con sede en la ciudad de Nueva York que ofrece soluciones de análisis y transacciones financieras aceleradas de hardware, de baja latencia y de alto rendimiento. Wall Street FPGA, LLC combina el conocimiento de los mercados de capital y la tecnología disruptiva. Para más información y para programar una demostración, comuníquese con Terry Stratoudakis: terry@WallStreetFPGA. com o +1 (347) 228-7379. Wall Street FPGA, LLC es miembro del FIX Protocol Limited.
El autor
Terry Stratoudakis
Terry Stratoudakis, P. E. Tiene más de doce años de experiencia en automatización. Se especializa en aceleración de hardware mediante FPGAs para métodos de Monte Carlo, matemáticas de matriz compleja / real y concordancia de patrones para uso en diversas industrias. Los proyectos actuales incluyen la aceleración por hardware de los sistemas comerciales, el análisis de datos de mercado y la entrada de pedidos, así como sistemas de medición de baja latencia.
Terry se desempeña como Director Ejecutivo de Wall Street FPGA, LLC. Terry es el cofundador de ALE System Integration, National Instruments Certified Partner. Trabajó en Underwriters Laboratories (UL) diseñando sistemas automatizados para pruebas de seguridad del producto; Los sistemas de interfaz con los sistemas empresariales, así como una amplia gama de equipos. Enseñó la instrumentación como profesor auxiliar adjunto en el New York City College of Technology.
Terry tiene una Maestría en Ciencias y Licenciatura en Ciencias en Ingeniería Eléctrica de la Universidad Politécnica ubicada en Brooklyn, Nueva York (NYU-Poly). Es un ingeniero profesional con licencia en el estado de Nueva York y un arquitecto certificado por LabVIEW de National Instruments y un instructor profesional certificado. Terry es miembro de la IEEE Long Island Consultants Network y Instrumentación & amp; Sociedad de Medición. Es miembro del Comité Técnico Global (GTC), Grupo de Trabajo de Negociación de Alta Frecuencia, y Grupo de Trabajo de Latencia Interpartidista del FIX Protocol Limited (FPL).
FPGA y Hardware Accelerated Trading, Part One - Quién, qué, dónde y por qué?
Lunes, 25 de junio de 2012 01:42:00 GMT
Esta es la primera parte de una serie de seis partes de Mike O'Hara. Mirando el uso de FPGAs y otros tipos de aceleración de hardware en el ecosistema de comercio financiero.
Aunque la tecnología FPGA (Field Programmable Gate Array) ha existido desde mediados de la década de 1980, es sólo en los últimos dos o tres años que se ha adoptado en cualquier medida real en los mercados financieros.
Originalmente desarrollado para la defensa y las industrias de telecomunicaciones, FPGAs son básicamente un tipo de chip de computadora que contiene bloques lógicos y las interconexiones que se pueden programar en el campo & rdquo; Utilizando un lenguaje de definición de hardware (como VHDL o Verilog), para realizar una gama de funciones que de otro modo se realizarían en software.
Los participantes en los mercados financieros que son sensibles a la latencia, particularmente las empresas de alta frecuencia de comercio, están interesados en FPGAs por un par de razones. En primer lugar, FPGAs puede acelerar algunos procesos por al menos un orden de magnitud frente a software que se ejecuta en una CPU de propósito general. En segundo lugar, la latencia determinista que proporciona tal hardware prácticamente elimina los niveles de desviación estándar o jitter que normalmente experimentaría en el mundo del software.
Nick Ciarleglio, Ingeniero de Sistemas y Gerente de Producto de FSI en Arista Networks, explica que no son sólo las empresas propietarias de HFT las que están investigando y adoptando esta tecnología.
& Ldquo; Si rompe el mercado en cuatro niveles de participantes: los usuarios finales; Corredores de bolsa o proveedores de DMA; intercambios; Y los proveedores de datos de mercado, cada uno de esos tipos de entidades tiene diferentes aplicaciones que pueden acelerar y potencialmente integrar en hardware ", afirma.
"Hay quizá 25-30 firmas de usuarios finales en todo el mundo que son totalmente capaces de desarrollar aplicaciones completas de alto rendimiento en FPGA hoy", dice Ciarleglio. & Ldquo; Esas firmas tienen individuos en el personal que conocen Verilog o VHDL, tienen sus propios entornos de dev / test / qa y pueden implementar las aplicaciones en el mercado real y tener éxito. Pero esas empresas también comprimen el mercado. A medida que averiguar cómo hacer la normalización de datos de mercado en menos de un microsegundo o enviar una transacción TCP en un par de cientos de nanosegundos, esencialmente el mercado entero se desplaza & rdquo ;.
Ciarleglio cree que el mercado está pasando de esta fase de vanguardia a una mayor adopción de las tecnologías FPGA integradas.
& Ldquo; El segundo nivel puede no ser tan inteligente, pero sin duda buscará proveedores e integradores para ayudarles a salir & rdquo ;, afirma. Las empresas de vanguardia gastarán tiempo y recursos en esto para ganar unos cientos de nanosegundos de ventaja, mientras que los primeros adoptantes son las personas que sólo necesitan estar en ese nivel superior de un mercado en particular para mantenerse competitivas. Cuando se dan cuenta de que ya no son competitivos, tienen que moverse. Probablemente hay más cien empresas de usuarios finales en todo el mundo que me agruparían en esa categoría, incluidos los grupos dentro de los bancos de inversión con aplicaciones ligeramente más amplias.
"Ahora mismo estamos entre las fases uno y dos", cree Ciarleglio. "Construir aplicaciones completas en FPGA sigue siendo bastante nuevo, muchas de las aplicaciones en uso todavía requieren una cantidad decente de CPU. Las empresas que han desarrollado aplicaciones completamente independientes que se ejecutan en FPGA todavía son raras. Pero dos o tres años más adelante cuando se convierte en mucho más mainstream, cuando hay mucho más IP construido, cuando hay muchos más proveedores de soluciones con bloques muy bien definidos y soluciones llave en mano, en ese momento verá este tipo de hardware Ir mainstream en el mercado & rdquo ;.
Está claro que el mercado está cambiando actualmente de dos maneras. La primera es que cualquier empresa de usuario final que quiera ser un juego puramente de velocidad debe estar en las mismas latencias que las empresas de vanguardia. El segundo es que los primeros adoptantes que dependen de sus intermediarios están empezando a empujarlos hacia tener los mismos niveles de latencia. Esto significa que ahora hay varios puntos en el mercado, incluyendo los corredores de bolsa y los intercambios, mirando seriamente cómo se puede utilizar esta tecnología sólo para mantenerse competitivo.
A pesar de los obvios beneficios de las FPGAs, sin embargo, muchas empresas siguen siendo cautelosas acerca de adoptarlas. Como señala Ciarleglio, las tecnologías integradas de hardware - en cualquier tipo de comercio o aplicación de datos de mercado - siguen siendo relativamente nuevas. Y aunque han sido probados viables por terceros vendedores y por las empresas que ya los utilizan en la producción, gran parte del verdadero desarrollo de aplicaciones, en el que cada vez más aplicaciones se incrustan en el dispositivo de hardware en lugar de depender de la CPU, todavía se considera & ldquo Borde de sangrado & rdquo; por mucho.
Entonces, cómo son estos primeros adoptadores en realidad utilizando FPGAs? Qué tipo de cosas están haciendo con ellos y dónde encajan en el comercio & ldquo; ecosistema & rdquo ;?
La primera área es alrededor de conectividad de baja latencia para datos entrantes y salientes, donde todas las conexiones de red son posibles candidatos para una tarjeta de interfaz de red (NIC) habilitada para FPGA para dar ese impulso de latencia adicional. Tal tarjeta podría estar usando el FPGA para ejecutar un motor de descarga de TCP por ejemplo, que puede liberar ciclos de CPU y reducir el tráfico de PCI.
Otras áreas en las que los FPGA están empezando a tener un impacto significativo son la manipulación de los datos de mercado, los controles de riesgo antes del comercio y otros procesos en los que las empresas deben ser capaces de tomar datos y luego ejecutar cálculos o simulaciones en línea a alta velocidad. Las aplicaciones están aumentando a medida que las personas se sienten más cómodas con la tecnología y las empresas buscan una aceleración pura de las tareas que previamente habrían hecho utilizando CPUs o GPUs de Propósito General.
There are a growing number of vendors offering off-the-shelf and tailor-made solutions for performing such tasks. Firms such as NovaSparks and Exegy provide FPGA-based appliances that parse and filter market data for delivery into trading applications at high speed with highly deterministic low latency. Others, such as Fixnetix and GATELab, offer FPGA-based solutions that perform a range of pre-trade risk checks on a firm’s order flow at sub-microsecond speeds.
Despite the fact that such vendor solutions are now available on the market, many end-user firms remain committed to an internal development approach when working with FPGAs. Brian Durwood, CEO of Impulse Accelerated Technologies, a vendor specialising in software-to-hardware technologies that enable FPGA development, works with such firms.
“The big firms are shopping with huge checkbooks and they’re buying appliances. They’re buying a box where someone else is doing the coding. We’re more the kind of people who like to understand where all the bits are so we can tinker with them and tune them. So most of our clients are classic early adopters, the 20-200 person trading firms who like to do things themselves”, says Durwood.
What sort of applications are these high-tech trading firms developing in FPGA?
“Most of them are doing some variation of ticker plant”, responds Durwood. “Some are just looking at a handful of stocks and absolutely hot-rodding those, others are trying to convert a 150-deep book into automated trading. It’s still at the immature phase where different people are trying different approaches and taking risks.”
Firms following an in-house development route do not have to do everything themselves however, because they can use existing IP blocks for specific purposes, as Durwood explains.
“One of the things that comes out of this methodology is that firms end up putting together their own library of known good modules, so they might collect a range of different component blocks. If you’re building your own solution, you end up acquiring as many of these good code blocks as you can from people who know they work already, which means you don’t have to focus on that, you can focus your energies where you need to. This gives you a pretty powerful approach”, he says.
Taking care of tasks like parsing, filtering, normalisation and session management is where FPGAs can add a real advantage, so market data delivery and distribution is ripe for this technology. Working with order and trade data brings additional complexities in development and testing however, because the order can go through so many state transitions.
Despite such complexities, FPGAs are now being used in FIX engines, rules engines, and even full-blown execution management systems. Ferdinando La Posta, Co-Founder of trading solutions vendor GATELab, explains his firm’s approach.
“We decided to implement a full FIX 4.4 engine, with pre-trade risk checks and market transactional gateway (on top of the TOE – TCP Offload Engine) in the hardware, in order to provide a wide range of customers with immediate connection”, he says. “We didn’t focus on market data in the first stage, because essentially many pre-trade risk checks are not bound to price depth, but to last trade price and level 1, which we feed through a PCIe bus into the FPGA in order to implement the risk controls. We can also use other third party vendors that already provide a market data gateway on FPGA, to cross the incoming market data through a PCIe into our board”.
But FPGAs are not necessarily the answer to everything, as Simon Garland, Chief Strategist at Kx Systems, a firm that provides tools for processing real-time and historical data, explains.
“Use of FPGAs has started to go mainstream for things like data compression and feed handling, but that’s stuff that just works, it works well and it’s really fast. So you can buy it, it’s a black box and the fact that it’s running on FPGAs is completely irrelevant. You’re assuming that somebody else has programmed it, debugged it and it’s rock solid and away you go”, he says.
But when it comes to actually working with FPGA technology internally, Garland sounds a note of caution.
“The technology is certainly being used by some of the very sophisticated high speed trading firms. They’re using FPGAs extensively and in very clever ways. But they’re exactly the people who can get and keep the very best programmers. The view that “everybody else is doing it so we should be doing it too” is incorrect, it’s just the firms at the very high end who have staff on hand capable of ‘pulling out the soldering iron’, metaphorically speaking. And that just doesn’t translate down”, he warns.
In conclusion, it seems that although FPGAs can offer some real advantages in a wide range of areas, the technology comes with a number of challenges.
Part two of this series. published at www. thetradingmesh. com/pg/fpga looks in more detail at the various different architectural approaches to implementing FPGAs.
FPGA, The Next Wave of HFT Technology?
Thu, 30 Jun 2011 07:19:00 GMT
At a trade conference recently, the platform asked for a straw poll of those people developing solutions using FPGA (Field Programmable Gate Arrays), about a third of the room put their hands up. This is a new technology to the financial services industry and is beginning to be adopted into the HFT stack and I thought it was worth finding out what the buzz is all about.
Gate arrays have in fact been around since the beginning of the digital revolution and consist of rows of logic gates, AND, XOR and the like. FPGAs are programmable from their ability to wire up the gates to perform complex logical operations; the field part comes about because they are customer programmable, after manufacture. Comparing them to the CPUs of Intel or AMD is like comparing an insect brain to a human brain. The brain of a bee has to take a small number of inputs and take a decision; is it warm, is it light, is it raining; then leave the hive to forage for nectar. In terms of logic, if A AND B, NOT C, answer X. However, bees don’t have art or culture which those blessed with more sophisticated brains can achieve, but we recognise bees achieve remarkable feats of hive construction, navigation and honey production with very little brain power. FPGAs have very little digital brain power but smart people can do remarkable things with them.
Using a device to do a relatively simple task consistently, without interrupts or other distractions, has some attraction for those who are trading 1000s of times a second for two reasons, jitter and reliability. The jitter issue is caused by our complex CPUs running generic operating systems that have complex schedulers to ensure that keyboards get read, monitors get refreshed, network packets get acknowledged and yes, the trading algorithm gets run. The FPGA runs just one programme, the one that is literally wired into the array. The level of sophistication of the programme that can be deployed depends on the number of gates in a row, the number of rows and the use of memory blocks or full random access memory (RAM). Time and effort also have a big impact on the sophistication of the FPGA programme. A simple threshold trading programme that monitors the price and a stock and pulls a trigger when a particular value is reached, can be quite easy to deliver in a month or two. Something that performs an execution risk calculation in the trade flow would take a couple of man years to work to implement. Hobby projects to get the kids interested in gate arrays can be found here. As I said, FPGAs have been around for a long time and are often used in education as an introduction to electronics.
Why FPGA in HFT?
This venerable technology has one advantage–it is fast! It takes one clock cycle to do the calculation. Taking a risk calculation that takes 30 microseconds on a general CPU down to 3 microseconds is quite feasible, and in the world of sub millisecond trading, that matters. You could think of it as a microsecond budget, the investment decision is reduced to a simple spreadsheet exercise. Adding to the challenge is the regulatory influence post “flash crash” that requires firms to undertake a risk calculation in the trade flow.
Getting close to the wire
Combining FPGA with network cards allows programs to be run without the need to send data across the computer to the CPUS. The programming space on the array is limited, so the programs can’t be too big, but the advantage of a simple threshold trigger is obvious, particularly when considering the “circuit breaker” design concept that has evolved post “flash crash.” & Ldquo; If the trading goes out of bounds stop trading, ” is the kind of algorithm that’s a good example of the application of FPGAs in HFT.
Getting close to ASICs
The more sophisticated the program, the closer the design comes to the world of signal processing and a whole slew of technologies that would not normally be considered in the finance sector. The advantage of the programmable array is that it is easy to prototype and a change is no more complicated than a firmware update. The next technological step would be to design an ASIC (Application Specific Integrated Circuit) to do the job. The hitch is the cost to produce the first ASIC–a million dollars, the second costs hardly anything, but the ROI is more palatable for a FPGA. I can imagine some of the software houses that have developed the market data and trade execution applications looking to FPGA technology as nothing more complicated than a different deployment platform and a stepping stone to ASIC design. However, moving into the FPGA will take software designers into a new and possibly uncomfortable place, electronics engineering and signal processing.
So what does it cost?
Where to begin?
A good start is to look at the existing HFT infrastructure, is there an optimisation program that would take the firm just ahead? In the trading game there are no prizes for world records, being just ahead of the competition is all that is required to trade successfully. Looking into the network, replacing the standard network switches and cards with low latency devices is a great start. Tuning the kernel and BIOS settings of the server will reduce jitter. Switching off power save mode of the server may not be green but will ensure the CPUs are fully spun up and ready to trade. Check that code for latency traps and replace all logging and journal devices with IO optimised solid state storage. Those housekeeping tasks can be done in parallel with a development cycle that includes FPGA.
These four leading FPGA manufacturers each have high performance and low cost solutions–Actel’s igloo range is also low power, ideal for battery powered mobile devices:
The gate array itself is implemented on a PCB (printed circuit board) and there are numerous manufactures who also provide development software and starter kits. The following site lists a board range:
…but isn’t exhaustive and may not be up to date. For instance, Fiberblaze isn’t listed, but they have been advertising at HFT events a card with two 10GE Ethernet ports and the Virtix 5 FPGA from Xilinx.
Once you have purchased the board, you will need to download and install the FPGA design software onto your workstation. Enter a design, compile it, download to the board and watch it run. Starter kits begin at $100, but I chose the Diligent Spartan 3E Starter board ($189) because it had Ethernet connectivity and was fully compatible with the Xilinx free WebPack software.
By completing a couple of tutorials (there are plenty online ), you will build your confidence and be ready for the steep learning curve, Hardware Definition Language (HDL). HDL comes in two flavours. & Ldquo; VHDL ”, which is strongly typed like PASCAL and “ Verlilog ”, weakly typed like ‘C’ both cover the three main subjects.
Ports and signal declaration
Assignments and processes
Structural description
To fully master the language and provide the level of sophistication and confidence to deploy into production will take months of learning, testing and discussion with peers.
Will FPGA ever catch on in HFT ?
There is a niche for this technology but it is not capable of taking the whole complex HFT stack and putting it on an array. Based on the straw poll, it is drawing attention and has its place in medium to large HFT design shops. Some software houses are placing bets on the need for in-flow risk calculation such as Ullink’s Iris+ and Fixnetix’s iX-ecute. which provide filtering based on user defined parameters and prevent execution risk related orders. I suspect that more generally FPGA will be hidden to most users and described as “ hardware circuit breakers ” or “ inline filtering ” wrapped in a trader friendly management interface that sets threshold parameters and generates alerts and reports that completely obscure the underlying gate array.
I doubt that many folks will implement FPGAs themselves, but the technology will be used extensively by the sell-side and exchanges to satisfy post “flash crash” filtering concerns. In time I expect these filters will be implemented in ASICs by a relatively few designers who will sell them to low latency network card producers, just as firewall software, also sophisticated filtering, is now being implemented as ASICs for the low latency market.
David Quarrell has more than two decades’ experience implementing technology solutions, 15 of which have been in service to the financial sector. Prior to joining Agilysys Technology Solutions in the United Kingdom as senior solutions architect and technology consultant, he was principal engineer and lead consultant for Sun Microsystems, London. Having been educated at Coventry University in Electronic Engineering, David’s transition to computer science was a natural progression. Certification as a Java SCEA Solution Architect further enhanced his industry standing, leading to participation in large-scale benchmarking and performance-tuning exercises for Sun’s largest IT projects.
David has played a major role in the automation of transaction, settlement and electronic exchanges, where he has the dual distinctions of configuring the systems that replaced the LIFFE open outcry market and building the surveillance systems for the London Stock Exchange. His ability to exploit technology and understand the non-functional requirements of a business has been key to operational excellence and success. Goal-driven and a creative problem solver, he addresses complex challenges and delivers results against demanding timescales, taking into account commercial, operational, strategic and technical requirements. Of late, David’s expertise in low-latency networking, performance and security has been in particular demand, having been inspired by the prominence of high-frequency trading, or “trading where speed matters,” in the U. S. and European markets. With today’s need for split-second execution, HFT continues to gain market share of daily trades.
In his spare time, David is a die-hard Welsh rugby fan, and also enjoys when warm weather arrives so that he may spend days hill walking in Scotland and indulging his passion for sailing. He has skippered a 10m (33-ft) sailing yacht for a number of years and often provides needed support to host regattas in the sport he enjoys so much. He shares his views on his blog: www. AgilysysFinancialITBlog. com
If you would like to reach David, please contact Anita O’Malley at +1 732.692.1934
in-FPGA™ Trading Systems reduce trade latency
First Published 16th September 2010
Trade response latency reduced to under two microseconds by combining NASDAQ ITCH and OUCH into a single FPGA
David Buechner, Vice President, Impulse: "Impulse tools are in use at major financial firms and hedge funds where they have equipped mathematicians and algorithm developers to dramatically improve latency."
in-FPGA™ Trading Systems (www. infpga. com) have announced a hardware-accelerated automated trading reference design that performs NASDAQ ITCH feed handling and outbound OUCH order entry running on 10Gb Ethernet, with under two microseconds of latency. The system is to be shown at the 2010 High Performance Computing Financial Markets show and conference, booth 424, in New York City on September 20th, 2010.
"It's all about trading latency," said Cameron Elliott, chief designer of the in-FPGA system. "FPGA-based trading can respond to market data an order of magnitude faster than Linux based servers, and 2-5 times faster than hybrid CPU/FPGA systems. Much of the gain comes from simplifying the hardware path, consolidating processing on one hardware chip and eliminating high latency paths. What makes this most exciting for traders is that they can implement their trade trigger logic in C-language using Impulse C, rather than having to learn hardware description languages such as Verilog or VHDL, or having to pass their models off to hardware engineers for translation."
Impulse tools are in use at major financial firms and hedge funds where they have equipped mathematicians and algorithm developers to dramatically improve latency. "in-FPGA's trading system and reference application enables software developers to use hardware acceleration for 10Gb Ethernet processing," said David Buechner, Vice President of Impulse. "This offers a disruptive technology for trading firms who want to be the first in the queue with their trades".
Click Here To Apply Now!
FPGA Engineer
Join an existing team to research, design and develop custom hardware for trading. Responsibilities include architecting and coding FPGA designs in a hardware description language, producing design documents, performing timing analysis and floor planning, and validating and analyzing designs for errors and efficiency. The ideal candidate is able to perform independently as well as part of a team, show critical thinking and be humble in their approach to problem solving. This position will require excellent communication skills as FPGA engineers interact with both their immediate team and traders alike.
Calificaciones:
4+ years experience in FPGA design.
Experience with the full FPGA design life cycle and ISE design tool flow.
Excellent knowledge of Verilog.
Experience in FPGA design for network applications.
Proficiency with VHDL and System Verilog.
Proficiency with a full simulator like ModelSim.
Familiarity with Secure IP and experience evaluating vendor IP cores a plus.
Familiarity with the financial services industry.
The ability to transition between hardware languages and abstraction layers on a need-basis and demonstrate excellence throughout.
Excellent communication skills and a work ethic that thrives both independently and within a team.
Bachelor’s degree in Electrical or Computer Engineering or related field from a 4-year university.
Strong GPA (3.5 or higher).
Jobs, Chicago, Illinois, FPGA Engineer, ISE Design, Verilog, VHDL
Argon Design an FPGA Based HFT Platform
In a press release today Argon Design from Cambridge in the UK have announced what they describe as:
A high performance trading system using a heterogeneous mix of technologies to minimize trading latency.
The mix of technologies is provided by their use of the Arista Networks 7124FX application switch which:
Includes an Altera FPGA with hardware-level access to 8 of its 24 10Gb Ethernet ports and an x86 domain based on Intel’s Xeon processors.
According to project's "case study " on the Argon web site, they have:
Developed a prototype system where market data feed analysis and fast-path trade execution is performed directly on the switch under rules determined in parallel on “traditional” processors.
Direct FPGA access allows data feeds to be parsed and analysed as close as possible to the feed handlers. Similarly the heterogeneous processor mix in the switch enables other related functions to be undertaken and orders executed back onto the wire. Deployed in CoLo at the trading venues as part of the day to day mix of technology found in the racks today – this technology can take the design and performance of trading functionality to a higher level of performance.
Argon have quantified this "higher level of performance" by:
Using the test harness developed for the Finteligent Trading Community program, the latency measured was reduced by a factor of 25 over pure x86 designs tested by the program. For the measured leg in the test harness, latency was reduced from a previous best of 4,600ns to 176ns for algorithmically generated trades executed to the simulated market.
The enhancement in performance was achieved by providing a fast-path where trades are executed directly by the FPGA under the control of trigger rules processed by the x86 based functions. The latency is reduced further by two additional techniques in the FPGA – inline parsing and pre-emption.
As market data enters the switch, the Ethernet frame is parsed serially as bits arrive allowing partial information to be extracted and matched before the whole frame has been received. Then, instead of waiting until the end of a potential triggering input packet, pre-emption is used to start sending the overhead part of a response which contains the Ethernet, IP, TCP and FIX headers. This allows completion of an outgoing order almost immediately after the end of the triggering market feed packet. The overall effect is a dramatic reduction in latency to close to the minimum that is theoretically possible.
Here's a video Argon have produced showing their prototype system's performance being assessed using the Finteligent test harness:
If you listen carefully you will note that Argon are claiming that:
The switch makes market orders based on market information with end of packet to end of packet response times of about 170 ns.
According to that press release once again, Arista's Regional Director for Financial Services Paul Goodridge commented that:
This is exactly the kind of practical application we are looking to see from the market with our 7124FX product and we are delighted and impressed with Argon Design’s commitment and approach. This joint venture exemplifies Arista’s innovation and further highlights the real value of Arista’s EOS (Extensible Operating System) and its ability to take programmability to the Ethernet switching market.
I've now managed to speak to Paul, and I asked him about that programmability. As suggested by the 7124FX datasheet, EOS is essentially off the shelf x86 Fedora 14 Linux, but a good knowledge of Verilog will come in handy if you find you need to program the FPGA itself. When I asked about development systems Paul suggested a good first step would be to get hold of an Altera Stratix III or IV Development Kit, which are more readily available and also an awful lot cheaper than a 7124FX! In conclusion I asked Paul if there was anything he'd like to add to what he'd said in the Argon press release. He stressed:
Arista's focus on the empowerment of our customers, and the deterministic performance of our switches.
It seems that with a modicum of additional programming Arista's customers will soon be empowered to start deterministic high frequency trading at close to the speed of light! The only drawback is, of course, that the price of this sort of kit is fairly astronomical too.
[Update - Argon Design have kindly provided us with this white paper for you to read at your leisure]
enlaces rápidos
Field Programmable Gate Array (FPGA)
FPGAs are programmable semiconductor devices that are based around a matrix of Configurable Logic Blocks (CLBs) connected through programmable interconnects. As opposed to Application Specific Integrated Circuits (ASICs). where the device is custom built for the particular design, FPGAs can be programmed to the desired application or functionality requirements. Although One-Time Programmable (OTP) FPGAs are available, the dominant type are SRAM-based which can be reprogrammed as the design evolves.
FPGA Block Structure
Common FPGA Features
FPGAs have evolved far beyond the basic capabilities present in their predecessors, and incorporate hard (ASIC type) blocks of commonly used functionality such as RAM, clock management, and DSP. The following are the basic components in an FPGA:.
Comments
Post a Comment