ASIM team
LIP6 Laboratory
Paris, France

next up previous
Next: Passage de messages en Up: Noyau de communication sécurisé Previous: Introduction

Écriture distante

Le réseau d'interconnexion HSL (High Speed Link) de la machine MPC fournit une primitive de communication optimisée : l'écriture distante. Le contrôleur de réseau se comporte comme un contrôleur DMA où la lecture des données est effectuée par le contrôleur de réseau du nud local, et où l'écriture des données est effectuée par le contrôleur de réseau du nud distant. Les données sont découpées en paquets par le matériel et celui-ci effectue un comptage en réception pour signaler la fin de la transmission par une interruption, si tous les paquets ont été correctement reçus. Du point de vue logiciel, l'écriture distante est fournie par la couche PUT, qui est l'API de plus bas niveau. L'application utilisatrice doit s'inscrire auprès de cette couche. L'application fournit pour cela une fonction de signalisation asynchrone, et se fait attribuer un ensemble d'identificateurs de messages (entiers sur 24 bits) associés à cette fonction. Dès lors, l'application peut poster une requête DMA non bloquante en fournissant un identificateur de message, une zone de mémoire physique contiguë ainsi qu'une zone de mémoire sur le nud distant, spécifiées par des adresses physiques, et PUT se charge de recopier la zone locale sur le nud destinataire. Lorsque les données sont entièrement rentrées dans le réseau, PUT l'indique par un appel à la fonction de signalisation asynchrone sur le nud local. De même, une fois les données correctement déposées, PUT appelle la fonction de signalisation sur le nud distant. Ces fonctions reçoivent en paramètre l'identificateur de message, ce qui permet à l'application utilisatrice de déterminer les données concernées. Selon le même principe, la couche PUT permet de transporter des messages courts (8 octets), sans préciser de zone de mémoire locale ou distante : les données sont directement fournies en émission comme paramètre de la fonction PUT, et en réception en paramètre de la fonction de signalisation.

La couche PUT constitue la brique de base fondamentale pour construire la pile de protocoles de la machine MPC. Néanmoins, elle nécessite des zones contiguës et verrouillées en mémoire physique pour contenir les données de l'application. Pour obtenir de telles zones, nous avons conçu un module noyau (CMEM), à l'aide du gestionnaire de mémoire virtuelle de FreeBSD, initialement développé pour le système Mach [2]. Ce module, chargé à l'initialisation du système, réserve une zone physique contiguë de grande taille, et en réattribue des parties aux utilisateurs de PUT.


next up previous
Next: Passage de messages en Up: Noyau de communication sécurisé Previous: Introduction

Server design A. Fenyö
mpc@mpc.lip6.fr - contact people
About this Web Site
$Date: 1998/02/19 01:30:00 $
Copyright © 1997-1998 UPMC/LIP6
All rights reserved