X86TLB.py revision 6654
14997Sgblack@eecs.umich.edu# Copyright (c) 2007 The Hewlett-Packard Development Company 24997Sgblack@eecs.umich.edu# All rights reserved. 34997Sgblack@eecs.umich.edu# 44997Sgblack@eecs.umich.edu# Redistribution and use of this software in source and binary forms, 54997Sgblack@eecs.umich.edu# with or without modification, are permitted provided that the 64997Sgblack@eecs.umich.edu# following conditions are met: 74997Sgblack@eecs.umich.edu# 84997Sgblack@eecs.umich.edu# The software must be used only for Non-Commercial Use which means any 94997Sgblack@eecs.umich.edu# use which is NOT directed to receiving any direct monetary 104997Sgblack@eecs.umich.edu# compensation for, or commercial advantage from such use. Illustrative 114997Sgblack@eecs.umich.edu# examples of non-commercial use are academic research, personal study, 124997Sgblack@eecs.umich.edu# teaching, education and corporate research & development. 134997Sgblack@eecs.umich.edu# Illustrative examples of commercial use are distributing products for 144997Sgblack@eecs.umich.edu# commercial advantage and providing services using the software for 154997Sgblack@eecs.umich.edu# commercial advantage. 164997Sgblack@eecs.umich.edu# 174997Sgblack@eecs.umich.edu# If you wish to use this software or functionality therein that may be 184997Sgblack@eecs.umich.edu# covered by patents for commercial use, please contact: 194997Sgblack@eecs.umich.edu# Director of Intellectual Property Licensing 204997Sgblack@eecs.umich.edu# Office of Strategy and Technology 214997Sgblack@eecs.umich.edu# Hewlett-Packard Company 224997Sgblack@eecs.umich.edu# 1501 Page Mill Road 234997Sgblack@eecs.umich.edu# Palo Alto, California 94304 244997Sgblack@eecs.umich.edu# 254997Sgblack@eecs.umich.edu# Redistributions of source code must retain the above copyright notice, 264997Sgblack@eecs.umich.edu# this list of conditions and the following disclaimer. Redistributions 274997Sgblack@eecs.umich.edu# in binary form must reproduce the above copyright notice, this list of 284997Sgblack@eecs.umich.edu# conditions and the following disclaimer in the documentation and/or 294997Sgblack@eecs.umich.edu# other materials provided with the distribution. Neither the name of 304997Sgblack@eecs.umich.edu# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its 314997Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from 324997Sgblack@eecs.umich.edu# this software without specific prior written permission. No right of 334997Sgblack@eecs.umich.edu# sublicense is granted herewith. Derivatives of the software and 344997Sgblack@eecs.umich.edu# output created using the software may be prepared, but only for 354997Sgblack@eecs.umich.edu# Non-Commercial Uses. Derivatives of the software may be shared with 364997Sgblack@eecs.umich.edu# others provided: (i) the others agree to abide by the list of 374997Sgblack@eecs.umich.edu# conditions herein which includes the Non-Commercial Use restrictions; 384997Sgblack@eecs.umich.edu# and (ii) such Derivatives of the software include the above copyright 394997Sgblack@eecs.umich.edu# notice to acknowledge the contribution from this software where 404997Sgblack@eecs.umich.edu# applicable, this list of conditions and the disclaimer below. 414997Sgblack@eecs.umich.edu# 424997Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 434997Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 444997Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 454997Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 464997Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 474997Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 484997Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 494997Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 504997Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 514997Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 524997Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 534997Sgblack@eecs.umich.edu# 544997Sgblack@eecs.umich.edu# Authors: Gabe Black 554997Sgblack@eecs.umich.edu 566654Snate@binkert.orgfrom m5.defines import buildEnv 574997Sgblack@eecs.umich.edufrom m5.params import * 585237Sgblack@eecs.umich.edufrom m5.proxy import * 596654Snate@binkert.org 605628Sgblack@eecs.umich.edufrom BaseTLB import BaseTLB 616654Snate@binkert.orgfrom MemObject import MemObject 625236Sgblack@eecs.umich.edu 636654Snate@binkert.orgif buildEnv['FULL_SYSTEM']: 645245Sgblack@eecs.umich.edu class X86PagetableWalker(MemObject): 655245Sgblack@eecs.umich.edu type = 'X86PagetableWalker' 665610Snate@binkert.org cxx_class = 'X86ISA::Walker' 675245Sgblack@eecs.umich.edu port = Port("Port for the hardware table walker") 685245Sgblack@eecs.umich.edu system = Param.System(Parent.any, "system object") 695245Sgblack@eecs.umich.edu 705628Sgblack@eecs.umich.educlass X86TLB(BaseTLB): 714997Sgblack@eecs.umich.edu type = 'X86TLB' 726022Sgblack@eecs.umich.edu cxx_class = 'X86ISA::TLB' 736022Sgblack@eecs.umich.edu size = Param.Int(64, "TLB size") 746654Snate@binkert.org if buildEnv['FULL_SYSTEM']: 755245Sgblack@eecs.umich.edu walker = Param.X86PagetableWalker(\ 765245Sgblack@eecs.umich.edu X86PagetableWalker(), "page table walker") 77