VIRTUTECH CONFIDENTIAL Previous - Up - Next
sample_micro_arch
- Provided by
-
sample-micro-arch
- Class Hierarchy
-
conf-object → log-object → sample_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