×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Memory mapping ( PC +DOS or WINDOWS )

Memory mapping ( PC +DOS or WINDOWS )

Memory mapping ( PC +DOS or WINDOWS )

(OP)
When adding a new memory mapped peripheral what is the best
way to find an unused address ?


----------------------------
Please read FAQ240-1032
My WEB: <http://geocities.com/nbucska/>

RE: Memory mapping ( PC +DOS or WINDOWS )

What memory bus is the device sitting on? If it's PCI, the device should be able to change its location in memory and the BIOS should assign it a free location.

RE: Memory mapping ( PC +DOS or WINDOWS )

(OP)
I am confused:
On the PC as I know there is only one memory -- the main
one which adreeses one ROM ( for start-up, etc ) and one  
RAM. The RAM may consist of any number of chips and may be
divided into pages using the uppper memory bits.

There is only one memory map and one I/O map.

Am I wrong ?

By the way I need the possible highest speed this is why
I have to use mem.map vs I/O map..


----------------------------
Please read FAQ240-1032
My WEB: <http://geocities.com/nbucska/>

RE: Memory mapping ( PC +DOS or WINDOWS )

Nick, you probably need a newer reference book.  

Extended and expanded memory were bad enough.  After that, things got seriously crazy.

You might consider putting your entire peripheral, including its memory and whatever processor it needs, into an external box, and connecting it to its user interface on the PC via USB or Ethernet.




Mike Halloran
Pembroke Pines, FL, USA

RE: Memory mapping ( PC +DOS or WINDOWS )

nbucska, there are many different memory buses on a modern PC. What kind of PC are you trying to use? A new desktop PC? A small embedded PC?  An application-specific design?

And how are you plugging in your memory-mapped device?  Memory is accessed through PCI, PCI-Express, ISA, LPC, local buses, and others. It all depends on the type of PC.  What are you trying to do?

RE: Memory mapping ( PC +DOS or WINDOWS )

Overall, memory-mapping on a typical PC is probably a poor way to get good throughput.  Your best approach should be to have an on-board buffer memory in your PCI card  that you can DMA elsewhere at a later time.  A ping-pong configuration would allow you to run continuously without interruption, assuming that the incoming datarate doesn't exceed the intrinsic datarate of the PCI bus.

TTFN

Eng-Tips Policies FAQ731-376


RE: Memory mapping ( PC +DOS or WINDOWS )

But how fast?

What's the datarate?

TTFN

Eng-Tips Policies FAQ731-376


RE: Memory mapping ( PC +DOS or WINDOWS )

"I need fast response, hight throughput and low owerhead."

     That's what _she_ said.

     ....... Oops, sorry, wrong discussion.

Mike Halloran
Pembroke Pines, FL, USA

RE: Memory mapping ( PC +DOS or WINDOWS )

_Everyone_ needs "fast response, hight throughput and low owerhead" ... and everyone defines the threshold of satisfaction for each differently.   

_That's_ what she really said.


While you're trying to bracket your problem with numbers, including if you please how many such devices you plan to make, you might look up 'indeterminacy', as applied to Windows, and to DOS.


Mike Halloran
Pembroke Pines, FL, USA

RE: Memory mapping ( PC +DOS or WINDOWS )

(OP)
I think 10 to 20 Mbytes/sec would be sufficient.
In my application there would be very few bursts
longer than 2 to 4 bytes and the overhead shouln't
take more time -- assuming a CPU faster than 500 MHz.
operating preferably under DOS or linux.

If all these can be satisfied, there may be market for
several hundred to few thousand.



----------------------------
Please read FAQ240-1032
My WEB: <http://geocities.com/nbucska/>

RE: Memory mapping ( PC +DOS or WINDOWS )

If I assume that you're talking about designing a custom board that will plug into a desktop PC, then you're probably talking about designing a PCI or PCI-Express card. Both of those can handle the throughput that you need. Many Ethernet cards have that kind of throughput and typically are memory-mapped.

Going back to your original question about finding an unused address, a properly designed PCI or PCI-Express card uses a moveable memory window and is assigned a base address by a combination of the BIOS and the OS. If you move the cards around or install other cards, the memory window assigned to any particular card may change.  In Windows, you can see what the memory (or I/O) address range is by opening Device Manager and checking out the resources for your various hardware devices.

RE: Memory mapping ( PC +DOS or WINDOWS )

So the data is bursts of <4 _bytes_, coming in at ~5 million bursts per second on average, continuously?

Sounds like a natural for a little hardware buffering, just to keep the overhead from bringing the machine down.



Mike Halloran
Pembroke Pines, FL, USA

RE: Memory mapping ( PC +DOS or WINDOWS )

At the very minimum, you'd need to concatenate data words to transmit on a standard PCI bus, since it's typically only 33 MHz bus rate.  Trying to get 60% utilization of that bus could be challenging.  If you can get at least two datawords per transaction, that would cut the bus utilization down to 30%.

Again, buffering will reduce the transaction overhead if you send bigger chunks of data.

TTFN

Eng-Tips Policies FAQ731-376


RE: Memory mapping ( PC +DOS or WINDOWS )

(OP)
Mike:
It is not continuous. The data frequency is variable but
the average may be very low. The 33 MHz would be fast enough.

Thank you all.
Could I learn more about the address selection under anything but WINDOWS?

By the way, I intend to use desktop, no more than a few years old.







----------------------------
Please read FAQ240-1032
My WEB: <http://geocities.com/nbucska/>

RE: Memory mapping ( PC +DOS or WINDOWS )

I'd recommend Ed Solari's book on PCI for in-depth info.

RE: Memory mapping ( PC +DOS or WINDOWS )

Now DON'T SHOOT ME!

Here's a little bit of information on the PCI world from
the linux standpoint.  Granted the OP was windows, however,
the hardware's the same:

http://tldp.org/LDP/tlk/dd/pci.html

  Cheers,

   Rich S.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login



News


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close