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)