gem5
v24.0.0.0
Loading...
Searching...
No Matches
arch
power
pagetable.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2002-2005 The Regents of The University of Michigan
3
* Copyright (c) 2007 MIPS Technologies, Inc.
4
* Copyright (c) 2007-2008 The Florida State University
5
* Copyright (c) 2009 The University of Edinburgh
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions are
10
* met: redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer;
12
* redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution;
15
* neither the name of the copyright holders nor the names of its
16
* contributors may be used to endorse or promote products derived from
17
* this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
#ifndef __ARCH_POWER_PAGETABLE_H__
33
#define __ARCH_POWER_PAGETABLE_H__
34
35
#include "
base/types.hh
"
36
#include "
sim/serialize.hh
"
37
38
namespace
gem5
39
{
40
41
namespace
PowerISA
42
{
43
44
// ITB/DTB page table entry
45
struct
PTE
46
{
47
// What parts of the VAddr (from bits 28..11) should be used in
48
// translation (includes Mask and MaskX from PageMask)
49
Addr
Mask
;
50
51
// Virtual Page Number (/2) (Includes VPN2 + VPN2X .. bits 31..11
52
// from EntryHi)
53
Addr
VPN
;
54
55
// Address Space ID (8 bits) // Lower 8 bits of EntryHi
56
uint8_t
asid
;
57
58
// Global Bit - Obtained by an *AND* of EntryLo0 and EntryLo1 G bit
59
bool
G
;
60
61
/* Contents of Entry Lo0 */
62
Addr
PFN0
;
// Physical Frame Number - Even
63
bool
D0
;
// Even entry Dirty Bit
64
bool
V0
;
// Even entry Valid Bit
65
uint8_t
C0
;
// Cache Coherency Bits - Even
66
67
/* Contents of Entry Lo1 */
68
Addr
PFN1
;
// Physical Frame Number - Odd
69
bool
D1
;
// Odd entry Dirty Bit
70
bool
V1
;
// Odd entry Valid Bit
71
uint8_t
C1
;
// Cache Coherency Bits (3 bits)
72
73
// The next few variables are put in as optimizations to reduce TLB
74
// lookup overheads. For a given Mask, what is the address shift amount
75
// and what is the OffsetMask
76
int
AddrShiftAmount
;
77
int
OffsetMask
;
78
79
bool
80
Valid
()
81
{
82
return
(
V0
|
V1
);
83
};
84
85
void
serialize
(
CheckpointOut
&cp)
const
;
86
void
unserialize
(
CheckpointIn
&cp);
87
};
88
89
}
// namespace PowerISA
90
}
// namespace gem5
91
92
#endif
// __ARCH_POWER_PAGETABLE_H__
types.hh
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
gem5::CheckpointIn
Definition
serialize.hh:69
gem5
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition
binary32.hh:36
gem5::CheckpointOut
std::ostream CheckpointOut
Definition
serialize.hh:66
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition
types.hh:147
serialize.hh
gem5::PowerISA::PTE
Definition
pagetable.hh:46
gem5::PowerISA::PTE::asid
uint8_t asid
Definition
pagetable.hh:56
gem5::PowerISA::PTE::D1
bool D1
Definition
pagetable.hh:69
gem5::PowerISA::PTE::Valid
bool Valid()
Definition
pagetable.hh:80
gem5::PowerISA::PTE::VPN
Addr VPN
Definition
pagetable.hh:53
gem5::PowerISA::PTE::G
bool G
Definition
pagetable.hh:59
gem5::PowerISA::PTE::OffsetMask
int OffsetMask
Definition
pagetable.hh:77
gem5::PowerISA::PTE::C1
uint8_t C1
Definition
pagetable.hh:71
gem5::PowerISA::PTE::V0
bool V0
Definition
pagetable.hh:64
gem5::PowerISA::PTE::D0
bool D0
Definition
pagetable.hh:63
gem5::PowerISA::PTE::C0
uint8_t C0
Definition
pagetable.hh:65
gem5::PowerISA::PTE::Mask
Addr Mask
Definition
pagetable.hh:49
gem5::PowerISA::PTE::PFN1
Addr PFN1
Definition
pagetable.hh:68
gem5::PowerISA::PTE::AddrShiftAmount
int AddrShiftAmount
Definition
pagetable.hh:76
gem5::PowerISA::PTE::V1
bool V1
Definition
pagetable.hh:70
gem5::PowerISA::PTE::serialize
void serialize(CheckpointOut &cp) const
Definition
pagetable.cc:43
gem5::PowerISA::PTE::PFN0
Addr PFN0
Definition
pagetable.hh:62
gem5::PowerISA::PTE::unserialize
void unserialize(CheckpointIn &cp)
Definition
pagetable.cc:62
Generated on Tue Jun 18 2024 16:23:57 for gem5 by
doxygen
1.11.0