Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!topologix.UUCP!andy From: andy@topologix.UUCP (Andy Pfiffer) Newsgroups: comp.sys.transputer Subject: Re: GNU C for the transputer Message-ID: <8910192040.AA20132@topologix.com> Date: 19 Oct 89 20:40:48 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 60 +---- Erik Schoenfelder in "Subject: Re: GNU C for the transputer" - Tue Oct 17 @10:42pm | | An idea is to use the fast built-in memory of the transputer like | registers (with a accesstime between 1 cycle and 5 (?) cycles). | (Nice idea: It will be possible to get the address of a register variable :-) | But this results in a compiler for a (virtual) processor based on | the transputer-processor. +---- The problem with using the on-chip RAM as register variables is that if you want more than one GCC-produced binary running on the Transputer at a time, you have introduced a management problem; you must now context-switch on-chip RAM (or portions of it) between processes. It might be just the thing, however, for monolithic (as in one executable per node) environments. Perhaps you could limit each process to, say, 8 words of on-chip RAM and at process start-up, assign the "base" address of your pseudo-register set to an unused 8-word slot. That would limit you, however, to a few less than 128 processes (assuming a T800; you can't use all 4KB of on-chip RAM). Quite reasonable, actually. You don't get anything for free, however. You will still have to pay some cycles in referencing your on-chip pseudo-register set. Assuming we keep the base address of our pseudo-register set in a workspace-based variable, it might look something like this: ldl regbase ldnl 4 add . . in which case if your workspace is off-chip you've made matters much worse by *still* referencing your workspace. You can also play some games by using "mint" as a base address. A better solution might be to design a new Transputer that maintained a small, say 16-word, Transputer-maintained data-cache of the top 16-words of the workspace. The best solution might be to throw an R3000*, an R3010*, two 8-channel NCR-SCSI Sripts processors, a Virtual-Cut-Through router, and a few 100Mb/sec FDDI controllers into a centrifuge and pour the resulting goo into a 12x12 PGA. Andy *Acceptable substitutions may also include 88100 and 88200, or the daily special from Your Friendly Neighborhood RISC Store. -- Andy Pfiffer Topologix, Inc. (303) 421-7700 Trillium Diving Team 4860 Ward Road / Wheat Ridge, CO 80033 "...that's the way a Transputer works, right?"