[net.micro] Large Dual Ported memories

WLIM@MIT-XX.ARPA (03/01/84)

From:  Willie Lim <WLIM@MIT-XX.ARPA>

We are looking for large expandable dual ported memories (those that
allow you to read and write simultaneously) for our dataflow
supercomputer project.  Due to the nature of the problem, we can
guarantee that a read and a write to the same location at the same
time can never occur (hence arbiters are not needed).  Are there any
such commercially available chips out there?  Is anyone making their
own custom VLSI version of such chips?  How large (in terms of memory
word size) are such chips?

All responses will be posted on the net.

Thanks.


Willie
-------

Lannom.WBST@PARC-MAXC.ARPA (03/02/84)

Have you tried Mostek's new MK4501 BiPort FIFO?

See their ad in Electronics Feb 23,1984  page 72

Good Luck,

Jim Lannom

dollas@uiuccsb.UUCP (03/06/84)

#R:sri-arpa:-1705300:uiuccsb:4400051:000:1999
uiuccsb!dollas    Mar  5 07:35:00 1984

   To the best of my knowledge there is no such beast as a  multiport 
memory when one goes down to the hardware-hardware level. The way it
can be faked is by address interleaving, ie rearrangement of the addresses
of the memory requests in such a way that two addresses that need to be
accessed at one time are on different chips. However there is a catch: 
you have to know in advance (from the architecture) what kind of 
accesses you need to do. For a von Neumann machine it is not that bad 
because usually the requests are for consecutive addresses (say, to
load a program, page swapping, etc), in which case one needs only to 
make consecutive words be physically separated on the chip level (a 
simple example is to have odd/even words separated).
   In a dataflow machine the access requests depend of course on the
architecture. In a machine in which virtually all
address combinations can occur it seems to me that the best solution
is to make a multiport (with several ports) memory on the stochastic
model that will yield the fewest conflicts. With any realistic 
constraints (cost, complexity, etc) the model will not be perfect
(no conflicts) but you may be surprised at how well such a model can do.
Naturally the smallest the size of each bank that will be 'tied' with a
memory request the better you will do, but with a higher overhead.
It may also be worth to see if your memory accesses are in predetermined
patterns, in which case a solution similar to that discussed in the
previous paragraph may do the trick...
   Finally, in terms of multiplexing the addresses I think that it may
be possible to do all the interleaving on the PC board level (thus
saving the delay of multiplexing with active components).
   Good Luck!

                                            Apostolos Dollas
                                           Dept. of Comp. Sci.
                                             U. of Illinois
                                   ...!pur-ee!uiucdcs!uiuccsb!dollas

mason@utcsrgv.UUCP (Dave Mason) (03/07/84)

I think this really belongs in net.arch, so let's move it there (they're
a lonely bunch anyway).

But to the topic:
There are not any large Dual Ported Memories (DPMs) that I am aware of,
but there are some small DPMs that really are 2 accesses at once.  The way
they work is (I believe) that there are 2 copies of every peice of data,
and whenever a change is made via one port, it is shadowed over to the other
at some (hopefully soon) convenient time.  This way there can be no conflicts
on accessing...much better if you want a synchronous architecture.
Fairchild (probably among others) makes some of these chips..the largest I
know of being something like 32 words x 8 bits.  They are intended as register
banks in a CPU, so the speed is probably within your requirements (about 20ns)!
-- 
 {dalcs dciem garfield musocs qucis sask titan trigraph 
  ubc-vision utzoo watmath allegra cornell decvax decwrl ihnp4 uw-beaver}
	!utcsrgv!mason		Dave Mason, U. Toronto CSRG

BILLW%sri-kl@sri-unix.UUCP (03/09/84)

Don't be silly.  You can have a "real" "simple" dual ported
memory as long as the memory access speed is twice what either
port will require.  I believe there was a simple circuit
based on this principle published in a recent issue of EDN
magazine (in the design ideas portion)...

WW

tjt@kobold.UUCP (03/13/84)

Well, I don't know about *large* dual ported memories, but it is quite
common to use dual ported memories for registers in CPU's.  It is not
done by address interleaving, but rather by duplicating the memory.
This allows true, independent reads, but any write must be done to
*both* memories.  Again, there is a cach in that you need to know what
kind of accesses will be performed.  Inside a CPU, the use of multiport
register files is to feed one register as one input to the ALU, another
register to the other ALU input, and then write the result back.  The
reads should be simultaneous, but will not overlap with the write.
-- 
	Tom Teixeira,  Massachusetts Computer Corporation.  Westford MA
	...!{ihnp4,harpo,decvax}!masscomp!tjt   (617) 692-6200 x275

mikezi@shark.UUCP (Mike Ziuchkovski) (03/15/84)

There is a dual port RAM from Synertek (1Kx8) that is being sampled
right now. The part number is SY2130 and has an access time of 100 ns.
the only conflict is when both ports try to access the same address.
48 pin with separate address and data lines, busy, and interrupt lines.

mike ziuchkovski

sasha@uiuccsb.UUCP (04/19/84)

#R:shark:-61800:uiuccsb:4400058:000:527
uiuccsb!sasha    Apr 19 12:15:00 1984

