Example #1
0
 /*
  * Escribir bloque de caché a memoria
  */
 public void BloqueAMem(BloqueCacheDatos bloqueCache, int nBloque)
 {
     for (int i = 0; i < 4; i++)
     {
         memoriaPrincipal.SetPalabraDato(nBloque, i, bloqueCache.GetPalabra(i));
     }
 }
Example #2
0
 /*
  * Constructor de la clase
  */
 public CacheDatos()
 {
     bloques = new BloqueCacheDatos[CANTIDAD_BLOQUES];
     for (int i = 0; i < CANTIDAD_BLOQUES; i++)
     {
         bloques[i] = new BloqueCacheDatos();
     }
 }
Example #3
0
 /*
  * Copiar Bloque de una caché a la otra
  */
 public void ModificarPalabraCache(int nucleoDestino, int iBloque, BloqueCacheDatos elBloque)
 {
     if (nucleoDestino == 0)
     {
         n0.GetCacheDatos().SetBloque(iBloque, elBloque);
     }
     else
     {
         n1.GetCacheDatos().SetBloque(iBloque, elBloque);
     }
 }
Example #4
0
        /*
         * Leer bloque de memoria
         */
        public BloqueCacheDatos BloqueDeMem(int nBloque)
        {
            BloqueCacheDatos bloqueCache = new BloqueCacheDatos();

            for (int i = 0; i < 4; i++)
            {
                bloqueCache.SetPalabra(i, memoriaPrincipal.GetPalabraDato(nBloque, i));
            }
            bloqueCache.SetEtiqueta(memoriaPrincipal.GetEtiquetaDato(nBloque));
            bloqueCache.SetEstado(BloqueCacheDatos.Estado.C);   //Siempre se cargan compartidos
            return(bloqueCache);
        }
Example #5
0
 /*
  * SetBloque Colocar elBloque en la caché de datos
  *
  * @param int Indice del arreglo de bloques que se va a modificar
  * @param BloqueCacheDatos Bloque que se va a insertar
  */
 public void SetBloque(int iBloque, BloqueCacheDatos elBloque)
 {
     bloques[iBloque] = elBloque;
 }