XBar.py (10720:67b3e74de9ae) | XBar.py (11132:fbd597034299) |
---|---|
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 --- 98 unchanged lines hidden (view full) --- 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. 111 lookup_latency = Param.Cycles(1, "Lookup latency") 112 113 system = Param.System(Parent.any, "System that the crossbar belongs to.") 114 | 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 --- 98 unchanged lines hidden (view full) --- 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. 111 lookup_latency = Param.Cycles(1, "Lookup latency") 112 113 system = Param.System(Parent.any, "System that the crossbar belongs to.") 114 |
115 # Sanity check on max capacity to track, adjust if needed. 116 max_capacity = Param.MemorySize('8MB', "Maximum capacity of snoop filter") 117 |
|
115# We use a coherent crossbar to connect multiple masters to the L2 116# caches. Normally this crossbar would be part of the cache itself. 117class L2XBar(CoherentXBar): 118 # 256-bit crossbar by default 119 width = 32 120 121 # Assume that most of this is covered by the cache latencies, with 122 # no more than a single pipeline stage for any packet. 123 frontend_latency = 1 124 forward_latency = 0 125 response_latency = 1 126 snoop_response_latency = 1 127 | 118# We use a coherent crossbar to connect multiple masters to the L2 119# caches. Normally this crossbar would be part of the cache itself. 120class L2XBar(CoherentXBar): 121 # 256-bit crossbar by default 122 width = 32 123 124 # Assume that most of this is covered by the cache latencies, with 125 # no more than a single pipeline stage for any packet. 126 frontend_latency = 1 127 forward_latency = 0 128 response_latency = 1 129 snoop_response_latency = 1 130 |
131 # Use a snoop-filter by default, and set the latency to zero as 132 # the lookup is assumed to overlap with the frontend latency of 133 # the crossbar 134 snoop_filter = SnoopFilter(lookup_latency = 0) 135 |
|
128# One of the key coherent crossbar instances is the system 129# interconnect, tying together the CPU clusters, GPUs, and any I/O 130# coherent masters, and DRAM controllers. 131class SystemXBar(CoherentXBar): 132 # 128-bit crossbar by default 133 width = 16 134 135 # A handful pipeline stages for each portion of the latency --- 19 unchanged lines hidden --- | 136# One of the key coherent crossbar instances is the system 137# interconnect, tying together the CPU clusters, GPUs, and any I/O 138# coherent masters, and DRAM controllers. 139class SystemXBar(CoherentXBar): 140 # 128-bit crossbar by default 141 width = 16 142 143 # A handful pipeline stages for each portion of the latency --- 19 unchanged lines hidden --- |