¿Qué tan viable sería una revolución de la computación analógica?

Estoy tratando de escribir un escenario de ciencia ficción en un futuro no muy lejano en el que el procesamiento de señales analógicas (ondas cerebrales, en este caso) es uno de los puntos principales de la trama y es bastante necesario para explicar algunos de los mecanismos que ocurren en el universo.

La cuestión es que la conversión de analógico a digital es costosa y puede comprimir datos en un conjunto finito de valores más fácil de manejar que, a cambio, haría que se pierda parte de la información en el proceso. Esto es algo que no quiero ya que algunas de las mecánicas requeridas para desarrollar la trama requieren diferencias sutiles en las ondas cerebrales de una persona (en este caso, utilizadas como una especie de clave biométrica). Esta última parte se puede evitar con solo agregar más recursos a una computadora digital normal, pero eso es flojo y es algo que no quiero, ya que una computadora analógica podría permitir detalles e implicaciones más interesantes.

¿Qué tan viable sería para el mundo volver a lo analógico? En el pasado, teníamos computadoras analógicas, pero cambiamos a digitales porque aparentemente no fueron diseñadas teniendo en cuenta la programabilidad (como en el caso de las ASIC) y pronto las digitales se volvieron mejores que las analógicas, por lo que no había razón para tratar de mejorar. una tecnología en desuso. Asimismo, la mayoría de nuestros dispositivos de telecomunicaciones funcionan con ondas y señales analógicas, pero se traducen a digital en algún punto del proceso (es decir, el módem) y pierden todas las propiedades que tiene una señal analógica.

DARPA intentó construir una CPU analógica de "red neuronal celular" (proyecto UPSIDE) para visión artificial en 2012, pero no hay mucha información al respecto. Aparentemente, permite velocidades mucho más rápidas a un menor costo de energía, a expensas de algunos errores de vez en cuando y lo que se ha descrito como que requiere una forma muy diferente de abordar los problemas. El problema es que no dice nada sobre qué tan programable es (que aparentemente lo es, pero no menciona si es Turing completo por sí mismo o no). Además, parece ser una computadora híbrida analógico-digital, que es el concepto que inicialmente pensé en incluir en mi historia.

En el futuro, ¿podríamos ver las siguientes cosas? ¿Qué tan superiores serían a sus contrapartes digitales? ¿Tendrían alguna limitación?

  • CPU puramente analógica (¿podrían ejecutar los programas que ejecutamos hoy? Es decir, ¿seguirían siendo utilizables como una PC?)
  • CPU híbrido analógico-digital, donde se complementan dependiendo del problema que se presente
  • Almacenamiento/RAM analógica. Puede ser digital-analógico o puramente analógico. ¿Podría hacerse persistente, como con los memristores? ¿Cómo funcionaría esto, de todos modos?
  • Telecomunicaciones verdaderamente analógicas. Sé que no son prácticos debido al posible ruido de la señal, pero supongamos que tenemos una solución confiable para compensar eso, como algoritmos capaces de discernir la señal real.
  • ¿CPU holográfica? Tanto digitales como analógicos. Sé que una CPU óptica digital es viable en teoría, pero no tengo idea sobre la analógica; Supongo que podría funcionar con frecuencia de luz/color o algo así.
  • Lenguajes de programación de orientación analógica. ¿Cuán diferentes serían de los lenguajes de programación que usamos hoy en día, si los hay? ¿Podría existir un lenguaje analógico-digital uniforme, donde un compilador inteligente decida si usar la CPU analógica o la CPU digital de una manera similar a lo que ya hacen las optimizaciones del compilador hUMA?

Tenga en cuenta que, si bien se supone que este escenario no es ciencia ficción dura, tampoco es ciencia fantástica. Cualesquiera que sean las respuestas, deberían ser al menos remotamente viables en la realidad y, más específicamente, factibles dentro de los próximos 70 años o menos, aunque la informática siempre podría hacer algunos avances. No debería ser necesaria la suspensión de la incredulidad para disfrutar del entorno, incluso si tuviera algo de conocimiento sobre el campo.

Nota: Supongo que podría trazar algunos paralelismos entre la computación analógica y la computación cuántica, ya que ambas parecen funcionar mejor (o solo) en algoritmos probabilísticos en lugar de deterministas, pero no se trata de cuántica. La tecnología cuántica existe en este entorno, pero es extremadamente rara y solo se usa en algunos contextos específicos, sin mencionar que la mayor parte es extremadamente experimental y el público en general ignora la existencia de prototipos algo viables.


Editar:para ser más específicos, el contexto y los casos de uso de esta tecnología son que la entrada del usuario ahora se maneja a través de una especie de matriz de electrodos implantados en el cerebro, capaces de leer la actividad/los pensamientos del cerebro del usuario. El software que maneja la salida de esta matriz ya intenta transformar la actividad cerebral en una especie de "lenguaje cerebral universal" que oculta las diferencias entre los cerebros humanos, pero aún requiere una señal analógica/de números reales/onda para una precisión fina (no como en libre de errores, pero como descriptivo) y alto rendimiento. Se eligieron las señales analógicas porque el cerebro puede recuperarse fácilmente de pequeños errores y discrepancias y porque es más similar a la forma en que funciona el cerebro humano, pero debido a las limitaciones del sistema de retroalimentación, "retraso".

Esta es también la razón por la cual las computadoras realizan operaciones en su flujo analógico de salida continuo al mismo tiempo, para reducir el tiempo que el usuario espera una respuesta. También es la razón por la que todos los algoritmos que leen directamente de la ola del usuario también son concurrentes: es mejor actualizar la ola tarde que detenerla hasta que se procese la respuesta. Además, debido a la naturaleza del cerebro, un pensamiento o secuencia de pensamientos puede leerse y predecirse a medida que se forma, pero no puede confirmarse hasta que esté completamente formado. Este detalle es extremadamente importante, ya que el dispositivo de la trama se basa en este hecho.

