summaryrefslogtreecommitdiff
path: root/src/intersim/event_router.hpp
diff options
context:
space:
mode:
authorDongdong Li <[email protected]>2013-11-22 15:38:36 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:50:59 -0700
commitef8a5521e440baa2f86d468cdc9078f54ec7c0c0 (patch)
treec1627660cc01983067eb5d9b09fb82b4e06d9983 /src/intersim/event_router.hpp
parentbdc0e550448f04c7c8f030b7421209bae37e651d (diff)
Delete Intersim
Code Review Issue: 113001 [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 17414]
Diffstat (limited to 'src/intersim/event_router.hpp')
-rw-r--r--src/intersim/event_router.hpp151
1 files changed, 0 insertions, 151 deletions
diff --git a/src/intersim/event_router.hpp b/src/intersim/event_router.hpp
deleted file mode 100644
index 91bc005..0000000
--- a/src/intersim/event_router.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-#ifndef _EVENT_ROUTER_HPP_
-#define _EVENT_ROUTER_HPP_
-
-#include <string>
-#include <queue>
-
-#include "module.hpp"
-#include "router.hpp"
-#include "vc.hpp"
-#include "arbiter.hpp"
-#include "routefunc.hpp"
-#include "outputset.hpp"
-#include "pipefifo.hpp"
-
-class EventNextVCState : public Module {
-public:
- enum eNextVCState {
- idle, busy, tail_pending
- };
-
- struct tWaiting {
- int input;
- int vc;
- int id;
- int pres;
- bool watch;
- };
-
-private:
- int _buf_size;
- int _vcs;
-
- int *_credits;
- int *_presence;
- int *_input;
- int *_inputVC;
-
- list<tWaiting *> *_waiting;
-
- eNextVCState *_state;
-
- void _Init( const Configuration& config );
-
-public:
- EventNextVCState() : Module() {}
- void init( const Configuration& config );
- EventNextVCState( const Configuration& config,
- Module *parent, const string& name );
- ~EventNextVCState( );
-
- eNextVCState GetState( int vc ) const;
- int GetPresence( int vc ) const;
- int GetCredits( int vc ) const;
- int GetInput( int vc ) const;
- int GetInputVC( int vc ) const;
-
- bool IsWaiting( int vc ) const;
- bool IsInputWaiting( int vc, int w_input, int w_vc ) const;
-
- void PushWaiting( int vc, tWaiting *w );
- void IncrWaiting( int vc, int w_input, int w_vc );
- tWaiting *PopWaiting( int vc );
-
- void SetState( int vc, eNextVCState state );
- void SetCredits( int vc, int value );
- void SetPresence( int vc, int value );
- void SetInput( int vc, int input );
- void SetInputVC( int vc, int in_vc );
-};
-
-class EventRouter : public Router {
- int _vcs;
- int _vc_size;
-
- int _vct;
-
- VC **_vc;
-
- tRoutingFunction _rf;
-
- EventNextVCState *_output_state;
-
- PipelineFIFO<Flit> *_crossbar_pipe;
- PipelineFIFO<Credit> *_credit_pipe;
-
- queue<Flit *> *_input_buffer;
- queue<Flit *> *_output_buffer;
-
- queue<Credit *> *_in_cred_buffer;
- queue<Credit *> *_out_cred_buffer;
-
- struct tArrivalEvent {
- int input;
- int output;
- int src_vc;
- int dst_vc;
- bool head;
- bool tail;
-
- int id; // debug
- bool watch; // debug
- };
-
- PipelineFIFO<tArrivalEvent> *_arrival_pipe;
- queue<tArrivalEvent *> *_arrival_queue;
- PriorityArbiter **_arrival_arbiter;
-
- struct tTransportEvent {
- int input;
- int src_vc;
- int dst_vc;
-
- int id; // debug
- bool watch; // debug
- };
-
- queue<tTransportEvent *> *_transport_queue;
- PriorityArbiter **_transport_arbiter;
-
- bool *_transport_free;
- int *_transport_match;
-
- void _ReceiveFlits( );
- void _ReceiveCredits( );
-
- void _IncomingFlits( );
- void _ArrivalRequests( int input );
- void _ArrivalArb( int output );
- void _SendTransport( int input, int output, tArrivalEvent *aevt );
- void _ProcessWaiting( int output, int out_vc );
- void _TransportRequests( int output );
- void _TransportArb( int input );
- void _OutputQueuing( );
-
- void _SendFlits( );
- void _SendCredits( );
-
-public:
- EventRouter( const Configuration& config,
- Module *parent, string name, int id,
- int inputs, int outputs );
- virtual ~EventRouter( );
-
- virtual void ReadInputs( );
- virtual void InternalStep( );
- virtual void WriteOutputs( );
-
- void Display( ) const;
-};
-
-#endif