84
Syst ` emes temps r ´ eel et syst ` emes embarqu ´ es Architecture des ordinateurs Lo¨ ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ ıc Cuvillon (TPS) Syst ` emes temps r´ eel et syst ` emes embarqu ´ es Ann ´ ee scolaire 2010-2015 1 / 84

Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

  • Upload
    others

  • View
    18

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Systemes temps reel et systemes embarquesArchitecture des ordinateurs

Loıc Cuvillon

Telecom Physique Strasbourg

11 novembre 2015

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 1 / 84

Page 2: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Sommaire

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 2 / 84

Page 3: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Bibliographie

Bibliographie

Architecture :

Architecture de l’ordinateur, 5eme edition, Andrew Tanenbaum, Pearson

education, 2005. par le createur de l’OS Minix

Documentation technique :

Intel Architecture Software Developer’s Manuel

ARM Architecture Reference Manual

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 3 / 84

Page 4: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Bibliographie

Little/Big Endian

Petit/Gros boutiste (etymologie : voyage de Gulliver)

exemple : la valeur 433=0x01B1 necessitant 2 octets en memoire

Big endian : most significant bit (MSB : 01h) en premier

Little Endian : lest significant bit (LSB : B1h) en premier

Little-Endian (x86,arm)adresse memoire 00 01

B1 01

Big-Endian (powerpc,arm,mips)

adresse memoire 00 01

01 B1

Protocole IP : big endian (pour tous, interoperabilite)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 4 / 84

Page 5: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Plan

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 5 / 84

Page 6: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Hardware

System on chip (Soc) ARM/GPU

+ SDRAM, DMA, MMU, GPIO, UART

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 6 / 84

Page 7: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Gpio

GPIO : General Purpose InputOutput

configurable en entree ou sortie

niveau binaire : 0 - 3.3 Volt

peut produire une interruption

pas de CNA/CAN disponible

(mais un PWM)

GPIO particuliers

Liaison serie RS232 (RX,TX)

I2C (SDA/SCL)

SPI(MOSI, MISO)

PWM

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 7 / 84

Page 8: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

RS-232

RS232 :une norme de liaison serie

3 fils : GND, Transmission (Tx),

Reception (Rx)

bit 0 = niveau haut +3 a +15V

bit 1 = niveau bas -15V

Communication null-modem :

Periph 1 Periph 2

GND ↔ GND

TX ↔ RX

RX ↔ TX

utilise un UART

baudrate = debit en

symboles/seconde

(<bits/seconde)

UART

composant qui serialise les

donnees

frame standard :

1 bit de start a 0

8 bits (l’octet de data)

1 bit de parite (ou non)

1 bit de fin a 1 (ou 2 bits)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 8 / 84

Page 9: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

BerrylClip

Carte Berryclip+

Connexion haut-parleur, leds, interrupteurs sur les GPIOs

(Haut−parleur)

Pins

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 9 / 84

Page 10: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Connexion au RPI via la liaison serie

Un adaptateur USB RS232 3.3V TTL

conversion niveau RS232 vers 0-3.3V du Rpi

+ emulation d’un port serie pour les PC recents via /dev/ttyUSB0

7

1

13

Berryclip Pins

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 10 / 84

Page 11: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Connexion au RPI via la liaison serie

le RPi par defaut ouvre un terminal sur son port serie

login/passwd : pi/raspberry

Se connecter au RPi

1 Inserer la SD-card (ne pas alimenter le RPi)

2 Connecter le cable serie entre le PC et le RPi3 la commande screen /dev/ttyUSB0 115200 dans un terminal pour

se connecter

115200 est le baudrate cote RPi

sortir de l’utilitaire screen : touches [ctrl-a] puis [k]

4 alimenter le Rpi (les messages du noyau apparaissent, puis le login

apres les 60s de timeout du DHCP)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 11 / 84

Page 12: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Tools : mount

systeme de fichier

un systeme de fichier = organise le stockage et la recuperation de

l’information sous forme de fichiers nommes.

les partitions disques (disques dur, cle USB) sont des peripheriques

nommes /dev/sda1, /dev/sda2, /dev/sdd2 ..

Montage d’un systeme de fichier

mount [partition] [dir]

monter une partition sur un repertoire

umount [partition] ou umount [dir]

demonter une partition

df

liste les systemes de fichers montes

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 12 / 84

Page 13: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Tools : mount

/ boot/

lib/

mnt/

Readme.txt

/ /boot

/lib

/mnt

heros_S2_ep03.avi

/ENSPS/

Presentation_R5.ppt

heros_S2_ep03.avi

/ENSPS/

Presentation_R5.ppt

Disque dur /dev/sda : Clef USB

mount −t auto /dev/sda/ /mnt/

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 13 / 84

Page 14: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Tools : divers

Tools

cat [file]

concatener des fichiers

mais ici affiche le contenu sur la sortie standard

less ou more

decoupe le flux de la sortie standart en page

(touches : [b] page precedente, [space] suivante, [q] exit)

exemple : cat encyclopedie.txt | less

tar xf [archive]

decompresser une archive au format tar

sudo {-s}

