Les élèves connaissent les constituants de base de l’ordinateur : Le matériel ( hardware) * la carte mère et ses principaux constituants ( support du processeur ; connecteurs de mémoire vive, de périphériques, ; connecteurs d’entrées-sorties …..), * le microprocesseur ( CPU : Central Processing Unit), * les mémoires RAM et ROM, * les ports de communication ( série, USB ), * les unités de stockage (disque dur, CD-Rom, DVD, blu-ray, clé USB), * les périphériques ( webcam, modem, dispositifs d’acquisitions, …), * l’écran, l’imprimante, la souris . Au niveau logiciel ( software) , ils connaissent l’existence : * du BIOS, * du système d’exploitation, * qu’en interne l’ordinateur fonctionne en binaire ; 1 bit ne peut prendre que 2 valeurs : a) 0 ( tension Ufil-masse = 0) , b) 1 ( tension Ufil-masse = 5 V, par exemple). Un ensemble de 8 bits est 1 octet . 1] L’architecture de base de l’ordinateur Elle contient les éléments suivants : * le microprocesseur ( unité centrale) * la mémoire principale * des interfaces d’entrées-sorties. Ils sont reliés par des voies de communication : les bus . 11) Le microprocesseur Il interprète et exécute les instructions d’un programme. Il lit et sauvegarde les résultats dans la mémoire . Il communique avec les autres éléments de l’ordinateur . Son fonctionnement est cadencé par une horloge. On caractérise le processeur par : * sa fréquence d’horloge en MHz ou GHz, * le nombre d’instructions par seconde qu’il peut exécuter en MIPS ( Millions d’Instructions Par Seconde), * la taille des données qu’il est capable de traiter en bits. Le 1er microprocesseur ( = P ) date de 1971, c’est l’INTEL 4004 : 2300 transistors, 60 000 Instructions Par seconde, fréquence 108 kHz. Recherche documentaire : * chercher le tableau des processeur de 1971 à aujourd’hui (nom , année, nombre de transistors,fréquence ) * qu’est-ce que la loi de Moore ? 12) La mémoire principale Elle contient les instructions des programmes et les données. Elle se décompose en RAM et ROM ( lecture seule) . 13) les interfaces d’E/S : chaque périphérique est lié au système par une interface, ou contrôleur, qui gère les échanges avec le P . 2] L’architecture de base du processeur Elle est construite autour de 2 éléments principaux : * une unité de commande (UC) * une unité de traitement (UAL) , qui sont associées à la mémoire . Ces 3 éléments sont reliés entre eux par 1 bus interne où circulent les informations . 21) L’unité de commande * elle cherche en mémoire l’instruction à exécuter et la décode, * l’envoie dans le banc registre par l’intermédiaire du bus, si c’est 1 instruction simple ; par exemple initialiser 1 case-mémoire. * Si l’instruction est plus complexe ( additionner le contenu de 2 cases en mémoire) , l’UC cherche les valeurs dans sa mémoire et les envoie à l’UAL . L’UC et le P fonctionnent au rythme d’une horloge. Remarque , l’UC comprend 2 parties : 1 séquenceur qui cherche en mémoire l’instruction et un banc registre ( qui est une mémoire du P , de faible capacité mais très rapide). 22) l’UAL * elle réalise l’exécution des instructions grâce à ses fonctions arithmétiques et logiques, * le résultat est envoyé sur le bus pour être mis en mémoire . Il peut alors apparaître sur 1 périphérique ( écran, imprimante, …). 3] La microprogrammation 31) Les langages de programmation * le langage machine est celui compris par le processeur ; chaque instruction est codée par une séquence de bits . * le langage assembleur est le langage le plus proche du langage machine. Ce langage peut varier d’un processeur à l’autre. * le langage de haut niveau est plus adapté à l’homme que l’assembleur. Car il ne dépend pas de l’architecture de la machine et il permet d’écrire des algorithmes sous 1 forme plus facile à utiliser. Ces langages sont le C, C++, pascal, Java, etc … Le langage de haut niveau doit être compilé pour être traduit en assembleur, puis assemblé pour être convertit en langage machine ; afin d’être compris par le P . 32) Le jeu d’instructions ( à écrire dans la mémoire d’instructions) a) les instructions arithmétiques * l’initialisation : MOV Rd entier // ex : MOV R5 0 , met la case-mémoire 5 du registre à zéro * l’ addition : ADD Rd Rx Ry // ex : ADD R2 R1 R0 , R2 va contenir la somme de R1 et de R0 * la soustraction : SUB Rd Rx Ry // ex : SUB R2 R1 R0 , R2 = R1 – R2 Le schéma d’1 simulateur est donné ( auteur D. Lavenier ENS Cachan Rennes ). Ecrire 1 programme qui : * met R3 à 10 , R4 à 15, R5 à 20 * fait R3 + R4 – R5 * range le résultat en R6. Exécuter le programme « à la main » ; prog1. Mémoire d’instructions Données de sortie (écran ….) Données d’entrée(clavier…) L’UC : registre et séquenceur Le bus l’UAL Mémoire des données b)lLes instructions de lecture/écriture en mémoire de données * lecture : LD Rd Ra // ex : LD R2 R1, la donnée à l’adresse R1 de la mémoire de données est mise dans la case-mémoire 2 du registre. * écriture : SR Ra Rd // ex : SR R1 R2, la donnée en R2 du registre est écrite en R1 dans la mémoire de données . c) Les instructions d’E/S * en entrée : IN Rx // ce qui est entré dans Data IN est mis en Rx du registre * en sortie : OUT Rx // le contenu de Rx est transféré dans Data Out . Programme : transférer le contenu de R3, R4, R5, R6 dans les mêmes cases en mémoire de données et en sortie ; prog2. d) le saut conditionnel * branchement conditionnel si ZERO : JZ Rx label // si Rx == 0, le programme sur la ligne marquée « label » * branchement conditionnel si NON ZERO : JNZ Rx label * branchement conditionnel si > ZERO : JSUP Rx label * branchement conditionnel si < ZERO : JINF rX label * branchement inconditionnel : JMP label label est une étiquette à mettre dans les cases de gauche pour repérer l’instruction . Exemple , que fait le programme suivant ; prog3 : MOV R0 0 Ecrire 1 programme qui récupère 2 entiers sur le port d’entrée et envoie le maximum IN R1 sur le port de sortie ; prog4. IN R2 SUB R3 R1 R2 Ecrire 1 programme qui récupère 2 entiers dans la mémoire de données et envoie le JINF R3 label JMP end maximum sur le port de sortie ; prog5 . label OUT R1 end OUT R2 4] Le simulateur Il fonctionne avec le langage python. Le logiciel python doit être installé sur l’ordinateur ; par exemple ActivePython 2.7. Ouvrir IDLE (Python GUI) : D:\python27\Lib\idlelib ; puis File open sim_micropro.py ; puis run \ run module ; ce qui exécute le simulateur . Exécuter les programmes 1 à 5 . NEXT INST : fonctionnement pas à pas ; noter combien il faut de cycles d’horloge pour exécuter complètement une instruction . Ensuite, utiliser NEXT CYCLE , qui fonctionne instruction par instruction . Programmes à écrire et tester : a) mettre les nombres 1,2,3,4,5,6,7,8,9,10 e mémoire de données à partir de l’adresse 0, faire leur somme e Ré du registre et afficher le résultat sur le port de sortie . b) entrer les valeurs 4 et 5 dans le registre à partir de l’entrée ; faire leur multiplication et mettre le résultat en sortie. 5] Pour information dans Windows Faites start run et C:\WINDOWS\system32\debug.exe ; debug permet d’accéder au registre de votre ordinateur : AX, BX, CX ,DX, … ; ? donne les commandes ; r permet de visualiser les contenus et de les modifier.