[comp.arch] looking for >32-bit address space

cmt@myrias.UUCP (Chris Thomson) (04/03/89)

Are there any micros or chipsets out there that support an address space
larger than 32 bits?  The current trend in micros seems to be toward 64-bit
data paths but only 32-bit address paths.  In a large-scale parallel
processor, this starts to feel a bit like a PDP-11.
-- 
Chris Thomson, Myrias Research Corporation	   uunet!ncc!myrias!cmt
900 10611 98 Ave, Edmonton Alberta, Canada	   403-428-1616

gupta@hpcuhb.HP.COM (Mayank Gupta) (04/03/89)

>Are there any micros or chipsets out there that support an address space
>larger than 32 bits?  The current trend in micros seems to be toward 64-bit
>data paths but only 32-bit address paths.  In a large-scale parallel
>processor, this starts to feel a bit like a PDP-11.

It was gonna come around sooner or later.  HP saw this coming five years ago
when we developed our HP-PA (Precision arcitecture "RISC").  This gives you:

32 bit virtual and 32 bit physical addressing : Level 0 compliance.
48 bit virtual and 32 bit physical addressing : Level 1 compliance.
64 bit virtual and 32 bit physical addressing : Level 2 compliance.

with a very comprehensive memory management system, including levels (> 2) of
protection.

HP has been shipping 64 bit virtual address machines.  All of the above are
32-bit integer and IEEE compliant floating point machines.

Maybe you should contact a sales representative in your area.


Mike Gupta
gupta@hpesomg
408-447-0390

henry@utzoo.uucp (Henry Spencer) (04/03/89)

In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>Are there any micros or chipsets out there that support an address space
>larger than 32 bits? ...

And please, let us not hear solemn pronunciamentos about the supposed
40-bit address space of the RT -- it has a 32-bit address space, plus
8086ish bank-switching.
-- 
Welcome to Mars!  Your         |     Henry Spencer at U of Toronto Zoology
passport and visa, comrade?    | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

mdr@reed.UUCP (Mike Rutenberg) (04/04/89)

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

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.

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.

Mike

Total aside: Does the Myrias machine exist yet?  How come nobody is
willing to post a description of it?  I've heard some really unusual
stories, but have seen nothing at all solid.
-- 
Mike Rutenberg      Reed College, Portland Oregon     (503)239-4434 (home)
BITNET: mdr@reed.bitnet      UUCP: uunet!tektronix!reed!mdr
Note: The preceding remarks are intended to represent no known organization

mccalpin@loligo.uucp (John McCalpin) (04/04/89)

In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>Are there any micros or chipsets out there that support an address space
>larger than 32 bits? ...

Well, it's not exactly a chipset yet, but the ETA-10 line from CDC
uses a 48-bit bit-addressed linear address space.  
I hear that their next-generation CPU boards are small enough to 
fit in a coat pocket, so it almost counts :-)
----------------------   John D. McCalpin   ------------------------
Dept of Oceanography & Supercomputer Computations Research Institute
mccalpin@masig1.ocean.fsu.edu		mccalpin@nu.cs.fsu.edu
--------------------------------------------------------------------

donh@microsoft.UUCP (Don Hacherl) (04/04/89)

In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>Are there any micros or chipsets out there that support an address space
>larger than 32 bits?  The current trend in micros seems to be toward 64-bit
>data paths but only 32-bit address paths.

The Intel 386 supports a 46-bit virtual address space (32 bits of
offset + 16 bits of selector - 2 bits of selector protection),
although the linear and physical address spaces are only 32 bits.  I
know of no OS that supports this, though (does Intel have a 386 iRMX?).
Flat 32-bit address spaces are very popular these days, and no one
wants to buck the trend. 

don
-- 
Don Hacherl		"Sorry, no pithy quotes today"
donh%microsof@beaver.washington.edu or {decvax,uunet,uw-beaver}!microsoft!donh
Disclaimer:  Little of what I say should be taken seriously, and none
	     should be taken as the opinion of my employer.

mash@mips.COM (John Mashey) (04/04/89)

In article <3830004@hpcuhb.HP.COM> gupta@hpcuhb.HP.COM (Mayank Gupta) writes:
>
>>Are there any micros or chipsets out there that support an address space
>>larger than 32 bits?  The current trend in micros seems to be toward 64-bit
>>data paths but only 32-bit address paths.  In a large-scale parallel
>>processor, this starts to feel a bit like a PDP-11.

