× 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.



One could also implement a "virtual pointer" of 32-bits, where the high-order 8 bits (one byte) indicates which of up to 256 user spaces or 16 MB allocated "chunk" to use, and the low-order 24-bits (3 bytes) is the offset within that user space or chunk. Then, you would maintain a single array of 256 pointers (16-byte MI pointers, or 8-byte pointers if using C and teraspace), to maintain the "base" address for each space or chunk. Use the first byte to index into this array of pointers, then use the ADDSPPO MI instruction to add the 3-byte offset to the "base" pointer, to obtain the actual address of the item or object pointed to by the "virtual pointer."

If you need a heap larger than 4 GB (32 bits of addressing), you could use a larger virtual pointer size, for example, a 6-byte virutal pointer, with 24-bits for the segment and 24-bits for the offset. This gives a 1 TB total address space. You would need to maintain a much larger array to track all of the (up to 16 million) allocated segments.

But, in that case, why not just use teraspace, and ts_malloc and ts_free?


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.