BE825395A - STRUCTURED DATA FILES IN A DATA-POWERED DIGITAL PROCESSING UNIT - Google Patents

STRUCTURED DATA FILES IN A DATA-POWERED DIGITAL PROCESSING UNIT

Info

Publication number
BE825395A
BE825395A BE153240A BE153240A BE825395A BE 825395 A BE825395 A BE 825395A BE 153240 A BE153240 A BE 153240A BE 153240 A BE153240 A BE 153240A BE 825395 A BE825395 A BE 825395A
Authority
BE
Belgium
Prior art keywords
data
operand
emi
file
area
Prior art date
Application number
BE153240A
Other languages
French (fr)
Inventor
R S Barton
A L Davis
E A Hauck
D M Lyle
L D Turner
G W Hodgman
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US447015A external-priority patent/US3886522A/en
Priority claimed from US05/447,016 external-priority patent/US4156903A/en
Priority claimed from US05/447,040 external-priority patent/US3978452A/en
Application filed filed Critical
Publication of BE825395A publication Critical patent/BE825395A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Description

       

   <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. &#65533;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 &#65533;, 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&#65533; 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.



   <EMI ID = 1.1>

  
digital data-driven.

  
INTERNATIONAL CONVENTION: patent application filed with

  
United States of America :

  
on 28.2.74 under n [deg.] 447040 in the names of Messrs. Robert Stanley BARTON,

  
Alan Lynn DAVIS, Erwin Arthur HAUCK, Don Martin LYLE and

  
Lloyd Drayton TURNER;

  
on 28.2.74 under n [deg.] 447016 and "continuation-in-part" n [deg.] 505868

  
of 13.9.74 in the names of Robert Stanley BARTON and Alan Lynn DAVIS

  
on 28.2.74 under n [deg.] 447015 and "continuation-in-part" n [deg.] 505852

  
of 13.9.74 in the names of Robert Stanley BARTON, Erwin Arthur

  
HAUCK and Don Martin LYLE;

  
on 28.2.74 under n [deg.] 447034 and "continuation-in-part" n [deg.] 505853

  
of 13.9.74 in the names of Messrs. Robert Stanley Barton, Alan Lynn DAVIS,

  
 <EMI ID = 2.1>

  
of 13.9.74 in the names of Robert Stanley BARTON, Alan Lynn DAVIS, '

  
Erwin Arthur HAUCK, Don Martin LYLE, Lloyd Drayton TURNER and

  
Gary Wesley HODGMAN;

  
on 28.2.74 under n [deg.] 446912 and "continuation-inpart" n [deg.] 505869

  
of 13.9.74 in the names of MM. Michael H. MISSIOS and John R. WERNER.

  
The present invention relates generally to improvements to digital data processing units, and more particularly relates to new and improved digital data processing unit systems where the data processing unit is a microprogrammed device. integrated circuit.

  
In the area of digital data processing units the practice currently exists to employ system architectures which have been created under the influence of high costs of data processing.

  
 <EMI ID = 3.1>

  
system control in devices referred to as central processing units and main memory units. Because of this massive and expensive centralized hardware that had to be controlled, operating systems (pilot control programs) were created to generalize its use,

  
timeshare on a number of programs or tasks. The system architectures which have resulted from these influences are highly generalized and as a result they are unnecessarily complex, ad hoc, and inefficient for a large number of particular situations. This type of architecture is irregularly subdivided and is implemented primarily by hard-wired sequential logic. When microprogrammed techniques are used, the basic functional architecture of the system is not changed by the fact that the microcoded processing units still follow the synchronized sequential architectures oriented to the register.

  
New integrated circuit technology, such as MSI and! .SI, which provides the essential elements of a single confetti processing unit can be effectively used only if a new set of structural constraints is followed. For example, L3I tachnology requires hardware regularity and non-dedication of specialized or complex algorithms to circuit confetti. Additionally, since the memories of integrated circuits are compatible in interface with an integrated circuit logic, the diagram of the architecture of the processing unit oriented towards the register can be eliminated by distributing the memory of the circuit of the system to

  
through the system. This obviously eliminates the need for a centralized main memory subsystem. Now that it is feasible to distribute system memory throughout a system, it is desirable to eliminate central control operating systems that were previously required.

  
To be able to effectively use LSI technology, a system architecture which results in a well-formed and regular system, capable of being subdivided, is required. Although almost all of the microprogramming techniques used in the past have this basic purpose, previous programming techniques have failed to produce a system whose programming is efficient and which is efficient for the execution of its algorithms. In other words, these earlier firmware systems exhibit a complete lack of continuity between what constitutes machine language and what constitutes machine language.

  
 <EMI ID = 4.1>

  
and by language requests. This is true because the microcode languages of the machine of the known art are serial and are such as to produce a link, which is in direct opposition to the demands of the technology.

  
LSI for regularity, and are not binders of complex functions.

  
One of the objects of the present invention is to provide a digital central processing unit which can be

  
used as a basic functional block in a computer, such as a multiprocessing computer which does not need to use a control driver program or which requires an extensive system of interrupts and which has improved emulation capabilities.

  
The problems inherent in central systems, and other things mentioned above, together realizing the objects mentioned above are realized in the present case by a binary data system in which the storage contains data files composed of data areas and characters of data, and the system circuitry has a circuit to receive them. A data zone contains the address of the data file in storage. The system can be described in a general way and it will be called a data actuated system.

  
The general object of the present invention is more particularly achieved by using a multi-character vocabulary in a character serial data processing unit, in which two of the characters are used to define the beginning and the end of a particular data area. Each character is represented by a plurality of binary bits. Data structures are organized into areas containing data files in a way that allows for expansion and contraction

  
 <EMI ID = 5.1>

  
by an area code endpoint that triggers a comparison between the count of characters from the starting area and ending characters in a data structure and a

  
reference counting. The structure and organization of a file are described by the contents of the first zone

  
in this file. A program or process is executed in

  
meeting response set of pairs of data files, each pair having a data file containing a part

  
of the program, and the other data file containing the operands for that part of the program. Each type of data file can be resident in the stored region.

  
from the data processing unit (static), while the other is fed to the processing unit from the external region
(dynamic). The arrival of the dynamic data files causes the coupling of data files in the memory which must be addressed. In turn, the vector file will be able to produce the execution of the operation dictated by its content using the operands fed by the arriving operand files. If all the operands for the addressed data structure are present or have arrived, the operation designated by the program data structure is executed, the result being transmitted.

  
to a destination indicated by the program data structure. The two mated dornea files can be used in combination, to produce the resultant dictated by the area

  
program data.

  
A short description of the drawings will now be given:
You will easily see other objects and

  
 <EMI ID = 6.1>

  
