Immortalité numérique - Internet synchrone

Je propose de poursuivre le sujet qui a commencé dans l'article précédent (https://habr.com/en/post/489068/). Si, en fait, elle se livrait à des rêves du type comment tout ira bien (ou dépend mal du type de personne) lorsque la singularité technologique et l'immortalité numérique arriveront en l'an 20XX, alors dans cet article et dans les suivants, j'essaierai de faire tout mon possible pour assurer un avenir heureux (singularité) est venu plus vite, à savoir pour créer un paradigme de calcul pour le processeur de cinquième génération (rappelez-vous qu'il y avait quelques lignes à ce sujet).

J'utiliserai «copyright» et nommerai le paradigme informatique créé «Rutel».

Essayons de comprendre: y a-t-il vraiment besoin de quelque chose de radicalement nouveau, ou le vieil homme von Neumann peut-il être «chamanisé» et assez? Les Japonais étaient en feu: alors qu'ils tentaient de créer une nouvelle architecture et un processeur parallèle, les technologies de production des processeurs série conventionnels se sont améliorées. Ils se sont tellement améliorés que tous les paramètres attendus pour un processeur parallèle sur une série régulière ont été atteints.

La probabilité de répéter un tel scénario est actuellement faible pour de nombreuses raisons:

  • Les retards architecturaux existants sont dĂ©jĂ  Ă©puisĂ©s (travaux de Lebedev et autres);
  • Les tailles des transistors sont dĂ©jĂ  comparables aux molĂ©cules;
  • La dissipation thermique ne diminue pratiquement pas avec une baisse des normes technologiques;
  • L'augmentation de la frĂ©quence du processeur n'amĂ©liore pas les performances.

Les développeurs de la technologie informatique n'ont aucune idée, à part une augmentation banale du nombre de cœurs dans un système informatique. Je pense que cette approche n'est pas productive pour les systèmes qui ne sont pas basés sur le concept de "calcul parallèle". Et la pensée logique (séquentielle) d'une personne (programmeur) ne brille pas non plus avec le parallélisme.

Compte tenu des problèmes identifiés, définissons les exigences actuellement avancées pour les systèmes informatiques prometteurs:

  1. Parallélisme
  2. Distribution
  3. Résoudre le problème de la complexité.
  4. Tolérance aux pannes.

La création de tout appareil se fait en réponse à tout besoin. La technologie informatique moderne a été créée en réponse au besoin de grandes quantités de calcul scientifique et technique. Actuellement, l'utilisation principale de la technologie informatique est le «calcul», la «revitalisation» de divers modèles virtuels, certains d'entre eux sont des modèles simplifiés d'objets du monde physique réel, d'autres sont généralement complètement virtuels et interagissent en même temps avec le monde extérieur via diverses interfaces.

Le transfert de la personnalité d’une personne vers un tel système est également un besoin moderne.

Le paradigme informatique de Von Neumann est intrinsèquement assez avancé et puissant, mais reste une calculatrice. La base de la technologie informatique moderne est «l'imitation» de la pensée logique d'une personne (note: seulement la pensée logique, et non la structure du cerveau dans son ensemble), mais elle n'est pas destinée à simuler le monde environnant. La pensée logique d'une personne est un processus mental de haut niveau et est fondamentalement cohérente. Pensez à l'expression: un langage de programmation. Le langage de programmation, base d'interaction avec un système informatique, est logiquement connecté à une partie du corps humain et hérite de nombreuses de ses fonctionnalités.

Par exemple, essayez de dire deux phrases en mĂŞme temps. Oui, et Ă©couter pleinement deux personnes en mĂŞme temps (surtout avec des voix similaires) ne fonctionne pas.

Comme tâche principale , on devrait prendre la tâche de maintenir ou de «revitaliser» les objets du monde virtuel. Le monde virtuel, qui contient à la fois des modèles d'objets du monde réel couplés à des connexions (via divers capteurs et manipulateurs) et des modèles qui n'ont pas d'analogues. À la limite, le «nouveau paradigme informatique» ne doit pas être considéré comme un autre outil pour résoudre des problèmes immédiats, mais comme un ensemble de dimensions supplémentaires pour notre monde physique. Je tiens à noter qu’une personne (dans son ensemble) est un système biologique qui résout exactement le même problème; en conséquence, pour transférer la personnalité d’une personne, un système avec des fonctionnalités identiques ou supérieures sera nécessaire.

OĂą commencer?


Naturellement, vous devez commencer par la postulation des propriétés de l'espace virtuel. La technologie informatique d'aujourd'hui est représentée par un espace unidimensionnel (espace d'adressage infini). Mais cela ne suffit pas pour modéliser un monde tridimensionnel (+ temps), qui pose constamment des problèmes nécessitant des «béquilles» pour leur solution.

