timing.hh (11168:f98eb2da15a4) timing.hh (11169:44b5c183c3cd)
1/*
2 * Copyright (c) 2012-2013,2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

50
51class TimingSimpleCPU : public BaseSimpleCPU
52{
53 public:
54
55 TimingSimpleCPU(TimingSimpleCPUParams * params);
56 virtual ~TimingSimpleCPU();
57
1/*
2 * Copyright (c) 2012-2013,2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

50
51class TimingSimpleCPU : public BaseSimpleCPU
52{
53 public:
54
55 TimingSimpleCPU(TimingSimpleCPUParams * params);
56 virtual ~TimingSimpleCPU();
57
58 virtual void init();
58 void init() override;
59
60 private:
61
62 /*
63 * If an access needs to be broken into fragments, currently at most two,
64 * the the following two classes are used as the sender state of the
65 * packets so the CPU can keep track of everything. In the main packet
66 * sender state, there's an array with a spot for each fragment. If a

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

260 PacketPtr ifetch_pkt;
261 PacketPtr dcache_pkt;
262
263 Cycles previousCycle;
264
265 protected:
266
267 /** Return a reference to the data port. */
59
60 private:
61
62 /*
63 * If an access needs to be broken into fragments, currently at most two,
64 * the the following two classes are used as the sender state of the
65 * packets so the CPU can keep track of everything. In the main packet
66 * sender state, there's an array with a spot for each fragment. If a

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

260 PacketPtr ifetch_pkt;
261 PacketPtr dcache_pkt;
262
263 Cycles previousCycle;
264
265 protected:
266
267 /** Return a reference to the data port. */
268 virtual MasterPort &getDataPort() { return dcachePort; }
268 MasterPort &getDataPort() override { return dcachePort; }
269
270 /** Return a reference to the instruction port. */
269
270 /** Return a reference to the instruction port. */
271 virtual MasterPort &getInstPort() { return icachePort; }
271 MasterPort &getInstPort() override { return icachePort; }
272
273 public:
274
275 DrainState drain() override;
276 void drainResume() override;
277
272
273 public:
274
275 DrainState drain() override;
276 void drainResume() override;
277
278 void switchOut();
279 void takeOverFrom(BaseCPU *oldCPU);
278 void switchOut() override;
279 void takeOverFrom(BaseCPU *oldCPU) override;
280
280
281 void verifyMemoryMode() const;
281 void verifyMemoryMode() const override;
282
282
283 virtual void activateContext(ThreadID thread_num);
284 virtual void suspendContext(ThreadID thread_num);
283 void activateContext(ThreadID thread_num) override;
284 void suspendContext(ThreadID thread_num) override;
285
285
286 Fault readMem(Addr addr, uint8_t *data, unsigned size, unsigned flags);
286 Fault readMem(Addr addr, uint8_t *data, unsigned size,
287 unsigned flags) override;
287
288 Fault writeMem(uint8_t *data, unsigned size,
288
289 Fault writeMem(uint8_t *data, unsigned size,
289 Addr addr, unsigned flags, uint64_t *res);
290 Addr addr, unsigned flags, uint64_t *res) override;
290
291 void fetch();
292 void sendFetch(const Fault &fault, RequestPtr req, ThreadContext *tc);
293 void completeIfetch(PacketPtr );
294 void completeDataAccess(PacketPtr pkt);
295 void advanceInst(const Fault &fault);
296
297 /** This function is used by the page table walker to determine if it could

--- 65 unchanged lines hidden ---
291
292 void fetch();
293 void sendFetch(const Fault &fault, RequestPtr req, ThreadContext *tc);
294 void completeIfetch(PacketPtr );
295 void completeDataAccess(PacketPtr pkt);
296 void advanceInst(const Fault &fault);
297
298 /** This function is used by the page table walker to determine if it could

--- 65 unchanged lines hidden ---