execute la commande en tant que root,

-s ouvre un shell root

dmesg

messages de debug du noyau linux

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 14 / 84

Page 15: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Tools : manipulation fichiers

cp [file] [file/dir]

copie le fichier dans un autre fichier ou repertoire

cp -r [rep] [rep]

copier un repetoire dans un autre

mv [file/dir] [file/dir]

deplacer un fichier/repertoire dans un autre fichier ou repertoire

rm [file]

effacer un fichier

rm -r [dir]

effacer un repertoire (recursif)

mkdir [dir]

creer un repertoire

cd [dir]

changer de repertoire (.. le repertoire parent)

pwd

affiche le repertoire courant

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 15 / 84

Page 16: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Raspberry

Tools : editeur de texte

Vi (vim) : vi filemame

touche [echap]

sortir du mode courant

touche [i] ou touche [R]

mode insertion ou remplcement

touche([echap]) :w

ecrire le fichier

touche ([echap]) :x

sauver et quitter

touche ([echap]) :q!

forcer quitter

nano

plus classique. Menus via touche [ctrl] + lettre

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 16 / 84

Page 17: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM

Plan

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 17 / 84

Page 18: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Architecture ARM : principes

Architecture ARM (Advance RISC Machine)

processeur RISC 32 bit

Reduced Instruction Set Computer ; instr. de taille fixe (32bits)

architecture ”load and store”

(operation arithmetique realisable uniquement entre registres)

avantages : architecture epuree et frequence d’execution rapide

inconvenient : programme plus long (2x) que le meme en CISC

populaire dans l’embarque : lego mindstorm, nintendo DS ; apple

ipod,iphone (consommation electrique)

la societe ARM

ne fabrique pas de processeurs mais les dessine !

vend des licences et ses dessins a des fondeurs

percoit des royalties sur les processeurs vendus

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 18 / 84

Page 19: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Architecture ARM : principes

L’architecture externe du ARM

bus d’adresses 32 bits :

4Go de RAM possible ;

bus de donnees

(+ instruction : Archi. Van

Neumann)

2 lignes d’interruptions ;

nReset : reinitialisation ;

nRW : selection

ecriture/lecture

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 19 / 84

Page 20: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Architecture ARM : principes

Fonction d’un processeur (Central Processing Unit)

Execution sequentielle d’instructions au travers d’un pipeline

Fetch Instruction

Decode

Execute

Etapes du pipeline ARM7

Fetch : Recuperer le code de

l’instruction a executer

Decode : Decode instruction et

registres a utiliser

(preparation des chemins de

donnees)

Execute : Execution instruction

lecture registres ;

operation ;

ecriture resultat registre ;

...

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 20 / 84

Page 21: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Architecture ARM : principes

Architecture Interne d’un processeur

R1

R2

R3

IR

...

PCselectionBus source

ALU ALU operation mode

Address bus

Data bus Memory

C

A B

Single Core CPU

and

Con

trol

Uni

t

Dec

ode

Registres : stockage de

mots (16, 32, 64 bits

suivant architecture)

ALU : Unite Arithmetique

et Logique ;

+,-,*,/,ET,OU,XOR,

decalage,. . .

Unite de decodage etcommande : generation

signaux de commande

(operation ALU, routage

des bus A,B et C).

Bus memoire :

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 21 / 84

Page 22: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Architecture ARM : principes

Architecture Interne d’un processeur

R1

R2

R3

IR

...

PCselectionBus source

ALU ALU operation mode

Address bus

Data bus Memory

C

A B

Single Core CPU

and

Con

trol

Uni

t

Dec

ode

Registres

PC (R15) : Programme Counter

adresse de l’instruction en

cours ;

incremente par le CPU ;

(ou IP, instruction pointer)

IR : mot de l’instruction en cours

R1,R2,R3.. R12 : registres a

usages generaux

CPSR : current program status

register

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 22 / 84

Page 23: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Architecture ARM : principes

CSPR register : Program status

mise a jour apres chaque instruction

bits N, Z et V mis a jour suivant le resultat de l’instruction precedente

definit le mode d’operation du processeur

M[0:4]

Data endianness bit

IRQ Disable

Mode bits

04

I

9 7283031

zero

negative/less than

EVZN C

overflow

carry

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 23 / 84

Page 24: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

ISA : Instruction Set Architecture

Jeu d’instructions d’un CPU

Langage machine

langage natif du processeur definit par les concepteurs

seul et unique pour un processeur

un code binaire

l’Assembleur (Assembly language) :

representation symbolique du langage machine

usage de mnemoniques pour faciliter la vie du programmeur

→ non-portable ( 6= langage haut-niveau (C,java))

Exemple :

Saut d’adresse, ”branching” : B chez ARM et JMP chez INTEL

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 24 / 84

Page 25: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

ISA : Instruction Set Architecture

Instruction d’addition sur processeur ARM

doc technique : ADD Rd Rn Rm

Rd=Rn+Rm (Rd : registre destination)

RdRn00000

0121620252831 2126

1c o n d 0 0 shift

3

Rm

Assembleur : ADD R3 R2 R3 − > Langage machine :0xE0823003

