Personal computer/Architettura/Memoria: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pizeta (discussione | contributi)
Pizeta (discussione | contributi)
lo considero completo
Riga 5:
La memoria principale di un calcolatore contiene le istruzioni del programma da eseguire e i risultati delle operazioni svolte.
 
Come per la [[Personal_computer/Architettura/CPU|CPU]] anche la memoria principale è divisa in sottoblocchi, più precisamente in diverse unità funzionali simili collegate fra loro in modalità gerarchica. Il principale vantaggio dell'implementazione di una struttura gerarchica è quello di poter avere a disposizione uno spazio di memoria virtualmente infinito con velocità di accesso le più basse possibili. Le memorie più veloci (e più costose) costituiscono una piccola parte del sottosistema di memoria e sono nella parte più alta della gerarchia, subito a ridosso della CPU, implementate in [[w:DRAM|DRAM]] ( ''dynamic random access memory'' ), costituiscono la ''[[w:Cache|cache]]'' del processore; le memorie più lente e meno costose si trovano ai livelli gerarchici più bassi e sono realizzate con sia con [[w:SRAM|SRAM]] ( ''static randoma access memory'' ) sia con dischi magnetici ( il disco magnetico di per se non fa parte del sottosistema di memoria, tuttavia può esserne incluso con tecniche di ''paging'' come ''memoria virtuale'').
 
Il sistema che permette di avere grande quantità di memoria con i tempi di accesso del blocco più veloce è detto di ''caching''. Nella memoria veloce e di ridotte dimensioni vengono caricati soltanto dati ed istruzioni che il programma eseguirà con maggiore probabilità. Se i dati richiesti dal processore sono presenti nel blocco più alto si parla di ''hit'', nel caso in cui ci sia bisogno di accedere ad un livello più basso si parla di ''miss''. In questo modo si può considerare la velocità di accesso alla memoria come la somma tra la velocità di accesso al suo livello più alto e il tempo necessario per calcolare se ci si trova in uno stato di ''hit'' o ''miss'', questo tempo è detto ''hit time''. Se da un lato il ''caching'' permette di ridurre al minimo i tempi di accesso alla memoria, dall'altro richiede ununa maggiore complessità per gestire i casi di ''miss'' ma soprattutto la logica per consentire di avere la più alta ''hit ratio'' possibile, ovvero la frazione di accessi in memoria che finiscono nello strato superiore.
 
La CPU ovviamente è all'oscuro della tecnologia utilizzata dal sistema di memoria, sarà compito del progettista del calcolatore la disposizione dei vari elementi di memoria all'interno dello spazio di indirizzamento (''mapping'') e la generazione di quei segnali che permettono alla CPU il corretto accesso alla memoria