• Aucun résultat trouvé

IFT1227 – Architecture des ordinateurs I

N/A
N/A
Protected

Academic year: 2022

Partager "IFT1227 – Architecture des ordinateurs I"

Copied!
19
0
0

Texte intégral

(1)

IFT1227 – Architecture des ordinateurs I

Cours 1, lundi 8 janvier 2007 TP: 30 points

Intra: 30 points

Final: 30 points (cumulatif) [seuil à 45% (I+F)]

Livre: Architecture de l'ordinateur, Andrew Tanenbaum, 5e edition Utile: MultiMedia Logic (Simulateur de circuit logiques)

ISA: Instruction Set Application (Vue programmeur)

RISC: Environ 100 opérations (Le code opération tient sur un octet) CISC: Complex ... (environ 300)

FPGA: Créer un circuit logique à partir d'une programmation.

 Revoir tables de Karnaugh

Début: [chap. 3]

Circuit combinatoire: Sans mémoire

Circuit séquentiel: Avec mémoire

Machines à états finis: Déterministes ou Non-déterministes

Pour deux variables booléennes, on peut associer 16 fonctions différentes (voir tableau) Nombre de fonctions associé à n variables:

2

(2 )n

Algèbre de bool: ({0,1}, et, ou, neg)  minimal pourrait être ({0,1}, nor) -ou- ({0,1}, nand)

À partir de E = {1,2,3}, on se souvient que P(E) = {, {1}, {2}, {3}, {1,2}, ...} de cardinalité 2|E|

On remarque que les opérations sur les éléments de P(E) suivent l'algèbre de bool (Union, Intersection, Négation)

 (P(E), , )

Tout le reste se prouve (théorèmes), par exemple pour prouver que AA = A:

A = 1A = (A + A)A = A (A+A) = AA + AA = AA + 0 = AA (Idempotence)

Loi de DeMorgan (appliquée):

Table de Karnaugh: Utile dans les fonctions à une seule sortie.

(Et limité dès qu'on beaucoup d'entrées, car la table de vérité est trop grande)

(2)

Fonction majorité: M = ABC + ABC + ABC + ABC = m3 + m5 + m6 + m7 = (3,5,6,7) [011+101+110+111]

(minterm) (sommes des produits)

Les maxterm: A+B+C A+B+C A+B+C A+B+C (produits des sommes)

Donc, si on a beaucoup de '1', on veut choisir le produit de sommes et inversément si on a beaucoup de '0'. Mais dans ce cours on utilisera le plus souvent la somme de produits.

Intégration:

Une porte nécessite environ 10 transistors.

SSI (small): 10 à 100 portes MSI (medium): 100 à 1000 portes LSI (large): 1000 à 10000 portes VLSI (very): 10000+

Aujourd'hui: de l'ordre de 100 000 000 de transistors (limités par la chaleur)

Multiplexeur: Avec une ou des variables de contôle on choisit le signal d'entrée à laisser passer.

Cours 2, jeudi 11 janvier 2007 Multiplexeur:

Démultiplexeur:

Décodeur: (va sélectionner une des sorties et la mettre à 1)

sera utile pour, par exemple, sélectionner un mot mémoire depuis l'adresse.

exemple de la mémoire: 1 Gig de RAM, nécessite 30 bits d'adressage:

le truc consiste à le faire en deux (plus) étapes... (matrice)

PLA: Programmable Logic Array (voir p.36: matrice de ET sur les entrées et matrice de OU ensuite)

Cours 3, lundi 15 janvier 2007 Machine à état fini (FSM):

H: Horloge D: Donné

Donc, pendant un cycle d'horloge, Q est stable (le FSM ne changera que lorsqu'on aura un signal montant sur l'horloge)

(3)

 Pendant un cycle d'horloge, Q est stable

 Toute opération doit prendre (au maximum) un cycle Cycle: Période

fréquence (Horloge) ~ 1 GHz = f avec p = 1/f  f=1GHz=109Hz  p=10-9s=1ns (donc si une opération prend plus d'une ns, plus d'une opération, on a besoin de mémoire...) (voir p. A-41)

La majorité des circuits aujourd'hui sont synchrones (séquencés par une horloge). Ils sont moins rapides que les circuits asynchrones, mais ce sont les seuls qui fonctionnent bien aujourd'hui.