000 0 000 0000 0001

0121620252831 2126

0 1 0001 11 0 1100 1100

(cond=1110 signifie ”toujours executer”)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 25 / 84

Page 26: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

PC initialise a 100

initialisation par un autre programme (ou reset du CPU)

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x104 : LDR R3, #2

0x100

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 26 / 84

Page 27: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

Fetch de l’instruction par l’IFU (Instruction Fetch Unit)

adresse de l’instruction donnee par le PC

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x104 : LDR R3, #2

0x100

0x100

R

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204LDR R2, 0x200

LDR R2, 0x200

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 27 / 84

Page 28: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

fin du Fetch : code de l’instruction a executer dans IR

Decodage et preparation du chemin de donnees

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x100

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

LDR R2,0x200

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 28 / 84

Page 29: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

Execution de l’instruction LDR

LDR : load dans le registre Rx une donnee referencee ou une #constante

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

R

Memory

Data bus

Read/Write

0x100

0x0005

0x104 : LDR R3, #2

0x0005

0x200 0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

LDR R2,0x200

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 29 / 84

Page 30: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

fin de l’instruction

Incrementation du PC de 0x004 : pointe sur instruction suivante

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x104 : LDR R3, #2

0x104

0x0005

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

LDR R2,0x200

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 30 / 84

Page 31: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

Fetch de l’instruction suivante

ecrase le contenu de l’IR

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x0005

0x104 : LDR R3, #20x104

R0x104

LDR R3, #2

LDR R3, #2

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 31 / 84

Page 32: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

Decode et Execute l’instruction

LDR : load dans le registre Rx une donnee referencee ou une #constante

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x0005

LDR R3, #2

0x104 : LDR R3, #2

0x0002

0x104

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 32 / 84

Page 33: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

fin de l’instruction : Incremente de 0x004 le PC

Fetch de l’instruction suivante

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R30x10C : STR R3, 0x204

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x0005

0x104 : LDR R3, #2

0x0002

0x108

0x108

ADD R3, R2, R3

R

ADD R3,R2,R3

0x100 : LDR R2, 0x200

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 33 / 84

Page 34: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

execution de l’instruction

ADD Rdest,Ra,Rb : addition Rdest<=Rb+Ra

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x0005

0x104 : LDR R3, #2

ADD R3,R2,R3

0x108

0x05+

0x02

0x0007

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 34 / 84

Page 35: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

Fin instruction : incremente le PC

Fetch instruction suivante

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x00050x204 : 0x????

Memory

Data bus

Read/Write

0x0005

0x104 : LDR R3, #2

0x0007

0x10C

0x10C 0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204STR R3,0x204

STR R3,0x204

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 35 / 84

Page 36: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Illustration : Realisation d’une addition

Execution de l’instruction

STR Rd Add : sauve contenu de Rd a l’adresse Add

...

ALU

Single Core CPU

Address busR1

R2

R3

PC

IR

0x108 : ADD R3, R2, R3

0x200 : 0x0005

Memory

Data bus

Read/Write

0x0005

0x104 : LDR R3, #2

0x0007

0x10C

0x204

W0x204 : 0x0007

0x0007

0x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

STR R3,0x204

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 36 / 84

Page 37: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Processeur ARM Jeu d’instruction et language assembleur ARM

Le pipeline d’execution

execution en parallele d’1 Fetch, 1 Decode et 1 Execution

→ acceleration du debit d’execution : 1 execution d’instruction/cycle

(alors que le traitement d’une instruction : 3 cycles)

Fetch de l’instruction pointee par PC+08 pendant execution de PC

Execute

Execute

Execute

temps(Inst.addr: PC)

(Inst.addr: PC−0x08)

ADD R3, R3, R1

LDR R2, #6

Fetch Decode

Fetch Decode

Fetch Decode

ADD R2, R2, R1...

selectionBus source

ALU ALU operation modeC

A B

and

Con

trol

Uni

t

Dec

ode

PC

IR

R3 R1

R1

R2

R3Data bus

Address bus PC

LDR R2, #6

1 cycle 1 cycle1 cycle

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 37 / 84

Page 38: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions

Plan

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 38 / 84

Page 39: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Definition

Exceptions (et Interruptions)

Definition d’une exception

arret temporaire du flux normal d’instructions pour repondre a un

evenement exceptionnel ou externe

Exception synchrone (”Exception”) : resultat d’une instruction executeepar le processeur generant une erreur

arithmetique : division par 0, debordement (overflow)

memoire : erreur d’alignement, memoire insuffisante, erreur manipulation

pointeur

appel systeme (LINUX) : par l’instruction INT 0x80, une application requiert

un service de l’OS.

Exception asynchrone (”Interruption”) : associee a un evenement issu

d’un peripherique

timers : expiration d’un timer ou un tick (periode) d’horloge systeme

autres peripheriques : touche clavier, clic souris, paquet ethernet,. . .

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 39 / 84

Page 40: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Definition

Interruption

Interruption materielle

interruption : un signal sur la broche (INT) du CPU

declenchant l’execution d’une routine en reponse