Je vais donner des exemples des problèmes inhérents au paradigme informatique moderne:

  1. Après la localisation de l'objet en mémoire, il est impossible de changer sa taille sans recréer. Vous devez utiliser l'adressage indirect, résoudre les problèmes de défragmentation et d'allocation de mémoire. Problèmes avec les débordements de pile et divers tampons.
  2. Il n'y a pas de concept de manque de données dans le système de présentation des données, tout déchet dans la mémoire physique est des données légitimes, ce qui provoque des erreurs.
  3. Il n'y a pas de concept d'un autre système informatique (objet), il n'y a qu'une «bande» de mémoire et un automate qui le modifie. Cette approche pose des problèmes avec l'interaction des tâches même au sein du même processeur (les tâches sont exécutées séquentiellement), et si plus d'un système informatique doit interagir, alors les «béquilles» atteignent des proportions épiques.

Ces exemples ne servent qu'à comprendre que la plupart des gros problèmes sont au cœur même du paradigme informatique, dans les éléments les plus simples de la "brique". Ces «briques» à un moment donné ne veulent pas former une seule structure et tout le «bâtiment» s'effondre.

Postulats (ils seront réapprovisionnés puis réduits à plusieurs basiques):

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

En bref, l'espace virtuel est une mousse multidimensionnelle de bulles en contact les uns avec les autres.

Ces postulats vous permettront de créer n'importe quel système (ensembles d'objets en interaction) à partir du monde réel (physique) ou virtuel. Exemple: accès à une adresse via l'objet "mémoire" en utilisant la dimension "adresse" et il peut y avoir un nombre quelconque de tels espaces d'adressage. Les objets adressés ont des dimensions supplémentaires correspondant à différents espaces d'adressage. Les objets «mémoire» sous forme d'objets physiques peuvent ne pas exister (modèle purement virtuel).

Point important: les postulats n'indiquent pas l'emplacement des objets, la présence et le dispositif de stockage, même le concept d'espace d'adressage ne l'est pas (encore moins un seul). Tout ce que l'on peut dire, c'est la présence potentielle de l'espace (une «bulle»), on ne peut être convaincu de la présence de la bulle elle-même que par la présence d'un «contact». À l'intérieur de la «bulle», tout ce qui peut être «numéroté» est le point de contact. S'il n'y a pas de contacts, ceux-ci sont complètement indépendants et n'affectent en aucune façon les autres systèmes, mais en même temps, ils sont tous dans la «bulle» d'origine et peuvent commencer à interagir à l'avenir.

Pour la tâche de transfert de personnalité, le cerveau numérique ressemblera à une bulle commune, comprenant 100 milliards de bulles, qui contiennent un objet qui émule un neurone ou un objet de communication avec le cerveau biologique. Visuellement, on peut même imaginer l'étirement (déformation de la projection de la "bulle" dans l'espace tridimensionnel) de fils (axones de dendrites) aux points de contact.

La mise en œuvre du système de communication dans le paradigme créé


Attention

Toutes les idées et algorithmes décrits dans cet article sont le résultat de mon activité intellectuelle indépendante et complètement indépendante. En tant qu'auteur, je vous autorise à utiliser, modifier, compléter librement toutes les idées et algorithmes à toute personne ou organisation dans tout type de projet avec l'indication obligatoire de ma paternité.

Pour le paradigme moderne, réaliser l'espace comme un anneau unidimensionnel est assez simple: adresse, données pour «écriture» - «lecture» et signaux «lecture» - «écriture». Pour un paradigme avec une «bulle» multidimensionnelle, il est nécessaire de créer un système de communication pour «tout le monde avec tout le monde» (dans la limite), bien sûr, en réalité, cela est impossible. La plupart des objets seront connectés via des nœuds intermédiaires. La distribution de la «plage de communication» aura un «type normal», plus la distance entre les nœuds est petite, plus le nombre de ces connexions est important (la logique et le bon sens dictent la nécessité de marquer les objets en interaction aussi près que possible les uns des autres). La base d'un système de communication avec des nœuds intermédiaires est un algorithme de multiplexage (division) d'un canal de communication entre plusieurs sources.

Dans un premier temps, il vaut mieux donner une explication simplifiée du principe de fonctionnement de l'algorithme de multiplexage du canal de communication physique.

Les données transmises peuvent être représentées comme une "diffusion" de billes (chaque perle est unique et la séquence ne peut pas être modifiée), qui doit être transmise à travers un tube de diamètre égal au diamètre de la perle. S'il n'y a qu'une seule source de billes, alors il n'y a pas de problème d'accès au «pipe de télécommunication», il est en possession exclusive. S'il y a beaucoup de sources de billes, elles peuvent entrer en collision à l'entrée du "tube", et même à la sortie des billes, vous devez les séparer en bacs séparés.

L'algorithme proposé (par exemple, bus) ressemble à ceci:
  • enfilez les perles de diverses sources sur des fils Ă©lastiques et fixez (un fil sĂ©parĂ© pour chaque source)
  • , , ( ). , .
  • , .
  • ( )
  • ( )
  • : , ( ).
  • , (, ), , .
  • , ( ).

Si au moment où il était nécessaire de placer la bille dans le tube, la bille n'avait pas encore été transférée à travers le tube entrant et la trémie était vide, alors pour garantir l'unicité de l'algorithme de tri, vous devez placer une bille spéciale "vide" à la place. Côté réception, un cordon vide ne sera pas placé dans la trémie, mais simplement jeté.

