Linux - Existe alguma maneira de identificar a velocidade da sua memória através do software?

9

Existe alguma maneira de identificar a velocidade da sua memória através do software? Estou no Fedora 9 e procurando descobrir a velocidade do DIMM que tenho atualmente.

Eu tentei um 'lshw', mas ele não exibe a velocidade. Eu sei que a placa-mãe suporta 3 velocidades diferentes, mas eu não sei o que está lá e não quero desligar a caixa.

Alguma idéia?

Obrigado,

EDIT: Eu encontrei o ram para ser '30 ns 'de acordo com dmidecode. Como pode ser de 33 MHz se a placa suporta apenas 400, 533, 667 Mhz de RAM?

EDIT 2: Existem outras ferramentas para fazer isso?


EDIT 3: Eu realmente me entreguei e acabei desligando por alguns minutos e abrindo o caso. Acabou sendo 667 MhZ - esse modelo: link . Apesar de não ser capaz de realmente descobrir que era 667 através de software, eu marquei a resposta de HD como a correta, já que parece ser a melhor ferramenta para o trabalho.



Aqui está a saída da memória do tipo demidecode

# dmidecode 2.7
SMBIOS 2.4 present.

Handle 0x0008, DMI type 5, 20 bytes.
Memory Controller Information
    Error Detecting Method: 64-bit ECC
    Error Correcting Capabilities:
        None
    Supported Interleave: One-way Interleave
    Current Interleave: One-way Interleave
    Maximum Memory Module Size: 1024 MB
    Maximum Total Memory Size: 2048 MB
    Supported Speeds:
        70 ns
        60 ns
        50 ns
    Supported Memory Types:
        DIMM
        SDRAM
    Memory Module Voltage: 3.3 V
    Associated Memory Slots: 2
        0x0009
        0x000A
    Enabled Error Correcting Capabilities:
        None

Handle 0x0009, DMI type 6, 12 bytes.
Memory Module Information
    Socket Designation: DIMM0
    Bank Connections: 9 11
    Current Speed: 30 ns
    Type: Unknown FPM Parity SDRAM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK

Handle 0x000A, DMI type 6, 12 bytes.
Memory Module Information
    Socket Designation: DIMM1
    Bank Connections: 9 11
    Current Speed: 30 ns
    Type: Unknown FPM Parity SDRAM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK

Handle 0x002F, DMI type 16, 15 bytes.
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 4 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

Handle 0x0031, DMI type 17, 27 bytes.
Memory Device
    Array Handle: 0x002F
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM0
    Bank Locator: BANK0
    Type: SDRAM
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer0
    Serial Number: SerNum0
    Asset Tag: AssetTagNum0
    Part Number: PartNum0

Handle 0x0033, DMI type 17, 27 bytes.
Memory Device
    Array Handle: 0x002F
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM1
    Bank Locator: BANK1
    Type: SDRAM
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer1
    Serial Number: SerNum1
    Asset Tag: AssetTagNum1
    Part Number: PartNum1
    
por barfoon 06.08.2009 / 04:08

10 respostas

18

dmidecode é a ferramenta que você está procurando.

    
por 06.08.2009 / 04:10
13

No meu Debian, lshw me fornece essa informação.

# lshw -version
B.02.13
# lshw -short -C memory
H/W path             Device     Class       Description
=======================================================
/0/1                            memory      128KiB BIOS
/0/5/6                          memory      20KiB L1 cache
/0/5/7                          memory      1MiB L2 cache
/0/27                           memory      System Memory
/0/27/0                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/27/1                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/27/2                         memory      256MiB DIMM DDR Synchronous 266 MHz (3.8 ns)
/0/27/3                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/28                           memory      Flash Memory
/0/28/0                         memory      512KiB Chip FLASH Non-volatile
/0/0                            memory      
/0/2                            memory      
    
por 06.08.2009 / 14:56
2

Você pode postar sua saída de dmidecode para a seção de memória? ( dmidecode - memória de tipo )

Você pode querer ler isto: link

O "NS" referencia "nanossegundo" a velocidade na qual a memória é capaz de responder. Quanto menor o número, mais rápida será a velocidade. Infelizmente isso não faz referência a um número exato de Mhz. O DMIDECODE deve produzir o Mhz também. Verifique na parte inferior da saída ou simplesmente memória do tipo dmidecode | grep Mhz

    
por 10.08.2009 / 07:10
1

Se você realmente quiser comparar a velocidade da memória, não poderá fazê-lo em um modo protegido de 386 processadores, já que as falhas de página e o layout das páginas pagáveis terão um grande peso nos resultados.

Sua melhor aposta é codificar o ponto de referência em "modo real" de 16 bits, em que você tem acesso direto aos endereços físicos da memória.

Para um bom código de inicialização que pode ser facilmente personalizável, verifique a fonte stage1 do bootloader do GRUB. stage1 é o MBR que reside nos primeiros 512 bytes do seu disco rígido. Você o encontrará no diretório de origem stage1 / stage1.S file; é muito comentada e facilmente compreensível.

Depois de ter o MBR personalizado para as suas necessidades, compile-o usando o seguinte método:

$ BOOT=mbr
$ gcc -O2 -fno-builtin -nostdinc -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef -g -c $BOOT.S
$ gcc  -g  -nostdlib -Wl,-N,-Ttext,7C00 -o $BOOT.exec  $BOOT.o  
$ objcopy -O binary $BOOT.exec $BOOT

