VIRTUTECH CONFIDENTIAL    Previous - Up - Next

ppc750fx

Provided by
ppc750fx, ppc750fx-turbo
Class Hierarchy
conf-objectlog-objectppc750fx
Interfaces Implemented
log_object, simple_interrupt, exception, int_register, ppc, processor, event_poster
Ports
SRESET (signal), HRESET (signal)
Description
ppc750fx processor simulation

Attributes

Attributes inherited from class conf-object
attributes, classname, component, iface, name, object_id, queue
Attributes inherited from class log-object
access_count, log_buffer, log_buffer_last, log_buffer_size, log_group_mask, log_groups, log_level, log_type_mask
Attribute List
address_width
Pseudo class attribute; read-only access; type: unknown type.

(phys-bits, virt-bits) Number of bits in physical and virtual addresses.

aprof_views
Session attribute; read/write access; type: [[o,i]*].

((address profiler, view)*) Address profiler views selected for this processor. Affects only the display of profiling information, and has nothing to do with collecting it.

This attribute should contain a list of lists: one list for each address profiler view you want to select (in the order they are to appear), each containing first the address profiler object, then the index of the desired view.

architecture
Pseudo class attribute; read-only access; type: unknown type.

Implemented architecture (ppc32)

available_timebase_modes
Pseudo class attribute; read-only access; type: [s*].

Lists all available timebase modes (except the default 'null' mode)

big_endian
Pseudo attribute; read-only access; type: b.

This attribute is TRUE if the processor uses big-endian byte order and FALSE if it uses little-endian.

branch_prof_support
Pseudo attribute; read-only access; type: b.

True if this processor supports branch profiling in -stall mode, false otherwise.

cpu_group
Optional attribute; read/write access; type: Object or Nil.

The group that this processor belongs to. A cpu group is a collection if cpus that may share memory and/or send interrupts between them. The group must implement the "cpu_group"interface and the ppc-broadcast-businterface.

cr
Optional attribute; read/write access; type: Integer.

Condition register

ctr
Optional attribute; read/write access; type: Integer.

Counter register

current_context
Session attribute; read/write access; type: Object.

Current context object.

cycle_fractions
Optional attribute; read/write access; type: Integer.

Modeling parameter related to processor scheduling.

cycles
Optional attribute; read/write access; type: Integer.

Time measured in cycles from machine start.

dabr
Optional attribute; read/write access; type: Integer.

Data Address Breakpoint Register

dar
Optional attribute; read/write access; type: Integer.

Data address register

dbat
Pseudo attribute; read/write access; type: [[ii]*].

((du0,dl0), (du1,dl2),...(du3,dl3)) List for accessing all DBATs

dbat0l
Optional attribute; read/write access; type: Integer.

Data BAT lower 0

dbat0u
Optional attribute; read/write access; type: Integer.

Data BAT upper 0

dbat1l
Optional attribute; read/write access; type: Integer.

Data BAT lower 1

dbat1u
Optional attribute; read/write access; type: Integer.

Data BAT upper 1

dbat2l
Optional attribute; read/write access; type: Integer.

Data BAT lower 2

dbat2u
Optional attribute; read/write access; type: Integer.

Data BAT upper 2

dbat3l
Optional attribute; read/write access; type: Integer.

Data BAT lower 3

dbat3u
Optional attribute; read/write access; type: Integer.

Data BAT upper 3

dbat4l
Optional attribute; read/write access; type: Integer.

Data BAT lower 4

dbat4u
Optional attribute; read/write access; type: Integer.

Data BAT upper 4

dbat5l
Optional attribute; read/write access; type: Integer.

Data BAT lower 5

dbat5u
Optional attribute; read/write access; type: Integer.

Data BAT upper 5

dbat6l
Optional attribute; read/write access; type: Integer.

Data BAT lower 6

dbat6u
Optional attribute; read/write access; type: Integer.

Data BAT upper 6

dbat7l
Optional attribute; read/write access; type: Integer.

