V12 Dev and new terminology

Technical questions regarding the XTC tools and programming with XMOS.
User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm

V12 Dev and new terminology

Post by Folknology »

There doesn't appear to be a developers/engineers document recommending new practices and terminology for version 12 tools, but from the 12 beta release notes it is clear that one should:

1) Replace 'core' with 'tile'
2) Replace 'thread' with 'core'

Oh and the most important guideline of all, one must not mention or even utter the word 'Thread' in any situation, it has now been extinguished from the Xmos vocabulary.

There are a few exceptions like also adding 'logical' to core but most of above works in the code as far as I can establish. Also I notice many of code modules (xSoftip et al) on github will also need updating to the correct new terminology in order to prevent confusion for new users, many still contain old think i.e. L1 having only 1 core instead of 8 which we now know was incorrect ;-)

P.S. Much of the old documentation may also need generous applications of new think.

regards
Al


Heater
Respected Member
Posts: 296
Joined: Thu Dec 10, 2009 10:33 pm

Post by Heater »

Am I out of touch? I have always assumed that "core" was a short hand for "processor core" in the silicon world of multi-core Intel chips or IP cores for FPGA etc.

As such it seems dishonest to see "threads" renamed as "cores".

Consider this: If I start up to four of these new "cores" on a "tile" they all run at the same speed. If I now start a fifth "core" they all slow down a bit. Start up more and they all all slowdown a bit more. Clearly a now so called "core" is not an independent processor.

"Tile" I can just about live with but it seems a dumb way to talk about what used to be a processor core or "core" for short.

All in all it wreaks of marketing drivel and I hate it.

Now remind me again, what is an "xcore".
yzoer
XCore Addict
Posts: 133
Joined: Tue Dec 15, 2009 10:23 pm

Post by yzoer »

Clearly XMOS will have work cut out for them trying to sort this mess out. To your guys' points, and one I made in the other thread, is that you can't have it both ways. So either *all* the tools, documentation, forums and anything else that's been in use will need to be phased out or things need to go back to where they were before.

Re-branding a chip is fine and it happens all the time (Intel's great at this) but don't rename things just for the sake of renaming them.

-Y
User avatar
segher
XCore Expert
Posts: 844
Joined: Sun Jul 11, 2010 1:31 am

Post by segher »

yzoer wrote:but don't rename things just for the sake of renaming them.
I think the "core" renaming thing was done to make it more obvious to
people who do not know the advantages (and disadvantages) of barrel
processors (or even that an xcore (xtile?) _is_ such a beast) that in simple
situations it actually does behave like having a bunch of slow cores in
parallel.

It would have been better in my opinion to just try to educate people
about this (which also gives nice opportunities to show the advantages
of the different approach, low latency and predictable performance and
all that goodness), than this *ahem* bending of industry terminology.

But I wouldn't say things are renamed for the sake of renaming them;
they are renamed in an effort to sell more stuff. We'll see if that works.
yzoer
XCore Addict
Posts: 133
Joined: Tue Dec 15, 2009 10:23 pm

Post by yzoer »

segher wrote: But I wouldn't say things are renamed for the sake of renaming them;
they are renamed in an effort to sell more stuff. We'll see if that works.
Obviously. My gripe with it is that you don't let marketing dictate (at least that's what it feels like) changing terminology that's been readily accepted.

What I'm *really* curious about is how much David and Ali had to do with this...

-Yvo
User avatar
JohnWilson
Active Member
Posts: 38
Joined: Fri Oct 28, 2011 10:53 pm

Post by JohnWilson »

segher wrote:I think the "core" renaming thing was done to make it more obvious to
people who do not know the advantages (and disadvantages) of barrel
processors (or even that an xcore (xtile?) _is_ such a beast)
They might have a point there. When I first saw XMOS's web site and its talk of multiple threads, I almost stopped reading because it sounded as if this is just yet another chip that comes with a semi-documented RTOS that you can't get away from, which does the multi-threading with time-slicing or whatever and makes life hell. It took me a minute to realize the thing is actually a CDC Peripheral Processor kind of deal, which is insanely awesome and should be something they make crystal-clear in the first 5 seconds. I suppose Intel owns the word "hyperthread" so XMOS couldn't use that, but they should have picked a word that didn't already mean something misleading. Which "core" does too, so ...
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

Well strictly speaking, XMOS talks about logical cores or processors and that is quite correct in the case.

Consider an Intel P4 processor with 1 core and HT. It has one physical core or processor (i prefer to use processor) and two logical cores or processors. The operating system sees two processors and it doesn't have to care (i.e. the interface to access/configure two logical cores is identical to two physical cores) about whether they are physical or not (hence logical processors). This also means that each logical processor has its own program counter, set of working registers etcetera.

Each XCore (or is it xCORE now :p) thread has its own program counter and set of working registers etcetera so it can be seen as a logical processor. They share a single pipeline which makes it 1 physical processor. That said, it is extremely important to be aware of physical cores on XMOS, mostly due to separate memory spaces in the case of multiple XCores. This sounds like a contradiction to my previous paragraph, terminology doesn't always fit the more exotic hardware, and it is also changing over time (i.e. logical cores are heavily used in virtualisation software)

That said most people aren't aware of the difference between logical and physical processors.
User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm

Post by Folknology »

One of the most important parts when learning about programming XS1 microcontrollers with XC is understanding the basic assumptions of THREAD DISJOINTNESS RULES this is critical to good coding in XC. How do these sections become re-written in the face of the new terminology, how is this re-worded to make sense when explaining it to newcomers, a simple search and replace of thread to logical core doesn't really cut it?

I also notice that the THREAD PERFORMANCE section doesn't make sense with a search and replace approach to the new terminology, I would like to see how that could also be re-written in a way that's intelligible to newcomers

regards
Al