Piense en el intercambio de información entre una computadora y un humano como una conversación regular entre dos humanos (sería más como telepatía, pero por simplicidad, supongamos que solo están hablando).

  1. La computadora solo asiente pacientemente mientras el humano le habla, lo que representa una retroalimentación continua
  2. Humano: Del...
  3. Predicciones informáticas: estoy un 85 % seguro de que Human me preguntará si puedo eliminar algo.
  4. Humano: Eliminar...
  5. La computadora piensa: comando de eliminación confirmado.
  6. Humano: Eliminar archivo...
  7. Predicciones de la computadora: estoy 70% seguro de que Human pedirá eliminar un solo archivo. No estoy seguro en un 30% de que Human me pida que elimine un sistema de archivos completo.
  8. Humano: Eliminar archivo /home/myUser/delt...
  9. La computadora piensa: Se confirmó la eliminación del archivo. 52 archivos que cumplen con los criterios FILEPATH=/home/myUser/delt* detectados.
  10. Humano: Eliminar archivo /home/myUser/delta.bwave
  11. La computadora piensa: ruta de archivo detectada. Solicitud de eliminación del archivo /home/myUser/delta.bwave confirmada. Iniciando la eliminación.
  12. La computadora continúa asintiendo por una fracción de segundo antes de responder
  13. Computadora: archivo eliminado con éxito.

Lo que realmente sucedió aquí es que el usuario solicitó la eliminación de un archivo específico. A medida que el usuario formaba su oración, la computadora ya comenzaba a hacer todos los preparativos necesarios para su ejecución, muy similar a la forma en que conversamos los humanos: podemos identificar una palabra por su lexema antes de que la palabra esté completamente formada, por lo que podemos adivinar más o menos lo que vendrá después, pero no podemos entender completamente las implicaciones completas de esta palabra hasta que escuchamos todos los morfemas (si los hay). Del mismo modo, podemos tratar de adivinar qué palabra puede venir a continuación y tratar de entender lo que la otra persona está tratando de decirnos, pero no estaremos seguros de los detalles hasta que la oración completa esté completa. Del mismo modo, una sola oración puede arrojar algo de luz sobre el contexto del tema en cuestión, etc. Después de completar la solicitud del usuario,

Este punto es extremadamente importante porque los hackers del futuro intentarán engañar a la máquina para que haga otra cosa (o simplemente pararla) sorprendiéndola con algún tipo de "chiste" capaz de sorprenderla. Dado que los programas de seguridad son concurrentes, no pueden comprender realmente el alcance completo de las acciones del usuario hasta que ya es demasiado tarde. Piense en ello como tender una trampa para el rey enemigo en el ajedrez durante varios turnos: la mayoría de los movimientos "ilógicos" realizados anteriormente comienzan a tener sentido en el momento en que matan a su rey. El párrafo que hablaba de grullas en realidad hablaba de pájaros y no de cajas, pero la computadora nunca podría haberlo visto venir, ya que opera principalmente en oraciones y no en contextos tan grandes como un párrafo o un texto pequeño; en general,

Para identificar lo que el usuario está tratando de decir, la CPU moderna incorpora una red neuronal que permite que el sistema operativo reconozca retroactivamente el sentido de las palabras después de escuchar una cadena de letras. La mayoría de las veces, esto se abstrae de los programas de la zona del usuario mediante el uso de bibliotecas y API, aunque pueden obtener acceso al wavestream dependiendo de sus permisos.

El sistema de "autenticación biométrica" ​​que mencioné antes en realidad opera en grandes segmentos de la corriente. Dado que la conversión automática al "lenguaje cerebral universal" reduce (¡no elimina!) la variación entre los cerebros de los usuarios, tratar de identificar a un usuario solo por estas diferencias es imposible (sin mencionar que el ruido, aunque pequeño pero aleatorio, que puede tener la línea , tal nivel de detalle sería imposible). Esta es la razón por la cual el software de autenticación de usuarios opera en un conjunto más amplio de pensamientos: detecta el estado mental aproximado del usuario (emocionado, enojado, relajado, etc.) y los "manierismos" que pueda tener. Esto es más o menos el equivalente al acento que puede tener una persona o al análisis estilométrico de sus textos: los identifica con un alto grado de precisión, pero no es infalible.

Este "lenguaje cerebral universal" del que hablo sería más o menos como cualquier idioma humano (como el inglés). Codifica información para que todos puedan entenderla, pero no es digital porque la forma en que lo hablas puede decir algo más sobre tu mensaje que lo que el idioma puede expresar. Eso significa que, en el ejemplo de la conversación, el usuario puede estar pensando en eliminar como símbolo A modificando el factor B, mientras que el software lo traduce al símbolo X modificando el factor Y (que puede ser igual a B, aunque no he pensado en eso todavía. No creo que realmente importe). El factor de modificación es lo que le dice a la computadora que no solo pensó en eliminar, sino que también parece sonar como si el usuario estuviera algo angustiado o enojado: son metadatos analógicos que serían difíciles de traducir a digital sin sacrificar su significado. Aquí es donde las redes neuronales de la CPU intentan adivinar qué significan estos metadatos, de la misma manera que un humano intentaría adivinar qué significa ese tono de voz; puede ser más fácil adivinar cuándo el factor de modificación es más fuerte.

Lo que originalmente quise decir con esta pregunta es: ¿ cómo podría la CPU procesar esta onda cerebral? ¿Podría alguna tecnología operar directamente en esta onda mediante el uso de programas de operación analógica o se requeriría convertir a digital para todos los casos? Tenga en cuenta que la CPU tiene un coprocesador digital que puede procesar esos problemas donde la computadora analógica no puede procesar tan bien, aunque la comunicación entre estos dos puede ser un poco más lenta de la misma manera que las transferencias de memoria a caché en el dado son lentas. ¿Podría la CPU analógica ser una máquina de Turing universal, independientemente de lo práctico que pueda ser? Alternativamente, si este no es el caso,¿Sería la emulación analógica en una CPU digital (simulaciones de redes neuronales emuladas, como una simulación cerebral parcial) la única forma de abordar este problema? Además, ¿podría almacenarse persistentemente en algún lugar la información sobre una ola? ¿Se podría almacenar dicha onda almacenada como una onda y no como una "parametrización" de una onda?

