8/6/15

Redes en un chip

Mientras truena y llueve desde hace horas (de hecho hay alerta de tornado no muy lejos de aquí) pensaba sobre qué podría escribir hoy. He estado trabajando todo el domingo, aunque a medio gas, y no me apetecía pensar mucho... así que he decidido que hablaría muy por encima y muy "modo abuelita" sobre el tema en el cual se encuadra mi tesis.

La idea es pensar poco y escribir mucho, así que... que empiece la verborrea.

Recordaréis, de aventuras pasadas y explicaciones varias sobre antenitas, que acabé mi tesis de master y empecé a andar en mi camino doctoral buscando entornos donde pudiera hacer falta tener antenas pequeñas y montar redes pequeñas. 

Una opción era investigar en el campo de las redes de nano-sensores, donde los sensores tan pequeños como una mota de polvo y donde, por lo tanto, no cabrían antenas convencionales. Otro campo relacionado es el Internet de las nano-cosas, que básicamente es extender el Internet de las Cosas que está tan de moda (a grosso modo, conectar aparatejos como la aspiradora, el coche, la parada del autobús a Internet) a un mundo aún más pequeño. Pero en realidad queríamos romper un poco con esta dinámica de cosas propuestas y ya investigadas desde Atlanta, y buscar nuestro propio camino. Y ahí es donde entraron las redes en un chip.


Esta es una área que lleva años investigándose, desde que los procesadores (que son el núcleo esencial de todos los móviles, ordenadores, videoconsolas) pasaron de albergar una unidad de proceso a albergar varias. No es mi objetivo parar el chorreo verbal para explicar lo que esto significa, así que por el momento debería bastar con un par de frases: básicamente, llegó un momento en que hacer una unidad de cálculo que fuera capaz de hacer muchas operaciones por segundo no era práctico desde el punto de vista de la energía requerida para hacerla funcionar, y hubo que partir el trabajo entre varias unidades de proceso menos potentes pero que pudieran coordinarse entre ellas para hacer el trabajo tan rápido como un procesador más potente. Tendréis que creerme si os digo que al hacer este cambio, se pudo seguir mejorando en velocidad sin comprometer la energía requerida para aumentar dicha velocidad.

La tendencia durante los últimos años ha sido seguir por este camino de "divide y vencerás" y seguir haciendo procesadores que partan el trabajo cada vez en unidades más pequeñas y lo repartan entre varias unidades de proceso sencillas para que hagan el trabajo en paralelo. Lo que eso implica es que cada vez tenemos más unidades de proceso que hay que coordinar y comunicar para que todas las unidades de proceso vayan a una. Y para que la comunicación entre estos elementos (que están todos integrados dentro de un mismo chip) sea rápida y eficiente, necesitaremos una red que los conecte.

Llegados a este punto, es lícito pensar que meter una red dentro de un chip es algo difícilmente imaginable y que hacer redes ahí dentro tiene que ser algo brutalmente complicado. Y lo es desde el punto de vista técnico, en el sentido que poner los componentes necesarios para las redes requiere una precisión nanométrica y mucha ingeniería. Pero una vez aprendes que hay gente que tiene la tecnología para hacerlo, te abstraes de ello y te pones a pensar en redes en un chip como un conjunto de carreteras, autopistas y aeropuertos que hay que diseñar para dar el servicio que los habitantes ficticios de un chip necesitan.

No os penséis que estoy muy loco, ya que al final las "redes en un chip" se define como la aplicación de métodos de teoría de redes a comunicaciones dentro de un chip. Y no os penséis que en las grandes ciudades las calles están puestas porque sí, el transporte público está para hacer bonito o las circunvalaciones (aunque hechas con el culo, como en Barcelona) son obra del demonio. Nada más lejos de la realidad: este artículo sobre redes en un chip tomó como referencia como están montadas las carreteras de acceso en Sejong, Corea del sur. 


Pensad ahora en un procesador de estos como en un barrio de una gran ciudad, como será l'Eixample en Barcelona o la isla de Manhattan en Nueva York. Los procesadores son como bloques de edificios, y usas el espacio entre ellos para comunicar estos bloques de edificios. La gente que trabaja en los edificios necesita comunicarse físicamente y asumiremos que no pueden simplemente "llamarse por teléfono".

Pues bien, los primeros procesadores tenían pocos bloques que comunicar y les bastó con lo que entonces se llamó BUS (que lo trajeron del latín omnibus, "para todos") en lo que en realidad se podría catalogar como una avenida muy larga de un solo carril, por donde sólo puede conducir a la vez un tipo con un megáfono. Cuando un procesador quería comunicarse con los demás, el tío del megáfono va comentándolo a diestro y siniestro.  Una vez se ha enterado todo el mundo, el siguiente que quiera transmite su mensaje. Así, todo el mundo se entera de todo, pero sólo un mensaje a la vez. 


