Beispiel #1
0
    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()
Beispiel #2
0
    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"
Beispiel #3
0
    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)
Beispiel #4
0
    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()