0% ont trouvé ce document utile (0 vote)
7 vues29 pages

Transistors et architecture des processeurs

Le document traite de l'architecture des systèmes informatiques, en mettant l'accent sur les transistors, les portes logiques et leur rôle dans les processeurs modernes. Il explique comment les transistors fonctionnent comme des interrupteurs pour réaliser des opérations binaires et comment ces opérations sont utilisées pour construire des instructions processeurs. Enfin, il aborde la structuration des cœurs de processeurs, les interruptions et la gestion de la mémoire, tout en soulignant l'importance des algorithmes et des concepts de logique booléenne dans le fonctionnement des ordinateurs.

Transféré par

amine.saidi.ing
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues29 pages

Transistors et architecture des processeurs

Le document traite de l'architecture des systèmes informatiques, en mettant l'accent sur les transistors, les portes logiques et leur rôle dans les processeurs modernes. Il explique comment les transistors fonctionnent comme des interrupteurs pour réaliser des opérations binaires et comment ces opérations sont utilisées pour construire des instructions processeurs. Enfin, il aborde la structuration des cœurs de processeurs, les interruptions et la gestion de la mémoire, tout en soulignant l'importance des algorithmes et des concepts de logique booléenne dans le fonctionnement des ordinateurs.

Transféré par

amine.saidi.ing
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture des systèmes informatiques

Transistors, opérations binaires et processeurs


Transistor ou tripatte

Figure 1: Transistor NPN


Back to the low level. . .
Un processeur est composé de transistors. Le transistor est le roi
des semi-conducteurs, c’est la brique de base des mémoires
numériques, des unités de calcul, etc. . .

I Semi-conducteur : qui conduit parfois et qui ne conduit pas


d’autres fois.
I Transistor : interrupteur où le bouton est actionné ou non par
du courant

Figure 2: Transistor PNP(E –> C)


Transistor PNP

I E : émetteur
I C : collecteur
I B : base
I La base est l’interrupteur qui autorisera ou non le passage du
courant de l’émetteur vers le collecteur.
Transistors

I Il existe de nombreux types de transistors.


I PNP et NPN sont deux types très célèbres.

En considérant la base et une autre patte comme les entrées, la


troisième patte comme la sortie, on obtient alors une opération
binaire à deux entrées ayant une sortie.

Table de vérité d’un transistor NPN (Et)


Collecteur Base Émetteur
0 0 0
0 1 0
1 0 0
1 1 1

Le courant circule dans l’autre sens dans un NPN. . .


Portes logiques
Suivant leur montage et leur type, on modélise un transistor par une
porte logique (certaines portes sont un assemblage de transistors).

Valeurs de AB
dessin nom 00 01 10 11

and 0 0 0 1

or 0 1 1 1

not 1 1 0 0

nand 1 1 1 0

nor 1 0 0 0

xor 0 1 1 0
Passage à l’échelle
Rappel : un processeur de PC moderne contient de l’ordre d’un
milliard de transistors

I Ces portes logiques (transistors) sont les bases des opérations.


I Les jeux d’instructions processeurs sont composés de primitives
souvent exprimables avec des portes logiques de bases (ou à
minima descriptibles simplement avec les portes logiques
standards).
I Les assemblages de transistors permettent de constituer des
instructions processeurs.
I Les bibliothèques bas niveau assemblent les primitives
processeurs pour proposer des fonctionnalités basiques.
I Les langages et bibliothèques haut niveau utilisent les
bibliothèques bas niveau pour permettre de programmer avec
un haut niveau d’abstraction.
Algèbre de Boole

Approche algébrique de la logique informatique : toutes les


opérations possibles avec des variables formelles A, B, C, etc. . . et
les opérateurs logiques and et or.
and : et(francais), and(Python), &&(C), · ou × en math, ∧ autre
notation standard.
or : ou(francais), or(Python), ||(C), + en math, ∨ autre notation
standard.
not : non(francais), not(Python), !(C), 1 − A en math, ¬A ou A
autre notation standard.
Une proposition logique est un assemblage parenthésé utilisant un
nombre fini de variables formelles A, B, C, etc et les trois opérateurs
logiques au dessus.
Table de vérité

Une table de vérité est une manière brutale et gloutonne de décrire


une proposition logique. Vue comme fonction, c’est comme
construire le vecteurs de booléens de TOUTES les images de la
fonction.
Proposition logique : (A ∨ (¬B)) ∧ (C ∨ (¬A))
ABC Valeur ABC Valeur
000 1 100 0
001 1 101 1
010 0 110 0
011 0 111 1
Première colonne : ¬A ∧ ¬B, seconde colonne : A ∧ C
(A ∨ (¬B)) ∧ (C ∨ (¬A)) = (¬A ∧ ¬B) ∨ (A ∧ C ).
Vocabulaire

