Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!bloom-beacon!gatech!amdcad!tim From: tim@amdcad.AMD.COM (Tim Olson) Newsgroups: comp.sys.atari.st,comp.sys.misc,comp.sys.amiga Subject: Re: Atari Transputers ? (Really: stack machines) Message-ID: <18606@amdcad.AMD.COM> Date: Thu, 8-Oct-87 16:43:06 EDT Article-I.D.: amdcad.18606 Posted: Thu Oct 8 16:43:06 1987 Date-Received: Sun, 11-Oct-87 09:12:30 EDT References: <8709181728.AA13664@ucbvax.Berkeley.EDU> <1623@gryphon.CTS.COM> <4044@sdcsvax.UCSD.EDU> Organization: Advanced Micro Devices, Inc., Sunnyvale, Ca. Lines: 48 Keywords: context switch Xref: mnetor comp.sys.atari.st:5559 comp.sys.misc:912 comp.sys.amiga:9202 <<< Postnews can't find comp.sys.transputer, so I removed it from the <<< Newsgroup line -- could someone who has access to that group could cross- <<< post?? In article <4044@sdcsvax.UCSD.EDU> mr-frog@amos.UUCP (Dave Pare) writes: +----- | > Second, One of the hallmarks of a true-blue RISC chip, however, is | > *LOTS* of registers. The Am29000, for instance, has 192. Only large | > structs and arrays need to go off-chip. | | Is this per-context, or are they shared between all the running processes? | After all, the transputer is not a single-process machine! +----- There exist two "models" of register usage -- the stack cache model and the register bank model. In the stack cache model, each process uses the entire register file (the local registers are used as a scalar stack cache) and the registers must be saved on context switches. In the register bank model, the registers are divided up into 8 banks of 16 registers apiece, so up to 8 processes can be "resident". Our initial software will only support the stack cache model, however. +----- | As I understand it, RISC machines have difficulties once the number | of runnable processes gets above the number of "hardware" contexts | available to it. I think that if you have a task that fires off 30 | processes, the transputer will blow the doors off anything else, | because its switching overhead is 10% of most other machines. | What is the switch time of the Am29000? +----- For the stack cache model, the state can be saved in around 120-150 cycles (assuming single-cycle burst-write memory), which is between 4.8 and 6 microseconds. It takes a like amount of time to reload a new context. For the register bank model, the task switch can occur in about 20 cycles (800 ns). Yes, the transputer has a low context-switch time, but if you are really switching that often that 4 microseconds makes a difference, you probably aren't getting much work done, anyway. Note that most UNIX machines perform roughly 60 - 100 context switches per second, so that register-save time is in the noise. -- Tim Olson Advanced Micro Devices (tim@amdcad.amd.com)