Data BAT lower 7

dbat7u
Optional attribute; read/write access; type: Integer.

Data BAT upper 7

dbg_compile_block
Pseudo attribute; write-only access; type: unknown type.

Force compile of block.

dcache
Optional attribute; read/write access; type: Object or Nil.

Cache object affected by data cache control instructions.

dec
Optional attribute; read/write access; type: Integer.

Decrementer register

dec_remainder
Optional attribute; read/write access; type: Integer.

Decrementer remainder

do_allocate_target_registers
Session class attribute; read/write access; type: unknown type.

Target register allocation enable.

do_reissue
Session attribute; write-only access; type: Integer.

Obsolete attribute that was used to keep information about the current memory transaction if is_stalling is set.

dsisr
Optional attribute; read/write access; type: Integer.

DSI source register

dtlb
Optional attribute; read/write access; type: [[[iiiii]{2}]*].

(((valid0, lru0, tag0, eapi0, pte0), (valid1, lru1, tag1, eapi1, pte1)), ...) Data TLB

ear
Optional attribute; read/write access; type: Integer.

External access register

enabled_flag
Optional attribute; read/write access; type: b.

TRUE if the processor is enabled. If FALSE, it will see time (cycles) pass but not execute steps.

event_desc
Pseudo attribute; read-only access; ; integer indexed; indexed type: [[o|n,s,i]*].

((object, description, time)*). All events in queue with a human-readable description. The attribute is indexed by queue (Sim_Queue_Step/Time).

fprs
Optional attribute; read/write access; type: [i{32}]; integer indexed; indexed type: Integer.

(f0, f1, ..., f31) Floating-point registers

fpscr
Optional attribute; read/write access; type: Integer.

Floating-point condition register

freq_mhz
Required attribute; read/write access; type: i|f.

Processor clock frequency in MHz.

gprs
Optional attribute; read/write access; type: [i{32}]; integer indexed; indexed type: Integer.

(r0, r1, ..., r31) General purpose registers

halt_steps
Optional attribute; read/write access; type: Integer.

Number of steps spent waiting in nap/doze mode.

hid0
Optional attribute; read/write access; type: Integer.

Hardware implementation register 0

hid1
Optional attribute; read/write access; type: Integer.

Hardware implementation register 1

hid2
Optional attribute; read/write access; type: Integer.

Hardware implementation register 2

host_floating_point_enable
Session class attribute; read/write access; type: b.

Use host floating point hardware when set to non-zero. This mode is currently only available for 32-bit x86 machines with SSE and SSE2. Supported instructions are fabs, fnabs, fneg, fmr, fadd, fadds, fdiv, fdivs, fmul, fmuls, fsub, fubs, fmadd, fmadds, fmsub, fmsubs, fnmadd, fnmadds, fnmsub, and fnmsubs. The remaining instructions are emulated in software.

Known Limitations: Indeterminism: The simulation can be indeterministic when enabling this mode. NaNs: The calculated result contains incorrect NaN when more than one operand contain NaNs. FPSCR: Only a subset of the FPSCR bits are set correctly. Supported bits are OX, UX, ZX, XX, FI, and FPRF. FX and FEX may be correct if they are generated from the supported bits. Some FPSCR bit can be incorrect for multiply-add/sub instructions.

iabr
Optional attribute; read/write access; type: Integer.

Instruction Address Breakpoint Register

ibat
Pseudo attribute; read/write access; type: [[ii]*].

((iu0,il0), (iu1,il2),...(iu3,il3)) List for accessing all IBATs

ibat0l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 0

ibat0u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 0

ibat1l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 1

ibat1u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 1

ibat2l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 2

ibat2u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 2

ibat3l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 3

ibat3u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 3

ibat4l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 4

ibat4u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 4

ibat5l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 5

ibat5u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 5

ibat6l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 6

ibat6u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 6

ibat7l
Optional attribute; read/write access; type: Integer.

