好的,所以我已經做了一些關於Stack的搜索,並且找不到這個問題的答案。這是在課堂上提到的,但教授沒有具體說出如何去搞清楚這一點。邏輯地址中有多少位?
如果我們假設系統是64位,並且物理內存爲128GB,但我們希望進程以256GB的速度運行,那麼如何計算邏輯地址所需的位?
到目前爲止,我所做的所有研究都涉及到2-4GB的物理內存,而且我不能爲我的生活弄清楚如何計算這個。我需要知道這一點,以瞭解位移和頁面的條目...
好的,所以我已經做了一些關於Stack的搜索,並且找不到這個問題的答案。這是在課堂上提到的,但教授沒有具體說出如何去搞清楚這一點。邏輯地址中有多少位?
如果我們假設系統是64位,並且物理內存爲128GB,但我們希望進程以256GB的速度運行,那麼如何計算邏輯地址所需的位?
到目前爲止,我所做的所有研究都涉及到2-4GB的物理內存,而且我不能爲我的生活弄清楚如何計算這個。我需要知道這一點,以瞭解位移和頁面的條目...
所需的位數不僅取決於進程的大小,它還取決於每個地址點的字節數至。
的一般公式是:
num_of_bits = ceiling(log_2(size_of_process_in_bytes/bytes_pointed_by_an_address))
也許這會有所幫助。給定一個32位,我們有: 2到第32功率= 4 294 967 296 => 4GB最大地址空間可以通過32位字長訪問。對於64位系統,我們有: 2到64次方= 18 446 744 073 709 551 616 => 16EB(EB = exbibytes)64位字長可以訪問的最大地址空間,實際上無限制,但我們受硬件限制(例如,我的主板最多隻支持24GB)。
希望這會有所幫助!
完美。比我所做的要容易得多 - 非常感謝! – rybo 2011-04-19 02:38:03
完全沒問題。 :-)你應該接受答案,如果這是你需要的,它是有用的。 – 2011-04-19 02:39:10