CAE CII
10070
Le système 10070 a été développé
par la compagnie Scientific Data Systems et vendu par celle-ci sous le
nom de Sigma 7. Il s'agit d'un ordinateur 32 bits dont la
vocation initiale est le marché scientifique et temps réel.
La Compagnie CAE et à sa suite la CII, bénéficiant d'une licence de commercialisation et de fabrication des produits SDS l'ont mis au catalogue sous le nom de 10070. |
The 10070 system was developed by
Scientific Data Systems and sold under the name Sigma 7. It is a
32-bits computer targeting scientific ans real time markets.
The french company CAE , and its heir CII, having a distribution and manufacturing licence from SDS have introduced it under the name 10070. |
photo du SDS Sigma 7
Architecture
Le Sigma 7 (10070) machine possède une
architecture originale sur la base de mots de 32-bits. L'architecture sera pour
l'essentiel conservée sur le système CII Iris80 et sera partiellement émulée sur les
machines CII-HB DPS7/80 et 82.
Elle fut aussi utilisée sur les SDS (puis XDS) Sigma 9.
Architecture du matériel
L’ordinateur 10070 est bâti autour de plusieurs chemins d’accès, de 2 à 6, qui relient plusieurs modules de mémoire principale, jusqu’à 8 modules, à plusieurs unités de traitement : une unité centrale, unités d’échange, unité d’échange de télécommunications, convolveur, unité de contrôle de visualisation ou ordinateur 10020. Cette structure favorise les transferts d’information entre la mémoire principale et l’environnement extérieur en évitant l’étranglement du débit des informations au niveau des accès en mémoire.
Le fonctionnement asynchrone des éléments de l’ordinateur autorise une circulation des informations ; chaque module mémoire peut transférer 37 millions de chiffres binaires par seconde, ce qui est en rapport avec la vitesse de traitement de l’unité centrale, et les possibilités de transfert des unités d’échange.
La simultanéité de fonctionnement est accentuée par la séparation des fonctions de calcul et d’entrée-sortie qui sont confiées, d’une part à l’unité centrale, d’autre part aux unités d’échange. Chacune de ces unités possède sa mémoire privée et n’interfère en aucun cas sur l’unité voisine, tant lors des traitements que lors des accès en mémoire.
Le processeur de l' Unité centrale a un fonctionnement asynchrone par rapport aux autres éléments du 10070. La plupart des opérations sont effectuées en parallèle.
· Format des instructions : un seul format sur 32 chiffres binaires avec adressage direct et indirect sur toute l’étendue de la mémoire, indexation à cadrage automatique suivant le format de l’opérande, adressage immédiat, et opérations de registres à registres.
format des instructions
· Mode de fonctionnement : deux modes, maître et esclave.
· Jeu d’instructions : 106 instructions qui permettent 6 modes d’arithmétique, fixe sur 16, 32 et 64 bits, flottante sur 32 et 64 bits, décimale sur 31 chiffres plus signe, la manipulation des octets individuellement ou groupés en chaînes, les opérations spéciales de conversion, d’édition, d’interprétation, d’analyse, d’appel, de gestion des piles, et toute une série d’opérations de mouvement, de test, de décalages, d’entrée-sortie et de commandes.
Le contrôle du contexte d’un programme est effectué par un double mot d’état dont l’échange et le chargement sont commandés par l’instruction. L’échange des doubles mots d’états de deux programmes, c’est-à-dire la permutation dans l’unité centrale de tout ce qui caractérise un programme, se fait en 6 µs.
Load Word | 1.8 µs |
Store Word | 2.4 µs |
Add Word | 1.8 µs |
Multiply Word | 4.9 µs |
Divide Word | 12.7 µs |
Floating Add short | 3.3 µs |
Floating Multiply short | 5.4 µs |
temps d'exécution des instructions
· Registres : constitués en groupes de 16 registres de 32 bits. Tous les registres peuvent être des accumulateurs fixes ou flottants. Jusqu’à 32 groupes peuvent être présents sur un 10070. Chaque groupe fait partie du contexte d’un programme.
· Allocation dynamique de mémoire : le système de topographie gère, au moyen de 256 registres de 8 bits, l’espace mémoire découpé en pages de 512 mots tout en assurant la protection d’accès de chaque page au moyen de 256 registres de 2 bits.
· Protection mémoire : le système de protection d’écriture en mémoire fonctionne selon le principe de verrous et de clés à l’aide de 256 registres de 2 bits.
· Code condition : il fait partie de double mot d’état. Sa longueur est de 4 bits. Toutes les instructions le positionnent.
· Déroutements automatiques : il existe 17 conditions de déroutements automatiques :
- Système d’interruption : entièrement hiérarchisé, 240 niveaux d’interruptions répartis en 4 classes : privilégiée, comptage, entrée-sortie et externe. Chaque niveau peut être individuellement armé, désarmé, autorisé, interdit ou déclenché. Chaque classe peut être inhibée. L’interruption peut agir au milieu des instructions longues.
- Protection d’alimentation : réalisée à l’aide de 2 niveaux d’interruption.
- Horloge de garde : surveille l’achèvement de chaque
instruction. Déroutement automatique en cas de défaut.
La mémoire à tores a jusqu'à 8 modules de mémoire
d'une capacité variable de 4K à 16K mots (par module) de 32 bits. Un module de
mémoire peut avoir de 2 à 6 chemins d'accès. Un bloc de mémoire de 16K mots
peut être partagé entre un ordinateur 10070 et un ordinateur 10020 (visible du
10020 comme 32 K mots de 16-bits)
La mémoire accepte 2 à 4 niveaux d'entrelacement des adresses. Elle permet un
accès à l'octet, au demi-mot, mot et double mot.
Unités d’échange
· Fonction : assure tous les transferts d’informations entre la mémoire principale et l’environnement extérieur indépendamment de l’unité centrale.
· Nombre d’unités : jusqu’à 5 unités d’échange opèrent dans un 10070.
· Types : deux types sont disponibles :
- l’unité d’échange de type multiple dirige simultanément plusieurs équipements,
- l’unité d’échange de type simple dirige à un moment donné un seul équipement de très grand débit.
· Nombre de voies : chaque unité d’échange du type multiple possède de 8 à 32 voies simultanées. Chaque unité d’échange du type simple possède 32 voies.
· Largeur de voies : chaque voie d’une unité d’échange de type multiple transmet en parallèle 8 chiffres binaires. Chaque voie d’une unité d’échange de type simple transmet en parallèle 32 chiffres binaires.
· Débit : l’unité d’échange du type multiple accepte des débits de 483 000 octets par seconde. L’unité d’échange du type simple accepte des débits de 4 000 000 d’octets par seconde.
· Commande : l’unité d’échange reçoit ses commandes d’un programme enregistré en mémoire principale qu’elle décode dans ses mémoires privées. Chaque voie possède une mémoire privée de 80 chiffres binaires constituée de circuits intégrés, temps de lecture 60 ns.
· Chaînages : l’unité d’échange effectue le chaînage des données et le chaînage des commandes.
· Accès : chaque unité d’échange possède son
accès particulier en mémoire principale.
Technologie
La technologie du 10070 utilise la première génération de circuits intégrés DTL et des mémoires à tores.
Le cycle d'accès de la mémoire pour un mot est de 850 ns. Elle dispose d'un bit de parité par mot de 32-bits. Dans une configuration de plusieurs modules, le recouvrement permet d'obtenir un mot en 600 ns.
Mémoire privée (scratch pad) : formée de circuits intégrés. Temps de lecture 60 ns. La mémoire privée est utilisée par l’unité centrale pour réaliser trois fonctions importantes : constituer des registres banalisés, pourvoir l’ordinateur d’un système d’allocation dynamique de mémoire et d’un système de protection mémoire.
Sécurité de fonctionnement
La bonne exécution de plusieurs programmes coexistant
dans l’ordinateur, dont certains sont en cours de mise au point, impose un
double mode de fonctionnement de l’unité centrale. En effet, l’exécution
intempestive par un programme de certaines instructions peut porter atteinte aux
programmes ou aux données des autres utilisateurs. Ces instructions
privilégiées sont celles qui réalisent les entrées-sorties, qui commandent
la protection mémoire, la topographie, l’échange du contexte, le système d’interruption.
Elles ne peuvent être exécutées qu’en mode Maître. Seuls le programme
moniteur et certains programmes ont le droit d’utiliser le mode Maître, et
disposent de tout le jeu des instructions 10070. Les autres programmes utilisent
le mode asservi. Le double mot d’état contient un indicateur du mode
utilisé. Si un programme tente d’exécuter une instruction privilégiée,
alors qu’il est contraint au mode asservi, un déroutement automatique se
produit avant l’exécution de l’instruction.
Périphériques
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Logiciel
Logiciel
Les premiers 10070 ont été introduits avec une version
CAE du logiciel SDS.
Dans la perspective de l'introduction du système Iris 80, CII a développé le
système d'exploitation Siris 7 pour le 10070 et les premiers Iris-80.
Support de programmation
Le support de programmation du 10070 est à
trois niveaux qui correspondent à des modes d’exploitation de
complexité croissante. · Niveau autonome Le support de programmation est conçu pour satisfaire les besoins d’une application particulière avec une configuration minimum. Ce cas est fréquent lorsque l’ordinateur est totalement intégré dans un système complexe qu’il commande, tel un simulateur de vol. A ce niveau, l’ordinateur n’exécute qu’un traitement à la fois ce qui le dispense de recourir à un programme moniteur. Les modules de support programmation sont donc autonomes contrairement aux modules utilisés aux niveaux supérieurs. L’utilisateur dispose pour rédiger ses programmes de deux langages Symbol et Fortran IV-h qui sont particulièrement adaptés aux traitements en temps réel. Le support de programmation comporte de plus un module de chargement, un programme général d’aide à la mise au point et une bibliothèque des fonctions mathématiques et d’entrées-sorties. Tous ces modules du support de programmation
sont fournis sur support cartes ou rubans. Ainsi, le support
programmation 10070 permet au moindre coût l’intégration dans un
système d’un ordinateur de grande performance. · Niveau de base Le support de programmation est spécialement conçu pour répondre aux difficultés soulevées par l’exploitation d’un ordinateur en remps réel. Parce qu’il doit être rentable, pour autoriser l’évolution des méthodes programmées, un processus ne peut monopoliser l’activité de l’ordinateur qui le commande. Le support de programmation doit permettre le traitement simultané de travaux immédiats, qui doivent réagir en temps réel, et d’un travail différé qui peut être indépendant du travail immédiat ou lui être relatif, ce qui est le cas des réductions de données. Le traitement différé peut être une exécution ou une mise au point de programme et même un assemblage ou une compilation. Le support programmation 10070 permet ce mode d’exploitation grâce à la direction centralisée exercée par le Moniteur de base sur tous les modules de programmation de ce second niveau. L’utilisateur dispose des langages Symbol et Fortran IV-h, du module de chargement, du programme général de mise au point et de la bibliothèque mathématique. Afin de réduire le coût de la configuration nécessaire, les modules de support programmation ne résident pas sur disques. Par contre, un module de programmation peut être utilisé pour décharger un travail différé sur un disque à accès rapide, afin de libérer la mémoire principale lors des pointes d’activité d’un travail immédiat. Synthèse des caractéristiques :
· Niveau de traitement par trains (SIRIS7) Ce système fut entièrement développé par CII
afin de couvrir l'objectif du Plan Calcul qui était de fournir une
gamme étendue de machines de gestion. Il servit également initialement
sur l'Iris 80 monoprocesseur. Le support de programmation à ce niveau est conçu dans le but de produire le maximum de travaux en un temps minimum. Ce support s’adresse aux grands centres de calcul scientifique et de gestion où de nombreux travaux sont enchaînés sous la direction d’un programme moniteur. Ces grands centres tendent à s’ouvrir vers l’extérieur dans le but de recevoir directement les informations qui servent de base aux travaux, ainsi que les travaux eux-mêmes. Des traitements immédiats peuvent prendre place, à tous moments, dans l’activité de l’ordinateur et contrôler en temps réel les transferts d’information en provenance de quelque processus. Un module de programmation se charge de la gestion des communications par ligne téléphonique avec les terminaux satellites de l’ordinateur central et autorise la prise en charge de travaux effectués à distance. A ce niveau, les travaux peuvent être écrits dans un des quatre langages suivants :
Tous ces langages sont pourvus de dispositifs de mise au point, qui simplifient considérablement la tâche du programmeur. Synthèse des caractéristiques :
Le support de programmation a pour principal
objectif de ne laisser inactif aucun des éléments de l’ordinateur:
mémoire, unité centrale, unités d’échange ou périphériques. Pour
cela, il est fait appel aux techniques de multiprogrammation et d’ordonnancement
des trains de travaux ainsi qu’au meilleur type de mémoire auxiliaire
actuellement disponible : les disques à accès rapide. L’utilisation
de ces disques rapides par le système d’exploitation augmente
considérablement la capacité de production du centre en permettant l’exécution
simultanée de l’enchaînement des travaux, des travaux
périphériques et des programmes en communication avec l’extérieur. Synthèse des caractéristiques du moniteur de multiprogrammation :
Langages
|
Outre SIRIS7, au moins deux systèmes expérimentaux de time-sharing sur 10070 ont été développés en parallèle avec le Développement Logiciel de CII.
Ce sont:
le système ESOPE de l'INRIA avec Claude Kaiser, Sacha Krakowiak
et
le système SAM (Système à Accès Multiple) au Centre de Recherche de la CII avec Jean-Yves Leclerc, Vincent Tixier et Jean-Paul Rossiensky. Ce projet débuté à Velizy a été continué au CERT de Toulouse.
Bibliographie
Reference manual Sigma7 http://www.bitsavers.org/pdf/sds/sigma/900950G_Sigma7_RefMan_Oct69.pdf
http://bitsavers.org/pdf/sds/sigma/
Site sur les machines SDS : http://www.andrews.edu/~calkins/profess/SDSigma7.htm