XBar.py (11132:fbd597034299) XBar.py (11334:9bd2e84abdca)
1# Copyright (c) 2012, 2015 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 86 unchanged lines hidden (view full) ---

95
96 # The coherent crossbar additionally has snoop responses that are
97 # forwarded after a specific latency.
98 snoop_response_latency = Param.Cycles("Snoop response latency")
99
100 # An optional snoop filter
101 snoop_filter = Param.SnoopFilter(NULL, "Selected snoop filter")
102
1# Copyright (c) 2012, 2015 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 86 unchanged lines hidden (view full) ---

95
96 # The coherent crossbar additionally has snoop responses that are
97 # forwarded after a specific latency.
98 snoop_response_latency = Param.Cycles("Snoop response latency")
99
100 # An optional snoop filter
101 snoop_filter = Param.SnoopFilter(NULL, "Selected snoop filter")
102
103 # Determine how this crossbar handles packets where caches have
104 # already committed to responding, by establishing if the crossbar
105 # is the point of coherency or not.
106 point_of_coherency = Param.Bool(False, "Consider this crossbar the " \
107 "point of coherency")
108
103 system = Param.System(Parent.any, "System that the crossbar belongs to.")
104
105class SnoopFilter(SimObject):
106 type = 'SnoopFilter'
107 cxx_header = "mem/snoop_filter.hh"
108
109 # Lookup latency of the snoop filter, added to requests that pass
110 # through a coherent crossbar.

--- 31 unchanged lines hidden (view full) ---

142
143 # A handful pipeline stages for each portion of the latency
144 # contributions.
145 frontend_latency = 3
146 forward_latency = 4
147 response_latency = 2
148 snoop_response_latency = 4
149
109 system = Param.System(Parent.any, "System that the crossbar belongs to.")
110
111class SnoopFilter(SimObject):
112 type = 'SnoopFilter'
113 cxx_header = "mem/snoop_filter.hh"
114
115 # Lookup latency of the snoop filter, added to requests that pass
116 # through a coherent crossbar.

--- 31 unchanged lines hidden (view full) ---

148
149 # A handful pipeline stages for each portion of the latency
150 # contributions.
151 frontend_latency = 3
152 forward_latency = 4
153 response_latency = 2
154 snoop_response_latency = 4
155
156 # This specialisation of the coherent crossbar is to be considered
157 # the point of coherency, as there are no (coherent) downstream
158 # caches.
159 point_of_coherency = True
160
150# In addition to the system interconnect, we typically also have one
151# or more on-chip I/O crossbars. Note that at some point we might want
152# to also define an off-chip I/O crossbar such as PCIe.
153class IOXBar(NoncoherentXBar):
154 # 128-bit crossbar by default
155 width = 16
156
157 # Assume a simpler datapath than a coherent crossbar, incuring
158 # less pipeline stages for decision making and forwarding of
159 # requests.
160 frontend_latency = 2
161 forward_latency = 1
162 response_latency = 2
161# In addition to the system interconnect, we typically also have one
162# or more on-chip I/O crossbars. Note that at some point we might want
163# to also define an off-chip I/O crossbar such as PCIe.
164class IOXBar(NoncoherentXBar):
165 # 128-bit crossbar by default
166 width = 16
167
168 # Assume a simpler datapath than a coherent crossbar, incuring
169 # less pipeline stages for decision making and forwarding of
170 # requests.
171 frontend_latency = 2
172 forward_latency = 1
173 response_latency = 2