10 de abr de 2010

Obtendo informações dos módulos de memória no Ubuntu

Módulo de memória
O Linux dispõe de várias ferramentas que exibem informações sobre o hardware e sobre o sistema operacional, como o Sysinfo, Hardinfo, hwinfo, lshw e dmidecode. Eles descrevem de forma básica ou detalhada (dependendo do programa usado) vários dados sobre o kernel, BIOS, processador, memória RAM, entre outros.

Com relação aos dados da memória, os programas acima citados descrevem o tipo e a quantidade de memória RAM suportada/disponível, além de outras informações reconhecidas pela BIOS, como a velocidade (667 MHz, 533 MHz, etc), por exemplo. Mas nenhum deles é capaz de ler as informações do chip dos módulos de memória (SPD), ou o fazem de forma limitada (?).

Uma solução para ler as informações gravadas no SPD é a utilização do aplicativo decode-dimms, que é parte do pacote i2c-tools.


Instalação e utilização (Ubuntu)

1 - Instalar o pacote i2c-tools. No Terminal, digite (copie e cole):
sudo apt-get install i2c-tools

2 - Carregar os módulos necessários e executar o programa decode-dimms:
sudo modprobe eeprom && sudo modprobe i2c-i801 && decode-dimms
Nota: para salvar as informações em um arquivo de texto, adicione > spd_info.txt ao final do comando acima.

No meu Notebook, são exibidas as seguintes informações:
# decode-dimms version 5388 (2008-11-18 18:15:09 +0100)

Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in bank 1

---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62 OK (0x74)
# of bytes written to SDRAM EEPROM 128
Total number of bytes in EEPROM 256
Fundamental Memory type DDR2 SDRAM
SPD Revision 1.2

---=== Memory Characteristics ===---
Maximum module speed 666MHz (PC2-5300)
Size 1024 MB
Banks x Rows x Columns x Bits 4 x 14 x 10 x 64
Ranks 2
SDRAM Device Width 8 bits
Module Height 30.0 mm
Module Type SO-DIMM (67.6 mm)
DRAM Package Planar
Voltage Interface Level SSTL 1.8V
Refresh Rate Reduced (7.8 us) - Self Refresh
Supported Burst Lengths 4, 8
tCL-tRCD-tRP-tRAS 5-5-5-15
Supported CAS Latencies (tCL) 5T, 4T, 3T
Minimum Cycle Time at CAS 5 (tCK min) 3.00 ns
Maximum Access Time at CAS 5 (tAC) 0.45 ns
Minimum Cycle Time at CAS 4 3.75 ns
Maximum Access Time at CAS 4 0.50 ns
Minimum Cycle Time at CAS 3 5.00 ns
Maximum Access Time at CAS 3 0.60 ns
Maximum Cycle Time (tCK max) 8.00 ns

---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS) 0.20 ns
Address/Command Hold Time After Clock (tIH) 0.27 ns
Data Input Setup Time Before Strobe (tDS) 0.10 ns
Data Input Hold Time After Strobe (tDH) 0.17 ns
Minimum Row Precharge Delay (tRP) 15.00 ns
Minimum Row Active to Row Active Delay (tRRD) 7.50 ns
Minimum RAS# to CAS# Delay (tRCD) 15.00 ns
Minimum RAS# Pulse Width (tRAS) 45.00 ns
Write Recovery Time (tWR) 15.00 ns
Minimum Write to Read CMD Delay (tWTR) 7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP) 7.50 ns
Minimum Active to Auto-refresh Delay (tRC) 60.00 ns
Minimum Recovery Delay (tRFC) 105.00 ns
Maximum DQS to DQ Skew (tDQSQ) 0.24 ns
Maximum Read Data Hold Skew (tQHS) 0.34 ns

---=== Manufacturing Information ===---
Manufacturer Kingston
Manufacturing Location Code 0x04
Part Number 9905295-024.B00LF
Manufacturing Date 2008-W11
Assembly Serial Number 0xB1351467

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0051
Guessing DIMM is in bank 2

---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62 OK (0x74)
# of bytes written to SDRAM EEPROM 128
Total number of bytes in EEPROM 256
Fundamental Memory type DDR2 SDRAM
SPD Revision 1.2

---=== Memory Characteristics ===---
Maximum module speed 666MHz (PC2-5300)
Size 1024 MB
Banks x Rows x Columns x Bits 4 x 14 x 10 x 64
Ranks 2
SDRAM Device Width 8 bits
Module Height 30.0 mm
Module Type SO-DIMM (67.6 mm)
DRAM Package Planar
Voltage Interface Level SSTL 1.8V
Refresh Rate Reduced (7.8 us) - Self Refresh
Supported Burst Lengths 4, 8
tCL-tRCD-tRP-tRAS 5-5-5-15
Supported CAS Latencies (tCL) 5T, 4T, 3T
Minimum Cycle Time at CAS 5 (tCK min) 3.00 ns
Maximum Access Time at CAS 5 (tAC) 0.45 ns
Minimum Cycle Time at CAS 4 3.75 ns
Maximum Access Time at CAS 4 0.50 ns
Minimum Cycle Time at CAS 3 5.00 ns
Maximum Access Time at CAS 3 0.60 ns
Maximum Cycle Time (tCK max) 8.00 ns

---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS) 0.20 ns
Address/Command Hold Time After Clock (tIH) 0.27 ns
Data Input Setup Time Before Strobe (tDS) 0.10 ns
Data Input Hold Time After Strobe (tDH) 0.17 ns
Minimum Row Precharge Delay (tRP) 15.00 ns
Minimum Row Active to Row Active Delay (tRRD) 7.50 ns
Minimum RAS# to CAS# Delay (tRCD) 15.00 ns
Minimum RAS# Pulse Width (tRAS) 45.00 ns
Write Recovery Time (tWR) 15.00 ns
Minimum Write to Read CMD Delay (tWTR) 7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP) 7.50 ns
Minimum Active to Auto-refresh Delay (tRC) 60.00 ns
Minimum Recovery Delay (tRFC) 105.00 ns
Maximum DQS to DQ Skew (tDQSQ) 0.24 ns
Maximum Read Data Hold Skew (tQHS) 0.34 ns

---=== Manufacturing Information ===---
Manufacturer Kingston
Manufacturing Location Code 0x04
Part Number 9905295-024.B00LF
Manufacturing Date 2008-W11
Assembly Serial Number 0xA2353D04

Number of SDRAM DIMMs detected and decoded: 2

As informações que geralmente me interessam são:
Fundamental Memory type DDR2 SDRAM
Maximum module speed 666MHz (PC2-5300)
Size 1024 MB
Manufacturer Kingston

Agora vejamos alguns dados informados pelo dmidecode, para comparação:
Size: 1024 MB
Type: DRAM
Speed: 533 MHz (1.9 ns)
Manufacturer: Not Specified

Observem que algumas informações exibidas pelo dmidecode são diferentes do que é mostrado pelo decode-dimms. Isto ocorre porque o dmidecode descreve o que é reconhecido pela BIOS, como a velocidade de 533 MHz, que é o máximo suportado pelo meu hardware. Os módulos, porém, são do tipo PC2-5300 (666 MHz, ou 667 MHz), conforme reconhecido pelo decode-dimms.

É claro que, pela limitação do hardware suportado, os módulos estão trabalhando à 533 MHz.

É isso :)

1 comentários

sandrosfc disse...

Vlw pela dica! Tava precisando :D