> On June 4, 2014, 8:15 p.m., Steve Reinhardt wrote:
> > src/cpu/minor/Expr.py, line 48
> > <http://reviews.gem5.org/r/2279/diff/1/?file=39827#file39827line48>
> >
> >     This is pretty interesting... it would be nice to generalize this 
> > capability and not make it Minor-specific
> 
> Andrew Bardsley wrote:
>     Yeah.  MinorExpr could easily be hoisted upwards and lose its Minor 
> prefix (It doesn't have any dependencies on Minor).
>     
>     Maybe TimingExpr or something like that (to disambiguate and suggest its 
> function a bit more) would be a good name?

In r2: I've moved Minor::Expr up to be in src/cpu as TimingExpr


> On June 4, 2014, 8:15 p.m., Steve Reinhardt wrote:
> > src/cpu/minor/ticked.hh, line 60
> > <http://reviews.gem5.org/r/2279/diff/1/?file=39861#file39861line60>
> >
> >     This seems like it could be useful outside of Minor... perhaps we 
> > should put it in src/sim, or even just integrate this functionality with 
> > ClockedObject
> 
> Andrew Bardsley wrote:
>     Yes, the 'evaluate' member function on Ticked could be hoisted up to 
> ClockedObject.  The cycle accounting in TickedModule could potentially also 
> go that way.  I didn't make that change as I didn't want to try and have the 
> interface blessed/promoted by trying to affect a core class (and set 
> precedent and pass the tighter review that that demands).
>     
>     You can see, in Ticked, my preference for building 'interface'-like 
> classes and using multiple inheritance for interface-link classes.
>     In this case, Ticked isn't used (any more, it was previously) in contexts 
> where the 'virtual' qualification on its member functions is used anymore, so 
> arguably it isn't really functioning as a base class anymore.
>     
>     I would suggest dropping Ticked and just folding its member functions 
> into Stage and TickedModule. (I don't believe 'Ticked */&' is ever used)

In r2: In the end I didn't remove Ticked.  It felt wrong to remove such an 
obviously 'base'/interface definition.


> On June 4, 2014, 8:15 p.m., Steve Reinhardt wrote:
> > src/cpu/minor/ticked.hh, line 67
> > <http://reviews.gem5.org/r/2279/diff/1/?file=39861#file39861line67>
> >
> >     We also have various objects that have dump() or print() methods... it 
> > would be nice to standardize this
> 
> Andrew Bardsley wrote:
>     Actually, report is specifically used here for MinorTrace.  Its name 
> possibly should reflect just that. Maybe Ticked should have been be 
> MinorTicked?  ...::report should almost certainly really be ...::minorTrace 
> to reflect this specialised use.
>     
>     I think there are three interesting opportunities here:
>     
>     1) Standardise a name/maybe some flags for micro-architectural dumping
>     2) Standardise a format for human-readable dump
>     3) Standardise a format for machine-readable dump
>     
>     MinorTrace is horribly verbose but a it's a crack at doing point 3.

In r2: I've renamed 'report' to 'minorTrace' to reflect its very specific role 
in Minor.


> On June 4, 2014, 8:15 p.m., Steve Reinhardt wrote:
> > src/cpu/minor/ticked.hh, line 74
> > <http://reviews.gem5.org/r/2279/diff/1/?file=39861#file39861line74>
> >
> >     integrating with ClockedObject would eliminate the multiple 
> > inheritance... not that MI is totally evil, but it's always better to avoid 
> > it when possible
> 
> Andrew Bardsley wrote:
>     I think I've answered that one above.

In r2: see above


> On June 4, 2014, 8:15 p.m., Steve Reinhardt wrote:
> > src/cpu/minor/trace.hh, line 63
> > <http://reviews.gem5.org/r/2279/diff/1/?file=39862#file39862line63>
> >
> >     This would be very useful outside of Minor... should go in 
> > src/base/trace.hh, IMO
> 
> Andrew Bardsley wrote:
>     Yes, it would and it could be used to clean up some of annoying 
> ambiguities around DPRINTF use and maybe even replace the DPRINTF macros with 
> functions.
>     
>     Using Named to replace _name/name in SimObject would sort of open up the 
> interface-like MI question.  (Named isn't actually an interface as it has a 
> data member).
>     
>     I suggest moving Named into src/base/trace.hh so it can be optionally 
> used, but not go as far as trying to strongly suggest its usage by making 
> SimObject adopt it.  Thoughts?

In r2: I've moved Named into src/base/trace.hh as another convenience 
definition (alongside StringWrap).


- Andrew


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2279/#review5125
-----------------------------------------------------------


