java.lang.Object
uk.ac.manchester.spinnaker.messages.model.ChipInfo
All Implemented Interfaces:
HasChipLocation

public class ChipInfo extends Object implements HasChipLocation
Represents the system variables for a chip, received from the chip SDRAM.
  • Constructor Details

    • ChipInfo

      public ChipInfo(ByteBuffer systemData)
      Parse a system data block.
      Parameters:
      systemData - The data retrieved from SDRAM on the board.
  • Method Details

    • getX

      public int getX()
      Specified by:
      getX in interface HasChipLocation
      Returns:
      The X coordinate of the chip.
    • getY

      public int getY()
      Specified by:
      getY in interface HasChipLocation
      Returns:
      The Y coordinate of the chip.
    • getSize

      public MachineDimensions getSize()
      Returns:
      The number of chips in the x- and y-dimensions.
    • getDebugChip

      public HasChipLocation getDebugChip()
      Returns:
      The location of the chip to send debug messages to.
    • isPeerToPeerAvailable

      public boolean isPeerToPeerAvailable()
      Returns:
      Indicates if peer-to-peer is working on the chip.
    • getNearestNeighbourLastID

      public int getNearestNeighbourLastID()
      Returns:
      The last ID used in nearest neighbour transaction.
    • getEthernetChip

      public HasChipLocation getEthernetChip()
      Returns:
      The location of the nearest chip with Ethernet.
    • getHardwareVersion

      public int getHardwareVersion()
      Returns:
      The version of the hardware in use.
    • isEthernetAvailable

      public boolean isEthernetAvailable()
      Returns:
      Indicates if Ethernet is available on this chip.
    • getP2PBRepeats

      public int getP2PBRepeats()
      Returns:
      Number of times to send out P2PB packets.
    • getLogP2PSequenceLength

      public int getLogP2PSequenceLength()
      Returns:
      Log (base 2) of the peer-to-peer sequence length.
    • getClockDivisor

      public int getClockDivisor()
      Returns:
      The clock divisors for system & router clocks.
    • getTimePhaseScale

      public int getTimePhaseScale()
      Returns:
      The time-phase scaling factor.
    • getClockMilliseconds

      public long getClockMilliseconds()
      Returns:
      The time since startup in milliseconds.
    • getTimeMilliseconds

      public int getTimeMilliseconds()
      Returns:
      The number of milliseconds in the current second.
    • getUnixTimestamp

      public int getUnixTimestamp()
      Returns:
      The time in seconds since midnight, 1st January 1970.
    • getRouterTimePhaseTimer

      public int getRouterTimePhaseTimer()
      Returns:
      The router time-phase timer.
    • getCPUClock

      public int getCPUClock()
      Returns:
      The CPU clock frequency in MHz.
    • getSDRAMClock

      public int getSDRAMClock()
      Returns:
      The SDRAM clock frequency in MHz.
    • getNearestNeighbourForward

      public int getNearestNeighbourForward()
      Returns:
      Nearest-Neighbour forward parameter.
    • getNearestNeighbourRetry

      public int getNearestNeighbourRetry()
      Returns:
      Nearest-Neighbour retry parameter.
    • getLinkPeekTimeout

      public int getLinkPeekTimeout()
      Returns:
      The link peek/poke timeout in microseconds.
    • getLEDFlashPeriod

      public int getLEDFlashPeriod()
      Returns:
      The LED period in millisecond units, or 10 to show load.
    • getNetInitBCWaitTime

      public int getNetInitBCWaitTime()
      Returns:
      The time to wait after last BC during network initialisation in 10 ms units.
    • getNetInitPhase

      public int getNetInitPhase()
      Returns:
      The phase of boot process (see enum netinit_phase_e).
    • getBootChip

      public HasChipLocation getBootChip()
      Returns:
      The location of the chip from which the system was booted.
    • getLEDs

      public int[] getLEDs()
      Returns:
      The LED definitions.
    • getRandomSeeed

      public int getRandomSeeed()
      Returns:
      The random seed.
    • isRootChip

      public boolean isRootChip()
      Returns:
      Indicates if this is the root chip.
    • getNumSharedMessageBuffers

      public int getNumSharedMessageBuffers()
      Returns:
      The number of shared message buffers.
    • getNearestNeighbourDelay

      public int getNearestNeighbourDelay()
      Returns:
      The delay between nearest-neighbour packets in microseconds.
    • getSoftwareWatchdogCount

      public int getSoftwareWatchdogCount()
      Returns:
      The number of watch dog timeouts before an error is raised.
    • getSystemRAMHeapAddress

      public MemoryLocation getSystemRAMHeapAddress()
      Returns:
      The base address of the system SDRAM heap.
    • getSDRAMHeapAddress

      public MemoryLocation getSDRAMHeapAddress()
      Returns:
      The base address of the user SDRAM heap.
    • getIOBUFSize

      public int getIOBUFSize()
      Returns:
      The size of the iobuf buffer in bytes.
    • getSystemSDRAMSize

      public int getSystemSDRAMSize()
      Returns:
      The size of the system SDRAM in bytes.
    • getSystemBufferSize

      public int getSystemBufferSize()
      Returns:
      The size of the system buffer in words.
    • getBootSignature

      public int getBootSignature()
      Returns:
      The boot signature.
    • getNearestNeighbourMemoryAddress

      public MemoryLocation getNearestNeighbourMemoryAddress()
      Returns:
      The memory pointer for nearest neighbour global operations.
    • getLock

      public int getLock()
      Returns:
      The lock. (??)
    • getLinksAvailable

      public BitSet getLinksAvailable()
      Returns:
      Bit mask (6 bits) of links enabled.
    • getLastBiffID

      public int getLastBiffID()
      Returns:
      Last ID used in BIFF packet.
    • getBoardTestFlags

      public int getBoardTestFlags()
      Returns:
      Board testing flags.
    • getSharedMessageFirstFreeAddress

      public MemoryLocation getSharedMessageFirstFreeAddress()
      Returns:
      Pointer to the first free shared message buffer.
    • getSharedMessageCountInUse

      public int getSharedMessageCountInUse()
      Returns:
      The number of shared message buffers in use.
    • getSharedMessageMaximumUsed

      public int getSharedMessageMaximumUsed()
      Returns:
      The maximum number of shared message buffers used.
    • getUser0

      public int getUser0()
      Returns:
      The first user variable.
    • getUser1

      public int getUser1()
      Returns:
      The second user variable.
    • getUser2

      public int getUser2()
      Returns:
      The third user variable.
    • getUser4

      public int getUser4()
      Returns:
      The fourth user variable.
    • getStatusMap

      public byte[] getStatusMap()
      Returns:
      The status map set during SCAMP boot.
    • getPhysicalToVirtualCoreMap

      public byte[] getPhysicalToVirtualCoreMap()
      Returns:
      The physical core ID to virtual core ID map; entries with a value of 0xFF are non-operational cores.
    • getVirtualToPhysicalCoreMap

      public byte[] getVirtualToPhysicalCoreMap()
      Returns:
      The virtual core ID to physical core ID map.
    • getVirtualCoreIDs

      public Collection<Integer> getVirtualCoreIDs()
      Returns:
      A list of available cores by virtual core ID (including the monitor).
    • getNumWorkingCores

      public int getNumWorkingCores()
      Returns:
      The number of working cores.
    • getNumSCAMPWorkingCores

      public int getNumSCAMPWorkingCores()
      Returns:
      The number of SCAMP working cores.
    • getSDRAMBaseAddress

      public MemoryLocation getSDRAMBaseAddress()
      Returns:
      The base address of SDRAM.
    • getSystemRAMBaseAddress

      public MemoryLocation getSystemRAMBaseAddress()
      Returns:
      The base address of System RAM.
    • getSystemSDRAMBaseAddress

      public MemoryLocation getSystemSDRAMBaseAddress()
      Returns:
      The base address of System SDRAM.
    • getCPUInformationBaseAddress

      public MemoryLocation getCPUInformationBaseAddress()
      Returns:
      The base address of the CPU information blocks.
    • getSystemSDRAMHeapAddress

      public MemoryLocation getSystemSDRAMHeapAddress()
      Returns:
      The base address of the system SDRAM heap.
    • getRouterTableCopyAddress

      public MemoryLocation getRouterTableCopyAddress()
      Returns:
      The address of the copy of the routing tables.
    • getP2PHopTableAddress

      public MemoryLocation getP2PHopTableAddress()
      Returns:
      The address of the peer-to-peer hop tables.
    • getAllocatedTagTableAddress

      public MemoryLocation getAllocatedTagTableAddress()
      Returns:
      The address of the allocated tag table.
    • getFirstFreeRouterEntry

      public int getFirstFreeRouterEntry()
      Returns:
      The ID of the first free router entry.
    • getNumActiveP2PAddresses

      public int getNumActiveP2PAddresses()
      Returns:
      The number of active peer-to-peer addresses.
    • getAppDataTableAddress

      public MemoryLocation getAppDataTableAddress()
      Returns:
      The address of the application data table.
    • getSharedMessageBufferAddress

      public MemoryLocation getSharedMessageBufferAddress()
      Returns:
      The address of the shared message buffers.
    • getMonitorMailboxFlags

      public int getMonitorMailboxFlags()
      Returns:
      The monitor incoming mailbox flags.
    • getIPAddress

      public InetAddress getIPAddress()
      Returns:
      The IP address of the chip.
    • getFixedRoute

      public int getFixedRoute()
      Returns:
      A (virtual) copy of the router FR register.
    • getBoardInfoAddress

      public MemoryLocation getBoardInfoAddress()
      Returns:
      A pointer to the board information structure.