Architecture IBM System/360 - IBM System/360 architecture

Système/360
Designer IBM
Morceaux 32 bits
Introduit 1964 ; il y a 57 ans ( 1964 )
Concevoir SCRC
Taper Registre-Registre
Registre-Mémoire
Mémoire-Mémoire
Codage Variable (2, 4 ou 6 octets de long)
Branchement Code de condition , indexation, comptage
Endianité Grand
Taille de la page N/A, sauf pour 360/67
Ouvert Oui
Registres
Usage général 16 × 32 bits
Point flottant 4 × 64 bits

L' architecture IBM System/360 est l' architecture indépendante du modèle pour l'ensemble de la gamme S/360 d' ordinateurs centraux , y compris, mais sans s'y limiter, l' architecture du jeu d'instructions . Les éléments de l'architecture sont documentés dans les manuels IBM System/360 Principles of Operation et IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information .

Caractéristiques

Registres IBM S/360
Registres généraux 0-15

Valeur du complément à deux
0 31
Registres à virgule flottante 0-6

S Exposant biaisé Mantisse
0 1 7 8 31

Mantisse (suite)
32 63
S/360 PSW

Chan.
Masquer
I
O
E
X
Clé UNE M W P Code d'interruption
0 1 2 4 5 6 7 8 11 12 13 14 15 16 31

JE VERRAIS CC
Masque de programme
Adresse d'instruction
32 33 34 35 36 39 40 63
Abréviations S/360 PSW
Morceaux Domaine Sens
0-5 Masques de canaux pour les canaux 0-5
6 OI Masque d'E/S pour les canaux > 5
7 EX Masque externe
8-11 Clé Clé PSW
12 UNE Un mode SCII pour l'arihmétique décimale
13 M Masque de contrôle de machine
14 W État d'attente
15 P État du problème
16-31 CI Code d'interruption
32-33 JE VERRAIS Code de longueur d'instruction
34-35 CC Code d'état
36-39 PM
Masque de programme
Bit Sens
36 Débordement à virgule fixe
37 Débordement décimal
38 Débordement de l'exposant
39 Importance
40-63 AI Adresse d'instruction
  • La documentation d'IBM numérote les bits de l'ordre élevé à l'ordre faible ; le bit le plus significatif (le plus à gauche) est désigné comme le bit numéro 0.

L'architecture System/360 offre les fonctionnalités suivantes :

  • 16 registres à usage général 32 bits
  • 4 64 bits à virgule flottante registres
  • Registre d'état du processeur (PSW) 64 bits, qui comprend une adresse d'instruction 24 bits
  • Espace mémoire adressable par octets de 24 bits (16 Mo)
  • Ordre des octets/mots gros boutiens
  • Un jeu d'instructions standard , comprenant des instructions arithmétiques et logiques binaires à virgule fixe, présent sur tous les modèles System/360 (sauf le modèle 20, voir ci-dessous).
    • Un jeu d'instructions commercial , ajoutant des instructions arithmétiques décimales, est facultatif sur certains modèles, tout comme un jeu d'instructions scientifiques , qui ajoute des instructions à virgule flottante. Le jeu d'instructions universel comprend tout ce qui précède ainsi que les instructions de protection du stockage et est standard pour certains modèles.
    • Le modèle 44 fournit quelques instructions uniques pour l'acquisition de données et le traitement en temps réel et il manque les instructions de stockage à stockage. Cependant, IBM a proposé une fonctionnalité « Ensemble d'instructions commerciales » qui s'exécutait en mode bump et simulait les instructions manquantes.
    • Le modèle 20 propose une version allégée du jeu d'instructions standard, limité à huit registres généraux avec des instructions demi-mot (16 bits) uniquement, plus le jeu d'instructions commercial et des instructions uniques pour l'entrée/sortie.
    • Le modèle 67 comprend des instructions pour gérer les adresses 32 bits et la "traduction d'adresse dynamique", avec des instructions privilégiées supplémentaires pour fournir une mémoire virtuelle.

Mémoire

La mémoire ( stockage ) dans System/360 est adressée en termes d' octets de 8 bits . Diverses instructions fonctionnent sur des unités plus grandes appelées demi-mot (2 octets), mot complet (4 octets), mot double (8 octets), mot quad (16 octets) et bloc de stockage de 2048 octets, en spécifiant l'adresse la plus à gauche (adresse la plus basse) de l'unité. Au sein d'un demi-mot, d'un mot complet, d'un mot double ou d'un mot quadruple, les octets de faible numéro sont plus significatifs que les octets de haut numéro ; ceci est parfois appelé big-endian . De nombreuses utilisations de ces unités nécessitent de les aligner sur les limites correspondantes. Dans cet article, le terme mot non qualifié fait référence à un mot complet .

L'architecture originale de System/360 prévoyait jusqu'à 2 24  = 16 777 216 octets de mémoire. Le dernier modèle 67 a étendu l'architecture pour autoriser jusqu'à 2 32  = 4 294 967 296 octets de mémoire virtuelle.

Adressage

System/360 utilise un adressage tronqué similaire à celui de l' UNIVAC III . Cela signifie que les instructions ne contiennent pas d'adresses complètes, mais spécifient plutôt un registre de base et un décalage positif par rapport aux adresses dans les registres de base. Dans le cas du System/360, l'adresse de base est contenue dans l'un des 15 registres généraux. Dans certaines instructions, par exemple des décalages, les mêmes calculs sont effectués pour des quantités de 32 bits qui ne sont pas des adresses.

Formats de données