The following detailed description is taken in conjunction with the accompanying drawings in which like reference numerals denote the same or like parts in all the figures.

  
In these drawings,

  
FIG. 1 is a functional block diagram of a single data processing system of a processing unit according to the invention. Figure 2 is a logic diagram of the input queue in the processing unit of Figure 1. Figure 3 is a logic diagram of the vector logic unit in the processing unit according to Figure 1. Fig. 4 is a logic diagram of the control unit of the processing unit according to Fig. 1. Fig. 5 is a logic diagram of the output queue of the processing unit according to Fig. 1. Figure 6 is a logic circuit of a signal recognition circuit used in the input queue
FIG. 2. FIG. 7 is a summary illustration of a four-character vocabulary used by the processing unit of FIG. 1.

   Fig. 8 is a summary illustration of the general structure of a data file used by the processing unit of Fig. 1. Fig. 9 is a summary illustration of a general data structure file which has to its inside subfiles. Fig. 10 is an illustration, in summary showing in tree form a particular example of a program which can be executed by the computer of Fig. 1. Fig. 11 is an illustration in summary of a simple algorithm shown in tree form and the data structure or file representing the algorithm that is used

  
by the processing unit of Figure 1 to perform the

  
specified operations.

  
Figure 12 is a summary illustration of a specific example of the interaction of program structures and operand data within the various major parts of the system.

  
the processing unit of Figure 1 to achieve a desired result.

  
A description will now be given of the preferred embodiments of the invention.

  
Figure 1 shows an action processing unit system- <EMI ID = 7.1>

  
 <EMI ID = 8.1>

  
 <EMI ID = 9.1>

  
output 13. The input / output unit 13 could be a standard type of communication circuit such as that used in telephone exchanges, in which any of the peripheral units could be connected with the processing unit 11 operated by data using the input cable 31 or the output cable 33. The peripheral units can be

  
 <EMI ID = 10.1>

  
to the character series nature of the processing unit 11, when parallel format units are used, the input / output unit 13 may include a multiplexer to convert

  
the plurality of parallel signal paths from the peripheral units 15, 17, 19 to the input of the relative signal path

  
 <EMI ID = 11.1>

  
the transmission of the serial character signal from the processing unit 11 to the peripheral units of parallel format

  
 <EMI ID = 12.1>

  
multiplexers. Peripheral units 15, 17, 19 can be constituted by any of the well known devices,

  
such as actuations of magnetic tapes, readers

  
cards, punch card units, keypad units, printing devices, or storage devices

  
drum or disc.

  
The data-powered digital computer or central data processing unit 11 receives data structures from peripheral units at its input queue

  
21. These data structures, as will be explained below, have a specialized organization and must follow certain syntax rules. The input queue 21 is basically a FIFO ("first input-first output" buffer unit) which performs the additional function of synchronizing the asynchronous data structures received on the input cable.

  
31 to the computer system clock 11. Structures

  
of data received by the input queue 21 are received

  
serial to characters.

  
These data structures can be considered as being communicated to the other elements of the processing unit.

  
11 in a serialized manner. Data structures in input queue 21 are transmitted to computer memory 25, for example, in a serial character fashion.

  
 <EMI ID = 13.1>

  
control 23 via cable 51 to computer memory 25.

  
Control communication between the input queue

  
 <EMI ID = 14.1>

  
between the control 23 and the memory 25 via the cable 29, will be described below.

  
In addition to a transmission of data structures from the input queue 21 to the storage 25, these structures can be transmitted to a logical unit of

  
 <EMI ID = 15.1>

  
In a similar manner, the data structures of the storage 25 could be communicated to the logical vector unit 27 by the control unit 23 via

  
cable 25. The control communication between the logical unit

  
vectors 27 and the control unit 23 via

  
cable 45, will be explained below.

  
Logical unit of vectors 27 is basically a serial arithmetic unit which performs, for example, fundamental functions such as addition, subtraction, comparison, and forwarding to length data structures.

  
variable area. The logic vector unit will be able to communicate directly with the storage 25, via a data cable 53 and with an output queue 29 via a data cable 59. The communication of control between logic vector unit 27 and storage
25 via cable 55 and with the queue of

  
 <EMI ID = 16.1>

  
explained below.

  
The computer storage 25 of the data-powered computer 11 may be a random access integrated circuit memory of a preferential size, formed of random access memory confetti as manufactured by "Signetics". Corporation ", for example. In their catalog <EMI ID = 17.1>

  
lists a random access memory confetti
32 x 2 which can be used to build memory 25.

  
 <EMI ID = 18.1>

  
such confetti of memory is considered to be within the capabilities of a person of ordinary ability in this technique. Another example of a memory confetti that can be used to constitute memory 25 can be found in the 1972 Signetics Corporation catalog on pages 4-13.

  
which illustrate a high speed addressable memory confetti.

  
The output queue 29 which can receive data structures from the logical vector unit 27 ,, of the

  
 <EMI ID = 19.1>

  
function of placing the data structures it has received in a form that can be transmitted to peripheral units
15-19 via the entry / exit control panel 13. The exit queue, like the entry queue,

  
 <EMI ID = 20.1>

  
data in a serial character way and transmitting these characters to the input / output control unit.

  
Referring now to Figure 2, the input queue 21 communicates with the input / output central through the cable 31. This cable 31 is formed of lines 79, 81, 83 and 85 which emanate from interface logic
61 or which lead to this interface logic 61 in the input queue 21, Lines 85 are two parallel data lines which receive two bits in parallel from the input / output unit (FIG. 1). These two parallel bits <EMI ID = 21.1>

  
83 are control lines between the input queue
-and the entry / exit control unit. Line 79 transmits a binary signal level which instructs the I / O control panel to retransmit the data structure whenever an error has been detected in the previously received data structure.

  
Line 81 carries a binary signal level which enables or disables the input / output central with respect to the transmission of data structures. Line 83 transmits a signal level generated by the input / output central which indicates a request to send data structures of one of the peripheral units or output queue of the data processing unit 11. This would be in response to such a request signal level that the signal level on line 81 would enable the central entry / exit, if the entry queue could hold additional data.

  
The serial character data structure received on lines 85 from the input / output unit 13 (figure 1),

  
 <EMI ID = 22.1>

  
checked for errors by the logical oircuitage, called by the logical recognition facility "paren", and by a binary up / down counter 65 responding to the recognition circuit "paren"

  
63. The count of counter 65 is transmitted to interface logic 61 through cable 93. Now suffice to say that if the count of counter up / down 65 at the end

  
of a particular data structure is not zero, interface logic 61 requests a retransmission on line 79 because an error has occurred in the data structure. The specific logic of the recognition circuit

  
 <EMI ID = 23.1>

  
below.

  
As noted above, the input queue 21 basically functions as a FIFO buffer.

  
and synchronizes the asynchronous characters of the incoming data with the computer system clock (not shown) which is part of the interface logic 61. The buffer part of the input queue is the queue memory input hold 67 which may be a random access memory formed from IC random access memory confetti, manufactured by the Signetics Corporation and which is listed in their 1972 parts catalog on pages 4 -20.

  
Data characters received on lines 85 of the peripheral units are transmitted to the queue memory

  
 <EMI ID = 24.1>

  
the space available immediately thereafter, as indicated by the write flag circuit 73. Between the storage of data characters in the input queue memory, the data cards are read of this memory and are transmitted to the other components of the processing unit 11 (FIG. 1) via the control unit 23 (FIG. 1). The particular character of data which is read from memory 67 at a certain point in time is determined by read indicator circuit 71. The character of data which is read from input queue memory is transmitted from the input queue memory on lines 98 to the inter-

  
 <EMI ID = 25.1>

  