Instruction BAT lower 7

ibat7u
Optional attribute; read/write access; type: Integer.

Instruction BAT upper 7

icache
Optional attribute; read/write access; type: Object or Nil.

Cache object affected by instruction cache control instructions.

ictc
Optional attribute; read/write access; type: Integer.

Instruction Cache Throttling Control Register

imprecise_fp_exceptions_enable
Optional attribute; read/write access; type: b.

Enable imprecise floating point exceptions when MSR[FE0 FE1] is set to imprecise non-recoverable exceptions.

in_sleep_state
Optional attribute; read/write access; type: Integer.

Non-zero if CPU is in nap/doze mode.

instruction_fetch_line_size
Session attribute; read/write access; type: Integer.

Instruction fetch line size for this processor.

instruction_fetch_mode
Session attribute; read/write access; type: String.

Instruction fetch mode

is_stalling
Optional attribute; read/write access; type: b.

TRUE if the processor is currently stalling by request of a timing-model.

itlb
Optional attribute; read/write access; type: [[[iiiii]{2}]*].

(((valid0, lru0, tag0, eapi0, pte0), (valid1, lru1, tag1, eapi1, pte1)), ...) Instruction TLB

l2cr
Optional attribute; read/write access; type: Integer.

L2 Control Register

lock_granularity
Optional attribute; read/write access; type: Integer.

Lock granularity of atomic instructions

lr
Optional attribute; read/write access; type: Integer.

Link register

lsq_enabled
Optional attribute; read/write access; type: Integer.

When non-zero, the internal load/store queue is enabled. Only applicable if ooo-mode is "micro-architecture"

mai_debug
Optional attribute; read/write access; type: String.

(internal) Set debug file for MAI

memory_profiling_granularity_log2
Pseudo attribute; read-only access; type: Integer.

Base 2 logarithm of memory profiling granularity.

min_cacheline_size
Pseudo attribute; read-only access; type: Integer.

The minimum size (in bytes) of a cache line that can be represented by Simics (when connecting a cache memhier).

mmcr0
Optional attribute; read/write access; type: Integer.

Monitor Control 0

mmcr1
Optional attribute; read/write access; type: Integer.

Monitor Control 1

mode_counters
Pseudo attribute; read-only access; type: [[sii]*].

((name, user-value, supervisor-value), ...) List of per-mode counters.

msr
Optional attribute; read/write access; type: Integer.

Machine state register

msr_bit_names
Pseudo attribute; read-only access; type: [s*].

(bit0name, bit1name... bit32/64name) of the names for each MSR bit defined on this PowerPC processor. Bits not defined are names with an empty string

ooo_mode
Optional attribute; read/write access; type: String.

"in-order" or "micro-architecture".

pc
Optional attribute; read/write access; type: Integer.

Program counter

pending_exceptions
Optional attribute; read/write access; type: [s*].

List of pending exceptions

pending_irq_name
Pseudo attribute; read-only access; type: String.

Name of an interrupt just about to be taken handled

physical_memory
Required attribute; read/write access; type: Object.

Physical memory space. Must implement both the memory-space and the breakpoint interface.

pmc1
Optional attribute; read/write access; type: Integer.

Performance Counter 1

pmc2
Optional attribute; read/write access; type: Integer.

Performance Counter 2

pmc3
Optional attribute; read/write access; type: Integer.

Performance Counter 3

pmc4
Optional attribute; read/write access; type: Integer.

Performance Counter 4

processor_number
Optional attribute; read/write access; type: Integer.

Simics internal processor number for this CPU. Each processor must have a unique processor number. This attribute can only be set as part of an initial configuration.

pvr
Optional attribute; read/write access; type: Integer.

Processor version

reservation_address
Optional attribute; read/write access; type: Integer.

Atomic reservation address

reservation_size
Pseudo attribute; read-only access; type: Integer.

Atomic reservation block size

reserve
Optional attribute; read/write access; type: Integer.

Atomic reservation

