Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!ucbvax!decwrl!hplabs!hp-sdd!ucsdhub!sdcsvax!net1!hutch From: hutch@net1.ucsd.edu (Jim Hutchison) Newsgroups: comp.arch Subject: Chaining routines, sequencers (query) Message-ID: <4981@sdcsvax.UCSD.EDU> Date: 27 May 88 07:44:24 GMT Sender: nobody@sdcsvax.UCSD.EDU Reply-To: hutch@net1.UUCP (Jim Hutchison) Lines: 40 <> I am interested in finding out about techniques for dynamicly chaining routines together in microcoded hardware. Currently I am using a AMD2910 based VLIW style function processor (cheeky name) and am doing co-routines via "jump vector" operations. This works fine for pairs of routines, but when I suddenly want more than just an input and an output operation... The overhead for the linked pair is 1 instruction per "call", which can usually be hidden behind a main memory reference. Has anyone got a fancy do-dad which can set up a stack to roll down? At each call, call the routine one farther down in the stack. Like this: setup() push routine A push routine C push routine B push routine Reset Pointer A() do stuff call next ; co-call next filter B() do stuff call next ; co-call next filter C() do stuff call next ; co-call next filter Reset Pointer() vector stack = top An added convenience would be that it would reset to top of stack on bottom out, but it is not necessary. Why do it in software at all? Things have to be maleable, new filters as needed or dreamt up and sold. :-) Suggestions? Related hardware? Any DSP chips that allow this? Jim Hutchison UUCP: {dcdwest,ucbvax}!cs!net1!hutch ARPA: Hutch@net1.ucsd.edu Disclaimer: The cat agreed that it would be o.k. to say these things.