Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Système intégré
Exemple de système : iPhone (OMAP 3430)
OMAP-L138 Low-Power Applications Processor
JTAG Interface ARM Subsystem DSP Subsystem
16 KB
I-Cache
16 KB
D-Cache
32 KB
L1 Pgm
32 KB
L1 RAM
256 KB L2 RAM
1024 KB L2 ROM
8 KB RAM
(Vector Table)
64 KB ROM
Internal Memory
128 KB
RAM
Switched Central Ressources
Serial Interface Display
LCD
Ctrl
External Memory InterfacesConnectivity
Control Timers
DMA Audio Ports
EDMA
(x2)
ARM926 C674x
4KB IET AET
Power/Sleep
Controller
Input
Clock(s)
System Control
McASP
w/FIFO
PLL/Clock
Generator
General
Purpose
Timer (x3)
Peripherals
RTC/
32-kHz
OSC
McBSP
(x2)
SPI
(x2)
UART
(x3)
I2C
(x2) VPIF uPP
Video Parallel Port
USB
2.0
USB
1.1 SATA
MDIO MMC/SD Flash
NAND
DDR2
Controller
EMAC
10/100
MB/s
ePWM
(x2)
eCAP
(x3) HPI
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Système intégré
Plan mémoire du L138 - en partie
Start Address End Address Size ARM Mem DSP Mem Map EDMA Master
Map Mem Map Peripheral
Mem Map
0x0000 0000 0x006F FFFF Reserved
0x0070 0000 0x007F FFFF 1024K DSP L2 ROM
0x0080 0000 0x0083 FFFF 256K DSP L2 RAM
0x0084 0000 0x00DF FFFF Reserved
0x00E0 0000 0x00E0 7FFF 32K DSP L1P RAM
0x00E0 8000 0x00EF FFFF Reserved
0x00F0 0000 0x00F0 7FFF 32K DSP L1D RAM
0x0000 0000 0x006F FFFF Reserved
0x.... .... 0x.... .... ........
0x01BC 0000 0x01BC 0FFF 4K ARM ETB Reserved
memory Reserved
0x01BC 1000 0x01BC 17FF 2K ARM ETB Reserved
reg Reserved
0x01BC 1800 0x01BC 18FF 256 ARM Ice Reserved
Crusher Reserved
0x01BC 1900 0x01BF FFFF Reserved
0x01C0 0000 0x01C0 7FFF 32K EDMA3 CC
0x01C0 8000 0x01C0 83FF 1K EDMA3 TC0
0x01C0 8400 0x01C0 87FF 1K EDMA3 TC1
0x01C0 8800 0x01C0 FFFF Reserved
0x01C1 0000 0x01C1 0FFF 4K PSC 0
0x01C1 1000 0x01C1 1FFF 4K PLL Controller 0
0x01C1 2000 0x01C1 3FFF Reserved
0x01C1 4000 0x01C1 4FFF 4K SYSCFG0
0x01C1 5000 0x01C1 FFFF Reserved
0x01C2 0000 0x01C2 0FFF 4K Timer0
0x.... .... 0x.... .... ........ 8 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Jeu d’instructions
Contenu de la mémoire
Tout est affaire d’interprétation !
cf cours numéro 1
données de tous types
instructions
Instructions
Suite de noctets
interprétés par le matériel
précisant :
les opérations à effectuer et leurs opérandes
opération op_dest, op_src1, op_src2, ...
le séquencement entre instructions
par défaut l’instruction suivante
9 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Jeu d’instructions
Ressources
Opérateurs
Unités fonctionnelles usuelles : ALU (+,−,∨,∧,⊕, ...)
Unités plus complexes : ×,÷,≡,2
√, ...
Entières ou « flottantes »
Opérandes
registres
cases mémoires
10 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Jeu d’instructions
Registres
Toujours
pointeur de programme (program counter ou PC) :
adresse de l’instruction en cours d’exécution ou à exécuter
registre d’état : flags, interruptions, exceptions, etc.
Spécifiques
accumulateur : registre destination des opérations de l’ALU
pointeur de pile : indique base de la pile
Utile pour les appels de fonctions
Généralistes
registres à usage général : organisés en « banc de registres »
peuvent être utilisés comme accumulateurs et pointeur de pile
en fonction des processeurs
11 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Jeu d’instructions
ISA vs ABI
ISA : Instruction Set Architecture
définition de l’ensemble exhaustif des instructions supportées par le
processeur :
sémantique : ce que fait l’instruction
syntaxe : comment spécifier l’instruction et ses opérandes
ABI : Application Binary Interface
définition de l’usage des instructions pour un compilateur :
convention d’utilisation des registres
convention d’appel de fonction
détaillé dans le cours de logiciel de base
12 / 22