L'architecture S/360 définit des formats pour les caractères, les entiers, les entiers décimaux et les nombres à virgule flottante hexadécimaux. Les instructions sur les caractères et les nombres entiers sont obligatoires, mais les instructions sur les décimales et les virgules flottantes font partie des fonctionnalités d'arithmétique décimale et d'arithmétique à virgule flottante.

  • Les caractères sont stockés sous forme d'octets de 8 bits.
  • Les entiers sont stockés sous forme de valeurs binaires de demi-mot ou de mot complet en complément à deux.
  • Les nombres décimaux compactés sont stockés sous forme de 1 à 16 octets de 8 bits contenant un nombre impair de chiffres décimaux suivis d'un signe de 4 bits. Les valeurs de signe de l'hexadécimal A, C, E et F sont positives et les valeurs de signe de l'hexadécimal B et D sont négatives. Les valeurs numériques de AF hexadécimal et les valeurs de signe de 0 à 9 ne sont pas valides, mais les instructions PACK et UNPK ne testent pas la validité.
  • Les nombres décimaux zonés sont stockés sous forme de 1 à 16 octets de 8 bits, chacun contenant une zone dans les bits 0-3 et un chiffre dans les bits 4-7. La zone de l'octet le plus à droite est interprétée comme un signe.
  • Les nombres à virgule flottante ne sont stockés que sous forme de mots complets ou de mots doubles sur les modèles plus anciens. Sur les 360/85 et 360/195, il existe également des nombres à virgule flottante à précision étendue stockés sous forme de quadwords. Pour les trois formats, le bit 0 est un signe et les bits 0-7 sont une caractéristique (exposant, biaisé de 64). Les bits 8-31 (8-63) sont une fraction hexadécimale. Pour une précision étendue, le mot double d'ordre inférieur a son propre signe et caractéristique, qui sont ignorés en entrée et générés en sortie.

Formats d'instructions

Les instructions dans le S/360 ont une longueur de deux, quatre ou six octets, avec l'opcode dans l'octet 0. Les instructions ont l'un des formats suivants :

  • RR (deux octets). Généralement, l'octet 1 spécifie deux numéros de registre de 4 bits, mais dans certains cas, par exemple SVC, l'octet 1 est un seul champ immédiat de 8 bits.
  • RS (quatre octets). L'octet 1 spécifie deux numéros de registre ; les octets 2-3 spécifient une base et un déplacement.
  • RX (quatre octets). Les bits 0 à 3 de l'octet 1 spécifient soit un numéro de registre, soit un modificateur ; les bits 4 à 7 de l'octet 1 précisent le numéro du registre général à utiliser comme index ; les octets 2-3 spécifient une base et un déplacement.
  • SI (quatre octets). L'octet 1 spécifie un champ immédiat ; les octets 2-3 spécifient une base et un déplacement.
  • SS (six octets). L'octet 1 spécifie deux champs de longueur de 4 bits ou un champ de longueur de 8 bits ; les octets 2-3 et 4-5 spécifient chacun une base et un déplacement. Le codage des champs de longueur est de longueur-1.

Les instructions doivent être sur une limite de deux octets en mémoire ; par conséquent, le bit de poids faible de l'adresse d'instruction est toujours 0.

Mot d'état du programme (PSW)

Le mot d'état du programme ( PSW ) contient une variété de commandes pour le programme en cours d'exécution. Le PSW 64 bits décrit (entre autres) l'adresse de l'instruction en cours d'exécution, le code de condition et les masques d'interruption.