/**** uiuccsb:net.micro / shark!mikezi / 10:16 pm  Mar 15, 1984 ****/
There is a dual port RAM from Synertek (1Kx8) that is being sampled
right now. The part number is SY2130 and has an access time of 100 ns.
the only conflict is when both ports try to access the same address.
48 pin with separate address and data lines, busy, and interrupt lines.

mike ziuchkovski
/* ---------- */

  Do you mean that two different addresses can be accessed simulataneuosly? 
This is kind of unusual. Do you have any idea how is this done?

dont@tekig1.UUCP (Don Taylor) (04/22/84)

X
     This is copied, without permission, from 'Digital Design' 4/84, pp 153

'Dual Port Memory Unit
 256K ram
     The Mc68HC34 is an 8-bit HCMOS dual-port RAM which facilitates
communications between microprocessors with different bus definitions
and clock timings.  It allows two processors operating on separate
busses to exchange data.  Interrupt registers are the mechanism by
which the processors interrupt each other.  The 256 <<<<<<<Kbyte>>>>>>>!
dual-port RAM may be accessed from either microprocessor.  The MC68HC34
contains 6 read/write semaphore registers.  Price in quantities of
1000 is $25.  Motorola, Phoenix, AZ.'

256Kbytes, all in a single 40 pin package, for $25 no less, I'll take 10.
The angle brackets are mine, the 'Kbytes' is theirs, OH I love those typos.
Still, if it is 256Kbits, that is 32Kbytes, this sounds like a STEAL, unless
the price is really $2500, or it is 2.56 bytes.

Don Taylor
tektronix!tekig1!dont

WLIM@MIT-XX.ARPA (04/24/84)

From:  Willie Lim <WLIM@MIT-XX.ARPA>

The following is a summary of the information I got on large dual
ported memories.  All the technical information given are from the
manufacturer's spec. sheets.


1)  Use conventional single ported RAM chips that are twice as fast.


2)  Use specialized memory chips:

a) Synertek SY2130/SY2131 - Dual ported RAM
   ----------------------
	o   48-pin package
	o   100nsec. 1K*8 dual ported RAM
	o   Synertek's n-channel double poly silicon gate technology
	o   concurrent access possible if not to the same location
	o   two arbitration modes available - use on-chip arbitration logic,
	    or ignore contention

b) MOSTEK MK4501/MK68345 - Dual ported FIFO
   ---------------------
	o   28-pin package
	o   120, 150 or 200 nsec. (access time)
	o   size : 512*9 (expandable to larger memory sizes)
	o   HCMOS technology
	o   asynchronous and simultaneous read/write

c) MMI 54/74S419 - FIFO RAM Controller
	o   to be used with a RAM
	o   buffer size ranging from 512 to 64K
	o   arbitration read/write
	o   12.5 to 25 MHz. using 25 nsec. RAM

3) Combining 1) and 2a) one can build a four-ported memory.

		***********************************


The following are the messages I got in response to my request for
information on large dual ported memories.


Date: Thu 1 Mar 84 13:48:41-EST
From: Larry Seiler <Seiler@MIT-XX.ARPA>
Subject: Re: Large Dual Ported Memories

This may be a dumb idea, but have you considered getting ordinary
memory chips that are twice as fast as you need?  You would need 
an address mux and a tristate buffer to drive the write data onto
the IO lines, but that's about it.  I am currently doing much the
same thing with some standard memory chips, except that mine is
simpler since my write is to the same address as the (preceeding) read.
	Enjoy,
	Larry
     rather than the IEEE formats.
-------

Date:  1 Mar 84 17:04:08 EST
From: Andreas Nowatzyk@CMU-CS-A
Subject: Re: Large Dual Ported Memories

Synertek produces a 1K by 8 dual ported memory with 100ns access time.
The type is SY21D1 and they recently released data sheets. MMI also
claims to have some new DP memories, but their first versions are
hidden as FIFO's.
  --  Andreas

Date: Fri, 2 Mar 84 10:04 EST
From: Lannom.WBST@PARC-MAXC.ARPA
Subject: Re: Large Dual Ported Memories

Have you tried Mostek's new MK4501 BiPort FIFO?

See their ad in Electronics Feb 23,1984  page 72

Good Luck,

Jim Lannom

Date: Fri 2 Mar 84 14:49:30-CST
From: John Otken <CC.Otken@UTEXAS-20.ARPA>
Subject: Re: Large Dual Ported Memories

Electronics had an article on a dual ported RAM chip in the last year.
I couldn't find the issue laying around though.  John.
-------

(The following message has been edited at the request of the sender.)
Date: 5 Mar 1984 0646 PST
From: Richard B. August <AUGUST@JPL-VLSI>
Subject: Re: Large Dual Ported Memories

REGARDING DUAL-PORT MEMORIES:

The Singer Librascope facility IN GLENDALE,CA HAVE
DONE EXTENSIVE WORK WITH THIS TYPE OF HARDWARE (SPECIFICALLY FOR
USE ON THE TACFILE-CCS PROGRAM).

Phone number for that facility is (213) 244-6541.

