VIRTUTECH CONFIDENTIAL    Previous - Up - Next

sample_micro_arch

Provided by
sample-micro-arch
Class Hierarchy
conf-objectlog-objectsample_micro_arch
Interfaces Implemented
log_object
Description
This class demonstrates the Micro Architectural Interface. The processor modeled can fetch, execute, and commit a configurable number of instructions per cycle (by setting some attributes). Default is 4, 4, and 4 respectively. It has a simple branch-predictor that uses a hash table to lookup the target address from the address of the branch instruction. The hash table is updated for every successfully committed branch.

Besides speculating on the target address, the architecture also speculate fall through for every branch. This way 2 possible execution paths are created for every branch. This makes the instruction tree into a binary tree. The number of instructions executed and fetch per cycle is actually also per branch in the instruction tree.

This demo models no pipeline stages other than those found in Simics. Instructions are fetched and decoded at once making the fetch staged itself invisible.

If an exception occurs the tree is drained and all the speculative instructions beyond the faulting one are discarded.

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
commits_per_cycle
Optional attribute; read/write access; type: Integer.

Number of instructions to commit each cycle.

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

The CPU of the micro architecture model

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

Tell the model to stop fetching so that the instruction queue will empty itself. Useful to save a checkpoint.

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

Number of instructions to execute each cycle per instruction tree branch.

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

Number of instructions to fetch each cycle.

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

Number of instructions to retire each cycle per instruction tree branch.

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

Number of instructions to retire each cycle per instruction tree branch.

Command List

Commands defined by interface log_object
log, log-group, log-level, log-size, log-type

VIRTUTECH CONFIDENTIAL    Previous - Up - Next