X86TLB.py revision 5245
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
565236Sgblack@eecs.umich.edufrom MemObject import MemObject
575245Sgblack@eecs.umich.edufrom m5.SimObject import SimObject
584997Sgblack@eecs.umich.edufrom m5.params import *
595237Sgblack@eecs.umich.edufrom m5.proxy import *
605245Sgblack@eecs.umich.edufrom m5 import build_env
615236Sgblack@eecs.umich.edu
625245Sgblack@eecs.umich.eduif build_env['FULL_SYSTEM']:
635245Sgblack@eecs.umich.edu    class X86PagetableWalker(MemObject):
645245Sgblack@eecs.umich.edu        type = 'X86PagetableWalker'
655245Sgblack@eecs.umich.edu        cxx_namespace = 'X86ISA'
665245Sgblack@eecs.umich.edu        cxx_class = '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
705245Sgblack@eecs.umich.educlass X86TLB(SimObject):
714997Sgblack@eecs.umich.edu    type = 'X86TLB'
725245Sgblack@eecs.umich.edu    cxx_namespace = 'X86ISA'
735245Sgblack@eecs.umich.edu    cxx_class = 'TLB'
744997Sgblack@eecs.umich.edu    abstract = True
755124Sgblack@eecs.umich.edu    size = Param.Int("TLB size")
765245Sgblack@eecs.umich.edu    if build_env['FULL_SYSTEM']:
775245Sgblack@eecs.umich.edu        walker = Param.X86PagetableWalker(\
785245Sgblack@eecs.umich.edu                X86PagetableWalker(), "page table walker")
794997Sgblack@eecs.umich.edu
804997Sgblack@eecs.umich.educlass X86DTB(X86TLB):
814997Sgblack@eecs.umich.edu    type = 'X86DTB'
824997Sgblack@eecs.umich.edu    cxx_namespace = 'X86ISA'
834997Sgblack@eecs.umich.edu    cxx_class = 'DTB'
844997Sgblack@eecs.umich.edu
855124Sgblack@eecs.umich.edu    size = 64
864997Sgblack@eecs.umich.edu
874997Sgblack@eecs.umich.educlass X86ITB(X86TLB):
884997Sgblack@eecs.umich.edu    type = 'X86ITB'
894997Sgblack@eecs.umich.edu    cxx_namespace = 'X86ISA'
904997Sgblack@eecs.umich.edu    cxx_class = 'ITB'
914997Sgblack@eecs.umich.edu
925124Sgblack@eecs.umich.edu    size = 64
93