[comp.arch] Segmented Architecture

sdm7g@galen.med.Virginia.EDU (Steven D. Majewski) (04/10/91)

 In summary:
 There are at least two kinds of segments (or segmented addressing): 

 A) SEGMENT or BASE REGISTER + OFFSET addressing.
    Opinion seems to be: all things being equal, this is a *BAD THING*.


 B) SEGMENTS as in a (named) address space, possibly with Mem.Mgmt.
    protection and maybe even capabilities.Generally seen as a *GOOD
    THING* .


 Observations:

 1) You can have A .and. .not. B ( e.g. Intel 8086 ) 
 2) You can have B .and. .not. A ( e.g. VAX  - implemented as part of
     the MMU - not the CPU ) 
    ( ...or BOTH or NONE obviously ... ) 

 
 3) ALL THINGS ARE NOY EQUAL: 
    Two major constraints are compatibility and SILICON|$$|(some finite
    resource). 
    IF you are starting a design from scratch and plan to turn it into
    silicon around '93, then 64 bits is the way to go. IF TODAY what 
    you have to (affordably) choose from is addressing 2^32 bytes TOTAL
    or addressing 256 segments of 2^32 bytes, who doesn't want the 
    extra space ? 
    IF you believe in the RISC design philospohy of: follow the 80%/20%
    rule & let the compiler (writer) worry about "easy to program" - let's
    make that thing FAST, THEN IF segmented memory organization gives a
    performance edge, then it must be a GOOD THING. 
    ( I don't know if that is the case, but that hasn't been what people
       have been arguing about here ! )

  4)  B ( above ) should PROBABLY be done as part of memory managemant,
     however past history has shown that method to be often non-standard
     even within the same CPU arch.and not easily programmed. IN FACT IT
     IS USUALLY *NOT* PROGRAMMED AT ALL - which is why programmers like 
     a linear address model - the don't have to program it. But when we
     start to want an Object Oriented OS with Capabilities & persistant
     objects, we will not only want that 64-bit address space - we will
     want some way to program it. And we will probably want to program
     access control on some level finer that the process. I'm not sure
     how to do that with only a MMU and not some sort of segmentation
     that restricts what is addressable. 

  5) But otherwise, I hate segments (as in A) TOO, so don't flame me!
     
--
========= "If you've got a hammer, find a nail!" - George Bush =========
 Steven D. Majewski		University of Virginia Physiology Dept.
 sdm7g@Virginia.EDU		Box 449 Health Sciences Center
 (804)-982-0831			Charlottesville, VA 22908