Title: Etienne Tremblay
1Etienne Tremblay
- Ordinateurs, Structure et Applications
GIF-16116
Cours 3, Composantes de la carte mère
Université Laval, Hiver 2007
2Carte mère et composantes dun ordi
CPU
Source http//www.smtechnologie.com/modules/news/
article-86.html
3Le CPU
- Les composantes du CPU ont été présentées au
cours 2. - Le CPU coordonne le fonctionnement de lensemble
du micro-ordinateur - Le CPU exécute les programmes contenus dans la
mémoire - Le CPU répond à des interruptions venues de
lextérieur - La puissance dun CPU dépend de nombreux facteurs
- Vitesse dhorloge
- Nombre dinstructions exécutées par coup
dhorloge - La taille et la nature des instructions
- La taille du bus de donnée et du bus interne du
CPU - Note Vitesse dhorloge Nombre dinstructions
par coup dhorloge MIPS
4Jeux dinstructions (Intro)
- Chaque instruction exécutée par un CPU a un
opcode en binaire et une longueur prédéterminée.
La table ci-dessus est un exemple de jeux
dinstruction. - Chaque instruction possède un mnémonique en
assembleur. Un programme assembleur pour un
Pentium peut-il être utilisé pour un Athlon?
5La mémoire en général
- Une adresse permet de déterminer lemplacement de
la mémoire lue. - Il se retrouve un byte ou plusieurs bytes a
chaque adresse (1 byte dans lexemple). - 2 chiffres servent à exprimer la taille dune
mémoire le nombre dadresse possible et la
taille du contenue de la mémoire à une adresse
donnée (ex 1k8bits) - Note 1k 210 3FF1
6Les types de mémoires
- Les mémoires qui perdent leur contenu
lorsquelles perdent leur alimentation sont dites
volatiles. Les autres mémoires sont
non-volatiles. - Les mémoires qui nécessitent un rafraîchissement
de leur données sont dites dynamiques. Si les
données dune mémoire dynamique ne sont pas lues
régulièrement, elles seffacent. Les autres
mémoires sont statiques. Voir http//www.x86-secre
t.com/popups/articleswindow.php?id15 pour une
illustration de la DRAM. - Les mémoires qui ne sécrivent quune seule fois
sont dites ROM (Read Only Memory) ou OTP (One
Time Programming). Les autres mémoires sont RAM
(Random Access Memory). - Les mémoires qui peuvent seffacer (et être
réécrite) à laide dune procédure spéciale ont
des noms qui leurs sont propres. Flash et EEPROM
seffacent électriquement mais avec une opération
spéciale, UVPROM nécessite de lultra-violet... - Les noms sont donnés aux mémoires en fonction de
ces caractéristiques. Par exemple, SRAM est de la
RAM statique.
7Table-résumé des types de mémoire
- Il y a plusieurs autres types et noms pour les
mémoires qui ne sont pas dans la table ci-dessus.
Par exemple, on retrouvera - SDRAM (Synchronous dynamic random access memory)
qui a des caractéristiques similaires à DRAM. - DDR (Double Data Rate) qui est un type de SDRAM,
mais deux fois plus rapide. DDR2 est deux fois
plus rapide que DDR! - NVRWM (Non-Volatile Read Write Memory) qui
désigne une mémoire comme EEPROM ou Flash -
8La mémoire dun ordi
9La hiérarchie de la mémoire
Note Pour un processeur 2GHz, la période
dhorloge est 1/(2GHz) 0.5ns
10Les caches (1/2)
- Une cache est une mémoire daccès très rapide
placée en tampon entre une unité rapide et une
mémoire lente afin daccélérer les accès mémoire. - La taille de la cache est déterminée par la
différence de vitesse entre lunité rapide et la
mémoire lente - La cache contient les dernières
données/instructions utilisées (least recent use)
par le CPU. - Les caches contiennent des blocs de données
plutôt que des données individuelles. Selon le
principe de localité, il y a de fortes chances
que deux instructions qui se suivent soient dans
le même bloc. - Lorsquil veut une donnée, le CPU cherche dabord
dans les caches. Un hit survient lorsque la
donnée est trouvée. - Si le CPU ne trouve pas les données dans les
caches (miss), il cherche dans la mémoire. Sil
trouve, les données sont copiées dans les caches,
puis transférées au CPU. Les données adjacentes
sont également transférées dans la cache. - Le hit ratio est la probabilité de retrouver une
donnée dans la mémoire cache.
11Les caches (2/2)
- Il y a plusieurs façons de relier les blocs de
mémoires aux blocs de cache. Vous retrouverez
lassociation directe qui consiste à relier un
nombre fixe de blocs de mémoires à chaque
emplacement de cache (méthode simple, peu
coûteuse mais pas optimale). Il y a aussi les
caches associatives dans lesquelles chaque bloc
de mémoire peut se retrouver nimporte où dans la
cache (complexe, coûteux, optimal). Finalement,
il y a des caches partiellement associatives
(associatives par set) qui sont un compromis
entre les deux méthodes de mapping chaque bloc
de mémoire peut se retrouver dans un nombre fini
de blocs de cache (bon compromis!). - Lorsque le CPU écrit une variable en mémoire, il
doit également tenir compte des caches. Il existe
deux mode décriture principaux pour les caches
et la mémoire write-through et write-back. En
write-through le CPU écrit une donnée
simultanément dans la mémoire et dans la cache ce
qui est ne minimise pas les accès mémoire lents.
En write-back, le CPU écrit dans la cache
seulement. Les données sont transférées de la
cache à la mémoire lorsque le bloc de cache doit
être remplacé. Cela semble optimal, mais le DMA
devient complexe (voir plus loin). - Lorsque les caches sont pleines, il faut
remplacer une donnée. Il existe plusieurs
algorithmes de remplacement qui dépendent de la
façon dont les blocs de caches et les blocs de
mémoire sont reliés. - Il y a parfois 1 cache, parfois 2 ou même 3.
Avoir plusieurs niveaux de caches assure un bon
hit ratio.
12La cache L1
- La cache L1 est habituellement à lintérieur même
du CPU, imbriquée dans larchitecture même du
processeur. - Petite, car espace sur le CPU limitée (128 ko
pour les premiers ATHLON, 32 ko pour les pentiums
2/3) - Divisée en 2 pour les données et pour les
programmes - Très utilisée.
13Les caches L2 et L3
- Les ordinateurs modernes ont au moins deux
niveaux de cache et souvent trois. - La cache L2 est plus grosse que la cache L1
(256ko à 2Mo). - Les caches L2 et L3 sont habituellement à
lextérieur du CPU (mais de plus en plus à
lintérieur). Indépendantes de larchitecture du
micro lorsquà lextérieur. - Habituellement pas de différence entre les
données et les instructions. Cependant, une
tendance pour des caches où les instructions sont
séparées des données apparaît dans les
ordinateurs super scalaires (pouvant exécuter
plusieurs instructions simultanément) - Moins rapide que L1 mais environ 10 fois plus
rapide que la mémoire.
14La mémoire principale, une cache du disque dur?
- La mémoire contient des données et des programmes
regroupées en pages (souvent 4K). - La mémoire fournit des informations aux caches.
- Si les données ne sont pas trouvées dans la
mémoire (page fault), il faut chercher dans le
disque dur (très long). La page contenant la
donnée recherchée est habituellement transférée
en mémoire. Elle remplace souvent une page déjà
en place quil faut sauvegarder dabord (swap
page). - Physiquement, la mémoire se présente sous forme
de SIMM (Single Inline Memory Module) ou de DIMM
(Dual Inline Memory Module) (voir roles et types
de memoires.doc pour images).
15La mémoire virtuelle
- Le besoin de mémoire virtuelle apparaît lorsque
plusieurs programmes sont exécutés simultanément
et lorsque les programmes séparpillent dans la
mémoire. - Pour chaque processus exécuté, une mémoire
virtuelle apparaît. Il sagit dune
représentation de toute la mémoire utilisée par
le programme. - La mémoire virtuelle est reliée à la mémoire
physique par une table de correspondance (page
table). Cette table est quelque part en mémoire
et un registre indique son emplacement. - La mémoire virtuelle est découpée en pages de la
même taille que les pages de mémoire (appelée
frames). Les pages ont habituellement 4K (de 0 à
3FF) - Lemplacement dune donnée à lintérieur dune
page est obtenu grâce à loffset. - Pour obtenir une instruction pour un processus
donné, le CPU doit trouver la frame physique
contenant linstruction à partir de la page
virtuelle grâce à la table de correspondance. Ce
travaille se fait dynamiquement (Dynamic address
translation) par le MMU (Memory Management Unit)
à lintérieur du CPU.
16Illustration de la mémoire virtuelle (1)
Tiré de The architecture of computer hardware
and software, p. 484
17Illustration de la mémoire virtuelle (2)
Tiré de The architecture of computer hardware
and software, p. 484
18Les I/Os dun ordi
19I/Os
- Les I/Os sont beaucoup plus lents que le
microprocesseurs. - Des bus (données, adresse et contrôle) avec des
horloges plus lentes que celle du CPU sont
dérivés du bus externe du CPU. Des modules font
le lien entre les deux bus. - Un peu de hardware est nécessaire pour chaque
type de périphérique (I/O module), peu importe le
bus sur lequel il est connecté. - Les I/Os sont adressés comme la mémoire mais avec
des registres différents (Par exemples, Memory
Read est remplacé par I/O Read et le MAR est
remplacé par IOAR).
20Accès aux I/Os
- Il est possible daccéder par des instructions
préprogrammée (IN, OUT). IN Une requête est
faite au périphérique via le module de I/O.
Lorsque la réponse est reçue, elle est mise dans
un registre et le CPU est avisé. OUT La requête
décriture est transférée au module de I/O qui la
transfère au périphérique. - Les interruptions sont produites par les I/Os
afin de requérir une action du CPU. Une
alternative aux interruptions est le polling le
CPU demande à toutes les devices, à tour de rôle,
si elles ont des nouvelles données disponibles.
21Les interruptions
- Lors dune interruption, les activités courantes
du CPU sont temporairement suspendues. La routine
de linterruption est exécutée, puis les
activités du CPU continues. - Les interruptions ont des priorités (voir la
table ci-dessous) et des numéros. Une
interruption peut interrompre une autre
interruption si elle est de priorité plus élevée. - Les CPU peuvent gérer les interruptions par
polling (le demande à tous qui a généré une
interruption) ou avec une table vectorielle (voir
p.247-248 du livre). - Le système dinterruption du AT (voir aussi la
page suivante, tiré de IRQ DMA.doc ) - Les compatibles PC possèdent 15 lignes
d'interruption. Ces lignes sont identifiées IRQ0
à IRQ15 (IRQ2 est utilisé pour cascader le second
contrôleur dinterruption (voir IRQ DMA.doc
). Cependant ce ne sont pas toutes ces lignes
d'interruption qui sont disponibles sur le bus
d'expansion. Les lignes suivantes 0, 1, 8 et 13
sont utilisées sur la carte-mère. IRQ3 à 7 et IRQ
9 sont accessibles sur la section 8 bits du bus
ISA et IRQ10,11,12,14 et 15 sont accessibles sur
la section 16 bits du bus ISA. - Le(s) contrôleur(s) dinterruption (Programmable
Interrupt Controler en anglais) est un ensemble
de circuits logiques gérant les ints.
22Les interruptions matérielles des PCs
Tiré de IRQ DMA.doc
23Les interruptions matérielles des PCs 2
Tiré de IRQ DMA.doc
24Direct Memory Access (DMA)
- Le contrôleur de DMA permet à certains
périphériques ayant de larges quantités de
données à transférer de communiquer directement
avec la mémoire, sans passer par le CPU. - Le contrôleur de DMA doit sassurer que le CPU ne
sadresse pas à la mémoire lorsquil transfert
des données. De plus, il doit interfacer avec la
mémoire de la même façon que le CPU. - Le contrôleur DMA prend le contrôle du bus
externe (données, adresse et contrôle) lorsquun
transfert de données par DMA survient.
25Références et exercices
- Références
- Irv Englander chapitre 7 (jusquà 7.6), sections
8.2 et 8.3 (caches seulement), chapitre 9,
section 15.6 - Notes de monsieur Ranger architecture du pc.doc,
Les bus.doc, IRQ DMA.doc, LA CACHE DE VOTRE
PROCESSEUR ET LES AUTRES CACHES.doc, roles et
types de memoires.doc - Stallings 3.1. 4.1, 5.1 et 6.1
- Exercices
- Labo 1 ?
- Irv Englander 9.7, 9.8
- Décrivez les étapes queffectue le CPU afin
dobtenir la prochaine instruction si cette
instruction nest pas dans aucune cache, ni dans
la mémoire (elle se retrouve dans le disque dur).
Considérez que de la mémoire virtuelle est
utilisée ainsi que 2 niveaux de cache (L1 et L2).