Format PSW
Morceaux Contenu Explication
0-7 Masque système bits 0-5 : activer les canaux 0-5, bit 6 : activer tous les canaux restants, bit 7 : activer les interruptions externes (minuterie, touche d'interruption et signal externe)
8-11 Clé de protection Clé de protection du processeur à comparer avec les clés de protection du stockage
12 mode ASCII activer le mode ASCII pour les instructions décimales compressées, jamais utilisé par le logiciel IBM
13 Contrôles des machines activer les interruptions de vérification de la machine
14 État d'attente le processeur est arrêté, une interruption, si elle est activée, entraînera la reprise de l'exécution des instructions par le processeur
15 État du problème permettre d'empêcher l'utilisation d'instructions réservées à l'état superviseur
16-31 Code d'interruption code pour indiquer le type d'interruption, inséré lorsque le PSW est stocké, pendant IPLoad, c'est l'adresse de l'appareil à partir duquel le programme a été chargé
32-33 Code de longueur d'instruction longueur en demi-mots ou 0 si indisponible
34-35 Code d'état voir les instructions individuelles pour l'encodage
36-39 Masque de programme bit 36 ​​: autoriser le dépassement à virgule fixe, bit 37 : dépassement décimal, bit 38 : dépassement inférieur de l'exposant, bit 39 : signification
40-63 Adresse d'instruction adresse de l'instruction suivante, sauf interruption de programme avec ILC 0

Charger le mot d'état du programme ( LPSW ) est une instruction privilégiée qui charge le mot d'état du programme (PSW), y compris le mode de programme, la clé de protection et l'adresse de la prochaine instruction à exécuter. LPSW est le plus souvent utilisé pour « revenir » d'une interruption en chargeant « l'ancien » PSW qui est associé à la classe d'interruption. D'autres instructions privilégiées (par exemple, SSM, STNSM, STOSM, SPKA, etc.) sont disponibles pour manipuler des sous-ensembles du PSW sans provoquer d'interruption ou charger un PSW ; et une instruction non privilégiée (SPM) est disponible pour manipuler le masque de programme.

Système d'interruption

L'architecture définit 5 classes d' interruption . Une interruption est un mécanisme permettant de changer automatiquement l'état du programme ; il est utilisé pour les événements synchrones et asynchrones .

Classe d'interruption Ancienne
déc. hexadécimal PSW
Nouvelle
déc. hexadécimal PSW
Priorité
Entrée sortie 38 56 78 120 4
Programme 28 40 68 104 2
Appel du superviseur 20 32 60 96 2
Externe 18 24 58 88 3
Vérification de la machine 30 48 70 112 1

Il y a deux champs de stockage affectés à chaque classe d'interruption sur le S/360 ; un ancien double-mot PSW et un nouveau double-mot PSW. Le processeur stocke le PSW, avec un code d'interruption inséré, dans l'ancien emplacement PSW, puis charge le PSW à partir du nouvel emplacement PSW. Ceci remplace généralement l'adresse d'instruction, effectuant ainsi un branchement, et (facultativement) définit et/ou réinitialise d'autres champs dans le PSW, effectuant ainsi un changement de mode.

L'architecture S/360 définit une priorité à chaque classe d'interruption, mais elle n'est pertinente que lorsque deux interruptions se produisent simultanément ; une routine d'interruption peut être interrompue par toute autre interruption activée, y compris une autre occurrence de l'interruption initiale. Pour cette raison, il est de pratique normale de spécifier tous les bits de masque, à l'exception du bit de masque de contrôle machine, à 0 pour les gestionnaires d'interruption de "premier niveau". Les gestionnaires d'interruptions de "deuxième niveau" sont généralement conçus pour des interruptions empilées (occurrences multiples d'interruptions de la même classe d'interruption).

Interruption d'entrée/sortie

Une interruption d'E/S se produit à la fin d'un programme de canal, après avoir récupéré un CCW avec le bit PCI défini et également pour des événements asynchrones détectés par l'appareil, l'unité de contrôle ou le canal, par exemple, la fin d'un mouvement mécanique. Le système stocke l'adresse de l'appareil dans le code d'interruption et stocke l'état du canal dans le CSW à l'emplacement 64 ('40'X).

Interruption du programme

Une interruption de programme se produit lorsqu'une instruction rencontre l'une des 15 exceptions ; cependant, si le bit de masque de programme correspondant à une exception est 0, alors il n'y a pas d'interruption pour cette exception. Sur 360/65, 360/67 et 360/85, les interruptions d'exception de protection et d'exception d'adressage peuvent être imprécises, auquel cas elles stockent un code de longueur d'instruction de 0. Le code d'interruption peut être l'un des

Codes d'interruption pour les interruptions de programme
anciens bits PSW 26-31

bits hexagonaux 26-31
déc Exception
0 0

Interruption imprécise sur 360/91, 360/95 ou 360/195

1 1 Opération
2 2 Opération privilégiée
3 3 Exécuter
4 4 protection
5 5 Adressage
6 6 spécification
7 7 Données
8 8 Débordement à virgule fixe
9 9 Division à virgule fixe
UNE dix Débordement décimal
B 11 Division décimale
C 12 Débordement d'exposant
13 Débordement de l'exposant
E 14 Importance
F 15 Division à virgule flottante
dix 16

Traduction de segments

11 17

Traduction de pages

12 18

Exception SSM

  • Une exception d'opération est reconnue lorsqu'un programme tente d'exécuter une instruction avec un code opération que l'ordinateur n'implémente pas. En particulier, une exception d'opération est reconnue lorsqu'un programme est écrit pour une fonctionnalité optionnelle, par exemple la virgule flottante, qui n'est pas installée.
  • Une exception d'opération privilégiée est reconnue lorsqu'un programme tente d'exécuter une instruction privilégiée lorsque le bit d'état du problème dans le PSW est 1.
  • Une exception d'exécution est reconnue lorsque l'opérande d'une instruction EXECUTE (EX) est une autre instruction EXECUTE.
  • Une exception de protection est reconnue lorsqu'un programme tente de stocker dans un emplacement dont la clé de protection de stockage ne correspond pas à la clé PSW, ou de récupérer à partir d'un emplacement protégé dont la clé de protection de stockage ne correspond pas à la clé PSW.
  • Une exception d'adressage est reconnue lorsqu'un programme tente d'accéder à un emplacement de stockage qui n'est pas actuellement disponible. Cela se produit normalement avec une adresse au-delà de la capacité de la machine, mais cela peut également se produire sur des machines qui permettent de déconnecter des blocs de stockage.
  • Une exception de spécification est reconnue lorsqu'une instruction a une longueur ou un champ de registre avec des valeurs non autorisées par l'opération, ou lorsqu'elle a une adresse d'opérande qui ne satisfait pas aux exigences d'alignement de l'opcode, par exemple, une instruction LH avec une adresse d'opérande impaire sur une machine sans la fonction d'alignement d'octets.
  • Une exception de données est reconnue lorsqu'une instruction décimale spécifie des opérandes invalides, par exemple des données invalides, un chevauchement invalide.
  • Une exception de débordement à virgule fixe est reconnue lorsque des bits significatifs sont perdus dans une instruction arithmétique ou de décalage à virgule fixe, autre que la division.
  • Une exception de division à virgule fixe est reconnue lorsque des bits significatifs sont perdus dans une instruction de division à virgule fixe ou de conversion en binaire.
  • Une exception de dépassement décimal est reconnue lorsque des chiffres significatifs sont perdus dans une instruction arithmétique décimale, autre que la division.
  • Une exception de division décimale est reconnue lorsque des bits significatifs sont perdus dans une instruction de division décimale. La destination n'est pas modifiée.
  • Une exception de dépassement d'exposant est reconnue lorsque la caractéristique dans une opération arithmétique à virgule flottante dépasse 127 et que la fraction n'est pas nulle.
  • Une exception de dépassement de capacité d'exposant est reconnue lorsque la caractéristique dans une opération arithmétique à virgule flottante est négative et que la fraction n'est pas nulle.
  • Une exception de signification est reconnue lorsque la fraction dans une opération d'addition ou de soustraction à virgule flottante est zéro.
  • Une exception de division à virgule flottante est reconnue lorsque la fraction dans le diviseur d'une opération de division à virgule flottante est zéro.

Superviseur Interruption d'appel

Une interruption d'appel de superviseur se produit à la suite d'une instruction d'appel de superviseur ; le système stocke les bits 8 à 15 de l'instruction SVC en tant que code d'interruption.

Interruption externe

Une interruption externe se produit à la suite de certains événements asynchrones. Les bits 16-24 de l'ancien PSW externe sont mis à 0 et un ou plusieurs des bits 24-31 est mis à 1

Codes d'interruption pour les interruptions externes
Bit PSW Type d'interruption externe

24

Minuteur

25

Touche d'interruption

26

Signal externe 2
Alerte de dysfonctionnement sur 360/65 en mode Multisystème

27

Signal externe 3
Appel système sur 360/65 en mode multisystème

28

Signal externe 4

29

Signal externe 5

30

Signal externe 6

31

Signal externe 7

Interruption de la vérification de la machine

Une interruption Machine Check se produit pour signaler des conditions inhabituelles associées au canal ou à l'UC qui ne peuvent pas être signalées par une autre classe d'interruption. La classe de conditions la plus importante provoquant une vérification de la machine est une erreur matérielle telle qu'une erreur de parité trouvée dans les registres ou le stockage, mais certains modèles peuvent l'utiliser pour signaler des conditions moins graves. Le code d'interruption et les données stockées dans la zone de balayage à '80'x (128 décimal) dépendent du modèle.

Entrée sortie

Cet article décrit les E/S du point de vue du processeur. Il ne traite pas du câble de canal ou des connecteurs, mais il y a un résumé ailleurs et des détails peuvent être trouvés dans la littérature IBM.

Les E/S sont effectuées par un processeur conceptuellement distinct appelé canal. Les canaux ont leur propre jeu d'instructions et accèdent à la mémoire indépendamment du programme exécuté sur la CPU. Sur les modèles plus petits (jusqu'à 360/50 ), un seul moteur de microcode exécute à la fois le programme CPU et le programme de canal. Sur les modèles plus grands, les canaux sont dans des armoires séparées et ont leurs propres interfaces mémoire. Un canal peut contenir plusieurs sous - canaux , chacun contenant l'état d'un programme de canal individuel. Un sous-canal associé à plusieurs appareils qui ne peuvent pas avoir simultanément des programmes de canal est appelé partagé ; un sous-canal représentant un seul appareil est appelé non partagé .

