Structure des ordinateurs
Aymeric Vincent – cours du 14 janvier 2008
? Le processeur exécute les instructions séquentiellement
? Il faut parfois déclencher des traitements non prévus dans la séquence de code originale
? Raison asynchone (périphérique, horloge, ...)
? interruption
? Raison synchrone (division par zéro, appel système …) ? exception
? Le signalement d'une interruption déclenche :
– Sauvegarde du registre PC sur la pile superviseur
– Basculement en mode superviseur
– Exécution d'une routine dont l'adresse a été préalablement communiquée au processeur
? A la fin du traitement, retour grâce à une instruction qui ramène au mode précédant l'interruption
? Une interruption peut se produire pendant le traitement d'une autre
? Les processeurs utilisent souvent un niveau de priorité courant
? Si l'interruption est de priorité supérieure, l'interruption est servie
? Sinon elle sera servie dès que le niveau d'interruption redescendra au sien
? Processeur
? Mémoire
? Disques
? Cartes d'extension
? … reliés par des bus
La réalité est plus compliquée, parce que :
? La DRAM nécessite une interaction complexe
(RAS, CAS, …)
? Les différents périphériques ne nécessitent pas la même vitesse de bus
? La plupart des périphériques sont sur des bus standards qui ne correspondent pas au bus natif du processeur
? Déf.: un pont (bridge) se charge de faire communiquer des bus différents
? North bridge :
– Très rapide
– CPU, mémoire, carte graphique AGP ? South bridge :
– North bridge, bus PCI, USB, …
– Fonctionnalités annexes (horloge, mémoire du BIOS)
Image Apple
Image Apple
Image AMD
? Débit (bandwidth, “bande passante”) :
– Quantité d'information transmise par unité de temps
– Exprimé en bits par secondes
? Latence
– Délai entre le moment où une donnée est envoyée et le moment où elle est reçue
? Série
– Un seul fil est utilisé pour envoyer les données
– Nécessité de synchronisation des pairs ? fil d'horloge et bits de contrôle
? Parallèle
– Plusieurs fils sont utilisés pour faire transiter les données
– Problèmes de synchronisation des données envoyées sur les différents fils
? Norme classique : RS-232
? Bits stop
? Bit de parité
? Horloge jusqu'à 115200 bps
? Utilisé pour relier modems, terminaux, GPS, ...
? Norme IEEE 1284
? Utilisé pour les imprimantes principalement
? Très pratique pour relier des montages électroniques simples
? Universal Serial Bus
? Peut être branché/débranché à chaud ? Taux de transfert :
– USB 1.1 : 1,5Mbps
– USB 2.0 : 480Mbps
– USB 3.0 : 5Gbps
? A remplacé les ports série et parallèle pour la plupart des périphériques courants
? Un “maître” (ou hôte) et plusieurs périphériques “esclaves”
? Le bus alimente les périphériques
? Des hubs permettent de répliquer les ports
? Peripheral Component Interconnect
? Famille de bus PCI, AGP, PCI Express
? Norme gérée par le PCI Special Interest
Group
? Les bus PCI standards sont half duplex
? PCI 32 bits à 33MHz ? 133Mo/s
? PCI 64 bits à 66MHz ? 528Mo/s
? PCI-X 64 bits à 133MHz ? 1066Mo/s
? PCI-X 2.0 64 bits à 266MHz ? 2133Mo/s
? AGP 32 bits, de 1x ? 266Mo/s à 8x ?
2133Mo/s, relié directement au north bridge
? Il s'agit en fait d'un bus série
? Chaque ligne peut offrir un débit de 250Mo/s
? Les connecteurs et cartes peuvent utiliser plusieurs lignes :
? x1, x2, x4, x8, x16
? Remplace anciens PCI et AGP
? Données stockées sur surface magnétique
? Lecture/écriture par des têtes
? Déplacement des têtes lent
? Vitesse de rotation des disques ? débit assez rapide
? Un disque dur est souvent composé de plusieurs plateaux
bras
? Les données sont échangées par blocs
? Un bloc fait classiquement 512 octets
? Chaque bloc peut être adressé de façon différente :
– Cylindre/Tête/Secteur (CHS)
– Linéairement (Linear Block Address)
? CHS a moins de sens maintenant car les pistes extérieures contiennent plus de
données
? Le disque est connecté à un bus
? Ce bus est géré par un contrôleur de disques
? Chaque contrôleur peut en général gérer plusieurs disques
? Bande passante du bus répartie entre les disques gérés par un même contrôleur
? Small Computer Subset Interface
? Permet de connecter des disques durs, lecteurs de CDROM, scanners, … à un ordinateur
? Evolution vers SAS (Serial Attached SCSI)
? Integrated Drive Electronics, renommé
Advanced Technology Attachment
? Une grande partie du contrôleur disque est intégrée avec le disque
? P-ATA (Parallel ATA) ? max 133Mo/s
? ATAPI (ATA Packet Interface) ? commandes
SCSI sur ATA pour lecteurs de CDROM
? SATA (Serial ATA) ? débit jusqu'à 3Gbps
? Relie des machines jusqu'à ~100 mètres
? 10Mbps, 100Mbps, 1Gbps, 10Gbps
? Trames envoyées de 1500 octets ou 9500 octets pour Gbps
? Détecte les collisions et retransmet au bout d'un temps aléatoire
? Chaque hôte ethernet dispose d'une adresse ethernet sur 48 bits unique
? Câble coaxial ou twisted pair (enlacés)
? Hub répète toutes les données à tous les câbles connectés
? Switch connaît les machines connectées et dirige les trames vers le bon destinataire ? performances nettement accrues
? Au démarrage le processeur exécute le code à une adresse fixée
? A cette adresse est configurée une mémoire morte appelée BIOS, PROM, Firmware, …
? Ce firmware est chargé d'initialiser la machine, de charger d'un disque un autre bout de code et de l'exécuter
? Enfin le système d'exploitation est chargé et prend la main
? Le petit bloc de disque qui est chargé par le firmware s'appelle le boot block ? Dans le cas du BIOS sur PC
– Bloc 0, contient code d'amorce et table des partitions
– Est appelé Master Boot Record
? En s'aidant du BIOS, le code d'amorce doit charger un deuxième bout de code plus gros qui lui-même chargera le noyau du système d'exploitation
? D'un point de vue abstrait, un disque est un tableau de blocs
? Il est classique de partitionner un disque en plusieurs partitions (terminologie douteuse mais classique)
– Permet de cloisonner les informations
– Permet d'installer plusieurs systèmes d'exploitation indépendants