Bienvenido al sitio. Es una gran pregunta, espero que haya ayudado. Es posible que desee agregar la etiqueta de ciencia dura y dividir esto en 2 o 3 preguntas separadas
@sdrawkcabdear ¡Gracias! No estaba seguro de si debía etiquetar la pregunta como ciencia pura o no, ya que la descripción de la etiqueta dice que implica que todas las respuestas deben estar respaldadas con hechos y citas/demostraciones científicas frías y concretas, que es algo que sería bastante genial pero no realmente necesario para esta pregunta.
Esta pregunta es demasiado grande. Divídelo si quieres mejores respuestas.
Deberías echar un vistazo a la computación cuántica.
Debería echar un vistazo a los componentes básicos de los sintetizadores modulares analógicos. Estos se componen de varios módulos, cada uno de los cuales realiza alguna función en una señal analógica y que son dirigidos y alterados por otras señales de control analógicas. Están realizando operaciones matemáticas, esencialmente, con generadores de funciones y filtros. Podría proporcionar algo de inspiración. En cuanto a la finalización de la ruta del archivo, eso ha existido en el mundo Unix totalmente digital durante décadas, solo presione la pestaña una y otra vez para la parte de pensamiento de las computadoras. Y sí, se explota a menudo, generalmente por errores relacionados con el concepto de 'dónde estamos ahora'.
Solo pregunto, si la historia se puede leer en alguna parte.
Solo me gustaría señalar que tiene un concepto muy erróneo de la historia de las máquinas informáticas y de comunicación. Pasamos de analógico a digital (o de analógico a discreto en el caso de las comunicaciones) no por la programabilidad sino por las mejoras en la relación señal/ruido. Técnicamente, la mayoría de la IA es analógica a pesar de que ese sistema analógico se implementa en computadoras digitales.
La cuestión es que las computadoras modernas no necesitan ser analógicas. Una computadora moderna representará los datos como un número entero de 64 bits. Hay disponibles registros especiales que incluso llegan a representar un número entero de 512 bits (registros XMM). La cantidad de datos que puede transmitir un entero de 512 bits es enorme . Ninguna computadora analógica podría ser lo suficientemente precisa para detectar cambios de voltaje con una sensibilidad de 2^-512, o incluso una sensibilidad de 2^-64. Las computadoras digitales modernas pueden simular cálculos analógicos mejor que sus contrapartes verdaderamente analógicas.
"Supongamos que tenemos una solución confiable para compensar eso, como algoritmos capaces de discernir la señal real". Entonces, por definición, tenemos la comunicación digital. O un algoritmo telepático que puede acceder directamente al estado del dispositivo de envío sin un medio que introduzca errores entre ellos.

Respuestas (11)

Disfruto mucho jugar con este tema, así que voy a darle la vuelta a la pregunta. ¡Todas las computadoras que se fabrican hoy en día son computadoras híbridas analógicas/digitales que quizás no conozcas!Las velocidades de reloj modernas son tan asombrosamente rápidas que nos encontramos haciendo acondicionamiento de señales analógicas en medio de nuestro equipo supuestamente digital. Los subsistemas de memoria modernos utilizan técnicas analógicas para generar tantos bits digitales como sea posible a través de la tubería. Los rastros físicos a lo largo de los tableros se enrutan para que tengan la misma longitud que otros cables en el bus, y son estructuras que alinean las líneas de transmisión analógicas en el CB. Las CPU tienen que preocuparse regularmente por el aumento de la capacitancia parásita entre sus elementos lógicos, lo que limita el "abanico" de una salida a múltiples entradas. Gigabit Ethernet en realidad se basa en la superposición analógica de voltajes para lograr sus velocidades extremas. Lo analógico aparece en todas partes en la informática, por lo que claramente no es el hardware del que estamos hablando cuando hablamos de lo analógico frente a lo digital.

Creo que la distinción más importante en el mundo analógico frente al digital se encuentra en nuestros modelos de dichos subsistemas informáticos. No es que una CPU no tenga una combinación de analógico/digital, sino el hecho de que modelamos nuestras CPU como si fueran puramente digitales lo que realmente importa. Nos gusta fingir que nuestras CPU son estructuras digitales perfectas cuando escribimos miles de líneas de código para ejecutarlas. La brecha entre lo analógico y lo digital está más en la mente de los desarrolladores que en el hardware real. Los fabricantes de hardware adoptaron la parte analógica de su trabajo hace mucho tiempo.

En consecuencia, la viabilidad de la computación "analógica" estaría firmemente asentada en el deseo de los programadores de responder preguntas que se manejan mejor en forma analógica. Una vez que el deseo está allí, los fabricantes de hardware les expondrán felizmente el comportamiento analógico. Luego comenzaría la lenta tarea de crear comportamientos analógicos útiles (aquí es donde encaja el esfuerzo de DARPA).

Entonces, ¿cuándo es útil un modelo analógico? La respuesta más importante que se me ocurre es la metaestabilidad. A los circuitos digitales realmente les gusta resolver un estado verdadero o falso para cada bit de información. De hecho, si proporciona un voltaje a mitad de camino a muchos circuitos lógicos digitales, puede entrar en estados metaestables donde el circuito puede dejar de comportarse según lo previsto durante un tiempo arbitrario después de que se haya resuelto el voltaje a mitad de camino. A nivel de hardware, pasamos mucho tiempo evitando que nuestros circuitos lógicos "vean" los puntos metaestables a medida que los voltajes oscilan de bajo a alto, generalmente usando "reloj" para hacerlo.

¿Dónde sería útil esto? Una cosa que mencionaste fue la energía. La computación analógica puedeser más eficiente energéticamente que el digital porque puede adaptar sus relaciones señal-ruido al momento. Considere un número digital, en binario, 100001. Este es el número 33 en decimal. Si el ruido corrompe el bit más a la izquierda, se convierte en 000001, que es 1 en decimal. Si el ruido corrompe el bit más a la derecha, se convierte en 100000, que es 32 en decimal. En algunas situaciones, la diferencia en el significado semántico de 33 y 32 es bastante mínima, y ​​es posible que esté dispuesto a aceptar algún error en el bit más a la derecha, a cambio de ser más eficiente. Es posible que esté menos dispuesto a aceptar el error en el bit más a la izquierda, que cambia 33 en 1. Sin embargo, si ese 33 está en una ecuación, digamos tal vez 33 - 32, de repente esa resta hace que todos los bits sean importantes. ¡La diferencia entre un 1 o un 0 de esa resta podría ser un gran problema! Los modelos digitales no pueden implementar tal toma de decisiones, porque tendrían que admitir un modelo analógico debajo para hacerlo. Mientras tanto, su mente no tiene ningún problema en estar a una pulgada de distancia cuando mueve la mano de izquierda a derecha para despedirse de alguien y luego aumenta la precisión para escribir algo legible.

