FR 2423004 A1 19791109 FR 7810858 A 19780413 La présente invention concerne un système informatique comprenant au moins une unité centrale de traitement de données et une unité de mémoire à disques couplés entre eux par un canal d'entréelsortie. Plus particulièrement l'invention concerne un dispositif permettant le transfert direct des informations ou données entre une mémoire à disque magnétique et la mémoire de unité centrale de traitement de données. On sait que les informations ou données enregistrées sur un disque magnétique sont réparties sur des pistes magnétiques elles-memes divisées en secteurs et que pour lire ou écrire une information sur une piste et un secteur déterminé il est nécessaire de positionner une tete de lecture ou d'écrire directement en regard de la piste et du secteur sélectionné.Les informations sont lues ou écrites sous forme binaire, elles sont lues par la tête de lecture et transféréesdans un mode serievers un organe récepteur, ou transférées en mode série vers la tête d'écriture par un organe émetteur. La vitesse de transfert des informations entre un disque et un organe émetteur ou récepteur est très éleve,de l'ordre de i mégabyte par/s, le byte ayant souvent la dimension d'un octet. La transmissionçune fois initialisée par lworgane émetteur ou récepteur extérieur au disque peut Stre interrompue, c'est pourquoi il est prévu des registres tampon en nombre suffisant pour pouvoir mémoriser dans l'organe émetteur récepteur les bytes dlinfor- mations qui font l'objet du transfert.Le transfert de ces informations nécessite la mise en place de signaux de commande de l'unité de disque, le deplacement et ltasservissement de la tete de lecture ou écriture sur la piste et le secteur sélectionné, puis le transfert des informations de la piste et du secteur sélectionné dans ltorgane récepteur ou le transfert des informations de l'organe émetteur sur la piste ou le secteur sélectionné. Pendant tout le temps que dure ces trois phases les organes émetteur restent en communication avec le disque.Ces transferts prenant du temps le transfert dwinforma- tion entre une unité de disque et une unité centrale de traitement nécessite 'interposition entre ces deux unités diune unité spécialisée, généralement dénommée unité de contrôle d'entrée/sortie ou unité de contrôle de disque qui dispose une mémoire suffisante pour mémoriser temporairement les paquets de bytes devant etre transférés à l'unité de disque ou transférés à partir Ce cette dernière. Cette solution est onéreuse car elle met en oeuvre un matériel important. Par contre elle n'immobilise pas l'unité centrale pen dant la durée de transfert des in ormations destinées à,ou provenant de l'unité de disque. La présente invention a pour but de pallier l'inconvénient résidant dans l'utilisation des controleurs de périphérique ou unité dientrée/sortie, tout en minimisant le temps d'immobilisation de l'unité centrale. Le dispositif selon l'invention permet d'exécuter le transfert des informations en trois phases, la première phase correspond à l'émission par l 'unité centrale des signaux nécessaires à la commande de positionnement des têtes de l'unité de disque, la deuxième phase correspond à l'exécution du position- nement de la tête sur la piste et le secteur demandé et Ic troisième phase correspond au transfert des nformations à lire ou à écrire sur le disque. L'unité centrale assure l'exécution des phases t et 3, alors que le dispositif selon l'invention permet l'exécution de la phase 2 rendant l'unité centrale disponible pour exécuter le traitement interrompu lors de sa connection à l'unité de disque. L'intervention sera mieux comprise à; laide de la description faite, au regard des dessins, qui va suivre. La figure 1 représente le formatage d'un disque utilisé cans es unités de disques. La figure 2 représente le dispositif selon l'invention permettant le transfert des informations entre la mémoire vive d'unité centrale ne traitement et la mémoire å disques. Les figures 3 et 4 représentent des diagrammes mettant en évidence le fonctionnement de l'unité centrale lors de l'exécution d'une instruction écriture ou lecture. Le disque représenté à la figure X est constitué d'un ensemble de pistes concentriques te que 2#, 23, 2C, etc... ainsi que d'un ensemble ce secteurs tes que S1, S2, SS, etc... Il comprend en outre doux couronnes concentriques 3 et 4. La couronne 3 sert au repérage des secteurs crace a des fentes rl, F2, F3, ect... pratiquées sur sa périphérie. La couronne 4 sert au repérage de l'origine du disque grise à une fente C3 pratiquée sur sa périphérie.Chaque couronne 3 et 2 est en rotation devant les capteurs électromagnétiques ou électrostatiques E et 6, le capteur 5 délivrant ure impulsion électrique entre ses bornes de sortie C et D chaque fois qulune fente Fl, FS, ect. passe à sa proximité, le capteur 6 délivrant une impulsion électrique entre ses bornes A et B chaque fois que la fente F0 passe à sa proximité. Le signal délivré en sortie du capteur 5 représentant le passage des secteurs portera le nom "Sector Mark" dans le reste de l'exposé et celui délivré par la sortie du capteur6portera le nom "d'index". Le dispositif représenté à la figure 2comprend une unité de disque 202, une unité centrale de traitement de données CPU 200, une mémoire vive 201 autour desquelles est implanté le dispositif de transfert des données selon l'invention. L'unité de disque 202 comprend un compteur de secteur 210, un registre d:adresses secteur 212, chacun dieux étant connecté à un comparateur 21,. L'uni té de disque 202 comprend en outre un certain nombre de registres de travail tel que 214. Elle comprend aussi une tête de lecture 217, une tête diécriture 218, une logique de commande des asservissements de tête 215, ainsi que des portes permettant l'autorisation des transfertsdes données matérialisées en 216, 219 et 220. La synchronisation pour le transfert des données lues dans l'unité de disques est assurée par le bloc horloge 221. Le dispositif selon l'inven- tion assure les liaisons entre les têtes de lecture 217 et d'écriture 218. il est directement inséré entre le bus de données à écrire, le bus de données lus et la mémoire vive 201. Ce dispositif comprend un registre à décalage 204 compris entre deux verrous 203 et 205, le verrou 203 étant en liaison avec un tampon désigné par FIFO 201 qui assure la liaison entre le registre à décalage 304 et la mémoire vive 201.Les liaisons entre les divers éléments qui viennent diêtre énonçés sont les suivantes. Le signal "Sector Mark" ou SM venant de la tête de lecture des fentes Fi à F8 est transmis directement à l'entrée 2 du compteur de secteur 210. Ce compteur de secteur 210 reçoit d'autre part sur son entrée 1 le signal dlindex transmis par I autre couronne du disque. Ce signal d index a pour rôle de remettre le compteur de secteur 210 à zéro Alors que le signal 5ectorMarkil ou SM a pour rôle de faire progresser le compteur de secteur.Sur la figure 2 le compteur de secteur a une capacité de 64 et comporte donc 6 bascules dont les sorties sont désignées par 3,4,5,6,7,8. Les sorties sont reliées directement aux entrées 1,2, q 4,5 6 du comparateur 211. Le registre dfadresse de secteur 212 a ses sorties 1,2,3,4,5,6 reliées respectivement aux entrées 7,8 > 9,lq 11 12 du comparateur 211. Lorsque les contenus du compteur de secteur 210 et du registre dssadresse secteur 212 sont les mêmes, le comparateur 211 délivre sur sa sortie 13 le signal d'interruption "interrupt" ce signal est directement transmis à l'entrée 4 de l'unité centrale de traitement de données 200.Le registre d'adresse de secteur 212 est chargé par son entrée 7 au travers du démultiplexeur 213 par le bus de sortie reliant la sortie 3 de l'unité centrale de traitement à l'entrée 5 du démultiplexeur 213. Ce bus de sortie a pour rôle d'assurer la transmission de l'adresse secteur demandée par l'unité centrale de traitement 200. Le démultiplexeur 213 est aussi relié par sa sortie 4 à l'entrée 1 du banc de registre 214. Le bus de sortie peut donc transmettre diautres informations de commande venant de l'unité centrale de traitement 200 à l'unité de disque 202 ainsi sur la figure 2 le registre RO du banc de registre 214 mémorise les ordres de lecture et écriture ordonnées par unité centrale de traitement 200.Le registre Ri de ce même banc de registre mémorise liadresse piste envoyée par l'unité centrale de traitement 200. La sortie S du banc de registre 214 est reliée directement à la logique de commande des asservissements de tête 215, cette logique d'assure vissement 215 assure le positionnement de la tête sur la piste dont ltadresse se trouve dans le registre R1 du banc de registre 214.La sortie S du banc de registre 214 est aussi reliée aux portes 216 - 219 et 220 pour délivrer les signaux d'autorisation d'écriture ou de lecture dans unité de disque202, ainsi le bit de lecture mémorisé dans le registre RO est transmis à l'entrée 1 de la porte 216 dont l'entrée 2 reçoit des signaux de synchronisation dlhor- loge transmis par le bloc drhorloge 221 et l'entrée 3 reçoit les signaux transmis par la tette de lecture 217. La sortie 4 de cette meme porte 216 transmet les données lues sur le bus de données de lecture à l'entrée du registre à décalage 204. La sortie S du banc de registre 214 est aussi reliée à l'entrée 1 de la porte 219 et transmet le bit d'écriture mémorisée dans le registre RO du banc de registre 214.L'entrée 1 de la porte 219 valide donc les données à écrire venant du registre à décalage 204 dont la sortie 19 est appliquée à l'entrée 2 de la porte 219. La synchronisation des données à écrire est assurée par le signal d'horloge d'écriture venant de la sortie 5 de l'unité centrale de traitement de données 200. La sortie 4 de la porte 219 est reliée à l'entrée 1 de la tête d'écriture 218 transmettant ainsi les données à écrire venant du registre à décalage 204 dans la tête d'écriture 218. La progression du registre à décalage 204 est assurée par la porte OU 209 qui reçoit sur son entrée 1 l'horloge de lecture et sur son entrée 2 Ithorloge d'écriture.Le registre à décalage 204 est décalé vers la droite lorsqu'il s'agit d'une opération de lecture, ce décalage à droite est commandé sur son entrée 20 par la sortie 5 de la porte 206 dont l'entrée 1 est reliée à la sortie 1 de l'unité centrale de traitement 202, la sortie 4 de l'entrée 4 est reliée à la sortie 2 de l'unité centrale de traitement 202. L'unité centrale de traitement 200 transmet, sur ces sorties 1 et 2, des signaux de commande encore appelés "TAG" permettant de définir si le système de transfert est en mode écriture ou en mode de lecture. Comme le registre à décalage 304 a une capacité de 8 bits ou d'un octet, le décalage des bits dans ce registre est contrôlé par un compteur t modulo 8 tw 208.Le compteur t modulo 8 '! 208 reçoit sur son entrée I les signaux de lecture émis par la porte 220. La sortie 3 du compteur " modulo 8 " 208 est appliqué sur l'entrée 3 de la porte 206 autorisant le transfert des 8 bits contenus dans le registre à décalage 204 dans le FIFO 201 au travers du verrou 203o La remise à zéro du compteur tX modulo 8 208 est assurée par l'unité centrale de traitement 200 permettant ainsi à ltinitialisation du transfert la remise à zéro de ce compteur. Les données lues par la tête de lecture et transférées dans le registre à décalage 204 sont ainsi transférées directement dans la mémoire vive 200 au travers du FIFO 201. Sur la figure 2, les liaisons assurant ce transfert sont les suivantes, les sorties 8 à 1 5 du registre à décalage 204 sont reliées respectivement aux entrées O à 7 du verrou 203, dont les sorties 8 à 15 sont reliées respectivement aux entrées O à 7 du FIFO 201 Bis. La sortie 8 du FIFO 201 Bis transfert ainsi 8 bits à l'entrée des données de la mémoire vive 201. Pour une opération d'écriture dans la mémoire à disque 202, les données à écrire sont transmises par leur sortie 3 de la mémoire vive 201 à l'entrée 8 du verrou 205 dont les sorties respectives O à 7 sont reliées aux entrées 0 à 7 du registre à décalage 2O4,les données ainsi transférées dans le registre à décalage 204 sont ensuite transmises dans un mode série sur le bus de données d'écriture par la sortie 19 de ce registre versd'écriture l'entrée 2 de la porte 219.Le compteur modulo 8 progresse alors avec les signaux d'horloge d'écriture appliquée sur son entrée 1 validant ainsi tous les 8 bits un nouveau transfert dans le registre à décalage 204. Le registre FIFO 201 bis est un registre piles fonctionnant sous le principe de la première donnée entrée pour la première donnée sortie. Lorsqu'unie donnée est présente à la sortie 8 du FIFO 201 Bis, l'unité centrale de traitement en est avertiepar le signal transmis par la sortie 9 du FIFO 201 Bis à l'entrée 8 de l'unité centrale de traitement 200. La mémoire vive de S:Ot est adressée de façon connue par les liaisons d'adresse reliant la sortie 6 de l'unité centrale de traitement à l'entrée 4 de la mémoire 201 et les commandes diécriture/lecture dans la mémoire 201 sont assurées par la liaison reliant l'unité centrale de traitement 200 à l'entrée 1 de la mémoire vive 201.Les signaux TAG transmis par unité centrale de traitement 200 vers les entrées 1 des multiplexeurs 213 servent la commande de ce démultiplexeur pour le transfert des données présentes sur le bus de sortie vers les registres d'adresse 212 et le banc de registre 214. Les figures 3 et 4 illustrent le fonctionnement du système de traitement de données lors de l'exécution dxune instruction écriture ou lecture, l'instruction de lecture/écriture 301 demande pour son exécution un branchement vers un microprogramme inscrit dans l'organe de commande de l'unité centrale de traitement 200. Ce microprogramme se déroule de la façon suivante : lorsqu il est lancé, l'étape 302 opère le calcul de lwadresse physique de la donnée devant etre lue ou écrite sur le disque de l'unité de disques 202 elle consiste en particulier à définir le numéro de piste et le numéro de secteur demandé.A l'étape 303 ,attente "Sector MarkI l'unité centrale attend le passage dxun secteur devant le capteur de détection du "Sector Marks le signal "Sector Mark étant transmis directement à lxen- trée 10 de l'unité centrale de traitement 200 sur la figure 2. Lorsque l'unité centrale de traitement 200 a détecté le signal "Sector Markil elle envoie sur le bus de sortie connecté à sa sortie 3 un numéro de piste et le numéro de secteur n - 1 si la donnée devant être lue ou écrite, se trouve à l'adresse de secteur n, ceci est figuré sur la figure 3 à l'étape 304. Ce transfert étant effectué dans le banc de registre 214 et le registre d'adresse 212 de la figure 2, l'unité centrale de traitement de donnée reprend le traitement qu'elle avait interrompu ce qui est figuré à l'étape 305 où s'exécute l'instruction suivante. A l'étape 306 l'unité centrale de traitement scrute continûment la liaison "interrupt" reliant la sortie 13 du com parateur 211 à l'entrée 4 de l'unité centrale de traitement ce qui est figuré à I étape 306. Tant qu'une interruption n'est pas intervenue c'est à dire tant que le contenu du compteur "Sector marks ntest pas égal à l'adresse secteur n - 1, l'unité centrale de traitement continue le traitement qu'elle est en train d'exécuter et arrête ce traitement dès qu'une interruption intervient sur la liaison "interrupt" .Lorsque cette interruption intervient l uni- té centrale opère un branchement sur le microprogramme d'exécution de l'instruction écriture ou lecture, supprime le signal interruptiten envoyant sur le bus de sortie un numéro de secteur qui sur la figure 3 porte le numéro 1 27,de façon qu une comparaison entre le compteur secteur et le registre d'adresse 212 ne puisse jamais avoir lieu dans le déroulement de ce microprogramme. Le microprogramme continueà la figure 4, stil s'agit dune opération d'écriture la validation de l'horloge écriture a lieu à l'étape 309 puis l'unité centrale attend le signal tSectorMark correspondant au secteur n. A llétape 310,lorsque ce secteur est présent le transfert des informations de données contenues dans la mémoire vive 201 a lieu directement vers la tête d'écriture 218 cette opération étant terminée le microprogramme fait à nouveau appel au programme "superviseur" et le traitement interrompu est repris à l'étape 314.S'il s'agit d'une opération de lecture, l'unité centrale de traitement attend la présence du nouveau secteur n à l'étape 312.Lorsque ce secteur est présent, le transfert des données présentes dans ce secteur sont transmises directement vers la mémoire vive 201 à l'étape 313, le transfert étant terminé le microprogramme fait ensuite appel au programme superviseur et le programme de traitement interrompu est repris à l'étape 314. On voit donc que par le dispositif de l'invention, les traitements de unité centrale sont interrompus que durant un bref instant lors de l'initialisation de l'unité de disque et au moment du transfert des informations entre l'unité de disque et la mémoire vive 201. Pendant le temps imparti au déplacement des têtes de lecture et au déplacement des secteurs du disque pour arriver au positionnement des dites têtes sur l'adresse de la donnée requise sur le disque, le traitement en cours d'exécution de unité centrale n'est nullement interrompu. Outre le fait que le dispositif selon l'invention permet de gagner un temps considérable de traitement qui peut être pour chaque transfert de donnée de quelques millisecondes on s'aper- çoit qu'il dispense de l'utilisation dtun contrôleur de disque, comme c'était le cas par le passé, et qulil permet donc une grande économie de matériel puisque le dispositif selon llinvention permet des transferts directs entre les têtes de I ecture et d'écriture et la mémoire vive de l'unité centrale. Il va de soi que le dispositif qui vient d'être décrit n'est nullement limitatif et que tout homme de l'art familiarisé avec les systèmes de traitement de données pourra concevoir aisément d'autres réalisations du dispositif selon l'invention sans pour autant sortir de son cadre. REVENDICATIONS 1 -Dispositif permettant le transfert direct d'informations ou données entre au moins une mémoire à disque magnétique et la mémoire principale d une unité centrale de traitement de données, la dite mémoire à disquecomportant un ensemble de pistes magnétiques concentriques, et un ensemble de secteurs repérés à l'aide de numéros diordre associés à des têtes de lecture/écriture caractérisé en ce qu'il comprend des moyens d'exécution permettant de générer un s ignal d'interruption du programme en cours dans lXuni- té centrale de traitement de données lorsqu'unie tête de lecture/écriture se trouve positionnée au regard du secteur dont le numéro diordre est directement inférieur au numéro d'ordre du secteur dans lequel la donnée ou l lin- formation doit être transférée, le dit signal d'interruption agissant dans l'u- nité centrale de traitement de données sur des moyens permettant d'effectuer un branchement sur le microprogramme permettant ltexécution du transfert des informations ou données entre le secteur demandé dans la mémoire à disque et la mémoire principale de 11unité centrale de traitement de données ainsi que des moyens permettant le transfert direct des informations ou données entre la mémoire à disque et l'unité centrale de traitement. 2 - Dispositif selon la revendication 1 caractérisé en ce que les moyens de génération du signal dlinterruption comprennent un premier moyen de mémorisation du numéro du secteur qui précède le secteur demandé par llu- nité centrale de traitement de données, un deuxième moyen permettant lliden- tification du numéro du secteur se trouvant devant la tête de lecture ou écriture de la mémoire à disque, et un troisième moyen permettant de relever l'identité des numéros de secteur contenus dans le premier moyen avec le n# méro de secteur indiqué par le deuxième moyen. 3 - Dispositif selon les revendications 1 et 2 caractérisé en ce que le dit signal d'interruption est généré par le dit troisième moyen lorsque la dite identité a lieu. 4 - Dispositif selon la revendication 1 caractérisé en ce que les moyens permettant le transfert direct entre la mémoire à disque et la mémoire principale de l'unité centrale de traitement comprennent un registre à décalage permettant la transmission en mode série des informations ou données entre la dite mémoire à disque et le dit registre à décalage et la transmission en mode parallèle des informations ou données entre le dit registre à décalage et la dite mémoire principale. 5 - Dispositif selon la revendication 4 caractérisé en ce que la régulation des mots de données s'effectue à l'aide d'un compteur associé au dit registre à décalage dont la capacité de comptage correspond au nombre dréléments de mémorisation constituant le dit registre à décalage.