[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4688: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4690: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4691: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4692: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
Parallella Community • View topic - dual instruction execution behavior
Page 1 of 2

dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 1:50 am
by Gravis

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 8:33 am
by EggBaconAndSpam
1. no, the core doesn't ever wait for any one operation to complete, unless a dependency stall occurred (this is related to how pipelining works, doesn't behave differently with dual-issuing)
2. unless there is a register dependency or resource contention, neither operation waits. there are two independent pipelines running simultaneously
3. yes
4. only register dependency. note, however, that two FALU instructions can't be dual-issued as they share the same execution unit

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 3:38 pm
by Gravis

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 4:25 pm
by EggBaconAndSpam
Not quite sure what you are pointing at.
Consider the "pipeline" just 8 execution units.
Each cycle one pipeline finishes (reaches E4) and another one gets fed an opcode (FE state).
Effectively 8 instructions are run in parallel, this way one instruction is issued per cycle (actually two, but that's a different matter).
So what do you mean by FE getting ahead of E4?

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 4:45 pm
by Gravis

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 5:40 pm
by EggBaconAndSpam

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 5:55 pm
by Gravis

Re: dual instruction execution behavior

PostPosted: Sun Aug 04, 2013 10:27 pm
by ysapir
Gravis, it seems to me that you may still have a misconception of what a pipeline stage is (sorry if it is not so). In an N-stage pipeline system, an instruction takes this much cycles to complete. However, several (up to N) instructions are processed concurrently in the pipeline, each of them occupies a single stage. Thus, when an instruction reaches the execution stages, a new instruction is processed in the fetch stages, address generation stages, etc.

If there's no dependency or stalls, then the an instruction execution is concluded at each clock cycle. At the same time, new instruction is fetched, decoded etc. every clock cycle. They all "live" concurrently, but at different stages of "maturity".

Re: dual instruction execution behavior

PostPosted: Mon Aug 05, 2013 11:08 am
by timpart
The only special wrinkle I've noticed in the pipeline is the the RA register access seems to happen at the "end" of its slot and is in time to read registers written by other instructions in that timeslot (typically at E1 (most instructions), E2 (loads) or E4 (floats) in the pipeline). Otherwise things would take an extra cycle from the published timings.

Tim

Re: dual instruction execution behavior

PostPosted: Mon Aug 05, 2013 11:15 am
by tnt
My guess would be that the read register can also not read from the regster itself but from a 'bypass' path that gets the value being written rather than what's stored. Then you just have a comparator between the register being read and register being written to know if you need to enable this bypass mode.

But it's just a guess ...