FR2464521A1 - Systeme de machine a calculer dans lequel la memoire de programme peut etre parcourue et des donnees qui n'appartiennent pas a une instruction sont detectees separement - Google Patents

Systeme de machine a calculer dans lequel la memoire de programme peut etre parcourue et des donnees qui n'appartiennent pas a une instruction sont detectees separement Download PDF

Info

Publication number
FR2464521A1
FR2464521A1 FR8018382A FR8018382A FR2464521A1 FR 2464521 A1 FR2464521 A1 FR 2464521A1 FR 8018382 A FR8018382 A FR 8018382A FR 8018382 A FR8018382 A FR 8018382A FR 2464521 A1 FR2464521 A1 FR 2464521A1
Authority
FR
France
Prior art keywords
address
instruction
program
block
machine
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
FR8018382A
Other languages
English (en)
Other versions
FR2464521B1 (fr
Inventor
Berend Theodorus J Bruinshorst
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of FR2464521A1 publication Critical patent/FR2464521A1/fr
Application granted granted Critical
Publication of FR2464521B1 publication Critical patent/FR2464521B1/fr
Granted legal-status Critical Current

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Calculators And Similar Devices (AREA)
  • Microcomputers (AREA)

Abstract

UN SYSTEME DE MACHINE A CALCULER COMPORTE UNE MEMOIRE DE PROGRAMME POUR DES INSTRUCTIONS MACHINE A EXECUTER ET POUR D'AUTRES DONNEES N'APPARTENANT PAS A TELLE INSTRUCTION MACHINE A EXECUTER, AINSI QU'UN CLAVIER DE TOUCHES, UN DISPOSITIF DE VISUALISATION ET UN PROCESSEUR. DANS LA MEMOIRE DE PROGRAMME, UNE CERTAINE QUANTITE DE CES AUTRES DONNEES EST PRECEDEE D'UN CODE SPECIFIQUE PROVENANT D'UN ENSEMBLE PREDETERMINE DE CODE MACHINE A NE PAS EXECUTER PLUS UNE INDICATION ATTENANTE QUI INDIQUE LA DISTANCE D'ADRESSE ENTRE LE DEBUT ET LA FIN DE LA QUANTITE EN QUESTION D'AUTRES DONNEES. UN DECODEUR REPONDANT DE MANIERE SPECIFIQUE A CET ENSEMBLE DE CODE MACHINE EST CONNECTE AU REGISTRE D'INSTRUCTION DE MEME QU'UN DETECTEUR DE DISTANCE D'ADRESSE. ENSEMBLE, CES ELEMENTS PRODUISENT UN SIGNAL POUR TRAITER LA QUANTITE D'AUTRES DONNEES D'UNE MANIERE ADEQUATE ET PLUS SPECIALEMENT COMME D'AUTRES INSTRUCTIONS MACHINE. PLUS SPECIALEMENT, DANS LA PHASE DE CONCEPTION D'UN PROGRAMME AUCUNE MEMOIRE DE TEXTE DE GRANDE CAPACITE N'EST NECESSAIRE PARCE QUE TOUTES LES INFORMATIONS PERTINENTES PEUVENT ETRE STOCKEES DANS UNE MEMOIRE DE PROGRAMME DE CAPACITE LIMITEE PAR LE FAIT QUE LE PROGRAMME MACHINE PRESENTE UNE NOTATION TRES COMPACTE. APPLICATION AUX MACHINES A CALCULER.

Description

"système de machine à calculer dans lequel la mémoire de
programme peut Stre parcourue et des données qui n'appar-
tiennent pas à une oetruction sont détectées séparément."
L'invention concerne un système de machine à calculer comportant:
a. une mémoire de programme présentant une séquence d'em-
placement d'adresses pour le stockage de codes machi-
nes; b. un clavier de touches; c. un dispositif de visualisation pour au moins une ligne de caractères; d. un processeur comportant au moins:
dl. un registre d'adresse pour la mémoire de pro-
gramme comportant une entrée d'incrémenta-
tion; d2. un registre d'instruction et d'autres moyis de stockage qui ensemble ont une longueur prédéterminée pour stocker une instruction
ayant au maximum cette longueur prédétermi-
née, extraite de la mémoire de programme; d3. un premier décodeur d'instruction connecté au registre d'instruction;
d4. un élément d'exécution pour exécuter un trai-
tement d'information sous la commande d'un signal du premier décodeur d'instruction, lesdits éléments étant connectés par des liaisons d'informations pour des signaux de
données et des signaux de commande.
Le dispositif de visualisation peut comprendre
une imprimante ou un tube à rayons cathodiques, ou un élé-
ment d'affichage avec des sources lumineuses au plasma pour une ou plusieurs lignes de caractères. Le processeur
peut comporter une unité arithmétique et logique et d'au-
tres dispositifs pour le traitement et l'expédition (aiil-
lage) de données. Des programmes sont amenés au système de
machine à calculer le plus souvent sous la forme de "pro-
grammes source* par exemple par l'intermédiaire du clavier de touches. Dans le programme source, une instruction
(source) comporte un groupe de, par exemple quatrecarac-
t
tères qui la symbolisent, le plus souvent une autre in-
dication telle que le nom d'un ou de plusieurs registres, dont une donnée pour l'instruction à exécuter doit 8tre extraite, ou bien o le résultat du traitement doit 8tre stocké, la valeur d'un paramètre à utiliser ou une autre donnée. Ceci rend l'instruction facilement identifiable pour le programmeur. Une instruction source peut ttre
adressée par le numéro de ligne associé d'une visualisa-
tien linéaire de cette instruction et de cette façon, une modification du programme est possible. L'inconvénient de ladite conformation est la redondance importante, parce
que, par exemple, il peut arriver que jusqu'à vingt ca-
ractères alphanumériques soient nécessaires pour repr6-
semter une seule instruction. Par l'intermédiaire d'un élément de traductien (assembleur), le programme source
est pour cette raison converti en un code dit objet.
Dans ce cas des adresses symboliques (numéros de ligne)
sont converties en adresses proprement dites de la mémoi-
re de programme. L'élément de traduction peut Otre conti-
muellement présent dans le système de machine à calculer.
Il peut aussi n'y Stre connecté que pour traduire une
seule fois le programme source, de sorte qu'il ne cons-
titue pas un élément indispensable de l'invention. Ledit
code obJet comporte une séquence d'instructions machine.
Une instruction machine contient un code opération ou. co-
de machine par lequel l'instruction machine est identi-
fiée. Chaque code machine différent est pour ainsi dire symbolisé par un autre numéro. Un tel numéro est citMnu
dans un greupe de, par exemple, huit chiffres binaires.
De plus, l'instruction machine peut, à c8té dudit numéro, A nouveau comporter une donnée ou une indication d'une
adresse de mémoire o des données spéciales sont stockes.
Ces données spéciales sont, par exemple, un texte, un sous-programme et, dans certains cas, des données o des
adresses. Le code objet peut ainsi 8tre parfois sensible-
ment plus compact que le programme source et son stocka-
ge prendre moins de place dans la mémoire. On fait
l'hypethèse ci-après que le programme machine, est dé-
3à présent dans la mémoire de programme en vue d'une
utilisation prechaine. Il est dans de nombreux cas né-
cessaire que le programme machine soit accessible au
programmeur, par exemple pour que celui-ci puisse le mo-
difier d'une manière déterminée, ou puisse en prélever
des informations déterminées, sans toutefois l'exécuter.
Or, un programme machine contient, entre autres pour son exécution, à coté des instructions elles-m8mes (avec -les autres infornations prévues dans les instructions),
ausi de l'information tombant en dehors des instruc-
tions propreument dites, comme du texte (commentaire ou
ltres), des adresses (par exemple des adresses initia-
les d'une quantité de données ou des adresses de saut)
et des donnes. Pendant l'exécution du programme machi-
ne, ces données sont traitées d'une autre sanière que
les instructions machine, parce que la dernière instruc-
tion pour use telle quantité d'autres données est tou-
jours une instruction d'aiguillage par laquelle une
adresse spécifique (ou plusieurs adresses) sont indi-
quées dans la mémoire; Lors de l'appel d'une telle adresse, la machine à calculer est donc déjà réglée d'avaace de manière à traiter l'information arrivant de la mémoire de pregramme de la façon correcte. Lors de la conception d'un programme, il est cependant souvent
wantageux d'adresser directement la mémoire de program-
ne, auquel cas, par exemple, les adresses défilent les
unes dà la suite des autres. Il peut alors parfois ar-
river qu'une non-instruction soit décodée, ce qui est inadmissible. Il convient de noter en outre que dans le programme source, ce problème n'existe pas, parce que
l'adressage peut dans ce cas s'effectuer au moyen du nu-
nmro de ligne.
L'invention a pour but, dans un systèmede iachL-
ne à calculer décrit plus haut, de mettre en oeuvre des noyens simples pour empêcher que les données précitées qui n'appartiennent pas à une intruction nachine soient 4.
décodées par le décodeur d'instruction comme une ins-
truction machine à exécuter, de telle sorte que, notas-
ment pendant la phase de conception d'un programse, el-
les puissent Otre sollicitées d'une autre manière par le programmeur, et par ailleurs, que pour le décodage
d'un code d'instruction à *exécuter, le registre d'adres-
se de la mémoire de programme soit aussi réglé touJours sans erreur sur l'adresse, par exemuple l'adresse de code opération, d*une instruction machine, ce qui élimine la nécessité de la présence permanente du programme source dans une mémoire de grande capacité. L'invention réalise ce but par le fait qu'elle est caractérisée en ce qu'est
également présent: -
d5 um deuxième décodeur d'instruction pouvant Stre couplé au registre d'instruction pour,
sous la commande d'un ensenble de code ma-
chine prédéterminé appliquer ua signal d'ac-
tivation à une entrée d'activation de
d6 un ditecteur de distance d'adresse qui con.
vient peur détecter une distance d'adresse
avec u domaine de valeur dont la limite su-
périeure contient au moins le contenu maxi-
aux d'ume instruction, ce détecteur de dis-
tance d'adresse étant pourvu de premiers no-
yens pour recevoir dans la mémoire de progm-
ne un signal séparé d'une première distance d'adresse appaibnant, pour le code machine en question, audit ensemble de code et ensui& te produire un premier signal de comande,
des seconds moyens pour retenir dans la mémai-
re de programe une distance d'adresse relati-
ve pareourue après ledit code machine et,
lorsque ladite distance d'adresse est attein-
te, produire un signal de désactivation et faire cesser ledit premier signal de commande,
étant entendu que ledit premier signal de com-
mande est à mime de piloter le processeur dans un mode non-actif pour des informations provenant de la mémoire de programme après ledit signal séparé. Un tel détecteur de
distance d'adresse peut Otre un petit comp-
teur et le signal d'activation peut Otre dérivé par un
simple décodage d'un ou de plusieurs codes machine réser-
vés*. Le programme machine contient donc maintenant une séquence d'informations, par exemple des bytes (mots) d'information, étant entendu qu'aucune autre mesure que
o l'adjonction de ces codes machine réservés n'est néces-
saire pour indiquer qu'un fragment d'information se rap-
porte à une partie d'instruction ou à une partie de non-
instruction. Dans ce cas également le programme machine
reste donc noté de manière très compacte. Par l'adJonc-
tien conforme à l'invention, le programme machine peut contenir pour ainsi dire des ieudo-instructions dont la longueur peut avoir des valeurs maximum très grandes et
qui donc, pourvu qu'elles soient atteintes par l'inter-
médiaire du code pseudo-opération associé, ne sont jamais
décodées comme des instructions machine Uvraies". La ca-
pacité de mémoire supplémentaire nécessaire à cet effet
n'est cependant que limitée.
Le traitement d'une instruction comprend plu-
sieurs phases: 1) l'instruction est extraite par lecture de la mémoire; 2) le code opération est décodé;
3) ceci indique ce que contient toute l'infor-
mation de l'instruction; N 4) l'instruction est exécutée (a) ou visualisée sous la forme de canrctères (b) ou, après une
retraduction en une instruction source, vism-
lisée sous forme de caractères (c), ou modi-
fiée (d); 5) l'instruction est éventuellement réinscrite
dans la mémoire, à une autre alresse.
Pour le traitement dans un mode "non-instruc-
tion", les éléments 2), 3), 4) précités sont donc toujours omis. La modification peut s'effectuer d'une
manière spécifique sous la commande d'un élément spéci-
fique de l'ensemble de code machine prédéterminé pour les données contenues dans une instruction normale ainsi que pour celles qui ne sont pas contenues dans une telle
instruction normale. Belon le mode de commande prési-
dant au déroulement du programme, le système choisira,
sous le point 4), l'opération a), b), c) ou d).
Il est avantageux qu'une mémoire tampon premier
entré - premier sorti (FIFO0) soit présente avec une en-
trée qui est connectée à une sortie de la mémoire de programme, et une entrée de charge pour recevoir ledit premier signal de commande pour chaque adresse de la
mémoire de programme. Une quantité appréciable de don-
nées peut ainsi Otre rapidement extraite de la mémoire
de programme, ce qui peut, par exemple, Otre très avan-
tageux pour une translation commune. Une autre utilisa-
tion d'un tel tampon peut résider dans le fait qu'il est
encore possible de rendre invalide une détection éven-
tuellement temporaire d'un élément de l'ensemble du code machine prédéterminé si, lors d'un examen plus poussé, il s'avérait qu'elle concerne, par exemple, un caractère de données. Ceci peut se produire lorsque la machine pénètre dans une instruction dite pseudo-instruction quelque part 'au milieu' de celle-ci. Le tampon premier
entré - premier sorti peut 8tre présent en tant que com-
posant spécifique. Il est ausa possible de réaliser un tampon premier entré - premier sorti dan la mémoire de programme au moyen d'une adresse initiale (pointeur) et
d'une adresse finale (en fonctionnement) qui sont sto-
ckées dans deux positions de registre.
Il est avantageux que ledit deuxième décodeur
d'instruction soit pourvu d'une première sortie de si-
gnaux pour, sous la commande d'un premier code mazhine spécifique appartenant audit ensemble de code machine prédéterminé, en coopération avec ledit [remier signal de
commande, indiquer un mot extrait par lecture de la mémoi-
re de programme comme une donnée d'adresse. Ainsi, dans un mode de retouchage (editeur) du programme, toutes les adresses détectées peuvent ttre retouchées, par exemple modifiées d'une distance d'adresse fixe, lorsqu'une partie
de programme est déplacée de cette mBme distance d'adires-
se dans une opération de translation.
Il est avantageux que ledit deuxième d6écodeur dVinstruction soit pourvu d'une deuxième sortie de signaux
pour, sous la commande d'un deuxième code machine spécifi-
que appartenant audit ensemble de code machine prédétermi-
né, en coopération avec ledit premier signal de commande, identifier un mot extrait par lecture de la mémoire de pregrame commae une donnée. Pour une opération de visua- lisation (lintage), les données ne sont ainsi pas décodée
comme intructions, mais visualisées comme donrées propre-
menat dites et en outre, elles ne sont pas soumises au trai-
tement d'adresse décrit plus haut.
Il est avantageux que ledit deuxième décodeur d'instruction soit pourvu d'une troisième sortie de signaux
peur, sous la commande d'un troisième code machine spéci-
fique appartenant audit ensemble de code machine prédéter-
miné, en coopération avec ledit premier signal de comman-
de, identifier un mot extrait par lecture de la mémoire de programme comme une donnée de texte. Pour ladite opération de visualisation, les données de texte ne sont pas non
plus décodées commae instructions ai traitées comme adreses.
La visualisation du texte peut avantageusement s'effectuer
3Q en caractères alphanumériques, la visualisation des don-
nées proprement dites s'effectuant souvent mieux sous la
ferme de caractères hexadécimaux.
Il *est antageux que ledit buxième décodeur d'is-
truction soit pourvu d'une quatrième sortie de signaux
pour, sous la comande d'un quatrième code machine spécifi-
que appartenant audit ensemble de code machine prédétermi-
né, en coopération avec ledit premier signal de commande, identifier un mot extrait par lecture de la mémoire de programme come étant une donnée de titre. On pout ainsi détecter chaque fois facilement l'apparition d'un titre, de sorte que, par exemple, un relevé du contenu d'une mémnoire de programme peut Stre visualisé ou un titre peut
être utilisé comme commentaire.
Il est avantageux que ledit signal de d6sacti-
vation fonctionne comme una premier signal d'arr8t pour ledit registre d'adresse et que ledit clavier de touches soit pourvu de quatrièmes moyens (par exemple une barre
d'espacement) pour, au moyen d'un deuxième signal de com-
mande, rendre inactif ledit premier signal d'arrêt. On peut ainsi appeler chaque fois une quantité suivante de
données (instruction machine habituelle ou pseudo-instmo-
tion machine), par exemple en vue de la qualiser sur un tube I rayons cathodiques, après quoi le programmeur peut prendre suffisament de teups pour une décision parfois
compliquée (par exemple ue modification ou une transla-
tion). Dans un cas simple, chaque pseudo-instruction peut, par exemple, Stre visualisée sur une nouvelle ligme;
dans un mode compliqué chaque instruction machine (tuu-
tefois uniquement pour la visualisation) peut être re-
traduite en l'instruction source associée.
Il est avantageux que ledit clavier de touches
soit pourvu de cinquièmes moyens pour rendre continuel-
lement inactif ledit premier signal d'arrêt au moyen
d'un troisième signal de commande et que des moyens cou-
parateurs d'adresses soient présents pour, lorsqu'une adresse finale est atteinte par les registres d'adresse,
3 faire cesser ledit troisième signal de commande et pro-
duire un deuxième signal d'arrêt pour le registre d'adres-
se. Un secteur du programme peut ainsi Stre traité, par exemple visualisé de la mime manière que celle décrite plus haut. Un autre mode de traitement consiste, pour une translation de la paLie du programme, & retoucher
de manière correspondante toutes les adresses.
L'invention sera expliquée ci-après avec réf6-
rence aux dessins annexés. L'invention sera décrite no-
tamment avec référence à un microprocesseur connu et à un
système de développement pouvant 8tre obtenu pour ce mi-
croprocesseur. Finalement, plusieurs modes d'utilisation avantageux d'un système de machine à calculer conforme à
l'invention seront expliqués.
Aux dessins annexés; -
la Fig. 1 et un schéma synoptique d'un micropro-
cesseur connu;
la Fig. 2 illustre un s*ème de machine à calcu-
ler développé conformément à l'inention;
la Fig. 3 illustre d'autres détails dudit déve-
loppement; les Fig. 4a et 4b illustrent deux diagrammes de temps; la Fig. 5 illustre un exemple de programme à utiliser dans un système de machine à calculer et traité selon un procédé d'utilisation conforme à l'invention; la Fig. 6 illustre une deuxième représentation de ce mtme programmee;
la Fig. 7 illustre un tableau de marche d'un mo-
de de fonctionnement pour identifier les adresses appe-
lées;
la Fig. 8 illustre un tableau de marche d'un mo-
de de fonctionnement pour visualiser une partie de pro-
gramme conformément à la séquence d'adresse; les Fig. 9a, 9b et 9c illustrent un tableau de marche d'un mode de fonctionnement pour retoucher les adresses apparaissant dans une partie de programme au moyen d'un décalage prédéterminé;
les Fig. loa et lob illustrent un tableau de mar-
che d'un mode de fonctionnement pour visualiser un secteur
du programme.
DESCRIPTION DETAIT.T. DE L'INVENTION.
L'invention peut être utilisée dans un système de machine.à calculer de grandeur quelconque. Pour plus de simplicité, l'invention sera décrite appliquée à un -10- système à zicroprocesseurO La figure 1 est un schéima synoptique d'un microprocesseur connu, à savoir le microprocesseur bipolaire Signetics 2650, tel qu'il est représenté dans le livre de mime nom qui est édité par le fabricant Signetics Corporation, 811 East Arques
Av. Sunnyvale, Californie, 1975 notamment à la figure 1.
Cette figure a pour but de procurer un cadre de princi-
pe pour la réalisation de l'invention décrite ci-après
dans l'entourage de ce microprocesseur. Dans le cir-
IO cuit, les chiffres identifient les trajets de données à
8 bits ainsi que les trajets d'adresse à 13 et à 15 bits.
Les connexions indiquées par "1" ou par "x' font partie de la ligne omnibus de commande. Les autres conducteurs de cette ligne omnibus de commande ne sont pas indiqués pour plus de simplicité. La connexion 200 est une ligne omnibus de données bidirectionnelle à 8 bits à laquelle le registre 202 est connecté. La ligne entrante 204 est connectée au registre d'instruction à 8 bits 206, au registre de maintien à 8 bits 208 et à une entrée à 8 bits de l'additionneur d'adresses 210. Ce dernier opère
sur une largeur de 13 bits. Un signal d'interruption pro-
venant de l'extérieur entarupt request") peut appaftre
sur la ligne 214, et la ligne 216 est destinée à un si-
gnal d' autorisation-d'interruption ("interrupt-acknowled-
ge"). De plus, le microprocesseur comporte une connexion, non représentée ici, destinée à recevoir un signal de pause qui peut faire arriter le microprocesseur à la fin de l'instruction en cours. Il peut entretenir pendant un temps indéterminé le traitement des données et 8tre utilisé pour réaliser un accès direct à la mémoire 6irect memory access ou DMA). En ce qui concerne les lignes 214 et 216, le bloc 212 contient la logique d'interruption.- e bloc peut en outre envoyer un signal à la logique de décodage et de commande dans le bloc 218. Les lignes 220 sont les lignes de commande d'entrée/ sortie. Les signaux présents sur ces lignes coopèrent avec la logique 222 et avec le bloc 218. La ligne 224 est une ligne d'impulsion d'horloge extérieure, dont -11- l'impulsion d'horloge est transformée en des signaux
d'horloge secondaires pour le bloc 218 dans la logi-
que génératrice de temps 226. Les lignes de comman-
de partant du bloc 218 et allant aux autres éléments du circuit ne sont pas représentées. Une deuxième entrée de 13 bits de largeur du compteur d'adresses 210 est connectée à la ligne omnibus d'adresse 228 dont la connexion extérieure ne convient que pour émettre des sifaux. la sortie de l'additionneur d'adresses 210 est connectée au registre d'opérande
d'adresse de quinze bits 230; ceci indique donc.
l'adresse ou un opérande ou des données proprement dites sont stockées. La sortie du registre 230 est connectée au registre d'adresse d'instruction 232 et à l'élément de commande de sortie 234: ainsi peut
Stre signalée l'adresse oû une instruction est sto-
ckée. La sortie du registre 232 est connectée à l'4-
l1nent de cosmmande de sortie 234 et normalement l'a-
dresse d*opdrande y est aussi menée. Ce n'est que dans le cas d'une opération d'aiguillage vers un sous-programe que l'adresse en question passe à la
pile d'adresses de retour de sous-programme 236.
Par un signal de '"reteur", une adresse peut ttre
rappelée à partir de la pile 236. La pile a une ca-
* 2i5 pacité de 8 mots à 15 bits. La sélection d'adresse danas la pile s'effectue par l'indicateur de pile 238. La ligne entrante 204 est finalement encore
connectée à une connexion de données de l'unité arith-
métique et logique (ALU) 240 qui peut effectuer une multiplicité d'opérations de 8 bits de largeur. La commande est assurée, non seulement par les signaux de l'unité 218, mais aussi par le contenu du mot d'état de programme 242 qui a une capacité de 2x8 bits. Un résultat de 8-bits de largeur du traitement dans l'élément 240 peut Otre amené par l'intermédiaire de la ligne.244 à une pile de registre qui contient le registre dit zéro (Ro) 246 et une moitié pouvant -12- 8tre sélectionnée d'une autre pile 248 qui contient
2x3 registres. La sélection entre les moitiés est com-
mandée par le bit RBS provenant du mot d'état de pro-
grume, et la sélection ultérieure s'effectue par des signaux provenant de l'unité 218. La sortie du registre - zéro 246 est connectée à l'"uité ALU 240 et en outre au uultiplexeur 250. La sortie de l'autre pile 248 est aussi connectée au multiplexeur 250. La ligne sortante du multiplexeur est connectée à l'unité ALU 240 et à
IO l'additionneur d'adresses 210 (pour pouvoir fonction-
ner comae adresse relative ou comme donnée dindex), et au registre 202 connecté à la ligne omnibus de données 200. Jinalement, le bloc 250 A contient la logique
nécessaire pour le code de condition et pour des bran-
chemeuts éventuels. Ce bloc est connecté à l"unité AL, 240 et peut, danas certaines circonstances, emyer un signal de commande au dispositif logique de commande et de décodage 218. Pour les fonctions à réaliser avec ce mieroprocesseur et pour d'autres détails téckniques,
on peut se référer en général au livre précité du fa-
bricant. Ce micropreocesseur est extérieurement réalisé
coame un nodule DIP comportant 40 broches de connexion.
La Fig. 2 illustre un système de machine à cal-
culer déveleppé conformément à l'invention. Le systèmne
conporte un processeur 52, une mémoire 54, et un sous-
système d'entrée/sortie 60. Ce dernier peut comprendre un clavier de touches, un dispositif d'impression et
un dispositif de visualisation à tube à rayons catho-
diques. La mémoire 54 contient le prograume servant à
commsander le processeur 52, de telle sorte que celui-
ci puisse effectuer diverses opérations. Il peut s'a-
gir d'un nodule distinct mais, dans certains cas, il
peut Stre placéwec le processeur 52 sur le ahe subs-
trat semi-conducteur. Par ailleurs, le processeur 52 peut 8tre un microproeesseur Signetics "2650". esits éléments sent connectés par une Iigne omnibus de données bidirectionnelle 50 et par une ligne omnibus d'adresse unidirectionnelle 58. Lorsque les interrupteurs 64 et -13- 66 sont ouverts et que les interrupteurs 62 et 68 sont
fermés, on obtient un système à microprocesseur classi-
que qui ne sera pas décrit plus en détail. De plus, il est prévu un élément supplémentaire 56 qui, lorsque
les interrupteurs 62 et 68 sont ouverts, peut communi-
quer avec la mémoire 54 et avec le sous-système d'en-
trée/sortie 60. le fonctionnement en sera décrit ci-
après dans le détail. Il est notamment possible de cette façon d'adresser la mémoire 54 et de recevoir I0 les instructions lues ainsi que d'autres données, et ce en n'exécutant pas les instructions comme le ferait
le processeur 52, auquel cas des opérations d'aiguilla-
ge commandées par les instructions elles-mêmes seraient
exécutées, mais en traitant au contraire les instruc-
tions dans l'ordre dans lequel elles sont stockées dans
la mémoire 54 et en ne les exécutant en aucun cas. Au-
cune opération d'aiguillage ou de saut ne sont notamment effectuées. La nature du traitement qui est alors quand mime effectué sera décrite plus loin. Après le
traitement, l'instruction peut être renvoyée vers la mé-
moire 54 ou peut Stre envoyée plus loin vers un sous-
système d'entrée/sortie 60. La commande des interrup-
teurs 62 & 68 inclus s'effectue à partir du clavier de touches qui fait partie du sous-système d'entrée/sortie
60: plus particulièrement, une seule paire d'interrup-
teurs parai les deux paires 64/66 et 62/68 est toujours ouverte. La Fig. 3 illustre le circuit d'extension 56 de la
Fig. 2. Ce circuit présente une organisation correspon-
dant pour partie à celle du microprocesseur de la Fig. 1
et on peut par conséquent déjà se référer à la documen-
tation précitée de ce microprocesseur. Plus spécialement sur la Fig. 3 sont indiqués la ligne de données 50, l'interrupteur 68 et les registres 205 (correspond à 206) et 207 (correspond à 208). Le registre 205 reçoit
toujours à nouveau le premier byte (8 bits) d'une ins-
truction qui contient ici le code opération (op-code).
Le registre de maintien 207 est utilisé pour le stockage -14- temporaire d'autres informations d'instructions
et d'adresses absolues partielles dans le cas d'ins-
tructions à plusieurs bytes (donc de plus de 8 bits).
Contrairement à la situation représentée sur la Fig. 1, les registres 205, 207 et 256 (voir ci-après) sont ici tous connectés à la ligne omnibus de données 50
en vue d'un trafic bidirectionnel. De plus est indi-
quée la ligne d'adresse 228 par laquelle les regis-
tres d'adresse 252 et 253 (un pour lire et un pour
écrire) pour la mémoire 54 peuvent Stre chargés.
L'adressage proprement dit s'effectue alors à nou-
veau par l'intermédiaire de l'interrupteur 62 et de la ligne omnibus d'adresse 58. La mémoire 54 a une longueur de mot de 8 bits et une capacité d'adresse
de 15 bits au maximum. Elle peut contenir le program-
me du microprocesseur 52 en code objet, de sorte que chaque emplacementmot a donc une capacité de deux caractères hexadécimaux. La formation de l'adresse
sur la ligne 228 peut s'effectuer d'une manière adé-
quate, par exemple par introduction manuelle, au
moyen du clavier de touches, du sous-système d'en-
trie/sortie, ou par lecture d'un registre ou d'un emplacement de mémoire, ce qui peut ttre organisé de la moSe manière que pour les éléments 230 à 236 inclus
sur la Fig. 1. Les connexions par elles-mgmes classi-
ques pour le chargement des registres 252, 253 ne sont pour plus de simplicité, pas représentées. De plus, le registre d'adresse 252 peut Stre augmenté par une
impulsion d'incrémentation sur la ligne 264 ou le re-
gistre d'adresse 253 peut 8tre augmenté par une im-
pulsion d'incrémentation sur la ligne 265. Des liai-
sons correspondantes sont présentes pour diminuer le
contenu de ces registres par une impulsion de décré-
mentation. Un signal de commande de lecture-écriture
ou un signal d'autorisation ("enable") pour la mé-
moire 54 apparaTt encore sur une ligne multiple éven-
tuelle 272. De plus, le circuit de la Fig. 3 compor-
te encore un troisième registre 256 qui est aussi -15- connecté à la ligne de données 204. Ce registre peut ttre virtuel, étant donné qu'il- est on fait inclus dans l'élément de bloc 258 dans lequel le traitement
ultérieur se produit, comme décrit ci-après. Ce trai-
tement ultérieur peut s'effectuer avec des composants.
qui en majeure patie sont d'une nature correspondant & celle des éléments de traitement de deonnées de la Figo 1, par exemple un ót@Ur d'adresses 20, un dispositif legis u e do 8 ao dt de aeoe 218 et la Unlie omnibuns ioà doo c î = de oo do* et non représentée & la Fis. g POeW p! l de o8eision. ne partie du diînoitif l!sioe,ie oeumade et en outre déj& rEprD a1 dàlez;n'o30 Zfaite llonet 56 peut *tre un 1i6eree l18soment modiid du
MDhme t7pe que lld61Mo t 52, celo par exe.ple un signe-
i2s 1'2650" Ququel quelqeos eonsiens sont adjointes,
comme décrit eiî-pDs- et por lequel d'autres foeo-
tions ne cont pas mi2es en eeuvne pace que le perogram-
me proprement dît ne peut paa &re exécuté et que plus spécialeBentg aucune opé2rietîn d'aiguillage ne doit ttre ex6cut6e (ces op6ratien pouvant Otre exécutées
das l'Vélment 52)X Dans l Il6nent 569 ctamont la.
mm6oire de pregrame 54 est parcourue selon une séquen-
ce d'adresses continue dans laquelle des adresse ini-
tiales et finales sont toujours appliquées de l'ex-
térieur et ce, plus particulirement, à partir du clavier de touches dansle oussystême d'entrée/ sortie 60. Dans une autre ferme de réalisatioc, un seul élément peut remplacer les éléments 52 et 56, étant entendu que dans cet e lément, suivant le mode de commande (voir 9i-après), des é1ments détermins sont mis hors circuit, Orn dorira tout d'abord main tenmnt les él4ment i q sont d6e aussi prSsezts dans la r6alisation d&e la Pi.o o O déc$rira tout d'abord
l'extraction par lecture de la mémoire 54-
L'élément 266 est le dispositif logique commandant -16- le démarrage et l'arrSt. Sur l'entrée 268 apparaît à chaque cycle de 6mémoire de la mémoire-de programe
54, une impulsion d'horloge qui est prélevée sur l'im-
pulsion d'horloge primaire présente sur la ligne 224 de la Fig. 1. De plus, un signal "suivant" apparalt sur la borne 270 lorsqu'il faut entamer l'exécution de la première instruction machine suivante. Ensuite, l'élément 266 est actif pour produire des impulsions d'herloge sur les lignes 264 et 274. Comme nentionné IO plus haut, l'impulsion d'horloge opère sur la ligne 264 comme un signal d'incrémentation. L'élément 276 est un compteur binaire à deux bits qui est remis széro par le signal présent sur la borne 270. Pour ce compteur,
le signal présent sur la ligne 274 sert de signal d'in-
crémentation. Ce signal est aussi, pour autant que ce-
la s'avère nécessaire dans la structure de mémoire uti-
lisée, amené par l'intermédaire d'une liaison non re-
présentée, en tant que signal de commande de lecture
à la ligne 272. L'élément 278 est un décodeur binaire-
vers- I à 3. Xl ersque le compteur 276 atteint la posi-
tion:1", une impulsion "I" apparalt sur la sortie 280.
Cette impulsion est amenée, en tant qu'impulsion de char-
gement, au registre 205. D'un manière correspondante, les positions "2" et "3" du compteur 276 produisent des impulsions de commande de chargement pour les
- registres 207 et 256 au moyen des lignes 282 et 284.
L'élément 260 fait partie de la mémoire morte pour la commande qui, pour chaque instruction en indique la
longueur et plus particulièrement pour chaque instruc-
tion (byte dans le registre 206), il indique: 1, 2 ou 3 sur la ligne à 2 bits 262, et ce aussi longtemps que le registre 205 contient la partie d'instruction en question. L'él6ment 286 est un couparateur à deux bits pour la position du compteur 276 et pour le signal sur la ligne 262. Le signal négal"-apparaft sur la ligne 288 et lorsqu'il s'agit d'une instruction connue de l'ensemble d'instructions du microprocesseur Bignetics 2650, les séries d'impulsions d'horloge sont ainsi -17- arrAtées sur les lignes"264 et 274. Le signal sur la ligne 288 peut encore-8tre utilisé pour faire démarrer les autres opérations dans le bloc 258
(non représenté): pour autant que cela soit d'ap-
plication, l'instruction en question est entière-
ment disponible dans les registres 205, 207 et 256.
Dans cette forme d'exécution, le signal pré-
sent sur la ligne 288 produit cependant, en coopé-
ration avec l'absence (voir plus loin) d'un signal Io sur la ligne 292, un signal 'prit" sur la ligne 294 qui peut itre opérationnel dans le bloc 258 ou dans
Vautres parties du système de machine à calculer.
Pour réaliser l'extention conforme à l'in-
vention, quelques autres éléments sont présents. Sur la sortie du registre 206, une autre partie formant décodeur 290 est présente. Cet élément réagit aux signaux de code machine C4 (11000100) Jusqu'à C7 (11000111) y compris non définis Jusqu'à présent dans l'ensemble d'instructions du microprocesseur Signetics 2650, que l'on peut représenter ensemble
par (11000hxx), ou x indique une information quel-
conque (Idon't care"). La ligne de sortie 291 est
quadruple et chacun des quatre conducteurs est réser-
vé pour signaler la détection d'un des quatre signaux
de code machine précités. L'élément 293 est un élé-
ment de sélection pour, sous la commande d'un signal de sélection présent sur l'entrée de commande 295, laisser passer une ou plusieurs desdites détections de code machine et présenter un signal sur la ligne 292. Lorsque l'élément 293 est réglé pour détecter les quatre codes machine précités, le signal présent sur le conducteur 292 correspond à la fonction OU du sâgnal multiple présent sur la ligne 291. Pour la
commande de l'élément 266 qui commande le cycle d'ex-
traction par lecture, cette fonction OU est nécessai-
re. D'une manière correspondante, une autre sélection desdits quatre codes machine peut être détectée sur une autre sortie 297 de l'élément 293. Lesdits quatre -18-
codes machine fonctionnent toujours comme des ins-
tructions à deux bytes et de ce fait, en plus du registre 206, le registre 208 est aussi charge, mais non le registre 256. De plus, sous la commande du signal présent sur la ligne 288 (mais un signal est maintenant présent sur la ligne 292) aucun signal
wprgtu n'est formé sur la ligne 294, mais une nou-
velle série d'impulsions d'horloge est formée sur la ligne 296 et est destinée au compteur à 8 bits 298 et au tampon premier entré - premier sorti de 256 bytes (FIFO) 300. Ceci peut facilement se produire par commutation de la série d'impulsions d'horloge apparaissant précédemment sur la ligne 274. Ces impulsions servent pour le compteur 298 de signaux d'incr6mentation et sont amenées si nécessaire par une liaison nonindiquée à la ligne 272 en tant que signaux de commande de lecture/écriture. La borne 270 est aussi connectée à l'entrée de remise à zéro
du compteur de 8 bits 298 ainsi qu'à celle du tam-
pon FIFO 300. Les impulsions de comptage sur la ligne 296 sont aussi envoyées au tampon FIFO 300. La position du óompteur 298 est amenée au comparateur
à 8 bits 302. Ce comparateur reçoit en outre le con-
tenu du registre 207. Aussi longtemps qu'une iné-
galité existe, un mot suivant dans la mémoire de programme 54 est donc encore touJours extrait chaque fois par lecture et est amené, par l'internmédiaire de la ligne à 8 bits 204, au tampon premier entré premier sorti 300 pour y Stre stocké, notamment par activation par les impulsions d'horloge présentes sur la ligne 296. Lorsqu'une égalité est détectée dans l'élément 302, un signal, par exemple une impulsion m"1, est produit sur la ligne 304. La coexistence
entre cette impulsion et le signal présent sur la li-
gne 292 qui indique les signaux de code machine précités C4 à C7 inclus, est convertie dans l'élément
de commande 266 en un signal "prOt" sur la ligne 294.
Pour autant qu'elle ne soit pas encore utilisée, -19- loinformation extraite per lecture de la mémoire de programme est présente, dans l'ordre de lecture, dans le tampon FIFO 300. Les lignes 306 conviennent pour mener une impulpignd'extraction-par lecture au tampon FIFO, ainsi qu une impulsion de remise à zéro par laquelle les informations y contenues sont
effacées. L'information extraite par lecture du tam-
pon 300 devient disponible sur la ligne 308 en vue d'Stre utilisée par la suite dans l'él&ment de bloc 258. Le tampon FIFO 300 peut 8tre construit selon
des techniques connues; des composants libres pré-
sentant cette fonction sont disponibles. La mémoire de programme 54 peut Stre une mémoire PRON, grice & quoi le mode de listage &6écri plus loin peut être effectué. Il peut aussi s'agir d'une mémoire RAM (A accès aléatoire), pour laquelle tant la lecture que l'écriture sont possibles. Les adresses pour
l'écriture se trouvent alors dans le registre d'adres-
se 253 qui est chargé de ls mSime manière que le re-
gistre 252. Les informations à écrire sont fournies d'une manière correspondante par les registres 205, 207 et 256 et par le tampon FPIFO 300. Les connexions de ces éléments sur la ligne de données 50 sont à cet effet doublement actives. Sur la borne 269 peut appara2tre un signal de commande de lecture-écriture
qui sélectionne l'incrémentation des registres d'a-
dresses 252/253 et de plus, la direction du transport
de l'information sur la lige de.donnes 50. Une o-
pération d'écriture dans la mémoire de programme 54 est en majeure partie effectuée de la m'me manière qu'une opération de lecture s un signal de retour à zéro apparaît d'abord à uouveau sur la borne 270, puis les registres 205, 207 sont d'abord lus sous la commande du signal de séleetion de l'élément 278 et *ensuite le contenu du tampon FIO -300 est évacué. L'égalité détectée de l'élément -302 produit à nouveau un signal d'arrêt lorsqu'une seule-quantité de données seulement est déplacée. Cette égalité peut cependant -20- aussi activer un nouveau signal de lecture pour la
mémoire 54 sur l'adresse indiquée par le registre 252.
L'importance de l'extension décrite plus haut est donc que dans un programue contenant éventuelleent des o5 adresses, du texte, des données proprement dites et des titres, le ou les compteurs d'adresses peuvent
analyser le progranmme selon l'ordre normal des adres-
ses tandis que par ailleurs on a la certitude abso-
lue que d'une part: !0 a. l'information qui est amenée au registre 205 est
touJours un code d'instruction (contenant le code o-
pération), soit d'une instruction éventuellenent à-
exécuter qui Jusque à1A était ceurante, soit d'une pseudo-instruction, qui contient d'autres donnones; et que d'autre part, b. pour tous les codes d'instruction, à savoir pour les pseudo-instructions connues aussi bien que pour les pseudo-instructions nouvellement introduites, le premier byte est toujours amené dans le registre 205, de telle sorte que ces codes puisseat Stre décodés
une manière adiquate.
Peur illustrer l'opération de lecture décrite dans la umémoire de programme, les Zig. *a, 4b indiquent tout d'abord un diagramme de temps. la Fig. 4a donne le diagramme pour une instruction machine courante
de trois bytes. Au début, le registre d'adresse indi-
que le byte de code opération de l'instruction en ques-
tion. Après l'impulsion de démarrage sur la ligne 270,
les lignes 264 et 274 reçoivent chacune trois impul-
sions d'horloge (décalées les unes des autres dans le temps). Ensuite, apparaissent rapidement l'un à la suite de l'autre, le signal Régaln sur la ligne 288 et le signal "prAt" sur la ligne 294. Le registre d'adresse indique ensuite le byte de code opération de l'instruction suivante. les signaux sur les lignes
288 et 294 peuvent, au plus tard au moment de l'im-
pulsion de démarrage sur la ligne 270, 8tre terminés
avant le démarrage d'un nouveau cycle.
-21- La Fig. 4b donne le diagramme pour une instruction machine "passage direct" qui produit donc
après deux bytes le signal "égal sur la ligne 288.
Peu avant, le signal sur la ligne 292 est cependant devenu haut, de sorte que les impulsions d'horloge
apparaissent ensuite sur la ligne 296. On fait l'hy-
pothèse qu'après le passage de quatre bytes, le si-
gnal d'égalité apparaXt sur la ligne 304. Ensemble avec le signal.haut présent sur la ligne 292, ce signal d'égalité forme alors rapidement le signal
"prSt" sur la ligne 294. Le registre d'adresse indi-
que alors aussi le b3e de code opération de l'ins-
truction suivante.
La Fig. 5 illustre dans ce cas un pro-
grame donné à titre d'exemple à utiliser dans un dispositif conforme à l'invention, et ce comme il
peut Stre imprimé ou être visualisé dans un mode d'u-
tilisation déterminé ("list"). La première colonne, débutant par 2500, indique les adresses en chiffres
hexadécimaux dans la mémoire de programme. La deu-
xinème colonne, débutant par C7, indique le de opé-
ration des instructions chaque fois sous la forme de deux caractères hexadécimaux, donc sous forme d'un byte de huit bits. La troisième colonne, débutant par 0O, et la quatrième colonne, débutant par 40, indiquent les autres données appartenant chaque fois à une instruction machine, comme par exemple des
adresses ou des données. La cinquième colonne débu-
tant par "PROGRU EXAiMPLE" indique ou bien l'ins-
truction sous la forme d'un groupe de caractères qui la symbolisent, ou bien d'aures données, telles qu'elles sont fermées lors de l'interprétation de l'instruction. La ligne 1 contient le "nouveau" code opération 7C?, la ligne 19, le nouveau code opération 04, la ligne 20, le nouveau code opération C5 et la
ligne 21, le nouveau code opération C6. L'autre infor-
nation de titre, adresse, données et texte est alors inprimée après le signal de distance d'adresse (0F, 06 -22- 04 et OA). La signification des instructions connues
peut Stre trouvée dans le livre NSignetics Micropro-
cessor 2650" qui a déjà été mentionné. Le reste de la structure de la Fig. 5 sera décrit plus loin. La Fig. 6 donne le contenu de la mémoire de programme tel qu'il est nécessaire pour pouvoir reconstituer l'information de la Fig. 5. Il convient de noter aussi que sur la Fig. 6, une très grande partie de l'espace est occupée par l'information n'appartenant
pas à une instruction machine à exécuter. L'indica-
tion 05-4C sur la Fig. 6 est nécessaire pour visua-
liser l'information de cette figure.
Dans le circuit représenté sur la Fig. 3, le décodeur d'instruction 290 réagit aux codes machine 04 à C7 inclus, le signal sur la ligne 292 indique
donc que l'information 11OOOIXX est reçue, étant en-
tendu que les signaux I ont une valeur quelconque.
Dans ce cas, ces codes machine indiquent le contenu de programme suivant: 04 (11000100): après le byte de distance d'adresse suit une quantité de bytes (emplacements de mémoire) avec des informations d'adresse déterminée par le contenu du byte de distance d'adresse, deux bytes formant ensemble une adresse dans cet exemple, 05 (11000101): après le byte de distance d'adresse suit un nombre de bytes de données proprement dites déterminé par le contenu du byte de distance d'adresse, chaque donnée proprement dite étant formée d'un bytes 06 (11000110): après le byte de distance d'adresse
suit une quantité de longueurs de caractères détermi-
née par le contenu du byte de distance d'adresse, par exemple un texte exprimé en caractères codés en code ASCII. Plus spécialement, un byte de texte ASCII ( c'est-à-dire des lettres maJuscules, des chiffres) est un ensemble limité de signes pour la visualisation qui peut ttre identifié par le fait que sa valeur est comprise entre 20 (00100000) et 5F (01011111). Entre
0 (00000000) et 20 se trouvent par contre des carac-
-23- tères de commande et entre 5F et FF (11111111) se trouvent à nouveau d'autres signes qui ne sont pas
nécessaires pour la visualisation, le plus spécia-
lement les lettres minuscules, 07 (11000111).:'après le byte de distance d'adresse suit une quantité de bytes de caractères déterminée
par le byte de distance d'adresse, ces bytes for-
mant ensemble un titre, I1 peut s'agir des aimes caractères ASCII que ceux qui précèdent; seule la
fonction d'un titre est différente (voir plus loin).
On décrira brièvement ci-après quelques pro-
blèmes rencontrés lors de la conception d'un pro-
gramme, un système de conception connu et finalement
quelques modes d'utilisation de l'invention. Le pro-
grume est conçu come programme source, & l'aide d'un clavier de touches, qui comporte des touches alphanumériques et des touches de fonction, telles
que "retour de chariot, nouvelle ligne", et espa-
cement". Le programme eontient des instructions source
qui sont formées d'un groupe de caractères symboli-
a nts (instruction m6monique) et d'autres données,
comne une adresse d'appel ou la valeur d'un paramè-
tre. De plua, le programme source contient du texte
explicatif, des titres (par exemple de sous-program-
mes), des adresses et des données proprement dites
(toutes les catégories ne sont pas touJours présentes).
Le programme source est, à la visualisation, très synoptique, et la correction est done facile sous certains aspects. le progreame source est traduit par un élément de traduction (assembleur) qui est construit autour d'une mémoire morte. Le programme machine qui est ainsi preoduit peut Stre éprouvé. Il peut ttre destiné à la commande d'un dispositif tehnique, comme par exemple un instrument de mesure numérique, une machine de production ou une machine
pour le traitement dLe denées financières, par exem-
ple une machine du genre qui comprend un micropro-
cesseur. Un système de développement pour de tels programmes est, par exemple, le système Signetics -24- "UTIN" qui est décrit dans le livre "Operators Guide", publié par Signetics Corp., 811 East Arques Av., Sunnyvale, Californie, 1976, docunent n- ?W 09003000, et dans les ouvrages correspondants "WI Systen Reference Manual" (n TW 0904000), qui décrit les structures physiques du système de machine à calculer et "2650 Twin assembly language manual" qui décrit l'agencement du système de traduction et son
utilisation (W 09005000). La correction du program-
me, et d'une nanière plus spécifique, la solution
du problème des parties & non-instruction "non iden-
tifiables" dans le programme nachine est ici assurée
au noyen d'un double nicroprocesseur Sigaetics 2650.
Parmi ceux-ci, le premier exécute le programe na-
chine proprement dit, tandis que le deuxième commande le premier. Ceci s'effectue selon un procédé dit
#de poursuite d'une trace", selon lequel chaque is-
truction machine renvoie donc à une instruction mackine suivante (sans mesure supplémentaire dans une instruction machine, ils' agit de celle qui
est stockée dans l'adresse de mémoire suivant immé-
diatement). De cette façon, on n'atteint jamais une
partie de "Lon-instraction" du programe machine, par-
ce que son début est toujours directement précédé par use instruction 4'"aiguillage". Da ce procédé de poursuite d'une trace, chaque instruction machine est retraduite en l'instruction source associée au
moyen d'un élément de retraductioz ("disassembler").
Lorsqu'une instruction d'aiguillage est rencontrée, elle spécifie l'adresse d'aiguillage et l'opération d'aiguillage est en offet exécutée. Lorsqu'on utilise ce procédé de poursuite d'une trace, on obtient ainsi une image du fonctionnement d'un programme, mais pas du tout de la manière selon laquelle ce programe (instructions et autres données) est stocké dans la mémoire. Cette dernière organisation ne peut ttre
suivie dans le système connu qu'au moyen du program-
me source, ce qui comme mentionné plus haut, néces-
-25-
site un espace bien supérieur dans la mémoire. bui-
vant l'invention, il n'est en aucune manière nécessai-
re de disposer de ce programme source. De plus, grace
aux extensions conformes à l'invention, on peut u-
* tiliser plusieurs modes de travail qui permettent de manipuler le programme encore autrement que la
de la manière possible au moyen du programme source.
Les Fig. 7a, 7b représentent un tableau de
marche d'un mode de travail pour identifier des adres-
ses appelées; ainsi, la réponse est donnée à la question z cette instruction machine appelle-t-elle
un sous-programme, et si oui, lequel ? L'instruc-
tion d'appel se trouve alors, dans le circuit de la Fig. 3 dans les registres 205, 207 et éventuellement dans le registre 256. Dans le circuit de la Fig. 1, il peut s'agir des registres correspondants 206, 208
et 202. On fait l'hypothèse que la machine est arrt-
tée. Deux possibilités existent pour une adresse d'appel. Il peut s'agir d'une adresse absolue qui comble les deux derniers bytes d'une instruction à trois bytes. Il peut aussi s'agir d'une adresse relative qui comble le dernier byte de l'instruction à deux bytes. Lorsqu'il s'agit d'une adresse relative, l'adresse d'appel absolue est d'abord reconstruite d'ume manière connue par la machine, au moyen de
l'additionneur d'adresses 210, ou d'un élément corres-
pondant non représenté dans le circuit de la Figo 3.
Les Fig. 7a, 7b illustrent un tableau de marche du sous-programme nécessaire qui est alors appelé et dont les éléments sont classiques. Dans sa totalité
et, compte tenu du fait que chaque titre dans le pro-
gramme machine est précédé du code machine 07 plus un
byte de distance d'adresse, ce sous-programme consti-
tue un moyen commode pour retrouver le titre qui se
rapporte à l'adresse de programme qui est appelée.
On fait maintenant l'hypothèse que les titres ont une longueur limitée, par exemple au maximum de 20 caractères. De plus, on fait l'hypothèse que lorsqu'un -26- sous-programme comportant un titre est appelé (donc, par exemple, pas une adresse du (sous) - programme
en cours d'exécution jusqu'à ce moment ou un carac-
tère de données), celui-ci est toujours appelé après une des premières adresses (par exemple les dix
premières) après la fin du titre de sous-programme.
La limitation à dix est simplement de nature pratique.
On détecte d'abord dans le bloc 102, sur la Fig. 7a, (après le "démarrage" dans le bloc 100) qu'il s'agit d'une "instruction avec adresse d'appel". Si cela
n'était pas le cas, une incrémentation vers linstruc-
tion suivante aurait lieu. Dans le bloc 104, l'adresse d'appel absolue est alors calculée si nécessaire et est ensuite diminuée d'une valeur de pré-réglage fixe: celle-ci est, dans le cas mentionné plus haut,
par exemple d'au moins (20+10=30) adresses, et l'adres-
se résultante est introduite dans le registre d'adres-
se qui est incrémenté d'une manière analogue A celle
décrite pour le registre d'adresse 252 de la Fig. 1.
Physiquement, il peut s'agir du nSme registre, l'an-
cienne adresse étant ainsi sauvée. Ensuite, sur la Fig. 7b, le tampon FIFO 300 est mis à zéro, de sorte
qu'aucune information "ancienne" n'est plus pertinen-
te (bloc 109). Ensuite, dans le bloc 110, a lieu une incrémentation chaque fois d'une unité, tandis que
dans l'éé16ment 293 de la Fig. 3, la sélection exclu-
sivement sur le code opération "C7". Ceci est dû au
fait qu'on ne peut pas savoir à priori o le "pseudo"-
code opération 07 en question, qui indique le début du titre, est stocké (bloc 112). Dans le bloc 114, on
détecte si l'adresse actuelle est supérieure A l'adres-
se d'appel (de laquelle on était initialement parti).
S'il en est ainsi, le sous-programme est abandonné par l'intermédiaire du bloc 128. Lorsque le code 07 est
rencontré, dans le bloc 115, l'information de distan-
ce est introduite par lecture dansr le registre 207.
Dans le bloc 118 l'ensemble de l'adresse actuelle
et du byte de distance d'adresse est comparé à lradres-
-27- se d'appel. Lorsque cette dernière est plus petite, le code OC?7" est probablemelnt un code de données provmnt d'une partie de programme précédente: la machine reTient alors au bloc 110. Sinon, ilans le bloc
119, le tmpon FIFO est remis à.zéro. Il peut en prin-
cipe arriver que l'on rencontre deux titres et dans ce cas seul le dernier des deu (ou éventuellement des trois) est pertinent. Ensuite, on contr8le dans le bloc 122 s'il s'agit d'un caractère ASCII. Si cela
n'est pas lecas, une erreur s'est produite, par exem-
ple par le fait que le code C0"n concernait un caractère de données s le tampon est alors aussi remis à zéro, de
sorte que lors de l'abandon du sous-programme, une in-
formation non pertinente n'est Jamais présente dans le tampon. S'il s'agissait bien d'un caractère ASCII pour la visualisation, on eontr8le dans le bloc 124 si l'adresse finale est déjà atteinte. Si le signal "égal" sur la ligne 304 natest pas encore apparu, le caractère en question est stocké dans le tampon FIFO
dam le bloc 126. Lorsque le bloc 128 atteint la po-
sition "pret", le contenu du tampon FIFO est smenéh à un générateur de caractères alphanumériques, puis à un dispositif de visualisation à tube à rayons cathodiques ou à l'imprimante. Dans ce qui précède9 le déroulement peut Stre accéléré lorsqu'on sait avec certitaude qu'un seul titre maximum est présent: la sortie woui" du bloc 124 est alors aussi connectée
au bloc 128 et le bloc 119 peut Otre omis.
La Fig. 8 illustre un tableau de marche d'un mode de travail servant à visualiser une partie de programme selon la séquence d'adresses, et plus spécialement pour former un relevé du contenu des sous-programmes (titre et adresse initiale) qui sont contenus dans le programmeo Après le début dans le bloc 140, la premiêre adresse D'un programme est appe-
lée dans le bloc 142 et l'adresse actuelle ( current") y est rendue égale. De plus, la dernière adresse est
indiquée, c'est-à-dire l'adresse du byte de code opé-
-28-
ration qui suit directement la dernière instruction.
Dans le bloc 144, on contr8le si la dernière adresse est encore supérieure & l'adresse actuelle. S'il n'eu est pas ainsi, le blec 146 (FIN) est atteint. Ensuite Q5 dans le bloc 148, le compteur d'adresses est di* en
route (borne 270 sur la Fig. 3) et une instruction en-
tière de 1, de 2 ou de 3 bytes est extraite par lec-
ture. Dans le bloc 150, on centrile s'il s'agit d'un des quatre codes opération C4 C?7 inclus. Lorsque cela n'est pas le cas, le bloc144 est à nouveau atteint. eLorsqu'il s'agit bien d'un "pseude"-code opération, dans le bloc
152, l-e tampon 71F0 est remis széro et le byte de dis-
tance d'adresse provenant du registre 207 est activé.
Ensuite, dans le bloc 153 est extrait par lecture de la mémoire de programme un nombre de bytes d'information égal à celui indiqué par le byte de distance d'adresse et ces bytes sont stockées dams le tampon FIO0. Puis,
dans le bloc 154, on détecte s'il s'agit du code opé-
ration 07. Dans ce cas, dans le bloc 155, l'adresse
actuelle (la première adresse après le titre dont l'in-
formation est stockée dans le tampon FIF0) est visuali-
sée et mise on tableau. Ensuite, dans le bloc 156, le contenu du tampon 71FF70 et visualisé et l'appareil de visualisation passe à une nouvelle ligne. Lorsque le bloc 146 est atteint, tous les sous-programmes sont visualisés avec leur adresse de départ (par exemple sur une iuprimante). Lorsqu'il s'agit d'un écran ayant une capacité d'un nombre de lignes limité, la sortie du bloc 156 peut impliquer le signal de pause cité pour le microprocesseur 2650. Ce signal peut, par exemple, Stre rendu inactif manuellement par actionnement de la touche d'espacement sur le cavier de touches. Un autre
mode d'utilisation pour visualiser tout au plus un non-
bre prédéterminé delignesde l'écran d'un seul coup ne
sera pas décrit ici pour plus de concision.
les Fig. 9a, 9b, 9c illustrent un tableau
de marche d'un processus servant à retoucher les adres-
ses apparaissant dans une partie de programae sur une
246452-1
-29- distance de déplacement prédéterminée et à déplacer en umOe temps cette partie de programme sur cette mSme distance de déplacement. On fait l'hypothèse que cette translation ne se heurte à aucun inconvénient que ce soit pour des raisons technologiques (la destination
est une mémoire de lecture/écriture) ou pour des rai-
sons d'organisation (la partie de mémoire vers laquelle
la translation a lieu est libre). Quelques modifica-
tions pour des cas spécifiques seront décrites ci-après.
Après le début dans le bloc 160, l'adresse initiale (o débute la partie du programme) est, dans le bloc 162, stockée dans le registre d'adresse de lecture (252 sur la Fig. 3) et l'adresse finale de la partie de programme en question est recherchée en vue
d'une comparaison ultérieure. Dans le bloc 164, l'adres-
se de destination (o débute la partie de mémoire o la partie de programme sera stockée) est stockée dans
le registre d'adresse d'inscription (253 sur la Fig. 3).
Dans le bloc 166, il est contr8lé si le contenu du re-
gistre d'adresse de lecture (donc l'adresse actuelle ou fcurrent") est égal à l'adresse finale. Dans le bloc 167, la première instruction suivante de 1, de 2 ou de 3 bytes est extraite par lecture. Dans le bloc 168 il est détecté s'il s'agit d'une instruction comportant une adresse d'appel relative (en l'occurrence une instruction de 2-bytes). S'il en est ainsi, la Fig. 9a est abandonnée par l'intermédiaire du bloc 163. Dans le bloc 170, il est détecté si le byte du code opération
a la valeur 04. S'il en est ainsi, la Fig. 9a est aban-
donnée par l'intermédiaire du bloc 169. Dans le bloc
171 il est détecté s'il s'agit d'une instruction compor-
tant une adresse d'appel absolue. Dans le bloc 172 il est
détecté si cette adresse d'appel se trouve entre l'adres-
se initiale et l'adresse finale. Ce n'est que s'il en
est ainsi que l'adresse d'appel dans le bloc 173 est mo-
difiée par la différence entre l'adresse initiale et l'adresse de destination. Cette différence peut gtre positive ou négative. Ensuite, dans le bloc 1?4, - 30 l'instruction est transportée sans autre modification vers l'adresse de destination et le système revient au bloc 166. Le bloc 174 est aussi atteint à partir
du bloc 171 (il s'agit d'une instruction sans adres-
se) ou à partir du bloc 172 (l'adresse envoie à un emplacement de mémoire se trouvant en dehors de la partie de programme à transporter). Le transport d'une pseudo-instruction portant le code opération 05, C6 ou
07 peut exiger un certain nombre de cycles, comme ex-
pliqué à propos de la Fig. 9b pour une instruction "C4", mais ces pseudoinstructions sont transportées
sans modification vers leurs adresses de destination.
Finalement, le sous-programme des Fig. 9a à c est aban-
donné par l'intermédiaire du bloc 165. Pour plus de concision, ceci (bloc 188, 192 sur la Fig. 9b) est
omis ici.
La Fig. 9 b est atteinte par l'intermédiaire du bloc 169. Dans le bloc 184 il est détecté si l'adresse en question est située entre l'adresse initiale et l'adresse finale (comparer à 172). Dans le bloc 186,
l'adresse d'appel est corrigée (voir le bloc 173).
Dans le bloc 188, l'information est transportée (in-
formation de deux bytes). Dans le bloc 192 il est dé-
tecté si la distance d'adresse (élément 302) est atteinte. Aussi longtemps qu'il n'en n'est pas ainsi,
le cycle de la Fig. 9 b est chaque fois parcouru. Fi-
nalement, la sortie s'effectue par l'intermédiaire du bloc 194 et le bloc 166 est à nouveau atteint. Le sous-programme de la Fig. 9b peut aussi Otre exécuté
d'abord par stockage de tout le contenu de la pseudo-
instruction portant le code opération C4 dans le tampon FIFO et par retouchage successif des adresses ainsi disponibles suivi d'un nouveau stockage dans le tampon FIFO. Lorsque toute la série d'adresses est traitée, elles sont disponibles dans le bon ordre à la sortie du tampon FIFO. Lorsqu'elles sont disponibles après
retouchage, l'information du tampon FIFO est transpor-
tée vers l'adresse de destination par le fait que le -31-
bloc 174 est alors encore parcouru.
La Fig. 9c est atteinte par l'intermédiaire du bloc 163. Dans le bloc 175, l'adresse d'appel est déterminée comme étant la somme de l'adresse actuelle
et du byte d'instruction qui contient les données d'a-
dresses relatives. Dans le bloc 176 il est détecté si l'adresse d'appel se trouve entre l'adresse initiale et l'adresse finale. On fait lh_7pothêse maintenant, A titre d'extension, qu'une partie seulement du programme est déplacée. Das ee cas, des adresses détexrminées se trouvant en dehors de cette partie du programme peuvent aussi devoir Stre retouchées. O'est pourquoi, dans les
deux blocs 177a, 177b, il est détecté ai l'adresse ac-
tuelle se trouve entre l'adresse initiale et l'adresse finale. Si les deux adresses (adresse calculée et adresse actuelle) se trouvent A l'intérieur, ou ai les deux
adresses se trouvent à l'extérieur de la partie de pro-
grme à transporter, une adresse relative ne doit pas Stre modifiée et le bloc 174 sur la Fig. 9a est atteint par l'interm&diaire du bloc 178. Si une deadites adresses
se trouve à l'intérieur de la partie de programme A trans-
porter et une desdites adressea à l'extérieur de cette partie de programoe, le bloc 179 est atteint. L'adresse ('appel y est modifiée de la différence entre l'adresse initiale et l'adresse de destination (bloc 173 sur la Fig. 9a). Ensuite, dans le bloc 180, l'adresse d'appel (absolue) est diminuée de l'adresse actuelle. Dans le bloc 181 il est détecté si l'adresse relative résultante
ne trouve dans les limites qui lui ont été attribuées.
Pour un byte de 8 bits, ces limites peuvent se situer à 63 (ce byte contient alors six bits dadresses, un bit de signe et un bit dit d' "indirection"), étant entendu que -64 est aussi admissible (voir le livre cité à propos du nicroprocesseur "250". Lorsque ceci est en
ordre, la Fig. 9a est à nouveau atteinte par l1intermé-
diaire du bloc 182 (bloc 174). Lorsque la distance d'a -
dresse relative n'est pas en ordre, l'instruction est vi-
sualisée dans le bloc 183 dans la forme originale, donc en mentionnant l'adresse actuelle valable à cet effet et -32- l'adresse relative initiale. Le programteur peut alors
intervenir plus tard car l'information visualisée for-
me une signalisation des erreurs. Une possibilité de correction est que l'instruction avec adresse d'appel
relative soit modifiée en une instruction avec adres-
- se d'appel absolue, un byte d'adresse supplémentaire
étant nécessaire à cet effet. Toute la partie trans-
portée doit alors Otre adaptée par le programmeur.
Après le bloc 183, l'instruction non modifiée est donc à nouveau disponible et le schéma de la Fig. 9a est alors & nouveau atteint par l'intermédiaire du bloc 190.
Ce qui précède est aussi valable lors-
qu'un chevauchement existe entre la partie originale
du programme et la partie déplacée du programme pour-
vu qu'un transport soit effectué vers des adresses plus basses. Lorsqu'un transport doit 8tre effectué vers des adresses plus hautes, le processus se déroule en deux étapes. la premier lieu, les adresses sont retouchées et ce n'est que lorsque l'ensemble du programme a été retouché qu'il est transporté, en
partant de l'arrière, tandis que les compteurs d'adres-
ses reçeivent des impulaioes de décrémextation. De
la amie manière que celle décrite plus haut, un pro-
gramme (entier) peut aussi 8tre transmis à partir d'une umémoire PROM vers une mémoire RAM et y Stre opérationnel. Les Fig. loa, 10b illustrent un tableau
de marche d'un mode de fonctionnement pour visuali-
ser un secteur du programme machine. On obtient ainsi & partir du programme machine qui est visualisé à
titre d'exemple sur la Fig. 6, une image bien meil-
leure pour un programmeur qui est représentée par la Fig. 5. Après le début dans le bloc 310, dans lequel
la première et la dernière adresse du secteur & visua-
liser sont aussi indiquées, l'adresse actuelle dans
le bloc 334 est rendue égale à la première adresse.
Dans le bloc 336 il est détecté si l'adresse actuelle -33-
est au moins aussi grande que la dernière adresse.
S'il en est ainsi, le sous-programme est abandonné par l'intermédaire du bloc 338: fin. Aussi longtemps qu'il n'en est pas ainsi, dans le bloc 312, l'adresse de lecture actuelle de la mémoire de programme est stockée dans un registre intermédiaire et de plus, l'instruction de 1, de 2 ou de 3 bytes débutant à l'adresse actuelle est extraite par lecture de la mémoire de programme et est stockée dans un autre I0 espace de registre intermédiaire (il peut s'agir des registres 205, 207, 256). Dans le bloc 316 il est détecté si le code opération a la valeur C7. S'il en est ainsi, dans le bloc 318, une nouvelle page
d'impression est activée (en supposant que l'1lé-
ment de visualisation soit une imprimante). Ensuite dans le bloc 320, la dernière adresse de code opération stockée dans ledit registre intermédiaire
est recherchée et visualisée, après quoi une tabula-
tion se produit. Ensuite, dans le bloc 322, l'ins-
truction extraite précédemment par lecture de l'au-
tre espace de registre intermédiaire est visualisée (en code machine) et cette opération est à nouveau suivie d'une tabulation. Dans le bloc 324 il est détecté si le code opération a d'une part la valeur C4, C5 (1100010x) ou d'autre part la valeur 06, 07 (1100011x) ou finalement une autre valeur que (11000lxx). Dans le cas C6, 07 (texte ou titres), un élément de retraduction ASCII est activé dans le bloc 326. Dans le cas C4- 07, dans le bloc 330, le premier byte suivant est extrait de la mémoire de programme et est visualisé. Dans le cas 04, un byte est converti en deux caractères hexadécimaux tandis qu'un espacement suit chaque fois le deuxième, le quatrième (etc.) byte. Dans le cas 05, un byte est converti en deux caractères hexad6écimaux, tandis qu'un espacement suit chaque byte. Dans les cas 06, 07, chaque byte est converti en un caractère alphanumérique, de sorte que les espacements doivent -34-
aussi Stre stockés dans la mémoire de programme. En-
suite, dans le bloc 328, on détecte si la distance d'adresse est atteinte (voir par exemple le bloc 118 sur la Fig. 7b) et aussi longtemps qu'il n'en est pas ainsi, dans le bloc 330- on traite chaque fois le premier byte de la mémoire de programme. Lorsque
la dstance d'adresse est atteinte, une ligne d'espa-
cement est visualisée dans le bloc 332 et l'imprimante continue vers le début de la nouvelle ligne suivante
puis vers le bloc 336.
Lorsque le bloc 324 concerne un autre code que (llOO110lxx), un élément de retraduction ("disassembler") est activé dans le bloc 340 pour l'instruction machine et l'instruction est retraduite en code source et est visualisée. Suit alors une tabulation. Dans le bloc
342, on détecte s'il s'agit d'une instruction compor-
tant une adresse. Cette détection s'effectue à l'aide du code opération encore toujours disponible. Lorsqu'il en est ainsi, on détecte dans le bloc 344 s'il s'agit d'une adresse relative. B'il en est ainsi, l'adresse absolue est calculée dans le bloc 346 à partir de
l'adresse relative et de l'adresse actuelle(la pre-
mière adresse après la fin de l'instruction actuelle).
Dans le bloc 348, l'adresse absolue qui est maintenant trouvée est visualisée éventuellement avec un élément suivant: a) une étoile pour indiquer qu'il s'agit d'une adresse indirecte,
b) une indication d'un registre d'index et une indica-
tion d'un incrément ou décrément suplémentaire (par exemple 2540 + x3 + 1 sur la cinquième ligne de texte
de la Fig. 5)-
Cela s'effectue entièrement sur la base de la structure comme de l'ensemble d'instructions du microprocesseur Signetics 26500
L'adresse est à nouveau suivie d'une tabulation. En-
suite, dans le bloc 550, on détecte si l'adresse ab-
solue en question renvoie à un sous-programme par le -35- fait qu'on recherche le titre associé (ai possible) et qu'on le visualise et ensuite, dans le bloc 352, on détecte s'il s'agit d'une instruction d'aiguillage. S'il
en est ainsi, une ligne d'espacement (bloc 353) est ri-
sualiîsée. Ceci augmente la nature synoptique de la visua-
lisation. Suit alors dans le bloc 354 le retour vers une
nouvelle ligne et le bloc 336 est à nouveau atteint.
Lorsque dans le bloc 342 il est détecté qu'il ne s'agit pas d'une instruction comportant une adresse,
on détecte (dans le bloc 356) s'il s'agit d'une instruc-
tion comportant une donnée proprement dite. S'il en est ainsi, une tabulation a tout d'abord lieu dans le bloc 358, laquelle est suivie de la visualisation de la
donnée en code binaire. Le bloc 354 est ensuite à nou-
veau toujours atteint.
Le programme de la Fig. 5 est prévu comme programme
de démonstration; il ne comporte aucune erreur syntac-
tique; il ne remplit par lui-mime aucune fonction
utile. La Fig. 6 montre la nature succincte de la no-
tation en code machine: elle n'occupe que moins de la moitié de l'espace de la mémoire et le reste est rempli
par des données additionnelles.
L'invention est expliquée ci-après avec référence à une réalisation simple et avantageuse à l'aide d'un microprocesseur Signetics 2650. D'autres processeurs sont aussi utilisables. Plus spécialement, l'invention
neest pas limitée à des instructions de longueur varia-
ble. Fig. 7a: 100 - démarrage Fig. 7b: 102 - instruction avec adresse d'appel 104 - conservation du compteur d'adresses de contenu
106 - calcul de l'adresse d'appel moins préré-
glage et remplissage du compteur d'adres-
ses 109 - remise à zéro du tampon FIFO - progression d'une adresse 112 la donnée a-t-elle la valeur C7 ? -36- 114 - l'adresse actuelle est-elle supérieure à l'adresse d'appel ? - lecture du byte d'information suivant 118 - adresse finale - adresse actuelle plus - dernier bytedu supérieur à l'adresse d'appel ? 119 - retour à zéro du tampon FIFO - lecture du byte d'information suivant 122 - caractère ASCII ? 124- adresse actuelle > adresse finale ? 126 - byte d'information vers tampon IFO 128 - fin début
142 - appel de la première adresse d'un pro-
gramme et indication du deDnier byte
d'instruction d'adresse (adresse fina-
le) 144 - l'adresse actaelle est-elle > à l'adresse finale ? 146 - fin 148 - démarrage du coupteur d'adresses et lecture d'une instruction de la mémoire de prograume - le code opération est-il 1100011X ? 152 activationem des bytes de distance d'adresse et retour à zéro du tampon FIFO
153 - lecture d'un nombre de bytes d'infor-
nation égal à celui indiqué par le by-
te d'espacement d'adresse et stocka-
ge de ces bytes dans le tampon FIF0 154 - le code opération est-il C? ? visualisation de l'adresse actuelle - et tabulation 156 - visualisation du contenu du tampon FIFO0
et passage à une nouvelle ligne.
Jig. 8 z -37- Fig. 9a: 160 - début; 165 - fin 162 - stockage..de l'adresse initiale dans le
registre d'adresse de lecture et ex-
traction de l'adresse finale.
164 - stockage de l'adresse de destination dans le registre d'adresse d'écriture 166 - lecture de contenu - registre d'adresse - adresse finale ? 167 - lecture de l'instruction suivante 168 - l'instruction est-elle accompagnée d'une adresse d'appel relative.?
- le byte de code opération a-t-il la va-
leur C4 ? 171 - s'agit-il d'une instruction comportant une adresse d'appel absolue ?
172 - l'adresse d'appel entre adresse initia-
le et adresse finale 173 - modification de l'adresse d'appel de la différence entre l'adresse initiale et l'adresse de destination 174 transport de l'information Fig. 9b: 184 - l'adresse d'appel se trouve-telle entre l'adresse initiale et l'adresse finale ? 186 - modification de l'adresse d'appel de la différence entre l'adresse initiale et l'adresse de destination 188 - transport de l'information 192 - la distance d'adresse (302) est-elle atteinte ? Fig. 9c: 175 - l'adresse d'appel devient l'adresse actuelle + le byte d'adresse relative 176 - l'adresse d'appel se situe-t-elle entre l'adresse initiale et l'adresse finale ? 177a- l'adresse actuelle se situe-t-elle entre 35. l'adresse initiale et l'adresse finale ? 177b- l'adresse actuelle se situe-t-elle entre l'adresse initiale et l'adresse finale ? 179 - modification de l'adresse d'appel de la Fig. I0a: I0 Fig. 1Ob: -38- différence entre l'adresse initiale et l'adresse de destinatbn - diminution de l'adresse d'appel de l'adresse actuelle 181 - l'adresse relatvie se situe-t-elle entre des limites fixées ?
183 - visualisation de l'ancienne instruc-
tion 310 - début 334 - l'adresse actuelle devient la première adresse 336 - l'adresse actuelle la dernière adresse ? 338 - fin 312 - sauvetage de l'adresse actuelle dans le registre intermédiaire et lecture de l'adresse actuelle 316 - le code opération est-il C7 ?
318 - activation de la nouvelle page à impri-
mer 320 - visualisation de l'adresse sauvée et tabulation 322 visualisation de l'adresse actuelle et tabulation 324 - le code opération est-il C4, C5, C6, C? ?
326 - activation de l'élément de retraduc-
tion ASCII 330 - lecture du premier byte suivant et visualisation 328 - la distance d'adresse est-elle atteinte? 332 - visualisation d'une ligne d'espacement et passage à une nouvelle ligne
340 - activation de l'élément de retraduc-
tien; visualisation de l'instruc-
tion traduite et tabulation 342 - instruction avec adresse ?
344 - l'adresse est-elle une adresse rela-
-39-
tivre ? -
346 - calcul de l'adresse absolue 348 - visualisation de l'adresse absolue et tabulation 350- détection de sous-programme de titre et visualisation
352- s'agit-il d'une instruction d'aiguil-
*- lage ? 353 - visualisation d'une ligne d'espacement 356- instruction avec données proprement dites ? 358 - tabulation et visualisation de données binaires
354 - passage & une nouvelle ligne.
-40-
EVEHDICATIIOIS:,-
- - r.-ystème de machine à calculer comportant: a. use mémoire de programme présentant une séquence d'emplacements d'adresses pour le stockage de codes machine; b. un clavier de touches; o. un dispositif de vieualisation pour au moins une ligne de caractères; d. un processeur comportant au moins: IO dl. un registre A'adresse pour la mémoire de
prograunme comportant une entrée d'incr6-
mentation;
d2. un registre d'instruction (205) et d'au-
tres moyens de stockage (207, 256) qui, emsemble, ont une longueur prédéterminée
pour stoeker une instruction ayant au ma-
ximu cette longueur prédéterainée, ex-
* traite de la mémeire de programme; 43. un premier décooeur d'instruction connecté au registre d'instruction; d4. un élément d'exécution pour exécuter un traitement d'information sous la commande
d'un signal du premier décodeur d'instruc-
tien, lesdits éléments étant connectés par des liaisons d'informations pour des signaux
de données et des signaux de conande, carac-
térisé en ce qu'il comporte également: d5. un deuxième décodeur d'instruction (290)
pouvant ttre couplé au registre d'instruc-
tion pour, sous la commande d'un ensemble
de code machine prédéterminé (11000111) ap-
pliquer un signal d'activation à une entrée d'activation d6. un détecteur de distance d'adresse (298, 302) qui convient poer détecter une distance d'adresse avec un domaine de valeur dont la -41- limite supérieure contient au moins le contenu maximum d'une instruction, ce détecteur de distance d'adresse étant pourvu de premiers moyens (209) pour recevoir dans la mémoire de programme un signal séparé d'une première distance d'adresse appartenant, pour le code machine en question, audit ensemble de code et ensuite produire un premier signal de commande (296), des seconds
moyens (298) pour retenir dans la mé-
moire de programme une distance d'adres-
se relative parcourue après ledit code
machine et, lorsque la distance d'adres-
se est atteinte, produire un signal de désactivation (304) et faire cesser ledit
premier signal de commande, étant enten-
du que ledit premier signal de commande est à mse de piloter le processeur dans un mode non-actif pour des informations provenant de la mémoire de programme
après ledit signal séparé.
2 - Système de machine à calculer suivant la revendication 1, caractérisé en ce qu'un tampon (FIF0)
- premier entré - premier sorti (300) est prévu et com-
porte une entrée qui est connectée à une sortie de la mémoire de programme, et une entrée de chargement pour recevoir ledit premier signal de commande pour chaque
adresse de la mémoire de programme.
3 - Système de machine à calculer suivant la revendtation 1 ou 2,caractérisé en ce que ledit deuxième décodeur d'instruction est pourvu d'une première sortie
de signaux pour, sous la commande d'un premier code machi-
ne spécifique (04, 11000100) appartenant audit ensemble de
code machine prédéterminé, en coopération avec ledit pre-
mier signal de commande, identifier un mot extrait par
lecture de la mémoire de programme comme une donnée d'a-
dresse. -42- 4 - Système de machine à calculer suivant la revendication 1 ou 2, caractérisé en ce que ledit deuxième décodeur d'instruction est pourvu d'une deuxième sortie de signaux pour, sous la commande d'un deuxième code machine spécifique (05, 11000101)
appartenant audit ensemble de code machine prédéter-
miné, en coopération avec ledit premier signal de commande, identifier un mot extrait par lecture de la mémoire de programme comme une donnée proprement
I0 dite.
- Système de machine à calculer suivant la revendication 1 ou 2, caractérisé en ce que ledit deuxième décodeur d'instruction est pourvu d'une troisième sortie de signaux pour, sous la commande d'un troisième code machine spécifique (C6, 11000110)
appartenant audit ensemble de code machine prédéter-
miné, en coopération avec ledit premier signal de commande, identifier un mot extrait par lecture de
la mémoire de programme comme une donnée de texte.
6 - Système de machine à calculer suivant la revendication 1 ou 2, caractérisé en ce que ledit deuxième décodeur d'instruction est pourvu d'une quatrième sortie de signaux pour, sous la commande d'un quatrième code machine spécifique (C7, 11000111)
appartenant audit ensemble de code machine prédéter-
miné, en coopération avec ledit premier signal de commande, identifier un mot extrait par lecture de
la mémoire de programme comme une donnée de tite.
7 - Système de machine à calculer suivant
l'une quelconque des revendications 1 à 6 incluses,
caractérisé en ce que ledit signal de désactivation (304) fonctionne comme un premier signal d'arrêt (294) pour ledit registre d'adresse et que ledit clavier de touches est pourvu de quatrièmes moyens (par exemple 3.5 une barre d'espacement) pour, au moyen d'un deuxième signal de commande (270) rendre inactif ledit premier
signal d'arr8t.
8 - Système de machine à calculer suivant la revendication 7, caractérisé en ce que ledit clavier
de touches est. pourvu de cinquièmes moyens pour ren-
dre continuellement inactif ledit premier signal d'arr8t au moyen d'un troisième signal de commande
et que des moyens comparateurs d'adresses sont pré-
sents pour, lorsqu'une adresse finale est atteinte
par les registres d'adresse, faire cesser ledit troi-
sième signal de commande et produire un deuxiuème si-
gnal d'arrSt pour le registre d'adresse.
FR8018382A 1979-08-27 1980-08-22 Systeme de machine a calculer dans lequel la memoire de programme peut etre parcourue et des donnees qui n'appartiennent pas a une instruction sont detectees separement Granted FR2464521A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL7906416A NL7906416A (nl) 1979-08-27 1979-08-27 Rekenmachinesysteem, waarbij het programmageheugen geschikt is om doorlopen te worden waarbij niet tot een instruktie behorende gegevens apart gedetekteerd worden.

Publications (2)

Publication Number Publication Date
FR2464521A1 true FR2464521A1 (fr) 1981-03-06
FR2464521B1 FR2464521B1 (fr) 1982-11-26

Family

ID=19833731

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8018382A Granted FR2464521A1 (fr) 1979-08-27 1980-08-22 Systeme de machine a calculer dans lequel la memoire de programme peut etre parcourue et des donnees qui n'appartiennent pas a une instruction sont detectees separement

Country Status (6)

Country Link
US (1) US4376977A (fr)
JP (1) JPS5635249A (fr)
DE (1) DE3031964A1 (fr)
FR (1) FR2464521A1 (fr)
GB (1) GB2057731B (fr)
NL (1) NL7906416A (fr)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
JPS5938870A (ja) * 1982-08-30 1984-03-02 Sharp Corp 電子式計算機
JPS62229343A (ja) * 1986-03-29 1987-10-08 Toshiba Corp プログラム・カウンタ表示方式
US5535331A (en) * 1987-09-04 1996-07-09 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US11070373B2 (en) * 2018-02-21 2021-07-20 Ebay Inc. Masked key hopping

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3893084A (en) * 1973-05-01 1975-07-01 Digital Equipment Corp Memory access control system
US4089059A (en) * 1975-07-21 1978-05-09 Hewlett-Packard Company Programmable calculator employing a read-write memory having a movable boundary between program and data storage sections thereof
US4180854A (en) * 1977-09-29 1979-12-25 Hewlett-Packard Company Programmable calculator having string variable editing capability
US4231087A (en) * 1978-10-18 1980-10-28 Bell Telephone Laboratories, Incorporated Microprocessor support system

Also Published As

Publication number Publication date
FR2464521B1 (fr) 1982-11-26
GB2057731B (en) 1983-06-22
NL7906416A (nl) 1981-03-03
DE3031964A1 (de) 1981-03-19
US4376977A (en) 1983-03-15
JPS5635249A (en) 1981-04-07
GB2057731A (en) 1981-04-01

Similar Documents

Publication Publication Date Title
FR2464521A1 (fr) Systeme de machine a calculer dans lequel la memoire de programme peut etre parcourue et des donnees qui n'appartiennent pas a une instruction sont detectees separement
RU2137183C1 (ru) Устройство и способ обработки данных с использованием наборов команд
RU2137184C1 (ru) Отображение с помощью мультинаборов команд
NO843839L (no) En liten hukommelse for anvendelse i en sentra databehandlingsenhet
FR2480018A1 (fr) Appareil d'adressage de memoire
FR2645663A1 (fr) Procedes et circuits pour gerer une pile en memoire
JPH0895824A (ja) データ処理装置及びデータ処理方法
US5220656A (en) System for selecting control parameter for microinstruction execution unit using parameters and parameter selection signal decoded from instruction
CH629319A5 (fr) Installation de traitement de donnees.
FR2513410A1 (fr) Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur
EP0488819A2 (fr) Dispositif d'exécution d'instructions de branchement conditionnel
FR2539260A1 (fr) Systeme de transmission de donnees
JP2002051072A (ja) パケット処理装置
JPH08305581A (ja) プログラム変換装置及びプロセッサ
FR2508669A1 (fr) Dispositif logique programmable de prise, traitement et transmission de donnees
FR2569288A1 (fr) Dispositif de calcul d'adresse pour un appareil de traitement numerique
FR2483656A1 (fr) Ordinateur comportant des circuits de manipulation de bits
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
FR2461329A1 (fr) Dispositif de traitement de donnees a deux niveaux de memorisation
NO167068B (no) Apparat og fremgangsmaate for omforming av et tall i binaert format til desimalformat
EP0006485B1 (fr) Dispositif d'adressage de pages dans un système de traitement de données
FR2645665A1 (fr) Dispositif de decodage d'instructions en pipeline pour microprocesseur
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JPS6049337B2 (ja) パイプライン制御方式
JP2000122876A (ja) 情報処理装置

Legal Events

Date Code Title Description
ST Notification of lapse