def __init__(self, parameters=None): """ Set the defaults for a 16KB memory in 4 bytes lines without multiplexers """ # Set default parameters (ARM7TDMI 0.13um) if not parameters: parameters = dict() parameters["size"] = 16384 # Bytes parameters["line_width"] = 4 # Bytes parameters["word_size"] = 32 # Bits # Set probe names probes = [ 'num_reads', 'num_writes' ] # NUmbers of reads and writes # Specify the model type self.kind = 'memory' # Init model (model.PULL mode) model.__init__(self, model.PULL, probes, parameters) # Standard energy and power values self.renergy = 23.21 self.wenergy = 27.34 # Default coefficients # best fit: XXXPow = c[0] * words + c[1] * bits + c[2] * mux + c[3] * area + c[4]" self.c_read = [ -1.09167887e-05 , 6.05436716e-01 , 2.04028667e-02 , 2.76256799e-06 , 3.49943207e+00] self.c_write = [ -1.79541119e-05 , 7.16287132e-01 , 3.25601331e-02 , 3.91476756e-06 , 3.94571979e+00] self.c_leakage = [ 2.92556486e-02 , 1.05218644e+01 , 2.02997888e+00 , 1.86243641e-03 , 1.27200413e+03] self.update_parameters()
def __init__(self, parameters=None): """ Set the defaults for the arm7tdmi """ # Set default parameters (ARM7TDMI 0.13um) if not parameters: parameters = dict() parameters["idlePower"] = 0.01 # mW/MHz parameters["activePower"] = 0.03 # mW/MHz parameters["frequency"] = 250 # MHz # Set probe names probes = ["active_time", "idle_time"] # Init model model.__init__(self, model.PULL, probes, parameters) self.kind = "processor"
def __init__(self, parameters=None): """ Set the defaults for the arm7tdmi """ # Set default parameters (ARM7TDMI 0.13um) if not parameters: parameters = dict() parameters["read_energy"] = 0.1318707 # pJ parameters["write_energy"] = 0.1546865 # pJ parameters["clock_frequency"] = 500 # MHz # Set probe names probes = [ 'num_reads', 'num_writes' ] # NUmbers of reads and writes # Specify the model type self.kind = 'memory' # Init model (model.PULL mode) model.__init__(self, model.PULL, probes, parameters)
def __init__(self, parameters=None): """ Set the defaults for the arm7tdmi """ # Set default parameters (ARM7TDMI 0.13um) if not parameters: parameters = dict() parameters["size"] = 16384 # Bytes parameters["block_size"] = 32 # Block size in bytes parameters["associativity"] = 2 # Power of two parameters["subbanks"] = 1.0 # Power of two parameters["technology"] = 0.07 # In micron (e.g. 0.07) parameters["read_ports"] = 0 # Number parameters["write_ports"] = 0 # Number parameters["rw_ports"] = 1 # Number parameters["param_cache"] = True # Bool # Set probe names probes = [ 'readHitNum', 'writeHitNum', 'readMissNum', 'writeMissNum' ] # NUmbers of reads and writes # Default values for the default parameters (J) self.rhitenergy = 1.5260595272768383e-10 self.whitenergy = 1.2664516868313481e-10 self.rmissenergy = 3.2881930812357897e-10 self.wmissenergy = 1.5498319357070943e-10 self.leakage = 0.01638873861267354 # <=== W! # Specify the model type self.kind = 'cache' # Load parameter cache #if parameters["param_cache"]: self.load_cache() # Init model (model.PULL mode) model.__init__(self, model.PULL, probes, parameters) if parameters is not None: self.update_parameters()