control cable 37 transmit signals of read validation requests and read requests from the unit

  
 <EMI ID = 26.1>

  
read validation. Line 121 transmits a read request signal. Thus, in a manner: general, information

  
 <EMI ID = 27.1>

  
as quickly as it is received, and read from the input queue memory 67 in a PIPO order as well

  
 <EMI ID = 28.1>

  
When the interface logic 51 receives the data characters, through lines 85, it generates a signal on line
97 to a memory cycle control unit 69 indicating that a write function is required. Cycle control

  
memory, in response to this write request generates a write enable signal, on line 103, to input queue memory 67, a write selection signal on line 105, to a selector 75 and an increase signal, on line 99, to a write indicator 73.

  
Selector 75 may be of the type manufactured by Signetios Corporation and described in their 1972 Parts Catalog on pages 2-136. Basically the selector, in response to a selected write or read signal on

  
line 105 selects the output of the write or read flag supplied to it on cable 109 and 111 respectively, to transmit on cable 107 to the address register of the queue memory d 'entry 67.

  
 <EMI ID = 29.1>

  
Corporation and listed in their 1972 parts catalog

  
on pages 2-100. The increment inputs 99 and 101 to the write flag and to the read flag respectively, from Memory cycle control 69 would be connected with input A (not shown) of these counters.

  
the SigneticsCorporation. Line 100 from interface logic 61 to both read flag 71 and write flag 73 would be connected with the reset inputs (not shown) of these counters.

  
The outputs of both write and read flags not only pass through the selector to address input queue memory 67, but are sampled

  
 <EMI ID = 30.1>

  
a comparator circuit manufactured by the Signetics Corporation

  
 <EMI ID = 31.1>

  
on page 101. This comparator has two output leads which indicate which of the two inputs is larger and also indicate when they are equal. Because the queue

  
 <EMI ID = 32.1>

  
first-in-first-out buffer, the write flag count will always be greater than the read flag count, whenever the input queue memory
67 has data there, but is not populated. Therefore, a signal on line 119 of comparator 77 will indicate

  
 <EMI ID = 33.1>

  
write count is greater than the read indicator count. This tells the interface logic that there is still data left in the input queue memory.

  
 <EMI ID = 34.1>

  
is equal to the count of the read indicator, a signal is transmitted from the comparator on line 117 to the interface logic 61. This signal can mean that the input queue memory is either completely empty, or else completely full, depending on whether the last memory request generated by the interface logic 61 was a read request or a write request. Interface logic 61 interprets the signal on line 117 to mean that input queue memory 67 is full if the last memory operation was a write operation. If the last memory operation was a read operation, a signal on the line
117 is taken as an indication that the input queue memory is empty.

   Interface logic 61 knows whether the last memory operation was a write operation or a read operation, since it transmitted either a write request or a read request, on the lines.
97-95, respectively, to control 69 of the memory cycle. Whenever interface logic 61 determines that input queue memory 67 is empty, it generates a reset signal on line 100, which should be supplied to both flags, write and reading.

  
The specific logic reset of the control 69 of the memory cycle, and the interface logic 61 will not be considered here because the implementation of the functions which are here assigned to these logic circuits are considered to be within the possibilities of. a person of average ability in this technique.

  
Referring now to Figure 3, a series vector logic unit 27 which may be used in

  
 <EMI ID = 35.1>

  
basically in two ROMs (read only memories)

  
125 and 129, both ROMs may be of the type manufactured by the Signetics Corporation and listed in their 1972 Parts Catalog on pages 4-1. Address registers 124 and
128 for read-only memory 125 and 129, respectively, are standard parallel input address and parallel output address registers. The only difference in structure between the two read-only memories lies in the microcode they contain. Read-only memory 125 contains

  
the microcode required by the generation of the results of dyadic operations such as addition, subtraction or comparison, by

  
 <EMI ID = 36.1>

  
as complement, deletion of the first bit, or first bit to zero, for example.

  
Data structures coming serially in character from the storage 25 of the computer 11 (FIG. 1) via the control unit 23 via lines 45 to the logical vector unit 27 are directed by the demultiplexer

  
 Control <EMI ID = 37.1>, at dyadic ROM 125 on line 139 or

  
 <EMI ID = 38.1>

  
The data structure that is addressed by the data structure in the input queue 29. This will be explained more closely below.

  
 <EMI ID = 39.1>

  
receives serial character data on lines 47 from input queue 21 through control unit 23 and directs it to either dyadic ROM 125

  
 <EMI ID = 40.1>

  
wait for output 29 of the computer (FIG. 1), according to the destination address contained in the program data structure. This destination address is provided to demultiplexers

  
 <EMI ID = 41.1>

  
The demultiplexers 135, 137, 130 and 133 used in this logical vector unit may be of the type manufactured by the Signetics Corporation and illustrated in their 1972 Parts Catalog on pages 2-132.

  
 <EMI ID = 42.1>

  
tion would be provided to address register 124, either from memory 25 or from computer input queue 21, for reasons that will be made clear <EMI ID = 43.1>

  
also supplied in character series to address register
124. This results in the output on cable 126 from read-only memory 125 to be the character series results of the summation of the two operands. Effectively, what happens is that the OP code in addition to the operands act as addresses to particular regions of memory.

  
 <EMI ID = 44.1>

  
of two particular characters coming from the two operands which are added.

  
The output of read-only memory 125, in this particular example, would also contain a signal on

  
 <EMI ID = 45.1>

  
that a particular summation of characters has been completed. Also, in the case of an addition, carry signals are propagated back to the input of the read-only memory.

  
125 on lines 132 to modify the following addition of

  
 <EMI ID = 46.1>

  
executed with read-only memory 129, return feed lines 131 may simply be a step counter input to change the contents of address register 128 of the monadic ROM so that the location of following memory be addressed.

  
Briefly, the control unit 23 introduces data structures from the memory 25 and the input queue 21 to the vector logic unit 27 which responds to these two data structures by generating a result. as well as control signals, which are sent back &#65533;, the memory
25 on lines 53 and 55, or exit queue 29 on lines 57 and 59.

  
Reference will now be made to FIG. 4 which illustrates the control unit 23 of the computer 11 as being a microprogrammed unit consisting of a plurality of read memories

  
 <EMI ID = 47.1>

  
data from input queue 21, (figure 1), or

  
the data structure of the memory 25 (FIG. 1), addresses the ROM area analyzer 146 through the address register 145 so that the ROM area analyzer 146 will respond by sending control signals to one of a plurality of demultiplexers
148, 150, and 152.

  
For example, if the data structure arriving on line 35 of the input queue (Figure 1) is by chance an operand file, the zone analyzer would instruct the demulti-

  
 <EMI ID = 48.1>

  
in this case would correspond to the description area in the operand file. Similarly, if a data structure

  
 <EMI ID = 49.1>

  
an operand file or zone, the ROM zone analyzer 146 would direct the demultiplexer 152 to line 162 to transfer

  
 <EMI ID = 50.1> leading to the output queue and line 45 leading to the logical unit of vectors.

  
Suppose now that instead of an operand data structure received on any one of lines 35

  
 <EMI ID = 51.1>

  
