martes, 12 de enero de 2010

Minimalismo y CRAY-I

La SDR no sería posible sin potentes máquinas de cálculo. Varios millones de multiplicaciones por segundo de números de con una decena de cifras es una de las tareas de una SDR típica.

Aunque nos hemos acostumbrado a verlo como algo normal, y a disponer de capacidades de cálculo enormes en nuestro bolsillo, no siempre fue así.

De hecho, hace algo más de 30 años alguien diseñó una máquina revolucionaria, capaz de hacer una cantidad de cálculos científicos de alta precisión capz de dejar en ridículo a casi todos los ordenadores de la época. El Cray-1.
Hace poco localicé de forma casi casual el manual de servicio del Cray-1. Tras unos breves segundos estaba en mi poder (algo también difícil de intuir hace 30 años) y comencé a leerlo.
Ya no recordaba sus características, que tuve ocasión de conocer a través de un número especial de la versión española de la revista Scientific American (Investigación y Ciencia). En aquel número se hablaba de unos tipos de Xerox en Palo Alto que trabajaban (Creo recordar que con un PDP-11) en un terminal en el que se podían tener varios programas visibles gracias a que cada uno estaba en una "ventana", de un microcontrolador que lo tenía todo en una pieza y que se llamaba MCS51, de... bueno, volvamos al tema.
Cuando un microprocesador de la época funcionaba en torno a 1 MHz con palabras de 8 bits en CRAY 1 funcionaba con palabras de 64 bits a más de 80Mhz. Mientras un microprocesador con multiplicador de la época era capaz de multiplicar dos palabras de 8 bits en 1000ns, (uno estándar podía tardar entre 10 y cuatrenta veces este tiempo) el CRAY1 podía multiplicar dos número de coma flotante en 12,5 ns.
Para el cálculo de una multiplicación en coma flotante de 64 bits la relación de tiempos entre un micoprocesador de la serie MCS51 y un CRAY1 era de al menos 100000:1. Es decir, mientras un microprocesador hacía esta operación, el CRAY-1 había hecho 100000.
Este ordenador introdujo muchos conceptos de arquitectura (física y lógica) nuevos y aún en muchos DSP modernos se puede ver su influencia. La tecnología que ha permitido la integración en pequeños espacios ha solventado muchos de los problemas de este diseño original en el que las señales tenían que recorrer distancias "enormes" lo que suponía un problema añadido para el sincronismo de todas ellas y la velocidad de proceso.
Esta maravilla se diseñó con sólo tres tipos de circuitos integrados lógicos y un tipo de circuito de memoria. Puro minimalismo. Como en el proceso digital de señales se buscan algorimos que en base a repetir operaciones muy simples (sumas y productos) se puedan conseguir resultados asombrosos. También puro minimalismo.
Si seguimos el mismo ritmo, dentro de 30 años podremos tener sobre la mesa un SDR capaz de procesar TODO el espectro (O al menos de 0 a 10 GHz) identificando automáticamente los tipos de señales que previamente se le hayan instruido, interpretando las llamadas vocales en busca de un indicativo concreto y pasándonos una llamada concreta a cualquier punto en el que estemos. ¿Acabará esto con la radio? Creo que no, que los avances son inevitables, que hay muchas formas de hacer radio y que todas deben ser bienvenidas, y que la naturaleza impondrá límites y nuevos retos.
Mientras tanto gracias a todos los pioneros que trabajan en ir venciendo esos nuevos retos. Y como aún no conozco a muchos de ellos le daré las gracias a Seymour Cray por abrir nuevos caminos.

lunes, 4 de enero de 2010

AUDIO, USB, ETHERNET, FIREWIRE... ¿HDMI?

Si observamos las radios de aficionado con tecnología SDR nos encontramos en la mayor parte de los casos con una "caja" que convierte las señales de radio a señales en banda base (y a la inversa durante la transmisión) y un ordenador al que llegan (o del que parten) dichas señales.

Dependiendo de la radio que nos ocupe, tendremos diferentes formas de enlace para dichas señales.

La forma más clásica (audio analógico) empleada en los convertidores QDC ha ido dando paso a formas más sofisticadas y potentes. Incluso receptores QDC emplean sus propios convertidores ADC y entregan señales digitales para obtener mejores características.

El paso de información digital al ordenador se hace a través de interfaces clásicos de ordenador. Por ejemplo, SDR-14 y PERSEUS emplean USB, FlexRadio emplea "FireWire" (entre otros) y el ordenador a su vez puede intercambiar la información que recibe o transmite a través de redes ETHERNET (Como lo hace el SDR-IP).

