MultiCore Microcontrollers

Please add any feature requests for Flowcode version 6 here

Moderator: Benj

Forum rules
Only feature requests will be considered here. General questions should not be posted in this forum.
Post Reply
User avatar
Jordy101091
Posts: 519
Joined: Sat Jan 08, 2011 4:02 pm
Location: The Netherlands
Has thanked: 25 times
Been thanked: 188 times
Contact:

MultiCore Microcontrollers

Post by Jordy101091 »

Hi all,

Some times I thinking to start learning to develop with FPGA's but ones you go deeper into the field of these devices the more challenging it gets.
And its likely that flowcode is going to support FPGAs in a few years time.

Thats makes me wonder, because I have seen what FPGA's can do, and its really awesome, the main advantage of a FPGA is that it can do several task at the same time. So there must be a device that can also do several tasks at the same time, and it is quite possible to integrate this into flowcode because the device im talking about is inessential a microcontroller with multiple cores. Maybe the Matrix team can roll this addition out as a separate chip pack (int the future).

The device Im talking about is from a company called XMOS.

http://www.xmos.com/products/silicon

Maybe you can have look ad it and let me know what the possibilities are for this microcontroller.
It would be quite awesome for flowcode to have these sort of device available.

Regards Jordy
the will to learn, should not be stopped by any price

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: MultiCore Microcontrollers

Post by Benj »

Hi Jordy,

Not come across those devices before but I have looked into Propeller microcontrollers which look interesting.

The main issue with multi threaded systems is that you need to work them in one of these ways.

1) You use a low level operating system, e.g. something like linux or android or Windows if your desperate, to allow you to manage concurrent high level tasks in a round robin fashion where each task takes a percentage of the runtime. The OS handles all the threads at the expense of a highly complicated low level kernel which takes a big chunk of processing runtime and memory. This generally kills any "Real Time" functionality as you cannot guarantee when things will happen due to the nature of the OS time slicing.

2) You keep things simple and create a main program loop for each and every core. Any communications between cores needs to be handled using real time type structures such as mutexes and semaphores. If not very carefully worked out then the structures can actually cause more issues e.g. imagine a situation where task A cannot write data to task B without first receiving data from task C. Task C waits for task B to be complete and it ends up in a horrible mess where everything locks up waiting for another task to end.

There is actually a RTOS multi threaded type compiler that is shipped with BoostC which we have looked at using in the past and we have dabbled with real time OS's on AVR too. Both of which looked easy enough to implement in Flowcode but fairly horrendous to explain and stitch together well.

I can certainly add your request to the pot and when it comes to planning what to do next it will be one of the suggestions we will explore.

FPGA's are different in that they are parallel by nature and you can essentially host up to hundreds of processor cores inside a single FPGA if you want. Here the problem is turning code into circuitry using VHDL or Verilog coding. The easiest way to implement would be to use VHDL to create a basic microcontroller core and then load this with machine code like we do with a standard Microcontroller. Not sure what advantage this would have over using a Microcontroller directly other then being able to modify the inner workings of the silicone.

User avatar
Steve001
Valued Contributor
Valued Contributor
Posts: 1189
Joined: Wed Dec 31, 2008 3:37 pm
Has thanked: 460 times
Been thanked: 523 times
Contact:

Re: MultiCore Microcontrollers

Post by Steve001 »

Morning all,

AVR do one too a UC3 microcontroller , i saw them on a board when i was on a training course for some generator sync and loading share controllers and having a nosy on the boards :lol:

they did say they are a pig to program tho

Looking at the spec sheet looks an animal :)

http://www.atmel.com/products/microcont ... vruc3.aspx

Steve
Success always occurs in private and failure in full view.

Post Reply