Architecture et technologie des ordinateurs II

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

Électronique de base du processeur
Premier programme en C :
sont des registres 32 bits
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
Fonctionnement de l'unité centrale (rappels ? de 1ère Année)
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Introduction à l’Algorithmique
Plan du cours : 2ème Partie
Objectif Comprendre à l ’aide d ’un exemple simple le déroulement des instructions au niveau microprogramme.
Le processeur Introduction Construction d ’un chemin de données
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Les microprocesseurs A. Objectifs de la séquence:
Architecture de machines Principes généraux
Architecture de machines Le microprocesseur
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Cours Systèmes logiques
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Sous-programmes Concepts généraux Passage de paramètres Fonctions
Architecture et technologie des ordinateurs II
Architecture de base d’un ordinateur
Gestion des Périphériques
Architecture et technologie des ordinateurs II
Cours #6 Conception d’unités de contrôle
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Système d’exploitation : Assembleur
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
LES SYSTEMES AUTOMATISES
©Frédéric Bastien 2006 Université de Montréal 1 LISATek LISATek pour concevoir des processeurs.
Parallélisme des instructions
Parallélisme des instructions
Architecture et technologie des ordinateurs II
IFT 6800 Atelier en Technologies d’information
Ift 2251 Introduction au Génie Logiciel
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Lycée ELKHAWARIZMI De SAFI
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
Cours Architecture des Systèmes Informatiques
Architecture d'un ordinateur
3-Présentation d’un µP simple
L’architecture du processeur Xtensa de Tensilica
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
Architectures des ordinateurs
Les Machines RAM.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
Cours LCS N°4 Présenté par Mr: LALLALI
INFOR 101 Chapitre 5 Marianne Morris.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Architecture et technologie des ordinateurs II
Exécution d ’un programme en 6809: Présentation du programme
CST 101 : Conception des systèmes de télécommunication
Micro contrôleurs M. Boutemeur
Architecture et technologie des ordinateurs II
UE MAREP Cours 5 : Structures de contrôle représentées en assembleur
Patricia Renault UPMC 2005/2006
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
Chapitre 3 L’accès aux données.
Architecture des ordinateurs
CHAPITRE 10 Les sous-programmes 1. Sous-programme Suite d’instructions appelée de manière répétitive Par un programme Par plusieurs programmes distincts.
Architecture d’un ordinateur
Formations Système Embarqué & Informatique Industrielle
Étapes pour la Programmation du 68HC11 I. Écriture du programme dans un fichier *.a11 II. Le programme est compilé (traduit en langage machine) III. Le.
Transcription de la présentation:

Architecture et technologie des ordinateurs II Instructions Types d’instructions Séquencement Contrôle MÉMOIRE PRINCIPALE IO IO IO BUS SYSTÈME CPU Cache Instructions Unité de Contrôle Unité de Traitement Cache Données Décodeur ALU Unité Flottante PC Registres G. Tempesti 1

Un processeur « générique » Architecture et technologie des ordinateurs II Un processeur « générique » AL[2:0] | Fonction 0 0 0 | not I0 0 0 1 | I0 and I1 0 1 0 | I0 xor I1 0 1 1 | I0 or I1 1 0 0 | I0 - 1 1 0 1 | I0 + I1 1 1 0 | I0 - I1 1 1 1 | I0 + 1 OUTPORT INPORT DATAPATH OEN SEL 1 0 I0 I1 AL2 AL1 AL0 Z Z≠0 SH2 SH1 SH0 ALU SHIFTER SH[2:0] | Fonction 0 0 0 | Décalage < 0 0 1 | Rotation < 0 1 0 | Décalage > 0 1 1 | Rotation > 1 0 0 | NOP 1 0 1 | NOP 1 1 0 | NOP 1 1 1 | NOP 3 RA 3 R0 R1 R2 R3 R4 R5 R6 R7 RB WEN 3 WA REGISTRES G. Tempesti 2

