Cycles/coût pour la L1 Cache hit vs Inscrire sur x86?

Je me souviens en supposant que la L1 cache est de 1 cycle (c'est à dire identique à enregistrer le temps d'accès) dans ma classe architecture, mais est-ce réellement vrai sur les processeurs x86 modernes?

Combien de cycles a un cache L1 frappé prendre? Comment se comparent à l'accès de registre?

  • Il varie en fonction du processeur, mais je ne sais pas du tout où il est tout à fait aussi rapide qu'un registre -- autour de 1 à 5 horloges plus lent est assez typique.
  • Je ne sais pas du tout les architectures où L1 a un seul cycle de latence. Aussi, je ne sais pas du tout les architectures x86 où l'accès de registre mesurable de latence en lui-même (un temps de latence peut être perçue en raison d'autres facteurs).
  • Voir 7-cpu.com/cpu/Haswell.html: certains par-cache et par-TLB latence chiffres et certains expérimentale numéros. Voir aussi Agner de la Brume microarch pdf, et d'autres liens dans le x86 balise wiki. Haswell L1 de charge-utilisation de latence est de 4 cycles, ce qui est typique de moderne les Processeurs x86. Magasin de recharge temps de latence est de 5 cycles, et sans rapport avec cache frappé ou manquer (c'est le magasin d'expédition, pas de cache). Comme harold dit, l'accès de registre est 0 cycles (par exemple inc eax a 1 cycle de latence, inc [mem] a 6 cycle de latence (ALU + magasin de transfert).
InformationsquelleAutor Mehrdad | 2012-04-23