Assume you have a 64-bit computer ( which means 64 bit virtual address space ), which has 4KB pages and 4 GB of physical memory. If we have a single level page table as you suggest, then it should contain one entry per virtual page per process.
One entry per virtual page – 264 addressable bytes / 212 bytes per page = 252 page table entries
One page table entry contains: Access control bits ( Bits like Page present, RW etc ) + Physical page number
4 GB of Physical Memory = 232 bytes.
232 bytes of memory/212 bytes per page = 220 physical pages
20 bits required for physical page number.
So each page table entry is approx 4 bytes. ( 20 bits physical page number is approx 3 bytes and access control contributes 1 byte )
Now, Page table Size = 252 page table entries * 4 bytes = 254 bytes ( 16 petabytes ) !
which is more than the physical memory, so how and where we can store the page table?
thank you!