This program data structure would address the ROM area analyzer 146 by causing it to transmit an address to one of the ROMs 154, 156, 158 through the demultiplexer 150.

  
ROMs 154, 156, 158 form a firmware library containing particular firmware *. These firmware are addressed by the data structure arriving on one

  
of the two data lines 35 or 51b. Suppose the data structure received by ROM area analyzer 146 begins with an area which indicates that what is to follow is a program file, then the area analyzer would generate a plurality of signals to demultiplexer 150 which would direct the data. signals to ROM 154 program file, for example. In response

  
to those signals which are addressed to particular regions in

  
 <EMI ID = 52.1>

  
to the egress queue (figure 5), on line 121, to the interface logic of the ingress queue
(Figure 2), and when advantageous, on line 144 to address register 145 indicating that the shoulder operation is complete.

  
 <EMI ID = 53.1>

  
lines 35 and 51b, the address register 145 receives various

  
 <EMI ID = 54.1> 1 read enable control is provided from the input queue interface logic (Figure 2). On the

  
 <EMI ID = 55.1>

  
the output queue (figure 5) provides a hold signal informing the control that it is full. A continue signal is also supplied to address register 145 from the ROM library on line 144.

  
The address register 145 is a standard parallel "parallel input-parallel output" register well known to those having average knowledge in this art, the ROM zone analyzer 146 could be of the type manufactured by the Signetics Corporation and registered in their company. 1972 catalog

  
 <EMI ID = 56.1>

  
and listed in their 1972 Parts Catalog on pages 2-132. Demultiplexer 150 may consist of a plurality of cascaded demultiplexers, the individual demultiplexers being of one.

  
 <EMI ID = 57.1>

  
1972 parts catalog on pages 2-130.

  
Referring now to Figure 5, the output queue 29 is illustrated as a FIFO circuit.

  
dual memory. The input control circuit 145 receives data either from the input queue or from memory on

  
 <EMI ID = 58.1> <EMI ID = 59.1>

  
Input 145 also receives data from the vector logic unit 27 on lines 59 and, analogously, transmits and receives control from the vector logic unit 27 on lines 57. The data received by the control input 145 on lines 39 are directed either to the RAM operand memory 155 (random access memory) or to the destination address memory RAM 157, depending on whether the received data structure is a destination address , as determined by the signals on control line 41 from control unit 23 (Figure 1) or is an operand as determined by signals on control line 41.

   Data received on lines 59 by input control 145 is directed to operand memory or to destination address memory, as determined by signals on control lines 57.

  
Both operand memory and destination address memory can be made from RAM memory confetti manufactured by the Signetics Corporation and listed in their 1972 Parts Catalog on pages 4-20. The two memories are addressed by a write flag or a read flag, the operand memory 155 having a write flag 147 and a read flag 163 &#65533; the destination address memory 157 having a write flag
149 and a read flag 161. The operation of these write and read flags, respectively, is the same as the operation they perform in the input queue when they go to memory. entrance queue
67 (figure 2).

  
The input control circuit 145 operates as

  
interface logic 61 in the input queue
(figure 2) by responding to the signals coming from the comparators

  
151 and 153 to stop the transmission of information to

  
the output queue 29 from the input queue, or memory, or the logical unit of vectors. The comparators 151 and 153 respectively, indicate to the input control circuit 145, in the same way as the comparator 77 of the input queue of FIG. 2 indicates, that the respective memories are either full, either empty or they contain certain data.

  
The output control circuit 159 of the output queue 29 initiates a request to read either the operand memory or the destination address memory RAM 155,
157, respectively, in response to receiving a transmit instruction from the input / output panel 13 (Figure 1)

  
 <EMI ID = 60.1>

  
also to a retransmit signal on line 165. In response to signals on any of these lines, the output control circuit 159 may transmit a request to the write data signal on line 169 to the central unit.

  
 <EMI ID = 61.1>

  
line 167. for example, the data structure, part of which is in both memories, is typically transmitted on lines 171 to the input / output central 13
(figure 1). It must be remembered that the input / output 13

  
 <EMI ID = 62.1>

  
the lines 171 of the output queue 29 will direct these data structures according to the address zone received from the destination address memory here RAM 157. Thus, the peripheral unit 1, 2 or N (figure 1 ) can receive the data

  
or else, the data structure could be directed directly into the input queue of computer 11 for further processing.

  
Referring now to figure 6, we have illustrated specific logic for the recognition circuit

  
 <EMI ID = 63.1>

  
connected with a pair of input conductors in line 85. The signals on each of these conductors 173 and 175 are supplied to the input of the exclusive gate or 177 and, in addition, to a gate

  
 <EMI ID = 64.1>

  
tie 89 of AND gate 179 generates a plus-ONE count signal. while AND gate 171 on output line 91 generates a count down signal of minus ONE to binary up / down counter 65. Binary up / down counter 65 may be of the type manufactured by the Signetics Corporation and shown in their 1972 parts catalog 197 at pages 2-170. The up / down counter 65 feeds a binary count on lines 197 through

  
interface logic 61 from the input queue (Figure 2) and receives a clock signal from the interface logic circuit

  
 <EMI ID = 65.1>

  
Figure 7 illustrates the two preferred bit representations of the four characters used throughout computer 11 (Figure 1). The left data delimiter, referred to for convenience as a left paren 174, is shown

  
by a high signal on a first line and a low signal on

  
a second line, the two signals being received substantially at the same time. A right or right data delimiter 176, is represented by a high signal on the first line and a low signal on the second line, in direct opposition to the representation of the left data delimiter. A binary character 1 (178) is represented by two signals

  
Tops. A binary character 0 (171) is represented by two low signals.

  
Referring again to Figure 6, its operation to recognize whether the signals transmitted on line 85 represent

  
 <EMI ID = 66.1>

  
or a binary 1 or binary 0 character, will now be explained. Assuming as an example that the binary signal on lead 175 is 1, or high, and the binary signal on

  
 <EMI ID = 67.1>

  
 <EMI ID = 68.1>

  
signal level 0 on line 89. This signal level causes the up / down counter 65 to count plus 1. Now assuming that the binary signal on line 175 is 0 and the binary signal on line 173 is 1, representing a right par character, the output of exclusive OR gate 177 will be binary 1, so the output of AND gate 181 on line 91 will be high. The high signal level on line 91 will cause the binary up / down counter 65 to count 1 down. The count from binary up / down counter 65 is fed to interface logic 61 of the input queue

  
 <EMI ID = 69.1>

  
output is generated on each of lines 89 and 91 because the exclusive OR gate 177 does not generate an enable signal on line 191: The same situation occurs when both

  
 <EMI ID = 70.1>

  
the arrangement of areas or general format of a data file which is the basic unit of a data structure. The first area of a file is a description area. Areas that

  
 <EMI ID = 71.1>

  