Il existe trois types de canaux sur le S/360 :

  • Un canal multiplexeur d'octets est capable d'exécuter plusieurs CCW simultanément ; il est normalement utilisé pour connecter des périphériques lents tels que des lecteurs de cartes et des lignes de télécommunications. Un canal de multiplexeur d'octets peut avoir un certain nombre de sous-canaux de sélection, chacun avec un seul sous-canal, qui se comportent comme des canaux de sélection à faible vitesse.
  • Un canal sélecteur n'a qu'un seul sous-canal et n'est donc capable d'exécuter qu'une seule commande de canal à la fois. Il est normalement utilisé pour connecter des périphériques rapides qui ne sont pas capables d'exploiter un canal de multiplexeur de blocs pour suspendre la connexion, tels que des lecteurs de bande magnétique.
  • Un canal multiplexeur de blocs est capable d'exécuter simultanément plusieurs programmes de canaux, mais un seul à la fois peut être actif. L'unité de contrôle peut demander une suspension à la fin d'une commande de canal et peut demander ultérieurement une reprise. Ceci est destiné aux appareils dans lesquels il y a un retard mécanique après la fin du transfert de données, par exemple, pour les recherches sur le DASD à tête mobile. Le canal multiplexeur de blocs était un ajout tardif à l'architecture System/360 ; les premières machines n'avaient que des canaux multiplexeurs d'octets et des canaux sélecteurs. Le canal multiplexeur de bloc était une fonction optionnelle uniquement sur les modèles 85 et 195. Le canal multiplexeur de bloc était également disponible sur les derniers ordinateurs System/370 .

Conceptuellement, l'équipement périphérique est relié à un S/360 par le biais d' unités de contrôle , qui à leur tour sont reliées par des canaux. Cependant, l'architecture n'exige pas que les unités de contrôle soient physiquement distinctes, et en pratique elles sont parfois intégrées aux dispositifs qu'elles contrôlent. De même, l'architecture n'exige pas que les canaux soient physiquement distincts du processeur, et les modèles S/360 plus petits (jusqu'à 360/50) ont des canaux intégrés qui volent les cycles du processeur.

Les périphériques sont adressés avec des adresses de 16 bits, appelées cua ou cuu ; cet article utilisera le terme cuu . Les 8 bits de poids fort identifient un canal, numéroté de 0 à 6, tandis que les 8 bits de poids faible identifient un périphérique sur ce canal. Un appareil peut avoir plusieurs adresses cuu .

Les unités de contrôle se voient attribuer une plage d'adresses de « capture ». Par exemple, une CU peut se voir attribuer la plage 20-2F ou 40-7F. Le but de ceci est d'aider à la connexion et à la hiérarchisation de plusieurs unités de contrôle à un canal. Par exemple, un canal peut avoir trois unités de contrôle de disque à 20-2F, 50-5F et 80-8F. Toutes les adresses capturées n'ont pas besoin d'avoir un périphérique physique attribué. Chaque unité de contrôle est également marquée comme priorité haute ou basse sur le canal.