Architecture et technologie des ordinateurs II Le banc de registres RA0 I0 I1 I2 1 2 3 4 5 6 7 DÉCODEUR RA1 RA2 RB0 I0 I1 I2 1 2 3 4 5 6 7 DÉCODEUR RB1 RB2 LD R0 LD R1 LD R2 LD R3 LD R4 LD R5 LD R6 LD R7 WA0 1 2 3 4 5 6 7 I0 I1 I2 EN DÉCODEUR WA1 WA2 WAN G. Tempesti 3

Architecture et technologie des ordinateurs II Exemple de programme Problème: compter le nombre de 1 dans un mot d’entrée. Une solution possible (langage RTL): data  inport ocount  0 mask  1 while data ≠ 0 temp  data AND mask ocount  ocount + temp data  data >> 1 end while outport  ocount G. Tempesti 4

Architecture et technologie des ordinateurs II Exemple de programme data  inport data = R1 R1  inport ocount  0 ocount = R2 R2  0 mask  1 mask = R3 R3  1 while data ≠ 0 while R1 ≠ 0 temp  data AND mask temp = R4 R4  R1 AND R3 ocount  ocount + temp R2  R2 + R4 data  data >> 1 R1  R1 >> 1 end while end while outport  ocount outport  R2 Ce programme nécessite donc 4 éléments de stockage (registres) pour les 4 variables, ainsi que la constante 0. G. Tempesti 5

Contrôle de l’unité de traitement Architecture et technologie des ordinateurs II Contrôle de l’unité de traitement OUTPORT INPORT UNITÉ DE CONTRÔLE OEN OEN SEL SEL 1 0 3 AL[2:0] I0 I1 3 AL2 AL1 AL0 SH[2:0] 3 RA[2:0] Z 3 Z≠0 RB[2:0] SH2 SH1 SH0 SHIFTER WEN 3 WA[2:0] 3 RA 3 R0 R1 R2 R3 R4 R5 R6 R7 RB WEN Z≠0 3 WA OEN SEL AL[2:0] SH[2:0] RA[2:0] RB[2:0] WEN WA[2:0] 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 G. Tempesti 6

Architecture et technologie des ordinateurs II Machine d’états Une séquence d’instructions peut être vue comme une séquence d’états: start=0 S0 S7 outportocount start=1 data=0 S1 datainport S6 datadata >> 1 S2 ocount0 data≠0 S5 ocountocount + temp S3 mask1 S4 tempdata AND mask G. Tempesti 7

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT ØØØØ OEN SEL 1 0 ØØØØ START I0 I1 AL2 AL1 AL0 Ø 1 Ø S0 Z Ø Ø Z≠0 ØØØØ SH2 SH1 SH0 Ø SHIFTER Ø Ø start=0 ØØØØ S0 S7 start=1 data=0 RA S1 S6 ØØØ R0 R1 R2 R3 R4 R5 R6 R7 RB ØØØ WEN 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 ØØØ S3 S4 G. Tempesti 8

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 R1  inport ØØØØ 0011 OUTPORT INPORT ØØØØ OEN SEL 1 0 1 0000 START I0 I1 AL2 AL1 AL0 1 Ø + S1 Z 1 1 Z≠0 0011 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0011 S0 S7 start=1 data=0 RA S1 S6 ØØØ R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 9

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ R2  0 OUTPORT INPORT 0000 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + S2 Z 1 Z≠0 0000 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0000 S0 S7 start=1 data=0 RA S1 S6 000 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0011 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 10

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT R3  1 0000 OEN SEL 1 0 ØØØØ START I0 I1 AL2 AL1 AL0 1 Ø +1 1 S3 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 000 R0 R1 R2 R3 R4 R5 R6 R7 RB ØØØ WEN 1 0000 0011 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 011 S3 S4 G. Tempesti 11

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0011 OEN SEL 1 0 0001 R4  R1 AND R3 START I0 I1 AL2 AL1 AL0 Ø & S4 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 011 WEN 1 0000 0011 0000 0001 ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 100 S3 S4 G. Tempesti 12

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0000 OEN SEL 1 0 0001 START R2  R2 + R4 I0 I1 AL2 AL1 AL0 1 Ø + S5 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 100 WEN 1 0000 0011 0000 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 13

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0011 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + R1  R1 >> 1 end while S6 Z 1 1 Z≠0 0011 SH2 SH1 SH0 SHIFTER \ 1 start=0 0001 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0011 0001 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 14

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0001 OEN SEL 1 0 0001 R4  R1 AND R3 START I0 I1 AL2 AL1 AL0 Ø & S4 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 011 WEN 1 0000 0001 0001 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 100 S3 S4 G. Tempesti 15

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0001 OEN SEL 1 0 0001 START R2  R2 + R4 I0 I1 AL2 AL1 AL0 1 Ø + S5 Z 1 1 Z≠0 0010 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0010 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 100 WEN 1 0000 0001 0001 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 16

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0001 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + R1  R1 >> 1 end while S6 Z 1 1 Z≠0 0001 SH2 SH1 SH0 SHIFTER \ 1 start=0 0000 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0001 0010 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 17

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0000 OEN SEL 1 0 0001 R4  R1 AND R3 START I0 I1 AL2 AL1 AL0 Ø & S4 Z 1 Z≠0 0000 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0000 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 011 WEN 1 0000 0000 0010 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 100 S3 S4 G. Tempesti 18

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0010 OEN SEL 1 0 0000 START R2  R2 + R4 I0 I1 AL2 AL1 AL0 1 Ø + S5 Z 1 1 Z≠0 0010 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0010 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 100 WEN 1 0000 0000 0010 0001 0000 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 19

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT 0000 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + R1  R1 >> 1 end while S6 Z 1 Z≠0 0000 SH2 SH1 SH0 SHIFTER \ 1 start=0 0000 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0000 0010 0001 0000 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 20

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 0010 ØØØØ OUTPORT INPORT 0010 OEN 1 SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + S7 Z 1 1 Z≠0 0010 outport  R2 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0010 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 0000 0000 0010 0001 0000 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 ØØØ S3 S4 G. Tempesti 21