zone is a termination zone. The left-most and right-most parens 20 and 219, respectively, define a file. Assuming that this file which can be thought of as a simple data structure is transmitted left to right, the opening paren is 201, and the closing paren is

  
219. The first area following the opening paren 201 is a description area 203, which is itself bounded by a pair of parens. The next zone which must follow the description zone could be an operand zone such as illustrated by zone 205, or an address zone or an operator zone.

  
The data in description area 203 will describe the type and order of presentation of the various areas that follow them. The spaces 207, 211 and 215 between the data fields
205, 209 and 213 could, for the sake of simplicity, be called "empty spaces" which allow the data zones 205, 209

  
and 213 to undergo an extension, if necessary. When these areas contract, they create more empty spaces. All these empty spaces can be used to allow later

  
to these areas to undergo an extension. The exact vehicle by which this is done will be described more fully below.

  
The last zone of each zone is a termination zone 217 which in general will not have data inside it. In other words, it is simply two characters, a left paren and a right paren. The termi-

  
 <EMI ID = 72.1>

  
characters that represent the termination code for the data or file structure. This code then, according to the convention

  
100

  
 <EMI ID = 73.1>

  
two bits to a left-to-right parallel buffer.

  
This termination zone and the termination file paren is interpreted as a file termination code by interface logic 61 of the input queue
(figure 2). When this code occurs, the output of counter 65
(figure 2) will be 0 if no error has occurred in the

  
 <EMI ID = 74.1>

  
counter 65 for the general file structure according to figure 8 will be done in the manner 121212121210. Thus, a combination of a count 0 from the counter 65 and the presence of the termination code indicates that the received data structure has no errors. If, for example, there was an error in a paren character, the counter would neither be increased nor decreased. If there was an error in a data character, the paren counter would incorrectly increase or decrease. In each case, a count other than 0 is

  
left at the time the combination code occurs. This would indicate an error by forcing the interface logic

  
in Figure 2 to respond by requesting a retransmission

  
as described above.

  
The structure of each file as shown in general in figure 8 must follow certain rules

  
syntax. These rules are:

  
(1) No 1 or 0 character can occur between

  
parents of the same face. For example, there cannot be characters between the paren of opening zone 201 and the paren

  
opening zone of the description zone 203.

  
(2) The first area of a file must be description area 203.

  
(3) The last zone of the file is always the zone

  
termination 207.

  
In this example, this zone does not have

  
of data.

  
A data area such as data area A 205

  
of Figure 8 may itself be formed from a plurality of

  
zones or marl of a plurality of files. For example, the figure

  
9 represents area A as consisting of three subfiles

  
a, b and o. The paren of opening zone 221 and the paren of

  
opening area 223 define data area A. But

  
within these parents, a plurality of what we can call

  
"vector files" may be present. Files a,

  
b, and c 225, 229 '. and 233, respectively, illustrate files

  
of vectors. These files must obviously follow the general syntax rules described for the general file according to FIG. 8. That is to say, each file has a description zone for the data zones and a termination zone. As can happen inside a file,

  
 <EMI ID = 75.1>

  
vectors in this area, if desired.

  
This stacked structure of zones within files and of vector files within zones can be understood more easily if we consider it in terms of a tree structure having nodes which represent programs or operators. As an example, suppose the following defined operation must be performed on a plurality of labels represented by the capital letters of the alphabet

  

 <EMI ID = 76.1>


  
This arithmetic combination of 14 different labels can be represented by the tree structure illustrated in figure 10.

  
The tree structure of figure 10 receives as

  
 <EMI ID = 77.1>

  
the labels A and B are fed to the add program operator at node 227; labels C and D are fed to the add program operator at node 229. The results of both operations are fed to a subtraction program operator at node 231. While this is happening, labels F and G can be fed. to another program operator <EMI ID = 78.1>

  
various preliminary operations occur, the labels K and

  
L are fed to a subtraction program operator at node 239, labels N and M are fed to another subtraction program operator at node 241, and labels 0 and

  
Q are fed to yet another subtraction program operator at node 247. The result of the operation at node
239 and the result of the operation at node 241 are fed

  
to an add operator at node 243.

  
The result of the subtraction operator node 231 and the result of the subtraction operator node 237 are fed to another add operator node 233. The result of the add operator node 243 and the subtraction operator node 247 are fed to another operator node add 245. The result of operator node add 245 is fed to the operator node.

  
subtraction 249 which is also fed to another label R. The results of the "minus" operator node 249 and the add operator node 233 are fed to another subtraction operator node 251. The result of this node is fed to

  
 <EMI ID = 79.1>

  
As is evident from this description of the tree structure, operand processing in a tree structure stream facilitates the processing of operands in a concurrent fashion. That is to say, the operations are

  
 <EMI ID = 80.1>

  
239, 241 and 247 can all occur substantially simultaneously if the appropriate operands are available.

  
This is true for all operations on another, or

  
 <EMI ID = 81.1>

  
previous operations are all available simultaneously.

  
The example of figure 10, for the sake of simplicity

  
of description and ease of comprehension considered only dyadic operations such as addition and subtraction. However, it is understood that this type of tree structure processing scheme will allow monadic and dyadic operations with the same ease. Of course, in order to use concurrent processing, a system of data processing units must be used.

  
To illustrate how the stacked file data structures according to Figures 8 and 9 implement the principles of processing tree structures, we will consider the following simple dyadic operations on four labels
(A + B) - (C + D). These operations are illustrated in the form of tree structures in figure 11. The labels A, B,

  
C and D at leaf level 255 257, 259, 261 are fed

  
at the first level of the operator nodes, the summing nodes 263 and 265. The results of this node level are fed to the next level or subtraction level 267. The result of this node 269 can be sent to another node, or program operator, or to a physical destination.

  
Each node of the tree structure, figure 11,

  
 <EMI ID = 82.1>

  
being a 271 file of subtraction nodes. This file is delimited by right and left parens, and has a first zone, which is a description zone 277 which describes the nature and the sequence of the file. In this case, P represents a program, which means that this file is a file of program operators. Since this file is an operator file, the next zone which must follow the description zone will be a zone

  
 <EMI ID = 83.1>

  
the operator code describes a subtraction operation. Since the operation is dyadic, the fields following the operator field describe the two operands that must be subtracted. These two

  
 <EMI ID = 84.1>

  
Because operands are the results of other operations, operand fields are vector files,

  
Therefore, the operands are described by the vector files 273 and 275. The area following the operand fields is a destination address field 287 indicating the destination to which the result of the subtraction operation is to be sent. The last area of the subtraction file is the 289 termination area. Empty space can occur anywhere between areas in a file. For example, within the subtraction program file ^ the empty space is shown to occur at 281, 283, and 285. It should be remembered that since the operand fields of the subtraction program file are files of vectors, blank space may also occur between areas within these files.

  
Now consider the two vector files inside the subtract program file, the file

  
vector files add 273 and the vector file add 275. These files are also structured according to the syntax rules described above. There are left file delimiting parens <EMI ID = 85.1> a description field which in this case describes the coame file being a vector file, reserving

  
 <EMI ID = 86.1>

  
