Repository navigation
Expand file tree
/
Copy pathcrossbar_latency_queue.h
More file actions
57 lines (51 loc) · 1.79 KB
/
Copy pathcrossbar_latency_queue.h
File metadata and controls
57 lines (51 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//
// Created by 10791 on 2023/1/12.
//
#ifndef BUFFER_DEQUE_CROSSBAR_LATENCY_QUEUE_H
#define BUFFER_DEQUE_CROSSBAR_LATENCY_QUEUE_H
#include <vector>
#include <deque>
#include "mem_fetch.h"
//#include "crossbar.h"
#include "config_reader.h"
class LocalInterconnect;
class crossbar_latency_queue {
public:
crossbar_latency_queue(std::map<std::string, int> & crossbar_config, int n_shader, int n_mem) : n_shader
(n_shader), n_mem(n_mem)//传入对应的元素
{
crossbar_configs = crossbar_config;//读入数据
bank = crossbar_configs["crossbar_bank"];
latency = crossbar_configs["crossbar_latency"];
buffer_size = crossbar_configs["crossbar_buffer_size"];
crossbar_latency_queues.resize(bank);
for (auto &deque : crossbar_latency_queues)
{
deque.resize(latency, nullptr);//元素设为空指针
}
time = 0;
next_node_out = 0;
next_node_in = 0;
}
void crossbar_latency_queue_cycle(LocalInterconnect& out_crossbar,
LocalInterconnect& in_crossbar, int out_buffer, int
in_buffer);
private:
std::vector<std::deque<Packet*> > crossbar_latency_queues;
std::map<std::string, int> crossbar_configs;
int bank;
int latency;
int buffer_size;
int time;
int next_node_out;
int next_node_in;
int n_shader, n_mem;
};
//2374
//2375: l1_latency_queue.resize(m_config->m_L1D_config.l1_banks);
//2376 assert(m_config->m_L1D_config.l1_latency > 0);
//
//2378 for (unsigned j = 0; j < m_config->m_L1D_config.l1_banks; j++)
//2379: l1_latency_queue[j].resize(m_config->m_L1D_config.l1_latency,
//2380 (mem_fetch *)NULL);
#endif //BUFFER_DEQUE_CROSSBAR_LATENCY_QUEUE_H