Exécution de programme - Exemple Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1  inport R2  0 R3  1 while R1 ≠ 0 R4  R1 AND R3 R2  R2 + R4 R1  R1 >> 1 end while outport  R2 ØØØØ ØØØØ OUTPORT INPORT ØØØØ OEN SEL 1 0 ØØØØ START I0 I1 AL2 AL1 AL0 Ø Ø S0 Z Ø Ø Z≠0 ØØØØ SH2 SH1 SH0 Ø SHIFTER Ø Ø start=0 ØØØØ S0 S7 start=1 data=0 RA S1 S6 ØØØ R0 R1 R2 R3 R4 R5 R6 R7 RB ØØØ WEN 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 ØØØ S3 S4 G. Tempesti 22

Contrôle par machine d’états Architecture et technologie des ordinateurs II Contrôle par machine d’états Toute machine d’états peut être réalisée par un système logique: start SLC D2 Q2 start=0 data≠0 S0 S7 start=1 D1 Q1 data=0 S1 S6 SLC D0 Q0 S2 data≠0 S5 CONTRÔLE[17:0] CK S3 S4 G. Tempesti 23

Architecture et technologie des ordinateurs II Table d’états Une table d’états possible est: | start, data=0 | | 00 01 11 10 | S0 000 | 000 000 001 001 | nop S1 001 | 010 010 010 010 | data  inport S3 011 | 100 100 100 100 | mask  1 S2 010 | 011 011 011 011 | ocount  0 S4 100 | 101 101 101 101 | temp  data and mask S5 101 | 110 110 110 110 | ocount  ocount + temp S7 111 | 000 000 000 000 | outport  ocount S6 110 | 100 111 111 100 | data  data >> 1 G. Tempesti 24

