題 計算機/操作系統如何判斷機器中有哪種RAM?


Mac OS X如何判斷機器中有哪種RAM?例如,我正在開發一款具有DDR3 RAM @ 1600MHz的產品,我認為如果不打開機箱並查看它就無法知道RAM。如何在其他系統上完成?


79
2018-03-27 18:55


起源


注意:我刪除了評論,因為它們不會去任何地方。您可以使用 超級用戶聊天 討論。 - slhck
@Celeritas:我已經回滾了你最新的編輯。問 為什麼 開發商/製造商選擇添加或省略其產品中的功能 沒有建設性。 - Karan
@Karan我想知道Mac硬件或操作系統是否與Windows運行的硬件有所不同,這使得更容易確定RAM的類型。它似乎是一個有用的功能,可以內置到操作系統中,以便人們知道如果要升級,可以獲得什麼樣的RAM。您可以編輯問題以反映我剛剛告訴您的內容,但重新編寫它以使其更適合。 - Celeritas
既然你已經開始詢問是否可以在Windows上進行操作並且已經收到答案告訴你如何,很明顯沒有基本的硬件差異阻止Windows在需要時顯示信息(如下所示存儲SPD數據)在RAM模塊上,任何關心它的操作系統/應用程序都可以訪問它。除此之外,沒有必要真正討論為什麼MS選擇不這樣做,即使它對最終用戶有用。 - Karan
i2c總線是任何操作系統都可以與之接口的標準。 SPD表現為128字節,256字節或512字節的EEPROM。操作系統只需要使用i2c從EEPROM中收集這些字節,這些字節符合另一個稱為JEDEC的標準,然後使用該數據來確定它所討論的內存類型。這與操作系統無關。 - LawrenceC


答案:


RAM棒上有一個小芯片稱為 串行存在檢測,其中包含容量,首選時間,製造商甚至序列號等信息。

操作系統可以使用i2c總線訪問SPD信息(其中還包括溫度傳感器等)。我想你可以使用各種i2c實用程序直接從Linux讀取SPD。

來自維基百科文章的這張圖片有一個很好的圖片: e


147
2018-03-27 19:28



在Linux中, dmidecode --type memory 讓你看到一些信息。顯然它可以輸出製造商和序列號,但至少在我的系統上,這些報告只是簡單 ManufacturerN 和 SerNumN 同 N 似乎是插槽號碼。 - α CVn
我想 dmidecode 解析BIOS在啟動時放在一起的東西。 BIOS應該讀取SPD並進行相應的報告 - 但是有問題的BIOS並不是什麼新鮮事。 - LawrenceC
+1是提到SPD的唯一答案 - Jonathon Reinhart
在我看來曾經有一段時間RAM棒沒有SPD芯片...至少我清楚地記得查看RAM的價格表,其中的項目被明確標記為SPD和非SPD(它大約在一個引入DIMM標準的時間) - Mikhail
@Mikhail是的,SIMM有4個用於“presense detect”的引腳 - 這些引腳被拉高或拉低以提供指示大小和速度的標識符。 ohlandl.ipv7.net/config/mempresence.html - ali1234


在Windows上:

wmic memoryChip get /?

將從命令提示符處為您提供各種RAM信息。

例如,

wmic memorychip get serialnumber

給你序列號。你也可以使用 SpeedModel 有時, Manufacturer 和更多。

WMI是Windows的查詢方法 SMBIOS 數據。 Apple,Linux,Windows和任何想要在大多數硬件上運行的人都需要在某種程度上支持SMBIOS,原因各不相同。

您可以使用SMBIOS(例如通過Windows中的WMI或WMIC)來收集硬盤驅動器信息,網絡信息(是10/100還是10/100/1000卡?)。

為了更進一步,每個製造商都有一個NIC上的MAC地址代碼。 RAM還有製造商代碼。因此,所有你需要做的就是獲得他們的代碼,例如我的2 x2GB在這台筆記本電腦中是830B,是為製造商建立一個數據庫(830B可能是一個品牌,然後再轉售!)以及什麼型號意味著什麼。這就是CPUz的工作原理我認為 - 基本查詢和一個非常完整和當前的數據庫。


47
2018-03-27 19:32



