looking for >32-bit address space [and how will C handle it]

John Mashey mash at mips.COM
Wed Apr 5 03:46:05 AEST 1989


In article <12289 at reed.UUCP> mdr at reed.UUCP (Mike Rutenberg) writes:
>>Are there any micros or chipsets out there that support an address space
>>larger than 32 bits?

>I assume you are asking about physical address space.
Physical address space is, in some sense, the easier one to extend,
in that it need not be visible to ordinary user programs.  Also, 4GB
will last a little while, although the end is in sight, of course.

>Lots of processors, like the 386, 486, HP Prisim, and others support
>virtual addresses of several terabytes, usually through the use of
>multiple 32bit segments.  Segments seem like an obvious way of doing
>large address spaces while keeping the current technology chips fast.

MVS/ESA does some sort-of-similar segment mapping to get equivalent effects,
I think.

>I don't know of any >32bit physical address space microprocessors.  If
>you have the money, I would suppose you could convince a manufacturer
>like Intel to make a custom version of a chip for you.  Somebody had
>Motorola build a 68012 at one point, which was a 32 bit address bus 68010.

The real issue is address-space extension versus software & implementation
technology.
	1) Segments are the obvious way to do the extension, but they
	have their drawbacks for general use, compared with flat-address-space
	models.  In particular, everybody's idea of segmentation seems
	different, and so portable code seems nontrivial.
	2) Flat 64-bit addressing has been, and will be for a lonnng time,
	too costly for most micros.

One interesting issue, for some ways out, is what the 64-bit model ought
to be be: maybe some of the mini-super and supercomputer folks can give us
some hints here:
	What's the C programming model for machines with 64-bit pointers?
		how do you say 8-, 16-, 32, and 64-bit ints?
		(char and short are fine.  Now, are 64s long-longs,
		or just longs?  are 32s longs?  which one is int?
		how much code breaks under these various cases?
			user code
			operating system code
			networking code
		Is there any chance of standardization?

The other interesting input that people might be able to give is what they
really do on the earlier-mentioned machines that have segments.
Can anybody say how the two HP OS's use them?  Can people talk about how
RT PC's use them?  Do any 386 UNIXes use them?  How do they work in practice?
Anyway, it would be nice to get real experience and data.
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{ames,decwrl,prls,pyramid}!mips!mash  OR  mash at mips.com
DDD:  	408-991-0253 or 408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086



More information about the Comp.lang.c mailing list