Shop OBEX P1 Docs P2 Docs Learn Events
Multi-core + sockets — Parallax Forums

Multi-core + sockets

BADHABITBADHABIT Posts: 138
edited 2009-06-17 18:42 in Propeller 1
I ran across this earlier and thought it somewhat related to multi-prop s/u's.
UG employee said...
NX can take advantage of up to 4 threads.··Actually it's Parasolid that is doing all the work in this case as the kernel will continue to parse out work to the available treads up to a maximum of 4.··However that being said, do not be mislead into thinking that quad-cores are therefore the best solution, as that is not the case.

From a purely raw NX performance point of view (or really ANY SMP enabled software) the order of performance, best to worse, is as follows (this is assuming that all else is equal, such as clock-speed, memory, IO bus-speed, etc.):

1) Four single-core CPU's in 4 sockets

2) Two dual-core CPU's in 2 sockets

3) Two single-core CPU's in 2 sockets

4) One dual-core CPU in 1 socket

5) One quad-core CPU in 1 socket

6) One single-core CPU in 1 socket

Now 4 & 5 could go either way depending on the actual part models and what was being done, but the reason for THIS ORDER OF PROGRESSION is that dual- and quad-core CPU's share a lot of resources and so very little is gained if anything (as the number of cores on the same CPU goes up, the actual performance of any one core goes down even if the clock speed was the same) for an application like NX even if it can theoretically use all four threads, which is also why multiple CPU, multiple socket systems will ALWAYS be superior, albeit at a much higher cost for hardware.··Now this may change over time, but for now, this is about how it all shakes out.

