Path: utzoo!mnetor!uunet!tektronix!sequent!jjb From: jjb@sequent.UUCP (Jeff Berkowitz) Newsgroups: comp.arch Subject: Re: Wulf's WM Message-ID: <3342@sequent.UUCP> Date: 27 Apr 88 01:58:40 GMT References: <28200131@urbsdc> <1508@pt.cs.cmu.edu> Organization: Sequent Computer Systems, Beaverton, OR Lines: 36 Summary: LOAD into a queue: we did it In article <1508@pt.cs.cmu.edu>, agn@UNH.CS.CMU.EDU (Andreas Nowatzyk) writes: > Of particular appeal to me was the introduction of fifo's into the > load/store instructions (decoupling the time when an address is issued > from the time when the data is accessed) as it has the *potential* of > allowing more latency in the memory system without degrading the throughput. Culler Scientific implemented this feature. It is visible at the instruction set level, so the compiler could emit code like ... load (r2) add fifo, r0, r1 ... Note that this is psuedocode, not Culler assembler. The depth of the FIFO is four. It is possible to issue three or four reads in succession, then begin using the data as it arrives from memory. The performance gain is substantial; in practice, the compiler is very often able to schedule reads in advance and make use of the latency. Making this design interruptible was complex. Culler implmented hardware interlocks to stall the processor on an attempt to read an emptry FIFO. The machine included a deadlock detector in hardware which would generate a trap in case of an infinite stall (I'm not advocating anything, just reporting on a real implementation.) I thought this tidbit would be interesting despite the machine's well known commercial failure. Late in our design, we also became aware of a group - maybe they were at U. of Wisconsin? - which had independently designed a machine called PIPE. This machine made heavy use of queues, and the architects had done some worthwhile simulations. Sorry I can't be more specific, my article collection has not yet followed me to Oregon. -- Jeff Berkowitz ...!tektronix!sequent!jjb Sequent Computer Systems Beaverton OR