J'essaie de développer le simulateur de cache en utilisant l'algorithme fifo. Je comprends comment fonctionne l'algorithme fifo, mais j'ai du mal à comprendre comment l'implémenter. Je suis fourni avec le modèle pour développer le cache. Je m'interroge sur la bonne façon de mettre en œuvre l'algorithme.Bonne façon de développer un simulateur de cache en utilisant l'algorithme fifo sur C++
#include <stdlib.h>
extern int opt_assoc, opt_block, opt_capacity, opt_repl, opt_verbose;
typedef struct {
int set; // set ID: 0 ~ (#sets - 1)
int blk; // block ID: 0 ~ (#blocks - 1)
bool miss; // whether this access is a miss
bool evict; // whether eviction happens
bool is_victim_dirty; // if evicted, whether the evicted block is dirty
} cache_state_t;
cache_state_t cache(unsigned int addr, char type)
{
// type: either 'l' or 's'
cs.miss = true;
static bool first_time = true;
if (first_time) {
first_time = false;
}
cache_state_t cs;
return cs;
}
''? 'typedef struct {'? Vous devriez étiqueter votre question comme "en C99", pas "en C++". –
mloskot
Je suis confus par ce modèle. À moins que quelque chose ne me manque, 'cache()' semble déclarer 'cs' sur la pile et le retourner, auquel cas il sera libéré dès que la fonction sera fermée. Est-ce que je me trompe? –
@PatrickRoberts exactement! – Huan