On 2015-07-15 03:13, Noel Chiappa wrote:
     > From: Johnny Billquist

     > While the pages are variable in length, each page starts at an 8K
     > virtual address boundary.

Which is another difference between PDP-11 'pages', and real pages as used on
every other machine of the period which had virtual memory: normally, page
sizes were small, ranging from 512 bytes to 1K words. No other machine was
even _close_ to 8KB.

Ugh. When people start using arguments like "real pages", I see things going ugly real fast...

To argue more, the page size of the PDP-10 is 512 36-bit words, which is 5KB in size. I'd say that is not so far from 8K. And if people actually start digging around, I'm sure you'll find that 8K was not at all extreme. 512 byte pages were way more radical when the VAX was introduced.

In other machines, the page was the fundamental unit of memory allocation; on
PDP-11's, that unit is the click (0100 bytes).

I fail to see the relevance in that with regards to a pages vs. a segmented design. And actually, the size or variable size of a page is also of little relevance.

     > If you only had one page, and that page covered the full virtual
     > address space, then I would agree that it was a segment model.

That's only true in the brain-damaged x86 model, in which 'segments' were
added as a kludge to expand the address space.

If you study _real_ segmented architecture machines, like the GE645, NS32K,
etc you will discover that in them, a segment is a fixed-size chunk of the
total (much larger) address space, and they start at fixed offsets in that
space. A segment which is less than full-sized leaves a gap in the address
space before the (fixed) start of the next segment.

All of which sounds just like the 'pages' in the PDP-11...

Uh? When did the NS32K become a segmented architecture???
http://cpu-ns32k.net/MMUs.html.
But I see your point. If you designate that CPU as having a segmented memory, then I guess I can see why also put the PDP-11 in there. But then I don't understand why you don't also include the VAX.

Yes, there are some things in segmented memory management that maps well with the PDP-11, but other parts do not. You normally do not write code to exist as a segment, using even the implicit reference you get from being in a specific page as a segment register (apart from being very hard to actually do on a PDP-11, it would also restrict your code to max 8K, which is rather limited). You also do not normally have holes in your memory, even if it is technically possible.
That would just be an insane way to look at your memory.

On a PDP-11, you look at memory as a flat address space. Have the 16-bit virtual address space, and the 18/22 bit physical address space. You do not treat it as segments that somehow is related to, and describes, segments of code.

        Johnny

--
Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: b...@softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol

Reply via email to