Permalink
Browse files

[Orion][del] Deleted Orion from the source tree

  • Loading branch information...
1 parent 0b7f8fd commit 1a28e2f8332c40635775eccd2471cc87845ac32c George Kurian committed Dec 15, 2012
Showing with 0 additions and 7,795 deletions.
  1. +0 −60 contrib/orion/Allocator/Arbiter.cc
  2. +0 −56 contrib/orion/Allocator/Arbiter.h
  3. +0 −204 contrib/orion/Allocator/MatrixArbiter.cc
  4. +0 −36 contrib/orion/Allocator/MatrixArbiter.h
  5. +0 −204 contrib/orion/Allocator/RRArbiter.cc
  6. +0 −37 contrib/orion/Allocator/RRArbiter.h
  7. +0 −142 contrib/orion/Allocator/SWAllocator.cc
  8. +0 −60 contrib/orion/Allocator/SWAllocator.h
  9. +0 −267 contrib/orion/Allocator/VCAllocator.cc
  10. +0 −88 contrib/orion/Allocator/VCAllocator.h
  11. +0 −40 contrib/orion/Buffer/AmpUnit.cc
  12. +0 −38 contrib/orion/Buffer/AmpUnit.h
  13. +0 −166 contrib/orion/Buffer/BitlineUnit.cc
  14. +0 −58 contrib/orion/Buffer/BitlineUnit.h
  15. +0 −153 contrib/orion/Buffer/Buffer.cc
  16. +0 −61 contrib/orion/Buffer/Buffer.h
  17. +0 −137 contrib/orion/Buffer/DecoderUnit.cc
  18. +0 −53 contrib/orion/Buffer/DecoderUnit.h
  19. +0 −98 contrib/orion/Buffer/MemUnit.cc
  20. +0 −45 contrib/orion/Buffer/MemUnit.h
  21. +0 −143 contrib/orion/Buffer/OutdrvUnit.cc
  22. +0 −54 contrib/orion/Buffer/OutdrvUnit.h
  23. +0 −103 contrib/orion/Buffer/PrechargeUnit.cc
  24. +0 −55 contrib/orion/Buffer/PrechargeUnit.h
  25. +0 −79 contrib/orion/Buffer/Register.cc
  26. +0 −38 contrib/orion/Buffer/Register.h
  27. +0 −238 contrib/orion/Buffer/SRAM.cc
  28. +0 −86 contrib/orion/Buffer/SRAM.h
  29. +0 −117 contrib/orion/Buffer/WordlineUnit.cc
  30. +0 −52 contrib/orion/Buffer/WordlineUnit.h
  31. +0 −149 contrib/orion/Clock.cc
  32. +0 −42 contrib/orion/Clock.h
  33. +0 −142 contrib/orion/ConfigFile.cc
  34. +0 −252 contrib/orion/ConfigFile.h
  35. +0 −359 contrib/orion/Crossbar/Crossbar.cc
  36. +0 −95 contrib/orion/Crossbar/Crossbar.h
  37. +0 −118 contrib/orion/Crossbar/MatrixCrossbar.cc
  38. +0 −39 contrib/orion/Crossbar/MatrixCrossbar.h
  39. +0 −128 contrib/orion/Crossbar/MultreeCrossbar.cc
  40. +0 −34 contrib/orion/Crossbar/MultreeCrossbar.h
  41. +0 −104 contrib/orion/FlipFlop.cc
  42. +0 −52 contrib/orion/FlipFlop.h
  43. +0 −40 contrib/orion/Makefile
  44. +0 −192 contrib/orion/OrionConfig.cc
  45. +0 −135 contrib/orion/OrionConfig.h
  46. +0 −69 contrib/orion/OrionLink.cc
  47. +0 −38 contrib/orion/OrionLink.h
  48. +0 −388 contrib/orion/OrionRouter.cc
  49. +0 −77 contrib/orion/OrionRouter.h
  50. +0 −1,440 contrib/orion/TechParameter.cc
  51. +0 −379 contrib/orion/TechParameter.h
  52. +0 −10 contrib/orion/Type.h
  53. +0 −17 contrib/orion/Util.h
  54. +0 −346 contrib/orion/Wire.cc
  55. +0 −57 contrib/orion/Wire.h
  56. +0 −116 contrib/orion/orion.cfg
  57. +0 −9 contrib/orion/orion.h
