summaryrefslogtreecommitdiff
path: root/src/mem/ruby/config/defaults.rb
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2010-01-29 20:29:17 -0800
committerSteve Reinhardt <steve.reinhardt@amd.com>2010-01-29 20:29:17 -0800
commit98c94cfe3ce83634f3bad79ca18263f42e36ca6a (patch)
treeb299448162932c5574b87238a3b02a01efd14db6 /src/mem/ruby/config/defaults.rb
parentb43994ba45b7805da0d1d9600e5cbb8332057403 (diff)
downloadgem5-98c94cfe3ce83634f3bad79ca18263f42e36ca6a.tar.xz
ruby: Convert most Ruby objects to M5 SimObjects.
The necessary companion conversion of Ruby objects generated by SLICC are converted to M5 SimObjects in the following patch, so this patch alone does not compile. Conversion of Garnet network models is also handled in a separate patch; that code is temporarily disabled from compiling to allow testing of interim code.
Diffstat (limited to 'src/mem/ruby/config/defaults.rb')
-rw-r--r--src/mem/ruby/config/defaults.rb248
1 files changed, 0 insertions, 248 deletions
diff --git a/src/mem/ruby/config/defaults.rb b/src/mem/ruby/config/defaults.rb
deleted file mode 100644
index 224bf1eeb..000000000
--- a/src/mem/ruby/config/defaults.rb
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/ruby
-
-class NetPort < LibRubyObject
- # number of transitions a SLICC state machine can transition per
- # cycle
- default_param :transitions_per_cycle, Integer, 32
-
- # buffer_size limits the size of all other buffers connecting to
- # SLICC Controllers. When 0, infinite buffering is used.
- default_param :buffer_size, Integer, 32
-
- default_param :number_of_TBEs, Integer, 256
-
- default_param :recycle_latency, Integer, 10
-end
-
-class Sequencer < IfacePort
- # Maximum number of requests (including prefetches) outstanding from
- # the sequencer
- default_param :max_outstanding_requests, Integer, 16
-
- # Maximum number of cycles a request is can be outstanding before
- # the Sequencer declares we're in deadlock/livelock
- default_param :deadlock_threshold, Integer, 500000
-
-end
-
-class Debug < LibRubyObject
- # For debugging purposes, one can enable a trace of all the protocol
- # state machine changes. Unfortunately, the code to generate the
- # trace is protocol specific. To enable the code for some of the
- # standard protocols,
- # 1. change protocol_trace = true
- # 2. enable debug in the Ruby Makefile
- # 3. set start_time = 1
- default_param :protocol_trace, Boolean, false
-
- # a string for filtering debugging output. Valid options (also see Debug.cc):
- # {"System", 's' },
- # {"Node", 'N' },
- # {"Queue", 'q' },
- # {"Event Queue", 'e' },
- # {"Network", 'n' },
- # {"Sequencer", 'S' },
- # {"Tester", 't' },
- # {"Generated", 'g' },
- # {"SLICC", 'l' },
- # {"Network Queues", 'Q' },
- # {"Time", 'T' },
- # {"Network Internals", 'i' },
- # {"Store Buffer", 'b' },
- # {"Cache", 'c' },
- # {"Predictor", 'p' },
- # {"Allocator", 'a' }
- #
- # e.g., "sq" will print system and queue debugging messages
- # Set to "none" for no debugging output
- default_param :filter_string, String, "none"
-
- # filters debugging messages based on priority (none, low, med, high)
- default_param :verbosity_string, String, "none"
-
- # filters debugging messages based on a ruby time
- default_param :start_time, Integer, 1
-
- # sends debugging messages to a output filename
- # set to "none" to print to stdout
- default_param :output_filename, String, "none"
-end
-
-class Topology < LibRubyObject
- # The default link latency between all nodes (internal and external)
- # in the toplogy
- default_param :link_latency, Integer, 1
-
- # the bandwidth from an external network port to it's corresponding
- # internal switch
- default_param :external_bw, Integer, 64
-
- # the bandwitch between internal switches in the network
- default_param :internal_bw, Integer, 16
-
- # indicates whether the topology config will be displayed in the
- # stats file
- default_param :print_config, Boolean, false
-end
-
-class Network < LibRubyObject
- default_param :endpoint_bandwidth, Integer, 10000
- default_param :adaptive_routing, Boolean, true
- default_param :number_of_virtual_networks, Integer, 5
- # default_param :fan_out_degree, Integer, 4
-
- # default buffer size. Setting to 0 indicates infinite buffering
- # default_param :buffer_size, Integer, 0
-
- # local memory latency ?? NetworkLinkLatency
- default_param :link_latency, Integer, 1
-
- # on chip latency
- # default_param :on_chip_latency, Integer, 1
-
- default_param :control_msg_size, Integer, 8
-end
-
-class GarnetNetwork < Network
- default_param :flit_size, Integer, 16
- default_param :number_of_pipe_stages, Integer, 4
- default_param :vcs_per_class, Integer, 4
- default_param :buffer_size, Integer, 4
- default_param :using_network_testing, Boolean, false
-end
-
-class Tracer < LibRubyObject
- default_param :warmup_length, Integer, 1000000
-end
-
-class Profiler < LibRubyObject
- default_param :hot_lines, Boolean, false
- default_param :all_instructions, Boolean, false
-end
-
-class MemoryControl < LibRubyObject
-
- default_param :mem_bus_cycle_multiplier, Integer, 10
- default_param :banks_per_rank, Integer, 8
- default_param :ranks_per_dimm, Integer, 2
- default_param :dimms_per_channel, Integer, 2
- default_param :bank_bit_0, Integer, 8
- default_param :rank_bit_0, Integer, 11
- default_param :dimm_bit_0, Integer, 12
- default_param :bank_queue_size, Integer, 12
- default_param :bank_busy_time, Integer, 11
- default_param :rank_rank_delay, Integer, 1
- default_param :read_write_delay, Integer, 2
- default_param :basic_bus_busy_time, Integer, 2
- default_param :mem_ctl_latency, Integer, 12
- default_param :refresh_period, Integer, 1560
- default_param :tFaw, Integer, 0
- default_param :mem_random_arbitrate, Integer, 11
- default_param :mem_fixed_delay, Integer, 0
-
-end
-
-###### Protocols #######
-
-## MI_example protocol
-
-class MI_example_CacheController < L1CacheController
- default_param :issue_latency, Integer, 2
- default_param :cache_response_latency, Integer, 12
-end
-
-class MI_example_DirectoryController < DirectoryController
- default_param :directory_latency, Integer, 6
-end
-
-class MI_example_DMAController < DMAController
- default_param :request_latency, Integer, 6
-end
-
-## MOESI_CMP_directory protocol
-
-class MOESI_CMP_directory_L1CacheController < L1CacheController
- default_param :request_latency, Integer, 2
-end
-
-class MOESI_CMP_directory_L2CacheController < CacheController
- default_param :request_latency, Integer, 2
- default_param :response_latency, Integer, 2
-end
-
-class MOESI_CMP_directory_DirectoryController < DirectoryController
- default_param :directory_latency, Integer, 6
-end
-
-class MOESI_CMP_directory_DMAController < DMAController
- default_param :request_latency, Integer, 14
- default_param :response_latency, Integer, 14
-end
-
-class MESI_CMP_directory_L2CacheController < CacheController
- default_param :request_latency, Integer, 2
- default_param :response_latency, Integer, 2
- default_param :to_L1_latency, Integer, 1
-
-#if 0 then automatically calculated
- default_param :lowest_bit, Integer, 0
- default_param :highest_bit, Integer, 0
-end
-
-class MESI_CMP_directory_L1CacheController < L1CacheController
- default_param :l1_request_latency, Integer, 2
- default_param :l1_response_latency, Integer, 2
- default_param :to_L2_latency, Integer, 1
-end
-
-
-class MESI_CMP_directory_DirectoryController < DirectoryController
- default_param :to_mem_ctrl_latency, Integer, 1
- default_param :directory_latency, Integer, 6
-end
-
-class MESI_CMP_directory_DMAController < DMAController
- default_param :request_latency, Integer, 6
-end
-
-class RubySystem
-
- # Random seed used by the simulation. If set to "rand", the seed
- # will be set to the current wall clock at libruby
- # initialization. Otherwise, set this to an integer.
- default_param :random_seed, Object, 1234 #"rand"
-
- # When set to true, the simulation will insert random delays on
- # message enqueue times. Note that even if this is set to false,
- # you can still have a non-deterministic simulation if random seed
- # is set to "rand". This is used mainly to debug protocols by forcing
- # really strange interleavings and should not be used for
- # performance runs.
- default_param :randomization, Boolean, false
-
- # tech_nm is the device size used to calculate latency and area
- # information about system components
- default_param :tech_nm, Integer, 45
-
- # default frequency for the system
- default_param :freq_mhz, Integer, 3000
-
- # the default cache block size in the system
- # libruby does not currently support different block sizes
- # among different caches
- # Must be a power of two
- default_param :block_size_bytes, Integer, 64
-
- # The default debug object. There shouldn't be a reason to ever
- # change this line. To adjust debug paramters statically, adjust
- # them in the Debug class above. To adjust these fields
- # dynamically, access this RubySystem object,
- # e.g. RubySystem.debug.protocol_trace = true
- default_param :debug, Debug, Debug.new("dbg0")
- default_param :tracer, Tracer, Tracer.new("tracer0")
-
- default_param :profiler, Profiler, Profiler.new("profiler0")
-end
-
-
-