public void setValue(Bloque bl) { for (int i = 0; i < 4; i++) { this.word[i].setValue(bl.word[i]); } }
/* * Recordar que la memoria compartida de P0 es de 16 (0-15) * y la de P1 es de 8 (16-23). */ public SharedMemory(int sizeMem, Processor prnt) { parent = prnt; shMem = new Bloque[sizeMem]; for (int i = 0; i < sizeMem; i++) { shMem[i] = new Bloque(Computer.block_size); } }
//Constructor public InstructionMemory(int sizeMem) { mem = new Bloque[sizeMem]; for (int i = 0; i < sizeMem; i++) { mem[i] = new Bloque(4); } lastBlock = 0; lastInstr = 0; }
public void miss(int program_counter, Core c) { int dirBloque = program_counter / (Computer.block_size * 4); Bloque blk = c.parent.isntrmem.getBloque(dirBloque); int dirBloqueCache = dirBloque % 4; instrsInCache[dirBloqueCache] = blk; labelsOfInstrs[dirBloqueCache] = dirBloque; //instrsInCache //c.parent.isntrmem. }
public InstructionCache(int cacheSize) { instrsInCache = new Bloque[cacheSize]; labelsOfInstrs = new int[cacheSize]; /* * Inicializa las 4 Instrucciones (16 enteros) con 0s. * Inicializa las etiquetas de las 4 Instrucciones en direcciones no existentes (-1). */ for (int i = 0; i < cacheSize; i++) { instrsInCache[i] = new Bloque(Computer.block_size); //llena todos las instrucciones de los bloques con -1 instrsInCache[i].generateErrorBloque(); labelsOfInstrs[i] = -1; } } // EO constr
public DataCache(int cacheSize) { instrsInCache = new Bloque[cacheSize]; labelsOfInstrs = new int[cacheSize]; statesOfInstrs = new states[cacheSize]; /* * Inicializa los 4 Bloques con 0s. * Inicializa los estados en Invalidos (I). * Inicializa las etiquetas de los 4 Bloques en direcciones no existentes (-1). */ for (int i = 0; i < cacheSize; i++) { instrsInCache[i] = new Bloque(Computer.block_size); statesOfInstrs[i] = states.invalid; labelsOfInstrs[i] = -1; } } // EO constructor
public Bloque getBloque(int numBloque) { Bloque returnBloque = new Bloque(Computer.block_size); if (parent.id == 0 && numBloque < 16) { returnBloque.setValue(shMem[numBloque]); } if (parent.id == 1 && numBloque >= 16) { returnBloque.setValue(shMem[numBloque - 16]); } if ((parent.id == 0 && numBloque >= 16) || (parent.id == 1 && numBloque < 16)) { Console.WriteLine("The Block " + numBloque + " does not belong to the shared memory of processor " + parent.id + "."); returnBloque.generateErrorBloque(); } return(returnBloque); }
public bool insertBloque(int numBloque, Bloque block) { bool inserted = false; if (parent.id == 0 && numBloque < 16) { shMem[numBloque].setValue(block); inserted = true; } if (parent.id == 1 && numBloque >= 16) { shMem[numBloque - 16].setValue(block); inserted = true; } if ((parent.id == 0 && numBloque >= 16) || (parent.id == 1 && numBloque < 16)) { Console.WriteLine("The Block " + numBloque + " does not belong to the shared memory of processor " + parent.id + "."); } return(inserted); }