Esto sería muy poderoso si estuviera tratando con operaciones paralelas muy complejas. En este momento, si dos procesos intentan escribir valores diferentes en la misma ubicación, deben ser "desconflictos". Uno debe ganar, y el otro debe perder. El proceso ocurre en un abrir y cerrar de ojos, mucho más rápido de lo que cualquiera de los dos procesos sabía. Sin embargo, ¿qué pasaría si sus dos procesos quisieran ser más inteligentes y realmente hablaran sobre sus diferencias para determinar cuál podría ser el resultado final? Esta sería una operación natural en una computadora analógica. En una computadora digital, tenemos que pasar por muchos obstáculos para que eso suceda (y, por lo general, elegimos arreglar el "caso de la carrera" en su totalidad y seguir adelante).

Un punto final de la metaestabilidad es su capacidad para estar quieto. Un circuito sentado en su estado metaestable puede estar listo para cobrar vida a la menor sensación. Hacer esto en digital es difícil, porque las brechas entre las señales altas y bajas son muy grandes. Por lo general, tenemos que personalizar circuitos digitales personalizados para pasar estas señales de disparo rápido, mientras que una computadora analógica podría manejarlas intrínsecamente en todas las señales. Si una computadora se detiene, tiene que detenerse en un estado fijo. El cómputo cesa. En cambio, una computadora analógica puede disminuir el consumo de energía cada vez más, conduciendo hacia un estado equilibrado, sin detenerse nunca. Luego, cuando la computadora se reanuda, ¡es posible que haya logrado algo mientras estaba parada!

Bueno, ¿no es eso un giro? Esto es increíble. Supongo que todo lo que necesitamos es un cambio de mentalidad en la forma en que los desarrolladores desarrollan sus soluciones a los problemas, lo que podría ser proporcionado por algún avance en la usabilidad de las interfaces analógicas (los lenguajes de programación analógicos se vuelven más como lenguajes de programación "tradicionales"). Este avance podría ser forzado por el cambio de paradigma en la forma en que los usuarios interactúan con sus computadoras con la introducción de interfaces confiables de cerebro a computadora.
Consideraría cualquier cosa que implique cuantificación discreta y regeneración "digital". Es posible que sea necesario utilizar varias técnicas analógicas para contrarrestar varios efectos parásitos no deseados, pero si la señal finalmente se procesará de tal manera que el ruido por debajo de cierto nivel se elimine por completo, lo consideraría un sistema digital .
@supercat Es por eso que digo "La brecha entre lo analógico y lo digital está más en la mente de los desarrolladores que en el hardware real". La definición de "finalmente ser procesado" está en la mente de los desarrolladores. Como ejemplo, considere un módem DSL, que monitorea constantemente la SNR analógica de sus canales y realiza ajustes. Nunca deja de lado por completo el ruido de la señal analógica, pero da la ilusión de una interfaz puramente digital para la computadora. El hardware nunca se dio por vencido con el análogo, solo lo hizo el desarrollador.
Y se vuelve más complicado si el módem DSL está dispuesto a proporcionar datos SNR a la computadora, y toma decisiones basadas en esos datos SNR sobre cuántos datos transferir...
@CortAmmon: un módem tomará su señal entrante y la cuantificará a algún nivel. La cuantificación generalmente será lo suficientemente fina como para que los bits más bajos se desvíen de manera algo impredecible del valor esperado ideal, pero cualquier secuencia posible de muestras definirá una envolvente, de modo que cualquier señal posible que permanezca dentro de la envolvente será indistinguible de cualquier otra.
@supercat Sí, ha descrito el módem idealizado, en presencia de errores idealizados, desde la perspectiva de un desarrollador interesado en los datos que procesarán en la CPU. Le invitamos a creer que las computadoras que usamos son dispositivos idealizados tanto como desee. La brecha entre lo analógico y lo digital está más en la mente de los desarrolladores que en el hardware real.
@CortAmmon: los valores informados por el ADC pueden corromperse debido a factores analógicos, pero finalmente se convierten en números y se procesan como tales. Un voltaje que debería ser precisamente 1/4 de escala podría leerse como 01000000, o 00111111, o tal vez 01000001, 01000010, 00111110 o 00111101, pero no se leerá como 0100000½, o peor aún, 0½½10000. En última instancia, la señal llegará a un ADC que la cuantificará; cualquier cosa más fina que la resolución de cuantificación aumentará la lectura al siguiente valor más alto/más bajo o se ignorará por completo; no hay posibilidad "intermedia".
Votado negativamente, esta respuesta es de hecho incorrecta. Hay una distinción clara como Supercat intenta explicar, y es que para una señal digital, el hardware receptor puede hacer suposiciones sobre lo que se suponía que era la señal, por ejemplo, 0,9 voltios se entendía como 1 voltio, y luego regenerar la señal de la manera estaba destinado Las señales digitales se regeneran, eliminando el error. Las señales analógicas no pueden serlo porque el receptor no sabe qué valor 'pretendía' enviar el emisor y qué parte si la señal es un error.
@JanKanis ¿Cuál cree que es la diferencia entre "regenerar" una señal digital y una operación analógica decididamente no lineal?
@CortAmmon Regeneration discretiza la señal entrante en, por ejemplo, 0 o 1, con un valor de umbral en algún punto intermedio. Esto elimina cualquier pequeño error. La diferencia definitoria entre una señal digital y una analógica es que puede eliminar cualquier pequeño error. En una operación continua (lineal o no, digamos 𝓍² o logaritmo) permanece cualquier error. Si aplica una operación de discretización a una señal analógica, la está convirtiendo a digital o la está tratando como digital.
@JanKanis Soy muy consciente de la diferencia y de dónde puede fallar si no tiene cuidado (por ejemplo, si tiene una frecuencia de reloj demasiado alta). Por supuesto, si habla de que la señal es 0 o 1, entonces ya está pensando en digital y está operando por encima del nivel de todos esos componentes analógicos, por lo que siempre encontrará que lo digital es diferente a lo analógico. Debe sumergirse un paso más en los transistores, donde descubre que la región lineal y la región de conmutación son solo parte de un espectro continuo más grande de comportamientos no lineales.
La diferencia es si se quiere pensar en la computación como una actividad digital y, por lo tanto, dar significado a las amplificaciones no lineales en términos discretos, o si se quiere pensar en la computación como una actividad analógica. Construiremos diferentes circuitos para que coincidan, pero todos funcionan utilizando los principios de la física, que son de naturaleza analógica.
Lo siento, quise decir 0 o 1 voltio, como en mi primer comentario. Una computadora trata sus entradas como señales digitales, lo que significa que elimina/ignora pequeñas variaciones en las señales de entrada. Claro que hay todo tipo de procesos continuos en el interior, pero eso no hace que una computadora sea analógica. Puede pensar en una computadora como parcialmente analógica todo lo que quiera, pero eso no cambia la forma en que una computadora trata una señal, por lo que no está en su mente. También existen (ed) computadoras analógicas, cuya diferencia definitoria es que una pequeña variación en las entradas también provoca una variación en la salida.
La física es analógica (o más exactamente, continua), por lo que cualquier computadora digital debe construirse a partir de componentes y procesos continuos. ¿Cómo se ve una computadora completamente digital según su definición?

