Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!leah!itsgw!steinmetz!uunet!microsoft!w-colinp From: w-colinp@microsoft.UUCP (Colin Plumb) Newsgroups: comp.arch Subject: Re: A dumb idea for making data caches more useful Message-ID: <751@microsoft.UUCP> Date: 26 Feb 89 23:11:37 GMT References: <2756@daisy.UUCP> Reply-To: w-colinp@microsoft.uucp (Colin Plumb) Organization: very little Lines: 35 david@daisy.UUCP (David Schachter) wrote: > Um, how about constructing the D cache such that a program > can give it a hint? "Hey, D cache, I intend to access data > starting from location x, w bytes at a time, stride factor > y, for z times." > > The D cache could then intelligently look ahead. How about > it? See: "The WM Computer Architecture," Wm. A. Wulf, Computer Architecture News (SIGARCH newsletter) Vol. 16, No. 1, March 1988. From what I've heard of the CDC 6600, it uses a similar idea. To load or store, an instruction computes the address, and an access to r0 uses or supplies the data. For a load, you must specify an address before reading r0, but for a store, you can do things in either order. FIFOs actually allow you to get a few words ahead on the address or data side. I suppose that filling one FIFO while the other is empty causes a trap. The nifty thing is the streaming instructions, which allow you to specify a series of loads or stores as a (base, stride, number) triple. In the paper, two registers are provided for this purpose, but the concept can apply to any number. I think it's a great idea for a vector pipe, given the memory latency/CPU speed ratios we have these days. And it doesn't constrain the processor to produce or eat values at any fixed rate. In general, it's a fun paper. I disagree with some of the ideas (there's no provision for things like division which are popular, but take multiple cycles), but there are a lot of good ones in there. He has two ALU's, and instructions are of the form dest = src3 op (src2 op src1). Any comments on that one? -- -Colin (uunet!microsoft!w-colinp) "Don't listen to me. I never do."