dmidecode é a ferramenta que você está procurando.
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?
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
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
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
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
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.
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.
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 .
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
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).
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 :))
Tags memory diagnostic linux