Vient ensuite un texte destiné aux professionnels des télécommunications.
En raison du désir de couvrir tous les aspects du paradigme des télécommunications, le texte s'est avéré quelque peu désordonné et gonflé. Ce qui nécessite une lecture réfléchie, il peut y avoir des termes inexacts et des erreurs logiques (je serai reconnaissant pour les corrections).

Il y a un problème avec la difficulté de percevoir le texte, je veux compléter la description avec des images, mais je n'ai pas la capacité de dessiner magnifiquement. Si quelqu'un veut porter un tel fardeau, je lui en serai très reconnaissant. En réponse, je ne peux offrir qu'une note de paternité dans chaque figure.

Suivant pour ceux qui n'ont pas peur


État actuel des réseaux de transmission de données.

Les réseaux de transmission de données modernes sont conçus pour une intensité de connexion relativement faible (le nombre de canaux ou de messages individuels) et en même temps, des exigences simultanées affaiblies sont imposées sur la stabilité du temps, la vitesse de livraison, le temps de création d'un canal virtuel, le temps qu'il faut pour utiliser un chemin de transfert de données de sauvegarde et le pourcentage maximal d'utilisation de la bande passante du canal physique . Un réseau de données construit sur de tels principes ne répond pas de manière critique aux exigences mises en avant par le nouveau paradigme informatique. Pour comprendre l'ampleur de l'augmentation attendue du trafic et des exigences de vitesse, vous pouvez prendre la quantité et la vitesse des données transmises via la pile du processeur et les données associées en mémoire (les pointeurs sont le plus souvent passés à travers la pile) et multiplier par le nombre de cœurs de calcul d'un supercalculateur typique.Ces exigences seront la barre inférieure des exigences pour le réseau de données.

Un système informatique distribué est un grand nombre de modules informatiques (blocs) interconnectés (participant aux calculs conjoints) qui génèrent, dans le cas général, un grand nombre de connexions à court terme. Les connexions nécessitent des vitesses de transmission plus élevées combinées à une latence faible et stable et une livraison garantie.

Les exigences posées au réseau de transmission de données du point de vue d'un système informatique distribué (distribué), les performances de l'ensemble du système dépendent en définitive de la mise en œuvre de celles-ci.

  • Temps de crĂ©ation de canal virtuel extrĂŞmement court. Le temps de crĂ©ation du canal virtuel doit ĂŞtre comparable au temps de remplissage du tampon local de l'Ă©metteur (routeur).
  • .
  • . , , .
  • .
  • , . () .
  • (90% ).

Idéalement, un système de communication nécessite la connexion directe de chaque composant du système avec chacun, mais en réalité, cela est impossible et vous devez transmettre des données via des nœuds intermédiaires. Dans chaque nœud d'un tel réseau, il y a un commutateur connecté à plusieurs des mêmes nœuds à l'aide de lignes de communication partagées (dans des canaux virtuels). La base d'un tel système de communication est constituée d'algorithmes pour multiplexer (diviser) un canal physique en un grand nombre de canaux virtuels et transférer des données entre canaux virtuels dans divers canaux physiques.
Les algorithmes (principaux) actuellement utilisés (hiérarchie synchrone et système de transmission de données par paquets) d'une telle séparation (multiplexage) du canal physique ne satisfont pas de manière critique aux exigences avancées.

