Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!tektronix!sequent!mntgfx!mbutts From: mbutts@mentor.com (Mike Butts) Newsgroups: comp.arch Subject: Re: What is a coprocessor? ... and is the i860 one? Message-ID: <1989Aug31.161908.1557@mentor.com> Date: 31 Aug 89 16:19:08 GMT References: <21709@cup.portal.com> Organization: engr Lines: 46 From article <21709@cup.portal.com>, by mslater@cup.portal.com (Michael Z Slater): > 2. If a coprocessor is something like an 8087 that executes from the > same instruction stream as the main processor, then what is a good name > for an independent processor that works with another processor? > Attached processor? Slave processor? > Some history, for what it's worth... From the late 1970's thru to the present, FPS built array processors with architectures very much like the i860, only with small memories (4K to 32K words) where the i860s have caches. These were attached to PDP-11s and VAXes and the like thru a high-bandwidth interface and were used as "subroutine boxes." A FORTRAN program running on the host that needed a dot product or an FFT would call a subroutine, which would DMA the data into the FPS AP120-B's memory, cause it to execute a routine which had been previously loaded into the instruction RAM, and then ship the results back. You would code the 120B in assembler, which was tricky since it had 64-bit instructions with multiple parallel operation fields, or, later, there was a FORTRAN compiler. FPS and the industry called this an "attached processor." Then in 1981, FPS came out with the 164, which had a host connection much like the 120B's and could not stand alone, but which had a very large main memory for code and data, an instruction cache, facilities to allow multiple users to share the machine (although it did stop short of virtual memory), and was built to run entire large applications, like ANSYS and NASTRAN. It depended primarily on the host VAX for I/O, but did have its own high-speed disk, file system and OS. It had an excellent optimizing FORTRAN compiler that could schedule multiple operations into the parallel, pipelined instructions. FPS initially called this an "attached processor" as well, but later called the 164 a "scientific computer," as it was being used as a "baby Cray." Indeed, don't most scientific computers, like the Crays, depend on a host GP system for much of their I/O? Where do you draw the line? To summarize, I would call a machine which has its own instruction stream, but which is slaved to a host's instruction stream, an "attached processor." In a broad sense such a machine is not that different from a co-processor, except that its "instruction set" is programmable and its "operands" may be entire matrices. I would call a machine which executes entire numeric-intensive applications, such as an FPS-164, a Cray, or an i860 with a large main memory, a "scientific computer." -- Michael Butts, Research Engineer KC7IT 503-626-1302 Mentor Graphics Corp., 8500 SW Creekside Place, Beaverton, OR 97005 ...!{sequent,tessi,apollo}!mntgfx!mbutts OR mbutts@pdx.MENTOR.COM Opinions are my own, not necessarily those of Mentor Graphics Corp.