Shop OBEX P1 Docs P2 Docs Learn Events
8 is not enough! — Parallax Forums

8 is not enough!

PerryPerry Posts: 253
edited 2011-05-18 09:10 in Propeller 1
I have been watching several threads recently and decided to present an heretical proposal.
Listed in no particular order ...

http://forums.parallax.com/showthread.php?131274-View-Port-standalone&highlight=viewportViewport Stand Alone

My take on this thread is the programmer wanted the interface to run on the Propeller.

http://forums.parallax.com/showthread.php?131382-Realtime-Propeller-Network-over-Ethernet-or-quot-the-propeller-between-propellers-quotRealtime Ethernet Network

http://forums.parallax.com/showthread.php?131466-Multi-Propeller-System Multi Propeller

http://forums.parallax.com/showthread.php?131496-A-disturbing-trend... Disturbing Trend

http://forums.parallax.com/showthread.php?131548-Holly-s-Request Holly's Request

Much of this is already done see http://forums.parallax.com/showthread.php?88361-MCP-%28Master-Control-Program%29-simple-spin-example-launcher-for-beginners&highlight=mcp2

There could be very different answers to these threads if:

Perhaps it's time the Propeller community embraces an agnostic processor metaphor !

I am thinking .of more radical approach to systems design namely "QNX" and "Inferno" that have microcore and exocore designs .

These environments have multi target processor capabilities, and can create environments from large multiprocessor systems to embedded products with identical interfaces, even GUI's.

The also have unusual namespace conventions.

"QNX" can create a 1.4M floppy with a GUI and browser, but I am not liking the licensing options.

"Inferno" is similar but probably builds a larger footprint and is Open Source.( I am presently trying to build the standalone for "pc" environment) to see about porting to Propeller.

I have never thought of the Propeller as a stand alone CPU (no interrupts, no MMU) but as the "glue" to make something much bigger .

The future of computing is multiprocessing and network orientated. This may not work on the "Propeller I" but the "Propeller II" could be just right.

For a start up multi processor, consider a system with 1 to 8 Propeller chips, one cog in each does the microkernel and MMU stuf, they share a single large RAM memory.

The first Propeller is also contains the basic HID (keyboard,mouse,VGA,network,SD access)

There is a lot unsaid here, but I invite comments, suggestions and criticisms.

So what do others think?

Perry

