[Info-vax] OpenVMS.Org quick pool

Johnny Billquist bqt at softjar.se
Fri Aug 24 13:50:46 EDT 2012


On 2012-08-24 19:38, Stephen Hoffman wrote:
> On 2012-08-24 16:47:40 +0000, Johnny Billquist said:
>
>> On 2012-08-24 18:32, Johnny Billquist wrote:
>>> On 2012-08-24 17:56, Stephen Hoffman wrote:
>>>> On 2012-08-24 14:43:55 +0000, Johnny Billquist said:
>>>>
>>>>> On 2012-08-24 14:48, Stephen Hoffman wrote:
>>>>>> On 2012-08-24 02:58:03 +0000, Johnny Billquist said:
>>>>>>
>>>>>>> Oh. I should probably point out that "22-bit address" is the
>>>>>>> physical
>>>>>>> addressing of the machine. Virtual addresses are always 16 bits,
>>>>>>> even
>>>>>>> on modern machines with 22-bit physical addresses.
>>>>>>
>>>>>> So you don't know how to or haven't had to program a PDP-11 box past
>>>>>> 16-bit addressing, or another analogous use of (lowercase-W) windows?
>>>>>> Ok.
>>>>>
>>>>> Huh? Are you saying that I'm wrong... I am not.
>>>>
>>>> What you're reading in the PDP-11 manuals is correct, as far as it
>>>> goes.  A PDP-11 does have 16-bit addressing.
>>>
>>> A *virtual* address on a PDP-11 is *always* 16 bits. It cannot be
>>> anything else. No matter which model, which features you turn on, nor
>>> which kind of other tricks you think you came up with.
>>
>> This is actually just the same as on a VAX, where a *virtual* address
>> is always 32 bits, even though a physical address is either 30 bits,
>> or 34 bits, depending on the CPU, and a setting in a register.
>>
>> I would assume you feel way more comfortable with the VAX, Hoff?
>
> You're arguing specs.

No. I'm merely pointing out that a virtual address on a PDP-11 is 16 
bits. And on a VAX it's 32 bits.

You can work around this by actually remap part of your virtual address 
space to access other data. In effect, the same virtual address can 
refer to different physical addresses at different times of the process 
life. That does not change the virtual address, nor the virtual address 
space. But it does allow you to access more data.

Virtual memory is not the same as dynamically changing your memory 
mapping. It starts to smell like this is what we are arguing about...

Virtual memory is what your process perceives as the existing memory on 
your computer. It starts at address 0, and runs up to some large number 
(based on how many address bits you can express in your instructions).
It's all you see, and it has no bearing on the actual hardware you might 
have. The operating system gives you the impression that you have all 
that memory. It might be an illusion, but to your program, it's a rather 
convincing illusion.
It's virtual memory. And the operating system uses the hardware of the 
CPU (the MMU more specifically) to map you virtual memory to some 
physical memory. Even though your virtual memory is linear, simple and 
obvious, the mapping to the physical memory might be rather complex and 
scattered.

What data is in this virtual memory is then another question, and you 
can also ask the operating system to actually move different objects in 
and out of your virtual memory, thereby from an address point of view 
having different data at the same virtual address.

	Johnny




More information about the Info-vax mailing list