<EMI ID=1.1>
numérique actionnée par des données.
CONVENTION INTERNATIONALE: demande de brevets déposées aux
Etats Unis d'Amérique :
le 28.2.74 sous le n[deg.] 447040 aux noms de MM.Robert Stanley BARTON,
Alan Lynn DAVIS, Erwin Arthur HAUCK, Don Martin LYLE et
Lloyd Drayton TURNER ;
le 28.2.74 sous le n[deg.] 447016 et "continuation-in-part" n[deg.] 505868
du 13.9.74 aux noms de MM.Robert Stanley BARTON et Alan Lynn DAVIS
le 28.2.74 sous le n[deg.] 447015 et "continuation-in-part" n[deg.] 505852
du 13.9.74 aux noms de MM.Robert Stanley BARTON, Erwin Arthur
HAUCK et Don Martin LYLE ;
le 28.2.74 sous le n[deg.] 447034 et "continuation-in-part" n[deg.] 505853
du 13.9.74 aux noms de MM.Robert Stanley Barton, Alan Lynn DAVIS,
<EMI ID=2.1>
du 13.9.74 aux noms de MM.Robert Stanley BARTON, Alan Lynn DAVIS, '
Erwin Arthur HAUCK, Don Martin LYLE, Lloyd Drayton TURNER et
Gary Wesley HODGMAN ;
le 28.2.74 sous le n[deg.] 446912 et "continuation-inpart" n[deg.] 505869
du 13.9.74 aux noms de MM. Michael H. MISSIOS et John R. WERNER.
La présente invention concerne d'une manière générale des perfectionnements apportés aux unités de traitement des données numériques, et elle concerne plus particulièrement des systèmes nouveaux et perfectionnés d'unités de traitement de données numériques où l'unité de traitement de données est un dispositif microprogrammé de circuit intégré.
Dans la z8ne d'unités de traitement de données numériques la pratique existe actuellement d'employer des architectures de système qui ont été créées sous l'influence des frais élevés de
<EMI ID=3.1>
contrôle du système en dispositifs mentionnés comme étant les unités oentrales de traitement et les unités principales de mémoire. A cause de ce hardware centralisé massif et coûteux qui devait être contrôlé, des systèmes opératoires (programmes pilote de contrôle), ont été créés pour généraliser son utilisation,
en temps partagé sur un certain nombre de programmes ou tâches. Les architectures de système qui ont résulté de ces influences sont fortement généralisées et cela a pour résultat qu'elles sont inutilement complexer, ad hoc, et inefficientes pour un grand nombre de situations particulières. Ce type d'architecture est subdivisé d'une manière irrégulière et est mis en oeuvre principalement par une logique séquentielle câblée. Lorsque des techniques microprogrammées sont utilisées, l'architecture fonctionnelle de base du système n'est pas changée par cela que les unités de traitement microcodées suivent encore les architectures séquentielles synchronisées orientées vers le registre.
La technologie nouvelle des circuits intégrés, telle que MSI et !.SI, qui fournit les éléments essentiels d'une unité de traitement sur un seul confetti peut être utilisée effectivement seulement si une nouvelle série de contraintes de structures est suivie. Par exemple, la tachnologie L3I exige une régularité de hardware et une non-dédication d'algorithmes spécialisés ou complexes à des confettis de circuit. Additionnellement, puisque les mémoires de circuits intégrés sont compatibles en interface avec une logique de circuit intégré, le schéma de l'architecture de l'unité de traitement orientée vers le registre pourra être éliminé en distribuant la mémoire du circuit du système à
travers le système. Cela évidemment supprime la nécessité d'un sous-système centralisé de mémoire principale. Maintenant qu'il est faisable de distribuer la mémoire du système dans l'entièreté d'un système, il est désirable d'éliminer les systèmes opératoires de contrôle central qui étaient requis auparavant.
Pour pouvoir utiliser effectivement la technologie LSI, une architecture de système qui a pour résultat un système bien formé et régulier, pouvant être subdivisé, est requise. Même si presque toutes les techniques de microprogrammation utilisées dans le passé ont cet objectif à la base, les techniques antérieures de programmation n'ont pas réussi à produire un système dont la programmation soit efficiente et qui soit efficient pour l'exécution de ses algorithmes. En d'autres mots, ces systèmes antérieurs de microprogrammation présentent une absence totale de continuité entre ce qui constitue le langage de machine et ce
<EMI ID=4.1>
et par les demandes de langage. Cela est vrai parce que les langages de microcode de la machine de la technique connue sont en série et sont de nature à produire une liaison, ce qui est en opposition directe avec les demandes de la technologie
LSI pour la régularité, et ne sont pas liants des fonctions complexes.
L'un des objets de la présente invention est de prévoir une unité centrale de traitement numérique qui pourra être
utilisée comme bloc fonctionnel de base dans un ordinateur, tel qu'un ordinateur à multitraitements qui n'a pas besoin d'utiliser un programme pilote de contrôle ou qui demande un système extensif d'interruptions et qui possède de capacités d'émulation améliorées.
Les problèmes inhérents aux systèmes centraux, et autres choses mentionnées ci-dessus, réalisant ensemble les objets mentionnés ci-dessus sont réalisés dans le cas présent par un système binaire de données dans lequel la mémorisation contient des fichiers de données composés de zones de données et de caractères de données, et le circuitage du système possède un circuit pour les recevoir. Une zone de données contient l'adresse du fichier de données en mémorisation. Le système pourra être décrit d'une manière générale et il sera dénommé système actionné par des données.
Le but général de la présente invention est réalisé plus particulièrement en utilisant un vocabulaire multicaractères dans une unité de traitement de données en séries à caractères, dans lequel deux des caractères sont utilisés pour définir le commencement et la fin d'une zone particulière de données. Chaque caractère est représenté par une pluralité de bits binaires. Les structures de données sont organisées en zones oontenant des fichiers de données d'une manière permettant l'extension et la contraction
<EMI ID=5.1>
par une extrémité de code de zone qui déclenche une comparaison entre le comptage des caractères de la zone de départ et des caractères de la fin dans une structure de données et un
comptage de référence. La structure et l'organisation d'un fichier sont décrites par le contenu de la première zone
dans ce fichier. Un programme ou procédé est exécuté en
réponse à la réunion ensemble de paires de fichiers de données, chaque paire ayant un fichier de données contenant une partie
du programme, et l'autre fichier de données contenant les opérandes pour cette partie du programme. Chaque type de fichier de données pourra être résident dans la région de mémorisé-tison
de l'unité de traitement de données (statique), tandis que l'autre est alimenté à l'unité de traitement depuis la région externe
(dynamique). L'arrivée des fichiers de données dynamiques provoque l'accouplement de fichiers de données dans la mémoire qui doit être adressée. Tout à tour, le fichier de vecteurs pourra produire l'exécution de l'opération dictée par son contenu utilisant les opérandes alimentée par les fichiers d'opérandes qui arrivent. Si tous les opérandes pour la structure de données adressées sont présents ou sont arrivés, l'opération désignée par la structure de données du programme est exécutée, le résultat étant transmis
à une destination indiquée par la structure de données de programmes. Les deux fichiers de dornées accouplés peuvent être utilisés en combinaison, pour produire la résultante dictée par la zone
de données du programme.
Une courte description des dessins sera maintenant donnée:
On se rendra facilement compte d'autres objets et de
<EMI ID=6.1>
tion détaillée qui suit, laquelle est prise en conjonction avec les dessins ci-joints dans lesquels les mêmes chiffres de référence désignent les mêmes parties ou des parties analogues dans toutes les figures.
Dans ces dessins,
la figure 1 est un schéma de bloc fonctionnel d'un seul système de traitement de données d'une unité de traitement selon l'invention. La figure 2 est un schéma logique de la file d'attente d'entrée dans l'unité de traitement de la figure 1. La figure 3 est un schéma logique de l'unité logique de vecteurs dans l'unité de traitement selon la figure 1. La figure 4 est un schéma logique de l'unité de contrôle de l'unité de traitement selon la figure 1. La figure 5 est un schéma logique de la file d'attente de sortie de l'unité de traitement selon la figure 1. La figure 6 est un circuit logique d'un circuit de reconnaissance de signal utilisé dans la file d'attente d'entrée
-de la figure 2. La figure 7 est une illustration en résumé d'un vocabulaire à quatre caractères utilisé par l'unité de traitement de la figure 1.
La figure 8 est une illustration en résumé de la structure générale d'un fichier de données utilisé par l'unité de traitement de la figure 1. La figure 9 est une illustration en résumé d'un fichier général de structure de données qui possède à son intérieur des sous-fichiers. La figure 10 est une illustration, en résumé représentan sous forme arborescente un exemple particulier d'un programme pouvant être exécuté par l'ordinateur de la figure 1. La figure 11 est une illustration en résumé d'un simple algorithme représenté sous forme arborescente et la structure de données ou fichier représentant l'algorithme qui est utilisé
par l'unité de traitement de la figure 1 pour réaliser les
opérations spécifiées.
La figure 12 est une illustration en résumé d'un exemple spécifique de l'interaction de structures de programme et de données d'opérande endéans les diverses parties majeures de
l'unité de traitement de la figure 1 pour arriver à un résultat désiré.
Une description sera maintenant donnée des modes préfé- rentiels de réalisation de l'invention.
La figure 1 montre un système d'unité de traitement action- <EMI ID=7.1>
<EMI ID=8.1>
<EMI ID=9.1>
sortie 13. La centrale entrée/sortie 13 pourra être un type standard de circuit de communication tel que celui utilisé dans les centrales téléphoniques, dans lequel n'importe laquelle des unités périphériques pourra être connectée avec l'unité de trai- tement 11 actionnée par des données au moyen du câble d'entrée 31 ou du câble de sortie 33. Les unités périphériques peuvent être
<EMI ID=10.1>
à la nature de série à caractères de l'unité de traitement 11, lorsqu'on utilise des unités de format parallèle, la centrale entrée/sortie 13 pourra comprendre un multiplexeur pour convertir
la pluralité de trajets parallèles de signaux venant des unités périphériques 15, 17, 19 vers l'entrée du trajet du signal rela-
<EMI ID=11.1>
la transmission du signal en série à caractères depuis l'unité de traitement 11 vers les unités périphériques de format paral-
<EMI ID=12.1>
multiplexeurs. Des unités périphériques 15, 17, 19 peuvent être constituées par n'importe lequel.des dispositifs bien connus,
tels que des actionnements de rubans magnétiques, des lecteurs
de cartes, des unités de cartes perforées, des unités de claviers, des dispositifs d'impression, ou des dispositifs de mémorisation
à tambour ou à disque.
L'ordinateur numérique actionné par des données ou l'unité centrale de traitement de données 11 reçoit des structures de données des unités périphériques à sa file d'attente d'entrée
21. Ces structures de données, ainsi qu'il sera -expliqué ci-après, possèdent une organisation spécialisée et doivent suivre certaines règles de syntaxe. La file d'attente d'entrée 21 est fondamentalement une FIFO (unité tampon "première entrée-première sortie") qui réalise la fonction additionnelle de synchronisation des structures de donnée.- asynchrones reçues sur le câble d'entrée
31 vers l'horloge de système de l'ordinateur 11. Les structures
de données reçues par la file d'attente d'entrée 21 sont reçues
en série à caractères.
Ces structures de données peuvent être considérées comme étant communiquées aux autres éléments de l'unité de traitement
11 d'une manière en série à caractères. Des structures de données dans la file d'attente d'entrée 21 sont transmises à la mémoire d'ordinateur 25, par exemple, d'une manière en série à caractères
<EMI ID=13.1>
contrôle 23 par le câble 51 vers la mémoire d'ordinateur 25.
La communication de contrôle entre la file d'attente d'entrée
<EMI ID=14.1>
tion de contrôle entre le contrôle 23 et la mémoire 25 par le câble 29, seront décrites ci-après.
En plus d'une transmission de structures de données de la file d'attente d'entrée 21 à la mémorisation 25, ces structures pourront être transmises à une unité logique de
<EMI ID=15.1>
D'une manière similaire, les structures de données de la mémorisation 25 pourront être communiquées à l'unité logique de vecteurs 27 par l'unité de contrôle 23 par l'intermédiaire
du câble 25. La communication de contrôle entre l'unité logique
de vecteurs 27 et l'unité de contrôle 23 par l'intermédiaire
du câble 45, sera expliquée ci-après.
L'unité logique de vecteurs 27 est fondamentalement une unité arithmétique en série qui exécute, par exemple, des fonctions fondamentales telles que ltaddition, la soustraction, la comparaison, et l'expédition aux structures de données de longueur de
zone variable. L'unité logique de vecteurs pourra communiquer directement avec la mémorisation 25, par l'intermédiaire d'un câble de données 53 et avec une file d'attente de sortie 29 par l'intermédiaire d'un câble de données 59. La communication de contrôle entre l'unité logique de vecteurs 27 et la mémorisation
25 par l'intermédiaire du câble 55 et avec la file d'attente de
<EMI ID=16.1>
expliquée ci-après.
La mémorisation d'ordinateur 25 de l'ordinateur 11 actionné par des données pourra être une mémoire à circuit intégré d'accès au hasard d'une grandeur préférentielle, formée de confettis de mémoire d'accès au hasard tels que fabriqués par la "Signetics Corporation", par exemple. Dans leur catalogue <EMI ID=17.1>
établit des listes d'un confetti de mémoire d'accès au hasard
32 x 2 qui pourra être utilisé pour construire la mémoire 25.
<EMI ID=18.1>
un tel confetti de mémoire est considérée comme étant endéans les possibilités d'une personne de capacité ordinaire dans cette technique. Un autre exemple d'un confetti de mémoire pouvant être utilisé pour constituer la mémoire 25 pourra être retrouvé dans le catalogue de Signetics Corporation de 1972 aux pages 4-13
qui illustrent un confetti de mémoire adressable à haute vitesse.
La file d'attente de sortie 29 qui peut recevoir des structures de données de l'unité logique de vecteurs 27,, de la
<EMI ID=19.1>
fonction de placer les structures de données qu'elle a reçues sous une forme pouvant être transmise aux unités périphériques
15-19 par l'intermédiaire de la centrale entrée/sortie 13. La file d'attente de sortie, tout comme la file d'attente d'entrée,
<EMI ID=20.1>
de données d'une manière en série à caractères et transmettant ces caractères à la centrale entrée/sortie.
En se reportant maintenant_ à la figure 2, la file d'attente d'entrée 21 communique avec la centrale entrée/sortie par l'intermédiaire du câble 31. Ce câble 31 est formé de lignes 79, 81, 83 et 85 qui émanent de la logique d'interface
61 ou qui conduisent à cette logique d'interface 61 dans la file d'attente d'entrée 21, Les lignes 85 sont deux lignes de données parallèles qui reçoivent deux bits en parallèle de la centrale entrée/sortie (figure 1). Ces deux bits parallèles <EMI ID=21.1>
83 sont des lignes de contrôle entre la file d'attente d'entrée
-et la centrale entrée/sortie. La ligne 79 transmet un niveau de signal binaire qui instruit la centrale entrée/sortie de retransmettre la structure de données chaque fois qu'une erreur a été détectée dans la structure de données précédemment reçue.
La ligne 81 porte un niveau de signal binaire qui valide ou invalide la centrale entrée/sortie en ce qui concerne la transmission de structures de données. La ligne 83 transmet un niveau de signal généré par la centrale entrée/sortie qui indique une demande à envoyer des structures de données de l'une des unités périphériques ou file d'attente de sortie de l'unité de traitement de données 11. Ce serait en réponse à un tel niveau de signal de demande que le niveau de signal sur la ligne 81 validerait la centrale entrée/sortie, si la file d'attente d'entrée .pouvait retenir des données additionnelles.
La structure de données de série à caractères reçue pur les lignes 85 depuis la centrale entrée/sortie 13 (figure 1),
<EMI ID=22.1>
vérifiée quant aux erreurs par le oircuitage logique, dénommé par la facilité logique de reconnaissance "paren", et par un compteur binaire haut/bas 65 répondant aux circuit de reconnaissance "paren"
63. Le comptage du compteur 65 est transmis à la logique d'interface 61 par l'intermédiaire du câble 93. Il suffit de dire à présent que, si le comptage du compteur haut/bas 65 à la fin
d'une structure de données particulières n'est pas égal à zéro, la logique d'interface 61 demande une retransmission sur la ligne 79 parce qu'une erreur s'est produite dans la structure de données. La logique spécifique du circuit de reconnaissance
<EMI ID=23.1>
ci-après.
Ainsi qu'il a été noté ci-dessus, la file d'attente d'entrée 21 fonctionne fondamentalement comme un tampon FIFO
et synchronise les caractères asynchrones des données qui arrivent avec l'horloge du système d'ordinateur (non illustrée) qui fait partie de la logique d'interface 61. La partie tampon de la file d'attente d'entrée est la mémoire de file d'attente d'entrée 67 qui peut être une mémoire d'accès au hasard formée de confettis de mémoire d'accès au hasard de circuit intégrés, fabriqués par la Signetics Corporation et qui est inscrite dans leur catalogue de parties de 1972 aux pages 4-20.
Les caractères de données reçus sur les lignes 85 des unités périphériques sont transmis à la mémoire de file d'attente
<EMI ID=24.1>
l'espace disponible de suite après, comme indiqué par le circuit d'indicateur d'écriture 73. �ntre la mémorisation de caractères de données dans la mémoire de file d'attente d'entrée, les oaraotères de données sont lus de cette mémoire et sont transmis aux autres composants de l'unité de traitement 11 (figure 1) par l'intermédiaire de l'unité de contr8le 23 (figure 1). Le caractère particulier de données qui est lu de la mémoire 67 à un certain instant dans le temps, est déterminé par le circuit d'indicateur de lecture 71. Le caractère de données qui est lu de la mémoire de file d'attente d'entrée est transmis depuis la mémoire de file d'attente d'entrée sur des lignes 98 à la logique d'inter-
<EMI ID=25.1>
câble de contrôle 37 transmettent des signaux de demandes de validation de lecture et des demandes de lecture depuis l'unité
<EMI ID=26.1>
validation de lecture. La ligne 121 transmet un signal de demande de lecture. Ainsi, d'une manier: générale, l'information
<EMI ID=27.1>
aussi rapidement qu'elle est reçue, et qu'elle est lue de la mémoire de file d'attente d'entrée 67 dans un ordre PIPO aussi
<EMI ID=28.1>
Lorsque la logique d'interface 51 reçoit les caractères de données, par les lignes 85, elle génère un signal sur la ligne
97 vers une unité de contrôle de cycle de mémoire 69 indiquant qu'une fonction d'écriture est requise. Le contrôle du cycle
de mémoire, en réponse à cette demande d'écriture génère un signal de validation d'écriture, sur la ligne 103, vers la mémoire de file d'attente d'entrée 67, un signal de sélectionnement d'écriture sur la ligne 105, vers un sélecteur 75 et un signal d'accroissement, sur la ligne 99, vers un indicateur d'écriture 73.
Le sélecteur 75 pourra être du type fabriqué par la Signetios Corporation et décrit dans leur catalogue de parties de 1972 aux pages 2-136. Fondamentalement, le sélecteur, en réponse à un signal sélectionné d'écriture ou de lecture sur
la ligne 105 choisit le signal de sortie de l'indicateur d'écriture ou de lecture qui lui est fourni sur le câble 109 et 111 respectivement, pour transmettre sur le câble 107 au registre d'adresse de la mémoire de file d'attente d'entrée 67.
<EMI ID=29.1>
Corporation et inscrit dans leur catalogue de parties de 1972
aux pages 2-100. Les entrées d'accroissement 99 et 101 vers l'indicateur d'écriture et vers l'indicateur de lecture respectivement, depuis le contrôle du cycle de Mémoire 69 seraient connectés avec l'entrée A (non illustrée) de ces compteurs de
la SigneticsCorporation. La canalisation 100 de la logique d'in- terface 61 aussi bien vers l'indicateur de lecture 71 que vers l'indicateur d'écriture 73 serait connectée avec les entrées de remise à zéro (non illustrées) de ces compteurs.
Les sorties des deux indicateurs d'écriture et de lecture, non seulement passent à travers le sélecteur pour adresser la mémoire de file d'attente d'entrée 67, mais sont échantillonnées
<EMI ID=30.1>
d'un circuit de comparateur fabriqué par la Signetics Corporation
<EMI ID=31.1>
la page 101. Ce comparateur possède deux conducteurs de sortie qui indiquent laquelle des deux entrées est la plus grande et indiquent aussi lorsqu'elles sont égales. Parce que la file
<EMI ID=32.1>
tampon "premier entrée-premier sorti", le comptage d'indicateur d'écriture sera toujours plus grand que le comptage d'indicateur de lecture, chaque fois que la mémoire de file d'attente d'entrée
67 y possède des données, mais n'est pas rempli. Par conséquent, un signal sur la canalisation 119 du comparateur 77 indiquera
<EMI ID=33.1>
d'écriture est plus grand que le comptage de l'indicateur de lecture. Cela indique à la logique d'interface que des données restent encore dans la mémoire de file d'attente d'entrée.
<EMI ID=34.1>
est égal au comptage de l'indicateur de lecture, un signal est transmis du comparateur sur la ligne 117 vers la logique d'interface 61. Ce signal peut signifier que la mémoire de file d'attente d'entrée est ou bien complètement vide, ou bien complètement pleine, selon que la dernière demande de mémoire générée par la logique d'interface 61 était une demande de lecture ou une demande d'écriture. La logique d'interface 61 interprète le signal sur la ligne 117 comme signifiant que la mémoire de file d'attente d'entrée 67 est pleine si la dernière opération de mémoire était une opération d'écriture. Si la dernière opération de mémoire était une opération de lecture, un signal sur la ligne
117 est considéré comme une indication que la mémoire de file d'attente d'entrée est vide.
La logique d'interface 61 sait si la dernière opération de mémoire était une opération d'écriture ou une opération de lecture, puisqu'elle transmettait soit une demande d'écriture, soit une demande de lecture, sur les lignes
97-95, respectivement, vers le contrôle 69 du cycle de mémoire. Chaque fois que la logique d'interface 61 détermine que la mémoire de file d'attente d'entrée 67 est vide, elle génère un signal de remise à zéro sur la ligne 100, qui doit être fournitous les deux indicateurs, d'écriture et de lecture.
Le oirouitage spécifique de logique du contr8le 69 du cycle de mémoire, et la logique d'interface 61 ne seront pas examinés ici parce que la Mise en oeuvre des fonctions qui sont Ici attribuées à ces circuits logiques est considérée comme étant endéans les possibilités d'une personne de capacité moyenne dans cette technique.
En se reportant maintenant à la figure 3, une unité logique de vecteurs en série 27 pouvant être utilisée dans
<EMI ID=35.1>
fondamentalement en deux ROM (mémoires de lecture seules)
125 et 129, les deux ROM pourront être du type fabriqué par la Signetics Corporation et inscrites dans leur oatalogue de parties de 1972 aux pages 4-1. Les registres d'adresses 124 et
128 pour la mémoire de lecture seule 125 et 129, respectivement, sont des registres standard d'adresse d'entrée en parallèle et de sortie en parallèle. La seule différence de structure entre les deux mémoires de lecture seule réside dans le microcode qu'ils contiennent. La mémoire de lecture seule 125 contient
ls microcode requis par la génération des résultats d'opérations dyadiques telles qu'additions, soustractions ou comparaison, par
<EMI ID=36.1>
que complément, suppression du premier bit, ou premier bit à zéro, par exemple.
Des structures de données venant en série à caractères de la mémorisation 25 de l'ordinateur 11 (figure 1) par la voie de l'unité de contrôle 23 par l'intermédiaire de lignes 45 vers l'unité logique de vecteurs 27 sont dirigées par le démultiplexeur
<EMI ID=37.1> de contrôle, au ROM dyadique 125 sur la ligne 139 ou le
<EMI ID=38.1>
ture de données qui est adressé par la structure de données dans la file d'attente d'entrée 29. Cela sera expliqué de plus près ci-après.
<EMI ID=39.1>
reçoit des données en série à caractères sur les lignes 47 depuis la file d'attente d'entrée 21 par l'intermédiaire de l'unité de contrôle 23 et les dirige soit au ROM dyadique 125
<EMI ID=40.1>
d'attente de sortie 29 de l'ordinateur (figure 1), selon l'adresse de destination contenue dans la structure de données de programme. Cette adresse de destination est fournie aux démultiplexeurs
<EMI ID=41.1>
Leâ démultiplexeurs 135, 137, 130 et 133 utilisés dans cette unité logique de vecteurs pourront être du type fabriqué par la Signetics Corporation et illustrés dans leur catalogue de parties de 1972 aux pages 2-132.
<EMI ID=42.1>
tion serait fourni au registre d'adresses 124, soit depuis la mémoire 25, soit depuis la file d'attente d'entrée 21 de l'ordinateur, pour des raisons qui seront rendues claires <EMI ID=43.1>
également fournis en série à caractères au registre d'adresses
124. Cela a pour résultat que la sortie sur le câble 126 de la mémoire de lecture seule 125 serait les résultats de la série à caractères de la sommation des deux opérandes. Effectivement, ce qui arrive est que le code OP en plus des opérandes agit comme adresses vers les régions particulières de la mémoire de
<EMI ID=44.1>
de deux caractères particuliers venant des deux opérandes qui sont additionnés.
La sortie de la mémoire de lecture seule 125, dans cet exemple particulier, contiendrait également un signal sur
<EMI ID=45.1>
qu'une sommation particulière de caractères a été achevée. Egalement, dans le cas d'une addition, des signaux de report sont propagés de retour à l'entrée de la mémoire de lecture seule
125 sur les lignes 132 pour modifier l'addition suivante de
<EMI ID=46.1>
exécutées avec la mémoire de lecture seule 129, les lignes d'alimentation de retour 131 peuvent simplement être une entrée de compteur pas-à-pas pour modifier les contenus du registre d'adresse 128 du ROM monadique de telle sorte que l'emplacement de mémoire suivant soit adressé.
En bref, l'unité de contrôle 23 introduit des structures de données venant de la mémoire 25 et de la file d'attente d'entrée 21 à l'unité logique de vecteurs 27 qui répond à ces deux structures de données en générant un résultat ainsi que des signaux de contrôle, qui sont envoyés de retour �, la mémoire
25 sur les lignes 53 et 55, ou à la file d'attente de sortie 29 sur les lignes 57 et 59.
On se reportera maintenant à la figure 4 qui illustre l'unité de contrôle 23 de l'ordinateur 11 comme étant une unité microprogrammée consistant en une pluralité de mémoires de lecture
<EMI ID=47.1>
de données de la file d'attente d'entrée 21, (figure 1), soit
la structure de données de la mémoire 25 (figure 1), adresse l'analyseur de zone ROM 146 par le registre d'adresses 145 ce qui fait que l'analyseur de zone ROM 146 répondra en envoyant des signaux de contrôle à l'un d'une pluralité de démultiplexeurs
148, 150, et 152.
Par exemple, si la structure de données arrivant sur la ligne 35 de la file d'attente d'entrée (figure 1) est par hasard un fichier opérande, l'analyseur de zone instruirait le démulti-
<EMI ID=48.1>
de zone répondrait dans ce cas à la zone de description dans le fichier opérande. De manière analogue, si une structure de données
<EMI ID=49.1>
un fichier ou zone opérande, l'analyseur de zone ROM 146 dirigerait le démultiplexeur 152 sur la ligne 162 pour transférer
<EMI ID=50.1> conduisant à la file d'attente de sortie et la ligne 45 conduisant à l'unité logique de vecteurs.
Supposons maintenant qu'au lieu d'une structure de données opérandes reçue sur l'une quelconque des lignes 35
<EMI ID=51.1>
Cette structure de données de programme adresserait l'analyseur de zone ROM 146 en lui faisant transmettre une adresse à l'un des ROM 154, 156, 158 par l'intermédiaire du démultiplexeur 150.
Les ROM 154, 156, 158 forment une bibliothèque de microprogrammes contenant des microprogrammes particulier*. Ces microprogrammes sont adressés par la structure de données arrivant sur l'une
des deux lignes de données 35 ou 51b. Supposons que la structure de données reçue par l'analyseur de zone ROM 146 commence avec une zone qui indique que ce qui doit suivre est un fichier de programme, l'analyseur de zone générerait alors une pluralité de signaux vers le démultiplexeur 150 qui dirigerait les signaux vers le fichier de programmes ROM 154, par exemple. En réponse
à ces signaux qui s'adressent à des régions particulières dans
<EMI ID=52.1>
vers la file d'attente de sortie (figure 5), sur la ligne 121, vers la logique d'interface de la file d'attente d'entrée
(figure 2), et lorsque cela est avantageux, sur la ligne 144 vers le registre d'adresses 145 indiquant que l'opération partioulière est achevée.
<EMI ID=53.1>
lignes 35 et 51b, le registre d'adresses 145 reçoit divers
<EMI ID=54.1> 1 de contrôle de validation de lecture est fourni depuis la logique d'interface de la file d'attente d'entrée (figure 2). Sur la
<EMI ID=55.1>
la file d'attente de sortie (figure 5) fournit un signal de maintien informant le contrôle qu'il est plein. Un signal de continuation est également fourni au registre d'adresses 145 depuis la bibliothèque ROM sur la ligne 144.
Le registre d'adresses 145 est un registre standard parallèle "entrée parallèle-sortie parallèle" bien connu à ceux possédant des connaissances moyennes en cette technique, l'analyseur de zone ROM 146 pourra être du type fabriqué par la Signetics Corporation et inscrit dans leur catalogue de 1972
<EMI ID=56.1>
et inscrits dans leur catalogue de parties de 1972 aux pages 2-132. Le démultiplexeur 150 peut consister en une pluralité de démulti- plexeurs en cascade, les démultiplexeurs individuels étant d'un
<EMI ID=57.1>
catalogue de parties de 1972 aux pages 2-130.
En se reportant maintenant à la figure 5, la file d'attente de sortie 29 est illustrée comme étant un circuit FIFO
à double mémoire. Le circuit de contrôle d'entrée 145 reçoit des données soit de la file d'attente d'entrée, soit de la mémoire sur
<EMI ID=58.1> <EMI ID=59.1>
d'entrée 145 reçoit également des données depuis l'unité logique de vecteurs 27 sur les lignes 59 et, de manière analogue, transmet et reçoit le contrôle depuis l'unité logique de vecteurs 27 sur les lignes 57. Les données reçues par le contrôle d'entrée 145 sur les lignes 39 sont dirigées soit vers la mémoire opérande RAM 155 (mémoire d'accès au hasard), soit à la mémoire d'adresse de destination RAM 157, selon que la structure de données reçue est une adresse de destination, telle que déterminée par les signaux sur la ligna de contrôle 41 depuis l'unité de contrôle 23 (figure l) ou est un.opérande tel que déterminé par les signaux sur la ligne de contrôle 41.
Les données reçues sur les lignes 59 par le contrôle d'entrée 145 sont dirigées vers la mémoire opérande ou vers la mémoire d'adresse de destination, telle que déterminée par les signaux sur les lignes de contrôle 57.
Aussi bien la mémoire opérande que la mémoire d'adresse de destination peuvent être faites en confettis de mémoire RAM fabriqués par la Signetics Corporation et inscrites dans leur catalogue de parties de 1972 aux pages 4-20. Les deux mémoires sont adressées par un indicateur d'écriture ou par un indicateur de lecture, la mémoire opérande 155 ayant un indicateur d'écriture 147 et un indicateur de lecture 163� la mémoire d'adresse de destination 157 ayant un indicateur d'écriture
149 et un indicateur de lecture 161. L'opération de ces indicateurs d'écriture et de lecture respectivement est identique à l'opération qu'ils exécutent dans la file d'attente d'entrée lorsqu'ils s'adressent à la mémoire de file d'attente d'entrée
67 (figure 2).
Le circuit de contrôle d'entrée 145 fonctionne comme
la logique d'interface 61 dans la file d'attente d'entrée
(figure 2) en répondant aux signaux venant des comparateurs
151 et 153 pour arrêter la transmissionds l'information vers
la file d'attente de sortie 29 depuis la file d'attente d'entrée, ou de la mémoire, ou de l'unité logique de vecteurs. Les comparateurs 151 et 153 respectivement, indiquent au circuit de contrôle d'entrée 145, de la même manière que l'indique le comparateur 77 de la file d'attente d'entrée de la figure 2, que les mémoires respectives sont soit pleines, soit vides, soit qu'elles contiennent certaines données.
Le circuit de contr3le de sortie 159 de la file d'attente de sortie 29 amorce une demande de lecture soit de la mémoire opérande, soit de la mémoire d'adresse de destination RAM 155,
157, respectivement, en réponse à la réception d'une instruction de transmission depuis la centrale entrée/sortie 13 (figure 1)
<EMI ID=60.1>
également à un signal de retransmission sur la ligne 165. En réponse à des signaux sur l'une quelconque de ces lignes, le circuit de contrôle de sortie 159 peut transmettre une requête au signal de données d'écriture sur la ligne 169 vers la centrale
<EMI ID=61.1>
ligne 167. par exemple, la structure de données dont une partie se trouve dans les deux mémoires, est de manière caractéristique transmise sur les lignes 171 vers la centrale entrée/sortie 13
(figure 1). On doit se rappeler que la centrale entrée/sortie 13
<EMI ID=62.1>
les lignes 171 de la file d'attente de sortie 29 dirigeront ces structuras de données selon la zone d'adresses reçues de la mémoire d'adresse de destinât ici RAM 157. Ainsi, l'unité phériphérique 1,2 ou N (figure 1) peut recevoir les données
ou bien, la structure de données pourra être dirigée directement dans la file d'attente d'entrée de l'ordinateur 11 pour traitement ultérieur.
En se reportant Maintenant à la figure 6, on y a illustré une logique spécifique pour le circuit de reconnaissance
<EMI ID=63.1>
connecté avec une paire de conducteurs d'entrée dans la ligne 85. Les signaux sur chacun de ces conducteurs 173 et 175 sont fournis à l'entrée de la porte exclusive ou 177 et, de plus, à une porte
<EMI ID=64.1>
tie 89 de la porte ET 179 génère un signal de comptage plus-UN. tandis que la porte ET 171 sur la ligne de sortie 91 génère un signal de comptage vers le bas de moins UN au compteur binaire haut/bas 65. Le compteur binaire haut/bas 65 pourra être du type fabriqué par la Signetics Corporation et illustré dans leur catalogue de parties 197 de 1972 aux pages 2-170. Le compteur haut/bas 65 alimente un comptage binaire sur les lignes 197 à
la logique d'interface 61 de la file d'attente d'entrée (figure 2) et reçoit un signal d'horloge du circuit de logique d'interface
<EMI ID=65.1>
La figure 7 illustre les deux représentations préférentielles de bit des quatre caractères utilisés dans tout l'ordinateur 11 (figure 1). Le délimitateur de données de gauche, dénommée pour la facilité un paren gauche 174, est représenté
par un signal haut sur une première ligne et un signal bas sur
une deuxième ligne, les deux signaux étant reçus substantiellement en même temps. Un délimitateur de données de droite ou paren droit 176, est représenté par un signal haut sur la première ligne et un signal bas sur la deuxième ligne, en opposition directe avec la représentation du déllmitateur de données de gauche. Un caractère binaire 1 (178) est représenté par deus signaux
hauts. Un caractère binaire 0 (171) est représenté par deux signaux bas.
En se reportant à nouveau à la figure 6, son opération pour reconnaitre si les signaux transmis sur la ligne 85 repré-
<EMI ID=66.1>
ou un caractère binaire 1 ou binaire 0, sera maintenant expliquée. En supposant à titre d'exemple que le signal binaire sur le conducteur 175 soit 1, ou haut, et que le signal binaire sur
<EMI ID=67.1>
<EMI ID=68.1>
niveau de signal 0 sur la ligne 89. Ce niveau de signal fait que le compteur haut/bas 65 comptera plus 1. En supposant maintenant que le signal binaire sur la ligne 175 soit 0 et que le signal binaire sur la ligne 173 soit 1, représentant un caractère paren droit, la sortie de la porte OU exclusive 177 sera un binaire 1, de telle sorte que la sortie de la porte ET 181 sur la ligne 91 sera haute. Le niveau de signal haut sur la ligne 91 fera que le compteur binaire haut/bas 65 comptera 1 vers le bas. Le comptage du compteur binaire haut/bas 65 est alimenté à la logique d'interface 61 de la file d'attente d'entrée
<EMI ID=69.1>
sortie n'est générée sur chacune des lignes 89 et 91 parce que la porte OU exclusive 177 ne génère pas un signal de validation sur la ligne 191: La même situation se produit lorsque les deux
<EMI ID=70.1>
l'arrangement de zones ou de format général d'un fichier de données qui est l'unité de base d'une structure de données. La première zone d'un fichier est une zone de description. Les zones qui
<EMI ID=71.1>
zone est une zone de terminaison. Les parens les plus à gauche et à droite 20 et 219, respectivement, définissent un fichier. En supposant que ce fichier qui peut être considéré comme étant une simple structure de données, est transmis de gauche à droite, le paren d'ouverture est 201, et le paren de fermeture est
219. La première zone qui suit le paren d'ouverture 201 est une zone de description 203, laquelle est délimitée elle-même par une paire de parens. La zone suivante qui doit suivre la zone de description pourra être une zone opérande telle qu'illustrée par la zone 205, ou une zone d'adresse ou une zone d'opérateur.
Les données dans la zone de description 203 décriront le type et l'ordre de présentation des diverses zones qui les suivent. Les espaces 207, 211 et 215 entre les zones de données
205, 209 et 213 pourront, pour la simplicité, être appelées "espaces vides" qui permettent aux zones de données 205, 209
et 213 de subir une extension, si nécessaire. Lorsque ces zones se contractent, elles créent plus d'espaces vides. Tous ces espaces vides pourront être employés pour permettre plus tard
à ces zones de subir une extension. Le véhicule exact par lequel cela est fait sera décrit ci-après de manière plus complète.
La dernière zone de chaque zone est une zone de terminaison 217 qui en général ne présentera pas de données à son intérieur. En d'autres mots, il s'agit simplement de deux caractères, un paren gauche et un paren droit. La zone de termi-
<EMI ID=72.1>
caractères qui représentent le code de terminaison pour la structure de données ou fichier. Ce code alors, selon la convention
100
<EMI ID=73.1>
deux bits à un tamps parallèle de gauchs à droite.
Cette zone de terminaison et le paren de fichier de terminaison est interprété comme étant un code de terminaison de fichier par la logique d'interface 61 de la file d'attente d'entré
(figure 2). Lorsque ce code se produit, la sortie du compteur 65
(figure 2) sera 0 si aucune erreur ne s'est produite dans les
<EMI ID=74.1>
compteur 65 pour la structure générale de fichiers selon la figure 8 se fera dela manière 121212121210. Ainsi, une combinaison d'un comptage 0 depuis le compteur 65 et la présence du code de terminaison indique que la structure de données reçue ne présente pas d'erreurs. Si par exemple, il y avait une erreur dans un caractère paren, le compteur ne serait ni augmenté, ni diminué. S'il y avait une erreur dans un caractère de données, le compteur paren subirait incorrectement une augmentation ou une diminution. Dans chaque cas, un comptage autre que 0 est
laissé au moment où le code de combinaison se produit. Cela indiquerait une erreur en obligeant la logique d'interface
de la figure 2 de répondre en demandant une retransmission
comme décrit ci-dessus.
La structure de chaque fichier comme illustré d'une manière générale dans la figure 8 doit suivre certaines réglas
de syntaxe. Ces règles sont :
(1) Aucun caractère 1 ou 0 ne peut se produire entre
des parens de même face. Par exemple, il ne peut y avoir des caractères entre le paren de zone d'ouverture 201 et le paren
de zone d'ouverture de la zone de description 203.
(2) La première zone d'un fichier doit être la zone de description 203.
(3) La dernière zone du fichier est toujours la zone
de terminaison 207.
Dans le présent exemple, cette zone ne présente pas
de données.
Une zone de données telle que la zone de données A 205
de la figure 8 peut être formée elle-même d'une pluralité de
zones ou marne d'une pluralité de fichiers. Par exemple, la figure
9 représente la zone A comme consistant en trois sous-fichiers
a, b et o. Le paren de zone d'ouverture 221 et le paren de
zone d'ouverture 223 définissent la zone de données A. Mais
endéans ces parens, une pluralité de ce qu'on peut appeler
"fichiers de vecteurs" pourra être présente. Les fichiers a,
b, et c 225, 229 '.et 233, respectivement, illustrent des fichiers
de vecteurs. Ces fichiers doivent évidemment suivre les règles générales de syntaxe décrites pour le fichier général selon la figure 8. C'est-à-dire, chaque fichier possède une zone de description des zones de données et une zone de terminaison. Ainsi qu'il peut se produire à l'intérieur d'un fichier, les
<EMI ID=75.1>
vecteurs dans cette zone, si on le désire.
Cette structure empilée de zones à l'intérieur de fichiers et de fichiers de vecteurs à l'intérieur de zones, pourra être comprise plus facilement si on la considère en termes d'une structure arborescente présentant des noeuds qui représentent des programmes ou des opérateurs. A titre d'exemple, supposons que l'opération définie suivante doit être exécutée sur une pluralité de libellés représentés par les lettres capitales de l'alphabet
<EMI ID=76.1>
Cette combinaison arithmétique de 14 libellés différents pourra être représentée par la structure arborescente illustrée dans la figure 10.
La structure arborescente de la figure 10 reçoit comme
<EMI ID=77.1>
les libellés A et B sont alimentés à l'opérateur de programme add au noeud 227; les libellés C et D sont alimentés à l'opérateur de programme add au noeud 229. Les résultats des deux opérations sont alimentés à un opérateur de programme de soustraction au noeud 231. Pendant que cela se produit, les libellés F et G peuvent être alimentés à un autre opérateur de programme <EMI ID=78.1>
diverses opérations préalables se produisent, les libellés K et
L sont alimentés à un opérateur de programme de soustraction au noeud 239, les libellés N et M sont alimentés à un autre opérateur de programme de soustraction au noeud 241, et les libellés 0 et
Q sont alimentés à un autre opérateur encore de programme de soustraction au noeud 247. Le résultat de l'opération au noeud
239 et le résultat de l'opération au noeud 241 sont alimentés
à un opérateur add au noeud 243.
Le résultat du noeud d'opérateur de soustraction 231 et le résultat du noeud d'opérateur de soustraction 237 sont alimentés à un autre noeud d'opérateur add 233. Le résultat du noeud d'opérateur add 243 et le noeud d'opérateur de soustraction 247 sont alimentés à un autre noeud d'opérateur add 245. Le résultat du noeud d'opérateur add 245 est alimenté au noeud d'opérateur
de soustraction 249 qui est également alimenté à un autre libellé R. Les résultats du noeud d'opérateur "moins" 249 et le noeud d'opérateur add 233 sont alimentés à un autre noeud d'opérateur de soustraction 251. Le résultat de ce noeud est alimenté à
<EMI ID=79.1>
Ainsi qu'il est évident de cette description de la structure arborescente, le traitement d'opérande dans un courant de structure arborescente facilité le traitement d'opérandes d'une manière concurrente. C'est-à-dire, les opérations se
<EMI ID=80.1>
239, 241 et 247 peuvent toutes se produire substantiellement de manière simultanée si les opérandes appropriés sont disponibles.
Cela est vrai pour toutes les opérations sur un autre, ou
<EMI ID=81.1>
d'opérations précédentes sont tous disponibles simultanément.
L'exemple de la figure 10, dans un but de simplicité
de la description et de facilité de compréhension n'a considéré que des opérations dyadiques telles que addition et soustraction. Cependant, il est bien entendu que ce type de schéma de traitement de structure arborescente permettra des opérations monadiques et dyadiques avec la même facilité. Il est bien entendu que pour utiliser le traitement concurrent on doit utiliser un système d'unités de traitement de données.
Pour illustrer comment les structures de données à fichier empilé selon les figures 8 et 9 mettent en oeuvre les principes de traitement de structures arborescentes, on considèrera les opérations dyadiques simples suivantes sur quatre libellés
(A+B) - (C+D). Ces opérations sont illustrées sous une forme de structures arborescentes dans la figure 11. Les libellés A, B,
C et D au niveau de feuille 255 257, 259, 261 sont alimentés
au premier niveau des noeuds d'opérateurs, les noeuds de sommation 263 et 265. Les résultats de ce niveau de noeud sont alimentés au niveau suivant ou niveau de soustraction 267. Le résultat de ce noeud 269 peut être envoyé à un autre noeud, ou opérateur de programme, ou à une destination physique.
Chaque noeud de la structure arborescente, figure 11,
<EMI ID=82.1>
étant un fichier 271 de noeuds de soustraction. Ce fichier est délimité par des parens droits et gauche, et présente une première zone, laquelle est une zone de description 277 qui décrit la nature et la séquence du fichier. Dans ce cas, P représente un programme, ce qui signifie que ce fichier est un fichier d'opérateurs de programme. Puisque ce fichier est un fichier d'opérateurs, la zone suivante qui doit suivre la zone de description sera une zone
<EMI ID=83.1>
le code d'opérateur décrit une opération de soustraction. Puisque l'opération est dyadique, les zones qui suivent la zone d'opérateur décrivent les deux opérandes qui doivent être soustraits. Ces deux
<EMI ID=84.1>
Parce que les opérandes sont des résultats d'autres opérations, les zones opérandes sont des fichiers de vecteurs,
Par conséquent, les opérandes sont décrite par les fichiers de vecteurs 273 et 275. La zone qui suit les zones opérandes est une zone 287 d'adresse de destination indiquant la destination à laquelle on doit envoyer le résultat de l'opération de soustraction. La dernière zone du fichier de soustraction est la zone de terminaison 289. L'espace vide peut se produire à tout endroit entre les zones dans un fichier. Par exemple, à l'intérieur du fichier de programme de soustraction^ l'espace vide est illustré comme se produisant à 281, 283, et 285. On doit se rappeler que puisque les zones opérandes du fichier de programmes de soustraction sont des fichiers de vecteurs, l'espace vide peut se produire également entre les zones à l'intérieur de ces fichiers.
Considérons maintenant les deux fichiers de vecteurs à l'intérieur du fiohier de programme de soustraotion, le fichier
de vecteurs add 273 et le fichier de vecteurs add 275. Ces fichiers sont également structurés selon les règles de syntaxe décrites ci-dessus. Il y a des parens de délimitation de fichiers gauche <EMI ID=85.1> une zone de description laquelle dans le cas présent décrit le fichier coame étant un fichier de vecteurs, en réservant
<EMI ID=86.1>
opérandes, les zones de vecteurs dyadiques tels que les fichiers
273 et 275 à l'intérieur d'un fichier plus grand tel qu'un fichier de programmes 27.-il, contiennent des zones résultantes désignées par R dans la figure :;1: Ces zones résultantes (R) Mémorisent le résultai de l'opération dyadique décrite par ce fichier de vecteurs si ce résultat ne peut pas être utilisé
au moment où il est généré.
Afin de faciliter la compréhension, l'opération générale de l'ordinateur 11 selon la figure 1 sera décrite en relation avec le schéma simple de programme illustré dans la figure 11, lequel n'utilise que,des opérateurs dyadiques. Pour faciliter davantage l'explication et la compréhension, on supposera que les structures de données de programme ou les fichiers de programmes sont dynamiques et sont reçues par la file d'attente d'entrée 21 (figure 1). Il est bien entendu cependant que l'ordre inverse est également applicable et que les fichiers opérandes peuvent être mémorisés dans des mémoires d'ordinateur
25 et que les fichiers de programme peuvent être alimentés à l'ordinateur 11 par l'intermédiaire de la file d'attente 21.
Afin d'exécuter le schéma fonctionnel des opérations selon la figure 11, la mémorisation de l'ordinateur contiendra <EMI ID=87.1>
fichier de veoteurs. La zone qui précède Immédiatement la zone de terminaison est une zone d'adresse de destination 343. On doit se rappeler qu'un espace pourra être prévu entre les diverses zones du fichier de programmes, de soustraction de telle sorte
<EMI ID=88.1>
opérandes.
Considérons maintenant la première zone opérande, laquelle est un fichier de vecteurs. Dans oe cas particulier, une opération d'addition est définie. Les zones opérandes 309 et 313 de oe
<EMI ID=89.1>
suivent la zone décrivant l'opérateur. De plus, ce fichier de vecteurs contient une zone de résultats 321 au lieu d'une zone
<EMI ID=90.1>
d'autres mots, ces zones sont simplement définies par un paren gauche suivi d'un paren droit sans caractères entre les deux.
Ces zones opérandes restent contractées ainsi qu'il sera décrit plus en détail ci-après, jusqu' à ce que les opérandes y soient mémorisés.
La deuxième zone opérande pour le fichier de programmes de soustraction est également un fichier de vecteurs de même structure que celle décrite pour la première zone opérande. Il
y a une paire de zones opérandes 333 et 335, une zone de résultats
<EMI ID=91.1>
considérable 331, 339, etc. entre .elles.
On a décrit ci-dessus la structure envisagée d'un fichier de programmes à l'intérieur d'une mémorisation d'ordinateur qui reste statique en mémorisation jusqu'à ce qu'une structure de données opérandes ou fichier arrive à la file d'attente d'entrée qui adresse ce fichier de programmes particulier. La structure de ce fichier de programmes fournit un mécanisme récursif qui accélère l'exécution algorithme.
Une structure de données alternées pour l'exécution du déroulement fonctionnel selon la figure 11 serait une structure qui utilise trois fichiers de programmes au lieu d'un seul fichier de programmes contenant deux fichiers de vecteurs, comme illustré. Ainsi, les deux fichiers de vecteurs additionnels et le fichier de programmes de soustraction représentent trois fichiers de programmes indépendants. La zone ::résultante (R) de chaque fichier de vecteurs serait remplacée par une zone d'adresse
de destination (DA). La zone d'adresse de destination dans les deux fichiers de programme add adresserait le fichier depro-
<EMI ID=92.1>
L'utilisation de ce type de structure de données demande que
le résultat de chaque opération soit dirigé hors de l'ordinateur et de retour à son entrée pour arriver au noeud
suivant d'opérateur. Par contraste, la structure du fichier
de programmes illustré élimine la nécessité d'envoyer le résultat d'une opération de fichier de vecteurs hors de l'unité de traitement et de retour à son entrée pour traitement ultérieur
Pour continuer avec la structure de données illustrée, considérons maintenant les fichiers de données qui arrivent à
la file d'attente d'entrée. Supposons que le premier opérande qui arrive dans un fichier de données, soit l'opérande A. Le fichier qui contient cet opérande est illustré dans la figure 12A comme étant une structure de fichier 1 sous l'en-tête "file d'attente d'entrée". La première zone de ce fichier de données est une zone de description 375 qui indique que cette zone particulière est une zone opérande contenant un libellé. Cette zone de description est analysée par l'analyseur de zone 146
<EMI ID=93.1>
règle les trajets appropriés vers la mémorisation d'ordinateur
25 pour la zone suivante 377, laquelle est une zone d'adresse de mémorisation qui adresse le fichier de vecteurs particulier auquel appartient le libellé A. L'adresse de mémorisation 377 adressera l'emplacement dans la mémorisation d'ordinateur qui
<EMI ID=94.1>
appartient à la zone opérande gauche ou droite 309 ou 313, respectivement, de ce fichier particulier de vecteurs. Le fichier opérande qui est reçu à la file d'attente d'entrée présente aussi une zone de terminaison 387 et peut posséder des espaces vides
381, 385 entre les zones de ce fichier.
Le contrôle 23 par la voie de son analyseur de zone ROM
146 et de sa bibliothèque de sous-routine consistant en une pluralité de ROM 154, 156, 158 interroge le fichier de vecteurs add, après qu'il a été adressé par le fichier opérande à la file d'attente d'entrée pour déterminer si l'opérande B est arrivé précédemment et a été mémorisé dans sa zone 313. Puisque, dans
ce cas, il ne l'a pas été, comme indiqué au contrôle par les zones opérandes vides 309, 313, le contrôle mémorise l'opérande
A dans la zone appropriée 309. Comme l'opérande A est écrit dans la mémoire, caractère par caractère, le fichier opérande 309
est étendu pour s'adapter à ses dimensions exactes. Les caractères spécifiques de la manière dont l'opérande est réellement écrit dans la mémoire sont considérés comme étant dans/portée des connaissances d'une personne de capacité moyenne dans cette technique, et par conséquent ne seront pas examinés ici.
Comme résultat, par conséquent, du fichier libellé illustré en position 1, qui arrjve à la file d'attente d'entrée, le fichier du programme de soustraction dans la mémorisation d'ordinateur aura le libellé A mémorisé dans la zone opérande
<EMI ID=95.1>
commence par le paren gauche 345,comme illustré en position
2 sous l'en-tête "mémorisation" de la figure 12B. Puisque le libellé A est maintenant mémorisé dans sa zone opérande appro-.
<EMI ID=96.1>
zone opérande et sa zone opérande qui l'accompagne pourra être complètement utilisé eu fortement diminué.
1 Supposons maintenant que le fichier opérande suivant qui arrive dans la file d'attente d'entrée 21 de l'ordinateur 11 (figure 1) contient l'opérande D dans sa zone opérande 382, comme montré en position 2 sous l'en-tête "file d'attente d'entrée". En plus de la zone de description qui communique à l'unité de contrôle les zones qui doivent suivre, une zone d'adresse de mémoire 376 et une zone d'emplacement d'opérande 389 sont présentes dans ce fichier opérande. Le fichier de libellés en position 2 de la file d'attente d'entrée posséde une zone d'entrée de mémorisation 376 qui adresse le fichier de vecteurs add à l'intérieur du fichier de programmes de sous-traction au paren de départ 346 (position 2) sous l'en-
<EMI ID=97.1>
l'unité de contrôle, lorsqu'elle voit la zone d'opérateur du fichier de vecteurs rendra actif le microprogramme d'addition approprié dans la bibliothèque de microprogrammes formée de
<EMI ID=98.1>
que tous les opérandes qui sont nécessaires pour exécuter l'opération ne sont pas présents soit dans la file d'attente d'entrée, soit dans la mémoire de l'ordinateur, un autre microprogrammes est rendu actif pour mémoriser le libellé D dans la zone opérande
382 du fichier de file d'attente d'entrée dans la zone opérande appropriée 351 du fichier de vecteurs add, comme déterminé par le code d'emplacement d'opérande dans la zone 389 du fichier du libellés à la file d'attente d'entrée. Comme résultat du traite-
<EMI ID=99.1>
dans la mémorisation apparaitra telle qu'illustré en position 3 sous l'en-tête "mémorisation". C'est-à-dire, un libellé A est mémorisé dans sa zone opérande appropriée dans le premier fichier de vecteurs add et un libellé D est mémorisé dans sa zone opérande appropriée dans le deuxième fichier de vecteurs add.
Supposons maintenant que la troisième fichier d'opérandes qui doit arriver dans la file d'attente d'entrée porte un opérande
<EMI ID=100.1>
l'opérande A. Le contrôleur reconnaît à cause de la zone de description L, qu'il s'agit d'un fichier de libellés, et par conséquent, la zone qui suit 378 est une adresse de mémorisation qui adresse le premier fichier de vecteurs contenant 1* opérande A. Le contrôleur commence à lire ce fichier de vecteurs adressé! et son analyseur de zone ROM 146 (figure 4) détermine de la zone de description "V" qu'il s'agit d'un fichier de vecteurs contenant un programme. La zone qui doit suivre cette zone de description est alors une zone de code d'opérateur. En réponse à la zone d'opérateur, l'analyseur de zone actionne le microprogramme approprié de la bibliothèque de micro-programmes ROMs 154, 156
ou 158 (figure 4) et de plus provoque la lecture hors de la mémorisation du libellé A pour adresser le ROM approprié 125 dans
<EMI ID=101.1>
temps le libellé B de la file d'attente d'entrée pour adresser le même ROM 125 dans l'unité logique de vecteur.
Il faut se rappeler que l'unité logique de vecteur est
<EMI ID=102.1>
en même temps, un caractère de chacune des deux zones opérandes. Lorsque l'unité logique de vecteur a achevé sa fonction d'addtionner ensemble les opérandes A et B, le microprogramme détermine si la zone résultante dans le deuxième fichier de vecteurs est rempli. Puisque dans ce cas elle est vide, elle mémorisera le résultat de l'addition de libellés A et B dans
la zone résultante appropriée dans le premier fichier de vecteurs. Comme résultat du troisième fichier d'opérandes apparaissant dans la file d'attente d'entrée, le fichier de programmes de soustrac-
<EMI ID=103.1>
zones opérandes que les libellés A et B occupaient, les zones
355 et 359 respectivement sont maintenant vides, puisqu'elles
<EMI ID=104.1>
Le libella D cessas opérande du deuxième fichier de vecteurs est également présent.
Le seul opérande qui manque à ce moment, est le libellé C. Supposons maintenant qu'un fichier'd'opérandes arrive conte-
<EMI ID=105.1>
s'adresser au deuxième fichier de vecteurs. Le contrôle lira alors ce fichier de vecteurs et réglera l'unité logique de vecteurs pour effectuer l'opération requise par la zone de
code d'opérateur et commencera à additionner C et D de la même manière que celle décrite pour les opérandes A et B. Cependant, lors de l'achèvement de cette opération, puisque la zone résultante 369 du premier sous-fichier de programmes add est remplie,
en plus de mémoriser le résultat de la sommation des libellés
C et D dans la zone résultante 367, un autre mieroprogramme
est choisi, lequel conditionne l'unité logique de vecteur selon la zone de code d'opérateur de soustraction dans le fichier de programmes de soustraction. Ce microprogramme fait que l'unité de contrôle alimentera l'unité logique de vecteur d'une manière caractéristique, la résultante de la sommation A +
<EMI ID=106.1>
résultats soient soustraits.
Pendant que cette opération est exécutée, la zone de destination 343 du fichier de programmes de soustraction est alimentée à la mémoire d'adresse de destination 157 de la file d'attente de sortie 29 (figure 5). Cette zone d'adresse de destination 375 telle qu'illustrée dans la figure 12B sous l'en- tête "file d'attente de sortie. en position 1, est un fichier de vecteurs de destination qui présente comme sa première
<EMI ID=107.1>
ple identifie le fichier comme étant un fichier de libellés ou d'opérandes, une zone d'adresse qui le suit, et une zone d'empla-
<EMI ID=108.1>
d'opérande, telles la zone 387, peuvent suivre la zone d'emplacement d'opérande. Puisque la syntaxe d'une structure de fichier doit être suivie, le fichier d'adresses de destination se termine par une zone de terminaison 391. La zone d'adresse de destination, puisqu'elle est un fichier de vecteurs peut aussi présenter un espace vide entre les zones à son intérieur, tel l'espace vide
<EMI ID=109.1>
aucune mémorisation à son intérieur et se trouve sous ferme
<EMI ID=110.1>
résultat de la soustraction des libellés C + D, des libellés A + D, ce résultat tel que montré en position 1 sous l'en-tSte
<EMI ID=111.1>
opérande 155 de- la file d'attente de sortie (figure 5).
Le contrôle de sortie 159 de la file d'attente de sortie 29 (figure 5) transmet un message sous une forme qui est essentiellement identique à la forme qui est reçue à la file d'attente d'entrée comme illustré dans la figure 12B sous
<EMI ID=112.1>
sant une région spécifique dans la mémorisation de l'unité de traitement adressée. La zone qui suit la zone d'adresse est une zone 385 d'emplacement d'opérande, si nécessaire. La zone suivant la zone d'emplacement d'opérande est la zone résultante 393. Le fichier opérande quittant la file d'attente de
<EMI ID=113.1>
Pour résumer, la description fonctionnelle ci-dessus rend clair que l'ordinateur selon la figure 1 n'exécute une opération qu'après que deux structures de données ont été articulées, l'une étant une structure de programme, l'autre étant une structure opérande, Dans le cas de l'exemple spécifique., la structure de programme sous la forme de fichiers de programmes est mémorisée dans la mémoire de l'ordinateur en attendant l'arrivée des structures opérandes ou des fichiers opérandes qui adressent les fichiers de programmes appropriés, et ainsi l'unité de contrôle de l'ordinateur exécutera le programme désigné. Par conséquent, cette opération actionnée par des données fournit une unité numérique de traitement de données présentant des possibilités d'émulation supérieures,
<EMI ID=114.1>
un ordinateur à multitraitements, chacun des blocs fonctionnels ayant sa fonction définie par les fichiers de programmes mémorisés dans leur région de mémoire respective. Puisque l'arrivée de fichiers d'opérandes à l'entrée d'une unité centrale de traitement de données spécifiques produit le déroulement du programme adressé lorsqu'un tel ordinateur est utilisé comme
bloc fonctionnel dans un ordinateur à multitraitements.. un programme de contrôle pilote ou un système étendu d' intez-ruption qui réglerait l'interaction des unités de traitement dans l'ordinateur à multitraitements ne serait pas requis. La description ci-dessus rend clair que l'ordinateur de la figure 1 présente des capacités d'émulation améliorées parce que le vocabulaire à quatre caractères dans un ordinateur de série à caractères facilite une structure de données d'une longueur de zone variable. Ces structures de données sont facilement vérifiées du point de vue des erreurs par l'utilisation de simples circuits logiques sur les trajets de circulation des données.
Il est bien entendu, évidemment, que la description ci-dessus ne concerne qu'un mode préférentiel de réalisation de l'invention et que de nombreuses modifications peuvent être apportées sans sortir des principes et de la portée de l'invention.
REVENDICATIONS.
1. Perfectionnement apporté au système d'unité de traitement de données binaires présentant des moyens de mémorisation et des moyens formant circuit d'entrée, ce perfectionnement étant un mécanisme récursif, et comprenant :
des structures de données mémorisées dans les dits moyens de mémorisation, les dites structures de données représentant des données de programme organisées dans un ordre empilé hierarchique selon des fichiers de données de programme composés de zones opérandes et d'une zone résultante associée avec une zone de description de programme particulière, et des structures de données reçues par les dits circuits d'entrée, les dites structures de données représentant des données opérandes organisées dans un ordre empilé hierarchique, les dites structures de données provoquant l'adressage de certaines des structures de données dans les dits moyens de mémorisation.