Comments

  • Bill HenningBill Henning Posts: 6,445
    edited 2011-05-11 09:57
    I started something like that a long time ago - see the "Largos" link in my signature.

    It is crawling along slowly, due to more pressing projects - and frankly, it is more appropriate to Prop2
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-11 10:05
    I definitely like the basic concept. Probably will have to wait for the Propeller II. Have you thought about something like a mod on MINIX to run the servers on separate cores?

    This definitely sounds like a good idea.
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-05-11 11:04
    Perhaps it's time the Propeller community embraces an agnostic processor metaphor ! I am thinking .of more radical approach to systems design

    Did that, it works great great, they call it FORTH. Most folks can't use it because its not C and doesn't come from Microsoft, it too small, its too fast, its too easy to use, and it doesn't need 8 Gig of RAM to boot. These drawbacks render it unusable by most engineers.

    If you continue on this path, expect resistance from the more vocal of your peers, especially if you demostrate success. You probably won't be burned at the stake, if you live far enough away.

    Even if you do succede, it has already been proven that you can't use such a system for anything except interplanetary space probes, military satellites, communication satelites, Cisco routers, Sun workstations, Apple compters, postscript printers, FedEx scanners, and embedded systems in general; so the market is limited in this respect.

    It does SOUND like agood idea, though, but that's just me.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-05-11 11:13
    Almost thou doth convince me to try FORTH... :)

    OBC
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-11 11:20
    Almost thou doth convince me to try FORTH... :smile:
    He has already convinced me to try FORTH and thus far I like it.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-05-11 11:58
    Zilog at one time introduced a microcontroller called the Super8, a Z8 derivative that included instructions for abetting threaded languages like Forth. It was really a cool (but not cool-running, being NMOS only) chip that, unfortunately never gained traction. I used my only sample to drive a three-axis stepper-controlled vertical mill. The bottom-level stepper drivers were written in S8 assembly, of course, but I wrote the entire front-end in Forth. Not only was Forth perfect for this app, but it would not have been possible to do it at all without Forth, due to memory constraints. That said, Forth code is not the easiest to come back to and comprehend if you've been programming with more common, infix languages in the meantime. And having also programmed in Postscript (another postfix language), which has advanced stack management facilities like mark and cleartomark, performing explicit stack housekeeping in Forth seems like an awful nuisance. IMO, that necessity is Forth's biggest weakness.

    -Phil
  • PerryPerry Posts: 253
    edited 2011-05-11 12:18
    What I mostly want is "leveraging" and hardware agnostics.
    The tool chains mentioned, QNX and Inferno have been around for many years. QNX is likely the most capable of the two.

    "Forth is interesting as a language ,but is not known for it's GUI's or as an OS. In my view it could be used to implement the micro-kernel. What is just as important is the "exokernel", this is the kernel that runs networked applications on any processor and any architecture..

    Multprocessing is still in it's infancy, I believe that new apps can be created that dynamically use a computing cloud to achieve results faster the present single processor models. Parallax's propeller is really just 8 CPUs on a chip, I see little attention paid to interprocessor/multiprocessor communications,http://www.mnis.fr/ocera_support/rtos/x2652.html

    Also optimizations like BST's "eliminate unused spin methods" allow the creation of embedded apps with the same source as the workstations.

    Perry
  • PerryPerry Posts: 253
    edited 2011-05-11 12:27
    I definitely like the basic concept. Probably will have to wait for the Propeller II. Have you thought about something like a mod on MINIX to run the servers on separate cores?

    This definitely sounds like a good idea.
    Many times good ideas don't pan out http://www.trollaxor.com/2005/06/how-qnx-failed-amiga.html
  • Mike GreenMike Green Posts: 23,101
    edited 2011-05-11 12:38
    @Perry,
    The Propeller is more than just 8 CPUs on a chip. It has built-in mutex operations (LOCKxxx instructions) and the hub read/write instructions (RDxxxx and WRxxxx) are implemented such that these operations are atomic. Most multiprocessor code written for the Propeller uses simple producer/consumer mechanisms for inter-processor communications and the LOCKxxx instructions can be used to implement more complex behaviors when needed. Several people have written multi-threading kernels, but these are rarely used, mostly because the amount of memory directly available to each CPU is so limited.
  • doggiedocdoggiedoc Posts: 2,245
    edited 2011-05-13 15:56
    Did that, it works great great, they call it FORTH. Most folks can't use it because its not C and doesn't come from Microsoft, it too small, its too fast, its too easy to use, and it doesn't need 8 Gig of RAM to boot. These drawbacks render it unusable by most engineers.

    If you continue on this path, expect resistance from the more vocal of your peers, especially if you demostrate success. You probably won't be burned at the stake, if you live far enough away.

    Even if you do succede, it has already been proven that you can't use such a system for anything except interplanetary space probes, military satellites, communication satelites, Cisco routers, Sun workstations, Apple compters, postscript printers, FedEx scanners, and embedded systems in general; so the market is limited in this respect.

    It does SOUND like agood idea, though, but that's just me.

    I do love sarcasm! But seriously, I didn't understand exactly what the OP was getting at, but you have inspired me to take a closer look at FORTH. I see you peeked OBCs interest too. :D

    Paul
  • PerryPerry Posts: 253
    edited 2011-05-13 19:23
    doggiedoc wrote: »
    I do love sarcasm! But seriously, I didn't understand exactly what the OP was getting at, but you have inspired me to take a closer look at FORTH. I see you peeked OBCs interest too. :D

    Paul

    If you really wanted to compare processors you need a single tool chain the develops code for both/many object architectures.

    Often I try to convince new computer users ( and old as well) that they do things backwards'
    (if all you have is a hammer the solution to every problem requires a nail)

    When they want to do some project they first open an application and then look for their data.
    I tell them they should generally only use the file manager and know where their "stuff" is, let the OS find the application.

    Similarly when developing a product/project one should first have some kind of "functional specification" otherwise it is unlikely to ever be finished.

    How do we think and work?


    human .........dog bites man
    assembler .. bites man dog
    forth ...........dog man bites

    When normally working at home we first find the subject/problem and then we look for the tool.

    I guess what I want is kind of a universal tool for development of solutions!

    Perry
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-05-15 07:07
    Sorry to carry on like I do, but this is thread keeps asking for FORTH for all the right reasons.
    "Forth is interesting as a language ,but is not known for it's GUI's or as an OS. In my view it could be used to implement the micro-kernel. What is just as important is the "exokernel", this is the kernel that runs networked applications on any processor and any architecture..

    Must contradict you here, forth IS known for it's GUI's or as an OS. It just not a Windows gui, its a command line that you can extend into a GUI if and only if you decide you need to spend the resources there. As a matter of fact, I have decided this, I'm working on (making smart people help with the hard parts of) this right now. Host target, networked peers, the whole shot.
    Perry wrote: »
    If you really wanted to compare processors you need a single tool chain the develops code for both/many object architectures.

    FORTH

    Often I try to convince new computer users ( and old as well) that they do things backwards'
    (if all you have is a hammer the solution to every problem requires a nail)

    I don't try to convince, I try to "point out"
    Similarly when developing a product/project one should first have some kind of "functional specification" otherwise it is unlikely to ever be finished.

    Please look in the "Holly's Request thread" for braino's take on requirements, based on practical application of the Capability Maturity Model Integration (CMMI) from the Software Engineering Institute (SEI) of Carnegie Mellon University. I'm not a Carnegie Mellon employee, but a speed a LOT of my days applying the theory to corporations.
    How do we think and work?

    Usually, "struggle needlessly" - sorry, my sarcasm bit is stuck again :)
    human .........dog bites man
    assembler .. bites man dog
    forth ...........dog man bites

    When normally working at home we first find the subject/problem and then we look for the tool.

    I guess what I want is kind of a universal tool for development of solutions!

    Perry

    This is big-endian versus little-endian. You are stuck with American English language blinders. Other human languages do not use the same constructs and work perfectly well, Some do not communicate as well because the do not have as much absorption and co-mingling of grammatica constructs (due to migration conquest etc) but they are still valid.

    In any case, we are NOT talking about human language, we are talking about computer interface language. It is not valid to say FORTH's grammar is any less suitable for human, as is not suitable to say any spoken language is "best" for humans.

    It funny how some topics can set me off. I should refrain. :)

    I don't wish to change you mind, I only wish to point out that there is a box of tools designed for your stated need, should you wish to employ them.
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-05-15 10:30
    Forth is interesting as a language ,but is not known for it's GUI's or as an OS.
    Forth started out as its own OS. For modern FORTH based OS see ForthOS.
  • PerryPerry Posts: 253
    edited 2011-05-18 08:19
    human .........dog bites man
    assembler .. bites man dog
    forth ...........dog man bites

    This is big-endian versus little-endian. You are stuck with American English language blinders. Other human languages do not use the same constructs and work perfectly well, Some do not communicate as well because the do not have as much absorption and co-mingling of grammatica constructs (due to migration conquest etc) but they are still valid.

    .

    I will try to ignore the rest of your missive but this analysis is totally wrong!

    To compare three items whose description actually ends in "fix" with two items ending is "endian" defies any logic.

    I wonder if you even took your language cultist blinders off for a Plank time, to investigate the two environments I mentioned.(qnx,inferno).

    I am having much success in my studies of the inferno environment to bother with your tirades but hope to clear some of negativity in my internal dialog with this post.

    Perry
  • prof_brainoprof_braino Posts: 4,313
    edited 2011-05-18 09:10
    Perry wrote: »
    To compare three items whose description actually ends in "fix" with two items ending is "endian" defies any logic.

    ... to investigate the two environments I mentioned.(qnx,inferno).

    ... your tirades

    I apologize for my lack of clarity, and for offending you or other readers.

    By big-endian vs little endian, I meant that the focusing on the ordering of the language syntax is a tangental issue just as byte ordering is a tangental issue to the usefulness of a processor.

    I wish you success with your exploration of qnx and inferno, I'm sure they are quite capable of fullifing your needs. I have not investigated either, I have not had the opportunity. This is to my disadvantage.

    Your proposal seemed to indicate that your tools do not already provide the proposed functionality. My intent was to suggest that another tool might already provide at least some part of the requested functionality, perhaps most. This is in no way intended to disparage other solutions or discourage other lines of investigation. Your drive and skills combined with your choice of tools should yield interesting and useful results.
Sign In or Register to comment.