>It was gonna come around sooner or later.  HP saw this coming five years ago
>when we developed our HP-PA (Precision arcitecture "RISC").  This gives you:
>
>32 bit virtual and 32 bit physical addressing : Level 0 compliance.
>48 bit virtual and 32 bit physical addressing : Level 1 compliance.
>64 bit virtual and 32 bit physical addressing : Level 2 compliance.
>
>with a very comprehensive memory management system, including levels (> 2) of
>protection.
>
>HP has been shipping 64 bit virtual address machines.  All of the above are
>32-bit integer and IEEE compliant floating point machines.

1) can you say more about what this "Level x compliance" means?
	(Does that mean that you can build HP PA machines with 32/32, and that's	called Level 0?  or does it mean something other than compliance with
	an HP-internal spec?)

2) I suspect that the original question was looking for machines more like
some supercomputers, i.e., with 64-bit integers and addresses that are
used directly as such (which I don't think HP PA does: correct me if I'm
wrong, but aren't there segment registers that can be controlled by the
compilers, rather than 64-bit flat addresses?)
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{ames,decwrl,prls,pyramid}!mips!mash  OR  mash@mips.com
DDD:  	408-991-0253 or 408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086

philba@microsoft.UUCP (Phil Barrett) (04/05/89)

In article <1220@microsoft.UUCP> donh@microsoft.UUCP (Don Hacherl) writes:
>In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>>Are there any micros or chipsets out there that support an address space
>>larger than 32 bits?  The current trend in micros seems to be toward 64-bit
>>data paths but only 32-bit address paths.
>
>The Intel 386 supports a 46-bit virtual address space (32 bits of
>offset + 16 bits of selector - 2 bits of selector protection),
>although the linear and physical address spaces are only 32 bits.  I
>know of no OS that supports this, though (does Intel have a 386 iRMX?).
>Flat 32-bit address spaces are very popular these days, and no one
>wants to buck the trend. 
>

Intel does have an RMX 386 but last I looked, it doesn't support > 4Gb
address space.  

I've spent some time looking at how one would go about taking advantage of
this feature of the 386 and it's pretty messy.  Demand paging under demand
segmentation isn't that hard but the big problem is that there is only one
active page directory and it only (gee, what a limitation) addresses 4Gb. You
would need to virtualize the page table/dir to get beyond 4Gb instantaneous
addressability for a single process. Its possible to do but I think the 
performance wouldn't be that good.  Consider a string move between 2 virtual
4 Gb segments. 

I think the 64TeraByte virtual address space of the 386 is more smoke than
anything else.

jps@wucs1.wustl.edu (James Sterbenz) (04/05/89)

In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>Are there any micros or chipsets out there that support an address space
>larger than 32 bits?  

Well, not exactly a micro, but the IBM system/38 (and I guess AS/400,
I have to check) have a 48 bit address space. 
It's possible that some of the other >32 bit word machines have matching
addresses, but these aren't micros either (Unisys 1100 + A-series, etc.)


-- 
James Sterbenz  Computer and Communications Research Center
                Washington University in St. Louis 314-726-4203
INTERNET:       jps@wucs1.wustl.edu
UUCP:           wucs1!jps@uunet.uu.net

gupta@hpcuhb.HP.COM (Mayank Gupta) (04/05/89)

> 1) can you say more about what this "Level x compliance" means?
>    (Does that mean that you can build HP PA machines with 32/32, and that's
>    called Level 0?  or does it mean something other than compliance with
>    an HP-internal spec?)

   This is just a flexibility provided to the implementer of the CPU to choose
  from.  Yes somebody could make a 32 bit Virtual and 32 bit physical address
  (Level 0) CPU and still be called a HP-PA.  To this date, (to my knowledge)
  no HP-PA Level 0 has been made.  This option leaves the door open for someone
  to make a CPU for a embedded controller type application or something like
  intel's N-10.

  Virtual space is segmented as 2^0  spaces of 2^32 bytes for Level 0.
                                2^16 spaces of 2^32 bytes for Level 1.
                                2^32 spaces of 2^32 bytes for Level 2.