En el futuro, es posible que tenga un gran avance en el desarrollo de computadoras analógicas que emulen las características y la eficiencia de un cerebro humano . Al igual que hoy en día, una computadora digital se combina con una GPU especializada para gráficos, el cerebro analógico tendría un coprocesador de CPU digital para manejar las cosas en las que las computadoras digitales son buenas. En esencia, tendría algo que podría hacer las cosas en las que los humanos son buenos (coincidencia de patrones, estimación) que puede hacer referencia a algo en lo que las computadoras son buenas (matemáticas muy rápidas y muy precisas).

Imagine un robot que no solo pudiera debatir sobre política, sino que al mismo tiempo realizara la investigación y las estadísticas necesarias para sopesar sus decisiones.

Puede explotar dos características de la computación analógica frente a la digital en su mundo: calor y precisión frente a exactitud. Y construir en torno a nuestro fracaso de décadas para lograr la IA utilizando la computación digital, algo que sentimos que estamos en la cúspide desde los años 60. Me imagino un mundo en el que, a medida que las computadoras se integran cada vez más en la vida cotidiana, las máquinas con pensamiento humano se vuelven cada vez más importantes y las computadoras analógicas son mejores en eso.

Los cerebros humanos difieren de las computadoras digitales en algunas formas clave. Las computadoras digitales tienen que ser diseñadas, entendidas y construidas por humanos, y a los humanos les gustan las cosas simples y ordenadas. El cerebro humano ha evolucionado durante cientos de millones de años de prueba y error y no tiene tal restricción. Como resultado, los cerebros humanos pueden hacer cosas de formas sorprendentes. Las computadoras digitales son construidas por humanos para ser simples , combinan muchas, muchas de unas pocas partes básicas en formas novedosas. El cerebro humano es muy, muy, muy complejo.utilizando miles de neuronas especializadas, cada una de las cuales realiza múltiples tareas especializadas y se reutiliza y recombina de formas sorprendentes. El resultado es un cerebro digital predecible y preciso, pero a costa de flexibilidad y eficiencia, mientras que un cerebro humano es impredecible y descuidado, pero muy flexible y muy eficiente.

Su sociedad futura necesitará una razón para pasar de la precisión y la previsibilidad a la flexibilidad y la eficiencia.

La computación digital hace una cosa realmente bien: calcula de manera muy precisa, muy predecible y muy rápidamente un cierto subconjunto de problemas . Para otros problemas será terriblemente lento. Hará exactamente lo que le digas que calcule y eso es todo lo que hará . Y, como todos sabemos, a las computadoras digitales les cuesta mucho aprender o manejar algo nuevo. Como todos sabemos, es muy fácil incluso para una buena IA mantener una conversación convincente.

El cerebro humano, una computadora analógica, a veces es muy preciso ( golpear una pelota de béisbol ), a veces muy descuidado (matemáticas y estadísticas), a veces muy rápido (béisbol y estimación), a veces muy lento (matemáticas precisas), pero te dará una respuesta. Y puede resolver algunos problemas mucho, mucho más rápido y de manera más confiable que una computadora, por ejemplo, visión por computadora, problemas de búsqueda de rutas y coincidencia de patrones. Lo hace todo muy, muy, muy eficientemente y puede manejarlos todos . Es una computadora verdaderamente de propósito general. El mismo cerebro que puede golpear una bola rápida puede hacer cálculos, mantener una conversación, atravesar obstáculos y cocinar una comida.

El cerebro humano es extremadamente eficiente y no estamos ni cerca de emular lo que es capaz de hacer. Tomemos, por ejemplo, el Proyecto Cerebro Humano . El profesor Steve Furber de la Universidad de Manchester tiene esto que decir sobre su intento, SpinNNaker .

Con 1.000.000 de núcleos [ARM] solo llegamos a alrededor del 1 % de la escala del cerebro humano.

El ARM968 que están usando no es exactamente el mejor de la línea, el Nintendo DSi usa uno a 133Mhz, pero habla de cuán importante es el paralelismo y la gestión del calor en la informática moderna y cuán malos somos en eso.

Aquí hay algunos videos de Computerphile sobre el tema.

El cerebro humano en realidad puede ser extremadamente ineficiente como cerebro. Considere los loros y los cuervos. Alex el loro tenía la habilidad lingüística de un niño humano. Busque en Google "la niña que alimenta a los cuervos" los cuervos salvajes que corresponden a sus regalos lo mejor que pueden, llevándole objetos brillantes encontrados. Tanto estos como muchos otros ejemplos se ejecutan en cerebros más pequeños que nueces. Los loros y los cuervos se encuentran entre las pocas especies que pasan la prueba del espejo para la sensibilidad.
@ nigel222 La eficiencia aquí se compara con las computadoras digitales.

De hecho, trabajé en computadoras analógicas en mi "año sabático", alrededor de 1968, en Redifon (el brazo industrial de Rediffusion, una compañía de cable avant-le-lettre).
Supongo que estos eran (en ese momento) bastante avanzados, pero no eran de lo que se hace un bolso de seda .
No puedo encontrar imágenes, pero la programación implicó enchufar cables en un panel de parches de aproximadamente 100 cm x 80 cm, con quizás 50 x 40 enchufes. Un problema completo podría involucrar de 100 a 400 cables (piense en esto ), sin mencionar varias docenas de páginas de notas.
Una vez que tenía un programa funcionando, daba respuestas en tiempo real a las variaciones en las entradas o parámetros, con una velocidad y precisión que el mundo digital solo logró alrededor de 2000 (¡30 años después!)
La depuración era un problema (no había forma de rastrear las variables); y la estabilidad era otra: si uno de los amplificadores operacionales (entradas JFET, salidas bipolares) se volvía inestable, toda la computadora se convertía en lo que llamamos un "árbol de Navidad" con todas las luces de sobrecarga parpadeando.