La sélection des appareils progresse du canal à chaque unité de contrôle dans l'ordre où ils sont physiquement attachés à leur canal. A la fin de la chaîne, le processus de sélection continue en sens inverse vers le canal. Si la sélection revient au canal, aucune unité de contrôle n'a accepté la commande et le SIO renvoie le code de condition 3. Les unités de contrôle marquées comme haute priorité vérifient que la CUU sortante est dans leur plage. Si c'est le cas, l'E/S a été traitée. Si ce n'est pas le cas, la sélection a été transmise à la prochaine UC sortante. Les unités de contrôle marquées comme étant de faible priorité vérifient que les CUU entrants (de retour) se trouvent dans leur plage. Si c'est le cas, les E/S sont traitées. Sinon, la sélection est transmise à la prochaine CU entrante (ou au canal). La connexion de trois unités de contrôle à un canal peut être physiquement -ABC et, si toutes sont marquées comme hautes, la priorité serait ABC. Si tous sont marqués bas, la priorité serait l'ABC. Si B était marqué High et AC low, l'ordre serait BCA. En prolongeant ce raisonnement, le premier des N contrôleurs serait de priorité 1 (élevé) ou 2N-1 (bas), le deuxième de priorité 2 ou 2N-2, le troisième de priorité 3 ou 2N-3, etc. Le dernier physiquement attaché serait toujours la priorité N.

Il existe trois champs de stockage réservés aux E/S ; un ancien PSW d'E/S à double mot, un nouveau PSW d'E/S à double mot et un mot d' adresse de canal ( CAW ) à mot complet . L'exécution d'une E/S nécessite normalement les éléments suivants :

  • initialiser le CAW avec la clé de stockage et l'adresse du premier CCW
  • émission d'une instruction Start I/O ( SIO ) qui spécifie le cuu pour l'opération
  • en attente d'une interruption d'E/S
  • gérer toutes les conditions inhabituelles indiquées dans le mot d'état du canal ( CSW )

Un programme de canal est constitué d'une séquence de mots de commande de canal ( CCW s) enchaînés (voir ci - dessous). Normalement , le canal récupère CCW s de mots doubles consécutives, mais une unité de commande peut diriger le canal à sauter un CCW et un transfert en chaîne ( TIC ) CCW peut ordonner au canal de commencer à récupérer les CCW à partir d'un nouvel emplacement.

Il existe plusieurs manières définies d'exécuter une commande de canal. Certains d'entre eux permettent au canal de continuer à récupérer les CCW, tandis que d'autres mettent fin au programme du canal. En général, si le CCW n'a pas le bit de commande de chaîne défini et n'est pas un TIC, alors le canal mettra fin à l'opération d'E/S et provoquera une interruption d'E/S lorsque la commande se termine. Certains bits d'état de l'unité de contrôle suppriment le chaînage.

Les moyens les plus courants pour qu'une commande se termine sont que le compte soit épuisé lorsque les données de chaîne ne sont pas définies et que l'unité de contrôle signale qu'aucun autre transfert de données ne doit être effectué. Si Suppress-Length-Indication (SLI) n'est pas défini et que l'un d'entre eux se produit sans l'autre, le chaînage n'est pas autorisé. Les situations les plus courantes qui suppriment le chaînage sont l'exception d'unité et la vérification d'unité. Cependant, la combinaison de contrôle d'unité et de modification d'état ne supprime pas le chaînage ; au lieu de cela, il oblige le canal à effectuer une nouvelle tentative de commande, en retraiteant le même CCW.

En plus du signal d'interruption envoyé à l'UC lorsqu'une opération d'E/S est terminée, un canal peut également envoyer une interruption contrôlée par programme (PCI) à l'UC pendant que le programme de canal est en cours d'exécution, sans terminer l'opération, et un interruption de fin de périphérique après l'interruption de fin d'E/S.

État du canal

Ces conditions sont détectées par le canal et indiquées dans le CSW .

  • Une interruption contrôlée par programme indique que le canal a récupéré un CCW avec le bit PCI défini. Le canal continue le traitement ; cette interruption informe simplement le CPU de la progression du canal. Un exemple de l'utilisation de l'interruption contrôlée par le programme est dans la fonction « Récupération de programme » de la supervision du contenu, par laquelle le programme de contrôle est informé qu'un enregistrement de contrôle/de relocalisation a été lu. Pour s'assurer que cet enregistrement a été complètement lu dans la mémoire principale, un "tour de bits désactivé", l'un des rares qui reste dans le programme de commande, est lancé. La satisfaction de la rotation indique que l'enregistrement de contrôle/déplacement est entièrement dans le stockage principal et que l'enregistrement de texte immédiatement précédent peut être déplacé. Après la relocalisation, un NOP CCW est remplacé par un TIC et le programme de canal continue. De cette manière, un module de chargement entier peut être lu et déplacé en utilisant un seul EXCP et éventuellement un seul tour du lecteur de disque. PCI a également des applications dans la gestion des tampons des méthodes d'accès par télétraitement.
  • Une longueur incorrecte indique que le transfert de données pour une commande s'est terminé avant que le compte ne soit épuisé. Cette indication est supprimée si lebit Suppress-Length-Indication dans le CCW est activé.
  • La vérification du programme indique l'une des erreurs suivantes
    • Bits différents de zéro où des zéros sont requis
    • Une donnée ou une adresse CCW invalide
    • Le TCA ou un TIC fait référence à un TIC
  • Le contrôle de protection indique que la clé de protection dans le CAW est différente de zéro et ne correspond pas à la clé de protection de stockage.
  • La vérification des données de canal indique une erreur de parité lors d'un transfert de données.
  • La vérification de contrôle de canal indique un dysfonctionnement de canal autre que le contrôle de données de canal ou le contrôle de contrôle d'interface .
  • La vérification du contrôle de l'interface indique un signal invalide dans l'interface du canal vers l'unité de contrôle.
  • La vérification du chaînage indique la perte de données pendant le chaînage des données.

État de l'unité