(ISR : Interrupt Service Routine)

economie pour le CPU du temps de scrutation des peripheriques

CPU

RAM

CPU

RAM

Entrée−Sortie programmée avec attente de disponibilité Entrée−Sortie programmée avec interruption

INT

INT

1

INT

2

PIC

Scrutation périodique par le CPUde l’état du périphèrique

I/O (1)

I/O (2)

I/O (2)

I/O (1)

controleur

controleur

controleur

controleur

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 40 / 84

Page 41: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Definition

Interruption

Exemple : Clavier PS2

si une touche est enfoncee ou relachee

le controleur du clavier :

ecrit dans un de ses registres le code de la touche

genere une interruption

le CPU notifie arrete le processus en cours et execute une routine

d’interruption qui consiste a venir lire la valeur de la touche dans le

registre

interrupteur sur GPIO

Activation interrupt GPIO 7 :

echo 07 > /sys/class/gpio/export

echo rising > /sys/class/gpio/gpio7/edge

cat /proc/interrupts pour visualiser

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 41 / 84

Page 42: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Controleur d’interruptions

Gestion des interruptions

plusieurs peripheriques et interruptions (eventuellement simultanees)

le CPU ne peut executer qu’un ISR a la fois

probleme de concurrence

solution : un controleur d’interruption

priorites pour les interruptions (arbitrage de la concurrence)

interruption presentee une a la fois au CPU

masquer les interruptions non-prioritaires mais les memoriser (buffer)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 42 / 84

Page 43: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Controleur d’interruptions

Un controleur programmable d’interruptions (PIC) : le 8259

utilise par le PC IBM et ses successeurs, peut etre mis en cascade

priorite par ordre decroissant (0(+prioritaire),2,...,7(-))

3 registres :

1 contenant l’interruption actuellement traitee par le CPU

1 contenant les interruptions pas encore traitees (de priorite inferieure)

1 contenant les interruptions a masquer (celle dont le CPU ne veut pas)

8259A Interrupt controller

CPU

D0-D7

CS

A0WR

INTA

RD

INT IR0

IR1

IR2

IR3

IR4

IR5

IR6

IR7

+5 v

Keyboard

Clock

Disk

Printer

Source : Architecture des ordinateurs, Tanenbaum

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 43 / 84

Page 44: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Vecteur d’interruption

1 exception = 1 routine ISR a une adresse memoire donnee

(cette adresse est appellee le vecteur d’interruption)

le numero d’exception/interruption sert d’indice dans la table desvecteurs d’interruption pour trouver l’adresse memoire ou se trouve

l’ISR

Exemple sur architecture i386

un registre du processeur IDTR (INT Descriptor Table Register) stocke en

permanence l’adresse en memoire de la table des vecteurs d’interruption

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 44 / 84

Page 45: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Exception et interruption

Traitement complet

1 sauvegarde du contexte,l’etat actuel du processeur ;

(souvent, dans la pile d’execution de la tache en cours)

2 chargement du vecteur d’interruption (adresse ISR) dans le registre PC

3 execution de l’ISR

4 recharger contexte anterieur (etat du processeur avant INT)

5 reprise execution du programme

traitement rapide, changement de contexte minimal effectue par le

materiel

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 45 / 84

Page 46: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

interruption la plus elevee presentee sur broche INT du CPU

le traitement d’une exception synchrone est similaire

PIC...

ALU

Single Core CPU

Address bus

Data bus

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

0x108

4

74

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204LDR R3,#2

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

0x404

...

Pile du processus en cours

Table des vecteurs d’int

...

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 46 / 84

Page 47: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

PC du processus interrompu pousse sur la pile par le materiel

adresse de sommet de la pile stockee dans registre SP

PIC...

ALU

Single Core CPU

Address bus

Data bus

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

0x108

4

74

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204LDR R3,#2

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

0x40

...

Pile du processus en cours

Table des vecteurs d’int

SP+0x04: 0x408

PC: 0x108

...0x408: 0x108 (PC)

8

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 47 / 84

Page 48: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

table des vecteurs d’int. stockee a l’adresse contenue dans IDTR

cherche dans la table, l’entree du numero d’INT (4)

PIC...

ALU

Single Core CPU

Data bus

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

0x108

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204LDR R3,#2

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

0x40

...

Pile du processus en cours

...0x408: 0x108 (PC)

Address bus

0xFF10

0

Table des vecteurs d’int

1...

No

0xFF10: 0x64C

8

4

4

7

4

IDTR+(0x4)* 4

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 48 / 84

Page 49: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

l’entree contient le vecteur d’int. (adresse du gestionnaire de l’int.(ISR))

PC <= vecteur d’interruption

PIC...

ALU

Single Core CPU

Data bus

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204LDR R3,#2

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

0x40

...

Pile du processus en cours

...0x408: 0x108 (PC)

Address bus

4

0

Table des vecteurs d’int

1...

No

0xFF10

0x64C0x1080x64C

0x64C: PUSH R1...

