Memoria cache: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Corretto: "adottati"
chiarimento su Register renaming
Riga 186:
 
== Cache multi-banco (''multi-bank'') e multi-porta (''multi-ported'') ==
Le architetture '''''[[:en:Superscalar|Superscalar processor]]''''' (processori superscalari = multi unità operative) sono in grado di eseguire simultaneamente istruzioni in parallelo (sfruttando il parallelismo intrinseco delle istruzioni ''[[stream (informatica)|stream]] / [[multithread]]'' - flusso continuo/multi ramificazioni). In questo genere di processori ci sono diversi unità funzionali dello stesso tipo con dei circuiti addizionali per il "dispaccio" delle istruzioni alle varie unità. Nella maggior parte di questi sistemi "superscalar" includono più di un'unità aritmetica-logica (unità per operazioni aritmetiche e logiche). Per esempio in [[POWER3|IBM POWER3]]<ref>RS/6000 Scientific and Technical Computing: POWER3 Introduction and Tuning Guide - {{cita web |url=https://www.redbooks.ibm.com/redbooks/pdfs/sg245155.pdf |titolo=Copia archiviata |accesso=27 luglio 2006 |urlmorto=sì |urlarchivio=https://web.archive.org/web/20060721115557/http://www.redbooks.ibm.com/redbooks/pdfs/sg245155.pdf |dataarchivio=21 luglio 2006 }} (Ch. 2.1 pp. 7-8)</ref> sino a otto istruzioni, due floating point (virgola mobile), due load/store (lettura/scrittura = spostamento dati - in inglese "move"), tre fixed point - (virgola fissa), due singolo ciclo, un multi-ciclo e un "branch" (istruzione di salto - le istruzioni vengono eseguite in modo sequenziali sino a trovare un'istruzione di "salto" che salta d una nuova sequenza) che possono essere eseguite nello stesso ciclo. Le istruzioni disponibili sono inviate ''[[Esecuzione fuori ordine|fuori ordine]]'' (''[[:en:Out-of-order execution|out of order]]'') dalle code di uscita, consentendo a queste istruzioni di essere eseguite fuori ordine per mezzo dell'uso della tecnica dei ''[[Rinominazione dei registri|Register renaming]]'' (Rinominazionesostituzione deidi registriun registro già in uso con un registro diverso - cambio del nome) per la sincronizzazione e il riordino dei risultati.
 
L'esecuzione parallela delle istruzioni richiede accessi simultanei alla D-cache L1. Conflitti avvengono quando due o più richieste accedono simultaneamente allo stesso banco di cache. Questi conflitti possono parzialmente essere eliminati tramite l'uso di cache multi-banco e/o di multi-porte<ref>Data Caches for Superscalar Processors - http://pages.saclay.inria.fr/olivier.temam/files/eval/JNT97.pdf</ref><ref>High Bandwidth Data Memory Systems for Superscalar Processors - ftp://ftp.cs.wisc.edu/pub/techreports/1990/TR968.pdf</ref><ref>{{Cita web|url=http://alasir.com/articles/cache_principles/cache_multiporting.html|titolo=Functional Principles of Cache Memory - Multiporting.|sito=alasir.com|accesso=28 febbraio 2017}}</ref>