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

  • - Unités de disques à accès rapide : débit 188 K octets/s, temps d’accès moyen 20 ms, capacité 0,75 et 3 millions d’octets,
  • - Unités de disques amovibles : débit 156 K octets/s, temps d’accès moyen 120 ms, capacité 6 millions d’octets,
 
  • - Unités de disques de grande capacité : débit 312 K octets/s, temps d’accès moyen 85 ms, capacité 200 millions d’octets,
 
  • - Unités de bandes magnétiques : 
    9 pistes, 800 bpi, 75 ips, 60 K octets/s, 
    9 pistes, 800 bpi, 37,5 ips, 30 K octets/s,
    7 pistes, 200/556/800 bpi, 75 ips, 15/41,7/60 K octets/s
    7 pistes, 200/556 bpi, 37,5 ips, 7,5 à 20,8 K octes/s,
 
  • - Machine à écrire, 10 car/s,
 
  • - Lecteurs et perforateurs de ruban : cadence de lecture, 20 et 300 car/s, cadence de perforation, 10 et 50 car/s,
 
  • - Lecteurs de cartes : 400 et 1200 cartes par minutes,
 
  • - Perforateurs de cartes : 300 cartes par minutes,
 
  • - Imprimantes : 600 et 1000 lignes par minute,
 
  • - Équipements de transmission : coupleur de transmission télégraphique et téléphonique,
 
  • - Équipements de visualisation,
 
  • - Périphériques temps réel.
 

 

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 :

  • - Coexistence de traitements différés et de traitements immédiats,
  • - Exécute les appels d’entrée-sortie, les déroutements,
  • - Communique directement avec les travaux immédiats,
  • - Enchaîne les travaux différés,
  • - Peut être à tout moment sollicité par l’opérateur,
  • - Recouvre les entrées-sorties et les calculs,
  • - Gère la protection mémoire,
  • - Offre tous services pour la création, la mise au point et l’exécution des travaux,
  • - Gère les points de reprise,
  • - Compatible avec le moniteur de traitement par train,
  • - Totalement résident , occupation en mémoire de 2 600 à 3 500 mots.

· 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. 
La licence du logiciel Siris7 fut vendue le 30 octobre 1970 à Scientific Data Systems.

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 :

  • - fortran IV étendu,
  • - algol 60,
  • - cobol 65,
  • - métasymbol.

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 :

  • - Utilise au maximum la rapidité d’accès des disques,
  • - Peut être à tout instant sollicité par l’opérateur,
  • - Offre tous les services pour la création, la mise au point et l’exécution des travaux,
  • - Exécute en multiprogrammation les travaux périphériques,
  • - Gère les points de reprise,
  • - Comptabilise les travaux,
  • - Gère la mémoire secondaire sur disques,
  • - Exécute les déroutements,
  • - Traite les erreurs,
  • - Offre tous les services pour la segmentation des programmes volumineux,
  • - Gère la protection mémoire,
  • - Permet l’initialisation et l’exécution de traitements immédiats dynamiquement en coexistence avec l’enchaînement des travaux différés,
  • - Permet l’utilisation d’une bibliothèque publique,
  • - Réalise l’ordonnancement des travaux différés,
  • - Gère les priorités des travaux,
  • - Réalise la gestion des fichiers,
  • - Protège les fichiers secrets,
  • - Appelle le support programmation du niveau de traitement par train depuis les disques à accès rapide,
  • - Partiellement résident, occupe de 6 000 à 10 000 mots en mémoire.

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 :

  • - Coexistence de tâches série exécutées avec la même priorité, de tâches parallèles exécutées avec des priorités distinctes, de tâches temps réel,
  • - Gestion dynamique de l’espace mémoire,
  • - Nombreux types d’organisation des fichiers disques orientés vers la gestion,
  • - Procédures de point de reprise très élaborées,
  • - Catalogue des cartes de contrôle,
  • - Traitement de trains de programme à distance,
  • - Télétraitement - Interrogations à distance de fichiers centraux,
  • - Gestion des fichiers sur mémoire de masse.

Langages

  • - FORTRAN IV - h, compatible avec les normes ASA standard FORTRAN et le langage IBM 360,
  • - FORTRAN IV - étendu, surpasse le maximum prévu par les normes ASA, étendu pour permettre de programmer en Fortran IV des opérations en temps réel,
  • - ALGOL 60,
  • - COBOL 65,
  • - METASYMBOL, langage d’assemblage de niveau élevé,
  • - SYMBOL, sous ensemble du metasymbol.

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