0x670: IRETx86)(asm

4

4

7

8

0xFF10: 0x64C

le vecteur d’INT:adresse de l’ISR

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 49 / 84

Page 50: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

execution de l’ISR (l’instruction pointee par PC)

PIC...

ALU

Single Core CPU

Data bus

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

0x40

...

Pile du processus en cours

...0x408: 0x108 (PC)

Address bus

4

0

Table des vecteurs d’int

1...

No

0xFF10: 0x64C

0x64C: PUSH R1...

0x670: IRET

0x64C

0x64C

PUSH R1

(pile utilisable par ISR)

ISR codex86)

(asm

PUSH R1

7

48

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 50 / 84

Page 51: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

dans l’ISR, acces au peripherique pour lever l’INT

ISR se finit par l’instruction IRET (x86)

PIC...

ALU

Single Core CPU

Data bus

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

0x40

...

Pile du processus en cours

...0x408: 0x108 (PC)

Address bus

4

0

Table des vecteurs d’int

1...

No

0xFF10: 0x64C

0x64C: PUSH R1...

0x670: IRET ISR codex86)

(asm

0x670 IRET

IRET

7

8

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 51 / 84

Page 52: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

IRET : reprendre le processus initial (PC<= valeur avant l’int.)

le PC initial en memoire au sommet de la pile (adresse contenu dans SP)

PIC...

ALU

Single Core CPU

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

...

Pile du processus en cours

...0x408: 0x108 (PC)

Address bus

4

0

Table des vecteurs d’int

1...

No

0xFF10: 0x64C

0x64C: PUSH R1...

0x670: IRET ISR codex86)

(asm

Data bus

0x408

0x108 (PC)

0x408

IRET

0x108

7

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 52 / 84

Page 53: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Exceptions et Interruptions Controleur d’interruptions et traitement

Traitement de l’interruption

SP pointe vers le nouveau sommet de la pile

le processus peut reprendre (mais il reste l’int 7 a traiter)

PIC...

ALU

Single Core CPU

IDTR

IR

PC

R1, R2, ....

SP

0xFF00

INTPériph.

0x108 : ADD R3, R2, R3

Memory

0x104 : LDR R3, #20x100 : LDR R2, 0x200

0x10C : STR R3, 0x204

0xFF00: 0x844

...

0x204 :0x200 : 0x0005

...

...

0x400: 0x00030x404: 0x040

...

Pile du processus en cours

...

Address bus

4

0

Table des vecteurs d’int

1...

No

0xFF10: 0x64C

0x64C: PUSH R1...

0x670: IRET ISR codex86)

