edaudo
Junior Member

Offline
Posts: 42
Thank You
-Given: 55
-Receive: 95
|
 |
« Reply #3 on: June 03, 2015, 01:22:45 13:22 » |
|
'Multicore how good is that?'
As with all multicores, if there's nothing you can divide in parallel threads you don't profit. If module B depends on the result of module A you have to wait.
I used the X1 and X2 in two designs in 2012/2013, in 2014 the company I work for decided to move away from XMOS.
Historically there are two ideas behind the x-core concept:
1. you don't need a specialized chip, you need a universal processor that it is fast enough to emulate any function in software. This was the idea behind the Scenix SX controller, not a controller plus UART, I2C, Timer etc. but a controller that can run any peripherial it needs in software. Thus the SX was designed for 100MHz MHz compared to a 8 MHz PIC (in the mid/late 1990s) and it came in only two flavours depending on the number of IOs not in 50 variants like some Motorola MCUs.
2. combine several of those chips and you can run a larger number of soft-peripherials and more important you can run them in parallel. That's the evolution of the SX called Parallax Propeller. (Even the idea of parallel computing is much older than the Propeller. e.g. late 1980s T800 'Transputer' by INMOS)
Going further...
The x-core again is much faster. 100MIPS/core -vs- 20MIPS/core (Propeller) The x-core has a combined intra- and inter-chip communication controller (x-link), it's not limited to the number of internal cores, you can build an array of 32, 64, 128 and more cores. Nevertheless the basic idea is the same, a bunch of similar cores that do almost everything in software (btw. the USB interface is hardware), this is very flexible but has one drawback, you have to code everything.
If you have to apply e.g. several filters or weighting functions to a set of data you can really speed up your application by using this type of multicore processors.
Processing an image you can divide the image in 8 parts and each core applies the filter to one part. In theory this is 8 times faster, in practice about 6 times.
I designed a 9 sensor application were each sensor has it's own dedicated task/core including a Kalman filter, it runs on 16 core X2. The older single core design (PIC32) needed about 70% of CPU time to readout the sensors and compute the Kalman functions, now these are only 9 out of 15 background tasks. That gives me 100MIPS for soley the main loop compared to 80MIPS for the complete application before. The costs are about 3 times higher, aprox. 20$ if you count in the extra USB PHY the X2 needs.
Resume: The chip itself is very fine, the company behind...
The tools are somewhat instable and inconsistent. Adding new features seems to be more important than bug fixes.
Family inconsistents. e.g. X1/X2 code is incompatible with X4 because the x-link controller is different.
Don't rely on the roadmap, they promised chips with more cores, finally their newest highlight in 2013 was less X-cores + 1 ARM core bundled (XA family).
In 2011 support was said to be free for volume customers, 2014 they decided to change this to 5,000$/p.a. for now called 'PRO customers'.
The audio/video streaming solution was advertised as all inclusive - dev tools, libraries, reference design and source code. Well, on the chip side this was true, but the high speed Windows drivers are part of a 'host development kit' extra costs starting at 10,000$, the fully customizable driver is 40,000$. - No word on this when we ordered the development kits.
Please note, the above said is my personal experience from the past, the mentioned chips X1/X2/X4 are now obsolete and things may have changed with the newer families. Their support and customer care might be better today, but I don't know. I liked the x-core but it wasn't easy to get reliable results with the information, tools and support provided.
|