operands, areas of dyadic vectors such as files
273 and 275 within a larger file such as a program file 27.-il, contain resulting areas designated by R in the figure:; 1: These resulting areas (R) Store the result of the 'dyadic operation described by this vector file if this result cannot be used

  
at the time it is generated.

  
In order to facilitate understanding, the general operation of the computer 11 according to Figure 1 will be described in relation to the simple program diagram illustrated in Figure 11, which only uses dyadic operators. For further ease of explanation and understanding, it will be assumed that the program data structures or program files are dynamic and are received by the input queue 21 (Fig. 1). It is understood, however, that the reverse order is also applicable and that the operand files can be stored in computer memories.
25 and that the program files can be fed to the computer 11 via the queue 21.

  
In order to execute the block diagram of operations according to figure 11, the computer memory will contain <EMI ID = 87.1>

  
veoters file. The area immediately preceding the termination area is a destination address area 343. It should be remembered that a space may be provided between the various areas of the program file, subtracting in such a way.

  
 <EMI ID = 88.1>

  
operands.

  
Consider now the first operand area, which is a vector file. In this particular case, an addition operation is defined. The operand zones 309 and 313 of oe

  
 <EMI ID = 89.1>

  
The zone describing the operator follows. In addition, this vector file contains a 321 results area instead of an area

  
 <EMI ID = 90.1>

  
other words, these areas are simply defined by a left paren followed by a right paren with no characters in between.

  
These operand areas remain contracted, as will be described in more detail below, until the operands are stored there.

  
The second operand area for the subtraction program file is also a vector file of the same structure as that described for the first operand area. he

  
there is a pair of operand zones 333 and 335, a results zone

  
 <EMI ID = 91.1>

  
considerable 331, 339, etc. between them.

  
The proposed structure of a program file within a computer storage has been described above which remains static in storage until an operand or file data structure arrives in the queue. waiting for input that addresses this particular program file. The structure of this program file provides a recursive mechanism that speeds up algorithm execution.

  
An alternate data structure for performing the functional flow according to Fig. 11 would be one that uses three program files instead of a single program file containing two vector files, as illustrated. Thus, the two additional vector files and the subtraction program file represent three independent program files. The :: resulting zone (R) of each vector file would be replaced by an address zone

  
destination (DA). The destination address field in both add program files would address the depro-

  
 <EMI ID = 92.1>

  
The use of this type of data structure requires that

  
the result of each operation is directed out of the computer and back to its input to arrive at the node

  
next operator. In contrast, the structure of the file

  
illustrated program eliminates the need to send the result of a vector file operation out of the processing unit and back to its input for further processing

  
To continue with the data structure shown, consider now the data files that arrive at

  
the entry queue. Suppose that the first operand that arrives in a data file, is operand A. The file that contains this operand is shown in Figure 12A as a file structure 1 under the heading "queue d. 'Entrance". The first zone of this data file is a description zone 375 which indicates that this particular zone is an operand zone containing a label. This description zone is analyzed by the zone analyzer 146

  
 <EMI ID = 93.1>

  
sets the appropriate paths to computer storage
25 for the next field 377, which is a storage address field that addresses the particular vector file to which label A. The storage address 377 will address the location in the computer storage that

  
 <EMI ID = 94.1>

  
belongs to the left or right operand area 309 or 313, respectively, of that particular vector file. The operand file that is received at the ingress queue also has a 387 termination field and may have empty spaces
381, 385 between the fields of this file.

  
Check 23 through its ROM area analyzer
146 and its subroutine library consisting of a plurality of ROMs 154, 156, 158 queries the add vector file, after it has been sent by the operand file to the input queue to determine if operand B has arrived previously and has been stored in its area 313. Since, in

  
this case, it was not, as indicated to the control by the empty operand zones 309, 313, the control memorizes the operand

  
A in the appropriate field 309. Since operand A is written to memory character by character, the operand file 309

  
is extended to fit its exact dimensions. The specifics of how the operand is actually written to memory are considered to be within the grasp of a person of average ability in this technique, and therefore will not be discussed here.

  
As a result, therefore, of the label file shown in position 1, which arrives at the input queue, the subtraction program file in the computer storage will have the label A stored in the operand area.

  
 <EMI ID = 95.1>

  
begins with left par 345, as shown in position

  
2 under the heading "store" of FIG. 12B. Since the label A is now stored in its appropriate operand zone.

  
 <EMI ID = 96.1>

  
operand zone and its operand zone which accompanies it can be completely used if strongly reduced.

  
1 Now suppose that the next operand file that arrives in the input queue 21 of computer 11 (figure 1) contains the operand D in its operand field 382, as shown in position 2 under the entry. head "input queue". In addition to the description area which communicates to the control unit the areas to follow, a memory address area 376 and an operand location area 389 are present in this operand file. The label file at position 2 of the input queue has a store input area 376 which addresses the add vector file within the subtract program file to the starting paren 346 ( position 2) under the

  
 <EMI ID = 97.1>

  
the control unit, when it sees the operator field of the vector file will activate the appropriate addition firmware in the firmware library formed by

  
 <EMI ID = 98.1>

  
that all the operands which are necessary to perform the operation are not present either in the input queue or in the memory of the computer, another firmware is made active to store the label D in the zone operand
382 of the input queue file into the appropriate operand field 351 of the add vector file, as determined by the operand location code in field 389 of the labels file to the queue of Entrance. As a result of the treaty

  
 <EMI ID = 99.1>

  
in the memorization will appear as illustrated in position 3 under the heading "memorization". That is, a label A is stored in its appropriate operand area in the first add vector file and a D label is stored in its appropriate operand area in the second add vector file.

  
Now suppose that the third operand file that is to arrive in the input queue has an operand

  
 <EMI ID = 100.1>

  
operand A. The controller recognizes, because of the description area L, that it is a label file, and therefore, the area that follows 378 is a storage address which addresses the first file of vectors containing 1 * operand A. The controller starts reading this addressed vector file! and its ROM area analyzer 146 (Fig. 4) determines from description area "V" that it is a vector file containing a program. The zone which must follow this description zone is then an operator code zone. In response to the operator zone, the zone analyzer activates the appropriate firmware from the ROM firmware library 154, 156

  
or 158 (Figure 4) and further causes label A to be read out of storage to address the appropriate ROM 125 in

  
 <EMI ID = 101.1>

  
time the B label of the input queue to address the same ROM 125 in the vector logical unit.

  
It should be remembered that the logical unit of vector is

  
 <EMI ID = 102.1>

  
at the same time, one character from each of the two operand areas. When the vector logic unit has completed its function of adding operands A and B together, the firmware determines whether the resulting area in the second vector file is full. Since in this case it is empty, it will store the result of the addition of labels A and B in

  
the appropriate resulting area in the first vector file. As a result of the third operand file appearing in the input queue, the subtract program file

  
 <EMI ID = 103.1>

  
operand zones that the labels A and B occupied, the zones
355 and 359 respectively are now empty, since they

  
 <EMI ID = 104.1>

  
The caption D cessas operand of the second vector file is also present.

  
The only operand missing at this point is the label C. Now suppose that an operand file arrives containing

  
 <EMI ID = 105.1>

  
go to the second vector file. The control will then read this vector file and set the logical unit of vectors to perform the operation required by the control area.

  
operator code and will start adding C and D in the same way as described for operands A and B. However, upon completion of this operation, since the resulting field 369 of the first add program subfile is fulfilled,

  
in addition to memorizing the result of the summation of the labels

  
C and D in the resulting area 367, another mieroprogram

  
is chosen which conditions the logical unit of vector according to the subtraction operator code field in the subtraction program file. This firmware causes the control unit to power the vector logic unit in a characteristic way, the result of the A + summation

  
 <EMI ID = 106.1>

  
