PDP-11 addressing question and a model round-up

From: Paul Koning <pkoning_at_equallogic.com>
Date: Mon Feb 14 11:42:33 2005

>>>>> "Vintage" == Vintage Computer Festival <vcf_at_siconic.com> writes:

 Vintage> On Mon, 14 Feb 2005, Paul Koning wrote:
>> Addresses that appear on memory and I/O buses are either 18 or 22
>> bits. Originally they were 18 bits. Also, at first (11/20, 10,
>> 05) the relationship between program and physical address was
>> fixed: for program addresses 176000 and up, you'd get physical
>> 776000 and up. All addresses below 176000 would come across
>> unchanged.

 Vintage> So your programs access 176xxx ranges but they are
 Vintage> physically mapped to 776xxx by the processor?

Correct. Or 17776xxx in the 22 bit case.

More precisely, that's a fixed mapping for machines without MMU
(memory management unit -- the address map and protection machinery).
If you have an MMU, it's the mapping you get when the MMU is disabled,
as it is at boot.

With MMU enabled, each 4 kW chunk of program address space is mapped
to a physical address of your choice (possibly two separate ones, in
MMUs that support separate instruction and data space maps). In that
case, I/O space might not be accessible. For user mode programs, it
normally would not be. The kernel would have to have it mapped, of
course. In principle you could map I/O space to any of the 8 virtual
address blocks; in practice, I think it was always mapped to the top
block, matching the default mapping.

>> Life gets more complicated in 22-bit unibus machines, because
>> there you have 22 bit physical (memory) addresses, yet 18 bit
>> addresses on the I/O bus (the Unibus). So those 18 bit addresses
>> are virtual, they are mapped to physical addresses via the Unibus
>> map. Q-bus systems avoid this hassle by using full 22 bit
>> physical addresses on the I/O bus. (And Unibus systems do that
>> partway -- Massbus adapters hook right into the memory so they
>> handle 22 bit addresses directly, not via the Unibus map.)

 Vintage> So then basically, the difference is the 11/23 I was using
 Vintage> before had 18-bit addressable memory, and the 11/23+ I'm
 Vintage> using now has 22-bit.

Right, and a bus that carries full 22 bit addresses, and DMA devices
that know how to generate 22 bit addresses.

     paul
Received on Mon Feb 14 2005 - 11:42:33 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:37:38 BST