Anyway, I hope this helps.
John R. Baker, P.E.
Product 'Evangelist'
NX Design
Siemens PLM Software Inc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
BH skull.gif

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2009-06-15 04:18
    Mr. Baker's comments apply more to ordinary CPUs like Intel's Core Duo and the like where each CPU has a lot of resources on and off the chip that have to be shared among the cores.

    In the case of the Propeller, there are 8 cores per socket. Unlike the kind of CPU they're talking about, the bottlenecks for the Propeller are the limited set of I/O pins (32 or 28 depending on how much you want to use the last 4) and the limited amount of hub memory. Both resources have to be shared among the 8 cores. To the extent that the application doesn't need all the I/O pins and doesn't need all of the hub memory, there may not be any contention among the cores for those resources.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-06-15 04:21
    We are not trying to run one program with multiple threads. Heater proved this similar concept with the ZiCog, although it was more of breaking the code into separate pieces of code and single execution of a cog at a time.

    However, what we are doing with the prop is offloading the smart I/O routines into self-contained routines that can run the I/O independantly and concurrently. This is vastly different from breaking one block of code into threads for multiprocessing. The reason we have multiple cores in Intel like chips is that we cannot get faster clocks yet, but we do have transistors available, so the logical step is to place multiple cpus on a chip.

    The prop approach is to put 8 identical processors with I/O capabilities onto a chip. The processors can also handle the intelligent I/O. So, instead of having a dedicated UART, VGA, TV, Keyboard, Mouse ports, they all can be handled by processors and can be however intelligent the programmer wnats them to be.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-15 04:45
    @Mike Green

    About those last 4 I/O pins.
    I can see how 30 and 31 would be usable since they are connected to nothing once the
    USB programming dongle is removed. But how can 28 and 29 be used at all for I/O since they
    are always connected to the eeprom???

    About having multiple processors on the same board.. I sometimes add an ATtiny to an AVR
    project if 20mips is not quite enough. It only cost about $2 and can use the same clock.
  • Mike GreenMike Green Posts: 23,101
    edited 2009-06-15 04:54
    @Holly

    Pins 28 and 29 can sometimes be used for other I/O. For example, you can connect other I2C devices of all sorts. You would need to put a pullup on the SCL line if it's not already present.

    If your I/O device can tolerate extra pulses, you could use 28 and 29. For example, SPI devices ignore their clock and data lines if the chip select is false (high). The main problem you'd run into would be that of an I2C device misinterpreting data going by as a device select.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-15 05:02
    @Mike Green

    I/O sounds a bit iffy for those pins. I will just hope I never absolutely
    have to use them...and if I do, I will come begging to you for help wink.gif
  • jazzedjazzed Posts: 11,803
    edited 2009-06-15 05:09
    If the eeprom is only being used for boot, you could always assert the write protect pin - if the eeprom has one.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • Mike GreenMike Green Posts: 23,101
    edited 2009-06-15 05:25
    @Holly
    There are some nice I2C 8 and 16 bit I/O Expanders that you can just hook up in parallel with the EEPROM. There's also a real time clock with SRAM and an ADC (4-chan)/DAC (1-chan) device. The PropellerBoeBot I did for BoeBotBasic uses an 8-bit I/O Expander in parallel with the boot EEPROM to interface to an HM55B compass (an SPI device) ... not at all iffy.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-15 05:40
    @Mike Green

    Have you ever posted a schematic of those I/O expanders hooked up to a prop?
    If so please give me a link to that as I am very interested smile.gif
    Also, that real time clock..is it very accurate? are they expensive?
  • Clock LoopClock Loop Posts: 2,069
    edited 2009-06-16 21:40
    HollyMinkowski said...
    @Mike Green

    Have you ever posted a schematic of those I/O expanders hooked up to a prop?
    If so please give me a link to that as I am very interested smile.gif

    Here is a I2C expander that you can get two samples for free from maxim.

    http://datasheets.maxim-ic.com/en/ds/MAX6956.pdf

    I actually had one of these around from a while ago, and am now going to interface it to my prop.

    Maxim chips tend to be on the expensive side (they are pretty custom, tho) and you can't always find a different source other than maxim.

    This chip is $2.95 @ 1k. Per chip might be around 4$.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    TERMS OF USE: MIT License

    "Permission is hereby granted, free of charge, to any pers...........................
    ..............................OMITTED FOR FORUM...............................................
    .................. OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. "
  • Clock LoopClock Loop Posts: 2,069
    edited 2009-06-16 21:44
    NVM, someone already made a MAX6956 object.

    Perfect.

    http://obex.parallax.com/objects/109/


    See people, at this rate, we will have an obex object for EVERYTHING MWAHAHAHAHAHA...

    Then we can rule the world.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-16 21:50
    @Clock Loop
    "This chip is $2.95 @ 1k. Per chip might be around 4$."

    It might just be better to use another propeller chip as an expander, almost
    as cheap and it's customizable.
  • Clock LoopClock Loop Posts: 2,069
    edited 2009-06-17 07:45
    HollyMinkowski said...
    @Clock Loop
    "This chip is $2.95 @ 1k. Per chip might be around 4$."

    It might just be better to use another propeller chip as an expander, almost
    as cheap and it's customizable.

    Thats what i thought, but then, consider,

    EEPROM, pull up/down resistors, crystal, plus the pcb space for all that and the prop.

    And also now you have to deal with programming both... it all adds up to where that 3$ chip is really worth it.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-06-17 08:06
    Clock Loop: Not necessarily...

    If you have spare output pins on the first prop you can...
    1. Load the second prop via 3 pins (SI, SO and -RST) so no eeprom is required, and you can then use the SI & SO pins anyway
    2. Another pin and a cog will allow you to output the clock saving the xtal, but this is about 50c anyway.

    Now you have a really good programmable/intelligent expansion device for about $9 smile.gif And it is the same as you are already using.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-06-17 17:35
    @BADHABIT

    General purpose CPU's have a such a different architecture that there probably not really comparable to the Prop.

    However, re the gen.purpose CPUs and your quote of the Siemans fellow:

    4) One dual-core CPU in 1 socket
    5) One quad-core CPU in 1 socket
    6) One single-core CPU in 1 socket

    Pretty incredible that the quad core ranks worse than the dual, and only one notch above the single! Siemans is a very serious company about stuff they publish (I've worked under contract for them in Germany myself) so this is probably a reliable result. Makes me wonder why we should even bother with duals and quads - then again, this is in the context of that NX software, and is probably more an issue of the SMP bus layout and management than the CPU per se.

    - Howard

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "This device contains recyclable materials, which can be re-decomposed

    and re-integrated into brand new marvels... We strongly encourage you
    to contact the provided information and recycle yourself always. "
  • Mike GreenMike Green Posts: 23,101
    edited 2009-06-17 18:05
    @Holly

    Download BoeBotBasic.· There's also an entry for this somewhere in the Completed Projects forum on my Propeller BoeBot.· I used the PCA9554 I/O expander (I think that's the number) and just wired it in series with the EEPROM's SCL and SDA lines.· There's a series resistor between the PCA9554 and the EEPROM lines since the PCS9554 is powered by +5V, but I2C is all open-drain and should work without the resistor.· It's still safer to use it.· I think it was 1K.

    Using a Propeller as an I/O expander makes sense.· Unless you're using timing dependent code (like asynchronous serial I/O), you can use the RCFAST clock.· If your main Propeller has an extra I/O pin, you can use that to generate a clock for the 2nd Propeller.

    As you mentioned, you can dispense with the EEPROM and download code from the main Propeller.· We're talking about a total of 4 I/O pins (clock, reset, and·2 serial I/O)·to get you 32K of SRAM and another 28 I/O pins.· The download pins can be used for I/O expander communications.


    Post Edited (Mike Green) : 6/17/2009 6:14:05 PM GMT
  • waltcwaltc Posts: 158
    edited 2009-06-17 18:22
    Counter rotating props:

    The problem with SMP(and has been known for decades) is that doesn't scale well at all. 4 processors aren't even as good 2 in SMP.

    As far as bus layout is concerned, there are a lot of very bright people working on this and they haven't found a good work around for the problems with SMP.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-17 18:42
    @Mike Green

    Is there any way to just hook a second propeller to the same crystal the first one is using??
Sign In or Register to comment.