REGARDS RAUGUST

------

Date: Sun, 4 Mar 84 13:21:16 est
From: watmath!wateng!bcdoody@Berkeley
Subject: Re: Large Dual Ported Memories

	TI (second-sourced by Western Digital) makes the TI(WD)99650
Multiprocessor Interface Device, which is basically a dual-ported 256x8 RAM.
It also contains message registers for inter-processor communication and
READY outputs on both sides.  The RAM is accessed indirectly through on-chip
address registers (i.e. address lines don't go into the chip) and simultaneous
accesses from the two sides are arbited internally.  It can be expanded
width-wise (to provide 16,24,32 etc bit words).
	Hope this was a bit of help.

	Brian Doody, Univ. of Waterloo, Elec. Eng., Waterloo, Ont., Can.
 

Date: 5 Mar 84 19:33:17-PST (Mon)
From: pur-ee!uiucdcs!uiuccsb!dollas@ucb-vax
Subject: Re: Large Dual Ported Memories - (nf)

   To the best of my knowledge there is no such beast as a  multiport 
memory when one goes down to the hardware-hardware level. The way it
can be faked is by address interleaving, ie rearrangement of the addresses
of the memory requests in such a way that two addresses that need to be
accessed at one time are on different chips. However there is a catch: 
you have to know in advance (from the architecture) what kind of 
accesses you need to do. For a von Neumann machine it is not that bad 
because usually the requests are for consecutive addresses (say, to
load a program, page swapping, etc), in which case one needs only to 
make consecutive words be physically separated on the chip level (a 
simple example is to have odd/even words separated).
   In a dataflow machine the access requests depend of course on the
architecture. In a machine in which virtually all
address combinations can occur it seems to me that the best solution
is to make a multiport (with several ports) memory on the stochastic
model that will yield the fewest conflicts. With any realistic 
constraints (cost, complexity, etc) the model will not be perfect
(no conflicts) but you may be surprised at how well such a model can do.
Naturally the smallest the size of each bank that will be 'tied' with a
memory request the better you will do, but with a higher overhead.
It may also be worth to see if your memory accesses are in predetermined
patterns, in which case a solution similar to that discussed in the
previous paragraph may do the trick...
   Finally, in terms of multiplexing the addresses I think that it may
be possible to do all the interleaving on the PC board level (thus
saving the delay of multiplexing with active components).
   Good Luck!

                                            Apostolos Dollas
                                           Dept. of Comp. Sci.
                                             U. of Illinois
                                   ...!pur-ee!uiucdcs!uiuccsb!dollas


Date: 8 Mar 1984 17:33-PST
Subject: Re: Large Dual Ported Memories - (nf)
From: BILLW@sri-kl

Don't be silly.  You can have a "real" "simple" dual ported
memory as long as the memory access speed is twice what either
port will require.  I believe there was a simple circuit
based on this principle published in a recent issue of EDN
magazine (in the design ideas portion)...

WW

Date: 13 Mar 84 6:29:23-PST (Tue)
From: decvax!genrad!grkermit!masscomp!kobold!tjt@ucb-vax
Subject: Re: Large Dual Ported Memories - (nf)

Well, I don't know about *large* dual ported memories, but it is quite
common to use dual ported memories for registers in CPU's.  It is not
done by address interleaving, but rather by duplicating the memory.
This allows true, independent reads, but any write must be done to
*both* memories.  Again, there is a cach in that you need to know what
kind of accesses will be performed.  Inside a CPU, the use of multiport
register files is to feed one register as one input to the ALU, another
register to the other ALU input, and then write the result back.  The
reads should be simultaneous, but will not overlap with the write.
-- 
	Tom Teixeira,  Massachusetts Computer Corporation.  Westford MA
	...!{ihnp4,harpo,decvax}!masscomp!tjt   (617) 692-6200 x275

Date: 14 Mar 84 13:28:57-PST (Wed)
From: hplabs!tektronix!orca!shark!mikezi@ucb-vax
Subject: Re: Large Dual Ported Memories - (nf)

There is a dual port RAM from Synertek (1Kx8) that is being sampled
right now. The part number is SY2130 and has an access time of 100 ns.
the only conflict is when both ports try to access the same address.
48 pin with separate address and data lines, busy, and interrupt lines.

mike ziuchkovski

Date: 22-Mar-1984 12:02-EST (Thursday)
To: mit-vax!WLIM@MIT-XX.ARPA
Subject: Re: Large Dual Ported Memories - (nf)

I'm not sure where I originally heard of this idea.  I have a vague
recollection of this having been patented at one point and that the
patent holder (Data General?) had sued, but I believe lost the suit on
the basis of "prior art".  I would be interested in hearing a more
definitive history of this technique.

In any case, in "Introduction to VLSI Systems", by Mead & Conway, the
register array for OM2 (see section 5.9, p 153) uses dual ported
memory.  It also latches both the inputs and the outputs to its ALU's.

	Tom Teixeira,  Massachusetts Computer Corporation.  Westford MA
	...!{ihnp4,harpo,decvax}!masscomp!tjt   (617) 692-6200 x275

P.S. you may also include this message in your summary.
-------