Brevet FR2720529A1 — publié le 19951201

La présente invention concerne les systèmes de traitement de données équipés d'une unité de stockage et d'une unité de sauvegarde, et, plus particulièrement, un procédé pour la sauvegarde instantanée de l'image des données de ladite unité de stockage et son transfert vers ladite unité de sauvegarde. Une opération de sauvegarde des données d'une unité de stockage vers une unité de sauvegarde consiste généralement en la copie des données d'une unité vers l'autre à travers un ou plusieurs moyens de transfert de données. Par nature, ces moyens de transfert osent des débits de transfert de données spécifiques et imposent un temps minimum pour la réalisation de ladite opération de sauvegarde dans sa totalité. Lorsque l'unité de stockage reste opérationnelle pendant l'opération de sauvegarde, certaines données stockées sur cette unité peuvent être modifiées alors que ladite opération est en cours. Suivant l'instant où intervient la modification d'une donnée et sa position sur l'unité de stockage, ladite donnée est sauvegardée soit non modifiée, soit modifiée. Si, pendant ladite opération de sauvegarde, plusieurs données sont modifiées sur l'unité de stockage, certaines desdites données sont sauvegardées non modifiées, les autres sont sauvegardées modifiés. En conséquence, I'ensemble des données sauvegardées sur l'unité de sauvegarde ne correspond pas à l'image exacte de l'ensemble des données de l'unité de stockage à un instant précis. Ainsi, des incohérences entre les différentes données sauvegardées peuvent les rendre inexploitables. Afin de garantir un certain niveau de cohérence des données, les techniques de sauvegarde des données d'une unité de stockage, utilisées à ce jour, imposent de connaître l'organisation des données sur l'unité de stockage et les méthodes d'accès associées. Suivant ces techniques, les données sont sauvegardées un groupe à la fois, un groupe formant un ensemble cohérent de données. Durant la sauvegarde d'un groupe, aucune donnée contenue dans ledit groupe ne peut être modifiée. Si un groupe est en cours de modification, la sauvegarde dudit groupe est reportée jusqu'à ce qu'il soit disponible. Si un groupe n'est jamais disponible, il ne peut pas être sauvegardé. Le perfectionnement apporté par cette invention consiste en un procédé permettait la sauvegarde instantanée de l'image des données d'une unité de stockage et son transfert vers une unité de sauvegarde. D'après cette invention, le procédé consiste à décrire l'image des données par un compteur de sauvegarde, un pointeur vers un noeud racine et une structure de données comprenant un noeud racine et des noeuds contenant soit des pointeurs vers d'autres noeuds, soit des blocs de données, lesdits noeuds étant contenus dans des granules alloués soit dans une mémoire à accès aléatoires, soit sur une unité de stockage, soit une unité de sauvegarde, lesdits granules étant pourvus d'un numéro de sauvegarde, à sauvegarder l'image des données en augmentant de on le compteur de sauvegarde, en allouent un granule, en recopiant le noeud racine dans ledit granule et en mettant à jour le pointeur de noeud racine, à récupérer les données en parcourant la structure de données, à modifier les données en parcourant la structure de données, en créant lesdits noeuds qui n'existent pas, en dupliquant lesdits noeuds qui doivent être modifiés et dont ledit numéro de sauvegarde n'est pas égal audit compteur de sauvegarde, à transférer les granules dupliqués vers ladite unité de sauvegarde, en allouant des granules sur ladite unité de sauvegarde, en copiant le contenu des granules à transférer, en mettant à jour lesdits pointeurs de la structure de données qui pointent vers lesdits granules, en libérant lesdits granules, à répéter lesdites opérations de récupération, de modification et de transfert pour satisfaire les demandes du système de traitement des données. La description de l'invention qui suit fait référence aux dessins annexés: La figure 1 est un schéma logique du système de traitement de données mettant en oeuvre l'inventiorL La figure 2 est un schéma logique qui détaille un numéro de bloc utilisé pour identifier les données contenues dans un bloc de données. La figure 3 est un schéma logique qui détaille la structure de données qui décrit l'image des données. La figure 4 est un schéma logique qui détaille un pointeur vers un granule. La figure 5 est un schéma logique qui détaille la structure de contrôle d'un granule. En référence aux figures I à 5 est donnée une description d'un système gérant une unité de stockage et une unité de sauvegarde réalisant la sauvegarde instantanée de l'image des donnees de l'unité de stockage et son transfert vers l'unité de sauvegarde. L'invention est particulièrement adaptée à un système comprenant au moins une unité de traitement 1, une mémoire à accès aléatoires 2, un contrôleur limité de stockage et d'unité de sauvegarde 3, une unité de stockage 4, une unité de sauvegarde 5 et un contrôleur d'interface ordinateur 6 optionnel. Dans le système mettant en oeuvre le procédé décrit, l'unité de traitement 1 peut être une carte processeur conforme aux spécifications EXTENDED INDUSTRY STANDARD ARCHITECTURE de BCPR SERVICES équipée d'un processeur du type i486SX qui fait partie de la famille des processeurs 32 bits d'rNTEL. Ladite unité de traitement I accède à une mémoire à accès aléatoires 2 qui peut être composée de barrettes mémoire SIM et dont la capacité peut être de un ou plusieurs méga-octets pouvant contenir les programmes et les données nécessaires au fonctionnement du systèmes ainsi que, éventuellement, les programmes des applications modifiant les données stockées sur l'unité de stockage. Le contrôleur d'unité de stockage et d'unité de sauvegarde 3, qui peut être conforme au standard ANSI X3.131, par exemple le contrôleur AHA-1740 d'ADAPTEC, permet la connexion de l'unité de traitement 1 et de la mémoire à accès aléatoires à l'unité de stockage 4 et à l'unité de sauvegarde 5. L'unité de stockage 4 peut être un disque dur de 3,5 pouces disposant d'une interface conforme au standard ANSI X3.131, par exemple le disque SPUIFIRE S12 d'IBM. L'unité de sauvegarde 5 peut être un lecteuremegistreur de disque optique numérique disposant d'une interface conforme au standard ANSI X3.131, par exemple le lecteurenregistreur GD 9001 d'ATG Le contrôleur d'interface ordinateur 6, qui peut être conforme au standard ANSI x3. 131, par exemple le contrôleur TARGET E-IOF d'ATON Systèmes, est seulement nécessaire lorsque les programmes des applications modifiant les données stockées sur ladite unité de stockage 4 ne sont pas contenus dans ladite mémoire à accès aléatoires 2 et exécutés par ladite unité de traitement I, mais contenus dans la mémoire à accès aléatoires et exécutés par l'unité de traitement d'un ordinateur connecté audit système. Les données sont regroupées en blocs de données 30, de taille fixe, par exemple 512 octets, identifiés par un numéro de bloc 7 unique. Ledit numéro de bloc peut comporter par exemple 32 bits regroupés en quatre parties formant chacune un numéro de noeud de premier niveau 8 (huit bits), un numéro de noeud de second niveau 9 (dix bits), un numéro de noeud de données 10 (dix bits) et un numéro de bloc de données 1 1 (quatre bits). La structure de données qui décrit l'image des données de l'unité de stockage par la localisation des blocs de données 30 qui la composent peut être contenue entièrement ou en partie dans ladite mémoire à accès aléatoires 2, stockée entièrement ou en partie sur l'unité de stockage 4, et sauvegardée entièrement ou en partie sur l'unité de sauvegarde 5. Ladite structure de données comprend par exemple: un noeud racine 12; zéro, un ou plusieurs noeuds de premier niveau 13; zéro, un ou plusieurs noeuds de second niveau 14; zéro, un ou plusieurs noeuds de données 15. Le noeud racine 12 contient au moins autant de pointeurs vers un noeud de premier niveau 16 qu'il peut y avoir de numéros de noeud de premier niveau 8 par noeud racine 12, par exemple deux cent cinquante six Un noeud de premier niveau 13 contient au moins autant de pointeurs vers un noeud de second niveau 17 qu'il peut y avoir de numéros de noeud de second niveau 9 par noeud de premier niveau, par exemple mille vingt quatre. Un noeud de second niveau 14 contient au moins autant de pointeurs vers un noeud de données 18 qu'il peut y avoir de numéros de noeud de données 10 par noeud de second niveau, par exemple mille vingt quatre. Lesdits pointeurs contiennent un index granule mémoire 19 et/ou un index granule unité de stockage 20 et/ou un index granule unité de sauvegarde 21. Lesdits noeuds racine 12, noeuds de premier niveau 13 et noeuds de second niveau 14 contenus dans ladite mémoire à acces aléatoires 2 peuvent contenir des pointeurs contenant eux-mêmes un index granule mémoire 19, un index granule unité de stockage 20 et un index granule unité de sauvegarde 21. Lesdits noeuds stockés sur ladite unité de stockage 4 peuvent contenir des pointeurs contenant eux-mêmes un index granule unité de stockage 20 et un index granule unité de sauvegarde 21, mais pas d'index granule mémoire 19. Lesdits noeuds sauvegardés sur ladite unité de sauvegarde 5 peuvent contenir des pointeurs contenant eux-mêmes un index granule unité de sauvegarde 21, mais pas d'index granule mémoire 19 ni d'index granule unité de stockage 20. Pour éviter la perte de données, il peut être imposé que lesdits noeuds contenus dans la mémoire à accès aléatoires 2 disposent d'au moins un copie sur ladite unité de stockage 4 ou ladite unité de sauvegarde 5. Un noeud de données 15 contient au moins autant de blocs de données 30 qu'il peut y avoir de numéros de bloc de données il par noeud de données, par exemple seize. Lesdits noeuds sont rangés dans des granules de taille fixe par exemple égale à seize fois la taille d'un bloc de données. Une structure de contrôle de granule 22 est associée à chacun desdits granules. Ladite structure de contrôle comprend par exemple: un pointeur vers le granule père 23, un numéro de sauvegarde 24 et un numéro de noeud 25 pour la gestion de la sauvegarde, des données de contrôle 26 pour la gestion de l'allocation dudit granule et éventuellement l'adresse 27 dudit granule dans la mémoire à accès aléatoires 2, sur l'unité de stockage 4 ou sur l'unité de sauvegarde 5. L'image courante des données de l'unité de stockage est définie par le pointeur vers le noeud racine 28 et le compteur de sauvegarde 29. A un instant donné, ladite structure de données peut ne pas comprendre tous les noeuds nécessaires à la description de l'image des données. Dans ce cas seuls les noeuds nécessaires à la localisation des blocs de données au moins écrits une fois peuvent exister. L'allocation et la libération des granules contenus dans la mémoire à accès aléatoires 2 peuvent être réaliser suivant les techniques bien connues de gestion mémoire. Pour des raisons de simplification les structures de contrôle de granule 22 correspondantes peuvent être regroupées dans une région de ladite mémoire à accès aléatoires 2 afin d'être indexées directement par l'index granule me moire 19. Une méthode similaire peut être utilisée pour réaliser l'allocation et la libération des granules stockés sur l'unité de stockage 4 et indexés par l'index granule unité de stockage 20. Dans ce cas une région de dimension suffisante peut être réservée sur ladite unité de stockage pour les structures de contrôle de granule 22. Les granules sauvegardés sur l'unité de sauvegarde 5 peuvent être alloués de manière séquentielle sur ladite unité et indexés par l'index unité de sauvegarde 21. Dans ce cas les structures de contrôle de granule 22 peuvent être placées devant le granule correspondant. En référence aux figures 1 à 5, en relation avec les programmes en langage d'assemblage contenus sous forme binaire dans la mémoire à accès aléatoires 2 et exécutés par l'unité de traitement 1, est donnée une description du procédé suivant l'invention permettant la sauvegarde instantanée de l'image des données de l'unité de stockage 4 et son transfert vers l'unité de sauvegarde 5. Lorsque, par un moyen appropné, la sauvegarde de l'image des données de l'unité de stockage 4 est requise, un granule est alloué dans la mémoire à accès aléatoires et/ou sur l'unité de stockage 4 et le contenu du noeud racine 12 y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer sur le granule contenant le noeud racine 12. Le pointeur vers le noeud racine 28 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud racine 12. Le compteur de sauvegarde 29 est augmenté de un. Le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu dudit compteur de sauvegarde. Le granule contenant l'ancien noeud racine est déclaré transférable vers l'unité de sauvegarde 5. Lorsque, par un moyen approprié, une application accède à un bloc de données pour en récupérer le contenu, la structure de données décrivant l'image des données est parcourue en fonction du numéro de bloc 7 spécifié selon les étapes suivantes: (1) Le noeud racine 12 est localisé à partir du pointeur vers le noeud racine 28. Un pointeur vers un noeud de premier niveau 16 est sélectionné dans ledit noeud racine en fonction du numéro de noeud de premier niveau 8. (2) Le noeud de premier niveau 13 est localisé à partir dudit pointeur de noeud de premier niveau Un pointeur vers un noeud de second niveau 17 est sélectionné dans ledit noeud de premier niveau en fonction du numéro de noeud de second niveau 9. (3) Le noeud de second niveau 14 est localisé à partir dudit pointeur de noeud de second niveau Un pointeur vers un noeud de données 18 est sélectionné dans ledit noeud de second niveau en fonction du numéro de noeud de données 10. (4) Le noeud de données 15 est localisé à partir dudit pointeur vers un noeud de données. Ledit bloc de données est localisé dans ledit noeud de données en fonction du numéro de bloc de données 11. (5) Le contenu dudit bloc de données est retourné à l'application soit dans la mémoire à accès aléatoires 2, soit à travers le contrôleur d'interface ordinateur 6. Lorsque, par un moyen approprié, une application accède à un bloc de données pour en modifier le contenu, la structure de données décrivant l'image des données est parcourue en fonction du numéro de bloc 7 spécifié selon les étapes suivantes: (6) Le noeud racine 12 est localisé à partir du pointeur vers le noeud racine 28. Un pointeur vers un noeud de premier niveau 16 est sélectionné dans ledit noeud racine en fonction du numéro de noeud de premier niveau 8. Le noeud de premier niveau 13 est localisé à partir dudit pointeur de noeud de premier niveau Si ledit noeud de premier niveau existe le traitement continue à l'étape (8). (7) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et initialisé avec des pointeurs vers un noeud de second niveau 17 vides, la structure de contrôle de granule correspondante est ramie avec un numéro de noeud 25 égal au numéro de noeud de premier niveau 8, un numéro de sauvegarde 24 égal au compteur de sauvegarde 29 et un pointeur vers le granule père 23 vide. Ledit pointeur vers un noeud de premier niveau 16 est modifié pour pointer vers ledit granule qui contient maintenant le noeud de premier niveau 13. (8) Un pointeur vers un noeud de second niveau 17 est sélectionné dans ledit noeud de premier niveau 13 en fonction du numéro de noeud de second niveau 9. Le noeud de second niveau 14 est localisé à partir dudit pointeur de noeud de second niveau Si ledit noeud de second niveau existe le traitement continue à l'étape (11). (9) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et initialisé avec des pointeurs vers un noeud de données 18 vides, la structure de contrôle de granule correspondante est garnie avec un numéro de noeud 25 égal au numéro de noeud de premier niveau 8 associé au numéro de noeud de second niveau 9, un numéro de sauvegarde 24 égal au compteur de sauvegarde 29 et un pointeur vers le granule père 23 vide. Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de premier niveau 13 est égal audit compteur de sauvegarde 29, ledit pointeur vers un noeud de second niveau 17 est modifié pour pointer vers ledit granule qui contient maintenant le noeud de second niveau 14, et le traitement continue à l'étape (11). (10) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu dudit noeud de premier niveau 13 y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de premier niveau 13, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8. Le pointeur vers le noeud de premier niveau 16 contenu dans ledit noeud racine 12 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud de premier niveau 13. Le granule contenant l'ancien noeud de premier niveau est déclaré transférable vers l'unité de sauvegarde 5. Le pointeur vers un noeud de second niveau 17 contenu dans le nouveau noeud de premier niveau 13 est modifié pour pointer vers le granule qui contient le noeud de second niveau 14. (11) Un pointeur vers un noeud de données 18 est sélectionné dans ledit noeud de second niveau en fonction du numéro de noeud de données 10. Le noeud de données 15 est localisé à partir dudit pointeur vers un noeud de données. Si ledit noeud de données existe et si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de données 15 est égal audit compteur de sauvegarde 29, le traitement continue à l'étape (17). (12) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu de l'ancien noeud de données, s'il existe, y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de données s'il existe, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8 associé au numéro de noeud de second niveau 9 et au numéro de noeud de données 10. Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de second niveau 14 est égal audit compteur de sauvegarde 29, ledit pointeur vers un noeud de données 18 est modifié pour pointer vers le granule qui contient maintenant le nouveau noeud de données 15, et le traitement continue à l'étape (16). (13) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu dudit noeud de second niveau 14 y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de second niveau 14, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8 associé au numéro de noeud de second niveau 9. Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de premier niveau 13 est égal audit compteur de sauvegarde 29, ledit pointeur vers un noeud de second niveau 17 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud de second niveau 14, et le traitement continue à l'étape (15). (14) Un granule est alloué dans la mémoire à accès aléatoires 2 et'ou sur l'unité de stockage 4 et le contenu dudit noeud de premier niveau 13 y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de premier niveau 13, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8. Le pointeur vers le noeud de premier niveau 16 contenu dans ledit noeud racine 12 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud de premier niveau 13. Le granule contenant l'ancien noeud de premier niveau est déclaré transférable vers l'unité de sauvegarde 5. Le pointeur vers le noeud de second niveau 17 contenu dans ledit nouveau noeud de premier niveau 13 est modifié pour pointer vers le granule qui contient le nouveau noeud de second niveau 14. (15) Le granule contenant l'ancien noeud de second niveau est déclaré transférable vers l'unité de sauvegarde 5. (16) S'il existe, le granule contenant l'ancien noeud de données est déclaré transférable vers l'unité de sauvegarde 5. (17) Ledit bloc de données est localisé dans le noeud de données 15 en fonction du numéro de bloc de données 11. Ledit bloc de données est garni par les données transmises par l'application soit depuis la mémoire à accés aléatoires 2, soit à travers le contrôleur d'interface ordinateur 6. Lorsqu'il y a au moins un granule déclaré transférable vers l'unité de sauvegarde 5, un transfert de données vers l'unité de sauvegarde est réalisé selon les étapes suivantes: (18) Le premier granule déclaré transférable est localisé. (19) Si le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule déclaré transférable ne contient pas d'index granule unité de sauvegarde 21, le traitement continu à l'étape (32). (20) Si ledit granule déclaré transférable contient un noeud de données 15, le traitement continue à l'étape (22). (21) Les pointeurs vers un noeud de premier niveau 16, vers un noeud de second niveau 17 ou vers un noeud de données 18, contenus dans ledit granule déclaré transférable, sont testés pour déterminer s'ils contiennent un index granule unité de sauvegarde 21. Si au moins un desdits pointeurs ne contient pas d'index granule unité de sauvegarde 21, le traitement continu à l'étape (32). (22) Un granule est alloué sur l'unité de sauvegarde 5. Le contenu dudit granule déclaré transférable y est recopié. Le contenu de la structure de contrôle de granule 22 dudit granule déclaré transférable peut être recopié dans la structure de contrôle de granule 22 du granule qui vient d'être alloué. (23) Si ledit granule déclaré transférable contient un noeud racine, le traitement continue à l'étape (28). (24) La structure de données décrivant l'image des données est parcourue à partir du pointeur vers le noeud racine 28 en fonction du numéro de noeud 25 de la structure de controle de granule 22 dudit granule déclaré transférable afin de localiser un noeud racine 12, un noeud de premier niveau 13 ou un noeud de second niveau 14 selon que le granule déclaré transférable contient un noeud de premier niveau 13, un noeud de second niveau 14 ou un noeud de données 15. (25) Le numéro de noeud 25 de la structure de contrôle de granule 22 dudit granule déclaré transférable est utilisé pour localisé le pointeur vers un noeud de premier niveau 16, vers un noeud de second niveau 17 ou vers un noeud de données 18 contenu dans ledit noeud Si ledit pointeur pointe sur ledit granule déclaré transférable, l'index granule unité de sauvegarde 21 dudit pointeur est garni avec l'index dudit granule alloué sur l'unité de sauvegarde 5 et les indexes granule mémoire 19 et granule unité de stockage 20 dudit pointeur sont supprimés. (26) Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 du granule contenant ledit noeud est égal au compteur de sauvegarde 29, le traitement continue à l'étape (28). (27) Si le pointeur vers le granule père 23 de la structure de contrôle de granule 22 du granule contenant ledit noeud pointe vers un granule en mémoire à accès aléatoires et/ou sur l'unité de stockage, le noeud contenu dans ledit granule est localisé et le traitement continue à l'étape (25). (28) La structure de données décrivant l'image des données est parcourue à partir du pointeur vers le noeud racine 28 en fonction du numéro de noeud 25 de la structure de contrôle de granule 22 dudit granule déclaré transférable afin de localiser un noeud racine 12, un noeud de premier niveau 13, un noeud de second niveau 14 ou un noeud de données 15 selon que le granule déclaré transférable contient un noeud racine 12, un noeud de premier niveau 13, un noeud de second niveau 14 ou un noeud de données 15. (29) Si le pointeur vers le granule père 23 de la structure de contrôle de granule 22 du granule contenant ledit noeud pointe vers ledit granule déclaré transférable, L'index granule unité de sauvegarde 21 dudit pointeur est garni avec l'index dudit granule alloué sur l'unité de sauvegarde 5, les indexes granule mémoire 19 et granule unité de stockage 20 dudit pointeur sont supprimés, et le traitement continue à l'étape (31). (30) Le noeud pointé par ledit pointeur vers le granule pére est localisé et le traitement continu à l'étape (29). (31) Ledit granule déclaré transférable est libere de la mémoire à accès aléatoires et/ou de l'unité de stockage 4. (32) Le granule déclaré transférable suivant est localisé. S'il existe le traitement continu à l'étape (19). (33) S'il a encore au moins un granule déclaré transférable, le traitement continue à l'étape (18). Lorsque le nombre de granules non alloués en mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 devient insuffisant, certains granules alloués en mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4, par exemple les granules les moins souvent accédés, peuvent être déclarés transférables vers l'unité de sauvegarde 5. REVENDICATIONS 1. Un procédé pour la sauvegarde instantanée de l'image des données d'une unité de stockage (4) d'un système de traitement de données et son transfert vers une unité de sauvegarde (5), ce systèmes comprenant une unité de traitement (1), une mémoire à accès aléatoires (2) et un contrôleur d'unité de stockage et d'unité de sauvegarde (3), I'image des données étant décrite par un compteur de sauvegarde (29), un pointeur vers le noeud racine (28) et un structure de données comprenant un noeud racine (12) et des noeuds contenant soit des pointeurs vers d'autres noeuds, soit des blocs de données, lesdits noeuds étant contenus dans des granules alloués soit dans ladite mémoire à accès aléatoires, soit sur ladite unité de stockage, soit sur ladite unité de sauvegarde, lesdits granules étant pourvus d'un numéro de sauvegarde (24), ledit procédé étant caractérisé en ce qu'il comprend les étapes d'augmentation de un du compteur de sauvegarde, d'allocation d'un granule, de recopie dudit noeud racine dans ledit granule et de mise à jour dudit pointeur de noeud racine, ledit procédé comprenant en outre les opérations: de récupération du contenu d'un bloc de données en parcourant la structure de données, de modification du contenu d'un bloc de données en parcourant la structure de données, en créant lesdits noeuds qui n'existent pas, en dupliquant lesdits noeuds qui doivent être modifiés et dont ledit numéro de sauvegarde n'est pas égal audit compteur de sauvegarde, de transfert des granules dupliqués vers ladite unité de sauvegarde, en allouant des granules sur ladite unité de sauvegarde, en copiant le contenu des granules à transférer, en mettant à jour lesdits pointeurs de la structure de données qui pointent vers lesdits granules, en libérant lesdits granules, de répétition desdites opérations de récupération, de modification et de transfert pour satisfaire les demandes du système de traitement des données. 2. Le procédé selon la revendication 1 comprenant en outre une opération de transfert vers ladite unité de sauvegarde des granules les moins accédés lorsque le nombre de granules non alloués dans ladite mémoire à accès aléatoires ou sur ladite unité de stockage est insuffisant. 3. Un système de traitement des données comprenant une unité de traitement (1), une mémoire à accès aléatoires (2), un contrôleur d'unité de stockage et d'unité de sauvegarde (3), une unité de stockage (4) et une unité de sauvegarde (5), I'image des données étant décrite par un compteur de sauvegarde (29), un pointeur vers le noeud racine (28) et un structure de données comprenant un noeud racine (12) et des noeuds contenant soit des pointeurs vers d'autres noeuds, soit des blocs de données, lesdits noeuds étant contenus dans des granules alloués soit dans ladite mémoire à accès aléatoires, soit sur ladite unité de stockage, soit sur ladite unité de sauvegarde, lesdits granules étant pourvus din (l'un umm de sauvegarde (24), ledit système étant caractérisé en ce que pour la sauvegarde dune image des données, ledit compteur de sauvegarde est augmenté de un, un granule est alloué, ledit noeud racine est recopié dans ledit granule et ledit pointeur de noeud racine est mise a jour. 4. Le système suivant la revendication 3 comprenant en outre les opérations: de récupération du contenu d'un bloc de données en parcourant la structure de données, de modification du contenu d'un bloc de données en parcourant la structure dedonnées, en créant lesdits noeuds qui n'existent pas. en dupliquant lesdits noeuds qui doivent être modifiés et dont ledit numéro de sauvegarde n'est pas égal audit compteur de sauvegarde, de transfert des granules dupliqués vers ladite unité de sauvegarde, en allouant des granules sur ladite unité de sauvegarde, en copiant le contenu des granules à transférer, en mettant à jour lesdits pointeurs de la structure de données qui pointent vers lesdits granules, en libérant lesdits granules. 5. Le système suivant la revendication 4 comprenant en outre une opération de transfert vers ladite unité de sauvegarde des granules les moins accédés lorsque le nombre de granules non allouées dans ladite mémoire à accès aléatoires ou sur ladite unité de stockage est insuffisant. 6. Le système suivant la revendication 3, 4 ou 5 comprenant en outre un contrôleur interface ordinateur (6) permettant de répondre aux demandes de récupération et de modification de données provenant d'un ordinateur connecté audit système.