Deleted Added
sdiff udiff text old ( 11670:6ce719503eae ) new ( 12065:e3e51756dfef )
full compact
1#
2# Copyright (c) 2011-2015 Advanced Micro Devices, Inc.
3# All rights reserved.
4#
5# For use for simulation and test purposes only
6#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions are met:

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

366 req_to_l3, probe_to_l3, resp_to_l3):
367 self.reqToDir = req_to_dir
368 self.respToDir = resp_to_dir
369 self.l3UnblockToDir = l3_unblock_to_dir
370 self.reqToL3 = req_to_l3
371 self.probeToL3 = probe_to_l3
372 self.respToL3 = resp_to_l3
373
374class DirMem(RubyDirectoryMemory, CntrlBase):
375 def create(self, options, ruby_system, system):
376 self.version = self.versionCount()
377
378 phys_mem_size = AddrRange(options.mem_size).size()
379 mem_module_size = phys_mem_size / options.num_dirs
380 dir_size = MemorySize('0B')
381 dir_size.value = mem_module_size
382 self.size = dir_size
383
384class DirCntrl(Directory_Controller, CntrlBase):
385 def create(self, options, ruby_system, system):
386 self.version = self.versionCount()
387
388 self.response_latency = 30
389
390 self.directory = DirMem()
391 self.directory.create(options, ruby_system, system)
392
393 self.L3CacheMemory = L3Cache()
394 self.L3CacheMemory.create(options, ruby_system, system)
395
396 self.l3_hit_latency = max(self.L3CacheMemory.dataAccessLatency,
397 self.L3CacheMemory.tagAccessLatency)
398
399 self.number_of_TBEs = options.num_tbes

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

462 # controller constructors are called before the network constructor
463 #
464
465 TCC_bits = int(math.log(options.num_tccs, 2))
466
467 # This is the base crossbar that connects the L3s, Dirs, and cpu/gpu
468 # Clusters
469 mainCluster = Cluster(extBW = 512, intBW = 512) # 1 TB/s
470 for i in xrange(options.num_dirs):
471
472 dir_cntrl = DirCntrl(TCC_select_num_bits = TCC_bits)
473 dir_cntrl.create(options, ruby_system, system)
474 dir_cntrl.number_of_TBEs = 2560 * options.num_compute_units
475 #Enough TBEs for all TCP TBEs
476
477 # Connect the Directory controller to the ruby network
478 dir_cntrl.requestFromCores = MessageBuffer(ordered = True)
479 dir_cntrl.requestFromCores.slave = ruby_system.network.master
480
481 dir_cntrl.responseFromCores = MessageBuffer()

--- 270 unchanged lines hidden ---