(asm

Data busIRET

0x108

0x404

0x408: 0x1087

0x108 ?

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 53 / 84

Page 54: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

Plan

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 54 / 84

Page 55: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

Problematique d’un systeme multi-tache

Des processus mais 1 memoire : Et si la place est occupee ?

code dependant de sa position en memoire

(adresses absolues des donnees)

Main Memory (RAM)

(Hard Disk Drive)

Secondary Memory

./prog

@start_:

section memory addr

0x18

ELF Header

Programm Header

.text

07 00 00 000e 00 00 00

.data

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x3F

0x30

.data

addl (%ebx), %eaxmovl $0x32, %ebx

addl (%ebx), %eax.text

movl $0x32, %ebxcompl %edx, $0jne 0x08movl $1, %eaxmovl $2, %ebxsubs %eax, %edx

0x30

08 4F E1 C5

4F 23 A3 00

./program2

./program3

?

movl , %eax0x30

movl , %eax0x30

0x18

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 55 / 84

Page 56: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

Gestion de la memoire

Problematique de lareallocation dynamique

comment positionner les

processus en memoire ?

comment obtenir un bloc

contigue pour un malloc

sans retasser ? d’exploitation

Systèmed’exploitation

Système

Processus A

Processus B

Processus H

000

10K

100K

280K

900K

1M

Processus H

Processus A

Processus B

000

70K

270K

580K

900K

1M

Retassement par réallocation

dynamique

Mémoire après un temps

de fonctionnement

(libre)

(libre)

2 solutions possibles utilisant une translation d’adresse :

la segmentation

la pagination

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 56 / 84

Page 57: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination :Principe

1 1 table de correspondance entre :

adresse logique (@logique/virtuelle) du Code/Data dans l’executable ELF

adresse physique (@physique) ou il est effectivement en memoire

0x08

0x00

0x10

0x18

0x20

0x28

0x38

addl (%ebx), %eaxmovl $0x32, %ebx

0x30

movl 0x30, %eax

07 00 00 00

0e 00 00 00

0x3C

ProcessusMémoire Logique/Virtuelle

0x3F

@physique@logique

0x08

0x00

0x10

0x18

0x20

0x28

0x30

0x10

0x140x20

0x380x3C

0x04

0x0C

0x14

0x1C

0x24

0x2C

0x340x380x3C

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x30

Processus A

Processus B

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

addl (%ebx), %eax

Memoire Physique (RAM)

Processus B

0x3C 0x3F

Chargmement du programme et céation table correspondanceLoıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 57 / 84

Page 58: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Principe

1 Translation d’adresse pour toute lecture/ecriture d’un code/donnee

(Exemple : Fetch de la premiere instruction du programme)

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x3F

0x30

0x3C

Processus A

Processus A

Processus B

Processus B

addl (%ebx), %eax

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Memoire Physique (RAM)

PC

EAX

ECX

0x18

@start_: 0x18

0x10

@physique@logique

0x08

0x00

0x10

0x18

0x20

0x28

0x30

0x10

0x140x20

0x380x3C

0x04

0x0C

0x14

0x1C

0x24

0x2C

0x340x380x3C

0x18EBX

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 58 / 84

Page 59: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Principe

1 Translation d’adresse pour toute lecture/ecriture d’un code/donnee

(Exemple : lecture d’un operande)

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x3F

0x30

0x3C

Processus A

Processus A

Processus B

Processus B

addl (%ebx), %eax

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Memoire Physique (RAM)

PC

EAX

0x18

@physique

movl 0x30,%eax

@logique

0x08

0x00

0x10

0x18

0x20

0x28

0x30

0x10

0x140x20

0x380x3C

0x04

0x0C

0x14

0x1C

0x24

0x2C

0x340x380x3C

0x30 0x38

Read

EBX

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 59 / 84

Page 60: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination

Deplacement de code/donnee en memoire physique

1 deplacement et mise-a-jour table

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x3F

0x30

0x3C

Processus A

Processus A

Processus B

Processus B

addl (%ebx), %eax

0e 00 00 00

07 00 00 00

Memoire Physique (RAM)

PC

EAX

Read

movl 0x30, %eaxmovl $0x32, %ebx

@physique@logique

0x08

0x00

0x10

0x18

0x20

0x28

0x30

0x10

0x140x20

0x380x3C

0x04

0x0C

0x14

0x1C

0x24

0x2C

0x340x380x3C

0x08

0x0C

EBX

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 60 / 84

Page 61: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination

Avantage

programme utilise des @virtuelles contigues

↔ a des adresses physiques non-contigue

deplacement en RAM du code/donnees

= quelques ligne de la table a updater.

Inconveniant

la table de correspondance aussi grande que la memoire physique RAM !

(si une adresse=32bits)

gestion lourde de la memoire

Solution

Deplacement du code/donnee par paquet de 2, 4, ou 2n octets

Table de correspondance entre @logique et @physique du paquet

Taille de la Table divisee par 2, 4 ou 2n→ gestion plus legere

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 61 / 84

Page 62: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination

Table de pages

blocs (ici de tailles 23 octets) sont appelles pages

0x08

0x00

0x10

0x18

0x20

0x28

0x38

addl (%ebx), %eaxmovl $0x32, %ebx

0x30

movl 0x30, %eax

07 00 00 00

0e 00 00 00

0x3C

ProcessusMémoire Logique/Virtuelle

Numérode page

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

01234567

Pagephysiquevirtuelle

Page

Table des pages

42

7

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x30

0x3C

Processus A

Processus B

Processus B

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Numérode page

addl (%ebx), %eax

Memoire Physique (RAM)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 62 / 84

Page 63: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Memoire virtuelle

Memoire virtuelle

Possible de ne charger que le debut du programme si manque de place

Un bit indique dans la table si la page est chargee ou non

0

1

2

3

4

5

6

7

0x08

0x00

0x10

0x18

0x20

0x28

0x38

addl (%ebx), %eaxmovl $0x32, %ebx

0x30

movl 0x30, %eax

07 00 00 00

0e 00 00 00

0x3C

ProcessusMémoire Logique/Virtuelle

Numérode page

0

1

2

3

4

5

6

7

01234567

Pagephysiquevirtuelle

Page

Table des pages

2

7 1

10

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x30

0x3C

Processus A

Processus B

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Numérode page

Memoire Physique (RAM)

Processus A

Processus A

Processus B

Processus B1:page présente0:page absente

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 63 / 84

Page 64: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Memoire virtuelle

Memoire virtuelle : besoin de charger la suite ?

la page non chargee mise temporairement sur une memoire secondaire

0

1

2

3

4

5

6

7addl (%ebx), %eax (3)

01

2

34

56

7

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x30

0x3C

Processus A

Processus B

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Numérode page

Memoire Physique (RAM)

Processus A

Processus A

Processus B

Processus B

1:page présente0:page absente

Pagephysiquevirtuelle

Page

2

7 1

10

Table des pages

(Disque Dur)Memoire Secondaire

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 64 / 84

Page 65: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Memoire virtuelle

Memoire virtuelle : besoin de charger la suite ?

un programme demon (kswapd sous linux) libere des pages :

si un programme requiert une page non chargee (”defaut de page”)

si la memoire est presque pleine (retire vieilles pages)

0

1

2

3

4

5

6

7addl (%ebx), %eax (3)

01

2

34

56

7

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x30

0x3C

Processus A

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Numérode page

Memoire Physique (RAM)

Processus A

Processus A

Processus B

Processus B

1:page présente0:page absente

Pagephysiquevirtuelle

Page

2

7 1

10

Table des pages

Processus B

swap area

Memoire Secondaire(Disque Dur)

Kswapd

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 65 / 84

Page 66: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Memoire virtuelle

Memoire virtuelle : besoin de charger la suite ?

chaque processus a sa table de pages

on met a jour les 2 pages de tables

0

1

2

3

4

5

6

7

01

2

34

56

7

0x08

0x00

0x10

0x18

0x20

0x28

0x38

0x30

0x3C

Processus A

movl 0x30, %eaxmovl $0x32, %ebx

0e 00 00 00

07 00 00 00

Numérode page

Memoire Physique (RAM)

Processus A

Processus A

Processus B

Processus B

swap area

Memoire Secondaire(Disque Dur) Processus B

addl (%ebx), %eax

Page

3

Table des pages de B

Pagephysiquevirtuelle

0

1:page présente0:page absente

Pagephysiquevirtuelle

Page

2

7 1

1

Table des pages

13

5 1

6 1

01

2

34

56

71:page présente0:page absente

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 66 / 84

Page 67: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

La pagination : Memoire virtuelle

Avantages

Code et Donnees du programme dynamiquement relogeables en

memoire

Memoire virtuelle : Taille des programmes en cours > taille de la memoire

Utilisation du disque comme stockage secondaire

Inconveniants

Une architecture plus complexe : necessite une unite specifique pour

gerer la table de pages et faire les calculs d’adresses

Temps d’acces non deterministe a la memoire : si la page requise n’est

pas en memoire mais sur le disque (page default)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 67 / 84

Page 68: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Gestion de la memoire (pagination)

Unite de Gestion de la memoire (MMU)

circuit imprime distinct ou inclus dans le processeur

dedie aux traductions d’adresse par segmentation ou pagination

une logique importante (jusqu’a 30% de la surface du processeur)

au niveau materiel, elle contient :

logique de conversion des adresses virtuelles en adresses physiques

logique de verification de la validite de l’adresse (sinon segfault) ou

disponibilite de la page en RAM.

memoire cache associative TLB (Translation Lookaside Buffer) contenant la

portion la + utilisee de la table des pages (reduit les acces plus lent a la

table de pages en RAM.)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 68 / 84

Page 69: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O)

