From 6b9eb92bd0b03d69a2f2e9c075a8af99d860d4d1 Mon Sep 17 00:00:00 2001 From: Myrice Date: Tue, 7 Apr 2015 14:43:05 -0700 Subject: 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 --- ...59780a67de13b98fb00d7f052ce254551f229b.svn-base | 88 -------- ...ee19fa1932804a55ee815f4456c4a6f21a355f.svn-base | 239 --------------------- 2 files changed, 327 deletions(-) delete mode 100644 src/intersim2/.svn/pristine/55/5559780a67de13b98fb00d7f052ce254551f229b.svn-base delete mode 100644 src/intersim2/.svn/pristine/55/55ee19fa1932804a55ee815f4456c4a6f21a355f.svn-base (limited to 'src/intersim2/.svn/pristine/55') diff --git a/src/intersim2/.svn/pristine/55/5559780a67de13b98fb00d7f052ce254551f229b.svn-base b/src/intersim2/.svn/pristine/55/5559780a67de13b98fb00d7f052ce254551f229b.svn-base deleted file mode 100644 index 4387d46..0000000 --- a/src/intersim2/.svn/pristine/55/5559780a67de13b98fb00d7f052ce254551f229b.svn-base +++ /dev/null @@ -1,88 +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. -*/ - -#ifndef _FlatFlyOnChip_HPP_ -#define _FlatFlyOnChip_HPP_ - -#include "network.hpp" - -#include "routefunc.hpp" -#include - - -class FlatFlyOnChip : public Network { - - int _m; - int _n; - int _r; - int _k; - int _c; - int _radix; - int _net_size; - int _stageout; - int _numinput; - int _stages; - int _num_of_switch; - - void _ComputeSize( const Configuration &config ); - void _BuildNet( const Configuration &config ); - - int _OutChannel( int stage, int addr, int port, int outputs ) const; - int _InChannel( int stage, int addr, int port ) const; - -public: - FlatFlyOnChip( const Configuration &config, const string & name ); - - int GetN( ) const; - int GetK( ) const; - - static void RegisterRoutingFunctions() ; - double Capacity( ) const; - void InsertRandomFaults( const Configuration &config ); -}; -void adaptive_xyyx_flatfly( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); -void xyyx_flatfly( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); -void min_flatfly( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); -void ugal_xyyx_flatfly_onchip( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); -void ugal_flatfly_onchip( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); -void ugal_pni_flatfly_onchip( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); -void valiant_flatfly( const Router *r, const Flit *f, int in_channel, - OutputSet *outputs, bool inject ); - -int find_distance (int src, int dest); -int find_ran_intm (int src, int dest); -int flatfly_outport(int dest, int rID); -int flatfly_transformation(int dest); -int flatfly_outport_yx(int dest, int rID); - -#endif diff --git a/src/intersim2/.svn/pristine/55/55ee19fa1932804a55ee815f4456c4a6f21a355f.svn-base b/src/intersim2/.svn/pristine/55/55ee19fa1932804a55ee815f4456c4a6f21a355f.svn-base deleted file mode 100644 index 5d38938..0000000 --- a/src/intersim2/.svn/pristine/55/55ee19fa1932804a55ee815f4456c4a6f21a355f.svn-base +++ /dev/null @@ -1,239 +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. -*/ - -#ifndef _BUFFER_STATE_HPP_ -#define _BUFFER_STATE_HPP_ - -#include -#include - -#include "module.hpp" -#include "flit.hpp" -#include "credit.hpp" -#include "config_utils.hpp" - -class BufferState : public Module { - - class BufferPolicy : public Module { - protected: - BufferState const * const _buffer_state; - public: - BufferPolicy(Configuration const & config, BufferState * parent, - const string & name); - virtual void SetMinLatency(int min_latency) {} - virtual void TakeBuffer(int vc = 0); - virtual void SendingFlit(Flit const * const f); - virtual void FreeSlotFor(int vc = 0); - virtual bool IsFullFor(int vc = 0) const = 0; - virtual int AvailableFor(int vc = 0) const = 0; - virtual int LimitFor(int vc = 0) const = 0; - - static BufferPolicy * New(Configuration const & config, - BufferState * parent, const string & name); - }; - - class PrivateBufferPolicy : public BufferPolicy { - protected: - int _vc_buf_size; - public: - PrivateBufferPolicy(Configuration const & config, BufferState * parent, - const string & name); - virtual void SendingFlit(Flit const * const f); - virtual bool IsFullFor(int vc = 0) const; - virtual int AvailableFor(int vc = 0) const; - virtual int LimitFor(int vc = 0) const; - }; - - class SharedBufferPolicy : public BufferPolicy { - protected: - int _buf_size; - vector _private_buf_vc_map; - vector _private_buf_size; - vector _private_buf_occupancy; - int _shared_buf_size; - int _shared_buf_occupancy; - vector _reserved_slots; - void ProcessFreeSlot(int vc = 0); - public: - SharedBufferPolicy(Configuration const & config, BufferState * parent, - const string & name); - virtual void SendingFlit(Flit const * const f); - virtual void FreeSlotFor(int vc = 0); - virtual bool IsFullFor(int vc = 0) const; - virtual int AvailableFor(int vc = 0) const; - virtual int LimitFor(int vc = 0) const; - }; - - class LimitedSharedBufferPolicy : public SharedBufferPolicy { - protected: - int _vcs; - int _active_vcs; - int _max_held_slots; - public: - LimitedSharedBufferPolicy(Configuration const & config, - BufferState * parent, - const string & name); - virtual void TakeBuffer(int vc = 0); - virtual void SendingFlit(Flit const * const f); - virtual bool IsFullFor(int vc = 0) const; - virtual int AvailableFor(int vc = 0) const; - virtual int LimitFor(int vc = 0) const; - }; - - class DynamicLimitedSharedBufferPolicy : public LimitedSharedBufferPolicy { - public: - DynamicLimitedSharedBufferPolicy(Configuration const & config, - BufferState * parent, - const string & name); - virtual void TakeBuffer(int vc = 0); - virtual void SendingFlit(Flit const * const f); - }; - - class ShiftingDynamicLimitedSharedBufferPolicy : public DynamicLimitedSharedBufferPolicy { - public: - ShiftingDynamicLimitedSharedBufferPolicy(Configuration const & config, - BufferState * parent, - const string & name); - virtual void TakeBuffer(int vc = 0); - virtual void SendingFlit(Flit const * const f); - }; - - class FeedbackSharedBufferPolicy : public SharedBufferPolicy { - protected: - int _ComputeRTT(int vc, int last_rtt) const; - int _ComputeLimit(int rtt) const; - int _ComputeMaxSlots(int vc) const; - int _vcs; - vector _occupancy_limit; - vector _round_trip_time; - vector > _flit_sent_time; - int _min_latency; - int _total_mapped_size; - int _aging_scale; - int _offset; - public: - FeedbackSharedBufferPolicy(Configuration const & config, - BufferState * parent, const string & name); - virtual void SetMinLatency(int min_latency); - virtual void SendingFlit(Flit const * const f); - virtual void FreeSlotFor(int vc = 0); - virtual bool IsFullFor(int vc = 0) const; - virtual int AvailableFor(int vc = 0) const; - virtual int LimitFor(int vc = 0) const; - }; - - class SimpleFeedbackSharedBufferPolicy : public FeedbackSharedBufferPolicy { - protected: - vector _pending_credits; - public: - SimpleFeedbackSharedBufferPolicy(Configuration const & config, - BufferState * parent, const string & name); - virtual void SendingFlit(Flit const * const f); - virtual void FreeSlotFor(int vc = 0); - }; - - bool _wait_for_tail_credit; - int _size; - int _occupancy; - vector _vc_occupancy; - int _vcs; - - BufferPolicy * _buffer_policy; - - vector _in_use_by; - vector _tail_sent; - vector _last_id; - vector _last_pid; - -#ifdef TRACK_BUFFERS - int _classes; - vector > _outstanding_classes; - vector _class_occupancy; -#endif - -public: - - BufferState( const Configuration& config, - Module *parent, const string& name ); - - ~BufferState(); - - inline void SetMinLatency(int min_latency) { - _buffer_policy->SetMinLatency(min_latency); - } - - void ProcessCredit( Credit const * const c ); - void SendingFlit( Flit const * const f ); - - void TakeBuffer( int vc = 0, int tag = 0 ); - - inline bool IsFull() const { - assert(_occupancy <= _size); - return (_occupancy == _size); - } - inline bool IsFullFor( int vc = 0 ) const { - return _buffer_policy->IsFullFor(vc); - } - inline int AvailableFor( int vc = 0 ) const { - return _buffer_policy->AvailableFor(vc); - } - inline int LimitFor( int vc = 0 ) const { - return _buffer_policy->LimitFor(vc); - } - inline bool IsEmptyFor(int vc = 0) const { - assert((vc >= 0) && (vc < _vcs)); - return (_vc_occupancy[vc] == 0); - } - inline bool IsAvailableFor( int vc = 0 ) const { - assert( ( vc >= 0 ) && ( vc < _vcs ) ); - return _in_use_by[vc] < 0; - } - inline int UsedBy(int vc = 0) const { - assert( ( vc >= 0 ) && ( vc < _vcs ) ); - return _in_use_by[vc]; - } - - inline int Occupancy() const { - return _occupancy; - } - - inline int OccupancyFor( int vc = 0 ) const { - assert((vc >= 0) && (vc < _vcs)); - return _vc_occupancy[vc]; - } - -#ifdef TRACK_BUFFERS - inline int OccupancyForClass(int c) const { - assert((c >= 0) && (c < _classes)); - return _class_occupancy[c]; - } -#endif - - void Display( ostream & os = cout ) const; -}; - -#endif -- cgit v1.3