2016-11-19 202 views
0

我的cpuinfo文件顯示我的處理器的地址大小爲39位物理地址,48位虛擬地址。這讓我陷入了一些困惑。英特爾i5中的地址尺寸

礦是64位機器。據我所知,這是我的機器的字大小。也就是說,它將以8字節的塊形式從內存中獲取數據。另外,64位機器意味着CPU可以尋址2^64字節的可尋址位置,這是很多的。所以,製造商削減了這些線路中的一部分。

這裏有幾個問題:

  1. 如果CPU只生成邏輯地址,那麼,什麼是需要具有39位物理地址大小。

  2. 當我們說CPU可以訪問2^64字節時,我們是指物理內存還是虛擬內存?

  3. 我在某處讀到64位機器的寄存器大小爲64位,而32位機器有32位寄存器。是這樣嗎?

我想我很困惑自己,需要一些幫助。任何其他信息,將不勝感激。謝謝!

+0

不,所有這些都是過於簡單化。首先,你的CPU每次從內存中獲取數據** **字節**(整個緩存行)。內核可以從緩存16或32字節讀取/寫入數據(SSE或AVX向量128b或256b)。理論上「字大小」不錯,但真正的CPU有不同的寬度。 –

回答

2

我明白了爲什麼人們不解的原因是考慮到董事會提出的學術問題的數量表明地址大小之間存在某種數學關係。

處理器字大小,物理地址大小,邏輯地址大小和總線大小在一定程度上都是獨立的。

如果CPU只生成邏輯地址,那麼需要39位物理地址大小。

CPU將邏輯地址轉換爲物理地址。

當我們說CPU可以訪問2^64字節時,我們是指物理內存還是虛擬內存?

我可能是。

我在某處讀取64位機器的寄存器大小爲64位,而32位機器有32位寄存器。是這樣嗎?

一般來說,這是通用寄存器,但專用寄存器真,則可能是一個不同的大小(例如,浮點,控制寄存器)

1

已經有許多場合,當處理器不使用所有可用的位爲地址的生成。

在古代,舊的MC68000有32位寄存器,但只有一個24位地址總線。

對於i5,認爲64位地址將控制17,179,869,184千兆字節的令人難以置信的內存空間。與谷歌或國家安全局或地球上的存儲相比,這個數目驚人的巨大。i5設計師將這個瘋狂的數字降低到更易管理的512千兆字節的物理地址空間和262,144千兆字節的虛擬地址空間。

相關問題