results are subtracted.

  
While this operation is being performed, the destination area 343 of the subtraction program file is fed to the destination address memory 157 of the output queue 29 (Figure 5). This destination address field 375 as shown in Figure 12B under the heading "output queue, at position 1, is a destination vector file which presents as its first.

  
 <EMI ID = 107.1>

  
ple identifies the file as being a file of labels or operands, an address zone following it, and a location zone.

  
 <EMI ID = 108.1>

  
operand, such as field 387, may follow the operand location field. Since the syntax of a file structure must be followed, the destination address file ends with a 391 termination field. The destination address field, since it is a vector file, may also have a space. void between the areas within it, such as empty space

  
 <EMI ID = 109.1>

  
no storage inside and is under firm

  
 <EMI ID = 110.1>

  
result of the subtraction of the labels C + D, of the labels A + D, this result as shown in position 1 under the heading tSte

  
 <EMI ID = 111.1>

  
operand 155 of the output queue (Figure 5).

  
The output control 159 of the output queue 29 (Figure 5) transmits a message in a form which is substantially the same as the form which is received at the input queue as shown in Figure 12B under

  
 <EMI ID = 112.1>

  
sant a specific region in the storage of the addressed processing unit. The area following the address area is an operand location area 385, if necessary. The area following the operand location area is the resulting area 393. The operand file exiting the

  
 <EMI ID = 113.1>

  
To sum up, the above functional description makes it clear that the computer according to figure 1 only performs an operation after two data structures have been articulated, one being a program structure, the other being a program structure. operand structure, In the case of the specific example., the program structure in the form of program files is stored in the computer memory while awaiting the arrival of the operand structures or operand files which address the files of appropriate programs, and so the computer control unit will execute the designated program. Therefore, this data actuated operation provides a digital data processing unit with superior emulation possibilities,

  
 <EMI ID = 114.1>

  
a multiprocessing computer, each of the functional blocks having its function defined by the program files stored in their respective memory region. Since the arrival of operand files at the input of a specific data central processing unit produces the flow of the addressed program when such a computer is used as a

  
functional block in a multiprocessing computer .. a pilot control program or an extended interrupting system which would regulate the interaction of processing units in the multiprocessing computer would not be required. The above description makes it clear that the computer of Fig. 1 exhibits improved emulation capabilities because the four character vocabulary in a character serial computer facilitates a data structure of variable field length. These data structures are easily checked for errors by the use of simple logic circuits on the data flow paths.

  
It is of course, of course, that the above description relates only to a preferred embodiment of the invention and that numerous modifications can be made without departing from the principles and the scope of the invention.

CLAIMS.

  
1. Improvement brought to the binary data processing unit system having storage means and means forming an input circuit, this improvement being a recursive mechanism, and comprising:

  
data structures stored in said storage means, said data structures representing program data organized in a hierarchical stacked order according to program data files composed of operand areas and of a resulting area associated with a control area description of particular program, and of the data structures received by said input circuits, said data structures representing operand data organized in a hierarchical stacked order, said data structures causing the addressing of some of the data structures in said storage means.


    

Claims (1)

2. Le perfectionnement selon la revendication 1, dans lequel un fichier de données de programme présente au moins une zone opérande et une zone d'adresse de destination associée avec une zone de description de programme, la dite zone opérande ayant un fichier de vecteurs composé d'au moins une zone opérande, une zone résultante, et une zone de description de vecteurs. 2. The improvement according to claim 1, wherein a program data file has at least one operand area and a destination address area associated with a program description area, said operand area having a vector file made up of. at least one operand zone, a resulting zone, and a vector description zone. 3. Le perfectionnement selon la revendication 2, dans lequel les zones opérandes et la zone résultante du fichier de vecteurs sont contractées lorsqu'elles sont vides jusqu'à subir l'extension lorsqu'elles contiennent des données écrites. 4. Le perfectionnement selon la revendication 1, dans lequel les zones opérandes et les zones résultantes sont contractées lorsqu'elles sont vides jusqu'à subir l'extension en recevant à leur intérieur des données écrites. 3. The improvement according to claim 2, in which the operand areas and the resulting area of the vector file are contracted when they are empty until they are extended when they contain written data. 4. The improvement according to claim 1, wherein the operand areas and the resulting areas are contracted when they are empty until undergoing the extension by receiving written data inside them. 5. Perfectionnement dans un système d'unité de traitement de données binaires ayant des moyens de mémorisation et des <EMI ID=115.1> 5. Development in a binary data processing unit system having storage means and <EMI ID = 115.1> mécanisme récursif, et comprenant : recursive mechanism, and comprising: 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 organisées dans un ordre empilé hierarchique selon les fichiers de données de programme ayant le format suivant : data structures stored in said storage means, said data structures representing data organized in a hierarchical stacked order according to the program data files having the following format: <EMI ID=116.1> <EMI ID = 116.1> où toutes les régions délimités par des parens à l'intérieur where all the regions bounded by relatives inside des parens sont des zones, P représentant une zone de description de programme, OP représentant une zone opératoire, A B, et C représentant des zones opérandes, V représentant une zone de description de vecteurs, R représentant une zone résultante, parens are zones, P representing a program description zone, OP representing an operating zone, A B, and C representing operand zones, V representing a vector description zone, R representing a resulting zone, et DA représentant une zone d'adresse de destination. and DA representing a destination address field. <EMI ID=117.1> <EMI ID = 117.1> lorsqu'elles sont vides jusqu'à ce qu'elles subissent une extension lorsqu'elles reçoivent des données écrites. when they are empty until they are extended when they receive written data. 7. Perfectionnement dans un système d'unité de traitement de données binaires et des moyens formant circuit d'entrée, ce perfectionnement étant un mécanisme récursif, et comprenant : 7. Improvement in a binary data processing unit system and input circuit means, this improvement being a recursive mechanism, and comprising: des structures de données mémorisées dans les dits moyens de mémorisation, les dites structures de données se présentant des données de programme organisées dans un ordre empilé hiérarchique selon un fiohier de données de programme ayant le format suivant : data structures stored in said storage means, said data structures having program data organized in a hierarchical stacked order according to a program data file having the following format: <EMI ID=118.1> <EMI ID = 118.1> où toutes les régions délimitées par les parens à l'intérieur des parens sont des zones, P représentant une zone de descrip- where all the regions delimited by the parens inside the parens are zones, P representing a zone of descrip- <EMI ID=119.1> <EMI ID = 119.1> représentant des zones opérandes, V représentant une zone de description de vecteurs, R représentant une zone résultante, et DA représentant une zone d'adresse de destination, et representing operand areas, V representing a vector description area, R representing a resulting area, and DA representing a destination address area, and les structures de données reçues par les dits moyens the data structures received by said means formant circuit d'entrée représentant des données opérandes organisées dans un ordre empilé hiérarchique selon des fichiers opérandes composés d'au moins une zone opérande et une zone d'adresse de mémorisation assooiée avec une zone opérande de description particulière. forming an input circuit representing operand data organized in a hierarchical stacked order according to operand files composed of at least one operand area and a storage address area associated with a particular description operand area. 8. Le perfectionnement selon la revendication 7, dans 8. The improvement according to claim 7, in lequel les zones opérandes et la zone résultante dans les dits which the operand areas and the resulting area in the said moyens de mémorisation sont contractées lorsqu'elles sont vides jusqu'à ce qu'elles subissent une extension lorsqu'elles storage means are contracted when empty until they undergo expansion when they are reçoivent des données écrites, receive written data,
BE153240A 1974-02-28 1975-02-11 STRUCTURED DATA FILES IN A DATA-POWERED DIGITAL PROCESSING UNIT BE825395A (en)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US44691274A 1974-02-28 1974-02-28
US44703474A 1974-02-28 1974-02-28
US44691174A 1974-02-28 1974-02-28
US447015A US3886522A (en) 1974-02-28 1974-02-28 Vocabulary and error checking scheme for a character-serial digital data processor
US05/447,016 US4156903A (en) 1974-02-28 1974-02-28 Data driven digital data processor
US05/447,040 US3978452A (en) 1974-02-28 1974-02-28 System and method for concurrent and pipeline processing employing a data driven network
US50586974A 1974-09-13 1974-09-13
US50585174A 1974-09-13 1974-09-13
US50585274A 1974-09-13 1974-09-13
US50586874A 1974-09-13 1974-09-13
US50585374A 1974-09-13 1974-09-13