> 2) I suspect that the original question was looking for machines more like
>    some supercomputers, i.e., with 64-bit integers and addresses that are
>    used directly as such (which I don't think HP PA does: correct me if I'm
>    wrong, but aren't there segment registers that can be controlled by the
>    compilers, rather than 64-bit flat addresses?)

  Sorry, If I mis-interpreted the question.

  HP-PA is a 32 bit integer and 64 bit floating point architecture.
  There are 0, 16 or 32 bit (depending on Level) space registers in hardware
  TLBs.  Software PDIR is maintained with 64 bit virtual address in mind.
  
Mike Gupta
gupta@hpesomg
408-447-0390

wunder@hp-ses.SDE.HP.COM (Walter Underwood) (04/05/89)

   Somebody had Motorola build a 68012 at one point, which was a 32 bit
   address bus 68010.

In the 68010, all 32 bits of address were brought out to pads on the
silicon.  The 64-pin DIP package only had room for 24 address lines.
The pin-grid package had 68 pins, but still only 24 address lines.  HP
asked Motorola to make up a few specials with four more address lines
brought out (making 28 bits of address).  Later Motorola stuck the
number 68012 on that configuration.

I'm not sure why HP asked for it, though it may have been in
conjunction with some LISP work that could use *lots* of VM.  The boot
ROM on the s200 boxes did some fancy work to distinguish between a
68010 and a 68012.

And yes, the HP Precision Architecture (called "Spectrum" in
development, not "Prism") has segmented memory with 32 bit segment
offsets and 0, 16, or 32 bits of segment number.  The HP9000/840 had
16 bit segment numbers.  I think that the current machines have 32
bits.

wunder

shankar@hpclscu.HP.COM (Shankar Unni) (04/05/89)

> >HP has been shipping 64 bit virtual address machines.  All of the above are
> >32-bit integer and IEEE compliant floating point machines.
> 1) can you say more about what this "Level x compliance" means?
> 	(Does that mean that you can build HP PA machines with 32/32, and that's	called Level 0?  or does it mean something other than compliance with
> 	an HP-internal spec?)

It means "compliance with the Architecture Control Document". The idea is
to allow a range of implementations from the single-board microcontroller
type (which probably doesn't need the full 64-bit address range) through
the midrange to the high end (which allows a full 64-bit address).

> 2) I suspect that the original question was looking for machines more like
> some supercomputers, i.e., with 64-bit integers and addresses that are
> used directly as such (which I don't think HP PA does: correct me if I'm
> wrong, but aren't there segment registers that can be controlled by the
> compilers, rather than 64-bit flat addresses?)

Well, it's true that declaring a pointer the usual way yields a 32-bit
pointer (a short pointer), but it's possible to declare full 64-bit
pointers and manipulate them as such. Yes, the address space is segmented
into 4GB segments, so no single object can be larger than 4GB (32 bits).

So you're right, there's no flat 64-bit address space, but it's possible to
have an awfully large data area in disjoint pieces. I know that the
original poster was enquiring about 64-bit flat spaces, and that this
machine does not quite fit that description. I'm just clearing a side
question.
---
Shankar Unni.

frank@zen.co.uk (Frank Wales) (04/05/89)

In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>Are there any micros or chipsets out there that support an address space
>larger than 32 bits?

In article <3830004@hpcuhb.HP.COM> gupta@hpcuhb.HP.COM (Mayank Gupta) replies:
#HP saw this coming five years ago when we developed our HP-PA (Precision
#arcitecture "RISC").  This gives you:
#
#32 bit virtual and 32 bit physical addressing : Level 0 compliance.
#48 bit virtual and 32 bit physical addressing : Level 1 compliance.
#64 bit virtual and 32 bit physical addressing : Level 2 compliance.
#
#with a very comprehensive memory management system, including levels (> 2) of
#protection.

True, but the problem with HP-PA is that you can only get whole
machines built from it, rather than just a PA micro or chip set
(according to Joel Birnbaum, it existed in CMOS years ago).  Sun
clearly think there is mileage in licensing their SPARC architecture
to others, as do MIPS, and I am fearful for the long-term success of
PA while it remains an HP-only product.

So, at least in that sense, HP-PA doesn't qualify as an answer to Chris's
question, since he said "micros or chipsets," not "whole machines."

