Unité IFS (Interface)
Les systèmes embarqués
Architecture des systèmes à processeur
Etienne Messerli
février 2019
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p1
Ordinateur
Système UNIVERSEL
de traitement de l'information "binaire"
Utilisé pour :
▪ Traitement d’information
• texte, son, image, vidéo, …
▪ Calcul complexe
• algorithme, prévision météo, prédiction bancaire, …
▪ Système de communication
• serveur, switch, routeur, …
▪ Commande de machines et d’appareils
• machines outils, ligne d’assemblage, appareil médical, …
▪ Systèmes embarqués
• automobile, avionique, ferroviaire, …
▪ …..
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p2
Terminologie
Calculette simple opérations fixes
Calculatrice scientifique
▪ HP 35, HP48, TI-89 ordinateurs
Ordinateur personnel PC de puissances
Maxi ordinateur différentes
Microprocesseur partie d'un ordinateur
Microcontrôleur système à processeur inté-
gré dans une seule puce
(SoC: System on Chip)
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p3
Eniac, école de Moore, Pennsylvanie, 1946
Electronic Numerical Integrator And Computer
L'ENIAC est le premier ordinateur
entièrement électronique construit
étant «Turing-complet». Il peut être
reprogrammé pour résoudre, en
principe, tous les problèmes
calculatoires.
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p4
Historique
Puis- Perfor- Rapport Rapport
Taille sance mances Mém. Prix Perfor- Prix $ Perfor-
Année Nom m3 W (add/s) Ko $ /Prix (1991) /Prix
1951 UNIVAC 28,317 124'500 1'900 48 1'000'000 1 4'533'607 1
1964 IBM S360 1,699 10'000 500'000 64 1'000'000 263 3'756'502 318
1965 PDP-8 0,227 500 330'000 4 16'000 10'855 59'947 13'135
1976 Cray-1 1,642 60'000 166'000'000 32'768 4'000'000 2'842 7'675'591 51'604
1981 IBM PC 0,0283 150 240'000 256 3'000 42'105 3'702
1991 HP 9000 0,0566 500 50'000'000 16'384 7'400 3'556'188 7'400 16'122'356
2000 PC 0,0250 150 1'000'000'000 256'000 1'000 0.526 109 ?
2013 PC (i7-3830) 0.0250 500 >16'000'000'000 16 Go 1’900 4.432 109 ?
DELL Alienware 4 Core 3.60GHz HD 1 To
Référence [2]: Organisation et conception des ordinateurs
Patterson et Hennessy, Dunod
Site internet : [Link]
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p5
Dias laissé volontairement vide
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p6
Architecture Von Neumann …
John Von Neumann, Princeton, 1946
▪ imagine de stocker le programme en mémoire
▪ pas de distinction entre la mémoire pour le
programme et celle pour les données
▪ Les mémoires et les entrées/sorties sont
adressées de façon similaire
▪ un seul ensemble de bus : CPU – Mémoire – I/O
▪ la mémoire et les entrées/sorties sont dans le
même plan d’adressage
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p7
Principe architecture von Neumann
Environnement extérieur
Mémoire Mémoire I/O
de programme de données Entrées et sorties
BUS
CPU
Central Processing Unit
Unité de traitement centrale
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p8
Architecture Harvard
Howard Aiken, université de Harvard, 1946
▪ Utilise un programme stocké en mémoire
▪ Programme et données stockés dans des
mémoires séparées
▪ Dispose de 2 ensembles de bus, soit :
• un ensemble : CPU-Mémoire programme
• un ensemble : CPU-Mémoire donnée-E/S
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p9
Principe architecture Harvard
Environnement extérieur
Mémoire Mémoire I/O
programme données Entrées et sorties
Bus
mémoire de
programme Bus mémoire de données
et I/O
CPU
Central Processing Unit
Unité de traitement centrale
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 10
Structure architecture von Neumann
Nous allons étudier et utiliser une architecture von Neumann
dans le cadre du cours IFS
BUS
Mémoire
CPU progr./données
I/O
Entrées et sorties
Environnement extérieur
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 11
Blocs fonctionnels
Rappel de notions du cours ARO2
CPU Central Processing Unit
▪ unité de traitement centrale
Mémoire
▪ Stockage du programme et des données
Entrées & sorties
▪ Connexion avec l'environnement extérieur
Bus
▪ Interconnexions entre les 3 unités
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 12
Le CPU
Maître du système
Son rôle:
▪ chercher une instruction dans la mémoire
▪ décoder cette instruction
▪ exécuter l'instruction
• transférer des données
• réaliser une opération, un calcul
• ….
▪ calculer l’adresse de la prochaine instruction
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 13
Instructions du CPU
Les instructions du CPU peuvent être
classées en trois catégories :
▪ instructions de calcul (arithmétique et logique)
▪ instructions de transfert de donnée
• interne interne, interne externe
▪ instructions de branchement (saut)
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 14
La mémoire
Permet de stocker le programme et les
données
Plusieurs types
▪ mémoires volatiles (RAM, SRAM, DRAM, ..)
▪ mémoires non-volatiles (EPROM,EEPROM,..)
▪ mémoires de masses (disque dur, bande, …)
• celles-ci seront considérées comme des
entrées/sorties
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 15
Les entrées & sortie
Connexion avec l'environnement extérieur
▪ Clavier
▪ Ecran
▪ Convertisseur A/D et D/A
▪ Capteurs divers (température, pression, mouvement, ..)
▪ Mémoires de masse (disque dur, clé USB, …)
▪ ….
Indispensable pour le fonctionnement
de l'ensemble
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 16
Les Bus
Interconnecte les 3 blocs principaux
▪ Commun à tous, donc nécessaire de définir
un plan d'adressage (éviter les conflits!)
▪ Le CPU est le maître
▪ L’ensemble de bus comprend 3 parties :
• Bus d'adresse QUI
• Bus de données QUOI
• Bus de contrôle COMMENT
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 17
Dias laissé volontairement vide
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 18
Exercice 1
Etudier le fonctionnement des instructions
dans un système à processeur. Analyser les
actions internes au processeur et externe
dans le système.
Pour chaque instruction, indiquez les
informations circulant sur les différents
chemins de données (datapath)
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 19
Exercice 1
Plan d’adressage du système à processeur:
▪ Bus d’adresse 12bits 0x000
4 K de 0x000 à 0xFFF
▪ Bus de données 16bits ROM
Programme
Définition des zones:
▪ ROM programme 0x7FF
0x800
2K 0x000-0x7FF I/O
▪ Zone I/O Entrées/sorties
0x9FF
0.5K 0x800-0x9FF 0xA00
▪ RAM données RAM
Données
1.5K 0xA00-0xFFF 0xFFF
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 20
Exercice 1: énoncé
La mémoire contient le programme suivant :
Adr. Instruction Description
0 MOV R0, #25 ; R0 = 25
1 MOV R3, #2560 ; R3 = 2560 (2560=0xA00)
2 SUB R0, R0, #1 ; R0 = R0 - 1
3 STR R0, [R3] ; Mem[R3] = R0
; mémorise R0 en RAM (0xA00)
4 STR R0, [R3 - #512] ; Mem[R3 - 512] = R0 (512=0x200)
; affiche R0 sur les leds
5 TEQS R0, #0 ; Test: R0 xor #0 (Z=1 si égal)
6 BNE 2 ; Si pas égal saute adresse 2
7 B 7 ; stop le programme
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 21
Déroulement d’un programme
0x000 MOV R0, #25
0x001 MOV R3, #2560
PC 0x002 SUB R0, R0, #1
0x003 STR R0, [R3]
ALU Bus d’adresse
IR 0x004 STR R0, [R3 - #512]
0x005 TEQS R0, #0
R0 12
Bus de données 0x006 BNE 2
R1 0x007 B 7
Unité de
contrôle R2 16 0x008
0x009
R3 0x010
…
En 0x800: 16 leds 0x800
En 0x801: 16 switch 0x801 0xA00
0x802 Reserved
0xA01
0x803 Reserved
0xA02
… 0xA03
…
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 22
Les E/S dans les systèmes embarqués
Entrées simples:
▪ Boutons poussoirs, interrupteurs, contact, …
Sorties simples:
▪ Leds, affichage 7 segments, …
Ecran, écran tactile (touch sreen)
Moyen de communication:
▪ GSM, GPRS, Wifi, Bluetooth, …
GPS, accéléromètres
Capteurs de grandeurs physique:
▪ température, pression, courant, distance, …
Signaux analogiques: convertisseurs A/D et D/A
source: [Link]
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 23
Exemple de périphériques
De nombreux périphériques communique avec
le système embarqué via une ligne série afin de
réduire les fils:
▪ SPI «Serial peripheral interface»
▪ I2C «Inter-Integrated Circuit»
▪ très nombreux périphériques disponible:
• A/D, D/A, capteurs de température, de pression, codec, …
De nombreux périphériques communique avec
le système embarqué via une tension
analogique
▪ utilisation fréquente de convertisseur A/D et D/A
▪ nécessité d’interfacer des entrées/sorties à n bits
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 24
Exemple de périphériques
Capteurs de grandeurs physique
▪ Fournissent une tension analogique (entrée n bits)
Transducteur, dispositif de commande
▪ sortie de 1 ou n bits
▪ relai, électrovalve, vibreur
▪ moteur axes machines
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 25
Gestion des transfert sur le bus?
Environnement extérieur
Architecture von Neumann
Mémoire Mémoire I/O
de programme de données Entrées et sorties
Dans un système à proces-
seur le système de bus est
CPU unique.
Central Processing Unit
Unité de traitement centrale
Comment éviter les conflits?
=> plan d’adressage
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 26
Plan d’adressage
Système de bus est unique dans un système à
processeur
Comment éviter des conflits lors de transferts?
=> plan d’adressage
Objectif du plan d’adressage
▪ Permet au maître de sélectionner le composant concerné
par un transfert (read ou write)
▪ A chaque adresse y a un seul élément
▪ Permet de réaliser le décodeur d’adresse
• chaque élément à son propre CS (signal de sélection)
▪ Indispensable pour le programmeur pour accéder au
différentes ressources du système
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 27
Bus d'un système à processeur
Composé de trois parties:
Bus d'adresse
▪ Générée par le maître du bus: le CPU
▪ Définit l'adresse concernée, le correspondant
Bus de données
▪ Contient les données échangées entre le maître et le
correspondant adressé
Bus de contrôle
▪ Définit le sens du transfert, le protocole, …
▪ Convention:
Sens des transferts référencé sur l’action du CPU
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 28
Bus d’adresses (address bus)
L'adresse décrit
▪ position mémoire (ou I/O) d’un opérande
▪ position mémoire du code de la prochaine instruction à
exécuter
L’adresse est générée par le CPU
Bus d'adresse: unidirectionnel
Fréquent: memory address register (MAR)
▪ maintien de l’adresse sur le bus
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 29
Bus de données (data bus)
Transmet:
▪ code des instructions de la mémoire vers le CPU
▪ opérandes entre le CPU et la mémoire ou les I/O
(dans les 2 sens)
Bus bidirectionnel de 8, 16, 32, ou 64 bits
(voir 128 bits)
Limitation en largeur: plusieurs transferts
éventuellement nécessaires pour une
information plus large que la taille du bus
▪ code d’une instruction (IR: plusieurs tranches)
▪ donnée sur plusieurs mots mémoire
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 30
Bus de commande
Signaux de gestion des transferts
▪ sens, synchronisation, handshake, …
Exemples pour bus synchrones:
▪ RD: lecture (lecture par le CPU)
▪ WR: écriture (écriture par le CPU)
ou alors
▪ R/W pour le sens du transfert
▪ strobe pour la synchronisation
Convention: référence sur action du CPU
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 31
Décodage des adresses
Environnement extérieur
Chips select
Décodage
SRAM ROM Inputs Outputs
Bus
d’adresse
(unidirec- Bus de données (bi-directionnel)
tionnel)
CPU
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 32
Exemple de memory map
Internal ROM 0x0000_0000
(boot) 0x0000_FFFF
L’espace d’adressage total est 0x0001_0000
232 = 4GB 0x00000000–0xFFFFFFFF Internal SRAM
0x0000_FFFF
0x0001_0000
Reserved
Chaque zones mémoires occupe un espace d’adressage: 0x3FFF_FFFF
0x4800_0000
▪ Internal ROM 64KB 0x00000000 - 0x0000FFFF Peripheral Registers
0x48FF_FFFF
▪ Internal SRAM 64KB 0x00010000 - 0x0001FFFF 0x4900_0000
Reserved
▪ External SDRAM 1GB 0x80000000 - 0xBFFFFFFF
0x7FFF_FFFF
▪ External Flash 1GB 0xC0000000 – 0xFFFFFFFF 0x8000_0000
External SDRAM
Les registres des périphériques occupent l’espace
d’adressage: 0xBFFF_FFFF
0xC000_0000
▪ 16MB 0x48000000 – 0x49FFFFFF
External Flash
0xFFFF_FFFF
E. Messerli (HES-SO / HEIG-VD / REDS), 2019 Systèmes embarqués intro, p 33