#pragma once #include "core.h" namespace vortex { class Processor { public: typedef std::shared_ptr Ptr; Processor(const ArchDef& arch); ~Processor(); void attach_ram(RAM* mem); int run(); private: std::vector cores_; std::vector l2caches_; std::vector::Ptr> l2_mem_switches_; Cache::Ptr l3cache_; Switch::Ptr l3_mem_switch_; MemSim::Ptr memsim_; }; }