[Yes, I do like HP-PA -- this was written on it.]
--
Frank Wales, Systems Manager,        [frank@zen.co.uk<->mcvax!zen.co.uk!frank]
Zengrange Ltd., Greenfield Rd., Leeds, ENGLAND, LS9 8DB. (+44) 532 489048 x217 

lindsay@MATHOM.GANDALF.CS.CMU.EDU (Donald Lindsay) (04/06/89)

There are two important issues.
Issue number one, is the short-pointer problem.
Issue number two, is the mapped file problem.

Short pointers are simply an economy measure.  Reducing the number of
bits used may make programs smaller, reduce processor cycles, compress
data structures, and so on.  In the case of 32 bit machines with >32
bit virtual addresses, it's "obvious" that programs will deal in 32-bit
short addresses.

The problem is that there are now two "pointer" data types, not one,
and the programmer has to know that
	<small> := <big>
doesn't work.  Or, alternatively, the compiler can have a "large
model/small model" switch.  The programmer is off the hook, but now you
need two copies of every library .. and every application .. and the
"big" versions may be unnecessarily slow.

"Segment register" schemes don't really help, because now pointers are
only meaningful when the context is as it was when they were created.
A pointer is no longer standalone, and you can't have "magic cookies"
("opaque types").  So, any generalized routine that is passed a
pointer, must also be passed segment info, and we're back around to
short/long. Also, it may be impossible to build big objects out of
successive segments, in such a way that the "next address" operation is
just "increment". (I suppose a trap is perferable to inline overflow
checking.)


Issue number two, mapped files, is simply that there may be a strong
advantage to having Really Big Objects.  Database people would like to
map an entire external device into the address space.  Since 5 GB disk
drives already exist, 32 bit addresses already don't cut it.

Stonebraker argued that data base systems would like a flat view of a
disk, because otherwise they are imposing structure on top of the OS's
structures, and both layers do e.g. indexing that would be more
efficient if done by only one layer.  The Mach operating system has a
nice feature for this.  Mach allows an application developer to write
his own page fault handler, which gets executed in the same space as
his application.  (In theory, the other threads of the application
don't need to block unless they also need the same page.)

This data-base argument seems to me like a strong argument for
supporting big addresses. I don't see any really acceptable way to
compress big addresses, except perhaps in application-dependant ways.
For example, the DB's fault handler could use N high-order address bits
in some "take a ticket"/"tag bit" style. This only really extends the
address space if the application knows how to do things like ticket
reclamation.  (These things are difficult in general, but easy if the
application can be specifically designed for it.)


-- 
Don		D.C.Lindsay 	Carnegie Mellon School of Computer Science
-- 

seanf@sco.COM (Sean Fagan) (04/06/89)

In article <1989Apr3.164538.277@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:
>In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>>Are there any micros or chipsets out there that support an address space
>>larger than 32 bits? ...
>And please, let us not hear solemn pronunciamentos about the supposed
>40-bit address space of the RT -- it has a 32-bit address space, plus
>8086ish bank-switching.

The 8086 doesn't bank-switch.  The Apple //e bank switches.  The 8086 uses
segments, which are similar, but, IMHO, better (ye gods, I'm starting to
advocate intel!!!!).

The 8086 and '286 messed up by having only 64kbyte segments.  People were
getting along fine, years ago, on Multics machines, which used segments.
People are getting along fine on a Cyber 180, which has 44-bit addressing
(32-bit segments, and then a 12-bit segment number).  Forgive me, but people
are even using *Primes* which use segments.  If the new RT/PC can have 256
segments (with appropriate changes to the instruction set), then it shouldn't
be too unbearable.

Now, if it uses *real* bank-switching, then we should all meet at the
factory and blow it up 8-).

-- 
Sean Eric Fagan  | "An acid is like a woman:  a good one will eat
seanf@sco.UUCP   |  through your pants." -- Mel Gibson, Saturday Night Live
(408) 458-1422   | Any opinions expressed are my own, not my employers'.

slackey@bbn.com (Stan Lackey) (04/06/89)