Ces conditions sont présentées au canal par l'unité de commande ou l'appareil. Dans certains cas, ils sont traités par le canal et dans d'autres cas, ils sont indiqués dans le CSW . Il n'y a pas de distinction entre les conditions détectées par l'unité de contrôle et les conditions détectées par l'appareil.

  • Attention indique une condition inhabituelle non associée à un programme de canal en cours. Il indique souvent une sorte d'action de l'opérateur comme demander une entrée, auquel cas la CPU répondrait en émettant une commande de type lecture, le plus souvent une commande de détection (04h) à partir de laquelle des informations supplémentaires pourraient être déduites. L'attention est une condition particulière, et nécessite une prise en charge spécifique du système d'exploitation, et pour laquelle le système d'exploitation dispose d'une table d'attention spéciale avec un nombre d'entrées nécessairement limité.
  • Le modificateur d'état (SM) indique l'une des trois conditions inhabituelles
    • Une instruction Test I/O a été envoyée à un périphérique qui ne la prend pas en charge.
    • Un statut Occupé fait référence à l'unité de contrôle plutôt qu'à l'appareil.
    • Un appareil a détecté une condition qui nécessite l'omission d'un CCW. Un CCW avec une commande pour laquelle Status Modifier est possible spécifiera normalement le chaînage de commandes, auquel cas le SM est traité par le canal et ne provoque pas d'interruption.
Un programme de canal typique où SM se produit est
    ...
    Search Id Equal
    TIC           *-8
    Read Data
où le TIC amène le canal à récupérer la recherche jusqu'à ce que l'appareil indique une recherche réussie en levant SM.
  • La fin de l'unité de contrôle indique qu'un état occupé précédent de l'unité de contrôle a été effacé.
  • Occupé indique qu'un appareil ( SM =0) ou une centrale ( SM = 1) est occupé.
  • La fin du canal indique que l'appareil a terminé le transfert de données pour une commande de canal. Il peut également y avoir uneindication de longueur incorrecte si le champ Count du CCW est épuisé, en fonction de la valeur dubit Suppress-Length-Indication .
  • Fin de l'appareil indique que l'appareil a terminé une opération et est prêt à en accepter une autre. DE peut être signalé en même temps que CE ou peut être retardé.
  • La vérification de l'unité indique que l'appareil ou l'unité de commande a détecté des conditions inhabituelles et que des détails peuvent être obtenus en émettant une commande de détection.
  • L'exception d'unité indique que le périphérique a détecté une condition inhabituelle, par exemple, la fin du fichier.

Mot d'adresse de canal

Le mot complet Channel Address Word (CAW) contient une clé de protection de stockage de 4 bits et une adresse de 24 bits du programme de canal à démarrer.

Mot de commande de canal

Un mot de commande de canal est un mot double contenant les éléments suivants :

  • un code de commande de canal 8 bits
  • une adresse 24 bits
  • un champ indicateur de 5 bits
  • un champ de nombre de demi-mots non signés

Codes de commande CCW

Les bits de poids faible 2 ou 4 déterminent les six types d'opérations que le canal effectue. L'encodage est

Codes de commande CCW
morceaux Commander
**** 0000 Non valide dans un CCW, simulé par l'instruction Test I/O (TIO) du processeur
MMMM 0100 Sens
**** 1000 Transfert en Canal (TIC)
MMMM 1100 Lire à l'envers
MMMM MM01 Écrivez
MMMM MM10 Lis
MMMM MM11 Contrôler

La signification des six ou quatre bits de poids fort, les bits modificateurs, M dans le tableau ci-dessus, dépend du type de périphérique d'E/S connecté, voir par exemple, DASD CKD CCW . Les huit bits sont envoyés et interprétés dans l'unité de contrôle associée (ou son équivalent fonctionnel).

La commande est utilisée pour provoquer un changement d'état dans un dispositif ou une unité de commande, souvent associé à un mouvement mécanique, par exemple, rembobiner, rechercher.

Sense est utilisé pour lire les données décrivant l'état de l'appareil. Le cas le plus important est que lorsqu'une commande se termine avec un contrôle d'unité, la cause spécifique ne peut être déterminée qu'en effectuant une détection et en examinant les données renvoyées. Une commande Sense avec les bits de modificateur tous à zéro est toujours valide.

Un écart notable par rapport à l'architecture est que le DASD utilise les codes de commande Sense pour la réserve et la libération, au lieu d'utiliser le contrôle.

Drapeaux CCW

Les indicateurs dans un CCW affectent la façon dont il s'exécute et se termine.

Drapeaux CCW
bit drapeau effet
32 CD Chaîne-Données Continuer l'opération en utilisant la zone de stockage définie par le prochain CCW.
33 CC Chaîne-Commande Continuez avec la commande dans le prochain CCW.
34 SLI Supprimer-Longueur-Indication Continuer le programme de la chaîne après une incompatibilité de comptage.
35 SAUTER Sauter Ne pas lire ni écrire dans le stockage.
36 PCI Interruption contrôlée par programme Demande d'interruption lors de la récupération CCW.

Mot d'état du canal

Le mot d'état de canal (CSW) fournit des données associées à une interruption d'E/S.

