gem5
v24.0.0.0
Loading...
Searching...
No Matches
mem
ruby
network
garnet
OutVcState.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2008 Princeton University
3
* Copyright (c) 2016 Georgia Institute of Technology
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
9
* notice, this list of conditions and the following disclaimer;
10
* redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution;
13
* neither the name of the copyright holders nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
*/
29
30
31
#include "
mem/ruby/network/garnet/OutVcState.hh
"
32
33
#include "
mem/ruby/system/RubySystem.hh
"
34
35
namespace
gem5
36
{
37
38
namespace
ruby
39
{
40
41
namespace
garnet
42
{
43
44
OutVcState::OutVcState
(
int
id
,
GarnetNetwork
*network_ptr,
45
uint32_t consumerVcs)
46
: m_time(0)
47
{
48
m_id
=
id
;
49
m_vc_state
=
IDLE_
;
50
/*
51
* We find the virtual network using the number of
52
* vcs per vnet. This assumes that the same vcs per
53
* vnet is used throughout the given object.
54
*/
55
int
vnet = floor(
id
/consumerVcs);
56
57
if
(network_ptr->
get_vnet_type
(vnet) ==
DATA_VNET_
)
58
m_max_credit_count
= network_ptr->
getBuffersPerDataVC
();
59
else
60
m_max_credit_count
= network_ptr->
getBuffersPerCtrlVC
();
61
62
m_credit_count
=
m_max_credit_count
;
63
assert(
m_credit_count
>= 1);
64
}
65
66
void
67
OutVcState::increment_credit
()
68
{
69
m_credit_count
++;
70
assert(
m_credit_count
<=
m_max_credit_count
);
71
}
72
73
void
74
OutVcState::decrement_credit
()
75
{
76
m_credit_count
--;
77
assert(
m_credit_count
>= 0);
78
}
79
80
}
// namespace garnet
81
}
// namespace ruby
82
}
// namespace gem5
OutVcState.hh
RubySystem.hh
gem5::ruby::garnet::GarnetNetwork
Definition
GarnetNetwork.hh:62
gem5::ruby::garnet::GarnetNetwork::getBuffersPerDataVC
uint32_t getBuffersPerDataVC()
Definition
GarnetNetwork.hh:80
gem5::ruby::garnet::GarnetNetwork::getBuffersPerCtrlVC
uint32_t getBuffersPerCtrlVC()
Definition
GarnetNetwork.hh:81
gem5::ruby::garnet::GarnetNetwork::get_vnet_type
VNET_type get_vnet_type(int vnet)
Definition
GarnetNetwork.hh:91
gem5::ruby::garnet::OutVcState::m_credit_count
int m_credit_count
Definition
OutVcState.hh:72
gem5::ruby::garnet::OutVcState::m_id
int m_id
Definition
OutVcState.hh:69
gem5::ruby::garnet::OutVcState::decrement_credit
void decrement_credit()
Definition
OutVcState.cc:74
gem5::ruby::garnet::OutVcState::increment_credit
void increment_credit()
Definition
OutVcState.cc:67
gem5::ruby::garnet::OutVcState::OutVcState
OutVcState(int id, GarnetNetwork *network_ptr, uint32_t consumerVcs)
Definition
OutVcState.cc:44
gem5::ruby::garnet::OutVcState::m_vc_state
VC_state_type m_vc_state
Definition
OutVcState.hh:71
gem5::ruby::garnet::OutVcState::m_max_credit_count
int m_max_credit_count
Definition
OutVcState.hh:73
gem5::ArmISA::id
Bitfield< 33 > id
Definition
misc_types.hh:331
gem5::ruby::garnet::DATA_VNET_
@ DATA_VNET_
Definition
CommonTypes.hh:50
gem5::ruby::garnet::IDLE_
@ IDLE_
Definition
CommonTypes.hh:49
gem5
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition
binary32.hh:36
Generated on Tue Jun 18 2024 16:24:05 for gem5 by
doxygen
1.11.0