In article <2516@scolex.sco.COM> seanf@scolex.UUCP (Sean Fagan) writes:
>In article <1989Apr3.164538.277@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:
>>In article <1032@myrias.UUCP> cmt@myrias.UUCP (Chris Thomson) writes:
>>>Are there any micros or chipsets out there that support an address space
>>>larger than 32 bits? ...
>>And please, let us not hear solemn pronunciamentos about the supposed
>>40-bit address space of the RT -- it has a 32-bit address space, plus
>>8086ish bank-switching.
>The 8086 doesn't bank-switch.  The Apple //e bank switches.  The 8086 uses 

The original request was for a greater-than-32 bit address space, not
some hack segmentation.  Apparently, the requester wanted to spend his
time programming, not hacking around compile and runtime errors
re-partitioning his data.  Anybody can put a map RAM on a micro to
[apparently] extend its addressing.  Hopefully, one or more of the
suppliers will take a leadership role by providing a true larger
addressing feature.  (Hopefully 64 bits.)  And auto-inc addressing and
unaligned data!  Oops sorry.
:-) Stan

aglew@mcdurb.Urbana.Gould.COM (04/07/89)

>>Are there any micros or chipsets out there that support an address space
>>larger than 32 bits?  The current trend in micros seems to be toward 64-bit
>>data paths but only 32-bit address paths.  In a large-scale parallel
>>processor, this starts to feel a bit like a PDP-11.
>
>It was gonna come around sooner or later.  HP saw this coming five years ago
>when we developed our HP-PA (Precision arcitecture "RISC").  This gives you:
>
>32 bit virtual and 32 bit physical addressing : Level 0 compliance.
>48 bit virtual and 32 bit physical addressing : Level 1 compliance.
>64 bit virtual and 32 bit physical addressing : Level 2 compliance.

Ummh, correct me please, but I thought that HP's machine provided
segments, with 32 bits of maximum segment size, and the extra bits
basically accessible by segment base registers.

(I thought of the HP3000 when I read about it).

henry@utzoo.uucp (Henry Spencer) (04/08/89)

In article <2516@scolex.sco.COM> seanf@scolex.UUCP (Sean Fagan) writes:
>>And please, let us not hear solemn pronunciamentos about the supposed
>>40-bit address space of the RT -- it has a 32-bit address space, plus
>>8086ish bank-switching.
>
>The 8086 doesn't bank-switch.  The Apple //e bank switches.  The 8086 uses
>segments, which are similar, but, IMHO, better...

How so?  As far as the programmer is concerned, it really doesn't make
much difference.  Either way, a complete address is larger than the
"natural" pointer size, and you can't use it directly -- you have to
feed the segment/bank part into the machinery separately, and *then*
use the rest of the address.  (Sometimes the compiler can do this for
you, but the efficiency penalty remains.)  Which gets us back to
abominations like "near" and "far" pointers and all the rest of the
8086 sludge.

*Real* segments, as on the Multics machines, are part of the normal
pointer format, and to access something in a segment, you just indirect
through the pointer.  One can argue about the merits of breaking the
linear address space up into segments, but the point is that normal
pointer manipulation is not penalized in either efficiency or simplicity.

The real problem with >32 bit addresses is that avoiding the dreaded
Intel Pointer Syndrome requires a 64-bit word.  Which costs more than
a lot of people want to pay just now.
-- 
Welcome to Mars!  Your         |     Henry Spencer at U of Toronto Zoology
passport and visa, comrade?    | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

mash@mips.COM (John Mashey) (04/10/89)

In article <650010@hpclscu.HP.COM> shankar@hpclscu.HP.COM (Shankar Unni) writes:
>> >HP has been shipping 64 bit virtual address machines....

>Well, it's true that declaring a pointer the usual way yields a 32-bit
>pointer (a short pointer), but it's possible to declare full 64-bit
>pointers and manipulate them as such. Yes, the address space is segmented
>into 4GB segments, so no single object can be larger than 4GB (32 bits).

Can you say what the C declaration is, that yields a 64-bit pointer?
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{ames,decwrl,prls,pyramid}!mips!mash  OR  mash@mips.com
DDD:  	408-991-0253 or 408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086

seanf@sco.COM (Sean Fagan) (04/11/89)

