Brevet FR2979164A1 — publié le 20130222

Domaine Des modes de réalisation de la présente invention concernent un contrôleur pour dispositifs de mémorisation et un procédé de commande de dispositifs de mémorisation. Arrière-plan Un appareil de traitement d'informations à usage industriel délivrant en temps réel un contenu vidéo mémorisé dans des serveurs vidéo ou analogue utilise des dispositifs de mémorisation tels que des disques durs ayant de grandes zones de mémorisation. L'appareil de traitement d'informations d'un tel type nécessite d'achever le traitement d'écriture ou de lecture des données en une période de temps donnée. Ceci est dû au fait que si le temps nécessaire pour écrire ou lire les données dépasse une période de temps prédéterminée, l'image vidéo ou le son peut être interrompu. Les disques durs possèdent de grandes zones de mémorisation et sont économiques mais ils présentent des inconvénients de vitesse et de fiabilité. En conséquence, on a utilisé au cours de ces dernières années dans les systèmes à usage industriel des unités appelées en anglais « Solid State Drive » (notées ci-après SSD) en tant que dispositifs de mémorisation à grande vitesse (voir par exemple, JP, P2010-102369A). Toutefois, les SSD possédant de plus grandes zones de mémorisation destinés à être utilisés dans les systèmes à usage industriel sont coûteux. En conséquence, on souhaite utiliser des SSD de faible coût et à usage général, pouvant être connectés à des interfaces à usage général, par exemple ATA série. Concernant les dispositifs de mémorisation tels que les SSD à usage général le temps de retard du traitement d'écriture ou de lecture de données n'est pas garanti. Ceci provoque parfois un retard de traitement des données dans les appareils de traitement d'informations. En conséquence, on ne peut pas utiliser les dispositifs de mémorisation tels que des SSD à usage général tels quels dans les appareils effectuant une commande en temps réel. Brève description des dessins L'invention sera bien comprise et ses avantages seront mieux compris à la lecture de la description détaillée qui suit. La description se rapporte aux dessins indiqués ci-après et qui sont donnés à titre d'exemples. La figure 1 illustre une configuration d'un contrôleur d'un premier mode de réalisation ; la figure 2 représente le contenu d'une table d'états ; la figure 3 est un diagramme de séquence représentant des opérations d'unités respectives dans un processus d'écriture de données ; la figure 4 est un diagramme de séquence représentant des opérations d'unités respectives dans un processus de lecture de données ; la figure 5 est un chronogramme lorsqu'il n'y a pas de retard dans un processus d'écriture de données dans un SSD ; les figures 6A et 6B sont des chronogrammes lorsqu'il y a un retard dans un processus d'écriture de données dans un SSD ; la figure 7 illustre une configuration de contrôleur d'un deuxième mode de réalisation ; la figure 8 illustre une configuration de contrôleur d'un troisième mode de réalisation ; et la figure 9 illustre une configuration de contrôleur d'un quatrième mode de réalisation. Description détaillée Selon un mode de réalisation, un contrôleur peut être connecté à un système hôte et à une pluralité de dispositifs de mémorisation. Le 25 contrôleur comporte une table d'états, une unité de moniteur, une mémoire tampon, un séquenceur, une unité de réponse à commande et une unité de traitement de données. Dans la table d'états, l'état de fonctionnement de la pluralité de dispositifs de mémorisation et la destination d'écriture pour les données sont réglés. L'unité de moniteur 30 est configurée pour surveiller l'état de fonctionnement de la pluralité de dispositifs de mémorisation et pour régler l'état de fonctionnement des dispositifs de mémorisation dans la table d'états. La mémoire tampon est capable de conserver des données. Le séquenceur est configure pour compter un temps fixé au préalable conformément à une instruction de 35 début de comptage et pour envoyer une notification d'échéance lorsque le temps fixé au préalable est atteint.20 L'unité de réponse à commande est configurée de telle sorte que, lorsqu'elle reçoit du système hôte une commande d'écriture, l'unité de réponse à commande demande au séquenceur de commencer à compter, règle la destination d'écriture pour les données dans la table 5 d'états, fournit en sortie un signal de commande fournissant une instruction d'écriture de données dans le dispositif de mémorisation de la destination d'écriture, conserve dans la mémoire tampon les données d'écriture envoyées par le système hôte durant une certaine période de temps après la commande d'écriture et renvoie au système hôte une 10 réponse de fin d'écriture correspondant à la commande d'écriture lorsqu'elle reçoit du séquenceur la notification d'échéance. L'unité de traitement de données est configurée de telle sorte que, lorsqu'elle reçoit de l'unité de réponse à une commande le signal de commande fournissant une instruction d'écriture de données, l'unité de traitement de données se 15 réfère à la table d'états pour choisir un dispositif de mémorisation de la destination d'écriture et écrit les données de lecture de la mémoire tampon dans le dispositif de mémorisation choisi. Une description détaillée de modes de réalisation est fournie ci-après en référence aux dessins. La figure 1 illustre une configuration d'un 20 contrôleur 2 selon un mode de réalisation pour des dispositifs de mémorisation. Comme représenté sur la figure 1, le contrôleur 2 de ce mode de réalisation pour des dispositifs de mémorisation comporte une interface externe 20 (appelée ci-après I/F externe 20) connectée à un système hôte 25 1, un séquenceur 21, une unité de réponse à une commande 22, une mémoire tampon 23, une unité de traitement de données 24, une table d'états 25, une unité de moniteur 26 et des interfaces de disque 27 et 28 (appelées ci-après I/F de disque 27 et 28). Le système hôte 1 est par exemple un serveur vidéo. Le 30 système hôte 1 est un système à usage industriel, tel qu'un système multimédia, un système de traitement d'informations et un système d'usine de fabrication et H nécessite une garantie de temps de réponse dans le processus d'écriture de données dans les dispositifs de mémorisation ou de lecture de données dans les dispositifs de 35 mémorisation. Les I/F de disque 27 et 28 sont des interfaces de communication avec des dispositifs de mémorisation externes et par exemple, sont des ports ATA série (SATA-2.6 ou 3.0) ou PC1-e. Dans ce mode de réalisation, les I/F de disque 27 et 28 sont respectivement connectées à des SSD à usage général 3 et 4 en tant que dispositifs de mémorisation externes. L'I/F externe 20 est une interface de communication avec le système hôte 1 et par exemple, est un port ATA série (SATA-2.6 ou 3.0) ou PCI-e. L'unité de réponse à une commande 22 demande au séquenceur 21 de démarrer une opération de comptage. Lorsque le temps compté atteint une échéance T déterminée au préalable, le séquenceur 21 envoie une notification d'échéance à l'unité de réponse à une commande 22. Le système hôte 1 doit achever le processus d'écriture ou de lecture de données dans le temps de réponse autorisé t, qui est déterminé par les spécifications du système. L'échéance T est réglée à un temps calculé en soustrayant du temps de réponse admissible t le temps de transfert d'une commande (une certaine période de temps déterminée par les spécifications de l'interface) entre le système hôte 1 et l'unité de réponse à une commande 22. Le contrôleur 2 commande ainsi le temps de retard des dispositifs de mémorisation externes dans un temps donné du point de vue du système hôte 1. Le temps nécessaire pour que le système hôte 1 reçoive une réponse dépend de l'utilisation prévue du système. Ce temps est par exemple de 33 ms dans un système traitant des vidéos et de 1 ms à 10 ms dans un enregistreur de données utilisé dans des usines de fabrication. L'échéance T est le temps de retard admissible maximum pour renvoyer une réponse au système hôte 1. L'échéance T est réglée au préalable par le séquenceur 21. L'échéance T peut être écrite de manière externe dans une mémoire pouvant être référencée par le séquenceur 21. Le séquenceur 21 compte l'échéance T réglée au préalable (temps de réponse) lorsqu'il reçoit une instruction de début de comptage de l'unité de réponse à une commande 22. Lorsque l'échéance T est atteinte, le séquenceur 21 envoie la notification d'échéance à l'unité de réponse à une commande 22. L'unité de réponse à une commande 22 envoie et reçoit des commandes, des réponses et des données vers et depuis le système hôte 1. En réponse à la commande reçue du système hôte 1, l'unité de réponse à une commande 22 envoie à l'unité de traitement de données 24 un signal de commande fournissant une instruction d'écriture ou de lecture de données. Lorsqu'elle reçoit du système hôte 1 une commande d'écriture demandant d'écrire des données, l'unité de réponse à une commande 22 envoie au séquenceur 21 un signal de commande fournissant une instruction de début de comptage. Lorsqu'elle reçoit la commande d'écriture du système hôte 1, l'unité de réponse à une commande 22 contrôle l'état de fonctionnement des SSD 3 et 4 (que les SSD 3 et 4 soient dans l'état « attente » ou « écriture ») en référence à la table d'états 25 et choisit un SSD d'une destination d'écriture de données en fonction de l'état de fonctionnement. L'unité de réponse à une commande 22 règle ensuite la destination d'écriture des données dans la table d'états 25 et fournit en sortie un signal de commande fournissant une instruction d'écriture dans le SSD choisi de la destination d'écriture (SSD3 ou SSD4). L'unité de réponse à une commande 22 reçoit les données d'écriture qui sont reçues en séquence en un certain temps unitaire t après avoir reçu du système hôte 1 la commande d'écriture et conserve dans une mémoire tampon 23 les données d'écriture reçues. Dans le processus de choix du SSD de la destination d'écriture, lorsque l'état de fonctionnement des SSD 3 et 4 est « attente », l'unité de réponse à une commande 22 modifie l'indicateur d'état de fonctionnement de SSD à écriture » et modifie la destination d'écriture vers un autre SSD. D'autre part, lorsqu'elle reçoit la notification d'échéance du séquenceur 21., l'unité de réponse à une commande 22 renvoie au système hôte 1 une réponse de fin d'écriture correspondant à la commande d'écriture juste après avoir reçu la notification. En d'autres termes, l'unité de réponse à une commande 22 ne renvoie pas immédiatement la réponse de fin d'écriture après la fin de la conservation (écriture) des données d'écriture dans la mémoire tampon 23 et attend l'échéance T en tant que temps de réponse du système avant de renvoyer la réponse de fin d'écriture. Ceci garantit une certaine période de temps jusqu'à ce que l'échéance T soit atteinte après la fin du processus de réception des données d'écriture en tant que temps de retard garanti Ti (voir la figure 3) dans le cas où il y a un retard dans le processus d'écriture de données dans les SSD 3 et 4. La mémoire tampon 23 est capable de conserver des données. La mémoire tampon 23 conserve temporairement les données d'écriture reçues du système hôte 1. Lorsqu'elle reçoit de l'unité de réponse à une commande 22 le signal de commande qui fournit une instruction d'écriture, l'unité de traitement de données 24 choisit un SSD inscriptible (l'un quelconque des SSD 3 et 4) en référence à la table d'états 25 et écrit dans le SSD choisi les données qui sont lues dans la mémoire tampon 23. L'unité de 15 traitement de données 24 est commandée par le signal de commande qui fournit une instruction de lecture, de l'unité de réponse à une commande 22, pour lire des données spécifiées dans un SSD lisible (le SSD 3 ou 4). La table d'états 25 comporte l'état de fonctionnement des SSD 3 et 4 connectés aux TIF de disque 27 et 28 et la destination 20 d'écriture des SSD 3 et 4. Dans la table d'états 25, des indicateurs sont réglés à la fois pour l'état de fonctionnement et la destination d'écriture. L'unité de moniteur 26 surveille les commandes, les entrées et les sorties des données et les réponses aux TIF de disque 27 et 28. C'est-à-dire que l'unité de moniteur 26 surveille les SSD 3 et 4 par 25 l'intermédiaire des 1/F de disque 27 et 28 et règle dans la table d'états 25 l'état de fonctionnement des SSD 3 et 4 en tant que résultats de surveillance. L'unité de moniteur 26 règle dans la table d'états 25 un indicateur indiquant un état parmi « attente » et « écriture » (indicateur 30 d'état de fonctionnement) comme état de fonctionnement des SSD 3 et 4. De façon spécifique, lorsqu'elle reçoit une réponse Recevable du SSD 3 ou l'unité de moniteur 26 modifie l'indicateur d'état de fonctionnement de « attente à « écriture ». Lorsqu'elle reçoit la réponse de fin d'écriture du SSD 3 ou 4, l'unité de moniteur 26 modifie l'indicateur d'état de 35 fonctionnement de écriture » à « attente L'indicateur d'état de fonctionnement indiquant l'état de fonctionnement des SSD 3, 4, est par exemple à 0 ou 1. L'indicateur d'état de fonctionnement à 0 indique « attente » (l'écriture n'est effectuée dans aucun des SSD) et l'indicateur d'état de fonctionnement à 1 indique L'unité de réponse à une commande 22 renvoie une réponse Recevable au système hôte 1 (étape S104). Lorsque le système hôte 1 reçoit la réponse Recevable, les données d'écriture sont transmises en séquence depuis le dispositif hôte 1 (étape S105). L'unité de réponse à une commande 22 conserve en séquence les données A à F qui sont reçues du système hôte 1, dans la mémoire tampon 23 et envoie à l'unité de traitement de données 24 un signal de commande qui fournit une instruction d'écriture (étape S106). Le signal de commande qui fournit une instruction d'écriture comporte la commande d'écriture reçue du système hôte 1. Lorsqu'elle reçoit le signal de commande qui fournit une instruction d'écriture depuis l'unité de réponse à une commande 22, l'unité de traitement de données 2-? se réfère à la table d'états 25 pour régler la destination d'écriture dans le SSD 3 en se basant sur l'indicateur de destination d'écriture et envoie une commande d'écriture au SSD 3 par l'intermédiaire de l'unité de moniteur 26 et de l'I/F de disque 27 (étapes S107 et S108). Le SSD 3 ayant reçu la commande d'écriture renvoie une réponse Recevable. Lorsque la réponse Recevable est reçue par l'unité de traitement de données 24 par l'intermédiaire de l'I/F de disque 27 et de l'unité de moniteur 26 (étapes 5109 et 5110), l'unité de traitement de données 24 écrit les données A à F, qui sont lues en séquence dans la mémoire tampon 23, au SSD 3 qui est la destination d'écriture par l'intermédiaire de 11/F de disque 27 (étape S111). Lorsqu'elle reçoit la réponse Recevable, l'unité de moniteur 26 modifie l'indicateur d'état de fonctionnement de la table d'états 25 de 0 (attente) à 1 (écriture). D'autre part, lorsque l'échéance T (temps de réponse) a été atteinte depuis le début du comptage, le séquenceur 21 envoie la notification d'échéance à l'unité de réponse à une commande 22 (étape 512). L'unité de réponse à une commande 22 ne renvoie pas de réponse de fin d'écriture même si toutes les données A à F sont mémorisées dans la mémoire tampon 23 et attend de recevoir la notification d'échéance du séquenceur 21. Ce temps d'attente sert de temps de retard garanti Ti (voir la figure 3). Lorsqu'elle reçoit la notification d'échéance, l'unité de réponse à une commande 22 envoie la réponse de fin d'écriture au système hôte 1 (étape S113). À la fin du processus d'écriture de données, le SSD 3 renvoie une réponse de fin d'écriture. La réponse de fin d'écriture est reçue par l'unité de moniteur 26 et l'unité de traitement de données 24 par l'intermédiaire de l'I/F de disque 27 (étape S114). Lorsqu'elle reçoit la réponse de fin d'écriture, l'unité de moniteur 26 modifie l'indicateur d'état de fonctionnement de la table d'états 25 de 1 (état « écriture ») à 0 (état « attente Lorsqu'il reçoit la réponse de fin d'écriture depuis l'unité de réponse à une commande 7?, le système hôte 1 envoie une commande d'écriture des données suivantes. Lorsqu'elle reçoit la commande (étape 51.15), l'unité de réponse à une commande 22 modifie. l'indicateur de destination d'écriture de la table d'états 25 de 0 (l'écriture dans le SSD 3 est activée) à 1. (l'écriture dans le SSD 4 est activée) (étape S116). Lorsqu'elle reçoit la réponse de fin d'écriture du SSD 3, l'unité de traitement de données 24 contrôle l'indicateur de destination d'écriture de la table d'états 25 (étape 5117 Puisque l'indicateur de destination d'écriture est à 1 (l'écriture dans le SSD 4 est activée), l'unité de traitement de données 24 envoie la commande d'écriture au SSD 4 pour la synchronisation des données (étape S118). Le SSD 4 ayant reçu la commande d'écriture renvoie une réponse Recevable. Lorsque la réponse Recevable est reçue par l'unité de traitement de données 24 par l'intermédiaire de l'I/F de disque et l'unité de moniteur 26 (étape S119), l'unité de traitement de données 24 lit en séquence les données A à F qui sont conservées dans la mémoire tampon 23 et écrit ces mêmes données dans le SSD 4 qui est la destination d'écriture par l'intermédiaire de l'I/F de disque 28 (étape 5120). Lorsqu'elle reçoit la réponse Recevable, l'unité de moniteur 26 modifie l'indicateur d'état de fonctionnement de SSD de la table d'états 25 de 0 (« attente ») à 1 (« écriture »). À la fin du processus d'écriture de données, le SSD 4 renvoie une réponse de fin d'écriture. La réponse de fin d'écriture est reçue par l'unité de moniteur 26 et l'unité de traitement de données 24 par l'intermédiaire de l'I/F de disque 28 (étapes 5121 et S122). En conséquence, les mêmes données A à F sont écrites dans le SSD 3 et le SSD 4, mettant ainsi en oeuvre la synchronisation de données entre le SSD 3 et le SSD 4. Lorsqu'elle reçoit la réponse de fin d'écriture, l'unité de moniteur 26 modifie l'indicateur d'état de fonctionnement du SSD de la table d'états 25 de 1 (« écriture ») à 0 (« attente ») (étape S123). Lorsque la quantité de données écrites dans la mémoire tampon 23 dépasse une valeur prédéterminée, l'unité de réponse à une commande 22 informe l'unité de traitement de données 24 d'informations indiquant un fait tel qu'un signal de commande. Opération de lecture de données Une description est ensuite fournie d'une opération de lecture de données en référence à la figure 4. Dans le cas où le système hôte 1 lit des données dans le dispositif de mémorisation, le dispositif hôte 1. envoie une commande de lecture à l'unité de réponse à une commande 22 (étape S201). Lorsqu'elle reçoit la commande de lecture envoyée par le système hôte 1 conformément à la commande de lecture reçue, l'unité de réponse à une commande 22 envoie un signal de commande qui fournit une instruction à l'unité de traitement de données 24 pour lire des données (étape S202). Le signal de commande qui fournit une instruction pour lire des données comporte la commande de lecture transmise par le système hôte 1. Lorsqu'elle reçoit le signal de commande fournissant une instruction de lecture de l'unité de réponse à une commande 22, l'unité de traitement de données 24 se réfère à la table d'états 25 pour contrôler le réglage d'activation de lecture du SSD (étape S203) et détermine à quel SSD l'unité de traitement de données 24 peut envoyer la commande de lecture (étape S204). L'unité de traitement de données 24 envoie ensuite la commande de lecture au SSD activé en lecture (SSD 3 ou 4) par l'intermédiaire de l'unité de moniteur 26 et de l'I/F de disque 27 ou 28 (étapes 5205 et S206). Comme résultat de la référence à la table d'états 25, on suppose ici que l'indicateur de destination d'écriture est réglé à 1 (le SSD 4 est réglé à l'activation d'écriture), c'est-à-dire que le SSD 3 est réglé en activation de lecture. Dans ce cas, l'unité de traitement de données 24 envoie la commande de lecture au SSD 3 par l'intermédiaire de l'unité de moniteur 26 et de l'I/F de disque 27. Le SSD 3 qui a reçu la commande de lecture lit en séquence les données et envoie ces mêmes données à l'I/F de disque 27. L'unité de traitement de données 24 envoie les données reçues par l'intermédiaire de l'I/F de disque 27 à l'unité de réponse à une commande 22 et l'unité de réponse à une commande 22 envoie les données reçues au système hôte 1 par l'intermédiaire de l'I/F externe 20 (étape S207). Dans ce cas, les données reçues du SSD 3 ne traversent pas la mémoire tampon 23. À la fin du processus d'envoi des données, le SSD 3 envoie à l'unité de réponse à une commande 22 une réponse de fin de lecture par l'intermédiaire de l'I,1F de disque 27 (étapes S208 et S209), l'unité de moniteur 26 et l'unité de traitement de données 24. L'unité de réponse à une commande 22 envoie au système hôte 1 une réponse de fin de lecture (étape S210). Une description est ici fournie des modifications d'état dans le cas où il existe un retard dans le processus d'écriture dans le SSD 3 ou 4 en référence aux figures 5, 6A et 6B. Les figures 6A et 6B sont une série de chronogrammes. Premièrement, en référence à la figure 5, une description est fournie des modifications d'état dans le cas où il n'y a pas de retard dans le processus d'écriture dans le SSD 3 ou 4. Sur les dessins, Wn (n=1, 2, 3, ...) et Rn n-1, 2, 3, ...) indiquent respectivement le temps dans le processus d'écriture et le temps dans le processus de lecture, et les modifications du temps de passage par les états sont décrites en séquence. Un ensemble de données écrites au temps Wn est appelé ensemble de données (Wn) et un ensemble de données spécifiées comme étant lues au temps Wn est appelé ensemble de données (Rn). Sur les figures 5, 6A et 6B, l'ensemble de données écrites au temps Wn est indiqué simplement par Wn et les données spécifiées comme étant lues au temps Rn sont indiquées simplement par Rn. Dans l'état 1, une commande d'écriture est délivrée par le système hôte 1. L'unité de réponse à une commande 22 reçoit la commande d'écriture, envoie un signal de commande de début de comptage au séquenceur 21 et conserve les données (W1) dans la mémoire tampon 23. Lorsque l'unité de réponse à une commande 22 termine le processus de réception des données (W1) et reçoit la notification d'échéance du séquenceur 21 après que l'échéance prédéterminée T est atteinte, l'unité de réponse à une commande 22 envoie la réponse de fin d'écriture au système hôte 1. Dans l'état 2, une commande de lecture est délivrée par le système hôte 1. Puisque l'indicateur de destination d'écriture est à 0, les données (R1) sont lues dans le SSD 4 et les données (R1) sont envoyées au système hôte 1. Dans l'état 3, une commande d'écriture est délivrée par le système hôte -I et les données (W2) sont conservées dans la mémoire tampon 23. En même temps, les données (W1) qui sont écrites dans la mémoire tampon 23 dans l'état 1, sont écrites dans le SSD 4 activé en écriture en référence à l'indicateur de destination d'écriture de la table d'états 25. Si l'indicateur d'état de fonctionnement du SSD de la table d'états 25 est à 0 (état « attente )>) lorsque la commande d'écriture est reçue depuis le système hôte 1, l'unité de réponse à une commande 22 modifie l'indicateur de destination d'écriture de 0 à 1, c'est-à-dire qu'il modifie la destination d'écriture du SSD 3 au SSD 4. Après que H conservation des données (W2) dans la mémoire tampon 23 est terminée, les données (W2) dans la mémoire tampon 23 sont écrites dans le SSD 4. En d'autres termes, les données (W1, W2) sont écrites dans le SSD 4 jusqu'à ce que les données d'écriture (W2) du système hôte 1 correspondent aux données d'écriture écrites dans le SSD 4 (W1, W2). Dans l'état 4, en réponse à la commande de lecture du système hôte 1, les données (R2) sont lues dans le SSD 3, qui est réglé en désactivation d'écriture et sont envoyées au système hôte 1. Dans ce processus, dans l'autre SSD 4, les données (W2) sont en cours d'écriture dans certains cas. Dans l'état 5, une commande d'écriture est délivrée par le système hôte 1 et les données (W3) sont conservées dans la mémoire tampon 23. Dans ce processus, l'indicateur de destination d'écriture de la table d'états 25 est modifié de 1 à 0, c'est-à-dire que la destination d'écriture est modifiée du SSD 4 au SSD 3. En d'autres termes, le réglage de désactivation d'écriture du SSD est modifié du SSD 3 au SSD 4. Les données (VV1 et W2) conservées dans la mémoire tampon 23 dans les états 1 et 3 sont écrites dans le SSD 3, qui est activé en écriture. Les données (W1, W2) sont écrites dans le SSD 3 jusqu'à ce que les données d'écriture précédente (W2) correspondent aux données d'écriture écrites dans le SSD 3. Les données incluses dans le SSD 4 sont donc synchronisées avec les données incluses dans le SSD 3. Dans l'état 6, le processus de lecture est exécuté d'une manière similaire à l'état 4. Les états 3 à 6 sont ensuite répétés. Une description est ensuite fournie des modifications d'état dans le cas où il existe un retard dans le processus d'écriture dans le SSD 3 ou 4 en référence aux figures 6A et 6B. Dans l'état 7, après avoir reçu du système hôte 1 une commande d'écriture, kL.s. données (W3) transmises par le système hôte sont conservées dans la mémoire tampon 23. Dans ce processus, l'indicateur de destination d'écriture de la table d'états 25 est modifié de 1 à 0, c'est-à-dire que la destination d'écriture est modifiée du SSD 4 au SSD 3. En d'autres termes, le SSD désactivé en écriture est modifié du SSD 3 au SSD 4. En même temps, les données (VVl) sont écrites dans le SSD 3. On suppose toutefois qu'il existe un retard dans le processus d'écriture des données (W1) dans le SSD 3 et le processus d'écriture se poursuit jusqu'à l'état 10 suivant. Dans l'état 8, les données (R3) sont lues dans le SSD 4 en réponse à une commande de lecture du système hôte 1 et sont envoyées au système hôte 1. Dans ce processus, dans le SSD 3, le processus d'écriture des données (W1) se poursuit. Dans l'état 9, après avoir reçu du système hôte 1 la commande d'écriture, les données (W4) qui sont envoyées par le système hôte 1 sont conservées dans la mémoire tampon 23. En même temps, le processus d'écriture des données (VV1) dans le SSD 3 se poursuit toujours. Lorsque le processus d'écriture de données dans le SSD 3 se poursuit depuis l'état précédent, la destination d'écriture (réglage de désactivation d'écriture) n'est pas modifiée. Dans ce cas, le SSD 4 reste désactivé en écriture. De plus, le réglage spécifiant un SSD dans lequel les données sont écrites jusqu'à ce que les données écrites correspondent aux données d'écriture du système hôte 1 est modifié. De façon spécifique, après avoir modifié le réglage précédent, les données d'écriture du dispositif hôte 1 sont écrites dans le SSD 3 jusqu'à ce que les données d'écriture du dispositif hôte 1 correspondent aux données d'écriture écrites dans le SSD 3 et les données d'écriture précédentes sont écrites dans le SSD 4 jusqu'à ce que les données d'écriture écrites dans le SSD 4 correspondent aux données d'écriture précédentes. Dans l'état 10, les données (R4) sont lues dans le SSD 4 en réponse à la commande de lecture du système hôte 1. À ce moment, puisque le réglage de désactivation en écriture du SSD n'est pas modifié dans l'état 9, les données sont lues dans le SSD 4, ce qui est similaire à l'état 8. Dans ce processus, dans l'autre SSD 3, le processus d'écriture de données se poursuit. S'il reste du temps jusqu'à ce que la commande d'écriture suivante soit délivrée par le système hôte 1 lorsque le processus d'écriture des données (Wit) est terminé, les données (W2) sont écrites dans le SSD 3. Dans l'état 11, une commande d'écriture est reçue du système hôte 1 et le SSD désactivé en écriture est modifié du SSD 4 au SSD 3. Après cela, les données (W5) transmises par le système hôte 1 sont conservées dans la mémoire tampon 23. En même temps, les données (W3 et \A »,i) conservées dans la mémoire tampon 23 sont écrites dans le SSD 4 qui est réglé en activation d'écriture. Puisque la gamme de données d'écriture destinées à être écrites dans le SSD 3 et la gammes de données d'écriture destinées à être écrites dans le SSD d sont modifiées dans l'état 9, les données (W3, W4) sont écrites dans le SSD 4 jusqu'à ce que les données précédentes (W4) provenant du système hôte 1 correspondent aux données d'écriture dans le SSD 4. Dans l'état 12, le fonctionnement de base du processus de lecture est exécuté. Dans l'état 13, après avoir reçu du système hôte 1 une commande d'écriture, les données (W6) transmises par le système hôte 1 sont conservées dans la mémoire tampon 23. En même temps, les données (W3, W4 et W5) conservées dans la mémoire tampon 23 sont écrites dans le SSD 3. De temps en temps, le processus d'écriture de données dans le SSD 3 ne rattrape pas encore les données d'écriture transmise par le système hôte 1 et les données suivantes (W4 et W5) sont donc également écrites dans le SSD 3. Dans l'état 14, le fonctionnement de base du processus de lecture est exécuté. À cet instant, puisque le processus d'écriture de données dans le SSD 3 ne rattrape pas encore les données d'écriture transmises par le dispositif hôte 1, les données suivantes (partie restante de W4 et W5) sont écrites dans le SSD 3. Les états 15 à 18 sont les mêmes opérations que celle des états 11 à 14. Les opérations susmentionnées sont répétées jusqu'à ce que res données d'écriture dans le SSD 3 rattrapent les données d'écriture du système hôte 1 tel que l'état 18. Après cela, le fonctionnement redevient similaire au fonctionnement de base. Selon le premier mode de réalisation, comme décrit ci-dessus, la synchronisation des données est mise en oeuvre en utilisant deux SSD 3 et 4. En écrivant des données dans le SSD en attente des SSD et en lisant les données dans l'autre SSD, qui est réglé en désactivation d'écriture, les dispositifs de mémorisation peuvent être appliqués au processus de lecture de données dans une commande en temps réel. En réponse à une commande d'écriture du système hôte 1, les données du système hôte 1 sont conservées dans la mémoire tampon 23 et les données de la mémoire tampon 23 sont convenablement écrites dans les SSD 3 et 4 avec les états d'écriture et de lecture des SSD 3 et 4 modifiés, de telle sorte que le retard provoqué dans les SSD 3 et 4 est absorbé. En d'autres termes, en séparant le processus des SSD 3, 4 et le processus pour le système hôte dans le contrôleur 2 pour les dispositifs de mémorisation, le retard de réponse des SSD 3 et 4 ne peut pas influencer le système hôte 1 et les retards dans les SSD pour le système hôte 1 peuvent être absorbés dans le temps de réponse admis prédéterminé. De plus, dans le processus d'écriture de données par le système hôte 1, même lorsque la conservation des données transmises par le système hôte 1 dans la mémoire tampon 23 est terminée, la réponse de fin d'écriture n'est pas immédiatement renvoyée. La réponse de fin 15 d'écriture pour les données est renvoyée au système hôte 1 en synchronisation avec le cycle auquel le système hôte 1 transmet des données. Ainsi, la transmission des données suivantes par le système hôte 1 est commandée. Même s'il existe un retard dans le processus d'écriture de données dans le SSD 3 ou 4, les données reçues ne s'accumulent pas 20 de manière excessive dans la mémoire tampon 23, absorbant ainsi l'influence du retard. Ceci permet aux SSD 3 et 4 généraux qui ne sont pas garantis en termes de temps de retard d'être utilisés dans une commande en temps réel. De plus, selon le contrôleur 2 pour dispositifs de mémorisation 25 de ce mode de réalisation, les effets suivants peuvent être obtenus. 1) La connexion du contrôleur 2 aux dispositifs de mémorisation à usage général (SSD et HDD) permet d'éliminer l'influence des retards apparaissant dans les dispositifs de mémorisation dans le processus d'écriture et de lecture de données. 30 2) En modifiant uniquement les fonctions des 1/F de disque 27 et 28 du contrôleur 2, le contrôleur 2 peut être appliqué à tous les dispositifs de mémorisation normalisés actuellement et dans l'avenir. En conséquence il est possible de remplacer facilement les dispositifs de mémorisation par des dispositifs de mémorisation de nouvelle génération. 3) Le contrôleur 2 peut être mis en oeuvre sous forme d'une fonction étendue d'ordinateurs, serveurs et analogue et peut être facilement incorporé dans un matériel industriel. Selon le mode de réalisation, il est possible de fournir le contrôleur 2 permettant à des dispositifs de mémorisation tels que des SSD à usage général d'être utilisés dans une commande en temps réel et le procédé de retard garanti par le contrôleur 2. Une description est ensuite fournie d'un deuxième mode de réalisation en référence à la figure 7. Ce deuxième mode de réalisation est une modification du premier mode de réalisation. Comme représenté sur la figure 7, un contrôleur 2 du deuxième mode de réalisation comporte des unités de moniteur 26a et 26b, respectivement entre l'unité de traitement de données 24 et les TIF de disque 27 et 28. Selon ce deuxième mode de réalisation, similaire au premier mode de réalisation, on peut utiliser des dispositifs de mémorisation à usage général dans une commande en temps réel. De plus, selon le deuxième mode de réalisation, en prévoyant les unités de moniteur 26a et 26b entre l'unité de traitement de données 24 et les 1/F de disque 27 et 28 pour surveiller des flux de données et les commandes des 1/F de disque respectifs 27 et 28, la charge sur chaque unité de moniteur 26a et 26b peut être réduite. De plus, selon le deuxième mode de réalisation, il est possible d'utiliser des éléments relativement économiques et ceci contribue à la réduction du coût. Une description est ensuite fournie d'un troisième mode de réalisation en référence à la figure 8. Le troisième mode de réalisation est une modification du deuxième mode de réalisation. Comme représenté sur la figure 8, un contrôleur 2 du troisième mode de réalisation comporte des unités de moniteur 26a et 26b dans les I../F de disque 27 et 28. Les I/F de disque 27 et 28 utilisent les normes SATA. Les unités de moniteur 26a et 26b ont pour fonction de surveiller la transmission des commandes FIS entre la couche transport et la couche liaison dans la norme SATA. Les unités de moniteur 26a et 26b ont pour fonction de calculer la période entre le moment où une commande FIS est envoyée depuis l'I/F de disque 27 ou 28 au SSD 3 ou ,4 et le moment où 'F de disque 27 ou 28 a reçu des réponses du SSD 3 ou 4, sous forme de temps de retard, respectivement et fournit en sortie les temps de retard calculés à l'unité de traitement de données 24, comme informations de surveillance. Selon le troisième mode de réalisation, similaire au premier mode de réalisation, on peut utiliser des dispositifs de mémorisation à usage général dans une commande en temps réel. Selon le troisième mode de réalisation, de plus, en prévoyant les unités de moniteurs 26a et 26b à l'intérieur des I/F de disque 27 et 28, la taille de l'unité peut être réduite. Une description est ensuite fournie d'un quatrième mode de réalisation en référence à la figure 9. Le quatrième mode de réalisation est une modification du deuxième mode de réalisation. Un contrôleur 2 du quatrième mode de réalisation est un exemple de configuration dans le cas où le contrôleur 2 est connecté à quatre SSD 3 à 6. Comme représenté sur la figure 9, dans le contrôleur 2 du quatrième mode de réalisation, les quatre SSD 3 à 6 sont divisés en deux groupes. Chaque groupe comporte deux SSD. Chacune des groupes peut exécuter des opérations RAIDO et RAIDI. La section de groupe 7 comporte les 1/F de disque 27 et 28 respectivement connectées aux deux SSD 3 et 4 et une unité de 20 commande de groupe 30. La section de groupe 8 comporte les 1/F de disque 27 et 28 respectivement connectés aux deux SSD 5 et 6 et une unité de commande de groupe 30. Les sections de groupe 7 et 8 effectuent la commande des groupes respectifs. 25 Dans ce mode de réalisation, les sections de groupe 7 et 8 sont commandées d'une manière similaire aux SSD 3 et 4 des modes de réalisation susmentionnés. Une description est fournie du fonctionnement du quatrième mode de réalisation. Pour comprendre facilement l'explication, la 30 descriptIon de la section de groupe 7 est fournie, Dans le quatrième mode de réalisation, dans le cas d'une commande RAIDO, ies données écrites par l'unité de traitement de données 24 sont divisées en ensembles de données de certaines tailles, qui sont écrits dans les SSD 3 et 4. Ceci peut augmenter la vitesse de 35 transmission. Dans le cas de la lecture de données dans les SSD 3 et 4, les ensembles de données cibles sont lus dans les SSD 3 et 4 et sont combinés et les données combinées sont fournies en sortie à l'unité de traitement de données 24. Ceci permet d'augmenter la vitesse de transmission. D'autre part, dans le cas d'une commande RAIDI, les données écrites par l'unité de traitement de données 24 sont écrites dans les SSD 3 et 4. Dans ce cas, lorsque l'un des SSD 3 et 4 est endommagé, les données peuvent être écrites et lues dans l'autre SSD (le SSD 3 ou 4) et la fiabilité en tant que système de mémorisation peut être améliorée. Selon le quatrième mode de réalisation, similaire au premier mode de réalisation, on peut utiliser des dispositifs de mémorisation à usage général dans une commande en temps réel. Bien que certains modes de réalisation aient été décrits, ces modes de réalisation ont été présentés à titre d'exemple seulement et ne sont pas destinés à limiter la portée des inventions. En fait, les nouveaux modes de réalisation ici décrits peuvent être réalisés dans une diversité d'autres formes ; de plus, diverses omissions, remplacements et modifications dans la forme des modes de réalisation ici décrits peuvent être réalisés sans s'écarter de l'esprit des inventions. Les revendications annexées et leurs équivalents sont destinés à couvrir ces formes ou modifications et appartiennent à la portée et à l'esprit des inventions. D'autre part, les éléments constituants représentés dans les modes de réalisation décrits ci-dessus peuvent être mis en oeuvre par un programme installé dans un dispositif de mémorisation, par exemple un disque dur d'ordinateur. En variante, les fonctions de la présente invention sont mises en oeuvre dans un ordinateur de telle manière qu'un programme est mémorisé dans un support électronique lisible par un ordinateur et on fait lire le programme par l'ordinateur à partir du support électronique. Le support électronique comporte, par exemple, un support d'enregistrement tel qu'un CD-ROM, une mémoire flash, un support amovible ou analogue. De plus, les fonctions de la présente invention peuvent être mises en oeuvre de telle manière que les éléments constituants soient mémorisés d'une manière distribuée dans différents ordinateurs connectés par l'intermédiaire d'un réseau, et des REVENDICATIONS1. Contrôleur (2) pouvant être connecté à un système hôte (1) et à une pluralité de dispositifs de mémorisation (3, 4), , e contrôleur (2) comprenant : une table d'états (25) dans laquelle sont réglés l'état de fonctionnement de la pluralité de dispositifs de mémorisation (3, 4) et une destination d'écriture pour les données ; un moniteur (26) configuré pour surveiller l'état de fonctionnement de la pluralité de dispositifs de mémorisation (3, 4) et pour régler l'état de fonctionnement des dispositifs de mémorisation (3, 4) dans la table d'états (25) ; une mémoire tampon (23) capable de conserver des données ; un séquenceur (21) configuré pour compter un temps réglé au préalable conformément à une instruction de commencer à compter et pour envoyer une notification d'échéance lorsque le temps réglé au préalable est atteint ; une unité de réponse à commande (22), configurée de telle sorte que lorsqu'elle reçoit du système hôte (1) une commande d'écriture, l'unité de réponse à commande (22) demande au séquenceur (21) de commencer à compter, règle la destination d'écriture pour les données dans la table d'états (25), fournit en sortie un signal de commande qui fournit une instruction pour écrire des données dans le dispositif de mémorisation (3, 4) de la destination d'écriture, conserve dans la mémoire tampon (23) les données d'écriture envoyées par le système hôte (1) pendant une certaine période de temps après la commande d'écriture et renvoie au système hôte (1) une réponse de fin d'écriture correspondant à la commande d'écriture lorsqu'elle reçoit la notification d'échéance du séquenceur (21) ; et un processeur de données (24) configuré de telle sorte que lorsqu'il reçoit le signal de commande qui fournit une instruction pour écrire des données depuis l'unité de réponse à commande (22), le processeur de données (24) se réfère à la table d'états (25) pour choisir un dispositif de mémorisation (3, 4) de la destination d'écriture et écrit les données de lecture dans la mémoire tampon (23) dans le dispositif de mémorisation (3, 4) choisi. 2. Contrôleur (2) selon la revendication 1, dans lequel le réglage de l'état de fonctionnement des dispositifs de mémorisation (3, 4) comprend le réglage d'un indicateur indiquant un état quelconque parmi attente » et « écriture ». 3. Contrôleur (2) selon la revendication 1, dans lequel lorsqu'elle reçoit la commande d'écriture du système hôte (1), l'unité de réponse à commande (22) se réfère à la table d'états (25) pour contrôler l'état de fonctionnement des dispositifs de mémorisation (3, 4) et si l'état de fonctionnement est « attente », l'unité de réponse à commande (22) modifie la destination d'écriture des données dans la table d'états (25). 4. Contrôleur (2) selon la revendication 1, dans lequel la pluralité de dispositifs de mémorisation (3, 4) comporte un premier et un deuxième dispositif de mémorisation (3, 4), et la synchronisation des données est effectuée entre les premier et deuxième dispositifs de mémorisation (3, 4) en écrivant les données reçues du système hôte (1) et conservées dans la mémoire tampon (23) dans le premier dispositif de mémorisation (3, 4), puis en lisant les données conservées dans la mémoire tampon (23) et en écrivant les données dans le deuxième dispositif de mémorisation (3, 4). 5. Contrôleur (2) selon la revendication 1, les dispositifs de mémorisation (3, 4) étant des disques électroniques à usage général. 6. Contrôleur (2) selon la revendication 1, dans lequel le signal de commande qui fournit une instruction d'écriture de données comporte la commande d'écriture reçue du système hôte (1) par l'unité de réponse à commando (22) et le processeur de données (24) envoie la commande d'écriture au dispositif de mémorisation (3, 4). 7. Procédé de commande comprenant les étapes consistant à : surveiller l'état de fonctionnement d'une pluralité de dispositifs de mémorisation (3, 4) et régler l'état de fonctionnement des dispositifs de mémorisation (3, 4) dans une table d'états (25) au moyen d'un moniteur (26) ; lorsqu'un système hôte (1) fournit une demande d'écriture, demander à un séquenceur (21) de commencer à compter, régler une destination d'écriture pour les données dans la table d'états (25), fournir en sortie un signal de commande qui fournit une instruction pour écrire des données dans le dispositif de mémorisation (3, 4) de la destinationd'écriture, et conserver dans la mémoire tampon (23) les données envoyées par le système hôte (1) pendant une certaine période de temps de réponse après la demande d'écriture par une unité de réponse ; compter le temps de réponse avec le séquenceur (21) réglé au préalable lors d'une instruction de début de comptage et envoyer une notification d'échéance à l'unité de réponse lorsque le temps de réponse réglé au préalable est atteint ; choisir un dispositif de mémorisation (3, 4) inscriptible au moyen d'une unité de traitement de données (24) qui a reçu le signal de commande sur la base de l'état de fonctionnement des dispositifs de mémorisation (3, 4) et la destination d'écriture pour les données en se référant à la table d'états (25) et écrire dans le dispositif de mémorisation (3, 4) choisi les données lues dans la mémoire tampon (23) ; et lorsque la notification d'échéance est envoyée par le séquenceur (21) à l'unité de réponse, renvoyer au système hôte (1) une réponse de fin d'écriture correspondant à la demande d'écriture par l'unité de réponse. 8. Procédé selon la revendication 7, dans lequel le réglage de l'état de fonctionnement des dispositifs de mémorisation (3, 4) comprend le réglage d'un indicateur indiquant l'un quelconque des états parmi « attente » et « écriture ». 9. Procédé selon la revendication 7, comprenant en outre, lorsqu'un système hôte (1) fournit une demande d'écriture en référence à la table d'états (25) pour contrôler l'état de fonctionnement des dispositifs de mémorisation (3, 4) et si l'état de fonctionnement est « attente », le changement de la destination d'écriture des données dans la table d'états (25). 10. Procédé selon la revendication 7, dans lequel la pluralité de dispositifs de mémorisation (3, 4) comporte un premier et un deuxième dispositif de mémorisation (3, 4), et la synchronisation des données est effectuée entre les premier et deuxième dispositifs de mémorisation (3, 4) en écrivant dans le premier dispositif de mémorisation (3, 4) les données reçues du système hâte (1) et conservées dans la mémoire tampon (23) puis en lisant dans le deuxième dispositif de mémorisation (3, 4) les données conservées dans la mémoire tampon (23) et en y écrivant les données. 11. Procédé selon la revendication 7, dans lequel les dispositifs de mémorisation (3, 4) sont des disques électroniques à usage général. 12. Contrôleur (2) comprenant : une table d'états (25) dans laquelle sont réglés l'état de fonctionnement d'une pluralité de dispositifs de mémorisation (3, 4) et une destination d'écriture pour des données ; un moniteur (26) configuré pour surveiller l'état de fonctionnement de la pluralité de dispositifs de mémorisation (3, 4) et pour régler l'état de fonctionnement des dispositifs de mémorisation (3, 4) dans la table d'états (25) ; une mémoire tampon (23) capable de conserver des données ; un séquenceur (21) configuré pour compter le temps réglé au préalable conformément à une instruction de début de comptage et pour envoyer une notification d'échéance lorsque le temps réglé au préalable est atteint ; un dispositif de commande configuré pour demander au séquenceur (21) de commencer à compter, régler la destination d'écriture pour les données dans la table d'états (25), fournir en sortie un signal de commande qui fournit une instruction pour (1) écrire des données dans le dispositif de mémorisation (3, 4) de la destination d'écriture, (2) écrire les données envoyées par le système hôte (1) pendant une certaine période de temps après la commande d'écriture et (3) renvoyer à un système hôte (1) une réponse de fin d'écriture correspondant à la commande d'écriture lorsqu'elle reçoit la notification d'échéance du séquenceur (21) ; et un processeur de données (24) configuré de telle sorte que lorsqu'il reçoit le signal de commande, celui-ci se réfère à la table d'états (25) pour choisir un dispositif de mémorisation (3, 4) de la destination d'écriture et écrit les données de lecture dans la mémoire tampon (23) dans le dispositif de mémorisation (3, 4) choisi. 13. Contrôleur (2) selon la revendication 12, dans lequel le réglage de l'état de fonctionnement des dispositifs de mémorisation (3, 4) comprend le réglage d'un indicateur indiquant un état quelconque parmi « attente et « écriture 14. Contrôleur (2) selon la revendication 12, dans lequel lorsqu'il reçoit la commande d'écriture du système hôte (1.), le dispositif de commande se réfère à la table d'états (25) pour contrôler l'état defonctionnement des dispositifs de mémorisation (3, 4) et si l'état de fonctionnement est « attente », le dispositif de commande modifie la destination d'écriture des données dans la table d'états (25). 15. Contrôleur (2) selon la revendication 12, dans lequel la pluralité de dispositifs de mémorisation (3, 4) comporte un premier et un deuxième dispositif de mémorisation (3, 4), et la synchronisation des données est effectuée entre les premier et deuxième dispositifs de mémorisation (3, 4) en écrivant dans le premier dispositif de mémorisation (3, 4) les données reçues du système hôte (1) et conservées dans la mémoire tampon (23), puis en lisant dans le deuxième dispositif de mémorisation (3, 4) les données conservées dans la mémoire tampon (23) et en y écrivant les données. 16. Contrôleur (2) selon la revendication 12, les dispositifs de mémorisation (3, 4) étant des disques électroniques à usage général. 17. Contrôleur (2) selon la revendication 12, dans lequel le signal de commande comporte la commande d'écriture reçue du système hôte (1) par le dispositif de commande et le processeur de données (24) envoie la commande d'écriture au dispositif de mémorisation (3, 4).