In che modo un computer / sistema operativo può dire quale tipo di RAM è presente nella macchina?


81

In che modo Mac OS X può dire quale tipo di RAM è presente nella macchina? Ad esempio, stavo lavorando su uno che aveva DDR3 RAM @ 1600MHz e pensavo che non fosse possibile conoscere la RAM senza aprire fisicamente il case e guardarlo. Come è possibile farlo su altri sistemi?


6
Nota: ho rimosso i commenti perché non stavano andando da nessuna parte. Puoi usare la Super User Chat per discutere.
slhck,

@Celeritas: ho ripristinato la tua ultima modifica. Chiedere perché uno sviluppatore / produttore abbia scelto di aggiungere o omettere una funzionalità dal proprio prodotto non è costruttivo .
Karan,

@Karan Mi chiedevo se l'hardware o il sistema operativo Mac fosse in qualche modo diverso dall'hardware su cui gira Windows che rende più facile determinare il tipo di RAM. Sembra una funzionalità utile da incorporare nel sistema operativo in modo che le persone sappiano quale tipo di RAM ottenere se vogliono aggiornare. Puoi modificare la domanda per riflettere ciò che ti ho appena detto, ma riformularla in modo che si adatti meglio.
Celeritas,

1
Poiché hai già chiesto se è possibile farlo su Windows e hai ricevuto risposte che ti spiegano come, è chiaro che non esiste alcuna differenza hardware fondamentale che impedisce a Windows di visualizzare le informazioni se lo desiderano (i dati SPD come hai visto di seguito sono memorizzati sul modulo RAM ed è accessibile a qualsiasi sistema operativo / app a cui interessa leggerlo). Oltre a ciò, non ha senso discutere sul perché esattamente la SM scelga di non farlo, anche se è utile per gli utenti finali.
Karan,

Il bus i2c è uno standard con cui qualsiasi sistema operativo può interfacciarsi. L'SPD si presenta come una EEPROM a 128 byte, 256 byte o 512 byte. Il sistema operativo deve solo raccogliere questi byte, che obbediscono a un altro standard chiamato JEDEC, dall'EEPROM usando i2c e quindi utilizzare quei dati per capire di che tipo di memoria sta parlando. È molto indipendente dal sistema operativo.
LawrenceC

Risposte:


147

Gli stick RAM hanno un piccolo chip chiamato Serial Presence Detect , che contiene informazioni come capacità, tempi preferiti, produttore e persino un numero seriale.

Le informazioni SPD sono accessibili dai sistemi operativi tramite il bus i2c (che include anche elementi come i sensori di temperatura). Penso che tu possa leggere direttamente gli SPD da Linux usando varie utility i2c.

Questa immagine dell'articolo di Wikipedia ne ha una buona immagine: e


2
In Linux, dmidecode --type memoryti consente di vedere alcune delle informazioni. Apparentemente può produrre un produttore e un numero di serie, ma almeno sul mio sistema quelli sono riportati semplicemente ManufacturerNe SerNumNcon Nquello che sembra essere il numero di slot.
un CVn

2
Ho pensato di dmidecodeanalizzare qualcosa che il BIOS mette insieme all'avvio. Il BIOS dovrebbe leggere l'SPD e riportare di conseguenza - i BIOS con errori non sono una novità.
LawrenceC,

1
+1 per l'unica risposta che menziona SPD
Jonathon Reinhart il

1
Mi sembra che ci fosse un tempo in cui gli stick RAM non avevano chip SPD ... Almeno ricordo chiaramente di aver esaminato i listini prezzi per la RAM in cui gli articoli erano chiaramente contrassegnati come SPD e non SPD (era approssimativamente a un tempo di introduzione dello standard DIMM)
Mikhail

1
@Mikhail sì, i SIMM avevano 4 pin per "rilevazione presenze" - questi venivano tirati in alto o in basso per fornire un identificatore che indica dimensioni e velocità. ohlandl.ipv7.net/config/mempresence.html
ali1234

47

Su Windows:

wmic memoryChip get /?

Ti fornirà varie informazioni sulla RAM che puoi richiedere direttamente dal prompt dei comandi.

Per esempio,

wmic memorychip get serialnumber

Ti dà il numero di serie. Puoi anche usare Speed, a Modelvolte, Manufacturere altro ancora.

WMI è il metodo Windows per eseguire query sui dati SMBIOS . Apple, Linux, Windows e chiunque altro voglia eseguire la maggior parte dell'hardware deve supportare SMBIOS ad un certo livello, per diversi motivi.

È possibile utilizzare SMBIOS (ad esempio tramite WMI o WMIC in Windows) per raccogliere anche informazioni sul disco rigido, informazioni di rete (è una scheda 10/100 o 10/100/1000?).

