shioyadan / Konata

Konata is an instruction pipeline visualizer for Onikiri2-Kanata/Gem5-O3PipeView formats. You can download the pre-built binaries from https://github.com/shioyadan/Konata/releases

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stages visibility with E and R commands

alexeyalekzz opened this issue · comments

Hello,
Noticed that when S and E or R commands are in one cycle then it will not be visible in Konata.

E.g.

I    0    0    0
...
C    1
S    0    0    Rt
R    0    0    0
C    1

Here, Rt stage will not be displayed.
It can be OK with Retire stage, but i ran into problems with flushed instructions

In my case, it is possible to Fetch an instruction and flush it in the same cycle

...
C    1
I    0    0    0
S    0    0    F
R    0    0    1
C    1
...

So instruction will not be visible at all, only if you hover the cursor over it on the left, you can see that it actually existed and was flushed.
image

What i wanted to see here is:
image

I'm dumping stages to kanata trace "on fly" when simulator works, and I only know the moment at which the instruction enters the stage, but not when it leaves it. This forces to create some buffers for R and E stages to be printed on the next cycle, which doesn't seem to be a good option for me.

So the question is, is there a particular reason for not displaying these instructions?
And is it possible to display them? Maybe with some new option.

Konata version is v0.39

Hello,

When the viewer reads the R command, the target instruction disappears immediately without displaying the stage for that cycle.

This behavior is to simplify the viewer's parser. To make the instruction disappear on the cycle following the cycle in which R is output, the viewer would need to have a buffer as you described.

The problem you point out with the R command has already been pointed out several times, so I am now trying to add a feature to reserve events that happen N cycles later. This feature could, for example, output a command like "execute the R command one cycle after the current cycle". I think this feature will probably satisfy your request.