Regarding the necessity, performance, and structure of multi-level page tables compared to single-level page tables, which of the following statements are TRUE?
A (a) A primary necessity for multi-level design in modern architectures (e.g., 64-bit) is that a linear single-level page table would require an impractically large, but not contiguous block of kernel memory, which is often impossible to allocate.
B (b) In terms of memory consumption, a multi-level page table always consumes less physical memory than a single-level page table, regardless of whether the process's virtual address space is sparse or fully populated (dense).
C (c) Regarding address-space sparsity, multi-level page tables save memory by allowing the operating system to avoid allocating inner-level page tables for invalid (unused) regions of the virtual address space.
D (d) In terms of memory access time (assuming a TLB miss), the multi-level page table structure introduces a performance overhead compared to a single-level table, as the MMU must perform multiple memory references to traverse the hierarchy (e.g., directory-> table -> frame).