Format CSW
morceaux domaine
0-3 Clé
4-7 0000
8-31 Adresse de commande
32-47 Statut
32-39
Conditions d'état de l'unité
Détecté par l'appareil ou l'unité de contrôle
32
Attention
33
Modificateur de statut
34
Fin de l'unité de contrôle
35
Occupé
36
Fin du canal
37
Fin de l'appareil
38
Contrôle de l'unité
39
Exception d'unité
40-47
Conditions d'état du canal
Détecté par le canal.
40
Interruption contrôlée par programme
41
Longueur incorrecte
42
Vérification du programme
43
Contrôle de protection
44
Vérification des données du canal
45
Vérification du contrôle des canaux
46
Vérification du contrôle de l'interface
47
Vérification du chaînage
48-63 Compter
  • Le champ Clé de protection contient la clé de protection du CAW au moment où l'opération d'E/S a été initiée pour des interruptions d'E/S terminées ou PCI.
  • Le champ Adresse de commande contient l'adresse +8 du dernier CCW récupéré pour une E/S terminée ou une interruption PCI. Cependant, il existe 9 exceptions.
  • Le champ Status contient un octet de bits d' état du canal , indiquant les conditions détectées par le canal, et un octet de bits d' état de l' unité , indiquant les conditions détectées par l'unité d'E/S. Il n'y a pas de distinction entre les conditions détectées par l'unité de contrôle et les conditions détectées par l'appareil.
  • Le compte résiduel est un demi-mot qui donne le nombre d'octets dans la zone décrite par le CCW qui n'ont pas été transférés vers ou depuis le canal. La différence entre le compte dans le CCW et le compte résiduel donne le nombre d'octets transférés.

Commandes de l'opérateur

commandes de l'opérateur

L'architecture de System/360 précisait l'existence de plusieurs fonctions communes, mais ne précisait pas leurs moyens de mise en œuvre. Cela a permis à IBM d'utiliser différents moyens physiques, par exemple un cadran, un clavier, un bouton-poussoir, une molette, une image ou du texte sur un tube cathodique, pour sélectionner les fonctions et les valeurs sur différents processeurs. Toute référence à une touche ou à un commutateur doit être interprétée comme s'appliquant, par exemple, à une sélection au crayon lumineux, à une séquence de clavier équivalente.

  • La réinitialisation du système envoie un signal de réinitialisation sur chaque canal d'E/S et efface l'état du processeur ; toutes les interruptions en attente sont annulées. La réinitialisation du système n'est pas garantie pour corriger les erreurs de parité dans les registres généraux, les registres à virgule flottante ou le stockage. La réinitialisation du système ne réinitialise pas l'état des périphériques d'E/S partagés.
  • Le chargement initial de programme (IPL) est un processus de chargement d'un programme lorsqu'il n'y a pas de chargeur disponible dans le stockage, généralement parce que la machine vient d'être mise sous tension ou pour charger un système d'exploitation alternatif. Ce processus est parfois appelé démarrage .