Les canaux créés par les méthodes de la hiérarchie synchrone (SDH) ont d'excellentes performances en termes de stabilité de la vitesse de transmission, d'absence de collisions et de l'effet de l'utilisation des canaux sur ces paramètres. Dans le même temps, le délai de transmission laisse beaucoup à désirer (il fonctionne avec des conteneurs de taille suffisamment grande) et il n'y a pas de flexibilité dans les paramètres des canaux créés. Pour un fonctionnement optimal du réseau informatique, des temps de retard (c'est-à-dire des temps de transfert de données) sont requis, qui doivent être déterminés par deux paramètres: la distance physique (longueur du câble) et être proportionnel au taux de transfert de données demandé. Les commutateurs doivent pouvoir prendre en charge simultanément un grand nombre de canaux virtuels (jusqu'à plusieurs millions en même temps) avec un temps de commutation constant. De plus, les canaux (SHD) n'ont pas une flexibilité suffisante dans la vitesse des canaux créés,et le temps qu'il faut pour créer un canal virtuel est généralement une triste image (nous avons besoin de temps comparables au temps de retard de transmission).

L'utilisation de la commutation de paquets n'a aucun sens (lorsqu'elle est utilisée sous forme canonique), aucune exigence n'est remplie du tout (pour un système informatique suffisamment grand). Le temps de création du canal n'est partiellement exécuté que du côté de l'émetteur, le travail avec un grand nombre de routes possibles en temps réel n'est pas fourni, vous ne pouvez pas construire une table pour toutes les options de connexion (taille trop grande et coûts administratifs). Un retard garanti pour la transmission de données par paquets est en principe impossible. La régulation de la vitesse de transfert des données et l'accès garanti ne sont possibles que grâce à la bande passante de réserve, ce qui n'est pas possible avec un grand nombre de canaux virtuels. Les pertes de données (collisions) sont fondamentalement présentes dans la transmission de paquets (pour les valeurs réelles des tampons dans le commutateur).Tous les problèmes de transmission de données par paquets sont considérablement exacerbés à l'approche de la capacité maximale du canal physique.

Conclusion : Pour le fonctionnement optimal d'un système informatique distribué, un nouveau paradigme de construction d'un système de transfert de données est nécessaire.

La base du système de transmission de données est un procédé (algorithme) pour diviser un canal physique en le nombre requis de canaux virtuels et au maximum synchrone pour construire un canal virtuel de bout en bout entre le récepteur et l'émetteur. Selon les résultats d'une analyse préliminaire de la situation, le plus optimal est l'algorithme SDH. Pour surmonter les inconvénients inhérents au SDH, il est nécessaire de «repenser» ce système. L'algorithme SDH est en grande partie une continuation des idées incarnées dans PDH, qui est né des systèmes de téléphonie fixe. Pour un système informatique distribué, la présence d'une trame d'une durée de 125 μs, ainsi que la division en de nombreux canaux de la même performance (et la hiérarchie avec synchronisation de bout en bout, aussi), est une restriction absolument insensée (pour la téléphonie, c'était la base des bases).Pour le système informatique "TK" pour le niveau le plus bas du système de transfert de données sera comme suit:

Divisez le flux source en un nombre donné de canaux de données virtuels, avec un débit binaire donné pour chaque canal.

Pour assurer le transfert de la charge utile du canal entrant vers le canal sortant, en utilisant un tampon de données dont la taille tend vers un caractère.

Il n'y a pas d'exigence explicite pour la présence d'une trame de taille constante ou variable et il est conseillé de ne pas l'introduire, même comme moyen de déterminer la période de temps pendant laquelle la liste des canaux virtuels (dans laquelle le canal physique est divisé) est constante. Si vous introduisez le concept d'une trame, la création d'un canal supplémentaire prendra du temps, déterminé par la taille de la trame. Si aucune action supplémentaire n'est entreprise, le délai de création d'un nouveau canal sera en moyenne la moitié du temps de trame multiplié par le nombre de commutateurs de transit, ce qui augmentera considérablement le temps de création de nouveaux canaux virtuels (et de suppression des anciens).

Comment diviser un seul canal physique en un nombre arbitraire de canaux virtuels séparés avec un taux de transmission arbitraire, soumis à la règle de la somme des vitesses (la somme des vitesses des canaux virtuels plus le coût d'administration des canaux ne doit pas dépasser la vitesse du canal principal)?

De plus, l'exigence de synchronisme, à temps égal entre les différentes données transmises, est mise en avant pour les canaux en cours de création, ce qui garantit la taille minimale des tampons. L'exigence d'une taille de tampon minimale découle de l'impossibilité d'organiser un tampon à l'extérieur du cristal de commutateur dans le commutateur. Essayez de mettre en mémoire tampon un flux de 100 G (400 G) ou plus, et s'il existe dix ou cent de ces flux, même des irrégularités minimes déborderont la mémoire de toute taille raisonnable, et le débit d'une RAM typique est inférieur à la vitesse d'un seul de ces flux. Si vous souhaitez créer un canal virtuel (ou plusieurs canaux avec la même vitesse de transmission), il n'y a pas de problème (SDH), mais lors de la création de deux canaux ou plus avec des taux de transfert de données différents, des conflits peuvent survenir,en même temps, il est nécessaire de transmettre des données appartenant à différents canaux virtuels. Pour satisfaire aux exigences d'un système de transmission de données, nous allons modifier l'algorithme de multiplexage 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. ( ) ( ). . « » , () . « » , . , ( ). , () . , , . , , .

Après la transmission via un canal physique, le flux total doit être désassemblé non seulement en raison de la réorganisation des canaux virtuels entre les canaux physiques, mais également en raison de la nécessité potentielle d'ajouter ou de supprimer des caractères «aucune donnée» (cela n'est possible que lors de l'écriture ou de la lecture de caractères dans le tampon). Une «modification» partielle ou le remplacement de données n'a pas beaucoup de sens. Vous pouvez ajouter la possibilité de créer un flux total qui n'est pas compris dans les commutateurs intermédiaires - un tunnel (il ne comprendra pas les composants dans les commutateurs intermédiaires). La création d'un «tunnel» virtuel est possible si vous créez un flux récapitulatif à l'aide de symboles de service alternatifs (l'algorithme reste le même, chaque niveau de tunnel nécessite son propre ensemble de symboles de service), puis transférez le flux récapitulatif résultant en tant que canal virtuel normal.Côté réception, une procédure supplémentaire est nécessaire pour démonter un tel canal en ses composants (le nombre d'analyses est égal au niveau du «tunnel»). La création de «tunnels» est bénéfique en raison de la diminution du nombre de canaux virtuels et, par conséquent, des tampons requis dans les commutateurs intermédiaires (et le délai de commutation proportionnel à la vitesse du canal virtuel sera moindre). Le nombre de tampons limite le nombre de canaux virtuels passant simultanément par le commutateur. Tout canal physique (pour la réception ou la transmission) peut utiliser n'importe quel tampon (les tampons sont une ressource commune), ce qui augmente le coefficient de leur utilisation.Physiquement, le tampon est un petit FIFO pour plusieurs caractères à stocker (jusqu'à 10 et est déterminé par le temps nécessaire pour créer un nouveau canal virtuel et l'inégalité maximale du temps de transfert de données) avec le nombre d'interfaces de lecture et d'écriture égal au nombre de modules collectant ou désassemblant le canal total dans ce commutateur (tous physiques et canaux virtuels), alors qu'il y a une garantie de pas plus d'un appel par cycle d'horloge. La période de synchronisation d'horloge des tampons coïncide avec la fréquence de réception et de transmission des caractères. Si vous avez un canal à large bande et un grand nombre de canaux plus petits, vous pouvez affecter de gros caractères à un canal rapide et écrire plusieurs éléments de données dans des tampons à la fois (ou une autre option). L'architecture décrite est très bien en cascade.Il existe de nombreuses options de configuration et il est nécessaire de rechercher le compromis optimal.

Lors de la construction d'un réseau de communication au sein d'une seule puce, les modules émetteurs se transformeront en deux registres (un côté émetteur et un côté récepteur), l'algorithme lui-même ne changera pas. Si les vitesses et la composition des canaux créés sont constantes, la taille du matériel de commutation peut être grandement optimisée.

Au total, le réseau de transmission de données se compose de commutateurs et de câbles de communication entre leurs ports. Le but du réseau est de fournir des données clients avec la meilleure qualité possible. Le client se connecte au réseau via un périphérique similaire à un commutateur standard, dont la caractéristique distinctive est la possibilité d'accéder aux tampons de données par le matériel du système informatique lui-même et leur plus grande taille. Dès que les données reçues du canal virtuel créé sont écrites dans la mémoire tampon du commutateur connecté au système informatique (pour la réception), le mécanisme (similaire à une interruption dans le système informatique habituel) doit être activé, en attendant que les informations apparaissent suffisamment pour déterminer le service appelé et le logiciel correspondant sera connecté pour maintenir cette mémoire tampon.La différence avec la "carte réseau" moderne est la possibilité de créer un grand nombre de canaux parallèles (accès parallèle au réseau de données), ce qui supprime la file d'attente interne de paquets du (vers) le réseau vers (du) un grand nombre de cœurs de calcul (threads). Automatisation du lancement des "data handlers".

La création d'un canal peut être divisée en deux étapes: l'administration (recherche d'itinéraire, attribution de vitesse, autorisation d'accès, etc.) et la création directe d'un canal virtuel (lorsque le transfert de données est nécessaire). La première étape est effectuée relativement rarement (le réseau est relativement statique) et cela peut être fait à l'avance au stade du lancement de l'application. La deuxième étape doit être effectuée le plus rapidement possible, c'est cette étape qui détermine les performances du réseau de données et les performances de l'ensemble du système informatique distribué.

La création et la suppression directes d'un canal virtuel (toutes les données nécessaires sont préparées au premier stade) doivent se produire à la vitesse la plus élevée possible. Il est plus juste de dire que la création du canal et la transmission des données doivent avoir lieu simultanément.

L'algorithme devrait ressembler à ceci: au moment initial, le canal virtuel n'existe pas encore (la première partie des données est écrite dans le tampon associé à la source de données), le multiplexeur ne lui a pas alloué une partie de la bande passante du canal physique, il n'y a que des canaux de service et vous devez décider lequel un nouveau canal virtuel sera créé à partir des canaux physiques. Lorsqu'une quantité suffisante de données apparaît dans le tampon afin de créer un canal virtuel (direction et vitesse requise, elles sont sélectionnées dans la liste des alternatives), il est nécessaire de former et d'envoyer (en utilisant le canal de service) un paquet de données avec une demande de création d'un canal virtuel dans le canal physique souhaité. Package avec la requête et les paramètres du canal virtuel créé,le passage à travers le dispositif de synthèse du canal total de l'émetteur et l'analyse du canal total du récepteur du canal physique sélectionné, modifie la composition de la table des canaux virtuels du récepteur et de l'émetteur. Le package contenant les paramètres doit contenir le symbole de service «ajouter un canal», après quoi le contrôleur commence à transmettre le flux total avec le nouveau canal virtuel ajouté. Au moment d'ajouter un nouveau canal virtuel, l'échantillonnage des données à partir du tampon commence et les caractères du canal virtuel créé sont envoyés sur le côté du routeur sélectionné. Un nouveau canal est créé sans avertir le commutateur distant, basé uniquement sur la bande passante libre du canal physique local. Les performances du canal créé sont toujours inférieures aux performances initiales du canal de service (partie libre du canal physique),un nouveau canal est créé en séparant une partie de la ressource du canal de service. Lors du traitement (réception d'un canal physique) d'un paquet avec une demande de création d'un nouveau canal virtuel, il est nécessaire de déterminer dans lequel des tampons disponibles (gratuits) commencer à enregistrer les données du nouveau canal dans le temps restant avant de recevoir le symbole «ajouter un canal». Il est impossible d'enregistrer la demande en mémoire et de la traiter plus tard, la composition du flux total changera immédiatement après avoir reçu le symbole «créer un canal» (ou avec un retard connu) et le flux total contenant les symboles du canal virtuel créé commencera à être reçu, ce qui détruira le processus de décodage du flux total (si la liste des canaux dans le récepteur Ne changera pas). Le temps de calculer le numéro du canal physique sortant vers lequel il est nécessaire de commencer à envoyer des données à partir du tampon alloué,doit être minimal (déterminé par la taille du tampon), ce qui signifie que les données de vitesse et de route doivent déjà être dans l'en-tête du paquet avec une demande de création d'un nouveau canal virtuel (il n'y a essentiellement pas de temps pour accéder à la table dans la mémoire externe).

La formation d'un paquet avec une requête n'est possible qu'après avoir reçu toutes les données nécessaires sur le sens de commutation et la vitesse du canal créé. Les tampons de canaux virtuels dans le commutateur doivent être de petite taille, ce qui signifie que ces données (vitesse et numéro de port dans le commutateur suivant) doivent être au tout début des données transmises, mais la taille du tampon actuel permettrait d'enregistrer toutes les données suivantes jusqu'à la formation d'un nouveau canal total. sans débordement. Une fois le paquet contenant la demande formé, vous devez supprimer le symbole contenant les données sur le numéro du canal physique menant au commutateur suivant (si l'itinéraire est spécifié en spécifiant la séquence des ports de commutateur). Pour fermer le canal virtuel, il n'est pas nécessaire de transmettre le paquet en utilisant le canal de service,il suffit de mettre le symbole de service "supprimer canal" dans les données transmises du canal supprimé. Au moment de recevoir le symbole "suppression de canal" par le module de synthèse de canaux multiplex, le canal virtuel correspondant est supprimé puis le canal récapitulatif mis à jour généré ne contient plus le canal virtuel distant. Pour la suppression automatique (nettoyage), la prévention des «fuites» des performances d'un canal physique, il est nécessaire d'intégrer dans les tampons matériels des canaux virtuels, un compteur du nombre de caractères transmis (au choix) et en atteignant une certaine valeur (timeout) transmettre automatiquement le symbole «canal fermé». Pour prolonger la durée de vie du canal virtuel, vous pouvez saisir le symbole "reset counter" ajouté aux données. Le commutateur local peut ignorer l'extension de la durée de vie du canal,ce qui sera la réponse au manque de bande passante du canal physique. Si lors de la création d'un canal virtuel, il doit être commuté sur un canal physique avec un manque de bande passante libre, la vitesse du canal de service n'est pas suffisante pour créer un nouveau canal virtuel ou il n'y a pas de tampons libres ou pour une autre raison, alors le paquet de demande doit être détruit. Plus correctement, il est redirigé vers le module stub, qui recevra tous les caractères du canal virtuel défaillant et générera tous les messages nécessaires pour le côté émetteur (ces messages sont transmis via le canal de service). Je ne considère pas l'option avec mise en mémoire tampon en raison de la complexité de la mise en œuvre. Cette approche est optimale pour les chaînes de courte longueur,pour eux, le délai de livraison est minime et n'affectera pas grandement les performances globales en raison des répétitions de la création d'un canal virtuel. Si le canal a été créé avec succès, tout ce qui peut se produire est une distorsion des données due à des interférences dans l'équipement. Contrairement au réseau existant (Ethernet), il est nécessaire non seulement d'envoyer un paquet, mais également de s'assurer qu'il est correctement construit jusqu'au destinataire, déjà au niveau de service le plus bas. L'envoi de données "nulle part" ne satisfait généralement personne, et vérifier la livraison des données en attendant un message de réponse est très "désagréable" en raison du temps inconnu nécessaire. Envoi d'une notification sur la création d'un canal à l'aide d'un canal de service, une opération qui ne nécessite pas de ressources particulièrement importantes.Vous pouvez implémenter une autre option - créer immédiatement un anneau combinant la source et le récepteur des données transmises (le paquet s'exécutera immédiatement dans un cercle dans son intégralité ou un paquet de réponse sera formé par le commutateur côté réception). Vous pouvez générer une telle notification (en cas de défaillance de la création du canal) sur chaque commutateur intermédiaire afin que l'émetteur sache dans les plus brefs délais l'impossibilité de créer le canal. Si vous ne voulez vraiment pas retransmettre des données lorsqu'il est impossible de créer un canal virtuel avec la vitesse requise, cela est optimal pour les itinéraires avec un délai de livraison très long (de l'autre côté du globe via satellite), alors vous pouvez essayer d'utiliser l'algorithme de livraison partielle.Vous pouvez générer une telle notification (en cas de défaillance de la création du canal) sur chaque commutateur intermédiaire afin que l'émetteur sache dans les plus brefs délais l'impossibilité de créer le canal. Si vous ne voulez vraiment pas retransmettre des données lorsqu'il est impossible de créer un canal virtuel avec la vitesse requise, cela est optimal pour les itinéraires avec un délai de livraison très long (de l'autre côté du globe via satellite), alors vous pouvez essayer d'utiliser l'algorithme de livraison partielle.Vous pouvez générer une telle notification (en cas de défaillance de la création du canal) sur chaque commutateur intermédiaire afin que l'émetteur sache dans les plus brefs délais l'impossibilité de créer le canal. Si vous ne voulez vraiment pas retransmettre des données lorsqu'il est impossible de créer un canal virtuel avec la vitesse requise, cela est optimal pour les itinéraires avec un délai de livraison très long (de l'autre côté du globe via satellite), alors vous pouvez essayer d'utiliser l'algorithme de livraison partielle.alors vous pouvez essayer d'utiliser l'algorithme de livraison partielle.alors vous pouvez essayer d'utiliser l'algorithme de livraison partielle.

