Lines Matching refs:interface_ip

58       interface_ip(*interface_ip_),
80 icache = new CacheUnit(childXML, &interface_ip);
97 interface_ip.cache_sz = size;
98 interface_ip.line_sz = line;
99 interface_ip.assoc = core_params.instruction_buffer_assoc;
100 interface_ip.nbanks = core_params.instruction_buffer_nbanks;
101 interface_ip.out_w = line * BITS_PER_BYTE;
102 interface_ip.specific_tag = core_params.instruction_buffer_tag_width > 0;
103 interface_ip.tag_w = core_params.instruction_buffer_tag_width;
104 interface_ip.access_mode = Normal;
105 interface_ip.obj_func_dyn_energy = 0;
106 interface_ip.obj_func_dyn_power = 0;
107 interface_ip.obj_func_leak_power = 0;
108 interface_ip.obj_func_cycle_t = 1;
109 interface_ip.num_rw_ports =
111 interface_ip.num_rd_ports = 0;
112 interface_ip.num_wr_ports = 0;
113 interface_ip.num_se_rd_ports = 0;
114 interface_ip.num_search_ports = 0;
115 interface_ip.is_cache = false;
116 interface_ip.pure_ram = true;
117 interface_ip.pure_cam = false;
118 interface_ip.throughput = 1.0 / clockRate;
119 interface_ip.latency = 1.0 / clockRate;
121 IB = new ArrayST(xml_data, &interface_ip, "Instruction Buffer",
147 interface_ip.cache_sz = size;
148 interface_ip.line_sz = line;
149 interface_ip.assoc = assoc;
150 interface_ip.nbanks = banks;
151 interface_ip.out_w = line * BITS_PER_BYTE;
152 interface_ip.specific_tag = tag > 0;
153 interface_ip.tag_w = tag;
154 interface_ip.access_mode = Normal;
155 interface_ip.obj_func_dyn_energy = 0;
156 interface_ip.obj_func_dyn_power = 0;
157 interface_ip.obj_func_leak_power = 0;
158 interface_ip.obj_func_cycle_t = 1;
159 interface_ip.num_rw_ports = 1;
160 interface_ip.num_rd_ports = core_params.predictionW;
161 interface_ip.num_wr_ports = core_params.predictionW;
162 interface_ip.num_se_rd_ports = 0;
163 interface_ip.num_search_ports = 0;
164 interface_ip.is_cache = true;
165 interface_ip.pure_ram = false;
166 interface_ip.pure_cam = false;
167 interface_ip.throughput = inst_fetch_params.btb_throughput / clockRate;
168 interface_ip.latency = inst_fetch_params.btb_latency / clockRate;
170 BTB = new ArrayST(xml_data, &interface_ip, "Branch Target Buffer",
175 BPT = new BranchPredictor(xml_data, &interface_ip,
181 is_default, &interface_ip,
189 is_default, &interface_ip,
196 is_default, &interface_ip,
288 interface_ip(*interface_ip_),
299 interface_ip.pure_cam = false;
303 interface_ip.specific_tag = tag > 0;
304 interface_ip.tag_w = tag;
305 interface_ip.is_cache = true;
306 interface_ip.pure_ram = false;
308 interface_ip.specific_tag = 0;
309 interface_ip.tag_w = 0;
310 interface_ip.is_cache = false;
311 interface_ip.pure_ram = true;
318 interface_ip.assoc = branch_pred_params.assoc;
319 interface_ip.nbanks = branch_pred_params.nbanks;
325 interface_ip.cache_sz = size;
326 interface_ip.line_sz = data;
327 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
328 interface_ip.access_mode = Fast;
329 interface_ip.obj_func_dyn_energy = 0;
330 interface_ip.obj_func_dyn_power = 0;
331 interface_ip.obj_func_leak_power = 0;
332 interface_ip.obj_func_cycle_t = 1;
333 interface_ip.num_rw_ports = 0;
334 interface_ip.num_rd_ports = core_params.predictionW;
335 interface_ip.num_wr_ports = core_params.predictionW;
336 interface_ip.num_se_rd_ports = 0;
337 interface_ip.num_search_ports = 0;
338 interface_ip.throughput = 1.0 / clockRate;
339 interface_ip.latency = 1.0 / clockRate;
340 globalBPT = new ArrayST(xml_data, &interface_ip, "Global Predictor",
350 interface_ip.cache_sz = size;
351 interface_ip.line_sz = data;
352 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
353 interface_ip.access_mode = Fast;
354 interface_ip.obj_func_dyn_energy = 0;
355 interface_ip.obj_func_dyn_power = 0;
356 interface_ip.obj_func_leak_power = 0;
357 interface_ip.obj_func_cycle_t = 1;
358 interface_ip.num_rw_ports = 0;
359 interface_ip.num_rd_ports = core_params.predictionW;
360 interface_ip.num_wr_ports = core_params.predictionW;
361 interface_ip.num_se_rd_ports = 0;
362 interface_ip.num_search_ports = 0;
363 interface_ip.throughput = 1.0 / clockRate;
364 interface_ip.latency = 1.0 / clockRate;
365 L1_localBPT = new ArrayST(xml_data, &interface_ip,
378 interface_ip.cache_sz = size;
379 interface_ip.line_sz = data;
380 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
381 interface_ip.access_mode = Fast;
382 interface_ip.obj_func_dyn_energy = 0;
383 interface_ip.obj_func_dyn_power = 0;
384 interface_ip.obj_func_leak_power = 0;
385 interface_ip.obj_func_cycle_t = 1;
386 interface_ip.num_rw_ports = 0;
387 interface_ip.num_rd_ports = core_params.predictionW;
388 interface_ip.num_wr_ports = core_params.predictionW;
389 interface_ip.num_se_rd_ports = 0;
390 interface_ip.num_search_ports = 0;
391 interface_ip.throughput = 1.0 / clockRate;
392 interface_ip.latency = 1.0 / clockRate;
393 L2_localBPT = new ArrayST(xml_data, &interface_ip,
404 interface_ip.cache_sz = size;
405 interface_ip.line_sz = data;
406 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
407 interface_ip.access_mode = Fast;
408 interface_ip.obj_func_dyn_energy = 0;
409 interface_ip.obj_func_dyn_power = 0;
410 interface_ip.obj_func_leak_power = 0;
411 interface_ip.obj_func_cycle_t = 1;
412 interface_ip.num_rw_ports = 0;
413 interface_ip.num_rd_ports = core_params.predictionW;
414 interface_ip.num_wr_ports = core_params.predictionW;
415 interface_ip.num_se_rd_ports = 0;
416 interface_ip.num_search_ports = 0;
417 interface_ip.throughput = 1.0 / clockRate;
418 interface_ip.latency = 1.0 / clockRate;
419 chooser = new ArrayST(xml_data, &interface_ip, "Predictor Chooser",
428 interface_ip.cache_sz = size;
429 interface_ip.line_sz = data;
430 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
431 interface_ip.access_mode = Fast;
432 interface_ip.obj_func_dyn_energy = 0;
433 interface_ip.obj_func_dyn_power = 0;
434 interface_ip.obj_func_leak_power = 0;
435 interface_ip.obj_func_cycle_t = 1;
436 interface_ip.num_rw_ports = 0;
437 interface_ip.num_rd_ports = core_params.predictionW;
438 interface_ip.num_wr_ports = core_params.predictionW;
439 interface_ip.num_se_rd_ports = 0;
440 interface_ip.num_search_ports = 0;
441 interface_ip.is_cache = false;
442 interface_ip.pure_ram = true;
443 interface_ip.throughput = 1.0 / clockRate;
444 interface_ip.latency = 1.0 / clockRate;
445 RAS = new ArrayST(xml_data, &interface_ip, "RAS", Core_device, clockRate,
509 interface_ip(*interface_ip_),
538 interface_ip.cache_sz = size;
539 interface_ip.line_sz = line;
540 interface_ip.assoc = core_params.scheduler_assoc;
541 interface_ip.nbanks = core_params.scheduler_nbanks;
542 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
543 interface_ip.specific_tag = tag > 0;
544 interface_ip.tag_w = tag;
545 interface_ip.access_mode = Sequential;
546 interface_ip.obj_func_dyn_energy = 0;
547 interface_ip.obj_func_dyn_power = 0;
548 interface_ip.obj_func_leak_power = 0;
549 interface_ip.obj_func_cycle_t = 1;
550 interface_ip.num_rw_ports = 0;
551 interface_ip.num_rd_ports = core_params.peak_issueW;
552 interface_ip.num_wr_ports = core_params.peak_issueW;
553 interface_ip.num_se_rd_ports = 0;
554 interface_ip.num_search_ports = core_params.peak_issueW;
555 interface_ip.is_cache = true;
556 interface_ip.pure_cam = false;
557 interface_ip.pure_ram = false;
558 interface_ip.throughput = 1.0 / clockRate;
559 interface_ip.latency = 1.0 / clockRate;
560 int_inst_window = new ArrayST(xml_data, &interface_ip,
581 &interface_ip,
592 &interface_ip,
631 interface_ip.cache_sz = size;
632 interface_ip.line_sz = data;
633 interface_ip.assoc = core_params.scheduler_assoc;
634 interface_ip.nbanks = core_params.scheduler_nbanks;
635 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
636 interface_ip.specific_tag = tag > 0;
637 interface_ip.tag_w = tag;
638 interface_ip.access_mode = Normal;
639 interface_ip.obj_func_dyn_energy = 0;
640 interface_ip.obj_func_dyn_power = 0;
641 interface_ip.obj_func_leak_power = 0;
642 interface_ip.obj_func_cycle_t = 1;
643 interface_ip.num_rw_ports = 0;
644 interface_ip.num_rd_ports = core_params.peak_issueW;
645 interface_ip.num_wr_ports = core_params.peak_issueW;
646 interface_ip.num_se_rd_ports = 0;
647 interface_ip.num_search_ports = core_params.peak_issueW;
648 interface_ip.is_cache = true;
649 interface_ip.pure_cam = false;
650 interface_ip.pure_ram = false;
651 interface_ip.throughput = NUM_SOURCE_OPERANDS * 1.0 / clockRate;
652 interface_ip.latency = NUM_SOURCE_OPERANDS * 1.0 / clockRate;
653 int_inst_window = new ArrayST(xml_data, &interface_ip, tmp_name,
683 interface_ip.cache_sz = size;
684 interface_ip.line_sz = data;
685 interface_ip.assoc = core_params.scheduler_assoc;
686 interface_ip.nbanks = core_params.scheduler_nbanks;
687 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
688 interface_ip.specific_tag = tag > 0;
689 interface_ip.tag_w = tag;
690 interface_ip.access_mode = Normal;
691 interface_ip.obj_func_dyn_energy = 0;
692 interface_ip.obj_func_dyn_power = 0;
693 interface_ip.obj_func_leak_power = 0;
694 interface_ip.obj_func_cycle_t = 1;
695 interface_ip.num_rw_ports = 0;
696 interface_ip.num_rd_ports = core_params.fp_issueW;
697 interface_ip.num_wr_ports = core_params.fp_issueW;
698 interface_ip.num_se_rd_ports = 0;
699 interface_ip.num_search_ports = core_params.fp_issueW;
700 interface_ip.is_cache = true;
701 interface_ip.pure_cam = false;
702 interface_ip.pure_ram = false;
703 interface_ip.throughput = 1.0 / clockRate;
704 interface_ip.latency = 1.0 / clockRate;
706 new ArrayST(xml_data, &interface_ip, tmp_name, Core_device,
742 interface_ip.cache_sz = data * core_params.ROB_size;
743 interface_ip.line_sz = data;
744 interface_ip.assoc = core_params.ROB_assoc;
745 interface_ip.nbanks = core_params.ROB_nbanks;
746 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
747 interface_ip.specific_tag = core_params.ROB_tag_width > 0;
748 interface_ip.tag_w = core_params.ROB_tag_width;
749 interface_ip.access_mode = Sequential;
750 interface_ip.obj_func_dyn_energy = 0;
751 interface_ip.obj_func_dyn_power = 0;
752 interface_ip.obj_func_leak_power = 0;
753 interface_ip.obj_func_cycle_t = 1;
754 interface_ip.num_rw_ports = 0;
755 interface_ip.num_rd_ports = core_params.peak_commitW;
756 interface_ip.num_wr_ports = core_params.peak_issueW;
757 interface_ip.num_se_rd_ports = 0;
758 interface_ip.num_search_ports = 0;
759 interface_ip.is_cache = false;
760 interface_ip.pure_cam = false;
761 interface_ip.pure_ram = true;
762 interface_ip.throughput = 1.0 / clockRate;
763 interface_ip.latency = 1.0 / clockRate;
764 ROB = new ArrayST(xml_data, &interface_ip, "Reorder Buffer",
776 core_params.peak_issueW, &interface_ip,
785 core_params.fp_issueW, &interface_ip,
799 interface_ip(*interface_ip_),
824 dcache = new CacheUnit(childXML, &interface_ip);
840 interface_ip.cache_sz = size;
841 interface_ip.line_sz = line;
842 interface_ip.assoc = core_params.store_buffer_assoc;
843 interface_ip.nbanks = core_params.store_buffer_nbanks;
844 interface_ip.out_w = line * BITS_PER_BYTE;
845 interface_ip.specific_tag = tag > 0;
846 interface_ip.tag_w = tag;
847 interface_ip.access_mode = Sequential;
848 interface_ip.obj_func_dyn_energy = 0;
849 interface_ip.obj_func_dyn_power = 0;
850 interface_ip.obj_func_leak_power = 0;
851 interface_ip.obj_func_cycle_t = 1;
852 interface_ip.num_rw_ports = 0;
853 interface_ip.num_rd_ports = core_params.memory_ports;
854 interface_ip.num_wr_ports = core_params.memory_ports;
855 interface_ip.num_se_rd_ports = 0;
856 interface_ip.num_search_ports = core_params.memory_ports;
857 interface_ip.is_cache = true;
858 interface_ip.pure_ram = false;
859 interface_ip.pure_cam = false;
860 interface_ip.throughput = 1.0 / clockRate;
861 interface_ip.latency = 1.0 / clockRate;
862 LSQ = new ArrayST(xml_data, &interface_ip, "Store Queue", Core_device,
874 interface_ip.cache_sz = size;
875 interface_ip.line_sz = line;
876 interface_ip.assoc = core_params.load_buffer_assoc;
877 interface_ip.nbanks = core_params.load_buffer_nbanks;
878 interface_ip.out_w = line * BITS_PER_BYTE;
879 interface_ip.specific_tag = tag > 0;
880 interface_ip.tag_w = tag;
881 interface_ip.access_mode = Sequential;
882 interface_ip.obj_func_dyn_energy = 0;
883 interface_ip.obj_func_dyn_power = 0;
884 interface_ip.obj_func_leak_power = 0;
885 interface_ip.obj_func_cycle_t = 1;
886 interface_ip.num_rw_ports = 0;
887 interface_ip.num_rd_ports = core_params.memory_ports;
888 interface_ip.num_wr_ports = core_params.memory_ports;
889 interface_ip.num_se_rd_ports = 0;
890 interface_ip.num_search_ports = core_params.memory_ports;
891 interface_ip.is_cache = true;
892 interface_ip.pure_ram = false;
893 interface_ip.pure_cam = false;
894 interface_ip.throughput = 1.0 / clockRate;
895 interface_ip.latency = 1.0 / clockRate;
896 LoadQ = new ArrayST(xml_data, &interface_ip, "Load Queue", Core_device,
912 interface_ip(*interface_ip_),
925 interface_ip.is_cache = true;
926 interface_ip.pure_cam = false;
927 interface_ip.pure_ram = false;
934 interface_ip.cache_sz = mem_man_params.itlb_number_entries * line;
935 interface_ip.line_sz = line;
936 interface_ip.assoc = mem_man_params.itlb_assoc;
937 interface_ip.nbanks = mem_man_params.itlb_nbanks;
938 interface_ip.out_w = line * BITS_PER_BYTE;
939 interface_ip.specific_tag = tag > 0;
940 interface_ip.tag_w = tag;
941 interface_ip.access_mode = Normal;
942 interface_ip.obj_func_dyn_energy = 0;
943 interface_ip.obj_func_dyn_power = 0;
944 interface_ip.obj_func_leak_power = 0;
945 interface_ip.obj_func_cycle_t = 1;
946 interface_ip.num_rw_ports = core_params.number_instruction_fetch_ports;
947 interface_ip.num_rd_ports = 0;
948 interface_ip.num_wr_ports = 0;
949 interface_ip.num_se_rd_ports = 0;
950 interface_ip.num_search_ports = core_params.number_instruction_fetch_ports;
951 interface_ip.throughput = mem_man_params.itlb_throughput / clockRate;
952 interface_ip.latency = mem_man_params.itlb_latency / clockRate;
953 itlb = new ArrayST(xml_data, &interface_ip, "Instruction TLB", Core_device,
963 interface_ip.cache_sz = mem_man_params.dtlb_number_entries * line;
964 interface_ip.line_sz = line;
965 interface_ip.assoc = mem_man_params.dtlb_assoc;
966 interface_ip.nbanks = mem_man_params.dtlb_nbanks;
967 interface_ip.out_w = line * BITS_PER_BYTE;
968 interface_ip.specific_tag = tag > 0;
969 interface_ip.tag_w = tag;
970 interface_ip.access_mode = Normal;
971 interface_ip.obj_func_dyn_energy = 0;
972 interface_ip.obj_func_dyn_power = 0;
973 interface_ip.obj_func_leak_power = 0;
974 interface_ip.obj_func_cycle_t = 1;
975 interface_ip.num_rw_ports = 0;
976 interface_ip.num_rd_ports = core_params.memory_ports;
977 interface_ip.num_wr_ports = core_params.memory_ports;
978 interface_ip.num_se_rd_ports = 0;
979 interface_ip.num_search_ports = core_params.memory_ports;
980 interface_ip.throughput = mem_man_params.dtlb_throughput / clockRate;
981 interface_ip.latency = mem_man_params.dtlb_latency / clockRate;
982 dtlb = new ArrayST(xml_data, &interface_ip, "Data TLB", Core_device,
1092 interface_ip(*interface_ip_),
1109 interface_ip.cache_sz = core_params.num_IRF_entry * line;
1110 interface_ip.line_sz = line;
1111 interface_ip.assoc = core_params.phy_Regs_IRF_assoc;
1112 interface_ip.nbanks = core_params.phy_Regs_IRF_nbanks;
1113 interface_ip.out_w = line * BITS_PER_BYTE;
1114 interface_ip.specific_tag = core_params.phy_Regs_IRF_tag_width > 0;
1115 interface_ip.tag_w = core_params.phy_Regs_IRF_tag_width;
1116 interface_ip.access_mode = Sequential;
1117 interface_ip.obj_func_dyn_energy = 0;
1118 interface_ip.obj_func_dyn_power = 0;
1119 interface_ip.obj_func_leak_power = 0;
1120 interface_ip.obj_func_cycle_t = 1;
1121 interface_ip.num_rw_ports = 0;
1122 interface_ip.num_rd_ports = core_params.phy_Regs_IRF_rd_ports;
1123 interface_ip.num_wr_ports = core_params.phy_Regs_IRF_wr_ports;
1124 interface_ip.num_se_rd_ports = 0;
1125 interface_ip.num_search_ports = 0;
1126 interface_ip.is_cache = false;
1127 interface_ip.pure_cam = false;
1128 interface_ip.pure_ram = true;
1129 interface_ip.throughput = 1.0 / clockRate;
1130 interface_ip.latency = 1.0 / clockRate;
1131 IRF = new ArrayST(xml_data, &interface_ip, "Integer Register File",
1144 interface_ip.cache_sz = core_params.num_FRF_entry * line;
1145 interface_ip.line_sz = line;
1146 interface_ip.assoc = core_params.phy_Regs_FRF_assoc;
1147 interface_ip.nbanks = core_params.phy_Regs_FRF_nbanks;
1148 interface_ip.out_w = line * BITS_PER_BYTE;
1149 interface_ip.specific_tag = core_params.phy_Regs_FRF_tag_width > 0;
1150 interface_ip.tag_w = core_params.phy_Regs_FRF_tag_width;
1151 interface_ip.access_mode = Sequential;
1152 interface_ip.obj_func_dyn_energy = 0;
1153 interface_ip.obj_func_dyn_power = 0;
1154 interface_ip.obj_func_leak_power = 0;
1155 interface_ip.obj_func_cycle_t = 1;
1156 interface_ip.num_rw_ports = 0;
1157 interface_ip.num_rd_ports = core_params.phy_Regs_FRF_rd_ports;
1158 interface_ip.num_wr_ports = core_params.phy_Regs_FRF_wr_ports;
1159 interface_ip.num_se_rd_ports = 0;
1160 interface_ip.num_search_ports = 0;
1161 interface_ip.is_cache = false;
1162 interface_ip.pure_cam = false;
1163 interface_ip.pure_ram = true;
1164 interface_ip.throughput = 1.0 / clockRate;
1165 interface_ip.latency = 1.0 / clockRate;
1166 FRF = new ArrayST(xml_data, &interface_ip, "FP Register File", Core_device,
1187 interface_ip.cache_sz = core_params.register_window_size *
1189 interface_ip.line_sz = line;
1190 interface_ip.assoc = core_params.register_window_assoc;
1191 interface_ip.nbanks = core_params.register_window_nbanks;
1192 interface_ip.out_w = line * BITS_PER_BYTE;
1193 interface_ip.specific_tag = core_params.register_window_tag_width > 0;
1194 interface_ip.tag_w = core_params.register_window_tag_width;
1195 interface_ip.access_mode = Sequential;
1196 interface_ip.obj_func_dyn_energy = 0;
1197 interface_ip.obj_func_dyn_power = 0;
1198 interface_ip.obj_func_leak_power = 0;
1199 interface_ip.obj_func_cycle_t = 1;
1200 interface_ip.num_rw_ports = core_params.register_window_rw_ports;
1201 interface_ip.num_rd_ports = 0;
1202 interface_ip.num_wr_ports = 0;
1203 interface_ip.num_se_rd_ports = 0;
1204 interface_ip.num_search_ports = 0;
1205 interface_ip.is_cache = false;
1206 interface_ip.pure_cam = false;
1207 interface_ip.pure_ram = true;
1208 interface_ip.throughput =
1210 interface_ip.latency =
1212 RFWIN = new ArrayST(xml_data, &interface_ip, "RegWindow", Core_device,
1228 fpTagBypass(NULL), interface_ip(*interface_ip_),
1235 rfu = new RegFU(xml_data, &interface_ip, core_params, core_stats);
1238 scheu = new SchedulerU(xml_data, &interface_ip, core_params,
1242 exeu = new FunctionalUnit(xml_data, &interface_ip, core_params,
1248 fp_u = new FunctionalUnit(xml_data, &interface_ip,
1253 mul = new FunctionalUnit(xml_data, &interface_ip,
1265 interface_ip.wt = core_params.execu_broadcast_wt;
1266 interface_ip.wire_is_mat_type = core_params.execu_wire_mat_type;
1267 interface_ip.wire_os_mat_type = core_params.execu_wire_mat_type;
1268 interface_ip.throughput = core_params.broadcast_numerator / clockRate;
1269 interface_ip.latency = core_params.broadcast_numerator / clockRate;
1293 &interface_ip, level, clockRate, false,
1303 &interface_ip, level, clockRate, false,
1313 data_w, len, &interface_ip,
1324 data_w, len, &interface_ip,
1338 &interface_ip, level, clockRate,
1348 len, &interface_ip, level,
1364 len, &interface_ip, level, clockRate,
1374 data_w, len, &interface_ip, level,
1385 data_w, len, &interface_ip,
1400 &interface_ip, level,
1413 data_w, len, &interface_ip, level,
1423 data_w, len, &interface_ip,
1439 len, &interface_ip, level, clockRate,
1449 data_w, len, &interface_ip, level,
1460 data_w, len, &interface_ip,
1475 &interface_ip, level,
1489 data_w, len, &interface_ip, level,
1499 data_w, len, &interface_ip,
1543 RAHT(NULL), interface_ip(*interface_ip_),
1581 interface_ip.cache_sz = size;
1582 interface_ip.line_sz = data;
1583 interface_ip.assoc = RAM_BASED_RAT_ASSOC;
1584 interface_ip.nbanks = core_params.front_rat_nbanks;
1585 interface_ip.out_w = out_w * BITS_PER_BYTE;
1586 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1587 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1588 interface_ip.access_mode = Fast;
1589 interface_ip.obj_func_dyn_energy = 0;
1590 interface_ip.obj_func_dyn_power = 0;
1591 interface_ip.obj_func_leak_power = 0;
1592 interface_ip.obj_func_cycle_t = 1;
1593 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1594 interface_ip.num_rd_ports =
1596 interface_ip.num_wr_ports = core_params.decodeW;
1597 interface_ip.num_se_rd_ports = 0;
1598 interface_ip.num_search_ports = 0;
1599 interface_ip.is_cache = false;
1600 interface_ip.pure_cam = false;
1601 interface_ip.pure_ram = true;
1602 interface_ip.throughput = 1.0 / clockRate;
1603 interface_ip.latency = 1.0 / clockRate;
1604 iFRAT = new ArrayST(xml_data, &interface_ip, "Int Front RAT",
1618 interface_ip.cache_sz = size;
1619 interface_ip.line_sz = data;
1620 interface_ip.assoc = RAM_BASED_RAT_ASSOC;
1621 interface_ip.nbanks = core_params.front_rat_nbanks;
1622 interface_ip.out_w = out_w * BITS_PER_BYTE;
1623 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1624 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1625 interface_ip.access_mode = Fast;
1626 interface_ip.obj_func_dyn_energy = 0;
1627 interface_ip.obj_func_dyn_power = 0;
1628 interface_ip.obj_func_leak_power = 0;
1629 interface_ip.obj_func_cycle_t = 1;
1630 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1631 interface_ip.num_rd_ports =
1633 interface_ip.num_wr_ports = core_params.fp_decodeW;
1634 interface_ip.num_se_rd_ports = 0;
1635 interface_ip.num_search_ports = 0;
1636 interface_ip.is_cache = false;
1637 interface_ip.pure_cam = false;
1638 interface_ip.pure_ram = true;
1639 interface_ip.throughput = 1.0 / clockRate;
1640 interface_ip.latency = 1.0 / clockRate;
1641 fFRAT = new ArrayST(xml_data, &interface_ip, "FP Front RAT",
1658 interface_ip.cache_sz = size;
1659 interface_ip.line_sz = data;
1660 interface_ip.assoc = CAM_ASSOC;
1661 interface_ip.nbanks = core_params.front_rat_nbanks;
1662 interface_ip.out_w = out_w * BITS_PER_BYTE;
1663 interface_ip.specific_tag = tag > 0;
1664 interface_ip.tag_w = tag;
1665 interface_ip.access_mode = Fast;
1666 interface_ip.obj_func_dyn_energy = 0;
1667 interface_ip.obj_func_dyn_power = 0;
1668 interface_ip.obj_func_leak_power = 0;
1669 interface_ip.obj_func_cycle_t = 1;
1670 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1671 interface_ip.num_rd_ports = core_params.decodeW;
1672 interface_ip.num_wr_ports = core_params.decodeW;
1673 interface_ip.num_se_rd_ports = 0;
1674 interface_ip.num_search_ports =
1676 interface_ip.is_cache = true;
1677 interface_ip.pure_cam = false;
1678 interface_ip.pure_ram = false;
1679 interface_ip.throughput = 1.0 / clockRate;
1680 interface_ip.latency = 1.0 / clockRate;
1681 iFRAT = new ArrayST(xml_data, &interface_ip, "Int Front RAT",
1697 interface_ip.cache_sz = size;
1698 interface_ip.line_sz = data;
1699 interface_ip.assoc = CAM_ASSOC;
1700 interface_ip.nbanks = core_params.front_rat_nbanks;
1701 interface_ip.out_w = out_w * BITS_PER_BYTE;
1702 interface_ip.specific_tag = tag > 0;
1703 interface_ip.tag_w = tag;
1704 interface_ip.access_mode = Fast;
1705 interface_ip.obj_func_dyn_energy = 0;
1706 interface_ip.obj_func_dyn_power = 0;
1707 interface_ip.obj_func_leak_power = 0;
1708 interface_ip.obj_func_cycle_t = 1;
1709 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1710 interface_ip.num_rd_ports = core_params.fp_decodeW;
1711 interface_ip.num_wr_ports = core_params.fp_decodeW;
1712 interface_ip.num_se_rd_ports = 0;
1713 interface_ip.num_search_ports =
1715 interface_ip.is_cache = true;
1716 interface_ip.pure_cam = false;
1717 interface_ip.pure_ram = false;
1718 interface_ip.throughput = 1.0 / clockRate;
1719 interface_ip.latency = 1.0 / clockRate;
1720 fFRAT = new ArrayST(xml_data, &interface_ip, "FP Front RAT",
1734 interface_ip.cache_sz = size;
1735 interface_ip.line_sz = data;
1736 interface_ip.assoc = RAM_BASED_RAT_ASSOC;
1737 interface_ip.nbanks = core_params.retire_rat_nbanks;
1738 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
1739 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1740 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1741 interface_ip.access_mode = Sequential;
1742 interface_ip.obj_func_dyn_energy = 0;
1743 interface_ip.obj_func_dyn_power = 0;
1744 interface_ip.obj_func_leak_power = 0;
1745 interface_ip.obj_func_cycle_t = 1;
1746 interface_ip.num_rw_ports = core_params.retire_rat_rw_ports;
1747 interface_ip.num_rd_ports = core_params.commitW;
1748 interface_ip.num_wr_ports = core_params.commitW;
1749 interface_ip.num_se_rd_ports = 0;
1750 interface_ip.num_search_ports = 0;
1751 interface_ip.is_cache = false;
1752 interface_ip.pure_cam = false;
1753 interface_ip.pure_ram = true;
1754 interface_ip.throughput = 1.0 / clockRate;
1755 interface_ip.latency = 1.0 / clockRate;
1756 iRRAT = new ArrayST(xml_data, &interface_ip, "Int Retire RAT",
1767 interface_ip.cache_sz = size;
1768 interface_ip.line_sz = data;
1769 interface_ip.assoc = RAM_BASED_RAT_ASSOC;
1770 interface_ip.nbanks = core_params.retire_rat_nbanks;
1771 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
1772 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1773 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1774 interface_ip.access_mode = Sequential;
1775 interface_ip.obj_func_dyn_energy = 0;
1776 interface_ip.obj_func_dyn_power = 0;
1777 interface_ip.obj_func_leak_power = 0;
1778 interface_ip.obj_func_cycle_t = 1;
1779 interface_ip.num_rw_ports = core_params.retire_rat_rw_ports;
1780 interface_ip.num_rd_ports = core_params.fp_decodeW;
1781 interface_ip.num_wr_ports = core_params.fp_decodeW;
1782 interface_ip.num_se_rd_ports = 0;
1783 interface_ip.num_search_ports = 0;
1784 interface_ip.is_cache = false;
1785 interface_ip.pure_cam = false;
1786 interface_ip.pure_ram = true;
1787 interface_ip.throughput = 1.0 / clockRate;
1788 interface_ip.latency = 1.0 / clockRate;
1789 fRRAT = new ArrayST(xml_data, &interface_ip, "FP Retire RAT",
1802 interface_ip.cache_sz = size;
1803 interface_ip.line_sz = data;
1804 interface_ip.assoc = FREELIST_ASSOC;
1805 interface_ip.nbanks = core_params.freelist_nbanks;
1806 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
1807 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1808 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1809 interface_ip.access_mode = Sequential;
1810 interface_ip.obj_func_dyn_energy = 0;
1811 interface_ip.obj_func_dyn_power = 0;
1812 interface_ip.obj_func_leak_power = 0;
1813 interface_ip.obj_func_cycle_t = 1;
1814 interface_ip.num_rw_ports = core_params.freelist_rw_ports;
1815 interface_ip.num_rd_ports = core_params.decodeW;
1816 interface_ip.num_wr_ports =
1818 interface_ip.num_se_rd_ports = 0;
1819 interface_ip.num_search_ports = 0;
1820 interface_ip.is_cache = false;
1821 interface_ip.pure_cam = false;
1822 interface_ip.pure_ram = true;
1823 interface_ip.throughput = 1.0 / clockRate;
1824 interface_ip.latency = 1.0 / clockRate;
1825 ifreeL = new ArrayST(xml_data, &interface_ip, "Integer Free List",
1835 interface_ip.cache_sz = size;
1836 interface_ip.line_sz = data;
1837 interface_ip.assoc = FREELIST_ASSOC;
1838 interface_ip.nbanks = core_params.freelist_nbanks;
1839 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
1840 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1841 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1842 interface_ip.access_mode = Sequential;
1843 interface_ip.obj_func_dyn_energy = 0;
1844 interface_ip.obj_func_dyn_power = 0;
1845 interface_ip.obj_func_leak_power = 0;
1846 interface_ip.obj_func_cycle_t = 1;
1847 interface_ip.num_rw_ports = core_params.freelist_rw_ports;
1848 interface_ip.num_rd_ports = core_params.fp_decodeW;
1849 interface_ip.num_wr_ports =
1851 interface_ip.num_se_rd_ports = 0;
1852 interface_ip.num_search_ports = 0;
1853 interface_ip.is_cache = false;
1854 interface_ip.pure_cam = false;
1855 interface_ip.pure_ram = true;
1856 interface_ip.throughput = 1.0 / clockRate;
1857 interface_ip.latency = 1.0 / clockRate;
1858 ffreeL = new ArrayST(xml_data, &interface_ip, "FP Free List",
1873 interface_ip.cache_sz = size;
1874 interface_ip.line_sz = data;
1875 interface_ip.assoc = RS_RAT_ASSOC;
1876 interface_ip.nbanks = core_params.front_rat_nbanks;
1877 interface_ip.out_w = out_w * BITS_PER_BYTE;
1878 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1879 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1880 interface_ip.access_mode = Fast;
1881 interface_ip.obj_func_dyn_energy = 0;
1882 interface_ip.obj_func_dyn_power = 0;
1883 interface_ip.obj_func_leak_power = 0;
1884 interface_ip.obj_func_cycle_t = 1;
1885 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1886 interface_ip.num_rd_ports =
1888 interface_ip.num_wr_ports = core_params.decodeW;
1889 interface_ip.num_se_rd_ports = 0;
1890 interface_ip.num_search_ports = core_params.commitW;
1891 interface_ip.is_cache = true;
1892 interface_ip.pure_cam = false;
1893 interface_ip.pure_ram = false;
1894 interface_ip.throughput = 1.0 / clockRate;
1895 interface_ip.latency = 1.0 / clockRate;
1896 iFRAT = new ArrayST(xml_data, &interface_ip, "Int Front RAT",
1912 interface_ip.cache_sz = size;
1913 interface_ip.line_sz = data;
1914 interface_ip.assoc = RS_RAT_ASSOC;
1915 interface_ip.nbanks = core_params.front_rat_nbanks;
1916 interface_ip.out_w = out_w * BITS_PER_BYTE;
1917 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
1918 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
1919 interface_ip.access_mode = Fast;
1920 interface_ip.obj_func_dyn_energy = 0;
1921 interface_ip.obj_func_dyn_power = 0;
1922 interface_ip.obj_func_leak_power = 0;
1923 interface_ip.obj_func_cycle_t = 1;
1924 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1925 interface_ip.num_rd_ports =
1927 interface_ip.num_wr_ports = core_params.fp_decodeW;
1928 interface_ip.num_se_rd_ports = 0;
1929 interface_ip.num_search_ports = core_params.fp_issueW;
1930 interface_ip.is_cache = true;
1931 interface_ip.pure_cam = false;
1932 interface_ip.pure_ram = false;
1933 interface_ip.throughput = 1.0 / clockRate;
1934 interface_ip.latency = 1.0 / clockRate;
1935 fFRAT = new ArrayST(xml_data, &interface_ip, "FP Front RAT",
1954 interface_ip.cache_sz = size;
1955 interface_ip.line_sz = data;
1956 interface_ip.assoc = CAM_ASSOC;
1957 interface_ip.nbanks = core_params.front_rat_nbanks;
1958 interface_ip.out_w = out_w * BITS_PER_BYTE;
1959 interface_ip.specific_tag = tag > 0;
1960 interface_ip.tag_w = tag;
1961 interface_ip.access_mode = Fast;
1962 interface_ip.obj_func_dyn_energy = 0;
1963 interface_ip.obj_func_dyn_power = 0;
1964 interface_ip.obj_func_leak_power = 0;
1965 interface_ip.obj_func_cycle_t = 1;
1966 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
1967 interface_ip.num_rd_ports = core_params.decodeW;
1968 interface_ip.num_wr_ports = core_params.decodeW;
1969 interface_ip.num_se_rd_ports = 0;
1970 interface_ip.num_search_ports =
1972 interface_ip.is_cache = true;
1973 interface_ip.pure_cam = false;
1974 interface_ip.pure_ram = false;
1975 interface_ip.throughput = 1.0 / clockRate;
1976 interface_ip.latency = 1.0 / clockRate;
1977 iFRAT = new ArrayST(xml_data, &interface_ip, "Int Front RAT",
1993 interface_ip.cache_sz = size;
1994 interface_ip.line_sz = data;
1995 interface_ip.assoc = CAM_ASSOC;
1996 interface_ip.nbanks = core_params.front_rat_nbanks;
1997 interface_ip.out_w = out_w * BITS_PER_BYTE;
1998 interface_ip.specific_tag = tag > 0;
1999 interface_ip.tag_w = tag;
2000 interface_ip.access_mode = Fast;
2001 interface_ip.obj_func_dyn_energy = 0;
2002 interface_ip.obj_func_dyn_power = 0;
2003 interface_ip.obj_func_leak_power = 0;
2004 interface_ip.obj_func_cycle_t = 1;
2005 interface_ip.num_rw_ports = core_params.front_rat_rw_ports;
2006 interface_ip.num_rd_ports = core_params.decodeW;
2007 interface_ip.num_wr_ports = core_params.fp_decodeW;
2008 interface_ip.num_se_rd_ports = 0;
2009 interface_ip.num_search_ports =
2011 interface_ip.is_cache = true;
2012 interface_ip.pure_cam = false;
2013 interface_ip.pure_ram = false;
2014 interface_ip.throughput = 1.0 / clockRate;
2015 interface_ip.latency = 1.0 / clockRate;
2016 fFRAT = new ArrayST(xml_data, &interface_ip, "FP Front RAT",
2029 interface_ip.cache_sz = size;
2030 interface_ip.line_sz = data;
2031 interface_ip.assoc = FREELIST_ASSOC;
2032 interface_ip.nbanks = core_params.freelist_nbanks;
2033 interface_ip.out_w = interface_ip.line_sz * BITS_PER_BYTE;
2034 interface_ip.specific_tag = NON_CAM_BASED_TAG_WIDTH > 0;
2035 interface_ip.tag_w = NON_CAM_BASED_TAG_WIDTH;
2036 interface_ip.access_mode = Fast;
2037 interface_ip.obj_func_dyn_energy = 0;
2038 interface_ip.obj_func_dyn_power = 0;
2039 interface_ip.obj_func_leak_power = 0;
2040 interface_ip.obj_func_cycle_t = 1;
2041 interface_ip.num_rw_ports = core_params.freelist_rw_ports;
2042 interface_ip.num_rd_ports = core_params.decodeW;
2043 interface_ip.num_wr_ports =
2045 interface_ip.num_se_rd_ports = 0;
2046 interface_ip.num_search_ports = 0;
2047 interface_ip.is_cache = false;
2048 interface_ip.pure_cam = false;
2049 interface_ip.pure_ram = true;
2050 interface_ip.throughput = 1.0 / clockRate;
2051 interface_ip.latency = 1.0 / clockRate;
2052 ifreeL = new ArrayST(xml_data, &interface_ip, "Unified Free List",
2063 &interface_ip, core_params,
2068 "FP Dependency Check?", &interface_ip,
2076 ithCore(_ithCore), interface_ip(*interface_ip_) {
2096 l2cache = new CacheUnit(childXML, &interface_ip);
2105 ifu = new InstFetchU(xml_data, &interface_ip, core_params,
2108 lsu = new LoadStoreU(xml_data, &interface_ip, core_params,
2111 mmu = new MemManU(xml_data, &interface_ip, core_params,
2114 exu = new EXECU(xml_data, &interface_ip, lsu->lsq_height,
2117 undiffCore = new UndiffCore(xml_data, &interface_ip, core_params);
2120 rnu = new RENAMINGU(xml_data, &interface_ip, core_params,
2124 corepipe = new Pipeline(xml_data, &interface_ip, core_params);