sdr1
Optional attribute; read/write access; type: Integer.

Storage Description Register

siar
Optional attribute; read/write access; type: Integer.

Sampled Instruction Address

spr_list
Pseudo attribute; read-only access; type: [[issiiiiiiiiii]*].

List of defined SPRs.

sprg0
Optional attribute; read/write access; type: Integer.

Provided for OS use

sprg1
Optional attribute; read/write access; type: Integer.

Provided for OS use

sprg2
Optional attribute; read/write access; type: Integer.

Provided for OS use

sprg3
Optional attribute; read/write access; type: Integer.

Provided for OS use

sr
Optional attribute; read/write access; type: [i{16}]; integer indexed; indexed type: Integer.

(sr0, sr1,.., sr15) Segment registers

srr0
Optional attribute; read/write access; type: Integer.

Machine save/restore register 0

srr1
Optional attribute; read/write access; type: Integer.

Machine save/restore register 1

stall_time
Optional attribute; read/write access; type: Integer.

The number of cycles the processor will stall

stalling_info
Optional attribute; read/write access; type: [iii].

If is_stalling is set, this contains information about the current memory operation.

stc_cache_w
Optional attribute; read/write access; type: b.

If set, memory mapped with W=1 will be cached in the STC, making access faster but slowing access for instructions which would trap when W=1. This is for improving simulator performance and should have no other effect.

step_per_cycle_mode
Optional attribute; read/write access; type: String.

"constant" indicates a constant finite step/cycle factor; "infinite" means that steps are run without advancing time.

step_queue
Optional attribute; read/write access; type: [[o|n,a,s,i]*].

((object, value, slot, step)*). Pending step queue events. object must implement the event_poster interface.

step_rate
Optional attribute; read/write access; type: [iii].

(q, p, r) where q/p is the step per cycle rate, p is a power of 2 and r indicates how much of a cycle that the current step has consumed.

steps
Optional attribute; read/write access; type: Integer.

Number steps executed since machine start.

tbl
Optional attribute; read/write access; type: Integer.

Timebase lower register

tbu
Optional attribute; read/write access; type: Integer.

Timebase upper register

temperature
Optional attribute; read/write access; type: Integer.

Temperature of the processor (C)

thrm1
Optional attribute; read/write access; type: Integer.

Thermal Assist Unit Register 1

thrm2
Optional attribute; read/write access; type: Integer.

Thermal Assist Unit Register 2

thrm3
Optional attribute; read/write access; type: Integer.

Thermal Assist Unit Register 3

time_queue
Optional attribute; read/write access; type: [[o|n,a,s,i]*].

((object, value, slot, cycle)*). Pending time queue events. object must implement the event_poster interface.

timebase_freq_mhz
Required attribute; read/write access; type: i|f.

Frequency (in MHz) for time base update

timebase_mode
Optional attribute; read/write access; type: s|n.

By default, the timebase is connected to the simulated cycles of a processor. Since Simics schedules processors (including hardware threads) in a round-robin fashion, where each processor gets to execute a large amount of instructions, this can cause problems. One example would be when one processor writes the value of timebase to memory at the end of it's quantum, and another processors compares this to the timebase at the beginning of the quantum; time will appear to have moved backwards. Therefore, there are additional timebase modes available that tries to work around these problems. Note that these modes may cause timing irregularies, depending on what software is running on the simulated machine.

The available modes are:

stall - a processor will be stalled til the end of it's quantum whenever it reads the timebase.

quantum-locked - timebase will only change on quantum boundaries.

fast-forward - timebase is fast forwarded when needed and then stopped until time (simulated cycles) has caught up with it.

Unless you know what you are doing, make sure the timebase mode on all processors (of the same class) are the same.

timebase_remainder
Optional attribute; read/write access; type: Integer.

Timebase remainder

timers_at_quantum_start
Optional attribute; read/write access; type: [[si]*].

Values of timer registers at quantum start. Used by quantum-locked timebase mode.

