Ordinateurs, Structure et Applications GIF-1001 Cours 6, le 8086 Etienne Tremblay Université Laval, Hiver 2012 GIF-1001 Cours 6, p.1 Introduction • • • • Un objectif du cours d’OSA est d’apprendre la programmation en assembleur. De nos jours, il est très très rare de programmer en assembleur: très peu de personnes programment en assembleur et ceux qui le font, le font habituellement très peu souvent. Cependant, il est important de bien comprendre les instructions et l’exécution d’instructions afin de bien comprendre comment fonctionne un ordinateur. Comme les instructions sont intimement reliées au code assembleur, le langage assembleur est présenté dans le cours d’OSA. Un pré requis quasi-incontournable de la programmation en assembleur est de bien connaître le microprocesseur qui exécutera le programme. Le langage assembleur est très près du langage machine. Pour cette raison et pour faire un lien avec le cours précédent sur l’architecture des microprocesseurs, le 8086 sera présenté brièvement en classe. GIF-1001 Cours 6, p.2 Le 8086 (1) Tiré de: i8086_microprocessor.pdf GIF-1001 Cours 6, p.3 Le 8086 (2) • • • • • • Le 8086 a des registres de 16 bits et peut adresser 1Mo de mémoire (20 bits d’adresse). La mémoire est externe au CPU. Le 8086 gère 4 segments de 64Ko. Le 8086 a une architecture CISC. Chaque instruction du 8086 a une longueur qui lui est propre. L’horloge du 8086 peut être 5, 8 ou 10MHz. Un cycle du CPU vaut 6 coups d’horloge. Une instruction de CPU peut habituellement être exécutée par cycle (En fonction de l’instruction). Le 8086 a 40broches. 20 broches servent de bus d’adresses et 16 broches servent de bus de données. Afin de minimiser le nombre de broches, les 16 broches de données sont aussi des lignes d’adresse. Lors d’une opération d’écriture ou de le lecture de la mémoire, les 16 broches communes (adresses et données) sont tour à tour des adresses, puis des données. Les autres broches du 8086 servent au contrôle des bus (Interruptions, Read, Write, I/Os versus mémoire, etc.) ou à l’opération du 8086 (alimentation, horloge, reset). Le 8086 est divisé en plusieurs bloc fonctionnels qu’on retrouve dans un CPU moderne: le Bus Interface Unit, des registres (il n’a pas de registres pour les fractions), un ALU, un buffer de 6byte pour 1 instruction et une unité de contrôle et d’exécution des instructions. GIF-1001 Cours 6, p.4 Le 8086 (3) Tiré de: i8086_microprocessor.pdf GIF-1001 Cours 6, p.5 Le 8086 (4) • Le 8086 a deux modes d’opérations déterminés par le voltage présent à la broche MN/MX*: minimum et maximum. Ces modes déterminent la fonction de plusieurs broches du 8086. Le contenu de cette page et de la page précédente est propre au mode minimum. • Pour aller lire ou écrire la mémoire, le CPU: – Met une adresse valide sur le bus d’adresse – Active la ligne ALE pour dire que l’adresse est valide – Change le rôle des lignes d’adresse pour leur donner le rôle de lignes de données (Désactiver ALE, rendre le bus de données flottant en lecture, mettre DEN* LOW) – Met les données sur le bus de donnée pour l’écriture. – Active les lignes de lecture ou d’écriture. – Lit les données au besoin. – Change le rôle des lignes de données pour leur donner le rôle de lignes d’adresse. GIF-1001 Cours 6, p.6 Références et exercices • Références – – – – – • architecture du pc.doc Datasheet du 8086 (i8086_microprocessor.pdf) Intel Architecture, Software Developer’s Manual (pentiumIII.pdf) Architecture du Pentium 4.doc Lien sur une comparaison du Pentium IV et de l’Athlon avec de belles images d’architecture: http://www.tthardware.com/modules.php?name=News&file=article&sid=5424 Exercices – Historique: lire la section 2.1 de pentiumIII.pdf – Lire Architecture du Pentium 4 ou le lien ci-haut (en français!) ou le reste du chapitre 2 de pentiumIII.pdf (recommandé, mais plus complexe). – Lire la datasheet du 8086 en partie: quel est le rôle de la Latch dans la figure de la page 8, figure 4a? GIF-1001 Cours 6, p.7