Per fare un ulteriore passo avanti, ogni produttore ha un codice per gli indirizzi MAC sulle schede di rete. La RAM ha anche un codice del produttore. Quindi tutto quello che devi fare per ottenere il loro codice, ad esempio i miei 2 x 2 GB in questo laptop sono 830 B, è costruire un database per i produttori (830 B potrebbe essere un marchio e quindi rivenduto anche!) E anche quali modelli significano cosa. Credo sia così che CPUz funziona: query di base e un database veramente completo e aggiornato.


3
Si noti che WMI è in grado di interrogare le informazioni DMI / SMBus ma non è la sua implementazione di Windows . Inoltre, dmidecodeche esegue semplicemente query e decodifica le informazioni DMI è disponibile anche come porta di Windows .
syneticon-dj,

@ syneticon-dj Non sono sicuro che tu abbia aggiunto qualcosa qui e il tuo punto non è chiaro. WMI è Strumentazione gestione Windows, tra le sue capacità e funzioni sta leggendo SMBUS. Ma se il tuo punto era che tutti gli anorks sono borks, ma non tutti i borks sono anorks ... allora sì, esattamente ...?
Austin T francese,

Il mio punto è che la tua formulazione non è precisa al punto in cui diventa facile fraintendere. WMI è in grado di interfacciarsi con SMBIOS ma non è in alcun modo la sua implementazione (che risiede sul lato hardware / BIOS e non all'interno del sistema operativo).
syneticon-dj,

Dice: "WMI è l'implementazione Windows dello standard SMBus per i dispositivi di lettura". Ed è il modo Windows di leggere / interrogare e sapere cosa c'è dentro ... Ma WMI fa anche molto di più.
Austin T, francese,

2
@ syneticon-dj - apporta una modifica se è sbagliato.
Enigma,

18

La velocità e il tipo di memoria sono negoziati con il BIOS e possono essere letti dal sistema operativo.

C'è un ottimo sito Web che ti offre un livello più profondo di comprensione di queste cose su http://www.computermemoryupgrade.net/index1.html

Ma puoi facilmente capire quali tipi e velocità hai senza aprire il coperchio tramite:

Apple -> Informazioni su questo Mac -> Altre informazioni -> Rapporto di sistema

Apri Hardware -> Memoria

Dovresti vedere ogni stick di RAM incluso Dimensione, Tipo e Velocità (e per divertimento, Status per assicurarti che sia ok)

Rapporto di sistema con memoria


13

Su molte distribuzioni Linux (ad es. Debian), è possibile utilizzare il lister hardware lshw

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

Immagino che la RAM, come tutti gli altri hardware, riporti al sistema operativo la sua descrizione e funzionalità. Se Linux può farlo, non vedo alcun motivo per cui OSX non possa farlo.

Se la tua distribuzione non ha installato lshw, puoi installarla usando il tuo gestore pacchetti, ad es

aptitude install lshw

o scaricarlo dal sito Web del progetto.


Cordiali saluti, lshwnon è disponibile su OS X:
slhck

@ b.long reazione a ginocchio perché la domanda è taggata win / osx ma non Linux?
Dan Neely,

In effetti, mi dispiace per quello - non ho letto l'intera domanda (o il titolo apparentemente). Ho pensato che chiedesse di qualsiasi sistema operativo
blong

@slhck Mio male, ho appena fatto una rapida ricerca su Google OSX lshwe ho visto questo post sul sito Web di Apple e ho pensato che esistesse per OSX senza effettivamente leggere il post in questione. (arrossire). Comunque, il mio punto qui era che se Linux può vedere il tipo di RAM perché non dovrebbe OSX?
terdon,


4

La chiavetta RAM memorizza i suoi tempi, velocità e tipo su un piccolo chip sulla chiavetta. Come fa il tuo computer a sapere quanto velocemente eseguire la RAM senza corrompere i suoi dati? Stesso chip. Apple sceglie semplicemente di visualizzare anche questi dati.



La prima frase non ha molto senso.
un CVn

2
Che dire non ha senso? Ha senso per me, ed è la prima lamentela che ho ricevuto.
MarcusJ

2

Per integrare la risposta di ultrasawblade, su Linux, per decodificare i dati SPD, è possibile utilizzare lo decode-dimms perlscript di i2c-tools :

sudo modprobe -a i2c-i801 eeprom
decode-dimms

O per il formato HTML fantasia:

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

(w3m è un browser / cercapersone basato su testo). O ovviamente:

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

1

Speccy è un software Windows che ti dirà molte cose sul tuo computer tra cui tipo di RAM / dimensione / slot totali / slot disponibili.


2
Usavo CPU-Z per ottenere tali informazioni su macchine Windows - ti dà informazioni molto dettagliate su CPU, RAM e altro ancora. È piccolo e pulito e viene aggiornato regolarmente.
Mikhail,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.