spufs | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le système de fichiers fournit un espace de nom similaire à la mémoire partagée ou aux files de messages POSIX. Les utilisateurs qui ont les permissions d'écriture sur le système de fichiers peuvent utiliser spu_create(2) pour créer des contextes SPU dans le répertoire racine du système de fichiers SPU (spufs).
Chaque contexte SPU est représenté par un répertoire contenant un ensemble prédéfini de fichiers. Ces fichiers peuvent être utilisés pour manipuler l'état de la SPU logique. Les utilisateurs peuvent modifier les permissions des fichiers, mais ne peuvent pas ajouter ou supprimer des fichiers.
Options de montage | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Fichiers | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Tous les fichiers qui supportent les opérations de read(2) supportent également les opérations de readv(2), et tous les fichiers qui supportent les opérations de write(2) supportent également les opérations de writev(2). Tous les fichiers supportent les opérations des familles access(2) et stat(2), mais pour le dernier appel, les seuls champs de la structure stat renvoyée contenant une information fiable sont st_mode, st_nlink, st_uid et st_gid.
Tous les fichiers supportent les opérations de chmod(2)/fchmod(2) et chown(2)/fchown(2), mais ne pourront pas accorder les permissions qui iraient en contradiction avec les opérations possibles (par exemple, l'accès en lecture du fichier wbox).
L'ensemble actuel de fichiers est :
De nouveaux attributs de capacités pourront être ajoutés dans le futur.
La lecture ou l'écriture dans ce fichier nécessite que le contexte ne soit pas ordonnancé, aussi, l'utilisation de ce fichier n'est pas recommandé lors de l'éxecution normale d'un programme.
Le fichier regs n'existe pas pour les contextes créés avec l'attribut SPU_CREATE_NOSCHED.
Si aucune donnée n'est disponible dans la boîte à lettres et que le descripteur de fichier a été ouvert sans O_NONBLOCK, l'appel bloquera jusqu'à ce que la SPU écrive dans son canal de boîte à lettres. Lorsque une donnée a été lue avec succès, quatre octets sont placés dans le tampon de données et la valeur 4 est renvoyée.
S'il n'y a pas d'espace disponible dans la boîte à lettres et que le descripteur de fichier a été ouvert sans O_NONBLOCK, l'appel bloquera jusqu'à ce que la SPU lise son canal boîte à lettres PPE (PowerPC Processing Element). Lorsqu'une donnée a été écrite avec succès, l'appel système renvoie 4 comme résultat de fonction.
Lorsqu'une chaîne complète a été lue, toutes les opérations de lecture suivantes renverront zéro octet et il faudra ouvrir un nouveau descripteur de fichier pour lire une nouvelle valeur.
Excepté pour le fichier npc, ces fichiers n'existent pas dans les contextes créés avec l'attribut SPU_CREATE_NOSCHED.
Le fichier wbox_info contient un tableau de messages de 4 octets qui ont été envoyés à la SPU. Sur les machines CBEA actuelles, le tableau a une longueur de 4 éléments, ainsi, on peut lire jusqu'à 4 * 4 = 16 octets. Si une entrée de file de boîte à lettres est vide, les octets lus dans l'emplacement correspondant sont indéterminés.
Le fichier dma_info contient le contenu de la file DMA du MFC de la SPU, représenté par la structure suivante :
struct spu_dma_info { uint64_t dma_info_type; uint64_t dma_info_mask; uint64_t dma_info_status; uint64_t dma_info_stall_and_notify; uint64_t dma_info_atomic_command_status; struct mfc_cq_sr dma_info_command_data[16]; };
Le dernier membre de cette structure de données est la file DMA réelle contenant 16 entrées. La structure mfc_cq_sr est définie ainsi :
struct mfc_cq_sr { uint64_t mfc_cq_data0_RW; uint64_t mfc_cq_data1_RW; uint64_t mfc_cq_data2_RW; uint64_t mfc_cq_data3_RW; };
Le fichier proxydma_info contient des informations similaires mais décrit la file DMA proxy (c'est-à-dire, les DMA initiés par des entités extérieures à la SPU). Le fichier a le format suivant :
struct spu_proxydma_info { uint64_t proxydma_info_type; uint64_t proxydma_info_mask; uint64_t proxydma_info_status; struct mfc_cq_sr proxydma_info_command_data[8]; };
L'accès à ces fichiers nécessite que le contexte SPU ne soit pas ordonnancé - l'utilisation fréquente serait inefficace. Ces fichiers ne doivent pas être utilisés dans l'exécution normale d'un programme.
Ces fichiers n'existent pas dans les contextes créés avec l'attribut SPU_CREATE_NOSCHED.
struct mfc_dma_command { int32_t pad; /* reserved */ uint32_t lsa; /* local storage address */ uint64_t ea; /* effective address */ uint16_t size; /* transfer size */ uint16_t tag; /* command tag */ uint16_t class; /* class ID */ uint16_t cmd; /* command opcode */ };
Les écritures doivent avoir une taille d'exactement sizeof(struct mfc_dma_command) octets. La commande sera envoyée à la file proxy MFC de la SPU et la balise enregistrée dans le noyau (voir plus loin).
/mss Fournit un accès à la fonctionnalité de synchronisation multisource (MSS) MFC. En effectuant un mmap(2) sur ce fichier, les processus peuvent accéder à la zone MSS de la SPU.
Les opérations suivantes sont prises en charge :
Les opérations suivantes sont prises en charge :
Le nombre de SPU physiques est fourni sous forme d'une chaîne ASCII hexadécimale.
EXEMPLE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 18 décembre 2007 et révisée le 14 janvier 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 7 spufs ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
gid=<gid> | Options de montage |
mode=<mode> | Options de montage |
uid=<uid> | Options de montage |