@@ -1,60 +0,0 @@
-#include "Arbiter.h"
-
-#include <iostream>
-#include <cassert>
-
-#include "TechParameter.h"
-#include "RRArbiter.h"
-#include "MatrixArbiter.h"
-
-using namespace std;
-
-Arbiter::Arbiter(
- const ArbiterModel arb_model_,
- const uint32_t req_width_,
- const double len_in_wire_,
- const TechParameter* tech_param_ptr_
-)
-{
- assert(req_width_ == req_width_);
- assert(len_in_wire_ == len_in_wire_);
-
- m_arb_model = arb_model_;
- m_req_width = req_width_;
- m_len_in_wire = len_in_wire_;
- m_tech_param_ptr = tech_param_ptr_;
-}
-
-Arbiter::~Arbiter()
-{}
-
-double Arbiter::get_static_power() const
-{
- double vdd = m_tech_param_ptr->get_vdd();
- double SCALE_S = m_tech_param_ptr->get_SCALE_S();
-
- return m_i_static*vdd*SCALE_S;
-}
-
-Arbiter* Arbiter::create_arbiter(
- const string& arb_model_str_,
- const string& ff_model_str_,
- uint32_t req_width_,
- double len_in_wire_,
- const TechParameter* tech_param_ptr_
-)
-{
- if (arb_model_str_ == string("RR_ARBITER"))
- {
- return new RRArbiter(ff_model_str_, req_width_, len_in_wire_, tech_param_ptr_);
- }
- else if (arb_model_str_ == string("MATRIX_ARBITER"))
- {
- return new MatrixArbiter(ff_model_str_, req_width_, len_in_wire_, tech_param_ptr_);
- }
- else
- {
- cerr << "WARNING: No Arbiter model" << endl;
- return (Arbiter*)NULL;
- }
-}
@@ -1,56 +0,0 @@
-#ifndef __ARBITER_H__
-#define __ARBITER_H__
-
-#include "Type.h"
-
-class TechParameter;
-class FlipFlop;
-
-class Arbiter
-{
- public:
- enum ArbiterModel
- {
- NO_MODEL = 0,
- RR_ARBITER,
- MATRIX_ARBITER
- };
-
- public:
- Arbiter(
- const ArbiterModel arb_model_,
- const uint32_t req_width_,
- const double len_in_wire_,
- const TechParameter* tech_param_ptr_
- );
- virtual ~Arbiter() = 0;
-
- public:
- virtual double calc_dynamic_energy(double num_req_, bool is_max_) const = 0;
- double get_static_power() const;
-
- protected:
- ArbiterModel m_arb_model;
- uint32_t m_req_width;
- double m_len_in_wire;
- const TechParameter* m_tech_param_ptr;
-
- FlipFlop* m_ff_ptr;
-
- double m_e_chg_req;
- double m_e_chg_grant;
-
- double m_i_static;
-
- public:
- static Arbiter* create_arbiter(
- const string& arb_model_str_,
- const string& ff_model_str_,
- uint32_t req_width_,
- double len_in_wire_,
- const TechParameter* tech_param_ptr_
- );
-};
-
-#endif
-
@@ -1,204 +0,0 @@
-#include "MatrixArbiter.h"
-
-#include <iostream>
-#include <cmath>
-#include <cassert>
-
-#include "TechParameter.h"
-#include "FlipFlop.h"
-
-using namespace std;
-
-MatrixArbiter::MatrixArbiter(
- const string& ff_model_str_,
- uint32_t req_width_,
- double len_in_wire_,
- const TechParameter* tech_param_ptr_
-) : Arbiter(RR_ARBITER, req_width_, len_in_wire_, tech_param_ptr_)
-{
- init(ff_model_str_);
-}
-
-MatrixArbiter::~MatrixArbiter()
-{
- delete m_ff_ptr;
-}
-
-double MatrixArbiter::calc_dynamic_energy(double num_req_, bool is_max_) const
-{
- assert(num_req_ < m_req_width);
-
- double num_grant;
- if (num_req_ >= 1) num_grant = 1;
- else if (num_req_) num_grant = 1.0 / ceil(1.0/num_req_);
- else num_grant = 0;
-
- uint32_t total_pri = m_req_width*(m_req_width-1)/2;
- double num_chg_pri = (m_req_width-1)*(is_max_? 1:0.5);
-
- double e_atomic;
- double e_arb = 0;
-
- //FIXME: we may overestimate request switch
- e_atomic = m_e_chg_req*num_req_;
- e_arb += e_atomic;
-
- e_atomic = m_e_chg_grant*num_grant;
- e_arb += e_atomic;
-
- // priority register
- e_atomic = m_ff_ptr->get_e_switch()*num_chg_pri*num_grant;
- e_arb += e_atomic;
-
- // assume 1 and 0 are uniformly distributed
- if ((m_ff_ptr->get_e_keep_0() >= m_ff_ptr->get_e_keep_1()) || (!is_max_))
- {
- e_atomic = m_ff_ptr->get_e_keep_0()*(total_pri-num_chg_pri*num_grant)*(is_max_? 1:0.5);
- e_arb += e_atomic;
- }
- if ((m_ff_ptr->get_e_keep_0() < m_ff_ptr->get_e_keep_1()) || (!is_max_))
- {
- e_atomic = m_ff_ptr->get_e_keep_1()*(total_pri-num_chg_pri*num_grant)*(is_max_? 1:0.5);
- e_arb += e_atomic;
- }
-
- e_atomic = m_ff_ptr->get_e_clock()*total_pri;
- e_arb += e_atomic;
-
- // based on above assumptions
- if (is_max_)
- {
- //min(p,n/2)(n-1)+2(n-1)
- e_atomic = m_e_chg_int*(min(num_req_, m_req_width*0.5)+2)*(m_req_width-1);
- }
- else
- {
- //p(n-1)/2+(n-1)/2
- e_atomic = m_e_chg_int*(num_req_+1)*(m_req_width-1)*0.5;
- }
- e_arb += e_atomic;
-
- return e_arb;
-}
-
-void MatrixArbiter::init(const string& ff_model_str_)
-{
- double e_factor = m_tech_param_ptr->get_EnergyFactor();
-
- m_e_chg_req = calc_req_cap()/2*e_factor;
- // two grant signals switch together, so no 1/2
- m_e_chg_grant = calc_grant_cap()*e_factor;
- m_e_chg_int = calc_int_cap()/2*e_factor;
-
- double ff_load = calc_pri_cap();
- m_ff_ptr = new FlipFlop(ff_model_str_, ff_load, m_tech_param_ptr);
-
- m_i_static = calc_i_static();
- return;
-}
-
-// the "huge" NOR gate in matrix arbiter model is an approximation
-// switch cap of request signal
-double MatrixArbiter::calc_req_cap()
-{
- double total_cap = 0;
-
- // part 1: gate cap of NOR gates
- // FIXME: need actual size
- double WdecNORn = m_tech_param_ptr->get_WdecNORn();
- double WdecNORp = m_tech_param_ptr->get_WdecNORp();
- total_cap += (m_req_width-1)*m_tech_param_ptr->calc_gatecap(WdecNORn+WdecNORp, 0);
-
- // part 2: inverter
- // FIXME: need actual size
- double Wdecinvn = m_tech_param_ptr->get_Wdecinvn();
- double Wdecinvp = m_tech_param_ptr->get_Wdecinvp();
- total_cap += m_tech_param_ptr->calc_draincap(Wdecinvn, TechParameter::NCH, 1)
- + m_tech_param_ptr->calc_draincap(Wdecinvp, TechParameter::PCH, 1)
- + m_tech_param_ptr->calc_gatecap(Wdecinvn+Wdecinvp, 0);
-
- // part 3: gate cap of the "huge" NOR gate
- // FIXME: need actual size
- total_cap += m_tech_param_ptr->calc_gatecap(WdecNORn+WdecNORp, 0);
-
- // part 4: wire cap
- double Cmetal = m_tech_param_ptr->get_Cmetal();
- total_cap += m_len_in_wire*Cmetal;
-
- return total_cap;
-}
-
-// switch cap of priority signal
-double MatrixArbiter::calc_pri_cap()
-{
- double total_cap = 0;
-
- // part 1: gate cap of NOR gate
- // FIXME: need actual size
- double WdecNORn = m_tech_param_ptr->get_WdecNORn();
- double WdecNORp = m_tech_param_ptr->get_WdecNORp();
- total_cap += 2*m_tech_param_ptr->calc_gatecap(WdecNORn+WdecNORp, 0);
-
- return total_cap;
-}
-
-// switch cap of grant signa
-double MatrixArbiter::calc_grant_cap()
-{
- double total_cap = 0;
-
- // part 1: drain cap of NOR gate
- // FIXME: need actual size
- double WdecNORn = m_tech_param_ptr->get_WdecNORn();
- double WdecNORp = m_tech_param_ptr->get_WdecNORp();
- total_cap += m_req_width*m_tech_param_ptr->calc_draincap(WdecNORn, TechParameter::NCH, 1)
- + m_tech_param_ptr->calc_draincap(WdecNORp, TechParameter::PCH, m_req_width);
-
- return total_cap;
-}
-
-// switch cap of internal node
-double MatrixArbiter::calc_int_cap()
-{
- double total_cap = 0;
-
- double WdecNORn = m_tech_param_ptr->get_WdecNORn();
- double WdecNORp = m_tech_param_ptr->get_WdecNORp();
- // part 1: drain cap of NOR gate (this bloc)
- // FIXME: need actual size
- total_cap += 2*m_tech_param_ptr->calc_draincap(WdecNORn, TechParameter::NCH, 1)
- + m_tech_param_ptr->calc_draincap(WdecNORp, TechParameter::PCH, 2);
-
- // part 2: gate cap of NOR gate (next block)
- // FIXME: need actual size
- total_cap += m_tech_param_ptr->calc_gatecap(WdecNORn+WdecNORp, 0);
-
- return total_cap;
-}
-
-double MatrixArbiter::calc_i_static()
-{
- double i_static = 0;
-
- double WdecNORn = m_tech_param_ptr->get_WdecNORn();
- double WdecNORp = m_tech_param_ptr->get_WdecNORp();
- double Wdecinvn = m_tech_param_ptr->get_Wdecinvn();
- double Wdecinvp = m_tech_param_ptr->get_Wdecinvp();
- double Wdff = m_tech_param_ptr->get_Wdff();
- double NOR2_TAB_0 = m_tech_param_ptr->get_NOR2_TAB(0);
- double NOR2_TAB_1 = m_tech_param_ptr->get_NOR2_TAB(1);
- double NOR2_TAB_2 = m_tech_param_ptr->get_NOR2_TAB(2);
- double NOR2_TAB_3 = m_tech_param_ptr->get_NOR2_TAB(3);
- double NMOS_TAB_0 = m_tech_param_ptr->get_NMOS_TAB(0);
- double PMOS_TAB_0 = m_tech_param_ptr->get_PMOS_TAB(0);
- double DFF_TAB_0 = m_tech_param_ptr->get_DFF_TAB(0);
-
- // NOR
- i_static += ((2*m_req_width-1)*m_req_width*((WdecNORp*NOR2_TAB_0+WdecNORn*(NOR2_TAB_1+NOR2_TAB_2+NOR2_TAB_3))/4));
- // inverter
- i_static += m_req_width*((Wdecinvn*NMOS_TAB_0+Wdecinvp*PMOS_TAB_0)/2);
- // dff
- i_static += (m_req_width*(m_req_width-1)/2)*Wdff*DFF_TAB_0;
-
- return i_static;
-}
@@ -1,36 +0,0 @@
-#ifndef __MATRIXARBITER_H__
-#define __MATRIXARBITER_H__
-
-#include "Type.h"
-
-#include "Arbiter.h"
-
-class TechParameter;
-
-class MatrixArbiter : public Arbiter
-{
- public:
- MatrixArbiter(
- const string& ff_model_str_,
- uint32_t req_width_,
- double len_in_wire_,
- const TechParameter* tech_param_ptr_
- );
- ~MatrixArbiter();
-
- public:
- double calc_dynamic_energy(double num_req_, bool is_max_) const;
-
- private:
- void init(const string& ff_model_str_);
- double calc_req_cap();
- double calc_pri_cap();
- double calc_grant_cap();
- double calc_int_cap();
- double calc_i_static();
-
- private:
- double m_e_chg_int;
-};
-
-#endif
Oops, something went wrong.

0 comments on commit 1a28e2f

Please sign in to comment.