0
votes

When a new process starts operating system initializes MMU's registers with process' page table. While virtual address translation MMU gets a virtual address, passes it to comparators and gets physical address (please correct me if I'm mistaken). So, if page table is part of hardware, how a single MMU can work with 32 and 64 bit operating systems. I mean if it's programmed to get 32 bit virtual address, how it works when it gets 64 bit virtual address.

Thanks.

1

1 Answers

2
votes

Simple: systems which allow 32 and 64 bit processes to co-exists have MMU's which can accept 32 and 64 bits addresses. This isn't hard at all. The simplest possible solution would be to add 32 zero bits to a 32 bits address. Remember, a virtual address only makes sense to that process, not the hardware.