我剛剛開始彙編語言程序設計,並在第一次講座中告訴我們關於intel 8080和intel 8085的第一場講座,他說這些處理器有64k內存。
現在我想知道,我們如何找到與特定處理器的內存量,例如我有一個處理器1.8 Ghz,現在我怎麼可以找出可用於此處理器的內存量。
我想問的是告訴我如何找出這個數量的內存的方法?我們怎麼能發現這個處理器支持多少內存?
回答
這取決於CPU支持多少位(物理)尋址。地址位的數量通常是< =地址寄存器中的位數,例如,
8085/Z80 - 16 bit address registers - 16 bit addressing - 64 kB address space
68008 - 32 bit address registers - 20 bit addressing - 1 MB address space
68000 - 32 bit address registers - 24 bit addressing - 16 MB address space
68020 - 32 bit address registers - 32 bit addressing - 4 GB address space
請注意,許多64位CPU通常只支持40位地址空間,即1 TB。
通常處理器的設計使得單個整數寄存器可以存儲任何內存位置的地址。因此,「最大內存量」由寄存器(或處理器)的位數決定。 32位等於4 GB。 64位等於RAM的16個exabytes。
取決於體系結構,但CPU將受到其有多少地址線的限制。對於舊的Pentium Pro 32位CPU,支持36條地址線,因此CPU可支持高達64GB。更新的CPU(例如i7-860是64位CPU)也僅支持36個物理地址,因此也被限制爲64GB。物理地址空間的數量可以通過使用CPUID指令代碼找到,其他CPU可能使用不同的技術或需要讀取數據表。看起來像你學習的x86,所以在這種情況下CPUID就是你想要的,如果你的CPU支持的話。
你指的是'內存'虛擬內存還是物理內存?在虛擬內存的情況下,32位處理器的容量爲4GB,但是當操作系統使用其中的一部分時,可能無法使用所有這些內存。還要注意CPU的PAE(物理地址擴展),以及操作系統是否正在運行PAE內核。這將爲您安裝和使用超過4GB的物理內存,但虛擬地址空間仍然爲4GB。請看看:
http://en.wikipedia.org/wiki/Physical_Address_Extension
http://msdn.microsoft.com/en-us/library/aa366796(v=vs.85).aspx
嗯,這取決於某些變量。
例如,一個8位處理器的值可以達到255,這是通過取2到8的功率計算出來的,然後再減1。這個數字是255,CPU可以處理多少個字節,RAM不能超過這個數量。
現在,我們來一點點(沒有雙關意圖)。一個16-it處理器的數值高達65,535,再次通過2到16的功率計算出來,然後減去1(我相信你現在已經看到了大局)。這意味着我們可以擁有65,535字節的RAM或65.535千字節。希望這開始有意義。
32位處理器的值高達4,294,967,295(這些數字變得相當大)。這是4,294,967,295字節,或者是4.294967295千兆字節的RAM。這項技術在90年代開始被大量使用,並且今天仍然是半流行的。但是,當然,我們都知道技術如何快速而經常地變化,所以是的,也有64位計算機,與32位技術一樣好。這實際上是當今最常見的處理器類型。因此,他們可以支持18,446,744,073,709,551,615的價值。是的,這也是它可以容納多少字節,這等於18.446744073709551615 EB字節。
而且,即使目前沒有可以容納這個數量的處理器,也有128位處理器。它們最多可以容納340,282,366,920,938,463,463,374,607,431,768,211,455字節的數據,這也等於340.282366920938463463374607431768211455 ......這個......字節的一些度量,恰好比Yottabytes大,據我所知,沒有任何單位的字節測量。但是,嘿,這只是告訴你一個128位處理器可以處理很多事情,而且我們可能在遙遠的未來看到它們。人們說128位,64位,32位,16位或8位的原因是因爲它比試圖記住那些比它們每個代表的大數字要容易得多。
所以,我希望這有助於。我不確定8位是否正確,因爲我知道NES有2千字節的RAM,它超過了255字節,但是,我知道其他所有內容都是正確的。如果不正確,你也可以代表你做一些研究;)。
雖然NES具有2 kB的板載內存,但是磁盤盒總共可以增加一兆字節的額外內存。常見的8位微處理器可以尋址高達64 kB的主存儲器,而不需要像銀行轉換那樣的技巧。 「16位」8086可以解決1MB的主內存問題,而32位iA處理器可以使用[PAE](http://en.wikipedia.org/wiki/Physical_Address_Extension)等技巧解決多達64 MB的問題。 – 2014-01-25 20:59:53
真的,所有這些加起來,一個非常可憐和誤導性的答案。 – 2014-01-25 21:05:17
老實說,我不認爲這是有誤導性的。當然,處理器RAM支持種類取決於其他方面,但這基本上是一般事情的工作原理。 – 2014-01-26 23:30:36
- 1. 支持SSE的x86處理器上有多少個XMM寄存器可用?
- 2. 我該怎麼處理這個AppID?
- 3. 我怎麼看我的程序在吃多少內存?
- 4. 我怎麼能確定我的節目了多少內存目前佔據
- 5. 春天在什麼XD支持在內存中處理Hadoop中
- 6. 支持多個文件上傳處理
- 7. 臺式機處理器是否支持弱排序內存?
- 8. 我怎麼能扭轉這個功能?
- 9. 我怎麼能知道多少內存Eclipse插件使用(單獨)
- 10. 如何處理這個:所選處理器不支持`qadd16 r1,r1,r0'
- 11. 多個數據存儲操作 - 我們需要多少個持久性管理器參考?
- 12. 開發內核以支持多個CPU
- 13. 我怎樣才能讓這個點擊持續發生?
- 14. 儀器說我有12個內存泄漏在這個,我怎麼擺脫它們?
- 15. Python - 我怎麼能簡化這個?
- 16. 我怎麼能翻譯這個參考
- 17. 我怎麼能通過這個信息?
- 18. 我怎麼能這個數組
- 19. 我怎麼能執行這個MySQL partitoning?
- 20. 怎樣才能實現我自己的內存查看器QT
- 21. 我怎麼能這個指針賦給我的迭代器類
- 22. Android瀏覽器支持多少HTML5?
- 23. 我怎麼能實現GCC
- 24. 我怎麼能實現這個奇怪的WPF TreeListDataGridView?
- 25. 我怎麼能異或這兩個向量的內容?
- 26. Logging dictConfig不支持多處理
- 27. 每個從機支持多少個併發客戶機?
- 28. 我喜歡他們的方式設計/建築,但我怎麼實現這個
- 29. GWT對Java佈局管理器有多少支持?
- 30. 我怎麼能得到這個多維數組工作?
當然,即使CPU支持給定數量的內存,也不意味着其他硬件或操作系統可以支持它。例如。英特爾i7是一款64位CPU,但主板通常僅限於24GB。 – Richard 2010-03-20 10:18:24
有很多CPU具有超過32個物理地址位,但只有32位地址寄存器。英特爾的PAE允許在舊的32位處理器(如奔騰III等)上高達64 GB。 – hirschhornsalz 2011-05-05 08:23:19