Hi guys, When running TraceFlex and TraceCMPFlex, it looks like the L1I cache and the branch predictor are not working at all.
After running for a couple million instructions, I do "flexus.print-measurement all" and all the stats for L1i and for bpwarm are 0. The other stats have non-zero values but it looks like the icache and branch predictor just aren't being used. Also, looking at the flexus state that gets saved in the flexpoints, the bpred files seem to have practically no information in them. Viewing them with 'od -x' shows that most of the file is zeroes. Any thoughts on what might be going on? I have included my configuration below. Thanks, Jason -L1d:assoc 4 # (Associativity) Set associativity -L1d:bsize 64 # (BlockSize) Block size -L1d:clean_evict 0 # (CleanEvictions) Issue clean evictions -L1d:level 1 # (CacheLevel) CacheLevel -L1d:mt_width 1 # (MTWidth) Number of threads sharing this cache -L1d:notify_reads 0 # (NotifyReads) Notify on reads (does not notify on fast-hit) -L1d:notify_writes 0 # (NotifyWrites) Notify on writes -L1d:size 32768 # (Size) Cache size in bytes -L1d:trace_tracker_on 0 # (TraceTracker) Turn trace tracker on/off -L1i:assoc 4 # (Associativity) Set associativity -L1i:bsize 64 # (BlockSize) Block size -L1i:clean_evict 0 # (CleanEvictions) Issue clean evictions -L1i:level 9 # (CacheLevel) CacheLevel -L1i:mt_width 1 # (MTWidth) Number of threads sharing this cache -L1i:notify_reads 0 # (NotifyReads) Notify on reads (does not notify on fast-hit) -L1i:notify_writes 0 # (NotifyWrites) Notify on writes -L1i:size 32768 # (Size) Cache size in bytes -L1i:trace_tracker_on 0 # (TraceTracker) Turn trace tracker on/off -L2:assoc 16 # (Associativity) Set associativity -L2:bsize 64 # (BlockSize) Block size -L2:clean_evict 0 # (CleanEvictions) Issue clean evictions -L2:level 2 # (CacheLevel) CacheLevel -L2:mt_width 1 # (MTWidth) Number of threads sharing this cache -L2:notify_reads 0 # (NotifyReads) Notify on reads (does not notify on fast-hit) -L2:notify_writes 0 # (NotifyWrites) Notify on writes -L2:size 8388608 # (Size) Cache size in bytes -L2:trace_tracker_on 0 # (TraceTracker) Turn trace tracker on/off -bpwarm:cores 1 # (Cores) Number of cores -bus:bsize 64 # (BlockSize) Size of coherence unit -bus:dma 1 # (TrackDMA) Track DMA blocks -bus:evictions 0 # (TrackEvictions) Track/Notify on evictions -bus:flushes 0 # (TrackFlushes) Track/Notify on flushes -bus:invalall 0 # (InvalAll) Invalidate all nodes on exclusive -bus:invalidations 0 # (TrackInvalidations) Track/Notify on invalidations -bus:offchipreads 0 # (TrackReads) Track/Notify on off-chip reads -bus:pagesize 8192 # (PageSize) Page size in bytes -bus:productions 0 # (TrackProductions) Track/Notify on productions -bus:round_robin 1 # (RoundRobin) Use static round-robin page allocation -bus:save_page_map 0 # (SavePageMap) Save page_map.out in checkpoints -bus:upgrades 0 # (TrackWrites) Track/Notify on upgrades -feeder:housekeeping_period 1000 # (HousekeepingPeriod) Simics cycles between housekeeping events -feeder:ifetch 1 # (TrackIFetch) Track and report instruction fetches -feeder:simics_quantum 100 # (SimicsQuantum) CPU quantum size in simics -feeder:stick 0 # (SystemTickFrequency) CPU System tick frequency. 0.0 leaves frequency unchanged -magic-break:ckpt_cycle 0 # (CkptCycleInterval) # of cycles between checkpoints. -magic-break:ckpt_cycle_name 0 # (CkptCycleName) Base cycle # from which to build checkpoint names. -magic-break:ckpt_iter 0 # (CheckpointOnIteration) Checkpoint simulation when CPU 0 reaches each iteration. -magic-break:ckpt_trans 0 # (CheckpointEveryXTransactions) Quiesce and save every X transactions. -1 disables -magic-break:end_iter -1 # (TerminateOnIteration) Terminate simulation when CPU 0 reaches iteration. -1 disables -magic-break:end_trans -1 # (TerminateOnTransaction) Terminate simulation after ## transactions. -1 disables -magic-break:first_trans 0 # (FirstTransactionIs) Transaction number for first transaction. -magic-break:iter 0 # (EnableIterationCounts) Enable Iteration Counts -magic-break:min_cycle 0 # (CycleMinimum) Minimum number of cycles to run when TerminateOnTransaction is enabled. -magic-break:stats_trans 10000 # (TransactionStatsInterval) Statistics interval on ## transactions. -1 disables -magic-break:stop_cycle 0 # (StopCycle) Cycle on which to halt simulation. -magic-break:stop_on_magic -1 # (TerminateOnMagicBreak) Terminate simulation on a specific magic breakpoint -magic-break:trans 0 # (EnableTransactionCounts) Enable Transaction Counts -magic-break:trans_type 0 # (TransactionType) Workload type. 0=TPCC/JBB 1=WEB
