Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!gatech!hubcap!Andreas From: agn@UNH.CS.CMU.EDU (Andreas Nowatzyk) Newsgroups: comp.hypercube Subject: Re: Question on hypercube routing (Ncube-send's) Message-ID: <315@hubcap.UUCP> Date: Fri, 17-Jul-87 08:45:19 EDT Article-I.D.: hubcap.315 Posted: Fri Jul 17 08:45:19 1987 Date-Received: Sat, 18-Jul-87 13:31:10 EDT Sender: fpst@hubcap.UUCP Lines: 28 Approved: hypercube@hubcap.clemson.edu Contrary to David Bradley's interpretation of the broadcast instruction on the Ncube-machine (BPTR and BCNT), it is possible to use each of the 22 DMA-channels (10 pairs of receiver/transmitter for communication inside the cube and 1 pair for I/O) independently: To start a transfer, you should check the ready-flag to see that the channel is idle (you may use the interrupt facility to do so instead). The LPTR instruction loads the address of the data to be transfered into the address register of an specific channel and the LCNT instruction loads the byte-count and initiates the transfer - no sweat. This is much easier than programming the ethernet-chip in the iPSC. There is however a bandwidth limitation: 22 active DMA channels would cause about 28 Mbyte/sec peak memory traffic in addition to the CPU. They all share the same data path to the off-chip memory. This would exceed the memory I/O bandwidth by a factor of 3. So a node cannot have more than 8 active, independent channels at a time. Anyway, this is only of interest to bare-metal system programmer: The typical user sees generalized send- and receive-calls that hide the topology, routing issues and the queueing of unsolicited messages. -- -- Andreas Nowatzyk (DC5ZV) Carnegie-Mellon University Arpa-net: agn@unh.cs.cmu.edu Computer Science Department Usenet: ...!seismo!unh.cs.cmu.edu!agn