2015-09-07 2 views
3

Pour le processeur RISC-V Rocket, quel type de stratégie d'écriture les caches utilisent-ils (par exemple, Write Back + Allocate, Write Through + No Allocate)? Comment les caches L1 sont-ils cohérents avec les caches L2 de RISC-V?RISC-V Rocket Cache Coherence

Répondre

3

RISC-V est un ISA (architecture d'ensemble d'instructions), pas un processeur. Ainsi, l'ISA n'a rien à dire sur les politiques de réécriture de cache ou la conception de cohérence. Ces décisions sont laissées aux équipes de conception de processeurs individuels. En fait, ils n'ont même pas besoin de caches.

La seule chose que RISC-V a à dire à propos de la mémoire est le "modèle de cohérence mémoire". RISC-V utilise un modèle de cohérence assez relaxé, et il est donc possible que deux threads RISC-V voient deux séquences/entrelacements d'opérations de mémoire différentes (par opposition à la "cohérence séquentielle" où tous les threads voient le même entrelacement).


Modifier (maintenant que la question précise qu'il ne se pose sur le processeur Rocket Berkeley):

à partir de 2015 le 9 septembre le cache L1 de Rocket est en écriture différée + allocation. Les L1 sont gardés cohérents via les requêtes snoop. Chaque noyau Rocket se trouve sur un "Rocket Tile" qui contient un L1.

Un L2 optionnel se trouve à l'extérieur des carreaux Rocket. Les carreaux de fusée arbitrent l'accès au seul L2. Le L2 est inclusif et contient toutes les données L1. Cependant, le L2 peut contenir des données périmées, mais si un noyau demande ces données, le L2 saura quel L1 détient la copie courante des données et enverra une demande de libération selon le cas.

+1

Ah, désolé, je voulais dire le processeur Rocket. –

+0

D'accord, mise à jour de la réponse. – Chris