× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Up to 96 bits can be address. Right now they're only using 64.

The latest versions of the Power processor allow hardware enforcement of
capability to be switched off. By the hardware. That's how you run both
AIX and iOS on the same hardware.

If I want to move a memory location, I don't have to stop all the
threads, I only have to block the threads that might access that
location. And I only have to block them when they are actually
referencing that location. I can do that with a spin lock that protects
that location. Remember that java objects do not hold pointers to memory
allocations. They hold references to the memory allocation table. With
capabilities, I can put a spin lock in the memory allocation table. The
memory allocation table also holds the count of object references.

Compacting the memory allocation table is another sack of snakes.
Thankfully that needn't be done often. Entries in the allocation table
are fixed length and can be reused.

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Walden H. Leverich
Sent: Friday, March 06, 2009 11:21 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: starting collection, reason stop the world collection

With this feature, a garbage collector doesn't need to stop all the
other threads running in the common address space just to do an
inventory of unreferenced memory. GC can run all the time if needed.

Um, why not? It's still a pointer. Just because it can be passed between
processes (and even stored on disk, BTW, look at the SEPT) doesn't mean
it can be changed w/out effecting it.

Looking for unused references isn't even the hard part, it the heap
compaction. Say I've got memory laid out as:

1 2 3
123456789012345678901234567890123456789
xxxx xxxxxxxxxxxxx xxx xxxxxxxx

Where the x's represent different allocations. I've got 4 pointers to
those allocations, one points at memory-location 1, one at location 10,
one at location 26 and one at location 32. Yes, in the single-level
store model these aren't integer offsets from the beginning of a
process-space, rather they are universal offsets from the beginning of
memory (ok, actually segment and offset, but that doesn't matter) the
same principle applies, a pointer holds a reference to a place in
memory.

Given my example, I've got 11 bytes of "available" memory (the spots
w/out the 'x') but I couldn't allocate a 7-byte block as none of the
holes are 7-bytes long. I need to compact the heap. If I want to compact
the heap so all the allocations are together and I have an 11-byte hole
I need to move those allocations around. To move them around I need to
change the pointers that point to them, and to do that I need to
guarantee that the pointer is not going to be dereferenced as I'm moving
the data. To do that I need to pause all the threads. I don't see how
single level store or capability based addressing helps that.

-Walden

BTW, I believe only 64 of the bits are the memory address (was 48 on
CISC) and I have a recollection that it was admitted several releases
ago that the high-order bits aren't actually enforced in hardware
anymore, but what you describe is indeed the fortress Rochester model of
the i.

--
Walden H Leverich III
Tech Software
(516) 627-3800 x3051
WaldenL@xxxxxxxxxxxxxxx
http://www.TechSoftInc.com

Quiquid latine dictum sit altum viditur.
(Whatever is said in Latin seems profound.)


-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Dan Kimmel
Sent: Friday, March 06, 2009 10:09 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: starting collection, reason stop the world collection

Ever wonder why a pointer on i is 16 bytes long? And if you write
something other than a pointer into the space occupied by a pointer the
pointer is voided? Only 96 bits of the 128 bits are an actual memory
address, the rest is a capability which tells the hardware what you can
do with that pointer. The hardware enforces the policy, not the
operating system. And the hardware voids the pointer if the hardware
doesn't create the pointer. This is all necessary to support
single-level storage where all processes work in a single address space.
Other architectures assign a process its own address space that is an
offset of a hardware base address register that is maintained by the
operating system. So a pointer in C on Unix is just an integer (perhaps
a long integer ) offset that the program can directly maintain.

Single level store and capability based addressing allow one program to
pass a reference to a memory address to another program as all memory is
common to all processes but protected by capability. A capability
pointer can be passed from one process to another. This allows user
programs (like a GC) to build and enforce their own mutex, spin-lock,
and other parallel processing artifacts. With this feature, a garbage
collector doesn't need to stop all the other threads running in the
common address space just to do an inventory of unreferenced memory. GC
can run all the time if needed.

Of course, if you're only running one processor this is kind of moot.
That's one of the reasons the 32bit JVM runs better on 4 processor or
fewer machines. More than 4 processors, the classic JVM is running
faster.

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Walden H. Leverich
Sent: Thursday, March 05, 2009 10:18 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: starting collection, reason stop the world collection

OK, this time I'll preface it with a statement that this is not targeted
at the poster. :-)

Capability based addressing on the i allows interprocess communication

methods that are impossible on any other architecture.

Wow, talk about kool-aid speak! How does it do it? Really, assume I know
a thing or two about memory architectures, technically and specifically
how does the GC do this magical thing on i?

-Walden

--
Walden H Leverich III
Tech Software
(516) 627-3800 x3051
WaldenL@xxxxxxxxxxxxxxx
http://www.TechSoftInc.com

Quiquid latine dictum sit altum viditur.
(Whatever is said in Latin seems profound.)

--
This is the Java Programming on and around the iSeries / AS400
(JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.



--
This is the Java Programming on and around the iSeries / AS400
(JAVA400-L) mailing list
To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.

--
This is the Java Programming on and around the iSeries / AS400
(JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/java400-l.




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.