timers_enabled
Pseudo attribute; read/write access; type: Integer.

If 0, time base/decrementer stand still (internal use only)

turbo_alloc_memory
Session class attribute; read/write access; type: unknown type.

Force allocation of memory.

turbo_block_info
Pseudo class attribute; read/write access; type: unknown type.

Block stats.

turbo_blocks
Pseudo class attribute; read-only access; type: [[iiiii]*].

Compiled blocks.

turbo_code_area
Session class attribute; read-only access; type: unknown type.

Code areas.

turbo_debug_level
Session class attribute; read/write access; type: unknown type.

Turbo engine debug level.

turbo_execution_mode
Session class attribute; read/write access; type: unknown type.

Turbo enable.

turbo_exhaust_current_block
Pseudo class attribute; write-only access; type: unknown type.

Allocate all code space in the current block.

turbo_global_vars
Pseudo class attribute; read-only access; type: unknown type.

Global symbols.

turbo_heap_start
Session class attribute; read-only access; type: unknown type.

Start of heap.

turbo_link_targets
Pseudo class attribute; read-only access; type: unknown type.

Link targets.

turbo_max_compiled_blocks
Session class attribute; read/write access; type: unknown type.

Max number of blocks.

turbo_max_trace_size
Session class attribute; read/write access; type: unknown type.

Max translation unit size.

turbo_processor_offsets
Pseudo class attribute; read-only access; type: unknown type.

Processor offsets.

turbo_register_offsets
Pseudo class attribute; read-only access; type: unknown type.

Register offsets.

turbo_stat
Pseudo class attribute; read/write access; type: unknown type; string indexed; indexed type: unknown type.

Stats.

turbo_stats
Pseudo class attribute; write-only access; type: unknown type.

When set to one, print stats.

turbo_threshold
Session class attribute; read/write access; type: unknown type.

Translation threshold.

turbo_use_direct_sp
Session class attribute; read/write access; type: unknown type.

Direct stack pointer enable.

turbo_use_dstc_direct_lookup
Session class attribute; read/write access; type: unknown type.

Direct DSTC lookup enable.

turbo_use_off_page_chaining
Session class attribute; read/write access; type: unknown type.

Off page chaining enable.

xer
Optional attribute; read/write access; type: Integer.

Fixed-point exception register

Command List

Commands defined by interface log_object
log, log-group, log-level, log-size, log-type
Commands defined by interface processor
add-memory-profiler, aprof-views, attach-branch-recorder, break-cr, cycle-break, cycle-break-absolute, detach-branch-recorder, disable, disassemble, down, enable, frame, info, instruction-fetch-mode, io-read, io-write, list, list-memory-profilers, load-binary, logical-to-physical, pos, pregs, pregs-hyper, print-statistics, print-time, psym, read, read-reg, register-number, remove-memory-profiler, set-context, set-pc, stack-trace, start-instruction-profiling, step-break, step-break-absolute, sum, symval, trace-cr, unbreak-cr, untrace-cr, up, wait-for-cycle, wait-for-step, write, write-reg, x
Commands
print-dtlbprint data tlb contents
print-itlbprint instruction tlb contents
temperatureset or query the temperature of the processor

Command Descriptions

<ppc750fx>.print-dtlb
Synopsis
<ppc750fx>.print-dtlb
Description
Prints the contents of the data TLB of the processor.
<ppc750fx>.print-itlb
Synopsis
<ppc750fx>.print-itlb
Description
Prints the contents of the instruction TLB of the processor.
<ppc750fx>.temperature
Synopsis
<ppc750fx>.temperature [degrees-celsius]
Description
If the simulated PowerPC processor is equipped with a TAU (Thermal Assist Unit), this command allows TAU related features to be tested. Without any arguments, the command prints the current set temperature. The temperature can be changed by specifying the wanted temperature. This command accesses the temperature attribute on the processor.

VIRTUTECH CONFIDENTIAL    Previous - Up - Next