I Une proposition valant 1(Vrai) pour toute configuration


possible de ces arguments est une tautologie.
I Une proposition valant 0(Faux) pour toutes configurations
possibles de ces arguments est une antilogie ou une
contradiction.
I Une proposition pouvant donner la valeur 1 est satisfaisable.
Toute proposition qui n’est pas une contradiction est
satisfaisable.
I Si vous trouvez un algorithme polynomial déterminant si une
proposition est satisfaisable, passez dans mon bureau, on écrira
un article et on fait 50-50 pour le million de dollars.
I La table de vérité d’une proposition sur n variables formelles
est de taille 2n (c’est exponentiel ça, pas polynomial. . . ).
I Problème simple à énoncer mais très profond. . .
Addition sur un bit

Prenons deux données binaires sur 1 bit :

I A = a1
I B = b1

Le résultat de A + B est le suivant :


premier bit S := a1 xor b1
retenue C:= a1 and b1
Addition sur 4 bits

A = a4 a3 a2 a1 et B = b4 b3 b2 b1 .
S = A+B = s4 s3 s2 s1 et f flag de dépassement de capacité.
Addition sur 4 bits : on allume les entrées !

A = 1001 (9=8+1) et B = 1011 (11=8+2+1).


Addition sur 4 bits : propagation du courant I

A = 1001 (9=8+1) et B = 1011 (11=8+2+1).


Addition sur 4 bits : propagation du courant II

A = 1001 (9=8+1) et B = 1011 (11=8+2+1).


Addition sur 4 bits : allumage des sorties

A = 1001 (9=8+1) et B = 1011 (11=8+2+1).

A+B = 0100 (4) avec f = 1.


A+B = 9+11 = 20 = 4(accumulateur) + 16(flag).
Circuits sur micropuce

La capacité de calcul de nos processeurs modernes est due à :

I De meilleurs matériaux ferreux et semi-conducteurs (métaux et


terres rares).
I Augmentation de la précision de la gravure (piste plus fine et
tout aussi conductrice du courant).
I Transistors de plus en plus stable et miniaturisé.
I Meilleure organisation des circuits pour dissipation de la
chaleur et miniaturisation.
I Sur l’additionneur à 4 bits : 5 entrées allumées pour 2 sorties
allumés (certaines portes(transistors) ont dû chauffer. . . )
I Un additionneur sur 64 bits est un circuit logique de 317 portes
logiques (317 = 63*5 + 2). On peut l’intégrer dans une Unité
Arithmétique et Logique de processeur.
Unité Arithmétique et Logique (UAL)
Une UAL est souvent schématisée comme il suit :

Mot A, Mot B et l’accumulateur ont souvent la taille d’un mot


machine. Le flag, indicateur de statut, est souvent très petit. La
taille du sélecteur de fonction dépend du nombre de primitives
processeurs supportées.
UAL : précision
I Toutes les instructions ne sont pas binaires
(certaines primitives sont unaires, ternaires, etc. . . )
I Certaines instructions utilisent des registres dépassant la taille
d’un mot machine (avx)
I Les primitives d’une UAL ressemblent à des additions,
multiplications, décalages binaires, mélanges binaires,
inversions de bits, comparaison bit à bit lexicographique,
opérations de piles, des copies, ne rien faire (NOP).
I Toutes les instructions n’ont pas forcement le même temps
d’exécution (1, 2, 3 cycles voir plus).
I L’UAL est une des parties les moins redondantes d’une
micropuce alors que les parties mémoires sont souvent la
duplication d’un schéma standard de cellule mémoire binaire.
I L’UAL, ça exécute une fonction sélectionnée sur des arguments
identifiés et ça construit un résultat dans l’accumulateur tout
en mettant à jour un drapeau. Mais sans chef d’orchestre, ça
fait rien. . .
Structuration d’un coeur
Structuration d’un coeur

I Plus la mémoire est proche de l’U.C. et de l’U.A.L., plus la