Es fácil ver que esta manera de comunicar es rápida y todo el mundo está al corriente de todo, pero no permite demasiado volumen de comunicación. Ni poniendo más carriles eso se solucionaría. Así que cuando la ciudad creció en número de procesadores, hubo que buscar una manera más efectiva de comunicar. Generalmente, se consideró poner los procesadores en cuadrícula y montar una especie de ciudad con calles de doble sentido, semáforos en todas las intersecciones, y en donde los mensajeros tuvieran su coche privado. Para evitar confusiones, no se usarían megáfonos y se intentaría transmitir los mensajes de uno a uno. Si hacía falta enviar un mensaje a todos, el mensajero tendría que pasar edificio por edificio o se mandaría un ejército de mensajeros cada uno con su vehículo privado.


Los mensajeros pueden tomar varios caminos para llegar al destino, cosa que ayuda a que no se formen atascos. Aun así, puede ser inevitable que se formen si todo el mundo quiere comunicarse con el mismo procesador (o grupo de procesadores), o si necesitas comunicar cosas a mucha gente a la vez y a menudo. Esos son problemas que se han intentado solucionar de muchas maneras y que le dan gracia a este área de investigación. Se puede, por ejemplo, poner calles en diagonal o carriles especiales que no te obliguen a parar en cada semáforo. Pero siempre acabas rigiéndote por las normas de un vehículo por mensajero y nada de usar megáfonos. 

Cuando la ciudad se hace muy grande y no puedes seguir con calles convencionales, necesitas usar nuevas tecnologías de comunicación para hacer "trampas" y poder complementar la comunicación usando calles y semáforos que ya tienes. Hay tecnologías (nanofotónica) que permiten hacer una especie de metro, que va por debajo (o por encima) de las calles, y que hace un recorrido fijo y en bucle. Va bastante más rápido que los coches por la calle, admite bastantes más mensajeros, y en algunos casos te permite dejar el mensaje sin bajarte en cada parada.


Asunto arreglado pues, ¿no? Hombre, sí y no. El tema está en que construir el metro es caro. No sale muy a cuenta poner una parada de metro en cada uno de los edificios, ni está claro que se pueda generar energía como para mantener todas las línias de metro que haría falta. Por lo tanto, no es la definitiva, y pueden buscarse otras alternativas o complementos.

Y aquí es donde entramos nosotros. La trampa que nosotros hacemos es hacer una red complementaria sin cables; ui, perdón, sin calles. Sería como poner, en un universo paralelo donde los zepelines aún existen (¿Fringe, alguien?), una estación donde pueda aterrizar y despegar uno en cada edificio. Tendríamos muy pocos zepelines, y cada uno de ellos iría bastante lento, pero la ventaja es que tendría un cartel luminoso donde imprimiría los mensajes que cada edificio le entrega, de manera que el resto de edificios podría verlo al mismo tiempo. No interferiría con los coches ni con el metro, y sería una manera de comunicar uno con todos.


Bueno, me acabo de dar cuenta de que acabo de explicar las investigaciones que me dan de comer con los términos "hombre con megáfono", "cruces con semáforos", "el metro es caro", y "zepelines con cartel luminoso". Casi que es mejor que me vaya a dormir... 

Igual un día os debería explicar por qué queremos tener zepelines. Eso será, por supuesto, si consigo encontrar la metáfora adecuada.

Sergi


4 comentarios:

  1. jejejejejeje ahora cuando me pregunte la gente "qué hace tu novio" les diré que se pasea por la ciudad con un megáfono!! ;)

    nada más ver la foto, he pensado en fringe!!!!! grande ;)

    ResponderEliminar
  2. Molt bo el símil! ¿Y porqué van lentos los zepelines?

    ResponderEliminar
    Respuestas
    1. Joan, com bé sabràs, més que anar lents, el problema és que el control aeri dels zepelins és crític. Per evitar colisions, has d'assegurar-te que només hi ha un (o pocs zepelins) volant a la vegada. A més, els edificis (processadors) no són massa grans i no són capaços de donar cabuda i controlar-ne gaires, de zepelins.

      Per tant, tindràs més volum de trànsit anant en vehicle privat o en metro que en zepelin. Però això no treu que el zepelin sigui convenient per donar missatges a tothom a la vegada!

      Eliminar
  3. Pues vaya, un poco paradójico eso de los "nanozepelines" uauuu!!

    ResponderEliminar