FR2533736A1 - Unite de gestion de memoire pour un ordinateur numerique - Google Patents

Unite de gestion de memoire pour un ordinateur numerique Download PDF

Info

Publication number
FR2533736A1
FR2533736A1 FR8315305A FR8315305A FR2533736A1 FR 2533736 A1 FR2533736 A1 FR 2533736A1 FR 8315305 A FR8315305 A FR 8315305A FR 8315305 A FR8315305 A FR 8315305A FR 2533736 A1 FR2533736 A1 FR 2533736A1
Authority
FR
France
Prior art keywords
memory
management unit
main memory
memory management
access
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.)
Pending
Application number
FR8315305A
Other languages
English (en)
Inventor
Paul A Baker
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of FR2533736A1 publication Critical patent/FR2533736A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Abstract

L'INVENTION CONCERNE UNE UNITE DE GESTION DE MEMOIRE UGM POUR GERER LA MEMOIRE PRINCIPALE D'UN ORDINATEUR. CETTE UNITE COMPREND UNE MEMOIRE 20 DIVISEE EN SECTEURS ADRESSABLES SEPAREMENT PAR L'UNITE DE TRAITEMENT DE L'ORDINATEUR AU MOYEN DE LIGNES DE SELECTION 35 DE SORTE QUE PLUSIEURS PROCESSUS D'UTILISATEUR PEUVENT ETRE TRAITES SANS QUE L'UNITE DE GESTION AIT BESOIN D'ETRE REPROGRAMMEE A CHAQUE CHANGEMENT DE PROGRAMME. EN OUTRE, DES BITS DE CONTROLE D'ACCES SONT EGALEMENT ENREGISTRES DANS LA MEMOIRE 20 ET SONT APPLIQUES A UN CIRCUIT DE CONTROLE D'ACCES 40 DE FACON A EMPECHER, NOTAMMENT, L'ACCES DES UTILISATEURS AU SYSTEME D'EXPLOITATION OU L'ECRITURE ACCIDENTELLE DANS UN PROGRAMME.

Description