Architecture et technologie des ordinateurs II Signaux de contrôle On peut aussi créer la table des signaux de contrôle nécessaires pour gérer l’unité de traitement.  OEN SEL AL SH RA RB WEN WA S0 000 nop  0 0 ØØØ ØØØ ØØØ ØØØ 0 ØØØ S1 001 datainport 0 1 101 1ØØ ØØØ 000 1 001 S3 011 mask1 0 0 111 1ØØ 000 ØØØ 1 010 S2 010 ocount0 0 0 101 1ØØ 000 000 1 011 S4 100 tempdata AND mask 0 0 001 1ØØ 001 010 1 100 S5 101 ocountocount+temp 0 0 101 1ØØ 011 100 1 011 S7 111 outportocount 1 0 101 1ØØ 011 000 0 ØØØ S6 110 datadata >> 1 0 0 101 010 001 000 1 001 On peut alors déterminer, à l’aide de tables de Karnaugh, les fonctions logiques nécessaires pour évaluer le prochain état ainsi que tous les signaux de contrôle. G. Tempesti 25

Architecture et technologie des ordinateurs II SLC = mémoire Un système logique combinatoire peut toujours être réalisé par une mémoire suffisamment grande: | AB ABCD | Z CD | 00 01 10 11 0000 | 000 S0 00 | 000 000 001 001 0001 | 010 S1 01 | 010 010 010 010 0010 | 011 S2 10 | 011 011 011 011 0011 | 100 S3 11 | 100 100 100 100 0100 | 000 0101 | 010 0110 | 011 0111 | 100 1000 | 001 1001 | 010 1010 | 011 1011 | 100 1100 | 001 1101 | 010 1110 | 011 1111 | 100 N variables d’entrée = 2N adresses M variables de sortie = M bits de large G. Tempesti 26

Architecture et technologie des ordinateurs II SLC = mémoire | start, data=0 | | 00 01 11 10 | S0 000 | 000 000 001 001 | nop S1 001 | 010 010 010 010 | data  inport S3 011 | 100 100 100 100 | mask  1 S2 010 | 011 011 011 011 | ocount  0 S4 100 | 101 101 101 101 | temp  data and mask S5 101 | 110 110 110 110 | ocount  ocount + temp S7 111 | 000 000 000 000 | outport  ocount S6 110 | 100 111 111 100 | data  data >> 1 La table d’états de notre programme peut donc être réalisée avec une mémoire de 25=32 adresses et de 3 bits de large. G. Tempesti 27

Architecture et technologie des ordinateurs II SLC = mémoire  OEN SEL ALC SHC RRA RRB WEN WRA S0 000 nop  0 0 ØØØ ØØØ ØØØ ØØØ 0 ØØØ S1 001 datainport 0 1 101 1ØØ ØØØ 000 1 001 S3 011 mask1 0 0 111 1ØØ 000 ØØØ 1 010 S2 010 ocount0 0 0 101 1ØØ 000 000 1 011 S4 100 tempdata AND mask 0 0 001 1ØØ 001 010 1 100 S5 101 ocountocount+temp 0 0 101 1ØØ 011 100 1 011 S7 111 outportocount 1 0 101 1ØØ 011 000 0 ØØØ S6 110 datadata >> 1 0 0 101 010 001 000 1 001 Les signaux de contrôle de l’unité de traitement pour notre programme peuvent donc être définis avec une mémoire de 23=8 adresses et de 18 bits de large. G. Tempesti 28

Architecture et technologie des ordinateurs II SLC = mémoire L’unité de contrôle de notre processeur peut donc être réalisée à l’aide de mémoires: start RAM 32 x 3 D2 Q2 data≠0 D1 Q1 RAM 8 x 18 D0 Q0 CONTRÔLE[17:0] CK G. Tempesti 29

Architecture et technologie des ordinateurs II SLC = mémoire L’avantage d’utiliser des mémoires pour implémenter l’unité de contrôle est que cette approche peut être généralisée: M Fanions RAM 2N+M x N N N BASCULES RAM 2N x 18 CONTRÔLE[17:0] CK L’inconvénient d’utiliser des mémoires pour implémenter l’unité de contrôle est la taille des mémoires, fonction de la complexité de la table d’états et donc du programme. P.ex.: 16 bascules (64K instructions) + 8 signaux = 224x16 = 32MB! G. Tempesti 30