Plan

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 69 / 84

Page 70: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O)

Rappel : Architecture des cartes-meres

Northbridge

controleur memoire

(rafraıchissement, selection,.)

bande passante elevee

compatibilite limite avec 1 type de

memoire et 1 CPU

terminologie Intel : Graphics and

Memory Controller Hub (GMCH)

Southbridge

dedie aux bus de moindres debits

peut inclure : DMA, RTC, PIC

terminologie Intel : I/O Controller

Hub (ICH).

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 70 / 84

Page 71: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O)

Entrees-sorties

interaction entre CPU et peripheriques (monde externe)

entre registres du controleur d’un periph. et le CPU

2 strategies : adressage par port dedie ou par mappage en memoire

mémoire

0

0x6E

0

0xFFFF

0

0xFFFF

I/O ports

physiquephysique

mémoire

I/O registres mappées en mémoireI/O registres par adresse de port

0xF140

Plage réservéeI/O

0xF400

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 71 / 84

Page 72: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O par port

I/O par port

broche I/O du CPU active − > @ sur le bus = @ d’un port (et non

memoire)

instructions lecture/ecriture : IN, OUT (asm) ou inb,outb (en C)

adresses de ports liees a la conception de la carte mere

cat /proc/ioport permet de lister les ports existants

CPU

IO/M

MemoryNorthBridge

Address Bus

PortSerial

S I/O controller

I/O

0x3F8

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 72 / 84

Page 73: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O par port

I/O par port

(source :

linux device drivers, 3eme edition)

Exemple : portparallele

12 broches sortie

et 5 broches en entree

le niveau electrique de

la broche

= la valeur du bit du

registre

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 73 / 84

Page 74: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O par port

I/O par port

2

10000000

+

(source : linux device drivers, 3eme edition)

#define PORT 0x378

main{

ioperm(PORT,2,1);

//demande acces (1=acces on)

//a 2 octets a partir

// de l’@ de port PORT

outb(0x1,PORT);

//ecriture sur port

//de la valeur 1

}

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 74 / 84

Page 75: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O mappees en memoire

I/O mapping

des @ memoires physiques sont detournees par la carte mere vers des

registres des peripheriques

memoire pas accessible sur ces adresses

sur architecture intel 32 bits :

la plage ≈ 3.5Go − >4Go reservee pour I/O

si plus de 3.5 Go installes, cette RAM est inutilisable (non adressable)

CPU

Memory

Address Bus

0x0000

0xFFFF0xFF4A

PCI device controller

Data Bus

bridge

South

NorthBridge

TOLUD<0xFF4A<0xFFFF

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 75 / 84

Page 76: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O mappees en memoire

I/O mapping

adresses physiques reserves aux I/O

voir la documentation de la carte-mere ou du Soc.

cat /proc/iomem : liste les zones memoires reservees

lspci -v : liste peripheriques pci et adresses physiques des registres

mappes (et port)

acces et lecture/ecriture (Drivers Linux)

Le noyau et les processus utilisent des @ virtuelles et non physiques !

(void*)add_virtuel ioremap( (void*)add_phys, length)

