Organisation de la mémoire utilisateur dans la CPU 948
8.3
Organisation de la mémoire utilisateur dans la CPU 948
Gestion des blocs
Compression de la mémoire
Situation des blocs dans
la mémoire utilisateur
Blocs de remplissage
8 - 10
La mémoire utilisateur couvre – selon la version de la CPU 948 mise
en oeuvre – l'espace d'adressage de 0 0000H à C FFFFH. Lors de leur
chargement, les blocs du programme utilisateur sont mémorisés dans
un ordre quelconque, par adresses croissantes.
Lors de la modification de blocs, l'ancien bloc est déclaré non valable
et le nouveau bloc est inscrit en mémoire et dans la liste d'adresses.
De même, lors de l'effacement de blocs, ceux-ci ne sont pas réelle-
ment effacés, mais déclarés non valables. L'effacement de blocs don-
ne naissance à des lacunes qui sont gérées comme des emplacements
de mémoire libres et qui seront à nouveau utilisées lors du chargement
de nouveaux blocs.
La fonction PG en ligne de compression de la mémoire regroupe tous les
blocs valables se trouvant en mémoire. A l'arrêt, elle provoque le décala-
ge de tous les blocs qui ne sont pas accolés. Par contre, en état de marche
RUN, les blocs de données DB/DX importants (supérieurs à 512 mots
de données) ne sont pas décalés pour des raisons de cohérence des
données. La compression de la mémoire permet d'obtenir de grandes zo-
nes de mémoire libres qui peuvent être utilisées lors du chargement d'au-
tres blocs.
Si la fonction en ligne de compression de la mémoire est interrompue
(par exemple, par une mise hors tension), la compression est arrêtée et
n'est pas reprise lors de la remise sous tension.
Dans la CPU 948, les blocs sont stockés en mémoire de manière telle
que le mot de données DW 0 ou la première instruction STEP 5 de
chaque bloc se trouve sur une adresse de paragraphe. Les adresses
de paragraphe sont des limites de groupes de 16 mots. Tous les
en-têtes de bloc débutent ainsi dans la mémoire à l'adresse xxxxBH
(bits 0 à 3 = BH) et tous les corps de bloc à l'adresse yyyy0H (bits 0 à
3 = 0H). Chaque espace libre entre la fin d'un bloc et le début du bloc
suivant est occupé par un bloc de données non valable de manière à ce
que tous les blocs soient consécutifs dans la mémoire.
Ces blocs de données non valables sont appelés "blocs de remplissa-
ge". Ils sont régis par la gestion de mémoire de la même façon que les
blocs valables et ont la structure suivante :
Indicatif de début :
Type/numéro de bloc :
Indicatif de la console :
Numéro de bibliotèque :
Longueur du bloc :
Données :
7070H
;
01FBH
;DB 251 non valable
00FFH
;sans objet
FFFFH
;sans objet
00XXH
;longueur 5 à 20 mots
FFFFH
;suivant la
:
;longueur
:
;libre
FFFFH
;facultatif
Programmation de la CPU 948
C79000-G8577-C848-04