Así que sus preguntas: analog CPUolvídenlo.
hybrid CPU: ni idea.
analog/RAM storage: teóricamente posible con [super]-condensadores pero no muy práctico.
Analog-oriented programming languages: Realmente no puedo ver un puente entre los cables en un panel de conexión y el concepto moderno de programación.

En su historia, si quiere un paralelismo con la vida real, sería mejor que usara convertidores de analógico a digital y tuviera tantos bits como necesita para capturar las mejores emociones.

FPGA proporciona una pista sobre cómo se vería el lenguaje de programación orientado a lo analógico. La programación de FPGA implica describir las conexiones entre las entradas/salidas de las puertas lógicas, ES prácticamente un equivalente de programación de un montón de cables que conectan diferentes elementos. Reemplace las puertas lógicas digitales con elementos analógicos y el resto del esquema de programación debería mantenerse.

Se han probado antes y son peores que digitales.

MOSFET VS BJT Entonces, el componente central de la CPU y la memoria son interruptores eléctricos llamados transistores. Hay dos tipos principales de transistores MOSFET digitales y transistores de unión bipolar analógicos. La razón por la que las computadoras son digitales es porque los MOSFET son mucho mejores. Los circuitos analógicos solo se usan cuando el circuito tiene que ser analógico.

Los MOSFET tienen más efecto de potencia, ya que solo consumen energía cuando 'cambian', los BJT usan energía cuando la máquina está encendida. Los MOSFET se pueden hacer mucho más pequeños sin introducir errores porque tienen corrientes de fuga más pequeñas. Esto significa que puede obtener 100 o 1000 de MOSFET por el mismo espacio de potencia y calor de un BJT.

  • Los intentos de CPU y RAM analógicos se realizaron utilizando lógica multinivel, fueron menos efectivos que simplemente más digitales.

  • Hay procesadores digitales analógicos híbridos, por lo general toman la entrada analógica y la convierten en proceso digital y luego la vuelven a convertir en salida analógica. Echa un vistazo a los microcontroladores como el arduino.

  • Las computadoras actuales simulan números analógicos con números de coma flotante y tienen procesadores digitales especiales para simular operaciones de coma flotante. Si los procesadores analógicos mejoraran, podrían reemplazar las unidades de coma flotante en las CPU actuales.

En teoría, un punto de datos analógico contiene una cantidad infinita de información si se puede medir con una precisión infinita, sus 1.23245... voltios, los dígitos decimales en teoría continúan para siempre. Pero nunca podemos usar esos puntos porque hay un ruido aleatorio impredecible. Una gran parte del campo de la ingeniería eléctrica está tratando de hacer frente al ruido. Dado que el ruido hace que parte de la información sea utilizable, ¿por qué no comenzar con un conjunto de datos más pequeño y menos ruidoso? La teoría de la información muestra que eliminar el ruido aleatorio de una señal es un problema realmente difícil a menos que ya conozca la señal original.

La óptica es genial, pero sigue siendo 1000x demasiado grande y 1000x demasiado lenta para competir con la CPU estándar. Debería poner esto en perspectiva, una CPU actual tiene alrededor de 3 mil millones de transistores que cambian mil millones de veces por segundo, una preocupación importante de diseño es que los electrones deben tener suficiente tiempo para cruzar el chip entre los interruptores y seno solo se mueven a la velocidad de luz solo cubren una pulgada o dos en ese tiempo. Todo el asunto puede costar menos de treinta dólares. Es difícil competir con eso.

Usar una FPU analógica como reemplazo de nuestra FPU actual podría funcionar. Después de todo, lo que pido es una precisión arbitraria de la señal, lo que requeriría una unidad de procesamiento analógico/de números reales. Sé que hay bibliotecas que emulan esto, pero el problema que tienen es que son lentas e ineficientes, por eso se hizo el proyecto UPSIDE. La idea detrás del proyecto UPSIDE y la CPU analógica de este universo es que las redes neuronales deberían poder identificar lo que una señal analógica puede estar tratando de decir, lo que luego puede interpretarse como un código digital. Por supuesto, habrá errores de vez en cuando.
Además, ¿cómo funcionarían las telecomunicaciones con transmisiones digitales de precisión arbitraria? Por lo que sé, deberían ser lineales, lo que podría detener el programa mientras espera que termine la transmisión del siguiente número, que es algo que no quiero. Las transmisiones deben ser lo más rápidas posible, tal vez incluso casi instantáneas.
Si hubiera transmisiones analógicas de precisión arbitraria, tendríamos un ancho de banda infinito. En el envío de 1 dato podría contener toneladas de información por lo que en vez de enviar 100Mbs podríamos enviar trillones.
@a1901514 Emular el cerebro es una gran idea, un montón de pensamientos de ruptura han surgido de redes neuronales artificiales que se ejecutan en hardware digital. Pero el cerebro también tiene mucho ruido por lo que tampoco depende de la precisión, cada neurona tiene un número finito de estados por lo que se puede hacer en digital. La distinción real es diseñar la forma de la red y el hecho de que las neuronas son mucho más eficientes en el uso de energía porque se apagan cuando no se usan, consulte science.sciencemag.org/content/345/6197/668.full para intentar una red cerebral.
La idea sería que, si bien las señales analógicas han mejorado mucho el ancho de banda, el ruido y la velocidad de salida del usuario (piense en las pulsaciones de teclas del cerebro) limitan la velocidad máxima que pueden alcanzar las telecomunicaciones: ES mucho más rápido, pero no es instantáneo. El algoritmo que interpreta la entrada tendría que basarse en la entrada anterior para calibrarse sobre la marcha y tratar de comprender cuál es la relación real de señal a ruido y qué tan precisos son los datos recibidos para hacer una suposición informada sobre lo que el usuario está tratando de hacer. . Como en, necesita algunos datos previos para comprender el mensaje, como el habla.
¿Por telecomunicaciones te refieres a llamadas telefónicas? Tienen un ancho de banda extremadamente bajo e incluso las videollamadas no necesitarían mucho más. La aplicación de un algoritmo fuerte para tratar de eliminar el ruido es contraproducente. Intentará adivinar la siguiente señal en función de las últimas señales... entonces, ¿por qué no usar un algoritmo de compresión, enviar una pequeña señal segura y usar el algoritmo para expandirlo al resto del mensaje? Se garantiza que los algoritmos de compresión funcionen, pero el algoritmo de análisis no.
Agregué algo de contexto sobre por qué tiene que ser análogo a mi pregunta original. tl; dr es que debe ser lo más preciso posible para evitar ambigüedades (ba ** podría ser banco, espalda o bate) y mantener un flujo de datos continuo. Dado que realmente no puede almacenar datos en búfer como paquetes, tendría que tener un diccionario de compresión universal, pero el conjunto de datos real es tan grande que también puede transmitir información 1: 1. La tecnología ha mejorado lo suficiente como para reducir mucho el ruido en las conexiones por cable, aunque aún puede distorsionar los datos. Afortunadamente, para la computadora se siente más o menos como hablar a través de un walkie-talkie.

