Discussion:
How Ram Works
(too old to reply)
David Misner
2010-05-25 00:54:00 UTC
Permalink
How does RAM work on an Amiga? Is it different that RAM on Windows or Mac??

David
Robert Habkirk
2010-05-25 05:35:49 UTC
Permalink
Post by David Misner
How does RAM work on an Amiga? Is it different that RAM on Windows or Mac??
David
The ram works the same it is the operating system treats it differently
Amiga generally use un protected or reserved dynamic ram that is used
and released by programs and is not being managed directly by the OS. On
a Windows machine and Mac programs reserve and protect the ram it needs
and the memory is managed by the OS.
Over simplified but generally the way it works.
Thomas Richter
2010-05-25 15:19:48 UTC
Permalink
Post by Robert Habkirk
Post by David Misner
How does RAM work on an Amiga? Is it different that RAM on Windows or Mac??
David
The ram works the same
The actual RAM *hardware* is quite different. Amiga used a couple of
technologies for RAMs, starting with simple dynamic RAM with row/column
addressing up to SDRAM on some accelerator boards. DDR and DDR2 Ram were
IIRC never used - they became established long after Amiga died away.
Difference is the amount of data transfered on a single cycle, how
memory is actually adressed and so on. DDR/DDR2 is actually quite
complicated.

It makes no (usually) difference for the software developer, but it is a
huge difference on the hardware side. It might make a difference if you
want to optimize for a specific machine - then you need take cache sizes
and (possibly) even RAM-locality into account.
Post by Robert Habkirk
it is the operating system treats it differently
Amiga generally use un protected or reserved dynamic ram that is used
and released by programs and is not being managed directly by the OS.
Huh? Of course it is managed by the Os. AllocMem() and FreeMem() are the
two exec functions that allocate RAM and release it. Other systems use
malloc() and free(), but that's more or less the same. The only
difference on the Amiga is that the caller of AllocMem() is responsible
of keeping the size of the memory allocated, whereas the POSIX malloc()
does that transparently. AllocVec() and FreeVec() (on a higher level,
working on top of AllocMem() / FreeMem()) are the closest equivalent.
Post by Robert Habkirk
On
a Windows machine and Mac programs reserve and protect the ram it needs
and the memory is managed by the OS.
On most other operating systems, memory management is a two-step
process: The application heap is allocated from the Os in supervisor
mode page by page, and extended as required. From that heap applications
use user-mode code to dynamically allocate RAM, and go back to the Os
should the RAM on the heap run out. On the Amiga, only one (global) heap
exists from which all applications allocate, and - since it physical
addressing is used - no extension of the heap is possible. For the
Amiga, the MMU is (typically) not used to protect unallocated RAM, but
it *could* be used. Actually, MuGuardianAngel does exactly that (protect
unallocated RAM for debugging purposes).

Greetings,
Thomas
DGM
2010-09-09 23:36:06 UTC
Permalink
Post by Robert Habkirk
Post by David Misner
How does RAM work on an Amiga? Is it different that RAM on Windows or Mac??
David
The ram works the same it is the operating system treats it differently
Amiga generally use un protected or reserved dynamic ram that is used
and released by programs and is not being managed directly by the OS. On
a Windows machine and Mac programs reserve and protect the ram it needs
and the memory is managed by the OS.
Over simplified but generally the way it works.
Thank you. I will be taking the A+ exam shortly. It looks like conventional
ram is the first 640K and everything above that is extended memory. That
that still the case?

Thank you

David

Daniel Mandic
2010-05-25 16:54:29 UTC
Permalink
Post by David Misner
How does RAM work on an Amiga? Is it different that RAM on Windows or Mac??
David
Hi David!


Similar as in any conventional IBM-PC and compatibles.
even the circuitry is similar, but the central-cpu is taking the RAM
over ;-) and handles it its way.

There are many differences. The RAM (bar) in physical means, is pretty
the same.
You will have to be a coder to make your choice of CPU, then you know
how the RAM works ;-)

A volkswagen in india is the same car as somewhere else, but it isn't,
due to the other traffic architecture.... if volkswagen=RAM and
traffic=CPU
--
Daniel Mandic
Robert Habkirk
2010-05-26 02:30:15 UTC
Permalink
Post by Daniel Mandic
Post by David Misner
How does RAM work on an Amiga? Is it different that RAM on Windows or Mac??
David
Hi David!
Similar as in any conventional IBM-PC and compatibles.
even the circuitry is similar, but the central-cpu is taking the RAM
over ;-) and handles it its way.
So true, Amiga has used ram of every different sort from the actual ram
cards of early Amigas like the ram on a 2091 progressing until now with
the announcement a few days ago of Amiga Ram board that can use DDR ram.

Even on NT kernel machines RAM is a physical device. Since Win 2K it is
hidden but it is still there. How you access and use ram is very much
determined by the OS and architecture of the motherboard. A Mac, Windows
and Linux machine restrict access to ram to the OS and Programs. Amigas
make RAM a mountable device (Windows NT could be made to mount RAM as a
device if you knew what you where doing)
Post by Daniel Mandic
There are many differences. The RAM (bar) in physical means, is pretty
the same.
You will have to be a coder to make your choice of CPU, then you know
how the RAM works ;-)
A volkswagen in india is the same car as somewhere else, but it isn't,
due to the other traffic architecture.... if volkswagen=RAM and
traffic=CPU
Daniel Mandic
2010-05-27 02:29:20 UTC
Permalink
Post by Robert Habkirk
So true, Amiga has used ram of every different sort from the actual
ram cards of early Amigas like the ram on a 2091 progressing until
now with the announcement a few days ago of Amiga Ram board that can
use DDR ram.
I don't know to which limit you can drive a 32bit AMIGA CPU with 6-8ns
DIMM's. My guess is ~42000KB/S for a 68030 and ~100000 or more for a
68060...
Speed deliverance would be then +6MB/s for the 030 and +50MB/s for the
060, when outfitted with DIMM's! [if compared to existing, faaast
Turbocards with FPM SIMM's, 80, 70, 60 and even 50ns].
Sounds good for the moment, but 6MB more for the 030 you can't feel,
maybe you get 2-4% over all. If ever done. 50 or 60ns FPM is almost the
limit for a 030, IMHO. :-)

50MB/s more for the 060 will be eaten up by the big 1st level caches.
Even with 20MB/s RAM speed for the 060 you won't feel big differencies
compared to 50MB/s RAM, or even compared to DIMM's capabable to run
over 100MB/s.
10% at all! AT MOST!!!

If I raise 10% more MHz on my slow 060 then I have the same... and that
with a relatively slow ram.


The A4000/040 have had a very slow RAM for example (~8MB/s).
The 030 card of the A4000 series used the same Mainboard RAM as the
original 040 card, but did have over 20MB/s on the pretty same machine.

Having a fast ram is known to accelerate an AMIGA alot, but there are
frontiers.
Off course, a not so good designed 030 Turbocard with crawling 8MB/s is
not to recognise anymore, compared to a 36MB/s capable Turbocard with
the same CPU, indeed.
Post by Robert Habkirk
Even on NT kernel machines RAM is a physical device.
NT can only follow the CPU architecture. Any OS does so, AFAIK.
The CPU doesn't care if it is Monsieur NT ;-) or AROS, eg.--,

you have to know.... [CPU, machine code, etc.]
Especially if you are on OS programming, IMHO.
--
Daniel Mandic
Loading...