• Looking for a paper on Forth multitasking

    From Brad Eckert@21:1/5 to All on Sat Oct 1 02:59:05 2022
    Hi All,
    I remember a paper about cooperative multitasking from a few years back, I think presented at EuroForth, for small Forths. Does anyone have a link to that or something similar?
    Thanks

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to Brad Eckert on Sat Oct 1 10:15:08 2022
    Brad Eckert <hwfwguy@gmail.com> writes:
    Hi All,
    I remember a paper about cooperative multitasking from a few years back, I think presented at EuroForth, for small Forths. Does anyone have a link to that or something similar?

    You find EuroForth papers through <http://www.euroforth.org/>. A
    quick search for "task" brought up some papers from 1985, and also

    @InProceedings{read15,
    author = {Ulrich Hoffmann and Andrew Read},
    title = {Hardware multitasking within a softcore {CPU}},
    crossref = {euroforth15},
    pages = {5--23},
    url = {http://www.euroforth.org/ef15/papers/read.pdf},
    OPTnote = {refereed},
    abstract = {We have developed and implemented hardware
    multitasking support for a softcore CPU. The
    N.I.G.E. Machine's softcore CPU is an FPGA-based 32
    bit stack machine optimized for running the FORTH
    programming language. The virtualization model that
    we have developed provides at least 32 independent
    CPU virtual machines within a single hardware
    instance. A full task switch takes place in only two
    clock cycles, the same duration as a branch or jump
    instruction. We have use the facility to provide a
    multitasking platform within the N.I.G.E. Machine's
    FORTH environment. Both cooperative multitasking, by
    means of the PAUSE instruction, and pre-emptive
    multitasking are supported.}
    }

    @InProceedings{baranov15,
    author = {Sergey Baranov},
    title = {A {Forth}-Simulator of Real-Time Multi-Task Applications},
    crossref = {euroforth15},
    pages = {33--40},
    url = {http://www.euroforth.org/ef15/papers/baranov.pdf},
    url-slides = {http://www.euroforth.org/ef15/papers/baranov-slides.pdf},
    OPTnote = {not refereed}
    }

    @Proceedings{euroforth15,
    title = {31st EuroForth Conference},
    booktitle = {31st EuroForth Conference},
    year = {2015},
    key = {EuroForth'15},
    url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef15/papers/proceedings.pdf}
    }

    @InProceedings{read16,
    author = {Ulrich Hoffmann and Andrew Read},
    title = {A synchronous FORTH framework for hard real-time control},
    crossref = {euroforth16},
    pages = {5--29},
    url = {http://www.euroforth.org/ef16/papers/read.pdf},
    video = {https://wiki.forth-ev.de/lib/exe/fetch.php/events:sync-rt.mp4},
    OPTnote = {refereed},
    abstract = {Forth control programs are typically written in an
    event triggered style: events that take place in the
    environment interrupt the main control program. The
    interrupt handler either handles the event
    completely on its own (if that's simple enough or
    timing requires it) or it triggers a task from an
    underlying multitasking system to take care of the
    event (in a non timing critical way). Most Forth
    multitasking systems are cooperative thus oering
    high reliability and predictable timing
    behavior. The framework described here uses a
    synchronous approach to meet hard real-time
    requirements. The approach borrows from dierent
    sources, most notably from synchronous hardware
    design, where signals are updated at a xed cycle
    rate, and program logic is implemented via nite
    state machines. Despite the fact that applications
    built with this framework follow hard real time
    constraints they may still retain interactivity
    through a FORTH interpreter. This is accomplished by
    means of an optional high level threaded code
    interpreter which can be executed in a step-wise way
    and will only progress as fast as necessary to still
    be within the real-time boundaries. The only
    requirement for this framework is a single
    free-running counter/timer with a known clock
    period. All other functionality is expressed in
    standard Forth and is thus portable to different
    standard systems.}
    }

    @Proceedings{euroforth16,
    title = {32nd EuroForth Conference},
    booktitle = {32nd EuroForth Conference},
    year = {2016},
    key = {EuroForth'16},
    url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef16/papers/proceedings.pdf}
    }

    @InProceedings{haley17,
    author = {Andrew Haley},
    title = {A multi-tasking wordset for Standard {Forth}},
    crossref = {euroforth17},
    pages = {64--67},
    url = {http://www.euroforth.org/ef17/papers/haley.pdf},
    url-slides = {http://www.euroforth.org/ef17/papers/haley-slides.pdf},
    video = {https://wiki.forth-ev.de/lib/exe/fetch.php/events:ef2017:multitasking.mp4},
    OPTnote = {presentation slides}
    }

    @Proceedings{euroforth17,
    title = {33rd EuroForth Conference},
    booktitle = {33rd EuroForth Conference},
    year = {2017},
    key = {EuroForth'17},
    url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef17/papers/proceedings.pdf}
    }

    Not sure if there is something that fits your bill.

    - anton
    --
    M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
    comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
    New standard: https://forth-standard.org/
    EuroForth 2022: https://euro.theforth.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Schultz@21:1/5 to Brad Eckert on Sat Oct 1 05:37:56 2022
    On 10/1/22 4:59 AM, Brad Eckert wrote:
    Hi All,
    I remember a paper about cooperative multitasking from a few years back, I think presented at EuroForth, for small Forths. Does anyone have a link to that or something similar?
    Thanks
    The classic series appeared in Forth Dimensions long ago. I have used
    that for the MSP430 and ARM.

    --
    http://davesrocketworks.com
    David Schultz

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From none) (albert@21:1/5 to hwfwguy@gmail.com on Sat Oct 1 21:09:32 2022
    In article <61524693-e3b7-42a5-8379-d8e758e5e83cn@googlegroups.com>,
    Brad Eckert <hwfwguy@gmail.com> wrote:
    Hi All,
    I remember a paper about cooperative multitasking from a few years back,
    I think presented at EuroForth, for small Forths. Does anyone have a
    link to that or something similar?

    Cooperative and pre-emptive multi-tasking can be found as source
    in the ciforth library.
    Note that only pre-emptive multi-tasking can take advantage of
    multiple cores.

    Thanks
    --
    "in our communism country Viet Nam, people are forced to be
    alive and in the western country like US, people are free to
    die from Covid 19 lol" duc ha
    albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)