Todos estos interfaces son interfaces clásicos de ordenador, no diseñados especialmente para SDR.

Recientemente, haciendo experimentos, me he visto en la necesidad de conectar un convertidor A/D de alta velocidad (2 canales a 1,5 MSPS) a un DSP. La conexión puede hacerse de dos formas: En serie o en paralelo. Dado que en el DSP me resultaba difícil disponer de las 20 líneas para la conexión paralelo, rápidamente me decidí por la serie.

El convertidor debe ir en una tarjeta separada de la del DSP, conectada mediante cables. Dada la velocidad de datos (1,5M*2*16 bit = 48 Mbits/s) las conexiones deben ser cortas o ir "guiadas" a través de líneas de transmisión.

Aquí es dónde me aparece la pregunta: ¿Cuán lejos se pueden separar ambas tarjetas?. El número de conexiones entre ambas es de tres o cuatro señales de alta velocidad (Según el modo de trabajo), además de un interfaz I2C de baja velocidad para la configuración. Este es un interfaz típico entre un DSP y un convertidor A/D o D/A.

Esto significa montar un mazo de cables con cuatro líneas de transmisión independientes además de (al menos) tres cables extra. ¿Es posible que exista tal cable? ¡Existe!. Un cable HDMI tiene cuatro líneas de transmisión y al menos seis cables extra para señales de baja velocidad.

Por supuesto, no conozco ordenadores que vengan con este interfaz salvo dedicado a su uso original, la salida de vídeo, y no proponga introducir las señales por aquí. Lo que proponga es el empleo de este tipode conexión ya que el cable es estándar y de fácil localización, para separar la conversión del proceso (o al menos de parte del proceso) de señal y ésta del interfaz de usuario que de nuevo puede ser un ordenador.

Un receptor/transceptor SDR típico debe preparar la señal para ser transferida a través de un interfaz estándar (lo que provoca un retraso y no añade información) Tras viajar a través del medio, el ordenador remoto debe recoger la información en el formato que haya llegado, procesarla a través del sistema operativo para identificar su punto de destino y entregarla a la aplicación (nuevo retraso) y finalmente procesar la señal para obtrener una salida, compartiendo el tiempo de proceso con otras tareas (más retraso).

Lo que propongo es definir un "estándar" de interfaz para conectar señales digitales sin procesar a un procesador que las reciba directamente usando cables HDMI para evitar los retrasos y ofrecer toda la capacidad de proceso dedicada. Ya os contaré mis avances en este sentido.

sábado, 2 de enero de 2010

Año nuevo ¿New Life?

Comienza un año nuevecito del todo. Aunque realmente, en el momento de escribir estas llíneas ya se ha gastado el 0,46552% de 2010. ¡Hay que ver cómo pasa el tiempo!.

Casi ha pasado también un año desde que comencé a escribir entradas en este blog, aunque en mi mente parece que fue ayer. Revisando lo realizado en este tiempo he visto que al comenzar tenía muchas ideas y poco tiempo, muchas ganas de reunir información y experiencia, de aprender teoría y aplicarla en la práctica.

Este tiempo me ha servido para conseguir y estudiar abundante información, para ordenar ideas, para conocer nueva gente con inquietudes similares y en menor medida para practicar con ellas.

Sí, parece que fue ayer, pero visto con perspectiva, y a pesar del tiempo dedicado que siempre me parece escaso, el avance ha sido importante.

Ha llegado el momento de dar un nuevo salto. Pretendo que esa visión práctica sobre la que tan poco había avanzado comience a tomar forma. Esto afectará a la forma de presentarlo en internet, eso que los modernos llaman WEB 2.0.

Por supuesto, este blog segirá adelante, con más brío incluso, y se mantendrá el grupo creado el año pasado para el intercambio de información SDR. Pero para este enfoque práctico necesitaba una estructura nueva.

Por ello hay y habrá novedades. La primera es la incorporación de un blog dedicado únicamente a aspectos prácticos. La segunda es la creación de una página WEB que sirva de repositorio para alojar documentos y código asociados. La razón de iniciar una nueva página es simple: Esta nueva página será en inglés, pretendiéndose una mayor apertura al mundo.

Por cierto, para acceder al nuevo blog: http://dspradio.blogspot.com/. Desde aquí se encontrarán los enlaces necesarios para el acceso al resto de recursos.