gem5 v24.1.0.1
Loading...
Searching...
No Matches
cache_blk.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012-2013, 2023-2024 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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
14 * Copyright (c) 2020 Inria
15 * Copyright (c) 2007 The Regents of The University of Michigan
16 * All rights reserved.
17 *
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions are
20 * met: redistributions of source code must retain the above copyright
21 * notice, this list of conditions and the following disclaimer;
22 * redistributions in binary form must reproduce the above copyright
23 * notice, this list of conditions and the following disclaimer in the
24 * documentation and/or other materials provided with the distribution;
25 * neither the name of the copyright holders nor the names of its
26 * contributors may be used to endorse or promote products derived from
27 * this software without specific prior written permission.
28 *
29 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 */
41
43
44#include "base/cprintf.hh"
45
46namespace gem5
47{
48
49void
51 const int src_requestor_ID, const uint32_t task_ID,
52 const uint64_t partition_id)
53{
54 // Make sure that the block has been properly invalidated
55 assert(!isValid());
56
57 insert(tag);
58
59 // Set source requestor ID
60 setSrcRequestorId(src_requestor_ID);
61
62 // Set task ID
63 setTaskId(task_ID);
64
65 // Set partition ID
66 setPartitionId(partition_id);
67
68 // Set insertion tick as current tick
70
71 // Insertion counts as a reference to the block
73}
74
75void
76CacheBlkPrintWrapper::print(std::ostream &os, int verbosity,
77 const std::string &prefix) const
78{
79 ccprintf(os, "%sblk %c%c%c%c\n", prefix,
80 blk->isValid() ? 'V' : '-',
81 blk->isSet(CacheBlk::WritableBit) ? 'E' : '-',
82 blk->isSet(CacheBlk::DirtyBit) ? 'M' : '-',
83 blk->isSecure() ? 'S' : '-');
84}
85
86} // namespace gem5
Definitions of a simple cache block class.
void print(std::ostream &o, int verbosity=0, const std::string &prefix="") const
Definition cache_blk.cc:76
void insert(const KeyType &tag, const int src_requestor_ID, const uint32_t task_ID, const uint64_t partition_id)
Set member variables when a block insertion occurs.
Definition cache_blk.cc:50
@ WritableBit
write permission
Definition cache_blk.hh:81
@ DirtyBit
dirty (modified)
Definition cache_blk.hh:88
bool isSet(unsigned bits) const
Checks the given coherence bits are set.
Definition cache_blk.hh:242
void setTaskId(const uint32_t task_id)
Set the task id value.
Definition cache_blk.hh:472
void setTickInserted()
Set the current tick as this block's insertion tick.
Definition cache_blk.hh:485
void increaseRefCount()
Get the number of references to this block since insertion.
Definition cache_blk.hh:300
void setPartitionId(const uint64_t partitionId)
Setter for _partitionId.
Definition cache_blk.hh:479
void setSrcRequestorId(const uint32_t id)
Set the source requestor id.
Definition cache_blk.hh:475
virtual bool isValid() const
Checks if the entry is valid.
bool isSecure() const
Check if this block holds data from the secure memory space.
Bitfield< 17 > os
Definition misc.hh:838
Copyright (c) 2024 Arm Limited All rights reserved.
Definition binary32.hh:36
void ccprintf(cp::Print &print)
Definition cprintf.hh:130

Generated on Mon Jan 13 2025 04:28:37 for gem5 by doxygen 1.9.8