Inmortalidad digital - Internet sincrónico

Propongo continuar con el tema que comenzó en el artículo anterior (https://habr.com/en/post/489068/). Si, de hecho, ella se entregó a sueños del tipo de cómo todo estará bien (o dependerá en gran medida del tipo de persona) cuando la singularidad tecnológica y la inmortalidad digital lleguen en el año 20XX, entonces en este y en los artículos posteriores intentaré hacer todo lo posible para garantizar un futuro feliz (singularidad) llegó más rápido, es decir, para crear un paradigma computacional para el procesador de quinta generación (recuerde que hubo un par de líneas sobre esto).

Usaré "copyright" y nombraré el paradigma informático creado "Rutel".

Intentemos resolverlo: ¿existe realmente la necesidad de algo radicalmente nuevo, o puede el viejo von Neumann ser "chamanizado" y suficiente? Los japoneses estaban en llamas: mientras intentaban hacer una nueva arquitectura y un procesador paralelo, las tecnologías de producción de los procesadores seriales convencionales mejoraron. Han mejorado tanto que se han logrado todos los parámetros esperados para un procesador paralelo en una serie regular.

La probabilidad de repetir este escenario es actualmente baja por muchas razones:

  • Los atrasos arquitectónicos existentes ya se han agotado (obras de Lebedev y otros);
  • Los tamaños de los transistores ya son comparables a las moléculas;
  • La disipación de calor prácticamente no disminuye con una disminución en los estándares tecnológicos;
  • El aumento de la frecuencia del procesador no mejora el rendimiento.

Los desarrolladores de tecnología informática no tienen ideas, excepto por un aumento banal en el número de núcleos en un sistema informático. Creo que este enfoque no es productivo para sistemas que no se basan en el concepto de "computación paralela". Y el pensamiento lógico (secuencial) de una persona (programador) tampoco brilla con paralelismo.

Dados los problemas identificados, definamos los requisitos que se proponen actualmente para los sistemas informáticos prometedores:

  1. Paralelismo
  2. Distribución
  3. Resolviendo el problema de la complejidad.
  4. Tolerancia a fallos.

La creación de cualquier dispositivo se realiza en respuesta a cualquier necesidad. La tecnología informática moderna se creó en respuesta a la necesidad de grandes cantidades de informática científica y de ingeniería. Actualmente, el uso principal de la tecnología informática es la "computación", la "revitalización" de varios modelos virtuales, algunos de ellos son modelos simplificados de objetos del mundo físico real, otros son generalmente completamente virtuales y al mismo tiempo interactúan con el mundo exterior a través de varias interfaces.

La transferencia de la personalidad de una persona a dicho sistema también es una necesidad moderna.

El paradigma computacional de Von Neumann es inherentemente avanzado y lo suficientemente potente, pero sigue siendo una calculadora. La base de la tecnología informática moderna es la "imitación" del pensamiento lógico de una persona (nota: solo el pensamiento lógico, y no la estructura del cerebro en su conjunto), pero no pretende simular el mundo circundante. El pensamiento lógico de una persona es un proceso mental de alto nivel y es fundamentalmente consistente. Piensa en la frase: un lenguaje de programación. El lenguaje de programación, la base de la interacción con un sistema informático, está lógicamente conectado con una parte del cuerpo humano y hereda muchas de sus características.

Como ejemplo, trata de decir dos frases al mismo tiempo. Sí, y escuchar a dos personas al mismo tiempo (especialmente con voces similares) no funciona.

Como tarea principal , uno debe asumir la tarea de mantener o "revitalizar" los objetos del mundo virtual. El mundo virtual, que contiene modelos de objetos del mundo real junto con conexiones (a través de varios sensores y manipuladores), y modelos que no tienen análogos. En el límite, el "nuevo paradigma computacional" no debe considerarse como otra herramienta para resolver problemas inmediatos, sino como un conjunto de dimensiones adicionales para nuestro mundo físico. Quiero señalar que una persona (en su conjunto) es un sistema biológico que resuelve exactamente el mismo problema; en consecuencia, para transferir la personalidad de una persona, se requerirá un sistema con la misma o mayor funcionalidad.

¿Dónde empezar?


Naturalmente, debe comenzar con la postulación de las propiedades del espacio virtual. La tecnología informática actual está representada por un espacio unidimensional (espacio de direcciones infinito). Pero esto no es suficiente para modelar un mundo tridimensional (+ tiempo), que constantemente genera problemas que requieren "muletas" para su solución.

Daré ejemplos de los problemas inherentes al paradigma informático moderno:

  1. Después de la ubicación del objeto en la memoria, es imposible cambiar su tamaño sin volver a crearlo. Debe utilizar el direccionamiento indirecto, resolver problemas de desfragmentación y asignación de memoria. Problemas con desbordamientos de pila y varios buffers.
  2. No existe un concepto de falta de datos en el sistema de presentación de datos, cualquier basura en la memoria física es información legítima, lo que causa errores.
  3. No existe el concepto de otro sistema informático (objeto), solo hay una "cinta" de memoria y un autómata que lo modifica. Este enfoque genera problemas con la interacción de las tareas, incluso dentro del mismo procesador (las tareas se realizan de forma secuencial), y si más de un sistema informático necesita interactuar, las "muletas" alcanzan proporciones épicas.

Estos ejemplos son solo para comprender que la mayoría de los grandes problemas se encuentran en el núcleo mismo del paradigma computacional, en los elementos más simples de "ladrillo". Estos "ladrillos" en algún momento no quieren formar una sola estructura y todo el "edificio" se derrumba.

Postulados (se repondrán y luego se reducirán a varios básicos):

  1. «», «» .
  2. «» . «» ( ) «» «» «». , «» .
  3. .
  4. , «» « » «», .

Brevemente, el espacio virtual es una espuma multidimensional de burbujas en contacto entre sí.

Estos postulados le permitirán crear cualquier sistema (conjuntos de objetos que interactúen) desde el mundo real (físico) o virtual. Ejemplo: acceso a una dirección a través del objeto "memoria" utilizando la dimensión "dirección" y puede haber cualquier número de espacios de direcciones. Los objetos direccionados tienen dimensiones adicionales que corresponden a diferentes espacios de direcciones. Los objetos "memoria" en forma de objetos físicos pueden no existir (modelo puramente virtual).

Punto importante: los postulados no indican la ubicación de los objetos, la presencia y el dispositivo de almacenamiento, incluso el concepto de espacio de direcciones no lo es (mucho menos uno solo). Todo lo que se puede decir es la presencia potencial del espacio (una "burbuja"); uno puede estar convencido de la presencia de la burbuja en sí solo por la presencia de un "contacto". Dentro de la "burbuja", todo lo que se puede "numerar" es el punto de contacto. Si no hay contactos, estos son completamente independientes y, en teoría, no se afectan entre sí, pero al mismo tiempo, todos están en la "burbuja" original y pueden comenzar a interactuar en el futuro.

Para la tarea de transferencia de personalidad, el cerebro digital se verá como una burbuja común, que incluye 100 mil millones de burbujas, que contienen un objeto que emula una neurona o un objeto de comunicación con el cerebro biológico. Visualmente, uno puede incluso imaginar el estiramiento (deformación de la proyección de la "burbuja" en el espacio tridimensional) de hilos (axones de dendritas) a los puntos de contacto.

La implementación del sistema de comunicación en el paradigma creado.


Precaución

Todas las ideas y algoritmos descritos en este artículo son el resultado de mi actividad intelectual independiente y completamente independiente. Como autor, le autorizo ​​a usar, modificar, complementar libremente todas las ideas y algoritmos a cualquier persona u organización en cualquier tipo de proyecto con la indicación obligatoria de mi autoría.

Para el paradigma moderno, realizar el espacio como un anillo unidimensional es bastante simple: dirección, datos para "escribir" - "leer" y señales "leer" - "escribir". Para un paradigma con una "burbuja" multidimensional, se requiere crear un sistema de comunicación para "todos con todos" (en el límite), por supuesto, en realidad esto es imposible. La mayoría de los objetos se conectarán a través de nodos intermedios. La distribución del "rango de comunicación" tendrá un "tipo normal", cuanto menor sea la distancia entre los nodos, mayor será el número de tales conexiones (la lógica y el sentido común dictan la necesidad de marcar los objetos que interactúan lo más cerca posible entre sí). La base de un sistema de comunicación con nodos intermedios es un algoritmo para multiplexar (dividir) un canal de comunicación entre varias fuentes.

Al principio, es mejor dar una explicación simplificada del principio de funcionamiento del algoritmo de multiplexación del canal de comunicación física.

Los datos transmitidos se pueden representar como una "dispersión" de cuentas (cada cuenta es única y la secuencia no se puede cambiar), que deben transmitirse a través de un tubo con un diámetro igual al diámetro de la cuenta. Si hay una fuente de cuentas, entonces no hay ningún problema de acceso a la "tubería de telecomunicaciones", está en posesión exclusiva. Si hay muchas fuentes de cuentas, entonces pueden colisionar a la entrada del "tubo", e incluso a la salida de las cuentas necesita separarse en contenedores separados.

El algoritmo propuesto (por ejemplo, bus) se ve así:
  • ensarte las cuentas de varias fuentes en hilos elásticos y fíjelas (un hilo separado para cada fuente)
  • , , ( ). , .
  • , .
  • ( )
  • ( )
  • : , ( ).
  • , (, ), , .
  • , ( ).

Si en el momento en que era necesario colocar el cordón en el tubo, el cordón aún no se había transferido a través del tubo entrante y la tolva estaba vacía, entonces para garantizar la unicidad del algoritmo de clasificación, debe colocar un cordón especial "vacío". En el lado receptor, no se colocará una cuenta vacía en la tolva, sino que simplemente se descartará.

El siguiente será un texto dirigido a profesionales de telecomunicaciones.
Debido al deseo de cubrir todos los aspectos del paradigma de las telecomunicaciones, el texto resultó ser algo desordenado e hinchado. Lo que requiere una lectura cuidadosa, puede haber términos inexactos y errores lógicos (agradeceré las correcciones).

Hay un problema con la dificultad de percibir el texto, quiero complementar la descripción con imágenes, pero no tengo la capacidad de dibujar bellamente. Si alguien quiere cargar con esa carga, estaré muy agradecido. En respuesta, solo puedo ofrecer una nota de autoría en cada figura.

Siguiente para aquellos que no tienen miedo


Estado actual de las redes de transmisión de datos.

Las redes modernas de transmisión de datos están diseñadas para una intensidad de conexión relativamente baja (el número de canales o mensajes individuales) y al mismo tiempo se imponen requisitos simultáneos debilitados sobre la estabilidad del tiempo, la velocidad de entrega, el tiempo de creación de un canal virtual, el tiempo que lleva usar una ruta de transferencia de datos de respaldo y el porcentaje máximo de utilización del ancho de banda del canal físico . Una red de datos construida sobre tales principios de manera crítica no cumple con los requisitos presentados por el nuevo paradigma de computación. Para comprender la escala del aumento esperado en los requisitos de tráfico y velocidad, puede tomar la cantidad y la velocidad de los datos transmitidos a través de la pila del procesador y los datos asociados en la memoria (los punteros se pasan a menudo a través de la pila) y multiplicar por el número de núcleos informáticos de una supercomputadora típica.Estos requisitos serán la barra inferior de requisitos para la red de datos.

Un sistema informático distribuido es un gran número de módulos (bloques) informáticos interconectados (que participan en cálculos conjuntos) que generan, en el caso general, un gran número de conexiones a corto plazo. Las conexiones requieren velocidades de transmisión más altas combinadas con baja latencia estable y entrega garantizada.

Los requisitos presentados a la red de transmisión de datos por un sistema informático prometedor (distribuido), el rendimiento de todo el sistema depende en última instancia de su implementación.

  • Tiempo de creación de canal virtual extremadamente corto. El tiempo de creación del canal virtual debe ser comparable con el tiempo de llenado del búfer local del transmisor (enrutador).
  • .
  • . , , .
  • .
  • , . () .
  • (90% ).

Idealmente, un sistema de comunicación requiere la conexión directa de cada componente del sistema con cada uno, pero en realidad esto es imposible y hay que transmitir datos a través de nodos intermedios. En cada nodo de dicha red hay un conmutador conectado a varios de los mismos nodos utilizando líneas de comunicación compartidas (en canales virtuales). La base de dicho sistema de comunicación son los algoritmos para multiplexar (dividir) un canal físico en una gran cantidad de canales virtuales y transferir datos entre canales virtuales en varios canales físicos.
Los algoritmos (principales) actualmente utilizados (jerarquía síncrona y sistema de transmisión de paquetes de datos) de tal separación (multiplexación) del canal físico críticamente no satisfacen los requisitos planteados.

Los canales creados por los métodos de jerarquía síncrona (SDH) tienen un excelente rendimiento en términos de estabilidad de la velocidad de transmisión, falta de colisiones y el efecto de la utilización del canal en estos parámetros. Al mismo tiempo, el retraso de la transmisión deja mucho que desear (funciona con contenedores de tamaño suficientemente grande) y no hay flexibilidad en los parámetros de los canales creados. Para un funcionamiento óptimo de la red informática, se requieren tiempos de retraso (es decir, tiempos de transferencia de datos), que deben determinarse mediante dos parámetros: distancia física (longitud del cable) y ser proporcionales a la velocidad de transferencia de datos solicitada. Los conmutadores deben poder admitir simultáneamente una gran cantidad de canales virtuales (hasta millones al mismo tiempo) con un tiempo de conmutación constante. Además, los canales (SHD) no tienen suficiente flexibilidad en la velocidad de los canales creados,y el tiempo que lleva crear un canal virtual es generalmente una imagen triste (necesitamos tiempos comparables al tiempo de retraso de la transmisión).

El uso de la conmutación de paquetes no tiene ningún sentido (cuando se usa en forma canónica), no se cumple ningún requisito (para un sistema informático suficientemente grande). El tiempo de creación del canal se ejecuta parcialmente solo en el lado del transmisor, no se proporciona el trabajo con una gran cantidad de rutas posibles en tiempo real, no se puede crear una tabla para todas las opciones de conexión (un tamaño demasiado grande y costos administrativos). El retraso garantizado para la transmisión de paquetes de datos es imposible en principio. La regulación de la velocidad de transferencia de datos y el acceso garantizado solo son posibles a través del ancho de banda de reserva, que no es posible con una gran cantidad de canales virtuales. Las pérdidas de datos (colisiones) están fundamentalmente presentes en la transmisión de paquetes (para valores reales de memorias intermedias en el conmutador).Todos los problemas de transmisión de paquetes de datos se exacerban significativamente al acercarse a la capacidad máxima del canal físico.

Conclusión : Para el funcionamiento óptimo de un sistema informático distribuido, se necesita un nuevo paradigma de construcción de un sistema de transferencia de datos.

La base del sistema de transmisión de datos es un método (algoritmo) para dividir un canal físico en el número requerido de canales virtuales y máximamente síncronos para construir un canal virtual de extremo a extremo entre el receptor y el transmisor. Según los resultados de un análisis preliminar de la situación, el más óptimo es el algoritmo SDH. Para superar las desventajas inherentes a SDH, es necesario "rediseñar" este sistema. El algoritmo SDH es en gran parte una continuación de las ideas incorporadas en PDH, que surgió de los sistemas de telefonía fija. Para un sistema informático distribuido, la presencia de una trama con una duración de 125 μs, así como la división en muchos canales con el mismo rendimiento (y la jerarquía con sincronización de extremo a extremo también), es una restricción absolutamente sin sentido (para la telefonía, todo esto fue la base de lo básico).Para el sistema informático "TK" para el nivel más bajo del sistema de transferencia de datos será el siguiente:

Divida la secuencia de origen en un número determinado de canales de datos virtuales, con una velocidad de bits determinada para cada canal.

Para garantizar la transferencia de la carga útil del canal entrante al canal saliente, utilice un búfer de datos con un tamaño que tiende a un carácter.

No existe un requisito explícito para la presencia de un marco de tamaño constante o variable y es aconsejable no introducirlo, incluso como un medio para determinar el período de tiempo dentro del cual la lista de canales virtuales (en los que se divide el canal físico) es constante. Si introduce el concepto de un cuadro, la creación de un canal adicional requerirá tiempo, determinado por el tamaño del cuadro. Si no se toman medidas adicionales, el retraso en la creación de un nuevo canal será en promedio la mitad del tiempo de trama multiplicado por el número de interruptores de tránsito, lo que aumentará drásticamente el tiempo para crear nuevos canales virtuales (y eliminar los canales antiguos).

¿Cómo dividir un solo canal físico en un número arbitrario de canales virtuales separados con una velocidad de transmisión arbitraria, sujeto a la regla de la suma de velocidades (la suma de las velocidades de los canales virtuales más el costo de administrar los canales no debe exceder la velocidad del canal primario)?

Además, el requisito de sincronismo, igual tiempo entre los datos individuales transmitidos, se presenta a los canales que se crean, lo que garantiza el tamaño mínimo de las memorias intermedias. El requisito de un tamaño mínimo de búfer proviene de la incapacidad de organizar un búfer fuera del cristal del interruptor en el interruptor. Intente almacenar en búfer un flujo de 100G (400G) o más, y si hay diez o cien de esos flujos, incluso las irregularidades mínimas desbordarán la memoria de cualquier tamaño razonable, y el rendimiento de una RAM típica es menor que la velocidad de incluso uno de esos flujos. Si desea crear un canal virtual (o varios canales con la misma velocidad de transmisión), entonces no hay problema (SDH), pero al crear dos o más canales con diferentes velocidades de transferencia de datos, pueden ocurrir conflictos,Al mismo tiempo, es necesario transmitir datos pertenecientes a varios canales virtuales. Para satisfacer los requisitos de un sistema de transmisión de datos, modificaremos el algoritmo de multiplexación SDH.


  1. .
  2. — . , ( ), . : , ().

    . ( ). (, , , ). ( ) , , , . . . 100 , . ( ) (), . ( ), .
  3. ( ) «», . , . . , .
  4. «» ( ) . ( ) .
  5. . .
  6. , ( ) ( ).
  7. . ( ) «». , ( ), , FIFO . , , ( ). «» ( ), FIFO .

    , ( ), . «» - . , « ». « », «» FIFO . , ( ). , , — , , ( ). ( )
  8. 32 (24) 64 /, E1(T1). , PHD .
  9. . ( 100) ( ). 106 . 120 . 2.5 ( ) ( ).. ( .)
  10. ( ) , ( ) «» « », ( ). . «» « », .
  11. , « » ( ), « ». « », . .
  12. ( ) ( ). . « » , () . « » , . , ( ). , () . , , . , , .

Después de la transmisión a través de un canal físico, el flujo total debe desarmarse no solo debido a la reorganización de los canales virtuales entre canales físicos, sino también debido a la posible necesidad de agregar o eliminar caracteres "sin datos" (es posible solo en el momento de escribir o leer caracteres en el búfer). La “edición” parcial o el reemplazo de datos no tiene mucho sentido. Puede agregar la capacidad de crear una secuencia total que no se entiende en los conmutadores intermedios: un túnel (no comprenderá los componentes de los conmutadores intermedios). Es posible crear un "túnel" virtual si crea una secuencia de resumen utilizando símbolos de servicio alternativos (el algoritmo sigue siendo el mismo, cada nivel de túnel requiere su propio conjunto de símbolos de servicio) y luego transfiere la secuencia de resumen resultante como un canal virtual regular.En el lado receptor, se requiere un procedimiento adicional para desmontar dicho canal en sus componentes (el número de análisis es igual al nivel del "túnel"). La creación de "túneles" es beneficiosa debido a la disminución en el número de canales virtuales y, en consecuencia, las memorias intermedias requeridas en los interruptores intermedios (y el retraso de conmutación proporcional a la velocidad del canal virtual será menor). El número de buffers limita el número de canales virtuales que pasan a través del conmutador simultáneamente. Cualquier canal físico (para recepción o transmisión) puede usar cualquier búfer (los búferes son un recurso común), lo que aumenta el coeficiente de su uso.Físicamente, el búfer es un FIFO pequeño para almacenar varios caracteres (hasta 10 y está determinado por el tiempo para crear un nuevo canal virtual y la desigualdad máxima del tiempo de transferencia de datos) con el número de interfaces para leer y escribir igual al número de módulos que recopilan o desarman el canal total en este interruptor (todos físicos y canales virtuales), mientras que hay una garantía de no más de una llamada por ciclo de reloj. El período de sincronización del reloj de las memorias intermedias coincide con la frecuencia de recepción y transmisión de caracteres. Si tiene un canal de banda ancha y una gran cantidad de canales más pequeños, puede asignar caracteres grandes a un canal rápido y escribir varios datos en los buffers a la vez (u otra opción). La arquitectura descrita está muy bien en cascada.Hay muchas opciones de configuración y es necesario buscar el compromiso óptimo.

Al construir una red de comunicación dentro de un solo chip, los módulos del transmisor se convertirán en dos registros (uno en el lado del transmisor y otro en el lado del receptor), el algoritmo en sí no cambiará. Si las velocidades y la composición de los canales creados son constantes, entonces el tamaño del hardware del conmutador puede optimizarse enormemente.

En total, la red de transmisión de datos consta de conmutadores y cables de comunicación entre sus puertos. El propósito de la red es entregar datos de clientes con la mayor calidad posible. El cliente se conecta a la red a través de un dispositivo similar a un conmutador normal, cuya característica distintiva es la capacidad de acceder a los buffers de datos mediante el hardware del sistema informático y su mayor tamaño. Tan pronto como los datos recibidos del canal virtual creado se escriban en el búfer del conmutador conectado al sistema informático (para la recepción), el mecanismo (similar a la interrupción en el sistema informático habitual) debe activarse, esperando que la información aparezca lo suficiente como para determinar el servicio llamado y el software correspondiente se conectará para mantener este búfer.La diferencia con la moderna "tarjeta de red" es la capacidad de crear una gran cantidad de canales paralelos (acceso paralelo a la red de datos), lo que elimina la cola interna de paquetes desde (hacia) la red hacia (desde) una gran cantidad de núcleos informáticos (hilos). Automatización del lanzamiento de "manejadores de datos".

La creación de un canal se puede dividir en dos etapas: administración (búsqueda de ruta, asignación de velocidad, permiso de acceso, etc.) y la creación directa de un canal virtual (cuando es necesaria la transferencia de datos). La primera etapa se realiza relativamente raramente (la red es relativamente estática) y esto se puede hacer de antemano en la etapa de inicio de la aplicación. Se requiere que la segunda etapa se realice lo más rápido posible, es esta etapa la que determina el rendimiento de la red de datos y el rendimiento de todo el sistema informático distribuido.

La creación y eliminación directa de un canal virtual (todos los datos necesarios se preparan en la primera etapa) debe ocurrir a la mayor velocidad posible. Es más correcto decir que la creación del canal y la transmisión de datos deben ocurrir simultáneamente.

El algoritmo debería verse así: en el momento inicial, el canal virtual aún no existe (la primera porción de los datos se escribe en el búfer asociado con la fuente de datos), el multiplexor no le ha asignado parte del ancho de banda del canal físico, solo hay canales de servicio y debe decidir qué Se creará un nuevo canal virtual a partir de los canales físicos. Cuando aparece una cantidad suficiente de datos en el búfer para crear un canal virtual (dirección y velocidad requerida, se seleccionan de la lista de alternativas), es necesario formar y enviar (usando el canal de servicio) un paquete de datos con una solicitud para crear un canal virtual en el canal físico deseado. Paquete con la solicitud y los parámetros del canal virtual creado,Al pasar por el dispositivo de síntesis del canal total del transmisor y analizar el canal total del receptor del canal físico seleccionado, cambia la composición de la tabla de canales virtuales del receptor y el transmisor. El paquete con los parámetros debe contener el símbolo de servicio "agregar canal", después de lo cual el controlador comienza a transmitir el flujo total con el nuevo canal virtual agregado. En el momento de agregar un nuevo canal virtual, comienza el muestreo de datos desde el búfer y los caracteres del canal virtual creado se envían al lado del enrutador seleccionado. Se crea un nuevo canal sin notificar al conmutador remoto, basado únicamente en el ancho de banda libre del canal físico local. El rendimiento del canal creado siempre es menor que el rendimiento inicial del canal de servicio (parte libre del canal físico),Se crea un nuevo canal separando parte del recurso del canal de servicio. Al procesar (recibir desde un canal físico) un paquete con una solicitud para crear un nuevo canal virtual, es necesario determinar en cuál de los almacenamientos intermedios (gratuitos) disponibles comenzar a guardar los datos del nuevo canal en el tiempo restante antes de recibir el símbolo "agregar canal". Es imposible guardar la solicitud en la memoria y procesarla más tarde, la composición del flujo total cambiará inmediatamente después de recibir el símbolo "crear un canal" (o con un retraso conocido) y el flujo total que contiene los símbolos del canal virtual creado comenzará a recibirse, lo que destruirá el proceso de decodificación del flujo total (si la lista de canales en el receptor No cambiará). El tiempo para calcular el número del canal físico saliente al que es necesario comenzar a enviar datos desde el búfer asignado,debe ser mínimo (determinado por el tamaño del búfer), lo que significa que los datos de velocidad y ruta ya deben estar en el encabezado del paquete con una solicitud para crear un nuevo canal virtual (esencialmente no hay tiempo para acceder a la tabla en la memoria externa).

La formación de un paquete con una solicitud es posible solo después de recibir todos los datos necesarios sobre la dirección de conmutación y la velocidad del canal creado. Los búferes de canal virtual en el conmutador deben ser de tamaño pequeño, lo que significa que estos datos (velocidad y número de puerto en el próximo conmutador) deben estar al comienzo de los datos transmitidos, pero el tamaño del búfer actual permitiría guardar todos los datos posteriores hasta la formación de un nuevo canal total sin desbordamiento Después de que se forma el paquete con la solicitud, debe eliminar el símbolo con datos sobre el número del canal físico que conduce al siguiente conmutador (si la ruta se especifica especificando la secuencia de puertos del conmutador). Para cerrar el canal virtual, no es necesario reenviar el paquete utilizando el canal de servicio,es suficiente poner el símbolo de servicio "eliminar canal" en los datos transmitidos del canal eliminado. En el momento de recibir el símbolo de "eliminar canal" por el módulo de síntesis de canal múltiple, el canal virtual correspondiente se elimina y luego el canal resumen actualizado generado ya no contiene el canal virtual remoto. Para la eliminación automática (limpieza), la prevención de la "fuga" del rendimiento de un canal físico, es necesario integrar en las memorias intermedias de hardware de los canales virtuales, un contador del número de caracteres transmitidos (cualquiera) y al alcanzar un cierto valor (tiempo de espera) transmitirá automáticamente el símbolo "cerrar canal". Para extender la vida útil del canal virtual, puede ingresar el símbolo "restablecer contador" agregado a los datos. El conmutador local puede ignorar la extensión de vida útil del canal,cuál será la respuesta a la falta de ancho de banda del canal físico. Si durante la creación de un canal virtual, debe cambiarse a un canal físico con falta de ancho de banda libre, la velocidad del canal de servicio no es suficiente para crear un nuevo canal virtual o no hay buffers libres u otra razón, entonces el paquete de solicitud debe destruirse. Más correctamente, se redirige al módulo de código auxiliar, que recibirá todos los caracteres del canal virtual fallido y generará todos los mensajes necesarios para el lado de transmisión (estos mensajes se transmiten utilizando el canal de servicio). No considero la opción con almacenamiento en búfer debido a la complejidad de la implementación. Este enfoque es óptimo para canales con una longitud corta,para ellos, el tiempo de espera de entrega es mínimo y no afectará en gran medida el rendimiento general debido a las repeticiones de crear un canal virtual. Si el canal se creó con éxito, entonces todo lo que puede suceder es la distorsión de datos debido a la interferencia en el equipo. A diferencia de la red existente (Ethernet), es necesario no solo enviar un paquete, sino también asegurarse de que se haya construido correctamente hasta el destinatario, ya en el nivel más bajo de servicio. Enviar datos "a ninguna parte" generalmente no satisface a nadie, y verificar la entrega de datos esperando un mensaje de respuesta es muy "desagradable" debido al tiempo desconocido requerido. Enviar una notificación sobre la creación de un canal utilizando un canal de servicio, una operación que no requiere recursos particularmente grandes.Puede implementar otra opción: crear inmediatamente un anillo que combine la fuente y el receptor de los datos transmitidos (el paquete se ejecutará inmediatamente en un círculo en su totalidad o el interruptor en el lado receptor formará un paquete de respuesta). Puede generar dicha notificación (si hubo un error en la creación del canal) en cada conmutador intermedio para que el transmisor sepa lo antes posible sobre la imposibilidad de crear el canal. Si realmente no desea retransmitir datos cuando es imposible crear un canal virtual con la velocidad requerida, esto es óptimo para rutas con un tiempo de entrega muy largo (al otro lado del globo vía satélite), entonces puede intentar usar el algoritmo de entrega parcial.Puede generar dicha notificación (si hubo un error en la creación del canal) en cada conmutador intermedio para que el transmisor sepa lo antes posible sobre la imposibilidad de crear el canal. Si realmente no desea retransmitir datos cuando es imposible crear un canal virtual con la velocidad requerida, esto es óptimo para rutas con un tiempo de entrega muy largo (al otro lado del globo vía satélite), entonces puede intentar usar el algoritmo de entrega parcial.Puede generar dicha notificación (si hubo un error en la creación del canal) en cada conmutador intermedio para que el transmisor sepa lo antes posible sobre la imposibilidad de crear el canal. Si realmente no desea retransmitir datos cuando es imposible crear un canal virtual con la velocidad requerida, esto es óptimo para rutas con un tiempo de entrega muy largo (al otro lado del globo vía satélite), entonces puede intentar usar el algoritmo de entrega parcial.entonces puede intentar usar el algoritmo de entrega parcial.entonces puede intentar usar el algoritmo de entrega parcial.

En el momento de la imposibilidad de crear un canal con la velocidad requerida, se crea un canal con una velocidad menor (luego se crea un canal con esa velocidad) y en el momento del desbordamiento del búfer, se borra el búfer y se coloca un símbolo que indica el desbordamiento del búfer y la cantidad de caracteres descartados. Al aceptar dicho carácter, el destinatario forma una lista de tales reducciones de velocidad y lo envía al transmisor. El transmisor reduce la velocidad del canal primario, calcula qué datos se omitieron (los datos omitidos se pueden determinar simplemente a partir de la lista de reducciones de velocidad y el tamaño del búfer) y los envía de la manera más óptima (aunque sea una ruta alternativa).

El enrutamiento en las redes de conmutación de paquetes existentes se basa en la dirección en el encabezado del paquete, las tablas de ruta y otras reglas en los enrutadores intermedios. Este enfoque funciona bien para un número relativamente pequeño de definiciones de ruta y la posibilidad de almacenar en búfer los datos recibidos de un solo paquete; lleva un tiempo relativamente largo determinar el número de puerto al que se debe enviar el paquete. Para sistemas de alta velocidad con una vida útil de canal virtual corta, no habrá suficiente velocidad de acceso a la memoria de las tablas de conmutación (y la tabla en sí tendrá un tamaño en megabytes para cada canal físico; debe asignar RAM igual al número máximo posible de canales virtuales) y es más ventajoso describir la ruta usando el método directo enumeración de canales físicos,a través del cual se debe construir un canal virtual. El tamaño de la información de la dirección no será demasiado grande, el número de conmutadores intermedios es relativamente pequeño y si se asignan 8 bits para cada conmutador (puerto físico o número de túnel), un análogo de la dirección IP6 le permitirá construir una ruta de 16 conmutadores.

Para el método propuesto, la tabla se convierte en un byte para cada búfer (es decir, el canal virtual existente y no potencialmente posible). Además, es necesario tener en cuenta que la dirección se transmite solo al momento de crear el canal (se borra gradualmente a medida que avanza hacia el receptor), y el uso de un túnel virtual reduce significativamente los costos de enrutamiento. Para construir cadenas de canales físicos, puede usar un análogo de motores de búsqueda convencionales o DNS de redes modernas, establecer parámetros de destino (cualquier conjunto de parámetros: la dirección IP también es un parámetro normal) y obtenemos un conjunto de cadenas con rutas alternativas. El direccionamiento relativo ha aumentado la protección contra el acceso no autorizado, hay un control total sobre la ruta. Para que la red funcione,no hay necesidad de la presencia obligatoria (operación) de componentes de alto nivel, la ruta se puede configurar de antemano (para redes con un sistema de comunicación permanente, por ejemplo, cableado en una placa de circuito impreso; las conexiones no cambian).

El control directo del tráfico, la asignación (planificación) del ancho de banda, etc. es imposible debido a la alta velocidad de creación de un canal y al tamaño potencialmente grande de la red. Para equilibrar la carga de los canales, es necesario utilizar métodos indirectos, como planificar varias rutas, asignar tasas de transmisión teniendo en cuenta las estadísticas acumuladas sobre el uso de un canal virtual. Cuando el canal físico se sobrecarga, los datos de los canales virtuales ya existentes no se descartan, es imposible crear solo un nuevo canal. Si tomamos en cuenta la naturaleza del tráfico (principalmente mensajes cortos y frecuentes), la disponibilidad de rutas de respaldo y el procedimiento muy rápido para crear (eliminar) un canal virtual, entonces negarse a crear un canal no conducirá a una caída catastrófica en el rendimiento,solo habrá un ligero hundimiento en la velocidad de los cálculos (la recreación del canal ocurrirá en el momento del mensaje sobre el error de conexión o la expiración de un tiempo predeterminado). Cuando se acumulan estadísticas negativas (es decir, estadísticas, y no una reacción a un evento individual), el software de administración del conmutador monitorea la frecuencia de los errores de conexión y programa los parámetros del canal teniendo en cuenta estos datos. Con una alta probabilidad, la congestión en sí misma se detendrá en un tiempo de cientos de nanosegundos, y el software del enrutador debe abordar los problemas de planificación estratégica. Dicha planificación puede incluir la capacidad de editar rutas ya creadas (los datos se almacenan en el multiplexor), de lo contrario no es posible reconstruir de manera confiable la red de rutas (cuando el software aún solicita la recreación de la ruta).

Los programas de comunicación (hilos del proceso informático) con las fuentes (receptores) de los datos transmitidos se construyen de acuerdo con el mismo esquema que en los conmutadores.

Un sistema informático es una gran cantidad de módulos ejecutivos diferentes integrados por una red de comunicación. Una red de comunicación reemplaza todos los buses e interfaces locales desde el acceso a la memoria hasta la conexión de un teclado.

Esta arquitectura del sistema informático cambia fundamentalmente todo el paradigma informático (este tema será considerado más adelante en un artículo que describe la estructura del sistema operativo y el software). El papel de los equipos de red en la arquitectura informática está cambiando significativamente. Si antes la red era una forma de conectar computadoras y aplicaciones separadas que se ejecutaban en ellas, ahora el concepto de una computadora separada está esencialmente ausente y la aplicación se puede "distribuir" en varios recursos de hardware de red. La cuestión de la administración (gestión de recursos mediante parámetros de acceso de un sistema informático) entra completamente en el plano de la gestión de red que conecta módulos ejecutivos individuales (no hay más procesador central).

Respuesta a errores de transmisión


El nivel más bajo de control de errores puede considerarse codificación de caracteres transmitidos con la posibilidad de recuperación cuando se producen uno o más errores (el número depende del canal de transmisión de datos). Si, a pesar de la codificación, aparece un símbolo erróneo (o un grupo de símbolos), la sincronización de la lista de canales virtuales del transmisor y el receptor tendrá el efecto más desagradable. En consecuencia, las solicitudes para cambiar la tabla (crear o eliminar un canal) deben tener la máxima posibilidad de recuperación. Sin embargo, si la solicitud se perdió, se distorsionarán los datos de todos los canales virtuales que tengan una velocidad inferior a la velocidad de la solicitud. Además, hay dos opciones para responder, rompiendo completamente todos los canales virtuales o solo los canales virtuales con datos distorsionados (con una tasa de transferencia más baja que el canal perdido),en los datos sujetos a distorsión agregue el símbolo "error" (este símbolo es procesado por el receptor). Si se detecta una desincronización, es necesario restaurar la identidad de las tablas lo más rápido posible, y el tiempo de recuperación de los canales debe determinarse por la longitud del cable (que conecta los dos interruptores). La transmisión más completa de la tabla desde el transmisor al receptor es la opción más fácil, pero es mejor agregar un número de solicitud circular a cada solicitud de edición de la tabla. Por el número de solicitud, determine el momento de desincronización (los números no van secuencialmente) y genere una solicitud para reenviar los cambios perdidos.y el tiempo de recuperación del canal debe determinarse por la longitud del cable (que conecta los dos interruptores). La transmisión más completa de la tabla desde el transmisor al receptor es la opción más fácil, pero es mejor agregar un número de solicitud circular a cada solicitud de edición de la tabla. Por el número de solicitud, determine el momento de desincronización (los números no van secuencialmente) y genere una solicitud para reenviar los cambios perdidos.y el tiempo de recuperación del canal debe determinarse por la longitud del cable (que conecta los dos interruptores). La transmisión más completa de la tabla desde el transmisor al receptor es la opción más fácil, pero es mejor agregar un número de solicitud circular a cada solicitud de edición de la tabla. Por el número de solicitud, determine el momento de desincronización (los números no van secuencialmente) y genere una solicitud para reenviar los cambios perdidos.

El paradigma de comunicación propuesto puede usarse no solo para construir el sistema informático de próxima generación, sino también para mejorar la red existente. El sincronismo y la alta calidad de servicio de los canales de comunicación virtual creados resolverán de manera óptima todos los problemas de transmisión, voz y video (sin desvanecimiento). Para sistemas en tiempo real o sistemas de alta confiabilidad, entre otras cosas, la capacidad de crear muchas rutas alternativas, un control estricto sobre el tiempo de creación del canal y la entrega de datos son muy útiles. La conmutación de paquetes puede ser emulada de manera transparente por un nuevo paradigma, la transmisión de paquetes es solo una creación de canal temporal, transferencia de datos y cierre.

La emulación inversa de una nueva red mediante la conmutación de paquetes no es posible.

Espero que hayan disfrutado el artículo sobre el sistema de comunicaciones. Si durante el proceso de lectura se encontraron errores y no hay acoplamiento, indíquelos. Espero que este texto sirva de base para nuevos proyectos y nuevas empresas que serán comprados por grandes organizaciones. Si hay un deseo de implementar un sistema como un modelo HDL en comunidades como OpenCores.org, estaré muy contento (no olvide señalar la fuente).

Los siguientes artículos describirán otros aspectos (partes) del paradigma computacional. Se planea un artículo sobre los principios mecánicos del diseño de un "avatar".

El algoritmo descrito para construir un sistema de comunicación puede convertirse en parte de un gran conjunto, o incluso en un estándar internacional (realmente espero). Si tiene preguntas, siempre estoy listo para responder, asesorar y verificar "el cumplimiento de la línea general de la parte" con una implementación física específica.

All Articles