Podría valer la pena considerar lo que ha hecho la naturaleza. "No hay nada nuevo bajo el sol" no es cierto pero tampoco está muy lejos.

Así que la computación digital parece haber venido primero. ADN, ARN, codones de terminación, un codón de escape, etiquetado epigenético, detección de errores y mecanismos de corrección dentro de cada célula. Parece tener todas las características de un sistema digital. Un error de una base (bit) puede no tener impacto o puede cambiar completamente el organismo (resultado).

Y luego evolucionaron los sistemas híbridos. Nervios y redes neuronales. Sesos. No los entendemos completamente. Una sola neurona acepta muchas entradas analógicas de otras neuronas y parece generar algo así como una suma ponderada de sus entradas. Si esa suma supera un umbral, la neurona se "dispara". La celda es biestable, binaria, disparando o no. Los pesos son modificados por el disparo de neuronas conectadas. Y en un cerebro las neuronas son elementos de una red absolutamente enorme.

Las sinapsis, las conexiones entre la salida de una neurona y la entrada de otra neurona, son sistemas moleculares complejos. No es un simple análogo. Térmico-ruidoso. Posiblemente, más cuántico-mágico que simplemente ruidoso. Tenga cuidado con cualquiera que diga que las sinapsis individuales son simples y bien entendidas.

Lo que falta son sistemas analógicos puros sin histéresis. Los sistemas de la naturaleza, si reaccionan a las entradas analógicas, siempre parecen diseñados con umbrales de activación que son mayores para que se enciendan que para que se apaguen. No muy diferente de un simple interruptor eléctrico ordinario. No a mitad de camino.

¿Ordenadores analógicos puros? Intuición, no útil excepto para dominios de problemas muy restringidos. Híbridos, ¿cerebros intrínsecamente superiores a las CPU digitales? Pregunta abierta.

