Accueil

Première partie : RISC vs CISC et la mémoire cache.

RISC vs CISC

1) Qu'est ce qu'un processeur ?

Pour rappel, le processeur (ou CPU de l'anglais Central Processing Unit, « Unité centrale de traitement ») est le composant de l'ordinateur qui exécute les instructions des programmes informatiques. Avec la mémoire notamment, c'est l'un des composants qui existent depuis les premiers ordinateurs et qui sont présents dans tous les ordinateurs. Un processeur construit en un seul circuit intégré est un microprocesseur.

Un processeur est défini par son architecture et ses caractéristiques (qui sont variables même entre processeurs compatibles). L'architecture d'un processeur est liée à son jeu d'instruction ; la largueur de ses registres internes de manipulation de données (c'est-à-dire 8, 16, 32, 64 ou 128 bits) et leur utilisation ; les spécifications des entrées et sortie, de l’accès à la mémoire.
Les caractéristiques d'un processeurs sont sa micro-architecture ; la cadence de son horloge exprimée en mégahertz ou en gigahertz ; sa finesse de gravure exprimée en nanomètres ; le nombres de noyaux de calculs, de cœurs en somme.
Les microprocesseurs sont classé en plusieurs grandes catégories dont les deux les plus importantes sont les RISC et les CISC

2) RISC et CISC ?
Les processeurs de ces deux catégories se distinguent par la conception de leurs jeux d'instructions.

RISC signifie Reduced Instruction Set Computer. Les processeurs RISC possèdent un jeu d'instructions plus simple, réduit où chaque instruction effectue une seule opération élémentaire. Le jeu d'instructions d'un processeur RISC est plus uniforme. Toutes les instructions sont codées sur la même taille et toutes s'exécutent dans le même temps, donc plus rapidement. On retrouve dans cette catégorie de microprocesseurs : Alpha (DEC) ; PowerPC (Motorola) ; MIPS ; PA-RISC (Hewlett-Packard) ; SPARC

CISC signifie Complex Instruction Set Computer. Son jeu d'instruction est aussi proche que possible d'un langage de haut niveau, il est plus complexe. Chacune de ces instructions peut effectuer plusieurs opérations élémentaires comme charger une valeur en mémoire, faire une opération arithmétique et ranger le résultat en mémoire. Cette catégorie comprend les microprocesseurs suivant : S/360 (IBM) ; VAX (DEC) ; 68xx, 680x0 (Motorola) ; x86, Pentium (Intel)

LA MEMOIRE CACHE

1) Qu'est-ce que la mémoire cache ?
La mémoire cache fait son apparition vers les années 80, elle placée près du processeur, voire greffée sur ce dernier. Elle fait office de tampon entre le processeur et la mémoire vive.
Étant encore plus rapide (10 fois plus rapide) que la RAM, le processeur s'en sert pour stocker les données auxquelles il accède particulièrement souvent, réduisant d'autant le temps de latence entre deux requêtes.
Cependant, la mémoire cache a une capacité beaucoup plus limitée, notamment pour une question de prix. Elle est souvent très coûteuse car afin d'être la plus rapide possible, les concepteurs d'architecture informatique choisissent des technologies haut de gamme.

2) Quel est son fonctionnement ?
D'abord, l'élément demandeur (microprocesseur) demande une information. Suite à cette demande le cache va vérifier s'il possède cette information. Si oui, il la retransmet au microprocesseur. On parle de « cache hit », c'est-à-dire succès de cache. S'il ne possède pas l'information, le cache la demande à l'élément fournisseur (la mémoire vive par exemple). On parle alors de « cache miss », c'est-à-dire défaut de cache.
L'élément fournisseur traite la demande et renvoie la réponse au cache. Le cache stocke l'information reçue pour une utilisation ultérieure et la retransmet à l'élément demandeur au besoin.
Si les mémoires cache permettent d'accroître les performances, c'est en partie grâce à deux principes qui ont été découverts suite à des études sur le comportement des programmes informatiques :
⁃ le principe de localité spatiale qui indique que l'accès à une donnée située à une adresse X va probablement être suivi d'un accès à une zone très proche de X. C'est évidemment vrai dans le cas d'instructions exécutées en séquence.
⁃ le principe de localité temporelle qui indique que l'accès à une zone mémoire à un instant donné a de fortes chances de se reproduire dans la suite immédiate du programme. C'est évidemment vrai dans le cas des boucles de quelques instructions seulement.
Il peut y avoir de nombreux caches pour un seul processeur, chacun pouvant se spécialiser dans un jeu d'instruction particulier. Un cache peut même être placé entre le processeur et un autre cache, si cela peut servir les performances. Ainsi, plus le processeur est rapide, plus il profitera d'un grand nombre de mémoires caches - sans quoi ses capacités ne pourront être exploitées au mieux.