wiki:rpc_implementation

Version 1 (modified by alain, 8 years ago) (diff)

--

Les différentes instances du noyau communiquent entre elles sur le modèle client/serveur au moyen de RPCs (Remote Procédure Call. Cette section décrit le mécanisme RPC implémenté dans ALMOS-MK.

Rappelons qu'un cluster possède deux index:

  • CID est un index codé sur 32 bits. Il permet d'indexer de façon continue, de 0 à N-1, l'ensemble des clusters contenant au moins un processeur, c'est à dire l'ensemble des instances du noyau. Cet index est - pour l'instant - défini dans le fichier arch_info.
  • CXY est un index codé sur 32 bits. Il représente l'extension d'adresse physique qu'il faut concaténer aux 32 bis de l'adresse locale pour accéder à la mémoire ou aux périphériques contenus dans un cluster. Dans le cas particulier de l'architecture TSAR, cet index CXY possède un format fixe qui permet d'extraire les coordonnées (X,Y) du cluster dans le mes 2D, mais ceci n'est pas vrai pour toutes les architectures visées par ALMOS. Je pense que cet index devrait lui aussi être explicitement défini, dans le fichier arch_info.

N'importe quel thread client s'exécutant sur n'importe quel CPU de n'importe quel cluster peut envoyer une RPC vers n'importe quel cluster server, identifié par son index CXY.