In article <1989Apr7.194933.4861@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:
>In article <2516@scolex.sco.COM> seanf@scolex.UUCP (Sean Fagan) writes:
>>The 8086 doesn't bank-switch.  The Apple //e bank switches.  The 8086 uses
>>segments, which are similar, but, IMHO, better...
>Either way, a complete address is larger than the
>"natural" pointer size, and you can't use it directly -- you have to
>feed the segment/bank part into the machinery separately, and *then*
>use the rest of the address.
>*Real* segments, as on the Multics machines, are part of the normal
>pointer format, and to access something in a segment, you just indirect
>through the pointer.

I do admit that Intel segments are, um, unpleasant (at least, on the 8086).
On the '286 and '386, they are better, and, in fact, on the '386, they're
quite pleasant (as segments go...).  I've never played with Multics, but I
have played on a Cyber 180-state machine, which seems to have been modeled
after a Multics machine.  The segments there are *very* similar to the way
the '386 does it, except that you can use more registers for segment
registers on the Cyber (and, I presume, Multics).

>One can argue about the merits of breaking the
>linear address space up into segments, but the point is that normal
>pointer manipulation is not penalized in either efficiency or simplicity.

Neither is it on the '386.

>The real problem with >32 bit addresses is that avoiding the dreaded
>Intel Pointer Syndrome requires a 64-bit word.  Which costs more than
>a lot of people want to pay just now.

I still maintain that segments are possible a Good Thing, although I don't
like some implementations.

-- 
Sean Eric Fagan  | "An acid is like a woman:  a good one will eat
seanf@sco.UUCP   |  through your pants." -- Mel Gibson, Saturday Night Live
(408) 458-1422   | Any opinions expressed are my own, not my employers'.

barmar@think.COM (Barry Margolin) (04/11/89)

In article <2534@scolex.sco.COM> seanf@scolex.UUCP (Sean Fagan) writes:
>  The segments [on the Cyber-180] are *very* similar to the way
>the '386 does it, except that you can use more registers for segment
>registers on the Cyber (and, I presume, Multics).

Multics hasn't had dedicated segment registers for a long time (about
fifteen years).  The Multics processor had separate segment registers
(called base registers) and offset registers (called pointer
registers), which were grouped in pairs that could be used as full
address registers.  In the early 70's the followon processors (the
6000 series) replaced each segment and offset register with a full
pointer register.  It isn't necessary to use separate instructions to
load the segment and offset portions of a pointer register (unless you
want to, of course, when the situation is appropriate).  Programs,
even those written in assembly language, that don't care about the
fact that memory is segmented generally don't notice (the only time
they might notice is if they try to allocate an array that doesn't fit
in a segment, i.e. larger than about 1MB).


Barry Margolin
Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar

henry@utzoo.uucp (Henry Spencer) (04/12/89)

In article <2534@scolex.sco.COM> seanf@scolex.UUCP (Sean Fagan) writes:
>>One can argue about the merits of breaking the
>>linear address space up into segments, but the point is that normal
>>pointer manipulation is not penalized in either efficiency or simplicity.
>
>Neither is it on the '386.

It will be when you start wanting more than 32 bits of address... which
is what started this whole line of discussion.  The 386 looks okay right
now because its segments (unlike those of the smaller Intel flakes, er
excuse me chips) are big enough that you can ignore the ability to
have more than one of them.

>>The real problem with >32 bit addresses is that avoiding the dreaded
>>Intel Pointer Syndrome requires a 64-bit word.  Which costs more than
>>a lot of people want to pay just now.
>
>I still maintain that segments are possible a Good Thing, although I don't
>like some implementations.

I agree that segments are possibly a good thing -- but the segment number
has to be part of a normal, ordinary pointer, not a tacked-on extra.
-- 
Welcome to Mars!  Your         |     Henry Spencer at U of Toronto Zoology
passport and visa, comrade?    | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

aglew@mcdurb.Urbana.Gould.COM (04/12/89)

In a recent CACM article on volume rendering a good, real
example of the type of application that will need >32 bits
of address is presented:

	The smallest data set being massaged was 10x10x30,
	and the largest was 10,000x10,000x4,000 voxels.

True, these'll be sparse, but even sparsely such a picture will
occupy a lot of space. Especially when you add properties to
each voxel.

A while back a computer company I used to work for was talking
about architecting a machine for a flat 64 bit address space,
implementing only 40 at first. That was a good few years ago.
I'd guess that you'd have to start at 48 now, if you wanted that
to be a sales distinction.

(PS. that particular project never got off the ground)