Structure pipeline

______


IBM 7030   ou      IBM STRETCH

1961

Premier ordinateur transistors
Premier ordinateur à utiliser la structure pipeline
Conçue par David Patterson
(photo)

 

David Patterson concepteur de la structure pipeline, spécialiste de l'architecture RISC professeur à l'université de Berkeley  

La structure pipeline:

Elle consiste en une succession d'étapes matérialisée par des circuits indépendants qui vont effectuer chacun successivement une tâche visant à exécuter l'instruction.
La structure classique initiée par Patterson consiste à scinder l'exécution de l'instruction en 5 étapes

IF ID EX Mem WB
Recherche de l'instruction Décodage Exécution Écriture du résultat en mémoire Écriture éventuelle du résultat dans les registres

 Le but est de commencer le travail sur une instruction avant que la précédente soit exécutée complètement .
Dans l'idéal le pipeline se comporterait comme ceci:

temps

IF

ID

EX

MEM

WB

t1

Instruc N

Décod N-1

Exé N-2

Ecrit N-3

N-4 dans Reg

t2

Instruc N+1

Décodage N

Exé N-1

Ecrit N-2

N-3 dans Reg

t3

Instruc N+2

Décod N+1

Exécution N

Ecrit N-1

N-2 dans Reg

t4

Instruc N+3

Décod N+2

Exé N+1

Ecrit résult N

N-1 dans Reg

t5

Instruc N+4

Décod N+3

Exé N+2

Ecrit N+1

résult N dans registre

On voit que si tout se passe bien , à chaque cycle d'horloge (t1,t2, etc) le résultat d'une instruction s'écrit en mémoire.
         Cependant, ceci est théorique, en effet ce processus peut fonctionner ainsi s'il n'y a pas dépendance entre les instructions. Ainsi si l'instruction N+1 consiste à additionner le résultat de N à une autre opérande, il va être nécessaire d'attendre que N arrive en fin de pipeline pour exécuter N+1 . Ceci doit être prévu par le compilateur qui va incorporer des instructions nulles (Nop) avant la recherche de N+1 .
          Autre cas de dépendance si l'instruction N est un branchement conditionnel, si ce branchement s'effectue tout le contenu du pipeline doit être effacé, ce qui nécessite une structure matérielle pour effectuer cette mise à 0 et bien sur une perte de temps .
          Le but est d'exécuter une instruction par cycle d'horloge. Cet objectif ne peut être atteint que dans la mesure ou le temps d'exécution est court ce qui va imposer des instructions simples d'où la nécessité de supprimer les instructions complexes des microprocesseurs classiques telles que les multiplications et les divisions. L'utilisation de la structure pipeline appelle la conception RISC

L'ordinateur IBM 7030 ou IBM STRETCH

Commandé par le Laboratoire de Los Alamos, objectif multiplier par 100 la vitesse de l'IBM704 qui exécutait 40 000 instructions par seconde, ordinateur à tube à vide et mémoire à tores de ferrite.
Livraison prévue 1960.

Au cours de l'étude il fallu se rendre à l'évidence, la fréquence de l'horloge devait être diminuée et d'emblé la performance ne pourrait être atteinte. En fait c'est un rapport de 30 qui fut atteint et IBM du réduire son prix de vente de 13,5 M$ à 7,8M$ d'autant plus que la date de livraison fut reportée à 1961

Cet échec commercial fut difficile à accepter par la direction d'IBM mais cela ne devait pas durer longtemps car le prochain ordinateur fut l'IBM 360 qui utilisera nombre innovations introduites dans le 7030
 et sera un grand succès:
      - utilisation de 168 100  transistors au germanium, fréquence de coupure 100 MHz, implantés sur 4 025 cartes doubles et 18 747 cartes simples
      - les données stockées sur les tores de ferrite sont accessibles en 2,8μs.
      - la mémoire de masse est constituée de disque magnétiques
      - puissance absorbée 21 KW
      - structure pipeline, prefetch des instructions
      - bytes de 8 bits, instructions sur 32 et 64 bits
Le 7030 peut interrompre un travail de longue haleine et libérer son unité de calcul pour un travail urgent et reprendre sa tâche ensuite
Il utilise la technique que l'on appelle maintenant de prefetch et qui à cette époque était appelée Look-Ahead qui consiste à acquérir les instructions et les stocker dans une file d'attente d'accès rapide avant que l'unité d'exécution en ait besoin 


Numéro de la Fiche 213
Dernière mise à jour 13/02/2016