Package mars.tools
Class CacheSimulator
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
mars.tools.AbstractMarsTool
mars.tools.CacheSimulator
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,RootPaneContainer
,WindowConstants
,Memory.Listener
,MarsTool
A data cache simulator for simulating and illustrating data cache performance.
- Version 1.0 (16-18 October 2006)
- Version 1.1 (7 November 2006)
- Version 1.2 (23 December 2010) fixes a bug in the hit/miss animator under full or N-way set associative.
It was animating the block of initial access (first block of set). Now it animates the block of final access
(where address found or stored). Also added log display to GUI (previously used
System.out
).
- Author:
- Pete Sanderson
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
static enum
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.Type
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionboolean
Controls display of debugging info.static final String
static final String
Fields inherited from class mars.tools.AbstractMarsTool
dialog
Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabled
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected JComponent
Method that constructs the main cache simulator display area.getName()
Required MarsTool method to return Tool name.protected void
The only post-GUI initialization is to create the initial cache object based on the default settings of the various combo boxes.protected void
Initialize all JComboBox choice structures not already initialized at declaration.void
memoryRead
(int address, int length, int value, int wordAddress, int wordValue) Invoked upon any read operation which is relevant to this listener's active range.void
memoryWritten
(int address, int length, int value, int wordAddress, int wordValue) Invoked upon any write operation which is relevant to this listener's active range.protected void
reset()
Method to reset cache, counters and display when the Reset button selected.protected void
Register this tool as a listener of memory and/or registers, if applicable.protected void
Unregister this tool as a listener of memory and/or registers, if applicable.Methods inherited from class mars.tools.AbstractMarsTool
action, buildButtonArea, buildContentPane, closeTool, getHelpComponent, handleClose
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface mars.tools.MarsTool
getIcon, getToolMenuOrder
Methods inherited from interface mars.mips.hardware.Memory.Listener
memoryReset
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
debug
public boolean debugControls display of debugging info. -
NAME
- See Also:
-
VERSION
- See Also:
-
-
Constructor Details
-
CacheSimulator
public CacheSimulator()Construct an instance of this tool. This will be used by theToolManager
.
-
-
Method Details
-
getName
Required MarsTool method to return Tool name.- Specified by:
getName
in interfaceMarsTool
- Specified by:
getName
in classAbstractMarsTool
- Returns:
- Tool name. MARS will display this in menu item.
-
buildMainDisplayArea
Method that constructs the main cache simulator display area. It is organized vertically into three major components: the cache configuration which an be modified using combo boxes, the cache performance which is updated as the attached MIPS program executes, and the runtime log which is optionally used to display log of each cache access.- Specified by:
buildMainDisplayArea
in classAbstractMarsTool
- Returns:
- The GUI component containing these three areas.
-
startObserving
protected void startObserving()Description copied from class:AbstractMarsTool
Register this tool as a listener of memory and/or registers, if applicable. This method is called when the tool is opened by the user. Does nothing by default. -
stopObserving
protected void stopObserving()Description copied from class:AbstractMarsTool
Unregister this tool as a listener of memory and/or registers, if applicable. This method is called when the tool is closed by the user. Does nothing by default.- Overrides:
stopObserving
in classAbstractMarsTool
- See Also:
-
memoryRead
public void memoryRead(int address, int length, int value, int wordAddress, int wordValue) Description copied from interface:Memory.Listener
Invoked upon any read operation which is relevant to this listener's active range. Does nothing by default.- Parameters:
address
- The address which was read from.length
- The number of bytes read. Will always be 1 (single byte),Memory.BYTES_PER_HALFWORD
, orMemory.BYTES_PER_WORD
.value
- The value which was read.wordAddress
- The address of the word affected by the operation.wordValue
- The full value of the word.
-
memoryWritten
public void memoryWritten(int address, int length, int value, int wordAddress, int wordValue) Description copied from interface:Memory.Listener
Invoked upon any write operation which is relevant to this listener's active range. Does nothing by default.- Parameters:
address
- The address which was written to.length
- The number of bytes written. Will always be 1 (single byte),Memory.BYTES_PER_HALFWORD
, orMemory.BYTES_PER_WORD
.value
- The value which was written.wordAddress
- The address of the word affected by the operation.wordValue
- The resulting value of the word.
-
initializePreGUI
protected void initializePreGUI()Initialize all JComboBox choice structures not already initialized at declaration. Also creates initial default cache object. Overrides inherited method that does nothing.- Overrides:
initializePreGUI
in classAbstractMarsTool
-
initializePostGUI
protected void initializePostGUI()The only post-GUI initialization is to create the initial cache object based on the default settings of the various combo boxes. Overrides inherited method that does nothing.- Overrides:
initializePostGUI
in classAbstractMarsTool
-
reset
protected void reset()Method to reset cache, counters and display when the Reset button selected. Overrides inherited method that does nothing.- Overrides:
reset
in classAbstractMarsTool
-