Recuerdo este ejemplo de un artículo de hace mucho tiempo en Scientific American porque era completamente contrario a la intuición (On the Spaghetti Computer and other Analog Gadgets for Problem Solving", en Computer Recreations Column (1984) http://www.scientificamerican.com /article/computer-recreations-1984-06/ ). La computación analógica puede ser, en muchos casos, más rápida que la computación digital, pero aparentemente solo en el procesamiento real. La entrada y la salida requerían mucho trabajo y podían llevar mucho tiempo.

El ejemplo dado fue una "computadora espagueti". Si cada hebra de espagueti crudo se cortara a una longitud diferente correspondiente a las entradas, en teoría podrías hacer una computadora ensamblando las longitudes de espagueti en tu mano correspondientes a las entradas y golpeando el paquete "con el extremo" en el mostrador. La respuesta se derivaría del patrón de puntas de espagueti altas y bajas que sobresalen del otro extremo de su mano desde el mostrador.

Por lo tanto, habrá pasado minutos u horas cortando y ensamblando las longitudes de su computadora de espagueti, y es posible que deba pasar algún tiempo mirando la "salida" para comprender la respuesta, pero el acto real de "computación" toma una fracción de segundo. para golpear el paquete de espaguetis en el suelo.

Si bien esto parece un poco inútil (y escalar para resolver problemas realmente grandes con un "Super Spaghetti Analogue Gadget" también será difícil y complicado, hasta que lo reduzcas para la cena posterior a la computación), las computadoras analógicas son potencialmente viables para resolver NP completa problemas que bloquearían las computadoras digitales durante eones.

Entonces, el verdadero quid de la cuestión es qué tipo de problemas se están resolviendo que requieren los atributos especiales de una computadora analógica. A menos que esté tratando de resolver algún tipo de problema completo de NP o evitando el "problema de detención" de una máquina de Turing, las computadoras digitales se han refinado a un grado muy alto de potencia y precisión. La única otra gran ventaja de una máquina analógica proviene del hecho de que la mayoría de los ejemplos que he escuchado son esencialmente de naturaleza mecánica o electroquímica, por lo que no se verán afectados por picos de energía, EMP y otros factores ambientales que pueden afectar a las computadoras digitales.

No respondo a todos tus puntos, pero...

CPU analógica que ejecuta los programas que ejecutamos hoy , no (como ya se respondió). Las computadoras analógicas no fueron diseñadas para operaciones secuenciales paso a paso; fueron diseñados para resolver clases específicas de problemas en gran parte matemáticos.

Híbrido , seguro... no hay razón para que una computadora digital no pueda conectarse a una computadora analógica, aunque puede que no haya muchos beneficios al hacerlo.

RAM analógica ... tal vez no sea una gran idea. Por ejemplo, almacenar una cantidad como un cargo puede funcionar, hasta que se filtre y el valor que lea no sea el mismo que almacenó. Prácticamente cualquier otro concepto que pueda pensar para el almacenamiento analógico sería vulnerable a la distorsión o pérdida de la información almacenada. La ROM analógica, por otro lado, es totalmente práctica: el buen maestro del fonógrafo.

Comunicación totalmente analógica - totalmente práctica. Así es como hicimos las cosas hasta la década de 1970 para voz y hasta al menos la década de 1990 para video. Incluso los datos digitales se enviaron originalmente como tonos analógicos.

Me gustaría tomar un rumbo diferente:

En una computadora analógica de propósito general... ¿cómo se hace una puerta NAND?

La razón por la que las computadoras de propósito general son tan flexibles es el hecho de que cada pieza de la lógica interna se puede crear a partir de un solo elemento: la puerta NAND. invertida y. Esto proporciona integridad funcional... todas y cada una de las demás funciones lógicas se pueden construir solo con compuertas NAND.

Ahora, usted puede hacer fácilmente puertas más eficientes en cuanto a espacio y energía para hacer esas otras funciones lógicas... pero la clave es que todo se puede resumir a partir de un concepto, y a partir de ese concepto se puede construir todo lo demás.

Entonces, ¿cuál es el equivalente analógico de una puerta NAND?

Podría imaginar una fusión entre circuitos analógicos y digitales; hacemos este tipo de cosas todo el tiempo. Tienes una tarjeta de sonido... eso es lo que hace. Antiguas tarjetas de video usadas para emitir señales analógicas para video. Wifi tiene que traducir entre ondas electromagnéticas y señales digitales.

Una capa de circuitos analógicos filtraría los datos, que luego podrían procesarse increíblemente rápido en una computadora digital de propósito general. El poder del futuro parece ser la fusión de lo analógico y lo digital, aprovechando las fortalezas de ambos y anulando los problemas del otro.

Solucionamos problemas de diferentes maneras... pero el reconocimiento de voz del asistente de Google es increíblemente preciso en estos días. Claro, usa una base de datos masiva de registros para identificar el habla, en lugar de usar un trozo de carne del tamaño de un dedo... pero eso está jugando con las fortalezas de la computación digital. Procesando miles de millones de piezas de datos en un abrir y cerrar de ojos.

En las computadoras analógicas "clásicas", el análogo más cercano a una puerta NAND sería un integrador analógico . De hecho, muchas computadoras analógicas fueron clasificadas por la cantidad de integradores independientes que tenían. Sin embargo, hacer un buen integrador es mucho, mucho más complicado que hacer una puerta NAND (al menos con la tecnología actual).

Sí, es posible diseñar una CPU que sea 100% analógica. Las imágenes en 3D no son tan difíciles. Lo difícil es convencer a la gente de que el hecho de que crean todo lo que les han dicho sobre las computadoras analógicas es exactamente la razón por la que nadie ha logrado crear una CPU analógica completa en el sector comercial. Es pereza e incompetencia.

Las imágenes en 3D básicamente ya se pueden hacer. Si solo observa algunas de las antiguas placas de video analógicas que podrían "sesgar" y "estirar" las imágenes de transmisión en los viejos tiempos en las estaciones de noticias de televisión, eso es básicamente todo. Un polígono simple solo necesitaría algunas entradas y opciones adicionales para sesgarlo correctamente y luego agregar más polígonos a la pantalla. Es así de simple. Excepto que puede tener una imagen de alta resolución y no estaría preocupado por los píxeles, y sería realmente barato.

Hay un ejemplo antiguo de una computadora analógica que ejecuta una simulación física de automóvil/terreno en youtube. Es 2d pero, de nuevo, es básicamente solo una CPU analógica estándar. Aquí está, pero no muestra el automóvil, las ruedas o la carretera reales en este. https://www.youtube.com/watch?v=AEJtajaRj_s

Es bueno ver que la computación analógica obtiene un buen soporte. Lo digital no lo es todo. Las ecuaciones diferenciales para trazar los vuelos lunares del Programa Apolo se calcularon con dispositivos analógicos hechos a medida para ese propósito. Variaron las entradas, dejaron que los circuitos hicieran el resto y las respuestas fueron las salidas.

Las computadoras analógicas son mucho más eficientes en términos de energía y poco a poco están ganando más atención a medida que madura el aprendizaje automático.

https://ieeexplore.ieee.org/document/8490883 https://phys.org/news/2018-06-future-ai-hardware-based-analog.html

"Las técnicas analógicas, que involucran señales continuamente variables en lugar de 0 y 1 binarios, tienen límites inherentes en su precisión, razón por la cual las computadoras modernas son generalmente computadoras digitales. Sin embargo, los investigadores de IA han comenzado a darse cuenta de que sus modelos DNN aún funcionan bien incluso cuando son digitales. la precisión se reduce a niveles que serían demasiado bajos para casi cualquier otra aplicación informática. Por lo tanto, para las DNN, es posible que tal vez la computación analógica también funcione.

Sin embargo, hasta ahora, nadie había probado de manera concluyente que tales enfoques analógicos pudieran hacer el mismo trabajo que el software actual que se ejecuta en hardware digital convencional. Es decir, ¿pueden realmente entrenarse las DNN con una precisión equivalentemente alta con estas técnicas? No tiene mucho sentido ser más rápido o más eficiente energéticamente en el entrenamiento de un DNN si las precisiones de clasificación resultantes siempre van a ser inaceptablemente bajas.

En nuestro artículo, describimos cómo las memorias analógicas no volátiles (NVM) pueden acelerar de manera eficiente el algoritmo de "propagación hacia atrás" en el corazón de muchos avances recientes de IA. Estas memorias permiten que las operaciones de "multiplicación-acumulación" utilizadas en estos algoritmos se paralelicen en el dominio analógico, en la ubicación de los datos de peso, utilizando la física subyacente. En lugar de circuitos grandes para multiplicar y sumar números digitales, simplemente pasamos una pequeña corriente a través de una resistencia a un cable y luego conectamos muchos de esos cables para permitir que las corrientes se acumulen. Esto nos permite realizar muchos cálculos al mismo tiempo, en lugar de uno tras otro. Y en lugar de enviar datos digitales en viajes largos entre chips de memoria digital y chips de procesamiento, podemos realizar todos los cálculos dentro del chip de memoria analógico".

Almacenamiento

Con las computadoras analógicas, no podría almacenar información de manera confiable, ya que siempre cambiaría la señal analógica al realizar la medición o simplemente porque había un poco de ruido, sin mencionar que necesitaría inventar una forma de almacenarla en El primer lugar.

La razón por la que usamos señales digitales es porque puede tener, por ejemplo, 0 V o 1 V y si el voltaje se desvía un poco, el sistema todavía lo reconoce como el correcto. Sin embargo, en su pregunta solicita un sistema analógico que pueda notar diferencias sutiles en las ondas cerebrales de una persona.

Solución

Lo que está buscando es una tarjeta de expansión que se encargue de la información analógica y encuentre la manera de almacenarla perfectamente en forma digital (por ejemplo, podría reconocer cada onda simple que compone una onda complicada y almacenar aquellas que se almacenarían fácilmente) .

Incluso podría presentar esta tarjeta de expansión con un nombre genial como Brain Card y nunca explicar cómo funciona (o dar una explicación simple como acabo de hacer), solo que la gente la compra y la usa para almacenar sus ondas cerebrales con 100% de precisión.