La présente invention se rapporte au domaine des mé-
moires d'ordinateur et des unités servant à gérer le conte-
nu de telles mémoires.
Dans la plupart des ordinateurs, une unité de traite-
ment centrale (UTC) communique directement à la fois avec un bus d'adresse et avec un bus de données Ces bus sont couplés à une mémoire principale (ou à des systèmes de
mémoire principale) et également à de nombreux autres élé-
ments, tels que des interfaces d'entrée/sortie, des pro-
cesseurs spécialisés, des unités à accès direct à la mémoire,
etc La mémoire de l'ordinateur principal est souvent l é-
lément le plus onéreux de l'ordinateur,en particulier si on
compare son prix à celui des unités centrales des mini-.
ordinateurs actuellement disponibles dans le commerce, telles
que les unités 8080, 8086, 6800 et 68000 Ainsi, il est im-
portant d'utiliser efficacement la mémoire principale de l'or-
dinateur. Des unités de gestion de mémoire-(UGM) ont été utilisées
dans la technique antérieure pour assurer une utilisation ef-
ficace de la mémoire principale de l'ordinateur Ces unités
remplissent des fonctions d'aménagement, telles que la réor-
ganisation des données en mémoire, etc Fréquemment, une unité UGM comporte une mémoire qui contient une base de translation des données Les bits les plus significatifs de l'adresse logique fournie par l'unité de traitement sont utilisés pour adresser la mémoire de l'unité UG Mo Ces bits,
du point de vue de l'unité de traitement, par exemple, déter-
minent un segment de la mémoire principale Le numéro de segment choisi par l'unité de traitement est remplacé par un nouveau numéro extrait de la mémoire de l'unité UGM et il se produit ainsi une translation de l'adresse logique
fournie par l'unité de traitement à l'adresse physique uti-
lisée pour accéder à la mémoire principale.
Une autre fonction exécutée par les unités de gestion de mémoire consiste à contrôler les adresses fournies par
l'unité de traitement afin de vérifier qu'elles sont com-
prises à l'intérieur de certaines limites Un nombre limite mis en mémoire dans la mémoire de l'unité UGM est comparé à des bits d'ordres inférieurs de l'adresse logique (par exemple, le décalage de page) pour assurer que le décalage de page est compris à l'intérieur d'un intervalle d'adresses prédéterminé du numéro de segment choisi Ceci empêche, à titre d'exemple, la lecture par inadvertance de "données" dans des emplacements de mémoire ou des données n'ont pas
été placées.
La présente invention constitue un développement des unités de gestion de mémoire (UGM) de la technique antérieure
qui fournissent une base de translation et assurent une vé-
rification de l'intervalle d'adresses Comme on le verra, la mémoire de l'unité UGM est développée dans une direction pour mettre en mémoire des signaux représentant la nature
des informations mises en mémoire dans la mémoire principale.
Ces signaux sont utilisés pour commander l'accès à la mémoire
principale et, à titre d'illustration, ils empêchent l'écri-
ture accidentelle dans les programmes et l'accès de l'utili-
sateur aux systèmes d'exploitation La mémoire de l'unité
UGM est également développée dans une autre direction de fa-
çon à assurer une gestion de la mémoire avec chevauchement.
Ceci permet à différents processus (programme et données) d'être exécutés par l'ordinateur sans reprogrammation de
la mémoire de l'unité UGM.
La présente invention a ainsi pour objet une unité de gestion de mémoire (UGM) conçue pour être utilisée avec un ordinateur qui comprend une unité de traitement centrale (UTC) et une mémoire principale L'unité UGM comprend une
base de translation et, lorsqu'elle reçoit des premiers si-
gnaux d'adresse de l'unité de traitement, elle fournit des seconds signaux d'adresse pour accéder à-la mémoire L'unité UGM comprend également des moyens de mémoire pour recevoir
et enregistrer des signaux représentatifs des types d'infor-
mations mis en mémoire dans des emplacements de la mémoire principale Des moyens d'accès sont prévus pour accéder à ces
signaux enregistrés lorsque l'on accède aux emplacements cor-
respondants dans la mémoire principale Les signaux des moyens de mémoire sont couples à la mémoire principale O par exemple O pour limiter l'accès à certains types de données contenus dans la mémoire principaletels que les systèmes d'exploitation Les signaux peuvent être également utili= sés pour ne premettre que la lecture des programmes et pour permettre l'écriture et la lecture des données Dans le mode de réalisation actuellement préféré, les moyens de mémoire
font partie intégrante de la mémoire de l'unité UG Ho La mé-
moire de I UGM a quatre fois la capacité qui serait néces-
saire pour fournir les nombres de base de translation et les nombres limites pour l'ensemble de la mémoire principaleo Comme on le décrira O cette capacité supplémentaire permet de
réaliser un type de"commutation de groupes O " et permet ainsi-
de faire exécuter différents processus par l'ordinateur sans qu'il soit nécessaire de reprogrammer la mémoire de l Uunité UG Mo D'autres caractéristiques de l'Uinvention apparaitront
à la lecture de la description qui va suivre et à l'examen
des dessins annexes dans lesquels: la Fig 1 est un schéma=bloc général qui représenite une unité de traitement centrales (UTC) O une unité de gestion de
sûémoire (UGM) et une mémoire principale et leurs intercon-
nexions dans un ordinateur; la Fig 2 est un schéma qui montre l'organisation des données enregistrées dans la mémoire de 1 'unité UGH de la présente invention D
la Fig 3 est un schémaobloc de l'unité UGM de l'inven-
tion; et la Figo 4 est un schéma-bloc utilisé pour décrire les différents contextes employés pour le fonctionnement de l'unité UGM et l'organisation résultante des informations mises en mémoire dans la mémoire principale de l'ordinateuro On décrira ci-après une unité de gestion de mémoire óUGM) conçue pour dtre utilisée dans un ordinateur numérique qui comprend une unité de traitement centrale (UTC} et une
mémoire principaleo Dans la description qui va suivre on don-
nera de nombreux détails spécifiques O tels que les dimen-
sions spécifiques des mémoires, des numéros de pièce, etc afin de permettre une pleine compréhension de laprésente
invention Cependant, il apparaîtra à l'évidence aux spécia-
listes de la technique que ces détails spécifiques ne sont pas nécessaires pour la mise en oeuvre de la présente inven- tion Dans d'autres cas, on ne décrira pas en détail des structures et circuits bien connus afin de ne pas obscurcir
l'invention par des détails inutiles.
Sur la Fig 1 à laquelle on se référera tout d'abord, on a représenté l'interconnexion entre une unité UGM, une unité UTC et une mémoire principale Cette Interconnexion
est approximativement la même que dans la technique anté-
rieure L'ordinateur de la Fig 1 comporte un bus de don-
nées bidirectionnel 16 qui communique avec l'unité UTC 10, avec la mémoire principale 14 et avec l'unité UGM 12 Un bus d'adresse 18 reçoit des signaux d'adresse de l'unité UTC 10 et transmet une partie de ces adresses à l'unité UGM 12 et une partie à la mémoire principale 14 D'autres signaux de commande sont transmis entre l'unité de traitement 10 et l'unité UGM 12 comme représenté par les lignes 35 et 37 et
entre l'unité UGM, 12 et la mémoire principale 14 comme re-
présenté par la ligne 57.
L'unité UGM 12 est programwlli par l'unité UTC 10 par l'intermédiaire du bus de données 16 Des adresses sont transmises sur le bus 18 à l'unité UGM 12 par l'unité de traitement 10 pour permettre le chargement de l'unité UGM 12.
Dans le mode de réalisation actuellement préféré, l'u-
nité de traitement 10 est un processeur 68000 Dans le cas
o elle est constituée par ce processeur, l'unité de traite-
ment 10 fournit des adresses de 24 bits (En fait le bit le moins significatif n'est pas physiquement présent en tant que tel mais est codé dans d'autres signaux; cependant, aux
fins de la présente description,on admettra que c'est un bit
d'adresse ordinaire) En outre, on admettra également, aux
fins de la description, que les 7 bits les-plus significatifs
de chaque adresse logique produite par l'unité de traitement d terminent un segment dans la mémoire, que les 8 bits moins significatifs suivants indiquent un décalage de page et que
les 9 bits les moins significatifs indiquent un décalage.
Dans le mode de réalisation actuellement préféré, le segment et le décalage de page de chaque adresse sont trans-
mis à l'unité UGM 12 L'unité UGM fournit une base de trans-
lation en remplaçant le numéro de segment fourni par l'unité de traitement 10 par un numéro de segment enregistré dans
l'unité UGM 12 Plus précisément, le numéro de segment trans-
mis par l'unité de traitement 10 adresse une mémoire contenue
dans l'unité UGM 12 et cette mémoire fournit une base de seg-
ment utilisée pour adresser la mémoire principale 14 La par-
tie de décalage de page de l'adresse transmise par l'unité de traitement est contrôlée pour déterminer si le décalage
de page est compris à l'intérieur d'un intervalle prédéter-
miné du segment Ceci, par exemple, empêcherait la lecture et l'interprétation comme données d'une zone ne contenant que des zéros provenant d'un espace inutilisé de la mémoire principale La base de segment fournie par l'unité UGM et le décalage de page sont ajoutés puis transmis à la mémoire principale 14 sur les bus 18 a et 18 b de la Fig 1 Les 9 bits les moins significatifs sont transmis directement de
l'unité de traitement à la mémoire principale par le bus 18 c.
Comme représenté sur la Fig 3 à laquelle on se référe-
ra maintenant, le mode de réalisation actuellement préféré de l'unité de gestion de mémoire comporte une mémoire 20 d'unité UGM Cette mémoire est une mémoire à accès sélectif
fabriquée à partir des dispositifs de mémoire à accès sélec-
tif PJ 4 statiques à MDS disponibles dans le commrce Dans le mode de réalisation pratique actuel, trois RAM du type connu sous le n 2148 sont utilisées pour former la mémoire ce qui donne à cette dernière une capacité totale de 12 kbits ( 12 x 1024 = 12 288 bits) On décrira ultérieurement en plus de détails l'organisation de la mémoire de l'unité UGM,
en particulier en se référant à la Fig 2.
L'adresse transmise par l'unité de traitement est repré-
sentée comme étant une adresse de 24 bits (adresse logique) indiquée dans la partie supérieure de la Fig 3 Les 7 bits
les plus significatifs de l'adresse sont transmis à la mé-
moire 20 de l'unité UGM par le bus 18 a et sont utilisés pour
adresser la mémoire de l'unité UGM Les bits les plus signi-
f icatif S suivants (bus 18 b) sont transmis à un additionneur 27 et les 9 bits les moins significatifs (décalage) sont transmis par le bus 18 c à un registre 28 Les données de sortie de la mémoire 20 de l'unité UGM sont constituées de
deux mots de 12 bits chacun (transmis sur des bus 22 et 23).
Ces mots sont transmis par l'intermédiaire d'un multiplexeur
à un bus à 12 bits 30 L'un des mots de 12 bits de la mé-
moire 20 constitue la base de segment fournie par la base de translation enregistrée Le second mot de 12 bits comporte 8 bits pour le contrôle de la limite du décalage de page et
4 bits supplémentaires qui remplissent des fonctions qui re-
présentent une partie de la présente invention.
(Dans le mode de réalisation actuellement préféré, le multiplexeur 25 n'existe pas physiquement mais les données de sortie de la mémoire 20 sont multiplexées par répartition dans le temps Cependant, aux fins de l'explication, il est
plus facile d'utiliser le multiplexeur 25).
Le multiplexeur 25 est également utilisé pour charger des informations provenant du bus 16 dans la mémoire 20 Le signal transmis sur la ligne 47 provenant du circuit logique 40 de contrôle d'accès commande l'accès à la mémoire 20 comme le font les signaux des lignes 35 Le signal de la ligne 37 commande le multiplexage des données soit au bus 22 soit au
bus 23.
Le bus 30 de 12 bits partant du multiplexeur 25 abou-
tie à l'additionneur 27 Cet additionneur reçoit également les
8 bits présents sur le bus 18 b Comme on le décrira, l'addi-
tionneur 27 est utilisé pour déterminer si le décalage de page est compris à l'intérieur d'un intervalle prédéterminé du segment choisi L'additionneur 27 combine également la translation (base de segment) fournie par la mémoire 20 de l'unité UGM avec le décalage de page pour fournir les 12 bits les plus significatifs de l'adresse physique Ces 12 bits avec les 9 bits provenant du bus 18 c sont transmis au
registre 28 pour former une adresse de 21 bits qui est trans-
mise à la mémoire principale 14 o t Le registre 28 n'existe pas-dans le mode de réalisation actuellement prêféré, mais il a été représenté aux fins de 1 explication o Les 4 bits de contrôle d'accès sont transmis par le multiplexeur 25 sur les lignes 45 au circuit logique 40 de contrôle d'accèso Dans ce circuit 9 les signaux sont'décodés pour assurer la commande de la mémoire principale et d'autres commandes de la manière suivante Un bit commande le type d'accès à la mémoire principale (i 1 =lecture seule, O = lecture/ écriture)o Le second bit commande l'accès E/S {( 1 =E/S, O = pas d'accès E/S) Le troisième bit commande l'accès à la mémoire
principale ( 1 = accès à la mémoire 9 O = pas d'accès à la mé-
moire principale) Le quatrième bit commande la formation de piles ( 1 =segment de pile-contrôle l'absence d'un dépassement
de capacité, 0 = segment normal-contrôle la présence d'un dé-
passement de capacité) Le circuit logique 40 de contrôle d'accès a été représenté sur la Fig O 3 relié à la commande de la mémoire principale par la ligne 57 de façon à commander
l'accès à la mémoire et le type d'accès permis (à savoir lec-
ture ou lecture/écriturej Le circuit logique 40 est relié àl'ad-
ditionneur 27 par les lignes de dépassement de capacité et de report en entrée et à la mémoire 20 par la ligne 47 pour conditionner l'accès à la mémoire 20 La configuration de bits de commande d'accès spécifique utilisée dans le mode de réalisation actuellement préféré
est représentée ci-dessous.
Bits de commande d'accès
MEM ES LS PILE
BITS ESPACE D'ADRESSES ET ACCES
0 1 O O Mémoire Principale-Lecture seule-
Pile 0 1 O 1 Mémoire Principale-Lecture seule
O 1 1 O Mémoiré Principale-Lecture/écriture-
Pile 0 1 1 1 Mémoire Principale-Lecture/écriture
MEM ES LS PILE
BITS ESPACE D'ADRESSES ET ACCES
1 O O 1 Espace E/S 1 1 O O Page invalide (segment non présent) 1 1 1 1 Espace E/S Spécial
Autre configuration non autorisée (résultat imprévi-
sible)
On supposera tout d'abord que la mémoire 20 a été pro-
grammée par l'unité de traitement Aux fins d'une explica-
tion à un premier niveau, on ignorera la fonction des deux
2 bits transmis sur les lignes 35 Lorsque l'unité de trai-
tement adresse la mémoire principale, les 7 bits les plus significatifs adressent la mémoire 20 de l'unité UGM Les 12 bits de segment de données de translation sont transmis par le bus 22 et le bus 30 à l'additionneur 27 Ils sont combinés avec le décalage de page (bus 18 b) et l'adresse résultante est combinée avec les 9 bits du décalage contenu
dans le registre 28 pour fournir l'adresse physique finale.
Cette padtie de l'unité UGM fonctionne d'une manière très
proche de celle des unités UGM de la technique antérieure.
Ainsi, les données de base de segment de translation peuvent être programmées dans la mémoire (en ignorant les lignes 35)
d'une manière bien connue dans la technique antérieure.
Les 12 bits qui forment les données de limite et d'ac-
cès sont transmis par le bus 23 au multiplexeur 25 Les 8
bits des données de limite sont transmis à l'additionneur 27.
Les 4 bits des données d'accès sont transmis au circuit lo-
gique 40 par Ies lignes 45, comme précédemment décrit Les données de limite,dans le mode de réalisation actuellement
préféré, sont mises en mémoire sous la forme de leur complu-
ment à 1 dans la mémoire 20 dans le cas d'un segment qui ne
constitue pas une pile Pour les segments de pile, la li-
mite mise en mémoire est la"longueur moins un'" (par exemple un segment de deux pages sera mis en mémoire sous la forme 0000 0001 dans la mémoire 20) Lorsque ces données de limite sont ajoutées au décalage de page dans l'additionneur 27, le résultat de cette addition détermine si le décalage de page est ou non compris dans l'intervalle prédéterminé du segment Ceci constitue un perfectionnement par rapport au
contrôle de la technique antérieure qui nécessite l'exécu-
tion d'étapes logiques supplémentaires.
Exemple d'un segment ne constituant pas une pile Sur la Fig 4 à laquelle on se référera brièvementon a
montré une représentation schématique de la mémoire princi-
pale 14 de l'ordinateur Supposons que des données sont mises en mémoire aux emplacements 50 Supposons également que le décalage de page le plus élevé ( 1111 1111) pour les données s'étende jusqu'à l'emplacement 52 et qu'à l'intérieur de ce segment les données s'étendent jusqu'à un décalage de page de 1110 0000 (ligne 51)o Pour ce décalage de page, le complement à 1 de 1110 0000 O( 0001 1111) est mis en mémoire dans la mémoire 20 de la Fige 3 Si ce segment est adresssé et si l'on suppose que l'adresse de décalage de page est 1111 1111 (c'est-à-dire dans l'espace libre de la mémoire), l'additionneur 27 ajoute 1111 1111 au nombre mis en mémoire qui est 0001 1111 Un dépassement de capacité est indiqué par l'additionneur 27 et cette condition de dépassement de
capacité est détectée par le circuit logique 40 de la Fig 3.
Pour cet exemple, un dépassement de capacité indique que le décalage de page n'est pas à l'intérieur de l'intervalle du
segment et un signal est transmis sur la ligne 57 pour indi-
quer que l'adresse est erronée Le circuit logique 40 au moyen de la ligne 57 empêche l'accès à la mémoire principale et/ou provoque la production d'un signal d'erreur, Nous référant à nouveau à la Fig O 4, on supposera qu'un programme est mis en mémoire aux emplacements 53 et que le décalage de page le plus élevé ( 1111 1111) pour le programme
53 s'étend jusqu'à l'emplacement 50 qui se trouve à l'exté-
rieur du programme effectif qui se termine à l'emplacement 54 Si le décalage de page pour l'emplacement 54 est 0011 0000, le nombre 1100 1111 est mis en mémoire dans la mémoire 20 de la Fig 3 pour le segment qui commence à l'emplacement Si le segment est adressé et si le décalage de page est 0000 0001 (le programme est adressé) l'additionneur 27 ajoute 1100 1111 et 0000 0001 Dans ce cas, il ne se produit
pas de dépassement de capacité et aucun signal n'est trans-
mis au circuit logique 40, c'est-à-dire que l'accès est per-
mis On notera que si le décalage de page est de 0100 0000 (hors de l'intervalle), il se produit un dépassement de capa- cité lorsque ce'nombre est ajouté au nombre 1100 1111 mis en
mémoire Ce dépassement de capacité indique au circuit lo-
gique 40 que le décalage de page n'est pas compris dans
l'intervalle du segment et l'accès de la mémoire est inva-
lidé.
Exemple de segment de pile Pour certains langages de programmation (par exemple,
le Pascal),l'emploi de piles (en mémoire) est très désirable.
On peut former des piles en déplaçant les données vers le
haut dans la mémoire quoiqu'une telle opération prenne beau-
coup de temps Avec le système que l'on décrira ci-après, des piles peuvent croitre vers le bas dans la mémoire au
moyen d'une procédure de contrÈle de limite différente.
Supposons un segment de pile d'une page Le nombre li-
mite mis en mémoire dans la mémoire 20 sous forme du complé-
ment à 1 du décalage de page ( 1111 1111 '0000 0000) qui est
égal à la dimension du segment moins 1 ( 0000 0001 > 0000 0000).
Les bits de contr 6 le d'accès provoquent l'application par le circuit logique 40 d'un report en entrée de 1 Si le décalage
de page est 1111 1111, il se produit un dépassement de capa-
cité Ce dépassement de capacité est détecté par le circuit
logique 40 et interprété comme une condition valide (à l'inté-
rieur de l'intervalle du segment) Si le décalage de page
était de 1111 1110 (pile ayant cr excessivement),aucun dépas-
sement de capacité ne se produirait et ceci serait interprété
comme une adresse en dehors de l'intervalle du segment.
De la même manière, si la pile est un segment de deux pages, le nombre 0000 0001 est mis en mémoire dans la mémoire Dans ce cas également, le report en entrée est mis égal
à 1 Un décalage de page de 1111 1110 provoquera un dépasse-
ment de capacité indiquant une adresse comprise dans l'inter-
valle du segment tandis que pour un décalage de page de
253373 é
il 1111 1100,il ne se produira pas de dépassement de capacité
ce qui indiquera une adresse située en dehors de l'inter-
valle du segment .
Exemple de la Figure 4 Nous nous référerons à nouveau à la Fig 4 et nous sup- poserons qu'un processus (programme et données) est contenu dans la mémoire principale 14 entre les emplacements O et
500 k B ( 1 k B = 1024 multiplets)o Les trois bits d'accès res-
tant dans la mémoire 20 correspondant aux adresses de seg-
ment pour les emplacements 0-500 k B sont utilisés pour four-
nir une commande spéciale, comme mentionnéo Par exemple,-pour les segments qui ne contiennent que le programmeg seule la
lecture de la mémoire est autorisée Ceci empêche naturelle-
ment l'écriture accidentelle dans le programme L 'écriture
et la lecture peuvent être toutes deux permises dans les seg-
ments qui contiennent des donnéeso Ceci est indiqué à la droite du programme 59 et des données 60 sur la Fig 4 o La mémoire 20 est programmée (c'est-o=dire au moyen des
bits de contrô 181 e d'accès) pour empêcher la lecture de cer-
tains segments de la mémoire principale sauf dans certains
modes (par exemple, dans le mode superviseur) o Ceci est ef-
fectué, par exemple, pour empêcher un utilisateur de lire
puis de copier un système d'gexploitationo Nous réf 6 rant briè-
vement à la -Figo 4, lorsque le programme 59 est en cours -
d'exécution, aucun accès à la mémoire 20 n'est permis étant donné qu'un tel accès pourrait provoquer une modification
accidentelle de la base de translationg des données de li-
mite ou des données d'accès Ainsig les quatre bits de con-
trôle d'accès assurent la protection du programme mis en mé-
moire dans la mémoire principale et ils limitent également l'accès à certaines informations enregistrées dans la mémoireo Dans une application typique, un système d'exploitation est chargé, à partir d'un disque, dans la mémoire principaleo Une fois qu'il a été chargé dans la mémoire principale, l'unité de traitement peut accéder au système d'exploitation dans les modessuperviseurse cependant, l'utilisateur ne peut pas avoir accès au système d'exploitation et, par conséquent, il
ne peut pas le copier.
Conformément à la présente invention, la mémoire 20 a quatre fois la capacité qui serait effectivement nécessaire pour fournir une base de translation et des données de li mite et d'accès pour la mémoire principale Les signaux -
transmis par l'unité de traitement sur les lignes 35 per-
mettent le choix de chacun des secteurs de la mémoire 20.
Chacun de ces secteurs ou quadrants est appelé un "contexte"
(<contextes O à 3) dans la description qui va suivre.
Sur la Fig 2 à laquelle on se référera, on a représen-
té la mémoire 20 de l'unité UGM comme étant divisée en quatre secteurs séparés k savoir les secteurs 20 a (contexte
0) 20 b (contexte 1) 20 c (con texe 2) et 20 d (contexte 3).
Chacun des contextes l 2 et 3 est organisé en un agencement de 256 x 12 bits ( 128 x 12 bits pour la base de translation et
128 x 12 bits pour les données de limite et d'accès) Le con-
texte O est choisi par lgunité de traitement lorsqu'elle est dans le mode superviseur et ce contexte contient les données de gestion qui se rapportent au système d'ezploitation On
doit noter que chaque contexte est capable de mettre en mé-
mxoire des informations qui couvrent la totalité de la m-
moire principale et qu'ainsi il y a trois mémoires d'unité
UGM qui se chevauchent pour les processus d'utilisateur.
L'intérat que présente tlemïploi de ces mémoires qui se
chevaucheht est plus particulièrement visible sur la Fig 4.
La mémoire principale 14 est representée comme étant program-
mée avec trois processus Pli P 2 et P 3 Le processus 1 est mis en mémoire entre O et 500 k E, le processus 2 entre 600 k B
et 1 MB et le processus 3 entre 192 k M et 15 2 Bo Les don-
nées qui se rapportent au système d'exploitation sont mises en mémoire entre 1 98 _B et 2:B on supposera tout d'abord que le système d'exploitation est chargé dans la mémoire dans laquelle il est enregistré entre 13 MB et 2 fo Une base de translation appropriée est mise en mémoire dans la mémoire 20
de façon qu'au cours des modes superviseurs,les adresses 0-
k B choisissent automatiquement les adresses de 1,8 MB à
2 MB dans la mémoire principale En outre, les limites appro-
priées sont chargées dans la mémoire 20 pour assurer que pendant le mode superviseur, l'espace libre de la mémoire principale ne soit pas accédé Pendant le mode superviseur (contexte 0),comme indiqué sur la Fig 4 sous l'en-tête "contexte 0 ", un accès complet à la mémoire de l'unité UGM et à la mémoire principale (sauf en ce qui concerne les bits de contrôle d'accès qui empêchent l'écriture dans le
* système d'exploitation enregistré dans la mémoire princi-
pale, protégeant de ce fait la mémoire des dommages dûs à
une erreur de programme) Etant donné que la mémoire de l'u-
nité UGM est accessible à ce moment, elle peut être program-
mée par l'intermédiaire du bus 16, comme indiqué sur la Fig.
3 et comme précédemment décrit.
Supposons que le contexte 1 doive être utilisé pour le programme 59 et les données 60; un secteur de la mémoire 20
de l'unité UGM correspondant au contexte l est alors pro-
grammé pour indiquer l'emplacement du programme 59 et des données 60 Les bits d'accès et de limite sont alors mis comme indiqué sous l'en-tête "contexte 1 " Ainsi, lorsque le contexte 1 est choisi, le programme 59 peut (seulement) être lu et la lecture et l'écriture des données 60 est permise.
Aucun accès aux autres emplacements de la mémoire principale n'est possible et il n'est pas non plus permis d'écrire dans
la mémoire de l'unité UGM.
Un second processus peut-être enregistré dans la mémoire.
Le système d'exploitation connait l'emplacement du premier
processus et il peut programmer un autre secteur de la mé-
moire 20 pour le processus 2 La base de translation est pro-
grammée de-telle sorte quelorsque l'unité de traitement adresse des emplacements correspondant à 0-400 k B, les adresses des emplacements 600 k B à 1 MB sont transmises à la mémoire principale Comme indiqué sur la Fig 4 sous l'en-tête "contexte 21 ", les bits d'accès sont programmés de façon à permettre l'écriture et la lecture des données 50 et seulement la lecture du programme 53 En outre, aucun accès (d'écriture) à la mémoire de l'unité UGM n'est permis
et un accès N est également pas permis aux autresemplace-
ments de la mémoire principale De la même manière, un troi-
sième processus peut être mis en mémoire dans la mémoire
principale pour le contexte 3, comme indiqué sur la Fig 4.
L'avantage que présente l'agencement de la Fig 4 est que trois processus séparés sont mis en mémoire dans la mé-
moire principale et que chaque processus peut être facile-
ment choisi par l'intermédiaire de la mémoire de l'unité UGM,c'est-à-dire en choisissant le contexte 1, le contexte
2 ou le contexte 3 Un contexte séparé (contexte 0) est ré-
servé comme point de départ pour le système d'exploitation
dans le mode de réalisation actuellement préféré, comme dé-
crit ci-dessus Ceci permet d'exécuter trois programmes dif-
férents sans aucune reprogrammation de la mémoire de l'unité UGM Cette souplesse d'utilisation est obtenue du fait de la capacité de gestion de mémoire avec chevauchement de la
mémoire de l'unité UGM.
Ainsi, on a décrit une unité de gestion de mémoire per-
fectionnée qui permet d'exécuter plusieurs programmes sans
reprogrammer la mémoire de l'unité UGM de l'ordinateur L'u-
nité perfectionnée limite également l'accès à certains types
de données et empêche-l'écriture accidentelle dans le pro-
gramme.

Claims (14)

VENDICATIONS
1 Une unité de gestion de mémoire (UGM) pour un ordinateur
qui comporte une unité de traitement centrale'(UTC> une mé-
moire principale et une unité de gestion de mémoire qui re-
Goît des premières adresses de l'unité de traitement et qui fournit des secondes adresses pour accéder à la mémoire principale, cette unité de gestion ( 12} tant caractérisée
en ce qu Sel 1 e comprends des moyens de mémoire ( 20) pour rece-
voir et enregistrer des signaux représentatifs des types d'informations mis en mémoire dans des emplacements de la mémoire principale ( 14), lesdits moyens de mémoire étant couplés à l unité de traitement ( 10 pour recevoir au moins une partie des premières adresses" des moyens d'accès pour
accéder aux signaux enregistrés dans lesdits moyens de mé-
moire j 20 > lorsque 1 on accède à deà emplacements correspon-
dants de la mémoire principale par les secondes adresses" des
moyens de couplage D 40 a 57) pour coupler les signaux repré-
sentatifs des types d'informations mis-en mémoire dans la mémoire principale à la mémoire principale afin de limiter l Paccès à certains desdits types d'informationse de telle
sorte que l'acecès de 1 lutilisat eur à certains types d'infor-
mations contenues% dans la mémoire principaletels que les systèmes d Dexploitationest limitéo 2 L'unité de gestion de mémoire selon la revendication 1,
caractérisée en ce que les-moyens de mémoire et moyens d'ac-
cès comprennent une mémoire à accès sélectifmmoire de lau-
nité de gestion qui contient également la base de transla-
tion de l'unité de gestion de mémoire.
3 Lunité de gestion de mémoire selon la revendication 2, caractérisée en ce que les moyens de couplage (f 40, 57) ne
permettent également que la lecture d'autres types d'infor-
mationso 4 L'unité de gestion de mémoire selon la revendication 3,
caractérisée en ce que les moyens de couplage ( 40, 57 D per-
mettent également aussi bien l Pécriture que la lecture d 5 en-
core d'autres types a'informations O L'unité de gestion de mémoire selon la revendication 2, caractérisée en ce que la msmoire ( 20) de l'unité de gestion
de mémoire { 12) met également en mémoire des nombres limites.
6 L'unité de gestion de mêmoire selon la revendication 5, caractérisée en ce que la mémoire ( 20) de l'unité de gestion de mémoire comporte plusieurs secteurs de méoire ou contextes, chacun pour recevoir les premières adresses et pour fournir dessecondesadresses différentes en fonction de celui des contextes qui est choisi de telle sorte que les contel;tes
fournissent une gestion de mémoire 1 chevauchement.
1 o 7 Une unité de gestion de mémoire principale d'ordinateur conçue pour recevoir des premières adresses de l'unité de traitement centrale (UTC) de U'ordinateur et pour fournir des secondes adresses pour accéder à la mémoire pricnipale
de l'ordinateur, cette unité de gestion ( 12) étant caracté-
risée en ce qu'elle comprends des moyens de mémoire ( 20) pour recevoir et enregistrer des signaux représentati Es des types
d'informations mis en mémoire dans des emplacements de la mé-
moire principale ( 14), lesdits moyens de mémoire étant cou-
plés à l'unité de traitement; 1 O) pour recevoir au moins une
partie des premières adresses O des moyens d'accès pour accé-
der aux signaux enregistrés dans lesdits moyens de mémoire ( 20) lorsque des emplacements correspondants de la mémoire principale sont accédés par les secondes adresses; des
moyens de couplage ( 40 57 D pour coupler les signaux repré-
sentatifs des types d'informations mis en mémoire dans la mé-
moire principale à la mémoire principale afin de limiter l'accès de l'utilisateur aux processus mis en mémoire dans ladite mémoire principale, de telle sorte que l'accès de l'utilisateur à certains types d'informations contenus dans
la mémoire principale-tels que les programmes,est limité.
8 Unité de gestion de mémoire principale selon la revendi-
cation 7, caractérisée en ce que les moyens de mémoire et moyens d'accès comprennent une mémoire à accès sélectif, mnémire de l'unité de gestion, qui contient également la base
de translation de l'unité de gestion de mémoire.
9 Unité de gestion de mémoire principale selon la revendi-
cation 8, caractérisde en ce que les moyens de couplage ( 40,
57) ne permettent que la lecture des programmes mis en mé-
moire dans la mémoire principale ( 14)o
Unité de gestion de mémoire principale selon la revendi-
cation 9, caractérisée en ce que les moyens de couplage ( 40, 57) permettent la lecture et l'écriture de données mises en mémoire dans la mémoire principale ( 14)
11 Unité de gestion de mémoire principale selon la reven-
dication 10, caractérisée en ce que les moyens de couplage ( 40, 57) interdisent l'accès de l'utilisateur au système
d'exploitation mis en mémoire dans la mémoire principale.
12 Unité de gestion de mémoire principale selon la reven-
dication 8, caractérisée en ce que la mémoire ( 20) de l'u-
nité de gestion de mémoire principale met en mémoire des
nombres limites.
13 Unité de gestion de mémoire principale selon la reven-
dication 8, caractérisée en ce que la mémoire ( 20) de l'uni-
té de gestion de mémoire comporte plusieurs secteurs de mé-
moire ou contextes, chacun pour recevoir les premières adresses et pour fournir des secondes adresses différentes en fonction de celui des contextes qui est utilisé de telle sorte que les
contextes fournissent une gestion de mémoire à chevauchement.
14 Une unité de gestion de mémoire principale (UGM) pour un système d'ordinateur qui comprend une unité de traitement centrale (UTC) et une mémoire principale ( 14), cette unité
de gestion étant caractérisée en ce qu'elle comporte: une mé-
moire ( 20) d'unité de gestion de mémoire comprenant plusieurs secteurs ou contextes; des moyens de commande( 35) pour choisir les secteurs de la mémoire d'unité de gestion de mémoire, les moyens de commande étant couplés à l'unité de traitement ( 10); chacun des secteurs de la mémoire d'unité de gestion de mémoire étant conçu pour recevoir des premières adresses de l'unité de traitement et pour fournir des secondes adresses différentes pour accéder à la mémoire principale de sorte que les secteurs de mémoire de l'unité de gestion de mémoire assurent une gestion de la mémoire principale avec chevauchement de telle sorte que l'unité de gestion de mémoire ( 12) fournit une base de translation pour plusieurs processus mis en mémoire dans la mémoire principale sans qu'il soit nécessaire de reprogrammer l'unité de gestion de mémoire. Unité de gestion de mémoire selon la revendication 14, caractérisée en ce que l'un des secteurs de la mémoire < 20) d'unité de gestion de mémoire est choisi lorsque l'unité
de traitement est dans le mode superviseur.
16 Unité de gestion de mémoire selon la revendication 14,
caractérisée en ce que les secteurs de la mémoire ( 20) d'u-
nité de gestion de mémoire mettent en mémoire des nombres li-
mites pour permettre de déterminer si certaines adresses de la mémoire principale sont ou non comprises à l'intérieur
d'un intervalle prédéterminé.
17 Unité de gestion de mémoire selon la revendication 10,
caractérisée en ce qu'elle comporte un additionneur ( 27) cou-
plé pour recevoir les nombres limites des secteurs de la mé-
moire ( 20) d'unité de gestion de mémoire et en ce que les nombres limites sont mis en mémoire sous une forme binaire
complémentaire dans les secteurs de mémoire d'unité de ges-
tion de mémoire pour les segments qui ne forment pas des piles de telle sorte que,lorsque ces nombres sont combinés avec la partie d'adresse correspondante par l'additionneur, le dépassement de capacité ou l'absence *d'un tel dépassement
indique si ladite adresse est comprise à l'intérieur de l'in-
tervalle prédéterminé.
18 Unité de gestion de mémoire selon la revendication 17, caractérisée en ce que les nombres limites pour les segments
de pile sont égaux à la dimension du segment moins un.
19 Unité de gestion de mémoire selon la revendication 14, caractérisée en ce que la mémoire ( 20) d'unité de gestion comprend des moyens de mémoire pour enregistrer des signaux représentatifs des types d'informations contenus dans la
mémoire principale ( 14).
Unité de gestion de mémoire selon la revendication 19,
caractérisée en ce que les signaux mis en mémoire sont utili-
sés pour commander l'accès à la mémoire principale ( 14).
FR8315305A 1982-09-29 1983-09-27 Unite de gestion de memoire pour un ordinateur numerique Pending FR2533736A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US42686982A 1982-09-29 1982-09-29

Publications (1)

Publication Number Publication Date
FR2533736A1 true FR2533736A1 (fr) 1984-03-30

Family

ID=23692542

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8315305A Pending FR2533736A1 (fr) 1982-09-29 1983-09-27 Unite de gestion de memoire pour un ordinateur numerique

Country Status (12)

Country Link
JP (1) JPS5979367A (fr)
AU (1) AU559067B2 (fr)
CA (1) CA1197020A (fr)
DE (1) DE3333894A1 (fr)
FR (1) FR2533736A1 (fr)
GB (1) GB2127994B (fr)
IL (1) IL69784A (fr)
IN (1) IN161125B (fr)
IT (1) IT1221741B (fr)
NZ (1) NZ205486A (fr)
SE (1) SE464052B (fr)
ZA (1) ZA836384B (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0262486A1 (fr) * 1986-09-25 1988-04-06 Siemens Aktiengesellschaft Unité de gérance d'adresses d'une unité de commande centrale à multiprocesseur d'un système de central de télécommunication
FR2618578A1 (fr) * 1987-07-21 1989-01-27 Digilog Systeme informatique modulaire embarque a memoire virtuelle integree
FR2641880A1 (fr) * 1989-01-19 1990-07-20 Strahlen Umweltforsch Gmbh Procede pour la surveillance de domaines d'adresse dans des appareils de traitement de donnees en temps reel

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
JP2522248B2 (ja) * 1986-05-24 1996-08-07 株式会社日立製作所 記憶装置アクセス機構
WO1988001411A1 (fr) * 1986-08-22 1988-02-25 Commonwealth Scientific And Industrial Research Or Systeme de memoire associative
US5617554A (en) * 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
JP2005100262A (ja) * 2003-09-26 2005-04-14 Seiko Epson Corp メモリ管理装置およびメモリ管理プログラム、並びにメモリ管理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5315779B2 (fr) * 1973-08-16 1978-05-27
GB1498116A (en) * 1974-04-18 1978-01-18 Honeywell Inf Systems Data processing systems
US3938100A (en) * 1974-06-07 1976-02-10 Control Data Corporation Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
US3999052A (en) * 1975-06-18 1976-12-21 International Business Machines Corporation Upper bounds address checking system for providing storage protection for a digital data processor
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
GB1585960A (en) * 1976-07-30 1981-03-11 Plessey Co Ltd Information flow security mechanisms for data processing systems
US4093986A (en) * 1976-12-27 1978-06-06 International Business Machines Corporation Address translation with storage protection
JPS5436144A (en) * 1977-08-26 1979-03-16 Toshiba Corp Address conversion unit
DE2837241C2 (de) * 1978-08-25 1982-05-06 Siemens AG, 1000 Berlin und 8000 München Einrichtung zum Sichern von Daten gegen unberechtigten Zugriff
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ELECTRONIC DESIGN, vol. 29, no. 17, août 1981, pages 115-121, Waseca, MN, US; D.L. COLLINS et al.: "Memory-management chip masters large data bases" *
ELECTRONICS INTERNATIONAL, vol. 54, no. 11, juin 1981, pages 134-138, New York, US; J. BEEKMANS et al.: "Chip set bestows virtual memory on 16-bit minis" *
WESCON CONFERENCE RECORD, vol. 25, septembre 1981, pages 1-9, El Segundo, US; S. WALTERS: "Memory management made easy with the Z8000" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0262486A1 (fr) * 1986-09-25 1988-04-06 Siemens Aktiengesellschaft Unité de gérance d'adresses d'une unité de commande centrale à multiprocesseur d'un système de central de télécommunication
US4873521A (en) * 1986-09-25 1989-10-10 Siemens Aktiengesellschaft Address administration unit of a multi-processor central control unit of a communications switching system
FR2618578A1 (fr) * 1987-07-21 1989-01-27 Digilog Systeme informatique modulaire embarque a memoire virtuelle integree
FR2641880A1 (fr) * 1989-01-19 1990-07-20 Strahlen Umweltforsch Gmbh Procede pour la surveillance de domaines d'adresse dans des appareils de traitement de donnees en temps reel
BE1003791A5 (fr) * 1989-01-19 1992-06-16 Strahlen Umweltforsch Gmbh Procede pour la surveillance de domaines d'adresse dans des appareils de traitement de donnees en temps reel.
US5396609A (en) * 1989-01-19 1995-03-07 Gesellschaft Fur Strahlen- Und Umweltforschung Mbh (Gsf) Method of protecting programs and data in a computer against unauthorized access and modification by monitoring address regions

Also Published As

Publication number Publication date
GB2127994B (en) 1987-01-21
GB2127994A (en) 1984-04-18
IL69784A (en) 1986-12-31
JPS5979367A (ja) 1984-05-08
IT8322960A0 (it) 1983-09-22
CA1197020A (fr) 1985-11-19
AU1894083A (en) 1984-04-05
NZ205486A (en) 1987-02-20
DE3333894C2 (fr) 1993-04-01
DE3333894A1 (de) 1984-03-29
IT1221741B (it) 1990-07-12
ZA836384B (en) 1984-05-30
SE8305290L (sv) 1984-03-30
SE8305290D0 (sv) 1983-09-29
GB8316129D0 (en) 1983-07-20
IL69784A0 (en) 1983-12-30
AU559067B2 (en) 1987-02-19
IN161125B (fr) 1987-10-10
SE464052B (sv) 1991-02-25

Similar Documents

Publication Publication Date Title
US5056009A (en) IC memory card incorporating software copy protection
FR2582829A1 (fr) Systeme de gestion de memoire d&#39;ordinateur
EP0918336B1 (fr) Mémoire non volatile programmable et effaçable électriquement comprenant une zone protégeable en lecture et/ou en écriture et système électronique l&#39;incorporant
CA1217282A (fr) Reconfiguration automatique de cartes de memoire
US4682318A (en) Method and apparatus for updating optical memory disc
FR2539239A1 (fr) Systeme d&#39;ordinateur a taches multiples a gestion de memoire
FR2609175A1 (fr) Carte a circuits integres et systeme pour verifier le bon fonctionnement de la carte
EP0394114B1 (fr) Coupleur multifonctions entre une unité centrale d&#39;ordinateur et les différents organes périphériques de ce dernier
FR2526560A1 (fr) Dispositif pour la protection contre une lecture non autorisee de mots de programme a memoriser dans une memoire, et unite de memoire comportant ladite memoire
FR2687812A1 (fr) Systeme de traitement de l&#39;information.
FR2533736A1 (fr) Unite de gestion de memoire pour un ordinateur numerique
FR2487561A1 (fr) Systeme de memoire dynamique
FR2479534A1 (fr) Circuit de detection d&#39;erreur pour une memoire
FR2810152A1 (fr) Memoire eeprom securisee comprenant un circuit de correction d&#39;erreur
FR2683924A1 (fr) Memoire integree, son procede de gestion et systeme informatique en resultant.
EP0202166A1 (fr) Circuit de mémoire d&#39;image virtuelle permettant le multifenêtrage
FR2612317A1 (fr) Systeme de memorisation de donnees, du type support d&#39;enregistrement de donnees portatif
FR2594984A1 (fr) Element a carte de circuits integres pour dispositif de traitement de donnees
EP0519847B1 (fr) Carte à mémoire de comptage de données et appareil de lecture
FR2632092A1 (fr) Circuit de conditionnement d&#39;ecriture d&#39;antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
FR2683061A1 (fr) Systeme de segmentation de memoire.
US4559612A (en) Sorting device for data words
FR2901035A1 (fr) Procede et dispositif de gestion d&#39;une table de correspondance d&#39;acces a une memoire
CH631018A5 (en) Data processing installation
EP0636984B1 (fr) Procédé et dispositif de contrÔle des données dans un calculateur