On June 17, 2014, 5:03 p.m., Ali Saidi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2279/
> -----------------------------------------------------------
> 
> (Updated June 17, 2014, 5:03 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 10237:5794a56b79c4
> ---------------------------
> cpu: `Minor' in-order CPU model
> 
> This patch contains a new CPU model named `Minor'. Minor models a four
> stage in-order execution pipeline (fetch lines, decompose into
> macroops, decompose macroops into microops, execute).
> 
> The model was developed to support the ARM ISA but should be fixable
> to support all the remaining gem5 ISAs. It currently also works for
> Alpha, and regressions are included for ARM and Alpha (including Linux
> boot).
> 
> Documentation for the model can be found in src/doc/inside-minor.doxygen and
> its internal operations can be visualised using the Minorview tool
> utils/minorview.py.
> 
> Minor was designed to be fairly simple and not to engage in a lot of
> instruction annotation. As such, it currently has very few gathered
> stats and may lack other gem5 features.
> 
> Minor is faster than the o3 model. Sample results:
> 
>      Benchmark     |   Stat host_seconds (s)
>     ---------------+--------v--------v--------
>      (on ARM, opt) | simple | o3     | minor
>                    | timing | timing | timing
>     ---------------+--------+--------+--------
>     10.linux-boot  |   169  |  1883  |  1075
>     10.mcf         |   117  |   967  |   491
>     20.parser      |   668  |  6315  |  3146
>     30.eon         |   542  |  3413  |  2414
>     40.perlbmk     |  2339  | 20905  | 11532
>     50.vortex      |   122  |  1094  |   588
>     60.bzip2       |  2045  | 18061  |  9662
>     70.twolf       |   207  |  2736  |  1036
> 
> 
> Diffs
> -----
> 
>   build_opts/ALPHA a2bb75a474fd 
>   build_opts/ARM a2bb75a474fd 
>   configs/common/CpuConfig.py a2bb75a474fd 
>   src/base/trace.hh a2bb75a474fd 
>   src/cpu/SConscript a2bb75a474fd 
>   src/cpu/TimingExpr.py PRE-CREATION 
>   src/cpu/minor/MinorCPU.py PRE-CREATION 
>   src/cpu/minor/SConscript PRE-CREATION 
>   src/cpu/minor/SConsopts PRE-CREATION 
>   src/cpu/minor/activity.hh PRE-CREATION 
>   src/cpu/minor/activity.cc PRE-CREATION 
>   src/cpu/minor/cpu.hh PRE-CREATION 
>   src/cpu/minor/cpu.cc PRE-CREATION 
>   src/cpu/minor/decode.hh PRE-CREATION 
>   src/cpu/minor/decode.cc PRE-CREATION 
>   src/cpu/minor/dyn_inst.hh PRE-CREATION 
>   src/cpu/minor/dyn_inst.cc PRE-CREATION 
>   src/cpu/minor/exec_context.hh PRE-CREATION 
>   src/cpu/minor/execute.hh PRE-CREATION 
>   src/cpu/minor/execute.cc PRE-CREATION 
>   src/cpu/minor/fetch1.hh PRE-CREATION 
>   src/cpu/minor/fetch1.cc PRE-CREATION 
>   src/cpu/minor/fetch2.hh PRE-CREATION 
>   src/cpu/minor/fetch2.cc PRE-CREATION 
>   src/cpu/minor/func_unit.hh PRE-CREATION 
>   src/cpu/minor/func_unit.cc PRE-CREATION 
>   src/cpu/minor/lsq.hh PRE-CREATION 
>   src/cpu/minor/lsq.cc PRE-CREATION 
>   src/cpu/minor/pipe_data.hh PRE-CREATION 
>   src/cpu/minor/pipe_data.cc PRE-CREATION 
>   src/cpu/minor/pipeline.hh PRE-CREATION 
>   src/cpu/minor/pipeline.cc PRE-CREATION 
>   src/cpu/minor/scoreboard.hh PRE-CREATION 
>   src/cpu/minor/scoreboard.cc PRE-CREATION 
>   src/cpu/minor/stage.hh PRE-CREATION 
>   src/cpu/minor/stats.hh PRE-CREATION 
>   src/cpu/minor/stats.cc PRE-CREATION 
>   src/cpu/minor/ticked.hh PRE-CREATION 
>   src/cpu/minor/trace.hh PRE-CREATION 
>   src/cpu/pred/SConscript a2bb75a474fd 
>   src/cpu/static_inst.hh a2bb75a474fd 
>   src/cpu/timing_expr.hh PRE-CREATION 
>   src/cpu/timing_expr.cc PRE-CREATION 
>   src/doc/inside-minor.doxygen PRE-CREATION 
>   util/minorview.py PRE-CREATION 
>   util/minorview/__init__.py PRE-CREATION 
>   util/minorview/blobs.py PRE-CREATION 
>   util/minorview/colours.py PRE-CREATION 
>   util/minorview/minor.pic PRE-CREATION 
>   util/minorview/model.py PRE-CREATION 
>   util/minorview/parse.py PRE-CREATION 
>   util/minorview/point.py PRE-CREATION 
>   util/minorview/view.py PRE-CREATION 
> 
> Diff: http://reviews.gem5.org/r/2279/diff/
> 
> 
> Testing
> -------
> 
> Boots Linux and runs regression tests for ALPHA and ARM.
> 
> 
> Thanks,
> 
> Ali Saidi
> 
>

_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to