Au moment de l'impossibilité de créer un canal avec la vitesse requise, un canal avec une vitesse inférieure est créé (puis un canal est créé avec cette vitesse) et au moment du débordement du tampon, le tampon est effacé et un symbole indiquant le débordement du tampon et le nombre de caractères supprimés y est placé. En acceptant un tel caractère, le destinataire forme une liste de ces réductions de vitesse et l'envoie à l'émetteur. L'émetteur diminue la vitesse du canal principal, calcule les données qui ont été ignorées (les données ignorées peuvent être déterminées simplement à partir de la liste des réductions de vitesse et de la taille de la mémoire tampon) et les envoie de la manière la plus optimale (bien qu'il s'agisse d'un itinéraire alternatif).

Le routage dans les réseaux à commutation de paquets existants est basé sur l'adresse dans l'en-tête de paquet, les tables de routage et d'autres règles dans les routeurs intermédiaires. Cette approche fonctionne bien pour un nombre relativement petit de définitions de route et la possibilité de mettre en mémoire tampon les données reçues d'un seul paquet; il faut un temps relativement long pour déterminer le numéro de port auquel le paquet doit être envoyé. Pour les systèmes à haute vitesse avec une courte durée de vie du canal virtuel, la vitesse d'accès à la mémoire des tables de commutation ne sera pas suffisante (et la table elle-même aura une taille en mégaoctets pour chaque canal physique - vous devez allouer de la RAM égale au nombre maximum possible de canaux virtuels) et il est plus avantageux de décrire l'itinéraire directement. transferts de canaux physiques,à travers lequel un canal virtuel devrait être construit. La taille des informations d'adresse ne sera pas trop grande, le nombre de commutateurs intermédiaires est relativement petit et si 8 bits (le numéro du port physique ou du tunnel) sont alloués à chaque commutateur, alors l'analogue de l'adresse IP6 vous permettra de construire une route de 16 commutateurs.

Pour la méthode proposée, la table est transformée en un octet pour chaque tampon (à savoir, le canal virtuel existant et potentiellement impossible). De plus, il faut tenir compte du fait que l'adresse n'est transmise qu'au moment de la création du canal (elle est progressivement effacée au fur et à mesure qu'elle se déplace vers le récepteur), et l'utilisation d'un tunnel virtuel réduit considérablement les coûts de routage. Pour créer des chaînes de canaux physiques, vous pouvez utiliser un analogue de moteurs de recherche conventionnels ou DNS à partir de réseaux modernes, définir des paramètres de destination (tout ensemble de paramètres: l'adresse IP est également un paramètre normal) et nous obtenons un ensemble de chaînes avec des itinéraires alternatifs. L'adressage relatif a augmenté la protection contre les accès non autorisés, il y a un contrôle total sur l'itinéraire. Pour que le réseau fonctionne,il n'y a pas besoin de la présence obligatoire (fonctionnement) de composants de haut niveau, l'itinéraire peut être défini à l'avance (pour les réseaux avec un système de communication permanent, par exemple, le câblage sur une carte de circuit imprimé - les connexions ne changent pas).

Le contrôle direct du trafic, l'allocation (planification) de la bande passante, etc. est impossible en raison de la vitesse élevée de création d'un canal et de la taille potentiellement importante du réseau. Pour équilibrer la charge des canaux, il est nécessaire d'utiliser des méthodes indirectes, telles que la planification de divers itinéraires, l'attribution de taux de transmission en tenant compte des statistiques accumulées sur l'utilisation d'un canal virtuel. Lorsque le canal physique est surchargé, les données des canaux virtuels déjà existants ne sont pas supprimées, il est impossible de créer uniquement un nouveau canal. Si nous prenons en compte la nature du trafic (principalement des messages courts et fréquents), la disponibilité des routes de sauvegarde et la procédure très rapide de création (suppression) d'un canal virtuel, alors refuser de créer un canal n'entraînera pas une baisse catastrophique des performancesil y aura juste un léger affaissement dans la vitesse des calculs (la recréation du canal se produira au moment du message sur l'erreur de connexion ou l'expiration d'un temps prédéterminé). Lorsque des statistiques négatives sont accumulées (à savoir des statistiques et non une réaction à un événement individuel), le logiciel de gestion des commutateurs surveille la fréquence des erreurs de connexion et planifie les paramètres de canal en tenant compte de ces données. Avec une forte probabilité, la congestion elle-même s'arrêtera dans un délai de centaines de nanosecondes, et le logiciel du routeur devrait traiter les problèmes de planification stratégique. Une telle planification peut inclure la possibilité de modifier des itinéraires déjà créés (les données sont stockées dans le multiplexeur), sinon il n'est pas possible de reconstruire de manière fiable le réseau de routes (lorsque le logiciel demande toujours la recréation de l'itinéraire).

Les programmes de communication (fils du processus informatique) avec les sources (récepteurs) des données transmises sont construits selon le même schéma que dans les commutateurs.

Un système informatique est un grand nombre de modules exécutifs différents intégrés par un réseau de communication. Un réseau de communication remplace tous les bus et interfaces locaux, de l'accès à la mémoire à la connexion d'un clavier.

Cette architecture du système informatique change fondamentalement tout le paradigme informatique (cette question sera examinée plus loin dans un article décrivant la structure du système d'exploitation et du logiciel). Le rôle des équipements de réseau dans l'architecture informatique évolue considérablement. Si, auparavant, le réseau était un moyen de connecter des ordinateurs et des applications distincts fonctionnant sur eux, le concept d'un ordinateur distinct est désormais pratiquement absent et l'application peut être «répartie» sur diverses ressources matérielles du réseau. La question de l'administration (gestion des ressources par les paramètres d'accès d'un système informatique) se situe complètement dans le plan de la gestion de réseau reliant les modules exécutifs individuels (il n'y a plus de processeur central).

RĂ©ponse aux erreurs de transmission


Le niveau de contrôle des erreurs le plus bas peut être considéré comme le codage des caractères transmis avec la possibilité de récupération lorsqu'une ou plusieurs erreurs se produisent (le nombre dépend du canal de transmission des données). Si, malgré le codage, un symbole erroné (ou un groupe de symboles) apparaît néanmoins, alors la synchronisation de la liste des canaux virtuels de l'émetteur et du récepteur aura l'effet le plus désagréable. Par conséquent, les demandes de modification de la table (création ou suppression d'un canal) devraient avoir la possibilité maximale de récupération. Si la demande a néanmoins été perdue, les données de tous les canaux virtuels ayant une vitesse inférieure à la vitesse dans la demande seront déformées. De plus, il existe deux options pour répondre, en cassant complètement tous les canaux virtuels ou uniquement les canaux virtuels avec des données déformées (avec un taux de transfert inférieur à celui du canal perdu),dans les données soumises à distorsion ajouter le symbole "erreur" (ce symbole est traité par le récepteur). Si une désynchronisation est détectée, il est nécessaire de restaurer l'identité des tables le plus rapidement possible, et le temps de récupération des canaux doit être déterminé par la longueur du câble (connexion des deux commutateurs). La transmission complète de la table de l'émetteur au récepteur est l'option la plus simple, mais il est préférable d'ajouter un numéro de demande circulaire à chaque demande d'édition de table. Par le numéro de demande, déterminez le moment de la désynchronisation (les numéros ne vont pas de manière séquentielle) et générez une demande de renvoi des modifications perdues.et le temps de récupération du canal doit être déterminé par la longueur du câble (connexion des deux commutateurs). La transmission complète de la table de l'émetteur au récepteur est l'option la plus simple, mais il est préférable d'ajouter un numéro de demande circulaire à chaque demande d'édition de table. Par le numéro de demande, déterminez le moment de la désynchronisation (les numéros ne vont pas de manière séquentielle) et générez une demande de renvoi des modifications perdues.et le temps de récupération du canal doit être déterminé par la longueur du câble (connexion des deux commutateurs). La transmission complète de la table de l'émetteur au récepteur est l'option la plus simple, mais il est préférable d'ajouter un numéro de demande circulaire à chaque demande d'édition de table. Par le numéro de demande, déterminez le moment de la désynchronisation (les numéros ne vont pas de manière séquentielle) et générez une demande de renvoi des modifications perdues.

