/* * Escribir bloque de caché a memoria */ public void BloqueAMem(BloqueCacheInstrucciones bloqueCache, int nBloque) { for (int i = 0; i < 4; i++) { memoriaPrincipal.SetPalabraInstruccion(nBloque, i, bloqueCache.GetPalabra(i)); } }
/* * Constructor de la clase */ public CacheInstrucciones() { bloques = new BloqueCacheInstrucciones[CANTIDAD_BLOQUES]; for (int i = 0; i < CANTIDAD_BLOQUES; i++) { bloques[i] = new BloqueCacheInstrucciones(); } }
/* * Leer bloque de memoria */ public BloqueCacheInstrucciones BloqueDeMem(int nBloque) { BloqueCacheInstrucciones bloqueCache = new BloqueCacheInstrucciones(); for (int i = 0; i < 4; i++) { bloqueCache.SetPalabra(i, memoriaPrincipal.GetPalabraInstruccion(nBloque, i)); } bloqueCache.SetEtiqueta(memoriaPrincipal.GetEtiquetaInstruccion(nBloque)); return(bloqueCache); }
/* * SetBloque Colocar elBloque en la caché de instrucciones * * @param int Indice del arreglo de bloques que se va a modificar * @param BloqueCacheInstrucciones Bloque que se va a insertar */ public void SetBloque(int iBloque, BloqueCacheInstrucciones elBloque) { bloques[iBloque] = elBloque; }