Agora você tem um MB86 x86 pronto. É desejável testar seu código em uma máquina virtual como Qemu ou Bochs antes de executá-lo na máquina real; também facilitará o ciclo de compilação / depuração.

Espero que ajude

    
por 09.08.2009 / 12:41
1

Se você tiver muita sorte, a ferramenta que você está procurando é uma lanterna. Alguma memória você pode abrir o caso e olhar e ver um adesivo que tem na etiqueta. Depende inteiramente do seu caso, no que diz respeito a como é fácil chegar até ele, e você não precisa desligar a máquina, contanto que você esteja realmente realmente REALMENTE cuidado. Eu não sei o quão experiente você é em trabalhar com componentes internos de máquinas, mas esta é a próxima coisa que eu tento quando não consigo usar os comandos do software Linux para descobrir isso.

    
por 10.08.2009 / 01:57
1

EDIT: I have found the ram to be '30 ns' according to dmidecode. How can it be 33 MHz if the board only supports 400, 533, 667 Mhz RAM?

Suponho que seja algo assim:

Cada chip individual em um SIMM / DIMM é executado em 30ns ou 33MHz. Existem 8 chips por SIMM, então 8 x 33MHz = 266MHz; ou 16 chips por DIMM, dando 533 MHz.

Assim, enquanto cada chip funciona a 33 MHz, todo o módulo de memória pode fornecer dados a 533 MHz.

    
por 10.08.2009 / 07:55
1

Eu sei que isso é um pouco tarde, mas:

Se você aproveitar os tempos suportados e os reduzir pela metade, eles se encaixam na taxa de 30. Então se você reduzir pela metade e dividir 10000 por ele, dá (800, 666, 571.4)

Eu não tenho ideia do motivo, embora eu ache que a conexão entre timings e taxa de dados pode ser complicado; Além disso, uma delas pode ser uma taxa de dados dupla .

    
por 10.04.2011 / 01:34
1

Só para esclarecer, a memória de 33mhz que você vê no final é a sua memória de bios:)

    Type: Flash
    Type Detail: Non-Volatile
    Speed: 33 MHz
    Manufacturer: ATMEL

Se você quiser usar uma ferramenta melhor, instale lm_sensors ( link ) e i2c-tools ( link )

Então você pode obter muito mais detalhes específicos sobre sua memória com decodificação de dimm (aqui está uma amostra da saída):

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

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x4422)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     RDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            16384 MB
Banks x Rows x Columns x Bits                   8 x 15 x 11 x 64
Ranks                                           4
SDRAM Device Width                              4 bits
tCL-tRCD-tRP-tRAS                               7-7-7-20
Supported CAS Latencies (tCL)                   8T, 7T, 6T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      50.625 ns
Minimum Recovery Delay (tRFC)                   160.000 ns
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.500 ns
Minimum Four Activate Window Delay (tFAW)       37.500 ns

---=== Optional Features ===---
Operable voltages                               1.5V, 1.35V
RZQ/6 supported?                                Yes
RZQ/7 supported?                                Yes
DLL-Off Mode supported?                         Yes
Operating temperature range                     0-95C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              No
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         0
SDRAM Device Type                               0

---=== Physical Characteristics ===---
Module Height (mm)                              30
Module Thickness (mm)                           4 front, 4 back
Module Width (mm)                               133.5
Module Reference Card                           F

---=== Registered DIMM ===---
# DRAM Rows                                     2
# Registers                                     2
Register manufacturer                           IDT
Register device type                            SSTE32882
Register revision                               0x61
Heat spreader characteristics                   00
SSTE32882 RC0/RC1                               00
SSTE32882 RC2/RC3                               50
SSTE32882 RC4/RC5                               50
SSTE32882 RC6/RC7                               00
SSTE32882 RC8/RC9                               00
SSTE32882 RC10/RC11                             00
SSTE32882 RC12/RC13                             00
SSTE32882 RC14/RC15                             00

---=== Manufacturer Data ===---
Module Manufacturer                             Samsung
DRAM Manufacturer                               Samsung
Manufacturing Location Code                     0x02
Manufacturing Date                              2011-W39
Assembly Serial Number                          xxx
Part Number                                     M393B2K70CM0-YF8
    
por 19.04.2013 / 21:17
0

Se possível, tente executar o Memtest, o IIRC mostre o troughout e também a velocidade da memória no canto superior esquerdo (20000MB / s @ 667MHz, por exemplo).

    
por 11.08.2009 / 16:44
0

Os tempos com sdram DDR são múltiplos de 8 E de 2. Do que eu me lembro, DDR significa Double Data Rate (por favor, verifique isso, porque eu não pude encontrar as informações para verificar novamente). Essa memória é capaz de transferir os dois modos (in & out) nesse meio tempo.

O motivo é fácil. O DDR é cronometrado duas vezes mais rápido que a freqüência de barramento dada. Por favor, não confunda a frequência de barramento e capacidade de taxa de transferência para o ônibus. O barramento transfere 32, 64, 128 ou 256 bits na frequência do barramento. Um conjunto de 128 bits de dados POR CICLO é uma enorme quantidade de dados.

Como exemplo: DDR400 foi encontrado em barramentos a 200 MHz. O outro nome é PC3200. Para ir de 400 a 3200, você encontrará um fator 8. Esse fator é SEMPRE verificado, seja qual for o DDR (1/2/3/4 ...)

O link a seguir é bom o suficiente para obter o básico (e provavelmente melhor e mais completo do que minhas explicações :))

    
por 19.01.2016 / 20:08