astra-sim-alibabacloud/astra-sim/system/MemMovRequest.hh (57 lines of code) (raw):

/****************************************************************************** This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. *******************************************************************************/ #ifndef __MEMMOVREQUEST_HH__ #define __MEMMOVREQUEST_HH__ #include <assert.h> #include <math.h> #include <algorithm> #include <chrono> #include <cstdint> #include <ctime> #include <fstream> #include <list> #include <map> #include <sstream> #include <tuple> #include <vector> #include "Callable.hh" #include "Common.hh" #include "SharedBusStat.hh" namespace AstraSim { class Sys; class LogGP; class MemMovRequest : public Callable, public SharedBusStat { public: static int id; int my_id; int size; int latency; Callable* callable; bool processed; bool send_back; bool mem_bus_finished; Sys* generator; EventType callEvent = EventType::General; LogGP* loggp; std::list<MemMovRequest>::iterator pointer; void call(EventType event, CallData* data); Tick total_transfer_queue_time; Tick total_transfer_time; Tick total_processing_queue_time; Tick total_processing_time; Tick start_time; int request_num; MemMovRequest( int request_num, Sys* generator, LogGP* loggp, int size, int latency, Callable* callable, bool processed, bool send_back); void wait_wait_for_mem_bus(std::list<MemMovRequest>::iterator pointer); void set_iterator(std::list<MemMovRequest>::iterator pointer) { this->pointer = pointer; } }; } // namespace AstraSim #endif