gpt4 book ai didi

c - 在c++上使用fifo算法开发缓存模拟器的好方法

转载 作者:行者123 更新时间:2023-11-30 16:44:55 26 4
gpt4 key购买 nike

我正在尝试使用 fifo 算法开发缓存模拟器。我了解 fifo 算法的工作原理,但是我在理解如何实现它方面遇到问题。我提供了用于开发缓存的模板。我想知道实现该算法的好方法。

#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;
}

最佳答案

你的代码不正确且不完整,我认为你刚刚开始用 C 编程。使用 ANSI C 编程语言(书)学习如何实现双向链表或循环队列,然后从那里开始.

为了给出更多提示cache_state_t将是双向链表或循环队列中的一个节点,一旦你填满了缓存,下一个请求如果未命中将导致删除缓存的头节点并将新的缓存节点放在尾部。

FIFO 缓存替换通常在类分配中给出,这些策略很少在商业上实现,LRU 是商业缓存管理解决方案的范围。

理想情况下,这应该是一条评论,但我没有评论权限。

关于c - 在c++上使用fifo算法开发缓存模拟器的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44322281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com