aboutsummaryrefslogtreecommitdiff
path: root/src/intersim2/.svn/pristine/8f
diff options
context:
space:
mode:
authorDongdong Li <[email protected]>2013-11-22 11:32:14 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:50:59 -0700
commitbdc0e550448f04c7c8f030b7421209bae37e651d (patch)
treed59135ebbc05d7ddcd77c3b647e647e159073359 /src/intersim2/.svn/pristine/8f
parent3f74773ce1ffe8ed5044a103d84459b56d4e9c20 (diff)
Add .svn file so other people can keep update with changes from Stanford
Code Review: Issue 103001 [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 17411]
Diffstat (limited to 'src/intersim2/.svn/pristine/8f')
-rw-r--r--src/intersim2/.svn/pristine/8f/8fa65cdf95f29e2fd90afe3901d296d085ff768b.svn-base43
-rw-r--r--src/intersim2/.svn/pristine/8f/8fca73abe4a7446a1a53687a6baca97dc056eabf.svn-base34
-rw-r--r--src/intersim2/.svn/pristine/8f/8fd71b46841aae63fcfe44908c2a1827741661fb.svn-base111
3 files changed, 188 insertions, 0 deletions
diff --git a/src/intersim2/.svn/pristine/8f/8fa65cdf95f29e2fd90afe3901d296d085ff768b.svn-base b/src/intersim2/.svn/pristine/8f/8fa65cdf95f29e2fd90afe3901d296d085ff768b.svn-base
new file mode 100644
index 0000000..bc0c5ba
--- /dev/null
+++ b/src/intersim2/.svn/pristine/8f/8fa65cdf95f29e2fd90afe3901d296d085ff768b.svn-base
@@ -0,0 +1,43 @@
+// $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 _BOOKSIM_HPP_
+#define _BOOKSIM_HPP_
+
+#include <string>
+#include <cstdlib>
+#include <cstring>
+#include <climits>
+#include <cassert>
+#ifdef _WIN32_
+#pragma warning (disable: 4786)
+#include <ostream>
+#endif
+
+using namespace std;
+
+#endif
diff --git a/src/intersim2/.svn/pristine/8f/8fca73abe4a7446a1a53687a6baca97dc056eabf.svn-base b/src/intersim2/.svn/pristine/8f/8fca73abe4a7446a1a53687a6baca97dc056eabf.svn-base
new file mode 100644
index 0000000..b1a60ea
--- /dev/null
+++ b/src/intersim2/.svn/pristine/8f/8fca73abe4a7446a1a53687a6baca97dc056eabf.svn-base
@@ -0,0 +1,34 @@
+// $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.
+*/
+
+#define main rng_double_main
+#include "rng-double.c"
+
+double ranf_next( )
+{
+ return ranf_arr_next( );
+}
diff --git a/src/intersim2/.svn/pristine/8f/8fd71b46841aae63fcfe44908c2a1827741661fb.svn-base b/src/intersim2/.svn/pristine/8f/8fd71b46841aae63fcfe44908c2a1827741661fb.svn-base
new file mode 100644
index 0000000..a10b781
--- /dev/null
+++ b/src/intersim2/.svn/pristine/8f/8fd71b46841aae63fcfe44908c2a1827741661fb.svn-base
@@ -0,0 +1,111 @@
+// $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.
+*/
+
+// ----------------------------------------------------------------------
+//
+// Arbiter: Base class for Matrix and Round Robin Arbiter
+//
+// ----------------------------------------------------------------------
+
+#include "arbiter.hpp"
+#include "roundrobin_arb.hpp"
+#include "matrix_arb.hpp"
+#include "tree_arb.hpp"
+
+#include <limits>
+#include <cassert>
+
+using namespace std ;
+
+Arbiter::Arbiter( Module *parent, const string &name, int size )
+ : Module( parent, name ),
+ _size(size), _selected(-1), _highest_pri(numeric_limits<int>::min()),
+ _best_input(-1), _num_reqs(0)
+{
+ _request.resize(size);
+ for ( int i = 0 ; i < size ; i++ )
+ _request[i].valid = false ;
+}
+
+void Arbiter::AddRequest( int input, int id, int pri )
+{
+ assert( 0 <= input && input < _size ) ;
+ assert( !_request[input].valid );
+
+ _num_reqs++ ;
+ _request[input].valid = true ;
+ _request[input].id = id ;
+ _request[input].pri = pri ;
+}
+
+int Arbiter::Arbitrate( int* id, int* pri )
+{
+ if ( _selected != -1 ) {
+ if ( id )
+ *id = _request[_selected].id ;
+ if ( pri )
+ *pri = _request[_selected].pri ;
+ }
+
+ assert((_selected >= 0) || (_num_reqs == 0));
+
+ return _selected ;
+}
+
+void Arbiter::Clear()
+{
+ if(_num_reqs > 0) {
+
+ // clear the request vector
+ for ( int i = 0; i < _size ; i++ )
+ _request[i].valid = false ;
+ _num_reqs = 0 ;
+ _selected = -1;
+ }
+}
+
+Arbiter *Arbiter::NewArbiter( Module *parent, const string& name,
+ const string &arb_type, int size)
+{
+ Arbiter *a = NULL;
+ if(arb_type == "round_robin") {
+ a = new RoundRobinArbiter( parent, name, size );
+ } else if(arb_type == "matrix") {
+ a = new MatrixArbiter( parent, name, size );
+ } else if(arb_type.substr(0, 5) == "tree(") {
+ size_t left = 4;
+ size_t middle = arb_type.find_first_of(',');
+ assert(middle != string::npos);
+ size_t right = arb_type.find_last_of(')');
+ assert(right != string::npos);
+ string groups_str = arb_type.substr(left+1, middle-left-1);
+ int groups = atoi(groups_str.c_str());
+ string sub_arb_type = arb_type.substr(middle+1, right-middle-1);
+ a = new TreeArbiter( parent, name, size, groups, sub_arb_type );
+ } else assert(false);
+ return a;
+}