Dans le cadre de la fonction IPL, l'opérateur dispose d'un moyen de spécifier une adresse de périphérique 12 bits, généralement avec trois cadrans, comme indiqué dans le dessin des commandes de l'opérateur. Lorsque l'opérateur sélectionne la fonction de chargement , le système effectue une réinitialisation du système , envoie une commande de lecture de canal IPL à l'appareil sélectionné afin de lire 24 octets dans les emplacements 0-23 et amène le canal à commencer à extraire les CCW à l'emplacement 8 ; l'effet est comme si le canal avait récupéré un CCW avec une longueur de 24, et une adresse de 0 et les drapeaux contenant le chaînage de commande + l'indication de longueur de suppression. À la fin de l'opération, le système stocke l'adresse d'E/S dans le demi-mot à l'emplacement 2 et charge le PSW à partir de l'emplacement 0.
Le chargement initial du programme est généralement effectué à partir d'une bande, d'un lecteur de carte ou d'un lecteur de disque. Généralement, le système d'exploitation était chargé à partir d'un lecteur de disque ; L'IPL à partir de bandes ou de cartes n'était utilisé que pour le diagnostic ou pour l'installation d'un système d'exploitation sur un nouvel ordinateur.
  • L'interrupteur à tirette d'urgence (mise hors tension d'urgence, EPO) envoie un signal EPO à chaque canal d'E/S, puis coupe l'alimentation du complexe de processeurs. Étant donné que l'EPO contourne la séquence normale de mise hors tension, des dommages peuvent en résulter, et la commande EPO dispose d'un loquet mécanique pour garantir qu'un ingénieur client inspecte l'équipement avant de tenter de le remettre sous tension.
  • La mise sous tension allume tous les composants du complexe de processeurs et effectue une réinitialisation du système.
  • La mise hors tension lance une séquence de mise hors tension ordonnée. Bien que le contenu du stockage soit conservé, les clés de stockage associées peuvent être perdues.
  • La touche Interruption provoque une interruption externe avec le bit 25 défini dans l'ancien PSW externe.
  • Le voyant d'attente indique que le PSW a défini le bit 14 (attente) ; le processeur est temporairement arrêté mais reprend son fonctionnement lorsqu'une condition d'interruption se produit.
  • Le voyant Manuel indique que la CPU est à l'arrêt.
  • Le voyant System indique qu'un compteur est en cours d'exécution, soit en raison de l'activité du processeur, soit en raison de l'activité du canal d'E/S.
  • Le voyant Test indique que certaines commandes de l'opérateur sont actives, lorsque certaines fonctions, par exemple, ÉTAPE D'INSTRUCTION, ont été utilisées par une instruction de diagnostic ou lorsque des conditions thermiques anormales existent. Les détails dépendent du modèle.
  • Le voyant de charge est allumé par IPL et démarrage externe. Il est désactivé en chargeant le PSW à partir de l'emplacement 0 à la fin du processus de chargement.
  • Les commandes de l' unité de chargement fournissent les 11 bits les plus à droite du périphérique à partir desquels effectuer un IPL.
  • La touche de chargement démarre la séquence IPL .
  • Le commutateur à clé de sélection de préfixe sélectionne si IPL utilisera le préfixe principal ou le préfixe alternatif.
  • La touche de réinitialisation du système lance une réinitialisation du système .
  • La touche Stop met le CPU dans un état arrêté ; les programmes de canaux continuent de fonctionner et les conditions d'interruption restent en attente.
  • Le commutateur de taux détermine le mode dans lequel le processeur récupère les instructions. Deux modes sont définis par l'architecture :
    • TRAITER
    • ÉTAPE D'INSTRUCTION
  • La touche de démarrage lance l'extraction des instructions conformément au réglage du commutateur de taux .
  • Le commutateur de sélection de stockage détermine le type de ressource accessible par la clé de stockage et la clé d'affichage . Trois sélections sont définies par l'architecture :
    • Stockage principal
    • Registres généraux
    • Registres à virgule flottante
  • Les commutateurs d'adresse spécifient l'adresse ou le numéro de registre pour la clé de stockage , la clé d'affichage et, sur certains modèles, la clé de configuration IC ..
  • Les commutateurs de données spécifient les données pour la clé de stockage et, sur certains modèles, la clé de configuration IC .
  • La clé de stockage stocke la valeur dans les commutateurs de données comme spécifié par le commutateur de sélection de stockage et les commutateurs d'adresse .
  • La touche d' affichage affiche la valeur spécifiée par le commutateur de sélection de stockage et les commutateurs d'adresse .
  • Le Set IC= définit la portion d'adresse d'instruction du PSW à partir des commutateurs de données ou des commutateurs d'adresse , selon le modèle.
  • Les commutateurs de comparaison d' adresses sélectionnent le mode de comparaison et ce qui est comparé. L'arrêt sur la comparaison d'adresses d'instruction est présent sur tous les modèles, mais l'arrêt sur la comparaison d'adresses de données n'est présent que sur certains modèles.
  • Le voyant de préfixe alternatif est allumé lorsque le déclencheur de préfixe est dans l'état alternatif.

Caractéristiques optionnelles

Opérandes alignés sur les octets

Sur certains modèles, les exigences d'alignement pour certaines instructions d'état de problème ont été assouplies. Il n'y a pas de mécanisme pour désactiver cette fonction, et les programmes dépendant de la réception d'un contrôle de programme de type 6 (alignement) sur ces instructions doivent être modifiés.

Arithmétique décimale

La fonction d'arithmétique décimale fournit des instructions qui fonctionnent sur des données décimales condensées. Un nombre décimal condensé comporte de 1 à 31 chiffres décimaux suivis d'un signe à 4 bits. Toutes les instructions arithmétiques décimales, à l'exception de PACK et UNPACK, génèrent une exception Data si un chiffre n'est pas dans la plage 0-9 ou si un signe n'est pas dans la plage AF.

Contrôle direct

La fonction de contrôle direct fournit six lignes de signaux externes et un chemin de données 8 bits vers/depuis le stockage.

Arithmétique à virgule flottante

La fonction arithmétique à virgule flottante fournit 4 registres à virgule flottante de 64 bits et des instructions pour opérer sur des nombres à virgule flottante hexadécimaux de 32 et 64 bits. Les 360/85 et 360/195 prennent également en charge les nombres à virgule flottante à précision étendue 128 bits.

Minuterie d'intervalle

Si la fonction de minuterie d'intervalle est installée, le processeur décrémente le mot à l'emplacement 80 ('50'X) à intervalles réguliers ; l'architecture ne spécifie pas l'intervalle mais exige que la valeur soustraite donne l'impression que 1 était soustrait du bit 23 300 fois par seconde. Les modèles plus petits décrémentaient à la même fréquence (50 Hz ou 60 Hz) que l'alimentation CA, mais les modèles plus grands avaient une fonction de minuterie haute résolution. Le processeur provoque une interruption externe lorsque le temporisateur passe à zéro.

Fonctionnement multi-système

Le fonctionnement multi-système est un ensemble de fonctionnalités pour prendre en charge les systèmes multi-processeurs, par exemple, le contrôle direct, la relocalisation d'adresse directe (préfixe).

Protection de stockage

Si la fonction de protection du stockage est installée, une clé de stockage de 4 bits est associée à chaque bloc de stockage de 2 048 octets et cette clé est vérifiée lors du stockage dans n'importe quelle adresse de ce bloc par un processeur ou un canal d'E/S. Une clé CPU ou canal de 0 désactive la vérification ; une clé CPU ou canal différente de zéro permet aux données d'être stockées uniquement dans un bloc avec la clé correspondante.

La protection du stockage a été utilisée pour empêcher une application défectueuse d'écrire sur le stockage appartenant au système d'exploitation ou à une autre application. Cela a permis d'effectuer des tests en même temps que la production. Comme la clé n'avait que quatre bits de longueur, le nombre maximum d'applications différentes pouvant être exécutées simultanément était de 15.

Une option supplémentaire disponible sur certains modèles était la protection contre la récupération. Il permettait au système d'exploitation de spécifier que les blocs étaient protégés contre la récupération ainsi que contre le stockage.

Déviations et extensions

Le System/360 Model 20 est radicalement différent et ne doit pas être considéré comme un S/360.

Il manque certaines instructions au System/360 Model 44 , mais une fonctionnalité a permis de simuler les instructions manquantes dans la mémoire cachée, permettant ainsi l'utilisation des systèmes d'exploitation et des applications S/360 standard.

Certains modèles ont des fonctionnalités qui étendent l'architecture, par exemple, les instructions d'émulation, la pagination, et certains modèles font des écarts mineurs par rapport à l'architecture. Les exemples comprennent:

  • La fonction multisystème sur le S/360-65 qui modifie le comportement de la fonction de contrôle direct et de l'instruction Set System Mask (SSM).
  • Le System/360 Model 67 -2 avait des changements similaires, mais incompatibles.

Certaines déviations ont servi de prototypes pour les caractéristiques de l' architecture S/370 .

Voir également

Remarques

Les références

S360
IBM System/360 Principes de fonctionnement . Bibliothèque de référence des systèmes (Huitième éd.). IBM. Septembre 1968. A22-6821-7.

Lectures complémentaires

Liens externes