LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Openrisc > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Dimitrios Orfanos<sirtimid@g...>
    Date: Mon Nov 26 23:31:30 CET 2007
    Subject: [openrisc] What is the DYNAMIC_EXECUTION , COMPLEX_EXECUTION, and SIMPLE_EXECUTION?
    Top
    Hi,
    Some other questions have arisen.
    1) What execution model does or32-elf-sim is configured to use.
    2)What is the role of the srand that is called in the toplevel.c I have
    searched for the rand but I didn't find it.
    3)What is the role of the scheduler. I have noticed that it calls some
    functions irrelevant of the code that is loaded with loadcode function. And
    that these functions have to do only with the peripherals and do not
    contribute to sum of cycles of simulation. Is that true?
    4)The only variable which actually holds the CPU cycles that are consumed for
    the execution of the program is runtime.sim.cycles. And this variable is only
    affected by the accesses in the memory (apart from cache and TLB which are
    disabled in my sim.cfg).Is that true?

    All the answers to my questions will help me for the modification of the
    simulator to give cycles per instruction information. But as I have noticed
    the commands that are simulated do not consume cycles in any execution stage.
    It is hypothesised that after the fetch stage the instruction is executed
    immediately and does not consumes time in the ALU for example. So if I would
    like to give cycles per instruction information I have to define arbitrary
    how much time is consumed in every functional unit of the processor.
    Is that truth?

    Thank you
    DO
    On Friday 23 November 2007 18:20:50 Mark wrote:
    > Dimitrios Orfanos wrote:
    > > Hi,
    > >
    > > I am trying to modify or1ksim 0.2.0 in order to produce statistics about
    > > the cycles that are consumed per instruction. In the code are defined
    > > three different modes of execution the DYNAMIC, the COMPLEX and the
    > > SIMPLE. Can you explain me the difference?
    > >
    > > DO
    >
    > I don't actually know the difference, but here's what I would guess
    > based on looking at the code.
    >
    > SIMPLE_EXECUTION: slow instruction decoding (the automata for matching
    > opcodes are executed at runtime)
    > COMPLEX_EXECUTION: fast instruction decoding (a fast decoder is
    > generated from the automata and compiled into the simulator)
    > DYNAMIC_EXECUTION: instructions are dynamically recompiled from or32
    > opcodes to opcodes for the host architecture (i386-only, I think)
    >
    > The relevant source seems to be concentrated in cpu/or32/execute.c,
    > cpu/or32/generate.c, cpu/or32/insnset.c, cpu/or32/dyngen*
    > _______________________________________________
    > http://www.opencores.org/mailman/listinfo/openrisc


     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.