Cours L1.2. Introduction générale. L1.2 - FORTRAN 2008-2009 UNIVERSITE DE NICE-SOPHIA ANTIPOLIS Cours de Nicole Bethoux Laure Schenini Introduction générale : I- L’ordinateur Qu’est ce que c’est ? Un ordinateur : Machine automatique de traitement de l’information permettant de conserver, d’élaborer et de restituer des données sans intervention humaine en effectuant, sous le contrôle de programmes enregistrés, des opérations arithmétiques et logiques. 1ère approche : un processeur qui effectue les traitements une mémoire centrale où le processeur range les données et les résultats de ces traitements des périphériques permettant l’échange d’informations avec l’extérieur. Lien avec un bus, artère central permettant l’échange de données. Pratiquement : tous les ordinateurs actuels ont cette structure, micro-ordinateurs personnels ou gros ordinateurs des entreprises. Différences : performances des constituants. L’ensemble des communications s’effectue en langage binaire. La plupart des systèmes supportent le même type de périphériques. Leur nombre dépend de la taille et des performances de l’unité centrale. Périphériques particuliers pour les matériels à vocation scientifique ou industrielle. A. L’unité centrale dessin unité centrale C’est le cerveau de l’ordinateur. Son rôle est d’exécuter les programmes stockés en mémoire centrale en chargeant des instructions, en les décodant et en les exécutant l’une après l’autre. Elle est composée d’une Unité de commande qui charge les instructions et les décode et d’une unité arithmétique et logique qui exécute les opérations de la mémoire centrale. L’unité de commande comprend une mémoire très rapide qui lui permet de stocker des résultats temporaires ou des informations de commande. Cette mémoire est formée de registres, chaque registre ayant une fonction particulière. exemple : compteur ordinal qui pointe sur la prochaine instruction à exécuter. registre instruction qui contient l’instruction en cours d’exécution. 1 Cours L1.2. Introduction générale. L’unité arithmétique et logique réalise les opérations mathématiques et logiques nécessaires au fonctionnement de l’ordinateur. B. Architecture des microprocesseurs : 2 types de microprocesseurs : CISC : Complex Instruction Set Computer, de conception plus ancienne, moins performants car ils disposent d’un jeu d’instructions importants (500) ce qui ralentit la recherche de l’instruction désirée. ex : i80486, Pentium, MC68000, MC68040 … RISC : Reduced Instruction Set Computer : de conception plus récente et plus performante, jeu d’instructions polyvalent (160 à 200), ce qui les rend plus rapides ex : i960, RS6000, DecAlpha … Synchronisation des opérations : La synchronisation des différentes opérations est réalisée par une horloge qui définit le cycle de base et qui est en général la fréquence d’horloge du processeur. Le temps d’exécution d’une instruction dépend du type d’opération à effectuer et du type de processeur utilisé, ce qui peut prendre un ou plusieurs cycles d’horloge. Structure des instructions niveau machine Une instruction machine doit fournir au processeur toutes les informations pour déclencher une opération élémentaire. Elle doit contenir un code opération (type d’action demandée) et une ou plusieurs adresses (adresse de l’opérande, adresse où envoyer le résultat, adresse où chercher l’instruction suivante …) 6 groupes d’instructions que l’on retrouve sur toutes les machines : les transferts de données (load, move, store ..) les opérations arithmétiques (+,-,*,/) les opérations logiques (et, ou) les contrôles de séquences les entrées/sorties les manipulations diverses (décalage, incrémentation …) C. Performance des microprocesseurs Les performances des microprocesseurs se mesurent au nombre d’instructions qu’ils peuvent traiter en une seconde. ex : 80 MiPs = 80 millions d’opérations à la seconde. Cette valeur devrait être identique à la fréquence de base du microprocesseur, mais celui-ci n’exécute pas toujours une opération par cycle. Donc le nombre de Mips est souvent inférieur au nombre de MHz. Avec des techniques de traitement parallèle et des architecture de type multi-bus, certains microprocesseurs peuvent offrir des performances supérieures ou égales à leur fréquence d’horloge. 2 Cours L1.2. Introduction générale. Architecture parallèle Le traitement des besoins informatiques a conduit à faire évoluer les ordinateurs vers des puissances de plus en plus grandes. L’un des points essentiels de ces développements porte sur l’architecture des machines, ie la manière dont sont agencés les différents composants : processeurs, mémoires, connexions, canaux d’entrée et sortie … Le mode de fonctionnement classique consiste à faire effectuer, séquentiellement, un programme par la machine. A tout instant du programme, une seule instructions, portant sur une seule variable ou un couple de variables, est exécutée. Si le traitement comporte plusieurs opérations, celles-ci doivent être effectuées séquentiellement, une opération ne pouvant commencer que lorsque la précédente est terminée. Une telle machine nécessite un seul processeur, un compteur d’instructions et une mémoire contenant, à la fois, les données et les instructions (et les entrées, sorties). Ce type d’architecture est le SISD : Single Instruction, Single Data stream. Pour accélérer ce traitement, une solution consiste à le répartir sur plusieurs processeurs. Il y a différentes façons de procéder. La plus simple, équivalent du travail à la chaîne dans les usines, consiste à répartir sur différents processeurs, le traitement portant sur une donnée. Structure MISD : Multiple Instruction Single Data Stream, plus connue sous le nom de « pipe-line », par analogie avec les canalisations où le carburant liquide s’écoule et ressort à la sortie. Ce type d’architecture permet de multiplier la capacité de traitement par le nombre de processeurs mis bout à bout, une fois la chaîne amorcée A l’inverse, il est souvent avantageux de faire effectuer simultanément la même instruction sur des données différentes : on peut alors parler d’architecture parallèle. Dans ce cas de figure, les données sont intrinsèquement structurées en ensembles ordonnées et homogènes appelés « vecteurs », destinés à subir le même traitement. Toutes ces données arrivent simultanément dans un ensemble de processeurs élémentaires, dit « processeur vectoriel », où elles sont traitées en même temps selon une instruction unique. L’ensemble des processeurs élémentaires est coordonné par un superviseur. Ce parallélisme est également appelé SIMD : Single Instruction Multiple Data Stream. Le quatrième grand type d’architecture, dit parallélisme concurrent ou asynchrone, encore désigné par MIMD (Multiple Instruction Multiple Data stream) se rencontre dans les problèmes décomposables en sous-problèmes. Plusieurs instructions différentes, portant chacune sur une donnée ou un groupe de données, sont exécutées indépendamment l’une de l’autre. D. La mémoire centrale Partie de l’ordinateur dans laquelle programmes et données sont rangés. Le processeur lit et écrit dans la mémoire. La mémoire est formée d’un certain nombre de cellules, chacune de ces cellules contenant un certain nombre d’informations. Chaque cellule a un numéro (son adresse), qui permet à un programme de la référencer. Toutes les cases ou cellules de la mémoire contiennent le même 3 Cours L1.2. Introduction générale. nombre de bits. Elle ne peut contenir que deux types d’informations : les instructions et les données. La mémoire est organisée de façon à respecter une certaine hiérarchie dictée essentiellement par la rapidité des composants. Registre de CPU : stockage des opérandes et des résultats intermédiaires (5 ns) Antémémoire ou mémoire cache : tampon entre la mémoire centrale et le CPU (15 ns) Mémoire centrale : Utilisée pour le rangement des informations. Elle contient le programme à exécuter (60 ns) Mémoire d’appui : Mémoire tampon entre la mémoire centrale et les mémoires de masse (100 ns) Mémoire de masse : Systèmes d’archivage : disques durs, bande magnétique … (10-30 ns). Différents types d’accès : Accès séquentiel : pour accéder à une information, il faut parcourir toutes celles qui la précèdent (bande magnétique) Accès direct : l’information possède une adresse propre qui lui permet de la localiser directement (RAM) Accès semi-séquentiel : combinaison entre l’accès direct et l’accès séquentiel (disque dur) Accès par contenu : l’information est identifiée par une clé de recherche (mémoire cache). Mémoires à semi-conducteurs : Mémoires à accès direct qui peuvent être lues et écrites. Plusieurs types de nature et de conception différentes : la RAM (Random Access Memory) à accès direct. la ROM : Read Only Memory, mémoire morte où l’on peut lire uniquement. utilisées pour y implanter le BIOS (Basic Input Output System) de l’ordianteur. la PROM : (Programmable ROM) mémoire morte programmable une seule fois par l’utilisateur. Très peu utilisée en informatique. l’EPROM : (erasable PROM). Mémoire cachée : Le principe de la mémoire cachée est de trouver une solution à la grande différence de vitesse entre le processeur et la mémoire centrale, car il existe une grande disparité des vitesses (rapport 10). Les ordinateurs ont différents types de cache, à peu près la même définition. La cache réalise quelques tâches spécifiques. Certaines caches dédiées à ne faire qu’une seule tâche, mais la plupart réalisent les tâches suivantes : cache en écriture, utilisée lorsqu’un périphérique rapide envoie de l’information à un périphérique lent. La cache permet de transmettre les informations à la vitesse du périphérique lent et de libérer les autres. 4 Cours L1.2. Introduction générale. cache en lecture : lorsqu’un périphérique rapide obtient de l’information d’un périphérique lent. Lire à l’avance ce dont on pourrait avoir besoin dans la suite. On peut avoir accès rapidement à qqch déjà en mémoire. Lorsqu’elle est vide, elle peut se remplir d’elle-même pendant qu’on fait autre chose. E. Les unités d’entrée-sortie : Permettent de transférer les données entre l’unité centrale et les périphériques qui composent l’ordinateur. Les plus courantes : le bus le DMA (Direct Memory Access) le bus Simple câble de n lignes permettant de faire passer des données du processeur à la mémoire et vice-versa. C’est une voie d’interconnexion et d’échanges permettant le transfert de données entre les éléments internes d’un ordinateur, le processeur et la mémoire centrale. Le bus permet de véhiculer tous les signaux entre l’unité centrale et les périphériques. 3 groupes de bus : le bus de données qui sert à transporter l’information proprement dite. le bus d’adresse qui permet d’identifier la case mémoire concernée par l’opération encours le bus de commandes qui détermine le type d’opérations à effectuer. Chaque périphérique doit être relié à un bus par un contrôleur spécialisé et il existe plusieurs contrôleurs de bus. ex : ISA, LOCAL, VESA ex : bus PCI : PCMCIA PCMCIA : bus développé principalement pour les portables. Performances limitées. Pas la prise de contrôle du bus par les périphériques. Très petite taille des connecteurs et des cartes d’extension (format cartes de crédit). Le seul autorisant la connexion et déconnexion des cartes d’extension sans couper l’alimentation de l’ordinateur. Accès direct à la mémoire : DMA Le DMA permet à un périphérique d’accéder directement à la mémoire sans passer par le CPU. Il est prioritaire sur celui-ci pour l’accès à la mémoire. Le fait d’utiliser un DMA pour gérer un périphérique améliore nettement les performances de celui-ci. La carte son utilise ce procédé. canaux d’entrée/sortie Ils sont plus performants que les DMA et permettent à plusieurs périphériques de travailler simultanément. Ce sont de véritables processeurs spécialisés. Ils sont programmables, enchaînent des opérations d’entrée/sortie et ont un accès prioritaire à la mémoire. Système d’interruption 5 Cours L1.2. Introduction générale. Pour mener à bien les échanges, les unités d’entrée-sortie doivent pouvoir signaler au CPU qu’elles sont connectées et prêtes à transférer des données ou bien que l’échange de celles-ci s’est bien déroulé. F. Les interfaces d’entrée/sortie L’émergence d’appareils numériques et de l’Internet a entraîné une accélération de la quantité de données utilisées sur PC. Cette tendance a justifié l’utilisation de microprocesseurs de plus en plus rapides, de disques durs de plus en plus gros, d’écrans de plus en plus larges et de connexions internet de plus en plus haut débit. Les interfaces ont subi la même tendance. Doublement de la puissance tous les 18 mois (loi de Moore). Quelques interfaces ici : Interface USB : haut débit(jusqu’à 480 Mbits / s) Utilisable pour connecter clavier, souris, manette de jeux, liaison PC à PC, appareil photo et caméra vidéo haute résolution, lecteur MP3, lecteur de disquette standard ou zip, disque dur externe, graveur de CD RW Interface SCSI : Small Computer System Interface. Haut débit Connecter des disques durs de haute performance et les CD R, CD-RW, DVD, scanners, imprimantes. Connexion d’un grand nombre de périphériques (7), rapide, excellentes performances de débit, indépendantes de la charge du système. Les systèmes d’exploitation : Ce n’est qu’un programme spécialisé qui assure le bon fonctionnement de l’ordinateur et gère les divers périphériques : ex MS-DOS , UNIX, LINUX WINDOWS ou MACINTOSH systèmes qui gèrent à la fois l’ordinateur et des applications ou logiciels (Word, excel,adobe,power-point…etc) ex :Windows 1998, 2000 … Programmes : Excel, Word … Dépendent du système d’exploitation. Niveau très sophistiqué d’exécution de l’ordinateur. Les systèmes d’exploitation : monotâche/monoutilisateur ex : DOS monoutilisateur/multitâche : ex : Windows 95, Windows 98, OS2 multiutilisateur/multitâche ex : Windows 2000, Unix, Linux Linux est la version gratuite de Unix. 6 Cours L1.2. Introduction générale. Plusieurs applications différentes peuvent être effectuées simultanément,. Plusieurs personnes peuvent travailler en même temps. Comment fonctionne l’ordinateur ? Un microprocesseur n’est qu’une suite de circuits « on –off » ou 0, 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 On a dessiné une série de 8 bits ( ou bytes en anglais) qui forme un octet Chaque opération va être définie par un octet Par exemple : 10001010 Pour effectuer les opérations le microprocesseur travaille donc en langage binaire ou base 2 Ex : Langage base 10 Langage base 2 1 1 2= 0*2 0 + 1*21 10 3 = 2+1 = 1*2 0 +1*2 1 11 2 0 1 4 = 1*2 + 0*2 +0*2 100 Maintenant faisons un calcul arithmétique : en base 2 on additionne 1001 équivalent base 10 1*2 0 +0*2 1 + 0*22+1*23 = 9 + 1011 1*2 0 +1*2 1 + 0*22+1*23 = 11 ---------------------0 1 2 3 10100 0*2 +0*2 + 1*2 +0*2 +1*24 = 20 Comment traduire les instructions en langage binaire ? Le nombre de huit bits n’est pas choisi au hasard. Avec huit bits on obtient 256 combinaisons différentes de 0000000 à 11111111. Chaque combinaison correspond à un caractère du clavier. C’est ce qu’on appelle le code ASCII (American Standard Code for Information Interchange) Le caractère A ? Le nombre 0 2 4 donne en ascii 01000001 00111111 00000000 00000010 00000100 etc……….. Le compilateur permet de passer du programme en langage intelligible en ASCII puis en binaire……… 7 Cours L1.2. Introduction générale. En résumé : Données --------ORDINATEUR------Information Entrée Traitement Sortie Que fait l’utilisateur ? 1- Il stocke les données sur un périphérique ou sur la mémoire de l’ordinateur 2- Il établit un organigramme : Le problème à résoudre Les données Les paramètres et hypothèses 3- Il traduit chaque étape du processus en commandes dans un langage de programmation évolué ex : C++, BASIC, JAVA, FORTRAN, HTML….etc…. Il a alors un programme source en ASCII. 4 - Il utilise un compilateur qui va transcrire son programme en langage binaire 5- Il utilise l’exécutable 6- Il imprime les résultats 8