summaryrefslogtreecommitdiff
path: root/uarch/memory.h
blob: f36e375e3beaf1ef997aea8641a4283fc1aac6af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include <initializer_list>

#include "aisa/simple-models.h"
#include "sim/sim.h"
#include "sim/queue.h"
#include "uarch/types.h"

namespace uarch {

    struct MemStage : public sim::Schedulable, aisa::PagedMem<> {
        sim::Queue<FillReq> &fillreqq;
        sim::Queue<Store> &storeq;

        MemStage(sim::Scheduler &scheduler, sim::Queue<FillReq> &fillreqq, const std::initializer_list<sim::Queue<Fill> *> &fillqs, sim::Queue<Store> &storeq);

        void clock() override;
    };

}