mat.h (10152:52c552138ba1) mat.h (10234:5cb711fa6176)
1/*****************************************************************************
2 * McPAT/CACTI
3 * SOFTWARE LICENSE AGREEMENT
4 * Copyright 2012 Hewlett-Packard Development Company, L.P.
1/*****************************************************************************
2 * McPAT/CACTI
3 * SOFTWARE LICENSE AGREEMENT
4 * Copyright 2012 Hewlett-Packard Development Company, L.P.
5 * Copyright (c) 2010-2013 Advanced Micro Devices, Inc.
5 * All Rights Reserved
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are
9 * met: redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer;
11 * redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the

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

20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
6 * All Rights Reserved
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are
10 * met: redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer;
12 * redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the

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

21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 *
30 ***************************************************************************/
31
32
33
34#ifndef __MAT_H__
35#define __MAT_H__
36
37#include "component.h"
38#include "decoder.h"
39#include "subarray.h"
40#include "wire.h"
41
30 *
31 ***************************************************************************/
32
33
34
35#ifndef __MAT_H__
36#define __MAT_H__
37
38#include "component.h"
39#include "decoder.h"
40#include "subarray.h"
41#include "wire.h"
42
42class Mat : public Component
43{
44 public:
43class Mat : public Component {
44public:
45 Mat(const DynamicParameter & dyn_p);
46 ~Mat();
47 double compute_delays(double inrisetime); // return outrisetime
48 void compute_power_energy();
49
50 const DynamicParameter & dp;
51
52 // TODO: clean up pointers and powerDefs below

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

101 double delay_hit_miss;
102
103 Subarray subarray;
104 powerDef power_bitline, power_searchline, power_matchline;
105 double per_bitline_read_energy;
106 int deg_bl_muxing;
107 int num_act_mats_hor_dir;
108 double delay_writeback;
45 Mat(const DynamicParameter & dyn_p);
46 ~Mat();
47 double compute_delays(double inrisetime); // return outrisetime
48 void compute_power_energy();
49
50 const DynamicParameter & dp;
51
52 // TODO: clean up pointers and powerDefs below

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

101 double delay_hit_miss;
102
103 Subarray subarray;
104 powerDef power_bitline, power_searchline, power_matchline;
105 double per_bitline_read_energy;
106 int deg_bl_muxing;
107 int num_act_mats_hor_dir;
108 double delay_writeback;
109 Area cell,cam_cell;
110 bool is_dram,is_fa, pure_cam, camFlag;
109 Area cell, cam_cell;
110 bool is_dram, is_fa, pure_cam, camFlag;
111 int num_mats;
112 powerDef power_sa;
113 double delay_sa;
114 double leak_power_sense_amps_closed_page_state;
115 double leak_power_sense_amps_open_page_state;
116 double delay_subarray_out_drv;
117 double delay_subarray_out_drv_htree;
118 double delay_comparator;
119 powerDef power_comparator;
120 int num_do_b_mat;
121 int num_so_b_mat;
122 int num_sa_subarray;
123 int num_sa_subarray_search;
124 double C_bl;
125
126 uint32_t num_subarrays_per_mat; // the number of subarrays in a mat
127 uint32_t num_subarrays_per_row; // the number of subarrays in a row of a mat
128
129
111 int num_mats;
112 powerDef power_sa;
113 double delay_sa;
114 double leak_power_sense_amps_closed_page_state;
115 double leak_power_sense_amps_open_page_state;
116 double delay_subarray_out_drv;
117 double delay_subarray_out_drv_htree;
118 double delay_comparator;
119 powerDef power_comparator;
120 int num_do_b_mat;
121 int num_so_b_mat;
122 int num_sa_subarray;
123 int num_sa_subarray_search;
124 double C_bl;
125
126 uint32_t num_subarrays_per_mat; // the number of subarrays in a mat
127 uint32_t num_subarrays_per_row; // the number of subarrays in a row of a mat
128
129
130 private:
130private:
131 double compute_bit_mux_sa_precharge_sa_mux_wr_drv_wr_mux_h();
132 double width_write_driver_or_write_mux();
133 double compute_comparators_height(int tagbits, int number_ways_in_mat, double subarray_mem_cell_area_w);
134 double compute_cam_delay(double inrisetime);
135 double compute_bitline_delay(double inrisetime);
136 double compute_sa_delay(double inrisetime);
137 double compute_subarray_out_drv(double inrisetime);
138 double compute_comparator_delay(double inrisetime);
139
140 int RWP;
141 int ERP;
142 int EWP;
143 int SCHP;
144};
145
146
147
148#endif
131 double compute_bit_mux_sa_precharge_sa_mux_wr_drv_wr_mux_h();
132 double width_write_driver_or_write_mux();
133 double compute_comparators_height(int tagbits, int number_ways_in_mat, double subarray_mem_cell_area_w);
134 double compute_cam_delay(double inrisetime);
135 double compute_bitline_delay(double inrisetime);
136 double compute_sa_delay(double inrisetime);
137 double compute_subarray_out_drv(double inrisetime);
138 double compute_comparator_delay(double inrisetime);
139
140 int RWP;
141 int ERP;
142 int EWP;
143 int SCHP;
144};
145
146
147
148#endif