1/*
2 * Copyright (c) 2013-2015 Advanced Micro Devices, Inc.
3 * All rights reserved.
4 *
5 * For use for simulation and test purposes only
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:

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

44#include "mem/protocol/HSASegment.hh"
45#include "mem/protocol/PrefetchBit.hh"
46#include "mem/protocol/RubyAccessMode.hh"
47#include "mem/protocol/RubyRequestType.hh"
48#include "mem/protocol/SequencerRequestType.hh"
49#include "mem/request.hh"
50#include "mem/ruby/common/Address.hh"
51#include "mem/ruby/common/Consumer.hh"
52#include "mem/ruby/system/RubyPort.hh"
52#include "mem/ruby/system/Sequencer.hh"
53
54class DataBlock;
55class CacheMsg;
56class MachineID;
57class CacheMemory;
58
59class RubyGPUCoalescerParams;
60

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

250
251
252 RequestStatus getRequestStatus(PacketPtr pkt,
253 RubyRequestType request_type);
254 bool insertRequest(PacketPtr pkt, RubyRequestType request_type);
255
256 bool handleLlsc(Addr address, GPUCoalescerRequest* request);
257
258 // Private copy constructor and assignment operator
259 GPUCoalescer(const GPUCoalescer& obj);
260 GPUCoalescer& operator=(const GPUCoalescer& obj);
261
258 class IssueEvent : public Event
259 {
260 private:
261 GPUCoalescer *seq;
262 public:
263 IssueEvent(GPUCoalescer *_seq);
264 void process();
265 const char *description() const;

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

361 std::vector<Stats::Histogram *> m_missMachLatencyHist;
362 std::vector< std::vector<Stats::Histogram *> > m_missTypeMachLatencyHist;
363
364 //! Histograms for recording the breakdown of miss latency
365 std::vector<Stats::Histogram *> m_IssueToInitialDelayHist;
366 std::vector<Stats::Histogram *> m_InitialToForwardDelayHist;
367 std::vector<Stats::Histogram *> m_ForwardToFirstResponseDelayHist;
368 std::vector<Stats::Histogram *> m_FirstResponseToCompletionDelayHist;
369
370private:
371 // Private copy constructor and assignment operator
372 GPUCoalescer(const GPUCoalescer& obj);
373 GPUCoalescer& operator=(const GPUCoalescer& obj);
374};
375
376inline std::ostream&
377operator<<(std::ostream& out, const GPUCoalescer& obj)
378{
379 obj.print(out);
380 out << std::flush;
381 return out;
382}
383
384#endif // __MEM_RUBY_SYSTEM_GPU_COALESCER_HH__
385