INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Chaque fois qu'une micro-routine d'interruption de matériel est mise en oeuvre, le signal de sortie de la porte ET 593, PHIWTC+, passe donc de ZERO à UN binaire et le registre de retour d'interruption de matériel 252 est synchronisé, ce qui permet de conserver l'adresse de mémoire ROS à 10 bits de ce qui aurait été la micro-instruction suivante à utiliser en mémoire ROS.Puisque le signal PHINTC+ passe de l'état ZERO à l'état UN binaire, une seule fois par interruption de matériel, et ensuite uniquement au début de la micro-routine d'interruption de matériel, le registre de retour d'interruption de matériel 252 conserve le contenu de l'adresse de mémoire ROS à 10 bits de la micro-instruction suivante qui aurait été lue en mémoire ROS s'il n'y avait pas eu d'interruption de matériel pendant tout le temps du traitement de la micro routine associée à I' inter- ruption de matériel.On notera que les interruptions de matériel sont invalidées pendant le traitement de la microroutine d'interruption de matériel (c'est-a-dire que les interruptions de matériel ne sont pas embottées). La dernière instruction de la micro-routine pour le traitement d'une interruption de matériel effectue un codage de branchement de retour d'interruption de matériel sur les bits 36 et 37 du mot de micro-instruction, ce qui fait passer les signaux RDDT36+ et RDD5'37+ à UN binaire, en sElectionnant les entrées 13 du multiplexeur générateur adresse lt 248-l, ce qui entrasse que l'adresse de mémoire ROS à 1O bits de la micro-instruction suivante est prise dans le registre de retour d Interruption de materiez 252 qui renvoie effectivement la commande au mot de micro-instruction adressé par l'adresse de mémoire ROS à 10 bits produite par le multiplexeur générateur d'adresse 1, 248-1, juste avant l'apparition de l'interruption de matériel, comme on l'a expliqué plus haut en référence à la figure 34.
L'examen de la figure 42 montre que l'adresse de la micro-instruction suivante est développée pendant l'exécution de la micro-instruction présente. Ainsi, Si au début (avant le temps principal 2) de la micro-instruction présente, un signal d'interruption de matériel à une des entrées du codeur d'interruption de matériel 250-2 est à ZERO binaire/ et si les interruptions de matériel sont validées dans la micro-instruction présente (bits 35 à UN binaire, ctest- -dire, le signal RDDT35+), la micro-instruction suivante extraite est la première micro-instruction de la micro-routine pour prendre en charge l'interruption de matériel de priorité la plus élevée en attente.Si les interruptions de matériel sont invalidées (bit 35 à ZERO) par la micro-instructiOn présente, une interruption de matériel ne se produit pas à la fin de la micro-instruction présente et la micro-instruction suivante est la microinstruction adressée par la zone d'adressage de mémoire ROS de la micro-instruction présente.
Comme le bit 35 de micro-instruction commande ce qui se passe à la fin d'exécution de la micro-instruction présente, les micro-routines de prise en charge d'interruption de matériel sont microprogrammées de sorte que des interruptions de matériel sont validées pendant l'exécution de la dernière micro-instruction de la micro-routine et la zone d'adressage de mémoire ROS (voir figure 35D) spécifie que l'adresse de la micro-instruction suivante doit être prise dans le registre de retour d1înterruption de matériel 252 qui renvoie la commande au microprogramme initial interrompu (si aucune interruption de matériel n'est pas en attentez.Si une interruption de matériel est en attente pendant l'exécution de la derrsiere micro-instruction de la première micro-routine de prise en charge d'interruption de matériel, le multiplexeur générateur d'adresse 1, 248-1, sélectionne l'entrée 13 (ctestS -dire, l'adresse mémorisée dans le registre de retour d'interruption de matériel 252) et met ses signaux de sortie Q (signaux RADMOO+ à RADMO9+) au même état binaire que l'entrée 13. Les signaux de sortie du multiplexeur générateur d'adresse 1, 248-1, sont ensuite remis à l'état initial dans le registre de retour d'interruption de matériel 252 au temps principal 2 quand le signal PHINTC+ passe de l'état ZERO à UN binaire.En outre, le multiplexeur générateur d'adresse 2, 248-2, sélectionne la seconde adresse d'interruption de matériel à ses entrées Il et, au temps principal 2, le registre d'adresse 1, 246-1, est remis à zéro par le signal RARCLR- et le registre d'adresse 2, 246-2, a son contenu égal à la seconde adresse d'interruption de matériel.Au temps principal 2 de la microinstruction présente, qui est le temps d'exécution de la dernière micro-instruction d'une première micro-routine de prise en charge d'interruption de matériel, l'adresse contenue dans les registres d'adresse 1 et 2, 246-1 et 246-2, est l'adresse de la première micro-instruction d'une seconde micro-routine de prise en charge d'interruption de materiez Si l'on considère à nouveau la figure 42, on peut voir qu'à la fin de la micro-routine de prise en charge d'interruption de matériel, s'il n'y a pas d'autres interruptions de matériel en attente, la commande revient à la microinstruction dont l'adresse est mémorisée dans le registre de retour d'interruption de matériel 252, ce qui redonne la commande au microprogramme initial au point où il a été interrompu par la première interruption de matériel. On voit donc que des interruptions de matériel côte-à-côte (ctest- dire, consécutives) peuvent etre prises en charge sans qu'il y ait retour au microprogramme initial interrompu entre l'exécution de la première micro-routine et l'exé- cution de la seconde micro-tou*bine de prise en charge d'interruption de matériel.
Après avoir décrit comment une demande de données DMA ou une demande de données DMC sur un bus de système A ou B provoque une interruption de matériel aux emplacements de mémoire ROS 12 à 15 et met en oeuvre la micro-routine de prise en charge d'interruption de matériel associée, on va maintenant décrire les autres circuits logiques d'interruption de matériel de la figure 42.
On va d'abord considérer le circuit de détermina- tion de dépassement de temps de rafraîchissement de mémoire principale Des bascules 572 et 574 sont utilisées pour qu'un signal de rafraîchissement de mémoire principale PHMRFL- soit engendre toutes les 8 à 15 microsecondes. Comme il a été décrit plus haut en référence à la figure 14, le signal d'horloge BCNTL8+ passe de l'état ZERO binaire à l'état UN binaire toutes les quatre microsecondes en faisant ainsi changer l'état des bascules 572 et 574.La bascule de ra fraichîssement à 8 microsecondes 572 changeant d'état toutes les quatre microsecondes, le signal de sortie de celle-ci, PMRFTM est à ZERO binaire pendant quatre microsecondes, celui-ci étant suivi par un signal à UN binaire pendant les quatre microsecondes suivantes qui terminent un cycle de huit microsecondes.En reliant en cascade la sortie de la bascule de rafraîchissement à 8 microsecondes 572 qui émet le signal PMRFT.M à l'entrée de données (D) de la bascule de rafraîchissement à 16 microsecondes 574, le signal de sortie de la bascule 574, PHMRFL- est à ZERO binaire pendant huit microsecondes, celui-ci étant suivi par un signal à UN binaire pendant les huit microsecondes suivantes qui terminent un cycle de 16 microsecondes.Quand le signal de sortie de la bascule de rafraîchissement à 16 microsecondes 574 est à ZERO binaire, le signal de sortie PHMRFH- du registre de demande d'interruption 250-1 est à ZERO binaire et entrain le codage de 101 binaire sur les lignes de sortie du codeur d'interruption de matériel 250-2, PHINT7+ à PHINT9+, qui-ont pour effet, quand les interruptions de matériel sont validées, que le multiplexeur géné- rateur d'adresse 2 248-2 effectue un branchement à l'emplacement 10 de mémoire ROS où commence la micro-routine de dépassement de temps de rafraîchissement de mémoire principale.
Si l'on considère à nouveau les bascules 572 et 574, on voit que les deux bascules sont remises à zéro et que le signal de sortie d'une porte NI 580, PM SH- est à ZERO binaire. Le signal PMTFSH- en provenance du décodeur de sous-commande 244-2 (voir figure 43) est mis à UN binaire Si les bits 32 à 34 du mot de micro-instruction sont égaux à 001, ce qui met les signaux RDDT32+ et RDDT33+ à ZERO binaire et le signal RDDT34 à UN. Le signal PMRFSHest inversé par un inverseur 576 qui met le signal PMRFSH+ à UN binaire chaque fois que le signal d'entrée est à ZERO binaire.Quand le signal PRFSH+ est à UN- binaire à l'entrée de la porte NI 580, le signal de sortie de celle-ci, PXFRSH-, est à ZERO binaire qui remet à zéro la bascule à 8 microsecondes 572 et la bascule à 16 microsecondes 574 par l'intermédiaire de leurs entrées de remise à zéro (R).
Le signal PMFRSH- de rafraîchissement de mémoire principale est également transféré jusqu'à la mémoire principale par l'intermédiaire du bus de système B. Dans l'autre cas, le signal PMFRSH- est à ZERO chaque fois que le signal KEFRSHest à ZERO binaire et qu'il est inversé par un inverseur 578 qui met le signal KEFRSH+ à UN binaire à la seconde entrée de la porte NI 580.
En considérant l'interaction des bascules 572 et 574 avec les circuits logiques d'interruption de matériel, on voit que le signal de sortie de la bascule de rafraî- chissement à 16 microsecondes 574, SHMRFL-,. passe à ZERO binaire 8 microsecondes après qu'un signal de rafraî- chissement de mémoire (PMPRSH-) ait été envoyé à la mémoire principale par l'intermédiaire du bus de système B.
Le signal d'interruption de rafraîchissement PHMRFL- reste à ZERO binaire pendant 8 microsecondes ou jusqu'à ce qu'il soit remis à zéro par un signal de rair.atchis- sement suivant (PMFRSH- passant à ZERO binaire). Le signal PHMRFL- à ZERO binaire fait passer le signal PHMRFL- à 'ZERO binaire et, si les interruptions de matériel sont permises, il entraîne le branchement microprogrammé à la micro-routine qui permet d'envoyer un signal de ra fraîchissement de mémoire (PMFRSH-) à la mémoire principale par l'intermédiaire du bus de système B.Comme le signal de sortie de la bascule à 16 microsecondes 574, PHMRFL- passe à ZERO binaire 8 microsecondes après le rafrat- chissement de mémoire précédent, il est important que la partie microprogrammée de processeur CPU soit codée de sorte que les interruptions de matériel ne soient pas invalidées pendant une période de plus de 7 microsecondes, de façon à maintenir le temps de rafraîchissement de mémoire principale convenable de 15 microsecondes et à ne pas perdre d'informations de mémoire principale.
Si la partie microprogrammée de processeur CPU n'invalide pas les interruptions de matériel, le premier rafrátchissement de mémoire se produit au bout de 8 microsecondes, entraînant un branchement microprogramme de processeur CPU à la micro-routine de rafraîchissement de mémoire principale qui permet d'envoyer une commande de rafraîchissement à la mémoire principale sur le bus de système B par l'intermédiaire du signal P4FRSH- qui remet à zéro les bascules de rafraîchiss.ement 572 et 574 et entraîne l'envoi d'une seconde interruption de rafrat- chissement de mémoire principale 8 microsecondes plus tard.Comme les commandes de rafraîchissement de mémoire principale peuvent également !Ere codees pendant le traitement d'instructions de programme, chaque fois que le microprogrammeur de processeur CPU détermine que la mémoire principale ne sera pas utilisée pendant les deux cycles de processeur CPU suivants, tous les signaux de rafraîchissement ne sont pas engendrés à la fin de la période de temps de rafraîchissement de mémoire principale (c'est- -dire, les bascules 572 et 574). La fonction des bascules de rafraîchis- sement 572 et 574 est d'assurer qu'au moins un signal de rafraîchissement de mémoire est envoyé à la mémoire principale une fois toutes les 15 microsecondes, mais dans la présente réalisation, la partie microprogrammée de processeur CPU est codée de sorte que pendant le traitement des instructions de programme, Si l'on sait que la mémoire principale ne sera pas utilisée pendant les deux cycles de processeur CPU -suivants, les commandes de rafraîchissement sont codées dans les micro-instructions de microprogrammes de processeur CPU pour engendrer des signaux de rafraîchissement de mémoire principale plus fréquemment qu'une fois toutes les 15 microsecondes.
On va maintenant décrire le circuit logique d'erreur de parité de mémoire principale.
Pendant chaque opération de lecture de mémoire principale, la mémoire engendre deux bits de parité par mot de 16 bits (1 bit de parité par multiplet de 8 bits) lu en mémoire et compare la parité engendrée à celle lue en mémoire.
Si les bits de parité engendrés ne correspondent pas aux bits de parité lus en mémoire, la mémoire principale engendre un signal d'erreur de parité qui est envoyé par l'intermédiaire du bus de système B au processeur CPU, sur la ligne MEMPER-.
Si l'on considère à nouveau la figure 42, on voit que la présence d'une erreur de parité détectée par la mémoire principale entraîne la mise à un d'une bascule d'erreur de parité 586, qui provoque à son tour une interruption de matériel. Si la mémoire principale détecte une erreur de parité pendant une opération de lecture de mémoire, la mémoire principale met le signal MEMPER- à ZERO binaire sur le bus de système B. Quand le signal MEMSER- est à ZERO binaire, le signal de sortie d'un inverseur 596, PMW ARI, est à UN binaire, celui-ci étant inversé par un inverseur 598 et envoyé au bus de système A comme signal PMMPAR-.Si l'opération de lecture de mémoire a été exécutée en réponse à une demande de DMA, ces signaux d'erreur de parité, c'est à-dire le signal PMMPAR- sur le bus de système A et le signal MEMPER- sur le bus de système B, sont transferts de façon synchronisée dans le registre d'état du contrôleur TOC qui fait une demande de DMA de sorte que l'erreur peut être signalée au programme de logiciel quand l'état du transfert d'entrée-sortie est demande.
Le signal d'erreur de parité de mémoire principale PMMPAR à 1'entre de données (n) de la bascule d'erreur de parité 586 fait changer l'état de la bascule quand un signal d'horloge PARFMD- passe de l'état ZERO binaire à l'état UN binaire. Le passage du signal à UN binaire à l'entrée de données de la bascule d'erreur de parité 586 produit un signal de sortie PHMPER- qui passe à ZERO binaire et, quand les interruptions de matériel sont validées,' provoque une interruption de matériel.Le signal d'horloge PARFMD-, qui est le signal de sortie d'une porte NON-ET 582, passe de ZERO binaire à UN binaire au début du temps principal 4 quand le signal PTIME4+ passe à UN binaire Si le signal PBSFMQ est à ZERO binaire. Le signal PBSFMD- est à ZERO binaire pendant le second cycle d'une opération de lecture de mémoire principale à deux cycles, comme le montre la figure 19. Le signal PBSFMD- est utilisé par la mémoire principale pour valider les données lues en mémoire principale sur le bus de système B.
une séquence de transfert de données à un moment donné La ligne de demande de DEIC. (PDMCRX) reste active jusqu'à ce que le processeur CPU fasse une réponse.
L'activation de la ligne de demande de DAC provoque une interruption de matériel de processeur CPU pour le traitement par-microprogramme de processeur CPU de la demande de DMC. Quand l'interruption de matériel se produit, avec un ordre de priorité qui est fonction des priorités supérieures d'autres interruptions de matériel et selon que la partie microprogrammée du processeur CPU invalide ou non des interruptions de matériel, le processeur CPU accuse réception de la demande de DMC en émettant une commande de réponse à demande de DMC (ASDMC) sur les lignes RDDT (RDDT29 à RDDT31). A ce moment, le processeur CPU et le contrôleur IOC deviennent reliés.Pendant les six microsecondes suivantes environ, selon le nombre de phases de microprogramme de processeur CPU impliquées dans le transfert de DMC, le processeur CPU est consacré à ce transfert de données DMC et aucun autre transfert de données n'est permis sur le bus de système A ou B autre que celui par lequel se fait le transfert de données DMC.
Au cours du cycle suivant après la commande ASCMD, le processeur CPU valide les émetteurs de contrôleur IOC (par l'intermédiaire du signal PENBSX), ce qui indique au contrôleur qu'il doit placer son numéro de canal sur les lignes d'adresse/données (BUSXOO à BUSX15). Le numéro de canal est utilisé par la partie microprogrammée de processeur CPU pour avoir accès à la table de programme canal dans la mémoire interprète et pour déterminer également la direction du transfert.
Pendant les six à sept cycles de processeur CPU suivants, le processeur CPU obtient les informations d'adresse de mémoire et de portée pour ce canal à partir de la table de programme canal. La portée est diminuée et l'adresse de mémoire est augmentée et mémorisée dans la table de programme canal. Si la portée est épuisée par cette demande, le processeur émet une commande de finrde-portée (EOFRG) sur les lignes RDDT, ce qui indique au contrôleur IOC qu'il s'agit du dernier transfert (figures 21A à 21D) . Si les données doivent être lues en mémoire (figures Z1A à 21D), le processeur CPU exécute un accès à la mémoire, tous les remplacements de multiplet nécessaires et place les données sur les lignes d'adresseXdonnées de bus de système dans la position un de multiplet (c'est-à-dire, les bits 8-15).
Le processeur CPU émet ensuite une commande de fin-de-liaison (EOFLK) sur les lignes RDDT. Cela indique au contrôleur IOC que des données provenant de la mémoire principale sont sur les lignes d'adresse/données- s'il s'agit d'une lecture de mémoire. Le contrôleur IOC prend ces données au temps principal 3 de la commande EOFLK si une lecture de mémoire est exécutée.S'il s'agit d'une écriture de mémoire principale, le processeur CPU valide les émetteurs de contrôleur IOC par le signal PENBSX, le contrôleur IOC place les données dans la position un de multiplet (c'est- & dire les bits 8-15) et le multiplet est transféré jusqu'à la mémoire SPM pour un éventuel remplacement de multiplets et le processeur CPU exécute ensuite une opération d'accès à la mémoire pour écrire les données dans la mémoire principale. La commande de fin-de-liaison (EOFLK) a pour effet de supprimer la liaison entre le processeur CPU et le contrôleur IOC et de remettre le contrôleur IOC à zéro de sorte qu'il ne réponde plus à certaines commandes de bus de système jusqu'à ce qu'une autre liaison soit établie entre le processeur CPU et le contrôleur TOC. La fin d'exécution de microprogramme de processeur CPU pour un transfert de données DMC a pour effet de valider des interruptions de matériel (demandes de transfert de données DMA et DMC et dépassement de temps de rafraîchissement de mémoire principale) qui provo quent un transfert de données sur un bus de système pour chacune d'elles en instance.On notera que puisque tous les transferts de données sur un bus de système se font sous la commande de microprogramme de processeur CPU, la fin ou suppression de la liaison entre le processeur CPU et le contrôleur TOC considéré n'est pas suffisante pour établir un autre transfert de données sur un bus de système si la partie microprogrammée du processeur CPU n'a pas permis des interruptions de matériel. Par exemple, sur la figure 21A, pendant des cycles de processeur CPU 8 et 9, aucun transfert de données ne se produit sur un bus de système car le processeur CPU est toujours occupé par l'exécution du microprogramme pour effectuer un transfert d'entrée de DMC du contrôleur IOC à la mémoire.
On va maintenant décrire les moyens pour faire une demande de transfert de données Dt4A.
Un contrôleur IOC de D lance une séquence de transfert de données DtiA quand ce contrôleur a besoin qu'un multiplet ou un mot de données soit transféré vers/à partir du tampon d'entrée-sortie de mémoire principale. Cette demande ne peut se produire qu'après l'émission d'une instruction de programme IOLD en direction du contrôleur IOC. La figure 22 représente le dialogue de bus de système pour cette séquence.
Le contrôleur IDC de DIS informe le processeur CPU qu'il requiert une demande de données DIA en forçant la ligne de demande de D2çLk (PDMARK) d ZERO binaire sur le bus de système sur lequel le contrôleur IOC qui fait la demande est placé. Cette ligne (PD.çERK) reste active jusqu'à ce qu'une réponse soit reçue du processeur CPU.Le contrôleur IOC ne peut mettre cette ligne à zëro (au temps principal trois) si les deux conditions suivantes sont remplies 1) la ligne n'est pas déjà mise à zéro par un autre contrôleur IDC sur ce bus de système particulier ; et 2) au temps principal 3 (nTI:AN3) de la période de temps d'entrée de cycle (BCYCIN- à ZERO binaire) pour ce contrôleur IOC. L'activation de la ligne de demande de DAS provoque une interruption de matériel du processeur CPU pour le traitement par microprogramme de processeur CPU de la demande deDMA.
quand cela se produit, le processeur CPU accuse réception de la demande en émettant une commande de réponse à demande de DMA (ASDMA) sur les lignes RDDT (RDDT29 à RDDT31) et valide les émetteurs de contrôleur IOC en mettant à un la ligne (PENBSX) sur le bus de système approprié. Le processeur CPU et le contrôleur IOC sont relies et toute activité de bus de système est consacrée uniquement à ce transfert de données DIS.
Quand le contrôleur IOC détecte la commande de réponse à demande de D.E-Sk (ASDMA), il exécute immédiatement les opérations suivantes : 1) il remet la ligne de demande (PDlERX) à zéro ; 2) place l'adresse de mot de mémoire sur les lignes d'adres se/données (BUSXOO à BUSX15) ; et 3) transfère de façon conditionnelle les signaux d'écriture de multiplet sur les lignes de bus de système P(sRTB1 et PRTBO. On notera que si le contrôleur IOC est sur le bus de système A, le processeur CPU valide les signaux d'adresse et d'écriture de multiplet en direction du bus de système B pour une utilisation de mémoire principale.
Au temps principal trois du cycle de commande de réponse à demande de DMA (ASDMA), le processeur CPU émet un signal de parcours de mémoire (PMElGO) et la mémoire principale est échantillonnée par l'utilisation du signal PMEMCO.
Si le processeur CPU détecte que l'adresse est supérieure à celle permise par le commutateur de composition de mémoire, situé sur le tableau du processeur CPU, il informe le contrôleur IOC en mettant la ligne d'erreur de mémoire à un (PM4PAR) sur le bus de système A et MESSER sur le bus de système B), ce qui met un bit d'erreur à un dans le registre d'état du contrôleur IOC.
Pendant le cycle de processeur CPU suivant la commande de réponse (ASDMA); le processeur CPU émet une commande de fin-de-liaison (EOFLK) sur des lignes RDDT pour spécifier que le transfert de données doit être réalisé.
S'il s'agit d'une opération d'écriture, le processeur CPU valide les émetteurs de contrôleur IOC (PENSBX) et le contrôleur IOC place le mot de données sur les lignes d'adresse/données. Si le contrôleur IOC est sur le bus de système A, le processeur CPU valide le transfert de données vers le bus de système B et la mémoire principale.S'il s'agit d'une opération de lecture en mémire, les émetteurs de mémoire sont validés par le processeur CPU et la mémoire principale place les données sur le bus de système (le processeur CPU valide le transfert des données vers le bus de système A si c'est nécessaire) et le contrôleur IOC prend les données au temps principal 3 du cycle de fin-de-liaison (EOFLK). Si la mémoire principale a détecta une erreur de parité, elle informe le contrôleur IOC en mettant la ligne d'erreur de parité de mémoire principale (HERSER) à un. Si c'est nécessaire, le signal d'erreur est transmis au bus de système A par le processeur CPU sur la ligne PMMPAR.
Pendant le cycle de processeur CPU qui suit immédiatement le signal de in-de-liaison, la liaison de processeur CPU-contrôleur IDC est supprimée et les signaux d'erreur de mémoire (MENPER et PJ.AR) sont remis à zéro.
On va maintenant décrire les moyens pour l'execu- tion d'une interruption de contrôleur IOC.