On Tue, Apr 22, 2008 at 12:25 AM, Mrunal Gawade <[EMAIL PROTECTED]>
wrote:

> This is in continuation of above query.
>
> Virtual address is = 32 bit - 10 + 10 + 12 bits
> 10 bits -> Page directory entry offfset
> 10 bits -> Page table entry offset
> 12 bits- > Offset of data within page
>
> ---------------
> I read somewhere that PAGE_SHIFT macro gives the page number of the page.
> Now if we consider this 32 bit address, and shift of 12 bits to the left how
> is that justified. I feel confused.


Size of (page) = 4kb ( 2^12 ) (on X86 arch)
32 bit address space available ==  2^32
therefore number of pages (virtually) available == 2^32/2^12 == 2^20
so we have 2^20 pages  or page numbers  or page addresses available.
now consider we have a 32 bit address XXXX.....
right shift it by 12 bits,  voila! i have the page number.
got it :)


cheers,
Nikhil

Reply via email to