demande une @ virtuelle mappee/correspondant a l’@ physique

lecture ecriture ensuite avec :

ioread((void*)add_virtuel) et iowrite(value,(void*))

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 76 / 84

Page 77: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O mappees en memoire

I/O mapping

acces et lecture/ecriture (Process utilisateur)

Le periherique /dev/mem est une image de la memoire physique (RAM)

(void*) mmap(NULL, length, , ,fd, offset)

demande une @ virtuelle mappee/correspondant a l’@ offset de la

memoire/fichier fd

lecture et ecriture via le pointeur dans memoire/registre du peripherique

length et offset doivent etre des multiples de la taille des pages

avantage : acces direct a la memoire (memoire peripherique)

risque : acces non protege et concurrent possible.

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 77 / 84

Page 78: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O mappees en memoire

I/O mapping

Exemple avec les gpios du RPi

D’apres /proc/iomem et la doc du Soc :

Adresse phy Description Size RW

0x20200000 GPIO function select0 32 RW

0x2020001C GPIO Pin Output Set 0 32 W

0x20200028 GPIO Pin Output Clear 0 32 W

0x20200034 GPIO Pin Level 0 32 R

GPIO Pin Output Set : chaque bit represente un GIPO, un bit ecrit a 1

allume le GPIO

GPIO Pin Output Clear : idem mais met a 0 le GPIO

voir exemple gpio_direct.c

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 78 / 84

Page 79: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Les entrees-sorties (I/O) I/O mappees en memoire

I/O par ports et mappees en memoire

Comparatif

I/O port

+ adressage separe : plage

d’adresses memoires complete

+ si CPU a 1 petit bus d’adresses

+ instruction specifique : lisibilite

code

- hardware supplementaire

(logique + broche CPU)

I/O mappee en memoire

+pas de logique pour les ports sur

CPU (prix,simplicite)

+meme instruction qu’un acces

memoire (RISC)

-occupe des adresses memoires

(ou il peut y avoir de la RAM)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 79 / 84

Page 80: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Le temps : Horloge et Timers

Plan

1 Raspberry

2 Processeur ARM

Architecture ARM : principes

Jeu d’instruction et language assembleur ARM

3 Exceptions et Interruptions

Definition

Controleur d’interruptions et traitement

4 Gestion de la memoire (pagination)

5 Les entrees-sorties (I/O)

I/O par port

I/O mappees en memoire

6 Le temps : Horloge et Timers

L’horloge temps reel

Les timers

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 80 / 84

Page 81: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Le temps : Horloge et Timers

La gestion du temps

Planification d’actions dans le futur

travaux periodiques (reordonnancement des taches, pooling)

travaux a echeances (timer decremente jusque 0)

Timers

materiels : composant electronique (quartz), generateur d’INT, µs.

logiciels : registres decrementes, reduction charge processeur

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 81 / 84

Page 82: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Le temps : Horloge et Timers L’horloge temps reel

L’horloge temps reel ou Real-time Clock (RTC)

quartz 32.768 kHz (maximum≈30MHz)

alimentation : batterie lithium ou supercondensateur

avantages :

independante du reste du systeme (1 utilisation : reveil programme)

sauvegarde de l’heure et du jour en absence d’alimentation

inconvenients :

consultation lente (I/O)

resolution faible (ms : milliseconde)

Circuit integre RTC Puce southbridge (RTC inclus)

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 82 / 84

Page 83: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Le temps : Horloge et Timers Les timers

Les timers

Programmable Interrupt Timer (PIT)

compteurs programmables en mode one-shot ou periodique

resolution temporelle : µs

un des compteur est utilise comme ”timer systeme”

le timer systeme genere l’INT de plus haute priorite : l’INT timer (IRQ 0)

Ex : puce intel 825x, inclus dans le southbridge a l’adresse I/O : 0x40-43

Time Stamp Counter (TSC)

compteur (registre) 64 bits interne au CPU ix86

incrementation de 1 a chaque signal d’horloge CPU

190 ans pour le remplir a 3GHz, resolution : nanosecondes (ns)

accessible par une instruction processeur (asm) ”RDTSC”

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 83 / 84

Page 84: Architecture des ordinateurs - unistra.fr · 2015. 11. 29. · Architecture des ordinateurs Lo¨ıc Cuvillon Telecom Physique Strasbourg 11 novembre 2015 Lo¨ıc Cuvillon (TPS) Systemes

Le temps : Horloge et Timers Les timers

Timers

Linux : usage des timers

variable kernel jiffies

variable 32 bits

incrementee a chaque interruption timer

(pour linux, a defini a la compilation du kernel)

utilisee par le noyau et pour la frequence de reordonnancement des threads

usage noyau : void init timer (struct timer list* timer) et scheduler tick()

usage user : clock gettime()

registre TSC

la meilleur resolution (ns)

usage : rtdsc(low,high), lecture en 2 variable 32 bits du TSC

utilise par le Linux temps reel Xenomai sur architecture intel386

Loıc Cuvillon (TPS) Systemes temps reel et systemes embarques Annee scolaire 2010-2015 84 / 84