VARI VARI3.ppt FAMILLES FAMILLES DE DE PROCESSEURS PROCESSEURS n CISC (Complex Instruction Set Computers) – Instructions complexes – Les instructions lisent leurs opérantes en mémoire – Type des processeurs jusqu'aux années 80 – ex: IBM 360-370-390, DEC VAX, Motorola 680x0, Intel x86, …. n RISC (Reducted Instruction Set Computers) – Instructions simples (et rapides) – Les instructions lisent leurs opérandes dans des registres – Type des processeurs des années 80 – Programmes plus longs – ex: IBM-Motorola PPC, SUN SPARC, DEC APHA, ….. © F. Anceau , janvier 2002, Page 1 VARI VARI3.ppt NOTION NOTION DE DE SOUS-PROGRAMME SOUS-PROGRAMME n La notion de sous-programme correspond à la réutilisation de séquences communes entre plusieurs parties d'un programme n Elle correspond aussi à la constitution d'outils logiciels qui facilitent, et clarifient la programmation appel 1 appel 2 sous programme programme principal © F. Anceau , janvier 2002, Page 2 VARI VARI3.ppt REGISTRE REGISTRE D'ETAT D'ETAT n Il existe un registre particulier, qui stocke l'état du processeur. n Ce registre contient des bits qui décrivent les propriétés du dernier résultat calculé. – Signe, nullité, débordement, parité © F. Anceau , janvier 2002, Page 3 VARI VARI3.ppt SOUS-PROGRAMME SOUS-PROGRAMME n Un sous-programme doit pouvoir être appelé de plusieurs endroits différents. n L'exécution du programme appelant doit reprendre, juste après l'appel, lorsque le sous-programme se termine. n Il existe des instructions spéciales d'appel de sousprogramme (appelées CALL) n Il existe une instruction spéciale, appelée RET, pour revenir au programme appelant après l'exécution d'un sous-programme. © F. Anceau , janvier 2002, Page 4 VARI VARI3.ppt NOTION NOTION DE DE PILE PILE n Une pile est le rangement d'objets les uns sur les autres. (par exemple: une pile de papiers) empiler dépiler n On peut: – empiler (un papier) – dépiler (un papier) n On dépile les objets dans l'ordre inverse dans lequel on les a empilés. Les premiers empilés sont les derniers dépilés! pile © F. Anceau , janvier 2002, Page 5 VARI VARI3.ppt APPEL, APPEL, ET ET RETOUR, RETOUR, DE DE SOUS-PROGRAMMES SOUS-PROGRAMMES n On utilise une pile pour gérer les appels, et les retours, de sous-programme. n A l'appel d'un sous-programme: – l'instruction CALL empile l'adresse de l'instruction qui suit le CALL – à la fin d'un sous-programme, l'instruction RET dépile l'adresse de retour et s'y branche. n Cette technique permet d'avoir plusieurs appels imbriqués de sous-programmes. © F. Anceau , janvier 2002, Page 6 VARI VARI3.ppt APPEL APPEL D'UN D'UN SOUS-PROGRAMME SOUS-PROGRAMME SP1 SP2 CALL SP1 CALL SP2 RET pile RET © F. Anceau , janvier 2002, Page 7 VARI VARI3.ppt APPEL APPEL D'UN D'UN SOUS-PROGRAMME SOUS-PROGRAMME SP1 SP2 CALL SP1 add1 CALL SP2 RET RET © F. Anceau , janvier 2002, Page 8 add1 pile VARI VARI3.ppt APPEL APPEL D'UN D'UN SOUS-PROGRAMME SOUS-PROGRAMME SP1 SP2 CALL SP1 add1 CALL SP2 add2 add2 add1 pile RET RET © F. Anceau , janvier 2002, Page 9 VARI VARI3.ppt APPEL APPEL D'UN D'UN SOUS-PROGRAMME SOUS-PROGRAMME SP1 SP2 CALL SP1 add1 CALL SP2 add2 RET RET © F. Anceau , janvier 2002, Page 10 add2 add1 pile VARI VARI3.ppt APPEL APPEL D'UN D'UN SOUS-PROGRAMME SOUS-PROGRAMME SP1 SP2 CALL SP1 add1 CALL SP2 add2 RET add1 RET pile © F. Anceau , janvier 2002, Page 11 VARI VARI3.ppt PERTURBATIONS PERTURBATIONS DE DE L'EXECUTION L'EXECUTION n Le fonctionnement d'un processeur peut être perturbé par: – Des erreurs dans le processus d'exécution – Des requêtes extérieures © F. Anceau , janvier 2002, Page 12 VARI VARI3.ppt ERREURS ERREURS D'EXECUTION D'EXECUTION n Des erreurs peuvent apparaître dans le processus d'exécution par exemple: – Des codes opération invalides – Des divisions par zéro – Des débordements arithmétiques – …….. n Le processeur ne sait plus quoi faire. Il lui faut un mécanisme pour demander de l'aide: – Cette "aide" est spécifique du travail en cours => elle doit être prévue par l'utilisateur © F. Anceau , janvier 2002, Page 13 VARI VARI3.ppt REACTIONS REACTIONS A A UNE UNE ERREUR ERREUR n Exemple: Occurrence d'un débordement arithmétique Peut être: – Une saturation => affecter la valeur maximum – Une erreur dans la logique du programme => tout arrêter – Un travail sur des nombres en longueur multiple….. n Exemple: Occurrence d'un code opération invalide Peut être: – Une erreur d'exécution (on cherche à exécuter des données) => arrêt immédiat – Une extension logicielle du jeu d'instruction => on lance un sousprogramme © F. Anceau , janvier 2002, Page 14 VARI VARI3.ppt REQUETES REQUETES EXTERNES EXTERNES n Le milieu extérieur peut solliciter du travail à l'ordinateur de manière impromptue Par exemple: – – – Appui sur une touche du clavier Un top d'une horloge externe => pour compter le temps La lecture d'une info sur le disque – ….. n Cette requête: – N'a rien à voir avec ce que fait précisément l'ordinateur au moment de son occurrence – Son traitement peut être légèrement retardé. – Elle peut être momentanément ignorée si le travail courant est critique © F. Anceau , janvier 2002, Page 15 VARI VARI3.ppt REQUETE REQUETE EXTERNE EXTERNE Travail courant Réponse à l'appel tel Reprise du Travail courant © F. Anceau , janvier 2002, Page 16 VARI VARI3.ppt MECANISME MECANISME D'INTERRUPTION D'INTERRUPTION n Mécanisme commun pour le traitement des erreurs d'exécution et des requêtes externes n Principe: – Chaque erreur d'exécution ou requête externe provoque l'appel impromptu du sous-programme associé. (celui-ci n'a souvent rien à voir avec le programme en cours!) n C'est un mécanisme très important © F. Anceau , janvier 2002, Page 17 VARI VARI3.ppt EXEMPLE EXEMPLE DE DE MECANISME MECANISME D'INTERRUPTION D'INTERRUPTION n Cas des processeurs X86 (ex: Pentium, Athlon) L'occurrence d'une erreur ou d'une requête externe génère un numéro d'interruption SousSousprogramme n° de l'interruption vecteur d'interruption © F. Anceau , janvier 2002, Page 18 VARI VARI3.ppt PRISE PRISE EN EN COMPTE COMPTE DE DE L'INTERRUPTION L'INTERRUPTION n Le lancement du sous-programme impromptu suspend l'exécution en cours => d'ou le nom d'interruption n La prise en compte d'une interruption se fait: – Immédiatement s'il s'agit d'une erreur d'exécution – Au moment de la prochaine instruction s'il s'agit d'une requête externe SAUF: • Si le processeur ne souhaite pas être dérangé (travail critique) © F. Anceau , janvier 2002, Page 19 VARI VARI3.ppt MASQUAGE MASQUAGE DES DES INTERRUPTIONS INTERRUPTIONS EXTERNES EXTERNES n Lorsque l'on ne souhaite pas être perturbé par les interruptions externes on peut les masquer en positionnant un bit dans le registre d'état du processeur. – Bit de masquage des interruptions n La cause reste en attente jusqu'à ce que ce bit soit remis dans un état qui permette la prise en compte des interruptions. © F. Anceau , janvier 2002, Page 20 VARI VARI3.ppt ELEMENTS ELEMENTS DE DE MEMORISATION MEMORISATION n Un ordinateur contient un grand nombre d'éléments de mémorisation – Processeur: • Registres de travail • Registres accessibles par programmation – Ordinateur: • Mémoire centrale • Disques • ……. © F. Anceau , janvier 2002, Page 21 VARI VARI3.ppt HIERARCHIE HIERARCHIE DES DES ELEMENTS ELEMENTS DE DE MEMORISATION MEMORISATION n Plus un élément de mémorisation est grand, plus il est lent (et réciproquement) n Les plus rapides contiennent les informations les plus utiles à un instant donné. n Les plus grands stockent la totalité de l'information n L'info utile migre vers les plus rapides n L'info modifiée descend mettre à jours les plus vastes © F. Anceau , janvier 2002, Page 22 VARI VARI3.ppt BUREAU BUREAU <-> <-> BIBLIOTHEQUE BIBLIOTHEQUE Bibliothèque Documents pertinents Bureau Rangement des documents © F. Anceau , janvier 2002, Page 23 VARI VARI3.ppt NOTION NOTION DE DE CACHE CACHE Ecriture L'utilisateur semble disposer d'une grande mémoire rapide Accès global CACHE information modifiée Lecture Petite mémoire rapide information pertinente Grande mémoire (lente!) © F. Anceau , janvier 2002, Page 24 VARI VARI3.ppt TAILLE TAILLE DE DE L'INFO L'INFO n Dans le cache l'info est gérée par blocs (64 octets) n C'est la taille des échanges avec la mémoire n Le processeur accède le cache par mots © F. Anceau , janvier 2002, Page 25 VARI VARI3.ppt FONCTIONNEMENT FONCTIONNEMENT DU DU CACHE CACHE (lecture) (lecture) lecture proba de succès info dans le cache? oui non lecture dans le cache (rapide) proba d'échec lecture bloc en mémoire (lente) recherche d'une place écriture en mémoire bloc exproprié fourniture info © F. Anceau , janvier 2002, Page 26 rangement bloc dans le cache VARI VARI3.ppt FONCTIONNEMENT FONCTIONNEMENT DU DU CACHE CACHE (lecture) (lecture) écriture bloc dans le cache? oui non écriture dans le cache écriture en mémoire lecture bloc en mémoire écriture info dans le bloc recherche d'une place écriture en mémoire bloc exproprié rangement bloc dans le cache © F. Anceau , janvier 2002, Page 27 VARI VARI3.ppt APPLICATION APPLICATION n Entre le processeur très rapide (temps de cycle de 0,5ns) et la mémoire centrale (100ns), il faut plusieurs niveaux de cache – Caches L1 dans le processeur (32Ko, 2ns) • Cache programme • Cache données – Caches L2 dans le boîtier (512Ko, 10ns) • Commun programme et données – Caches L3 sur la carte-fille……… © F. Anceau , janvier 2002, Page 28 VARI VARI3.ppt MEMOIRE MEMOIRE VIRTUELLE VIRTUELLE n La mémoire centrale peut elle-même être vue comme un cache du disque – Mémoire virtuelle (très grande 4Goctets) sans existence physique => virtuelle – Transferts par blocs de 4Koctets (pages). p1 p2 p3 mémoire physique mémoire virtuelle © F. Anceau , janvier 2002, Page 29 VARI VARI3.ppt MECANISME MECANISME DE DE PAGINATION PAGINATION Le processeur travaille avec des adresses virtuelles adresse virtuelle n° page ad. dans la page table des pages © F. Anceau , janvier 2002, Page 30 adresse mémoire physique VARI VARI3.ppt HIERARCHIE HIERARCHIE DES DES ELEMENTS ELEMENTS DE DE MEMORISATION MEMORISATION taille registres du processeur antémémoires (caches) mémoire centrale disques unités de stockage externes © F. Anceau , janvier 2002, Page 31 VARI VARI3.ppt HIERARCHIE HIERARCHIE DES DES ELEMENTS ELEMENTS DE DE MEMORISATION MEMORISATION vitesse registres du processeur antémémoires (caches) mémoire centrale disques unités de stockage externes © F. Anceau , janvier 2002, Page 32 VARI VARI3.ppt CYCLE CYCLE ELEMENTAIRE ELEMENTAIRE DE DE CALCUL CALCUL OPERANDES ORGANES DE MEMORISATION OPERATEUR RESULTAT INSTRUCTIONS © F. Anceau , janvier 2002, Page 33 VARI VARI3.ppt CYCLE CYCLE ELEMENTAIRE ELEMENTAIRE DE DE CALCUL CALCUL OPERANDES ORGANES DE MEMORISATION OPERATEUR RESULTAT © F. Anceau , janvier 2002, Page 34 VARI VARI3.ppt CYCLE CYCLE ELEMENTAIRE ELEMENTAIRE DE DE CALCUL CALCUL OPERANDES ORGANES DE MEMORISATION OPERATEUR RESULTAT INSTRUCTIONS © F. Anceau , janvier 2002, Page 35 VARI VARI3.ppt HIERARCHIE HIERARCHIE DES DES ELEMENTS ELEMENTS DE DE MEMORISATION MEMORISATION vitesse taille registres du processeur antémémoires (caches) mémoire centrale disques unités de stockage externes © F. Anceau , janvier 2002, Page 36 VARI VARI3.ppt ABSORPTION ABSORPTION DES DES GAMMES GAMMES D'ORDINATEURS D'ORDINATEURS PAR PAR LES LES MICRO-ORDINATEURS MICRO-ORDINATEURS Perf. (par processeur) 1000 rs teu na i d r r-o pe Su 100 urs rve e S 10 M r ic op r e oc ss r eu s m o on lit q hi ue s 1 82 84 86 88 90 92 94 96 98 © F. Anceau , janvier 2002, Page 37 VARI VARI3.ppt PREHISTOIRE PREHISTOIRE ALGORITHMES CALCUL MECANIQUE PROGRAMMATION Al Khowarizmi (perse IXème IXème)) Machine 4 op. Schickard (1623) Carillons automatiques (moyen âge) Programmes Ada de Lovelace (~1840) Pascaline Pascal (1642) Automates Machine multiplicatrice Leibniz (1694) Machine analytique Babbage (1840) © F. Anceau , janvier 2002, Page 38 Métiers à tisser automatiques Bouchon (1725) Vaucansson (1748) Jacquard (1810) VARI VARI3.ppt ANTIQUITE ANTIQUITE TECHNOLOGIE Mécanique Electromécanique Electronique Tubes à vide de Forest (1906) Additionneur binaire Stibitz (1937) Calculateur binaire programmable V1 Zuse (1938) THEORIE Représentation binaire Boole (1847) Théorie du calcul Turing (1936) Calculateurs électroniques Programme enregistré programmables Von Neumann (1945) ABC Atanasoff (1939) ENIAC BINAC Eckert,, Mauchy (1947 Eckert (1947-- 49) Automatic Computing Engine Turing (1950) © F. Anceau , janvier 2002, Page 39 VARI VARI3.ppt TEMPS TEMPS MODERNES MODERNES TECHNOLOGIE Transistors Schockley, Brattain, Schockley, Bardeen (1947) Ordinateurs à transistors (~1960) Mémoires à tores Papian (1950) Mini-ordinateurs MiniMIT LINC (1962) Circuits intégrés Killy (1958) Ordinateurs à circuits intégrés (~1965) Microprocesseurs Intel 4004 Hoff (1971) © F. Anceau , janvier 2002, Page 40 L'ordinateur reste une machine à calculer L'ordinateur devient une machine à traiter de l'information