Le paradigme de communication proposé peut être utilisé non seulement pour construire le système informatique de prochaine génération, mais aussi pour améliorer le réseau existant. Le synchronisme et la haute qualité de service des canaux de communication virtuels créés résoudront de manière optimale tous les problèmes de transmission, voix, vidéo (sans décoloration). Pour les systèmes en temps réel ou les systèmes à haute fiabilité, entre autres, la possibilité de créer de nombreuses routes alternatives, un contrôle strict sur le temps de création du canal et la livraison des données sont très utiles. La commutation de paquets peut être émulée de manière transparente par un nouveau paradigme, la transmission de paquets n'est qu'une création de canal temporaire, un transfert de données et une fermeture.

L'émulation inverse d'un nouveau réseau par commutation de paquets n'est pas possible.

J'espère que vous avez apprécié l'article sur le système de communication. Si au cours du processus de lecture, des erreurs ont été détectées et aucun amarrage, veuillez les indiquer. J'espère que ce texte servira de base à de nouveaux projets et startups qui seront rachetés par de grandes organisations. S'il y a une volonté d'implémenter un tel système comme modèle HDL dans des communautés comme OpenCores.org, je serai très content (n'oubliez pas de pointer vers la source).

Les articles suivants décriront d'autres aspects (parties) du paradigme de calcul. Un article est prévu sur les principes mécaniques de conception d'un «avatar».

L'algorithme décrit pour la construction d'un système de communication peut faire partie d'un grand ensemble, voire d'une norme internationale (j'espère vraiment). Si vous avez des questions, je suis toujours prêt à répondre, conseiller et vérifier "pour le respect de la ligne générale du parti" avec une implémentation physique spécifique.

All Articles