Sequencer.hh (6863:21fbf0412e0d) | Sequencer.hh (6876:a658c315512c) |
---|---|
1 2/* 3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 37 unchanged lines hidden (view full) --- 46#include "mem/ruby/system/RubyPort.hh" 47#include "mem/gems_common/Map.hh" 48#include "mem/ruby/common/Address.hh" 49 50class DataBlock; 51class CacheMsg; 52class MachineID; 53class CacheMemory; | 1 2/* 3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 37 unchanged lines hidden (view full) --- 46#include "mem/ruby/system/RubyPort.hh" 47#include "mem/gems_common/Map.hh" 48#include "mem/ruby/common/Address.hh" 49 50class DataBlock; 51class CacheMsg; 52class MachineID; 53class CacheMemory; |
54class AbstractController; | |
55 | 54 |
55class RubySequencerParams; 56 |
|
56struct SequencerRequest { 57 RubyRequest ruby_request; 58 int64_t id; 59 Time issue_time; 60 61 SequencerRequest(const RubyRequest & _ruby_request, int64_t _id, Time _issue_time) 62 : ruby_request(_ruby_request), id(_id), issue_time(_issue_time) 63 {} 64}; 65 66std::ostream& operator<<(std::ostream& out, const SequencerRequest& obj); 67 | 57struct SequencerRequest { 58 RubyRequest ruby_request; 59 int64_t id; 60 Time issue_time; 61 62 SequencerRequest(const RubyRequest & _ruby_request, int64_t _id, Time _issue_time) 63 : ruby_request(_ruby_request), id(_id), issue_time(_issue_time) 64 {} 65}; 66 67std::ostream& operator<<(std::ostream& out, const SequencerRequest& obj); 68 |
68class Sequencer : public Consumer, public RubyPort { | 69class Sequencer : public RubyPort, public Consumer { |
69public: | 70public: |
71 typedef RubySequencerParams Params; |
|
70 // Constructors | 72 // Constructors |
71 Sequencer(const string & name); 72 void init(const vector<string> & argv); | 73 Sequencer(const Params *); |
73 74 // Destructor 75 ~Sequencer(); 76 77 // Public Methods 78 void wakeup(); // Used only for deadlock detection 79 80 void printConfig(ostream& out) const; --- 28 unchanged lines hidden (view full) --- 109 // Private copy constructor and assignment operator 110 Sequencer(const Sequencer& obj); 111 Sequencer& operator=(const Sequencer& obj); 112 113private: 114 int m_max_outstanding_requests; 115 int m_deadlock_threshold; 116 | 74 75 // Destructor 76 ~Sequencer(); 77 78 // Public Methods 79 void wakeup(); // Used only for deadlock detection 80 81 void printConfig(ostream& out) const; --- 28 unchanged lines hidden (view full) --- 110 // Private copy constructor and assignment operator 111 Sequencer(const Sequencer& obj); 112 Sequencer& operator=(const Sequencer& obj); 113 114private: 115 int m_max_outstanding_requests; 116 int m_deadlock_threshold; 117 |
117 AbstractController* m_controller; 118 MessageBuffer* m_mandatory_q_ptr; | |
119 CacheMemory* m_dataCache_ptr; 120 CacheMemory* m_instCache_ptr; 121 122 // indicates what processor on the chip this sequencer is associated with | 118 CacheMemory* m_dataCache_ptr; 119 CacheMemory* m_instCache_ptr; 120 121 // indicates what processor on the chip this sequencer is associated with |
123 int m_version; | |
124 int m_controller_type; 125 126 Map<Address, SequencerRequest*> m_writeRequestTable; 127 Map<Address, SequencerRequest*> m_readRequestTable; 128 // Global outstanding request count, across all request tables 129 int m_outstanding_count; 130 bool m_deadlock_check_scheduled; 131 --- 22 unchanged lines hidden --- | 122 int m_controller_type; 123 124 Map<Address, SequencerRequest*> m_writeRequestTable; 125 Map<Address, SequencerRequest*> m_readRequestTable; 126 // Global outstanding request count, across all request tables 127 int m_outstanding_count; 128 bool m_deadlock_check_scheduled; 129 --- 22 unchanged lines hidden --- |