diff options
Diffstat (limited to 'src/intersim/network.cpp')
| -rw-r--r-- | src/intersim/network.cpp | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/src/intersim/network.cpp b/src/intersim/network.cpp deleted file mode 100644 index 48c07b4..0000000 --- a/src/intersim/network.cpp +++ /dev/null @@ -1,156 +0,0 @@ -#include "booksim.hpp"
-#include "interconnect_interface.h"
-#include <assert.h>
-
-#include "network.hpp"
-
-int gK = 0;
-int gN = 0;
-int gNodes = 0;
-
-Network::Network( const Configuration &config ) :
-Module( 0, "network" )
-{
- _size = -1;
- _sources = -1;
- _dests = -1;
- _channels = -1;
-}
-
-Network::~Network( )
-{
- for ( int r = 0; r < _size; ++r ) {
- delete _routers[r];
- }
-
- delete [] _routers;
-
- delete [] _inject;
- delete [] _eject;
- delete [] _chan;
-
- delete [] _chan_use;
-
- delete [] _inject_cred;
- delete [] _eject_cred;
- delete [] _chan_cred;
-}
-
-void Network::_Alloc( )
-{
- assert( ( _size != -1 ) &&
- ( _sources != -1 ) &&
- ( _dests != -1 ) &&
- ( _channels != -1 ) );
-
- _routers = new Router * [_size];
- gNodes = _sources;
-
- _inject = new Flit * [_sources];
- _eject = new Flit * [_dests];
- _chan = new Flit * [_channels];
-
- _chan_use = new int [_channels];
-
- for ( int i = 0; i < _channels; ++i ) {
- _chan_use[i] = 0;
- }
-
- _chan_use_cycles = 0;
-
- _inject_cred = new Credit * [_sources];
- _eject_cred = new Credit * [_dests];
- _chan_cred = new Credit * [_channels];
-}
-
-int Network::NumSources( ) const
-{
- return _sources;
-}
-
-int Network::NumDests( ) const
-{
- return _dests;
-}
-
-void Network::ReadInputs( )
-{
- for ( int r = 0; r < _size; ++r ) {
- _routers[r]->ReadInputs( );
- }
-}
-
-void Network::InternalStep( )
-{
- for ( int r = 0; r < _size; ++r ) {
- _routers[r]->InternalStep( );
- }
-}
-
-void Network::WriteOutputs( )
-{
- for ( int r = 0; r < _size; ++r ) {
- _routers[r]->WriteOutputs( );
- }
-
- for ( int c = 0; c < _channels; ++c ) {
- if ( _chan[c] ) {
- _chan_use[c]++;
- }
- }
- _chan_use_cycles++;
-}
-
-void Network::WriteFlit( Flit *f, int source )
-{
- assert( ( source >= 0 ) && ( source < _sources ) );
- _inject[source] = f;
-}
-
-Flit *Network::ReadFlit( int dest )
-{
- assert( ( dest >= 0 ) && ( dest < _dests ) );
- return _eject[dest];
-}
-
-void Network::WriteCredit( Credit *c, int dest )
-{
- assert( ( dest >= 0 ) && ( dest < _dests ) );
- _eject_cred[dest] = c;
-}
-
-Credit *Network::ReadCredit( int source )
-{
- assert( ( source >= 0 ) && ( source < _sources ) );
- return _inject_cred[source];
-}
-
-void Network::InsertRandomFaults( const Configuration &config )
-{
- Error( "InsertRandomFaults not implemented for this topology!" );
-}
-
-void Network::OutChannelFault( int r, int c, bool fault )
-{
- assert( ( r >= 0 ) && ( r < _size ) );
- _routers[r]->OutChannelFault( c, fault );
-}
-
-double Network::Capacity( ) const
-{
- return 1.0;
-}
-
-void Network::Display( ) const
-{
- for ( int r = 0; r < _size; ++r ) {
- _routers[r]->Display( );
- }
-// if (icnt_config.GetInt("blah") ) {
- for ( int c = 0; c < _channels; ++c ) {
- cout << "channel " << c << " used "
- << 100.0 * (double)_chan_use[c] / (double)_chan_use_cycles
- << "% of the time" << endl;
- }
- // }
-}
|