On note qu'en réalité (physique oblige) les données doivent rester stables un petit temps avant et après la montée de l'horloge (avantsetup, aprèshold) ~ 1%.

Loquet (latch): [versus Bascule (flip flop)]

(asynchrone pcq pas d'horloge)

Implémentation du NAND se fait facilement en prenant simplement S et R plutôt que S et R comme entrées.

Des problèmes peuvent survenir quand on utilise des entrées pas totalement synchrones en entrée... (voir p.A-45), par exemple sur un XOR... c'est pourquoi on a besoin d'une synchronisation.

Loquet avec horloge:

Permet d'éviter le problème susmentionné.

[pour prétèger contre le cas S et R à 1, on peut utiliser une entrée D et D et alors la mémoire est conservée pendant le cycle de l'horloge – Je peux alors faire tous les calculs voulus sur le front bas de l'horloge, ce qui me donne 0,5 ns pour travailler (concrètement on a des 0 plus long que les 1 sur l'horloge)]

Le loquet est passant durant tout le niveau «1» de l'horloge:

 On utilise D ici 

Pour isoler le loquet, on va se faire une bascule avec un loquet maître et un loquet esclave:

Bascule (Flip-Flop): Symbole:

Q ne changera donc qu'au front descendant.

Front Front montant descendant Q

présent S R Q suivant

-- 1 0 1 set

-- 0 1 0 reset

0 0 0 0 mémoire

1 0 0 1

-- 1 1 Q=Q et

ocille interdit

(4)

Loquet J-K: (p.A-51)

Pour éliminer le problème du S=R=1 du loquet de base S-R, on peut faire:

(l'horloge permet de stabiliser le tout et d'éviter l'oscillation)

Cours 4, jeudi 18 janvier 2007

Compteur: 00 01 10 11 Machine à état fini:

On va donc utiliser des bascules D pour réaliser la table:

Donc: f0 = ¯p0p1 + p0¯p1

et: f1 = ¯p0¯p1 + p0¯p1 = ¯p1(¯p0+p0) = ¯p1

Pour n bits, on peut faire (en remarquant les conditions de passage à 1 d'un bit):

Additionneur à 4 bits:

Retenue: fonction majorité Somme: un genre d'«impair»

transition J K

x1 1 --

x0 -- 1

00 0 --

11 -- 0

xx 0 0

inverse 1 1

Présent Futur

p0 p1 f0 f1

0 0 0 1

0 1 1 0

1 0 1 1

1 1 0 0

(5)

Démo 1, vendredi 19 janvier 2007

A B AND OR XOR NAND NOR

0 0 0 0 0 1 1

0 1 0 1 1 1 0

1 0 0 1 1 1 0

1 1 1 1 0 0 0

#A.1- Faire un ET avec des NAND

#A.2- Faire un OR avec NOR Faire un AND avec NOR Faire un NOT avec un NOR

#A.3-

#A.4- XOR à trois branches

#A.5- Il y a 10 portes d'entrées dans le shéma associé au numéro A3 (pas A.31)

#A.6- Implémenter

f A B C ( , , )  ABC ABC ABC  

A B C AB ¯A ¯A+B ¯C F G

0 0 0 0 1 1 1 0 1

0 0 1 0 1 1 0 1 0

0 1 0 0 1 1 1 0 1

0 1 1 0 1 1 0 1 0

1 0 0 0 0 0 1 0 0

1 0 1 0 0 0 0 1 0

1 1 0 1 0 1 1 1 1

1 1 1 1 0 1 0 1 0

A B C XOR3

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

(6)

#A.8-

f A B C ( , , )  ABC ABC

est-il équivalent à

g A B C ( , , ) (  A C B  ) 

Par table:

En simplifiant les équations:

( , , ) ( ) ( ) ...

g A B CA C B    AC AC B    ABC ABC  

#A.10- Faire un comparateur de mots de 4 bits  0 si identiques, 1 sinon.

#A.12- Utiliser deux MUX pour faire:

#A.14- Utiliser décomposition pour implémenter f avec deux MUS 4-1.

( , , , )

f A B C DABCD ABCD ABC D AB   

( , , , ) ( )

f A B C DAB CD CD C D    AB ( CD CD C D   )

(...) AB

A B C ABC ¯A ¯C ¯AB¯C A(+)C F G

0 0 0 0 1 1 0 0 0 0

0 0 1 0 1 0 0 1 0 0

0 1 0 0 1 1 1 0 1 0

0 1 1 0 1 0 0 1 0 1

1 0 0 0 0 1 0 1 0 0

1 0 1 0 0 0 0 0 0 0

1 1 0 0 0 1 0 1 0 1

1 1 1 1 0 0 0 0 1 0

A B F0 F1

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

C D

0 0 0

0 1 1

1 0 1

1 1 1

A B

0 0 0

0 1 1

1 0 0

1 1 Z

(7)

#A.15- Utiliser deux décodeurs ainsi qu'un OR pour faire un XOR sur A et B.

Mémo: Décodeur, envoi un 1 sur la ligne spécifiée par le nombre binaire spécifié par les entrées.

Cours 5, lundi 22 janvier 2007

Reset asynchrone: Met à 0 immédiatement (versus synchrone qui attendrait le cycle d'horloge) Détecteur de séquence: (indiquer «1» si on a reçu exactement 2x «1» dans les trois dernières entrées.

Entrées: 011011100 Sorties: 001111010

Bâtissons une machine à état fini: A: Initial

B: un '0' C: un '1' D: "00" E: "01"

F: "10" G: "11"

Note: Si on a n états à distinguer, nous aurons besoin de

  lg n  

bits pour coder l'état.

Codons-le à partir de multiplexeurs:

En résumé: 1- FSM symbolique

2- Se code en lg(n) états (table d'états) 3- Réalisation avec MUX

(8)

Tampon à 3 états:

Exemple de simplification algébrique:

MABC ABC ABC ABC   

MABC ABC ABC ABC ABC ABC     

idempotence

( ) ( ) ( )

MA A BC   B B AC   C C AB

distributivité

MBC AC AB  

 deux niveaux

( )

MBC A B C  

 multi-niveau Tables de Karnaugh:

Code Grey: chaque colonne ou rangée ne diffèrera que d'un seul bit ...

Cours 6, jeudi 25 janvier 2007

Distance de Hamming: (distance entre deux vecteurs binaires)

ex.: 0100100 et 0111010  4 (nombre de bits où les deux vecteurs diffèrent)

Note: Deux cellules adjacentes d'une table de Karnaugh ont une distance de Hamming de 1.

Code Grey:

1 bit: 0 1

2 bits: 00 01 11 10

3 bits: 000 001 011 010 110 111 101 100

Démo 2, vendredi 26 janvier 2007 absent

Cours 7, lundi 29 janvier 2007

Simplification tabulaire Quine-MacCluskey:

On remarque que si on a:

poids(v) = nb de «1». ex.: poids(0111)=3

on note que deux vecteurs distincts qui ont le même poids sont distant d'au moins 2.

Ctrl in out

1 x x

0 déconnecté déconnecté

(9)

Première étape, on regroupe les «cubes» (vecteurs) ayant le même poids. Dans un même groupe, il ne pourra donc pas y avoir de simplification. (Pas une distance de 1 qui était ntore critère avec Karnaugh.)

Ensuite, on comparera chaque élément d'un groupe avec tout ceux du groupe suivant pour simplifier. (On ne peut pas aller plus loin: différence de plus de 1)

Crochet dès qu'on s'en sert!

Étoile quand on s'en sert pas du tout.

Les tirets sont considérés comme une «3e» terme distincts pour les comparaisons.

( On note qu'un XOR ne sera jamais simplifiable par cette méthode. ) On prend ensuite tous les termes notés par des *:

On commence par conserver les essentiels (ceux qui sont seuls à couvrir un terme.

On élimine ensuite tout ce qui est couvert par les essentiels.

On prend ce dont on a besoin ensuite pour couvrir le reste... (commençant par les plus petits)

(erreur dans le tableau, il manque 0000 et 1111) On obtient donc:

Cours 8, jeudi 1er février 2007

Remarques: Nombre de transistors par cm2: 1010 Donc, linéairement,105 par cm Taille du transistor: 10-7 m = 0,1 µ Cellule végétale: 10µ

www.rense.com/general72/size.htm

www.micro.magnet.fsu.edu/primer/java/scienceopticsu/powersof10/

(10)

Mémo: 103 ~ 210 106 ~ 220 109 ~ 230

RAS/CAS: Rows & Columns pour diviter la tâche. Permet d'utiliser moins d'entrées, mais nécessite un délais (2 étapes) Mémoires: SRAM: static RAM bit  bascules (6 transistors), doit donc être rafraîchi régulièrement

DRAM: dynamic RAM 1 transistor + 1 capacitor, conserve donc sa valeurs quelques milisecondes.

Démo 2, vendredi 26 janvier 2007 absent: #A.17 A.25 @ A.28

Démo 3, vendredi 2 février 2007

#A.33- A: dernier bit = 0

B: dernier bit = 1

0 1

A:0 A/0 B/1 B:1 A/1 B/0

#1.15- 0,079 (1.6x)

#3.7- f(A,B,C,D) (1011)2 sur [A,B,C,D]  nombre de bits à un est pair?

pair  F=0 impair  F = 1

#3.8- Comment réaliser:

x3 x2 x1 x0 z1 z0

0 1

A:0 0/0 1/1 B:1 0/1 1/0

E x z Et+1

0 0 0 0

0 1 1 1

1 0 1 0

1 1 0 1

(11)

0 0 0 1 0 0

0 0 1 0 0 1

0 1 0 0 1 0

1 0 0 0 1 1

#3.9- Représenter démultiplexeur: 1 ligne d'entrée, 2 lignes sélection, 4 sorties.

#3.10- Faire la focntion majorité sur PLA

#3.13- Additionneur à 8 bits.

... impliquerait 8 cycles d'horloge pour une addition

naturel: à 8 bits.

x A B z0 z1 z2 z3

0 0 0 0 0 0 0

0 0 1 0 0 0 0

0 1 0 0 0 0 0

0 1 1 0 0 0 0

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

(12)

mieux: C0 = 0 Ci = Pi-1 + Si-1Ci-1

C1 = P0 + S0C0 = P0 Pi = Ai-1Bi-1

C2 = P1 + S1C1 = P1+P0S1

C3 = P2 + S2C2 = P2 + P1S2 + P0S1S2

#3.15-

Oui, parce que dans l'unité A+L on peut inverser A et ajouter ensuite 1, c'est-à-dire faire le Cà2 auquel on peut ajouter B, ce qui donne la différence.

(pour ajouter un, on n'a qu'à prendre le bit d'entrée de retenue (normalement à 0 et le mettre à 1) A, Cà1, +1, +B ...

#3.20-

On a ce diagramme, on veut savoir avec 256x8 combien on aura de ET et de OU.

ET:

On remarque qu'on a 2 portes ET pour lecture/écriture 2x nombre de lignes

1x par bascule

 2+2x256+256x2048 OU:8 portes OU

#3.22- Imaginer une manière d'adresser 2n adresses au moyen de moins de n broches.

avant: après:

en multiplexant dans le temps, c'est-à-dire en stockant par exemple ½ la moitié des bits pour ensuite en recevoir une seconde série.

#3.23- On a un meg x 1 bit par chip On a 32 bits d'adressage

On peut donc avoir 32 bits x 1 mb = 32 mb = 4 megaoctets.

Cours 9, lundi 5 février 2007

Quand on passe d'un modèle de LMC à un modèle à plusieurs registres, il faut modifier la syntaxe des instructions:

add 52 (ajouter le contenu de la case mémoire 52 dans l'accumulateur)

 Nécessite accès mémoire et n'utilise qu'un registre add R17, R15 (ajouter le contenu de R15 dans R17)

 Ne nécessite pas d'accès mémoire et agit entre deux registres ld R15, x (charge dans le registre)

(13)

Les machines où toutes les opérations s'effectuent entre les registres (avec une instruction de load et une de store) sont de type load-store  RISC [spark, etc.]

* Notons également qu'on lira deux registres pour une opération et on en écrira un, le tout décalé permettant de lire pendant l'exécution du l'instruction précédente, etc.

CPU ~ 1 GHz

PCI ~ 33 MHz, 66 MHz ou 100 MHz ~15 ns

Cours 10, jeudi 8 février 2007 Pentium 4:

32 bits [ vue programmeur 32 bits, mais architecture 64, voir p.3.12

 transistors 2000: 55 millions / 2004: 125 millions (pour référence: 8088~29 000 transistors) 2000: 0,18µ 2004: 0,09µ (cheveu de 20µ à 100µ)

Prédiction de branchement: Par exemple en prédisant qu'on va tourner à l'infini dans une boucle (for/while) et admettant qu'on va se tromper une fois (à la sortie).

[ Le circuit qui «prédit» le branchement occupe à lui seul 29 000 transistors. ]

 Horloge 3,2 GHz

63 à 82 Watts

 Adressage: 233  23 = 236 = 64 Gigaoctets. [ 23?: 64 bits d'adresses = 23 octets ]

Note: Snooping: espionnage pour s'assurer de la cohérence des données en cache cpu et sur la ram pour éviter les erreurs en cas de multi-cpu. (Observe le bus)

Pipelinage: Avantage en passant de n (étapes) x p (cycles) versus n + p -1.

à la limite, on aura accéléré d'un facteur p (on fait p tâches en même temps)

Démo 4, vendredi 9 février 2007

#3.24- 10ns  10ns + 10ns – 3ns – 2ns = 15ns 20ns  20ns + 10ns – 3ns – 2ns = 35ns

#3.25- 10ns + 10ns – 3ns – 4ns = 13ns > 10ns ok.

#3.26- À la lecture, on peut y survivre tant que le signal de lecture (RD) n'est pas reçu... mais à l'écriture, cela écraserait la valeur précédente.

#3.27-

On a trois données par cycle plutôt que une

donc on va trois fois plus vite après les deux initiaux.

#3.28- TA1 < TMSYN1 TMSYN1 < TD1 TSSYN1 < TMSYN2 TMSYN2 < TD2

TMREQ1 < TMSYN1 TD1 < TSSYN1 TSSYN1 < TRD2 TMSYN2 < TSSYN2

TRD1 < TMSYN1 TSSYN1 < TMREQ2

TSSYN1 < TA2

#3.29-

Oui, certains chips "justifiés" vont par contre déplacer dans le groupe moins significatif vers le groupe le plus

significatif...

(14)

#3.30- oui

#3.31- 64bits 200MHz 4cycles  64 bits on veut ?B/s 1 / 200 000 000 = 5ns

4 cycles x 5ns = 20ns 64bits / 8 = 8 octets

 400MB/s

#3.32- CPU: 32bits avec A2 à A31

Il «manque» donc A0 et A1 qui, étant les bits les moins significatifs, ne sont pas utiles si on lit les octets 4 par 4.

Comme on lit 2 par 2 (qu'on lit 16 bits à la fois), on n'a accès qu'à la section "gauche' de façonb naturelle.

- Soit sortir 3 bits du processeurs qui permettent de déterminer chacune des 7 combinaisons parmi les 4 octets...

- Masquage interne au CPU - etc

* [ Pas de bonne manière, juste un choix ]

#3.33- bus 32bits / 33 fils... pourquoi?

236 octets adressables

mots de 32 bits (4 octets), mais 2 à la fois (8 octets)

 234 adresses possibles, mais 2 à la fois, donc 33 fils.

Cours 11, lundi 12 février 2007

Pentium 4 (CISQ) UltraSparc III (RISQ)

Données 32 bits 64 bits

Horloge 3.2GHz 600MHz

1.2 GHz (2002) 4 instructions par cycle  ~4.8GHz 6 pipelines:

2 x arithmétique 2 x virgule flottante 1 x Load/Store 1 x Branch cache (niveau 1) 8k (intégré) 32k instruction

64k données cache (niveau 2) 256k à 1024k externe au cpu

1à8 meg (120o/ligne)

broches 478 1368

bits d'adresse 36 (64 Go) 43 (8 To)

Étapes: Recherche Décodage Exécution Accès mémoire Écriture

Comme la recherche nécessite un accès mémoire qui peut entrer en conflit avec l'accès mémoire lors d'une situation de pipeline d'instructions. Donc pour régler ce problème, il y a deux caches de niveau 1.

UltraSparc: - «quasi pur RISK»  ont été ajoutées des instructions 3D, MPEG, temps réel et compression.

(15)

- Problèmes d'ordre des opérations dans le fait qu'on puisse lancer 4 opérations à la fois. Il faut donc que la machine pusise retrouver ce qui peut se faire en parallèle. "Exécution Out of Order"

(16)

Processeurs enfouis: (embeded / micro-controlleurs) IEEE Spectrum

Peut adresser 64ko externe (16 bits)

Utilisera donc 8 des broches d'adressage pour recevoir les données...

Souvent le logiciel sera contenu dans un ROM interne de 4 à 8k...

Les BUS:

ISA: [ 8088 ] ~ 1979 -1982

20 bits d'adresse qui furent augmentés à 24 (286) [16M] puis à 32 (386).

8 bits pour les données 31 contacts  61 contacts 8,33 MHz (vitesse du BUS) PCI:

besoin: 1024x768 pixels et 3 octets/pixel et 30 écrans/seconde  67,5 Mo/s 33 MHz et 4 octets/cycle  133 Mo/s

passé à 66 MHz et 8 octets/cycle  528 Mo/s PCI Express:

Fonctionne comme réseau.

USB:

série

12 Mbits/s devenu 480 Mbits/s

1. pas besoin de cavaliers (jumpers) 2. pas besoin d'ouvrir le boîtier 3. un seul type de câble 4. alimentation intégrée 5. Temps réel

6. Sans redémarrage de la machine 7. Pas de réinitialisation

jusqu'à 127 unités.

1.5 Mb/s / 12 Mb/s / 480 Mb/s

Toutes les miliseconde, les unités sont "poolés" par la racine...

Cours 12, jeudi 15 février 2007 absent

Cours 13, lundi 19 février 2007

Prochaine micro-instruction: MBR: code de l'instruction machine

- contenu dans la micro-instruction précédente MPC: Micro-PC, soit le 'PC' de la micro-machine

Registres:

SP (Stack Pointer): Pointe au sommet de la pile en mémoire TOS (Top of stack): Valeur du sommet de la pile

ex.: Mettre dans MDR la valeur de SP

SPout, MDRin flèche blanche de SP à 1, flèche noire de MDR à 1.

Additionner MDR=SP+MDR (ne peut se faire en une seule micro-instruction!)

H = SP Hin, SPout

MDR = MDR + H MDRout, add, MDRin

(17)

 Il faut faire attention à certaines séries d'instructions, par exemple:

MAR = SP; read.

MDR = H.

n'a pas de sens, parce que le MDR est occupé au même moment par le read (qui dure 2 cycles).

 Par contre,

SP = MDR = SP+1

est valable, parce que le premier SP est en sortie alors que le second est en entrée. La valeur de SP changera simplement en fin de cycle.

SPin, MDRin, inc(sp)

 Interdit aussi:

H = H – MDR

parce que le deuxième argument de la soustraction est H

 TOS = TOS

servira à mettre N et Z à 0

Il existe une notation pour faire cela: Z=TOS

Démo 6, vendredi 23 février 2007

Instruction: généré automatiquement par le compilateur (ou écrit à la main!)

Micro-instruction: sous-partie simple du développement de l'instruction DANS le processeur Micro instructions d'un load: (p.280) ILOAD

iload1: H=LV  exemple: ... | 000000000 | 000 | 0101 |

iload2: MAR=MBRU+H; RD iload3: MAR=SP=SP+1 iload4: PC=PC+!; FETCH; WR iload5: TOS=MDR; Goto main1

(on se souvient que le RD sera en exécution un peu après, au niveau du iload3)

Description des iloads:

iload1: (MBR=INDEX) H=Base des Variabels locales iload2: MAR=Adresse variable locale, lire variable iload3: MAR et SP = Nouveau sommet

iload4: Extrait le prochain code d'opération, Écrire le nouveau sommet iload5: Actualise TOS

Cours 14, jeudi 1er mars 2007

Démo 5, vendredi 2 mars 2007

IFLT (if less then) en micro-instructions (voir bouquin) Pour TP:

(18)

Cours 15, 16, 17 absent

Cours 18, jeudi 22 mars 2007

Fenêtrage, Renommage, Concept du LRU (Least Recently Used) P4/Sparc: Espace mémoire homogène

8051: Espace programme / Espace d'adressage pour les données ROM: 4ko

RAM: 128 octets Mémoire extérieure: 64ko

Mémoire structurée par ensembles: R0 à R7 par exemple (registres d'un octets)

En tout moment, on n'a accès qu'à 4 ensembles en même temps.

Pour le traitement d'une interruption, par exemple, on changera simplement d'ensemble, tel que spécifié par PSW (Program Status Word) dans la section RS.

Mots 0 à 31: Registres

Mots 32 à 48: 128 bits individuellements adressables.

Démo 8, vendredi 13 mars 2007

#13- ISHR  décale les bits à droite Donc divisé par 2k

#14- Même chose, mais multiplié par 2k

#15- Pour pouvoir aller chercher le object ref on a besoin de savoir combien de paramètres il y avait (bon décalage)

#16- (sur mic2 : 2 bus)

bad good

DLOAD1 | MAR = LV = MBR1U; RD plutôt: MAR = LV + MBR1U; RD / et H =

DLOAD2 | H = MAR + 1  on ne peut lire dans MAR plutôt: H=H+1

DLOAD3 | MAR = SP = SP + 1; WR

DLOAD4 | MAR = H; RD * il faudrait attendre une opération ici (RD)

DLOAD5 | MAR = SP = SP + 1; WR DLOAD6 | TOS = MDR; GOTO MBR

#19-

donc, on utilise un prédicteur (pour p.325, le prédicteur à 2 bits – 4.42)

2 bits: premier bit: bit de prédiction

second bit: bit de pardon

(19)

3 bits:

#20-

5: oui ça marcherait 4: non, manque de place

Cours 19, jeudi 29 mars 2007

Adressage: Immédiat / Direct / Registre ...

Cours 20, lundi 2 avril 2007 Modes d'adressage:

- Immédiat - Direct (absolu)

- Registre (mode registre) - Indirect par registre

Dans notre exemple: #  static / direct  pour array?

()  dynamique / indirect

(Rx) tout seul  contenu à l'adresse indiquée par le registre (Rx) var(Rx)  array (déplacement)

(page 5, en haut à droite)

En registre, ça donne: mov R1,#8 mov R2,#2 mov R3,#5 mult R2,R3 add R1,R2

(20)

Orthogonalité ~=~ correspondance syntaxique universelle des codes d'opération (pas toujours possible!) Le dernier bit du code opération nous informe s'il s'agit d'un mot ou d'un octet

Coop Mod SIB Déplacement imm

[ | ] [ | | ] [échelle| index|base] [ ] [ ]

Démo 9, jeudi 5 avril 2007

FSR0: Pour indirection (référence) utilisé par: INDF0

POSTINC0 et PREINC0 pour incrémenter avant ou après FSR0 … p.48 FW_VALUE_LOW horloge (changé à tous les 100e de seconde)

_HI (changé plus lentement…)

_UP (etc.)

Cours 21, jeudi 12 avril 2007 Gestion des interruptions:

Pour rendre le processus des interruptions cohérent, il faut:

- Conserver l'état des registres et l'adresse de retour.

- Avoir la possibilité (pour certaines opérations) d'être ininterruptible.

 On a aussi un vecteur d'adresses de gestionaires d'interruptions (liste en position fixe d'adresses de g.) Fin du cours

Références

Documents relatifs

Encinas de Munagorri (dir.), Expertise et gouvernance du changement climatique, Paris, LGDJ,

Facebook, Twitter… Les réseaux sociaux évoqués par les éditeurs permettent de se créer une communauté d’intérêts, de partager des informations, des idées, etc. C’est aussi

En effet, on ne peut envisager un bou- leversement dans des domaines aussi différents que la science des matériaux, l’électronique et les technologies de l’information, la biologie,

Dans ces quelques pages, nous complétons cette introduction avec un autre outil Git , une autre manière d’intégrer des modifications, et une boîte à outil pour la résolution

Travailler la résolution de problèmes en classe à partir d’Ateliers de Compréhension.

1 Un laser, placé en A, émet un rayon lumineux ; on souhaite que ce rayon soit dévié vers B, sachant que la lumière emprunte toujours le plus

1 Un laser, placé en A, émet un rayon lumineux ; on souhaite que ce rayon soit dévié vers B, sachant que la lumière emprunte toujours le plus

Soient (X, d) un espace métrique et A ⊂ X.. Pour obtenir 0iii, i.e. une forme bilinéaire symétrique dénie positive.. Par dénition même d'un fermé, cela signie que les intervalles