[LEDE-DEV] Regarding switching "everything" to 24kc

Jonas Gorski jonas.gorski at gmail.com
Mon Aug 22 02:03:54 PDT 2016


Hi Daniel,

On 22 August 2016 at 08:34, Daniel Engberg
<daniel.engberg.lists at pyret.net> wrote:
> Hi,
>
> Before going all in switching to 24kc, 74kc seems to use a different code
> path and looking at datasheets 1004kc seems more similar to 74kc than 24kc.

I'm not sure how you came to this conclusion:

24kc has a 8-stage pipeline
34kc has a 8-9 stage pipeline (8 if no TC support)
1004kc has a 8-9 stage pipeline (8 if no TC support)
74kc has a 14 stage pipeline

24kc/34kc/1004kc can support mips16e and DSP ASEs (we only use the former)
74kc supports mips16e and DSP rev 2 ASEs (we only use the former)

74kc supports out of order execution, 24/34/1004kc don't.

So 1004kc is identical to a 34kc, and 34kc is a 24kc with multi thread
support. 74kc is a different kind of beast than the rest due to out of
order execution and longer pipeline. THis means it will profit from
different instruction pipelining, which might or might not impact
24/34/1004kc negatively (or positively).

> Please benchmark the impact between 74kc and 24kc on 1004kc and possibly on
> 74kc devices before blindly(?) switching.

There will be no impact with 24kc, as gcc is already generating
*identical* code for 24kc and 1004kc. There are no
34kc/1004kc-specific optimizations in GCC, only 24kc.

But of course if benchmarks show that 74k won't reduce performance on
24k/34k/1004k, we can consider switching to eliminate one more package
feed target.


Jonas



More information about the Lede-dev mailing list