com.cmpware.cmp.links
Class CellBE_FIFO

java.lang.Object
  extended by com.cmpware.cmp.Link
      extended by com.cmpware.cmp.links.FIFO
          extended by com.cmpware.cmp.links.CellBE_FIFO
All Implemented Interfaces:
MemoryMappedIOReader, MemoryMappedIOWriter

public class CellBE_FIFO
extends FIFO

This class is exactly like the typical FIFO, except that it does not stall when the FIFO is full. Instead it quietly overwrites the last entry. This implements the functionality of the PPU to SPU mailbox in the Cell BE.

Copyright (c) 2007 Cmpware, Inc. All Rights Reserved.

Author:
SAG

Field Summary
static java.lang.String copyright
          Copyright string
 
Fields inherited from class com.cmpware.cmp.links.FIFO
DEFAULT_SIZE, fifo, head, mmioe, readAddr, readCount, readFlag, readStallCount, tail, writeAddr, writeCount, writeStallCount, writtenFlag
 
Constructor Summary
CellBE_FIFO(int size)
          This constructor initializes the Cell BE FIFO.
 
Method Summary
 void write(int val)
          This method writes a word to the Memory Mapped IO.
 void writeCommit()
          All Memory Mapped IO writes are performed whenever data is available.
 
Methods inherited from class com.cmpware.cmp.links.FIFO
free, getReadAddress, getReadCount, getReadStallCount, getValue, getWriteAddress, getWriteCount, getWriteStallCount, isEmpty, isFull, isReadable, isWriteable, read, readCommit, reset, setBufferSize, setReadAddress, setWriteAddress, used
 
Methods inherited from class com.cmpware.cmp.Link
get
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

copyright

public static final java.lang.String copyright
Copyright string

See Also:
Constant Field Values
Constructor Detail

CellBE_FIFO

public CellBE_FIFO(int size)
This constructor initializes the Cell BE FIFO.

Parameters:
size - the size of the Cell BE FIFO.
Method Detail

write

public void write(int val)
           throws MemoryMappedIOException
Description copied from interface: MemoryMappedIOWriter
This method writes a word to the Memory Mapped IO.

Specified by:
write in interface MemoryMappedIOWriter
Overrides:
write in class FIFO
Parameters:
val - The value to write to the Memory Mapped IO.
Throws:
MemoryMappedIOException - - this method throws a MemoryMappedIOException if the write could not be completed on this cycle. This will typically cause a stall of the processor and a retry on the next cycle.

writeCommit

public void writeCommit()
Description copied from interface: MemoryMappedIOWriter
All Memory Mapped IO writes are performed whenever data is available. But because this is a multiprocessor simulation environment, it may not be proper to flag this communication resource as "free" until the end of the simulation cycle. This is necessary to preserve clock boundaries in multiprocessor simulation environments. This method should be called at the end of all activity in a simulation cycle and should tag the resource as free as necessary.

Specified by:
writeCommit in interface MemoryMappedIOWriter
Overrides:
writeCommit in class FIFO