mémoire est rapide mais limitée.
I Un coeur est connecté avec la mémoire centrale (R.A.M.)
directement via le bus mémoire principal (Northbridge)
I Le chemin naturel est le suivant :
RAM → L3 → L2 → L1 → Accumulateur → RAM
I Il existe de nombreux raccourcis pour les données. Exemple
entre l’accumulateur et une entrée de l’UAL (permet de
réutiliser rapidement un résultat et appliquer des opérations en
séries).
I L’Unité de Contrôle est plus large que sur le dessin :
L’U.C. s’occupe du parsing et de la validité des instructions, en
liaison avec le quartz, elle cadence la coordination de tout ce
petit monde, etc. . .
Structuration d’un coeur
I Stratégie CISC : Jeu d’instructions très large avec des
instructions diverses et évoluées. x86 et ses enfants sont de
type CISC. Nos PC modernes sont basés sur cette stratégie.
Modes d’adressages complexes.
Gain : coder simplement une tâche complexe.
Désavantages : montées et descentes en charge, besoins
fluctuants.
I Stratégie RISC : Jeu d’instructions réduit mais plus de
vectorisation. Les instructions sont plus simples, coûtent
souvent le même nombre de cycles. ARM est de ce type. Nos
smartphones et les micro-contrôleurs embarqués sont basés sur
cette stratégie. Instructions de type registre-registre
uniquement donc U.C. et U.A.L. simplifiées (mais souvent
dupliqués. . . ).
Gain : énergie et donc refroidissement.
Désavantages : complexité de codage, cross-compilation.
Les interruptions
L’unité de contrôle, chef d’orchestre, a un pouvoir de préemption
sur la puissance de calcul. C’est dans les circuits, au niveau
physique, et ça s’appelle les interruptions.
I Ces interruptions sont dénommées IRQ pour Interrup ReQuest.
I Ces interruptions sont provoquées par des périphériques
(interruption matérielle ou asynchrone) ou par des exécutions
incohérentes (division par zéro : interruption logicielle ou
synchrone).
I Les interruptions portent un numéro (de 0 à 255 de nos jours)
et ont des priorités/criticités.
I Certaines réactions sont hardcodées physiquement, directement
dans les circuits du CPU, ces interruptions portent souvent
alors de petits numéros.
I Certaines interruptions sont programmables dans une couche
supérieure (au-dessus du hardware, on arrive dans la couche
noyau. . . ). On parle de l’APIC (Advanced Programmable
Interrupt Controller).
Les interruptions
I Lors d’une interruption, l’unité de contrôle fait une photo finish
de la mémoire interne du CPU (registres, L1, accumulateur,
flag, etc. . . ) et sauvegarde tout ce contexte pour réutilisation
ultérieure.
I Lors d’une interruption, l’U.C. charge alors un contexte
(physique(interruption hardware) ou software(interruption
programmable)) spécifique à l’interruption.
I Certaines interruptions sont masquables : ça veut dire que
certaines peuvent être repoussées à plus tard car il est
important que l’exécution courante ne soit pas interrompue.
I Segmentation Fault (core dumped) Interruption synchrone
due à une lecture/écriture mémoire invalide. Le système précise
que le contexte d’erreur a été sauvegardé. Un logiciel de
débugage peut permettre la consultation de ce contexte pour
faciliter la correction du code ayant provoqué l’interruption.
Les interruptions
I Ctrl + C est un signal système (SIGINT) demandant de
procéder à une interruption masquable du programme pour
arrêt d’exécution.
I Les interruptions évitent l’attente active (boucle infinie où on
attend une condition asynchrone : t’es prêt disque dur ?
t’es prêt disque dur ? t’es prêt disque dur ?
t’es prêt disque dur ? t’es prêt disque dur ? . . . )
I Les interruptions permettent de réagir en temps réel à des
événements asynchrones extérieurs.
I Les interruptions prévoient des réactions aux événements
impensables et instructions incohérentes.
I Ce mécanisme est géré carrément au niveau matériel, imaginez
son coût au niveau logiciel.
Il y a-t-il une interruption ? Faisons une instruction programme.
Il y a-t-il une interruption ? Faisons une instruction programme.
Il y a-t-il une interruption ? Faisons une instruction programme.
Le binaire

Vous avez maintenant un peu plus de pistes pour comprendre le fait


suivant :

.: Dans un ordinateur, tout est binaire :.

Mais la route est encore longue :

I Cours architecture en L3 (programmer en assembleur, modes


d’adressages en x86, etc. . . )
I Cours programmation système L3
I Bus mémoires et virtualisation de la mémoire (à venir. . . )
Thread

Physiquement, car le contenu de ce cours est principalement


physique et matériel, un thread est une liste numérotée, ordonnée et
finie de commandes machines et données pouvant être lues, parsées
par l’unité de contrôle puis calculées par l’unité arithmétique et
logique.
Nous allons produire des petits threads dans little thinker !
Little thinker : un jeu Fernand Satan MLV !
Little Thinker (conçu par S. Cherrier et développé par des étudiants
en L3) est une machine virtualisant le comportement d’un
processeur à 5 registres et 1 accumulateur. Le jeu d’instructions est
réduit mais il permet de simuler une programmation ultra bas
niveau avec du langage pseudo-machine. L.T. permet aussi une
visualisation de l’orchestration de l’interprétation d’un thread.
Little Thinker
Little Thinker –> RTFM !!!

Documentation de Little Thinker V1.0 : joli pdf de 7 pages

Vous aimerez peut-être aussi