aboutsummaryrefslogtreecommitdiff
path: root/src/intersim2/.svn/pristine/0b
diff options
context:
space:
mode:
authorMyrice <[email protected]>2015-04-07 14:43:05 -0700
committerMyrice <[email protected]>2015-04-07 14:43:05 -0700
commit6b9eb92bd0b03d69a2f2e9c075a8af99d860d4d1 (patch)
treec741ac460cb86219446070765be97536143def55 /src/intersim2/.svn/pristine/0b
parent4dc9d53085b568aea0cefe75d599f87bb5e0841f (diff)
Booksim2 abandoned svn and moved to github (https://github.com/booksim/booksim2). This .svn folder is useless now and should be deleted.
For further integration, a git submodule/git subtree may be used. Since I modified their source code, we cannot use git submodule/git subtree easily. Signed-off-by: Myrice <[email protected]>
Diffstat (limited to 'src/intersim2/.svn/pristine/0b')
-rw-r--r--src/intersim2/.svn/pristine/0b/0b0c41499a28f0b7c2fccd583db339989d665677.svn-base155
1 files changed, 0 insertions, 155 deletions
diff --git a/src/intersim2/.svn/pristine/0b/0b0c41499a28f0b7c2fccd583db339989d665677.svn-base b/src/intersim2/.svn/pristine/0b/0b0c41499a28f0b7c2fccd583db339989d665677.svn-base
deleted file mode 100644
index 1f15857..0000000
--- a/src/intersim2/.svn/pristine/0b/0b0c41499a28f0b7c2fccd583db339989d665677.svn-base
+++ /dev/null
@@ -1,155 +0,0 @@
-// $Id$
-
-/*
- Copyright (c) 2007-2012, Trustees of The Leland Stanford Junior University
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this
- list of conditions and the following disclaimer in the documentation and/or
- other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*router.cpp
- *
- *The base class of either iq router or event router
- *contains a list of channels and other router configuration variables
- *
- *The older version of the simulator uses an array of flits and credit to
- *simulate the channels. Newer version ueses flitchannel and credit channel
- *which can better model channel delay
- *
- *The older version of the simulator also uses vc_router and chaos router
- *which are replaced by iq rotuer and event router in the present form
- */
-
-#include "booksim.hpp"
-#include <iostream>
-#include <cassert>
-#include "router.hpp"
-
-//////////////////Sub router types//////////////////////
-#include "iq_router.hpp"
-#include "event_router.hpp"
-#include "chaos_router.hpp"
-///////////////////////////////////////////////////////
-
-int const Router::STALL_BUFFER_BUSY = -2;
-int const Router::STALL_BUFFER_CONFLICT = -3;
-int const Router::STALL_BUFFER_FULL = -4;
-int const Router::STALL_BUFFER_RESERVED = -5;
-int const Router::STALL_CROSSBAR_CONFLICT = -6;
-
-Router::Router( const Configuration& config,
- Module *parent, const string & name, int id,
- int inputs, int outputs ) :
-TimedModule( parent, name ), _id( id ), _inputs( inputs ), _outputs( outputs ),
- _partial_internal_cycles(0.0)
-{
- _crossbar_delay = ( config.GetInt( "st_prepare_delay" ) +
- config.GetInt( "st_final_delay" ) );
- _credit_delay = config.GetInt( "credit_delay" );
- _input_speedup = config.GetInt( "input_speedup" );
- _output_speedup = config.GetInt( "output_speedup" );
- _internal_speedup = config.GetFloat( "internal_speedup" );
- _classes = config.GetInt( "classes" );
-
-#ifdef TRACK_FLOWS
- _received_flits.resize(_classes, vector<int>(_inputs, 0));
- _stored_flits.resize(_classes);
- _sent_flits.resize(_classes, vector<int>(_outputs, 0));
- _active_packets.resize(_classes);
- _outstanding_credits.resize(_classes, vector<int>(_outputs, 0));
-#endif
-
-#ifdef TRACK_STALLS
- _buffer_busy_stalls.resize(_classes, 0);
- _buffer_conflict_stalls.resize(_classes, 0);
- _buffer_full_stalls.resize(_classes, 0);
- _buffer_reserved_stalls.resize(_classes, 0);
- _crossbar_conflict_stalls.resize(_classes, 0);
-#endif
-
-}
-
-void Router::AddInputChannel( FlitChannel *channel, CreditChannel *backchannel )
-{
- _input_channels.push_back( channel );
- _input_credits.push_back( backchannel );
- channel->SetSink( this, _input_channels.size() - 1 ) ;
-}
-
-void Router::AddOutputChannel( FlitChannel *channel, CreditChannel *backchannel )
-{
- _output_channels.push_back( channel );
- _output_credits.push_back( backchannel );
- _channel_faults.push_back( false );
- channel->SetSource( this, _output_channels.size() - 1 ) ;
-}
-
-void Router::Evaluate( )
-{
- _partial_internal_cycles += _internal_speedup;
- while( _partial_internal_cycles >= 1.0 ) {
- _InternalStep( );
- _partial_internal_cycles -= 1.0;
- }
-}
-
-void Router::OutChannelFault( int c, bool fault )
-{
- assert( ( c >= 0 ) && ( (size_t)c < _channel_faults.size( ) ) );
-
- _channel_faults[c] = fault;
-}
-
-bool Router::IsFaultyOutput( int c ) const
-{
- assert( ( c >= 0 ) && ( (size_t)c < _channel_faults.size( ) ) );
-
- return _channel_faults[c];
-}
-
-/*Router constructor*/
-Router *Router::NewRouter( const Configuration& config,
- Module *parent, const string & name, int id,
- int inputs, int outputs )
-{
- const string type = config.GetStr( "router" );
- Router *r = NULL;
- if ( type == "iq" ) {
- r = new IQRouter( config, parent, name, id, inputs, outputs );
- } else if ( type == "event" ) {
- r = new EventRouter( config, parent, name, id, inputs, outputs );
- } else if ( type == "chaos" ) {
- r = new ChaosRouter( config, parent, name, id, inputs, outputs );
- } else {
- cerr << "Unknown router type: " << type << endl;
- }
- /*For additional router, add another else if statement*/
- /*Original booksim specifies the router using "flow_control"
- *we now simply call these types.
- */
-
- return r;
-}
-
-
-
-
-