請注意,WMI能夠查詢DMI / SMBus信息 不是Windows的實現。另外, dmidecode 純粹查詢和解碼DMI信息 可用作Windows端口 太。 - syneticon-dj
@ syneticon-dj我不確定你在這裡添加了什麼,你的觀點還不清楚。 WMI是Windows Management Instrumentation,其功能和職責是閱讀SMBUS。但是,如果你的觀點是所有的屁股都是bnorks但不是所有的bnorks都是笨蛋...那麼是的,確切地說......? - Austin T French
我的觀點是,你的措辭不准確到容易誤解的程度。 WMI 能夠 與SMBIOS接口,但它在任何方面都不是它的實現(它位於硬件/ BIOS端而不是OS內)。 - syneticon-dj
它確實說:“WMI是用於讀取設備的SMBus標準的Windows實現。”它是Windows閱讀/查詢和了解內部的方式......但WMI也做了很多。 - Austin T French
@ syneticon-dj - 如果錯誤則進行編輯。 - Enigma


內存速度和類型與BIOS協商,可由操作系統讀取。

有一個非常好的網站,讓您對這些事情有更深入的了解 http://www.computermemoryupgrade.net/index1.html

但是,如果不通過以下方式打開封面,您可以輕鬆找出您的類型和速度:

Apple - >關於本機 - >更多信息 - >系統報告

打開硬件 - >內存

您應該看到RAM的每一根包括尺寸,類型和速度(為了好玩,狀態以確保它沒問題)

System Report with Memory


18
2018-03-27 19:05





在許多Linux發行版(例如Debian)上,你可以使用 lshw硬件列表

sudo lshw |grep DDR
         description: SODIMM DDR3 Synchronous 1067 MHz (0.9 ns)
         description: SODIMM DDR3 Synchronous 1067 MHz (0.9 ns)

我想RAM就像所有其他硬件一樣,向操作系統報告其描述和功能。如果Linux可以做到這一點,我認為沒有理由為什麼OSX不能。

如果您的發行版沒有安裝lshw,您可以使用包管理器安裝它,例如

aptitude install lshw

或從項目網站下載。


13
2018-03-27 19:05



僅供參考, lshw 在OS X上不可用: - slhck
@ b.long kneejerk反應,因為問題是標記為win / osx而不是Linux? - Dan Neely
確實,抱歉 - 我沒有讀完整個問題(或顯然是標題)。我以為它詢問任何操作系統 - blong
@slhck我的不好,我只是快速谷歌搜索 OSX lshw 並看到了 這個帖子 在蘋果網站上,我認為它存在於OSX而沒有真正閱讀有問題的帖子。 (臉紅)。無論如何,我的觀點是,如果Linux可以看到RAM類型,為什麼不應該OSX? - terdon


在Mac OS X上從終端運行:

$ system_profiler SPMemoryDataType

8
2018-03-27 23:06





RAM棒將其時間,速度和類型存儲在棒上的小芯片上。您的計算機如何知道在不破壞其數據的情況下運行RAM的速度有多快?同樣的芯片。 Apple也只是選擇顯示這些數據。


4
2018-03-27 19:06



它被稱為SPD - 串行存在檢測。 - David Schwartz
第一句話沒有多大意義。 - α CVn
怎麼樣沒有意義?對我有意義,這是我得到的第一個抱怨。 - MarcusJ


為了補充ultrasawblade的答案,在Linux上,要解碼SPD數據,你可以使用 decode-dimms  perl 來自的腳本 I2C工具

sudo modprobe -a i2c-i801 eeprom
decode-dimms

或者對於HTML花式格式化的:

decode-dimms -f | w3m -T text/html

(w3m是基於文本的瀏覽器/尋呼機)。或者當然:

decode-dimms -f > dimms.html
xdg-open dimms.html

2
2018-03-28 18:57





Speccy 是一個Windows軟件,它會告訴你很多關於你的計算機的東西,包括RAM類型/大小/總插槽/可用插槽。


1
2018-03-28 05:28



我曾經使用過 CPU-Z 在Windows機器上獲取此類信息 - 它為您提供有關CPU,RAM等的非常詳細的信息。它小而整潔,定期更新。 - Mikhail