accessing Sun physical memory?

MMARTYS at WILLIAMS.BITNET MMARTYS at WILLIAMS.BITNET
Sat Mar 11 10:01:57 AEST 1989


Hi,

I am sending this letter in for a former co-worker (at another company)
who doesn't have email access.  He is attempting to use a Sun 3/160 as an
embedded controller in one of their future products.  This would be their
first Sun, and they don't have much design experience with Unix.  Sun
hasn't been too helpful (from what he tells me) with his particular
questions.

What he basically trying to use is a Sun 3/160 with 8mb memory and a SCSI
disk, plus 5 custom VME cards.  Each card houses a data acquisition
channel, containing 8 MB DRAM and a small number of control registers.
The physical memory space of this custom hardware then is 40 meg,  and
this exceeds the 32 MB physical mapping restriction of the MMU page map.
The basic operation of the cards would be initialization, gather data
(filling their 8 meg), and then the results processed.  His current
thoughts are to run 5 processes, each crunching one data aquisition card.
Each process would be scanning the 8mb of data (thereby getting at all 40
meg), pretty much in a linear fashion, but with some random access.
Needless to say, the faster the data is processed, the better.

He is trying to estimate the software effort involved and how well the
machine will perform, and he is looking for the best ideas as to how get
at the cards.  This is where our inexperience with Unix (and the 3/160)
becomes an obstacle.

One way he thought of is to copy chunks of the each cards's 8MB data space
into the process's virtual space using some sort of system call or via
some sort of custom device driver.  This seems easy, but seems to suffer
performance problems.  What would be the best way to do this in term of
performance for effort involved?

Another way is to manipulate the page map, mapping some part of the
physical memory into a process's virtual space.  This looks good for
performance, but the question is can this be done, and if so, can it be
done easily (via some sort of Unix standard interface)?

Any other ideas on how to do this?

Thanks,

Mike Martys
Williams College Computer Center
  mmartys at cc.williams.edu
  mmartys at williams.bitnet



More information about the Comp.sys.sun mailing list