Architecture t des systèmes à processeur Introduction Michel Starkier 1 Michel Starkier (MSR) - Institut REDS Cours: ARO1, ARO2, (NUM3), EMB, CSE, ASP Recherche : Systèmes embarqués reconfigurables Bureau A07a Tel: 024 557 61 55 michel.starkier@heig-vd.ch 2
ASP Assistante : Evangelina Lolivier-Exler (ELR) Ingénieure à l institut ReDS evangelina.lolivier-exler@heig-vd.ch l i l i h 3 Cours ASP Nouveau cours Quelle forme? 40 périodes cours / 40 périodes labo Au minimum 2 tests 1 examen Exposés Corrélation avec le cours IEM En général : Cours mardi, labo jeudi 4
Contenu du cours ASP Exposés et exercices : 40 périodes Nb. période Architecture des processeurs : structures (Von Neuman, Harvard) et fonctionnement, classes (CISC, RISC, superscalaire, VLIW, DSP, multicoeurs, virtualisation, ), histoire, panorama des familles de composants et des fabricants. Mémoires : disques magnétiques et optiques, SRAM, SDRAM, Flash, EEPROM,. adressage et interfaçage, technologies, panorama des familles de composants et des fabricants Périphériques : techniques d interfaçage, entrées/sorties, (discrètes, claviers, afficheurs, ports, contrôleurs réseau et bus), timers, watchdog, panorama des familles de composants et des fabricants Bus numériques : structure et fonctionnement, bus usuels (locaux, I2C, PCI, USB, SATA/ATA,..) Spécificités des systèmes intégrés : microcontrôleurs, SOC,, - panorama des familles de composants et des fabricants Spécificités des systèmes embarqués : contraintes d environnement, protections, alimentations, aperçu des normes applicables Travaux de laboratoire, études de cas : 40 périodes Laboratoire: mise en œuvre et test des fonctions d'un système à processeur Etude de cas: analyse de documentations techniques, compréhension de l'architecture, identification des spécifications clés. Etude de cas: comparatifs, choix de systèmes ou composants, analyse de performances 5 Planning prévisionnel Mardi Jeudi 15.09-21.09.08 38 1 Architecture processeur Architecture processeur 22.09-28.09.08 39 2 Architecture processeur Labo introduction 29.09-05.10.08 40 3 Architecture processeur Labo introduction 06.10-12.10.08 41 4 Architecture processeur Labo introduction 13.10-19.10.08 42 5 Architecture / Bus Bus numériques 20.10-26.10.08 43 27.10-02.11.08 44 6 Test Labo GPIO 03.11-09.11.08 08 45 7 Bus numériques Labo GPIO 10.11-16.11.08 46 8 Bus numériques Labo GPIO 17.11-23.11.08 47 9 Mémoires Cours, mini-projet 1 24.11-30.11.08 48 10 Mémoires Labo flash 01.1212-07.12.08 08 49 11 Mémoires Labo flash 08.12-14.12.08 50 12 Test Labo flash 15.12-21.12.08 51 13 Périphériques Cours, mini-projet 2 22.12-28.12.08 52 29.12-04.01.0901 09 1 05.01.- 11.01.09 2 14 Périphériques Labo picomon 12.01-18.01.09 3 15 Périphériques Labo picomon 19.01-25.01.09 4 16 Spécificités Labo picomon 26.01-01.02.09 5 02.02-08.02.09 6 Examen 6
Cours ASP RAPPELS ET GENERALITES 7 Rappel: Préfixes binaires (1/4) Définitions iti : Unité SI: 1Kilo = 10 3 Kilobit (kb, Kb) = 2 10 bit kilooctet ou kilobyte (ko, kb, Ko, KB) = 2 10 byte 1KB(1Kbyte) Kbyte) Base 10: 2 10 B = 1024 B = 8192 bit > 10 3 B Base 16: 400 B Base 2: 10000000000 B 8 8
Rappel: Préfixes binaires (2/4) Préfixes binaires utilisés couramment kilo, méga, giga, téra, péta, exa, zetta, yotta Préfixes binaires du système international (peu utilisés) Kibi, mébi, gébi, tébi, pébi, exbi, zébi, yobi 9 9 Rappel: Préfixes binaires (3/4) Nom Symbole Puissances binaires et valeurs en décimal Nombre Hexa unité o/b 2 0 = 1 un(e) 1 10 0 = 1 kilo ko/ko kb/kb 2 10 = 1 024 mille 400 10 3 = 1 000 Ordre de grandeur SI décimal méga Mo/MB 2 20 = 1 048 576 million 100000 10 6 = 1 000 000 giga Go/GB 2 30 = 1 073 741 824 milliard 40000000 10 9 = 1 000 000 000 40 12 téra To/TB 2 40 = 1 099 511 627 776 billion 10000000000 10 12 = 1 000 000 000 000 péta Po/PB 2 50 = 1 125 899 906 842 624 billiard 400000000000 exa Eo/EB 2 60 = 1 152 921 504 606 846 976 trillion 1000000000000000 10 15 = 1 000 000 000 000 000 18 10 18 = 1 000 000 000 000 000 000 10
Rappel: Préfixes binaires (4/4) Adressage Puiss. binaire et décimal Hexa byte bit 8bits 2 8 = 256 100 256 B 2Kb 16 bits 2 16 = 65 536 10000 64 KB 512 Kb 32 bits 2 32 = 4 294 967 296 100000000 4 GB 32 Gb 64 bits 2 64 = 18 446 744 073 709 551 616 10000000000000000 16 EB 128 Eb Exemple : module mémoire à l adresse 0x400000 512K x 32 bit x 4 = 128 x 512 Kb = 64 Mbit => 8MB = 223 B Taille hexa : 800000 B Range d adresses : 0x400000 0xBFFFFF Data 32 bits /Ad Adresse sur 19 bits + 2 bits bank select 11 11 Exercices: Préfixes binaires Ex1 Ex2 Ex3 La taille d une mémoire est 262144 octets Donnez la taille en kb et en Mb L adresse de début est 0. Quelle est l adresse de fin? Le range d adresses d mémoire d une carte processeur est : 0x600000000 0x7FFFFFFFF Quelle est la capacité mémoire en GB? On divise une zone mémoire de 10 Mb en 4 blocs. Donnez la taille d un bloc en kb. 12 12
Format des données Chaque byte dans une mémoire possède une adresse différente. Si une donnée contient plus d'un byte, l adresse de la donnée correspond à celle du premier byte mots 32 bits adr = 0000?? adr = 0004?? adr = 0008?? adr = 0012?? mots 64 bits adr = 0000?? adr = 0008?? bytes adresse 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 13 Rappel: Types de données Processeur ARM9 Type de donnée Signification Taille Plage de valeurs acceptée char Caractère 8 bits / 1 byte -128 à 127 unsigned char Caractère non signé 8 bits / 1 byte 0 à 255 16 bits / 2 bytes short int Entier court -32 768 à 32 767 unsigned short int Entier court non signé 16 bits / 2 bytes 0 à 65 535 int Entier 32 bits / 4 bytes -2 147 483 648 à 2 147 483 647 unsigned int Entier non signé 32 bits / 4 bytes 0 à 4 294 967 295 long int Entier long 32 bits / 4 bytes -2 147 483 648 à 2 147 483 647 unsigned long int Entier long non signé 32 bits / 4 bytes 0 à 4 294 967 295 float Flottant (réel) 32 bits / 4 bytes 3.4*10-38 à 3.4*10 38 double Flottant t double 64 bits / 8 bytes 17*10 1.7*10-308 à 1.7*10 308 14 14
Rappel : Little endian / big endian big endian: le byte de poids fort est mis à l'adresse inférieure (le mot commence par le byte de poids fort) little endian: le byte de poids faible est mis à l'adresse inférieure (le mot commence par le byte de poids faible) 15 Rappel: Little endian / big endian Exemple: Une variable toto est stockée à l'adresse 0x0100 (c'est est-à-dire &toto=0x0100) La valeur de la variable toto est 0x01234567 big endian 0x100 0x101 0x102 0x103 01 23 45 67 little endian 0x100 0x101 0x102 0x103 67 45 23 01 16
Exercice On lit le contenu de la mémoire d un ordinateur little endian. Ce contenu est transféré à la même adresse d un ordinateur big endian. Donnez le contenu de la mémoire en fonction du format des données transférés. Little Endian ------------- Big Endian ------------- 8 bits 16 bits 32 bits 64 bits 0x100 5F 0x101 78 0x102 D4 0x103 23 0x104 45 0x105 AE 0x106 57 0x107 0 92 17 Niveaux d abstraction OS, applications Langage haut niveau Assembleur Code machine machine Jeu d instruction Architecture processeur Architecture blocs fonctionnels Circuits séquentiels et combinatoires i Bloc logiques Transistors Architecture des systèmes à processeur Mémoires Bus Périphériques 18
Définition systèmes embarqués Système informatique spécifique Fonction(s) précise(s) et déterminée(s) Contraintes temps réel Contraintes environnementales Partie d un équipement comprenant des pièces mécaniques et électriques 19 Système embarqué Système embarqué? Système embarqué 20
Applications systèmes embarqués Equipements personnels Téléphone, PDA, lecteur MP3, caméras, appareils, photos => appliance Equipements de véhicules GPS, ABS, EPS, ordinateurs de bords => automotive, avionic Equipements des bâtiments Réseaux, climatisation, alarme, information => networking, automation Equipements médicaux Monitoring, imagerie,.. pacemaker => biomed,.. Equipements militaires Radios, guidage missile, visée,.. => military,.. 21 Appollo Guidance Computer 1966 MIT Raytheon 22
Autonetics D-17 computer 1960 Guidage missile www.smallplumtreevillage.com 23 Intel 4004 4-bit microprocessor ocesso 1971 2300 transistors 10 microns 1972 8-bit 8008 Intel 24
Loi de Moore 25 Cours ASP ARCHITECTURE DES PROCESSEURS 26
Exercice: Dessinez le bloc diagram d un processeur (ou d un système à processeur) 27 Architecture PC registres PC ALU interface du bus bus système I/O bridge bus mémoire mémoire principale i contrôleur USB adaptateur graphique bus I/O contrôleur de disque slots d'expansion pour dautres d'autres dispositifs souris clavier écran disque 28
Système à processeur processeur mémoire dispositifs d entrée /sortie bus 29 Architecture d un processeur ALU Séquenceur PC Registres Contrôle Interface ( décodeur instruction) Bus mémoire 30
Architecture d un processeur Sélection PC IR ALU ACC Unité de control MEM Sélection lien? data bus 31 Architecture d un processeur Dessin de R. S. Shaw 32
processeur ARM926EJ-S Processeur 32 bit pour systèmes embarqués microcontrôleur imx21 i.mx21 processeur ARM926EJ-S cœur ARM9E-S 33 ALU Arithmetic and Logic Unit Opérations arithmétiques Addition, soustraction, multiplication, division,. Opérations logiques OR, AND, NOT, XOR, Shift 34
ALU Shifts => barrel shifter Logical shift Ex: >>3 11100101 => 00011100 Arithmetic shift Ex: >>3 01100101 => 00001100 11100101 => 11111100 Rotation Ex: >>3 11100101 => 10111100 35 ALU Format des données Entiers signés ou non signés Flottants (FPU) Status des résultats: Carry out Overflow, comparaison, signe 36
ARM9E-S 37