Publications (1)

Publication Number Publication Date
BE825395A true BE825395A (en) 1975-05-29

Family

ID=27582795

Family Applications (5)

Application Number Title Priority Date Filing Date
BE153237A BE825392A (en) 1974-02-28 1975-02-11 DIGITAL DATA PROCESSING UNIT POWERED BY DATA
BE153240A BE825395A (en) 1974-02-28 1975-02-11 STRUCTURED DATA FILES IN A DATA-POWERED DIGITAL PROCESSING UNIT
BE153241A BE825396A (en) 1974-02-28 1975-02-11 RECURRING MECHANISM IN A DIGITAL DATA PROCESSING UNIT
BE153238A BE825393A (en) 1974-02-28 1975-02-11 PROCEDURE FOR ERROR AND VOCABULARY VERIFICATION FOR A SERIAL DIGITAL PROCESSING UNIT WITH CHARACTERS
BE153239A BE825394A (en) 1974-02-28 1975-02-11 DATA STRUCTURES STACKED IN A DATA-POWERED DIGITAL DATA PROCESSING UNIT

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BE153237A BE825392A (en) 1974-02-28 1975-02-11 DIGITAL DATA PROCESSING UNIT POWERED BY DATA

Family Applications After (3)

Application Number Title Priority Date Filing Date
BE153241A BE825396A (en) 1974-02-28 1975-02-11 RECURRING MECHANISM IN A DIGITAL DATA PROCESSING UNIT
BE153238A BE825393A (en) 1974-02-28 1975-02-11 PROCEDURE FOR ERROR AND VOCABULARY VERIFICATION FOR A SERIAL DIGITAL PROCESSING UNIT WITH CHARACTERS
BE153239A BE825394A (en) 1974-02-28 1975-02-11 DATA STRUCTURES STACKED IN A DATA-POWERED DIGITAL DATA PROCESSING UNIT

Country Status (7)

Country Link
BE (5) BE825392A (en)
DK (1) DK687074A (en)
IE (1) IE43017B1 (en)
IT (1) IT1043954B (en)
NL (1) NL7501391A (en)
NO (1) NO750303L (en)
SE (5) SE413161B (en)

Also Published As

Publication number Publication date
SE7501538L (en) 1975-08-29
IE43017L (en) 1975-08-28
IE43017B1 (en) 1980-12-03
SE7501534L (en) 1975-08-29
SE7501537L (en) 1975-08-29
SE410360B (en) 1979-10-08
SE413161B (en) 1980-04-21
BE825393A (en) 1975-05-29
SE413160B (en) 1980-04-21
SE410528B (en) 1979-10-15
IT1043954B (en) 1980-02-29
AU7667174A (en) 1976-06-24
NO750303L (en) 1975-08-29
BE825396A (en) 1975-05-29
SE7501535L (en) 1975-08-29
NL7501391A (en) 1975-09-01
SE410361B (en) 1979-10-08
SE7501536L (en) 1975-08-29
BE825392A (en) 1975-05-29
DK687074A (en) 1975-10-27
BE825394A (en) 1975-05-29

Similar Documents

Publication Publication Date Title
US4156910A (en) Nested data structures in a data driven digital data processor
US4156903A (en) Data driven digital data processor
EP0029131B1 (en) Control method for allocating resources in a simultaneously operating multiprocessor system
FR2480460A1 (en) DEVICE FOR TRANSFERRING INFORMATION BETWEEN MAIN UNITS OF A DATA PROCESSING SYSTEM AND A CENTRAL SUBSYSTEM
FR2480458A1 (en) DEVICE FOR TRANSFERRING INFORMATION BETWEEN UNITS OF A DATA PROCESSING SYSTEM
FR2598835A1 (en) DATA STACK BLOCK STACKED ON A MICROPROCESSOR CHIP
FR2500187A1 (en) CENTRAL DATA PROCESSING UNIT
EP0059018A1 (en) Multiprocessor with dynamic task assignment in multiprogramming mode and its use
FR2561009A1 (en) DATA PROCESSING SYSTEMS HAVING AT LEAST TWO DATA PROCESSING UNITS HAVING EACH ACCESS TO THE SAME DATA
FR2490365A1 (en) DEVICE FOR VISUALIZING DATA IN WRITINGS OF DIFFERENT NATURE SUCH AS ARABIC AND LATIN SCRIPTURES
FR2539260A1 (en) DATA TRANSMISSION SYSTEM
FR2645989A1 (en) MULTIFUNCTION COUPLER BETWEEN A CENTRAL COMPUTER UNIT AND THE DIFFERENT PERIPHERAL ORGANS OF THE SAME
CN110457038A (en) Card display methods, device, equipment and the storage medium of attached application end
US4156909A (en) Structured data files in a data driven digital data processor
EP0027851A1 (en) System for controlling the duration of the time interval between data blocks in a computer-to-computer transmission system
US4156908A (en) Cursive mechanism in a data driven digital data processor
US3886522A (en) Vocabulary and error checking scheme for a character-serial digital data processor
JPS60136870A (en) Vector processor
BE825395A (en) STRUCTURED DATA FILES IN A DATA-POWERED DIGITAL PROCESSING UNIT
FR2475763A1 (en) DIGITAL PROCESSOR WITH PIPELINE STRUCTURE
EP0555138A1 (en) Method, system and processor for communications between a plurality of equipment subsystems
EP0011540A1 (en) Input-output interface device between a data switcher and a plurality of transmission lines
EP0082903A1 (en) Control unit connectable to a pair of memories having different speeds
EP0191999B1 (en) Method of addressing in a communication network between a message-sending station and at least one receiving station, and apparatus for carrying out the method
FR2484668A1 (en) METHOD AND APPARATUS FOR TRANSFERRING EXTERNAL INPUT AND OUTPUT DATA TO A MICROPROCESSOR SYSTEM