From c72951a36d6cb9775dc1ecd9bc26bc13e796f10c Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 2 Jul 2022 13:45:09 -0700 Subject: Dropping the async interface, and adding some real uarch. --- uarch/fetch.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 uarch/fetch.h (limited to 'uarch/fetch.h') diff --git a/uarch/fetch.h b/uarch/fetch.h new file mode 100644 index 0000000..452b207 --- /dev/null +++ b/uarch/fetch.h @@ -0,0 +1,28 @@ +#pragma once + +#include + +#include "aisa/aisa.h" +#include "aisa/simple-models.h" +#include "sim/sim.h" +#include "sim/queue.h" +#include "uarch/types.h" + +namespace uarch { + + struct FetchStage : public sim::Schedulable, aisa::TaskStack, aisa::VectorRF { + sim::Queue &fillreqq; + sim::Queue &fillq; + sim::Queue &uopq; + + std::unique_ptr step; + aisa::Wires wires; + bool outstanding_fill = false; + bool fill_complete = false; + + FetchStage(sim::Scheduler &scheduler, const aisa::ISA &isa, sim::Queue &fillreqq, sim::Queue &fillq, sim::Queue &uopq); + + void clock() override; + }; + +} -- cgit v1.2.3