Langage de haut-niveau Compilation program toto; var A, B, C : array [1...1000] of integer; i : integer begin ... for i:=1 to 1000 do C[i] := A[i] + B[i]; end Algorithme  Langage de haut-niveau Langage machine = assembleur ... MOVE.L #2001,A0 MOVE.L #3001,A1 MOVE.L #4001,A2 START: ABCD -(A0),-(A1) MOVE.B (A1),(A2) TEST: CMPA #1001, A0 BNE START COMPILATEUR

Contrôle de l’unité de traitement Architecture et technologie des ordinateurs II Contrôle de l’unité de traitement OUTPORT INPORT UNITÉ DE CONTRÔLE OEN OEN SEL SEL 1 0 3 AL[2:0] I0 I1 AL2 AL1 AL0 3 SH[2:0] 3 Z RA[2:0] Z≠0 3 RB[2:0] SH2 SH1 SH0 SHIFTER WEN 3 WA[2:0] 3 RA 3 R0 R1 R2 R3 R4 R5 R6 R7 RB WEN Z≠0 3 WA OEN SEL AL[2:0] SH[2:0] WEN RA[2:0] RB[2:0] WA[2:0] OPÉRATION OPÉRANDES G. Tempesti 32

Format des instructions: exemple Architecture et technologie des ordinateurs II Format des instructions: exemple data  inport = LOAD ADR, R1 ocount  0 = MOVE R0, R2 mask  1 = INC R0, R3 while data ≠ 0 = BRA COND, ADR temp  data AND mask = AND R1, R3, R4 ocount  ocount + temp = ADD R2, R4, R2 data  data >> 1 = SHR R1, R1 end while = BRA 1, ADR outport  ocount = STORE ADR, R2 Opcode: 8 instructions différentes = 3 bits de opcode Opérandes: 3 opérandes de 3 bits de large Les instructions de notre processeur seront donc codées sur 12 bits. G. Tempesti 33

Format des instructions: exemple Architecture et technologie des ordinateurs II Format des instructions: exemple Le codage des instructions est, en général, arbitraire: OPCODE OPER1 OPER2 OPER3 LOAD ADR, R1 0 0 0 Adresse[5:0] 0 0 1 MOVE R0, R2 0 0 1 0 0 0 0 1 0 ø ø ø INC R0, R3 0 1 0 0 0 0 0 1 1 ø ø ø BRA ADR, COND 0 1 1 Adresse[5:0] data=0 AND R1, R3, R4 1 0 0 0 0 1 0 1 1 1 0 0 ADD R2, R4, R2 1 0 1 0 1 0 1 0 0 0 1 0 SHR R1, R1 1 1 0 0 0 1 0 0 1 ø ø ø BRA ADR, COND 0 1 1 Adresse[5:0] vrai STORE ADR, R2 1 1 1 Adresse[5:0] 0 1 0 Paramètres: 8 registres, 8 conditions, 26=64 adresses mémoire G. Tempesti 34

Contrôle par instructions - Décodage Adresse Instruction SLC M RAM 2N+M x N Fanions N SLC N BASCULES Opcode Opérandes n BASCULES Opérandes RAM 2N x 18 CONTRÔLE[17:0] RAM 2x x 9 Contrôle CK CK Fanions Chaque instruction doit permettre de générer les bits de contrôle pour l’unité de traitement ainsi que l’adresse de l’instruction suivante.

Contrôle par instructions - Décodage SLC CK Opcode Opérandes n BASCULES Fanions RAM Contrôle Opérandes Instruction Adresse 0:0|1 4:5 1:2 5:6 2:3 6:7|4 3:4 7:0 0:data  inport 1:ocount  0 2:mask  1 3:while data ≠ 0 4:tempdata AND mask 5:ocountocount+temp 6:data  data >> 1 end while 7:outport  ocount 0:R1 4:R1,R3,R4 1:R0,R2 5:R2,R4,R2 2:R0,R3 6:R1,R1 3: 7:R2 0:AIN 4: CA&B 1:BA 5: CA+B 2:BA+1 6: BA>>1 3:NOP 7: OUTA