FR 2455770 A1 19801128 FR 7911259 A 19790504 La présente invention concerne un circuit d'horloge perfectionné pour les systèmes de traitement de données numériques en général et destine plus particulierement a ceux qui utilisent une logique microprogrammée. Le circuit d'horloge d'un système de traitement de données numériques a logique microprogrammée doit fournir, a partir d'un signal d'horloge de base, un signal de démarrage et un signal de fin de cycle. A l'intérieur de chaque cycle, les organes de traitement doivent exécuter un certain nombre d'opérations, qui sont spécifiées dans des mots de commande, appelés microinstructions. Ces micro-instructions peuvent avoir des durées différentes, soit parce qu'elles sont de type différent, soit encore parce que leur exécution dépend du temps de réponse non défini d'un organe extérieur, tel une mémoire ou un dispositif d'entrée-sortie.Les micro-instructions qui font intervenir un organe extérieur sont dites asynchrones, tandis que les autres sont dites synchrones. Les micro-instructions synchrones sont donc celles pour lesquelles les opérations a effectuer prennent un temps égal a un nombre bien défini et constant de périodes du signal d'horloge de base, mais ce nombre peut varier d'une micro-instruction a la suivante. Un objet de l'invention est un circuit d'horloge, pour un systeme de traitement numérique a logique microprogrammée, qui délivre des signaux de début et de fin de cycle adaptés a chaque type de micro-instruction. Un autre objet de l'invention est un circuit d'horloge dont le cycle est, pour les micro-instructions synchrones, déterminé par le décodage de certains éléments binaires desdites micro-instructions synchrones. Un autre objet de l'invention est un circuit d'horloge dont le cycle est, pour les micro-instructions asynchrones, défini par le signal de réponse de l'organe extérieur impliqué dans lesdites micro-instructions asynchrones. Selon une caractéristique de l'invention, le circuit d'horloge comprend - des moyens pour déterminer le type de la micro-instruction en cours a partir de certains éléments binaires de ladite micro-instruction - des moyens pour compter, dans le cas d'une micro-instruction synchrone, une durée variable définie par certains autres éléments binaires de ladite micro-instruction en cours ; - des moyens pour envoyer, dans le cas d'une micro-instruction asynchrone, un signal de demande vers l'organe extérieur impliqué dans ladite micro instruction asynchrone ;; - des moyens pour délivrer un signal de fin de cycle, soit a la fin dudit comptage d'une durée variable dans le cas d'une micro-instruction synchrone, soit a la réception d'un signal de réponse dudit organe extérieur impliqué dans le cas d'une micro-instruction asynchrone. D'autres objets, caractéristiques et avantages de la présente invention apparaîtront plus clairement a la lecture de la description suivante d'un exemple de réalisation particulier, ladite description étant faite a titre purement illustratif et en relation avec les dessins joints dans lesquels - la figure 1 est un schéma général du circuit d'horloge de l'invention - les figures 2.a a 2.f montrent des diagrammes de signaux correspondant a une séquence synchrone du circuit d'horloge de l'invention - les figures 3.a a 3.i montrent des diagrammes de signaux correspondant a une séquence asynchrone du circuit d'horloge de l'invention - les figures 4.a a 4.f montrent des diagrammes de signaux correspondant a une phase d'initialisation du circuit d'horloge de l'invention. La figure 1 montre ltorganisation fonctionnelle du circuit d'horloge de l'invention. Un oscillateur 1 délivre un signal a 40 MHz qui est appliqué a un circuit 2 diviseur par deux, dont la sortie constitue le signal d'horloge de base a 20 MHz du système. Ce signal d'horloge de base est envoyé a un compteur 3, a un registre a décalage 5 et è un circuit logique de contrôle 4. Le registre è décalage 5 reçoit en entrée les signaux TO è T7 qui proviennent d'une porte NON-ET 7 et d'un décodeur de durée 6 ; il est commandé par le circuit logique de contrôle 4 et délivre un signal de fin de cycle CP qui est appliqué au compteur 3 et audit circuit logique de contrôle 4. Le principe de fonctionnement du circuit d'horloge de l'invention est exposé ci-après. Le signal de fin de cycle CP, qui représente également le signal de début de cycle pour le cycle suivant, constitue un ordre de-chargement pour le compteur 3. Ce dernier charge alors la valeur appliquée sur ses entrées et délivre en sortie un signal RC correspondant au passage dudit compteur par savaleur maximum. Ce signal RC est envoyé au circuit logique de contrôle 4. Dans le cas d'une micro-instruction de type synchrone, le circuit logique de contrôle 4 délivre un signal SYNC qui est appliqué à l'entrée d'activation du décodeur de durée 6. Ce signal SYNC provient du décodage, par ledit circuit logique de contrôle 4, de deux éléments binaires CTIM 10 et CTIM 11 de la micro-instruction concernée. Etant activé, le décodeur 6 fournit, a partir des éléments binaires CTIM 0 a CTIM 2, un code de durée sur ses sorties T1 à T7. L'ordre de chargement de ce code dans le registre à décalage 5 est fourni par le circuit logique de contrôle 4. Au bout d'un temps qui dépend du code chargé, le registre à décalage 5 délivre sur sa sortie QO un signal de fin de cycle CP. Dans le cas d'une micro-instruction de type asynchrone, la durée du cycle dépend du temps de réponse de l'organe extérieur impliqué. Le décodage des éléments binaires CTIM 10 et CTIM 11 par le circuit logique de contrôle 4 entraîne cette fois, non plus la délivrance du signal SYNC mais l'envoi d'un signal de demande MRQ, ou IRQ selon que l'organe impliqué est la mémoire ou un organe d'entrée-sortie respectivement. L'absence du signal SYNC a pour effet d'inhiber le décodeur de durée 6. Lorsque ledit organe extérieur envoie sa réponse sous la forme d'un signal MARQ, ou IARQ selon le cas, ce dernier est synchronisé sur l'horloge de base (à 20 Naz) et entraîne la délivrance par le circuit logique de contrôle 4 d'un signal MIARQ.Ce signal MIARQ entraîne, par l'intermédiaire de la porte 7, l'activation de l'entrée TO du registre à décalage 5, lequel délivre au bout d'un temps correspondant le signal de fin de cycle CP. On va étudier de manière plus détaillée le fonctionnement du circuit d'horloge de l'invention dans le cas d'une séquence synchrone, d'une séquence asynchrone et lors d'une phase d'initialisation. On a vu précédemment que la durée de chaque micro-instruction était déterminée par le décodage de certains éléments binaires dans le cas d'une micro-instruction synchrone ou par le temps de réponse d'un organe extérieur dans le cas d'une micro-instruction asynchrone. En fait, dans l'exemple de réalisation choisi, il est prévu au début de chaque cycle de micro-instruction une constante de temps fixe égale à deux cycles d'horloge de base, soit 100 ns. A cette constante de temps fixe s'ajoute, soit la durée déterminée par le décodage de certains éléments binaires des micro-instructions synchrones, soit le temps de réponse de l'organe extérieur impliqué dans les micro-instructions asynchrones. Les figures 2.a à 2.f montrent différents signaux correspondant à une séquence synchrone, d'un#e durée totale de 200 ns, du circuit d'horloge de l'invention. La figure 2.a montre lesignal d'horloge de base, à une fréquence de 20 NHz dans l'exemple considéré. La figure 2.b montre le signal présent sur la sortie T1 du décodeur de durée 6 et qui résulte du décodage des éléments binaires CTIM O à CTIM 2 de la micro-instruction concernée. A titre d'exemple, la durée des micro-instructions synchrones est comprise entre 200 ns et 500 ns. Ainsi, si l'on tient compte de la constante de temps fixe de 100 ns mentionnée ci-dessus, la durée définie par les trois éléments binaires CTDM O à CTIM 2 peut varier entre 100 ns et 400 ns par pas de 50 ns. Dans l'exemple d'une séquence de 200 ns, la durée définie par les éléments binaires CTIM O à CTIM 2 est égale à 100 ns, ce qui correspond à l'activation de la sortie T1 par le décodeur de durée 6. Le décodeur de durée 6 est en effet activé par le signal SYNC fourni par le circuit logique de contrôle 4 et résultant, comme on l'a vu précédemment, du décodage par ce circuit 4 des éléments binaires CTIM 10 et CTIM 11 de la micro-instruction en cours. La figure 2.c montre le signal RC de sortie du compteur 3.On a vu précédemment que la valeur (soit 1110) appliquée sur les entrées du compteur 3 est chargée dans ledit compteur sur l'impulsion CP constituant le signal de fin de cycle de la micro-instruction précédente. te compteur 3, qui est un compteur à quatre éléments binaires, atteint donc sa valeur maximum (soit 1111) au cycle suivant de l'horloge de base et délivre alors une impulsion RC qui est appliquée au circuit logique de contrôle 4. Cette impulsion RC entraine la délivrance par le circuit logique de contrôle 4 d'un signal SO représenté à la figure 2.d et appliqué au registre à décalage 5. Ce signal SO a pour effet de commander le chargement de la valeur présente sur les entrées TO à T7 (soit 10 dans l'exemple considéré) dans ledit registre à décalage 5.Le décalage de ladite valeur chargée s'effectue alors au rythme de l'horloge de base. On a représenté aux figures 2.e et 2.f l'état des sorties Q1 et QO respectivement du registre à décalage 5. Le signal présent sur la sortie QO constitue le signal de fin de cycle CP qui est envoyé au compteur 3 et au circuit logique de contrôle 4. Les figures 3.a à 3.i montrent différents signaux intervenant dans une séquence asynchrone du circuit d'horloge de l'invention. On retrouve le signal d'horloge de base à la figure 3.a. La figure 3.b montre l'état des sorties T1 à T7 du décodeur de durée 6. Toutes les sorties T1 à T7 sont dans l'état 1, qui correspond à un état inopérant, car le décodeur de durée 6 est inhibé par l'absence du signal SYNC. En effet, le décodage des éléments binaires CTIM 10 et CTIM 11 d'une micro-instruction asynchrone par le circuit logique de contrôle 4 n'entraîne plus la délivrance par ce dernier d'un signal SYNC mais celle d'un signal de demande MRQ, ou IRQ selon le cas, qui est envoyé vers l'organe extérieur impliqué.Ce signal de demande MRQ (ou IRQ) est délivré par le circuit logique de contrôle 4,100 ns (ou 150 ns) après le début de la micro-instruction, comme cela apparaît à la figure 3.f dans laquelle le signal MRQ est représenté en trait plein et le signal IRQ est représenté en pointillés. Le signal MRQ correspond à un signal de demande d'accès à la mémoire, tandis que le signal IRQ correspond à un signal de demande d'accès à un organe d'entrée-sortie. La figure 3.c montre le contenuodu compteur 3 qui, comme dans le cas d'une séquence synchrone, est chargé à la valeur 14 (soit 1110) par le signal de fin de cycle CP et délivre lorsqu'il atteint sa valeur maximum 15 une impulsion RC représentée à la figure 3.d. t'impulsion RC entraine la délivrance d'une impulsion SO (figure 3.e) qui commande le chargement dans le registre à décalage 5 de la valeur présente sur les entrées TO à T7. Or, ces entrées TO à T7 sont dans un état inopérant et la valeur chargée dans ledit registre est alors égale à zéro. Lorsqu'un signal de réponse MARQ, ou IARQ selon le cas (figure 3.g), arrive en provenance dudit organe extérieur impliqué dans la micro-instruction asynchrone, il est synchronisé sur l'horloge de base par le circuit logique de contrôle 4 et le signal MIARQ (figure 3.h) qui en résulte a pour effet d'une part, de mettre à i le signal SO (figure 3.e) et d'autre part, d'activer la sortie TO de la porte 7.La valeur correspondante (soit 1) est alors chargée dans le registre à décalage 5 qui délivre, au cycle suivant de l'horloge de base, une impulsion CP (figure 3.i) sur sa sortie QO. Les figures 4.a à 4.f montrent différents signaux intervenant dans le cadre d'une phase d'initialisation du circuit d'horloge de l'invention. L'initialisation du circuit d'horloge est effectuée de manière automatique à la mise sous tension ou lors d'une remise à zéro du système de traitement. Dans les deux cas, un signal RZS (figure 4.b) est produit qui met un signal RZADMI dans l'état O (figure 4.c). Le signal RZS a également pour effet de remettre à zéro le compteur 3, étant appliqué à l'entrée de remise à zéro de ce dernier. En fin de comptage (figure 4.d), le compteur 3 délivre une impulsion RC qui entraîne la délivrance par le circuit logique de contrôle 4 du signal SO (figure 4.e) de chargement du registre à décalage 5. La valeur chargée dans ce registre 5 est 1 puisque c'est la sortie TO de la porte 7 qui est alors activée. Le registre à décalage 5 délivre donc, sur sa sortie QO, un signal U qui indique la fin de la séquence d'initialisation et remet le signal RZADMI dans l'état 1. Le circuit d'horloge selon l'invention est également prévu pour permettre un fonctionnement en coup par coup. Dans ce cas, le signal de chargement SO, normalement fourni par le circuit logique de contrôle à partir de l'impulsion RC, est alors inhibé par un signal SBS traduisant ce mode de fonctionnement. Ce n'est que lors d'une action particulière, se traduisant par un signal START appliqué audit circuit logique de contrôle 4, que le signal SO est délivré. La suite de la séquence se déroule ensuite comme exposé précédemment pour les micro-instructions synchrones. Le circuit d'horloge de la présente invention n' a pas été décrit en détail car sa réalisation est, une fois ses différents modes de fonctionnement décrits, du domaine de l'homme de métier. A titre purement illustratif, une réalisation a été expérimentée avec les circuits suivants : un compteur à quatre éléments binaires (circuit 3, figure 1) du type 745161, un décodeur (circuit 6) du type 745138 et un registre à décalage (circuit 5) constitué par deux circuits du type 745194 ; le circuit diviseur 2 est une bascule -J-K du type 745112 et les circuits qui constituent le circuit logique de contrôle 4 (figure 1) correspondent aux fonctions décrites au cours de la description précédente. Bien que la présente invention ait été décrite dans le cadre d'un exemple de réalisation particulier, il est clair cependant qu'elle n'est nullement limitée par ledit exemple et qu'elle est susceptible de modifications ou de variantes sans sortir de son domaine. il est clair en particulier que l'on peut obtenir des cycles de micro-instructions synchrones plus longs en modifiant la fréquence du signal d'horloge appliqué au registre à décalage 5. Par ailleurs, ladite durée fixe au début de chaque cycle peut également être accrue en chargeant une valeur inférieure à 14 dans le compteur 3. De manière générale, le circuit de l'invention peut aisément s'adapter à des systèmes ayant des vitesses de traitement différentes de celle du système considéré dans la description ci-dessus. REVENDICATIONS 1. Circuit d'horloge destiné à etre associé à un système de traitement de données à logique microprogrammée et prévu pour délivrer des signaux de début et de fin de cycle adaptés à chaque type de micro-instruction, ledit circuit d'horloge étant caractérisé en ce qu'il comprend - des premiers moyens pour déterminer le type de la micro-instruction en cours à partir d'un premier groupe d'éléments binaires de ladite micro-instruction; - des deuxièmes moyens pour compter, dans le cas d'une micro-instruction syn chrone, une durée variable définie par un deuxième groupe d'éléments binaires de la micro-instruction en cours ; - des troisièmes moyens pour produire et envoyer, dans le cas d'une micro instruction asynchrone, un signal de demande à destination de l'organe exté rieur impliqué par ladite micro-instruction en cours ; et - des quatrièmes moyens pour délivrer un signal de fin de cycle soit à la fin dudit comptage d'une durée variable par lesdits deuxièmes moyens dans le cas d'une micro-instruction synchrone, soit à la réception d'un signal de réponse dudit organe extérieur impliqué dans le cas d'une micro-instruction asynchrone. 2 Circuit d'horloge selon la revendication 1, caractérisé en ce que la durée du cycle de chaque micro-instruction consiste en une constante de temps-fixe à laquelle s'ajoute soit ladite durée variable comptée par lesdits deuxièmes moyens dans le cas d'une micro-instruction synchrone, soit le temps de réponse dudit organe extérieur impliqué dans le cas d'une micro-instruction asynchrone. 3. Circuit d'horloge selon la revendication 1 ou la revendication 2, caractérisé en ce que lesdits deuxièmes moyens et lesdits quatrièmes moyens sont constitués par un registre à décalage qui est, soit chargé à une valeur correspondant au décodage dudit premier groupe d'éléments binaires dans le cas d'une micro-instruction synchrone, soit chargé à une valeur fixe à la réception dudit signal de réponse dudit organe extérieur dans le cas d'une microinstruction asynchrone. 4. Circuit d'horloge selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit signal de fin de cycle constitue ledit signal de début de cycle du cycle suivant.